倒立摆系统实验设计报告.doc

上传人:本田雅阁 文档编号:2052460 上传时间:2019-02-08 格式:DOC 页数:30 大小:808.01KB
返回 下载 相关 举报
倒立摆系统实验设计报告.doc_第1页
第1页 / 共30页
倒立摆系统实验设计报告.doc_第2页
第2页 / 共30页
倒立摆系统实验设计报告.doc_第3页
第3页 / 共30页
亲,该文档总共30页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《倒立摆系统实验设计报告.doc》由会员分享,可在线阅读,更多相关《倒立摆系统实验设计报告.doc(30页珍藏版)》请在三一文库上搜索。

1、 第 1 页 学生实验报告 课程名称课程名称: : 倒立摆系统课程设计倒立摆系统课程设计 组号:组号: 7 7 姓名:姓名: 学号:学号: 邮箱:邮箱: 20102010 年年 1111 月月 1111 1 1 日日 第 2 页 目录 倒立摆系统的构成.3 单级倒立摆数学模型的建立.3 传递函数 .6 状态空间方程 .6 系统 MATLAB 仿真和开环响应.7 稳定性与可控性分析11 控制器设计12 基于状态反馈的控制算法设计与仿真 LQR 12 极点配置法 .16 PID 控制算法 19 实验结果及与仿真结果的对比分析29 感想和建议30 第 3 页 倒立摆系统的构成倒立摆系统的构成 图图

2、1 倒立摆系统的组成框图倒立摆系统的组成框图 如图 1 所示为倒立摆的结构图。系统包括计算机、运动控制卡、伺服机构、倒立摆本 体和光电码盘几大部分,组成了一个闭环系统。光电码盘 1 将小车的位移、速度信号反馈 给伺服驱动器和运动控制卡,摆杆的位置、速度信号由光电码盘 2 反馈回控制卡。计算机 从运动控制卡中读取实时数据,确定控制决策(小车向哪个方向移动、移动速度、加速度 等) ,并由运动控制卡来实现该控制决策,产生相应的控制量,使电机转动,带动小车运动, 保持摆杆平衡。 单级倒立摆数学模型的建立单级倒立摆数学模型的建立 在忽略了空气流动,各种摩擦之后,可将倒立摆系统抽象成小车和匀质杆组成的系统

3、, 如下图 2 所示 第 4 页 图图 2 单级倒立摆模型示意图单级倒立摆模型示意图 那我们在本实验中定义如下变量: M 小车质量 (本实验系统 0.5 Kg) m 摆杆质量 (本实验系统 0.2 Kg) b 小车摩擦系数 (本实验系统 0.1 N/m/sec) l 摆杆转动轴心到杆质心的长度(0.3 m) I 摆杆惯量 (0.006 kg*m*m) F 加在小车上的力 x 小车位置 摆杆与垂直向上方向的夹角 摆杆与垂直向下方向的夹角(考虑到摆杆初始位置为竖直向下) 下面我们对这个系统作一下受力分析。下图 3 是系统中小车和摆杆的受力分析图。其 中,和为小车与摆杆相互作用力的水平和垂直方向的分

