极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 12830|回复: 0

VEX IQ版自平衡小车

[复制链接]
发表于 2016-11-19 17:20:00 | 显示全部楼层 |阅读模式
最近入手玩VEX IQ的机器人套件,打算做一款自平衡小车,目前搭建了一个平衡车底盘,如图
编程主体今天写了个简单版的,只用到了角度环,PID的参数粗粗调试了下,效果还成,但是小车时间稍微长一些以后会朝一个方向偏过去,最后倒地。在网上看到说是需要加入速度环控制,小机器人就能够定点了,于是引入了编码器的PID进入,但是输出叠加之后小车稳定度大大降低,估计是速度环PID的参数没有调试正确。主要的代码如下
  1. now = time1[T1];
  2.    float TimeCh = (now - lastTime) / 1000.0;                        
  3.    float Kp = 4.5, Ki = 19.5, Kd = 0.02;
  4.    float Kps = 0.0, Kis = 0.0, Kds = 0.0;
  5.    float SampleTime = 0.01;                                       
  6.    float Setpoint = 0.0;                                             
  7.    if(TimeCh >= SampleTime)
  8.    {
  9.     float Input = f_angle;
  10.     float Inputs = encoder;
  11.     float error = Setpoint - Input;                                 
  12.     float errors = 0-Inputs;
  13.     ITerm+= (Ki * error * TimeCh);                                 
  14.     ITerms+=(Kis*errors*TimeCh);
  15.     float DTerm = Kd * (Input - lastInput) / TimeCh;               
  16.     float DTerms = Kds*(Inputs-lastInputs) / TimeCh;
  17.     Outputs = Kps*errors+ITerms-DTerms;
  18.     Output = Kp * error + ITerm - DTerm-Outputs;
  19. }
复制代码

Kps这些速度环控制的目前重新改成了0。打算重新调试。还有一个问题就是这个电机的最大速度只有127,因此output的值不能超过127,我看很多资料都是将积分项设置一个区域,不知道整体设置限制和积分项设置有何区别。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-3-19 19:57 , Processed in 0.044631 second(s), 18 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

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