Аналог коммита 654e0cf240
для этой ветки
#7 бля, надо чет делать с этим, слишком запарно постоянно синхронизировать две ветки...
This commit is contained in:
parent
334dc21e79
commit
2be534e35e
23
Inu/app_wrapper/app_configs.h
Normal file
23
Inu/app_wrapper/app_configs.h
Normal 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
|
@ -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"
|
||||
|
@ -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;
|
||||
|
@ -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);
|
||||
|
||||
|
@ -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
|
||||
|
10
README.md
10
README.md
@ -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***     - Содержит ARM дефайны для компиляции в MSVC.
|
||||
- ***app_includes.h***     - включает все необходимые для симуляции заголовочные файлы программы
|
||||
- ***app_init.c/.h***      - инициализация программы
|
||||
- ***app_io.c/.h***       - запись/считывание входов/выходов S-Function в программу
|
||||
- ***app_wrapper.c/.h***    - вызов функций из программы и создание заглушек для ненужных функций
|
||||
- ***def.h***          - дефайны для симуляции программы в симулинке (осталось от улитковского)
|
||||
- ***app_configs.h***      - пользовательские конфигурации программы для симулинка
|
||||
|
||||
Также в папке ***\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` - через линии ТК для всей фазы разом
|
||||
|
||||
|
||||
## Инструкция
|
||||
|
Loading…
Reference in New Issue
Block a user