更新存储数据
This commit is contained in:
parent
cbacb87051
commit
8c2face088
Binary file not shown.
|
@ -52,11 +52,11 @@ static void _adjust_stop(void)
|
||||||
|
|
||||||
static uint8_t _adjust_result(void)
|
static uint8_t _adjust_result(void)
|
||||||
{
|
{
|
||||||
if (mode_pwmp_hd->pwmp_save->storage.tuned_flag == TUNED_ONGOING)
|
if (mode_pwmp_hd->pwmp_save->tuned_flag == TUNED_ONGOING)
|
||||||
{
|
{
|
||||||
udevice.tuned_flag = TUNED_ONGOING;
|
udevice.tuned_flag = TUNED_ONGOING;
|
||||||
}
|
}
|
||||||
else if (mode_pwmp_hd->pwmp_save->storage.tuned_flag == TUNED_SUCCESS)
|
else if (mode_pwmp_hd->pwmp_save->tuned_flag == TUNED_SUCCESS)
|
||||||
{
|
{
|
||||||
udevice.tuned_flag = TUNED_SUCCESS;
|
udevice.tuned_flag = TUNED_SUCCESS;
|
||||||
}
|
}
|
||||||
|
@ -80,17 +80,17 @@ static uint8_t _adjust_step_current(void)
|
||||||
|
|
||||||
static void _adjust_data(mode_adjust_data_t *data)
|
static void _adjust_data(mode_adjust_data_t *data)
|
||||||
{
|
{
|
||||||
data->pos0 = mode_pwmp_hd->pwmp_save->storage.trip_0; ///< 位置0 ad
|
data->pos0 = mode_pwmp_hd->pwmp_save->trip_0; ///< 位置0 ad
|
||||||
data->pos100 = mode_pwmp_hd->pwmp_save->storage.trip_100; ///< 位置100 ad
|
data->pos100 = mode_pwmp_hd->pwmp_save->trip_100; ///< 位置100 ad
|
||||||
data->pot0 = mode_pwmp_hd->pwmp_save->storage.pwmp_min_origin; ///< 位置0 输出
|
data->pot0 = mode_pwmp_hd->pwmp_save->pwmp_min_origin; ///< 位置0 输出
|
||||||
data->pot100 = mode_pwmp_hd->pwmp_save->storage.pwmp_max_origin; ///< 位置100 输出
|
data->pot100 = mode_pwmp_hd->pwmp_save->pwmp_max_origin; ///< 位置100 输出
|
||||||
data->current0 = mode_pwmp_hd->pwmp_save->storage.current0; ///< 位置0 电流(毫安,放大100倍, 0.01ma=1)
|
data->current0 = mode_pwmp_hd->pwmp_save->current0; ///< 位置0 电流(毫安,放大100倍, 0.01ma=1)
|
||||||
data->current100 = mode_pwmp_hd->pwmp_save->storage.current100; ///< 位置100 电流(毫安,放大100倍,0.01ma=1)
|
data->current100 = mode_pwmp_hd->pwmp_save->current100; ///< 位置100 电流(毫安,放大100倍,0.01ma=1)
|
||||||
data->open_time = mode_pwmp_hd->pwmp_save->storage.all_open_time; ///< 全开时间(秒)
|
data->open_time = mode_pwmp_hd->pwmp_save->all_open_time; ///< 全开时间(秒)
|
||||||
data->close_time = mode_pwmp_hd->pwmp_save->storage.all_close_time; ///< 全关时间(秒)
|
data->close_time = mode_pwmp_hd->pwmp_save->all_close_time; ///< 全关时间(秒)
|
||||||
data->kp = mode_pwmp_hd->pwmp_save->storage.kp; ///< pid 比例系数
|
data->kp = mode_pwmp_hd->pwmp_save->kp; ///< pid 比例系数
|
||||||
data->ki = mode_pwmp_hd->pwmp_save->storage.ki; ///< pid 积分系数
|
data->ki = mode_pwmp_hd->pwmp_save->ki; ///< pid 积分系数
|
||||||
data->kd = mode_pwmp_hd->pwmp_save->storage.kd; ///< pid 微分系数
|
data->kd = mode_pwmp_hd->pwmp_save->kd; ///< pid 微分系数
|
||||||
}
|
}
|
||||||
|
|
||||||
static BOOL _control_idle(void)
|
static BOOL _control_idle(void)
|
||||||
|
@ -187,39 +187,39 @@ static void pwmp_control_update(filter_e type)
|
||||||
/*PID参数获取*/
|
/*PID参数获取*/
|
||||||
static float32 get_pwmp_hd_control_kp(void)
|
static float32 get_pwmp_hd_control_kp(void)
|
||||||
{
|
{
|
||||||
if (mode_pwmp_hd->pwmp_save->storage.kp < 2)
|
if (mode_pwmp_hd->pwmp_save->kp < 2)
|
||||||
{
|
{
|
||||||
// return mode_pwmp_hd->pwmp_save->storage.kp * 6;
|
// return mode_pwmp_hd->pwmp_save->kp * 6;
|
||||||
return mode_pwmp_hd->pwmp_save->storage.kp * 15;
|
return mode_pwmp_hd->pwmp_save->kp * 15;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
return mode_pwmp_hd->pwmp_save->storage.kp * 4;
|
return mode_pwmp_hd->pwmp_save->kp * 4;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static float32 get_pwmp_hd_control_ki(void)
|
static float32 get_pwmp_hd_control_ki(void)
|
||||||
{
|
{
|
||||||
return mode_pwmp_hd->pwmp_save->storage.ki < 0.001 ? mode_pwmp_hd->pwmp_save->storage.ki * 20 : 0.02;
|
return mode_pwmp_hd->pwmp_save->ki < 0.001 ? mode_pwmp_hd->pwmp_save->ki * 20 : 0.02;
|
||||||
}
|
}
|
||||||
|
|
||||||
static float32 get_pwmp_hd_control_kd(void)
|
static float32 get_pwmp_hd_control_kd(void)
|
||||||
{
|
{
|
||||||
// return mode_pwmp_hd->pwmp_save->storage.kd < 0.01 ? mode_pwmp_hd->pwmp_save->storage.kd : 0.001;
|
// return mode_pwmp_hd->pwmp_save->kd < 0.01 ? mode_pwmp_hd->pwmp_save->kd : 0.001;
|
||||||
if (udevice.act_style.bits.value_travel_type == TRAVEL_TYPE_STRAIGHT)
|
if (udevice.act_style.bits.value_travel_type == TRAVEL_TYPE_STRAIGHT)
|
||||||
{
|
{
|
||||||
return mode_pwmp_hd->pwmp_save->storage.kd = 0;
|
return mode_pwmp_hd->pwmp_save->kd = 0;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
||||||
if (mode_pwmp_hd->pwmp_save->storage.kd <= 20)
|
if (mode_pwmp_hd->pwmp_save->kd <= 20)
|
||||||
{
|
{
|
||||||
return mode_pwmp_hd->pwmp_save->storage.kd;
|
return mode_pwmp_hd->pwmp_save->kd;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
return mode_pwmp_hd->pwmp_save->storage.kd = 20;
|
return mode_pwmp_hd->pwmp_save->kd = 20;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -227,14 +227,14 @@ static float32 get_pwmp_hd_control_kd(void)
|
||||||
/*将自己结构体变量中的参数保存到公共参数中*/
|
/*将自己结构体变量中的参数保存到公共参数中*/
|
||||||
static void pwmp_public_params_update()
|
static void pwmp_public_params_update()
|
||||||
{
|
{
|
||||||
udevice.pos0_travel_vol = mode_pwmp_hd->pwmp_save->storage.trip_0;
|
udevice.pos0_travel_vol = mode_pwmp_hd->pwmp_save->trip_0;
|
||||||
udevice.pos100_travel_vol = mode_pwmp_hd->pwmp_save->storage.trip_100;
|
udevice.pos100_travel_vol = mode_pwmp_hd->pwmp_save->trip_100;
|
||||||
udevice.output_min = mode_pwmp_hd->pwmp_save->storage.pwmp_min_origin;
|
udevice.output_min = mode_pwmp_hd->pwmp_save->pwmp_min_origin;
|
||||||
udevice.output_max = mode_pwmp_hd->pwmp_save->storage.pwmp_max_origin;
|
udevice.output_max = mode_pwmp_hd->pwmp_save->pwmp_max_origin;
|
||||||
udevice.spid_kp = mode_pwmp_hd->pwmp_save->storage.kp;
|
udevice.spid_kp = mode_pwmp_hd->pwmp_save->kp;
|
||||||
udevice.spid_ki = mode_pwmp_hd->pwmp_save->storage.ki;
|
udevice.spid_ki = mode_pwmp_hd->pwmp_save->ki;
|
||||||
udevice.spid_kd = mode_pwmp_hd->pwmp_save->storage.kd;
|
udevice.spid_kd = mode_pwmp_hd->pwmp_save->kd;
|
||||||
udevice.tuned_flag = mode_pwmp_hd->pwmp_save->storage.prov_flag;
|
udevice.tuned_flag = mode_pwmp_hd->pwmp_save->prov_flag;
|
||||||
}
|
}
|
||||||
|
|
||||||
//////////////////////////////*控制BEGIN*//////////////////////////////////////////////////////
|
//////////////////////////////*控制BEGIN*//////////////////////////////////////////////////////
|
||||||
|
@ -259,11 +259,11 @@ static float32_t convert_target_to_controlvalue()
|
||||||
{
|
{
|
||||||
if (mode_pwmp_hd->action == INFLATE)
|
if (mode_pwmp_hd->action == INFLATE)
|
||||||
{
|
{
|
||||||
control_value = mode_pwmp_hd->pwmp_save->storage.valvepos_in[i - 1];
|
control_value = mode_pwmp_hd->pwmp_save->valvepos_in[i - 1];
|
||||||
}
|
}
|
||||||
else if (mode_pwmp_hd->action == DEFLATE)
|
else if (mode_pwmp_hd->action == DEFLATE)
|
||||||
{
|
{
|
||||||
control_value = mode_pwmp_hd->pwmp_save->storage.valvepos_de[i - 1];
|
control_value = mode_pwmp_hd->pwmp_save->valvepos_de[i - 1];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -271,12 +271,12 @@ static float32_t convert_target_to_controlvalue()
|
||||||
if (mode_pwmp_hd->action == INFLATE)
|
if (mode_pwmp_hd->action == INFLATE)
|
||||||
{
|
{
|
||||||
tmp = ((mode_pwmp_hd->control.ctrl_target - (i * 10)) / (10));
|
tmp = ((mode_pwmp_hd->control.ctrl_target - (i * 10)) / (10));
|
||||||
control_value = (tmp * mode_pwmp_hd->pwmp_save->storage.valvepos_in_k[i - 1]) + mode_pwmp_hd->pwmp_save->storage.valvepos_in_b[i - 1];
|
control_value = (tmp * mode_pwmp_hd->pwmp_save->valvepos_in_k[i - 1]) + mode_pwmp_hd->pwmp_save->valvepos_in_b[i - 1];
|
||||||
}
|
}
|
||||||
else if (mode_pwmp_hd->action == DEFLATE)
|
else if (mode_pwmp_hd->action == DEFLATE)
|
||||||
{
|
{
|
||||||
tmp = ((mode_pwmp_hd->control.ctrl_target - (i * 10)) / (10));
|
tmp = ((mode_pwmp_hd->control.ctrl_target - (i * 10)) / (10));
|
||||||
control_value = (tmp * mode_pwmp_hd->pwmp_save->storage.valvepos_de_k[i - 1]) + mode_pwmp_hd->pwmp_save->storage.valvepos_de_b[i - 1];
|
control_value = (tmp * mode_pwmp_hd->pwmp_save->valvepos_de_k[i - 1]) + mode_pwmp_hd->pwmp_save->valvepos_de_b[i - 1];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -331,26 +331,26 @@ static void calculate_pwmp_stable_range(float32 *target, float32 *err)
|
||||||
if (mode_pwmp_hd->action == INFLATE)
|
if (mode_pwmp_hd->action == INFLATE)
|
||||||
{
|
{
|
||||||
tmp = ((up_value - (up * 10.0)) / (10.0));
|
tmp = ((up_value - (up * 10.0)) / (10.0));
|
||||||
mode_pwmp_hd->control.pwmp_max_stable = tmp * mode_pwmp_hd->pwmp_save->storage.valvepos_in_k[up - 1] + mode_pwmp_hd->pwmp_save->storage.valvepos_in_b[up - 1];
|
mode_pwmp_hd->control.pwmp_max_stable = tmp * mode_pwmp_hd->pwmp_save->valvepos_in_k[up - 1] + mode_pwmp_hd->pwmp_save->valvepos_in_b[up - 1];
|
||||||
tmp = ((down_value - (down * 10.0)) / (10.0));
|
tmp = ((down_value - (down * 10.0)) / (10.0));
|
||||||
mode_pwmp_hd->control.pwmp_min_stable = tmp * mode_pwmp_hd->pwmp_save->storage.valvepos_in_k[down - 1] + mode_pwmp_hd->pwmp_save->storage.valvepos_in_b[down - 1];
|
mode_pwmp_hd->control.pwmp_min_stable = tmp * mode_pwmp_hd->pwmp_save->valvepos_in_k[down - 1] + mode_pwmp_hd->pwmp_save->valvepos_in_b[down - 1];
|
||||||
tmp = ((*target - (i * 10.0)) / (10.0));
|
tmp = ((*target - (i * 10.0)) / (10.0));
|
||||||
mode_pwmp_hd->valvepos_stable = tmp * mode_pwmp_hd->pwmp_save->storage.valvepos_in_k[i - 1] + mode_pwmp_hd->pwmp_save->storage.valvepos_in_b[i - 1];
|
mode_pwmp_hd->valvepos_stable = tmp * mode_pwmp_hd->pwmp_save->valvepos_in_k[i - 1] + mode_pwmp_hd->pwmp_save->valvepos_in_b[i - 1];
|
||||||
}
|
}
|
||||||
else if (mode_pwmp_hd->action == DEFLATE)
|
else if (mode_pwmp_hd->action == DEFLATE)
|
||||||
{
|
{
|
||||||
// tmp = ((up_value - (up * 10.0)) / (10.0));
|
// tmp = ((up_value - (up * 10.0)) / (10.0));
|
||||||
// mode_pwmp_hd->control.pwmp_max_stable = tmp * mode_pwmp_hd->pwmp_save->storage.valvepos_de_k[up - 1] + mode_pwmp_hd->pwmp_save->storage.valvepos_de_b[up - 1];
|
// mode_pwmp_hd->control.pwmp_max_stable = tmp * mode_pwmp_hd->pwmp_save->valvepos_de_k[up - 1] + mode_pwmp_hd->pwmp_save->valvepos_de_b[up - 1];
|
||||||
// tmp = ((down_value - (down * 10.0)) / (10.0));
|
// tmp = ((down_value - (down * 10.0)) / (10.0));
|
||||||
// mode_pwmp_hd->control.pwmp_min_stable = tmp * mode_pwmp_hd->pwmp_save->storage.valvepos_de_k[down - 1] + mode_pwmp_hd->pwmp_save->storage.valvepos_de_b[down - 1];
|
// mode_pwmp_hd->control.pwmp_min_stable = tmp * mode_pwmp_hd->pwmp_save->valvepos_de_k[down - 1] + mode_pwmp_hd->pwmp_save->valvepos_de_b[down - 1];
|
||||||
// tmp = ((*target - (i * 10.0)) / (10.0));
|
// tmp = ((*target - (i * 10.0)) / (10.0));
|
||||||
// mode_pwmp_hd->valvepos_stable = tmp * mode_pwmp_hd->pwmp_save->storage.valvepos_de_k[i - 1] + mode_pwmp_hd->pwmp_save->storage.valvepos_de_b[i - 1];
|
// mode_pwmp_hd->valvepos_stable = tmp * mode_pwmp_hd->pwmp_save->valvepos_de_k[i - 1] + mode_pwmp_hd->pwmp_save->valvepos_de_b[i - 1];
|
||||||
tmp = ((up_value - (up * 10.0)) / (10.0));
|
tmp = ((up_value - (up * 10.0)) / (10.0));
|
||||||
mode_pwmp_hd->control.pwmp_max_stable = tmp * mode_pwmp_hd->pwmp_save->storage.valvepos_in_k[up - 1] + mode_pwmp_hd->pwmp_save->storage.valvepos_in_b[up - 1];
|
mode_pwmp_hd->control.pwmp_max_stable = tmp * mode_pwmp_hd->pwmp_save->valvepos_in_k[up - 1] + mode_pwmp_hd->pwmp_save->valvepos_in_b[up - 1];
|
||||||
tmp = ((down_value - (down * 10.0)) / (10.0));
|
tmp = ((down_value - (down * 10.0)) / (10.0));
|
||||||
mode_pwmp_hd->control.pwmp_min_stable = tmp * mode_pwmp_hd->pwmp_save->storage.valvepos_in_k[down - 1] + mode_pwmp_hd->pwmp_save->storage.valvepos_in_b[down - 1];
|
mode_pwmp_hd->control.pwmp_min_stable = tmp * mode_pwmp_hd->pwmp_save->valvepos_in_k[down - 1] + mode_pwmp_hd->pwmp_save->valvepos_in_b[down - 1];
|
||||||
tmp = ((*target - (i * 10.0)) / (10.0));
|
tmp = ((*target - (i * 10.0)) / (10.0));
|
||||||
mode_pwmp_hd->valvepos_stable = tmp * mode_pwmp_hd->pwmp_save->storage.valvepos_in_k[i - 1] + mode_pwmp_hd->pwmp_save->storage.valvepos_in_b[i - 1];
|
mode_pwmp_hd->valvepos_stable = tmp * mode_pwmp_hd->pwmp_save->valvepos_in_k[i - 1] + mode_pwmp_hd->pwmp_save->valvepos_in_b[i - 1];
|
||||||
}
|
}
|
||||||
if (fabs(*err) <= 0.5)
|
if (fabs(*err) <= 0.5)
|
||||||
{
|
{
|
||||||
|
@ -416,7 +416,7 @@ execute_rsp_hd_t *execute_dac(execute_plan_hd_e plan)
|
||||||
static execute_rsp_hd_t *execute_dac_plan1()
|
static execute_rsp_hd_t *execute_dac_plan1()
|
||||||
{
|
{
|
||||||
static float32 Control_diff;
|
static float32 Control_diff;
|
||||||
Control_diff = mode_pwmp_hd->pwmp_save->storage.pwmp_max_origin - mode_pwmp_hd->pwmp_save->storage.pwmp_min_origin;
|
Control_diff = mode_pwmp_hd->pwmp_save->pwmp_max_origin - mode_pwmp_hd->pwmp_save->pwmp_min_origin;
|
||||||
float32 out = 0.0;
|
float32 out = 0.0;
|
||||||
|
|
||||||
/*判断此时的充排气状态*/
|
/*判断此时的充排气状态*/
|
||||||
|
@ -440,39 +440,39 @@ static execute_rsp_hd_t *execute_dac_plan1()
|
||||||
if (mode_pwmp_hd->process_state == PWMP_HD_PROCESS_ADJUST)
|
if (mode_pwmp_hd->process_state == PWMP_HD_PROCESS_ADJUST)
|
||||||
{
|
{
|
||||||
if (fabs(mode_pwmp_hd->control.real_error) >= 5.7)
|
if (fabs(mode_pwmp_hd->control.real_error) >= 5.7)
|
||||||
{ // 对PID输出结果进行归一化处理
|
{ // 对PID输出结果进行归一化处理
|
||||||
out *= (mode_pwmp_hd->pwmp_save->storage.pwmp_max_origin + Control_diff * index_max_first) - (mode_pwmp_hd->pwmp_save->storage.pwmp_min_origin - Control_diff * index_min_first); // 映射实际控制器的范围
|
out *= (mode_pwmp_hd->pwmp_save->pwmp_max_origin + Control_diff * index_max_first) - (mode_pwmp_hd->pwmp_save->pwmp_min_origin - Control_diff * index_min_first); // 映射实际控制器的范围
|
||||||
out += mode_pwmp_hd->pwmp_save->storage.pwmp_min_origin - Control_diff * index_min_first;
|
out += mode_pwmp_hd->pwmp_save->pwmp_min_origin - Control_diff * index_min_first;
|
||||||
}
|
}
|
||||||
else if (fabs(mode_pwmp_hd->control.real_error) < 5.7 && fabs(mode_pwmp_hd->control.real_error) >= 1)
|
else if (fabs(mode_pwmp_hd->control.real_error) < 5.7 && fabs(mode_pwmp_hd->control.real_error) >= 1)
|
||||||
{ // 对PID输出结果进行归一化处理
|
{ // 对PID输出结果进行归一化处理
|
||||||
out *= (mode_pwmp_hd->pwmp_save->storage.pwmp_max_origin + Control_diff * index_max_second) - (mode_pwmp_hd->pwmp_save->storage.pwmp_min_origin - Control_diff * index_min_second); // 映射实际控制器的范围
|
out *= (mode_pwmp_hd->pwmp_save->pwmp_max_origin + Control_diff * index_max_second) - (mode_pwmp_hd->pwmp_save->pwmp_min_origin - Control_diff * index_min_second); // 映射实际控制器的范围
|
||||||
out += mode_pwmp_hd->pwmp_save->storage.pwmp_min_origin - Control_diff * index_min_second;
|
out += mode_pwmp_hd->pwmp_save->pwmp_min_origin - Control_diff * index_min_second;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
out *= (mode_pwmp_hd->pwmp_save->storage.pwmp_max_origin) - (mode_pwmp_hd->pwmp_save->storage.pwmp_min_origin); // 映射实际控制器的范围
|
out *= (mode_pwmp_hd->pwmp_save->pwmp_max_origin) - (mode_pwmp_hd->pwmp_save->pwmp_min_origin); // 映射实际控制器的范围
|
||||||
out += mode_pwmp_hd->pwmp_save->storage.pwmp_min_origin;
|
out += mode_pwmp_hd->pwmp_save->pwmp_min_origin;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (fabs(mode_pwmp_hd->control.real_error) >= 5.7)
|
if (fabs(mode_pwmp_hd->control.real_error) >= 5.7)
|
||||||
{ // 对PID输出结果进行归一化处理
|
{ // 对PID输出结果进行归一化处理
|
||||||
out *= (mode_pwmp_hd->pwmp_save->storage.pwmp_max_origin + Control_diff * index_max_first) - (mode_pwmp_hd->pwmp_save->storage.pwmp_min_origin - Control_diff * index_min_first); // 映射实际控制器的范围
|
out *= (mode_pwmp_hd->pwmp_save->pwmp_max_origin + Control_diff * index_max_first) - (mode_pwmp_hd->pwmp_save->pwmp_min_origin - Control_diff * index_min_first); // 映射实际控制器的范围
|
||||||
out += mode_pwmp_hd->pwmp_save->storage.pwmp_min_origin - Control_diff * index_min_first;
|
out += mode_pwmp_hd->pwmp_save->pwmp_min_origin - Control_diff * index_min_first;
|
||||||
mode_pwmp_hd->pid_mode = INAUTO_C;
|
mode_pwmp_hd->pid_mode = INAUTO_C;
|
||||||
}
|
}
|
||||||
else if (fabs(mode_pwmp_hd->control.real_error) < 5.7 && fabs(mode_pwmp_hd->control.real_error) >= 1)
|
else if (fabs(mode_pwmp_hd->control.real_error) < 5.7 && fabs(mode_pwmp_hd->control.real_error) >= 1)
|
||||||
{ // 对PID输出结果进行归一化处理
|
{ // 对PID输出结果进行归一化处理
|
||||||
out *= (mode_pwmp_hd->pwmp_save->storage.pwmp_max_origin + Control_diff * index_max_second) - (mode_pwmp_hd->pwmp_save->storage.pwmp_min_origin - Control_diff * index_min_second); // 映射实际控制器的范围
|
out *= (mode_pwmp_hd->pwmp_save->pwmp_max_origin + Control_diff * index_max_second) - (mode_pwmp_hd->pwmp_save->pwmp_min_origin - Control_diff * index_min_second); // 映射实际控制器的范围
|
||||||
out += mode_pwmp_hd->pwmp_save->storage.pwmp_min_origin - Control_diff * index_min_second;
|
out += mode_pwmp_hd->pwmp_save->pwmp_min_origin - Control_diff * index_min_second;
|
||||||
mode_pwmp_hd->pid_mode = INAUTO_C;
|
mode_pwmp_hd->pid_mode = INAUTO_C;
|
||||||
}
|
}
|
||||||
else if (fabs(mode_pwmp_hd->control.real_error) < 1 && fabs(mode_pwmp_hd->control.real_error) > 0.7)
|
else if (fabs(mode_pwmp_hd->control.real_error) < 1 && fabs(mode_pwmp_hd->control.real_error) > 0.7)
|
||||||
{
|
{
|
||||||
out *= (mode_pwmp_hd->pwmp_save->storage.pwmp_max_origin) - (mode_pwmp_hd->pwmp_save->storage.pwmp_min_origin); // 映射实际控制器的范围
|
out *= (mode_pwmp_hd->pwmp_save->pwmp_max_origin) - (mode_pwmp_hd->pwmp_save->pwmp_min_origin); // 映射实际控制器的范围
|
||||||
out += mode_pwmp_hd->pwmp_save->storage.pwmp_min_origin;
|
out += mode_pwmp_hd->pwmp_save->pwmp_min_origin;
|
||||||
mode_pwmp_hd->pid_mode = INAUTO_C;
|
mode_pwmp_hd->pid_mode = INAUTO_C;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -485,17 +485,17 @@ static execute_rsp_hd_t *execute_dac_plan1()
|
||||||
float32 index = fabs(1 - exp(-(pow(mode_pwmp_hd->control.real_error, 2) - 1)));
|
float32 index = fabs(1 - exp(-(pow(mode_pwmp_hd->control.real_error, 2) - 1)));
|
||||||
if (fabs(mode_pwmp_hd->control.real_error) >= 1)
|
if (fabs(mode_pwmp_hd->control.real_error) >= 1)
|
||||||
{
|
{
|
||||||
out *= (mode_pwmp_hd->pwmp_save->storage.pwmp_max_origin + Control_diff * index) - (mode_pwmp_hd->pwmp_save->storage.pwmp_min_origin - Control_diff * index); // 映射实际控制器的范围
|
out *= (mode_pwmp_hd->pwmp_save->pwmp_max_origin + Control_diff * index) - (mode_pwmp_hd->pwmp_save->pwmp_min_origin - Control_diff * index); // 映射实际控制器的范围
|
||||||
out += mode_pwmp_hd->pwmp_save->storage.pwmp_min_origin - Control_diff * index;
|
out += mode_pwmp_hd->pwmp_save->pwmp_min_origin - Control_diff * index;
|
||||||
}
|
}
|
||||||
else if (fabs(mode_pwmp_hd->control.real_error) > 0.99 && fabs(mode_pwmp_hd->control.real_error) < 1)
|
else if (fabs(mode_pwmp_hd->control.real_error) > 0.99 && fabs(mode_pwmp_hd->control.real_error) < 1)
|
||||||
{
|
{
|
||||||
out = mode_pwmp_hd->pwmp_save->storage.startup_value;
|
out = mode_pwmp_hd->pwmp_save->startup_value;
|
||||||
}
|
}
|
||||||
else if (fabs(mode_pwmp_hd->control.real_error) <= 0.99)
|
else if (fabs(mode_pwmp_hd->control.real_error) <= 0.99)
|
||||||
{
|
{
|
||||||
out *= (mode_pwmp_hd->pwmp_save->storage.pwmp_max_origin) - (mode_pwmp_hd->pwmp_save->storage.pwmp_min_origin); // 映射实际控制器的范围
|
out *= (mode_pwmp_hd->pwmp_save->pwmp_max_origin) - (mode_pwmp_hd->pwmp_save->pwmp_min_origin); // 映射实际控制器的范围
|
||||||
out += (mode_pwmp_hd->pwmp_save->storage.pwmp_min_origin);
|
out += (mode_pwmp_hd->pwmp_save->pwmp_min_origin);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
@ -513,36 +513,36 @@ static execute_rsp_hd_t *execute_dac_plan1()
|
||||||
static float32 index_max_third = 0;
|
static float32 index_max_third = 0;
|
||||||
if (fabs(mode_pwmp_hd->control.real_error) >= 5.7)
|
if (fabs(mode_pwmp_hd->control.real_error) >= 5.7)
|
||||||
{ // 对PID输出结果进行归一化处理
|
{ // 对PID输出结果进行归一化处理
|
||||||
out *= (mode_pwmp_hd->pwmp_save->storage.pwmp_max_origin + Control_diff * index_max_first) - (mode_pwmp_hd->pwmp_save->storage.pwmp_min_origin - Control_diff * index_min_first); // 映射实际控制器的范围
|
out *= (mode_pwmp_hd->pwmp_save->pwmp_max_origin + Control_diff * index_max_first) - (mode_pwmp_hd->pwmp_save->pwmp_min_origin - Control_diff * index_min_first); // 映射实际控制器的范围
|
||||||
out += mode_pwmp_hd->pwmp_save->storage.pwmp_min_origin - Control_diff * index_min_first;
|
out += mode_pwmp_hd->pwmp_save->pwmp_min_origin - Control_diff * index_min_first;
|
||||||
}
|
}
|
||||||
else if (fabs(mode_pwmp_hd->control.real_error) < 5.7 && fabs(mode_pwmp_hd->control.real_error) >= 1)
|
else if (fabs(mode_pwmp_hd->control.real_error) < 5.7 && fabs(mode_pwmp_hd->control.real_error) >= 1)
|
||||||
{ // 对PID输出结果进行归一化处理
|
{ // 对PID输出结果进行归一化处理
|
||||||
out *= (mode_pwmp_hd->pwmp_save->storage.pwmp_max_origin + Control_diff * index_max_second) - (mode_pwmp_hd->pwmp_save->storage.pwmp_min_origin - Control_diff * index_min_second); // 映射实际控制器的范围
|
out *= (mode_pwmp_hd->pwmp_save->pwmp_max_origin + Control_diff * index_max_second) - (mode_pwmp_hd->pwmp_save->pwmp_min_origin - Control_diff * index_min_second); // 映射实际控制器的范围
|
||||||
out += mode_pwmp_hd->pwmp_save->storage.pwmp_min_origin - Control_diff * index_min_second;
|
out += mode_pwmp_hd->pwmp_save->pwmp_min_origin - Control_diff * index_min_second;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
out *= (mode_pwmp_hd->pwmp_save->storage.pwmp_max_origin - Control_diff * index_max_third) - (mode_pwmp_hd->pwmp_save->storage.pwmp_min_origin + Control_diff * index_min_third); // 映射实际控制器的范围
|
out *= (mode_pwmp_hd->pwmp_save->pwmp_max_origin - Control_diff * index_max_third) - (mode_pwmp_hd->pwmp_save->pwmp_min_origin + Control_diff * index_min_third); // 映射实际控制器的范围
|
||||||
out += (mode_pwmp_hd->pwmp_save->storage.pwmp_min_origin + Control_diff * index_min_third);
|
out += (mode_pwmp_hd->pwmp_save->pwmp_min_origin + Control_diff * index_min_third);
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
float32 index = fabs(1 - exp(-(pow(mode_pwmp_hd->control.real_error, 2) - 1)));
|
float32 index = fabs(1 - exp(-(pow(mode_pwmp_hd->control.real_error, 2) - 1)));
|
||||||
if (fabs(mode_pwmp_hd->control.real_error) >= 1)
|
if (fabs(mode_pwmp_hd->control.real_error) >= 1)
|
||||||
{
|
{
|
||||||
out *= (mode_pwmp_hd->pwmp_save->storage.pwmp_max_origin + Control_diff * index) - (mode_pwmp_hd->pwmp_save->storage.pwmp_min_origin - Control_diff * index); // 映射实际控制器的范围
|
out *= (mode_pwmp_hd->pwmp_save->pwmp_max_origin + Control_diff * index) - (mode_pwmp_hd->pwmp_save->pwmp_min_origin - Control_diff * index); // 映射实际控制器的范围
|
||||||
out += mode_pwmp_hd->pwmp_save->storage.pwmp_min_origin - Control_diff * index;
|
out += mode_pwmp_hd->pwmp_save->pwmp_min_origin - Control_diff * index;
|
||||||
}
|
}
|
||||||
else if (fabs(mode_pwmp_hd->control.real_error) > 0.99 && fabs(mode_pwmp_hd->control.real_error) < 1)
|
else if (fabs(mode_pwmp_hd->control.real_error) > 0.99 && fabs(mode_pwmp_hd->control.real_error) < 1)
|
||||||
{
|
{
|
||||||
out = mode_pwmp_hd->pwmp_save->storage.startup_value;
|
out = mode_pwmp_hd->pwmp_save->startup_value;
|
||||||
}
|
}
|
||||||
else if (fabs(mode_pwmp_hd->control.real_error) <= 0.99)
|
else if (fabs(mode_pwmp_hd->control.real_error) <= 0.99)
|
||||||
{
|
{
|
||||||
if (mode_pwmp_hd_adjust->adjust_state == PWMP_HD_ADJUST_STEP_BY_10_TO_100 || mode_pwmp_hd_adjust->adjust_state == PWMP_HD_ADJUST_STEP_BY_10_TO_0)
|
if (mode_pwmp_hd_adjust->adjust_state == PWMP_HD_ADJUST_STEP_BY_10_TO_100 || mode_pwmp_hd_adjust->adjust_state == PWMP_HD_ADJUST_STEP_BY_10_TO_0)
|
||||||
{
|
{
|
||||||
out *= (mode_pwmp_hd->pwmp_save->storage.pwmp_max_origin) - (mode_pwmp_hd->pwmp_save->storage.pwmp_min_origin); // 映射实际控制器的范围
|
out *= (mode_pwmp_hd->pwmp_save->pwmp_max_origin) - (mode_pwmp_hd->pwmp_save->pwmp_min_origin); // 映射实际控制器的范围
|
||||||
out += (mode_pwmp_hd->pwmp_save->storage.pwmp_min_origin);
|
out += (mode_pwmp_hd->pwmp_save->pwmp_min_origin);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -568,7 +568,7 @@ static execute_rsp_hd_t *execute_dac_plan2()
|
||||||
{
|
{
|
||||||
float32 out = 0.0;
|
float32 out = 0.0;
|
||||||
static float32 Control_diff;
|
static float32 Control_diff;
|
||||||
Control_diff = mode_pwmp_hd->pwmp_save->storage.pwmp_max_origin - mode_pwmp_hd->pwmp_save->storage.pwmp_min_origin;
|
Control_diff = mode_pwmp_hd->pwmp_save->pwmp_max_origin - mode_pwmp_hd->pwmp_save->pwmp_min_origin;
|
||||||
/*判断此时的充排气状态*/
|
/*判断此时的充排气状态*/
|
||||||
inflate_or_deflate();
|
inflate_or_deflate();
|
||||||
/*获取目标值对应的控制值大小*/
|
/*获取目标值对应的控制值大小*/
|
||||||
|
@ -593,19 +593,19 @@ static execute_rsp_hd_t *execute_dac_plan2()
|
||||||
static float32 index_min_second = 0;
|
static float32 index_min_second = 0;
|
||||||
static float32 index_max_second = 0;
|
static float32 index_max_second = 0;
|
||||||
if (fabs(mode_pwmp_hd->control.real_error) >= 5.7)
|
if (fabs(mode_pwmp_hd->control.real_error) >= 5.7)
|
||||||
{ // 对PID输出结果进行归一化处理
|
{ // 对PID输出结果进行归一化处理
|
||||||
out *= (mode_pwmp_hd->pwmp_save->storage.pwmp_max_origin + Control_diff * index_max_first) - (mode_pwmp_hd->pwmp_save->storage.pwmp_min_origin - Control_diff * index_min_first); // 映射实际控制器的范围
|
out *= (mode_pwmp_hd->pwmp_save->pwmp_max_origin + Control_diff * index_max_first) - (mode_pwmp_hd->pwmp_save->pwmp_min_origin - Control_diff * index_min_first); // 映射实际控制器的范围
|
||||||
out += mode_pwmp_hd->pwmp_save->storage.pwmp_min_origin - Control_diff * index_min_first;
|
out += mode_pwmp_hd->pwmp_save->pwmp_min_origin - Control_diff * index_min_first;
|
||||||
}
|
}
|
||||||
else if (fabs(mode_pwmp_hd->control.real_error) < 5.7 && fabs(mode_pwmp_hd->control.real_error) >= 1)
|
else if (fabs(mode_pwmp_hd->control.real_error) < 5.7 && fabs(mode_pwmp_hd->control.real_error) >= 1)
|
||||||
{ // 对PID输出结果进行归一化处理
|
{ // 对PID输出结果进行归一化处理
|
||||||
out *= (mode_pwmp_hd->pwmp_save->storage.pwmp_max_origin + Control_diff * index_max_second) - (mode_pwmp_hd->pwmp_save->storage.pwmp_min_origin - Control_diff * index_min_second); // 映射实际控制器的范围
|
out *= (mode_pwmp_hd->pwmp_save->pwmp_max_origin + Control_diff * index_max_second) - (mode_pwmp_hd->pwmp_save->pwmp_min_origin - Control_diff * index_min_second); // 映射实际控制器的范围
|
||||||
out += mode_pwmp_hd->pwmp_save->storage.pwmp_min_origin - Control_diff * index_min_second;
|
out += mode_pwmp_hd->pwmp_save->pwmp_min_origin - Control_diff * index_min_second;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
out *= (mode_pwmp_hd->pwmp_save->storage.pwmp_max_origin) - (mode_pwmp_hd->pwmp_save->storage.pwmp_min_origin); // 映射实际控制器的范围
|
out *= (mode_pwmp_hd->pwmp_save->pwmp_max_origin) - (mode_pwmp_hd->pwmp_save->pwmp_min_origin); // 映射实际控制器的范围
|
||||||
out += mode_pwmp_hd->pwmp_save->storage.pwmp_min_origin;
|
out += mode_pwmp_hd->pwmp_save->pwmp_min_origin;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -615,20 +615,20 @@ static execute_rsp_hd_t *execute_dac_plan2()
|
||||||
{
|
{
|
||||||
if (mode_pwmp_hd->action == INFLATE)
|
if (mode_pwmp_hd->action == INFLATE)
|
||||||
{
|
{
|
||||||
if (fabs(mode_pwmp_hd->control.real_error) >= mode_pwmp_hd->pwmp_save->storage.overimpulse_in)
|
if (fabs(mode_pwmp_hd->control.real_error) >= mode_pwmp_hd->pwmp_save->overimpulse_in)
|
||||||
{
|
{
|
||||||
out *= (mode_pwmp_hd->pwmp_save->storage.pwmp_max_origin * 1.3) - (mode_pwmp_hd->pwmp_save->storage.pwmp_min_origin); // 映射实际控制器的范围
|
out *= (mode_pwmp_hd->pwmp_save->pwmp_max_origin * 1.3) - (mode_pwmp_hd->pwmp_save->pwmp_min_origin); // 映射实际控制器的范围
|
||||||
out += mode_pwmp_hd->pwmp_save->storage.pwmp_min_origin;
|
out += mode_pwmp_hd->pwmp_save->pwmp_min_origin;
|
||||||
}
|
}
|
||||||
else if (fabs(mode_pwmp_hd->control.real_error) >= 5.7 && fabs(mode_pwmp_hd->control.real_error) < mode_pwmp_hd->pwmp_save->storage.overimpulse_in)
|
else if (fabs(mode_pwmp_hd->control.real_error) >= 5.7 && fabs(mode_pwmp_hd->control.real_error) < mode_pwmp_hd->pwmp_save->overimpulse_in)
|
||||||
{
|
{
|
||||||
out *= (mode_pwmp_hd->pwmp_save->storage.pwmp_max_origin * 1.1) - (mode_pwmp_hd->pwmp_save->storage.pwmp_min_origin); // 映射实际控制器的范围
|
out *= (mode_pwmp_hd->pwmp_save->pwmp_max_origin * 1.1) - (mode_pwmp_hd->pwmp_save->pwmp_min_origin); // 映射实际控制器的范围
|
||||||
out += mode_pwmp_hd->pwmp_save->storage.pwmp_min_origin;
|
out += mode_pwmp_hd->pwmp_save->pwmp_min_origin;
|
||||||
}
|
}
|
||||||
else if (fabs(mode_pwmp_hd->control.real_error) < 5.7 && fabs(mode_pwmp_hd->control.real_error) > 0.5)
|
else if (fabs(mode_pwmp_hd->control.real_error) < 5.7 && fabs(mode_pwmp_hd->control.real_error) > 0.5)
|
||||||
{
|
{
|
||||||
out *= (mode_pwmp_hd->pwmp_save->storage.pwmp_max_origin) - (mode_pwmp_hd->pwmp_save->storage.pwmp_min_origin); // 映射实际控制器的范围
|
out *= (mode_pwmp_hd->pwmp_save->pwmp_max_origin) - (mode_pwmp_hd->pwmp_save->pwmp_min_origin); // 映射实际控制器的范围
|
||||||
out += mode_pwmp_hd->pwmp_save->storage.pwmp_min_origin;
|
out += mode_pwmp_hd->pwmp_save->pwmp_min_origin;
|
||||||
}
|
}
|
||||||
else if (fabs(mode_pwmp_hd->control.real_error) <= 0.5)
|
else if (fabs(mode_pwmp_hd->control.real_error) <= 0.5)
|
||||||
{
|
{
|
||||||
|
@ -638,20 +638,20 @@ static execute_rsp_hd_t *execute_dac_plan2()
|
||||||
}
|
}
|
||||||
else if (mode_pwmp_hd->action == DEFLATE)
|
else if (mode_pwmp_hd->action == DEFLATE)
|
||||||
{
|
{
|
||||||
if (fabs(mode_pwmp_hd->control.real_error) >= mode_pwmp_hd->pwmp_save->storage.overimpulse_ex)
|
if (fabs(mode_pwmp_hd->control.real_error) >= mode_pwmp_hd->pwmp_save->overimpulse_ex)
|
||||||
{
|
{
|
||||||
out *= (mode_pwmp_hd->pwmp_save->storage.pwmp_max_origin) - (mode_pwmp_hd->pwmp_save->storage.pwmp_min_origin * 0.8); // 映射实际控制器的范围
|
out *= (mode_pwmp_hd->pwmp_save->pwmp_max_origin) - (mode_pwmp_hd->pwmp_save->pwmp_min_origin * 0.8); // 映射实际控制器的范围
|
||||||
out += mode_pwmp_hd->pwmp_save->storage.pwmp_min_origin * 0.8;
|
out += mode_pwmp_hd->pwmp_save->pwmp_min_origin * 0.8;
|
||||||
}
|
}
|
||||||
else if (fabs(mode_pwmp_hd->control.real_error) >= 5.7 && fabs(mode_pwmp_hd->control.real_error) < mode_pwmp_hd->pwmp_save->storage.overimpulse_ex)
|
else if (fabs(mode_pwmp_hd->control.real_error) >= 5.7 && fabs(mode_pwmp_hd->control.real_error) < mode_pwmp_hd->pwmp_save->overimpulse_ex)
|
||||||
{
|
{
|
||||||
out *= (mode_pwmp_hd->pwmp_save->storage.pwmp_max_origin) - (mode_pwmp_hd->pwmp_save->storage.pwmp_min_origin * 0.95); // 映射实际控制器的范围
|
out *= (mode_pwmp_hd->pwmp_save->pwmp_max_origin) - (mode_pwmp_hd->pwmp_save->pwmp_min_origin * 0.95); // 映射实际控制器的范围
|
||||||
out += mode_pwmp_hd->pwmp_save->storage.pwmp_min_origin * 0.95;
|
out += mode_pwmp_hd->pwmp_save->pwmp_min_origin * 0.95;
|
||||||
}
|
}
|
||||||
else if (fabs(mode_pwmp_hd->control.real_error) < 5.7 && fabs(mode_pwmp_hd->control.real_error) > 0.5)
|
else if (fabs(mode_pwmp_hd->control.real_error) < 5.7 && fabs(mode_pwmp_hd->control.real_error) > 0.5)
|
||||||
{
|
{
|
||||||
out *= (mode_pwmp_hd->pwmp_save->storage.pwmp_max_origin) - (mode_pwmp_hd->pwmp_save->storage.pwmp_min_origin); // 映射实际控制器的范围
|
out *= (mode_pwmp_hd->pwmp_save->pwmp_max_origin) - (mode_pwmp_hd->pwmp_save->pwmp_min_origin); // 映射实际控制器的范围
|
||||||
out += mode_pwmp_hd->pwmp_save->storage.pwmp_min_origin;
|
out += mode_pwmp_hd->pwmp_save->pwmp_min_origin;
|
||||||
}
|
}
|
||||||
else if (fabs(mode_pwmp_hd->control.real_error) <= 0.5)
|
else if (fabs(mode_pwmp_hd->control.real_error) <= 0.5)
|
||||||
{
|
{
|
||||||
|
@ -662,20 +662,20 @@ static execute_rsp_hd_t *execute_dac_plan2()
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (fabs(mode_pwmp_hd->control.real_error) >= mode_pwmp_hd->pwmp_save->storage.overimpulse_in)
|
if (fabs(mode_pwmp_hd->control.real_error) >= mode_pwmp_hd->pwmp_save->overimpulse_in)
|
||||||
{
|
{
|
||||||
out *= (mode_pwmp_hd->pwmp_save->storage.pwmp_max_origin * 1.3) - (mode_pwmp_hd->pwmp_save->storage.pwmp_min_origin); // 映射实际控制器的范围
|
out *= (mode_pwmp_hd->pwmp_save->pwmp_max_origin * 1.3) - (mode_pwmp_hd->pwmp_save->pwmp_min_origin); // 映射实际控制器的范围
|
||||||
out += mode_pwmp_hd->pwmp_save->storage.pwmp_min_origin;
|
out += mode_pwmp_hd->pwmp_save->pwmp_min_origin;
|
||||||
}
|
}
|
||||||
else if (fabs(mode_pwmp_hd->control.real_error) >= 5.7 && fabs(mode_pwmp_hd->control.real_error) < mode_pwmp_hd->pwmp_save->storage.overimpulse_in)
|
else if (fabs(mode_pwmp_hd->control.real_error) >= 5.7 && fabs(mode_pwmp_hd->control.real_error) < mode_pwmp_hd->pwmp_save->overimpulse_in)
|
||||||
{
|
{
|
||||||
out *= (mode_pwmp_hd->pwmp_save->storage.pwmp_max_origin * 1.1) - (mode_pwmp_hd->pwmp_save->storage.pwmp_min_origin); // 映射实际控制器的范围
|
out *= (mode_pwmp_hd->pwmp_save->pwmp_max_origin * 1.1) - (mode_pwmp_hd->pwmp_save->pwmp_min_origin); // 映射实际控制器的范围
|
||||||
out += mode_pwmp_hd->pwmp_save->storage.pwmp_min_origin;
|
out += mode_pwmp_hd->pwmp_save->pwmp_min_origin;
|
||||||
}
|
}
|
||||||
else if (fabs(mode_pwmp_hd->control.real_error) < 5.7)
|
else if (fabs(mode_pwmp_hd->control.real_error) < 5.7)
|
||||||
{
|
{
|
||||||
out *= (mode_pwmp_hd->pwmp_save->storage.pwmp_max_origin) - (mode_pwmp_hd->pwmp_save->storage.pwmp_min_origin); // 映射实际控制器的范围
|
out *= (mode_pwmp_hd->pwmp_save->pwmp_max_origin) - (mode_pwmp_hd->pwmp_save->pwmp_min_origin); // 映射实际控制器的范围
|
||||||
out += mode_pwmp_hd->pwmp_save->storage.pwmp_min_origin;
|
out += mode_pwmp_hd->pwmp_save->pwmp_min_origin;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -768,8 +768,8 @@ static void pwmp_adjust_hd_idle(uint8_t *state, mode_pwmp_hd_adjust_state_e next
|
||||||
{
|
{
|
||||||
mode_pwmp_hd->auto_tune_state = PWMP_HD_ADJUST_RESULT_TUNING;
|
mode_pwmp_hd->auto_tune_state = PWMP_HD_ADJUST_RESULT_TUNING;
|
||||||
sys_millis_reset();
|
sys_millis_reset();
|
||||||
osel_memset((uint8_t *)&mode_pwmp_hd->pwmp_save->storage, 0, sizeof(mode_pwmp_hd_storage_data_t));
|
osel_memset((uint8_t *)mode_pwmp_hd->pwmp_save, 0, sizeof(mode_pwmp_hd_storage_data_t));
|
||||||
mode_pwmp_hd->pwmp_save->storage.tuned_flag = TUNED_ONGOING;
|
mode_pwmp_hd->pwmp_save->tuned_flag = TUNED_ONGOING;
|
||||||
/*为指针开辟存储空间*/
|
/*为指针开辟存储空间*/
|
||||||
if (mode_pwmp_hd_adjust == NULL)
|
if (mode_pwmp_hd_adjust == NULL)
|
||||||
{
|
{
|
||||||
|
@ -1368,45 +1368,45 @@ static void pwmp_adjust_hd_calculate(uint8_t *state, mode_pwmp_hd_adjust_state_e
|
||||||
if (!FSM_IS_WAIT(*state))
|
if (!FSM_IS_WAIT(*state))
|
||||||
{
|
{
|
||||||
/*行程上下限*/
|
/*行程上下限*/
|
||||||
mode_pwmp_hd->pwmp_save->storage.trip_0 = mode_pwmp_hd_adjust->adc_record_0;
|
mode_pwmp_hd->pwmp_save->trip_0 = mode_pwmp_hd_adjust->adc_record_0;
|
||||||
mode_pwmp_hd->pwmp_save->storage.trip_100 = mode_pwmp_hd_adjust->adc_record_2;
|
mode_pwmp_hd->pwmp_save->trip_100 = mode_pwmp_hd_adjust->adc_record_2;
|
||||||
mode_pwmp_hd->pwmp_save->storage.ad_diff = ABS(mode_pwmp_hd->pwmp_save->storage.trip_0 - mode_pwmp_hd->pwmp_save->storage.trip_100);
|
mode_pwmp_hd->pwmp_save->ad_diff = ABS(mode_pwmp_hd->pwmp_save->trip_0 - mode_pwmp_hd->pwmp_save->trip_100);
|
||||||
|
|
||||||
/*控制区间*/
|
/*控制区间*/
|
||||||
mode_pwmp_hd->pwmp_save->storage.pwmp_max_origin = mode_pwmp_hd_adjust->arr_record_2;
|
mode_pwmp_hd->pwmp_save->pwmp_max_origin = mode_pwmp_hd_adjust->arr_record_2;
|
||||||
mode_pwmp_hd->pwmp_save->storage.pwmp_min_origin = mode_pwmp_hd_adjust->arr_record_0;
|
mode_pwmp_hd->pwmp_save->pwmp_min_origin = mode_pwmp_hd_adjust->arr_record_0;
|
||||||
mode_pwmp_hd->pwmp_save->storage.arr_diff = ABS(mode_pwmp_hd_adjust->arr_record_2 - mode_pwmp_hd_adjust->arr_record_0);
|
mode_pwmp_hd->pwmp_save->arr_diff = ABS(mode_pwmp_hd_adjust->arr_record_2 - mode_pwmp_hd_adjust->arr_record_0);
|
||||||
mode_pwmp_hd->pwmp_save->storage.pwmp_max = mode_pwmp_hd_adjust->arr_record_2 + (mode_pwmp_hd->pwmp_save->storage.arr_diff);
|
mode_pwmp_hd->pwmp_save->pwmp_max = mode_pwmp_hd_adjust->arr_record_2 + (mode_pwmp_hd->pwmp_save->arr_diff);
|
||||||
mode_pwmp_hd->pwmp_save->storage.pwmp_min = mode_pwmp_hd_adjust->arr_record_0 - (mode_pwmp_hd->pwmp_save->storage.arr_diff);
|
mode_pwmp_hd->pwmp_save->pwmp_min = mode_pwmp_hd_adjust->arr_record_0 - (mode_pwmp_hd->pwmp_save->arr_diff);
|
||||||
|
|
||||||
/*启动值*/
|
/*启动值*/
|
||||||
mode_pwmp_hd->pwmp_save->storage.startup_value = mode_pwmp_hd_adjust->arr_record_1;
|
mode_pwmp_hd->pwmp_save->startup_value = mode_pwmp_hd_adjust->arr_record_1;
|
||||||
|
|
||||||
/*0与100阀位位置*/
|
/*0与100阀位位置*/
|
||||||
mode_pwmp_hd->pwmp_save->storage.current0 = mode_pwmp_hd_adjust->current_0;
|
mode_pwmp_hd->pwmp_save->current0 = mode_pwmp_hd_adjust->current_0;
|
||||||
mode_pwmp_hd->pwmp_save->storage.current100 = mode_pwmp_hd_adjust->current_100;
|
mode_pwmp_hd->pwmp_save->current100 = mode_pwmp_hd_adjust->current_100;
|
||||||
|
|
||||||
/*全开及全关时间*/
|
/*全开及全关时间*/
|
||||||
mode_pwmp_hd->pwmp_save->storage.all_open_time = mode_pwmp_hd_adjust->all_open_time;
|
mode_pwmp_hd->pwmp_save->all_open_time = mode_pwmp_hd_adjust->all_open_time;
|
||||||
mode_pwmp_hd->pwmp_save->storage.all_close_time = mode_pwmp_hd_adjust->all_close_time;
|
mode_pwmp_hd->pwmp_save->all_close_time = mode_pwmp_hd_adjust->all_close_time;
|
||||||
mode_pwmp_hd->pwmp_save->storage.all_open_time_full = mode_pwmp_hd_adjust->all_open_time_full;
|
mode_pwmp_hd->pwmp_save->all_open_time_full = mode_pwmp_hd_adjust->all_open_time_full;
|
||||||
mode_pwmp_hd->pwmp_save->storage.all_close_time_full = mode_pwmp_hd_adjust->all_close_time_full;
|
mode_pwmp_hd->pwmp_save->all_close_time_full = mode_pwmp_hd_adjust->all_close_time_full;
|
||||||
|
|
||||||
/*判断调节阀类型(气开/气关),对最低行程和最高行程进行标定*/
|
/*判断调节阀类型(气开/气关),对最低行程和最高行程进行标定*/
|
||||||
if (udevice.zero_power_condition == VALVE_OPEN)
|
if (udevice.zero_power_condition == VALVE_OPEN)
|
||||||
{
|
{
|
||||||
mode_pwmp_hd->pwmp_save->storage.trip_100 = mode_pwmp_hd->pwmp_save->storage.trip_100;
|
mode_pwmp_hd->pwmp_save->trip_100 = mode_pwmp_hd->pwmp_save->trip_100;
|
||||||
mode_pwmp_hd->pwmp_save->storage.trip_0 = mode_pwmp_hd->pwmp_save->storage.trip_0;
|
mode_pwmp_hd->pwmp_save->trip_0 = mode_pwmp_hd->pwmp_save->trip_0;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
uint16_t tmp = mode_pwmp_hd->pwmp_save->storage.trip_100;
|
uint16_t tmp = mode_pwmp_hd->pwmp_save->trip_100;
|
||||||
mode_pwmp_hd->pwmp_save->storage.trip_100 = mode_pwmp_hd->pwmp_save->storage.trip_0;
|
mode_pwmp_hd->pwmp_save->trip_100 = mode_pwmp_hd->pwmp_save->trip_0;
|
||||||
mode_pwmp_hd->pwmp_save->storage.trip_0 = tmp;
|
mode_pwmp_hd->pwmp_save->trip_0 = tmp;
|
||||||
}
|
}
|
||||||
|
|
||||||
// 保存安装方向
|
// 保存安装方向
|
||||||
if (mode_pwmp_hd->pwmp_save->storage.trip_100 > mode_pwmp_hd->pwmp_save->storage.trip_0) // 上大下小,正装
|
if (mode_pwmp_hd->pwmp_save->trip_100 > mode_pwmp_hd->pwmp_save->trip_0) // 上大下小,正装
|
||||||
{
|
{
|
||||||
udevice.invert_feedback = 1;
|
udevice.invert_feedback = 1;
|
||||||
}
|
}
|
||||||
|
@ -1415,10 +1415,10 @@ static void pwmp_adjust_hd_calculate(uint8_t *state, mode_pwmp_hd_adjust_state_e
|
||||||
udevice.invert_feedback = 0;
|
udevice.invert_feedback = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
udevice.pos0_travel_vol = mode_pwmp_hd->pwmp_save->storage.trip_0;
|
udevice.pos0_travel_vol = mode_pwmp_hd->pwmp_save->trip_0;
|
||||||
udevice.pos100_travel_vol = mode_pwmp_hd->pwmp_save->storage.trip_100;
|
udevice.pos100_travel_vol = mode_pwmp_hd->pwmp_save->trip_100;
|
||||||
udevice.output_min = mode_pwmp_hd->pwmp_save->storage.pwmp_min_origin;
|
udevice.output_min = mode_pwmp_hd->pwmp_save->pwmp_min_origin;
|
||||||
udevice.output_max = mode_pwmp_hd->pwmp_save->storage.pwmp_max_origin;
|
udevice.output_max = mode_pwmp_hd->pwmp_save->pwmp_max_origin;
|
||||||
calib_parapos_perent();
|
calib_parapos_perent();
|
||||||
|
|
||||||
mode_pwmp_hd_adjust->adjust_state = (mode_pwmp_hd_adjust_state_e)*state;
|
mode_pwmp_hd_adjust->adjust_state = (mode_pwmp_hd_adjust_state_e)*state;
|
||||||
|
@ -1633,9 +1633,9 @@ static void pwmp_adjust_hd_pid_calculate(uint8_t *state, mode_pwmp_hd_adjust_sta
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
mode_pwmp_hd->pwmp_save->storage.kp = fabs(pid_autotune_hd->p_auto_hd);
|
mode_pwmp_hd->pwmp_save->kp = fabs(pid_autotune_hd->p_auto_hd);
|
||||||
mode_pwmp_hd->pwmp_save->storage.ki = fabs(pid_autotune_hd->i_auto_hd);
|
mode_pwmp_hd->pwmp_save->ki = fabs(pid_autotune_hd->i_auto_hd);
|
||||||
mode_pwmp_hd->pwmp_save->storage.kd = fabs(pid_autotune_hd->d_auto_hd);
|
mode_pwmp_hd->pwmp_save->kd = fabs(pid_autotune_hd->d_auto_hd);
|
||||||
*state = next_state; // 将状态切换
|
*state = next_state; // 将状态切换
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1643,15 +1643,15 @@ static void pwmp_adjust_hd_pid_calculate(uint8_t *state, mode_pwmp_hd_adjust_sta
|
||||||
static void pwmp_adjust_hd_save(uint8_t *state, mode_pwmp_hd_adjust_state_e next_state)
|
static void pwmp_adjust_hd_save(uint8_t *state, mode_pwmp_hd_adjust_state_e next_state)
|
||||||
{
|
{
|
||||||
*state = next_state;
|
*state = next_state;
|
||||||
if (mode_pwmp_hd->pwmp_save->storage.tuned_flag == TUNED_ONGOING)
|
if (mode_pwmp_hd->pwmp_save->tuned_flag == TUNED_ONGOING)
|
||||||
{
|
{
|
||||||
mode_pwmp_hd->pwmp_save->storage.tuned_flag = TUNED_SUCCESS;
|
mode_pwmp_hd->pwmp_save->tuned_flag = TUNED_SUCCESS;
|
||||||
mode_pwmp_hd->auto_tune_state = PWMP_HD_ADJUST_RESULT_SUCCESS;
|
mode_pwmp_hd->auto_tune_state = PWMP_HD_ADJUST_RESULT_SUCCESS;
|
||||||
pwmp_public_params_update();
|
pwmp_public_params_update();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
mode_pwmp_hd->pwmp_save->storage.tuned_flag = TUNED_FAILED;
|
mode_pwmp_hd->pwmp_save->tuned_flag = TUNED_FAILED;
|
||||||
}
|
}
|
||||||
mode_pwmp_hd->params_save_cb();
|
mode_pwmp_hd->params_save_cb();
|
||||||
}
|
}
|
||||||
|
@ -1688,22 +1688,22 @@ static void pwmp_hd_adjust_step_by_10_to_100(uint8_t *state, mode_pwmp_hd_adjust
|
||||||
{
|
{
|
||||||
if (udevice.zero_power_condition == VALVE_OPEN)
|
if (udevice.zero_power_condition == VALVE_OPEN)
|
||||||
{
|
{
|
||||||
pdctrl_out(mode_pwmp_hd->pwmp_save->storage.pwmp_min_origin * 0.8);
|
pdctrl_out(mode_pwmp_hd->pwmp_save->pwmp_min_origin * 0.8);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
pdctrl_out(mode_pwmp_hd->pwmp_save->storage.pwmp_max_origin * 1.5);
|
pdctrl_out(mode_pwmp_hd->pwmp_save->pwmp_max_origin * 1.5);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (mode_pwmp_hd_adjust->ctrl_target == 100)
|
else if (mode_pwmp_hd_adjust->ctrl_target == 100)
|
||||||
{
|
{
|
||||||
if (udevice.zero_power_condition == VALVE_OPEN)
|
if (udevice.zero_power_condition == VALVE_OPEN)
|
||||||
{
|
{
|
||||||
pdctrl_out(mode_pwmp_hd->pwmp_save->storage.pwmp_min_origin * 1.5);
|
pdctrl_out(mode_pwmp_hd->pwmp_save->pwmp_min_origin * 1.5);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
pdctrl_out(mode_pwmp_hd->pwmp_save->storage.pwmp_max_origin * 0.8);
|
pdctrl_out(mode_pwmp_hd->pwmp_save->pwmp_max_origin * 0.8);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -1790,11 +1790,11 @@ static void pwmp_hd_adjust_step_by_10_to_0(uint8_t *state, mode_pwmp_hd_adjust_s
|
||||||
{
|
{
|
||||||
if (mode_pwmp_hd_adjust->ctrl_target == 0)
|
if (mode_pwmp_hd_adjust->ctrl_target == 0)
|
||||||
{
|
{
|
||||||
pdctrl_out(mode_pwmp_hd->pwmp_save->storage.pwmp_min_origin * 0.8);
|
pdctrl_out(mode_pwmp_hd->pwmp_save->pwmp_min_origin * 0.8);
|
||||||
}
|
}
|
||||||
else if (mode_pwmp_hd_adjust->ctrl_target == 100)
|
else if (mode_pwmp_hd_adjust->ctrl_target == 100)
|
||||||
{
|
{
|
||||||
pdctrl_out(mode_pwmp_hd->pwmp_save->storage.pwmp_max_origin * 1.5);
|
pdctrl_out(mode_pwmp_hd->pwmp_save->pwmp_max_origin * 1.5);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -1838,19 +1838,19 @@ static void pwmp_hd_adjust_valvepos_calculate(uint8_t *state, mode_pwmp_hd_adjus
|
||||||
{
|
{
|
||||||
*state = next_state;
|
*state = next_state;
|
||||||
mode_pwmp_hd_adjust->overimpulse_ex = mode_pwmp_hd_adjust->overimpulse_in;
|
mode_pwmp_hd_adjust->overimpulse_ex = mode_pwmp_hd_adjust->overimpulse_in;
|
||||||
mode_pwmp_hd->pwmp_save->storage.overimpulse_in = mode_pwmp_hd_adjust->overimpulse_in;
|
mode_pwmp_hd->pwmp_save->overimpulse_in = mode_pwmp_hd_adjust->overimpulse_in;
|
||||||
mode_pwmp_hd->pwmp_save->storage.overimpulse_ex = mode_pwmp_hd_adjust->overimpulse_ex;
|
mode_pwmp_hd->pwmp_save->overimpulse_ex = mode_pwmp_hd_adjust->overimpulse_ex;
|
||||||
for (unsigned int i = 0; i < 9; i++)
|
for (unsigned int i = 0; i < 9; i++)
|
||||||
{
|
{
|
||||||
mode_pwmp_hd->pwmp_save->storage.valvepos_in[i] = mode_pwmp_hd_adjust->valvepos.valvepos_in[i];
|
mode_pwmp_hd->pwmp_save->valvepos_in[i] = mode_pwmp_hd_adjust->valvepos.valvepos_in[i];
|
||||||
// mode_pwmp_hd->pwmp_save->storage.valvepos_de[i] = mode_pwmp_hd_adjust->valvepos.valvepos_de[i];
|
// mode_pwmp_hd->pwmp_save->valvepos_de[i] = mode_pwmp_hd_adjust->valvepos.valvepos_de[i];
|
||||||
}
|
}
|
||||||
for (unsigned int i = 0; i < 8; i++)
|
for (unsigned int i = 0; i < 8; i++)
|
||||||
{
|
{
|
||||||
mode_pwmp_hd->pwmp_save->storage.valvepos_in_k[i] = mode_pwmp_hd_adjust->valvepos.valvepos_in[i + 1] - mode_pwmp_hd_adjust->valvepos.valvepos_in[i];
|
mode_pwmp_hd->pwmp_save->valvepos_in_k[i] = mode_pwmp_hd_adjust->valvepos.valvepos_in[i + 1] - mode_pwmp_hd_adjust->valvepos.valvepos_in[i];
|
||||||
// mode_pwmp_hd->pwmp_save->storage.valvepos_de_k[i] = mode_pwmp_hd_adjust->valvepos.valvepos_de[i + 1] - mode_pwmp_hd_adjust->valvepos.valvepos_de[i];
|
// mode_pwmp_hd->pwmp_save->valvepos_de_k[i] = mode_pwmp_hd_adjust->valvepos.valvepos_de[i + 1] - mode_pwmp_hd_adjust->valvepos.valvepos_de[i];
|
||||||
mode_pwmp_hd->pwmp_save->storage.valvepos_in_b[i] = mode_pwmp_hd_adjust->valvepos.valvepos_in[i];
|
mode_pwmp_hd->pwmp_save->valvepos_in_b[i] = mode_pwmp_hd_adjust->valvepos.valvepos_in[i];
|
||||||
// mode_pwmp_hd->pwmp_save->storage.valvepos_de_b[i] = mode_pwmp_hd_adjust->valvepos.valvepos_de[i];
|
// mode_pwmp_hd->pwmp_save->valvepos_de_b[i] = mode_pwmp_hd_adjust->valvepos.valvepos_de[i];
|
||||||
}
|
}
|
||||||
mode_pwmp_hd->params_save_cb();
|
mode_pwmp_hd->params_save_cb();
|
||||||
}
|
}
|
||||||
|
@ -2434,25 +2434,25 @@ void mode_pwmp_hd_process(void)
|
||||||
{
|
{
|
||||||
// if (udevice.zero_power_condition == VALVE_OPEN)
|
// if (udevice.zero_power_condition == VALVE_OPEN)
|
||||||
// {
|
// {
|
||||||
// pdctrl_out(mode_pwmp_hd->pwmp_save->storage.pwmp_min_origin * 0.8);
|
// pdctrl_out(mode_pwmp_hd->pwmp_save->pwmp_min_origin * 0.8);
|
||||||
// }
|
// }
|
||||||
// else
|
// else
|
||||||
// {
|
// {
|
||||||
// pdctrl_out(mode_pwmp_hd->pwmp_save->storage.pwmp_max_origin * 1.2);
|
// pdctrl_out(mode_pwmp_hd->pwmp_save->pwmp_max_origin * 1.2);
|
||||||
// }
|
// }
|
||||||
pdctrl_out(mode_pwmp_hd->pwmp_save->storage.pwmp_min_origin * 0.8);
|
pdctrl_out(mode_pwmp_hd->pwmp_save->pwmp_min_origin * 0.8);
|
||||||
}
|
}
|
||||||
else if (rt_data.loop_current > 19.5)
|
else if (rt_data.loop_current > 19.5)
|
||||||
{
|
{
|
||||||
// if (udevice.zero_power_condition == VALVE_OPEN)
|
// if (udevice.zero_power_condition == VALVE_OPEN)
|
||||||
// {
|
// {
|
||||||
// pdctrl_out(mode_pwmp_hd->pwmp_save->storage.pwmp_max_origin * 1.2);
|
// pdctrl_out(mode_pwmp_hd->pwmp_save->pwmp_max_origin * 1.2);
|
||||||
// }
|
// }
|
||||||
// else
|
// else
|
||||||
// {
|
// {
|
||||||
// pdctrl_out(mode_pwmp_hd->pwmp_save->storage.pwmp_min_origin * 0.8);
|
// pdctrl_out(mode_pwmp_hd->pwmp_save->pwmp_min_origin * 0.8);
|
||||||
// }
|
// }
|
||||||
pdctrl_out(mode_pwmp_hd->pwmp_save->storage.pwmp_max_origin * 1.2);
|
pdctrl_out(mode_pwmp_hd->pwmp_save->pwmp_max_origin * 1.2);
|
||||||
}
|
}
|
||||||
else if (rt_data.loop_current >= 4.5 && rt_data.loop_current <= 19.5)
|
else if (rt_data.loop_current >= 4.5 && rt_data.loop_current <= 19.5)
|
||||||
{
|
{
|
||||||
|
@ -2496,7 +2496,7 @@ void mode_pwmp_hd_process(void)
|
||||||
//////////////////////////////*入口END*//////////////////////////////////////////////////////
|
//////////////////////////////*入口END*//////////////////////////////////////////////////////
|
||||||
|
|
||||||
/*程序初始化*/
|
/*程序初始化*/
|
||||||
void mode_pwmp_hd_init(mode_interface_req_t *req, uint16_t positioner_model, mode_pwmp_hd_params_u *params, void (*params_save_cb)(void))
|
void mode_pwmp_hd_init(mode_interface_req_t *req, uint16_t positioner_model, mode_pwmp_hd_storage_data_t *params, void (*params_save_cb)(void))
|
||||||
{
|
{
|
||||||
DBG_ASSERT(req != NULL __DBG_LINE);
|
DBG_ASSERT(req != NULL __DBG_LINE);
|
||||||
DBG_ASSERT(params != NULL __DBG_LINE); // 断言检查
|
DBG_ASSERT(params != NULL __DBG_LINE); // 断言检查
|
||||||
|
|
|
@ -94,14 +94,6 @@ typedef struct
|
||||||
uint16_t value;
|
uint16_t value;
|
||||||
} mode_pwmp_hd_filter_t;
|
} mode_pwmp_hd_filter_t;
|
||||||
|
|
||||||
typedef union
|
|
||||||
{
|
|
||||||
//
|
|
||||||
uint8_t data[300];
|
|
||||||
// 自定义数据结构
|
|
||||||
mode_pwmp_hd_storage_data_t storage;
|
|
||||||
} mode_pwmp_hd_params_u;
|
|
||||||
|
|
||||||
typedef enum
|
typedef enum
|
||||||
{
|
{
|
||||||
INAUTO_C, // PID控制器开始模式
|
INAUTO_C, // PID控制器开始模式
|
||||||
|
@ -130,7 +122,7 @@ typedef struct
|
||||||
|
|
||||||
mode_pwmp_hd_control_t control;
|
mode_pwmp_hd_control_t control;
|
||||||
mode_pwmp_hd_filter_t filter;
|
mode_pwmp_hd_filter_t filter;
|
||||||
mode_pwmp_hd_params_u *pwmp_save;
|
mode_pwmp_hd_storage_data_t *pwmp_save;
|
||||||
void (*params_save_cb)(void);
|
void (*params_save_cb)(void);
|
||||||
} mode_pwmp_hd_t;
|
} mode_pwmp_hd_t;
|
||||||
|
|
||||||
|
@ -370,7 +362,7 @@ typedef struct
|
||||||
} execute_rsp_hd_t;
|
} execute_rsp_hd_t;
|
||||||
/////////////////////////////////////////*控制算法END*////////////////////////////////////////
|
/////////////////////////////////////////*控制算法END*////////////////////////////////////////
|
||||||
|
|
||||||
void mode_pwmp_hd_init(mode_interface_req_t *req, uint16_t positioner_model, mode_pwmp_hd_params_u *params, void (*params_save_cb)(void));
|
void mode_pwmp_hd_init(mode_interface_req_t *req, uint16_t positioner_model, mode_pwmp_hd_storage_data_t *params, void (*params_save_cb)(void));
|
||||||
void mode_pwmp_hd_dinit(void);
|
void mode_pwmp_hd_dinit(void);
|
||||||
void mode_pwmp_hd_process(void);
|
void mode_pwmp_hd_process(void);
|
||||||
void pwmp_hd_process_state_set(mode_pwmp_hd_process_state_e state);
|
void pwmp_hd_process_state_set(mode_pwmp_hd_process_state_e state);
|
||||||
|
|
Reference in New Issue