matlab_23550/Inu/main_matlab/pwm_sim.h
Razvalyaev dde0a37088 Перенос выполненых действий из ветки on_ship
#5 Векторное что-то считает, но:

- без подключения к двигателю формируется вроде корректное трехуровневое напряжение. при подключении не всегда:
	- при порядке фаз CBA, BAC: более-менее синусный ток на втором ПЧ (на первом кривой синус) и трехуровневое напряжение
	- при порядке фаз ABC,: более-менее синусный ток на первом ПЧ (на втором кривой синус), но без трехуровнего напряжения (???)
- при попытке векторного управления двигателем почему-то будто ограничена скважность и она менятся в очень небольшом диапазоне
- скалярное в этой ветке не сделано еще
2025-01-16 16:31:32 +03:00

61 lines
1.4 KiB
C

#include "mcu_wrapper_conf.h"
#ifndef PWM_SIM
#define PWM_SIM
#define UNITED_COUNTER
// Для моделирования Event Manager
// ... Dead-Band Submodule
typedef struct
{
int DtCntPeriod;
int stateDt;
int dtcnt;
int ciA_DT;
int ciB_DT;
}DeadBandSimHandle;
// ... Time-Base Submodule, Counter-Compare Submodule и Event-Trigger Submodule
typedef struct
{
double TxCntPlus;
double TPr;
double tcntAux;
double tcntAuxPrev;
double tcnt;
double cmpA;
double cmpB;
int ciA;
int ciB;
DeadBandSimHandle dtsim;
}TimerSimHandle;
extern TimerSimHandle t1sim;
extern TimerSimHandle t2sim;
extern TimerSimHandle t3sim;
extern TimerSimHandle t4sim;
extern TimerSimHandle t5sim;
extern TimerSimHandle t6sim;
extern TimerSimHandle t7sim;
extern TimerSimHandle t8sim;
extern TimerSimHandle t9sim;
extern TimerSimHandle t10sim;
extern TimerSimHandle t11sim;
extern TimerSimHandle t12sim;
void Simulate_Timers(void);
void Init_Timers(void);
void initSimulateTim(TimerSimHandle* tsim, int period, double step);
void SimulateMainPWM(TimerSimHandle* tsim, int compare);
void SimulateSimplePWM(TimerSimHandle* tsim, int compare);
int simulateTimAndGetCompare(TimerSimHandle* tsim, int compare);
void simulateActionActionQualifierSubmodule(TimerSimHandle* tsim);
void simulateDeadBendSubmodule(TimerSimHandle* tsim);
void simulateTripZoneSubmodule(TimerSimHandle* tsim);
#endif //PWM_SIM