//-------------------------------------------------------// // Project Code : ESS100K3L-01-19 // File Name : SystemVar.cpp // Created on : 2019. 06. 07 // Description : // Author : KimJeongWoo // Last modified Date : //-------------------------------------------------------// #include "CommonLib.h" float SystemClock = 200.0e6; int SET_FT_UV_Level = 1500; int SET_FT_VIS_Level = 1500; int SET_FT_IR_Level = 1500; //------------------------------------------------------------------------// int SystemFault = 0; int EmergencyStop = 1; int CmdFaultReset = 99; ////내부 동작 커맨드 float CH1_UV_Flt = 0; float CH1_VIS_Flt = 0; float CH1_IR_Flt = 0; float CH2_UV_Flt = 0; float CH2_VIS_Flt = 0; float CH2_IR_Flt = 0; float CH3_UV_Flt = 0; float CH3_VIS_Flt = 0; float CH3_IR_Flt = 0; float CH4_UV_Flt = 0; float CH4_VIS_Flt = 0; float CH4_IR_Flt = 0; eSystemMode ModeSystem = Normal; eTestSelect TestSelect = NonSelect; eSystemState SystemState = StateInitial; int SystemReady = 0; int FaultReset = 0; /*--------------------------------------*/ /* system parameters for V2H */ /*--------------------------------------*/ float PoutRate = 6000; //W float PoutMax = 6600; float PbatRate = 6000 * (1 / 0.96); //W float PbatMax = 6600 * (1 / 0.96); //W float UV_Max = 500.; float UV_Min = 360.; float UV_Rate = 400.; float VacRateRms = 202.; // phase[Vrms] float VacRatePeak = 202. * SQRT2; // peak of Vs_rate[V] float VacPeakMax = VacRatePeak * 1.3; //int FlagInvGating = 0; //int FlagInvGatingInput = 0; // //int FlagBoostGating = 0; //int FlagBoostGatingInput = 0; // //int FlagDabGating = 0; //int FlagDabGatingInput = 0; // // // //float Tboost = 0.; // //float TdabPh = 0.; //float TdabA = 0.; //float TdabB = 0.; //float TdabC = 0.; //float TdabD = 0.; // //float TinvA = 0.; //float TinvB = 0.; // // //unsigned int TboostCnt = 0; // //int TdabPhCnt = 0; //unsigned int TdabACnt = 0; //unsigned int TdabBCnt = 0; //unsigned int TdabCCnt = 0; //unsigned int TdabDCnt = 0; // //unsigned int TinvACnt = 0; //unsigned int TinvBCnt = 0; //firmware Ver float FwVer = 0.1; struct sRampGen MagVqeRamp = {0,}; float MagVqeRefSet = 0.; float MagSinRef = 0.; float DelMagVqe = 10.; void InitSystemParameter() { // PoutRate = 6000.; // PoutMax = PoutRate * 1.2; //120% // PbatRate = 6000. * (1. / 0.96); // // VdcMax = 500.; // VdcMin = 360.; // VdcRate = 400.; // // VdabMax = VdcMax; // VdabMin = VdcMin; // VdabRate = VdcRate; // // VbatRate = 350.; // VbatMin = 150.; // VbatMax = 450.; // INV_Wh_T500ms = T500ms / 3600.; //임시 위치 MagVqeRamp.Init(&MagVqeRefSet, &DelMagVqe, Tsamp); } void SystemParameterUpdate() { // VacRateRms = 202.; // VacRatePeak = VacRateRms * SQRT2; // // IacRateRms = (PoutRate / VacRateRms); // IacRatePeak = IacRateRms * SQRT2; // // IacMaxRms = (PoutMax / (VacRateRms * 0.9)); // IacMaxPeak = IacMaxRms * SQRT2; // // WeRate = 2. * PI * FreqRate; MagVqeRamp.UpdateSlope(); } float PkwRefSet = 0; /*--------------------------------------*/ /* call freq_sinusoidal() */ /*--------------------------------------*/ // only test-mode float ThetaTest = 0; float FreqSineTest = 60; float SinThetaTest = 0; float CosThetaTest = 0; float SinSquareTest = 0; float CosSquareTest = 0; void FreqSinGen() { ThetaTest = ThetaTest + 2. * PI * FreqSineTest * Tsamp; ThetaTest = BOUND_PI(ThetaTest); SinThetaTest = sin(ThetaTest); CosThetaTest = cos(ThetaTest); SinSquareTest = (SinThetaTest > 0) ? 1 : -1; CosSquareTest = (CosThetaTest > 0) ? 1 : -1; } /*--------------------------------------*/ /* call ramp_sinusoidal() */ /*--------------------------------------*/