Обновление

This commit is contained in:
cfif 2026-04-21 14:21:46 +03:00
parent 0cc24530fb
commit 5101cd6d20
5 changed files with 143 additions and 97 deletions

200
HVAC_model.c Executable file → Normal file
View File

@ -3,9 +3,9 @@
* *
* Code generated for Simulink model 'HVAC_model'. * Code generated for Simulink model 'HVAC_model'.
* *
* Model version : 1.815 * Model version : 1.820
* Simulink Coder version : 24.1 (R2024a) 19-Nov-2023 * Simulink Coder version : 24.1 (R2024a) 19-Nov-2023
* C/C++ source code generated on : Fri Apr 17 15:57:38 2026 * C/C++ source code generated on : Tue Apr 21 14:12:53 2026
* *
* Target selection: ert.tlc * Target selection: ert.tlc
* Embedded hardware selection: ARM Compatible->ARM Cortex-M * Embedded hardware selection: ARM Compatible->ARM Cortex-M
@ -4618,7 +4618,7 @@ void Level3_i(int8_t *rty_step, uint16_t *rtd_Blower_RL, uint16_t *rtd_Blower_RR
uint16_t rtb_out_gx; uint16_t rtb_out_gx;
uint8_t rtb_out_cn; uint8_t rtb_out_cn;
uint8_t rtb_out_i4; uint8_t rtb_out_i4;
bool rtb_Cond_prev_private_a4; bool rtb_Cond_prev_private_e;
/* DataStoreWrite: '<S829>/Data Store Write9' incorporates: /* DataStoreWrite: '<S829>/Data Store Write9' incorporates:
* DataStoreRead: '<S829>/Data Store Read6' * DataStoreRead: '<S829>/Data Store Read6'
@ -4703,7 +4703,7 @@ void Level3_i(int8_t *rty_step, uint16_t *rtd_Blower_RL, uint16_t *rtd_Blower_RR
/* RelationalOperator: '<S919>/Relational Operator' incorporates: /* RelationalOperator: '<S919>/Relational Operator' incorporates:
* Constant: '<S919>/epsilon' * Constant: '<S919>/epsilon'
*/ */
rtb_Cond_prev_private_a4 = (rtb_out_i4 <= 0.01); rtb_Cond_prev_private_e = (rtb_out_i4 <= 0.01);
/* MATLAB Function: '<S908>/step' incorporates: /* MATLAB Function: '<S908>/step' incorporates:
* DataStoreRead: '<S829>/Data Store Read5' * DataStoreRead: '<S829>/Data Store Read5'
@ -4731,7 +4731,7 @@ void Level3_i(int8_t *rty_step, uint16_t *rtd_Blower_RL, uint16_t *rtd_Blower_RR
* Switch: '<S923>/Switch' * Switch: '<S923>/Switch'
* UnitDelay: '<S920>/Unit Delay' * UnitDelay: '<S920>/Unit Delay'
*/ */
if (rtb_Cond_prev_private_a4) { if (rtb_Cond_prev_private_e) {
*rtd_Mode_RR = *rtd_Mode_logic_RR; *rtd_Mode_RR = *rtd_Mode_logic_RR;
} else { } else {
if (*rtd_Mode_RR <= *rtd_Mode_logic_RR) { if (*rtd_Mode_RR <= *rtd_Mode_logic_RR) {
@ -4822,7 +4822,7 @@ void Level3_i(int8_t *rty_step, uint16_t *rtd_Blower_RL, uint16_t *rtd_Blower_RR
/* RelationalOperator: '<S829>/Equal' incorporates: /* RelationalOperator: '<S829>/Equal' incorporates:
* DataStoreRead: '<S829>/current step' * DataStoreRead: '<S829>/current step'
*/ */
rtb_Cond_prev_private_a4 = (*rtd_step_start_controle_rear == 2); rtb_Cond_prev_private_e = (*rtd_step_start_controle_rear == 2);
/* Sum: '<S903>/Subtract' incorporates: /* Sum: '<S903>/Subtract' incorporates:
* DataStoreRead: '<S903>/Data Store Read4' * DataStoreRead: '<S903>/Data Store Read4'
@ -4842,7 +4842,7 @@ void Level3_i(int8_t *rty_step, uint16_t *rtd_Blower_RL, uint16_t *rtd_Blower_RR
* UnitDelay: '<S903>/Cond_prev_private ' * UnitDelay: '<S903>/Cond_prev_private '
* UnitDelay: '<S903>/t_start_delay_private ' * UnitDelay: '<S903>/t_start_delay_private '
*/ */
if (rtb_Cond_prev_private_a4 && (!localDW->Cond_prev_private_DSTATE)) { if (rtb_Cond_prev_private_e && (!localDW->Cond_prev_private_DSTATE)) {
localDW->t_start_delay_private_DSTATE = *rtd_t_now; localDW->t_start_delay_private_DSTATE = *rtd_t_now;
} }
@ -4880,7 +4880,7 @@ void Level3_i(int8_t *rty_step, uint16_t *rtd_Blower_RL, uint16_t *rtd_Blower_RR
localDW->UnitDelay_DSTATE_e = *rtd_t_now; localDW->UnitDelay_DSTATE_e = *rtd_t_now;
/* Update for UnitDelay: '<S903>/Cond_prev_private ' */ /* Update for UnitDelay: '<S903>/Cond_prev_private ' */
localDW->Cond_prev_private_DSTATE = rtb_Cond_prev_private_a4; localDW->Cond_prev_private_DSTATE = rtb_Cond_prev_private_e;
} }
/* Model step function */ /* Model step function */
@ -4891,7 +4891,7 @@ void HVAC_model_step(void)
double rtb_Divide3; double rtb_Divide3;
int32_t i; int32_t i;
int32_t tmp_0; int32_t tmp_0;
uint32_t rtb_dt_dv; uint32_t rtb_dt_f1;
uint32_t rtb_dt_l; uint32_t rtb_dt_l;
int16_t tmp[6]; int16_t tmp[6];
int16_t rtb_out_js[2]; int16_t rtb_out_js[2];
@ -7440,7 +7440,8 @@ void HVAC_model_step(void)
* Logic: '<S384>/Logical Operator2' * Logic: '<S384>/Logical Operator2'
* RelationalOperator: '<S384>/Relational Operator' * RelationalOperator: '<S384>/Relational Operator'
* RelationalOperator: '<S384>/Relational Operator1' * RelationalOperator: '<S384>/Relational Operator1'
*/ * SignalConversion generated from: '<S380>/Bus Selector'
* */
for (i = 0; i < 9; i++) { for (i = 0; i < 9; i++) {
rtb_LogicalOperator3_c[i] = rtb_LogicalOperator3_c[i] =
((Actuator_Ch0_Status_Model.in_Act_Stall_Slave[i] == 1) || ((Actuator_Ch0_Status_Model.in_Act_Stall_Slave[i] == 1) ||
@ -7477,6 +7478,7 @@ void HVAC_model_step(void)
for (i = 0; i < 9; i++) { for (i = 0; i < 9; i++) {
/* Switch: '<S396>/Switch' incorporates: /* Switch: '<S396>/Switch' incorporates:
* DataStoreRead: '<S396>/Data Store Read1' * DataStoreRead: '<S396>/Data Store Read1'
* SignalConversion generated from: '<S380>/Bus Selector'
*/ */
if (rtDW.ErrorCalibration_private[i] != 0) { if (rtDW.ErrorCalibration_private[i] != 0) {
rtDW.MinPositionCh0_private[i] = rtDW.MinPositionCh0_private[i] =
@ -7672,7 +7674,8 @@ void HVAC_model_step(void)
* Logic: '<S383>/Logical Operator2' * Logic: '<S383>/Logical Operator2'
* RelationalOperator: '<S383>/Relational Operator' * RelationalOperator: '<S383>/Relational Operator'
* RelationalOperator: '<S383>/Relational Operator1' * RelationalOperator: '<S383>/Relational Operator1'
*/ * SignalConversion generated from: '<S380>/Bus Selector'
* */
for (i = 0; i < 9; i++) { for (i = 0; i < 9; i++) {
rtb_LogicalOperator3_c[i] = rtb_LogicalOperator3_c[i] =
((Actuator_Ch0_Status_Model.in_Act_Stall_Slave[i] == 1) || ((Actuator_Ch0_Status_Model.in_Act_Stall_Slave[i] == 1) ||
@ -7709,6 +7712,7 @@ void HVAC_model_step(void)
for (i = 0; i < 9; i++) { for (i = 0; i < 9; i++) {
/* Switch: '<S393>/Switch' incorporates: /* Switch: '<S393>/Switch' incorporates:
* DataStoreRead: '<S393>/Data Store Read1' * DataStoreRead: '<S393>/Data Store Read1'
* SignalConversion generated from: '<S380>/Bus Selector'
*/ */
if (rtDW.ErrorCalibration_private[i] != 0) { if (rtDW.ErrorCalibration_private[i] != 0) {
rtDW.MaxPositionCh0_private[i] = rtDW.MaxPositionCh0_private[i] =
@ -7993,12 +7997,19 @@ void HVAC_model_step(void)
* ActionPort: '<S402>/Action Port' * ActionPort: '<S402>/Action Port'
*/ */
for (i = 0; i < 9; i++) { for (i = 0; i < 9; i++) {
/* RelationalOperator: '<S415>/Compare' */
rtb_Divide1 = rtb_Divide1_ja[i];
/* Logic: '<S402>/Logical Operator3' incorporates: /* Logic: '<S402>/Logical Operator3' incorporates:
* Constant: '<S415>/Constant' * Constant: '<S415>/Constant'
* Constant: '<S416>/Constant'
* DataStoreRead: '<S402>/Data Store Read' * DataStoreRead: '<S402>/Data Store Read'
* Logic: '<S402>/Logical Operator1'
* Logic: '<S402>/Logical Operator4'
* RelationalOperator: '<S415>/Compare' * RelationalOperator: '<S415>/Compare'
* RelationalOperator: '<S416>/Compare'
*/ */
rtb_LogicalOperator1 = ((rtb_Divide1_ja[i] <= 0.97) && rtb_LogicalOperator1 = (((rtb_Divide1 < 0.97) || (rtb_Divide1 > 1.03)) &&
(rtDW.ErrorCalibration_private[i] != 0)); (rtDW.ErrorCalibration_private[i] != 0));
rtb_LogicalOperator3_c[i] = rtb_LogicalOperator1; rtb_LogicalOperator3_c[i] = rtb_LogicalOperator1;
@ -8093,23 +8104,63 @@ void HVAC_model_step(void)
/* Outputs for IfAction SubSystem: '<S403>/If Action Subsystem' incorporates: /* Outputs for IfAction SubSystem: '<S403>/If Action Subsystem' incorporates:
* ActionPort: '<S418>/Action Port' * ActionPort: '<S418>/Action Port'
*/ */
/* Logic: '<S418>/AND' incorporates: /* MATLAB Function: '<S418>/MATLAB Function' incorporates:
* DataStoreRead: '<S418>/Data Store Read' * DataStoreRead: '<S418>/Data Store Read'
* DataStoreRead: '<S418>/Data Store Read1'
*/ */
rtb_LogicalOperator1 = (rtDW.ErrorCalibration_private[0] != 0); /* : dt = uint32(0); */
for (i = 0; i < 8; i++) { /* : if isempty(t_start) */
rtb_LogicalOperator1 = (rtb_LogicalOperator1 && if (!rtDW.t_start_not_empty) {
(rtDW.ErrorCalibration_private[i + 1] != 0)); /* : t_start = t_now; */
rtDW.t_start = rtDW.t_now;
rtDW.t_start_not_empty = true;
/* : cond_prev = 0; */
} }
/* Sum: '<S423>/Subtract' incorporates: /* : if cond > 0.5 && cond_prev <= 0.5 */
* DataStoreRead: '<S423>/Data Store Read' if ((rtDW.Start_timer > 0.5) && (rtDW.cond_prev <= 0.5)) {
* UnitDelay: '<S423>/t_start_delay_private ' /* : t_start = t_now; */
rtDW.t_start = rtDW.t_now;
}
/* : if cond > 0.5 */
if (rtDW.Start_timer > 0.5) {
/* : dt = uint32(t_now - t_start); */
rtb_dt_f1 = rtDW.t_now - /*MW:OvSatOk*/ rtDW.t_start;
if (rtb_dt_f1 > rtDW.t_now) {
rtb_dt_f1 = 0U;
}
} else {
/* : else */
/* : dt = uint32(0); */
rtb_dt_f1 = 0U;
}
/* : cond_prev = cond; */
rtDW.cond_prev = rtDW.Start_timer;
/* End of MATLAB Function: '<S418>/MATLAB Function' */
/* MATLAB Function: '<S418>/MAX POSITION' incorporates:
* DataStoreRead: '<S418>/Data Store Read5'
*/ */
rtb_dt_dv = rtDW.t_now - rtDW.t_start_delay_private_DSTATE_h; /* : if(LOGGER>0) */
if (rtDW.LOGGER_LIN > 0.0) {
/* : fprintf("Homing 3. Start TIme dt = %d \n",int32(data)); */
rtb_dt_l = rtb_dt_f1;
if (rtb_dt_f1 > 2147483647U) {
rtb_dt_l = 2147483647U;
}
printf("Homing 3. Start TIme dt = %d \n", (int32_t)rtb_dt_l);
fflush(stdout);
}
/* End of MATLAB Function: '<S418>/MAX POSITION' */
/* If: '<S418>/If' */ /* If: '<S418>/If' */
if (rtb_dt_dv > 30000U) { if (rtb_dt_f1 > 30000U) {
/* Outputs for IfAction SubSystem: '<S418>/If Action Subsystem' incorporates: /* Outputs for IfAction SubSystem: '<S418>/If Action Subsystem' incorporates:
* ActionPort: '<S421>/Action Port' * ActionPort: '<S421>/Action Port'
*/ */
@ -8125,6 +8176,11 @@ void HVAC_model_step(void)
*/ */
rtDW.ErrorHomming_private++; rtDW.ErrorHomming_private++;
/* DataStoreWrite: '<S421>/Data Store Write2' incorporates:
* Constant: '<S421>/Constant3'
*/
rtDW.Start_timer = 0.0;
/* Merge: '<S385>/Merge' incorporates: /* Merge: '<S385>/Merge' incorporates:
* Constant: '<S421>/Constant1' * Constant: '<S421>/Constant1'
* Merge: '<S418>/Merge' * Merge: '<S418>/Merge'
@ -8137,6 +8193,11 @@ void HVAC_model_step(void)
/* Outputs for IfAction SubSystem: '<S418>/If Action Subsystem1' incorporates: /* Outputs for IfAction SubSystem: '<S418>/If Action Subsystem1' incorporates:
* ActionPort: '<S422>/Action Port' * ActionPort: '<S422>/Action Port'
*/ */
/* DataStoreWrite: '<S422>/Data Store Write2' incorporates:
* Constant: '<S422>/Constant3'
*/
rtDW.Start_timer = 1.0;
/* Merge: '<S385>/Merge' incorporates: /* Merge: '<S385>/Merge' incorporates:
* Constant: '<S422>/Constant1' * Constant: '<S422>/Constant1'
* Merge: '<S418>/Merge' * Merge: '<S418>/Merge'
@ -8148,49 +8209,6 @@ void HVAC_model_step(void)
} }
/* End of If: '<S418>/If' */ /* End of If: '<S418>/If' */
/* MATLAB Function: '<S423>/MAX POSITION' incorporates:
* DataStoreRead: '<S423>/Data Store Read5'
*/
/* : if(LOGGER>0) */
if (rtDW.LOGGER_LIN > 0.0) {
/* : fprintf("Homing 3. Start TIme dt = %d \n",int32(data)); */
if (rtb_dt_dv > 2147483647U) {
rtb_dt_dv = 2147483647U;
}
printf("Homing 3. Start TIme dt = %d \n", (int32_t)rtb_dt_dv);
fflush(stdout);
}
/* End of MATLAB Function: '<S423>/MAX POSITION' */
/* Switch: '<S423>/Switch1' incorporates:
* Constant: '<S423>/Constant'
* Logic: '<S418>/AND'
* Logic: '<S423>/Logical Operator3'
* Logic: '<S423>/Logical Operator4'
* Switch: '<S423>/Switch'
* UnitDelay: '<S423>/Cond_prev_private '
* UnitDelay: '<S423>/t_start_delay_private '
*/
if (rtb_LogicalOperator1 && (!rtDW.Cond_prev_private_DSTATE_d)) {
rtDW.t_start_delay_private_DSTATE_h = 0U;
} else if (rtb_LogicalOperator1) {
/* Switch: '<S423>/Switch' incorporates:
* DataStoreRead: '<S423>/Data Store Read'
* UnitDelay: '<S423>/t_start_delay_private '
*/
rtDW.t_start_delay_private_DSTATE_h = rtDW.t_now;
}
/* End of Switch: '<S423>/Switch1' */
/* Update for UnitDelay: '<S423>/Cond_prev_private ' incorporates:
* Logic: '<S418>/AND'
*/
rtDW.Cond_prev_private_DSTATE_d = rtb_LogicalOperator1;
/* End of Outputs for SubSystem: '<S403>/If Action Subsystem' */ /* End of Outputs for SubSystem: '<S403>/If Action Subsystem' */
} else { } else {
/* Outputs for IfAction SubSystem: '<S403>/If Action Subsystem1' incorporates: /* Outputs for IfAction SubSystem: '<S403>/If Action Subsystem1' incorporates:
@ -8667,9 +8685,9 @@ void HVAC_model_step(void)
i = 255; i = 255;
} }
rtb_dt_dv = (uint32_t)i - 2U; rtb_dt_f1 = (uint32_t)i - 2U;
if ((uint32_t)i - 2U > (uint32_t)i) { if ((uint32_t)i - 2U > (uint32_t)i) {
rtb_dt_dv = 0U; rtb_dt_f1 = 0U;
} }
/* Merge: '<S452>/Merge' incorporates: /* Merge: '<S452>/Merge' incorporates:
@ -8679,7 +8697,7 @@ void HVAC_model_step(void)
* Switch: '<S475>/Switch' * Switch: '<S475>/Switch'
*/ */
rtB.Merge_h = (int8_t)(rtDW.ECT > g_assSTART_COOLANT_STEP0_TO_1[(int32_t) rtB.Merge_h = (int8_t)(rtDW.ECT > g_assSTART_COOLANT_STEP0_TO_1[(int32_t)
rtb_dt_dv - 1]); rtb_dt_f1 - 1]);
/* End of Outputs for SubSystem: '<S455>/Level 3' */ /* End of Outputs for SubSystem: '<S455>/Level 3' */
break; break;
@ -9153,11 +9171,11 @@ void HVAC_model_step(void)
} }
/* MW:begin MISRA2012:D4.1 CERT-C:INT30-C 'Justifying MISRA CPP rule violation' */ /* MW:begin MISRA2012:D4.1 CERT-C:INT30-C 'Justifying MISRA CPP rule violation' */
rtb_dt_dv = (uint32_t)i - 3U; rtb_dt_f1 = (uint32_t)i - 3U;
/* MW:end MISRA2012:D4.1 CERT-C:INT30-C */ /* MW:end MISRA2012:D4.1 CERT-C:INT30-C */
if ((uint32_t)i - 3U > (uint32_t)i) { if ((uint32_t)i - 3U > (uint32_t)i) {
rtb_dt_dv = 0U; rtb_dt_f1 = 0U;
} }
/* Switch: '<S490>/Switch' incorporates: /* Switch: '<S490>/Switch' incorporates:
@ -9171,7 +9189,7 @@ void HVAC_model_step(void)
* RelationalOperator: '<S490>/Relational Operator2' * RelationalOperator: '<S490>/Relational Operator2'
*/ */
if ((Incar_FL < AMB) || (rtb_dt_l > (uint32_t)(1000 * Eva_F)) || if ((Incar_FL < AMB) || (rtb_dt_l > (uint32_t)(1000 * Eva_F)) ||
(rtDW.ECT > g_assSTART_COOLANT_TO_STEP2[(int32_t)rtb_dt_dv - 1])) { (rtDW.ECT > g_assSTART_COOLANT_TO_STEP2[(int32_t)rtb_dt_f1 - 1])) {
/* Merge: '<S452>/Merge' incorporates: /* Merge: '<S452>/Merge' incorporates:
* Constant: '<S490>/go to next step 2' * Constant: '<S490>/go to next step 2'
*/ */
@ -9486,7 +9504,7 @@ void HVAC_model_step(void)
* DataStoreRead: '<S564>/Data Store Read4' * DataStoreRead: '<S564>/Data Store Read4'
* UnitDelay: '<S564>/t_start_delay_private ' * UnitDelay: '<S564>/t_start_delay_private '
*/ */
rtb_dt_dv = rtDW.t_now - rtDW.t_start_delay_private_DSTATE_g; rtb_dt_f1 = rtDW.t_now - rtDW.t_start_delay_private_DSTATE_g;
/* Switch: '<S564>/Switch' incorporates: /* Switch: '<S564>/Switch' incorporates:
* DataStoreRead: '<S564>/Data Store Read4' * DataStoreRead: '<S564>/Data Store Read4'
@ -9508,7 +9526,7 @@ void HVAC_model_step(void)
* Gain: '<S555>/èç ñåê â ìñ' * Gain: '<S555>/èç ñåê â ìñ'
* RelationalOperator: '<S555>/Relational Operator1' * RelationalOperator: '<S555>/Relational Operator1'
*/ */
if (rtb_dt_dv > (uint32_t)(1000 * Incar_FL)) { if (rtb_dt_f1 > (uint32_t)(1000 * Incar_FL)) {
/* Merge: '<S452>/Merge' incorporates: /* Merge: '<S452>/Merge' incorporates:
* Constant: '<S555>/go to next step' * Constant: '<S555>/go to next step'
*/ */
@ -9803,7 +9821,7 @@ void HVAC_model_step(void)
* DataStoreRead: '<S594>/Data Store Read4' * DataStoreRead: '<S594>/Data Store Read4'
* UnitDelay: '<S594>/t_start_delay_private ' * UnitDelay: '<S594>/t_start_delay_private '
*/ */
rtb_dt_dv = rtDW.t_now - rtDW.t_start_delay_private_DSTATE_m; rtb_dt_f1 = rtDW.t_now - rtDW.t_start_delay_private_DSTATE_m;
/* Switch: '<S594>/Switch' incorporates: /* Switch: '<S594>/Switch' incorporates:
* DataStoreRead: '<S594>/Data Store Read4' * DataStoreRead: '<S594>/Data Store Read4'
@ -9825,7 +9843,7 @@ void HVAC_model_step(void)
* Gain: '<S556>/èç ñåê â ìñ' * Gain: '<S556>/èç ñåê â ìñ'
* RelationalOperator: '<S556>/Relational Operator1' * RelationalOperator: '<S556>/Relational Operator1'
*/ */
if (rtb_dt_dv > (uint32_t)(1000 * Incar_FL)) { if (rtb_dt_f1 > (uint32_t)(1000 * Incar_FL)) {
/* Merge: '<S452>/Merge' incorporates: /* Merge: '<S452>/Merge' incorporates:
* Constant: '<S556>/go to next step' * Constant: '<S556>/go to next step'
*/ */
@ -10739,7 +10757,7 @@ void HVAC_model_step(void)
* DataStoreRead: '<S783>/Data Store Read4' * DataStoreRead: '<S783>/Data Store Read4'
* UnitDelay: '<S783>/t_start_delay_private ' * UnitDelay: '<S783>/t_start_delay_private '
*/ */
rtb_dt_dv = rtDW.t_now - rtDW.t_start_delay_private_DSTATE_em; rtb_dt_f1 = rtDW.t_now - rtDW.t_start_delay_private_DSTATE_em;
/* MATLAB Function: '<S758>/Time goto from step 1 to step 2 ' incorporates: /* MATLAB Function: '<S758>/Time goto from step 1 to step 2 ' incorporates:
* DataStoreRead: '<S758>/Data Store Read4' * DataStoreRead: '<S758>/Data Store Read4'
@ -10770,7 +10788,7 @@ void HVAC_model_step(void)
* RelationalOperator: '<S758>/Relational Operator1' * RelationalOperator: '<S758>/Relational Operator1'
* RelationalOperator: '<S758>/Relational Operator2' * RelationalOperator: '<S758>/Relational Operator2'
*/ */
if ((Incar_RR > Incar_FL) || (rtb_dt_dv > (uint16_t)(1000 * AMB)) || if ((Incar_RR > Incar_FL) || (rtb_dt_f1 > (uint16_t)(1000 * AMB)) ||
(rtDW.ECT > g_assSTART_COOLANT_TO_STEP2[1])) { (rtDW.ECT > g_assSTART_COOLANT_TO_STEP2[1])) {
/* Merge: '<S453>/Merge' incorporates: /* Merge: '<S453>/Merge' incorporates:
* Constant: '<S758>/go to next step' * Constant: '<S758>/go to next step'
@ -10847,7 +10865,7 @@ void HVAC_model_step(void)
* DataStoreRead: '<S795>/Data Store Read4' * DataStoreRead: '<S795>/Data Store Read4'
* UnitDelay: '<S795>/t_start_delay_private ' * UnitDelay: '<S795>/t_start_delay_private '
*/ */
rtb_dt_dv = rtDW.t_now - rtDW.t_start_delay_private_DSTATE_o; rtb_dt_f1 = rtDW.t_now - rtDW.t_start_delay_private_DSTATE_o;
/* MATLAB Function: '<S759>/Time goto from step 1 to step 2 ' incorporates: /* MATLAB Function: '<S759>/Time goto from step 1 to step 2 ' incorporates:
* DataStoreRead: '<S759>/Data Store Read4' * DataStoreRead: '<S759>/Data Store Read4'
@ -10878,7 +10896,7 @@ void HVAC_model_step(void)
* RelationalOperator: '<S759>/Relational Operator1' * RelationalOperator: '<S759>/Relational Operator1'
* RelationalOperator: '<S759>/Relational Operator2' * RelationalOperator: '<S759>/Relational Operator2'
*/ */
if ((Incar_RR > Incar_FL) || (rtb_dt_dv > (uint16_t)(1000 * AMB)) || if ((Incar_RR > Incar_FL) || (rtb_dt_f1 > (uint16_t)(1000 * AMB)) ||
(rtDW.ECT > g_assSTART_COOLANT_TO_STEP2[2])) { (rtDW.ECT > g_assSTART_COOLANT_TO_STEP2[2])) {
/* Merge: '<S453>/Merge' incorporates: /* Merge: '<S453>/Merge' incorporates:
* Constant: '<S759>/go to next step' * Constant: '<S759>/go to next step'
@ -11127,7 +11145,7 @@ void HVAC_model_step(void)
* DataStoreRead: '<S834>/Data Store Read4' * DataStoreRead: '<S834>/Data Store Read4'
* UnitDelay: '<S834>/t_start_delay_private ' * UnitDelay: '<S834>/t_start_delay_private '
*/ */
rtb_dt_dv = rtDW.t_now - rtDW.t_start_delay_private_DSTATE_f; rtb_dt_f1 = rtDW.t_now - rtDW.t_start_delay_private_DSTATE_f;
/* Switch: '<S834>/Switch' incorporates: /* Switch: '<S834>/Switch' incorporates:
* DataStoreRead: '<S834>/Data Store Read4' * DataStoreRead: '<S834>/Data Store Read4'
@ -11151,7 +11169,7 @@ void HVAC_model_step(void)
* Gain: '<S826>/èç ñåê â ìñ' * Gain: '<S826>/èç ñåê â ìñ'
* RelationalOperator: '<S826>/Relational Operator1' * RelationalOperator: '<S826>/Relational Operator1'
*/ */
if (rtb_dt_dv > (uint16_t)(1000 * Incar_RR)) { if (rtb_dt_f1 > (uint16_t)(1000 * Incar_RR)) {
/* Merge: '<S453>/Merge' incorporates: /* Merge: '<S453>/Merge' incorporates:
* Constant: '<S826>/go to next step' * Constant: '<S826>/go to next step'
*/ */
@ -11375,7 +11393,7 @@ void HVAC_model_step(void)
* DataStoreRead: '<S857>/Data Store Read4' * DataStoreRead: '<S857>/Data Store Read4'
* UnitDelay: '<S857>/t_start_delay_private ' * UnitDelay: '<S857>/t_start_delay_private '
*/ */
rtb_dt_dv = rtDW.t_now - rtDW.t_start_delay_private_DSTATE_jh; rtb_dt_f1 = rtDW.t_now - rtDW.t_start_delay_private_DSTATE_jh;
/* Switch: '<S857>/Switch' incorporates: /* Switch: '<S857>/Switch' incorporates:
* DataStoreRead: '<S857>/Data Store Read4' * DataStoreRead: '<S857>/Data Store Read4'
@ -11399,7 +11417,7 @@ void HVAC_model_step(void)
* Gain: '<S827>/èç ñåê â ìñ' * Gain: '<S827>/èç ñåê â ìñ'
* RelationalOperator: '<S827>/Relational Operator1' * RelationalOperator: '<S827>/Relational Operator1'
*/ */
if (rtb_dt_dv > (uint16_t)(1000 * Incar_RR)) { if (rtb_dt_f1 > (uint16_t)(1000 * Incar_RR)) {
/* Merge: '<S453>/Merge' incorporates: /* Merge: '<S453>/Merge' incorporates:
* Constant: '<S827>/go to next step' * Constant: '<S827>/go to next step'
*/ */
@ -11623,7 +11641,7 @@ void HVAC_model_step(void)
* DataStoreRead: '<S880>/Data Store Read4' * DataStoreRead: '<S880>/Data Store Read4'
* UnitDelay: '<S880>/t_start_delay_private ' * UnitDelay: '<S880>/t_start_delay_private '
*/ */
rtb_dt_dv = rtDW.t_now - rtDW.t_start_delay_private_DSTATE_ed; rtb_dt_f1 = rtDW.t_now - rtDW.t_start_delay_private_DSTATE_ed;
/* MATLAB Function: '<S828>/Time goto from step 1 to step 2 ' incorporates: /* MATLAB Function: '<S828>/Time goto from step 1 to step 2 ' incorporates:
* DataStoreRead: '<S828>/Data Store Read4' * DataStoreRead: '<S828>/Data Store Read4'
@ -11649,7 +11667,7 @@ void HVAC_model_step(void)
* Logic: '<S828>/Logical Operator' * Logic: '<S828>/Logical Operator'
* RelationalOperator: '<S828>/Relational Operator1' * RelationalOperator: '<S828>/Relational Operator1'
*/ */
if ((rtb_dt_dv > (uint16_t)(1000 * Incar_RR)) || rtDW.HI_logic_on) { if ((rtb_dt_f1 > (uint16_t)(1000 * Incar_RR)) || rtDW.HI_logic_on) {
/* Merge: '<S453>/Merge' incorporates: /* Merge: '<S453>/Merge' incorporates:
* Constant: '<S828>/go to next step' * Constant: '<S828>/go to next step'
*/ */
@ -11830,6 +11848,18 @@ void HVAC_model_initialize(void)
rtDW.current_Ambient_Lv_not_empty = false; rtDW.current_Ambient_Lv_not_empty = false;
/* SystemInitialize for IfAction SubSystem: '<S380>/Homing' */ /* SystemInitialize for IfAction SubSystem: '<S380>/Homing' */
/* SystemInitialize for IfAction SubSystem: '<S385>/Switch Case Action Subsystem3' */
/* SystemInitialize for IfAction SubSystem: '<S403>/If Action Subsystem' */
/* Start for DataStoreMemory: '<S418>/Data Store Memory' */
rtDW.Start_timer = 1.0;
/* SystemInitialize for MATLAB Function: '<S418>/MATLAB Function' */
rtDW.t_start_not_empty = false;
rtDW.cond_prev = 0.0;
/* End of SystemInitialize for SubSystem: '<S403>/If Action Subsystem' */
/* End of SystemInitialize for SubSystem: '<S385>/Switch Case Action Subsystem3' */
/* SystemInitialize for Merge: '<S385>/Merge' */ /* SystemInitialize for Merge: '<S385>/Merge' */
rtB.Merge_h1 = 0; rtB.Merge_h1 = 0;

28
HVAC_model.h Executable file → Normal file
View File

@ -3,9 +3,9 @@
* *
* Code generated for Simulink model 'HVAC_model'. * Code generated for Simulink model 'HVAC_model'.
* *
* Model version : 1.815 * Model version : 1.820
* Simulink Coder version : 24.1 (R2024a) 19-Nov-2023 * Simulink Coder version : 24.1 (R2024a) 19-Nov-2023
* C/C++ source code generated on : Fri Apr 17 15:57:38 2026 * C/C++ source code generated on : Tue Apr 21 14:12:53 2026
* *
* Target selection: ert.tlc * Target selection: ert.tlc
* Embedded hardware selection: ARM Compatible->ARM Cortex-M * Embedded hardware selection: ARM Compatible->ARM Cortex-M
@ -99,6 +99,8 @@ typedef struct {
double MODE_RR_passenger; /* '<Root>/Data Store Memory19' */ double MODE_RR_passenger; /* '<Root>/Data Store Memory19' */
double SKIPPED_FIRST_SIMULATION_STEP;/* '<Root>/Data Store Memory64' */ double SKIPPED_FIRST_SIMULATION_STEP;/* '<Root>/Data Store Memory64' */
double start_control_finished_rear; /* '<Root>/SC Rear' */ double start_control_finished_rear; /* '<Root>/SC Rear' */
double Start_timer; /* '<S418>/Data Store Memory' */
double cond_prev; /* '<S418>/MATLAB Function' */
CmdBusADCDataKey ADC_Key_Data_Model; /* '<S2>/Data Store Memory3' */ CmdBusADCDataKey ADC_Key_Data_Model; /* '<S2>/Data Store Memory3' */
uint32_t t_start_delay_private_DSTATE;/* '<S295>/t_start_delay_private ' */ uint32_t t_start_delay_private_DSTATE;/* '<S295>/t_start_delay_private ' */
uint32_t t_start_delay_private_DSTATE_p;/* '<S302>/t_start_delay_private ' */ uint32_t t_start_delay_private_DSTATE_p;/* '<S302>/t_start_delay_private ' */
@ -140,8 +142,8 @@ typedef struct {
uint32_t t_start_delay_private_DSTATE_fm;/* '<S519>/t_start_delay_private ' */ uint32_t t_start_delay_private_DSTATE_fm;/* '<S519>/t_start_delay_private ' */
uint32_t t_start_delay_private_DSTATE_mk;/* '<S508>/t_start_delay_private ' */ uint32_t t_start_delay_private_DSTATE_mk;/* '<S508>/t_start_delay_private ' */
uint32_t t_start_delay_private_DSTATE_pd;/* '<S497>/t_start_delay_private ' */ uint32_t t_start_delay_private_DSTATE_pd;/* '<S497>/t_start_delay_private ' */
uint32_t t_start_delay_private_DSTATE_h;/* '<S423>/t_start_delay_private ' */
uint32_t t_now; /* '<Root>/Data Store Memory5' */ uint32_t t_now; /* '<Root>/Data Store Memory5' */
uint32_t t_start; /* '<S418>/MATLAB Function' */
int16_t MinPositionCh0_private[9]; /* '<S380>/Data Store Memory12' */ int16_t MinPositionCh0_private[9]; /* '<S380>/Data Store Memory12' */
int16_t MaxPositionCh0_private[9]; /* '<S380>/Data Store Memory13' */ int16_t MaxPositionCh0_private[9]; /* '<S380>/Data Store Memory13' */
uint16_t POS_private[9]; /* '<S380>/Data Store Memory3' */ uint16_t POS_private[9]; /* '<S380>/Data Store Memory3' */
@ -169,7 +171,6 @@ typedef struct {
bool Cond_prev_private_DSTATE_fi; /* '<S519>/Cond_prev_private ' */ bool Cond_prev_private_DSTATE_fi; /* '<S519>/Cond_prev_private ' */
bool Cond_prev_private_DSTATE_hs; /* '<S508>/Cond_prev_private ' */ bool Cond_prev_private_DSTATE_hs; /* '<S508>/Cond_prev_private ' */
bool Cond_prev_private_DSTATE_g; /* '<S497>/Cond_prev_private ' */ bool Cond_prev_private_DSTATE_g; /* '<S497>/Cond_prev_private ' */
bool Cond_prev_private_DSTATE_d; /* '<S423>/Cond_prev_private ' */
int8_t stepSig_private; /* '<S380>/Data Store Memory' */ int8_t stepSig_private; /* '<S380>/Data Store Memory' */
int8_t stepHoming_private; /* '<S380>/Data Store Memory17' */ int8_t stepHoming_private; /* '<S380>/Data Store Memory17' */
int8_t step_start_controle_front; /* '<S6>/Data Store Memory' */ int8_t step_start_controle_front; /* '<S6>/Data Store Memory' */
@ -200,6 +201,7 @@ typedef struct {
uint8_t Dtg_logic_RR; /* '<Root>/Data Store Memory58' */ uint8_t Dtg_logic_RR; /* '<Root>/Data Store Memory58' */
uint8_t current_Ambient_Lv; /* '<S7>/Log Ambient Lv' */ uint8_t current_Ambient_Lv; /* '<S7>/Log Ambient Lv' */
bool HI_logic_on; /* '<Root>/Data Store Memory48' */ bool HI_logic_on; /* '<Root>/Data Store Memory48' */
bool t_start_not_empty; /* '<S418>/MATLAB Function' */
bool current_Ambient_Lv_not_empty; /* '<S7>/Log Ambient Lv' */ bool current_Ambient_Lv_not_empty; /* '<S7>/Log Ambient Lv' */
DW_Level3_n Level5_e; /* '<S717>/Level 5' */ DW_Level3_n Level5_e; /* '<S717>/Level 5' */
DW_Level3_n Level4_j; /* '<S717>/Level 4' */ DW_Level3_n Level4_j; /* '<S717>/Level 4' */
@ -779,14 +781,28 @@ extern RT_MODEL *const rtM;
* Block '<S373>/Display' : Unused code path elimination * Block '<S373>/Display' : Unused code path elimination
* Block '<S373>/Display1' : Unused code path elimination * Block '<S373>/Display1' : Unused code path elimination
* Block '<S382>/Display' : Unused code path elimination * Block '<S382>/Display' : Unused code path elimination
* Block '<S383>/Display' : Unused code path elimination
* Block '<S383>/Display1' : Unused code path elimination
* Block '<S383>/Display2' : Unused code path elimination
* Block '<S393>/Display' : Unused code path elimination
* Block '<S384>/Display' : Unused code path elimination
* Block '<S384>/Display1' : Unused code path elimination
* Block '<S384>/Display2' : Unused code path elimination
* Block '<S384>/Display3' : Unused code path elimination
* Block '<S396>/Display' : Unused code path elimination
* Block '<S380>/Display' : Unused code path elimination * Block '<S380>/Display' : Unused code path elimination
* Block '<S380>/Display1' : Unused code path elimination * Block '<S380>/Display1' : Unused code path elimination
* Block '<S380>/Display2' : Unused code path elimination * Block '<S380>/Display2' : Unused code path elimination
* Block '<S399>/Display1' : Unused code path elimination * Block '<S399>/Display1' : Unused code path elimination
* Block '<S385>/Display1' : Unused code path elimination * Block '<S385>/Display1' : Unused code path elimination
* Block '<S408>/Display' : Unused code path elimination
* Block '<S409>/Display' : Unused code path elimination * Block '<S409>/Display' : Unused code path elimination
* Block '<S401>/Display' : Unused code path elimination * Block '<S401>/Display' : Unused code path elimination
* Block '<S401>/Display1' : Unused code path elimination * Block '<S401>/Display1' : Unused code path elimination
* Block '<S402>/Display' : Unused code path elimination
* Block '<S402>/Display1' : Unused code path elimination
* Block '<S402>/Display2' : Unused code path elimination
* Block '<S402>/Display3' : Unused code path elimination
* Block '<S418>/Display' : Unused code path elimination * Block '<S418>/Display' : Unused code path elimination
* Block '<S418>/Display1' : Unused code path elimination * Block '<S418>/Display1' : Unused code path elimination
* Block '<S419>/Display' : Unused code path elimination * Block '<S419>/Display' : Unused code path elimination
@ -1362,8 +1378,8 @@ extern RT_MODEL *const rtM;
* '<S420>' : 'HVAC_model/LIN/CHANEL0/Homing/Switch Case Action Subsystem3/MAX POSITION' * '<S420>' : 'HVAC_model/LIN/CHANEL0/Homing/Switch Case Action Subsystem3/MAX POSITION'
* '<S421>' : 'HVAC_model/LIN/CHANEL0/Homing/Switch Case Action Subsystem3/If Action Subsystem/If Action Subsystem' * '<S421>' : 'HVAC_model/LIN/CHANEL0/Homing/Switch Case Action Subsystem3/If Action Subsystem/If Action Subsystem'
* '<S422>' : 'HVAC_model/LIN/CHANEL0/Homing/Switch Case Action Subsystem3/If Action Subsystem/If Action Subsystem1' * '<S422>' : 'HVAC_model/LIN/CHANEL0/Homing/Switch Case Action Subsystem3/If Action Subsystem/If Action Subsystem1'
* '<S423>' : 'HVAC_model/LIN/CHANEL0/Homing/Switch Case Action Subsystem3/If Action Subsystem/RealTime_Timer' * '<S423>' : 'HVAC_model/LIN/CHANEL0/Homing/Switch Case Action Subsystem3/If Action Subsystem/MATLAB Function'
* '<S424>' : 'HVAC_model/LIN/CHANEL0/Homing/Switch Case Action Subsystem3/If Action Subsystem/RealTime_Timer/MAX POSITION' * '<S424>' : 'HVAC_model/LIN/CHANEL0/Homing/Switch Case Action Subsystem3/If Action Subsystem/MAX POSITION'
* '<S425>' : 'HVAC_model/LIN/CHANEL0/Homing/Switch Case Action Subsystem3/If Action Subsystem1/CAN ERROR' * '<S425>' : 'HVAC_model/LIN/CHANEL0/Homing/Switch Case Action Subsystem3/If Action Subsystem1/CAN ERROR'
* '<S426>' : 'HVAC_model/LIN/CHANEL0/Homing/Switch Case Action Subsystem3/If Action Subsystem1/UDS ERROR' * '<S426>' : 'HVAC_model/LIN/CHANEL0/Homing/Switch Case Action Subsystem3/If Action Subsystem1/UDS ERROR'
* '<S427>' : 'HVAC_model/LIN/CHANEL0/Homing/Switch Case Action Subsystem3/If Action Subsystem1/CAN ERROR/Write ERROR' * '<S427>' : 'HVAC_model/LIN/CHANEL0/Homing/Switch Case Action Subsystem3/If Action Subsystem1/CAN ERROR/Write ERROR'

4
HVAC_model_data.c Executable file → Normal file
View File

@ -3,9 +3,9 @@
* *
* Code generated for Simulink model 'HVAC_model'. * Code generated for Simulink model 'HVAC_model'.
* *
* Model version : 1.815 * Model version : 1.820
* Simulink Coder version : 24.1 (R2024a) 19-Nov-2023 * Simulink Coder version : 24.1 (R2024a) 19-Nov-2023
* C/C++ source code generated on : Fri Apr 17 15:57:38 2026 * C/C++ source code generated on : Tue Apr 21 14:12:53 2026
* *
* Target selection: ert.tlc * Target selection: ert.tlc
* Embedded hardware selection: ARM Compatible->ARM Cortex-M * Embedded hardware selection: ARM Compatible->ARM Cortex-M

4
HVAC_model_private.h Executable file → Normal file
View File

@ -3,9 +3,9 @@
* *
* Code generated for Simulink model 'HVAC_model'. * Code generated for Simulink model 'HVAC_model'.
* *
* Model version : 1.815 * Model version : 1.820
* Simulink Coder version : 24.1 (R2024a) 19-Nov-2023 * Simulink Coder version : 24.1 (R2024a) 19-Nov-2023
* C/C++ source code generated on : Fri Apr 17 15:57:38 2026 * C/C++ source code generated on : Tue Apr 21 14:12:53 2026
* *
* Target selection: ert.tlc * Target selection: ert.tlc
* Embedded hardware selection: ARM Compatible->ARM Cortex-M * Embedded hardware selection: ARM Compatible->ARM Cortex-M

4
HVAC_model_types.h Executable file → Normal file
View File

@ -3,9 +3,9 @@
* *
* Code generated for Simulink model 'HVAC_model'. * Code generated for Simulink model 'HVAC_model'.
* *
* Model version : 1.815 * Model version : 1.820
* Simulink Coder version : 24.1 (R2024a) 19-Nov-2023 * Simulink Coder version : 24.1 (R2024a) 19-Nov-2023
* C/C++ source code generated on : Fri Apr 17 15:57:38 2026 * C/C++ source code generated on : Tue Apr 21 14:12:53 2026
* *
* Target selection: ert.tlc * Target selection: ert.tlc
* Embedded hardware selection: ARM Compatible->ARM Cortex-M * Embedded hardware selection: ARM Compatible->ARM Cortex-M