|
@ -49,17 +49,16 @@ void WaterCoolingTemperatureControlModule::createDefaultConfig(config_t* cfg) { |
|
|
cfg->fanlevel = 90; |
|
|
cfg->fanlevel = 90; |
|
|
cfg->min_fanlevel = 10; |
|
|
cfg->min_fanlevel = 10; |
|
|
cfg->pumplevel = 100; |
|
|
cfg->pumplevel = 100; |
|
|
cfg->pid_cfg.kp = 10; |
|
|
|
|
|
|
|
|
cfg->pid_cfg.kp = 50; |
|
|
cfg->pid_cfg.ki = 0.5; |
|
|
cfg->pid_cfg.ki = 0.5; |
|
|
cfg->pid_cfg.kd = 0; |
|
|
cfg->pid_cfg.kd = 0; |
|
|
cfg->pid_cfg.max_output = 100; |
|
|
cfg->pid_cfg.max_output = 100; |
|
|
cfg->pid_cfg.min_output = -100; |
|
|
cfg->pid_cfg.min_output = -100; |
|
|
cfg->pid_cfg.max_integral = 200; |
|
|
|
|
|
cfg->pid_cfg.min_integral = -200; |
|
|
|
|
|
|
|
|
cfg->pid_cfg.max_integral = 150; |
|
|
|
|
|
cfg->pid_cfg.min_integral = -150; |
|
|
cfg->pidcompute_periodms = 1000; |
|
|
cfg->pidcompute_periodms = 1000; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
int32_t WaterCoolingTemperatureControlModule::module_xxx_reg(int32_t param_id, bool read, int32_t& val) { |
|
|
|
|
|
|
|
|
int32_t WaterCoolingTemperatureControlModule::_module_xxx_reg(int32_t param_id, bool read, int32_t& val) { |
|
|
switch (param_id) { |
|
|
switch (param_id) { |
|
|
MODULE_COMMON_PROCESS_REG_CB(); |
|
|
MODULE_COMMON_PROCESS_REG_CB(); |
|
|
PROCESS_REG(kreg_water_cooling_tmp_controler_pid_kp, REG_GET_FLOAT(m_cfg.pid_cfg.kp, 0.01), REG_SET_FLOAT(m_cfg.pid_cfg.kp, 0.01)); |
|
|
PROCESS_REG(kreg_water_cooling_tmp_controler_pid_kp, REG_GET_FLOAT(m_cfg.pid_cfg.kp, 0.01), REG_SET_FLOAT(m_cfg.pid_cfg.kp, 0.01)); |
|
@ -84,7 +83,14 @@ int32_t WaterCoolingTemperatureControlModule::module_xxx_reg(int32_t param_id, b |
|
|
return err::kmodule_not_find_reg; |
|
|
return err::kmodule_not_find_reg; |
|
|
break; |
|
|
break; |
|
|
} |
|
|
} |
|
|
|
|
|
return 0; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
int32_t WaterCoolingTemperatureControlModule::module_xxx_reg(int32_t param_id, bool read, int32_t& val) { |
|
|
|
|
|
int32_t ret = _module_xxx_reg(param_id, read, val); |
|
|
|
|
|
if (ret != 0) return ret; |
|
|
if (!read) module_active_cfg(); |
|
|
if (!read) module_active_cfg(); |
|
|
|
|
|
|
|
|
return 0; |
|
|
return 0; |
|
|
} |
|
|
} |
|
|
int32_t WaterCoolingTemperatureControlModule::gettemperature_sensor_state(int32_t& state) { |
|
|
int32_t WaterCoolingTemperatureControlModule::gettemperature_sensor_state(int32_t& state) { |
|
@ -173,7 +179,7 @@ void WaterCoolingTemperatureControlModule::workloop() { |
|
|
peltier_set_power_level(out); |
|
|
peltier_set_power_level(out); |
|
|
i++; |
|
|
i++; |
|
|
if (i % 10 == 0) { |
|
|
if (i % 10 == 0) { |
|
|
int32_t fanspeed = prvabs(out) * 1; |
|
|
|
|
|
|
|
|
int32_t fanspeed = prvabs(out) * 0.7; |
|
|
if (fanspeed > 100) fanspeed = 100; |
|
|
if (fanspeed > 100) fanspeed = 100; |
|
|
if (fanspeed < m_cfg.min_fanlevel) fanspeed = m_cfg.min_fanlevel; |
|
|
if (fanspeed < m_cfg.min_fanlevel) fanspeed = m_cfg.min_fanlevel; |
|
|
fan_start(fanspeed); |
|
|
fan_start(fanspeed); |
|
|