Axiom: a 100kW+ motor controller

lizardmech said:
What does the rotor look like though? If it's an IPM motor with reluctance torque, controlling it will be different to a conventional motor with surface mounted magnets.

Yeah, we need to know that. I'm confident I can provide support for IPM in a reasonable timeframe. Not sure how to perform parameter detection (Ld and Lq) but supporting MTPA is doable. If you take it apart show us a picture of the rotor, we need to know if the magnets are on the surface of the rotor or inside the rotor.
 
marcos said:
lizardmech said:
What does the rotor look like though? If it's an IPM motor with reluctance torque, controlling it will be different to a conventional motor with surface mounted magnets.

Yeah, we need to know that. I'm confident I can provide support for IPM in a reasonable timeframe. Not sure how to perform parameter detection (Ld and Lq) but supporting MTPA is doable. If you take it apart show us a picture of the rotor, we need to know if the magnets are on the surface of the rotor or inside the rotor.

I will see about taking it apart later......I may have to as it is in the trunk of my car and it is a little heavy for a one time lift!
 
Got round to taking the motor out of the car - one day it will be going back in...….. :D

lift.jpg

In order to get a glimpse at the rotor I removed the inspection cover for the resolver. Looks like there is opportunity to change the timing :twisted:

resolver.jpg

I am hoping that through this little window that you can determine what you need from the rotor. My feeling from a little research is that this is an SPM rotor. But what do I know!
rotor.jpg
 
That adjustable resolver angle shouldn't be needed. The board should be able to find the exact resolver angle from a GUI menu using a sensorless start. Having said that, its nice to have the option to adjust that, resolver offset is usually difficult to tune.

I can't see the magnets in that rotor, so I have no clue if they are inside or in the surface :/
 
marcos said:
I can't see the magnets in that rotor, so I have no clue if they are inside or in the surface :/

Taking the other end off the motor is tricky, as there is a great big magnet holding it in place! Any tips?
 
bigdaveakers said:
marcos said:
I can't see the magnets in that rotor, so I have no clue if they are inside or in the surface :/

Taking the other end off the motor is tricky, as there is a great big magnet holding it in place! Any tips?
Perhaps measuring phase inductance with an LCR meter at different rotor angles. An IPM has the characteristic of having a minimum and maximum inductance, while SPM in theory™ has a flat inductance

IPM inductance:
RTEmagicC_AAM1702_WEB_Perm_Mag_VFD_fig-1.jpg.jpg


The IPM parameter detection we should implement someday is based on measuring these min and max inductances.
 
as i know the magnets are inside the rotor ...and this is so that if they break then they remain inside the rotor in the same position ...the only difference is their geometric arrangement ...Tesla on model 3 uses Halbach Magnet style

New Bitmap Image (15).jpg
New Bitmap Image (12).jpg
View attachment 2
 
Abricosvw said:
as i know the magnets are inside the rotor ...and this is so that if they break then they remain inside the rotor in the same position ...the only difference is their geometric arrangement ...Tesla on model 3 uses Halbach Magnet style

So this seems to suggest it is likely to be an IPM...….

Thanks!
 
It was likely an IPM motor, but we can't tell for sure until we see that motor rotor. If its an SPM the current will work out of the box.
If its an induction motor (unlikely) we are not quite ready to provide ACIM FOC support, it has to come after IPM support, because of the likeliness of these control board users having IPM's.
 
Today Benjamin published a major firmware and GUI update, over 11k new lines of code providing support to UAVCAN CANbus protocol, commonly found in drones and aero stuff.
It also improves the networking between controllers, now you can broadcast a firmware upgrade, and broadcast a motor parameter detection for example so all motors in the network will configure themselves, and the greatly improved flux linkage measurement.
You can set battery parameters and gear ratio in order to estimate actual speed and battery level, and the android GUI has been released as well. There are new tools to sweep and plot parameters that I need to learn how to use.

Today he also merged our board support package, thats >40 commits with various features that are now mainstream into the vesc project including extended watchdog coverage, much higher PWM capabilities, Continuous Integration, static code analyzer checks, the FPGA stuff, DAC for debugging, deadtime register calculation, flash write protections, etc
https://github.com/vedderb/bldc/commits/master

:bolt:
 
tecnologic said:
marcos said:
If this actually works I'll need help from someone with motor modelling skills.
When u are there give me a ping I can supply u with the equations in c/c++ code.
I think I'm there...
 
Great forum, great controller, great community :bigthumb: I'm just joining and haven't read through the whole forum yet.

