计算机控制系统课题报告1.倒立摆基本背景:倒立摆,Inverted Pendulum ,是典型的多变量、高阶次,非线性、强耦合、自然不稳定系统。
倒立摆系统的稳定控制是控制理论中的典型问题,在倒立摆的控制过程中能有效反映控制理论中的许多关键问题,如非线性问题、鲁棒性问题、随动问题、镇定、跟踪问题等。
因此倒立摆系统作为控制理论教学与科研中典型的物理模型,常被用来检验新的控制理论和算法的正确性及其在实际应用中的有效性。
从 20 世纪 60 年代开始,各国的专家学者对倒立摆系统进行了不懈的研究和探索。
倒立摆系统按摆杆数量的不同,可分为一级,二级,三级倒立摆等,多级摆的摆杆之间属于自由连接(即无电动机或其他驱动设备)。
由中国的大连理工大学李洪兴教授领导的“模糊系统与模糊信息研究中心”暨复杂系统智能控制实验室采用变论域自适应模糊控制成功地实现了四级倒立摆。
因此,中国是世界上第一个成功完成四级倒立摆实验的国家。
倒立摆的控制问题就是使摆杆尽快地达到一个平衡位置,并且使之没有大的振荡和过大的角度和速度。
当摆杆到达期望的位置后,系统能克服随机扰动而保持稳定的位置。
2.倒立摆模型分析倒立摆系统的输入为小车的位移(即位置)和摆杆的倾斜角度期望值,计算机在每一个采样周期中采集来自传感器的小车与摆杆的实际位置信号,与期望值进行比较后,通过控制算法得到控制量,再经数模转换驱动直流电机实现倒立摆的实时控制。
直流电机通过皮带带动小车在固定的轨道上运动,摆杆的一端安装在小车上,能以此点为轴心使摆杆能在垂直的平面上自由地摆动。
作用力F平行于铁轨的方向作用于小车,使杆绕小车上的轴在竖直平面内旋转,小车沿着水平铁轨运动。
当没有作用力时,摆杆处于垂直的稳定的平衡位置(竖直向下)。
为了使杆子摆动或者达到竖直向上的稳定,需要给小车一个控制力,使其在轨道上被往前或朝后拉动。
我们的分析对象是一阶倒立摆。
很多国内实验都说可以合理的假设空气阻力为0,但查阅了更多的文献和真正仿真做出模型并在网络上开源的一些实验后,我认为这是不正确的。
空气阻力或许可以忽略,但是对于运动过程中的所有阻碍都忽略那就太为理想。
也就是说,我们需要自己假设一个阻碍模型,即收到的所有阻力等效成一个包含速度,位姿等的广义函数。
当然,我们的时间精力和所学知识都还有限,却也不想太过简单。
我选取了一个阻力和速度成正比的函数关系,来在以后的建模和仿真过程中来模拟倒立摆所受的一切阻碍。
3.1 倒立摆物理建模:基于经典牛顿力学受力分析如上图。
那我们在本实验中定义如下变量:M 小车质量m 摆杆质量b 小车摩擦系数l 摆杆转动轴心到杆质心的长度(0.3 m)I 摆杆惯量 (0.006 kg*m*m ) F 加在小车上的力 x 小车位置φ 摆杆与垂直向上方向的夹角θ 摆杆与垂直向下方向的夹角(考虑到摆杆初始位置为竖直向下)下面我们对这个系统作一下受力分析。
下图是系统中小车和摆杆的受力分析图。
其中,N 和P 为小车与摆杆相互作用力的水平和垂直方向的分量。
注意:在实际倒立摆系统中检测和执行装置的正负方向已经完全确定,因而矢量方向定义如图,图示方向为矢量正方向。
分析小车水平方向所受的合力,可以得到等式: 应用Newton 方法来建立系统的动力学方程过程如下: 分析小车水平方向所受的合力,可以得到以下方程:N x b F x M --=&&&由摆杆水平方向的受力进行分析可以得到下面等式:)sin (22θl x dtd mN +=即 θθθθsin cos 2&&&&&ml ml x m N -+=把这个等式代入上式中,就得到系统的第一个运动方程:F ml ml x b x m M =-+++θθθθsin cos )(2&&&&&& (1)为了推出系统的第二个运动方程,我们对摆杆垂直方向上的合力进行分析,可以得到下面方程:θθθθθcos sin )cos (222&&&ml ml mg P l dtd m mg P --=-=-即:力矩平衡方程如下:θθθ&&I Nl Pl =--cos sin 注意:此方程中力矩的方向,由于θφθφφπθsin sin ,cos cos ,-=-=+=,故等式前面有负号。
合并这两个方程,约去P 和N ,由231ml I =得到第二个运动方程: θθθcos sin 234x ml mgl ml &&&&-=+ (2)设φπθ+=(φ是摆杆与垂直向上方向之间的夹角),假设φ与1(单位是弧度)相比很小,即φ《1,则可以进行近似处理:1cos -=θ,φθ-=sin ,0)(2=dtd θ。
用u 来代表被控对象的输入力F ,线性化后两个运动方程如下:⎪⎩⎪⎨⎧=-++=-u ml x b x m M x g l φφφ&&&&&&&&&)(34 (3)3.2倒立摆物理建模:基于达朗贝尔法首先定义物理量如下,由于之后使用该方法经行下一步的仿真和系统搭建,为了使物理量名称与simulink 中保持一致便于编程和区分重新命名。
但为使公式简洁,公式中使用括号内字母表示:mCart(M):小车质量mPend(m):为摆杆质量X:小车位置Xd(ẋ):小车速度Xdd(ẍ):小车加速度theta:摆杆与垂直向上方向的夹角,方向如图所示thetad (θ):角度的一阶导thetadd (θ):角度的二阶导L:摆杆转动轴心到杆质心的长度Kd:摩擦阻力系数,认为阻力与速度成正比,忽略其他摩擦力。
F:加在小车上的力 Df:作用在摆杆质心上的干扰力使用达朗贝尔法对摆杆进行受力分析,给摆杆增加两个惯性力,如下图:其中:=mθ2L (1)F向心惯性力Fx,Fy为小车给摆杆的水平与竖直方向上的力将其沿虚线方向以及水平方向分解得:θLm=df cosθ+ẍm cosθ+mg sinθ (2)Fx=df+mẍ−mLθcosθ+Fsinθ (3)向心惯性力对小车用达朗贝尔法建立微分方程有:F=MX+F X+Kdẋ (4)联立(1)(2)(3)(4)并化简有:ẍ(m sin2θ+M)=F−df−ẋK b−θs inθmL+mgsinθcosθ+df cos2θ (5)4.matlab-simulink下倒立摆模型搭建由3.2的(2)(5)式进行拉普拉斯变换后可以直接在matlab建模,搭建如下:位移积分环节:角度积分环节:总体截图如下:将其保存为子系统模块使系统主界面简介方便以后调试,在主界面搭建干扰信号,观察模块等如下:(暂且不输入控制量F,观察物理建模的仿真结果)构造两个干扰信号如下图:设定各初值如下:在干扰1下输出如下:在干扰2下输出如下:可见其角度与位置在一定干扰下都会很快失稳。
这是可想而知的,在没有控制的情况下系统会很快失稳。
至此对于倒立摆的数学物理建模分析,以及在simulink上的物理模型搭建基本完成。
5. matlab-simulink下的pid控制仿真:Simulink中直接提供了pid控制器模块,对于我们的仿真有很大帮助。
由于需要的角度值为0,直接将角度值的负值输入pid模块,进行调试三个kp,ki,kd的值。
仅观察位置与角度。
搭建模型如下:经过多次实验,在[kp ki kd]=[100 40 10]时效果较好。
设置模块如下:在干扰1下输出如下:在干扰2下输出如下:可见pid可以控制角度一直保持在0左右,最大范围约在0.06,但是pid控制无法对位置量x进行调控。
当然,调整参数是一个比较麻烦的事情,这几个数字是实验很多次以后的结果。
下附一些参数没有设置好的实例。
为避免重复,仅展现在干扰1 下的输出结果。
Kp过大:出现震荡。
Kp过小:无法稳定Ki过大:出现往复震荡Ki过小:存在稳态误差Kd过大:出现尖峰且往复震荡。
Kd过小:出现震荡。
6,matlab-simulink对控制器的鲁棒性测试:当小车的物理量并不是我们所设置的初始值时,控制器能有还有较好的发挥呢?即在正真应用的时候,各个物理参数都是实验测量的,肯定和真实值有一些出入,真正好的控制器应该有较好的鲁棒性,在输入的初始值和真实值基本相似的情况下仍有较好发挥。
故而调整初始值的mPend观察pid控制的鲁棒性。
由于图片结果大多类似,(仅展示在干扰1下的输出)mPend=0.4mPend=0.6mPend=0.8MCart=2 :角度摆动幅度有明显增加,但仍在一个较小值,波形基本一致MCart=3:基本同上L=0.5L=1上面几个图片波形基本一样,这应该是基本参数一致仿真的结果。
具体数字有一定区别,但都在很小范围为内变动。
在文档中的显示基本看不出区别。
可见pid控制具有相当的鲁棒性。
其的性能还是可以信赖的。
7.引用和参考文献:[1] “倒立摆”词条,百度百科。
[Z][2] “现代控制—倒立摆系统与仿真”。