基于自由摆的平板控制系统设计.docx
《基于自由摆的平板控制系统设计.docx》由会员分享,可在线阅读,更多相关《基于自由摆的平板控制系统设计.docx(24页珍藏版)》请在冰点文库上搜索。
基于自由摆的平板控制系统设计
毕业论文(设计)
基于自由摆的平板控制系统设计
摘要
该系统采用STC12C5A60S2单片机作为控制系统的核心;以步进电机控制平板转动,以L298作为电机驱动芯片;以旋转编码器模块为角度传感器,监测出平板的倾斜角度,并用1602液晶显示屏显示出平板的倾斜角度.然后数据被送到单片机,同时单片机根据所采集来的角度变化,采用PID算法求出平板应该转动的角度,使平板的倾斜角度恰好能够满足平板对硬币的作用力在水平方向上的分量刚好提供硬币的横向加速度所须的力.继而STC12C5A60S2单片机根据步进电机的最小步进角,精确地控制步进电机转动相应的步数,从而实现控制平板在转动过程中维持平衡状态.该系统布局基本合理,实际运行较为平稳,控制精度较高.
关键词:
STC12C5A60S2单片机;自由摆;步进电机;旋转编码器
ABSTRACT
ThesystemusesSTC12C5A60S2microcontrollerasthecoreofthecontrolsystem;tabletrotationtothesteppermotorcontrol,toL298motordriverchip;rotaryencodermodulesfortheanglesensortomonitorthetiltangleoftheflat,andflat-panelliquidcrystaldisplay1602showsthetiltangledataisthensenttothemicrocontroller,microcontrollerbasedonthecollectedanglechanges,thePIDalgorithmtofindthetabletangleofrotation,thetiltangleofthetablethappenstomeettheforceofthetabletonthecoinsinthehorizontaldirectiontheweightisjusttoprovidetheforcerequiredbythelateralaccelerationofthecointhenSTC12C5A60S2microcontrolleraccordingtotheminimumstepangleofthesteppermotortopreciselycontrolthesteppermotorrotatesthecorrespondingnumberofstepsinordertoachievecontrolofthetablettomaintainequilibriumintherotationprocess.thesystemlayoutisbasicallyrational,theactualoperationisrelativelystable,highcontrolaccuracy.
Keywords:
singlechipSTC12C5A60S2;freependulum;steppingmotor;therotaryencoder
1引言
由于转子不平衡而引起的旋转机械振动是一类常见故障,其排除方法是进行动平衡[1].根据经典动平衡方法,无论是使用专用动平衡机亦或现场整机动平衡,都需要至少一次启停机.然而,现代工业日趋流程化、一体化,各流程之间紧密祸合,停机维修费用高昂.这一问题在石油、化工、冶金、电力等行业中尤为突出.
在自由摆保持运行的情况下对转子进行实时动平衡即自动平衡是解决该问题的最佳方案.自动平衡不但能及时降低机组振动,而且能在长期运行期间随时调整转子的不平衡状态,从而使其始终运行在良好的平衡状态或近似状态中.自动平衡技术的规模化工业应用[2]将是动平衡技术的一次巨大进步,不仅推动故障诊断技术至更高层次,开创故障在线自愈的新阶段,而且如能在设计阶段引入自动平衡装置将产生一类新概念机器,成为机器智能化的一个新领域,所带来的经济效益和社会效益是难以估计的.
同时,随着计算机软件技术水平的不断提高和电子技术突飞猛进的发展,测控技术在社会生产生活中发挥着无法估量的重要作用.近年来,新型微处理器的速度不断提高,采用流水线、RISC结构和cache等先进技术,又极大提高了计算机的数值处理能力和速度.在数据采集方面,数据采集卡、仪器放大器、数字信号处理芯片等技术的不断升级和更新,也有效地加快了数据采集的速率和效率.与计算机技术紧密结合,已是当今仪器与测控技术发展的主潮流.对微机化仪器作具体分析后,配以相应软件和硬件的计算机将能够完成许多仪器、仪表的功能,实质上相当于一台多功能的通用测量仪器.这样的现代仪器设备的功能已不再由按钮和开关的数量来限定,而是取决于其中存储器内装有软件的多少.从这个意义上可认为,计算机与现代仪器设备日渐趋同,两者间已表现出全局意义上的相通性.据此,有人提出了“计算机就是仪器,软件就是仪器”的概念.
而基于自由摆的平板控制系统是为自动控制原理等基础控制课程的教学实验而设计的实验设备,它是控制领域中的一个经典实验对象.该系统可为自动控制理论的教学、实验和科研构建良好的实验平台.该系统采用STC12C5A60S2单片机[3]作为控制系统的核心;以步进电机控制平板转动,以L298作为电机驱动芯片[4];以旋转编码器模块[5]为角度传感器,监测出平板的倾斜角度,并用1602液晶显示屏显示出平板的倾斜角度.然后数据被送到单片机,同时单片机根据所采集来的角度变化,采用PID算法[6]求出平板应该转动的角度,使平板的倾斜角度恰好能够满足平板对硬币的作用力在水平方向上的分量刚好提供硬币的横向加速度所须的力.继而STC12C5A60S2单片机根据步进电机的最小步进角,精确地控制步进电机转动相应的步数[7],从而实现控制平板在转动过程中维持平衡状态.该系统布局基本合理,实际运行较为平稳,控制精度较高,设计目标在于以此为参考对测控技术[8]作简单阐述.
2设计任务与要求
2.1设计任务
1、设计并制作一个自由摆上的平板系统,其结构如图1所示.摆杆的一端通过转轴固定在一支架上,另一端固定安装一台电机,平板固在电机转轴上;当摆杆如图2所示摆动时,驱动电机可以控制平板转动.
图1平板系统图2自由摆动示意图
2.2设计要求
1、控制电机使平板可以随着摆杆的摆动而旋转(3~5周),摆杆摆一个周期,平板旋转一周(360º),偏差绝对值不大于45°.
2、在平板上粘贴一张画有一组间距为1cm平行线的打印纸.用手推动摆杆至一个角度θ(θ在30º~45º间),调整平板角度,在平板中心稳定放置一枚1元硬币(人民币);启动后放开摆杆让其自由摆动.在摆杆摆动过程中,要求控制平板状态,使硬币在5个摆动周期中不从平板上滑落,并尽量少滑离平板的中心位置.
3、用手推动摆杆至一个角度θ(θ在45º~60º间),调整平板角度,在平板中心稳定叠放8枚1元硬币,见图2;启动后放开摆杆让其自由摆动.在摆杆摆动过程中,要求控制平板状态使硬币在摆杆的5个摆动周期中不从平板上滑落,并保持叠放状态.根据平板上非保持叠放状态及滑落的硬币数计算成绩.
3方案设计与论证
3.1系统所用的各模块
根据题目要求,按照各个模块对实现功能、精度以及反应速度等多方面的要求,对比以往的模块方案,寻找出它们的缺点和不足,我增添了自己的改进方案,并以改进方案的模块联合实现系统的功能要求.
3.1.1控制器模块
常用方案一:
采用FPGA作为系统的控制器.FPGA可以实现各种复杂的逻辑功能,规模大,密度高,它将所有器件集成在一块芯片上,减小了体积,提高了稳定性,并且可应用EDA软件仿真、调试,易于进行功能扩展.FPGA采用并行的输入输出方式,提高了系统的处理速度,适合作为大规模实时系统的控制核心.由检测模块输出的信号并行输入FPGA,FPGA通过程序设计控制监控系统作出相应的动作,但由于其集成度高,使其成本偏高,同时由于芯片的引脚较多,实物硬件电路板布线布线复杂,加重了电路设计和实际焊接的工作.
常用方案二:
采用ATMEL公司的AT89C51作为系统控制器的CPU方案.单片机AT89C51是一种带8K字节内嵌可编程闪存的低功耗高性能的八位微控制器,看门狗定时器,双数据指针,3个16位定时/计数器,6个两级中断源结构,以及掉电模式下的自动保存功能,且软件编程灵活、自由度大,可用软件编程实现各种算法和逻辑控制,但其运算速度还是有点欠缺,不能达到本系统的要求.
改进方案:
采用STC12C5A60S2.STC12C5A60S2/AD/PWM系列单片机是宏晶科技生产的单时钟/机器周期(1T)的单片机[9],是高速/低功耗/超强干扰的新一代8051单片机,指令代码完全兼容传统的8051,但速度快8-12倍.内部集成MAX810专用复位电路,2路PWM,4个16位定时器,7个中断,8路高速10位A/D转换(250K/S,即25万次/秒),针对电机控制,强干扰场合.并且由于其功耗低、体积小、技术成熟和成本低,运用广泛市场上容易购买等优点,完全满足本系统的要求.
3.1.2电机模块
常用方案一:
直流电机使用方便,价格便宜,但运动精度低,难以实现精确的位置控制.如用直流电机控制平板转动,将难以控制其精确位置,系统稳定性差,较难达到题目的要求.
改进方案:
步进电机的运动精度很高,可实现精确的步距角运动,由其组成的位置控制系统定位准确,稳定时间短,一般可采用开环控制.虽然步进电机的控制系统相对复杂,但与其驱动控制器匹配使用,控制起来也十分方便,可很容易的构成数字位置控制系统,因此本系统的驱动元件采用了步进电机,由CPU通过其驱动控制器来控制.
3.1.3电机驱动模块
常用方案一:
利用9012、2SC8050、及电机构成驱动电路.如图3所示,如果单片机控制口输出高电平,9012截止,2SC8050截止,电机停止运转.单片机控制口输出低电平时,9012导通,2SC8050导通,电机开始运转.该电路比较简单,输出功率足够大,足以推动电机工作,并且电机工作时三极管性能非常稳定.但该方案中单片机部分和电机供电部分没有完全隔离,而电动机在切换时会产生巨大的反电动势,经常烧坏单片机.
图3电机驱动电路
常用方案二:
利用BA6219B及其外部辅助电路和电机构成驱动电路,如图4.单片机控制口接BA6219B的两个输入控制端IN1,IN2.BA6219的两个输出端OUT1
(2),OUT2(10)接电机.BA6219B的最大输出电流为2.2A,可使电机快速运行.但是本系统对电机的运行速度要求不是很高,而且这种方法控制较复杂,不宜采用.
图4电动机外部辅助电路
改进方案:
使用L298芯片实现电机的驱动.此种方法电路结构简单,软件设计也直观明了,对于控制电机转动非常方便.其电路原理如图5:
图5L298驱动原理图
3.1.4显示模块
常用方案一:
使用传统的数码管显示.数码管具有:
低功耗、低损耗、低压、寿命长、耐老化、防晒、防潮、防火、放高(低)温,对外界环境要求低,易于维护,同时其精度比较高,称量快,精确可靠,操作简单.数码管是采用BCD编码显示数字,程序编译容易,资源占用较少.但是其不适合显示字符,且其电路复杂,故不宜采用.
改进方案:
使用1602液晶显示屏显示.1602液晶显示屏(LCD)具有轻薄短小、低耗电量、无辐射危险,平面直角显示以及影像稳定不闪烁等优势,可视面积大,画面效果好,分辨率高,抗干扰能力强等特点.
3.1.5平板倾斜角度计算模块
平板倾斜角度控制主要是控制电机转动,使平板的倾斜角度满足系统平稳运行的条件.
常用方案:
自适应算法.自适应过程是一个不断逼近目标的过程.它所遵循的途径以数学模型表示,称为自适应算法.通常采用基于梯度的算法,其中最小均方误差算法(即LMS算法)尤为常用.自适应算法可以用硬件(处理电路)或软件(程序控制)两种办法实现.前者依据算法的数学模型设计电路,后者则将算法的数学模型编制成程序并用计算机实现.算法有很多种,它的选择很重要,它决定处理系统的性能质量和可行性.单片机读取传感器采集来的与水平方向上的角度偏差,一旦出现偏差则控制电机往相应的反方向运转[10],直至角度偏差趋于零.但由于该系统角度偏差变化太快,自适应算法调节方式难以达到系统要求.
改进方案:
PID算法.在过程控制中,按偏差的比例(P)、积分(I)和微分(D)进行控制的PID控制器(亦称PID调节器)是应用最为广泛的一种自动控制器.它具有原理简单,易于实现,适用面广,控制参数相互独立,参数的选定比较简单等优点;而且在理论上可以证明,对于过程控制的典型对象──“一阶滞后+纯滞后”与“二阶滞后+纯滞后”的控制对象,PID控制器是一种最优控制.PID调节规律是连续系统动态品质校正的一种有效方法,它的参数整定方式简便,结构改变灵活.
3.2系统的组成
经过仔细分析和论证,决定了系统各模块的最终方案如下:
1、控制器模块:
STC12C5A60S2单片机,
2、电机模块:
步进电机(1.8/step),
3、电机驱动模块:
L298芯片,
4、显示模块:
1602液晶显示,
5、平板倾斜角度计算模块:
旋转编码器、PID算法.
4系统的实现
4.1总体电路框图
为了使系统能够实现各种复杂的控制功能,本设计采用一种功能强大的、高速低功耗性价比高的单片机STC12C5A60S2完成对其他部分控制.本设计采用倾角传感器对摆杆的倾斜角度的采集数据,通过STC12C5A60S2单片机内部自带的A/D转换将数据送给单片机,单片机通过数据分析控制L298N驱动电路,使步进机旋转保持平板的水平平衡,用1602液晶显示A/D的数据.总体框图如图6所示.
图6系统总体框图
4.2单元电路设计
第一部分:
STC12C5A60S2单片机最小系统.
STC12C5A60S2单片机最小系统P1^1口、P1^2口、P1^3、P1^4口接L298驱动电流的输入口,单片机通过对L298N的控制,使L298发出脉冲控制步进机;P2^3口、P2^4口、P2^5口接1602液晶,控制液晶显示A/D采集N1000060倾角传感器的数据,A/D转换是用STC12C5A60S2内部自带的A/D.单片机最小系统[11]如图7所示.
图7最小系统
第二部分:
L298N电机驱动.
L298N是一种二相四相步进电机[12]的专用驱动器,内含两个H-Bridge的高电压、大电流双桥式驱动器,接收标准;OUT1、OUT2、OUT3、OUT4之间分别接两个步进机;INPUT1、INPUT2、INPUT3、INPUT4接单片机I/O,接收输入控制电位来控制电机旋转.L298N驱动电路如图9所示.
图8L298N驱动
第三部分:
供电电源模块.
供电电源采用集成稳压器7805,电路图中,稳压器7805输入端的电容为输入端滤波电容,输出端的电容为输出端滤波电容;家用电220V经过变压器接入供电电源模块[13],能输出直流电压-12V、-5V、5V、12V.供电电源如图10所示.
图9供电电源
4.3平板倾斜角度计算方法的建模
单摆周期:
T=2*3.14*sqrt(l/g)
(1)
其中,l为摆长1M;g为重力加速度9.8m/s^2.
该系统算得T=2006ms.
过程控制的基本概念:
过程控制——对生产过程的某一或某些物理参数进行的自动控制.
1.模拟控制系统
图10基本模拟反馈控制回路
被控量的值由传感器或变送器来检测,这个值与给定值进行比较,得到偏差,模拟调节器依一定控制规律使操作变量变化,以使偏差趋近于零,其输出通过执行器作用于过程.控制规律用对应的模拟硬件来实现,控制规律的修改需要更换模拟硬件.
2.微机过程控制系统
图11微机过程控制系统基本框图
以微型计算机作为控制器.控制规律的实现,是通过软件来完成的.改变控制规律,只要改变相应的程序即可.
3.模拟PID控制系统组成
图12模拟PID控制系统原理框图
PID调节器是一种线性调节器[14],它将给定值r(t)与实际输出值c(t)的偏差的比例(P)、积分(I)、微分(D)通过线性组合构成控制量,对控制对象进行控制.
4.PID调节器的微分方程
(2)
式中
5.PID调节器的传输函数
(3)
6.PID调节器各校正环节[15]的作用
1)比例环节:
即时成比例地反应控制系统的偏差信号e(t),偏差一旦产生,调节器立即产生控制作用以减小偏差.
2)积分环节:
主要用于消除静差,提高系统的无差度.积分作用的强弱取决于积分时间常数TI,TI越大,积分作用越弱,反之则越强.
3)微分环节:
能反应偏差信号的变化趋势(变化速率),并能在偏差信号的值变得太大之前,在系统中引入一个有效的早期修正信号,从而加快系统的动作速度,减小调节时间.
7.数字PID控制器
1)模拟PID控制规律的离散
表1模拟PID控制规律的离散化
模拟形式
离散化形式
2)数字PID控制器的差分方程
(4)
式中
称为比例项
称为积分项
称为微分项
5系统软件流程图
系统软件流程如图13:
图13系统软件流程图
6测试及结果
6.1测试方案
1、硬件测试
硬件测试时,可先用万用表检测印制板及焊接的质量是否符合要求,有无虚焊及线路间有无短路、断路,检查无误后,可通电检测电源部分是否正常工作.
2、软件仿真测试
软件编译和仿真调试是在MCS-51编译器下进行,源程序编译及仿真调试应分段或子程序为单位逐个进行,最后结合硬件实时调节.
子程序测试包括:
1)显示程序;2)步进电机程序;3)键盘程序;4)角度传感器模块.
3、硬件软件联调
(1)基本要求的测试
第一次,我们设置平板的摆动为模式1,要求平板能随着摆杆的摆动而旋转3~5周,平板旋转一周偏差不大于45°.
第二次,设置平板的工作为模式2,在平板上粘贴一张画有一组间距为1cm平行线的打印纸,将摆杆从45°处放下,5周期后,控制摆杆缓慢停下,这时硬币滑离平板中心距离0cm.
第三次,让摆杆从60°处放下,5周期后,控制摆杆缓缓停下,此时接触平板的硬币数为1
6.2测试条件与仪器
1、测试条件:
检查电路板,保证电路无虚焊及线路间无短路、断路.
2、测试仪器:
表2测试仪器
序号
类型
厂商
型号
1
直流稳压稳流电源
中策
20001420
2
数字万用表
深圳滨江
DT9205
3
量角器
6.3测试结果及分析
测试结果数据表格:
表3角度偏差测试单位:
度
次数/角度
1
2
3
4
平均
第一次
41°
42°
43°
42°
42°
第二次
-20°
-24°
-23°
-25°
-23°
第三次
4°
2°
3°
3°
3°
表38枚硬币测试单位:
枚
次数/有效硬币数
1
2
3
4
5
第一次
1
2
1
1
2
第二次
3
4
3
3
4
第三次
5
4
4
5
4
测试分析与总结:
1、电机抖动:
电机性能不能达到要求,程序控制方面存在一定问题.2、单摆周期:
空气,线的阻力和单摆和支架间的摩擦力使周期变长,另外单摆摆动的角度超过6°,这也使得单摆周期与实际存在一定程度的误差,从而影响了对电机控制时机的把握.3、此设计采用角度传感器进行检测,结合STC单片机编程,对系统各电路和实际运行的测试,得出上述数据.根据上述测试数据,由此可以得出以下结论:
系统精度相对来说比较高,误差很小,系统各项功能均达到设计要求;由于增加了LCD显示当前信息,显示清晰醒目,灵活性较大.
7结论
本系统以STC12C12C5A60S2单片机作为核心部分,根据旋转编码器采集来的信息,经计算得出数据来控制步进电机转动,从而达到系统的基本要求.在系统设计中,力求硬件线路简单,充分发挥软件编程方便灵活的特点,来满足系统设计要求.因为时间有限,该系统还有许多值得改进的地方:
比如对此系统来讲,PID算法并不是最优算法;硬件电路的设计还需优化,以减小系统的阻力等等.因此,系统还有待改进.如果要更好的实现该题目要求,可以采用细分电路,采用细分电路就是通过单片机进行DAC输出阶梯波来控制电机,那样就可以根据阶梯波从0到最大值的阶梯数来进行很好的细分控制,进而使得步进电机平稳的转动.
附 录
附录1部分模块软件设计:
1、步进电机右转函数
voidl_turn(uinti)//步进电机右转函数
{
AA;
delay_ms(i);
AB;
delay_ms(i);
BB;
delay_ms(i);
BC;
delay_ms(i);
CC;
delay_ms(i);
CD;
delay_ms(i);
DD;
delay_ms(i);
DA;
delay_ms(i);
}
2、步进电机左转函数
voidr_turn(uinti)//步进电机左转函数
{
DA;
delay_ms(i);
DD;
delay_ms(i);
CD;
delay_ms(i);
CC;
delay_ms(i);
BC;
delay_ms(i);
BB;
delay_ms(i);
AB;
delay_ms(i);
AA;
delay_ms(i);
}
3、STC12C5A60S2内部AD
BYTEget_ad0()//AD读取传感器1的值
{
ADC_CONTR=ADC_POWER|ADC_SPEEDLL|ch0|ADC_START;
_nop_();
_nop_();
_nop_();
_nop_();
while(!
(ADC_CONTR&ADC_FLAG));
returnADC_RES;
}
BYTEget_ad5()//AD读取传感器2的值
{
ADC_CONTR=ADC_POWER|ADC_SPEEDLL|ch5|ADC_START;
_nop_();
_nop_();
_nop_();
_nop_();
while(!
(ADC_CONTR&ADC_FLAG));
returnADC_RES;
}
4、LCD1602的初始化、写数据指令以及显示程序
voidwrite_com(ucharcom)//写指令函数
{
rs=0;
P0=com;
delay
(1);
en=1;
delay
(1);
en=0;
}
voidwrite_data(uchardatae)//写数据函数
{
rs=1;
P0=datae;
delay(5);
en=1;
delay(5);
en=0;
}
voiddisplay_shu(ucharha