历史上的今天
返回首页

历史上的今天

今天是:2025年04月14日(星期一)

正在发生

2020年04月14日 | Stm32F407控制直流减速编码电机--使用增量式速度PI

2020-04-14 来源:eefocus

今天给大家分享一个我先前使用的直流电机的增量式速度PI的算法。首先跟大家介绍应用场景,我们使用 增量式速度PI 控制直流减速编码电机是在 参加 全国大学生工程训练综合能力竞赛时 为了控制一个麦克纳姆轮小车而准备的, 在应用需求中我们一共是需要控制四路 电机 分别对四个电机的速度、方向进行控制,以此来实现对车身姿态的精确控制。可以认为速度控制时  脉轮车控制的一个基本需求。(此处说的脉轮车是指 自动运行的, 手动操作的就另当别论) 声明:以下文章中电机 指 直流减速编码电机     如果您只是向要一份参考代码, 那么他的链接在这里; 配合文章会更好的理解代码哟


我们先前使用的电机型号如下

我们使用的是500线的光电编码器,控制相对于 12线磁编码器要简单很多,当然价格 贵不少。。。


控制电机的速度,我们第一步肯定是要使用 PWM波,先使用Stm32F407 生成一个我们需要的 占空比可调的  频率 符合要求的方波信号。(此处注意,方波信号的频率不宜过高或者过低,过高容易导致电机驱动的晶闸管经常处于开关状态--发热巨大;过低则容易产生噪音,对电机也低频的冲击) 直接上代码!


第一部分是产生 可控方波的代码

程序大概就是这样的,这一部分很简单,只是简单的定时器的 输出配置


第二部分是配置 一路编码器接口,我们的 Stm32F407的定时器 1 2 3 4 5 8 支持编码器的解码功能,本次比赛中我们的 定时器2 3 4 5 分别用作了四路电机的编码器解码。编码器器的配置过程大致如下:

整个过程的配置很简单 :①开时钟② IO复用③调用接口配置函数   通过上述的顾鹏程我们就已经完成了对编码器的配置。


编码器对 电机输出的编码器信号使用硬件解码,编码器的解码过程配置这里不做详细的介绍了,具体请参考 stm32F4xx 中文参考手册。我们这里最终实现了 电机转动产生正交编码的信号,定时器对编码信号进行解码,电机 转动时 TIMx->CNT ++++  或者----  具体的加或者减取决于电机的转动方向。

以上是编码器参数处理的部分函数, 这里我没有采用记录上一次值的方法,这是因为在项目的需求中我只需要控制速度,而不需要去管位移, 如果有需要对位移进行控制的函数,那么我们就需要保存上一次的值 使用一个差值去进行速度的控制。


第三部分是 产生一个时间基准:


我们要对电机进行速度控制,但是我们目前获取到的信息是 转角的信息(类比直线运动的位移)我们需要对转速(速度)控制只需要对位移进行微分,所获得的就是速度信息。所以我们需要将时间切片,看每一个时间片内 电机转过的角度,这个值近似等于这一段时间内的电机的平均速度, 也几乎可以反映出电机的瞬时速度。 综上 我们需要一个时间的基准


时间基准我们是通过 定时器中断来产生的,我们通过定时器的定时中断,在中断函数内对 编码器信息处理,以此获得速度信息。 定时器中断部分的配置如下, 这是正点原子的探索者的代码,就不做解释了。

第四部分是 增量式速度PI的 实现代码 ,这一部分我是抄来的,也是搞不明白。所以就不去班门弄斧了。大家去找其他的大佬的解释吧。我这里只是附上代码

这个是增量式速度PI 的核心部分。


第五部分就是将以上的部分全部融合起来 构成一个可以跑起来的程序  这也是程序的最主要的部分

至此 就差不多完成了电机的速度控制。整个电机的速度控制时比较困难的,我也是花了一个多周的时间才搞明白的。


除了我上述提到的这些以外,我们还需要去大概的了解 电机驱动   正交编码器  等等的概念。


才疏学浅 难免有疏漏之处,望不吝赐教。

推荐阅读

史海拾趣

Enable Semiconductor Corp公司的发展小趣事

Enable Semiconductor Corp公司深知人才是企业发展的核心动力。因此,公司一直注重人才的引进和培养。公司拥有一支高素质、专业化的研发团队和管理团队,他们具备丰富的行业经验和创新精神。同时,公司还建立了完善的激励机制和培训体系,为员工提供广阔的发展空间。这种以人为本的企业文化使得公司能够不断吸引和留住优秀人才,为公司的发展提供了有力保障。

台湾第一电阻(Firstohm)公司的发展小趣事
电冰箱门密封不严会导致冷气泄漏和能耗增加。如果发现门密封不严,首先应检查密封条是否老化或破损,如果是则应及时更换新的密封条。此外,还应注意检查门铰链是否松动或变形,如果存在问题应及时调整或更换。
Electronic Concepts Inc公司的发展小趣事

