1、状态空间极点配置控制实验课件状态空间极点配置控制实验课件 易杰易杰实验二 状态空间极点配置控制实验1、状态空间分析状态空间分析 2、极点配置及仿真仿真极点配置及仿真仿真 3、极点配置控制实验极点配置控制实验 4、实验结果及实验报告实验结果及实验报告 1、状态空间分析对于控制系统对于控制系统 X=AX+Bu 式中式中 X 为状态向量(为状态向量(n 维)维)u 控制向量(纯量)控制向量(纯量)A n n维常数矩阵维常数矩阵 B n 1维常数矩阵维常数矩阵选择控制信号为:选择控制信号为:u=KX 图 1 状态反馈闭环控制原理图 求解上式,得到求解上式,得到 x(t)=(A BK)x(t)方程的解为
2、:方程的解为:x(t)=e(ABK)t x(0)可以看出,如果系统状态完全可控,可以看出,如果系统状态完全可控,K 选适当,对于任意的初选适当,对于任意的初始状态,当始状态,当t趋于无穷时,都可以使趋于无穷时,都可以使x(t)趋于趋于0。极点配置的设计步骤:极点配置的设计步骤:1)检验系统的可控性条件。检验系统的可控性条件。2)从矩阵从矩阵 A 的特征多项式的特征多项式来确定来确定 n a,a,a 1 2 的值。的值。3)确定使状态方程变为可控标准型的变换矩阵确定使状态方程变为可控标准型的变换矩阵 T:T=MW其中其中 M 为可控性矩阵,为可控性矩阵,4)利用所期望的特征值,写出期望的多项式利
3、用所期望的特征值,写出期望的多项式并确定并确定 a1,a2,a3a12 的值。的值。5)需要的状态反馈增益矩阵需要的状态反馈增益矩阵 K 由以下方程确定:由以下方程确定:2、极点配置及仿真 以小车加速度作为输以小车加速度作为输入的系统状态方程为:入的系统状态方程为:前面我们已经得到了直线一级倒立摆的状态空间模型,前面我们已经得到了直线一级倒立摆的状态空间模型,于是有:于是有:直线一级倒立摆的极点配置转化为:直线一级倒立摆的极点配置转化为:对于如上所述的系统,设计控制器,要求系统具有较短的调整对于如上所述的系统,设计控制器,要求系统具有较短的调整时间(约时间(约 3秒)和合适的阻尼(阻尼比秒)和
4、合适的阻尼(阻尼比=0.5)下面采用四种不同的方法计算反馈矩阵下面采用四种不同的方法计算反馈矩阵 K。方法一:按极点配置步骤进行计算。方法一:按极点配置步骤进行计算。1)检验系统可控性,由检验系统可控性,由 3.1.1.4 系统可控性分析可以得到,系统的状态完系统可控性分析可以得到,系统的状态完全可控性矩阵的秩等于系统的状态维数全可控性矩阵的秩等于系统的状态维数(4),系统的输出完全可控,系统的输出完全可控性矩阵的秩性矩阵的秩 等于系统输出向量等于系统输出向量y 的维数的维数(2),所以系统可控,所以系统可控。2)计算特征值计算特征值根据要求,并留有一定的裕量(设调整时间为根据要求,并留有一定
5、的裕量(设调整时间为 2 秒),我们选取期望的闭环秒),我们选取期望的闭环闭环极点的左边,因此其影响较小,因此期望的特征方程为:闭环极点的左边,因此其影响较小,因此期望的特征方程为:因此可以得到:因此可以得到:a1=24,a2=196,a3=720,a4=1600由系统的特征方程:由系统的特征方程:因此有因此有系统的反馈增益矩阵为:系统的反馈增益矩阵为:3)确定使状态方程变为可控标准型的变换矩阵确定使状态方程变为可控标准型的变换矩阵 T:T=MW式中:式中:4)于是有状态反馈增益矩阵于是有状态反馈增益矩阵 K 为:为:得到控制量为:得到控制量为:=KX=54.4218x+24.4898 x-9
6、3.2739-16.1633以上计算可以采用以上计算可以采用 MATLAB 编程计算。编程计算。运行得到以下结果:运行得到以下结果:图 3 极点配置仿真结果可以看出,在给定系统干扰后,倒立摆可以在可以看出,在给定系统干扰后,倒立摆可以在2 秒内很秒内很好的回到平衡位置,满足好的回到平衡位置,满足设计要求。设计要求。PRO 3-7 直线一级倒立摆状态空间极点配置直线一级倒立摆状态空间极点配置MATLAB 程序程序1%Googol Linear 1 stage Inverted Pendulum Poles Placement Method1%clear;A=0 1 0 0;0 0 0 0;0 0
7、 0 1;0 0 29.4 0;B=0 1 0 3;C=1 0 0 0;0 0 1 0;D=0 0;J=-10 0 0 0;0-10 0 0;0 0-2-2*sqrt(3)*i 0;0 0 0-2+2*sqrt(3)*i;pa=poly(A);pj=poly(J);M=B A*B A2*B A3*B;W=pa(4)pa(3)pa(2)1;pa(3)pa(2)1 0;pa(2)1 0 0;1 0 0 0;T=M*W;K=pj(5)-pa(5)pj(4)-pa(4)pj(3)-pa(3)pj(2)-pa(2)*inv(T)Ac=(A-B*K);Bc=B;Cc=C;Dc=D;T=0:0.005:5;
8、U=0.2*ones(size(T);Cn=1 0 0 0;Nbar=rscale(A,B,Cn,0,K);Bcn=Nbar*B;Y,X=lsim(Ac,Bcn,Cc,Dc,U,T);plot(T,X(:,1),-);hold on;plot(T,X(:,2),-.);hold on;plot(T,X(:,3),.);hold on;plot(T,X(:,4),-)legend(CartPos,CartSpd,PendAng,PendSpd)(进入(进入MATLAB Simulink 实时控制工具箱实时控制工具箱“Googol Education Products”打开打开“Inverted
9、PendulumLinear Inverted PendulumLinear 1-Stage IP Experiment PolesExperiments”中的中的“Poles Control M File1”)方法二:读者还可以通过下面的方法进行极点配置计算:方法二:读者还可以通过下面的方法进行极点配置计算:矩阵(矩阵(ABK)的特征值是方程式)的特征值是方程式 s (A BK)=0的根:的根:这是这是 s 的四次代数方程式,可表示为的四次代数方程式,可表示为适当选择反馈系数适当选择反馈系数 k1,k 2,k3,k 4系统的特征根可系统的特征根可以取得所希望的值。以取得所希望的值。把四个特征
10、根把四个特征根 1,2,3,4 设为四次代数方程式设为四次代数方程式的根,则有的根,则有比较两式有下列联立方程式比较两式有下列联立方程式如果给出的如果给出的 1,2,3,4 是实数或共轭复数,是实数或共轭复数,则联立方程式的右边全部为实数。据此可求解出实数则联立方程式的右边全部为实数。据此可求解出实数K1,k 2,k3,k4当将特征根指定为下列两组共轭复数时又又a=29.4,b=3利用方程式可列出关于利用方程式可列出关于 k1,k2,k3,k4 的方程组:的方程组:即施加在小车水平方向的控制力即施加在小车水平方向的控制力 u:=KX=54.4218x+24.4898 x-93.2739-16.
11、1633可以看出,和方法一的计算结果一样可以看出,和方法一的计算结果一样。PRO 3-8 直线一级倒立摆状态空间极点配置MATLAB 程序2(进入(进入 MATLAB Simulink 实时控制工具箱实时控制工具箱“Googol Education Products”打开打开“Inverted PendulumLinear Inverted PendulumLinear 1-Stage IP Experiment PolesExperiments”中的中的“Poles Control M File2”)方法三:利用爱克曼公式计算。方法三:利用爱克曼公式计算。爱克曼方程所确定的反馈增益矩阵为:爱
12、克曼方程所确定的反馈增益矩阵为:利用利用 MATLAB 可以方便的计算,程序如下:可以方便的计算,程序如下:(进入进入 MATLAB Simulink 实时控制工具箱实时控制工具箱“Googol Education Products”打开打开“Inverted PendulumLinear Inverted PendulumLinear 1-Stage IP Experiment PolesExperiments”中的中的“Poles Control M File3”)运行可以得到:运行可以得到:可以看出,计算结果和前面两种方法一致。可以看出,计算结果和前面两种方法一致。方法四:方法四:可以直
13、接利用可以直接利用 MATLAB 的极点配置函数的极点配置函数 K,PREC,MESSAGE=PLACE(A,B,P)来计算。来计算。(进入(进入 MATLAB Simulink 实时控制工具箱实时控制工具箱“Googol Education Products”打开打开“Inverted PendulumLinear Inverted PendulumLinear 1-Stage IP Experiment PolesExperiments”中的中的“Poles Control M File4”)为匹配为匹配 place()函数,把函数,把-10,-10 两个极点两个极点改成了改成了-10-0
14、.0001j,-10+0.0001j,因为因为增加的虚部很小,可以忽略不记,运行得到增加的虚部很小,可以忽略不记,运行得到如下结果:如下结果:可以看出,以上四种方法计算结果都保持一致。可以看出,以上四种方法计算结果都保持一致。下面对以上的计算结果在下面对以上的计算结果在 MATLAB Simulink 中进行仿中进行仿真,打开直线一级倒立摆的仿真模型:真,打开直线一级倒立摆的仿真模型:(进入(进入 MATLAB Simulink 实时控制工具箱实时控制工具箱“Googol Education Products”打开打开“Inverted PendulumLinear Inverted Pend
15、ulumLinear 1-Stage IP ExperimentPoles Experiments”中的中的“Poles Control Simulink”)其中其中“GL1IP State-Space”为直线一级倒立摆的状态空间为直线一级倒立摆的状态空间模型,双击打开如下窗口:模型,双击打开如下窗口:双击双击“Controller1”模块,打开状态反馈矩阵模块,打开状态反馈矩阵K 设置窗口:设置窗口:把计算得到的把计算得到的 K 值输入上面的窗口。值输入上面的窗口。运行仿真,得到以下结果:运行仿真,得到以下结果:图 4 直线一级倒立摆状态空间极点配置MATLAB Simulink 仿真结果
16、可以看出,在存在干扰的情况下,系统在可以看出,在存在干扰的情况下,系统在3 秒内基本上秒内基本上可以恢复到新的平衡位置,可以恢复到新的平衡位置,读者可以修改期望的性能指标,进行新的极点配置,读者可以修改期望的性能指标,进行新的极点配置,在在“Controller2”模块中设置新的控制参数,并点击模块中设置新的控制参数,并点击“Manual Switch”把控制信号切换到把控制信号切换到“Controller2”3、极点配置控制实验v 实验步骤如下实验步骤如下1)进进 入入 MATLAB Simulink 中中“matlab6p5toolboxGoogolTechInvertedPendulum
17、 Linear Inverted Pendulum,”目录,打目录,打开直线一级倒立摆状态空间极点配置控制程序如下:开直线一级倒立摆状态空间极点配置控制程序如下:(进入(进入 MATLAB Simulink 实时控制工具箱实时控制工具箱“Googol Education Products”打开打开“Inverted PendulumLinear Inverted PendulumLinear 1-Stage IP ExperimentPoles Experiments”中的中的“Poles Control Demo”)图图 5 直线一级倒立摆状态空间极点配置实时控制程序直线一级倒立摆状态空间极
18、点配置实时控制程序2)点击点击“Controller”模块设置控制器参数,把前面仿真结果较好的参数输入模块设置控制器参数,把前面仿真结果较好的参数输入到到模块中:模块中:点击点击“OK”完成设定。完成设定。4)点击点击 运行程序,检查电机是否上伺服,如果没有上伺服,运行程序,检查电机是否上伺服,如果没有上伺服,请参见直线倒立请参见直线倒立摆使用手册相关章节。提起倒立摆的摆杆到竖直向上的位置,摆使用手册相关章节。提起倒立摆的摆杆到竖直向上的位置,在程序进入自动控制后松开。在程序进入自动控制后松开。5)双击双击“Scope”观察实验结果如下图所示:观察实验结果如下图所示:可以看出,系统可以在很小的
19、振动范围内保持平衡,小车振动可以看出,系统可以在很小的振动范围内保持平衡,小车振动幅值约为幅值约为4103m,摆杆振动的幅值约为,摆杆振动的幅值约为0.05 弧度,注意,弧度,注意,不同的控制参数会有不同的控制结果。不同的控制参数会有不同的控制结果。在给定倒立摆干扰后,系统如响应如下图所示:在给定倒立摆干扰后,系统如响应如下图所示:从上图可以看出,系统稳定时间约为从上图可以看出,系统稳定时间约为 3 秒,达到设计要求。秒,达到设计要求。4、实验结果及实验报告v上机实验并记录实验结果,完成实验报告上机实验并记录实验结果,完成实验报告。v提示:用户可以在极点配置实验的基础上添加状态观测提示:用户可以在极点配置实验的基础上添加状态观测v器,对系统进行设计和仿真以及实验。器,对系统进行设计和仿真以及实验。
侵权处理QQ:3464097650--上传资料QQ:3464097650
【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。