KmdFoc控制模式
大约 6 分钟KmdFoc使用指南
KmdFoc控制模式
控制模式
KmdFoc
一共有六种控制模式
typedef enum eHalControlMode{
HAL_CONTROL_MODE_CURRENT = 0,//电流模式
HAL_CONTROL_MODE_CURRENT_RAMP = 1,//电流爬升模式
HAL_CONTROL_MODE_VELOCITY = 2,//转速模式
HAL_CONTROL_MODE_VELOCITY_RAMP = 3,//转速爬升模式
HAL_CONTROL_MODE_POSITION = 4,//位置模式
HAL_CONTROL_MODE_POSITION_TRAP = 5,//位置爬升模式
} tHalControlMode;
HAL_CONTROL_MODE_CURRENT 模式
Note
- 电流控制模式,
KmdFoc
直接利用用户输入的电流设定值作为电流环输入。 - 无处理的闭环设定参数应该尽可能的避免过大的阶跃值设置,否则很容易超调,新手慎用。
- 此模式相比HAL_CONTROL_MODE_CURRENT_RAMP模式具有更高的响应速度。
HAL_CONTROL_MODE_CURRENT_RAMP 模式
Note
- 电流爬升模式,
KmdFoc
不会直接利用用户输入的电流设定值作为电流环输入,而是逐渐增大或减小电流环输入直到达到用户设定值。 - 电流上升和下降的速度受
current_ramp_rate
控制,当current_ramp_rate
设置无穷大时可以与HAL_CONTROL_MODE_CURRENT
模式等效。 - 设置合适的
current_ramp_rate
可以有效避免用户设置过大阶跃信号的问题。
HAL_CONTROL_MODE_VELOCITY 模式
Note
- 转速控制模式,
KmdFoc
直接利用用户输入的转速设定值作为转速换输入。 - 无处理的闭环设定参数应该尽可能的避免过大的阶跃值设置,否则很容易超调,新手慎用。
- 此模式相比HAL_CONTROL_MODE_VELOCITY_RAMP模式具有更高的响应速度。
HAL_CONTROL_MODE_VELOCITY_RAMP 模式
Note
- 转速爬升模式,
KmdFoc
不会直接利用用户输入的转速设定值作为转速环输入,而是逐渐增大或减小转速环输入直到达到用户设定值。 - 转速上升和下降的速度受
vel_ramp_rate
控制,当vel_ramp_rate
设置无穷大时可以与HAL_CONTROL_MODE_VELOCITY
模式等效。 - 设置合适的
vel_ramp_rate
可以有效避免用户设置过大阶跃信号的问题。
HAL_CONTROL_MODE_POSITION 模式
Note
- 位置控制模式,
KmdFoc
直接利用用户输入的位置设定值作为位置换输入。 - 无处理的闭环设定参数应该尽可能的避免过大的阶跃值设置,否则很容易超调,新手慎用。
- 此模式相比HAL_CONTROL_MODE_POSITION_TRAP控制模式具有更高的响应速度。
HAL_CONTROL_MODE_POSITION_TRAP 模式
Note
- 位置轨迹模式,
KmdFoc
不会直接利用用户输入的位置设定值作为位置环输入,而是逐渐增大或减小位置环输入直到达到用户设定值。 - 对于此模式,
KmdFoc
可以根据当前位置和转速进行一定的位置预测,从而自动的控制加速和减速的过程。 traj_vel
轨迹控制模式下的最大转速。traj_accel
轨迹控制模式下的最大加速度。traj_decel
轨迹控制模式下的最大减速度。traj_vel
设定值应当小于或等于vel_limit
(转速限制)。
- vel_limit 为转速限制,用于限制位置环输出,抗饱和。
- current_limit 为电流环限制,用于限制电流环输出,抗饱和。
- protect_under_voltage 低压保护,电压低于此阈值,KmdFoc将失能控制。
- protect_over_voltage 高压保护,电压高于此阈值,KmdFoc将失能控制。
- protect_over_speed 超速保护,转速高于此阈值,KmdFoc将失能控制。
- protect_over_current 过流保护,电流高于此阈值,KmdFoc将失能控制。