matlab_23550/Inu/Src/main_matlab/param.c
Razvalyaev 4de878ee68 #4 Добавлен модуль для формирования ШИМ
#3 Добавлена запись ШИМ в выходы SFunction

Алгоритм тот же, что и раньше просто оптимизирован в структуры и функции. Вроде даже что-то формирует, но не совсем понятно что. Надо дальше разбираться
2025-01-14 13:26:48 +03:00

116 lines
2.7 KiB
C

/**************************************************************************
Description: Ôóíêöèè äëÿ ïðè¸ìà è âûäà÷è ïàðàìåòðîâ.
Àâòîð: Óëèòîâñêèé Ä.È.
Äàòà ïîñëåäíåãî îáíîâëåíèÿ: 2021.11.08
**************************************************************************/
#include "param.h"
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;
// Èçìåíÿåò çíà÷åíèå ïàðàìåòðà
void readInputParameters(const real_T *u) {
int nn = 0;
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);
WRotor.iqWRotorSumFilter = _IQ(u[nn++] / PI2 / NORMA_FROTOR);
u[nn++];
edrk.Go = u[nn++];
u[nn++];
edrk.Mode_ScalarVectorUFConst = ALG_MODE_FOC_OBOROTS;
edrk.zadanie.iq_power_zad_rmp = _IQ(u[nn++]);
edrk.zadanie.iq_oborots_zad_hz_rmp = _IQ(u[nn++]);
edrk.MasterSlave = MODE_MASTER;
edrk.master_theta;
edrk.master_Iq;
edrk.iq_power_kw_another_bs;
edrk.tetta_to_slave;
edrk.Iq_to_slave;
edrk.P_to_master;
uf_alg.winding_displacement_bs1;
} //void input_param(unsigned short num, unsigned short val)
void writeOutputParameters(real_T* xD) {
int nn = 0;
xD[nn++] = t1sim.ciA;
xD[nn++] = t2sim.ciA;
xD[nn++] = t1sim.ciB;
xD[nn++] = t2sim.ciB;
xD[nn++] = t3sim.ciA;
xD[nn++] = t4sim.ciA;
xD[nn++] = t3sim.ciB;
xD[nn++] = t4sim.ciB;
xD[nn++] = t5sim.ciA;
xD[nn++] = t6sim.ciA;
xD[nn++] = t5sim.ciB;
xD[nn++] = t6sim.ciB;
xD[nn++] = t7sim.ciA;
xD[nn++] = t8sim.ciA;
xD[nn++] = t7sim.ciB;
xD[nn++] = t8sim.ciB;
xD[nn++] = t9sim.ciA;
xD[nn++] = t10sim.ciA;
xD[nn++] = t9sim.ciB;
xD[nn++] = t10sim.ciB;
xD[nn++] = t11sim.ciA;
xD[nn++] = t12sim.ciA;
xD[nn++] = t11sim.ciB;
xD[nn++] = t12sim.ciB;
// Òîëüêî äëÿ ïðîñìîòðà
xD[nn++] = _IQtoF(0);
xD[nn++] = _IQtoF(0);
xD[nn++] = 0;
xD[nn++] = 0;
xD[nn++] = 0;
xD[nn++] = 0;
xD[nn++] = 0;
xD[nn++] = 0;
xD[nn++] = _IQtoF(0);//rs.wmZ;
xD[nn++] = _IQtoF(0) * NORMA_FROTOR * 60.0 / N_BAZ;//csp.wmLimZi;
xD[nn++] = 0;///P_NOM;
xD[nn++] = 0;///P_NOM;
xD[nn++] = 0;///P_NOM;
xD[nn++] = _IQtoF(vect_control.iqId2);//_IQtoF(vect_control.iqPzad);
xD[nn++] = _IQtoF(vect_control.iqIq2);// * NORMA_ACP;
xD[nn++] = _IQtoF(vect_control.iqId1);//_IQtoF(vect_control.iqUqCompensation1);//
xD[nn++] = _IQtoF(vect_control.iqIq1);
xD[nn++] = _IQtoF(vect_control.Iq_zad1);
xD[nn++] = _IQtoF(vect_control.Id_zad1);//iqZ;
xD[nn++] = 0;
xD[nn++] = xpwm_time.Ta0_0;
xD[nn++] = xpwm_time.Ta0_1;
}