|
|
@@ -19,7 +19,8 @@ void mot_contrl_init(mot_contrl_t *ctrl) {
|
|
|
ctrl->foc.half_period = FOC_PWM_Half_Period;
|
|
|
ctrl->force_angle = INVALID_ANGLE;
|
|
|
ctrl->adv_angle = INVALID_ANGLE;
|
|
|
- foc_init(&ctrl->foc);
|
|
|
+ ctrl->foc.d_ramp_time = CURRENT_LOOP_RAMP_COUNT;
|
|
|
+ ctrl->foc.q_ramp_time = CURRENT_LOOP_RAMP_COUNT;
|
|
|
ctrl->hwlim.dc_curr = CONFIG_HW_MAX_DC_CURRENT;
|
|
|
ctrl->hwlim.mot_vel = CONFIG_HW_MAX_MOTOR_RPM;
|
|
|
ctrl->hwlim.phase_curr = CONFIG_HW_MAX_PHASE_CURR;
|
|
|
@@ -29,6 +30,9 @@ void mot_contrl_init(mot_contrl_t *ctrl) {
|
|
|
ctrl->hwlim.fw_id = mc_conf()->m.max_fw_id; //电池能支持的最大弱磁电流
|
|
|
ctrl->protlim.dc_curr = HW_LIMIT_NONE;
|
|
|
ctrl->protlim.torque = HW_LIMIT_NONE;
|
|
|
+ ctrl->torque_acc_time = 500;
|
|
|
+ ctrl->torque_dec_time = 500;//will be set after start
|
|
|
+ foc_init(&ctrl->foc);
|
|
|
}
|
|
|
bool mot_contrl_enable(mot_contrl_t *ctrl, bool start) {
|
|
|
if (ctrl->b_start == start) {
|
|
|
@@ -58,6 +62,8 @@ bool mot_contrl_enable(mot_contrl_t *ctrl, bool start) {
|
|
|
ctrl->dc_curr_filted = 0;
|
|
|
ctrl->phase_curr_filted[0] = ctrl->phase_curr_filted[1] = 0;
|
|
|
ctrl->out_idq_filterd.d = ctrl->out_idq_filterd.q = 0;
|
|
|
+ ctrl->autohold_torque = 0;
|
|
|
+ ctrl->out_current_vec = 0;
|
|
|
foc_init(&ctrl->foc);
|
|
|
foc_observer_init();
|
|
|
ctrl->b_start = start;
|