【Simulink】PID控制单级小车倒立摆的平衡

PID控制单级倒立摆的平衡

前言

倒立摆控制系统是一个复杂的、不稳定的、非线性系统,是进行控制理论教学及开展各种控制实验的理想实验平台。对倒立摆系统的研究能有效的反映控制中的许多典型问题:如非线性问题、鲁棒性问题、镇定问题、随动问题以及跟踪问题等。通过对倒立摆的控制,用来检验新的控制方法是否有较强的处理非线性和不稳定性问题的能力。同时,其控制方法在军工、航天、机器人和一般工业过程领域中都有着广泛的用途,如机器人行走过程中的平衡控制、火箭发射中的垂直度控制和卫星飞行中的姿态控制等。

【Simulink】PID控制单级小车倒立摆的平衡_第1张图片

 为了加深对PID和simscape的理解,利用simulink搭建一个倒立摆并对其进行PID控制。

一、在matlab命令行窗口中输入smnew来搭建仿真环境。

【Simulink】PID控制单级小车倒立摆的平衡_第2张图片

 其中,重力在Z轴负方向。

二、根据要求来确定需要的模块

【Simulink】PID控制单级小车倒立摆的平衡_第3张图片

三、加入需要的模块

可以在仿真环境空白处双击,输入要加入模块的名字,来实现快速加入。加入Prismatic

Joint(滑动副)【Simulink】PID控制单级小车倒立摆的平衡_第4张图片和Revolute Joint(转动副)

 

 

快速复制两个,按鼠标右键拖拽即可。一个作为小车,一个作为摆杆。

 四、建立合适的坐标变换并进行连接

首先,打开滑动副介绍界面可以看到,滑动副的移动是沿z轴运动,因为重力在z轴方向,因此希望小车沿x轴运动。

【Simulink】PID控制单级小车倒立摆的平衡_第5张图片

 因此,将坐标沿+Y轴旋转90度,便实现小车沿x轴运动。

【Simulink】PID控制单级小车倒立摆的平衡_第6张图片

 其次确定小车的尺寸为20*15*10;此时,小车的Z应该是X尺寸,Y仍然是Y,X应该是Z尺寸,因此小车的设定为下图。

【Simulink】PID控制单级小车倒立摆的平衡_第7张图片

随之,为避免迷糊,再进行坐标变换,将滑块进行反向运转,即绕+Y轴旋转-90度。

【Simulink】PID控制单级小车倒立摆的平衡_第8张图片

 

其次,打开转动副介绍界面可以看到,转动副的转动是让x和y沿z轴运动,即在x0y面内运动,因为重力在z轴方向,因此希望小车沿y轴转动。

【Simulink】PID控制单级小车倒立摆的平衡_第9张图片

因此,将坐标沿+X轴旋转90度,便实现小车沿y轴转动。(实现了Y轴和Z轴的对调)

【Simulink】PID控制单级小车倒立摆的平衡_第10张图片

随之,为避免迷糊,再进行坐标变换,将滑块进行反向运转,即绕+X轴旋转-90度。

【Simulink】PID控制单级小车倒立摆的平衡_第11张图片

 设置一下摆杆的长度为100cm,并且在摆杆底部加个坐标,即让坐标平移到底部。

【Simulink】PID控制单级小车倒立摆的平衡_第12张图片

【Simulink】PID控制单级小车倒立摆的平衡_第13张图片

最终搭建好的simulink图为下图所示。

【Simulink】PID控制单级小车倒立摆的平衡_第14张图片

【Simulink】PID控制单级小车倒立摆的平衡_第15张图片

五、给摆杆一个初始角度,让其运动起来

【Simulink】PID控制单级小车倒立摆的平衡_第16张图片

 

六、通过设置PID对其调整

在旋转关节处加入位置传感器;在滑动副处加入位置输入,同时设置力自动计算。

【Simulink】PID控制单级小车倒立摆的平衡_第17张图片

【Simulink】PID控制单级小车倒立摆的平衡_第18张图片

 PID控制是一种线性控制,它将给定值r(t)与实际输出值y(t)的偏差的比例(P)、积分(I)、微分(D)通过线性组合形成控制量,对被控对象进行控制。

【Simulink】PID控制单级小车倒立摆的平衡_第19张图片

添加比例模块、积分模块、微分模块。【Simulink】PID控制单级小车倒立摆的平衡_第20张图片

 运行后出现:【Simulink】PID控制单级小车倒立摆的平衡_第21张图片原因是:Simulink-PS Converter的输入参数是不够的,修改一下,输入两阶进去。【Simulink】PID控制单级小车倒立摆的平衡_第22张图片

最后通过修改PID的值实现对小车的合理控制。 

 

 

你可能感兴趣的:(simulink,matlab,simscape,matlab)