#include "my_obs.h" void my_ObsInit(void) { observer_stObsCoefIn.uwRsOm = MOTOR_RS; // Real Value unit: 0.1mOhm, Phase resistance observer_stObsCoefIn.uwLqHm = MOTOR_LQ;//((ULONG)MOTOR_LQ * cof_uwLbHm) >> 10; // Real Value, unit: 0.01mH, q Inductance observer_stObsCoefIn.uwLdHm = MOTOR_LD; // Real Value, unit: 0.01mH, d Inductance observer_stObsCoefIn.uwFluxWb = MOTOR_FLUX_WB; // Real Value, unit: 0.01mWb, Flux linkage observer_stObsCoefIn.uwFreqTbcHz = FTBC_HZ; // Real Value, Unit:Hz Tbc observer_stObsCoefIn.uwFluxDampingRatio = OBS_FLUX_PI_DAMPRATIO; // Real Value, unit:0.1 observer_stObsCoefIn.uwFluxCrossFreqHz = OBS_SPD_PLL_BANDWIDTH_HZ ; // Real Value, unit:Hz observer_stObsCoefIn.uwSpdPllWvcHz =OBS_SPD_PLL_BANDWIDTH_HZ; // Real Value, Unit:Hz observer_stObsCoefIn.uwSpdPllMcoef = OBS_SPD_PLL_M; observer_voObsCoef(&observer_stObsCoefIn, &observer_stObsCoefPu); } void my_ObsCal(SLONG Ualpha, SLONG Ubeta, SLONG Ialpha, SLONG Ibeta, SLONG Vdc, OBSERVER_OUT *Out) { observer_stObsCalcIn.swUalpha = Ualpha; /* unit: 0.1V, Voltage base */ observer_stObsCalcIn.swUbeta = Ubeta; /* unit: 0.1V, Voltage base */ observer_stObsCalcIn.swIalpha = Ialpha; /* unit: 0.01A, Current base */ observer_stObsCalcIn.swIbeta = Ibeta; /* unit: 0.01A, Current base */ observer_stObsCalcIn.uwVdc = Vdc; /* unit: 0.1V, Voltage base */ observer_voObsCalc(&observer_stObsCalcIn, &observer_stObsCoefPu, Out); }