How to use the MC9S12ZVM_AMMCLIB_RTM?

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

How to use the MC9S12ZVM_AMMCLIB_RTM?

Jump to solution
844 Views
sufree
Contributor II

Hello,I want to use the MC9S12ZVM_AMMCLIB_RTM in BLDC motor controlling,and I set as the advise:

twrt.PNG

and add the ".h" file which is necessary,but when I use the function :

GFLIB_ControllerPIrAW_F16, the output always is 0.

sdf.PNG

Can give me some advise ?

Tags (2)
0 Kudos
1 Solution
534 Views
pachamatej
NXP Employee
NXP Employee

Hello,

I can see you are changing the controller parameters every time before the controller function is called. That is not wrong except for the *.f32Acc = 0 and *.f16InErrK1 = 0 - these parameters are internal accumulator and previous error. It should be left unchanged when the controller is supposed to run. These parameters should be reset on every transition from stop to run (before the PI controller is supposed to run), but not before every call of the controller.

Another concern is your "a" variable - since it is constant and you are using it as the error input of the controller, the PI controller will integrate this error and eventually saturate with no way back.

Final comment - please use the latest version of the AMMCLib library. Your version works as well, but most of the library functions have been optimized to provide better performance.

Please let me know if it solves your issue.

Best regards,

Matej

View solution in original post

0 Kudos
2 Replies
535 Views
pachamatej
NXP Employee
NXP Employee

Hello,

I can see you are changing the controller parameters every time before the controller function is called. That is not wrong except for the *.f32Acc = 0 and *.f16InErrK1 = 0 - these parameters are internal accumulator and previous error. It should be left unchanged when the controller is supposed to run. These parameters should be reset on every transition from stop to run (before the PI controller is supposed to run), but not before every call of the controller.

Another concern is your "a" variable - since it is constant and you are using it as the error input of the controller, the PI controller will integrate this error and eventually saturate with no way back.

Final comment - please use the latest version of the AMMCLib library. Your version works as well, but most of the library functions have been optimized to provide better performance.

Please let me know if it solves your issue.

Best regards,

Matej

0 Kudos
534 Views
sufree
Contributor II

It works,thank you !

0 Kudos