基于LPC2124的直流电机调速系统Proteus仿真_第1页
基于LPC2124的直流电机调速系统Proteus仿真_第2页
基于LPC2124的直流电机调速系统Proteus仿真_第3页
基于LPC2124的直流电机调速系统Proteus仿真_第4页
基于LPC2124的直流电机调速系统Proteus仿真_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、基于LPC2124的直流电机调速系统Proteus仿真1 直流电机、减速器及传感器选型设计要求驱动轮式机器人,两轮的直径相同为0.1m,驱动电机选用直流电机,为了满足加速度需求,每个电机配备了减速装置,且两轮为独立驱动。小车运行过程中自带电池,电池的供电电压为+24VDC,为满足机器人比赛需要,经需求分析可得该机器人运动控制系统的最大速度为:5.0m/s,最大加速度为:20m/s2,控制方案采用闭环控制方案。通过计算可知,在没有减速器的情况下,电机应达到955r/min才能实现最大转速5.0m/s,启动时间应该小于0.25s才能达到最大加速度20m/s2的要求。所以,可以选择额定电压24V,空

2、载转速2500r/min的直流电机,采用调速比2.5的减速器,加速度要求通过软件实现。系统要求采用闭环控制方案,本设计采用转速单闭环控制,选用旋转编码器作为测速传感器。旋转编码器不仅精度高,而且安全稳定、维护方便,在Proteus库里有配套旋转编码器的直流电机,方便仿真。理论上旋转编码器的光栅数越大,测速越精确,但是光栅数的增大会增加制作难度和成本,本设计只是用于轮式机器人的测速,采用光栅数1024的旋转编码器足以,同时可以采用四倍频电路提高转速分辨率。在基于Proteus仿真的直流电机调速系统中,由于各种限制,设计并不能达到系统的具体要求,但是可以作为一个可供参考的调速模型。2 直流电机调速

3、系统硬件设计2.1硬件系统结构图直流电机转速单闭环调速系统硬件结构图如图1 所示图1 直流电机转速单闭环调速系统硬件结构图2.2 LPC2124简介LPC2124是基于一个支持实时仿真和跟踪的16/32位ARM7TDMI-S CPU的微控制器,并带有256KB嵌入的高速Flash存储器。128位宽度的存储器接口和独特的加速结构使32位代码能够在最大时钟速率下运行,且可使用16位Thumb模式。LPC2124支持多种通信接口,包括UART, 和SPI等串行接口以及PWM输出接口,外围接口部分设计极为方便、灵活。2.3 电机驱动芯片L298介绍L298N是ST公司生产的一种高电压、大电流电机驱动芯

4、片。该芯片采用15脚封装。主要特点是:工作电压高,最高工作电压可达46V;输出电流大,瞬间峰值电流可达3A,持续工作电流为2A;额定功率25W。内含两个H桥的高电压大电流全桥式驱动器,可以用来驱动直流电动机和步进电动机、继电器线圈等感性负载;采用标准逻辑电平信号控制;具有两个使能控制端,在不受输入信号影响的情况下允许或禁止器件工作有一个逻辑电源输入端,使内部逻辑电路部分在低电压下工作;可以外接检测电阻,将变化量反馈给控制电路。使用L298N芯片驱动电机,该芯片可以驱动一台两相步进电机或四相步进电机,也可以驱动两台直流电机。芯片内部结构图如图2所示。图2 L298芯片的内部结构图L298驱动直流

5、电机参考表1表1 L298驱动直流电机参考表电机旋转方式控制端IN1控制端IN2控制端IN3控制端IN4输入PWM信号改变脉宽可调速调速端A调速端BM1正转高低/高/反转低高/高/停止低低/高/M2正转/高低/高反转/低高/高停止低低/高2.4 直流电机调速系统Proteus仿真电路 Proteus的元件库中提供许多种类型的电机元件,从简单的直流电机到步进电机、伺服电机都有,我们选取一个带编码器的电机MOTOR-ENCODER来仿真,之所以用带编码器的,是因为我们需要用到编码器的输出信号来测量电机的转速。MOTOR-ENCODER的编码输出与本系统所要求的增量式旋转编码具有同等功能,可提供两路

