View Single Post
Old 06-21-2019, 11:29 AM   #4 (permalink)
Master EcoModder
Join Date: Sep 2010
Location: Saskatoon, canada
Posts: 1,478

ChargE (not yet running) - '92 Mazda MX6 LX
90 day: 33.89 mpg (US)

Ford Prefect - '18 Ford F150 XLT XTR
Thanks: 745
Thanked 543 Times in 438 Posts
Originally Posted by MPP2007 View Post

Checking aplication notes from Atmel/Microchip or NXP, I found some ways to control PMSM motors, by PMSM I mean DC motor with sinosuidal back EMF.

1. way is to use SVM, with 3 Hall sensors and sine table - AVR447: Sinusoidal driving of three-phase permanent magnet motor using ATmega48/88/168

2. way is to use SVM but with Clark/Park transforms

Which way to go to run my Lexus 50kW MGR ?

I don't have access to the source code from work (where I'm reading this) ... so this is all from memory (which is not that great, and I didn't understand all of what Paul was doing when he did explain it)

With that disclaimer ... here is what I remember

Paul Holmes uses an encoder for rotor position. It is closer to your option 2. The encoder position is used to figure out where the rotor is with relation to the position of the stator flux. Getting them to the same units so that they can be compared requires 2 sets of calculations. The Park transform is one of them. Another ... 2 equations? .. to take the error in rotor position and reflect that back to a torque current setpoint, and from there combined with the magnetizing current to get a voltage setpoint and the PWM timing.

The hall sensors are likely more accurate than a separate external encoder. But I don't have information on which of your 2 options would be easier, or which would give you better control
In THEORY there is no difference between Theory and Practice
  Reply With Quote