单片机在倒立摆控制系统的应用

发布者:心灵律动最新更新时间:2016-11-07 来源: elecfans关键字:单片机  倒立摆控制系统 手机看文章 扫描二维码
随时随地手机看文章
  摘要:通过对一阶旋转倒立摆系统原理的分析,选用单片机作为控制器,直流电机作为执行器,电位器式角度传感器作为反馈环节,采用PID控制算法设计实现了一阶旋转倒立摆控制系统。实验结果表明该系统在稳定的基础上具有较强的鲁棒性,验证了PID控制算法在一阶旋转倒立摆系统中应用的可行性和有效性。

  0 引言

  倒立摆作为一种典型的控制系统实验装置,具有非线性、自然不稳定等特性,常用来作为检验某种控制理论或方法是否合理的典型方案。一阶倒立摆系统能用多种理论和方法来实现其稳定控制,如PID、自适应、状态反馈、模糊控制及人工神经元网络等多种理论和方法都能在倒立摆系统控制上得到实现。

  1系统构成及工作原理

  图1为一阶旋转倒立摆结构示意图。直流电机作为唯一的动力装置,与旋臂保持刚性连接,带动旋臂在水平面内旋转,旋臂的一端通过转轴(本系统选用电位器角度传感器)与摆杆连接,摆杆可做垂直于旋臂的圆周运动。在自然状态下,摆杆为竖直下垂状态。倒立摆控制的目的是通过控制直流电动机的运动状态,使摆杆保持倒立状态。

单片机在倒立摆控制系统的应用

  图1倒立摆结构示意图

  系统工作原理如下:摆杆摆动时,角度传感器检测摆杆的角度,根据角度传感器的输出特性,其输出电压经A/D转换器转换成电压数字量,该数字量与期望的值进行比较产生偏差,通过单片机对该偏差进行处理,即PID控制运算,根据运算结果产生控制信号控制电机和旋臂的转动,使摆杆的角度与期望的角度更接近。

  倒立摆控制系统结构框图如图2所示,单片机(51单片机)为控制器,直流电机为执行器,倒立摆为被控对象,倒立摆角度为被控量,角度传感器和模数转换器构成反馈回路。

单片机在倒立摆控制系统的应用

  图2倒立摆控制系统结构框图
 

  2 倒立摆控制系统的硬件设计

  2.1单片机最小系统

  该系统中选用了STC90C51单片机,该型单片机

  具有以下特点:①八位MCU核,与传统8051兼容;②大容量存储空间,包括64kB程序空间,1280B

  SRAM等;③具有4个八位并行I/O口,3个定时/计数器,2个外部中断源和1个全双工UART传输口;④5V供电时,最高支持80MHz振荡频率,具备高速浮点运算能力,适合倒立摆系统等较为复杂的控制系统使用。51单片机最小系统如图3所示。

单片机在倒立摆控制系统的应用

图3 51单片机最小系统

  2.2摆杆角度检测

  检测摆杆角度所用到的角度传感器种类非常多,常用的有电位器式角度传感器、光电编码器、陀螺仪模块等。由于电位器式角度传感器原理简单,检测精度取决于所用A/D转换器的精度,成本相对较低,因此,综合多方面要求,本系统选用电位器式角度传感器。

  传感器返回的电压信号无法被单片机直接识别,所以需要通过A/D转换,将模拟电压信号转换为二进制数的形式,然后单片机才能计算出偏差,进而产生相应的输出。A/D转换器常用的有8位和12位输出,在本系统中选用8位A/D转换器即可满足控制要求,其型号选用ADC0809,相应电路原理图见图4。

单片机在倒立摆控制系统的应用

图4  A/D转换电路

  A/D转换器的时钟脉冲为单片机ALE引脚输出的脉冲经74LS74芯片分频之后得到,A/D转换器的8位数字信号通过单片机的P0口进行采集与处理。

  2.3驱动电路

  本系统选用的直流电机额定电压为24V,额定功率为30W,单片机的I/O口不足以提供如此大的驱动能力,故需采用驱动电路。常用的直流电机驱动芯片为L298N,可驱动两路直流电机,最大驱动电压为46V,最大电流2A~3A,满足设计要求。直流电机驱动电路如图5所示。

单片机在倒立摆控制系统的应用

