基于遗传优化的无源被动匀场算法matlab仿真
1.程序功能描述
基于遗传优化的无源被动匀场算法matlab仿真,其中优化目标函数为AX+B-D。A矩阵为对圆筒内表面上的132个点进行贴片,进而对匀场球体表面上132个测量点的贡献矩阵系数,B矩阵为初始磁场分布数值列矩阵,D矩阵为目标磁场分布数值列矩阵。
2.测试软件版本以及运行结果展示
MATLAB2022A版本运行
3.核心程序
%获得A,插值,变为相同维度 A8 = A8.*[B0,B0,B0,B0,B0,B0,B0,B0,B0,B0,B0,B0]; A7 = A7.*[B0,B0,B0,B0,B0,B0,B0,B0,B0,B0,B0,B0]; A6 = A6.*[B0,B0,B0,B0,B0,B0,B0,B0,B0,B0,B0,B0]; A5 = A5.*[B0,B0,B0,B0,B0,B0,B0,B0,B0,B0,B0,B0]; A4 = A4.*[B0,B0,B0,B0,B0,B0,B0,B0,B0,B0,B0,B0]; A3 = A3.*[B0,B0,B0,B0,B0,B0,B0,B0,B0,B0,B0,B0]; A2 = A2.*[B0,B0,B0,B0,B0,B0,B0,B0,B0,B0,B0,B0]; A1 = A1.*[B0,B0,B0,B0,B0,B0,B0,B0,B0,B0,B0,B0]; A0 = A0.*[B0,B0,B0,B0,B0,B0,B0,B0,B0,B0,B0,B0]; A_1 = A_1.*[B0,B0,B0,B0,B0,B0,B0,B0,B0,B0,B0,B0]; A_2 = A_2.*[B0,B0,B0,B0,B0,B0,B0,B0,B0,B0,B0,B0]; A_3 = A_3.*[B0,B0,B0,B0,B0,B0,B0,B0,B0,B0,B0,B0]; A_4 = A_4.*[B0,B0,B0,B0,B0,B0,B0,B0,B0,B0,B0,B0]; A_5 = A_5.*[B0,B0,B0,B0,B0,B0,B0,B0,B0,B0,B0,B0]; A_6 = A_6.*[B0,B0,B0,B0,B0,B0,B0,B0,B0,B0,B0,B0]; A_7 = A_7.*[B0,B0,B0,B0,B0,B0,B0,B0,B0,B0,B0,B0]; A_8 = A_8.*[B0,B0,B0,B0,B0,B0,B0,B0,B0,B0,B0,B0]; A = [A_8,A_7,A_6,A_5,A_4,A_3,A_2,A_1,A0,A1,A2,A3,A4,A5,A6,A7,A8]; Ax = [A;A;A;A;A;A;A;A;A;A;A;A]; %这个位置就是之前说的数据A太小导致 Ax = imresize(Ax,[132,132]); ............................................................... figure; plot(1:20:length(ERR),ERR(1:20:end),'-b^',... 'LineWidth',1,... 'MarkerSize',6,... 'MarkerEdgeColor','k',... 'MarkerFaceColor',[0.2,0.9,0.5]); grid on xlabel('GA迭代次数'); ylabel('适应度曲线A*X+B-D'); [V,I] = min(JJ); Xx_best = Xx2{I}; X = reshape(Xx_best,[11,12]) y = Ax*Xx_best'+Bx; Y = (reshape(y,[11,12]) - ([B0,B0,B0,B0,B0,B0,B0,B0,B0,B0,B0,B0])); round(1e6*max(max(Y))) figure; imagesc(X) colorbar title('优化后的磁感应强度影响系数矩阵投影图');
4.本算法原理
在磁共振成像(MRI)系统中,磁场的均匀性对于获得高质量的图像至关重要。无源被动匀场是一种常用的提高磁场均匀性的方法,它通过在磁体孔洞内放置合适的磁性材料来调整磁场分布。基于遗传优化的无源被动匀场算法能够有效地确定这些磁性材料的放置位置和参数,以达到最佳的匀场效果。
首先来分析一下这个最优计算公式:
一、A矩阵为对圆筒内表面上的132个点进行贴片,进而对匀场球体表面上132个测量点的贡献矩阵系数。 以上数据构成MATLAB大数据矩阵,其中大矩阵中的数据按照从-5至+5的顺序进行周期排列填充,其中行数为12*11=132行。
其中12为重复的周期数,11为每个周期中所含有的行数=-5至+5,一共为11行,每行中的元素按照表格中的角度从小到大进行填充,每个角度中的列数据按照由上至下的顺序填充,每行中含有的数据为11*12=132个数据,也即构成大矩阵的132列。所以,大矩阵中一共含有的填充数据位(12*11)(总行数)*132(总列数)=17424个数据。(此矩阵也即算法中的贡献因子矩阵A)
二、每个位置上的贴片数量构成的矩阵X,贴片位置数一共为12*11=132个,其中12代表沿着圆筒圆周方向将360°等分12份,11代表每一等分位置处,沿着轴向位置从坐标-5至+5的11个位置(即11个位置处的贴片数量可表示为:-x5、-x4、-x3、-x2、-x1、x0、+x1、+x2、+x3、+x4、+x5),所以矩阵X中的元素数为12*11=132个,可表示成132*1的矩阵。
三、B矩阵为初始磁场分布数值列矩阵.
四、D矩阵为目标磁场分布数值列矩阵,各点目标场值的偏差量控制在-2000Hz~2000Hz。