自适应控制大作业给定如下双容水箱对象,其中阀门开度为0~100%;液位高度单位为cm(下水箱液位最高为80cm)。其数学模型为:2()()()()()hkGzukWzwk,采样周期为1s.其中()Gz对应连续传递函数:5260()90231sGsess,()Wz描述测量噪声对系统的影响:12121+0.50.3()=11.7640.774zzWzzz。要求完成如下任务:(1)图中()wt有均值为0,方差为0.005的白噪声,施加M序列信号,采集过程输入输出数据;(2)使用递推增广最小二乘法辨识过程模型参数,并分析其辨识效果;(3)自行设置某个过程参数随时间发生变化,编程实现遗忘因子增广递推最小二乘法,分析其与递推增广最小二乘法的效果差异;(4)以下水箱液位2h为被控对象,阀门开度u为控制量,施加PID控制,分析控制效果;(5)针对上述过程设计最小方差控制控制器分析其原理并编程实现,并与PID控制效果进行对比分析;(6)针对上述过程设计最小方差自适应控制控制器分析其原理并编程实现,最后并与PID控制进行对比分析。(7)不考虑噪声影响,设计一种模型参考自适应控制器,并编程实现;上水箱下水箱阀门开度uh1h2解:(1)由双容水箱对象数学模型,最终确定对象的递进函数关系如下:2221.76510.774520.30640.281470.510.32hkhkhkukwkwkwk利用matlab进行编程,得到输入数据为:图一输入m序列输出数据为:0100200300400500600700800900100000.10.20.30.40.50.60.70.80.91输入数据图二输出随机数据(2)利用递推最小二乘法进行matlab仿真曲线为:图三递推最小二乘法最终所得辨识参数为:a1=-1.7655,a2=0.7749,b6=0.3062,b7=0.2794。由此可以看出,所辨识得到参数与原模型参数相差较小,辨识效果较好。(3)令原模型参数b6在500s时增大,则通过带遗忘因子的最小二乘方法得到结果如下:0100200300400500600700800900100005101520253035404550输出数据05001000-3-2-10a1050010000123a20500100000.10.20.30.4b60500100000.10.20.30.4b7图四遗忘因子最小二乘法所辨识得到参数为a1=-1.7639,a2=0.7732,b6=0.5048,b7=0.2763。将相同变化施加于递推最小二乘法辨识,所得曲线为:图五递推最小二乘法所辨识得到参数为a1=-1.7704,a2=0.7792,b6=0.3910,b7=0.2663。综上可以比较出,对于过程参数随时间发生变化的情况,带遗忘因子的递推最小二乘法能够较好的适应改变的过程条件,辨识得到参数与改变后的参数相差较小。但是递推最小二乘法不能适应改变的过程条件,无法辨识出改变后的过程参数,所以,带遗忘因子的递推最05001000-15-10-50a10500100002468a20500100000.20.40.60.8b60500100000.10.20.30.4b705001000-15-10-50a10500100001234a20500100000.10.20.30.4b60500100000.10.20.30.4b7小二乘法辨识效果相较于递推最小二乘法要好。(4)利用PID控制器控制该二容水箱下水箱液位曲线如下:图六PID控制曲线由上图可以看出,PID控制器能够使下水箱液位最终稳定于稳态点,且超调量、调节时间和上升时间都较小,控制效果较好。(5)最小方差控制器原理简介:被控对象数学模型:111()()()()()()dAqytqBqutCqt111()()()()()()dAqytqBqutCqt其中:这是一个d步延时系统,t时刻控制u(t)只能影响t+d时刻及以后的输出。要想得到t时刻系统的最优输出量u(t),就必须对t+d时刻的输出y(t+d)进行预测(预测它与u(t)的关系)。通过“输出方差最小”这个性能指标的约束,求得u(t)的表达是即为最优输出。在t时刻,根据模型计算t+d时刻的输出111()()()()()()AqytdBqutCqtd即1111BqCqytduttdAqAq。由1111BqCqytduttdAqAq与可得11111BqGqytduttHqtdAqAq01002003004005006007008009001000010203040t/s下水箱H20100200300400500600700800900100000.51控制作用u1111101111()1()()1aabbccnnnnnnAqaqaqBqbbqbqCqcqcq11111()()()()()dCqGqHqqAqAq由上式及1111()()()()()()()dAqqBqytuttCqCq可得111111111()()()()()()()dBqGqqBqGqytdutytutHqtdCqAqAqCq又因为11111()()()()()dCqGqHqqAqAq,所以最终1111()()()()()()()()GqytFqutytdEqtdCq其中(1)1111011()()()bbndndFqHqBqffqfq,111()()()(1)(1)dHqtdtdhtdht,且1{()()}0EHqtd。所以1111()()()()()()()()GqytFqutytdHqtdCq。预测误差为:1111ˆ(|)()(|)()()()()()()()ytdtytdytdtGqytFqutHqtdCq优化目标函数为预测误差方差最小化:221111211211{(|)}()()()()ˆ()()(|)()()()()()ˆ()()(|)()EytdtGqytFqutEHqtdytdtCqGqytFqutEHqtdEytdtCq所以最优预测模型为:111()()()()ˆ(|)()GqytFqutytdtCq预测方差为:112221(()())1diiEHqtdh。利用最小方差控制器设计该系统,被控对象数学模型为12112211.7650.7745()0.30640.2814(6)10.50.3()qqhtqutqqt得到最小方差控制效果为:图7最小方差控制仿真曲线由上图可以看出,最小方差控制器可以跟踪方波的输入变化而变化,但有较大的毛刺产生,控制效果不是太好。将其与PID进行比较:图8最小方差与PID控制效果比较由上图可以看出,由于最小方差虽然能跟踪方波的变化而变化,但由于产生较多毛刺,使得控制效果较差,与PID效果差的较大。下面将设计最小方差直接自校正控制器。(6)在最小方差控制器的基础上设计最小方差直接自校正控制器,即将参数估计与最小方01002003004005006007008009001000102030405060kh2r(k)、h(k)h2rh201002003004005006007008009001000-1000-50005001000ku(k)010020030040050060070080090010001015202530354045505560th2r(k)、h(k)h2r(k)最小方差h2(k)PIDh2(k)差控制器结合起来,通过在每一次循环时利用递推最小二乘估计模型参数以达到自适应的效果。编程步骤:①输入对象的结构和参数,为做对象仿真做准备;②为RELS算法做准备,设定③生成白噪声和期望输出④进入循环,计算对象的最新时刻的输出,并得到期望输出;⑤利用RELS算法估计模型参数A,B,C⑥求解Diophantine方程,得到E,F,G;⑦计算最优控制律⑧t=t+1,返回4。利用最小方差直接自校正控制器控制仿真效果为:图9输入输出仿真曲线01002003004005006007008009001000102030405060kh2r(k)、h2(k)h2r(k)h2(k)01002003004005006007008009001000-40-2002040ku(k)IP610)0(,001.0)0(ˆ()ryt()yt()rytd图10参数辨识仿真曲线与PID的控制效果进行对比曲线为:图11自校正与PID控制效果对比曲线由上图可以看出,最小方差直接自校正控制效果相比与最小方差控制都能够跟踪设定值方波的变化而变化,但最小方差直接自校正控制产生的毛刺比最小方差控制产生的毛刺要稀疏一点且毛刺的幅值要更小,可能是因为最小方差直接自校正控制能够利用递推最小二乘法在线辨识模型参数,使得控制性能较原来更好。但就总体控制效果而言,都不如PID的控制效果好。(7)设计一种模型参考自适应控制器仿真结果如下所示:01002003004005006007008009001000-2024k参数估计g、cg0g1c10100200300400500600700800900100001234k参数估计ff0f1f2f3f4010020030040050060070080090010001015202530354045505560kyr(k)、y(k)h2r(k)最小方差h2(k)PIDh2(k)1)当期望输出为方波时:图12模型参考自适应仿真图图13参数估计101002003004005006007000510152025303540kym(k)、yp(k)ym(k)yp(k)0100200300400500600700-2-1.5-1-0.500.511.522.5k可调系统参数apap1ap2图14参数估计22)当期望输出为随机序列时:图15模型参考自适应仿真图010020030040050060070000.10.20.30.40.50.60.70.80.91k可调系统参数bpbp0bp10100200300400500600700-10-5051015kym(k)、yp(k)ym(k)yp(k)图16参数估计1图17参数估计2程序附录:(1)clearallclccloseallL=1000;n=10;p=2^n-1;ms=idinput(p,'prbs',[0,1],[0,1]);u=ms(1:L,1)';v=gauss_rand(0,0.005,L);z=zeros(1,L);z(1,1:7)=0;0100200300400500600700-2-1.5-1-0.500.511.522.5k可调系统参数apap1ap2010020030040050060070000.10.20.30.40.50.60.70.80.91k可调系统参数bpbp0bp1fori=8:Lz(1,i)=1.765*z(1,i-1)-0.7745*z(1,i-2)+0.3064*u(1,i-6)+0.2814*u(1,i-7)+v(1,i)+0.5*v(1,i-1)+0.3*v(1,i-2);endfigurestairs(z)title('输出数据')(2)clearallclccloseallL=1000;lambda=1*one