作为一家有社会责任感的企业,ECI始终关注环境保护和社会公益。公司积极参与各种环保活动,如节能减排、废物回收等。此外,ECI还设立了公益基金,资助贫困地区的教育事业和医疗事业。这些举措不仅提升了ECI的社会形象,也为公司赢得了更多客户的信任和支持。

常忆科技(CHINGIS)公司的发展小趣事

展望未来,常忆科技将继续坚持创新驱动的发展战略。公司将不断加大在研发和创新方面的投入,推动产品技术的持续升级和迭代。同时,常忆科技还将积极拓展新的应用领域和市场空间,以满足更多客户的需求。

为了实现可持续发展,常忆科技还将注重环境保护和社会责任。公司将致力于推广绿色环保的生产方式和产品应用,为社会的可持续发展做出贡献。在未来的发展中,常忆科技有望凭借其卓越的技术实力和创新精神,继续在电子行业中书写新的辉煌篇章。

Axiomtek公司的发展小趣事

为了满足不断增长的市场需求,常忆科技积极拓展国内外市场。公司通过与全球知名的电子产品制造商建立合作关系,成功将产品打入国际市场。同时,常忆科技还积极参加各类国际电子展会和技术交流活动,展示其最新的技术和产品,吸引了众多国际客户的关注。

随着国际化战略的深入实施,常忆科技的产品逐渐在全球范围内得到应用。这不仅提升了公司的品牌知名度和影响力,也为公司带来了丰厚的经济回报。

CBM_America_Corporation公司的发展小趣事

在全球电子行业遭遇供应链危机时,CBM_America_Corporation面临着巨大的挑战。公司的原材料采购受到影响,生产成本大幅上升。为了应对这一危机,CBM积极调整采购策略,寻找新的供应商和合作伙伴。同时,公司还加大了研发投入,开发出了更加环保、节能的产品,以适应市场需求的变化。通过一系列措施的实施,CBM成功度过了危机,并保持了稳定的发展态势。

问答坊 | AI 解惑

三恒星-中国最便宜的ARM7开发板知道吗?

听说现在三恒星科技推出一个中国最便宜的ARM7开发板,才198元,我晕,谁了解行情啊?ARM有这么便宜的吗?高手指点一下! 小弟QQ:727887572…

查看全部问答>

诚聘射频研发工程师从事红外、射频智能遥控系列,控制系统等产品

诚聘射频研发工程师我司招聘射频研发工程师一名.主要从事红外、射频智能遥控系列,控制系统等产品. 岗位要求:精通无线射频产品的设计、研发工作,一年以上射频电路(315,433HMZ)的独立设计经验.能够熟练使用射频电路仿真工具、测试仪器等相关器件 ...…

查看全部问答>

转载:60年后的电梯,祖国叫你一定要节能!!

本帖最后由 paulhyde 于 2014-9-15 09:11 编辑 如果让你来设计未来的电梯,你会从什么角度入手?酷炫的外观、创意的结构、非凡的体验还是绿色环保的特性? 我一直在关注“60年后的电梯”网络创意设计大赛,是快速电梯和视觉同盟合办的。最近发现 ...…

查看全部问答>

关于蓝牙U盘。

学校创新项目,我想出的一个项目。不过老师说这个不太适合我们这种层次的开发,个人觉得应该可以弄出来。注:老师是搞DSP的,对于蓝牙、USB等不太了解。希望坛友能给点建议。 附:考虑到U盘对电脑的依赖性很强,大多数情况下,人们希望可以实现不 ...…

查看全部问答>

Zigbee的MAC地址和电脑的MAC地址有什么区别?

Zigbee的MAC地址64位 电脑的MAC地址48位 他们之间有什么联系和区别?…

查看全部问答>

请高手帮忙: 在C代码中嵌入读ARM CPU ID 问题

当本人把以下代码嵌入到C文件中         __asm        {                 MRC p15,0,r10,c0,c0,0;         } 编译出错的信息为: War ...…

查看全部问答>

菜鸟求解。。请问msp430g2231的工作电压只要是1.8到3.6v都行吗?

如题,就是vcc应该接多少v呢? 另外io口的输出电压又是多少啊。。。。入门级菜鸟望指教…

查看全部问答>

altera注册问题

为什么我在altera中国官网上注册了账号,每次都显示“您的进程已经过期。请重新登录”,…

查看全部问答>

大家分享一下拿LaunchPad经验啊

还没能拿到LaunchPad,请大家分享一下得到LaunchPad的经验啊…

查看全部问答>

gprs+zigbee

请问gprs模块+zigbee模块,用手机发短信控制zigbee模块上的led点亮这个功能怎么实现 我知道是用串口控制的,很多人都说很简单,可是我还是实现不了,大家都说简单 我的代码也打好了,在串口调试助手上也测试过zigbee模块能输出AT指令,并且在串口调 ...…

查看全部问答>