收藏 分享(赏)

一阶倒立摆控制器设计-自动化倒立摆课程设计报告.doc

上传人:为人民服务 文档编号:2358919 上传时间:2018-09-12 格式:DOC 页数:29 大小:646KB
下载 相关 举报
一阶倒立摆控制器设计-自动化倒立摆课程设计报告.doc_第1页
第1页 / 共29页
一阶倒立摆控制器设计-自动化倒立摆课程设计报告.doc_第2页
第2页 / 共29页
一阶倒立摆控制器设计-自动化倒立摆课程设计报告.doc_第3页
第3页 / 共29页
一阶倒立摆控制器设计-自动化倒立摆课程设计报告.doc_第4页
第4页 / 共29页
一阶倒立摆控制器设计-自动化倒立摆课程设计报告.doc_第5页
第5页 / 共29页
点击查看更多>>
资源描述

1、倒立摆课程设计报告1课程设计说明书课程名称: 控制系统课程设计 设计题目:一阶倒立摆控制器设计 院 系: 信息与电气工程学院 班 级: 设 计 者: 学 号: 指导教师: 设计时间:2013 年 2 月 25 日到 2013 年 3 月 8 号 倒立摆课程设计报告2课程设计(论文)任务书专 业 自动化 班 级 0902101学 生 指导教师题 目 一阶倒立摆课程设计子 题设计时间 2013 年 2 月 25 日 至 2013 年 3 月 8 日 共 2 周设计要求设计(论文)的任务和基本要求,包括设计任务、查阅文献、方案设计、说明书(计算、图纸、撰写内容及规范等) 、工作量等内容。1建立一阶倒

2、立摆数学模型2做模型仿真试验(1)给出 Matlab 仿真程序。(2)给出仿真结果和响应曲线。3倒立摆系统的 PID 控制算法设计设计 PID 控制器,使得当在小车上施加 1N 的脉冲信号时,闭环系统的响应指标为:(1)稳定时间小于 5 秒(2)稳态时摆杆与垂直方向的夹角变化小于 0.1 弧度并作 PID 控制算法的 MATLAB 仿真4倒立摆系统的最优控制算法设计用状态空间法设计控制器,使得当在小车上施加 0.2m 的阶跃信号时,闭环系统的响应指标为:(1)摆杆角度 和小车位移 的稳定时间小于 5 秒x(2) 的上升时间小于 1 秒x(3) 的超调量小于 20 度(0.35 弧度)(4)稳态

3、误差小于 2%。指导教师签字: 系(教研室)主任签字:2013 年 3 月 5 日倒立摆课程设计报告3目录一、 建立一阶倒立摆数学模型 41. 一阶倒立摆的微分方程模型 .42. 一阶倒立摆的传递函数模型 .63. 一阶倒立摆的状态空间模型 .7二、 一阶倒立摆 matlab 仿真 .9三、 倒立摆系统的 PID 控制算法设计 .13四、倒立摆系统的最优控制算法设计 23五、 总结 28六、 参考文献 29倒立摆课程设计报告41、 建立一阶倒立摆数学模型首先建立一阶倒立摆的物理模型。在忽略空气阻力和各种摩擦之后, 可将直线一级倒立摆系统抽象成小车和匀质杆组成的系统,如图 1 所示。系统内部各相

4、关参数定义如下:M 小车质量 m 摆杆质量 b 小车摩擦系数 l 摆杆转动轴心到杆质心的长度 I 摆杆惯量 F 加在小车上的力 x 小车位置 摆杆与垂直向上方向的夹角 摆杆与垂直向下方向的夹角(考虑到摆杆初始位置为竖直向下)1. 一阶倒立摆的微分方程模型对一阶倒立摆系统中的小车和摆杆进行受力分析,其中,N 和 P 为小车与摆杆相互作用力的水平和垂直方向的分量。倒立摆课程设计报告5图 1-2 小车及摆杆受力图分析小车水平方向所受的合力,可以得到以下方程:(1-1)由摆杆水平方向的受力进行分析可以得到下面等式:(1-2)即:(1-3)把这个等式代入式(1-1)中,就得到系统的第一个运动方程:(1-

5、4)为了推出系统的第二个运动方程,我们对摆杆垂直方向上的合力进行分析,可以得到下面方程:(1-5)即:(1-6)力矩平衡方程如下:(1-7)由于 所以等式前面有负号。倒立摆课程设计报告6合并这两个方程,约去 P 和 N,得到第二个运动方程:(1-8)设 , ( 是摆杆与垂直向上方向之间的夹角) ,假设 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 0A =0 1.0000 0 00 -0.0883 0.6293 00 0 0 1.00000 -0.2357 27.8285 0 B=0;(

6、I+m*L2)/p;0;m*L/pB =00.883202.3566 C=1 0 0 0;0 0 1 0D=0;0C =1 0 0 00 0 1 0D =00matlab 仿真的开环阶跃响应曲线如下图所示,系统并不稳定。倒立摆课程设计报告130 0.5 1 1.5 2 2.50102030405060708090100cart positionpendulum angle图 2.2 系统开环阶跃响应曲线3、 倒立摆系统的 PID 控制算法设计1. 实验要求与目的 要求:设计 PID 控制器,使得当在小车上施加 1N 的脉冲信号时,闭环系统的响应指标为:(1)稳定时间小于 5 秒(2)稳态时摆杆

