历史上的今天
今天是:2025年02月25日(星期二)
2021年02月25日 | 基于嵌入式操作系统的机器人驱动控制模型算法设计
2021-02-25 来源:RT-Thread
概述
机器人运动系统式一套高复杂性、高性、驱动力小于机体物理自由度的非线性系统,为了实现机器人在空间中稳定的运动姿态控制,本设计把机器人运动系统在空间中的运动形式等效成了旋转倒立摆模型,基于该模型的运动特点,分别设计了速度闭环控制算法和角度闭环控制算法,通过双闭环控制算法来实现对空间中旋转倒立摆的稳定控制。
开发环境
硬件:该设计硬件依托于ART-开发平台,主控芯片采用H750高性能单片机,同时采用TB6612芯片作为旋转倒立摆的核心动力驱动,采用霍尔作为速度采集,采用高精度作为摆臂角度采集传感器,采用屏幕来进行参数的显示,与实时调整。
RT-Thre版本:RT-Thread版本采用4.0.2
开发工具及版本:mdk5.32版本
RT-Thread使用情况概述
本设计采用rt-thread 4.0.2 master版本,用到了该操作系统的全内核、FinSH控制台交互,SPI驱动、驱动、驱动、PWM驱动等相关系统驱动,并且编写了双闭环PID控制算法。
框架说明
本设计硬件平台基于ART-PI,核心部分已经固定,针对旋转倒立摆机械部分,其结构如下图所示:
软件模块说明
本设计最关键的部分是PID算法的实现,针对倒立摆的运动特点,进行了优化与调整,PID算法的实现基于经典控制理论中线性控制的理论基础:
在工程实际中,应用最为广泛的调节器控制规律为比例、积分、微分控制,简称PID控制,又称PID调节[6]。PID控制器问世至今已有近70年,它以其结构简单、稳定性好、工作可靠、调整方便而成为工业控制的主要技术之一。当被控对象的结构和参数不能完全掌握,或得不到精确的数学模型时,控制理论的 其它技术难以采用时,系统控制器的结构和参数必须依靠经验和现场调试来确定,
在积分控制中,控制器的输出与输入误差信号的积分成正比关系。对一个自动控制系统,如果在进入稳态后存在稳态误差,则称这个控制系统是有稳态误差的或简称有差系统。为了消除稳态误差,在控制器中必须引入“积分项”。积分项对误差取决于时间的积分,随着时间的增加,积分项会增大。这样即便误差很小,积分项也会随着时间的增加而加大,它推动控制器的输出增大使稳态误差进一步减小,直到等于零。因此,比例加积分(PI)控制器,可以使系统在进入稳态后无稳态误差。
微分(D)控制
在微分控制中,控制器的输出与输入误差信号的微分(即误差的变化率)成正比关系。自动控制系统在克服误差的调节过程中可能会出现振荡甚至失稳。其原因是由于存在有较大惯性组件(环节)或有滞后组件,具有抑制误差的作用, 其变化总是落后于误差的变化。解决的办法是使抑制误差的作用的变化“超前”,即在误差接近零时,抑制误差的作用就应该是零。
这就是说,在控制器中仅引入 “比例”项往往是不够的,比例项的作用仅是放大误差的幅值,而目前需要增加的是“微分项”,它能预测误差变化的趋势,这样,具有比例微分的控制器,就能 够提前使抑制误差的控制作用等于零,甚至为负值,从而避免了被控量的严重超调。所以对有较大惯性或滞后的被控对象,比例微分(PD)控制器能改善系统在调节过程中的动态特性。
演示效果
比赛感悟
本次比赛基本是利用业余时间一点一点完成,中间遇到了一些困难,主要问题出现在对芯片的底层配置上,不过通过对比手册介绍与仿真,都能初步解决。得益于RT-Thread操作系统完善的内核管理,调试交互,驱动设计、使得在设计中少走了很多弯路,加快了开发速度,推荐大家都来尝试使用该系统,真的很好。
原文标题:【RT-Thread作品秀】基于嵌入式操作系统的机器人驱动控制模型算法设计与实现
文章出处:【微信公众号:操作系统】欢迎添加关注!文章转载请注明出处。
史海拾趣
|
复古磁带又出现了!这次要介绍的是款磁带形式的 MP3,没错,它看起来很像是一个磁带,却是个 MP3。它的特色可是不为人知了,看外形与价格也知道,没有昂贵的LCD 屏幕,而且它还有一个秘密,就是没有存储,底部可以发现个 SD 槽,那就是要点所在,你 ...… 查看全部问答> |
|
请教一个问题: 我在Platform Builder 建立和模拟器的连接、下载运行时映像时,遇到下面的问题。 the specified ce boot image couldnot be loaded. your virtual machi ...… 查看全部问答> |
|
我单位设备最近直流24V电源电压一直偏低,一般工作的时候电压都在17 -18V,有时候能低到15V,380V变220V变压器电压都比正常低20V左右,220V变24V直流电源在拔掉24V输出的时候,变压器电压恢复正常了,只要接上24V变压器电压变低,直流输出的24V电源 ...… 查看全部问答> |
|
看了STM32应用上讲的使用定时器产生PWM输出,其中一个配置步骤: 根据需要的频率和占空比计算出输出高电平的时间和低电平的时间:OCHy = 通道y的高电平时间;OCLy =通道y的低电平时间把OCHy写入对应的输出比较寄存器,并启动计数器开始计数,比较 ...… 查看全部问答> |
|
Linux-2.6.21 S3c6400中断剖析<五>(原创)-上海嵌入式索漫科技培训教材 作者:下家山(请尊重原创,转载请注明) http://www.xiajiashan.com 4.1.2.1 desc->chip->unmask(irq)函数来自哪里? 其实default_startup和default_enable最终调用的是一个函数desc->chip->unmask(irq);那么这 ...… 查看全部问答> |




