This is the second of two explainer videos I’ve created to help YouTube viewers understand the concepts, terminology and physics of what’s going on in my Caterham Seven EV conversion.
I’ve made these two videos so I can refer back to them in my progress videos and so I don’t need to explain each concept again and again.
The first video (here) covered the basics of the two different forms of electricity used in an EV, Alternating Current and Direct Current.
In this second of the two explainer videos I cover all the components I’ll be using in my minimialist EV conversion.
I had initially scripted these explainers as a single, long video. But it soon became apparent that it was going to be too long, and separating the material into “electric” and “components” seemed to make for a good delineation. I did do a few scripts with three separate parts, but in the end that was going to be way too much for anyone to stomach!
TLDR;
Ok, so the “Too Long Don’t Read” of this video is that this video is a whopper!
This video and it’s sibling (here) have taken me 8 months to produce. The 9 minutes of the first video and the 19 minutes of this second have taken FOREVER to get done, and don’t really reflect the time that’s gone into them. I’ve created countless 3D models, animations and scripts, and then editing it all together has taken an age too.
If you want me to put a number on it, then I wouldn’t be surprised if the two videos took well over 500 hours to create.
Most of the 2D animations (block diagram, battery cell animations, battery animation, AC and DC simple circuits) were done in Apple Motion (the final video is done in Final Cut Pro).
The 3D animations are all created in Blender (motor internals, car, car and charger, car being charged, fast charger scene, torch and house being lit etc ).
The biggest of those tasks has been the Motor Internals animation in Blender, see below.
Motor Internals
The Motor Internals animations are a simplification – because a real Permanent Magnet Synchronous Motor (PMSM) would have both more stator windings and more permanent magnet poles. I may make a future video that better replicates both aspects, but that would be more to create a WOW! Factor rather than being particularly useful as an explainer. It would be fun to do though!
It never ceases to amaze me what Blender can do, and for that matter what I can do in Blender.
This set of “Motor Intnerals” videos took me about a week to create initially (probably with 8-10 hour days). But was then iterated on for a few more weeks as I refined what I wanted the animations to show.
What I’m really proud of is the “real” physics of the animations. The crux of this is that the currents in the stator windings (green blobs: size, direction and speed) along with stator magnetic fields (the semi-transparent stator fields) are all “reasonably” accurate. The animations use Blender Geometry Nodes to calculate the conceptualisations accurately.
The size of the green blobs and their speed, reflect the sinusoidal nature of the currents in the stator. Likewise, the magnitude of the generated transparent magnetic stator fields are also representative of the flowing currents (see below) – again the field size is also sinusoidally driven.
In a similar vein, the green “force bars” depict the forces that would be created between the stator fields and the permanent magnet fields (again, see below).
I really struggled to come up with a concept for the forces being created by the magnetic field interactions.
At one point I’m ashamed (as an electrical engineering graduate) to say that I completely got the workings of a PMSM wrong. There’s whole ‘nother layer of complexity to PMSM’s where Clark and Park transforms are used to determine D and Q vector spaces. I’d completely got the way they work wrong and so I created a set of animations where throttle pedal position was used to modulate torque by changing the angular separation of the stator and rotor magnetic fields, i.e. adjusting current in the D direction.
I now appreciate that this angle is what determines the “field weakening” aspects of a PMSM (something I totally don’t go into in this video) and which meant I had to recreate the animations for and re-edit that section of the video. HOWEVER, this was a huge educational point for me. I did a ton of power and motor electronics in my under-graduate electrical/electronics engineering course but I graduated in 1989, and PMSMs didn’t really exist then. The powerful neodymium magnets used in PSMSs weren’t commercially viable then, so we didn’t cover how these motors work in my course.
Fortunately, YouTube came to the rescue and just by chance looking for something else, YouTube served me up a video on how motors work from Jentzen Lee and I did the “matrix spike in the base of the brain” thing and I had a “I know kung-fu” moment.
Here’s Jantzen’s first video in his playlist. I suspect this video is only useful if you’re an electrical graduate, it’s easy to follow, but perhaps only if you’ve got a good grasp of the maths and physics going on. It’s also not specifically about PMSMs… and he talks about these being DC motors where we would more normally think of them as AC… but the series is really good if you want to get deep and dirty in the physics…
To be honest, I’m still not totally sure how practical implementations of PMSM’s drive their Q and D parameters. It seems many motors might assume that the max speed of the motor can only be achieved with field weakening. This is something I’m going to have to get my head around when picking a motor and inverter pairing.
Motor Internals – BlendEr
Ok… so the Motor Internals animations were created in Blender… over, initially, a few days, but in total over a few weeks.
The process is a bit of a “standing on the shoulders of giants” thing, or at least my shoulders. The animation is really five parts.
- Modelling
- Stator Current Animations
- Stator Magnetic Field Animations
- Stator Cooling Animations
- Python
Let’s go into way too much detail about each of those…
Motor Internals Modelling
This was actually fairly straight forward. I modelled the stator, stator windings, rotor, rotor output shaft and a stator magnetic field all in the regular modelling space – see models in image below.
The one, perhaps, unusual thing, is that I modelled the stator windings as a curve and not a mesh. Using a curve probably does make a lot of sense, but it was mainly because I could use something I’d developed previously (standing on the shoulders of giants) to animate the coolant flow in a Duratec engine (still not released – grrrr!!!!).
I won’t go into the details of the Geometry Nodes setup, but the fundamentals of it is that I modelled a curve in the viewport, then took that curve into Geometry nodes to give it thickness and animate the blobs onto it. I go into more detail in this post.
These models were created quite quickly in a few days. What took longer was the “conceptualisation” of what I wanted to say, and therefore the back and forth between Final Cut Pro and Blender to hone a set of animations that told the story the way I wanted. At least I am now proficient enough to be able to execute these animations in Blender the way I visualise them in my head. Then its just a case of getting the visual right in the void between my ears!
Stator Current Animations
The green blobs and mesh renderings of the stotor windings is done using Geometry Nodes. This was a rip-off from the Duratec cooling animation work that I’ve been working on for years. However, the blobs moving along wires was like the arrows moving in the pipes of the cooling animation, and so I could snarf most of the Geometry Nodes setup and re-use it.
The difference here though is that the blob size and speed needed to be proportional to the current flowing in the coils.
And this is where I cheated a bit.
In a real motor the stator currents will drive the rotation of the rotor. I probably could have modelled it this way, but it was actually easier to animate things the other way around… I animated the rotor, in Python (see below), and then derived the stator currents, and for that matter the magnetic fields we talk about next, from the rotor’s rotation.
So, the Geometry Nodes setup for the stator windings takes inputs of a rotational object (the rotor), an angular offset (so the same Gemetry Nodes setup can be used for all three stator windings) and various other parameters such as winding diameter and the textures used to render the windings and the current blobs.
Stator Magnetic Field Animations
This one was also a Geometry Nodes setup. But much simpler than the stator winding GN.
In this instance I just took a rotation object (the rotor) and used its angle to determine a Z-scale that I applied to the Rotor Magnet meshes.
That way the stator magnets grow and shrink as the rotor rotates.
Stator Cooling Animations
This is another Geometry Nodes setup, and a direct copy of the Duratec Cooling Animation arrows.
I did decide to do this animation after I’d already built and animated the rest of the model. So I had to add “cooling channels” and “cooling beziers” that ran inside the channels.
There’s then three of each cooling channels and cooling beziers. There’s no correlation between rotor angle and these animations.
Force Vectors between Magnetic Fields
This one probably didn’t come off as well as I’d hoped. You can see in the image below that I overlaid green bars between the stator generated magnetic field and the rotor’s permanent magnets.
The green bars don’t really jump out as being the forces between the magnetic fields. I really wanted arrows showing the direction of the field, and probably for them to be colours to show which was pulling and which was pushing.
I tried arrows, but it was proving too tricky to get the arrows positioned and scaled so they showed well through a full rotation of the rotor. I also ran out of time trying to figure out which vectors were push and which were pull.
Perhaps this is something I’ll come back to and put out a short with the updated vector rendering.
Motor Internals Python
Now we’ve got all the models and they’re animated, we need a bit of cinematography…. I.e. I (mainly) used Python to animate a camera rig when I wanted orbits of the animations.
The one caveat to this is that I “animated” the rotor spinning in Python. That way I could synchronise the rotor doing complete rotations before/during a camera orbit – I didn’t want a camera orbit to start before I had one complete non-orbiting rotor rotation.
I use Python to do these cinematic orbits etc, so I can change the duration of the orbits, how close the camera is to the subject and other stuff like frame rate, without having to re-keyframe the whole animation. By using Python to create the key frames, I can tweak lots of parameters and automagically recreate the key frames at a single keystroke – that would take forever if the key frames were generated manually!
Simplified EV Block Diagram
Which brings us on to an Apple Motion Block Diagram generator.
Like most of these animations, this Apple Motion project started off in much simpler form. Over the months it took to get these videos done, the generator evolved to allow animations of all the various current flows but also to reverse their direction when going from motoring to generating.
Below is an image of the block diagram showing the motoring mode. And below that is the parameters published from Motion to Final Cut Pro to control the animation.
This generator has many features controlled through the various object’s opacity, including three phase AC animations on the connections that carry AC.
One of the last features to be added to the generator was the addition of some interlock animations. The interlock circuit can animate itself into the diagram, show a break in the line, and can have a glow halo added. All these features were used in the video to emphasise how the interlock worked and what happened when any of the connections were broken.
Charging Animations – Blender
There were also a few charging animations created in Blender.
The first is “drive by” animation of a few Sevens and an ID3 being charged at a fast charging hub. The green and blue Sevens are a nod to two projects I know that are working on EV Sevens. The purple car in the foreground is obviously a nod to my Purplemeanie and the ID3 is there a) because I have an ID3 and b) because I have an ID3 I also bought a 3D model of the ID3 to use in exactly these sorts of situations 😉
Next we have a pair of animations showing current (green blobs) charging a Seven EV chassis, one animation each for fast and slow charging. The fast charging animation uses a fast charger model downloaded from the internet. The second slow charging animation is of a MyEnergi Zappi home charger that I have installed at my house.
Both these animations use the same Blender Geometry Nodes setup that I’ve used a number of times to animate current on a curve (the Motor Internals animations above) and the coolant flow in an ICE engine that I’ve also talked about (but still haven’t published).
Leave a Comment