Browse Source

优化水冷控温

master
zhaohe 8 months ago
parent
commit
cec84d1510
  1. 12
      sdk/components/water_cooling_temperature_control_module/water_cooling_temperature_control_module.cpp
  2. 11
      sdk/components/water_cooling_temperature_control_module/water_cooling_temperature_control_module.hpp

12
sdk/components/water_cooling_temperature_control_module/water_cooling_temperature_control_module.cpp

@ -72,7 +72,7 @@ int32_t WaterCoolingTemperatureControlModule::pri_module_xxx_reg(int32_t param_i
PROCESS_REG(kreg_water_cooling_tmp_controler_pid_target, REG_GET_FLOAT(m_target_temperature, 0.1), REG_SET_FLOAT(m_target_temperature, 0.1)); PROCESS_REG(kreg_water_cooling_tmp_controler_pid_target, REG_GET_FLOAT(m_target_temperature, 0.1), REG_SET_FLOAT(m_target_temperature, 0.1));
PROCESS_REG(kreg_water_cooling_tmp_controler_pid_nowoutput, REG_GET(m_pidmodule.get_output()), ACTION_NONE); PROCESS_REG(kreg_water_cooling_tmp_controler_pid_nowoutput, REG_GET(m_pidmodule.get_output()), ACTION_NONE);
PROCESS_REG(kreg_water_cooling_tmp_controler_pid_feedbackval, REG_GET(read_pid_temperature()), ACTION_NONE);
PROCESS_REG(kreg_water_cooling_tmp_controler_pid_feedbackval, REG_GET(read_pid_temperature_from_upper()), ACTION_NONE);
PROCESS_REG(kreg_water_cooling_tmp_controler_temp0, REG_GET(getTemperatureSensorVal(0) * 10 + 0.5), ACTION_NONE); PROCESS_REG(kreg_water_cooling_tmp_controler_temp0, REG_GET(getTemperatureSensorVal(0) * 10 + 0.5), ACTION_NONE);
PROCESS_REG(kreg_water_cooling_tmp_controler_temp1, REG_GET(getTemperatureSensorVal(1) * 10 + 0.5), ACTION_NONE); PROCESS_REG(kreg_water_cooling_tmp_controler_temp1, REG_GET(getTemperatureSensorVal(1) * 10 + 0.5), ACTION_NONE);
@ -166,7 +166,8 @@ void WaterCoolingTemperatureControlModule::workloop() {
m_thread.sleep(m_cfg.pidcompute_periodms); m_thread.sleep(m_cfg.pidcompute_periodms);
float val = read_pid_temperature();
float val = read_pid_temperature();
m_feedbak_temperature = val;
float error = m_target_temperature - val; float error = m_target_temperature - val;
float out = 0; float out = 0;
@ -232,6 +233,13 @@ int32_t WaterCoolingTemperatureControlModule::checkdevice() {
/******************************************************************************* /*******************************************************************************
* BASIC * * BASIC *
*******************************************************************************/ *******************************************************************************/
float WaterCoolingTemperatureControlModule::read_pid_temperature_from_upper() {
if (creg.module_status == 1) {
return m_feedbak_temperature;
} else {
return read_pid_temperature();
}
}
float WaterCoolingTemperatureControlModule::read_pid_temperature() { float WaterCoolingTemperatureControlModule::read_pid_temperature() {
zlock_guard lock(m_temperature_sensor_mutex); zlock_guard lock(m_temperature_sensor_mutex);

11
sdk/components/water_cooling_temperature_control_module/water_cooling_temperature_control_module.hpp

@ -68,14 +68,15 @@ class WaterCoolingTemperatureControlModule : public ZIModule, public ZI_WaterCoo
PidModule m_pidmodule; PidModule m_pidmodule;
ZThread m_thread; ZThread m_thread;
int32_t m_enable_log = 0;
float m_target_temperature = 0;
int32_t m_enable_log = 0;
float m_target_temperature = 0;
float m_feedbak_temperature = 0;
zmutex m_temperature_sensor_mutex; zmutex m_temperature_sensor_mutex;
public: public:
WaterCoolingTemperatureControlModule(){};
virtual ~WaterCoolingTemperatureControlModule(){};
WaterCoolingTemperatureControlModule() {};
virtual ~WaterCoolingTemperatureControlModule() {};
static void createDefaultConfig(config_t* cfg); static void createDefaultConfig(config_t* cfg);
@ -110,6 +111,8 @@ class WaterCoolingTemperatureControlModule : public ZIModule, public ZI_WaterCoo
private: private:
int32_t gettemperature_sensor_state(int32_t& state); int32_t gettemperature_sensor_state(int32_t& state);
float getTemperatureSensorVal(int32_t index); float getTemperatureSensorVal(int32_t index);
float read_pid_temperature_from_upper();
}; };
} // namespace iflytop } // namespace iflytop
Loading…
Cancel
Save