一、任务
设计并制作一套简易旋转倒立摆及其控制装置。旋转倒立摆的结构如图
1
所
示。电动机
A
固定在支架
B
上,通过转轴
F
驱动旋转臂
C
旋转。摆杆
E
通过转
轴
D
固定在旋转臂
C
的一端,当旋转臂
C
在电动机
A
驱动下作往复旋转运动时,
带动摆杆
E
在垂直于旋转臂
C
的平面作自由旋转。
二、要求
1
.基本要求
(
1
)摆杆从处于自然下垂状态(摆角
0
°)开始,驱动电机带动旋转臂作
往复旋转使摆杆摆动,并尽快使摆角达到或超过
-60
°
~ +60
°;
(
2
)从摆杆处于自然下垂状态开始,尽快增大摆杆的摆动幅度,直至完成
圆周运动;
(
3
)在摆杆处于自然下垂状态下,外力拉起摆杆至接近
165
°位置,外力
撤除同时,启动控制旋转臂使摆杆保持倒立状态时间不少于
5s
;期间
旋转臂的转动角度不大于
90
°。
2
.发挥部分
(
1
)从摆杆处于自然下垂状态开始,控制旋转臂作往复旋转运动,尽快使
摆杆摆起倒立,保持倒立状态时间不少于
10s
;
(
2
)在摆杆保持倒立状态下,施加干扰后摆杆能继续保持倒立或
2s
内恢复
倒立状态;
(
3
)在摆杆保持倒立状态的前提下,旋转臂作圆周运动,并尽快使单方向
转过角度达到或超过
360
°;
(
4
)其他
看完了项目的基本要求,没有做过相关的控制类型的题目感觉比较蒙的,因为根本不知道其中的原理,以及如何让它稳定达到项目的要求。我当时也是这样,但是在知网上面搜索了几篇相关的一阶倒立摆模型的文献之后就明白了其中的原理。我看的是它的论文
在线阅读-中国知网 (cnki.net)
我觉得他这个建立的模型十分好,我这里就借用了:
这里原理性的东西就不再次叙说了,直接说如何实现的问题。首先要明白一点,是xoy平面的机械摆动,,让yoz平面达到一个稳定的状态(也就是说只能直接控制xoy平面,间接影响yoz平面),明白这一点剩下的步骤就清晰多了。具体实现:在xoy平面安装一个编码器电机,驱动旋转臂,在其尾部安装一个角度传感器,,检测角度。这样一来整个项目的硬件搭建就完成了百分之七十了(这里一定要注意安装旋转臂之时一定要保证xoy平面是0°的不然后期调整极其困难)摆杆的重量尽量不要太轻,但也不要太重。剩下比较重要的一个就是电压的选取了,我这里选取的是恒流源。这个尽量选取恒流源(锂电池什么的受电量的影响太严重,这样就会极大的影响到电机)剩下还有一些影响较小的部件:稳压、驱动、oled、按键键盘。实物图如图(2)
实物图 图(2)
硬件的部分基本就这些了,但是整个项目对硬件的要求十分高,能否成功的完成项目的要求硬件起着十分大的作用。剩下就是软件部分了,我觉得真正看明白了别人写的论文之后这个就比较简单了,无非就是初始化编码器、对应的io口、adc的采集、pid控制pwm的输出。软件的整个框架是十分简单的。有一个比较重要的点就是adc的采集时间,和编码器的读取时间。
剩下就是最费时间的调试环节了,这个环节我整整花了一个多月的时间。第一个环的调节:第一个环调节好了的效果大概转个5到6圈的样子倒下去,这个是正常情况的,也是第一个环调节好了的一个特征。P I D 三个系数的调节,不论第一个环还是第二个环我都没有利用I,因为只要加上I就会使整个系统反映变慢。在调整的过程要保证一个系数 不变,去调另一个系数,这样就可以最大程度显示调节的数到底大还是小。调好一个环再去调整另一个环,第一个环调好了就不要动了,就调整后面一个环,在调第二个环的时候我是一直增加PD的系数,增大p有着加快反应时间的效果,而增大D则是加强抑制p的效果。
如何判断到底是反应时间太慢了,导致杆子一直追着跑(P过小),还是反应时间太快,虚晃一下杆子倒下(p过大)这些一系列的调整现象,还需自己感受,这里说的远远没有自己感受更加强烈。