4、量。 NP 注意:在实际倒立摆系统中检测和执行装置的正负方向已经完全确定,因而矢量方向 定义如图,图示方向为矢量正方向。 图图 3 倒立摆模型受力分析倒立摆模型受力分析 第 5 页 分析小车水平方向所受的合力,可以得到等式: 应用 Newton 方法来建立系统的动力学方程过程如下: 分析小车水平方向所受的合力,可以得到以下方程: NxbFxM 由摆杆水平方向的受力进行分析可以得到下面等式: )sin( 2 2 lx dt d mN 即 sincos 2 mlmlxmN 把这个等式代入上式中,就得到系统的第一个运动方程: (1)FmlmlxbxmMsincos)( 2 为了推出系统的第二个运动方

5、程,我们对摆杆垂直方向上的合力进行分析,可以得到 下面方程: cossin )cos( 2 2 2 mlmlmgP l dt d mmgP 即: 力矩平衡方程如下: INlPlcossin 注意:此方程中力矩的方向,由于,故等式sinsin,coscos, 前面有负号。 合并这两个方程,约去和,由得到第二个运动方程:PN 2 3 1 mlI (2)cossin 2 3 4 xmlmglml 设(是摆杆与垂直向上方向之间的夹角) ,假设与 1(单位是弧度)相 比很小,即1,则可以进行近似处理:,。用来1cossin0)( 2 dt d u 代表被控对象的输入力,线性化后两个运动方程如下:F (3

6、) umlxbxmM xgl )( 3 4 第 6 页 传递函数传递函数 对方程组(3)进行拉普拉斯变换,得到 (4) )()()()()( )()()( 3 4 22 22 sUssmlssbXssXmM ssXsgssl 注意:推导传递函数时假设初始条件为 0。 由于输出为角度,求解方程组(4)的第一个方程,可以得到 )( 3 4 )( 2 s s g lsX 把上式代入方程组(4)的第二个方程,得到 )()()( )( )( )( )( 2 2 2 2 2 sUssmlss s g ml mlI bss s g ml mlI mM 整理后得到传递函数: s q bmgl s q mglm

7、M s q bml s s q ml sU s 23 2 3 4 4 2 )( )( )( 其中 )()( 22 mlmlImMq 状态空间方程状态空间方程 系统状态空间方程为 DuCXy BuAXX 方程组(3)对解代数方程,得到解如下: , x 第 7 页 u lmMlmM mMg x lmM b u mMmM mg x mM b x xx )4( 3 )4( )(3 )4( 3 )4( 4 )4( 3 )4( 4 整理后得到系统状态空间方程: u lmM mM x x lmM mMg lmM b mM mg mM b x x )4( 3 0 )4( 4 0 0 )4( )(3 )4( 3

8、 0 1000 0 )4( 3 )4( 4 0 0010 u x x x y 0 0 0100 0001 系统系统 MatlabMatlab 仿真和开环响应仿真和开环响应 实际系统参数如下,求系统的传递函数、状态空间方程,并进行脉冲响应和阶跃响应 的 Matlab 仿真。 M 小车质量 1.096 Kg m 摆杆质量 0.109 Kg b 小车摩擦系数 0 .1N/m/sec l 摆杆转动轴心到杆质心的长度 0.2 5m I 摆杆惯量 0.0034 kg*m*m F 加在小车上的力 x 小车位置 摆杆与垂直方向的夹角 T 采样频率0.005 秒 注意:在进行实际系统的 Matlab 仿真时,请

9、将采样频率改为实际系统的采样频率。 传递函数: 第 8 页 在 Matlab 中,拉普拉斯变换后得到的传递函数可以通过计算并输入分子和分母矩阵来 实现。求系统传递函数的 m-文件内容如下: M = 1.096; m = 0.109; b = 0.1; I= 0.0034; g = 9.8; l = 0.25; q = (M+m)*(I+m*l2)-(m*l)2; %simplifies input num = m*l/q 0 den = 1 b*(I+m*l2)/q -(M+m)*m*g*l/q -b*m*g*l/q t = 0 : 0.01 : 5; impulse ( num , den

10、, t ) axis ( 0 1.1 0 70 ) 执行上面的文件,就可以求出系统传递函数的分子与分母多项式的 Matlab 表示: num = 2.3566 0 den = 1.0000 0.0883 -27.8285 -2.3094 可以得到系统开环脉冲响应的曲线如下: 第 9 页 00.20.40.60.81 0 10 20 30 40 50 60 70 Impulse Response Time (sec) Amplitude 图图 4 4 系统开环脉冲响应曲线系统开环脉冲响应曲线 状态空间法: 状态空间法可以进行单输入多输出系统设计,(从实验二开始,我们将尝试同时对摆杆 角度和小车位

11、置进行控制)。为了更具挑战性,给小车一个阶跃输入信号,设计指标如下: 小车位置 x 和摆杆角度 的稳定时间小于 5 秒; 位置 x 的上升时间小于 0.5 秒; 摆杆角度的超调量小于 20 度(0.35 弧度) 。 下面,我们用 Matlab 求出系统的状态空间方程各矩阵,并仿真系统的开环阶跃响应。 在这里同样给出了一个 m-文件,执行这个文件,Matlab 将会给出系统状态空间方程的 A,B,C 和 D 矩阵,并可以绘出在给定输入为一个 0.2 m 的阶跃信号时系统的响应曲线。 M = 1.096; m = 0.109; b = 0.1; I= 0.0034; g = 9.8; l = 0.

12、25; p = I*(M+m)+M*m*l2; %denominator for the A and B matricies 第 10 页 A = 0 1 0 0; 0 -(I+m*l2)*b/p (m2*g*l2)/p 0; 0 0 0 1; 0 -(m*l*b)/p m*g*l*(M+m)/p 0 B = 0; (I+m*l2)/p; 0; m*l/p C = 1 0 0 0; 0 0 1 0 D = 0; 0 T=0:0.005:10; U=0.2*ones(size(T); Y,X=lsim(A,B,C,D,U,T); plot(T,Y) axis(0 2.5 0 100) 执行该 m

13、 文件,可以求出系统的状态空间 A、B、C、D 矩阵,得到开环系统阶跃响应 的曲线。 A = 0 1.0000 0 0 0 -0.0883 0.6293 0 0 0 0 1.0000 0 -0.2357 27.8285 0 B = 0 0.8832 0 2.3566 C = 1 0 0 0 0 0 1 0 D = 第 11 页 0 0 1 00.511.522.5 0 10 20 30 40 50 60 70 80 90 100 图图 5 5 倒立摆状态空间开环系统阶跃响应曲线倒立摆状态空间开环系统阶跃响应曲线 图中,实线是摆杆角度响应曲线,虚线是小车位置响应曲线。 稳定性与可控性分析稳定性与

14、可控性分析 我们先看一看系统的稳定性,将数据代入状态方程中,利用 matlab 程序可以求出系统 的零极点。源代码如下: M = 1.096; m = 0.109; b = 0.1; I= 0.0034; l = 0.25; a b c d=wer_ss(M,m,b,l);%自己编写的函数,建立模型之用,具体程序见下面 sysc=ss(a,b,c,d); sysd=c2d(sysc,0.005); da db dc dd=ssdata(sysd); z p gain=ss2zp(da,db,dc,dd,1) z = -0.9999 -0.9999 1.0275 1.0000 + 0.0000i

15、 第 12 页 0.9733 1.0000 - 0.0000i p = 1.0000 0.9996 1.0285 0.9723 gain = 1.0e-004 * 0.1113 0.3338 wer_ss 源程序: function a b c d=wer_ss(M,m,b,l) a=0 1 0 0;0 -4*b/(4*M+m) 3*m*9.8/(4*M+m) 0;0 0 0 1;0 - 3*b/(4*M+m)*l) 3*9.8*(M+m)/(4*M+m)*l) 0; b=0;4/(4*M+m);0;3/(4*M+m)*l); c=1 0 0 0;0 0 1 0; d=0;0 由得到的 p(极

16、点)可知,有的极点在单位圆外,所以可知原系统是不稳定的。 同样,我们可以利用 matlab 来得到系统的能控性,源代码如下: ud=ctrb(da,db); rank(ud) ans = 4 由得到的 rank(ud)的值可知,原系统的能控性矩阵为 4,所以我们可知原系统是能 控的。 控制器设计控制器设计 基于状态反馈的控制算法设计与仿真基于状态反馈的控制算法设计与仿真 LQR 由理论分析知,可以设计基于最优控制的状态调节器,使系统闭环稳定。 设状态反馈调节律的形式为 )()(kxKku r 通过使性能指标函数 )()()()()()( 2 1 )()( 2 1 1 0 kukRkukXkQk

17、XNPXNXJ r T N k r TT 为最小,根据在附录 1 中我们所介绍的求得 第 13 页 GkPHHKPHRK TT rr ) 1() 1( 1 其中 P 由下列黎卡提方程获得 GkPHHkPHRHkPGGkPGQkPTT r TT r ) 1() 1() 1() 1()(1 其中,分别用来对状态向量 x(k),控制向量 u(k)引起的性能度量的相对重要性 r Q r R 进行加权。在实际运算中我们运用 Matlab 控制系统工具箱中的“dlqr”函数直接进行运算。 利用 dlqr 函数,我们需要提供两个权值矩阵:Q、R。通常我们取 R=1,而对于 Q 我 们只能通过不断的凑取来得到

18、。源代码如下: R=1; Q=10 0 0 0;0 0 0 0;0 0 1 0;0 0 0 0 Q = 10 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 T=0.005; syse k=wer_lqr(da,db,dc,dd,Q,R,T);%wer_lqr 是自己定义的函数,具体见下面程序 x0=0.05;0;0.0175;0; t=0:0.005:10; y x1=initial(syse,x0,t); plot(t,y(:,1),red,t,y(:,2),blue) wer_lqr 源程序: function sysresult k=wer_lqr(da,db,dc,dd,

19、Q,R,T); %sysresult k=wer_lqr(da,db,dc,dd,Q,R,T); k S e=dlqr(da,db,Q,R); G=da-db*k; sysresult=ss(G,db,dc,dd,T); 我们已开始的 Q 为:Q1=10 0 0 0;0 0 0 0;0 0 1 0;0 0 0 0;结果得到的图为图 6; Q2 取为:Q=100 0 0 0;0 0 0 0;0 0 10 0;0 0 0 0;结果得到的图为图 7; 通过比较,我们发现当 Q11、Q33 比值一定时,取大的值时系统的响应速度加快,但 是超调加大;反之则响应变慢但是超调减小。 第 14 页 01234

20、5678910 -0.01 0 0.01 0.02 0.03 0.04 0.05 位 位 位 位 位 位 图图 6 Q1 响应图响应图 012345678910 -0.01 0 0.01 0.02 0.03 0.04 0.05 位 位 位 位 位 位 图图 7 Q2 响应图响应图 在左右权衡之间,我们最终选取了: Q=300 0 0 0;0 0 0 0;0 0 30 0;0 0 0 0 此时的响应曲线如图 8,而 k 值为: k = 第 15 页 -16.6147 -12.4226 56.5909 10.2444 012345678910 -0.01 0 0.01 0.02 0.03 0.04

21、 0.05 位 位 位 位 位 位 图图 8 最优的响应曲线最优的响应曲线 此时的单位阶跃响应曲线为图 9: 012345678910 -0.07 -0.06 -0.05 -0.04 -0.03 -0.02 -0.01 0 0.01 0.02 位 位 位 位 位 位 图图 9 单位阶跃响应曲线单位阶跃响应曲线 从仿真效果来看,零状态响应和单位阶跃响应都符合要求。 第 16 页 极点配置法极点配置法 采用极点配置法设计多输出的倒立摆系统的控制方案。可以用完全状态反馈来解决, 控制摆杆和小车的位置。 图 10 是控制系统的示意图。 图图 10 控制系统框图控制系统框图 假定所有的状态变量都可以测量

22、和反馈,可以证明:若所研究的系统是状态完全可控 的,那么,利用状态反馈的方法,经过适当的状态反馈增益矩阵,就可以把闭环系统的极 点配置到任何期望的位置。 设开环控制系统的离散状态方程为: x(k+1) = Gx(k) + Hu(k) 其中,假设系统是状态完全可控的 x(k) 为在第 k 次采样时刻的状态矢量(n 维矢量) u(k) 为在第 k 次采样时刻的控制信号(标量) G = nn 矩阵 H = n1 矩阵 设极点配置的控制律形式为 )()(kxKku p 式中是状态反馈增益矩阵(矩阵) ,于是该系统就成为一个闭环控制系统。其 p K n1 闭环状态方程为 )()() 1(kxHKGkx

23、p 注意,的特征值就是所要求的闭环极点。 p HKG n , 21 我们希望利用状态反馈把闭环极点布置在, )()(kxKku p 1 z 2 z 。即要求特征方程为: n z )()( 21np zzzHKGzI 0 1 2 2 1 1 nn nnn azazazaz 根据 Cayley_hamiton 定理, 经过推导 (此略) 可以得到 )(1000 11 GHGGHHK n p 其中 IaGaGaGaGG nn nnn 1 2 2 1 1 )( 第 17 页 上式给出所要求的状态反馈增益矩阵。矩阵的这种特殊表达式就是常说的阿克 p K p K 曼公式。 状态反馈增益矩阵按这样的方法确定

24、,即可使误差(由扰动所引起的)以足够快的速 度降到零。注意,对于一个给定的系统,矩阵并不是唯一的,而是取决于所期望的闭 p K 环极点位置(它决定响应速度)的选择。选择期望的闭环极点或期望的特征方程是在误差 矢量响应的快速性与对扰动和测量噪声敏感型之间的一个折衷方案。也就是说,如果我们 使误差响应的速度提高,那么扰动和测量噪声的有害影响往往也会增强。在确定给定系统 的状态反馈增益矩阵时,通常是通过比较按不同的期望闭环极点或期望特征方程得到 p K 的矩阵,并从中选出使整个系统达到的特性最好的那个矩阵。在实际设计时, 我们 p K p K 运用 Matlab 控制系统工具箱中的“place”函数

25、直接进行仿真和运算。 先在连续域中进行计算,然后再转到离散域。根据系统的性能要求,我们可取 ,这时完全满足题中的性能要求。那么我们就可以进行离散域设计了:=0.707w3 n z1=exp(-3*20.5)/2+(-3*20.5)*j/2)*0.005) z1 = 0.9894 - 0.0105i z2=exp(-3*20.5)/2-(-3*20.5)*j/2)*0.005) z2 = 0.9894 + 0.0105i z3=exp(-10*0.005) z3 = 0.9512 z4=exp(-12*0.005) z4 = 0.9418 p=z1 z2 z3 z4; K=place(da,db

26、,p) K = -38.6579 -25.5096 103.3247 17.9041 G=da-db*K; syse=ss(G,db,dc,dd,0.005); t=0:0.005:10; x0=0.05; 0; 0.0175; 0; y1,x=initial(syse,x0,t); plot(t,y1(:,1),red,t,y1(:,2),blue) 第 18 页 012345678910 -0.01 0 0.01 0.02 0.03 0.04 0.05 0.06 位 位 位 位 位 位 图图 11 极点配置图零输入响应极点配置图零输入响应 而它的单位阶跃响应是: u=ones(1,leng

27、th(t); y,x=lsim(syse,u,t) 012345678910 -0.03 -0.025 -0.02 -0.015 -0.01 -0.005 0 0.005 0.01 0.015 位 位 位 位 位 位 图图 12 极点配置单位阶跃响应极点配置单位阶跃响应 从仿真效果来看,也是基本上达到了系统的要求。 第 19 页 PIDPID 控制算法控制算法 目的:目的: 设计 PID 控制器,使得当在小车上施加 1N 的脉冲信号时,闭环系统的响应指标为: 1、稳定时间小于 5 秒 2、稳态时摆杆与垂直方向的夹角变化小于 0.1 弧度 分析:分析: 系统输出量为摆杆的位置,它的初始位置为垂直

28、向上,我们给系统施加一个扰动,观 察摆杆的响应。系统框图如下: 图图 13 PID 系统框图系统框图 图中是控制器传递函数,是被控对象传递函数。)(sKD)(sG 考虑到输入,结构图可以很容易的变换成0)(sr 图图 14 PID 系统反馈控制框图系统反馈控制框图 该系统的输出为 第 20 页 )( )()( )( )( )( )( 1 )( )()(1 )( )( sF numnumPIDdendenPID denPIDnum sF dendenPID numnumPID den num sF sGsKD sG sy 其中, 被控对象传递函数的分子项num 被控对象传递函数的分母项den P

29、ID 控制器传递函数的分子项numPID PID 控制器传递函数的分母项denPID 被控对象的传递函数是 den num q bmgl s q mglmM s q bml s s q ml sU s )( )( )( 2 2 3 4 3 其中 )()( 22 mlmlImMq PID 控制器的传递函数为 denPID numPID s KsKsK s K KsKsKD IPDI PD 2 )( 调节 PID 控制器的各个参数,以得到满意的控制效果。 前面讨论的输出量只考虑了摆杆角度,那么,在我们施加扰动的过程中,小车位置如 何变化? 考虑小车位置,得到改进的系统框图如下: 图图 15 改进的

30、改进的 PID 系统控制框图系统控制框图 第 21 页 其中,是摆杆传递函数,是小车传递函数。)( 1 sG)( 2 sG 由于输入信号,所以可以把结构图转换成:0)(sr 图图 16 等价等价 PID 系统控制框图系统控制框图 其中,反馈环代表我们前面设计的摆杆的控制器。 注注:从此框图我们可以看出此处只对摆杆角度进行了控制,并没有对小车位置进行控制。 小车位置输出为: )( )()()()( )()( )( )( )( 1 )( )()(1 )( )( 2121 12 1 1 2 2 1 2 sF dennumnumPIDdendendenPID dendenPIDnum sF dende

31、nPID numnumPID den num sF sGsKD sG sX 其中,分别代表被控对象 1 和被控对象 2 传递函数的分子和 1 num 1 den 2 num 2 den 分母。和代表 PID 控制器传递函数的分子和分母。下面我们来求,numPIDdenPID)( 2 sG 根据前面实验二的推导,有 )( 3 4 )( 2 s s g lsX 可以推出小车位置的传递函数为 q bmgl s q mglmM s q bml s q mgl s q ml sU sX sG )( )( )( )( 2 2 3 4 3 2 2 3 4 2 第 22 页 其中 )()( 22 mlmlIm

32、Mq 可以看出, =,小车的算式可以简化成: 1 den 2 denden )( )()( )( )( 1 2 sF numnumPIDkdendenPID denPIDnum sX Matlab 仿真仿真 实际系统参数如下: M 小车质量 1.096 Kg m 摆杆质量 0.109 Kg b 小车摩擦系数 0 .1N/m/sec l 摆杆转动轴心到杆质心的长度 0.2 5m I 摆杆惯量 0.0034 kg*m*m F 加在小车上的力 x 小车位置 摆杆与垂直方向的夹角 T 采样频率 0.005 秒 注意:在进行实际系统的 Matlab 仿真时,请将采样频率改为实际系统的采样频率。 1参照上

33、例的处理方法,把实际系统参数代入,进行 PID 控制仿真,并找到合适的参 数; 2将小车推到导轨正中间位置,并且使摆杆处于自由下垂的静止状态; 3给计算机和电控箱通电; 4打开计算机,在 DOS 操作系统下,键入“Pend” 启动程序,并按“s”使系统处于准备 状态; 5按 “”键起摆,等摆杆立起来并稳定下来之后(此时为 LQR 控制) ,选择”控制 器”菜单中的“PID” ,输入参数,观察小车和摆杆的运动;(注意由于控制器只对 摆杆进行了控制,所以在 PID 中输入参数后小车可能向一个方向运动,此时需用手 轻轻扶一下摆杆) 6按“T”停止摆杆,当摆杆处于自由下垂的静止状态,并在”控制器”菜单

34、中选择 “PID” ,并参照仿真结果,输入 PID 控制器参数, 观察小车和摆杆的运动;(通过 第 23 页 调整参数可以控制摆杆摆起并能够竖直向上,此时可能需用手轻轻扶一下摆杆,以 避免小车“撞墙” ) 。 7如果控制效果不理想,调整控制器参数,直到获得较好的控制效果; 8运动曲线文件保存在当前路径下,其中 pos_x.dat 为小车位置,pos_t.dat 为摆杆角 度,con_u.dat 为控制量; 9到 MatLab 中运行如下指令,MatLab 会将保存的曲线重新绘制出来。 S=load(路径文件名) plot(S) 1摆杆角度控制 首先,需要把输出为摆杆角度时系统的传递函数用 Ma

35、tlab 表示出来,建立一个 m-文 件,将下面几行表示传递函数的语句拷贝进去,其中k代表比例系数 P K : M = 1.096; m = 0.109; b = 0.1; I = 0.0034; g = 9.8; l = 0.25; q =(M+m)*(I+m*l2) -(m*l)2; %simplifies input num = m*l/q 0 0 den = 1 b*(I+m*l2)/q -(M+m)*m*g*l/q -b*m*g*l/q 0 kd=1 k=1 ki=1 numPID= kd k ki ; denPID= 1 0 ; numc= conv ( num, denPID )

36、 denc= polyadd ( conv(denPID, den ), conv( numPID, num ) ) t = 0 : 0.05 : 5; impulse ( numc , denc , t ) 其中函数 polyadd 是求两个多项式之和的函数,它不是 Matlab 工具,因此必须把它 拷贝到 polyadd.m 文件中, 并把该文件的目录用 addpath 命令加到路径中。Polyadd 函数内 容如下: functionpoly=polyadd(poly1,poly2) if length(poly1)0 poly=zeros(1,mz),short+long; else

37、poly=long+short; end 在这里我们假定比例、积分和微分控制都是必需的。 现在,就可以进行系统脉冲响应的 PID 控制仿真了。在前面的 m-文件中加入下面的 语句就可以得到系统的脉冲响应仿真结果: 运行结果及响应曲线如下: num = 2.3566 0 0 den = 1.0000 0.0883 -27.8285 -2.3094 0 kd = 1 k = 1 ki = 1 numc = 2.3566 0 0 0 denc = 1.0000 2.4449 -25.4720 0.0471 0 0 第 25 页 00.511.522.533.544.55 0 1 2 3 4 5 6

38、7 8 9 10 x 10 7 Impulse Response with PID control:k=1,kd=1,ki=1 Time (sec) Amplitude 图图 1717 初始初始 PIDPID 参数摆角状态图参数摆角状态图 系统响应是不稳定的,不能满足要求,需要调整参数,和,直到获得满 P K D K I K 意的控制结果。首先增加比例系数,观察它对响应的影响,取=100,kd=1.系统响 P K P K 应如 下: num = 2.3566 0 0 den = 1.0000 0.0883 -27.8285 -2.3094 0 kd = 1 k = 100 ki = 1 num

39、c = 2.3566 0 0 0 denc = 1.0000 2.4449 207.8268 0.0471 0 0 第 26 页 00.511.522.533.544.55 -0.2 -0.15 -0.1 -0.05 0 0.05 0.1 0.15 Impulse Response with PID control k=100,ki=1,kd=1 Time (sec) Amplitude 图图 18 调节调节 PID 参数后摆角输出图参数后摆角输出图 系统稳定时间约为 4 秒,满足要求。由于此时稳态误差为 0,所以不需要改变积分环 节(你可以改变积分系数,观察系统响应如何变化) ;系统响应的超

40、调量比较大,为了减小 超调,增加微分系数,取=20,响应结果和响应曲线如下: D K D K num = 2.3566 0 0 den = 1.0000 0.0883 -27.8285 -2.3094 0 kd = 20 k = 100 ki = 1 numc = 2.3566 0 0 0 第 27 页 denc = 1.0000 47.2194 207.8268 0.0471 0 0 00.511.522.533.544.55 0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.1 Impulse Response with PID contro

41、l k=100,ki=20,kd=1 Time (sec) Amplitude 图图 19 微调微调 PID 参数后摆角状态曲线参数后摆角状态曲线 系统稳定时间约为 1 秒,超调约为 0.04,响应满足指标要求。 2小车位置变化仿真 仿真小车位置变化的 m-文件内容如下: M = 1.096; m = 0.109; b = 0.1; I = 0.0034; g = 9.8; l = 0.25; q =(M+m)*(I+m*l2) -(m*l)2; %simplifies input num1 = m*l/q 0 0 den1 = 1 b*(I+m*l2)/q -(M+m)*m*g*l/q -b

42、*m*g*l/q 0 num2 = -(I+m*l2)/q 0 m*g*l/q den2 = den1 kd = 20 k = 100 ki = 1 numPID = kd k ki; denPID = 1 0; 第 28 页 numc = conv(num2,denPID) denc = polyadd(conv(denPID,den2),conv(numPID,num1) t=0:0.05:5; impulse(numc,denc,t) 仿真结果如下: num1 = 2.3566 0 0 den1 = 1.0000 0.0883 -27.8285 -2.3094 0 num2 = -0.8

43、832 0 23.0942 den2 = 1.0000 0.0883 -27.8285 -2.3094 0 kd = 20 k = 100 ki = 1 numc = -0.8832 0 23.0942 0 denc = 1.0000 47.2194 207.8268 0.0471 0 0 第 29 页 图图 20 小车位置曲线小车位置曲线 实验结果及与仿真结果的对比分析实验结果及与仿真结果的对比分析 我们组于 2010 年 10 月前往倒立摆实验室做实验,我们共做了 PID、LQR 和极点配置 法,由于事先已经将参数设计好并经过精心的仿真修改,所以实验耗时并不长,我们在听 完宫亮老师的详细解

44、说后便开始了此次实验。首先我们将每个倒立摆起始位置都定在了中 间,并严格保证运行中不碰边,随后将仿真所得参数输入。观察现象。 在 PID 实验中,由于一开始设计时思考不够深入,将模型实际参数带入后并未对所的 结果做过多思考,结果虽然实验时初始位置正确,却出现了小车失速的现象,当我反过来 看实验报告时,才看到在当时设计报告上输出的小车位置曲线就是发散的,也就是说如果 轨道是无限宽的话,则以我的 PID 参数的倒立摆便是可以实现的,而在有限轨道长度的情 况下,以我的参数不可能实现倒立摆。这是因为 PID 的调节是基于传递函数,是单变量的 调节,为了实现倒立摆的现象不得不放弃小车位移的控制而只控制摆

45、角,这样的话在有限 轨道长度的情况下倒立摆无法在不受干扰的情况下工作,因此无法像仿真的效果那样好。 当时还试了别的几组参数,最多的也只能维持一到两秒。 然后便是 LQR 法,这个方法不管是仿真还是验证的过程都比较成功,按照仿真输入参 数,摆子起摆后,经过一段时间便稳定下来,小车位移和摆子摆角都在很小的范围震荡, 比较成功和理想。随后我们又分别将 Q11 和 Q33 改大或者减小,来验证我们仿真报告中所 发现的“当 Q11、Q33 比值一定时,取大的值时系统的响应速度加快,但是超调加大;反 之则响应变慢但是超调减小。 ”的推断。实验的结果与预期相当,当我们将参数加大时,摆 00.511.522.533.544.55 -0.1 0 0.1 0.2 0.3

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1