ImageVerifierCode 换一换
格式:DOCX , 页数:15 ,大小:380.26KB ,
资源ID:7422917      下载积分:10 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/7422917.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(基于LPC2124的直流电机调速系统Proteus仿真.docx)为本站上传会员【pc****0】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

基于LPC2124的直流电机调速系统Proteus仿真.docx

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

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

3、各种限制,设计并不能达到系统的具体要求,但是可以作为一个可供参考的调速模型。 2 直流电机调速系统硬件设计 2.1硬件系统结构图 直流电机转速单闭环调速系统硬件结构图如图1 所示 图1 直流电机转速单闭环调速系统硬件结构图 2.2 LPC2124简介 LPC2124是基于一个支持实时仿真和跟踪的16/32位ARM7TDMI-S CPU的微控制器,并带有256KB嵌入的高速Flash存储器。128位宽度的存储器接口和独特的加速结构使32位代码能够在最大时钟速率下运行,且可使用16位Thumb模式。 LPC2124支持多种通信接口,包括UART,I2C 和SPI等串行接口以及PW

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

5、片可以驱动一台两相步进电机或四相步进电机,也可以驱动两台直流电机。芯片内部结构图如图2所示。 图2 L298芯片的内部结构图 L298驱动直流电机参考表1 表1 L298驱动直流电机参考表 电机 旋转方式 控制端IN1 控制端IN2 控制端IN3 控制端IN4 输入PWM信号改变脉宽可调速 调速端A 调速端B M1 正转 高 低 / / 高 / 反转 低 高 / / 高 / 停止 低 低 / / 高 / M2 正转 / / 高 低 / 高 反转 / / 低 高 / 高 停止 低 低 /

6、 / / 高 2.4 直流电机调速系统Proteus仿真电路 Proteus的元件库中提供许多种类型的电机元件,从简单的直流电机到步进电机、伺服电机都有,我们选取一个带编码器的电机MOTOR-ENCODER来仿真,之所以用带编码器的,是因为我们需要用到编码器的输出信号来测量电机的转速。MOTOR-ENCODER的编码输出与本系统所要求的增量式旋转编码具有同等功能,可提供两路路具有90○相位差的编码脉冲,利用其中任何一个可实现对转速的检测。 在MOTOR-ENCODER的属性中可设置其参数,本系统对MOTOR-ENCODER的参数设置如表2所示。 表2 Motor-Enc

7、oder参数表 参数名 参数值 额定电压 24 V 线圈电阻 12 Ω 线圈电感 100 mH 空载转速 1000 rpm 负载率 10 % 每转脉冲数 60 直流电机调速系统Proteus仿真电路如图2所示。 图2 直流电机调速系统Proteus仿真电路 系统采用24MHz晶振提供外部时钟,LPC2124的P0.6,P0.7输出高低电平控制电机转速方向;四个二极管作为续流二极管,起保护作用;四个按键通过上拉电阻与LPC通用端口相连,按键按下,低电平有效,另外通过一个四输入与门与外部中断EINT0相连,通过外部中断方式判断是否有按键按下,四个按键

8、分别实现电机加速、减速、反转、制动的功能。 3 直流电机调速系统软件设计 3.1 直流电机调速系统软件设计流程图 直流电机调速系统软件设计流程图如图3所示,中断程序如图4、图5所示。 图3 调速系统软件 图4 按键中断 图5 测速中断 设流程图 程序流程图 程序流程图 3.2 PWM模块 系统采用PWM方法调整电动机的速度,首先应确定合理的脉冲频率。脉冲宽度一定时,频率对电机运行的平稳性有较大影响,脉冲频率高电动机运行的连续性好,但带负载能力差;

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

10、Tt (1-1) T法测速原理如图7所示。 图7 T法测速原理图 定时器0初始化流程图如图8所示。 图8 定时器0初始化流程图 3.4 数字PI调节器模块 在微机数字控制系统中,当采样频率足够高时,可以先按模拟系统的设计方法设计调节器,然后再离散化,就可以得到数字控制器的算法,这就是模拟调节器的数字化。 当输入时误差函数e(t)、输出函数是u(t)时,PI调节器的传递函数如下: (1-2) 式中:Kpi为PI调节器比例部分的放大系数; t为PI调节器的积分时间常数。 式子(1-2)的时域表达式可写成: (1-3)

11、其中,KP=Kpi为比例系数,KI=1/t为积分系数。 将上式离散化成差分方程,其第k拍输出为: (1-4) 其中,Tsam为采样周期。 式(1-4)表述的差分方程为位置式算法,u(k)为第k拍的输出值。 由式子看出,比例部分只与当前的偏差有关,而积分部分则是系统过去所有偏差的累积。位置式PI调节器的结构清晰,P和I两部分作用分明,参数调整简单明了。 为了安全起见,常须对调节器的输出实行限幅。 在数字控制算法中,要对u限幅,只须在程序内设置限幅值um,当u(k)>um时,便以限幅值um作为输出。而位置式算法必须要同时设积分限幅和输出限幅。 带有积分限幅和输出限幅的位置式数字P

