From 3b5b9b86f72a822d2ca2041f3793bc0c9d92ded2 Mon Sep 17 00:00:00 2001 From: Razvalyaev Date: Mon, 20 Jan 2025 10:45:47 +0300 Subject: [PATCH] =?UTF-8?q?#5=20=D0=A0=D0=B0=D0=B1=D0=BE=D1=82=D0=B0=D0=B5?= =?UTF-8?q?=D1=82=20=D0=B8=20=D0=B2=D0=B5=D0=BA=D1=82=D0=BE=D1=80=D0=BD?= =?UTF-8?q?=D0=BE=D0=B5=20=D0=B8=20=D1=81=D0=BA=D0=B0=D0=BB=D1=8F=D1=80?= =?UTF-8?q?=D0=BD=D0=BE=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Видимо была проблема в измерениях с двигателя, они принимались непонятно в каком формате. Сейчас сделан модуль АЦП, который все правильно преобразует --- Inu/MCU.c | 4 +- Inu/app_wrapper/app_init.c | 6 +-- Inu/app_wrapper/app_io.c | 22 ++++++----- Inu/mcu_wrapper.c | 13 ++++--- Inu/mcu_wrapper_conf.h | 6 +-- Inu/run_mex.bat | 3 +- Inu/xilinx_wrapper/adc_sim.c | 73 ++++++++++++++++++++++++++++++++++- Inu/xilinx_wrapper/adc_sim.h | 64 +++++++++++++++++++++++++++++- inu_23550.slx | Bin 86465 -> 85840 bytes 9 files changed, 165 insertions(+), 26 deletions(-) diff --git a/Inu/MCU.c b/Inu/MCU.c index 6cca00c..62c97ae 100644 --- a/Inu/MCU.c +++ b/Inu/MCU.c @@ -152,7 +152,7 @@ static void mdlInitializeSizes(SimStruct *S) */ static void mdlStart(SimStruct *S) { - SIM_Initialize_Simulation(); + SIM_Initialize_Simulation(S); } #endif // MDL_START @@ -187,7 +187,7 @@ static void mdlTerminate(SimStruct *S) hmcu.fMCU_Stop = 1; ResumeThread(hmcu.hMCUThread); WaitForSingleObject(hmcu.hMCUThread, 10000); - SIM_deInitialize_Simulation(); + SIM_deInitialize_Simulation(S); mexUnlock(); } diff --git a/Inu/app_wrapper/app_init.c b/Inu/app_wrapper/app_init.c index 0087c45..a91845d 100644 --- a/Inu/app_wrapper/app_init.c +++ b/Inu/app_wrapper/app_init.c @@ -41,11 +41,11 @@ void app_init(void) { edrk.zadanie.iq_ZadanieU_Charge = _IQ(2500 / NORMA_ACP); edrk.temper_limit_koeffs.sum_limit = _IQ(1); simple_scalar1.fzad_add_max = _IQ(FZAD_ADD_MAX); - //edrk.Mode_ScalarVectorUFConst = ALG_MODE_SCALAR_OBOROTS; - edrk.Mode_ScalarVectorUFConst = ALG_MODE_FOC_OBOROTS; + edrk.Mode_ScalarVectorUFConst = ALG_MODE_SCALAR_OBOROTS; + //edrk.Mode_ScalarVectorUFConst = ALG_MODE_FOC_OBOROTS; edrk.zadanie.iq_power_zad = _IQ(1); - edrk.zadanie.iq_oborots_zad_hz = _IQ(0.5); + edrk.zadanie.iq_oborots_zad_hz = _IQ(1); edrk.MasterSlave = MODE_MASTER; edrk.master_theta; diff --git a/Inu/app_wrapper/app_io.c b/Inu/app_wrapper/app_io.c index 901fc28..b4ac3c8 100644 --- a/Inu/app_wrapper/app_io.c +++ b/Inu/app_wrapper/app_io.c @@ -7,6 +7,7 @@ #include "app_io.h" #include "pwm_sim.h" +#include "adc_sim.h" int Unites[UNIT_QUA_UNITS][UNIT_LEN]; int CAN_timeout[UNIT_QUA]; @@ -14,17 +15,17 @@ 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); + iq_norm_ADC[0][0] = _IQ(AdcSim.udc1.adc_val); + iq_norm_ADC[0][1] = _IQ(AdcSim.udc2.adc_val); + iq_norm_ADC[0][2] = _IQ(AdcSim.ia1.adc_val); + iq_norm_ADC[0][3] = _IQ(AdcSim.ib1.adc_val); + iq_norm_ADC[0][4] = _IQ(AdcSim.ic1.adc_val); + iq_norm_ADC[0][5] = _IQ(AdcSim.ia2.adc_val); + iq_norm_ADC[0][6] = _IQ(AdcSim.ib2.adc_val); + iq_norm_ADC[0][7] = _IQ(AdcSim.ic2.adc_val); + int nn = 8; WRotor.iqWRotorCalcBeforeRegul1 = _IQ(u[nn++] / (PI*2) / NORMA_FROTOR); u[nn++]; @@ -32,6 +33,9 @@ void readInputParameters(const real_T* u) { edrk.Go = u[nn++]; u[nn++]; + + edrk.zadanie.iq_power_zad = _IQmpy(_IQ(u[nn]), (edrk.zadanie.rmp_powers_zad.RampHighLimit)); + edrk.zadanie.iq_oborots_zad_hz = _IQmpy(_IQ(u[nn++]), (edrk.zadanie.rmp_oborots_zad_hz.RampHighLimit)); } //void input_param(unsigned short num, unsigned short val) diff --git a/Inu/mcu_wrapper.c b/Inu/mcu_wrapper.c index 994f0a8..e968d62 100644 --- a/Inu/mcu_wrapper.c +++ b/Inu/mcu_wrapper.c @@ -10,6 +10,7 @@ #include "app_init.h" #include "app_io.h" #include "pwm_sim.h" +#include "adc_sim.h" /** * @addtogroup WRAPPER_CONF @@ -59,7 +60,7 @@ void MCU_Step_Simulation(SimStruct* S, time_T time) MCU_readInputs(S); // считывание портов - MCU_Periph_Simulation(); // simulate peripheral + MCU_Periph_Simulation(S); // simulate peripheral #ifdef RUN_APP_MAIN_FUNC_THREAD ResumeThread(hmcu.hMCUThread); @@ -77,8 +78,9 @@ void MCU_Step_Simulation(SimStruct* S, time_T time) * @brief Симуляция периферии МК * @details Пользовательский код, который симулирует работу периферии МК. */ -void MCU_Periph_Simulation(void) +void MCU_Periph_Simulation(SimStruct* S) { + Simulate_ADC(S); Simulate_PWM(); } @@ -122,7 +124,7 @@ void MCU_writeOutputs(SimStruct* S) * @details Пользовательский код, который создает поток для приложения МК и настраивает симулятор МК для симуляции. */ -void SIM_Initialize_Simulation(void) +void SIM_Initialize_Simulation(SimStruct* S) { #ifdef RUN_APP_MAIN_FUNC_THREAD // инициализация потока, который будет выполнять код МК @@ -130,8 +132,9 @@ void SIM_Initialize_Simulation(void) #endif //RUN_APP_MAIN_FUNC_THREAD /* user initialization */ - Init_PWM_Simulation(); app_init(); + Init_ADC_Simulation(); + Init_PWM_Simulation(); /* clock step initialization */ hmcu.sSystemClock_step = MCU_CORE_CLOCK * hmcu.sSimSampleTime; // set system clock step @@ -141,7 +144,7 @@ void SIM_Initialize_Simulation(void) * @brief Деинициализация симуляции МК. * @details Пользовательский код, который будет очищать все структуры после окончания симуляции. */ -void SIM_deInitialize_Simulation(void) +void SIM_deInitialize_Simulation(SimStruct* S) { //// simulate structures of peripheral deinitialization //deInitialize_Periph_Sim(); diff --git a/Inu/mcu_wrapper_conf.h b/Inu/mcu_wrapper_conf.h index 7ef62bd..8ea4aa8 100644 --- a/Inu/mcu_wrapper_conf.h +++ b/Inu/mcu_wrapper_conf.h @@ -142,13 +142,13 @@ extern SIM__MCUHandleTypeDef hmcu; // extern для видимос void MCU_Step_Simulation(SimStruct *S, time_T time); /* MCU peripheral simulation */ -void MCU_Periph_Simulation(void); +void MCU_Periph_Simulation(SimStruct* S); /* Initialize MCU simulation */ -void SIM_Initialize_Simulation(void); +void SIM_Initialize_Simulation(SimStruct* S); /* Deinitialize MCU simulation */ -void SIM_deInitialize_Simulation(void); +void SIM_deInitialize_Simulation(SimStruct* S); /* Read inputs S-function */ void MCU_readInputs(SimStruct* S); diff --git a/Inu/run_mex.bat b/Inu/run_mex.bat index 02a7494..8c4bc70 100644 --- a/Inu/run_mex.bat +++ b/Inu/run_mex.bat @@ -62,7 +62,8 @@ set code_WRAPPER= .\Inu\MCU.c^ .\Inu\app_wrapper\app_init.c^ .\Inu\app_wrapper\app_io.c^ .\Inu\app_wrapper\app_wrapper.c^ - .\Inu\xilinx_wrapper\pwm_sim.c + .\Inu\xilinx_wrapper\pwm_sim.c^ + .\Inu\xilinx_wrapper\adc_sim.c ::------------------------------------------------------------------------- diff --git a/Inu/xilinx_wrapper/adc_sim.c b/Inu/xilinx_wrapper/adc_sim.c index ef81c81..1f2cfea 100644 --- a/Inu/xilinx_wrapper/adc_sim.c +++ b/Inu/xilinx_wrapper/adc_sim.c @@ -1,3 +1,74 @@ #include "adc_sim.h" -AdcSimHandle adcsim; +AdcSimHandle AdcSim; + + +void Simulate_ADC(SimStruct* S) +{ + real_T* IN = ssGetInputPortRealSignal(S, 0); + + adcMeasure(&AdcSim.Measure, IN, 0); + + adcConvert(&AdcSim.convertion, &AdcSim.udc1, AdcSim.Measure.udc1, 0); + adcConvert(&AdcSim.convertion, &AdcSim.udc2, AdcSim.Measure.udc2, 0); + adcConvert(&AdcSim.convertion, &AdcSim.ia1, AdcSim.Measure.ia1, 0); + adcConvert(&AdcSim.convertion, &AdcSim.ib1, AdcSim.Measure.ib1, 0); + adcConvert(&AdcSim.convertion, &AdcSim.ic1, AdcSim.Measure.ic1, 0); + adcConvert(&AdcSim.convertion, &AdcSim.ia2, AdcSim.Measure.ia2, 0); + adcConvert(&AdcSim.convertion, &AdcSim.ib2, AdcSim.Measure.ib2, 0); + adcConvert(&AdcSim.convertion, &AdcSim.ic2, AdcSim.Measure.ic2, 0); +} + +void Init_ADC_Simulation() +{ + adcInitConvertion(&AdcSim.convertion, NORMA_ACP, 2.5, 4096); + adcInitMeasure(&AdcSim.udc1, K_LEM_ADC[0], R_ADC[0], DEFAULT_ZERO_ADC); + adcInitMeasure(&AdcSim.udc2, K_LEM_ADC[1], R_ADC[1], DEFAULT_ZERO_ADC); + adcInitMeasure(&AdcSim.ia1, K_LEM_ADC[2], R_ADC[2], DEFAULT_ZERO_ADC); + adcInitMeasure(&AdcSim.ib1, K_LEM_ADC[3], R_ADC[3], DEFAULT_ZERO_ADC); + adcInitMeasure(&AdcSim.ic1, K_LEM_ADC[4], R_ADC[4], DEFAULT_ZERO_ADC); + adcInitMeasure(&AdcSim.ia2, K_LEM_ADC[5], R_ADC[5], DEFAULT_ZERO_ADC); + adcInitMeasure(&AdcSim.ib2, K_LEM_ADC[6], R_ADC[6], DEFAULT_ZERO_ADC); + adcInitMeasure(&AdcSim.ic2, K_LEM_ADC[7], R_ADC[7], DEFAULT_ZERO_ADC); + +} + +void adcInitConvertion(AdcConvertionHandle* hconv, int norma_adc, double adc_amplitude, int adc_bit_depth) +{ + hconv->norma_adc = norma_adc; + hconv->adc_amplitude = adc_amplitude; + hconv->adc_bit_depth = adc_bit_depth; +} + +void adcInitMeasure(AdcMeasureHandle* hmeasure, int k_lem_adc, int r_adc, int offset) +{ + hmeasure->k_lem_adc = k_lem_adc; + hmeasure->r_adc = r_adc; + hmeasure->offset = offset; +} + +void adcMeasure(AdcRealMeasureHandle *hrmeasure, const real_T* u, int startind) +{ + hrmeasure->udc1 = u[startind++]; + hrmeasure->udc2 = u[startind++]; + hrmeasure->ia1 = u[startind++]; + hrmeasure->ib1 = u[startind++]; + hrmeasure->ic1 = u[startind++]; + hrmeasure->ia2 = u[startind++]; + hrmeasure->ib2 = u[startind++]; + hrmeasure->ic2 = u[startind++]; +} + +void adcConvert(AdcConvertionHandle* hconv, AdcMeasureHandle* hmeasure, double realMeasure, double MeasureSatur) +{ + if (MeasureSatur != 0) + { + if (realMeasure > MeasureSatur) + realMeasure = MeasureSatur; + else if (realMeasure < -MeasureSatur) + realMeasure = -MeasureSatur; + } + // AdcMirror.ADCRESULT0 = (unsigned short)(realMeasure/MeasureSatur*2048. + (float)offset.Udc1); + hmeasure->adc_val = + (unsigned short)(realMeasure / hmeasure->k_lem_adc * hmeasure->r_adc / hconv->norma_adc / hconv->adc_amplitude * hconv->adc_bit_depth + (float)hmeasure->offset); +} \ No newline at end of file diff --git a/Inu/xilinx_wrapper/adc_sim.h b/Inu/xilinx_wrapper/adc_sim.h index 03b98a2..f4ea857 100644 --- a/Inu/xilinx_wrapper/adc_sim.h +++ b/Inu/xilinx_wrapper/adc_sim.h @@ -1,5 +1,7 @@ -#ifndef PWM_SIM -#define PWM_SIM +#include "mcu_wrapper_conf.h" + +#ifndef ADC_SIM +#define ADC_SIM // ADC typedef struct @@ -7,6 +9,64 @@ typedef struct int tAdc; int Tadc; int nAdc; + + int norma_adc; + double adc_amplitude; + int adc_bit_depth; +}AdcConvertionHandle; + +// +typedef struct +{ + double udc1; + double udc2; + double ia1; + double ib1; + double ic1; + double ia2; + double ib2; + double ic2; + double wm; +}AdcRealMeasureHandle; + + +// +typedef struct +{ + int adc_val; + + int r_adc; + int k_lem_adc; + int offset; + +}AdcMeasureHandle; + + +typedef struct +{ + AdcConvertionHandle convertion; + AdcRealMeasureHandle Measure; + AdcMeasureHandle udc1; + AdcMeasureHandle udc2; + AdcMeasureHandle ia1; + AdcMeasureHandle ib1; + AdcMeasureHandle ic1; + AdcMeasureHandle ia2; + AdcMeasureHandle ib2; + AdcMeasureHandle ic2; + AdcMeasureHandle wm; }AdcSimHandle; +AdcSimHandle AdcSim; + + + +void Simulate_ADC(SimStruct* S); +void Init_ADC_Simulation(); + +void adcInitConvertion(AdcConvertionHandle* hconv, int norma_adc, int adc_amplitude, int adc_bit_depth); +void adcInitMeasure(AdcMeasureHandle* hmeasure, int k_lem_adc, int r_adc, int offset); + +void adcMeasure(AdcRealMeasureHandle* hrmeasure, const real_T* u, int startind); +void adcConvert(AdcConvertionHandle* hconv, AdcMeasureHandle* hmeasure, double realMeasure, double MeasureSatur); #endif //PWM_SIM diff --git a/inu_23550.slx b/inu_23550.slx index 0be3b616cc2f5c21b1078f250a87e624fd7a8d2a..5f1aba396d7a364bc6b6419fdb775e4ee6d57a96 100644 GIT binary patch delta 19800 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 a-x2dP1S0y!3a~n0x+QR!wZ`zrul)~cQRC$R delta 20395 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 wiBb`Tzg`