《用MATLAB解线性二次型最优控制问题.答案.ppt》由会员分享,可在线阅读,更多相关《用MATLAB解线性二次型最优控制问题.答案.ppt(42页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、1用用MATLAB解线性二次型最优控制问题解线性二次型最优控制问题2解线性二次型最优控制问题解线性二次型最优控制问题 一般情况的线性二次问题可表示如下:一般情况的线性二次问题可表示如下:一般情况的线性二次问题可表示如下:一般情况的线性二次问题可表示如下:设线性时变系统的方程为设线性时变系统的方程为设线性时变系统的方程为设线性时变系统的方程为其中,其中,其中,其中,为为为为 维状态向量,维状态向量,维状态向量,维状态向量,为为为为 维控制向量,维控制向量,维控制向量,维控制向量,为为为为 维输维输维输维输出向量。出向量。出向量。出向量。寻找最优控制,使下面的性能指标最小寻找最优控制,使下面的性能
2、指标最小寻找最优控制,使下面的性能指标最小寻找最优控制,使下面的性能指标最小其中,其中,其中,其中,是是是是 对称半正定常数阵,对称半正定常数阵,对称半正定常数阵,对称半正定常数阵,是是是是 对称半正定阵对称半正定阵对称半正定阵对称半正定阵,是是是是 对称正定阵。对称正定阵。对称正定阵。对称正定阵。3解线性二次型最优控制问题解线性二次型最优控制问题我们用最小值原理求解上述问题,可以把上述问题归结为我们用最小值原理求解上述问题,可以把上述问题归结为我们用最小值原理求解上述问题,可以把上述问题归结为我们用最小值原理求解上述问题,可以把上述问题归结为求解如下黎卡提(求解如下黎卡提(求解如下黎卡提(求
3、解如下黎卡提(RiccatiRiccati)矩阵微分方程:)矩阵微分方程:)矩阵微分方程:)矩阵微分方程:可以看出,上述的黎卡提矩阵微分方程求解起来非常困难,可以看出,上述的黎卡提矩阵微分方程求解起来非常困难,可以看出,上述的黎卡提矩阵微分方程求解起来非常困难,可以看出,上述的黎卡提矩阵微分方程求解起来非常困难,所以我们往往求出其稳态解。例如目标函数中指定终止时间可以所以我们往往求出其稳态解。例如目标函数中指定终止时间可以所以我们往往求出其稳态解。例如目标函数中指定终止时间可以所以我们往往求出其稳态解。例如目标函数中指定终止时间可以设置成设置成设置成设置成 ,这样可以保证系统状态渐近的趋近于零
4、值,这样,这样可以保证系统状态渐近的趋近于零值,这样,这样可以保证系统状态渐近的趋近于零值,这样,这样可以保证系统状态渐近的趋近于零值,这样可以得出矩阵趋近于常值矩阵可以得出矩阵趋近于常值矩阵可以得出矩阵趋近于常值矩阵可以得出矩阵趋近于常值矩阵 ,且,且,且,且 ,这样上述黎卡,这样上述黎卡,这样上述黎卡,这样上述黎卡提矩阵微分方程可以简化成为:提矩阵微分方程可以简化成为:提矩阵微分方程可以简化成为:提矩阵微分方程可以简化成为:这个方程称为代数黎卡提方程。代数黎卡提方程的求解非常这个方程称为代数黎卡提方程。代数黎卡提方程的求解非常这个方程称为代数黎卡提方程。代数黎卡提方程的求解非常这个方程称为
5、代数黎卡提方程。代数黎卡提方程的求解非常简单,并且其求解只涉及到矩阵运算,所以非常适合使用简单,并且其求解只涉及到矩阵运算,所以非常适合使用简单,并且其求解只涉及到矩阵运算,所以非常适合使用简单,并且其求解只涉及到矩阵运算,所以非常适合使用MATLABMATLAB来求解。来求解。来求解。来求解。4解线性二次型最优控制问题解线性二次型最优控制问题方法一:方法一:方法一:方法一:求解代数黎卡提方程的算法有很多,下面介绍一种简单的迭代求解代数黎卡提方程的算法有很多,下面介绍一种简单的迭代求解代数黎卡提方程的算法有很多,下面介绍一种简单的迭代求解代数黎卡提方程的算法有很多,下面介绍一种简单的迭代算法来
6、解该方程。令算法来解该方程。令算法来解该方程。令算法来解该方程。令 ,则可以写出下面的迭代公式,则可以写出下面的迭代公式,则可以写出下面的迭代公式,则可以写出下面的迭代公式如果如果如果如果 收敛于一个常数矩阵,即收敛于一个常数矩阵,即收敛于一个常数矩阵,即收敛于一个常数矩阵,即 ,则可以,则可以,则可以,则可以得出代数黎卡提方程的解为:得出代数黎卡提方程的解为:得出代数黎卡提方程的解为:得出代数黎卡提方程的解为:其中其中其中其中5解线性二次型最优控制问题解线性二次型最优控制问题%*MATLAB程序*%I=eye(size(A);iA=inv(I-A);E=iA*(I+A);G=2*iA2*B;
7、H=R+B*iA*Q*iA*B;W=Q*iA*B;P0=zeros(size(A);i=0;6解线性二次型最优控制问题解线性二次型最优控制问题while(1),i=i+1;P=E*P0*E-(E*P0*G+W)*inv(G*P0*G+H)*(E*P0*G+W)+Q;if(norm(P-P0)eps),break;else,P0=P;endendP=2*iA*P*iA;我们把这个文件命名为我们把这个文件命名为我们把这个文件命名为我们把这个文件命名为mylq.mmylq.m,方便我们以后调,方便我们以后调,方便我们以后调,方便我们以后调用来求解代数黎卡提方程。用来求解代数黎卡提方程。用来求解代数黎
8、卡提方程。用来求解代数黎卡提方程。7解线性二次型最优控制问题解线性二次型最优控制问题方法二:方法二:方法二:方法二:在在在在MATLABMATLAB的控制系统工具箱中提供了求解代数黎卡提方的控制系统工具箱中提供了求解代数黎卡提方的控制系统工具箱中提供了求解代数黎卡提方的控制系统工具箱中提供了求解代数黎卡提方程的函数程的函数程的函数程的函数 lqr()lqr(),其调用的格式为:,其调用的格式为:,其调用的格式为:,其调用的格式为:K,P,EK,P,E=lqr(A,B,Q,R)=lqr(A,B,Q,R)式中,输入矩阵为式中,输入矩阵为式中,输入矩阵为式中,输入矩阵为A,B,Q,RA,B,Q,R,
9、其中,其中,其中,其中(A,B)(A,B)为给定的对象状态为给定的对象状态为给定的对象状态为给定的对象状态方程模型,方程模型,方程模型,方程模型,(Q,R)(Q,R)分别为加权矩阵分别为加权矩阵分别为加权矩阵分别为加权矩阵QQ和和和和R R;返回矩阵;返回矩阵;返回矩阵;返回矩阵KK为状态反为状态反为状态反为状态反馈矩阵,馈矩阵,馈矩阵,馈矩阵,P P为代数黎卡提方程的解,为代数黎卡提方程的解,为代数黎卡提方程的解,为代数黎卡提方程的解,E E为闭环系统的极点。为闭环系统的极点。为闭环系统的极点。为闭环系统的极点。8解线性二次型最优控制问题解线性二次型最优控制问题这里的求解是建立在这里的求解是
10、建立在这里的求解是建立在这里的求解是建立在MATLABMATLAB的控制系统工具箱中给出的控制系统工具箱中给出的控制系统工具箱中给出的控制系统工具箱中给出的一个基于的一个基于的一个基于的一个基于SchurSchur分解的黎卡提方程求解函数分解的黎卡提方程求解函数分解的黎卡提方程求解函数分解的黎卡提方程求解函数are()are()基础上的,基础上的,基础上的,基础上的,该函数的调用格式为:该函数的调用格式为:该函数的调用格式为:该函数的调用格式为:X=are(M,T,V)X=are(M,T,V)其中,其中,其中,其中,矩阵满足下列代数黎卡提方程,矩阵满足下列代数黎卡提方程,矩阵满足下列代数黎卡提
11、方程,矩阵满足下列代数黎卡提方程,areare是是是是Algebraic Algebraic Riccati EquationRiccati Equation的缩写。的缩写。的缩写。的缩写。对比前面给出的黎卡提方程,可以容易得出对比前面给出的黎卡提方程,可以容易得出对比前面给出的黎卡提方程,可以容易得出对比前面给出的黎卡提方程,可以容易得出9解线性二次型最优控制问题解线性二次型最优控制问题方法三:方法三:方法三:方法三:我们也可以采用我们也可以采用我们也可以采用我们也可以采用care()care()函数对连续时间代数黎卡提方程求解,函数对连续时间代数黎卡提方程求解,函数对连续时间代数黎卡提方程
12、求解,函数对连续时间代数黎卡提方程求解,其调用方法如下:其调用方法如下:其调用方法如下:其调用方法如下:P,E,K,RR=care(A,B,Q,R,zeros(size(B),eye(size(A)P,E,K,RR=care(A,B,Q,R,zeros(size(B),eye(size(A)式中,输入矩阵为式中,输入矩阵为式中,输入矩阵为式中,输入矩阵为A,B,Q,RA,B,Q,R,其中,其中,其中,其中(A,B)(A,B)为给定的对象状态方为给定的对象状态方为给定的对象状态方为给定的对象状态方程模型,程模型,程模型,程模型,(Q,R)(Q,R)分别为加权矩阵分别为加权矩阵分别为加权矩阵分别为
13、加权矩阵QQ和和和和R R;返回矩阵;返回矩阵;返回矩阵;返回矩阵P P为代数黎卡提方为代数黎卡提方为代数黎卡提方为代数黎卡提方程的解,程的解,程的解,程的解,E E为闭环系统的极点,为闭环系统的极点,为闭环系统的极点,为闭环系统的极点,KK为状态反馈矩阵,为状态反馈矩阵,为状态反馈矩阵,为状态反馈矩阵,RRRR是相应的是相应的是相应的是相应的留数矩阵留数矩阵留数矩阵留数矩阵ResRes的的的的FrobeniusFrobenius范数,其值为:范数,其值为:范数,其值为:范数,其值为:sqrt(sum(diag(Res*Res)sqrt(sum(diag(Res*Res)或者用或者用或者用或者
14、用Norm(Res,fro)Norm(Res,fro)计算计算计算计算10解线性二次型最优控制问题解线性二次型最优控制问题采用采用采用采用carecare函数的优点在于可以设置函数的优点在于可以设置函数的优点在于可以设置函数的优点在于可以设置P P的终值条件。例如,可的终值条件。例如,可的终值条件。例如,可的终值条件。例如,可以在下面的程序中设置以在下面的程序中设置以在下面的程序中设置以在下面的程序中设置P P的终值条件为的终值条件为的终值条件为的终值条件为0.2;0.20.2;0.2。P,E,K,RR=care(A,B,Q,R,0.2;0.2,eye(size(A)P,E,K,RR=care
15、(A,B,Q,R,0.2;0.2,eye(size(A)采用采用采用采用lqr()lqr()函数不能设置代数黎卡提方程的边界条件。函数不能设置代数黎卡提方程的边界条件。函数不能设置代数黎卡提方程的边界条件。函数不能设置代数黎卡提方程的边界条件。11解线性二次型最优控制问题解线性二次型最优控制问题例例例例 已知已知已知已知线性系统为线性系统为线性系统为线性系统为目标函数目标函数目标函数目标函数确定最优控制。确定最优控制。确定最优控制。确定最优控制。12解线性二次型最优控制问题解线性二次型最优控制问题解:方法一:解:方法一:解:方法一:解:方法一:A=0 1;-5,-3;B=0;1;A=0 1;-
16、5,-3;B=0;1;A=0 1;-5,-3;B=0;1;A=0 1;-5,-3;B=0;1;Q=500 200;200 100;R=1.6667;Q=500 200;200 100;R=1.6667;Q=500 200;200 100;R=1.6667;Q=500 200;200 100;R=1.6667;mylqmylqmylqmylqK=inv(R)*B*PK=inv(R)*B*PK=inv(R)*B*PK=inv(R)*B*PP P P PE=eig(A-B*K)E=eig(A-B*K)E=eig(A-B*K)E=eig(A-B*K)运行结果:运行结果:运行结果:运行结果:K=13.0
17、276 6.7496K=13.0276 6.7496K=13.0276 6.7496K=13.0276 6.7496P=67.9406 21.7131P=67.9406 21.7131P=67.9406 21.7131P=67.9406 21.7131 21.7131 11.2495 21.7131 11.2495 21.7131 11.2495 21.7131 11.2495E=-2.4798E=-2.4798E=-2.4798E=-2.4798 -7.2698 -7.2698 -7.2698 -7.269813解线性二次型最优控制问题解线性二次型最优控制问题方法二方法二方法二方法二:A=0
18、 1;-5,-3;A=0 1;-5,-3;A=0 1;-5,-3;A=0 1;-5,-3;B=0;1;B=0;1;B=0;1;B=0;1;Q=500 200;200 100;Q=500 200;200 100;Q=500 200;200 100;Q=500 200;200 100;R=1.6667;R=1.6667;R=1.6667;R=1.6667;K,P,E=lqr(A,B,Q,R)K,P,E=lqr(A,B,Q,R)K,P,E=lqr(A,B,Q,R)K,P,E=lqr(A,B,Q,R)运行结果:运行结果:运行结果:运行结果:K=13.0276 6.7496K=13.0276 6.749
19、6K=13.0276 6.7496K=13.0276 6.7496P=67.9406 21.7131P=67.9406 21.7131P=67.9406 21.7131P=67.9406 21.7131 21.7131 11.2495 21.7131 11.2495 21.7131 11.2495 21.7131 11.2495E=-2.4798E=-2.4798E=-2.4798E=-2.4798 -7.2698 -7.2698 -7.2698 -7.269814解线性二次型最优控制问题解线性二次型最优控制问题方法三:方法三:方法三:方法三:A=0 1;-5,-3;A=0 1;-5,-3;A
20、=0 1;-5,-3;A=0 1;-5,-3;B=0;1;B=0;1;B=0;1;B=0;1;Q=500 200;200 100;Q=500 200;200 100;Q=500 200;200 100;Q=500 200;200 100;R=1.6667;R=1.6667;R=1.6667;R=1.6667;P,E,K,RR=care(A,B,Q,R,zeros(size(B),P,E,K,RR=care(A,B,Q,R,zeros(size(B),P,E,K,RR=care(A,B,Q,R,zeros(size(B),P,E,K,RR=care(A,B,Q,R,zeros(size(B),e
21、ye(size(A)eye(size(A)eye(size(A)eye(size(A)运行结果:运行结果:运行结果:运行结果:P=67.9406 21.7131P=67.9406 21.7131P=67.9406 21.7131P=67.9406 21.7131 21.7131 11.2495 21.7131 11.2495 21.7131 11.2495 21.7131 11.2495E=-7.2698E=-7.2698E=-7.2698E=-7.2698 -2.4798 -2.4798 -2.4798 -2.4798K=13.0276 6.7496K=13.0276 6.7496K=13.
22、0276 6.7496K=13.0276 6.7496RR=3.4487e-016RR=3.4487e-016RR=3.4487e-016RR=3.4487e-01615解线性二次型最优控制问题解线性二次型最优控制问题以上的三种方法的运行结果相同。于是可以得到,最优以上的三种方法的运行结果相同。于是可以得到,最优以上的三种方法的运行结果相同。于是可以得到,最优以上的三种方法的运行结果相同。于是可以得到,最优控制变量与状态变量之间的关系:控制变量与状态变量之间的关系:控制变量与状态变量之间的关系:控制变量与状态变量之间的关系:在以上程序的基础上,可以得到在最优控制的作用下的在以上程序的基础上,可
23、以得到在最优控制的作用下的在以上程序的基础上,可以得到在最优控制的作用下的在以上程序的基础上,可以得到在最优控制的作用下的最优控制曲线与最优状态曲线,其程序如下:最优控制曲线与最优状态曲线,其程序如下:最优控制曲线与最优状态曲线,其程序如下:最优控制曲线与最优状态曲线,其程序如下:16解线性二次型最优控制问题解线性二次型最优控制问题%*MATLAB%*MATLAB程序程序程序程序*%ap=A-B*K;bp=B;C=1,0;D=0;ap=A-B*K;bp=B;C=1,0;D=0;ap,bp,cp,dp=augstate(ap,bp,C,D);ap,bp,cp,dp=augstate(ap,bp,
24、C,D);cp=cp;-K;dp=dp;0;G=ss(ap,bp,cp,dp);cp=cp;-K;dp=dp;0;G=ss(ap,bp,cp,dp);y,t,x=step(G);y,t,x=step(G);figure(pos,50,50,200,150,color,w);figure(pos,50,50,200,150,color,w);axes(pos,0.15,0.14,0.72,0.72)axes(pos,0.15,0.14,0.72,0.72)plotyy(t,y(:,2:3),t,y(:,4)plotyy(t,y(:,2:3),t,y(:,4)ax,h1,h2=plotyy(t,y
25、(:,2:3),t,y(:,4);ax,h1,h2=plotyy(t,y(:,2:3),t,y(:,4);axis(ax(1),0 2.5 0 0.1),axis(ax(2),0 2.5-1 0)axis(ax(1),0 2.5 0 0.1),axis(ax(2),0 2.5-1 0)17解线性二次型最优控制问题解线性二次型最优控制问题运行结果:运行结果:运行结果:运行结果:例图例图例图例图1 1 最优控制曲线与最优状态曲线最优控制曲线与最优状态曲线最优控制曲线与最优状态曲线最优控制曲线与最优状态曲线x1x2u*18解线性二次型最优控制问题解线性二次型最优控制问题该程序采用该程序采用该程序采用
26、该程序采用augstateaugstate函数将状态变量作为输出变量,用于显函数将状态变量作为输出变量,用于显函数将状态变量作为输出变量,用于显函数将状态变量作为输出变量,用于显示;输出项作为最优控制的输出。因此,阶跃响应输出示;输出项作为最优控制的输出。因此,阶跃响应输出示;输出项作为最优控制的输出。因此,阶跃响应输出示;输出项作为最优控制的输出。因此,阶跃响应输出y y中,中,中,中,y(1)y(1)是系统输出,是系统输出,是系统输出,是系统输出,y(2)y(2)和和和和y(3)y(3)是状态变量输出,是状态变量输出,是状态变量输出,是状态变量输出,y(4)y(4)是系统控制是系统控制是系
27、统控制是系统控制变量输出。用变量输出。用变量输出。用变量输出。用plotyyplotyy函数进行双坐标显示,并设置相应的坐标函数进行双坐标显示,并设置相应的坐标函数进行双坐标显示,并设置相应的坐标函数进行双坐标显示,并设置相应的坐标范围。范围。范围。范围。以上三种方法中,第一种方法易于理解黎卡提方程的解法,以上三种方法中,第一种方法易于理解黎卡提方程的解法,以上三种方法中,第一种方法易于理解黎卡提方程的解法,以上三种方法中,第一种方法易于理解黎卡提方程的解法,其解法简单但是并不可靠。第二种方法比起另两种方法使用方其解法简单但是并不可靠。第二种方法比起另两种方法使用方其解法简单但是并不可靠。第二
28、种方法比起另两种方法使用方其解法简单但是并不可靠。第二种方法比起另两种方法使用方便,不易出错,所以我们推荐使用这种方法。但是采用便,不易出错,所以我们推荐使用这种方法。但是采用便,不易出错,所以我们推荐使用这种方法。但是采用便,不易出错,所以我们推荐使用这种方法。但是采用lqr()lqr()函函函函数不能设置代数黎卡提方程的边界条件,所以,如果题目设置数不能设置代数黎卡提方程的边界条件,所以,如果题目设置数不能设置代数黎卡提方程的边界条件,所以,如果题目设置数不能设置代数黎卡提方程的边界条件,所以,如果题目设置了了了了P P的终值条件,我们只能使用第三种方法来求解,例如设置的终值条件,我们只能
29、使用第三种方法来求解,例如设置的终值条件,我们只能使用第三种方法来求解,例如设置的终值条件,我们只能使用第三种方法来求解,例如设置P P的终值条件为的终值条件为的终值条件为的终值条件为0.2;0.20.2;0.2。19解线性二次型最优控制问题解线性二次型最优控制问题程序如下:程序如下:程序如下:程序如下:%*MATLAB%*MATLAB程序程序程序程序*%A=0 1;-5,-3;A=0 1;-5,-3;B=0;1;B=0;1;Q=500 200;200 100;Q=500 200;200 100;R=1.6667;R=1.6667;P,E,K,RR=care(A,B,Q,R,0.2;0.2,e
30、ye(size(A)P,E,K,RR=care(A,B,Q,R,0.2;0.2,eye(size(A)20解线性二次型最优控制问题解线性二次型最优控制问题运行结果:运行结果:运行结果:运行结果:P=67.7233 21.5685P=67.7233 21.5685 21.5685 11.0961 21.5685 11.0961E=-7.3052E=-7.3052 -2.4723 -2.4723K=13.0608 6.7775K=13.0608 6.7775RR=1.2847e-014RR=1.2847e-014最优控制变量与状态变量之间的关系:最优控制变量与状态变量之间的关系:最优控制变量与状态
31、变量之间的关系:最优控制变量与状态变量之间的关系:21解线性二次型最优控制问题解线性二次型最优控制问题例例例例 无人飞行器的最优高度控制,飞行器的控制方程如下无人飞行器的最优高度控制,飞行器的控制方程如下无人飞行器的最优高度控制,飞行器的控制方程如下无人飞行器的最优高度控制,飞行器的控制方程如下 是飞行器的高度;是飞行器的高度;是飞行器的高度;是飞行器的高度;是油门输入;设计控制律使得如下指是油门输入;设计控制律使得如下指是油门输入;设计控制律使得如下指是油门输入;设计控制律使得如下指标最小标最小标最小标最小22解线性二次型最优控制问题解线性二次型最优控制问题初始状态初始状态初始状态初始状态
32、。绘制系统状态与控制。绘制系统状态与控制。绘制系统状态与控制。绘制系统状态与控制输入,对如下给定的输入,对如下给定的输入,对如下给定的输入,对如下给定的 矩阵进行仿真分析矩阵进行仿真分析矩阵进行仿真分析矩阵进行仿真分析.(a(a(a(a)(b(b(b(b)(c(c(c(c)(d(d(d(d)23解线性二次型最优控制问题解线性二次型最优控制问题解:线性二次型最优控制器设计如下:解:线性二次型最优控制器设计如下:解:线性二次型最优控制器设计如下:解:线性二次型最优控制器设计如下:1 1)、)、)、)、Q=diagQ=diag(1 1,0 0,0 0),),),),R=2R=2时,由时,由时,由时,
33、由MATLABMATLAB求得最求得最求得最求得最优状态反馈矩阵为优状态反馈矩阵为优状态反馈矩阵为优状态反馈矩阵为 k1=0.7071 2.0772 2.0510k1=0.7071 2.0772 2.0510,u(t)=u(t)=k1*x(t)k1*x(t);所画状态响应曲线及控制输入曲线如图所示。所画状态响应曲线及控制输入曲线如图所示。所画状态响应曲线及控制输入曲线如图所示。所画状态响应曲线及控制输入曲线如图所示。例图例图例图例图2 2 2 2 状态响应曲线及控制输入曲线状态响应曲线及控制输入曲线状态响应曲线及控制输入曲线状态响应曲线及控制输入曲线24解线性二次型最优控制问题解线性二次型最优
34、控制问题2 2)、)、)、)、Q=diagQ=diag(1 1,0 0,0 0),),),),R=2000R=2000时,由时,由时,由时,由MATLABMATLAB求求求求得最优状态反馈矩阵为得最优状态反馈矩阵为得最优状态反馈矩阵为得最优状态反馈矩阵为k2=0.0224 0.2517 0.4166k2=0.0224 0.2517 0.4166,u(t)=k2*x(t)u(t)=k2*x(t);所画状态响应曲线及控制输入曲线如图所示。所画状态响应曲线及控制输入曲线如图所示。所画状态响应曲线及控制输入曲线如图所示。所画状态响应曲线及控制输入曲线如图所示。例图例图例图例图3 3 3 3 状态响应曲
35、线及控制输入曲线状态响应曲线及控制输入曲线状态响应曲线及控制输入曲线状态响应曲线及控制输入曲线25解线性二次型最优控制问题解线性二次型最优控制问题3 3)、)、)、)、Q=diagQ=diag(1010,0 0,0 0),),),),R=2R=2时,由时,由时,由时,由MATLABMATLAB求得求得求得求得最优状态反馈矩阵为最优状态反馈矩阵为最优状态反馈矩阵为最优状态反馈矩阵为 k3=2.2361 4.3892 3.3077k3=2.2361 4.3892 3.3077,u(t)=k3*x(t)u(t)=k3*x(t);所画状态响应曲线及控制输入曲线如图所示。所画状态响应曲线及控制输入曲线如
36、图所示。所画状态响应曲线及控制输入曲线如图所示。所画状态响应曲线及控制输入曲线如图所示。例图例图例图例图4 4 4 4 状态响应曲线及控制输入曲线状态响应曲线及控制输入曲线状态响应曲线及控制输入曲线状态响应曲线及控制输入曲线26解线性二次型最优控制问题解线性二次型最优控制问题4 4)、)、)、)、Q=diagQ=diag(1 1,100100,0 0),),),),R=2R=2时,由时,由时,由时,由MATLABMATLAB求求求求得最优状态反馈矩阵为得最优状态反馈矩阵为得最优状态反馈矩阵为得最优状态反馈矩阵为 k4=0.7071 7.6112 4.6076k4=0.7071 7.6112 4
37、.6076,u(t)=k4*x(t)u(t)=k4*x(t);所画状态响应曲线及控制输入曲线如图所示。所画状态响应曲线及控制输入曲线如图所示。所画状态响应曲线及控制输入曲线如图所示。所画状态响应曲线及控制输入曲线如图所示。例图例图例图例图5 5 5 5 状态响应曲线及控制输入曲线状态响应曲线及控制输入曲线状态响应曲线及控制输入曲线状态响应曲线及控制输入曲线27解线性二次型最优控制问题解线性二次型最优控制问题由由由由1 1),),),),2 2),),),),3 3),),),),4 4)可分析如下:)可分析如下:)可分析如下:)可分析如下:例图例图例图例图3 3与例图与例图与例图与例图2 2相
38、比,当相比,当相比,当相比,当QQ不变,不变,不变,不变,R R增大时,各相应曲线达到增大时,各相应曲线达到增大时,各相应曲线达到增大时,各相应曲线达到稳态所需时间增长,即响应变慢;但波动幅值变小,反馈矩阵变稳态所需时间增长,即响应变慢;但波动幅值变小,反馈矩阵变稳态所需时间增长,即响应变慢;但波动幅值变小,反馈矩阵变稳态所需时间增长,即响应变慢;但波动幅值变小,反馈矩阵变小;小;小;小;例图例图例图例图4 4与例图与例图与例图与例图2 2和例图和例图和例图和例图3 3相比,当相比,当相比,当相比,当QQ对角线上第对角线上第对角线上第对角线上第1 1个元素增大时,个元素增大时,个元素增大时,个
39、元素增大时,各相应曲线达到稳态所需时间变短,即响应快;但波动幅值变各相应曲线达到稳态所需时间变短,即响应快;但波动幅值变各相应曲线达到稳态所需时间变短,即响应快;但波动幅值变各相应曲线达到稳态所需时间变短,即响应快;但波动幅值变大,反馈矩阵增大;大,反馈矩阵增大;大,反馈矩阵增大;大,反馈矩阵增大;由例图由例图由例图由例图5 5可知,当可知,当可知,当可知,当QQ对角线上第对角线上第对角线上第对角线上第2 2个元素增大时,状态个元素增大时,状态个元素增大时,状态个元素增大时,状态x1x1,x2x2曲线达到稳态所需时间较长,即响应较慢,平缓的趋于零;状曲线达到稳态所需时间较长,即响应较慢,平缓的
40、趋于零;状曲线达到稳态所需时间较长,即响应较慢,平缓的趋于零;状曲线达到稳态所需时间较长,即响应较慢,平缓的趋于零;状态态态态x3x3,控制输入,控制输入,控制输入,控制输入u u达到稳态所需时间短,即响应快;状态达到稳态所需时间短,即响应快;状态达到稳态所需时间短,即响应快;状态达到稳态所需时间短,即响应快;状态x2x2,x3x3波动幅值较小,比例图波动幅值较小,比例图波动幅值较小,比例图波动幅值较小,比例图2 2和例图和例图和例图和例图4 4小,比例图小,比例图小,比例图小,比例图3 3稍大,控制输入稍大,控制输入稍大,控制输入稍大,控制输入u u波动幅值比例图波动幅值比例图波动幅值比例图
41、波动幅值比例图2 2和例图和例图和例图和例图4 4小,比例图小,比例图小,比例图小,比例图3 3大;反馈矩阵最大。大;反馈矩阵最大。大;反馈矩阵最大。大;反馈矩阵最大。28解线性二次型最优控制问题解线性二次型最优控制问题综上所述可得结论:综上所述可得结论:综上所述可得结论:综上所述可得结论:Q=diagQ=diag(1 1,0 0,0 0),),),),R=2R=2时,系统各时,系统各时,系统各时,系统各方面响应较好。方面响应较好。方面响应较好。方面响应较好。矩阵矩阵矩阵矩阵QQ变大时,反馈矩阵变大;当变大时,反馈矩阵变大;当变大时,反馈矩阵变大;当变大时,反馈矩阵变大;当QQ的对角线上的对角
42、线上的对角线上的对角线上第第第第1 1个元素个元素个元素个元素变变变变大时,各曲线波动幅值变大,达到稳态所需时间变短;当大时,各曲线波动幅值变大,达到稳态所需时间变短;当大时,各曲线波动幅值变大,达到稳态所需时间变短;当大时,各曲线波动幅值变大,达到稳态所需时间变短;当QQ的对的对的对的对角线上角线上角线上角线上第第第第2 2个元素个元素个元素个元素变大时,各曲线波动幅值变小,达到稳态所需变大时,各曲线波动幅值变小,达到稳态所需变大时,各曲线波动幅值变小,达到稳态所需变大时,各曲线波动幅值变小,达到稳态所需时间、状态时间、状态时间、状态时间、状态x1x1、x2x2增长,状态增长,状态增长,状态
43、增长,状态x3x3,控制输入,控制输入,控制输入,控制输入u u变短。变短。变短。变短。当当当当R R变大变大变大变大时,反馈矩阵变小;各曲线波动幅值变小;达到稳时,反馈矩阵变小;各曲线波动幅值变小;达到稳时,反馈矩阵变小;各曲线波动幅值变小;达到稳时,反馈矩阵变小;各曲线波动幅值变小;达到稳态所需时间变长。态所需时间变长。态所需时间变长。态所需时间变长。所以根据实际的系统允许,我们应该适当选择所以根据实际的系统允许,我们应该适当选择所以根据实际的系统允许,我们应该适当选择所以根据实际的系统允许,我们应该适当选择QQ和和和和R R。程序程序程序程序29解线性二次型最优控制问题解线性二次型最优控
44、制问题矩阵矩阵矩阵矩阵QQ变大变大变大变大时,反馈矩阵变时,反馈矩阵变时,反馈矩阵变时,反馈矩阵变大;当大;当大;当大;当QQ的对角的对角的对角的对角线上第线上第线上第线上第1 1个元素变个元素变个元素变个元素变大时,各曲线波大时,各曲线波大时,各曲线波大时,各曲线波动幅值变大,达动幅值变大,达动幅值变大,达动幅值变大,达到稳态所需时间到稳态所需时间到稳态所需时间到稳态所需时间变短。变短。变短。变短。结论结论结论结论30解线性二次型最优控制问题解线性二次型最优控制问题矩阵矩阵矩阵矩阵QQ变大时,变大时,变大时,变大时,反馈矩阵变大;当反馈矩阵变大;当反馈矩阵变大;当反馈矩阵变大;当QQ的对角线
45、上第的对角线上第的对角线上第的对角线上第2 2个元个元个元个元素变大时,各曲线素变大时,各曲线素变大时,各曲线素变大时,各曲线波动幅值变小,达波动幅值变小,达波动幅值变小,达波动幅值变小,达到稳态所需时间、到稳态所需时间、到稳态所需时间、到稳态所需时间、状态状态状态状态x1x1、x2x2增长,增长,增长,增长,状态状态状态状态x3x3,控制输入,控制输入,控制输入,控制输入u u变短。变短。变短。变短。结论结论结论结论31解线性二次型最优控制问题解线性二次型最优控制问题当当当当R R变大时,变大时,变大时,变大时,反馈矩阵变小;反馈矩阵变小;反馈矩阵变小;反馈矩阵变小;各曲线波动幅值各曲线波动
46、幅值各曲线波动幅值各曲线波动幅值变小;达到稳态变小;达到稳态变小;达到稳态变小;达到稳态所需时间变长。所需时间变长。所需时间变长。所需时间变长。结论结论结论结论32解线性二次型最优控制问题解线性二次型最优控制问题%*MATLAB%*MATLAB程序程序程序程序*myUAV.m*%myUAV.m*%a=0 1 0;0 0 1;0 0-1/2;b=0;0;1/2;a=0 1 0;0 0 1;0 0-1/2;b=0;0;1/2;c=1 0 0;0 1 0;0 0 1;d=0;0;0;c=1 0 0;0 1 0;0 0 1;d=0;0;0;figure(1)figure(1)q=1 0 0;0 0 0
47、;0 0 0;r=2;q=1 0 0;0 0 0;0 0 0;r=2;k,p,e=lqr(a,b,q,r)k,p,e=lqr(a,b,q,r)x0=10;0;0;x0=10;0;0;a1=a-b*k;a1=a-b*k;y,x=initial(a1,b,c,d,x0,20);y,x=initial(a1,b,c,d,x0,20);33解线性二次型最优控制问题解线性二次型最优控制问题n=length(x(:,3);n=length(x(:,3);T=0:20/n:20-20/n;T=0:20/n:20-20/n;plot(T,x(:,1),black,T,x(:,2),red,T,x(:,3),g
48、reen);plot(T,x(:,1),black,T,x(:,2),red,T,x(:,3),green);xlabel(time-s);ylabel(response);xlabel(time-s);ylabel(response);title(title(图图图图(1.a)Q=diag(1,0,0),R=2(1.a)Q=diag(1,0,0),R=2时状态响应曲线时状态响应曲线时状态响应曲线时状态响应曲线)gridgridfor j=1:nfor j=1:n u(j,:)=-k*(x(j,:);u(j,:)=-k*(x(j,:);endendfigure(2)figure(2)plot(
49、T,u);xlabel(time-s);ylabel(response);plot(T,u);xlabel(time-s);ylabel(response);title(title(图图图图(1.b)Q=diag(1,0,0),R=2(1.b)Q=diag(1,0,0),R=2时控制输入时控制输入时控制输入时控制输入u u的曲线的曲线的曲线的曲线)gridgrid34解线性二次型最优控制问题解线性二次型最优控制问题%*%*figure(3)figure(3)qa=1 0 0;0 0 0;0 0 0;qa=1 0 0;0 0 0;0 0 0;ra=2000;ra=2000;ka,pa,ea=lq
50、r(a,b,qa,ra)ka,pa,ea=lqr(a,b,qa,ra)x0=10;0;0;x0=10;0;0;aa1=a-b*ka;aa1=a-b*ka;ya,xa=initial(aa1,b,c,d,x0,60);ya,xa=initial(aa1,b,c,d,x0,60);na=length(xa(:,3);na=length(xa(:,3);35解线性二次型最优控制问题解线性二次型最优控制问题Ta=0:60/na:60-60/na;Ta=0:60/na:60-60/na;plot(Ta,xa(:,1),black,Ta,xa(:,2),red,Ta,xa(:,3),green);plot