IPM Motors - MTPV
-
- Posts: 1801
- Joined: Sun Apr 03, 2022 1:57 pm
- Has thanked: 102 times
- Been thanked: 347 times
IPM Motors - MTPV
Been looking at some of bexander's data, logs and in particular the plot he found of what the MGR should be able to do viewtopic.php?p=51135#p51135. Now looking at this, and even allowing for the reduced voltage, it was fairly clear that Lexus manage to get more power out of the motor than we do. Now this is a simulator plot using bexander's current/best settings (which has taken him a lot of work/optimisation to get to):
So a peak of 29kW dropping to 19kW by 2400rpm.
I've also been reading up a bit on Most Torque Per Volt (MTPV) algorithms, in particular, where the operating point should be at each point. Now rather than trying to code stuff up straight away it seemed sensible to test the principle first so here is a plot where I'm trying to over-ride the controllers to force the operating point to roughly where it should be using manualiq and manual id (afraid it only goes up to 2.4krpm because the control loops have an increasing tendency to oscillate if I get it slightly wrong): Now I couldn't get it to go quite where I wanted (and the above took quite a few attempts to get anywhere close) but the peak power is up to 32kW (ish, I saw nearer 35 on one run) and is still up at 24kW at 2400rpm so a gain of around 25%. I'm sure there is more there too once the operating point is right over where it should be (following the Is circle round before heading to the critical current point), at least another 10%?
So this is looking quite promising
Not sure I'm going to get a lot further with it this today as I need to spend a bit of time figuring out exactly how to integrate all the different modes (fairly sure I know how but needs a bit more pondering) but just thought this worth posting in the meantime.
Edit - Take some of that back, the above is about the limit and I don't know how to integrate the different modes yet.
I've also been reading up a bit on Most Torque Per Volt (MTPV) algorithms, in particular, where the operating point should be at each point. Now rather than trying to code stuff up straight away it seemed sensible to test the principle first so here is a plot where I'm trying to over-ride the controllers to force the operating point to roughly where it should be using manualiq and manual id (afraid it only goes up to 2.4krpm because the control loops have an increasing tendency to oscillate if I get it slightly wrong): Now I couldn't get it to go quite where I wanted (and the above took quite a few attempts to get anywhere close) but the peak power is up to 32kW (ish, I saw nearer 35 on one run) and is still up at 24kW at 2400rpm so a gain of around 25%. I'm sure there is more there too once the operating point is right over where it should be (following the Is circle round before heading to the critical current point), at least another 10%?
So this is looking quite promising
Not sure I'm going to get a lot further with it this today as I need to spend a bit of time figuring out exactly how to integrate all the different modes (fairly sure I know how but needs a bit more pondering) but just thought this worth posting in the meantime.
Edit - Take some of that back, the above is about the limit and I don't know how to integrate the different modes yet.
-
- Posts: 1801
- Joined: Sun Apr 03, 2022 1:57 pm
- Has thanked: 102 times
- Been thanked: 347 times
Re: IPM Motors - MTPV
Think so. Part of the problem is that what we are calling fw doesn't work properly for high inductance motors, works well on low L motors but ones like the MGR need a different approach.
Having slept on this it seems a bit clearer now so going to describe my current thinking here to a) try and get it clear in my head and b) allow everyone to pick holes in the logic!
If you look at the plots above fw current starts to come in at around half a second. Now this is way too low a frequency to be caused by back emf, and we are well below base freq, so why is it needed? The MGR has around 20x the inductance of the outlander motors (10x a leaf) so the wLqIq term is huge by comparison and it is this that is causing the voltage to max out, if you look at the plots it is Vd not Vq (as it would be for back emf driven field weakening) that is maxed out. This needs a slightly different approach and that is what MTPV tries to do.
The MTPA algorithm already use works out how we can most efficiently use limited amps to generate torque. MTPV works out how be can best use limited volts to generate torque. The way I'm thinking about it is when you have plenty of volts available MTPA chooses the optimum ratio of quadrature and reluctance torque to give max torque, if the wLqIq terms starts to max out we need to move more towards reluctance torque (more Id, less Iq) so reducing Iq and so Vd and restoring voltage margin. This does take us above the critical current which would be bad if we were above base frequency but the MTPV algorithm allows for this and moves the operating point as speed increases.
The plan is, operate on MTPA untill the voltage margin starts to limit. Use the margin error to drive a move in the operating point from the MTPA calculated point towards the MTPV calculated point. Once the operating point arrives at the MTPV point further reduction in margin then moves the operating point from the MTPV point towards Icrit (effectively backing off the throttle).
The questions are how heavy is the math, can it be done fast enough, would it be possible to pre-compute at start up and use look up tables and does it work!
Having slept on this it seems a bit clearer now so going to describe my current thinking here to a) try and get it clear in my head and b) allow everyone to pick holes in the logic!
If you look at the plots above fw current starts to come in at around half a second. Now this is way too low a frequency to be caused by back emf, and we are well below base freq, so why is it needed? The MGR has around 20x the inductance of the outlander motors (10x a leaf) so the wLqIq term is huge by comparison and it is this that is causing the voltage to max out, if you look at the plots it is Vd not Vq (as it would be for back emf driven field weakening) that is maxed out. This needs a slightly different approach and that is what MTPV tries to do.
The MTPA algorithm already use works out how we can most efficiently use limited amps to generate torque. MTPV works out how be can best use limited volts to generate torque. The way I'm thinking about it is when you have plenty of volts available MTPA chooses the optimum ratio of quadrature and reluctance torque to give max torque, if the wLqIq terms starts to max out we need to move more towards reluctance torque (more Id, less Iq) so reducing Iq and so Vd and restoring voltage margin. This does take us above the critical current which would be bad if we were above base frequency but the MTPV algorithm allows for this and moves the operating point as speed increases.
The plan is, operate on MTPA untill the voltage margin starts to limit. Use the margin error to drive a move in the operating point from the MTPA calculated point towards the MTPV calculated point. Once the operating point arrives at the MTPV point further reduction in margin then moves the operating point from the MTPV point towards Icrit (effectively backing off the throttle).
The questions are how heavy is the math, can it be done fast enough, would it be possible to pre-compute at start up and use look up tables and does it work!
-
- Posts: 730
- Joined: Tue Oct 29, 2019 2:48 pm
- Location: France
- Has thanked: 329 times
- Been thanked: 44 times
- Contact:
Re: IPM Motors - MTPV
Man, you sure have a nuclear power station in that head of yours. I get 1% of what you say, but starting to get an idea of where this is all going.Thanks for all your work!
-
- Posts: 1801
- Joined: Sun Apr 03, 2022 1:57 pm
- Has thanked: 102 times
- Been thanked: 347 times
Re: IPM Motors - MTPV
Thanks guys. Not sure I'd call this work though, it's what I do when I can't face real work I quite enjoy working things out/solving problems/improving things - even if it can be a little frustrating at times!
Little more progress, think I know how to do it all. Decided to graph the algorithms in a spreadsheet first just to make sure what they were doing made sense before trying to port them into the OI firmware. To plots: It looks sensible, above 40Hz (which is roughly where MTPA runs out of steam and fw starts to come in in the above plots) it starts following the MTPV curve and moving current from Iq to Id. This reduces Vd and holds the total motor voltage stable at 200V (this is the value used in spreadsheet for udc/2). Once the speed gets to around 140Hz this is no longer enough and this is where the operating point would need to start moving from the MTPV point towards the critical current point (throttle reduction).
So it all looks like it should work, just need to get the equations into the firmware now...
Little more progress, think I know how to do it all. Decided to graph the algorithms in a spreadsheet first just to make sure what they were doing made sense before trying to port them into the OI firmware. To plots: It looks sensible, above 40Hz (which is roughly where MTPA runs out of steam and fw starts to come in in the above plots) it starts following the MTPV curve and moving current from Iq to Id. This reduces Vd and holds the total motor voltage stable at 200V (this is the value used in spreadsheet for udc/2). Once the speed gets to around 140Hz this is no longer enough and this is where the operating point would need to start moving from the MTPV point towards the critical current point (throttle reduction).
So it all looks like it should work, just need to get the equations into the firmware now...
-
- Posts: 1801
- Joined: Sun Apr 03, 2022 1:57 pm
- Has thanked: 102 times
- Been thanked: 347 times
Re: IPM Motors - MTPV
Some progress but not making quite as much sense as I would like and it doesn't want to transition cleanly into MTPV. I think the problem is mostly that I don't fully understand the mathworks equations that I'm using. Also need check how frq is generated as I'm wondering whether it lags slightly and this is causing the problem.
First the original FW results: Now MTPV with the same settings: So that's around 1.6seconds less time to the same speed as before (8.4sec vs 10sec), 33kW peak, 22kW at 2400rpm and 18kW at 4800rpm (compared to 29kW, 19kW and 14.5kW for the FW code)
Dropping throttle current from 2A to 1.5A gives: 33kW peak, 21kW at 2400rpm and still 18.5kW at 4800rpm so a much less peaky and more usable power curve and not significantly slower.
Question - there is a lot more maths there, it will be more complicated to set up and probably more sensitive to errors in the motor parameters. Is the ~3kW gain across the rev range (~10% at low speeds, ~25% at high speeds) worth the bother?
First the original FW results: Now MTPV with the same settings: So that's around 1.6seconds less time to the same speed as before (8.4sec vs 10sec), 33kW peak, 22kW at 2400rpm and 18kW at 4800rpm (compared to 29kW, 19kW and 14.5kW for the FW code)
Dropping throttle current from 2A to 1.5A gives: 33kW peak, 21kW at 2400rpm and still 18.5kW at 4800rpm so a much less peaky and more usable power curve and not significantly slower.
Question - there is a lot more maths there, it will be more complicated to set up and probably more sensitive to errors in the motor parameters. Is the ~3kW gain across the rev range (~10% at low speeds, ~25% at high speeds) worth the bother?
Re: IPM Motors - MTPV
I think Id be happy with 10% increase in performance, that could equate to around 10kw for me! every little helps
-
- Posts: 1801
- Joined: Sun Apr 03, 2022 1:57 pm
- Has thanked: 102 times
- Been thanked: 347 times
Re: IPM Motors - MTPV
Think I agree having played a little more!
Found a bug in my code so it's working a little better now. Have also added 10Hz to the frequency used for MTPV to force it to give a little more advance. It now transitions into MTPV much more cleanly. Three more plots:
Is=300A: 40kW anyone! (not recommended, right on the limit and only for a few 100ms)
Is=200A: Better behaved than above.
Is=100A: For me this is the winner, just as quick as the FW version but using less current and with a much flatter torque curve
BTW - ignore the FW current trace, it's not current any more and it's just being used for debugging.
-
- Posts: 1801
- Joined: Sun Apr 03, 2022 1:57 pm
- Has thanked: 102 times
- Been thanked: 347 times
Re: IPM Motors - MTPV
Remind me how to turn on over modulation, I'll give it a try.
Edit: can't find anything in the param_prj, guessing it was a custom build? If so it will have to wait.
Edit: can't find anything in the param_prj, guessing it was a custom build? If so it will have to wait.
-
- Posts: 1801
- Joined: Sun Apr 03, 2022 1:57 pm
- Has thanked: 102 times
- Been thanked: 347 times
Re: IPM Motors - MTPV
Thanks, well found!
@bexander - have you been using the over modulation code of the standard code?
Here you go, with over-modulation too.
300A: 200A: 100A: That's another 3kW on the 100A plot! Not bad
That's me about done for today. Think I need to move from an IIR filter to a PI controller to control the limiting. The IIR works well for the FW but I can't seem to get the right response for this, and then need to recheck that transition to coast and decel, but that's for another day.
@bexander - have you been using the over modulation code of the standard code?
Here you go, with over-modulation too.
300A: 200A: 100A: That's another 3kW on the 100A plot! Not bad
That's me about done for today. Think I need to move from an IIR filter to a PI controller to control the limiting. The IIR works well for the FW but I can't seem to get the right response for this, and then need to recheck that transition to coast and decel, but that's for another day.
- bexander
- Posts: 835
- Joined: Tue Jun 16, 2020 6:00 pm
- Location: Gothenburg, Sweden
- Has thanked: 63 times
- Been thanked: 89 times
Re: IPM Motors - MTPV
This is fantastic work!!
I'm running the standard code at the moment. Haven't gotten to the point where I'm ready to test the overmodulated code yet.
It would be great for any increase in power at high rpm for the MGR. The increase at low rpm is a bonus. Really love the power curve in the last 100A plot. And the operating plot look very good to. Looks like 40% increase in power at 4700rpm!
How can I help you develope this further?
EDIT: Just relized, are those last plots with MTPV and overmodulation?
I'm running the standard code at the moment. Haven't gotten to the point where I'm ready to test the overmodulated code yet.
It would be great for any increase in power at high rpm for the MGR. The increase at low rpm is a bonus. Really love the power curve in the last 100A plot. And the operating plot look very good to. Looks like 40% increase in power at 4700rpm!
How can I help you develope this further?
EDIT: Just relized, are those last plots with MTPV and overmodulation?
-
- Posts: 1801
- Joined: Sun Apr 03, 2022 1:57 pm
- Has thanked: 102 times
- Been thanked: 347 times
Re: IPM Motors - MTPV
You've already helped a lot (so thank you!), both in your old posts when I was starting on the simulator, and with the logged data which gave me confidence that the simulator was getting close enough to reality to start looking at things like this. Plus it was that Lexus plot you found that convinced me that MTPV would be worth another look. Without having a car or motor to test on myself real data is the thing I'm short of so your data has been fantastic.
Yes, the last plots are with over-modulation (will edit above to make clear). The MTPV stuff gives around +25% at the top end and then the over-modulation another 10%.
Yes, the last plots are with over-modulation (will edit above to make clear). The MTPV stuff gives around +25% at the top end and then the over-modulation another 10%.
Re: IPM Motors - MTPV
I know it’s early doors but you know I’m always happy to test new code in the car!
-
- Posts: 1801
- Joined: Sun Apr 03, 2022 1:57 pm
- Has thanked: 102 times
- Been thanked: 347 times
Re: IPM Motors - MTPV
Thanks! Likely to be towards the end of the week before its ready for real world tests, will let you know.
-
- Posts: 1801
- Joined: Sun Apr 03, 2022 1:57 pm
- Has thanked: 102 times
- Been thanked: 347 times
Re: IPM Motors - MTPV
While I was looking at your syncadv value in the simulator I decided to try the MTPV algorithm on your setup. Not sure I have your parameters quite right but it gives the general idea (both these are without over-modulation):
Std FW: MTPV: Edit - probably got the voltage set too high so these might both be a bit optimistic but the delta still gives an idea of the difference.
Edit2 - The power curve does benefit a bit from higher ki (2000) with MTPV but your value seems to work better on FW. I think the slightly slower loop response is helping move the operating point slightly in FW in a way that helps prolong the peak power!
Edit3 - And one more plot, MTPV but with ki=2000, offers better control of the current at higher speeds and straightens the torque curve. Note that I have had to reduce the simulation time from 5sec to 3.4 sec to maintain the same terminal speed.
-
- Posts: 1801
- Joined: Sun Apr 03, 2022 1:57 pm
- Has thanked: 102 times
- Been thanked: 347 times
Re: IPM Motors - MTPV
It's looking promising but needs a bit more tuning, can't think clearly enough tonight though so will have to wait till another evening, hopefully have something by the weekend
- celeron55
- Posts: 776
- Joined: Thu Jul 04, 2019 3:04 pm
- Location: Finland
- Has thanked: 28 times
- Been thanked: 110 times
- Contact:
Re: IPM Motors - MTPV
Those plots are starting to look like the MGR is going to be able to propel my second minivan into highway speeds at 360V! And I like seeing peak torque getting closer to 1000Nm. That's fairly crucial also.
-
- Posts: 1801
- Joined: Sun Apr 03, 2022 1:57 pm
- Has thanked: 102 times
- Been thanked: 347 times
Re: IPM Motors - MTPV
Had another look at this and it doesn't handle regen very well, essentially it doesn't allow enough Iq to do any significant regen when past base freq
Need to go back and review the MTPV equations to see what I'm doing wrong.
Need to go back and review the MTPV equations to see what I'm doing wrong.
-
- Posts: 1801
- Joined: Sun Apr 03, 2022 1:57 pm
- Has thanked: 102 times
- Been thanked: 347 times
Re: IPM Motors - MTPV
So had another look at the equations and have decided that the Mathworks MTPV equations aren't a complete solution - kind of explains why they are half as complicated as all the other references I've found. All the other equations I have come across are either too complicated or too poorly documented to try and do in real time. If anyone knows of any good MTPV references please post links to them.
Not all doom and gloom though. The work so far has convinced me that with the right operating point there is at least another 25% torque to be had at higher speeds on motors like the MGR. It has also given me a good idea of how the operating point needs to move. It should be possible to produce something close using an approach that I tried before. At the time it didn't give great results but I'm hoping that it can be improved.
Not all doom and gloom though. The work so far has convinced me that with the right operating point there is at least another 25% torque to be had at higher speeds on motors like the MGR. It has also given me a good idea of how the operating point needs to move. It should be possible to produce something close using an approach that I tried before. At the time it didn't give great results but I'm hoping that it can be improved.