刘拓晟
摘要:倒立摆是开展各种控制实验及进行控制理论的理想实验平台,是一个不稳定的、非线性的复杂控制系统,其控制方法在军工、航天、机器人和一般工业过程领域中都有着广泛的用途。该系统采用stm32f103rct6单片机为控制器,以角位移传感器为反馈装置,以直流减速电机作为执行装置,采用PID控制算法,设计了一个简易的旋转倒立摆控制系统。能够完成倒立摆的稳定倒立、起摆倒立、旋转倒立等动作。
关键词:stm32f103rct6;角位移传感器;直流减速电机;PID算法;倒立摆
中图分类号:TP302 文献标识码:A 文章编号:1009-3044(2018)36-0213-03
Abstract:Inverted pendulum is an ideal experimental platform for carrying out various control experiments and control theory teaching. It is an unstable and nonlinear complex control system. Its control methods are widely used in military, aerospace, robotics and general industrial processes. use. In this paper, the stm32f103rct6 micro-controller is used as the controller, the angular displacement sensor is used as the feedback device, the DC geared motor is used as the actuator, and the PID control algorithm is used to design a simple rotary inverted pendulum control system. The final test results show that the design of this program is basically feasible, and it can complete the actions of the inverted pendulum, such as a stable inverted handstand, a pendulum upside down, and an inverted handstand.
Key words: stm32f103rct6; Angular displacement sensor; DC geared motor; PID algorithm; Inverted pendulum
1 背景
倒立擺控制系统是一种经典的研究自动化控制的实验装置,其应用已经广泛分布于机器人控制、工业自动化控制、航空航天及人工智能等领域,在自动化控制领域占据着非常重要的地位。同时,倒立摆因为结构简单、成本低廉等特点,许多学校和相关研究机构都将其作为教学、实验平台,进行控制理论教学和开展各种控制实验[1]。近年来,倒立摆控制系统的运用越来越广泛,控制技术与方法也愈加成熟。人们通过对倒立摆控制系统的研究,处理各种多变量问题、非线性问题及不稳定系统问题,进而延伸到各类工控领域,与工业应用相结合,对解决实际问题有着显著的帮助[2]。
2 总体方案设计
倒立摆硬件系统包括STM32主控模块、角位移传感器模块、电机驱动模块、稳压模块、直流减速电机等。系统的电源采用3节18650电池供电,利用稳压模块为电机驱动模块提供8V的电压,给单片机提供5V的电压。将角位移传感器传回的实时角度和直流减速电机传回的速度传入主控制器,主控制器通过PID控制器计算并输出电机下一步运行所需的PWM值,驱动电机运行,最终实现摆杆的动态平衡。系统运行期间,利用Nokia 5110进行实时数据显示与模式调节显示,方便整个系统的运行。在机械结构方面,采用不锈钢制成的支架,提高了整体结构的稳定性;采用导线环与电机相连,解决了系统运行时的绕线问题。系统整个结构图如图1所示。
3 系统硬件设计
3.1 主控最小系统设计
该设计选用STM32F103RCT6作为控制核心,需要调用几个片内外设,Nokia5110显示器需要一组连续的普通GPIO口资源,驱动定时器需要定时器的PWM输出,还需要一个串口USART用来调试。外部晶振采用了8MHz的无源晶振,另外还增加了22pF的补偿电容,作为系统时钟源。STM32F103RCT6的引脚数目能够满足要求。
3.2 稳压模块设计
该系统选用了LM317稳压模块为直流电机提供稳定电压。LM317是一种可调3端正电压稳压器,具有稳压性能好、输出电压可调、噪声低、价格低廉等优点,广泛应用于一些小型嵌入式系统。稳压模块原理图如图2所示。LM317模块输出电压公式为:
3.3 电机驱动模块
该系统选用的电机驱动模块是L298N驱动模块。L298N是ST公司生产的一种高电压、大电流电机驱动芯片,可以用来驱动直流电动机和步进电动机、继电器线圈等感性负载;采用标准逻辑电平控制,有四个信号输入口,通过单片机输出的PWM信号驱动模块正常工作,实现电机的加减速与正反转等动作[3]。该系统利用L298N驱动一个直流电机。
3.4 角位移传感器
该系统采用WDD35D4角位移传感器作为摆杆的实时姿态检测与反馈装置。WDD35D4角位移传感器采用3.3V电压供电,只有一根信号输出线,由该信号线输出角位移传感器的实时电位值[4]。采用Stm32f103上集成的ADC外设直接测量传感器的电位值,将ADC1的通道10(PC0)配置成模拟输入模式,采用DMA方式将采集到的电位值周期性地存放到指定内存位置,在需要使用该变量时将其取出。摆杆与角位移传感器的转轴连接,系统通过实时测出的电位值,与摆杆处于平衡位置时的电位值进行比较,算出实时偏差并将其传入PID控制器,控制电机纠正偏差,形成一个负反馈系统。
3.5 Nokia5110液晶模块
该系统选用Nokia5110液晶模块作为系统的显示器件,用来显示工作模式、角度与速度、PID参数等,方便系统调试。Nokia5110液晶模块采用PCD8544作为驱动芯片,通过模拟串行总线协议发送指令和写入数据RAM来控制和显示数据;采用串行接口与主处理器进行数据通信,接口信号线相较于其他液晶模块大幅减少,除去电源、背光电源与地,仅有5根信号线。其电路原理图如图3。
4 系统软件设计
4.1 主程序流程图
软件设计的主体是一个闭环的负反馈系统:在6ms的采样周期内,主控制器首先采集实时的角度、速度,通过Nokia5110实时显示,然后将采集到的角度与平衡位置进行比较,判断摆杆是否达到平衡;如果达到平衡,摆杆继续保持当前位置;如果与平衡位置偏差较远,则将采集的角度、速度传入PID控制器,输出合适的PWM值控制电机,调节摆杆靠近平衡位置,再进入下一个采样周期。软件设计的主程序流程图如图4:
4.2 角度采集
角度采集部分,该系统使用的是WDD35D4角位移传感器,WDD35D4角位移传感器实质上是一个高精度的电位器,摆杆连接在电位器上能够旋转的轴承之上。当摆杆处于运动状态时,电位器的电阻也会时刻发生变化。通过将采样点采回的电阻值与摆杆平衡时的电阻值进行比较,计算出一个类似角度的变量,传入PID控制器中进行计算。
4.3 速度采集
速度采集部分,该系统采用的是带编码器的直流减速电机,电机尾部自带了13线的磁(霍尔)编码器,以减速比20:1的电机为例,车轮转一圈,电机可以输出260个脉冲,倍频之后是1040。编码器的额定工作电压是5V,集成了上拉电阻和比较整形功能,可以直接输出方波。利用stm32上的TIM2编码器功能采集电机输出的脉冲,测出电机的转速。
4.4 电机控制
在电机控制方面,该系统采用stm32f103rct6 定时器3模拟PWM输出来控制电机的调速,利用L298N模块控制电机的正反转。PWM全名为脉冲宽度调制,通过在一定周期时间内调节高低电平各自所占的时间,达到改变PWM占空比的目的。该次使用的直流减速电机,采用10Khz的PWM控制頻率,一个PWM周期内高电平的占空比越大,电机的转速越快。因此控制电机转速的问题就演变成了改变PWM高电平占空比的问题,具体控制流程如图5。
4.5 PID控制器
该系统PID采用的是倾角PD控制与速度PI控制双环控制。控制器的基本流程如图6。
5 参数整定
该系统是双环PID控制,需要整定的是倒立摆的角度环与速度环四个PID参数。
5.1 平衡位置角度整定
确定平衡位置的角度,该角度是由机械结构的安装位置决定。将摆杆拉至平衡位置,读出并记录该位置角位移传感器的AD值,并将此AD值作为角度环中的“0”度,后面角度环测出的角度都是以此为标准换算出来[5]。转动摆杆,观察到角位移传感器的AD值变化正常,开始直立调试。
5.2 角度环整定
角度环使用的是PID控制器中的PD控制器:当在单位时间内,倒立摆摆杆由一个角度运动到另一个角度时,角速度从零变大再变成零,这里的角速度就可以理解为此次角度与平衡位置的差值和上次角度差值的差值(因为角度差值除以单位时间就是角速度),这刚好契合PID控制器中微分部分参数的要求。
5.3 速度环整定
当角度环有偏差的时候,电机本身也会存在一定的速度,倒立摆以什么速度维持平衡,光靠直立环无法做到。因此该系统加入了速度环,采用PID控制器中的PI控制器控制速度环输出的PWM值。
6 结束语
该文提出基于stm32f103rct6单片机倒立摆控制系统设计方案,并通过综合调试完成倒立摆的稳定倒立、起摆倒立、旋转倒立等动作,确认设计方案可行。
参考文献:
[1] 翟彦彦. 一级倒立摆模糊控制、LQR控制和PID控制的比较研究[J]. 电子设计工程, 2016(6):116-124.
[2] 王俊. 基于倒立摆的PID控制算法的研究[J]. 现代电子技术, 2012(23):152-154.
[3] 罗文韬. 基于Matlab和Automation Studio的倒立摆控制仿真[J]. 农业开发与设备, 2017(7):63-67.
[4] 曾宪阳, 杨红莉. 基于单片机控制的旋转倒立摆建模分析与系统设计[J]. 电子技术应用, 2016(9):76-79.
[5] 房朝晖, 蒋云鹏, 袁浩. 旋转二级倒立摆的双闭环模糊控制[J]. 实验技术与管理, 2017, 34(6):50-53.
[通联编辑:谢媛媛]