胡晓芳
摘 要: 对简易旋转倒立摆的各个模块做了相关介绍,对系统的实现方案和设计步骤进行描述。采用ATmega16单片机作为主控元件,以BTS7960模块作为驱动器,使用直流伺服电机作为驱动电机。采用增量式PID算法控制摆杆达到稳定,对摆杆所处位置的角度进行分段,然后采用分段PID算法进行控制,以使摆杆快速趋于稳定状态,得到良好的控制效果。
关键词: 旋转倒立摆; ATmega16; BTS7970; 伺服电机; PID算法
中图分类号: TN911?34 文献标识码: A 文章编号: 1004?373X(2014)14?0135?03
Design of rotational inverted pendulum based on AVR SCM
HU Xiao?fang
(College of Electronic Engineering, Heilongjiang University, Harbin 150080, China)
Abstract: Each module of simple rotary inverted pendulum is introduced in this paper. The realization scheme and design procedure of the system are described, in which ATmega16 micro controller is used as the main control element, the BTS7960 module as the driver and the DC servo motor as driving motor. The incremental PID algorithm is adopted to control the swing rod to stabilize the pendulum. The angle of place where the swing rod locates is segmented, and then the segmentation PID algorithm is employed to control the swing rod, so as to make the swing rod to verge to a steady state quickly, and obtain the good control effect.
Keywords: rotational inverted pendulum; ATmega16; BTS7960; servo motor; PID algorithm
倒立摆系统是一个多变量、不稳定、非线性系统,不仅是进行控制实验与控制理论教学的很好的一类模型,而且倒立摆系统能够很好的用来验证新的算法[1?3]。旋转倒立摆系统比直线倒立摆更加复杂和不稳定,系统的阶数比直线倒立摆更高[3]。当前对直线倒立摆的研究成果较多,技术相对成熟,而对旋转倒立摆的研究相对较少。大多数都是有关算法的研究,很少有人详细介绍旋转倒立摆系统各个模块的组成。旋转倒立摆通过对水平面上的旋转臂转过的角度的控制使得竖直方向的摆杆逐渐趋于倒立状态,摆杆倒立时与竖直向上方向夹角为0°。对于倒立摆的研究有起摆问题和平衡点的稳定控制问题[4]。本文的旋转倒立摆系统在受到外界干扰时能够快速的恢复稳定状态。
1 系统总方案
旋转倒立摆系统由电源模块、驱动模块、角度采集模块以及主控模块构成,倒立摆的机械结构主要有倒立摆支架、驱动电机、水平面旋转臂和摆杆构成。通过采集回来摆杆角度的大小逐渐改变水平旋转臂转过的角度来调整摆杆与竖直方向的夹角以使摆杆达到稳定状态。总体方案如图1所示。
图1系统总体方案图
2 系统硬件设计
旋转倒立摆系统的硬件电路主要有电源部分、ATmega16单片机最小系统、电机驱动电路以及角度传感器四部分构成。
2.1 电源部分
电源部分主要分成两个部分:一是给单片机最小系统、角度传感器和电机驱动供电的5 V电源;二是专门为电机驱动部分供电的12 V电源。采用12 V开关电源为系统供电,最大电流能够达到5 A,足够用于电机驱动旋转臂使得摆杆趋于稳定。5 V电源采用LM7805三端稳压芯片[5]将12 V电压降至稳定的5 V,对于此电压的要求比较严格,因为单片机的A/D转换部分所需基准源必须足够稳定。将12 V电压转换为5 V电压的电路图如图2所示。
图2 电源电路
电机驱动电路所需的12 V电源直接由开关电源提供。
2.2 主控制器
主控制器只需要能正常工作即可,而且不需要单片机工作在多机方式,所以单片机工作在最小模式,最小模式电路图如图3所示[6]。由于需要使用A/D转换部分且角度传感器采用5 V供电,所以A/D转换的基准源使用ATmega16单片机外部的AREF引脚作为基准源接到5 V电源上。
图3 单片机最小系统电路
2.3 电机驱动
通常使用的直流电机驱动有L298N电路,然而由L298N构成的驱动电路功率相对较小,而由BTS7960所构成的驱动电路能够提供相对较大的功率[7]。在旋转倒立摆系统中,电机部分相对比较重要,对于电机驱动的要求较高,尤其是驱动功率要足够大,能够使得电机提供较大的转矩,所以选用BTS7960模块作为驱动,驱动电路如图4所示。
2.4 角度传感器
对于倒立摆系统,角度的采集至关重要,关乎整个系统的成败。首先精度要达到要求,其次采集角度的频率要足够快。本文采用电阻式角度传感器,使用ATmega16单片机的A/D转换部分得到摆杆对应位置的电压值,ATmega16单片机的A/D转换精度最高能够达到十位,足够用于旋转倒立摆系统。该角度传感器的原理就是一个圆周型滑动变阻器,当转轴转过一定角度时,输出的电压不同,即可得到该位置的角度值。
图4 电机驱动电路
3 系统软件设计
对于旋转倒立摆系统,软件部分至关重要。本文设计的旋转倒立摆系统采用传统的增量式PID控制算法对摆杆进行控制。通过对系统的分析,当摆杆处于不同角度位置时,摆杆所需的驱动力明显不同,因而对传统增量式PID算法进行分段[8],不同位置相差一定角度时改变三个系数使得摆杆快速趋于稳定。通过ATmega16单片机的A/D转换模块测得摆杆所在位置处的角度对应电压值,将此电压值转换为角度,以摆杆的角度作为输入,通过PID算法计算出合适的PWM值,以计算值的大小作为ATmega16单片机相位与频率修正PWM模块的匹配值,以计算值的符号确定电机转动的方向,控制电机的转速,从而实现对旋转倒立摆的控制。系统软件流程图如图5所示。
3.1 A/D模块采集角度
ATmega16单片机内部有一个10位的逐次比较ADC电路,其与一个8通道的模拟多路复用器连接,能够对来自端口A的8路单端输入电压进行采样[9]。通过对相关寄存器的设置选择ADC的工作方式和基准电压源。从而能够快速的得到摆杆所在位置的角度。
图5 系统软件流程图
3.2 相位与频率修正PWM
ATmega16单片机内部有一个16位的定时器T/C1,当此定时器工作在相位与频率PWM模式时,能够在单片机的PD4和PD5两个引脚产生两路不同脉冲宽度的矩形波[9],将矩形波接入电机驱动模块的PWM输入引脚就能够使得驱动器产生一个合适的驱动力,驱动摆杆转动并逐渐趋于稳定。
3.3 增量型PID算法
PID算法是在控制领域应用较为广泛的算法之一。PID算法的参数只有3个,分别为比例系数P,积分系数I,微分系数D。通过对这3个参数的设定,能够得到较好的控制效果。增量型PID算法的表达式为[8]:
[Δun=1P·1+ΔTTI+TDΔT·en-1P1+2·TDΔT· en-1+TDΔT·en-2]
ATmega16单片机通过对测量的角度的分析,改变摆杆在不同位置时PID的3个参数,能够获得更好的效果,使得摆杆快速的趋于稳定状态。
4 结 语
设计过程以ATmega16单片机为主控制器,对旋转倒立摆系统的各模块做了介绍,用C语言设计程序进行系统调试,完成了对旋转倒立摆系统的控制,系统能够较快速地趋于稳定,受到干扰后能够较快恢复稳定。倒立摆系统在控制领域中有着广泛的应用[10],对于倒立摆系统的研究还有一定的空间。
参考文献
[1] 马燕,夏超英.单级旋转倒立摆的自抗扰控制[J].电气传动,2007,37(6):39?41.
[2] 杨平,徐春梅,王欢,等.直线型一级倒立摆状态反馈控制设计及实现[J].上海电力学院学报,2007,23(1):21?32.
[3] 马光,高强.单机旋转倒立摆控制研究[J].天津理工大学学报,2007,23(3):32?34.
[4] 张凤众,侯祥林,么健石.基于能量反馈的圆轨倒立摆摆起控制[J].控制工程,2006,13(z1):164?167.
[5] 张梅美,孙凤英.自动循迹搬运车控制系统设计[J].现代科学仪器,2013(1):111?114.
[6] 韩庆瑶,洪草根.基于AVR单片机的多舵机控制系统设计及仿真[J].计算机测量与控制,2011(2):332?334.
[7] 罗庆生,苏晓东,韩宝玲.基于DSP的大功率多轴控制系统[J].北京理工大学学报,2012,32(3):253?257.
[8] 施仁,刘文江,郑辑光,等.自动化仪表与过程控制[M].4版.北京:电子工业出版社,2009.
[9] 马潮.AVR单片机嵌入式系统原理与应用实践[M].北京:北京航空航天大学出版社,2007.
[10] 王强,陈炜,赵新华.直线倒立摆的快速起摆与稳摆控制研究[J].机械设计与制造,2013(5):74?77.
2.4 角度传感器
对于倒立摆系统,角度的采集至关重要,关乎整个系统的成败。首先精度要达到要求,其次采集角度的频率要足够快。本文采用电阻式角度传感器,使用ATmega16单片机的A/D转换部分得到摆杆对应位置的电压值,ATmega16单片机的A/D转换精度最高能够达到十位,足够用于旋转倒立摆系统。该角度传感器的原理就是一个圆周型滑动变阻器,当转轴转过一定角度时,输出的电压不同,即可得到该位置的角度值。
图4 电机驱动电路
3 系统软件设计
对于旋转倒立摆系统,软件部分至关重要。本文设计的旋转倒立摆系统采用传统的增量式PID控制算法对摆杆进行控制。通过对系统的分析,当摆杆处于不同角度位置时,摆杆所需的驱动力明显不同,因而对传统增量式PID算法进行分段[8],不同位置相差一定角度时改变三个系数使得摆杆快速趋于稳定。通过ATmega16单片机的A/D转换模块测得摆杆所在位置处的角度对应电压值,将此电压值转换为角度,以摆杆的角度作为输入,通过PID算法计算出合适的PWM值,以计算值的大小作为ATmega16单片机相位与频率修正PWM模块的匹配值,以计算值的符号确定电机转动的方向,控制电机的转速,从而实现对旋转倒立摆的控制。系统软件流程图如图5所示。
3.1 A/D模块采集角度
ATmega16单片机内部有一个10位的逐次比较ADC电路,其与一个8通道的模拟多路复用器连接,能够对来自端口A的8路单端输入电压进行采样[9]。通过对相关寄存器的设置选择ADC的工作方式和基准电压源。从而能够快速的得到摆杆所在位置的角度。
图5 系统软件流程图
3.2 相位与频率修正PWM
ATmega16单片机内部有一个16位的定时器T/C1,当此定时器工作在相位与频率PWM模式时,能够在单片机的PD4和PD5两个引脚产生两路不同脉冲宽度的矩形波[9],将矩形波接入电机驱动模块的PWM输入引脚就能够使得驱动器产生一个合适的驱动力,驱动摆杆转动并逐渐趋于稳定。
3.3 增量型PID算法
PID算法是在控制领域应用较为广泛的算法之一。PID算法的参数只有3个,分别为比例系数P,积分系数I,微分系数D。通过对这3个参数的设定,能够得到较好的控制效果。增量型PID算法的表达式为[8]:
[Δun=1P·1+ΔTTI+TDΔT·en-1P1+2·TDΔT· en-1+TDΔT·en-2]
ATmega16单片机通过对测量的角度的分析,改变摆杆在不同位置时PID的3个参数,能够获得更好的效果,使得摆杆快速的趋于稳定状态。
4 结 语
设计过程以ATmega16单片机为主控制器,对旋转倒立摆系统的各模块做了介绍,用C语言设计程序进行系统调试,完成了对旋转倒立摆系统的控制,系统能够较快速地趋于稳定,受到干扰后能够较快恢复稳定。倒立摆系统在控制领域中有着广泛的应用[10],对于倒立摆系统的研究还有一定的空间。
参考文献
[1] 马燕,夏超英.单级旋转倒立摆的自抗扰控制[J].电气传动,2007,37(6):39?41.
[2] 杨平,徐春梅,王欢,等.直线型一级倒立摆状态反馈控制设计及实现[J].上海电力学院学报,2007,23(1):21?32.
[3] 马光,高强.单机旋转倒立摆控制研究[J].天津理工大学学报,2007,23(3):32?34.
[4] 张凤众,侯祥林,么健石.基于能量反馈的圆轨倒立摆摆起控制[J].控制工程,2006,13(z1):164?167.
[5] 张梅美,孙凤英.自动循迹搬运车控制系统设计[J].现代科学仪器,2013(1):111?114.
[6] 韩庆瑶,洪草根.基于AVR单片机的多舵机控制系统设计及仿真[J].计算机测量与控制,2011(2):332?334.
[7] 罗庆生,苏晓东,韩宝玲.基于DSP的大功率多轴控制系统[J].北京理工大学学报,2012,32(3):253?257.
[8] 施仁,刘文江,郑辑光,等.自动化仪表与过程控制[M].4版.北京:电子工业出版社,2009.
[9] 马潮.AVR单片机嵌入式系统原理与应用实践[M].北京:北京航空航天大学出版社,2007.
[10] 王强,陈炜,赵新华.直线倒立摆的快速起摆与稳摆控制研究[J].机械设计与制造,2013(5):74?77.
2.4 角度传感器
对于倒立摆系统,角度的采集至关重要,关乎整个系统的成败。首先精度要达到要求,其次采集角度的频率要足够快。本文采用电阻式角度传感器,使用ATmega16单片机的A/D转换部分得到摆杆对应位置的电压值,ATmega16单片机的A/D转换精度最高能够达到十位,足够用于旋转倒立摆系统。该角度传感器的原理就是一个圆周型滑动变阻器,当转轴转过一定角度时,输出的电压不同,即可得到该位置的角度值。
图4 电机驱动电路
3 系统软件设计
对于旋转倒立摆系统,软件部分至关重要。本文设计的旋转倒立摆系统采用传统的增量式PID控制算法对摆杆进行控制。通过对系统的分析,当摆杆处于不同角度位置时,摆杆所需的驱动力明显不同,因而对传统增量式PID算法进行分段[8],不同位置相差一定角度时改变三个系数使得摆杆快速趋于稳定。通过ATmega16单片机的A/D转换模块测得摆杆所在位置处的角度对应电压值,将此电压值转换为角度,以摆杆的角度作为输入,通过PID算法计算出合适的PWM值,以计算值的大小作为ATmega16单片机相位与频率修正PWM模块的匹配值,以计算值的符号确定电机转动的方向,控制电机的转速,从而实现对旋转倒立摆的控制。系统软件流程图如图5所示。
3.1 A/D模块采集角度
ATmega16单片机内部有一个10位的逐次比较ADC电路,其与一个8通道的模拟多路复用器连接,能够对来自端口A的8路单端输入电压进行采样[9]。通过对相关寄存器的设置选择ADC的工作方式和基准电压源。从而能够快速的得到摆杆所在位置的角度。
图5 系统软件流程图
3.2 相位与频率修正PWM
ATmega16单片机内部有一个16位的定时器T/C1,当此定时器工作在相位与频率PWM模式时,能够在单片机的PD4和PD5两个引脚产生两路不同脉冲宽度的矩形波[9],将矩形波接入电机驱动模块的PWM输入引脚就能够使得驱动器产生一个合适的驱动力,驱动摆杆转动并逐渐趋于稳定。
3.3 增量型PID算法
PID算法是在控制领域应用较为广泛的算法之一。PID算法的参数只有3个,分别为比例系数P,积分系数I,微分系数D。通过对这3个参数的设定,能够得到较好的控制效果。增量型PID算法的表达式为[8]:
[Δun=1P·1+ΔTTI+TDΔT·en-1P1+2·TDΔT· en-1+TDΔT·en-2]
ATmega16单片机通过对测量的角度的分析,改变摆杆在不同位置时PID的3个参数,能够获得更好的效果,使得摆杆快速的趋于稳定状态。
4 结 语
设计过程以ATmega16单片机为主控制器,对旋转倒立摆系统的各模块做了介绍,用C语言设计程序进行系统调试,完成了对旋转倒立摆系统的控制,系统能够较快速地趋于稳定,受到干扰后能够较快恢复稳定。倒立摆系统在控制领域中有着广泛的应用[10],对于倒立摆系统的研究还有一定的空间。
参考文献
[1] 马燕,夏超英.单级旋转倒立摆的自抗扰控制[J].电气传动,2007,37(6):39?41.
[2] 杨平,徐春梅,王欢,等.直线型一级倒立摆状态反馈控制设计及实现[J].上海电力学院学报,2007,23(1):21?32.
[3] 马光,高强.单机旋转倒立摆控制研究[J].天津理工大学学报,2007,23(3):32?34.
[4] 张凤众,侯祥林,么健石.基于能量反馈的圆轨倒立摆摆起控制[J].控制工程,2006,13(z1):164?167.
[5] 张梅美,孙凤英.自动循迹搬运车控制系统设计[J].现代科学仪器,2013(1):111?114.
[6] 韩庆瑶,洪草根.基于AVR单片机的多舵机控制系统设计及仿真[J].计算机测量与控制,2011(2):332?334.
[7] 罗庆生,苏晓东,韩宝玲.基于DSP的大功率多轴控制系统[J].北京理工大学学报,2012,32(3):253?257.
[8] 施仁,刘文江,郑辑光,等.自动化仪表与过程控制[M].4版.北京:电子工业出版社,2009.
[9] 马潮.AVR单片机嵌入式系统原理与应用实践[M].北京:北京航空航天大学出版社,2007.
[10] 王强,陈炜,赵新华.直线倒立摆的快速起摆与稳摆控制研究[J].机械设计与制造,2013(5):74?77.