基于遺傳優化的無源被動勻場算法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。