/** ****************************************************************************** * @file upp_config.h * @brief Конфигурационные параметры УПП ****************************************************************************** @addtogroup UPP_CONFIG UPP configs @ingroup UPP_MAIN @brief Конфигурация УПП @{ ****************************************************************************** * @details ******************************************************************************/ #ifndef _UPP_CONFIG_H_ #define _UPP_CONFIG_H_ #include "stm32f4xx_hal.h" // Проверка корректности структуры #define assert_upp(_struct_) check_null_ptr_2(_struct_, (_struct_)->f.Initialized) /* Дефайны для индексов */ /* Линейные напряжения */ #define U_AB 0 #define U_CA 1 #define U_BC 2 /* Токи фаз */ #define I_C 0 #define I_A 1 #define I_B 2 /* Температуры */ #define TEMP_1 0 #define TEMP_2 1 #define UPP_DISABLE_ERROR_BLOCK ///< Отключить блокировку УПП при ошибках //#define UPP_SIMULATE_I ///< Симулировт токи (Iref/2) а не брать с АЦП #define UPP_DISABLE_PROTECT_BOARDPOWER ///< Отключить проверки питания плат (+24, +5 В) #define UPP_DISABLE_PROTECT_LOSS_PHASE ///< Отключить проверки на потерянные фазы /** * @addtogroup UPP_PARAMS_DEFAULT Default params for external flash * @ingroup UPP_CONFIG * @brief Дефолтные параметры для внешней памяти. Они применятся по команде или по ошибке * @details Префиксы * @{ */ /* Уставки по температурам */ #define SETPOINT_TEMP_WARN 70 #define SETPOINT_TEMP_ERR 85 /* Номинальные параметры */ #define NOM_PHASE_NUMB 3 #define NOM_U_V_DEFAULT 380 #define NOM_U_DEVIATION_PLUS_PERCENT_DEFAULT 6 #define NOM_U_DEVIATION_MINUS_PERCENT_DEFAULT 10 #define NOM_F_HZ_DEFAULT 50 #define NOM_F_DEVIATION_PLUS_PERCENT_DEFAULT 10 #define NOM_F_DEVIATION_MINUS_PERCENT_DEFAULT 10 #define NOM_I_A_DEFAULT 5 /* Параметры ПУИ */ #define PUI_Iref_PERCENT_DEFAULT 1.5 #define PUI_Tnt_MS_DEFAULT 300 #define PUI_Tnt_CalcAlpha(...) FilterExp_CalcAlpha95(__VA_ARGS__) ///< Уровень в процентах, до куда нарастет ток за время Tnt #define PUI_Umin_PERCENT_DEFAULT 0.8 #define PUI_Umax_PERCENT_DEFAULT 1.2 #define PUI_Imax_PERCENT_DEFAULT 0.99 #define PUI_Imin_PERCENT_DEFAULT 0.07 #define PUI_TiMax_US_DEFAULT 5000 #define PUI_Tdelay_SECONDS_DEFAULT 30 #define PUI_Interlace_EN_DEFAULT 5000 /* Время задержки перед выставлением ошибки */ #define ERRORS_DELAY_MS_UAMP_ERR 1500 // todo #define ERRORS_DELAY_MS_F_ERR 5000 #define ERRORS_DELAY_MS_DEFAULT 0.1f /* Параметры регулятора угла */ #define ANGLE_PULSE_LENGTH_RESERVE_PERCENT_DEFAULT 1.0 #define ANGLE_MAX_PERCENT_DEFAULT 1 #define ANGLE_MIN_PERCENT_DEFAULT 0.1 #define ANGLE_PID_KP_COEF_DEFAULT 0.0001 #define ANGLE_PID_KI_COEF_DEFAULT 0.0001 #define ANGLE_PID_KD_COEF_DEFAULT 0 /* Параметри мониторинга сети */ #define PM_EXP_TAU_COEF_DEFAULT 0.2 /* Параметры АЦП */ #define ADC_U_MAX_V_DEFAULT 1216.0 #define ADC_I_MAX_A_DEFAULT 53.0 #define ADC_U_ZERO_DEFAULT 2048 #define ADC_I_ZERO_DEFAULT 2048 /* Параметры определения перехода через ноль */ #define ZERO_CROSS_HYSTERESIS_PERCENT_DEFAULT 2.0 #define ZERO_CROSS_DEBOUNCE_CNT_DEFAULT 2*100 // (2.5 * 100 = 2.5 мс) /* Параметры ШИМ для тиристоров */ #define PWM_THYR_FREQUENCY_HZ_DEFAULT 16000 #define PWM_THYR_DUTY_PERCENT_DEFAULT 0.5 #define PWM_THYR_PULSE_NUMBER_DEFAULT 10 /** //UPP_PARAMS_DEFAULT * @} */ /** * @addtogroup UPP_COMPILED_PARAMS Fixed params * @ingroup UPP_CONFIG * @brief Параметры устанавливаемые на этапе компиляции. Без перепрошивки их не поменять * @{ */ /* Периоды обновления всякого */ #define PM_ADC_PERIOD_US 25 ///< Период опроса АЦП в мкс #define PM_SLOW_PERIOD_US 500 ///< Период обновления медленных расчетов в мкс (чтобы делилось на @ref PM_ADC_PERIOD_US) #define PM_TEMP_SLOW_PERIOD_MS 1000 ///< Период обновлениия (фильтрации) датчиков температуры в мс #define PM_F_SLOW_PERIOD_MS 40 ///< Период обновления (фильтрации) частоты в мс #define UPP_INIT_BEFORE_READY_MS 2000 ///< Сколько сканировать сеть, перед выставлением состояния готовности /* Частоты таймеров в МГц*/ #define PWM_TIM1_FREQ_MHZ 180 ///< Частота тиков таймера ШИМ (1-4 каналы) #define PWM_TIM8_FREQ_MHZ 180 ///< Частота тиков таймера ШИМ (5-6 каналы) #define US_TIM5_FREQ_MHZ 90 ///< Частота тиков микросекундного таймера #define ADC_TIM3_FREQ_MZH 90 ///< Частота тиков таймера АЦП #define ANGLE_TIM2_FREQ_MHZ 90 ///< Частота тиков таймера отсчета угла открытия тиристоров /** //UPP_COMPILED_PARAMS * @} */ // ===== ОТЛАДОЧНЫЕ ШТУКИ ДЛЯ 417 ====== #if defined(STM32F417xx) // У старой платы УПП другие диапазоны датчиков #undef ADC_U_MAX_V_DEFAULT #undef ADC_I_MAX_A_DEFAULT #define ADC_U_MAX_V_DEFAULT 707.11 #define ADC_I_MAX_A_DEFAULT 424.26 // У 417 меньше частота поэтому меняем прескалер #undef PWM_TIM1_FREQ_MHZ #undef PWM_TIM8_FREQ_MHZ #undef US_TIM5_FREQ_MHZ #undef ADC_TIM3_FREQ_MZH #undef ANGLE_TIM2_FREQ_MHZ #define PWM_TIM1_FREQ_MHZ 168 ///< Частота тиков таймера ШИМ (1-4 каналы) #define PWM_TIM8_FREQ_MHZ 168 ///< Частота тиков таймера ШИМ (5-6 каналы) #define US_TIM5_FREQ_MHZ 84 ///< Частота тиков микросекундного таймера #define ADC_TIM3_FREQ_MZH 84 ///< Частота тиков таймера АЦП #define ANGLE_TIM2_FREQ_MHZ 84 ///< Частота тиков таймера отсчета угла открытия тиристоров #define HAL_PWREx_EnableOverDrive() HAL_ERROR #endif //defined(STM32F417xx) // ===== ОТЛАДОЧНЫЕ ШТУКИ ДЛЯ MATLAB ====== #if defined(MATLAB) #undef UPP_INIT_BEFORE_READY_MS #define UPP_INIT_BEFORE_READY_MS 100 ///< Сколько сканировать сеть, перед выставлением состояния готовности #endif //defined(MATLAB) #endif //_UPP_CONFIG_H_