Рефакторинг и фиксы
Вроде сделал управление для трехфазной сети без нулевого провода. В матлабе запускается, но токи странные и регулятор не доделан нормально
This commit is contained in:
@@ -23,7 +23,7 @@
|
||||
*/
|
||||
|
||||
#define UPP_DISABLE_ERROR_BLOCK ///< Отключить блокировку УПП при ошибках
|
||||
#define UPP_SIMULATE_I ///< Симулировт токи (Iref/2) а не брать с АЦП
|
||||
//#define UPP_SIMULATE_I ///< Симулировт токи (Iref/2) а не брать с АЦП
|
||||
#define UPP_DISABLE_PROTECT_BOARDPOWER ///< Отключить проверки питания плат (+24, +5 В)
|
||||
#define UPP_DISABLE_PROTECT_LOSS_PHASE ///< Отключить проверки на потерянные фазы
|
||||
|
||||
@@ -41,12 +41,13 @@
|
||||
* @{
|
||||
*/
|
||||
|
||||
/* Периоды обновления всякого */
|
||||
#define PM_ADC_PERIOD_US 25 ///< Период опроса АЦП в мкс
|
||||
#define PM_SLOW_PERIOD_US 500 ///< Период обновления медленных расчетов в мкс (чтобы делилось на @ref PM_ADC_PERIOD_US)
|
||||
/* Периоды обновления всякого */
|
||||
#define PM_FAST_PERIOD_US 25 ///< Период обновления быстрых расчетов в мкс (АЦП, пересечение нуля, ШИМ)
|
||||
#define PM_SLOW_PERIOD_US 500 ///< Период обновления медленных расчетов в мкс (сглаженные и действующие значения, ПИД угла, ошибки)
|
||||
#define PM_TEMP_SLOW_PERIOD_MS 1000 ///< Период обновлениия (фильтрации) датчиков температуры в мс
|
||||
#define PM_F_SLOW_PERIOD_MS 40 ///< Период обновления (фильтрации) частоты в мс
|
||||
#define UPP_INIT_BEFORE_READY_MS 2000 ///< Сколько сканировать сеть, перед выставлением состояния готовности
|
||||
#define UPP_HALFWAVE_PERIOD 10 ///< Период полуволны. От него будет рассчитываться углы от 0 до 180 градусов
|
||||
|
||||
/* Частоты таймеров в МГц*/
|
||||
#define PWM_TIM1_FREQ_MHZ 180 ///< Частота тактирования таймера ШИМ (1-4 каналы)
|
||||
@@ -126,7 +127,7 @@
|
||||
/* Параметры ШИМ для тиристоров */
|
||||
#define PWM_THYR_FREQUENCY_HZ_DEFAULT 16000
|
||||
#define PWM_THYR_DUTY_PERCENT_DEFAULT 0.5
|
||||
#define PWM_THYR_PULSE_NUMBER_DEFAULT 10
|
||||
#define PWM_THYR_PULSE_LENGTH_DEFAULT (60.0/180.0)
|
||||
|
||||
/** //UPP_PARAMS_DEFAULT
|
||||
* @}
|
||||
|
||||
@@ -170,11 +170,11 @@ typedef struct {
|
||||
#define TEMP_2 1
|
||||
|
||||
/* Перерасчеты в тики */
|
||||
#define PM_SLOW_PERIOD_CNT (PM_SLOW_PERIOD_US/PM_ADC_PERIOD_US) ///< Период обновления медленных расчетов тиках @ref PM_ADC_PERIOD_US
|
||||
#define PM_SLOW_PERIOD_CNT (PM_SLOW_PERIOD_US/PM_FAST_PERIOD_US) ///< Период обновления медленных расчетов тиках @ref PM_FAST_PERIOD_US
|
||||
#define US_TO_FAST_TICKS(_us_) ((_us_)/PM_FAST_PERIOD_US) ///< Пересчитать мкс в тики быстрых расчетов
|
||||
#define MS_TO_FAST_TICKS(_ms_) US_TO_FAST_TICKS((_ms_)*1000) ///< Пересчитать мс в тики быстрых расчетов
|
||||
#define US_TO_SLOW_TICKS(_us_) ((_us_)/PM_SLOW_PERIOD_US) ///< Пересчитать мкс в тики медленных расчетов
|
||||
#define MS_TO_SLOW_TICKS(_ms_) US_TO_SLOW_TICKS((_ms_)*1000) ///< Пересчитать мс в тики медленных расчетов
|
||||
|
||||
/* Перерасчеты в тики */
|
||||
#define PM_F_SLOW_PERIOD_CNT (MS_TO_SLOW_TICKS(PM_F_SLOW_PERIOD_MS)) ///< Период обновления частоты в тиках @ref PM_SLOW_PERIOD_CNT
|
||||
|
||||
#define SQRT2 1.4142135
|
||||
@@ -201,8 +201,8 @@ typedef enum {
|
||||
*/
|
||||
typedef enum {
|
||||
UPP_PHASE_A = 0,
|
||||
UPP_PHASE_B = 1,
|
||||
UPP_PHASE_C = 2,
|
||||
UPP_PHASE_C = 1,
|
||||
UPP_PHASE_B = 2,
|
||||
UPP_PHASE_UNKNOWN = 3
|
||||
} UPP_Phase_t;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user