倒立摆系统作为一种天然不稳定的系统,经常被用作验证控制方案是否可行的实验平台。在研究系统组成的基础上,建立了直线倒立摆系统的数学模型。在MATLAB的Simulink中,分别利用模块搭建的方法和编写S函数的方法,建立了直线倒立摆系统的线性和非线性模型,利用GUI完成PID控制器的设计。利用PID控制算法对直线倒立摆系统进行控制。仿真结果表明所用方法的可行性,为PID控制算法在倒立摆实验装置中的应用奠定了基础。 As a kind of natural unstable system, the inverted pendulum system is often used as a test platform to verify the feasibility of the control scheme. Based on the study of the system composition, the mathematical model of the linear inverted pendulum system is established. In Simulink MATLAB, the linear and nonlinear models of inverted pendulum system are established by using the method of module construction and the method of writing S function. And the PID controller is designed by using GUI. Inverted pendulum system is controlled based on PID control algorithm. The simulation results show the feasibility of the method, which lays the foundation for the application of the PID control algorithm in the inverted pendulum experiment equipment.
任高月,王海旭,李思尧,李凌
沈阳化工大学信息工程学院,辽宁 沈阳
收稿日期:2017年4月7日;录用日期:2017年4月26日;发布日期:2017年4月30日
倒立摆系统作为一种天然不稳定的系统,经常被用作验证控制方案是否可行的实验平台。在研究系统组成的基础上,建立了直线倒立摆系统的数学模型。在MATLAB的Simulink中,分别利用模块搭建的方法和编写S函数的方法,建立了直线倒立摆系统的线性和非线性模型,利用GUI完成PID控制器的设计。利用PID控制算法对直线倒立摆系统进行控制。仿真结果表明所用方法的可行性,为PID控制算法在倒立摆实验装置中的应用奠定了基础。
关键词 :倒立摆系统,PID控制,MATLAB仿真,GUI
Copyright © 2017 by authors and Hans Publishers Inc.
This work is licensed under the Creative Commons Attribution International License (CC BY).
http://creativecommons.org/licenses/by/4.0/
倒立摆系统是一个非线性且不稳定的系统,是研究控制理论的经典实验装置。其结构简单、成本低廉的特点,使其成为进行控制理论教学及开展各种控制实验的理想实验平台,也是研究智能控制方法较为理想的实验装置 [
1984年,Wattes首先研究了用LQR方法控制倒立摆 [
以上各位学者的工作充分表明了研究倒立摆系统控制方法的重要性。本文在对直线倒立摆系统进行机理分析的基础上,建立了其完整的非线性模型和线性模型。利用MATLAB GUI开发出PID仿真平台,利用本仿真平台对PID的控制算法进行仿真并评估该控制方法应用到倒立摆系统的可行性。
完整的倒立摆系统包括计算机、运动控制卡、伺服系统、倒立摆本体和光电码盘、反馈测量元件等几大部分,共同组成一个闭环系统。闭环系统由控制器、受控对象和反馈通路组成。在倒立摆系统中控制器为计算机,受控对象为小车与摆杆。如图1所示。
忽略空气阻力及各种摩擦力,将倒立摆系统看成由小车和匀质刚性摆杆组成。系统内部各项参数见表1。
分析小车水平方向所受的合力,可得:
图1. 直线型倒立摆系统结构图
变量名称 | 数值 |
---|---|
小车质量(M) | 0.5 kg |
摆杆质量(m) | 0.2 kg |
小车摩擦系数(b) | 0.1 N/m/sec |
摆杆转动轴心到杆质心的长度(l) | 0.3 m |
摆杆转动惯量(I) | 0.006 kg∙m2 |
加在小车上的力(F) | |
小车位置(x) | |
摆杆与垂直向上方向的夹角(f) |
表1. 标准试验系统结果数据
在摆杆水平方向的受力进行分析可得:
即:
将(2)代入(1)可得:
对摆杆进行竖直方向的受力分析得:
力矩平衡方程:
将(4)、(5)合并得:
设
用u来代表施加于小车上的力得:
通过Laplace变换可以得到系统的传递函数模型:
其中,
用MATLAB可以建立PID控制器的Simulink的模型仿真,既可以节省编程的工作量,也可以清楚直观的进行操作。当模拟运行遇到问题时,可以轻松改变仿真中的参数,完成对仿真系统的校正。如图2所示。
这里使用GUI来完成页面的设计。页面包含三个数值输入文本框(edit),分别对应KP、KI、Kd。一个按钮(pushbutton)作为程序的运行按钮;一个图像显示的窗口(axes)作为图像的输出窗口。使用者只需在KP、KI、Kd的文本框中输入想要仿真的数值然后单击上面的按钮即可进行仿真。
在GUI中设计页面,设计步骤如下:
① 首先,新建一个GUI,在界面编辑窗口中放入三个静态文本(text)从上到下以此命名为KP、KI、Kd。在它们的后边分别放一个输入文本框(edit)。在右侧空白的区域放一个大小合适的按钮(pushbutton),在下方的空白区域放一个图像输出窗口(axes)。
② 给三个输入文本框创建独立的回调函数,将程序运行时操作者输入的数值从上到下依次保存为m
函数中的变量P、I、D。作为PID控制器的系数带入Simulink中,并将按钮单击动作时触发运行事件。
③ 将Simulink框图中的输出out1与GUI中的
axes相连接,使得仿真生成的曲线图在GUI的界面中显示。程序界面如图3所示
本模拟过程由软件来实现,只需要利用计算机就可以完成对PID算法的模拟,减少了实验的成本并提高了实验效率。
在Simulink的模型仿真中,双击Scope打开图像生成窗口。在PID控制器中输入KP、KI、Kd的系数
图2. 倒立摆系统Simulink仿真结构图
图3. GUI程序界面
从图4可以看出,控制曲线不收敛,因此增大控制量。将PID控制器系数改为
为消除系统的振荡,增加微分控制参数Kd。将PID控制器系数改为
图4. PID响应曲线(KP = 1; KI = 1; Kd = 1)
图5. PID响应曲线(KP = 100; KI = 1; Kd = 1)
图6. PID响应曲线(KP = 100; KI = 1; Kd = 20)
从PID控制器系统响应曲线可以看出,系统在KP,KI,Kd没有调整前是不稳定的。当
将参数
本文从倒立摆的数学建模入手,在此基础之上基于MATLAB中Simulink的仿真建模。并使用GUI设计并建立PID控制器,对KP、KI、Kd的参数进行调整。通过生成的控制曲线来评估这一组参数的控制效果。将得到的参数在倒立摆系统上进行验证,减少了实验的时间与花费的精力。本课题经检验达到了预期的目标,取得了理想的结果。但平衡的时候出现的小幅的振荡等问题都有待于改善,今后会在单纯的PID控制中加入模糊控制,来进行PID控制器的优化设计。
任高月,王海旭,李思尧,李 凌. 倒立摆系统PID控制方法仿真研究 Simulation Research on PID Control Method of Inverted Pendulum System[J]. 动力系统与控制, 2017, 06(02): 68-75. http://dx.doi.org/10.12677/DSC.2017.62009