图5 直流电机驱动电路

  图5中,L298N的ENA为使能端,可作为单片机PWM(脉宽调制)控制端,控制直流电机转速;IN1和IN2为信号输入端,OUT1和OUT2为输出端,输出

  状态与输入状态对应,控制直流电机转向。输出端的二极管为续流二极管,起保护电动机线圈的作用。
 

  3倒立摆控制系统的软件设计

  3.1控制算法

  本系统采用PID控制算法,PID算法适用于负荷变化大、容量滞后较大、控制品质要求高的控制系统。PID算法有3个可设定参数,即比例放大系数KP、积分时间常数TI、微分时间常数TD。比例调节的作用是使调节过程趋于稳定,但会产生稳态误差;积分作用可消除被调量的稳态误差,但由于积分饱和等原因可能会使系统振荡甚至使系统不稳定;微分作用能有效地减小动态偏差[4]。其传递函数为:

  其中:u(k)为第k个采样时刻的输出;e(k)为第k个采样时刻的偏差值;T为采样周期;KP为比例放大系数;TI为积分时间常数;TD为微分时间常数。

  在实时性要求较高的倒立摆系统中,积分作用常常使系统对偏差的调节变慢,使动态相应变慢。因此要尽量弱化或者消除积分作用,使用PD调节规律即可。在该系统中,输入变量为给定值与实际检测到角度的差值,输出变量控制所产生的PWM波形的占空比。由于旋臂、摆杆以及电动机的各项参数很难准确把握,且干扰较多,难以建立精确的数学模型,因此采用试验法整定参数的数值,即根据系统表现出的状态,调节各参数的数值,直至系统达到稳定。

  3.2程序流程图

  倒立摆系统主程序流程图见图6。其中,U为PID运算的输出值,为输出PWM波形的占空比,由于所选单片机不具备专用PWM输出引脚,需要利用定时器T0模拟其波形输出,定时器T0中断子程序流程图见图7。在本系统中,采样周期选择为10ms,由定时器T1控制,定时器T1中断子程序流程图见图8。

单片机在倒立摆控制系统的应用单片机在倒立摆控制系统的应用

单片机在倒立摆控制系统的应用

  4系统测试

  本系统测试所用到的倒立摆模型为自制简易模型,测试过程如下:外力将摆杆拉起至接近倒立状态(与倒立状态相差20°左右);给系统上电,同时撤去外力,观察到摆杆迅速呈倒立状态,经过几次调整,即可长时间保持倒立状态。系统达到稳定状态的效果如图在摆杆保持倒立状态时,施加一扰动,即轻碰摆杆或旋臂,系统经过短时间的调整之后,仍可以自动调节至稳定状态,说明该系统具备较强的鲁棒性。

单片机在倒立摆控制系统的应用

  5结论

  本系统采用单片机作为一阶旋转倒立摆系统的控制器,执行了数据采集、数据处理(PID运算)、控制直流电机运行状态等操作,成功使该系统稳定,其经济性和实用性得到了很好的展现。同时也体现了经典PID控制理论在一阶倒立摆系统中使用时良好的控制效果。

  参考文献:

  [1]张飞舟.利用单片机实现智能控制[J].电子技术应用,1998(9):27-29.

  [2]江晨.旋转式倒立摆的控制算法研究及试验系统设计[D].苏州:苏州大学,2001:1-2.

  [3]张毅刚,彭喜源.MCS-51单片机应用设计[M].哈尔滨:哈尔滨工业大学出版社,2007.

  [4]王建华.计算机控制技术[M].北京:高等教育出版社,2009

关键字:单片机  倒立摆控制系统 引用地址:单片机在倒立摆控制系统的应用

上一篇:基于AT89S52单片机的超声波测距系统电路设计
下一篇:基于51单片机的高频频率计的设计

推荐阅读最新更新时间:2024-03-16 15:19

基于51单片机的数字秒表实现
//基于51单片机的八位数字秒表 //开发语言:C51 //所选芯片:AT89S51 #include reg51.h #include intrins.h #define DIG_NONE 0xff; #define DIG_1 0x7f #define DIG_2 0xbf #define DIG_3 0xdf #define DIG_4 0xef #define DIG_5 0xf7 #define DIG_6 0xfb #define DIG_7 0xfd #define DIG_8 0xfe #define LINE 0xf7//根据共阴共阳以及接法要调整 typedef unsigned char Byt
[单片机]
基于stm32的mcu和pc的usb通讯技术
  就通信方式讨论:(以下不论ARM核嵌入式低端高端均称为单片机)   单片机间通信可用UART或SPI串口通信,UART适合速率不高,为了兼容低端单片机的场合。SPI比较通用,而且速率可高至单片机核心时钟的1/4(但单片机IO速率低的要注意不能超过单片机IO速率)。高端单片机,如STM32F103系列,带有DMA,可减轻CPU负担。   单片机与PC通信,一般用串口或USB接口。串口或用MAX232芯片与PC串口相连,或用USB转UART芯片(PL2302等)桥接。USB口需单片机带USB接口模块,或USB桥接芯片,或用软件模拟(仅业余使用,商品或工业使用不推荐)。   就USB接口讨论:   单片机所带USB接口多
