Аналог коммита 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
|
* @file app_includes.h
|
||||||
* @brief Заголовочный файл для оболочки МК.
|
* @brief Заголовочный файл для подключаения заголовочных файлов программы МК.
|
||||||
**************************************************************************
|
|
||||||
@details
|
|
||||||
Главный заголовочный файл для матлаба. Включает дейфайны для S-Function,
|
|
||||||
объявляет базовые функции для симуляции МК и подключает базовые библиотеки:
|
|
||||||
- для симуляции "stm32fxxx_matlab_conf.h"
|
|
||||||
- для S-Function "simstruc.h"
|
|
||||||
- для потоков <process.h>
|
|
||||||
**************************************************************************/
|
**************************************************************************/
|
||||||
#ifndef _APP_INCLUDES_H_
|
#ifndef _APP_INCLUDES_H_
|
||||||
#define _APP_INCLUDES_H_
|
#define _APP_INCLUDES_H_
|
||||||
|
|
||||||
|
#include "app_configs.h"
|
||||||
// Includes
|
// Includes
|
||||||
#include "DSP281x_Device.h"
|
#include "DSP281x_Device.h"
|
||||||
|
#include "math.h"
|
||||||
|
#include "C28x_FPU_FastRTS.h"
|
||||||
|
|
||||||
#include "def.h"
|
|
||||||
|
|
||||||
#include "edrk_main.h"
|
#include "edrk_main.h"
|
||||||
#include "vector.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>.
|
||||||
|
|
||||||
Автор: Улитовский Д.И.
|
<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>: 2021.11.08
|
||||||
**************************************************************************/
|
**************************************************************************/
|
||||||
|
|
||||||
#include "app_io.h"
|
#include "app_io.h"
|
||||||
@ -12,7 +12,7 @@ int Unites[UNIT_QUA_UNITS][UNIT_LEN];
|
|||||||
int CAN_timeout[UNIT_QUA];
|
int CAN_timeout[UNIT_QUA];
|
||||||
RS_DATA_STRUCT rs_a = RS_DATA_STRUCT_DEFAULT, rs_b = RS_DATA_STRUCT_DEFAULT;
|
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) {
|
void readInputParameters(const real_T* u) {
|
||||||
int nn = 0;
|
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][6] = _IQ(u[nn++] / NORMA_ACP);
|
||||||
iq_norm_ADC[0][7] = _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++];
|
u[nn++];
|
||||||
|
|
||||||
@ -99,7 +99,7 @@ void writeOutputParameters(real_T* xD) {
|
|||||||
xD[nn++] = PWMPhaseC2.pwmOut.ci1B;
|
xD[nn++] = PWMPhaseC2.pwmOut.ci1B;
|
||||||
xD[nn++] = PWMPhaseC2.pwmOut.ci2B;
|
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_0;
|
||||||
xD[nn++] = xpwm_time.Ta0_1;
|
xD[nn++] = xpwm_time.Ta0_1;
|
||||||
xD[nn++] = xpwm_time.Ta1_0;
|
xD[nn++] = xpwm_time.Ta1_0;
|
||||||
|
@ -1,15 +1,5 @@
|
|||||||
#include "mcu_wrapper_conf.h"
|
#include "mcu_wrapper_conf.h"
|
||||||
#include "pwm_sim.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);
|
calc_norm_ADC_0(0);
|
||||||
|
|
||||||
|
@ -14,6 +14,23 @@
|
|||||||
#define PWM_PERIOD (FREQ_INTERNAL_GENERATOR_XILINX_TMS / FREQ_PWM)
|
#define PWM_PERIOD (FREQ_INTERNAL_GENERATOR_XILINX_TMS / FREQ_PWM)
|
||||||
#define PWM_TICK_STEP (FREQ_INTERNAL_GENERATOR_XILINX_TMS * hmcu.sSimSampleTime)
|
#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
|
* @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_WIDTH` - размерность выходного вектора S-Function
|
||||||
- `OUT_PORT_NUMB` - количество выходных векторов S-Function
|
- `OUT_PORT_NUMB` - количество выходных векторов S-Function
|
||||||
|
|
||||||
_Note: дефайн `RUN_APP_MAIN_FUNC_THREAD` пока выключен и поток для main() не используется)_
|
_Note: дефайн `RUN_APP_MAIN_FUNC_THREAD` пока выключен и поток для main() не используется_
|
||||||
|
|
||||||
_Note for future: разные вектора можно использовать для разных плат_
|
_Note for future: разные вектора можно использовать для разных плат_
|
||||||
|
|
||||||
@ -60,11 +60,11 @@ _Note for future: разные вектора можно использоват
|
|||||||
Оболочка для программы позволяет имитировать реальный алгоритм программы. Она инициализирует её, запускает необходимые для её работы функции и связывает её с входами/выходами S-Function
|
Оболочка для программы позволяет имитировать реальный алгоритм программы. Она инициализирует её, запускает необходимые для её работы функции и связывает её с входами/выходами S-Function
|
||||||
|
|
||||||
Ниже приведен перечень всех файлов и краткое описание зачем они нужны:
|
Ниже приведен перечень всех файлов и краткое описание зачем они нужны:
|
||||||
- ***app_includes.h***     - Содержит ARM дефайны для компиляции в MSVC.
|
- ***app_includes.h***     - включает все необходимые для симуляции заголовочные файлы программы
|
||||||
- ***app_init.c/.h***      - инициализация программы
|
- ***app_init.c/.h***      - инициализация программы
|
||||||
- ***app_io.c/.h***       - запись/считывание входов/выходов S-Function в программу
|
- ***app_io.c/.h***       - запись/считывание входов/выходов S-Function в программу
|
||||||
- ***app_wrapper.c/.h***    - вызов функций из программы и создание заглушек для ненужных функций
|
- ***app_wrapper.c/.h***    - вызов функций из программы и создание заглушек для ненужных функций
|
||||||
- ***def.h***          - дефайны для симуляции программы в симулинке (осталось от улитковского)
|
- ***app_configs.h***      - пользовательские конфигурации программы для симулинка
|
||||||
|
|
||||||
Также в папке ***\app_wrapper\device_support*** находяться стандартные библиотеки для TMS, но переделанные под компилятор MSVC (удален `volatile`, добавлены заглушки для `interrupt`, `asm`, `cregister`, добавлен код для симуляции IQlib).
|
Также в папке ***\app_wrapper\device_support*** находяться стандартные библиотеки для TMS, но переделанные под компилятор MSVC (удален `volatile`, добавлены заглушки для `interrupt`, `asm`, `cregister`, добавлен код для симуляции IQlib).
|
||||||
|
|
||||||
@ -80,8 +80,8 @@ _Note for future: разные вектора можно использоват
|
|||||||
###### pwm_sim
|
###### pwm_sim
|
||||||
***pwm_sim.c/.h*** - симуляция ШИМ
|
***pwm_sim.c/.h*** - симуляция ШИМ
|
||||||
Поддерживает два режимы формирования ШИМ:
|
Поддерживает два режимы формирования ШИМ:
|
||||||
- для каждого таймера отдельно (PWM_SIMULATION_MODE_REGULAR_PWM)
|
- `PWM_SIMULATION_MODE_REGULAR_PWM` - формирование ШИМ для каждого таймера отдельно
|
||||||
- через линии ТК для всей фазы разом (PWM_SIMULATION_MODE_TK_LINES).
|
- `PWM_SIMULATION_MODE_TK_LINES` - через линии ТК для всей фазы разом
|
||||||
|
|
||||||
|
|
||||||
## Инструкция
|
## Инструкция
|
||||||
|
Loading…
Reference in New Issue
Block a user