直立车的速度环怎么调都不会停下来,是程序问题

直立车的速度环怎么调都不会停下来,是程序问题,第1张

传感器啊,就是摄像头采集道路信息,通过算法,得出来你的偏移量,我们之前是,先根据采集的道路信息辨识出赛道类型,s弯,大弯等,然后根本编码器测得的自身速度和自身便宜赛道的位置,给出一个小车方向和速度的期望值,貌似就是一个加速度,而不是说给了他多少,他就达到多少,就是给他一个加速度的量,比如速度加的快与慢,方向转的快慢,比如见到急弯了,自身速度还是很快,就得反转电机一小段时间,把速度迅速降下来,设为0,有惯性是降不下来速度的

直立车经验总结

1. 车模运动任务分解:车模平衡、车模速度、车模方向。其中,车模的平衡是通过电机的正反向运动实现的;车模的速度是通过控制电机的转速(实质是通过输出不同占空比的PWM波来实现的);车模的方向控制则是通过电机的转动差速来实现的。其中,车模的直立控制是关键,车模的速度控制在小车上表现为调节自身车模倾角达到以给定速度运行的目的。归根结底,车模的三种控制最终都要回归到通过调节PWM波分别控制两个电机的转速来实现。

2. 陀螺仪和加速度计的安装问题:两传感器最好安装在车模中心或偏下位置,稍微偏上或偏一侧也可以,偏一侧的话会使方向陀螺仪在左右转向时输出有差异,造成不对称的输出,对于车模的方向调节会有一定的影响。另外需要注意:陀螺仪输出的模拟电压值很小,一般需要放大10倍左右,而加速度计的输出相对陀螺仪而言较大,并且也符合AD转换的模拟电压的范围,无需再放大。由于购买的陀螺仪和加速度计模块都是厂家集成处理好的,外接的放大电路已经连接好了,故只需买现成的模块使用就行了,无需再自个搭建陀螺仪的外接放大电路了。

3. 陀螺仪和加速度计的功能:陀螺仪是用来测量车模的角加速度的,其输出是与车模前倾或后仰的角速度成正比的模拟电压值。加速度计是用来测量车模倾角的,其输出是与车模倾斜角度成正比的

4. 车模的三种控制之间的关系:由于车模的直立控制是关键,因此,在控制其他两个量时,应尽量减少对车模直立控制的干扰。三种控制最终都是通过控制车模的两个电机来实现,故它们之间存在着一定的联系。在分析一种控制时,可以先假设另外两种控制都以达到平衡。从控制的角度看,车模作为一个控制对象,其控制输入量是两个电机的转动速度。

5. 传感器极性问题:传感器安装在车模的前面或后面(在同一面正着按或反着按)时车模前倾或后仰对应的模拟电压值可能会相反,这就是传感器的极性问题。比如在车模的转向控制中使用的车模转向陀螺仪的Z轴朝上与朝下,对应的车模转向角速度的极性恰相反,从而影响车模方向控制微分控制量与比例控制量之间的加减关系。测量车模倾角的陀螺仪应该水平安装(必须注意),而测量车模转向的陀螺仪则应该竖直安装。车模在转弯时既有平动又有转动,如果陀螺仪安装的不水平,就会在Z轴方向存在一个分量,该分量可能正也可能负,从而使车模控制仿佛感觉是在上下坡,引起车模的加减速运动。

6. 电机控制的注意事项:对电机的控制要有一个过渡阶段,不能一下子使其电压从正变为负,否则输出电流变化太大对电机不利。

另外也要注意电机的死区电压(在0的正负附近区域内)。电机控制中的PWM波的占空比值总是正的,最小为0.

7. 软件部分说明:由于牵涉到车模的直立控制,算法的实现对时间要求较为苛刻,可用定时中断实现相应的控制,但应注意每一步的用时都不应超过定时周期的最小划分时间(如果是1ms定时,就不能超过1ms)。为了达到平滑控制的目的,可以将速度控制划分在20*5的控制周期内来实现。算法的优化有时候也很重要,注意编程时的灵活性。

