使用SPCE061A单片机的二级倒立摆控制系统
扫描二维码
随时随地手机看文章
倒立摆系统在控制理论研究中是一种较为理想的实验装置。倒立摆系统可以用多种理论和方法来实现其稳定控制,如PID、自适应、状态反馈、智能控制、模糊控制及人工神经元网络等多种理论和方法,都能在倒立摆系统控制上得到实现,而且当一种新的控制理论和方法提出以后,在不能用理论加以严格证明时,可以考虑通过倒立摆装置来验证其正确性和实用性。本文设计了基于单片机的得倒立摆控制系统,成本低廉,调试方便,能直观的观察控制效果,完成系统的调试任务,快捷的验证控制理论算法的正确与否。
1.二级倒立摆系统的组成结构。
二级倒立摆系统有以下部分组成:有效长度为90cm的光滑导轨,可以在导轨上来回移动的小车,材料为铝的摆杆铰接在小车上,二级摆杆以同样的方式与一级摆杆相连,如图所示,它们的铰接方式决定了它们的运动是被限定在竖直平面内的运动,一级摆杆和二级摆杆的规格相同,有效长度为525cm。小车的驱动系统由一直流力矩伺服电机和同步带传动系统组成,小车相对参考点的相对位移x有电位器0测量传动带而得到,一级摆杆与竖直方向的夹角θ1由固定在一级摆杆和小车铰接处的电位器1测量得到,二级摆杆与竖直方向的夹角θ2由电位器2通过测量两个摆的角度差θ2-θ1而间接得到。直流伺服电机产生驱动力F使小车根据摆角的变化而在导轨上运动。小车依靠直流电机所施加的控制力,可以在导轨上左右移动。控制目标是在有限长度的导轨上使倒立摆能稳定地竖立在小车上而不倒下,从而达到动态平衡。
2.控制系统的设计
2.1 系统控制原理及设计思路
状态反馈是将系统的每一个状态变量乘以相应的反馈系数,然后反馈到输入端与参考输入相加形成控制律,作为受控系统的控制输入。状态反馈系统的基本特点是采用对状态向量的线性反馈规律来构成闭环控制系统,由于控制作用是系统状态的函数,可使控制效果得到很大地改善,从而具有更好的一系列控制特性。本系统采用状态反馈法控制二级倒立摆系统。二级倒立摆系统共有六个状态变量,分别是小车位置x、两个摆角度θ1和θ2、,其中小车位置、两个摆角度分别由电位器0、 电位器1、电位器2测量所得,而小车的速度和两个摆角速度由小车位置、两个摆角度经微分变换所得。这六个状态变量输入到单片机的ADC模块中,经A/D转换后被送到上位机显示,并与由上位机设定的反馈参数进行运算,再把所求的结果经由单片机的DAC模块输出到功放电路,再经过PWM脉宽调制到执行电机获得对倒立摆相应的力从而控制倒立摆的稳定。控制系统图如下所示:
2.2 控制系统硬件设计:
系统控制装置的硬件采用基于凌阳公司生产的SPCE061A单片机。采用了四个IGBT来实现PWM功率转换电路,使电路的反应更能及时准确。电机是永磁式直流力矩电动机,它能经常使用在堵转或低速状态。该电机可在位置或低速随动系统中作执行元件。
2.2.1 SPCE061A单片机性能特点
SPCE061A是凌阳科技推出的一款16位结构的微控制器。SPCE061A里只内嵌32K字的闪存(FLASH)。较高的处理速度使µ’nSP™能够非常容易地、快速地处理复杂的数字信号。16位µ’nSP™微处理器;2个16位可编程定时器/计数器(可自动预置初始计数值); 2个10位DAC(数-模转换)输出通道; 32位通用可编程输入/输出端口; 7通道10位电压模-数转换器(ADC)和单通道声音模-数转换器;具备串行设备接口; SPCE061A的开发是通过在线调试器PROBE实现的。它既是一个编程器(即程序烧写器),又是一个实时在线调试器。用它可以替代在单片机应用项目的开发过程中常用的软件工具——硬件在线实时仿真器和程序烧写器。在计算机IDE集成开发环境软件包下,完成在线调试功能。
2.2.2 控制电路原理及接口
SPCE061A有8路可复用10位ADC通道,其中一路通道(MIC_In)用于语音输入,模拟信号经过自动增益控制器和放大器放大后进行A/D转换。其余7路通道(Line_In)和IOA[0~6] 管脚复用,可以直接通过引线(IOA[0~6])输入,用于将输入的模拟信号(如电压信号) 转换为数字信号。二级倒立摆系统中的六个状态变量电压变化范围为—12—+12伏,而单片机ADC模块的要求输入电压变化范围为0—+3.3伏,因此六个状态变量经电压转换电路后分别接至
SPCE061A单片机的IOA0~IOA5。SPCE061A UART模块提供了一个全双工标准接口,用于完成SPCE061A与外设之间的串行通讯。UART模块的接收管脚Rx和发送管脚 TX 分别与IOB7和IOB10共用。本系统采用的是半双工的通讯方式。IOB7和IOB10与MAX485芯片相连接,并再经485232转换器与上位机串行口相连。实现状态变量在上位机的显示以及由上位机设置反馈参数的功能。SPCE061A为音频输出提供两个DAC通道, 0—3.3毫安模拟电流信号通过DAC1管脚输出。经状态反馈运算后所得到的控制量以0—3.3毫安模拟电流信号输出,此电流信号经电流电压转换电路,在经电压倍放电路后变为—12—+12V。输至功放去控制PWM脉宽调制进而控制执行电机,使二级倒立摆达到动态平衡状态。
2.3 控制系统软件设计:
上位机应用VC++编写的串口程序。其上位机的应用界面如下图所示:
从图中可以看出,第一行表示的是测量的六个状态变量,分别是小车位置,小车速度,一摆的角度,一摆的角速度,二摆的角度,二摆的角速度。其数据可以实时的显示出来,这样就可以观察数据是否有异常的情况。第二行就是根据实际情况给单片机发送数据,从而达到设置参数的目的。在状态反馈的控制策略中,分别设置的是六个状态反馈系数。
单片机控制系统的软件设计是采用的是C语言,C的结构化设计特点是简洁、明快,有丰富的库函数和较好的调试手段,还具有移植性好,上手快等特点。在控制软件中包含主程序、中断程序和各种子程序,下面介绍应用状态反馈实现对倒立摆稳定控制的程序流程图。
状态反馈需要测量六个量,上位机需要给单片机设置六个反馈参数。程序流程图如下:
3. 结束语
试验证明,本控制系统能方便快捷的找到使二级倒立摆系统达到动态平衡的状态反馈系数,简化控制系统的调试任务,得到了较为理想的试验效果。
本文作者创新点:找到使二级倒立摆系统达到动态平衡的状态反馈系数,研究了状态空间法在本系统中的应用。