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将失能控制。