6、路具有90相位差的编码脉冲,利用其中任何一个可实现对转速的检测。在MOTOR-ENCODER的属性中可设置其参数,本系统对MOTOR-ENCODER的参数设置如表2所示。表2 Motor-Encoder参数表参数名参数值 额定电压24 V线圈电阻12 线圈电感100 mH空载转速1000 rpm负载率10 %每转脉冲数60直流电机调速系统Proteus仿真电路如图2所示。图2 直流电机调速系统Proteus仿真电路 系统采用24MHz晶振提供外部时钟,LPC2124的P0.6,P0.7输出高低电平控制电机转速方向;四个二极管作为续流二极管,起保护作用;四个按键通过上拉电阻与LPC通用端口相连,

7、按键按下,低电平有效,另外通过一个四输入与门与外部中断EINT0相连,通过外部中断方式判断是否有按键按下,四个按键分别实现电机加速、减速、反转、制动的功能。3 直流电机调速系统软件设计3.1 直流电机调速系统软件设计流程图直流电机调速系统软件设计流程图如图3所示,中断程序如图4、图5所示。 图3 调速系统软件 图4 按键中断 图5 测速中断设流程图 程序流程图 程序流程图3.2 PWM模块系统采用PWM方法调整电动机的速度,首先应确定合理的脉冲频率。脉冲宽度一定时,频率对电机运行的平稳性有较大影响,脉冲频率高电动机运行的连续性好,但带负载能力差;脉冲频率低则反之。调脉宽的方式有三种:定频调宽、

8、定宽调频和调宽调频。我们采用了定频调宽方式,因为采用这种方式,电动机在运转时比较稳定;并且在采用LPC2124产生PWM脉冲的软件实现上比较方便。PWM输出频率采用系统时钟频率,通过转速调节器调节PWM占空比,实现直流电机的调速驱动。PWM初始化子程序流程如图6所示。图6 PWM初始化流程图3.3测速模块本系统采用T法测速,旋转编码器输出的脉冲由LPC2124的P0.28捕获,电机每转一圈旋转编码器输出60个脉冲,每捕获一个编码器输出脉冲,则进入中断读取定时器的值,计算测速时间,通过公式(1-2)计算转速 (1-1)T法测速原理如图7所示。图7 T法测速原理图定时器0初始化流程图如图8所示。图

9、8 定时器0初始化流程图3.4 数字PI调节器模块在微机数字控制系统中,当采样频率足够高时,可以先按模拟系统的设计方法设计调节器,然后再离散化,就可以得到数字控制器的算法,这就是模拟调节器的数字化。当输入时误差函数e(t)、输出函数是u(t)时,PI调节器的传递函数如下:(1-2)式中:Kpi为PI调节器比例部分的放大系数;t为PI调节器的积分时间常数。式子(1-2)的时域表达式可写成:(1-3)其中,KP=Kpi为比例系数,KI=1/t为积分系数。将上式离散化成差分方程,其第k拍输出为: (1-4)其中,Tsam为采样周期。式(1-4)表述的差分方程为位置式算法,u(k)为第k拍的输出值。由

10、式子看出,比例部分只与当前的偏差有关,而积分部分则是系统过去所有偏差的累积。位置式PI调节器的结构清晰,P和I两部分作用分明,参数调整简单明了。为了安全起见,常须对调节器的输出实行限幅。在数字控制算法中,要对u限幅,只须在程序内设置限幅值um,当u(k)um时,便以限幅值um作为输出。而位置式算法必须要同时设积分限幅和输出限幅。带有积分限幅和输出限幅的位置式数字PI调节程序框图如图9所示。图9位置式数字PI调节流程图本系统只采用了P调节器,即令PI参数为零,经过仿真发现系统可以较稳定地运行。3.5 直流电机制动直流电机要达到快速制动,必须采用反压制动方式,所以制动过程采用另外独立的程序设计。因

