Motion Control and Motor Drives

cancel
Showing results for 
Search instead for 
Did you mean: 

sinusoidal commutation?

Hi,

 

Is there any support/examples for sinusoidal commutation for use with a cRIO?  I'm assuming we could right our own if we wanted?

 

We have a DC brushless connected to a 9502.  We are going to drive it slowly and we understand sinusoidal would work well in that situation.  We've started playing with FOC Position VI example but are having trouble find current gains for our motor (Griffin).  We're also concerned the FOC will use too much FPGA space (we need to run 5 independent motors).  I imagine sinusoidal would be much simpler.

 

Thanks,

 

Steve

 

 

0 Kudos
Message 1 of 4
(6,223 Views)

Hi Steve,

 

We didn't write any sinusoidal commutation examples for the 9502.

As you have noticed, there are the trapezoidal examples that ship with RIO and the FOC examples with SoftMotion.

 

Sinusoidal commutation didn't offer much of an advantage. For coarse, fast, movement trapezoidal works fine. For more precise movement FOC is the way to go.

 

Sinusoidal commutation does not take up much less space than FOC. You still need position, velocity, and 2 current loops, splining, and PWM. The only thing you save is a few multipliers for the Clarke and Park algorithms but you have to replace those with the LUT for your two sine waves.

 

Additionally, with the multiplexed IP, you can fit multiple axes of FOC commutation on a single FPGA. It runs fast enough that the additional time it takes to multiplex is not an obstacle. How many axes you can fit will depend on what backplane you are using. We tested with 4 axes on a 9074 but you may be able to fit all 5. You can definitely fit all 5 on a target with a larger FPGA.

 

All that said- If you really want to do sinusoidal commutation it is certainly possible. You can modify the FOC example and simply replace the clarke and park algorithms with a look up table. The current control could stay the same. If you are having trouble tuning the current control- I suspect you would have the same problem with your sinusoidal implementation.

 

Message 2 of 4
(6,221 Views)

Great info.  Thanks!

 

Multiplexed IP, hmm.   Do I have to roll that all my own (context switching all the state) or is there some LabView support?  An example may be nice.

 

Steve

0 Kudos
Message 3 of 4
(6,207 Views)

The IP on the palette is already multiplexed. They are polyVIs that have a single or an indexed version. The indexed version takes in an index parameter that it uses to keep the state information.

 

Some of the IP blocks from the FOC example do not have multiplexed versions. The PWM block for example is simple enough that multiplexing it doesn't buy much.

 

Unfortunately we don't have a multi axis example yet. This is something we are working on.

 

The 9502 and its FPGA IP are a relatively new feature and we are still working to improve the IP. I'm interested in your experience. Please let me know if you have more questions.

 

 

0 Kudos
Message 4 of 4
(6,198 Views)