//飞轮速度环 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 11:02:36 浏览: 50
这段代码是一个飞轮控制系统的部分代码,包括飞轮速度环、飞轮角度环和飞轮角速度环。以下是对每个函数的简要解释:
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`。
这些函数共同组成了一个闭环控制系统,通过不同的环节控制飞轮的转速、角度和角速度,以实现所需的飞轮控制效果。具体的参数和控制逻辑可能需要根据具体的应用场景进行调整和优化。
相关问题
spdlog找不到spdlog/details/shared_ptr.h
如果你的编译器找不到"spdlog/details/shared_ptr.h"这个头文件,有可能是因为你的spdlog版本较旧,或者你的安装方式有误。
可以尝试以下几步解决该问题:
1. 使用最新版本的spdlog库,可以从官方GitHub仓库下载最新代码并编译安装。
2. 确认你的spdlog安装路径正确,并且已经将该路径添加到了编译器的搜索路径中。
3. 将"spdlog/details/shared_ptr.h"文件所在路径手动添加到编译器的搜索路径中。
如果以上方法都不能解决问题,建议重新安装spdlog库,并确保按照正确的步骤进行安装。
SPDLOG_ACTIVE_LEVEL SPDLOG_LEVEL_DEBUG什么意思
SPDLOG_ACTIVE_LEVEL 是一个预处理指令,用于定义 SPDLOG 库的日志级别。SPDLOG_LEVEL_DEBUG 是日志级别的一种,表示调试级别的日志。因此,SPDLOG_ACTIVE_LEVEL SPDLOG_LEVEL_DEBUG 的组合意思是:定义 SPDLOG 库的日志级别为调试级别,即输出所有调试级别及以上的日志信息。