利用MATLAB求解极点配置问题学院:电信学院专业:自动化1002学号:10212049学生:王洋指导教师:张勇2013年5月7日现代控制理论MATLAB实验四自动化1002班王洋102120491实验四利用MATLAB求解极点配置问题实验目的:1、学习极点配置状态反馈控制器的设计算法;2、通过编程、上机调试,掌握系统极点配置设计方法。实验步骤1、极点配置状态反馈控制器的设计,采用MATLAB的m-文件编程;2、在MATLAB界面下调试程序,并检查是否运行正确。实验要求1、在运行以上程序的基础上,针对状态空间模型为01034132xxuyx的被控对象设计状态反馈控制器,使得闭环极点为-4和-5,并讨论闭环系统的稳态性能。A=[01;-3-4];B=[0;1];C=[32];D=[0];[num,den]=ss2tf(A,B,C,D)A=[01;-3-4];B=[0;1];C=[32];D=[0];[num,den]=ss2tf(A,B,C,D)num=02.00003.0000den=143原系统的传递函数为:G(s)=2𝑠+3𝑠2+4𝑠+3原系统:对给定的初始状态(0)x,可以应用MATLAB提供的函数initial画出闭环系统的状态响应曲线。现代控制理论MATLAB实验四自动化1002班王洋102120492已知X(0)=[10],执行以下的M-文件:A=[01;-3-4];B=[0;1];sys=ss(A,[0;0],eye(2),0);t=0:0.01:4;x=initial(sys,[1;0],t);x1=[10]*x';x2=[01]*x';subplot(2,1,1);plot(t,x1),gridtitle('ResponsetoInitialCondition')ylabel('x1')subplot(2,1,2);plot(t,x2),gridylabel('x2')原系统的输出响应为:A=[01;-3-4];B=[0;1];C=[32];D=0;step(A,B,C,D)现代控制理论MATLAB实验四自动化1002班王洋102120493配置极点后的系统:对给定的初始状态(0)x,可以应用MATLAB提供的函数initial画出闭环系统的状态响应曲线。已知X(0)=[10],执行以下的M-文件:A=[01;-3-4];B=[0;1];J=[-4-5];K=place(A,B,J);sys=ss(A-B*K,[0;0],eye(2),0);t=0:0.01:4;x=initial(sys,[1;0],t);x1=[10]*x';x2=[01]*x';subplot(2,1,1);plot(t,x1),gridtitle('ResponsetoInitialCondition')ylabel('x1')subplot(2,1,2);plot(t,x2),gridylabel('x2')现代控制理论MATLAB实验四自动化1002班王洋102120494A=[01;-3-4];B=[0;1];C=[32];D=0;J=[-4-5];K=place(A,B,J)K=17.00005.0000A=[01;-3-4];B=[0;1];C=[32];D=0;K=[175];step(A-B*K,B,C,D)现代控制理论MATLAB实验四自动化1002班王洋102120495配置极点后的输出响应为:现代控制理论MATLAB实验四自动化1002班王洋102120496结论:比较原系统与配置极点后的状态响应曲线和输出曲线,配置极点后的状态响应曲线响应速度比原系统快速,但极点配置可以改变了系统的稳态性能,配置极点后的输出曲线稳态误差加大,由原来的0变为0.85,出现超调量,调节时间减小,有原来的4左右变为1.8左右,可见极点配置可以改变了系统的稳态性能及动态性能。2、分析极点配置对稳态性能有何影响?如何消除对稳态性能的负面影响?控制系统的性能主要取决于系统极点在根平面上的分布,而极点配置的目的就是寻找合适的期望极点,通过选择反馈增益矩阵,将闭环系统的极点敲好配置在根平面上所期望的位置,以获得所希望的动态性能,所以极点配置可以很好的改善或者决定系统的稳态性能。消除对稳态性能的负面影响需要正确的进行极点配置,选择合适的极点使稳态误差不要过大,合理的选择可以消除稳态误差,满足性能要求。3、受控系统的传递函数为220()2020Gsss根据性能指标设计状态反馈控制器,将希望极点配置为*1,27.077.07j通过传递函数求A、B、C、Dnum=[020];den=[12020];[A,B,C,D]=tf2ss(num,den)num=[020];den=[12020];[A,B,C,D]=tf2ss(num,den)A=-20-2010B=10C=020现代控制理论MATLAB实验四自动化1002班王洋102120497D=0求取配置极点后的K:A=[-20-20;10];B=[1;0];J=[-7.07+j*7.07-7.07-j*7.07];K=place(A,B,J)A=[-20-20;10];B=[1;0];J=[-7.07+j*7.07-7.07-j*7.07];K=place(A,B,J)K=-5.860079.9698求配置极点后的传递函数:A=[-20-20;10];B=[1;0];C=[020];D=[0];J=[-7.07+j*7.07-7.07-j*7.07];K=place(A,B,J);[num,den]=ss2tf(A-B*K,B,C,D)A=[-20-20;10];B=[1;0];C=[020];D=[0];J=[-7.07+j*7.07-7.07-j*7.07];K=place(A,B,J);[num,den]=ss2tf(A-B*K,B,C,D)num=0020den=1.000014.140099.9698现代控制理论MATLAB实验四自动化1002班王洋102120498根据性能指标设计状态反馈控制器,将希望极点配置为*1,27.077.07j,其传递函数为:G(s)=20𝑠2+14.14𝑠+99.9698对给定的初始状态(0)x,可以应用MATLAB提供的函数initial画出闭环系统的状态响应曲线。已知X(0)=[10],执行以下的M-文件:A=[-20-20;10];B=[1;0];J=[-7.07+j*7.07-7.07-j*7.07];K=place(A,B,J)sys=ss(A-B*K,[0;0],eye(2),0);t=0:0.01:4;x=initial(sys,[1;0],t);x1=[10]*x';x2=[01]*x';subplot(2,1,1);plot(t,x1),gridtitle('ResponsetoInitialCondition')ylabel('x1')subplot(2,1,2);plot(t,x2),gridylabel('x2')现代控制理论MATLAB实验四自动化1002班王洋1021204994、输出(线性)反馈能使系统极点任意配置吗?不能。对完全能控的单输入—单输出系统0=(A,b,c),不能采用输出线性反馈来实现闭环系统极点的任意配置。对单输入-单输出反馈系统h=[(A+bhc),b,c)],闭环传递函数为式中,Wo(S)=c(Si—A)-1b为受控系统的传递函数。由闭环系统特征方程可得闭环根轨迹方程hWo(S)=-1,当Wo(s)为已知时,以h(从0到)为参变量,可求得闭环系统的一组根轨迹。很显然,不管怎样选择h,也不能使根轨迹落在那些不属于根轨迹的期望极点位置上,定理因此得证。不能配置极点,正是输出线性反馈的基本弱点。在经典控制理论中,往往采用引入附加校正网络,通过增加开环零、极点的方法改变根轨迹走向,从而使其落在指定的期望位置上。)(1)()()(1shWsWbhcAsIcsWooh