真是废了不少力
卡了这么久首要原因就是过于青睐串级PID,串级PID可以自主寻找机械中位的特性实在是太优雅了,但动量轮这种对即使性要求极高的系统似乎不能用串级PID实现。昨天沉下心把串级PID推掉换成并联,波形一下就朝着正常的方向改变,再稍加调参那么三四个小时动量轮就很稳了。
没想到的是减速电机居然比动量轮还难调,O车模整车太重1:19的减速比就不太够用。调来调去电机都只有猛抽一下和静止两种状态,最终虽然平衡了但总体的静态效果还是不太可观。好在比赛只要保持稳定前进就行,静态不稳应该问题不大。
优快云不支持发视频,那就把平衡代码发出来给大家参考参考吧。
虽然代码可读性和移植性都比较不错,但不建议大家直接拿去用,硬件差异很大。
我的硬件完全是自己搭的,陀螺仪MPU6050,减速电机电压7.4V,减速电机驱动集成H桥A4950,编码器也是自制的霍尔编码器一圈大概340线。
由此也证明了,龙邱逐飞为了利润把智能车市场拉太高了,明明六块钱的软件I2C陀螺仪就够用了他要推六十块的SPI陀螺仪,两块钱的集成H桥也够用了他要推MOS管搭的板子,我自制编码器全程投入不超过五十块而且效果优雅,他总推荐大家用一百多一个的高精度编码器。骄奢淫逸,把智能车搞得愈发商业化。
//X编码器积分限幅
static int range_x_enco(int value)
{
static const int range_max = 10000;
//略
}
float x_target_ang = 0; //x轴目标角度(机械中位)
//X轴角度环PD
static void x_balance_cont(void)
{
const float bal_kp = 90,bal_kd = 1100; //PD参数
int pwm_balance;

作者在文中分享了在智能车动量轮控制系统中遇到的问题及解决方案。原本使用串级PID导致系统不稳定,切换至并联PID后,经过调整参数,动量轮达到了较好的稳定性。然而,减速电机的调校更为复杂,由于车辆重量及减速比问题,平衡效果不理想。作者还自制了编码器,质疑了市场上高价组件的必要性,并提供了部分代码供参考。
最低0.47元/天 解锁文章
6534





