使用的是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;
}
|