11、为原先采用统一的调速程序发现,制动过程反转超调后就向反方向加速,导致系统不稳定。采用独立的程序设计实现电机逐级制动,随转速降低减小PI参数,最后置高P0.6、P0.7,保证超调也不会反转加速。4 直流电机调速系统Proteus仿真结果本系统采用简单的按键操作,实现电机的加速、减速、制动、反转功能,由于时间仓促,在判断按键过程,我们只考虑了只有一个按键按下的情况。本系统各按键的共能如下 加速键用于电机加速,每按一次电机转速增加10r/min。 减速键用于电机减速,每按一次电机转速减小10r/min。 制动键用于电机制动,停止电机旋转。 反转键用于电机反转,每按一次电机反转。按键仿真图如图10所示

12、。图10 按键仿真图当连接好仿真图和载入LPC2124的执行文件后,单击Proteus的仿真启动按钮,则开始对本系统的仿真。其运行流程如下:(1) 按20次加速键让电机启动正转,达到200r/min,所需时间大致在1.3s 左右,如图11所示。图11 加速正转 (2) 按一次减速键,电机转速减小10r/min,到达190r/min,如图12所示。图12 减速 (3) 按一次反转按键,电机反转,到达-190r/min,如图13所示。图13 反转 (4) 按一次制动键,电机制动,转速较大时,电机可以快速制动到接近零,之后缓慢减速,如图14所示。图14 制动 经过仿真调试,发现系统可以实现基本的调速

13、功能,并且可以较快速地启动,系统具有较好的稳定性,误差范围在卤1r/min。5 结束语本设计采用ARM7 LPC2124及外部扩展设备实现对直流电机的转速监控,在硬件上采用了基于PWM技术的H型桥式驱动电路,解决了电机驱动的效率问题,在软件上也采用较为合理的系统结构及算法,提高了ARM的使用效率。以往的数字化直流调速系统中转速常用测速发电机来检测,这种测速方法的精度不够高,在低速时更为严重,很难保障生产的高效、安全运行,所以在本次设计中测速采用了目前较先进的旋转编码器测速,即数字测速。数字测速不仅精度高,而且安全稳定、维护方便。本系统的直流调速系统采用单闭环P调节器控制。用软件编程完成转速驱动

14、,转速检测,实现了对转速的最优化调节。同时还实现了转速的按键输入控制。通过本次设计,加强了我对ARM应用知识的掌握,同时了解了目前工业生产中数字化系统的重要性,使我对使用ARM实现自动化控制的设计过程有了全面地了解。通过学习控制系统工作原理以及如何利用ARM实现各种功能,我查阅了大量相关资料,学会了许多知识,培养了我独立解决问题的能力。同时在对硬件电路设计的过程中,巩固了我的专业课知识,使自己受益匪浅。当然在本次设计中还有需要完善的地方,比如可以增加一个显示模块,显示系统运行的状态,还可以改善调节器,采用PID调节器使转速稳定无超调,另外还可以改善按键输入为数字键盘输入,这样可以给定具体的转速

15、。总之,通过本次设计不仅进一步强化了专业知识,还掌握了设计系统的方法、步骤等,为今后的工作和学习打下了坚实的基础。由于时间仓促,本论文中或多或少会存在一些缺点,所设计的软件难免存在一些不足,恳请老师批评和指正。附录 基于LPC2124的直流电机调速系统源代码/*File: Main.c*功能: 使用PWM6输出PWM信号,通过KEY1,KEY2,KEY3控制电机转速,KEY1按一次加速10r/min,KEY2按一下减速10r/min,KEY3按一下制动,KEY4按一下反转*/#include LPC21xx.htypedef unsigned int uint32;typedef int in

