标题: PID平衡车(STC15w单片机) ,小车站不起来,小白求助 [打印本页]

作者: 你好-----    时间: 2024-5-30 23:55
标题: PID平衡车(STC15w单片机) ,小车站不起来,小白求助
使用的是stc15w408as单片机,通过获取的mpu6050原始数据来控制小车的平衡,使用PD直立环直接输出PWM,但是小车一直平衡不,KP调大了,小车稍微倾斜电机快速响应小车不受控制,KP调小了小车倒了电机还没有反应过来,小白求助!  该怎么解决???


   int balance(float Angle,float Gyro)//roll(横滚角)(回复力)、角速度(阻尼力)
                 
        {  
                int ZHONG=180;
                float Bias;
                float Balance_Kp=6,Balance_Kd=0.05;//600   kp(0 - 25) kd( 0 - 2 )
                int pwm;
                Bias=ZHONG-Angle;                       //===求出平衡的角度中值 和机械相关
                balance=Balance_Kp*Bias+Gyro*Balance_Kd;   //===计算平衡控制的电机PWM  PD控制   kp是P系数 kd是D系数
                return pwm;
        }




作者: 你好-----    时间: 2024-5-31 00:01
(第一次发帖,谢谢您的回复!!!!)
作者: glinfei    时间: 2024-5-31 11:40
总觉得犯的是简单错误,当然也要先将速度环的参数都置零使直立环单独工作
1.机械中值为小车不上电平衡时的角度,你直接用了180,
2.参数整定要做的俩件事是判断参数极性和判断参数的大小,主要是不能反了。
反正站起来容易,但调掉小车的低频震荡麻烦。
作者: Y_G_G    时间: 2024-5-31 11:59
PID本身就是那么几行代码,PID的工作量基本都是花在参数调试上的
作者: 你好-----    时间: 2024-5-31 21:01
glinfei 发表于 2024-5-31 11:40
总觉得犯的是简单错误,当然也要先将速度环的参数都置零使直立环单独工作
1.机械中值为小车不上电平衡时的 ...

谢谢你!   极性没有反呀,车身往哪边到,就往哪边动,不是这样吗?  可是我这个一直是不能平衡的,没有法了,调参调了好久,感觉不是调参解决的..
作者: 你好-----    时间: 2024-5-31 21:02
Y_G_G 发表于 2024-5-31 11:59
PID本身就是那么几行代码,PID的工作量基本都是花在参数调试上的

谢谢你了!    我调参也搞了一段时间,感觉不是我调参能解决的问题了





欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1