PID控制单级倒立摆的平衡
前言
倒立摆控制系统是一个复杂的、不稳定的、非线性系统,是进行控制理论教学及开展各种控制实验的理想实验平台。对倒立摆系统的研究能有效的反映控制中的许多典型问题:如非线性问题、鲁棒性问题、镇定问题、随动问题以及跟踪问题等。通过对倒立摆的控制,用来检验新的控制方法是否有较强的处理非线性和不稳定性问题的能力。同时,其控制方法在军工、航天、机器人和一般工业过程领域中都有着广泛的用途,如机器人行走过程中的平衡控制、火箭发射中的垂直度控制和卫星飞行中的姿态控制等。
为了加深对PID和simscape的理解,利用simulink搭建一个倒立摆并对其进行PID控制。
一、在matlab命令行窗口中输入smnew来搭建仿真环境。
其中,重力在Z轴负方向。
二、根据要求来确定需要的模块
三、加入需要的模块
可以在仿真环境空白处双击,输入要加入模块的名字,来实现快速加入。加入Prismatic
Joint(滑动副)和Revolute Joint(转动副)
。
快速复制两个,按鼠标右键拖拽即可。一个作为小车,一个作为摆杆。
四、建立合适的坐标变换并进行连接
首先,打开滑动副介绍界面可以看到,滑动副的移动是沿z轴运动,因为重力在z轴方向,因此希望小车沿x轴运动。
因此,将坐标沿+Y轴旋转90度,便实现小车沿x轴运动。
其次确定小车的尺寸为20*15*10;此时,小车的Z应该是X尺寸,Y仍然是Y,X应该是Z尺寸,因此小车的设定为下图。
随之,为避免迷糊,再进行坐标变换,将滑块进行反向运转,即绕+Y轴旋转-90度。
其次,打开转动副介绍界面可以看到,转动副的转动是让x和y沿z轴运动,即在x0y面内运动,因为重力在z轴方向,因此希望小车沿y轴转动。
因此,将坐标沿+X轴旋转90度,便实现小车沿y轴转动。(实现了Y轴和Z轴的对调)
随之,为避免迷糊,再进行坐标变换,将滑块进行反向运转,即绕+X轴旋转-90度。
设置一下摆杆的长度为100cm,并且在摆杆底部加个坐标,即让坐标平移到底部。
最终搭建好的simulink图为下图所示。
五、给摆杆一个初始角度,让其运动起来
六、通过设置PID对其调整
在旋转关节处加入位置传感器;在滑动副处加入位置输入,同时设置力自动计算。
PID控制是一种线性控制,它将给定值r(t)与实际输出值y(t)的偏差的比例(P)、积分(I)、微分(D)通过线性组合形成控制量,对被控对象进行控制。
添加比例模块、积分模块、微分模块。
运行后出现:原因是:Simulink-PS Converter的输入参数是不够的,修改一下,输入两阶进去。
最后通过修改PID的值实现对小车的合理控制。
倒立摆