UPP/UPP/Core/Configs/upp_config.h

178 lines
7.0 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/**
******************************************************************************
* @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_