随机系统滤波与控制
随机系统滤波与控制 最小方差控制作业 姓名:史贝贝 学号: 班级:硕 专业:检测技术与自动化装置 3107040016 736 题目:题目: y 1.7y k1 0.7y k2 0.9u k1 u k2 w k 0.7w k1已知:k w k N(0,1) 1.设计最小方差控制器。仿真(观察y, u) 。 2.设计广义最小方差控制(取由小到大的3 个, 观察 y ,u) 解解 :: 1.最小方差控制器 对于线性时不变随即系统 A(z1)y k zdB(z1)u k C(z1)w k GBF y kd y k u k Fw kd CC GBF y kd|k y k u k CC G(z1) 最小方差控制策略为:u k y k 11B(z )F(z ) 12121(11.7z0.7z )y (0.9zz )u (10.7z )w kkk对于本题: A(z1) 11.7z10.7z2 zdB(z1) 0.9z1 z2 C(z1) 10.7z1 利用长除法: C(z1) 10.7z110.7z1 1 1211 A(z )11.7z0.7z(10.7z)(1z) 10.7z110.7z1 121z1zz 1 1(1z )(10.7z) (1z1)(10.7z1) 1 一步预测: d=1 F(z1) 1 G(z1) 10.7z1 B(z1) 0.9 z1 G(z1)10.7z1 u k y k y k B(z1)F(z1)0.9 z1 u k (y k 0.7y k1 u k1)/0.9 y kd GBF y k u k Fw kd w kd CC y k1 w k1 循环叠代即能得到一步预测仿真数据(程序代码见后面部分) 二步预测:d=2 F(z1) 1z1 G(z1) 10.7z1 B(z1) 0.9z 1 G(z1)10.7z1 u k y y B(z1)F(z1) k (1 z1)(0.9z1) k (1 z1)(0.9z1)u k (10.7z1)y k 0 0.9u k1 1.9u k u k1 y k 0.7y k1 0 u k1 (y k 0.7y k1 1.9u k u k1)/0.9 y kd GBF y k u k Fw kd w kd CC y k2 w k2 循环叠代即能得到二步预测仿真数据(程序代码见后面部分) 可以看出: 1.对于通常意义下的最小方差控制而言,控制量u 是发散的。所以应该采用广义最小方 差控制来抑制收敛。 2. 一步预测与两步预测的效果是一样的,并不改变预测值,也不改变最小方差控制的 敛散性。 2. 广义最小方差控制器 广义最小方差控制器的性能指标为: J(u k ) E[y2 kd u k 2] 所以可控广义最小方差的控制策略为: u k 根据上面计算的结果, B(z1)F(z1)C(z1) b 0 G(z1) y k A(z1) 11.7z10.7z2 zdB(z1) 0.9z1 z2 C(z1) 10.7z1 一步预测:d=1 F(z1) 1 G(z1) 10.7z1 B(z1) 0.9 z1 可得:uk B(z )F(z )C(z1) 11 G(z1) y k b 0 (10.7z1)0.9z 1 10.7z1 0.9 y k 当=0.5 时 10.7z1 u k y k0.5 0.9 z1(10.7z1) 0.9 (0.9 z1 当=1 时 0.5 (10.7z1))uk(10.7z1)yk 0.9 u k (y k 0.7yk1(13.5/ 9)u k1)/(0.95/ 9) 10.7z1 u k y k1 0.9 z1(10.7z1) 0.9 (0.9 z1 当=99 时 u k (0.9yk0.63yk10.2uk1)/1.9 1 (10.7z1))uk(10.7z1)yk 0.9 10.7z1 u k y k99 0.9 z1(10.7z1) 0.9 (0.9 z1110(10.7z1))u k (10.7z1)y k u k (yk0.7yk176uk1)/110.9 循环叠代即能得到预测仿真数据(程序代码见后面部分) (仿真图见下页) 可以看出: 1. 对于通常意义下的最小方差分散的情况,采用广义最小方差控制,有效地抑制了收 敛,使控制量 u 很快的收敛下来。 2. 对于不同的系数 而言,从理论上讲,当 趋向于零时,广义最小方差控制趋向于 一般意义下的最小方差控制,当 趋向于无穷时,广义最小方差控制则只和误差项有关。 然而对于本题的三个不同的 ,控制量 u 的收敛效果相似,没有很大区别。 3.源程序: %1. 设计最小方差控制器。仿真(观察y, u) 。 %2. 设计广义最小方差控制(取由小到大的3 个 U, 观察 y ,u) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% clear all; close all; clc %%%%%%%%%%%%%%%%%% 变量赋初值 %%%%%%%%%%%%%%%%%%%%%%%%%%%% num=100; y=zeros(1,num); u=zeros(1,num); w=normrnd(0,1,1,num); u(1)=1000; %%%%%%%%%%%%%%%%%% 叠代循环求解 y u % %%%% 最小方差 一步预测 %%%%%%%%% % y(1)=w(1); % for k=2:num % y(k)=w(k); % u(k)=(-y(k)+0.7*y(k-1)-u(k-1))/0.9; % end % %%%% 最小方差二步预测 %%%%%%%%% % y(1)=w(1); % u(2)=-1000; % for k=2:num-1 % y(k)=w(k); % u(k+1)=(-y(k)+0.7*y(k-1)-1.9*u(k)-u(k-1))/0.9; % end %%%% 广义最小方差一步预测 %%%%%%%%% u1=zeros(1,num); u2=zeros(1,num); u3=zeros(1,num); u1(1)=1000; u2(1)=u1(1); u3(1)=u1(1); y(1)=w(1); for k=2:num y(k)=w(k); u1(k)=(-y(k)+0.7*y(k-1)-(1-3.5/9)*u(k-1))/(0.9+5/9)