16、t32;#define pwmdata /*PWM周期*/#define f0 /*计数器频率*/#define Z 60 /*电机每转一圈产生Z个脉冲*/#define kp 0.1 /*PI调节器比例系数*/#define ki 0 /*PI调节器积分系数*/#define KEY 0x0b /*P0.23,P0.24,P0.25,P0.27引脚连有按键*/#define KEY1 0x /*P0.23引脚连接KEY1*/#define KEY2 0x /*P0.24引脚连接KEY2*/#define KEY3 0x /*P0.25引脚连接KEY3*/#define KEY4 0x /*P

17、0.27引脚连接KEY4*/uint32 t1=0,t2=0,i=0;uint32 flag=0; /*制动标志,flag=1转速接近0*/uint32 fv=0; /*正反转标志,fv=0正转,fv=1反转*/ int32 nu=0,n=0; /*nu给定转速,n检测转速*/_irq void IRQ_T0(void) t2=T0CR2; /读取捕获寄存器 T0CR2=0; /捕获寄存器清零 if(t1t2) n=1.236*60*f0/(Z*(t2-t1+f0); /1.236为修正系数 t1=t2; T0IR=0x40; /清除捕捉0中断标志(向6位写1) VICVectAddr=0x0

18、0; /中断结束_irq void IRQ_EINT0(void) uint32 i; IOCLR0=0x; for(i=0;i=0) nu+=10; else nu-=10; else if(IOPIN0&KEY2)=0) /KEY2按键按下,减速 if(nu10) nu-=10; else if(nu-10) nu+=10; else nu=0; else if(IOPIN0&KEY3)=0) nu=0;/KEY3按键按下,制动 else if(IOPIN0&KEY4)=0) /KEY4按键按下,反转 if(fv=0) fv=1; else fv=0; nu=-nu; while(IOPI

19、N0&KEY)!=KEY); /等待按键放开 EXTINT=0x01; /清楚EINT0中断标志 VICVectAddr=0x00; /中断结束void TargetInit(void) /*管脚配置初始化*/ PINSEL0=0x; /设置PWM6连接到P0.9引脚 PINSEL1=0x; /P0.28捕捉 IODIR0=0xc0; /P0.6,P0.7,P0.9输出 /*PWM初始化*/ PWMPR=0x00; /不分频,计数频率为Fpclk PWMMCR=0x02; /设置PWMMR0匹配时复位PWMTC PWMMR0=pwmdata; /设置PWM周期 PWMMR6=; /设置PWM占

20、空比 PWMLER=0x40; /PWMMR6锁存 PWMPCR=0x4000; /允许PWM6输出,单边PWM PWMTCR=0x09; /启动定时器,PWM使能 /*EINT0中断初始化*/ PINSEL1=(PINSEL1&0xfffffffc)|0x01; /选择P0.16为EINT0 EXTMODE=EXTMODE&0x0e; /电平触发 EXTPOLAR=EXTPOLAR&0x0e; /低电平中断 /*定时器0初始化*/ T0TC=0; /清除 T0计数值 T0PR=23; /24分频(24MHZ分频后变成1MHZ) T0MR0=; /计数匹配值 T0CCR=0x0140;/第七位

21、写1进入捕捉模式 (上升沿捕捉,进入中断) T0MCR=0x; /匹配后复位T0(不停止) T0TCR=0x; /复位计数器 T0TCR=0x; /计数器使能 /*中断向量初始化*/ VICIntSelect=0x; /中断向量寄存器选择0,IRQ中断 VICVectCntl0=0x20|4; /定时器0中断分配为向量IRQ通道0 VICVectAddr0=(uint32)IRQ_T0; /向量IRQ通道0的中断服务程序地址为IRQ_T0 VICVectCntl1=0x20|14; /EINT0中断分配为向量IRQ通道1 VICVectAddr1=(uint32)IRQ_EINT0; /向量IRQ通道1的中断服务程序地址为IRQ_EINT0 VICIntEnable=(14)|(150) PI=-0.8; else if(n20) PI=-0.5; else if(n10) PI=-0.3; else if

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论