• 大小: 95KB
    文件类型: .zip
    金币: 2
    下载: 0 次
    发布日期: 2021-05-10
  • 语言: 其他
  • 标签: 仿真  matlab  

资源简介

自适应方面的很值得一参考的程序,仅供学习研究参考用,不得违规

资源截图

代码片段和文件信息

%具有可调增益Lyapunov-MRAS设计
clear;
clc; 

h=0.1; L=100/h; %数值积分步长和仿真步数(减小h,可以提高积分精度)
num=[2 1]; den=[1 2 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; %初值
xp0=zeros(n1); xm0=zeros(n1); %状态向量初值
kc0=0; %可调增益初值
r=2; yr=r*[ones(1L/4) -ones(1L/4) ones(1L/4) -ones(1L/4)]; %输入信号
c=inv([1 0;den(2) 1])*num‘;
P=[3 1;1 1];

for k=1:L
    time(k)=k*h;
    xp(:k)=xp0+h*(Ap*xp0+Bp*u0);
    yp(k)=Cp*xp(:k); %计算yp
    
    xm(:k)=xm0+h*(Am*xm0+Bm*yr0);
    ym(k)=Cm*xm(:k); %计算ym
    
    e(k)=ym(k)-yp(k); %e=ym-yp
    kc=kc0+h*gamma*[e0 (e(k)-e0)-c(1)*yr0]*[1 0]‘*yr0; %Lyapunov-MRAC自适应律
    u(k)=kc*yr(k); %控制量
    
    %更新数据
    yr0=yr(k); u0=u(k); e0=e(k);
    xp0=xp(:k); xm0=xm(:k);
    kc0=kc;
end
subplot(211);
plot(timeym‘r‘timeyp‘:‘);
xlabel(‘t‘); ylabel(‘y_m(t)、y_p(t)‘);
legend(‘y_m(t)‘‘y_p(t)‘);
subplot(212);
plot(timeu);
xlabel(‘t‘); ylabel(‘u(t)‘);

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2011-12-31 11:25  基于李雅普诺夫的MRAS\
     文件        1151  2011-11-03 19:22  基于李雅普诺夫的MRAS\Gain.m
     文件        1172  2011-11-03 15:33  基于李雅普诺夫的MRAS\KF.m
     文件        1347  2011-11-03 15:30  基于李雅普诺夫的MRAS\SISO.m
     文件        1191  2011-11-03 15:32  基于李雅普诺夫的MRAS\StateBack.m
     文件      140096  2011-11-03 20:12  基于李雅普诺夫的MRAS\基于李雅普诺夫稳定性理论的MRAS设计.docx

评论

共有 条评论