On my last project, I used MC56F84766VLK as controller, and one quad encoder as angle/speed sample to realize PMSM motor control by using FOC algorithm:

where:
(1)TMR0:quad timer0, input A/B signals from encoder as quad counter
by one function:MCSTRUC_AngleFromEncoder() to output two angle signals as Park's & Inverse Park's angle signal(θe):
gsM1_Drive.sSpeedPos.sAnglePosEl, gsM1_Drive.sSpeedPos.sAnglePosElUpdate
(2) TMR1: quad timer1, input TMR0 OFLAG
by one function:MCSTRUC_PosCalc() to get the relative position,θm: gsM1_Drive.sPosCalc.f32PosRelative
(3) TMR2: quad timer2 and timer3, normal M/T speed calucation and low speed calucation
by one function:MCSTRUC_SpeedClacMTMethod() to out normal speed signal,ωm:gsM1_Drive.sSpeedPos.f32Speed
by one function:MCSTRUC_SpeedClacImproved() to out the startup speed signal:gsM1_Drive.sSpeedPos.f32SpeedImproved
In order to get lower cost, we want to cancel the quad encoder,and consider to use back-emf observer+tracking algorithm to realize the sensorless FOC.

By browsing our NXP resource, we found one reference(AN5014SW) may realize our task. Functions CalcObs() and Update() can out angle signal(module->data.posElEst) and speed signal(module->data.velocityElEst).
Questions:
(1) How to get these signals as like encoder? or, to replace them with the sensorless Observer+Tracking :
(a)Angle signals:gsM1_Drive.sSpeedPos.sAnglePosEl, gsM1_Drive.sSpeedPos.sAnglePosElUpdate
(b)Relative position signal:gsM1_Drive.sPosCalc.f32PosRelative
(c)Speed signal:gsM1_Drive.sSpeedPos.f32Speed,gsM1_Drive.sSpeedPos.f32SpeedImproved
(2) Why the angle signal(module->data.posElEst) change too much when the motor stops?
as the below figure(captured by FreeMaster):

Wait your reply.
Thanks too much!
Lichangshui ,2017-12-11