下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、电机SpTA控制算法PosAccumulator += Actualvelocity; PosAdd = PosAccumulator 17;PosAccumulator -= PosAdd 17; if(PosAdd! =0)ActualPosition+=l;产生一个步进脉冲;SpTA即Steps per Time algorithm,它与步进电机S形曲线控制算不同,S形曲线控制算 法思想是根据电机的步数来计算时间,即所谓的Time per Steps,该控制算法先计算电机每 一步运行频率,再根据运动曲线计算得到时间参数,而SpTA算法则是以时间计算为中心, 根据时间来讣算运动步数相关参数
2、,它的做法是将电机的运动时间分割成若干个合适的小时 间片,在每个时间片内它都将速度参数加到位宜参数上,如果位苣参数溢出,它就会输出一 个脉冲,速度参数根拯加速度参数和时间而改变,随着时间推移,速度参数越来越大,位巻 参数溢出频率越来越髙,则电机的运行频率也越来越爲枷找朝用叭 为了实现根据速度参数控制脉冲输出频率,需要左义以下变虽:PosAccumulator位垃累加器PosAdd位宜增加值ActualPositio n实际位置TargetPosition目标位置,用户输入步进电机运动的步数在时间片到来后进行如下计算:位置累加器+实际速度移位,判断速度累加器是否溢出位置累加器去掉溢出部分位置累加
3、器溢出,产生一个不进脉冲这样控制器输岀的脉冲频率就随着实际速度的增大而增髙,随着实际速度减小而降低为了根据时间实现实际速度的变化,需要定义以下变量:VelAccumulator速度累加器ActualAcceleration实际加速度,用户设定的加速度数值VelAdd速度增加值Actualvelocity实际速度Targetvelocity目标速度在时间片到来后进行如下计算:if(ActualVelocity!=TargetVelocity)如果实际速度!二目标速度VelAccumulator+=ActualAcceleration;速度累加器+实际加速度VelAdd = VelAccumula
4、tor 17;移位,判断速度累加器是否溢出VelAccumulator-=VelAdd 17;速度累加器去掉溢出部分if(ActualVelocityTargetVelocity)如果实际速度大于目标速度 ActualVelocity=MAX(ActualVelocity-VelAdd/ Targetvelocity);实际速度为两者中 大者else实际速度二目标速度,不需要执行加加速算法VelAccumulator=0;VelAdd=0;这样,就实现了通过时间和目标速度改变电机实际速度参数,进而间接改变控制器输 出脉冲的频率,时间参数是随着电机运行而递增的,目标速度参数数值是使用一个状态机根
5、 据当前的运行状态来确定的,该状态机具有四种状态:0: RAMPJDLE-空闲状态1: RAMP_ACCELERATE-加速状态2: RAMP_DRIVING 匀速状态3: RAMP_DECELERATE减速状态开始RampState=RAMP_ACCELERATE TargetVelocity=MaxPositioningSpeed AccelerationSteps=ActualPositionRampState=RAMP_DRIVINGAccelerationSteps=abs(Actua!Position-AccelerationSteps+lActualVelocity=MaxPos
6、itioningSpeed|Rampstate=RAMPTa rgetVelocity=Actua IVelocity=O TargetReachFlag=l1 Actual Position =Ta rgetPosition、RAMPACCELERATEDLESA 7DR W、G(匀速态RAMPDECE-EUTERamp5tate=RAN*ip decelerateTargetVeioc)ty=Oabs(ActualPosition-AccelerationSteps)=a bsiTargetPosition-Actual Position状态状态切换及其条件如图3口所示:RampState
7、=RAMP_DECELERATE Targetvelocity=0 abs(TargetPosition-ActualPosition|=AccelerationSteps)图3-11 SpTA控制算法状态机状态切换图SpTA算法同样是通过泄时器来实现的,与S形曲线算法不同的是它没有使用定时器的 PWM功能,仅仅是通过左时器泄时中断来产生一个时间片,在左时器中断服务子程序中完 成上述算法,在需要时,通过控制GPIO产生一个步进脉冲。SpTA与S型算法的比较:从上而的两种算法可以看出,传统的s形曲线控制算法实现比较简单,但是它将要输 出的脉冲频率(周期)和脉冲个数存储在RAM里,占用了一泄的内存
8、,且要想实现更好的 控制效果,S形曲线的离散化程度越高,占用的RAM越大,如果要改变电机的运行速度曲 线,需要重新计算每个阶段脉冲频率和脉冲个数,计算时使用了浮点数,运算量较大。SpTA算法是根据用戸输入的加速度和目标速度以及设左的总脉冲数,自行决泄如何输 出达到最佳运动效果的脉冲,它不需要占用额外的RAM来存储每个阶段脉冲频率和脉冲个 数,算法实现基本上都是MCU拿手的加减法和移位运算,算法效率高,但是该算法为了 达到较好的运动控制,需要一个时间片很小的左时中断来调整数据,这样在输出一个脉冲期 间要频繁产生中断,尤英是在电机起步和停止的时候,脉冲频率低但是定时器中断的次数 很高,这样CPU的效率就会被定时器中断拉低。从算法计算量、占用RAM大小、控制效果和CPU效率上,两种控制算法对比分析如表 3.2所示,综合考虑二者的优缺点,本系统中对于试剂盘、样本盘、反应盘等负载较大的电 机使用SpTA控制算法,苴它负载使用S形曲线控制算法。表3.2步进电机S形曲线控制算法与SpTA控制算法比较分
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 浅谈信息技术与小学英语课堂教学的融合
- 2023年山东省泰安市中考物理试题(附答案及解析)
- 宁波2024年04版小学三年级英语第三单元测验试卷
- 2024年数控超精密磨床项目投资申请报告代可行性研究报告
- 第二单元写作《审题立意》教学设计-2023-2024学年统编版语文九年级下册
- 肛肠医疗废水(医疗废水消毒处理技术方案)
- 中学自强之星事迹材料范文(35篇)
- 三年级下学期工作计划(25篇)
- 中秋志愿者活动总结
- 24.5 相似三角形的性质(第2课时)同步练习
- 2024地理中考复习-七年级上册知识点总结(打印版)
- 2023年室内装饰设计师(三级)理论考试复习题库(含答案)
- 《装在套子里的人》剧本演绎推理+课件++2023-2024学年统编版高中语文必修下册
- 新生儿输血完整版本
- 电脑耗材实施方案、供货方案、售后服务方案
- 2024年深圳市地铁集团有限公司招聘笔试参考题库附带答案详解
- 《干部监督有关知识》课件
- 扩建办公楼项目可行性研究报告
- 大学生职业生涯发展规划智慧树知到期末考试答案2024年
- b方太营销组织岗位角色与职责设计
- 送教上门教师培训课件
评论
0/150
提交评论