資源簡介
梯度法、模型參考自適應方面很好的參考代碼,僅供學習研究參考用,不得違規

代碼片段和文件信息
%可調增益MIT-MRAC
clear?all;?close?all;
h=0.1;?L=100/h;?%數值積分步長、仿真步數
num=[1];?den=[1?1?1];?n=length(den)-1;?%對象參數
kp=1;?[ApBpCpDp]=tf2ss(kp*numden);?%傳遞函數型轉換為狀態空間型
km=1;?[AmBmCmDm]=tf2ss(km*numden);?%參考模型參數
gamma=0.1;?%自適應增益
yr0=0;?u0=0;?e0=0;?ym0=0;?%初值
xp0=zeros(n1);?xm0=zeros(n1);?%狀態向量初值
kc0=0;?%可調增益初值
r=0.6;?yr=r*[ones(1L/4)?-ones(1L/4)?ones(1L/4)?-ones(1L/4)];?%輸入信號
for?k=1:L
????time(k)=k*h;
????xp(:k)=xp0+h*(Ap*xp0+Bp*u0);?
????yp(k)=Cp*xp(:k)+Dp*u0;?%計算yp
????
????xm(:k)=xm0+h*(Am*xm0+Bm*yr0);?
????ym(k)=Cm*xm(:k)+Dm*yr0;?%計算ym
????
????e(k)=ym(k)-yp(k);?%e=ym-yp
????kc=kc0+h*gamma*e0*ym0;?%MIT自適應律
????u(k)=kc*yr(k);?%控制量
????
????%更新數據
????yr0=yr(k);?u0=u(k);?e0=e(k);?ym0=ym(k);
????xp0=xp(:k);?xm0=xm(:k);
????kc0=kc;
end
plot(timeym‘r‘timeyp‘:‘);
xlabel(‘t‘);?ylabel(‘y_m(t)、y_p(t)‘);
%axis([0?L*h?-10?10]);
legend(‘y_m(t)‘‘y_p(t)‘);
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????990??2009-07-03?21:13??chap3_02_MIT_MRAC.m
-----------?---------??----------?-----??----
??????????????????990????????????????????1
評論
共有 條評論