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 模式#

备注

  • 电流控制模式:KmdFoc 直接利用用户输入的电流设定值作为电流环输入。

  • 无处理的闭环设定参数应避免过大的阶跃值,否则易超调,新手慎用。

  • 此模式相比 HAL_CONTROL_MODE_CURRENT_RAMP 具有更高响应速度。

HAL_CONTROL_MODE_CURRENT_RAMP 模式#

备注

  • 电流爬升模式:KmdFoc 不直接使用用户设定值,而是逐渐增减电流环输入直至达到设定值。

  • 电流升降速度由 current_ramp_rate 控制,设为无穷大时与 HAL_CONTROL_MODE_CURRENT 等效。

  • 设置合适的 current_ramp_rate 可有效避免过大阶跃信号。

HAL_CONTROL_MODE_VELOCITY 模式#

备注

  • 转速控制模式:KmdFoc 直接利用用户输入的转速设定值作为转速环输入。

  • 应避免过大的阶跃值设置,否则易超调,新手慎用。

  • 此模式相比 HAL_CONTROL_MODE_VELOCITY_RAMP 具有更高响应速度。

HAL_CONTROL_MODE_VELOCITY_RAMP 模式#

备注

  • 转速爬升模式:不直接使用用户设定值,而是逐渐增减转速环输入直至达到设定值。

  • 转速升降速度由 vel_ramp_rate 控制,设为无穷大时与 HAL_CONTROL_MODE_VELOCITY 等效。

  • 设置合适的 vel_ramp_rate 可有效避免过大阶跃信号。

HAL_CONTROL_MODE_POSITION 模式#

备注

  • 位置控制模式:KmdFoc 直接利用用户输入的位置设定值作为位置环输入。

  • 应避免过大的阶跃值,否则易超调,新手慎用。

  • 此模式相比 HAL_CONTROL_MODE_POSITION_TRAP 具有更高响应速度。

HAL_CONTROL_MODE_POSITION_TRAP 模式#

备注

  • 位置轨迹模式:不直接使用用户位置设定值,而是逐渐增减位置环输入直至达到设定值。

  • 此模式可根据当前位置与转速做位置预测,自动控制加减速过程。

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