Arduino自平衡小车-数据测试-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 5036|回复: 3

Arduino自平衡小车-数据测试

[复制链接]
发表于 2017-12-12 09:36 | 显示全部楼层 |阅读模式
本帖最后由 krwlng 于 2017-12-12 09:36 编辑

Arduino自平衡小车——数据测试
平衡小车支持在线的PID算法的调试工作,同时可以随时进行在线更新。
对于PID 我也没有很好的解释:还好借鉴下吧。

简单的控制模型:控制一台小车以PID控制的方式跑100米后停下。
1、P  比例控制,就让小车跑100米,按照固定的速度(如3米/秒),那么小车只能在99米或者102米就停了。
    说明:P比例控制是一种最简单的控制方式。其控制器的输出与输入误差信号成比例关系。当仅有比例控制时系统输出存在稳态误差(Steady-state error)。
2、PI 积分控制,就是按一定的车速跑到了102米然后回头接着跑,跑到98米(控制时间不定),然后回头向100米终点位置跑。来回多晃几次以后,一定可以到达100米终点。
    说明:在积分I控制中,控制器的输出与输入误差信号的积分成正比关系。对一个自动控制系统,如果在进入稳态后存在稳态误差,则称这个控制系统是有稳态误差的或简称有差系统(System with Steady-state Error)。为了消除稳态误差,在控制器中必须引入“积分项”积分项对误差取决于时间的积分,随着时间的增加,积分项会增大。这样,即便误差很小,积分项也会随着时间的增加而加大,它推动控制器的输出增大使稳态误差进一步减小,直到等于零。因此,比例+积分(PI)控制器,可以使系统在进入稳态后无稳态误差。
3、PD 微分控制,按照一定的车速跑到103米后,往回跑靠近终点位置,到达了100米的位置以后,当无静态误差以后,控制量也为零;如果停车地点离100米有1-2米,还存在静态误差时,控制量不为零。车还会继续往返运动。
    说明:在微分控制D中,控制器的输出与输入误差信号的微分(即误差的变化率)成正比关系。自动控制系统在克服误差的调节过程中可能会出现振荡甚至失稳,其原因是由于存在有较大惯性组件(环节)或有滞后(delay)组件,具有抑制误差的作用,其变化总是落后于误差的变化。解决的办法是使抑制误差作用的变化“超前”,即在误差接近零时,抑制误差的作用就应该是零。这就是说,在控制器中仅引入“比例P”项往往是不够的,比例项的作用仅是放大误差的幅值,而目前需要增加的是“微分项”,它能预测误差变化的趋势。这样,具有比例+微分的控制器,就能够提前使抑制误差的控制作用等于零,甚至为负值,从而避免了被控量的严重超调。所以对有较大惯性或滞后的被控对象,比例P+微分D(PD)控制器能改善系统在调节过程中的动态特性。
关于减速电机的基本速度调试:
捕获.PNG
这是电机速度的设定,在调试的过程中是用的是倒立摆的原理。平衡小车的基本速度为10cm/s 在空转或者达到急速的时候可以达到40cm/s,及为最大的速度。根据代码的设定可以调节脉冲宽度。
捕获.PNG
同时在设定的过程中也可以很灵活的计算出来PWM的数据,根据码盘自动判断转速的情况。



发表于 2017-12-12 10:27 | 显示全部楼层
全是干货,女孩几表示看不懂
发表于 2017-12-12 10:29 | 显示全部楼层
要好好学了。
 楼主| 发表于 2017-12-12 14:15 | 显示全部楼层
阿咩咩 发表于 2017-12-12 10:27
全是干货,女孩几表示看不懂

哪里不懂呀,你可以去百度下倒立摆是什么东西 还有原理。一般还会有相关的讲解视频的。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-11-28 01:51 , Processed in 0.078156 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表