The corresponding inverse modulation coefficient

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

The corresponding inverse modulation coefficient

Jump to solution
1,764 Views
SW_Park
Contributor II

Hi..

During S32k144 MCU Sensorless operation, it does not operate normally, and as a result of checking, the following waveform is displayed.

SW_Park_0-1653642792216.png

It has been confirmed that drvFOC.uAlBeReqDCB.FfltArg1/2 is not output normally.
So, drvFOC.elimDcbRip.fltModIndex = 0.866025403784439F;
After changing the value to 0.7F and running it, it looks like the following.

SW_Park_1-1653642845175.png


The corresponding inverse modulation coefficient is not in the tuning parameter, can it be modified? Any other solutions?

0 Kudos
1 Solution
1,599 Views
marekmusak
NXP Employee
NXP Employee

Hello,

Bandwidth frequency setting depends on many aspect such as required dynamic, acceptable acoustic noise, parameters of the motor, level of the noise/ripple in the current/position/speed feedback, PWM/sampling frequency, etc. Therefore, it might be difficult to come up with some general formula that will work for every motor. 

But it is always good practice to start tuning the fasted control loop - current loop. For this purpose you can switch control mode from speed control to current control and try to find optimal bandwidth for current loop. You can try to perform well known step response test or bode diagrams. Once you are satisfied with behavior of the current loop you can enable again speed control mode and find optimal bandwidth of the speed loop,  BEMF and ATO observer.

So, if you reduced bandwidth of the current loop you reduced also dynamic of that loop. So, then it is even easier for q-axis current PI controller to control requested q-axis current - output of the speed PI controller. You can check this by using FreeMASTER recorder. Simply, visualize required q-axis current and feedback q-axis current and trigger speed step.   

marekmusak_0-1657707139274.png

Regards,

Marek

View solution in original post

0 Kudos
5 Replies
1,600 Views
marekmusak
NXP Employee
NXP Employee

Hello,

Bandwidth frequency setting depends on many aspect such as required dynamic, acceptable acoustic noise, parameters of the motor, level of the noise/ripple in the current/position/speed feedback, PWM/sampling frequency, etc. Therefore, it might be difficult to come up with some general formula that will work for every motor. 

But it is always good practice to start tuning the fasted control loop - current loop. For this purpose you can switch control mode from speed control to current control and try to find optimal bandwidth for current loop. You can try to perform well known step response test or bode diagrams. Once you are satisfied with behavior of the current loop you can enable again speed control mode and find optimal bandwidth of the speed loop,  BEMF and ATO observer.

So, if you reduced bandwidth of the current loop you reduced also dynamic of that loop. So, then it is even easier for q-axis current PI controller to control requested q-axis current - output of the speed PI controller. You can check this by using FreeMASTER recorder. Simply, visualize required q-axis current and feedback q-axis current and trigger speed step.   

marekmusak_0-1657707139274.png

Regards,

Marek

0 Kudos
1,666 Views
marekmusak
NXP Employee
NXP Employee

Hello, 

Personally, I would keep modulation index equal to original value sqrt(3)/2 and I would rather check other things.

I used even higher current 60A, but I have never experienced issues with modulation index.

Can you tell me what kind of control mode in MCAT do you use?

marekmusak_0-1655481122818.png

Can you make a screenshot of the current control loop settings for me?

marekmusak_1-1655481214401.png

Are motor parameters measured properly? specifically stator resistance Rs and d-axis and q-axis inductance Ld, Lq ?

marekmusak_2-1655481342556.png

Regards,

Marek

 

 

0 Kudos
1,639 Views
SW_Park
Contributor II

Sorry for the late reply because I was testing various things.
1) Speed FOC & Sensorless Type.
2) current control loop settings
-> I checked that the Fo value was set to 300hz and changed it to 150hz. As a result, the existing noise has been removed. The problem seems to have been resolved. thank you.

Please inquire about the applicable bandwidth frequency setting.
1) How do you set BEMF Observer "Fo" / Tracking Observer "Fo" of Sensorless setting? I first looked at the speed estimated value and set it to reduce noise.
BEMF Observer "Fo" : 150hz
Tracking Observer "Fo" : 10hz
I reduced the noise by setting it to the smallest possible value.

2) How do you set “Fo” of Current Loop setting?

Please provide related documents or guides.

0 Kudos
1,725 Views
marekmusak
NXP Employee
NXP Employee

Hello and thank you for contacting us.

Modulation index is used for third harmonic injection that is implemented inside GMCLIB_SvmStd function.

drvFOC.elimDcbRip.fltModIndex must be set exactly to sqrt(3)/2 for this modulation technique to fully utilize DC bus voltage and generate sinusoidal waveforms.

I suppose that these waveforms have been captured by FreeMASTER scope, therefore, resolution might be poor to analyze real behavior.

Can you use recorder instead to see details of the real waveforms?

Do you use original motor of the devkit or do you use your own motor ?

What was the required speed and actual load you applied?

Regards,

Marek

0 Kudos
1,698 Views
SW_Park
Contributor II

Hi.

First of all, it seems that the case where the problem occurs is when the current is high.
The original motor uses a small current so it doesn't happen.
The test is the motor we built, the load is high. So it happens in about 20A Open Loop.
Recorder seems to need to learn how to use it. As a result of checking with an oscilloscope, overmodulation occurs at the top of the 3rd harmonic and is output as a high duty value.
It is judged that it is necessary to adjust the MI value at high current. tell me your opinions.

0 Kudos