From all I could educate myself so far, this is not a perfectly optimized VESC controller for my application - but probably the best one I can find without doing everything myself (which I'm doing in parallel anyway)...

I need a very niche application for a scientific experiment and I especially like, that the controller is separate from the gate drivers.

My goal: drive a 3 phase motor with PWM / FOC, but I require only a few amps - but in exchange with very high frequency (20kHz - 4 MHz, the higher the better) and very high voltage spikes (10kV - 100kV the higher the better). Oversimplified: the idea is to make use of the very high back EMF currents to help with torque. By doing this we're moving more into the field of RF instead of AC/DC...

(I'm expanding more from the theoretical side over to the practical application to make an actual prototype. Therefore I have a fast brain, a left and a right hand - but very little practical experience and open to all hints and tips)

This comes out of new cutting edge physics and you won't find anything on this in the established physics literature yet. This experiment should basically proof / falsify the science, so I don't care so much about opinions (based on old physics), but need to produce actual data and technical hints & tips on how to make it work with this controller. Or if you know of another controller, that would suit my needs better (for example way less Amps, but also independent of the gate drivers) - that would be welcome as well :)

=> if I struck somebody's nerdy nerves and would like to collaborate on this - you're more than welcome. :)
 
tecnologic said:
Have a look here :)
http://cpp.sh/33vcz

In case of questions just ask. Maybe in a seperate Thread?
Thanks! Looks very good, will try it out today.

soaring said:
My goal: drive a 3 phase motor with PWM / FOC, but I require only a few amps - but in exchange with very high frequency (20kHz - 4 MHz, the higher the better) and very high voltage spikes (10kV - 100kV the higher the better).

I should check my notes, but at 50kV you are using switches designed for megaWatt-class converters and multilevel topologies, like a series string of several 1700V SiC mosfets or IGBTs. For less costs you would need to design a low current powerstage but with multilevel topology, fiber optic gate driver input, some very well isolated DC/DC converters for the 6 gate drivers and a way to measure such high BEMF. Sounds like a lot of dangerous work!
 
marcos said:
Thanks! Looks very good, will try it out today.

:bigthumb:

soaring said:
My goal: drive a 3 phase motor with PWM / FOC, but I require only a few amps - but in exchange with very high frequency (20kHz - 4 MHz, the higher the better) and very high voltage spikes (10kV - 100kV the higher the better).

What do u want to build? A Tesla coil motor? And what shall be 4MHz? The switching frequency? When u are talking about spike voltages u mean to miss use the device as a tesla coil or rail gun driver? Then u dont need that expensive components to switch 100kV. Just some SiC FETs. But the Frequency would be still a problem. So what is ur application???
 
Hi ...
I bought SPM motor To be sure that the inverter (driver) that I assembled works correctly ...)))
I also replaced the parts from AMC1301DWVR to AMC1311BDWV all 4 units ... i replace to R9 = 8.2k and R10 = 0 Ohm ...
and it doesn't quite work right see video ...
[youtube]https://youtu.be/CjrXcEVsuvY[/youtube]
View attachment 5
View attachment 4
IMAG0475-min.jpg
IMAG0476-min.jpg
View attachment 1
IMAG0481-min.jpg
 
marcos said:
I should check my notes, but at 50kV you are using switches designed for megaWatt-class converters and multilevel topologies, like a series string of several 1700V SiC mosfets or IGBTs. For less costs you would need to design a low current powerstage but with multilevel topology, fiber optic gate driver input, some very well isolated DC/DC converters for the 6 gate drivers and a way to measure such high BEMF. Sounds like a lot of dangerous work!

:warn: you won't find much on the output side of my project in your notes or any physics book.

:bolt: You're spot on with the multilevel topology and well isolated DC/DC. I'm planning to use a car 12V battery with up-conversion (DC chopper plus capacitor) to 400VDC for the gate drivers - or alternatively a BMS with 120 18650 LiPo's in series... For my home-brew project I plan to use an Arduino as the brain and then to magnify the signal like this:

Bildschirmfoto 2019-02-22 um 10.39.39.png
This times three - one for each phase plus sensing for the Arduino (33kOhm @ 5W resistors)

That's what my breadboard schematic looks like at the moment:


I certainly have to be cautious with some parts of this project (400VDC). But while the output is at 20-50kV+ - the duration of the pulses is only nano-seconds and the amps trend towards zero. As said, the input amps are only 1-3 Amps, max. 10 Amps for the bigger motor...
At 20kHz plus and only micro-amps per pulse we get as well the skin-effect where current stays on the surface of the skin and doesn't penetrate. We are in RF land and not so much in AC/DC anymore... That's basically what the conclusion of my research is: We don't only have AC & DC - there is a third way (we mostly used for over the air communications) which combines the advantages of AC and DC - and this is RF. We can build much safer electric cars and appliances this way.

