资源简介
基与广义预测控制算法进行MATLAB仿真,在线辨识模型参数
代码片段和文件信息
%ex9_1/9_2.m
clear;disp(‘单变量最小相位系统的隐式广义预测控制算法的研究‘)
d0=input(‘仿真例9-1请输入1;仿真例9-2请输入2:‘);
disp(‘广义预测控制算法初始值‘)
nn=input(‘时域长度p=‘);n=input(‘预测长度n=‘);m=input(‘控制长度m=‘);
t0=input(‘控制加权系数λ=‘);a=input(‘柔化系数α=‘);
disp(‘最小二乘公式初始值‘)
t1=1;
d1=0;d2=0;d3=0;
d1=input(‘(n+1)阶方阵P的形式:设置为方阵请输入1;否则按回车键将自动设置为对角阵:‘);
d2=input(‘(n+1)阶方阵P的初始值:键盘设置请输入1;否则按回车键自动赋值为1e+5:‘);
if (d1==1)
if (d2==1)
P=input(‘在方括号[ ]中输入(n+1)阶方阵P的值:‘);
else
P=(1e+5)*ones(n+1);
end
else
if (d2==1)
PP=input(‘在方括号[ ]中输入(n+1)阶对角方阵P对角线上的值:‘);
P=diag(PP);
else
P=(1e+5)*eye(n+1);
end
end
uuu=0;yyy=0;uu=zeros(n1);u=zeros(m1);yy=zeros(n1);y1=zeros(n1);
Q=zeros(n+11);Q(11)=1;Q(n+11)=1;
T=300;[yr0t]=gensig(‘square‘100T1);
d3=input(‘输出曲线是否去掉前100步:去掉时请输入1;否则按回车键:‘);
nm=length(t);
for ij=2:nm
yr=yr0(ij)+1;
if (d0==1)
y=1.496585*yy(n1)-0.496585*yy(n-11)+0.5*uu(n-11);
else
y=2.001676*yy(n1)-1.24339*yy(n-11)+0.24171*yy(n-21)+0.23589*uu(n1);
end
a9=0;
for i=1:1
a9=a9+rand;
end
a8=0.01*(a9-6);
for i=1:n-1
yy(i1)=yy(i+11);
end
yy(n1)=y;
yyy=[yyy;y];
for
- 上一篇:MATLAB中傅里叶变换常用函数
- 下一篇:doa算法的matlab实现
评论
共有 条评论