7、与垂直方向的夹角变化小于 0.1 弧度并作 PID 控制算法的 MATLAB 仿真 目的:进一步熟悉 PID 控制器的设计方法,步骤,以及 P、I、D 三参数的调节方法。2. 理论分析 PID 控制原理在模拟控制系统中,控制器最常用的控制规律是 PID 控制。常规 PID 控制系统原理框图如下图所示。系统由模拟 PID 控制器 KD(S)和被控对象 G(S)组成。PID 控制器是一种线性控制器,它根据给定值 与实际输出值 构成控制偏差 )(tr()yt)(te()ety将偏差的比例(P)、积分(I)和微分(D)通过线性组合构成控制量,对被控对象进行控制,故称 PID 控制器。其控制规律为倒立摆

8、课程设计报告14dteTtetKtuDtIP)()(1)()(0或写成传递函数的形式 sTsEUGDIP1)(式中: 比例系数; 积分时间常数; 微分时间常数。PKIT在控制系统设计和仿真中,也将传递函数写成 sKsEUGDIP)(式中: 比例系数; 积分系数; 微分系数。PKIK简单说来,PID 控制器各校正环节的作用如下:(1)比例环节:成比例地反映控制系统的偏差信号 ,偏差一旦产生,控制器立即)(te产生控制作用,以减少偏差。(2)积分环节:主要用于消除稳态误差,提高系统的型别。积分作用的强弱取决于积分时间常数 , 越大,积分作用越弱,反之则越强。IT(3)微分环节:反映偏差信号的变化趋

9、势(变化速率) ,并能在偏差信号值变得太大之前,在系统中引入一个有效的早期修正信号,从而加快系统的动作速度,减小调节时间。 摆杆角度控制这个控制问题和我们以前遇到的标准控制问题有些不同,在这里输出量为摆杆的位置,它的初始位置为垂直向上,我们给系统施加一个扰动,观察摆杆的响应。系统框图如下:图中 是控制器传递函数, 是被控对象传递函数。)(sKD)(sG倒立摆课程设计报告15考虑到输入 ,结构图可以很容易地变换成0)(sr该系统的输出为 )()()( )(1)()(1)( sFnumPIDdenPIusdenIusGKsy其中: 被控对象传递函数的分子项num被控对象传递函数的分母项dePID

10、控制器传递函数的分子项PIDPID 控制器传递函数的分母项n被控对象的传递函数是 denumsqbglmlMsqlIbslU23242)()()(其中 22llmqPID 控制器的传递函数为 denPIDumsKsKsKDIPDIP2)(只需调节 PID 控制器的参数,就可以得到满意的控制效果。 小车位置控制小车位置作为输出时,系统框图如下:倒立摆课程设计报告16其中, 是摆杆传递函数, 是小车传递函数。)(1sG)(2sG由于输入信号 ,所以可以把结构图转换成:0)(r其中,反馈环代表我们前面设计的摆杆的控制器。从此框图我们可以看出此处只对摆杆角度进行了控制,并没有对小车位置进行控制。小车位

11、置输出为: )()()( )()(1)()(1)( 2121 1212 sFdenumnPIDdedenPIDeumsIdnusFGsKsX其中, , , , 分别代表被控对象 1 和被控对象 2 传递函数的分1um2子和分母。 和 代表 PID 控制器传递函数的分子和分母。下面我们来IeI求 ,根据前面实验二的推导,有)(2sG)()()2sgmlIsX可以推出小车位置的传递函数为倒立摆课程设计报告17sqbmgllMsqmlIbsUXsG232422 )()()(其中 )()(22llIMq可以看出, = = ,小车的算式可以简化成: 1den2e)()()() 1sFnumPIDkPID

