178 lines
7.0 KiB
C
178 lines
7.0 KiB
C
/**
|
||
******************************************************************************
|
||
* @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_
|