8. 传感器采集信息的处理:模拟量的采集的处理方法是多次采集求均值作为最终有效值,有时还要舍去前面刚上电时的几个坏值。对采集回来的模拟电压值要做单位的统一,故需要经过一定的系数的乘除的转换才行。

9. 直立控制中涉及到的几个待定参数:车模的角度补偿时间常数Tz(Tg)、陀螺仪比例系数Rgyro、加速度计比例系数Rz、直立陀螺仪的零偏值GyroZeroOffset_stand、方向陀螺仪的零偏值GyroZeroOffset_direction、加速度计的零偏值AccZeroOffset、加速度计的最大值ACC_MAX、最小值ACC_MIN、角度PID参数的P值和D值、速度PID参数的P值和I值、方向PID参数的P值和D值以及电机的死区电压(也可以不管)等。建议以上各参数尽量都使用动态测量值,比如零偏值可以采用在当前环境下实时采集的值作为有效零偏值,这比预先在一种环境下采集好,

到另一种环境下使用效果好,因为可以有效地抑制陀螺仪的温漂所带来的影响。

10. 角度补偿时间常数Tz的整定:该参数决定了抑制陀螺仪积分漂移的能力,也决定了车模速度控制中角度跟踪的速度,同时决定了抑制重力加速度中干扰信号的能力。该参数的调整会同时影响到角度和速度的控制,其中对角度的影响较为显著。一般取Tz在1~4之间的某个数值(可以是小数),最好取得稍微大一点,开始时可以取3~4秒左右。如果陀螺仪零点漂移很小,可以适当增加该补偿时间常数;如果陀螺仪零点漂移大,那么可以逐步减小这个补偿时间常数。在减小时间补偿常数时,会发现车模会出现来回摆动的现象。这个现象和车模角度控制时,比例值过大时产生的车模摆动现象一致。故此时可以适当增加角度控制参数中微分参数D来抑制车模摆动的现象。其他参数的整定见官方方案及视频。

11. 程序中变量的管理:全局变量的定义形式为:

g_fGyroscopeAngleSpeed(陀螺仪角速度变量),打头的g表示global,全局的意思;下划线后面的f表示float,单精度浮点型数据,后面的即为要定义的变量,使用英文定义,简单、易读。其中f可以换成c:char,n:int,lf:double,ln:long int。 12. 关于滤波的研究:传感器采集回来的模拟电压值总会掺杂很多干扰信号,为了滤除这些干扰必须进行合理的滤波处理。滤波可以采用软件滤波和硬件滤波。两种滤波方法各有优劣,但我们一般

采用软件滤波。软件滤波常用的有互补滤波和卡尔曼滤波。互补滤波的效果不及卡尔曼滤波,但对于车模的直立控制已经足够,为取得更好地滤波效果可以对卡尔曼滤波进行研究。看懂理论不难,关键是如何用程序去实现,这才是关键。

13. 角度和速度PID参数正定的说明:角度调节:先调P后调D,P值过大,车模震荡,此时增加D值,D过大,车模高频抖动,此时再增加P值。P参数相当于倒立摆的回复力,这个参数必须大于重力加速度g的等效数值时车模才能够保持直立。微分参数D相当于阻尼力,它会使车模尽快恢复稳定,保持静止。速度调节:先调I后调P,I参数可以加快调速速度,过大则会造成车模的震荡,车模来回摆动,此时增加P值,P过大车模前后震荡。P参数的作用是抑制速度调节过程中的过冲,该参数过大会反过来削弱角度调节的P参数的作用。车模的各个参数分别整定完毕后,在车模进入赛道运行时有可能还要调节个别参数以使车模运行的效果更佳。

14. 硬件部分介绍:硬件部分主要分为三个模块:电源模块、驱动模块、控制模块(主板部分<最小系统>)。设计电路时一定要考虑共地问题,设计的电路板必须要做到所有的元器件的参考地是同一个地。最好为每一个模块设计一个开关,并配上指示灯。电路结构尽量精巧紧凑,充分利用空间。尽量减少杜邦线的使用,避免车模连线的复杂性。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11022876.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-13
下一篇 2023-05-13

发表评论

登录后才能评论

评论列表(0条)

保存