/* * temper_p_tools.c * * Created on: 13 нояб. 2024 г. * Author: Evgeniy_Sokolov */ #include #include #include #include #include #include #include #include "IQmathLib.h" #include "mathlib.h" #include "adc_tools.h" #include "temper_p_tools.h" /////////////////////////////////////////////// void nagrev_auto_on_off(void) { //min_real_int_temper_air // if (edrk.temper_edrk.max_real_int_temper_waterTEMPER_NAGREF_OFF) // edrk.to_ing.bits.NAGREV_OFF = 1; if (edrk.temper_edrk.min_real_int_temper_airTEMPER_NAGREF_OFF_1 || edrk.temper_edrk.max_real_int_temper_air>TEMPER_NAGREF_OFF_2) edrk.to_ing.bits.NAGREV_OFF = 1; } /////////////////////////////////////////////// //#define koef_P_Water_filter 1600000 //0.095367431640625 void calc_p_water_edrk(void) { _iq iqtain,iq_temp; static _iq koef_P_Water_filter = _IQ (0.1/2.0); // 5 сек фильтр edrk.p_water_edrk.adc_p_water[0] = ADC_f[1][14]; edrk.p_water_edrk.real_p_water[0] = (_IQtoF(analog.P_Water_internal) * NORMA_ACP_P - 4.0) / 1.6; edrk.p_water_edrk.real_int_p_water[0] = edrk.p_water_edrk.real_p_water[0] * K_P_WATER_TO_SVU; iqtain = _IQ(edrk.p_water_edrk.real_p_water[0]/100.0); iq_temp = _IQ(edrk.p_water_edrk.filter_real_p_water[0]/100.0); if (edrk.p_water_edrk.flag_init_filter_temp[0]==0) { iq_temp = iqtain; edrk.p_water_edrk.flag_init_filter_temp[0]=1; } // iq_temp_engine[i] = exp_regul_iq(koef_Temper_ENGINE_filter, iq_temp_engine[i], iqtain); iq_temp += _IQmpy( (iqtain-iq_temp), koef_P_Water_filter); edrk.p_water_edrk.filter_real_p_water[0] = _IQtoF(iq_temp)*100.0; edrk.p_water_edrk.filter_real_int_p_water[0] = edrk.p_water_edrk.filter_real_p_water[0]*K_P_WATER_TO_SVU; } //////////////////////////////////////////////////////////