I need as clean DC-pulses as possible. Pure PWM, not even a hint of a sine wave. Once I'm done magnifying the signal, you can touch both poles and all you feel is a light humming - no shocks - even at 50KV+...
The fascinating thing is: you get way more torque out of a PWM-DC motor with that method than what you'd traditionally expect. My hypothesis is, that driving a motor in this way, you're using it as well as a BEMF transformer to create torque and current. You drive it with volts instead of amps - the amps are created in the motor itself by the BEMF of the RF signal.
You're not that far off bringing up Tesla (and Tesla coils). I guess he hasn't only invented AC and pretty much everything that powers the world today. He probably was tinkering around exactly with what our research is closing into as well - but that is speculation at this moment in time.
I like to think of it like high-voltage transmission lines. They're not actually AC - they transmit a DC potential at 50/60Hz. I'm just increasing the frequency to take the danger out of it - and if this cutting edge physics I'm working on is correct, we hit the self resonance of the oscillating space quanta bubbles that are the smallest building blocks of the vacuum (the superfluid medium for the electromagnetic waves). By pulsing them with their resonant frequency (best guess at the moment is 3.6-4.0 MHz) - or it is probably easier to just hit them at a lower harmonic frequency at 20 - 400kHz. The higher the frequency, the less current you need per pulse, as long as you hit and stay with the resonant frequency or a harmonic thereof...
As a hint: have you ever wondered, why EVERY electromagnetic formula has it's equivalent in a fluid dynamic formula? It's because the vacuum IS a superfluid like medium, made of 100% space. Space isn't continuous but comes in discrete packets. The Planck length is where our 4 dimensions are truncated. There is as well space within space - and space between space. For a full explanation: https://vimeo.com/9830121

