96 lines
4.2 KiB
C
96 lines
4.2 KiB
C
/********************************** (C) COPYRIGHT *******************************
|
|
* File Name : M8_Protection.h
|
|
* Author : WCH
|
|
* Version : V1.0.0
|
|
* Date : 2026/04/23
|
|
* Description : Protection parameter definition
|
|
*********************************************************************************
|
|
* Copyright (c) 2021 Nanjing Qinheng Microelectronics Co., Ltd.
|
|
* Attention: This software (modified or not) and binary are used for
|
|
* microcontroller manufactured by Nanjing Qinheng Microelectronics.
|
|
*******************************************************************************/
|
|
#ifndef __M8_PROTECTION_H
|
|
#define __M8_PROTECTION_H
|
|
#define INST_PHASEOC_THRE_M _IQ(1.3)
|
|
#define INST_PHASEOC_CNT_THRE_M (uint16_t)5
|
|
|
|
#define DCBUS_OVER_VOLT_THRE _IQ(1.175)
|
|
#define DCBUS_UNDER_VOLT_THRE _IQ(0.72)
|
|
#define DCBUS_OVER_VOLT_CNT (uint16_t)500
|
|
#define DCBUS_UNDER_VOLT_CNT (uint16_t)3000
|
|
|
|
#define PEAKDCBUS_OVER_VOLT_CNT (uint16_t)1500
|
|
#define PEAKDCBUS_OVER_VOLT_DETECTIONTIME 0.3
|
|
|
|
#define NTC_OVERHYSTERESIS_TEMP_TIME 5
|
|
|
|
#define NTC_OVERTEMP_OHM _IQ18(0.8844)
|
|
#define NTC_OVERTEMP_RATEADC _IQ18toIQ(_IQ18div(NTC_OVERTEMP_OHM , NTC_OVERTEMP_OHM + PT_RS))
|
|
|
|
#define NTC_OPENTEMP_OHM _IQ18(981.5699)
|
|
#define NTC_OPENTEMP_RATEADC _IQ18toIQ(_IQ18div(NTC_OPENTEMP_OHM , NTC_OPENTEMP_OHM + PT_RS))
|
|
|
|
#define NTC_VERIFY_FREQ TIMER_FREQ_SPEED_LOOP
|
|
|
|
#define TEMP_OVER_TIME 0.1
|
|
#define NTC_OPEN_TIME 0.1
|
|
|
|
#define OVERLOAD_CURR_THRE _IQ(1.1)
|
|
#define OVERLOAD_TIME_THRE 0.5
|
|
#define OVERLOAD_CAL_FREQ TIMER_FREQ_SPEED_LOOP
|
|
#define OVERLOAD_CAL_COEF _IQ(1/1.91)
|
|
#define OVERLOADLPF_CF_M 500
|
|
#define OVERLOADLPF_WcT_M (PI_2_Q24/OVERLOAD_CAL_FREQ)*OVERLOADLPF_CF_M
|
|
|
|
#define PHASELOSS_CURR_THRE _IQ(0.1)
|
|
#define PHASELOSS_TIME_THRE 0.1
|
|
#define PHASELOSS_CAL_FREQ FREQ_SVPWM
|
|
#define PHASELOSS_CAL_BUFFSIZE 32
|
|
#define PHASELOSS_CNT_THRE 3
|
|
|
|
/* Exported variables -------------------------------------------------------*/
|
|
extern InstPhaseOC_Type InstPhaseOC_M;
|
|
extern DCbusProtection_Type DCBusProtecion_M;
|
|
extern OverLoad_Type Overload_M;
|
|
extern LPF_First_Order_Type OverloadLPF1st_M;
|
|
extern Phaseloss_Type Phaseloss_M;
|
|
|
|
/* Exported macro -----------------------------------------------------------*/
|
|
/* Exported functions -------------------------------------------------------*/
|
|
void Protection_and_Emergency_Parameter_Define (void);
|
|
|
|
void Protection_and_Emergency_Init (void);
|
|
|
|
void Protection_SetFault(uint16_t Fault_type);
|
|
|
|
void Protction_Fault_Reset_M(void);
|
|
|
|
Truth_Verify_Type Phase_Ins_OverCurrent_Verify (Component_3S_Type *PhaseABC, InstPhaseOC_Type * InstOC);
|
|
|
|
void DCOvervolt_Protection(_iq24 DCVolt, DCbusProtection_Type *DCbusProtec);
|
|
|
|
void DCUndervolt_Protection(_iq24 DCVolt, DCbusProtection_Type *DCbusProtec);
|
|
void DCUndervolt_Protection1(_iq24 DCVolt, DCbusProtection_Type *DCbusProtec,Powercontrol_Type *PowerOper);
|
|
void Speed_Outrange_Verify(_iq24 Speedref, _iq24 Speedact, Observer_Status_Type *Status);
|
|
|
|
Truth_Verify_Type Speed_Reliable_Verify(BuffPara_Type *Buffpara,_iq24 *Buffer,_iq24 Averspeed,_iq24 Threshold);
|
|
|
|
void Speed_Stable_Verify(Observer_Status_Type *Status,_iq24 Speedact);
|
|
|
|
void Motor_Stall_Verify1(_iq24 Speedref, Motor_LBG_Type *MLBG,_iq24 Iqref, Observer_Status_Type *Status);
|
|
void Motor_Stall_Verify2(_iq24 Speedref, _iq24 Speedact , _iq24 Iqref, Observer_Status_Type *Status);
|
|
|
|
void Motor_Reverse_Verify(_iq24 Speedref, _iq24 Speedact, Observer_Status_Type *Status);
|
|
|
|
void Speed_Converged_Verify1(_iq24 Speedref,Motor_LBG_Type *MLBG,Observer_Status_Type *Status);
|
|
void Speed_Converged_Verify2(_iq24 Speedref,_iq24 Speedact,Observer_Status_Type *Status);
|
|
|
|
Truth_Verify_Type OverLoad_Verify (Component_3S_Type *PhaseABC, OverLoad_Type * Overload, LPF_First_Order_Type * LPF);
|
|
|
|
Truth_Verify_Type Phaseloss_Verify (Component_3S_Type *PhaseABC,Phaseloss_Type *Phaseloss, uint8_t PWMsector);
|
|
|
|
void NTC_Protection(Temperature_ctl_Type *Temctl,_iq24 Temp);
|
|
|
|
void PeakDCOvervolt_Protection(_iq24 DCVolt, DCbusProtection_Type *DCbusProtec);
|
|
#endif
|