第1题——最小二乘法的具体应用例子
[题目]已知某一单输入单输出线性系统的差分方程形式为
101()(1)()(1)()y k a y k b u k b u k k ξ=--++-+
但其参数1a ,0b ,1b 为未知数,且()k ξ为不相关的随机序列。
经过辨识试验,测得5组输入输出数据为(1) 1.5u =,(2) 3.8u =-,(3) 3.1u =,(4) 2.99u =,(5) 5.12u =和(1)0.8y =,(2)0.1y =-,(3)0.45y =,(4)0.34y =,(5)0.12y =。
试求出其最优参数估计。
解:
编写MATLAB 程序如下:
u(1)=1.5;u(2)=-3.8;u(3)=3.1;u(4)=2.99;u(5)=5.12;
y(1)=0.8;y(2)=-0.1;y(3)=0.45;y(4)=0.34;y(5)=0.12;
c=10000;
P=diag([c,c,c]);
f=[-y(1) u(2) u(1)];
K=P*f'*inv((1+f*P*f'));
x=K*y(3);
for n=1:1:2
f=[-y(n+1) u(n+2) u(n+1)];%f2
P=P-P*f'*inv((1+f*P*f'))*f*P;%P1
K=P*f'*inv((1+f*P*f'));%K2
x=x+K*(y(n+3)-f*x);%x2
end
其中x 中存储最终的结果:
a1=-0.023;b0=-0.018;b1=0;
第2题——以M 文件的形式编写一个MATLAB 仿真程序
[题目]给定被控系统模型(1)()0.8()()y k y k u k f k +=++,
其中干扰()0.20.1sin 0.01f k k =+,初值(0)0.2y =,(0)0u =。
试编写一个M 文件,对该系统在PD 控制律(1)()()u k u k u k +=+∆
12()[()()]{[(1)()][(1)()]}r r r u k B y k y k B y k y k y k y k ∆=-++--+-
作用下的输出()y k 进行仿真,将系统的实际输出()y k 与参考输出()r y k 画在同一张坐标图上。
其中参考输出()r y k 如图4所示,控制器参数为10.0187B =,20.0883B =。
解:
MATLAB 程序:
for n=1:1:599
y(1)=0.4;u(1)=0.0187*(2-0.2)+0.0883*0.2;yr(1)=2;
B1=0.0187;B2=0.0883;
if n<=199
yr(n+1)=2;
elseif n>400
yr(n+1)=2;
else
yr(n+1)=1;
end
f(n)=0.2+0.1*sin(0.01*n);
y(n+1)=y(n)+0.8*u(n)+f(n);
du(n)=B1*(yr(n)-y(n))+B2*((yr(n+1)-yr(n))-(y(n+1)-y(n)));
u(n+1)=u(n)+du(n);
end
n=1:1:600;
plot(n,y)
hold on
plot(n,yr)
仿真结果:
第3题——要求用Simulink 工具搭建一个系统模型
[题目]运用MATLAB 的Simulink 工具描绘下述系统的状态响应
⎪⎩⎪⎨⎧+--=+-=32
212221115.035.05x x x x x x x x ,⎥⎦⎤⎢⎣⎡-=⎥⎦⎤⎢⎣⎡23)0()0(21x x
X1输出曲线
X2输出曲线模型框图:。