12、I调节程序框图如图9所示。 图9位置式数字PI调节流程图 本系统只采用了P调节器,即令PI参数为零,经过仿真发现系统可以较稳定地运行。 3.5 直流电机制动 直流电机要达到快速制动,必须采用反压制动方式,所以制动过程采用另外独立的程序设计。因为原先采用统一的调速程序发现,制动过程反转超调后就向反方向加速,导致系统不稳定。采用独立的程序设计实现电机逐级制动,随转速降低减小PI参数,最后置高P0.6、P0.7,保证超调也不会反转加速。 4 直流电机调速系统Proteus仿真结果 本系统采用简单的按键操作,实现电机的加速、减速、制动、反转功能,由于时间仓促,在判断按键过程,我们只考虑

13、了只有一个按键按下的情况。 本系统各按键的共能如下 ① 加速键用于电机加速,每按一次电机转速增加10r/min。 ② 减速键用于电机减速,每按一次电机转速减小10r/min。 ③ 制动键用于电机制动,停止电机旋转。 ④ 反转键用于电机反转,每按一次电机反转。 按键仿真图如图10所示。 图10 按键仿真图 当连接好仿真图和载入LPC2124的执行文件后,单击Proteus的仿真启动按钮,则开始对本系统的仿真。其运行流程如下: (1) 按20次加速键让电机启动正转,达到200r/min,所需时间大致在1.3s 左右,如图11所示。 图11 加速正转 (

14、2) 按一次减速键,电机转速减小10r/min,到达190r/min,如图12所示。 图12 减速 (3) 按一次反转按键,电机反转,到达-190r/min,如图13所示。 图13 反转 (4) 按一次制动键,电机制动,转速较大时,电机可以快速制动到接近零,之后缓慢减速,如图14所示。 图14 制动 经过仿真调试,发现系统可以实现基本的调速功能,并且可以较快速地启动,系统具有较好的稳定性,误差范围在±1r/min。 5 结束语 本设计采用ARM7 LPC2124及外部扩展设备实现对直流电机的转速监控,在硬件上采用了基于PWM技术的H型桥

15、式驱动电路,解决了电机驱动的效率问题,在软件上也采用较为合理的系统结构及算法,提高了ARM的使用效率。 以往的数字化直流调速系统中转速常用测速发电机来检测,这种测速方法的精度不够高,在低速时更为严重,很难保障生产的高效、安全运行,所以在本次设计中测速采用了目前较先进的旋转编码器测速,即数字测速。数字测速不仅精度高,而且安全稳定、维护方便。本系统的直流调速系统采用单闭环P调节器控制。用软件编程完成转速驱动,转速检测,实现了对转速的最优化调节。同时还实现了转速的按键输入控制。 通过本次设计,加强了我对ARM应用知识的掌握,同时了解了目前工业生产中数字化系统的重要性,使我对使用ARM实现自动化控

16、制的设计过程有了全面地了解。通过学习控制系统工作原理以及如何利用ARM实现各种功能,我查阅了大量相关资料,学会了许多知识,培养了我独立解决问题的能力。同时在对硬件电路设计的过程中,巩固了我的专业课知识,使自己受益匪浅。当然在本次设计中还有需要完善的地方,比如可以增加一个显示模块,显示系统运行的状态,还可以改善调节器,采用PID调节器使转速稳定无超调,另外还可以改善按键输入为数字键盘输入,这样可以给定具体的转速。 总之,通过本次设计不仅进一步强化了专业知识,还掌握了设计系统的方法、步骤等,为今后的工作和学习打下了坚实的基础。由于时间仓促,本论文中或多或少会存在一些缺点,所设计的软件难免存在一些

17、不足,恳请老师批评和指正。 附录 基于LPC2124的直流电机调速系统源代码 /****************************************************************************** *File: Main.c *功能: 使用PWM6输出PWM信号,通过KEY1,KEY2,KEY3控制电机转速,KEY1按一次加速10r/min,KEY2按一下减速10r/min,KEY3按一下制动,KEY4按一下反转 ***************************************************************

18、/ #include "LPC21xx.h" typedef unsigned int uint32; typedef int int32; #define pwmdata 240000 /*PWM周期*/ #define f0 1000000 /*计数器频率*/ #define Z 60 /*电机每转一圈产生Z个脉冲*/ #define kp 0.1 /*PI调节器比例系数*/ #define ki 0 /*PI调节器积分系数*/ #define KEY 0x0b800000

19、 /*P0.23,P0.24,P0.25,P0.27引脚连有按键*/ #define KEY1 0x00800000 /*P0.23引脚连接KEY1*/ #define KEY2 0x01000000 /*P0.24引脚连接KEY2*/ #define KEY3 0x02000000 /*P0.25引脚连接KEY3*/ #define KEY4 0x08000000 /*P0.27引脚连接KEY4*/ uint32 t1=0,t2=0,i=0; uint32 flag=0; /*制动标志,flag=1转速接近0*/ uint32

