倒立摆实验报告(PID控制)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
专业实验报告
直线单级倒立摆控制系统硬件结构框图如图1所示,包括计算机、I/O设备、伺服系统、倒立摆本体和光电码盘反馈测量元件等几大部分,组成了一个闭环系统。
图1 一级倒立摆实验硬件结构图
对于倒立摆本体而言,可以根据光电码盘的反馈通过换算获得小车的位移,小车的速度信号可以通过差分法得到。
摆杆的角度由光电码盘检测并直接反馈到I/O设备,速度信号可以通过差分法得到。
计算机从I/O设备中实时读取数据,确定控制策略(实际上是电机的输出力矩),并发送给I/O设备,I/O设备产生相应的控制量,交与伺服驱动器处理,然后使电机转动,带动小车运动,保持摆杆平衡。
图2是一个典型的倒立摆装置。
铝制小车由6V的直流电机通过齿轮和齿条机构来驱动。
小车可以沿不锈钢导轨做往复运动。
小车位移通过一个额外的与电机齿轮啮合的齿轮测得。
小车上面通过轴关节安装一个摆杆,摆杆可以绕轴做旋转运动。
系统的参数可以改变以使用户能够研究运动特性变化的影响,同时结合系统详尽的参数说明和建模过程,我们能够方便地设计自己的控制系统。
图2 一级倒立摆实验装置图
上面的倒立摆控制系统的主体包括摆杆、小车、便携支架、导轨、直流伺服电机等。
主体、驱动器、电源和数据采集卡都置于实验箱内,实验箱通过一条USB数据线与上位机进行数
从上图可以看出,系统在1.5秒后达到平衡,但是存在一定的稳态误差。
为消除稳态误差,我们增加积分参数Ki,令Kp=40,Ki=60,Kd=2,得到以下仿真结果:
图8 直线一级倒立摆PID控制仿真结果图
从上面仿真结果可以看出,系统可以较好的稳定,但由于积分因素的影响,稳定时间明显增大。
双击“Scope1”,得到小车的位置输出曲线为:
图9 施加PID控制器后小车位置输出曲线图
由于PID 控制器为单输入单输出系统,所以只能控制摆杆的角度,并不能控制小车的位置,所以小车会往一个方向运动,PID控制分析中的最后一段,若是想控制电机的位置,使得倒立摆系统稳定在固定位置附近,那么还需要设计位置PID闭环。
一级倒立摆的matlab实现
除去用simulink仿真的方法。
我也通过编写matlab源代码的方式实现对一级倒立摆的仿真(源码附在报告最后)
由于已经在simulink中仿真得到相对最佳的结果。
在此不再一一仿真。
仅展示仿真得到最佳值的matlab图像。
图10 小车摆角状态曲线
系统稳定时间约为3秒,超调约为0.023,响应满足指标要求。
图11 小车位置状态曲线
2)PID控制实验
打开直线一级倒立摆PID控制界面入下图所示
图12 直线一级倒立摆Simulink实时控制界面
双击“PID”模块进入PID参数设置,如下图所示:
图13 PID参数设定
把仿真得到的参数输入PID控制器,点击“OK”保存参数;
点击编译程序,完成后点击使计算机和倒立摆建立连接;
点击运行程序,检查电机是否伺服使能。
缓慢提起倒立摆的摆杆到竖直向上的位置,在程序进入自动控制后松开,当小车运动到正负限位的位置时,用工具挡一下摆杆,使小车反向运动。
三、结果
1. 完成直线倒立摆建模、仿真与分析
运行后,倒立摆经过一段时间自动起摆,到达平衡位置后稳定;如果给以一定范围内的干扰,倒立摆能较快地重新恢复平衡状态。
需要注意的是,尽量让小车处于轨道中间位置附近。
2. 完成直线一级倒立摆PID控制实验
(1)倒立摆平衡实验结果如下图所示:
图14 直线一级倒立摆PID 控制实验结果
从图中可以看出,倒立摆可以实现较好的自我调节能力及稳定性。
(2)扰动实验
在系统处于稳态时,考察系统的抗扰动能力。
在给定干扰的情况下,小车位置和摆杆角度的变化曲线如下图所示:
图15 直线一级倒立摆PID控制实验结果2(施加干扰)
可以看出,系统可以较好的抵换外界干扰,在干扰停止作用后,系统能很快回到平衡位置。
(3)实验结果分析
从图15所示的变化曲线可知,当小车位置受到外界干扰而变化时,系统控制程序总能使其在一定时间内,逐渐回到一个固定角度范围内;如果不受到干扰,将一直保持在这个角度范围内,最后趋于定值,保持稳定。
通过本次实验,对PID控制理论以及倒立摆的相关知识有了一定的了解,实现了利用PID 理论来控制直线一级倒立摆。
实验证明,PID在倒立摆控制中,在精度、稳定性和抗干扰性上面都有良好的表现,并且其系统成本低、安装简单、维护调试方便,更易于扩展。
本次实验也让我更加了解matlab软件的操作,并加深认识信号之间的处理和图像的处理,matlab的功能很强大,很多实验实不能做的实验都可以用matlab仿真,表现了matlab强大的仿真及数据分析处理能力。
matlab作为当前空寂控制技术界最流行的面向工程与科学计算的高级语言,他可以轻易地再现C语言几乎全部的功能。
从本次的实验看来,在线性控制系统的分析和仿真中, matlab拥有非常方便快捷的数据处理能力。
其实我了解matlab只是一小部分,在今后的日子我会继续学习matlab,经过这次论文的写作,我对matlab的认识和应用有了更加深刻的理解。