my_obs.c 1.6 KB

123456789101112131415161718192021222324252627
  1. #include "my_obs.h"
  2. void my_ObsInit(void)
  3. {
  4. observer_stObsCoefIn.uwRsOm = MOTOR_RS; // Real Value unit: 0.1mOhm, Phase resistance
  5. observer_stObsCoefIn.uwLqHm = MOTOR_LQ;//((ULONG)MOTOR_LQ * cof_uwLbHm) >> 10; // Real Value, unit: 0.01mH, q Inductance
  6. observer_stObsCoefIn.uwLdHm = MOTOR_LD; // Real Value, unit: 0.01mH, d Inductance
  7. observer_stObsCoefIn.uwFluxWb = MOTOR_FLUX_WB; // Real Value, unit: 0.01mWb, Flux linkage
  8. observer_stObsCoefIn.uwFreqTbcHz = FTBC_HZ; // Real Value, Unit:Hz Tbc
  9. observer_stObsCoefIn.uwFluxDampingRatio = OBS_FLUX_PI_DAMPRATIO; // Real Value, unit:0.1
  10. observer_stObsCoefIn.uwFluxCrossFreqHz = OBS_SPD_PLL_BANDWIDTH_HZ ; // Real Value, unit:Hz
  11. observer_stObsCoefIn.uwSpdPllWvcHz =OBS_SPD_PLL_BANDWIDTH_HZ; // Real Value, Unit:Hz
  12. observer_stObsCoefIn.uwSpdPllMcoef = OBS_SPD_PLL_M;
  13. observer_voObsCoef(&observer_stObsCoefIn, &observer_stObsCoefPu);
  14. }
  15. void my_ObsCal(SLONG Ualpha, SLONG Ubeta, SLONG Ialpha, SLONG Ibeta, SLONG Vdc, OBSERVER_OUT *Out)
  16. {
  17. observer_stObsCalcIn.swUalpha = Ualpha; /* unit: 0.1V, Voltage base */
  18. observer_stObsCalcIn.swUbeta = Ubeta; /* unit: 0.1V, Voltage base */
  19. observer_stObsCalcIn.swIalpha = Ialpha; /* unit: 0.01A, Current base */
  20. observer_stObsCalcIn.swIbeta = Ibeta; /* unit: 0.01A, Current base */
  21. observer_stObsCalcIn.uwVdc = Vdc; /* unit: 0.1V, Voltage base */
  22. observer_voObsCalc(&observer_stObsCalcIn, &observer_stObsCoefPu, Out);
  23. }