123456789101112131415161718192021222324252627 |
- #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);
- }
|