My application:
- drive a 3 phase motor with PWM / FOC
- use a high voltage RF signal to transmit the DC potential to the motor (gate driver and IRFPG50 power mosfets for example)
- use the resulting BEMF in the motor to create an incredibly efficient, high torque motor that can be used to drive pretty much anything that moves
Bonus:
- if successfully pulsing /synchronizing the oscillation of the space quanta that give rise to the volume of the vacuum within the electromagnetic field created within and around the motor (the higher the applied voltage, (and the bigger the diameter of the motor), the bigger the volume of the space quanta involved, the higher the torque that is achievable.
This could be a way to tap into the vast amounts of energy stored within the vacuum. One cubic meter of vacuum contains enough energy to evaporate all oceans of the earth - so far we just don't know how to extract it. This could be one way and to test this hypothesis, I have to actually build an experiment and proof it with reproducible measurements. I'm not here to waste anybody's time with romantic pseudo-science...
If that part is successful too, you could power a conventional generator with this system. The first law of thermodynamics is not violated, as it is only applicable for CLOSED SYSTEMS. The closed system in this case is our whole universe. If the full story of our reality is only 4-dimensional, this technique will not work. If our reality is 11-dimensional as proposed by Quantum Space Theory QST, based on Bohmian mechanics instead of QM, and superfluid vacuum theory SVT - there is a good chance that this thing will work.

If you wanna know more about the theory behind it: www.facebook.com/QuantumSpaceTheory/

I'd happily explain you more about it, but for that we should probably open a new thread. I didn't intend to highjack this one, but I guess questions had to be expected :?: :mrgreen:
 
I think I burned again AMC1311BDWV 3units ...
I have extra so I will replaced today and we see if it's start working ... I think it's amc1311 is burned when I try to do FOC settings on my IPM ... is possible ???
 
Abricosvw said:
I think I burned again AMC1311BDWV 3units ...
I have extra so I will replaced today and we see if it's start working ... I think it's amc1311 is burned when I try to do FOC settings on my IPM ... is possible ???

Could you email so we can set up an online debugging session? Does that computer have internet? If not we can chat, will make debugging much faster.

You can check if amc1311 is being supply with 5.0v, and if the dc/dc transformers of those amc1311 are in good shape. If you somehow drive >2.5Amp through those little transformers you can compromise the isolation, so check if transformer looks good. I found this potential issue recently, not a problem when machine assembled, but it happened to me when I hand assembled that circuit with a solder blob shorting SN6501 pins.

I'll point you to a new C function to measure flux linkage (the step that seems to get stuck) and check if the motor parameters are okay. (sample in v0 and v7 = false; less than 15khz switching freq; deadtime compensation).

First thing I would try is setting sample in v0 v7 = false (FOC-> advanced). I recently found I was using the CPU too close to 100% utilization, sampling only in v0 halves cpu utilization and it works equally well.
 
soaring said:
Snip

I'm not here to waste anybody's time with romantic pseudo-science...

If that part is successful too, you could power a conventional generator with this system. The first law of thermodynamics is not violated, as it is only applicable for CLOSED SYSTEMS. The closed system in this case is our whole universe. If the full story of our reality is only 4-dimensional, this technique will not work. If our reality is 11-dimensional as proposed by Quantum Space Theory QST, based on Bohmian mechanics instead of QM, and superfluid vacuum theory SVT - there is a good chance that this thing will work.

If you wanna know more about the theory behind it: www.facebook.com/QuantumSpaceTheory/

I'd happily explain you more about it, but for that we should probably open a new thread. I didn't intend to highjack this one, but I guess questions had to be expected :?: :mrgreen:

Go away, you are wasting everybodys time with your BS. You are wrong in your understanding of electricity. Open a new thread and be gone.
 
Well - it is possible, maybe even likely that I'm wrong. That's why I'm doing an experiment to falsify or proof the theory. In the mean time I don't care about your opinion :roll: But I will open a new thread as I've already realized that my project is too far off topic as soon as I start to answer questions...

For the moment, my question remains unanswered. Do you guys think that your modified VESC could be the best base for controlling the high voltage stages or am I better off with my Arduino approach. I really liked the many options & parameters the VESC software offers out of the box...
 
soaring said:
For the moment, my question remains unanswered. Do you guys think that your modified VESC could be the best base for controlling the high voltage stages or am I better off with my Arduino approach. I really liked the many options & parameters the VESC software offers out of the box...
STM32F40x are not the right tool for high pwm frequencies. They use 16bit timers feeding from a 168Mhz clock source, you get a poor timer resolution, at 4MHz your timer can only count from 0 to 42. At 21kHz the timers can count from 0 to 8000.
There are specific mcus with high resolution timers in the STM32F3 family with 4GHz timers, I used them for fast GaN swtiching applications. TI also offers hrpwm peripherals.

Also, your application is R&D, so I reckon I will inevitably tend to steer my focus helping people/applications that can actually help future users. If you succeed testing your powerstage with a double pulse test at 10kV, then I may encourage ordering this control board.
 
marcos said:
soaring said:
For the moment, my question remains unanswered. Do you guys think that your modified VESC could be the best base for controlling the high voltage stages or am I better off with my Arduino approach. I really liked the many options & parameters the VESC software offers out of the box...
STM32F40x are not the right tool for high pwm frequencies. They use 16bit timers feeding from a 168Mhz clock source, you get a poor timer resolution, at 4MHz your timer can only count from 0 to 42. At 21kHz the timers can count from 0 to 8000.
There are specific mcus with high resolution timers in the STM32F3 family with 4GHz timers, I used them for fast GaN swtiching applications. TI also offers hrpwm peripherals.

Also, your application is R&D, so I reckon I will inevitably tend to steer my focus helping people/applications that can actually help future users. If you succeed testing your powerstage with a double pulse test at 10kV, then I may encourage ordering this control board.

Thanx a million - that was a very helpful answer. I'll let you know if my experiment succeeded or not. If my approach works, it will help everybody on this planet...
 
tecnologic said:
marcos said:
Thanks! Looks very good, will try it out today.

:bigthumb:

Big thanks to tecnologic:
https://github.com/vedderb/bldc/pull/82

With this signal injection we can now make the microcontroller think it is running a PM motor. Will lay the groundwork for algorithm development and deeper automated testing.

Virtual motor startup:
View attachment 2

Pull request awaiting for review and hopefully merge into vesc mainstream.


I also provided support for sin/cos encoders a few days ago
https://github.com/vedderb/bldc/pull/81

It takes a sine/cosine signal looking like this

sincos.png

And decodes it into a rotor angle like this



Also adds some plausability checking, and reports a fault if its not plausible. Details in the pull request. This one its only suited for our hardware because the analog signals are buffered and protected. Any other vesc variants would expose the ADC pins to damaging noise levels occurring near the motor.
 
marcos said:
I also provided support for sin/cos encoders a few days ago

This is something I've been waiting for. Large PMAC and similar motors have sin/cos encoders instead of hall sensors. This will be great for high wattage VESC designs like for what you and @galp are working on. This work is invaluable for scaling up the VESC based designs into some serious transportation applications. Move aside SEVCON and take your BS programming with you!
 
Back
Top