[单片机]
ATmega 16 单片机的中断系统的相关寄存器(八)
复位和中断向量 向量号 程序地址 中断源 中断定义 1 0x000 RESET 外部引脚电平引发的,上电的,掉电检测的,看门狗,及JTAG AVR复位 2 0x002 INT0 外部中断请求0中断 3 0x004 INT1 外部中断请求1中断 4 0x006 TIMER2 COMP定时器/计数器2比较匹配中断 5 0x008 TIMER2 OVF定时器/计数器2溢出中断 6 0x00A TIMER1
[单片机]
单片机汇编语言 如何实现点亮熄灭二极管
main: mov P0, #10011000B //P0口输出高电平 lcall Delay //延时 mov P0, #11111111B lcall Delay ljmp main //长转移到起始地址main标号处 Delay: mov R7, #250 D1: mov R6, #250 D2: djnz R6, D2 //R6寄存器不为0 则转移到D2标号处 djnz R7, D1 //R7寄存器不为0 则转移到D1标号处 ret end 用汇编语言写了这个程序之后,感觉就是 毫无所获的快感,因为感觉用汇编语言编写的速度太慢了,效率太低了。 于是就想: 是否 要开始学习汇编语言编写单片机程序呢
[单片机]
单片机3个按键灵活修改多个参数(浮点与整数型)
最近写代码,涉及到按键修改参数,就设计了由3个按键修改多个参数的程序设计。按键修改参数,我以写过,但是有着很长的代码。最近写了一个程序,个人感觉代码量较少,适合使用。这里我选STC15F2K60S2单片机开发板来写Demo程序。 原理很简单,第一个按键是 调节+ 按键(程序IO口写Add),第二个按键是 调节- 按键(程序IO口写写Sub),第二个按键是 切换 按键(程序IO口写Exit),也就是切换要修改的参数。然后通过Exit按键修改Add和Sub调节的变量,从而达到修改参数。 预先定义3个要修改的变量和操作标志位。 unsigned char Data1=0,Data2=0,Data3=0; unsigned c
[单片机]
单片机常用初值的计算
以下均为方式1(16位) 一。10MS定时器初值的计算: 1.晶振12M 12MHz除12为1MHz,也就是说一秒=1000000次机器周期。10ms=10000次 机器周期。 65536-10000=55536(d8f0) TH0=0xd8,TL0=0xf0 2.晶振11.0592M 11.0592MHz除12为921600Hz,就是一秒921600次机器周期,10ms=9216次机器周期。 65536-9216=56320(dc00) TH0=0xdc,TL0=0x00 二。50MS定时器初值的计算: 1.晶振12M 12MHz除12为1MHz,也就
[单片机]
LCD12864带中文字库图形显示-单片机程序
代码: #include reg52.h #define uchar unsigned char sbit rs=P2^2;//写指令/数据 sbit rw=P2^3;//读状态/写 sbit e=P2^4;//使能端 sbit psb=P2^5;//串/并输入 //校徽 unsigned char code image ={ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0xFF,0xFF,0x
[单片机]
LCD12864带中文字库图形显示-<font color='red'>单片机</font>程序
以C8051F340单片机为核心的USB数据采集系统设计
1引言 电子设备运行状态的稳定性直接影响到现代企业的生产, 设备发生故障后高昂的维修费以及设备停机后给企业生产带来的损失, 使得各个企业纷纷采取措施, 降低设备的故障率。通过数据采集系统准确的获取设备运行特征数据, 并对数据进行分析,判断设备的运行状态是否良好, 达到提前预防故障出现、减少停机检修的目的。实际应用中对数据采集系统的可靠性, 准确性和便携性要求很高。目前常用的数据传输网络(如RS232 /RS485, CAN 等)已经不能满足大量采集数据和高速实时数据传输的要求。而USB传输具有高速可靠传输的优势, 具有成本低、可靠性高、维护方便等优点。本文以带有片上USB 和高速AD转换器的C8051F340为核心控制器件, 利用
[单片机]
以C8051F340<font color='red'>单片机</font>为核心的USB数据采集系统设计
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved