18 kW PMSM Sensorless FOC AMCLIB PMSMBemfObsrvDQ/TrackObsrv

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

18 kW PMSM Sensorless FOC AMCLIB PMSMBemfObsrvDQ/TrackObsrv

Jump to solution
754 Views
General_motor_control
Contributor I

Dear,

We have attempted to implement the sensorless FOC (Field-Oriented Control) functionality for a Permanent Magnet Synchronous Motor (PMSM) in software. However, the implementation doesn't seem to behave as expected, with no stable feedback and the observer output (omega) increasing uncontrollably. 

The sensorless FOC is configured to run in parallel with the Hall observer/sensor (used as feedback). The system normally operates with a sensor, but we are attempting to enable sensorless FOC. The microcontroller used is the MKV58F1M0VLL24. The following observations were made during testing:

  • Observer behavior is erratic: When the observer is enabled, the omega value (rotational speed) increases very quickly and uncontrollably, indicating that there is no stable feedback from the motor’s status.

  • Structs become "inf" or "NaN": After enabling the observer at e.g. 300 RPM, the following structs show "inf" (infinity) followed by "NaN" (Not a Number) via the watch/analyzer in Keil:

  • AMCLIB_BEMF_OBSRV_DQ_T_A32:
    • sEObsrv
    • sIObsrv
    • sCtrl
      • f32ID_1
      • f32IQ_1

This issue occurs not after initialization, but after the back-emf observer is enabled at e.g. 300 RPM (the Hall sensor is used for the low RPM range at start-up for the moment).

Sensor and Current Measurements:
The current and voltage measurements appear correct and match the expected values. This is confirmed by the fact that the system runs fine with the sensor in place (when the sensor-based feedback is used).

The (initialized) PI values have been calculated based on NXP documentation AMCLIB, and the motor parameters like Rs (stator resistance) and Ls (inductance) have been measured to verify that they are correct. Morover, both the PMSMBemfObsrvDQ and TrackObsrv are used in the FLT format (ARM Cortex M7F Rev. 2 11/2016) 

Conclusion and Forum Inquiry:
While we are following NXP’s documentation, it seems that there is an issue with the feedback loop or the observer implementation. The uncontrolled increase in omega and the appearance of "inf" or "NaN" in the structs may point to a configuration issue with the observer or a flaw in the control algorithms.

Has anyone experienced similar issues with sensorless FOC implementations for PMSMs, or have any suggestions for potential causes and solutions? We are particularly interested in possible misconfigurations in the observer or control algorithm.

 

 

0 Kudos
Reply
1 Solution
709 Views
xiangjun_rong
NXP TechSupport
NXP TechSupport

Hi,

The start-up of PMSM motor with sensorless solution is very complex, it experiences rotor-alignment, open-loop startup, then speed-loop, it is dependent on the motor parameter, load...

I attach the DRM148.pdf, hope it can help you

Hope it can help you

BR

XiangJun Rong

View solution in original post

0 Kudos
Reply
2 Replies
548 Views
General_motor_control
Contributor I

Dear XiangJun Rong,

 

Thankyou for your reply. I am making progress. I tried to run what I did previously (inital post) in open-loop, meaning that the Bemf observer was running parallel to a sensored FOC algorithm. By doing so, the inf/nan issue was solved.

 

Regarding the further questions, I understand that the process of sensorless control is more complex than just running a Bemf and Track observer and that initial position detection and some open-loop startup control is mandatory. Therefore, I now started by doing the 2-step alignment according to the DRM148 document you provided, which is working! However, this document is targetting fan operation with only positive RPM.

In my case it is about driving a three-phase PM motor, which should be capable of two-way operation. Is there maybe another document that goes into more detail? Because I believe it should not be necessary to align every time e.g. when you go from +1000 RPM to -1000 RPM in one go. Moreover, I would like to not be in the freewheel state for too long, because then my shaft is still rotating when I demand 0 RPM. 

A second question arises. In open-loop start-up a constant q-current is applied. But what would be the effect of a different load attached to the shaft of the motor? This way, somehow, the applied q-current should be adapative and load dependent to start up the motor effectively. How to do this?

 

Kind Regards,

0 Kudos
Reply
710 Views
xiangjun_rong
NXP TechSupport
NXP TechSupport

Hi,

The start-up of PMSM motor with sensorless solution is very complex, it experiences rotor-alignment, open-loop startup, then speed-loop, it is dependent on the motor parameter, load...

I attach the DRM148.pdf, hope it can help you

Hope it can help you

BR

XiangJun Rong

0 Kudos
Reply