Аналог коммита 654e0cf240 для этой ветки

#7 бля, надо чет делать с этим, слишком запарно постоянно синхронизировать две ветки...
This commit is contained in:
Razvalyaev 2025-01-19 23:14:51 +03:00
parent 334dc21e79
commit 2be534e35e
6 changed files with 56 additions and 31 deletions

View File

@ -0,0 +1,23 @@
/**************************************************************************
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
**************************************************************************/
#ifndef DEF
#define DEF
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> (30 <20><><EFBFBD><EFBFBD>.)
#define SHIFT
#define SIMULINK_SEQUENCE V_PWM24_PHASE_SEQ_NORMAL_ABC
/* V_PWM24_PHASE_SEQ_NORMAL_ABC, - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
V_PWM24_PHASE_SEQ_NORMAL_BCA, - <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
V_PWM24_PHASE_SEQ_NORMAL_CAB, - <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
V_PWM24_PHASE_SEQ_REVERS_ACB, - <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
V_PWM24_PHASE_SEQ_REVERS_CBA, - <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
V_PWM24_PHASE_SEQ_REVERS_BAC - <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
#endif //DEF

View File

@ -1,22 +1,17 @@
/**
**************************************************************************
* @file app_includes.h
* @brief Заголовочный файл для оболочки МК.
**************************************************************************
@details
Главный заголовочный файл для матлаба. Включает дейфайны для S-Function,
объявляет базовые функции для симуляции МК и подключает базовые библиотеки:
- для симуляции "stm32fxxx_matlab_conf.h"
- для S-Function "simstruc.h"
- для потоков <process.h>
* @brief Заголовочный файл для подключаения заголовочных файлов программы МК.
**************************************************************************/
#ifndef _APP_INCLUDES_H_
#define _APP_INCLUDES_H_
#include "app_configs.h"
// Includes
#include "DSP281x_Device.h"
#include "math.h"
#include "C28x_FPU_FastRTS.h"
#include "def.h"
#include "edrk_main.h"
#include "vector.h"

View File

