最近小编看到大家都在讨论基于ARM单片机的智能旋转倒立摆系统设计相关的事情,对此呢小编也是非常的感应兴趣,那么这件事究竟是怎么发生的呢?具体又是怎么回事呢?下面就是小编搜索到的关于基于ARM单片机的智能旋转倒立摆系统设计事件的相关信息,我们一起来看一下吧!
1 简易旋转倒立摆及控制装置及其功能要求
设计并制作一套简易旋转倒立摆及其控制装置。旋转倒立摆的结构如图1所示。电动机A固定在支架B上,通过转轴F驱动旋转臂C旋转。摆杆E通过转轴D固定在旋转臂C的一端,当旋转臂C在电动机A驱动下作往复旋转运动时,带动摆杆E在垂直于旋转臂C的平面作自由旋转。
(资料图片)
1.2 基本要求
(1)摆杆从处于自然下垂状态(摆角0°)开始,驱动电机带动旋转臂作往复旋转使摆杆摆动,并尽快使摆角达到或超过-60°~ +60°;
(2)从摆杆处于自然下垂状态开始,尽快增大摆杆的摆动幅度,直至完成圆周运动;
(3)在摆杆处于自然下垂状态下,外力拉起摆杆至接近165°位置,外力撤除同时,启动控制旋转臂使摆杆保持倒立状态时间不少5s;期间旋转臂的转动角度不大于90°。
(4)从摆杆处于自然下垂状态开始,控制旋转臂作往复旋转运动,尽快使 摆杆摆起倒立,保持倒立状态时间不少10s;
(5)在摆杆保持倒立状态下,施加干扰后摆杆能继续保持倒立或2s内恢复倒立状态;
(6)在摆杆保持倒立状态的前提下,旋转臂作圆周运动,并尽快使单方向转过角度达到或超过360°;
2 系统详细设计与理论分析
2.1 系统总体框图
根据题目要求,经过仔细分析,使旋转臂在电机的驱动下往复旋转运动时,倒立摆能够完成摆动、旋转、倒立以及倒立抗干扰等一系列要求。制定了如下总体设计框图如图2。
2.2 关键模块方案比较与选定
2.2.1 主控模块方案比较
方案一:采用AT89C52单片机,单片机原理简单,成本低,为历年竞赛广泛采用,但是其速度慢、存储容量小,难以完成精准的PWM算法。
方案二:采用Kinetis K60 Cortex ™-M4单片机,其控制精度等一系列性能指标都较高,对于解决实时性较高的问题是很好的选择,并且能够方便地解决整个系统的问题,是个很好的控制方案,且符合一般性对单片机低功耗的要求。
方案三:采用MC9SXS128单片机,单片机需要较高的控制精度,价格合理,基本能够实现的PID控制等一系列功能。但是这款单片机主频还是不算高,对于快速控制和运算方面仍然有些不足。
结合实际采用了方案二。
2.2.2 旋转臂动力模块方案比较
方案一:采用自己搭建的双H桥电机驱动电路驱动电机,此种方案放弃采用现成的驱动芯片,自己设计驱动电路。由于本系统要求电机驱动部分稳定工作,经多次试验证明,自己设计的驱动电路仿真实验还可以,但实际应用中还是不稳定。
方案二:采用ULN2003A芯片驱动电机。ULN2003A由7个NPN达林顿管组成,但要驱动电机需要的外部电路比L298N复杂。
方案三:采用L298N电机驱动芯片驱动电机。此芯片实现的四种电机状态已经完全满足题目要求,且四种状态控制简单,故在本系统中采用此方案。
2.2.3 倒立摆角度测量模块方案比较
方案一:数字加速度传感器。MMA7455数字加速度传感器是一款数字输出(I2C/SPI)、低功耗、紧凑型电容式微机械加速度计,具有信号调理、低通滤波器、温度补偿、自测、可配置通过中断引脚检测、以及脉冲检测(用于快速运动检测)等功能。但是由于其成本高,控制比较复杂和麻烦。
方案二:采用精密可调电位器。电位器精度较高,高速运动过程中抗干扰能力较强,安装方便,虽然有小范围盲区但容易消除。
综合以上二种方案,在本系统中选择方案四,使用WDY35D-4精密可调电位器,它轴载荷能力和抗干扰能力强,体积小,重量轻,适用于精密环境。
2.3 摆杆状态检测模块详细设计与分析
通过将导电塑料电位器安装在旋转臂的一端,旋转臂旋转带动导电塑料电位器进行计数,将导电塑料电位器计数值输给单片机,然后实现控制。利用编码器测量电机转速,从而实现对电机速度的控制。
摆动公式:
constA——控制角度常量
3 机械与硬件系统设计
3.1 机械部件设计
旋转倒立摆系统主要由旋转臂、倒立摆、支架、主控电路、伺服电机以及电位器等组成。本设计要求倒立摆的稳定性、精确性、快速性和平衡能力较高,因此,以木板作为底座,以合金钢做支架,保证结构的稳定性,以合金材料做旋转臂,将直流电机固定在支架上,通过转轴与旋转臂连接,带动旋转臂旋转,保证控制的精确性和快速性。编码器与旋转臂固连,伺服电机产生的驱动力使旋转臂根据摆杆角度的变化而旋转,使摆杆能摆动并实现各种功能。将摆杆与电位器通过联轴器相连,用电位器旋转的次数检测摆杆的状态,摆杆摆动的角度大小与电位器旋转的次数有一个对应的关系。由于WDY35D-4电位器理论电气转角:345°±2°,存在一定测量盲区,所以在安装前需要测定盲区位置,将盲区位置对应到以自然下垂状态(摆角0°)为起始的270°至300°位置间,因为在此区间内不需要测量特定数据,摆杆可依靠惯性完成剩余圆周运动。在通过电位器采集倒立摆的角度信号输给单片机,编码器采集旋转臂的速度信号输给单片机,单片机控制电机驱动,使倒立摆能够顺利完成任务。安装如图3所示。
3.2 主控模块硬件电路详细设计
考虑到单片机控制精度、稳定性,以及扩展方便与否等方面的特点,我们做的旋转倒立摆系统采用野火Kinetis核心板加上自主设计的主控板进行控制。如图4所示。
3.3 运动控制模块硬件电路详细设计
通过BTN7971芯片来驱动BN-260伺服电机。单片机的FTM通道输出PWM信号,就可以实现伺服电机的调速以及正反转等功能。电路如图5所示,74LS244暂存器的应用能够有效保护电机[3]。K60单片机输出的PWM信号具有很高的控制精度,设置其PWM分度为两万分之一。
4 控制PID算法分析与应用
针对本系统控制对象伺服电机的特点,采用位置式按角度偏差的比例、积分、微分进行控制,即增量式数字PID控制。
数字PID控制算法是以模拟PID调节器控制为基础的,由于单片机是一种采样控制。它只能根据采样时刻的偏差计算控制量。但是如果采样周期T取得足够小,采样数值计算的方法逼近可相当准确,被控过程与连续控制十分接近。离散化后的PID算式为:
本系统中采用增量式算法,是由于增量式算法只需保持以前三个时刻的偏差即可,既节省了资源又不会产生较大的积累误差。实验证明,这种控制方式可以加快系统阶跃响应、减小超调量,并具有较高的精度。
5 软件设计与分析
设置拨码开关,拨码开关四位信号输入给单片机,单片机通过模式判断运行相应程序,进而完成六种控制形式。主控制程序流程图如图6。
五种控制模式的算法如下:
1)要求 (1)、(2)项采用比例控制,将角度设定值与一号测角导电塑料电位器输入的倒立摆角度值做差,乘以比例系数并经过转换后即为控制电机的PWM信号。公式为:
PWM值=标准值±比例系数KP *(角度设定值-角度测量值)/2。
2)其中要求(2)当摆杆高于水平位置时就不再进行控制,靠惯性就可完成圆周运动。
3)要求(3)中实现倒立摆保持倒立状态,再进行直立控制时可通过导电塑料电位器返回的角度值与180°进行比较作比例控制,可以用软件求得角速度来作微分控制。然后利用测速导电塑料电位器测得的旋转臂的转速进行速度的比例和积分控制,从而可以使摆杆在某一点附近完成倒立。
4)完成要求(4)、(5)两项算法与之前相差无几,只是在开始用角度的比例控制使得杆快摆到最高点处的某个位置时转入直立控制即可。
5)完成项目(6)的算法与之前发挥部分的区别在于,在直立控制开始时延时一段时间,待其稳定后,给定一个速度设定值,摆杆即可沿着一个方向做匀速圆周运动。
PID控制器的差分方程
式中 称为比例项;称为积分项; 称为微分项;
系统软件流程图如图6所示。
通过不断地调试,测得要求(1)的比例系数Kp=45.0,要求(2)的比例系数Kp=110.0,要求(3)的比例系数Kp=1800.0,积分系数为Kp=450.0。项目(4)、(5)、(6)的比例环节控制摆动的系数Kp=85.0,直立环节系数Kp=2600.0,Kp=250.0。
6 系统测试方法与测试结果
6.1 主要测试仪器(见表1)
6.2 测试方法与测试结果
要求(1):实验中发现简单设定电机正反转时机,即可实现要求(1)、(2);为满足要求(3)中的旋转臂转动不超过90度的限制条件,所设计的程序对应流程图如图6所示。此时做出来的实验数据才有意义。实验结果见表1。
要求(4)、(5)、(6):从摆杆保持倒立状态时开始计时,实验结果见表3、表4。