//飞轮速度环 void fly_wheel_Speed(int fly_wheel_spd) { short fly_wheel_speed_err; float speed_p_out; fly_wheel_speed_err=-fly_wheel_spd; speed_p_out=fly_wheel_speed_kp * fly_wheel_speed_err; fly_wheel_speed_out=speed_p_out; } //////飞轮角度环 void fly_wheel_angle(float cinnn) { float fly_wheel_angle_err; float car_angle_set; car_angle_set = fly_wheel_speed_out/80; fly_wheel_angle_err = (car_angle_set +cinnn+ mechanical_zero) - Pitch; fly_wheel_angle_out = fly_wheel_angle_kp * fly_wheel_angle_err; fly_wheel_angle_out = ((fly_wheel_angle_out)<(-10000)?(-10000):((fly_wheel_angle_out)>(10000)?(10000):(fly_wheel_angle_out))); } ////飞轮角速度环 void fly_wheel_velocity(short Ideal_Velocity) { short velocity_err; velocity_err=Ideal_Velocity-gyro[0]; fly_wheel_velocity_out=fly_wheel_velocity_kp*velocity_err; }
时间: 2023-08-06 10:02:36 浏览: 114
speed_pid.zip_PID速度_pid飞思卡尔_speed_pid_智能小车 PID_飞思卡尔速度
这段代码是一个飞轮控制系统的部分代码,包括飞轮速度环、飞轮角度环和飞轮角速度环。以下是对每个函数的简要解释:
1. `fly_wheel_Speed`: 飞轮速度环函数,用于控制飞轮的转速。输入参数`fly_wheel_spd`表示期望的飞轮转速。函数内部计算速度误差并使用比例控制算法计算输出值`fly_wheel_speed_out`。
2. `fly_wheel_angle`: 飞轮角度环函数,用于控制飞轮的角度。输入参数`cinnn`表示当前角度的补偿值。函数内部根据前面的速度环输出值`fly_wheel_speed_out`计算期望的车辆角度,并计算角度误差。最后,使用比例控制算法计算输出值`fly_wheel_angle_out`,并进行输出限幅(在-10000到10000之间)。
3. `fly_wheel_velocity`: 飞轮角速度环函数,用于控制飞轮的角速度。输入参数`Ideal_Velocity`表示期望的角速度。函数内部计算角速度误差并使用比例控制算法计算输出值`fly_wheel_velocity_out`。
这些函数共同组成了一个闭环控制系统,通过不同的环节控制飞轮的转速、角度和角速度,以实现所需的飞轮控制效果。具体的参数和控制逻辑可能需要根据具体的应用场景进行调整和优化。
阅读全文