20、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为修正系数 t

21、1=t2; T0IR=0x40; //清除捕捉0中断标志(向6位写1) VICVectAddr=0x00; //中断结束 } __irq void IRQ_EINT0(void) { uint32 i; IOCLR0=0x00000001; for(i=0;i<50;i++); //延时去抖 if((IOPIN0&KEY)!=KEY) if((IOPIN0&KEY1)==0) //KEY1按键按下,加速 { flag=0;

22、 if(nu>=0) nu+=10; else nu-=10; } else if((IOPIN0&KEY2)==0) //KEY2按键按下,减速 { if(nu>10) 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按键按下,反转

23、 { if(fv==0) fv=1; else fv=0; nu=-nu; } while((IOPIN0&KEY)!=KEY); //等待按键放开 EXTINT=0x01; //清楚EINT0中断标志 VICVectAddr=0x00; //中断结束 } void TargetInit(void) { /*管脚配置初始化*/ PINSEL0=0x00080000; //设置PWM6连接到

24、P0.9引脚 PINSEL1=0x02000000; //P0.28捕捉 IODIR0=0x000002c0; //P0.6,P0.7,P0.9输出 /*PWM初始化*/ PWMPR=0x00; //不分频,计数频率为Fpclk PWMMCR=0x02; //设置PWMMR0匹配时复位PWMTC PWMMR0=pwmdata; //设置PWM周期 PWMMR6=120000;

25、 //设置PWM占空比 PWMLER=0x40; //PWMMR6锁存 PWMPCR=0x4000; //允许PWM6输出,单边PWM PWMTCR=0x09; //启动定时器,PWM使能 /*EINT0中断初始化*/ PINSEL1=(PINSEL1&0xfffffffc)|0x01; //选择P0.16为EINT0 EXTMODE=EXTMODE&0x0e; //电平触发 EXTPOLA

26、R=EXTPOLAR&0x0e; //低电平中断 /*定时器0初始化*/ T0TC=0; //清除 T0计数值 T0PR=23; //24分频(24MHZ分频后变成1MHZ) T0MR0=1000000; //计数匹配值 T0CCR=0x0140; //第七位写1进入捕捉模式 (上升沿捕捉,进入中断) T0MCR=0x00000002; //匹配后复位T0(不停止) T0TCR=0x00000002; //复位计数器 T0TCR=0x00000001; //计数器

27、使能 /*中断向量初始化*/ VICIntSelect=0x00000000; //中断向量寄存器选择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

28、 VICIntEnable=(1<<4)|(1<<14); //定时器0和EINT0中断使能 EXTINT=0x07; //清楚外部中断标志 } /****************************************************************************** *名称: main() *功能: 使用PWM6输出占空比可调的PWM波形,控制直流电机 ***************************************************************************

29、/ int main(void) { float PI=0,sum=0; int32 es=0; TargetInit(); while(1) { if(nu==0) //制动 if(fv==0) //如果正转 if(n>50) PI=-0.8; else if(n>20) PI=-0.5; else if(n>10) PI=-0.3; else if(n>3) PI=-0.1;

30、 else {PI=0;flag=1;} else //如果反转 if(n>50) PI=0.8; else if(n>20) PI=0.5; else if(n>10) PI=0.3; else if(n>3) PI=0.1; else {PI=0;flag=1;} else { if(nu>0) es=nu-n; else es=nu+n;

31、 sum=sum+es; PI=kp*es+ki*sum; if(PI>0.8)PI=0.8; //过饱和保护 if(PI<-0.8) PI=-0.8; } if(flag==1) {IOSET0=0x000000c0;} else if(PI>0) { IOSET0=0x00000040; //设置P0.6高电平,P0.7低电平 IOCLR0=0x00000080; //正转 PWMMR0=pwmdata;

32、 PWMMR6=pwmdata*PI; //设置PWM占空比 PWMLER=0x40; //PWMMR6锁存,更新PWM占空比 } else if(PI<0) { IOCLR0=0x00000040; //设置P0.6低电平,P0.7高电平 IOSET0=0x00000080; //反转 PWMMR0=pwmdata; PWMMR6=pwmdata*(-PI);

33、 //设置PWM占空比 PWMLER=0x40; //PWMMR6锁存,更新PWM占空比 } } //return(0); } 参考文献 [1] 杨旭强、吴红星、金钊编著,基于ARM的电动机控制技术[M].北京:中国电力出版社,2008. [2] 周立功主编,ARM嵌入式系统基础教程(第2版)[M].北京:北京航天航空大学出版社,2008.9. [3] 周润景、袁伟亭、景晓松编著,Proteus在MCS-51&ARM7系统中的应用百例[M].北京:电子工业出版社,2006..10. [4] 陈伯时主编,电力拖动自动控制系统——运动控制系统[M].北京:机械工业出版社,2003.7.

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服