@ -1,8 +1,8 @@
/**************************************************************************
Description: Функции для приёма и выдачи параметров.
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>.
Автор: Улитовский Д.И.
Дата последнего обновления: 2021.11.08
<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
**************************************************************************/
#include "app_io.h"
@ -12,7 +12,7 @@ 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;
// Изменяет значение параметра
// <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
void readInputParameters(const real_T* u) {
int nn = 0;
@ -25,7 +25,7 @@ void readInputParameters(const real_T* u) {
iq_norm_ADC[0][6] = _IQ(u[nn++] / NORMA_ACP);
iq_norm_ADC[0][7] = _IQ(u[nn++] / NORMA_ACP);
WRotor.iqWRotorCalcBeforeRegul1 = _IQ(u[nn++] / PI2 / NORMA_FROTOR);
WRotor.iqWRotorCalcBeforeRegul1 = _IQ(u[nn++] / (PI*2) / NORMA_FROTOR);
u[nn++];
@ -99,7 +99,7 @@ void writeOutputParameters(real_T* xD) {
xD[nn++] = PWMPhaseC2.pwmOut.ci1B;
xD[nn++] = PWMPhaseC2.pwmOut.ci2B;
// Только для просмотра
// <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
xD[nn++] = xpwm_time.Ta0_0;
xD[nn++] = xpwm_time.Ta0_1;
xD[nn++] = xpwm_time.Ta1_0;

View File

@ -1,15 +1,5 @@
#include "mcu_wrapper_conf.h"
#include "pwm_sim.h"
//#include "edrk_main.h"
//#include "vector.h"
//#include "vector_control.h"
//
//#include "xp_project.h"
//#include "xp_write_xpwm_time.h"
//#include "edrk_main.h"
//#include "vector.h"
//#include "vector_control.h"
//#include "v_rotor.h"
@ -51,7 +41,7 @@ void mcu_simulate_step(void)
}
ramp_all_zadanie(0); // òóò âñå ïî øòàòíîìó
ramp_all_zadanie(0); // <EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
calc_norm_ADC_0(0);

View File

@ -14,6 +14,23 @@
#define PWM_PERIOD (FREQ_INTERNAL_GENERATOR_XILINX_TMS / FREQ_PWM)
#define PWM_TICK_STEP (FREQ_INTERNAL_GENERATOR_XILINX_TMS * hmcu.sSimSampleTime)
/* ОТ УЛИТКОВСКОГО (не используется) */
// период ШИМ, c
#define T_PWM 2220e-6 //F_PWM = 450 Гц
//#define T_PWM 6000e-6 //F_PWM = 166.7 Гц
// период вызова основной программы, с
#define TY (T_PWM*0.5)
// "мертвое время", с
#define DT 30e-6
//#define DT 60e-6
// Time-Base Period Register, ед. счётчика таймера
#define T1_PRD (FTBCLK*T_PWM*0.5)
// максимальное значение амплитуды напряжения управления устанавливаем так,
// чтобы минимальная ширина импульса была 10 мкс, ед. счётчика таймера
#define Y_LIM (T1_PRD - (DT + 10e-6)*FTBCLK)
// Для моделирования ШИМ
/**
* @brief 3lvl PWM One Phase Simulation handle

View File

@ -52,7 +52,7 @@ S-Function работает особым образом: на шаге `n` он
- `OUT_PORT_WIDTH` - размерность выходного вектора S-Function
- `OUT_PORT_NUMB` - количество выходных векторов S-Function
_Note: дефайн `RUN_APP_MAIN_FUNC_THREAD` пока выключен и поток для main() не используется)_
_Note: дефайн `RUN_APP_MAIN_FUNC_THREAD` пока выключен и поток для main() не используется_
_Note for future: разные вектора можно использовать для разных плат_
@ -60,11 +60,11 @@ _Note for future: разные вектора можно использоват
Оболочка для программы позволяет имитировать реальный алгоритм программы. Она инициализирует её, запускает необходимые для её работы функции и связывает её с входами/выходами S-Function
Ниже приведен перечень всех файлов и краткое описание зачем они нужны:
- ***app_includes.h*** &emsp;&emsp;&emsp; - Содержит ARM дефайны для компиляции в MSVC.
- ***app_includes.h*** &emsp;&emsp;&emsp; - включает все необходимые для симуляции заголовочные файлы программы
- ***app_init.c/.h*** &emsp;&emsp;&emsp;&emsp; - инициализация программы
- ***app_io.c/.h*** &nbsp;&ensp;&emsp;&emsp;&emsp;&emsp; - запись/считывание входов/выходов S-Function в программу
- ***app_wrapper.c/.h*** &nbsp;&nbsp;&ensp;&emsp; - вызов функций из программы и создание заглушек для ненужных функций
- ***def.h*** &ensp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp; - дефайны для симуляции программы в симулинке (осталось от улитковского)
- ***app_configs.h*** &ensp;&emsp;&emsp;&emsp; - пользовательские конфигурации программы для симулинка
Также в папке ***\app_wrapper\device_support*** находяться стандартные библиотеки для TMS, но переделанные под компилятор MSVC (удален `volatile`, добавлены заглушки для `interrupt`, `asm`, `cregister`, добавлен код для симуляции IQlib).
@ -80,8 +80,8 @@ _Note for future: разные вектора можно использоват
###### pwm_sim
***pwm_sim.c/.h*** - симуляция ШИМ
Поддерживает два режимы формирования ШИМ:
- для каждого таймера отдельно (PWM_SIMULATION_MODE_REGULAR_PWM)
- через линии ТК для всей фазы разом (PWM_SIMULATION_MODE_TK_LINES).
- `PWM_SIMULATION_MODE_REGULAR_PWM` - формирование ШИМ для каждого таймера отдельно
- `PWM_SIMULATION_MODE_TK_LINES` - через линии ТК для всей фазы разом
## Инструкция