12、umsX3. PID 控制算法的 MATLAB 仿真实际系统参数如下:M 小车质量 1.096 Kg m 摆杆质量 0.109 Kg b 小车摩擦系数 0 .1N/m/sec l 摆杆转动轴心到杆质心的长度 0.25m I 摆杆惯量 0.0034 kg*m*mF 加在小车上的力x 小车位置T 采样时间摆杆的 matlab 仿真程序代码如下:M=0.5;m=0.2;b=0.1;I=0.006;g=9.8;L=0.3;q=(M+m)*(I+m*L2)-(m*L)2;num1=m*L/q 0 0;den1=1 b*(I+m*L2)/q -(M+m)*m*g*L/q -b*m*g*L/q 0;Kp=1

13、;Ki=1;Kd=1;numPID= Kd Kp Ki;denPID=1 0;num=conv(num1,denPID);den=polyadd(conv(denPID,den1),conv(numPID,num1);r,p,k=residue(num,den);s=pt=0:0.005:5;impulse(num,den,t)倒立摆课程设计报告18axis(0 2 0 10)运行程序得到:s =-6.41613.96930.001900并得到仿真图像如下:0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2012345678910 Impulse ResponseTim

14、e (sec)Amplitude图 3.1 kp=ki=kd=1 时的仿真响应图可见此时系统并不稳定,此时应该首先调整 kp,观察其响应的变化:讲 kp 设置为 150,得到并观察响应图如下:s =-1.2224 +18.0044i-1.2224 -18.0044i-0.0000 -0.0000 -0.0000 倒立摆课程设计报告190 0.5 1 1.5 2 2.5 3 3.5 4-0.2-0.15-0.1-0.0500.050.10.150.2 Impulse ResponseTime (sec)Amplitude图 3-2,kp=150 系统仿真图可见此时系统两个闭环极点均在 S 平面做

15、平面,系统稳定,系统稳定时间约为 4 秒,满足要求。此时系统有极小的静态误差,根据系统对于精度的要求可酌情考虑是否添加积分控制,本文添加积分控制。将积分参数设为 5,得到并观察闭环响应图。在笔者经过多次尝试之后,发现积分控制对于系统响应的调节作用极小,笔者给出当积分参数分别设为 10 和 50 的响应图如下:0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5-0.2-0.15-0.1-0.0500.050.10.150.2 Impulse ResponseTime (sec)Amplitude图 3-3,ki=10 的响应倒立摆课程设计报告200 0.5 1 1.5 2 2.5 3

16、 3.5 4 4.5 5-0.2-0.15-0.1-0.0500.050.10.150.2Impulse ResponseTime (sec)Amplitude图 3-4,ki=50 系统的响应积分作用通常是用来调整系统的静态误差,使之达到需要的范围,但是此处明显积分作用对系统的影响不大,并了解到被控对象的特性属于变化快的类型,应该考虑改变微分控制,虽然微分控制在实际系统中运用并不多见。笔者将微分作用参数设置为 10,20,50 观察其效果图。0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5-0.2-0.15-0.1-0.0500.050.10.150.2 Impulse Res

17、ponseTime (sec)Amplitude图 3-5,kp=150,ki=50,kd=10 的仿真图像倒立摆课程设计报告210 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5-0.2-0.15-0.1-0.0500.050.10.150.2 Impulse ResponseTime (sec)Amplitude图 3-6,kp=150,ki=50,kd=20 的仿真图像0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5-0.2-0.15-0.1-0.0500.050.10.150.2 Impulse ResponseTime (sec)Amplitude图 3-7

18、,kp=150,ki=50,kd=50 的仿真图像当微分效果加上去的时候,系统闭环仿真图像结果得到了质的改善,瞬间取代了超调,不稳定,响应时间也迅速降到了 0.5 秒,稳定时间在 1 秒,完美地倒立摆课程设计报告22完成了任务。其效果已经不能简单的用好来形容,但是微分作用并非如此普及,并且每次都效果如此良好,要根据不同的对象来判断用什么作用。必须要说的是,微分作用在物理实现中是并不容易的,如果只有比例调节和积分调节就能达到预想的效果,那就不要使用微分调节。4.小车位置控制算法仿真pid2.m 是仿真小车位置变化的 m 文件,文件如下:% 小车位置 PID 控制 % 输入倒立摆传递函数 G1(s

19、)=num1/den1,G2(s)=num2/den2M = 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; num1 = m*l/q 0 0;den1 = 1 b*(I+m*l2)/q -(M+m)*m*g*l/q -b*m*g*l/q 0;num2 = -(I+m*l2)/q 0 m*g*l/q;den2 = den1;% 输入控制器 PID 数学模型 Gc(s)=numPID/denPIDKp = 150; Ki = 50; Kd = 50;numPID = Kd Kp

20、 Ki;denPID = 1 0;% 计算闭环系统传递函数 G(s)=num/den% 多项式相乘num = conv(num2,denPID);% 多项式相加den = polyadd(conv(denPID,den2),conv(numPID,num1 );% 求闭环系统极点r,p,k = residue(num,den);% 显示闭环系统极点s = p% 求取多项式传函的脉冲响应t=0:0.005:5;impulse(num,den,t) % 显示范围:横坐标 0-5,纵坐标 0-10,此条语句参数可根据仿真输出曲线调整axis(0 5 -0.1 0.5)grid此时系统取 Kp=150

21、,Ki=50,Kd=50,阶跃响应仿真曲线如下图所示:s =倒立摆课程设计报告23-115.0953-2.4030-0.417700 Impulse ResponseTime (sec)Amplitude0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5-0.100.10.20.30.4图 3-8,小车位置仿真由仿真结果能够看出,当摆杆角度处于很好的闭环控制下时,小车位置虽然处于失控状态,但是上升速度不快。四、倒立摆系统的最优控制算法设计1. 设计目的与要求现代控制理论的最突出特点就是将控制对象用状态空间表达式的形式表示出来,这样便于对多输入多输出系统进行分析和设计。线性二次型最优

22、控制算法( )是现代控制理论中一种重要的、基本的方法, 算法的目的是在一LQR LQR定的性能指标下,使系统的控制效果最佳,即利用最少的控制能量,来达到最小的状态误差。本章主要利用最优控制算法实现对一阶倒立摆系统的摆杆角度和小车位置的同时控制。设计目的:倒立摆课程设计报告24学习如何使用状态空间法设计系统的控制算法。设计要求:用状态空间法设计控制器,使得当在小车上施加 0.2N 的阶跃信号时,闭环系统的响应 指标为:(1)摆杆角度 和小车位移 的稳定时间小于 5 秒x(2) 的上升时间小于 1 秒x(3) 的超调量小于 20 度(0.35 弧度)(4)稳态误差小于 2%。2. 最优控制器的设计

23、在 PID 调节中,我们的输入是脉冲量,并且在设计控制器时,只对摆杆角度进行控制,而不考虑小车的位移。然而,对一个倒立摆系统来说,把它作为单输出系统是不符合实际的,如果把系统当作多输出系统的话,用状态空间法分析要相对简单一些,在这一章我们将设计一个对摆杆位置和小车位移都进行控制的控制器。系统状态方程为 DuCXYBA在倒立摆相关参数为:小车质量 1.096KgM摆杆质量 0.2109Kgm小车摩擦系数 0.1 N/m/secb摆杆转动轴心到杆质心的长度 0.25 ml摆杆惯量 0.0034 kg*m*mI采样时间 0.005 秒T的条件下,状态方程系数矩阵如下:; ; ;0825.73.0.1

24、.1A 356.208.B01CD倒立摆课程设计报告25最优控制的前提条件是系统是能控的,下面来判断一下系统的能控能观性。 Matlab 仿真程序如下: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 0B=0;(I+m*L2)/p;0;(m*L)/pC=1 0 0 0;0 0 1 0D=0;0Qc=ctrb(A,B);/判断能控性K=rank(Qc)Qo=obsv(A,C);/判断能观性I=rank(Qo)1. Matlab 仿真结果为:K =4I =4即:系统的能控矩阵的秩 。234rank

25、BAB系统的能观矩阵的秩 。C故系统是能控能观的。因此可以给系统加上最优控制器使得系统闭环稳定,且满足暂态性能指标。在运用线性二次型最优控制算法进行控制器设计时,主要的目的就是获得反馈向量 的值。由上一小节的推导知道,设计系统状态反馈K控制器时,一个关键的问题就是二次型性能指标泛函中加权矩阵 和 的选取。QR为了使问题简化及加权矩阵具有比较明确的物理意义,我们将 取为对角阵。假设;43210QQrR这样得到的性能指标泛函为倒立摆课程设计报告26 0 2423221 dtruxQxQJ由上式可以看出, 是对 的平方的加权, 的相对增加就意味着对 的要ii i ix求相对其它状态变量严格,在性能指

26、标中的比重大, 的偏差状态相对减小。ix是对控制量 的平方加权,当 相对较大时,意味着控制费用增加,使得控制rur能量较小,反馈减弱,而 取值较小时,系统控制费用减小,反馈增加,系统动态响应迅速。考虑到一阶倒立摆系统在运行过程中,主要的被控量为系统的输出量 和 ,x因此在选取加权对角阵 的各元素值时,由于 代表小车位置的权重,而Q1Q是摆杆角度的权重,所以只选取 、 ,而 。3Q13042选取 和 时需要注意的几个方面:R(1)由于我们采用的系统模型是线性化的结果,为使系统个状态量能够在线性范围工作,要求各状态量不应过大。(2)闭环系统最好能有一对共轭复数极点,这样有利于克服系统的非线性摩擦,

27、但系统主导极点的模不应太大以免系统频带过宽,使得系统对噪声太敏感,以致系统不能正常工作。(3)加权矩阵 的减小,会导致大的控制能量,应注意控制 的大小,不要超R U过系统执行机构的能力,使得放大器处于饱和状态。控制系统如下图所示,图中 R 是施加在小车上的阶跃输入,四个状态量 、x、 和 分别代表小车位移、小车速度、摆杆位置和摆杆角速度,输出x包括小车位置和摆杆角度。我们要设计一个控制器,使得当给系统施,y加一个阶跃输入时,摆杆会摆动,然后仍然回到垂直位置,小车到达新的命令位置。倒立摆课程设计报告272)系统仿真M = 0.5; m = 0.2; b = 0.1; I = 0.006; g =

28、 9.8; l = 0.3;p = I*(M+m)+M*m*l2;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; p = eig(A);% 求向量 Kx = 5000; y = 100;Q = x 0 0 0;0 0 0 0;0 0 y 00 0 0 0;R = 1; K = lqr(A,B,Q,R)% 计算 LQR 控制矩阵Ac = (A-B*K); Bc = B; Cc

29、 = C; Dc = D;% 计算增益 NbarCn = 1 0 0 0;Nbar = rscale(A,B,Cn,0,K);Bcn = Nbar*B;% 求阶跃响应并显示,小车位置为虚线,摆杆角度为实线T = 0:0.005:5;U = 0.2*ones(size(T);Y,X = Lsim(Ac,Bcn,Cc,Dc,U,T);plot(T,Y(:,1),:,T,Y(:,2),-)legend(Cart Position,Pendulum Angle)grid文件中用到求取输入输出匹配系数函数 rscale,它不是 Matlab 工具,因此必须把它拷贝到 rscale.m 文件中, 并把该文

30、件和源文件一起拷贝到 MATLAB 工作区。rscale.m 文件如下:% 求取输入输出匹配系数倒立摆课程设计报告28functionNbar = rscale(A,B,C,D,K) s = size(A,1);Z = zeros(1,s) 1;N = inv(A,B;C,D)*Z;Nx = N(1:s);Nu = N(1+s);Nbar = Nu + K*Nx;用函数 来计算 ,运行程序,得到:rscaleNbarK =-70.7107 -40.6531 125.7702 24.37700 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5-0.15-0.1-0.0500.050.10.150.20.25Cart PositionPendulum Angle图 4-1,系统仿真图即 ,可以看出,实际上 和 向量中710.),0,(KCnBArscaleNb NbarK与小车位置 对应的那一项相等。x此时系统的响应曲线如下,小车位置跟踪输入信号;并且,摆杆超调足够小,稳态误差满足要求,上升时间和稳定时间也符合设计指标。倒立摆课程设计报告295、 参考文献倒立摆课程设计指导书 曲延滨 2011 年 3 月 哈尔滨工业大学出版社

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

当前位置:首页 > 学术论文 > 毕业论文

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报