2025-01-13 16:58:59 +03:00
|
|
|
|
/**************************************************************************
|
|
|
|
|
Description: <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
|
|
|
|
|
|
|
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>.<EFBFBD>.
|
|
|
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: 2021.11.08
|
|
|
|
|
**************************************************************************/
|
|
|
|
|
|
2025-01-17 10:19:40 +03:00
|
|
|
|
#include "app_io.h"
|
2025-01-15 11:01:26 +03:00
|
|
|
|
#include "pwm_sim.h"
|
2025-01-13 16:58:59 +03:00
|
|
|
|
|
|
|
|
|
int Unites[UNIT_QUA_UNITS][UNIT_LEN];
|
|
|
|
|
int CAN_timeout[UNIT_QUA];
|
|
|
|
|
RS_DATA_STRUCT rs_a = RS_DATA_STRUCT_DEFAULT, rs_b = RS_DATA_STRUCT_DEFAULT;
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
2025-01-16 16:31:32 +03:00
|
|
|
|
void readInputParameters(const real_T* u) {
|
2025-01-13 16:58:59 +03:00
|
|
|
|
int nn = 0;
|
|
|
|
|
|
2025-01-16 16:31:32 +03:00
|
|
|
|
iq_norm_ADC[0][0] = _IQ(u[nn++] / NORMA_ACP);
|
|
|
|
|
iq_norm_ADC[0][1] = _IQ(u[nn++] / NORMA_ACP);
|
|
|
|
|
iq_norm_ADC[0][2] = _IQ(u[nn++] / NORMA_ACP);
|
|
|
|
|
iq_norm_ADC[0][3] = _IQ(u[nn++] / NORMA_ACP);
|
|
|
|
|
iq_norm_ADC[0][4] = _IQ(u[nn++] / NORMA_ACP);
|
|
|
|
|
iq_norm_ADC[0][5] = _IQ(u[nn++] / NORMA_ACP);
|
|
|
|
|
iq_norm_ADC[0][6] = _IQ(u[nn++] / NORMA_ACP);
|
|
|
|
|
iq_norm_ADC[0][7] = _IQ(u[nn++] / NORMA_ACP);
|
2025-01-13 16:58:59 +03:00
|
|
|
|
|
2025-01-16 16:31:32 +03:00
|
|
|
|
WRotor.iqWRotorCalcBeforeRegul1 = _IQ(u[nn++] / PI2 / NORMA_FROTOR);
|
2025-01-13 16:58:59 +03:00
|
|
|
|
|
|
|
|
|
u[nn++];
|
|
|
|
|
|
|
|
|
|
edrk.Go = u[nn++];
|
|
|
|
|
|
|
|
|
|
u[nn++];
|
|
|
|
|
} //void input_param(unsigned short num, unsigned short val)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void writeOutputParameters(real_T* xD) {
|
2025-01-14 13:26:48 +03:00
|
|
|
|
int nn = 0;
|
|
|
|
|
|
2025-01-16 16:31:32 +03:00
|
|
|
|
//xD[nn++] = t2sim.ciA;
|
|
|
|
|
//xD[nn++] = t1sim.ciA;
|
|
|
|
|
//xD[nn++] = t2sim.ciB;
|
|
|
|
|
//xD[nn++] = t1sim.ciB;
|
|
|
|
|
//
|
|
|
|
|
//xD[nn++] = t4sim.ciA;
|
|
|
|
|
//xD[nn++] = t3sim.ciA;
|
|
|
|
|
//xD[nn++] = t4sim.ciB;
|
|
|
|
|
//xD[nn++] = t3sim.ciB;
|
|
|
|
|
//
|
|
|
|
|
//xD[nn++] = t6sim.ciA;
|
|
|
|
|
//xD[nn++] = t5sim.ciA;
|
|
|
|
|
//xD[nn++] = t6sim.ciB;
|
|
|
|
|
//xD[nn++] = t5sim.ciB;
|
|
|
|
|
|
|
|
|
|
//xD[nn++] = t1sim.ciB;
|
|
|
|
|
//xD[nn++] = t2sim.ciB;
|
|
|
|
|
//xD[nn++] = t1sim.ciA;
|
|
|
|
|
//xD[nn++] = t2sim.ciA;
|
|
|
|
|
|
|
|
|
|
//xD[nn++] = t3sim.ciB;
|
|
|
|
|
//xD[nn++] = t4sim.ciB;
|
|
|
|
|
//xD[nn++] = t3sim.ciA;
|
|
|
|
|
//xD[nn++] = t4sim.ciA;
|
|
|
|
|
//
|
|
|
|
|
//xD[nn++] = t5sim.ciB;
|
|
|
|
|
//xD[nn++] = t6sim.ciB;
|
|
|
|
|
//xD[nn++] = t5sim.ciA;
|
|
|
|
|
//xD[nn++] = t6sim.ciA;
|
|
|
|
|
|
2025-01-17 12:50:59 +03:00
|
|
|
|
xD[nn++] = PWMPhaseA1.pwmOut.ci1A;
|
|
|
|
|
xD[nn++] = PWMPhaseA1.pwmOut.ci2A;
|
|
|
|
|
xD[nn++] = PWMPhaseA1.pwmOut.ci1B;
|
|
|
|
|
xD[nn++] = PWMPhaseA1.pwmOut.ci2B;
|
|
|
|
|
|
|
|
|
|
xD[nn++] = PWMPhaseB1.pwmOut.ci1A;
|
|
|
|
|
xD[nn++] = PWMPhaseB1.pwmOut.ci2A;
|
|
|
|
|
xD[nn++] = PWMPhaseB1.pwmOut.ci1B;
|
|
|
|
|
xD[nn++] = PWMPhaseB1.pwmOut.ci2B;
|
|
|
|
|
|
|
|
|
|
xD[nn++] = PWMPhaseC1.pwmOut.ci1A;
|
|
|
|
|
xD[nn++] = PWMPhaseC1.pwmOut.ci2A;
|
|
|
|
|
xD[nn++] = PWMPhaseC1.pwmOut.ci1B;
|
|
|
|
|
xD[nn++] = PWMPhaseC1.pwmOut.ci2B;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
xD[nn++] = PWMPhaseA2.pwmOut.ci1A;
|
|
|
|
|
xD[nn++] = PWMPhaseA2.pwmOut.ci2A;
|
|
|
|
|
xD[nn++] = PWMPhaseA2.pwmOut.ci1B;
|
|
|
|
|
xD[nn++] = PWMPhaseA2.pwmOut.ci2B;
|
|
|
|
|
|
|
|
|
|
xD[nn++] = PWMPhaseB2.pwmOut.ci1A;
|
|
|
|
|
xD[nn++] = PWMPhaseB2.pwmOut.ci2A;
|
|
|
|
|
xD[nn++] = PWMPhaseB2.pwmOut.ci1B;
|
|
|
|
|
xD[nn++] = PWMPhaseB2.pwmOut.ci2B;
|
|
|
|
|
|
|
|
|
|
xD[nn++] = PWMPhaseC2.pwmOut.ci1A;
|
|
|
|
|
xD[nn++] = PWMPhaseC2.pwmOut.ci2A;
|
|
|
|
|
xD[nn++] = PWMPhaseC2.pwmOut.ci1B;
|
|
|
|
|
xD[nn++] = PWMPhaseC2.pwmOut.ci2B;
|
2025-01-14 13:26:48 +03:00
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
2025-01-14 16:36:57 +03:00
|
|
|
|
xD[nn++] = xpwm_time.Ta0_0;
|
|
|
|
|
xD[nn++] = xpwm_time.Ta0_1;
|
2025-01-16 16:31:32 +03:00
|
|
|
|
xD[nn++] = xpwm_time.Ta1_0;
|
|
|
|
|
xD[nn++] = xpwm_time.Ta1_1;
|
|
|
|
|
|
2025-01-14 16:36:57 +03:00
|
|
|
|
xD[nn++] = xpwm_time.Tb0_0;
|
|
|
|
|
xD[nn++] = xpwm_time.Tb0_1;
|
2025-01-16 16:31:32 +03:00
|
|
|
|
xD[nn++] = xpwm_time.Tb1_0;
|
|
|
|
|
xD[nn++] = xpwm_time.Tb1_1;
|
|
|
|
|
|
2025-01-14 16:36:57 +03:00
|
|
|
|
xD[nn++] = xpwm_time.Tc0_0;
|
|
|
|
|
xD[nn++] = xpwm_time.Tc0_1;
|
2025-01-16 16:31:32 +03:00
|
|
|
|
xD[nn++] = xpwm_time.Tc1_0;
|
|
|
|
|
xD[nn++] = xpwm_time.Tc1_1;
|
2025-01-14 13:26:48 +03:00
|
|
|
|
|
2025-01-13 16:58:59 +03:00
|
|
|
|
}
|