独轮车成功站立

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

真是废了不少力

卡了这么久首要原因就是过于青睐串级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;       
评论 25
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值