How to simulate brushless machines

By Nigel Atkinson

This blog post will explain how to simulate brushless electrical machines using Opera. The analysis process will be described using a real motor as an example: the traction motor in the Toyota Prius 2004 model.

The brushless machine is one of the most widely used electrical machines, covering all power ranges and sizes. The main advantage that this motor type has over others is its high power density, which is due to the permanent magnets. Since this type of machine has been around for a long time, many analytical and lumped parameter models have been developed which can help designers in the initial stage of sizing and performance estimation.
However, the introduction of stricter efficiency requirements over the last few years has meant that machine designers need to “squeeze” all the marginal improvements they can from established designs. For this, the accuracy of finite element simulation is needed. And only finite element analysis can address some of the more complex issues facing designers such as drop-off in performance with temperature, initial magnetization of the magnets, or unintentional demagnetization under fault conditions.

Opera’s extensive development over 30 years means it has a proven track record in the design of electrical machines, power systems, particle accelerators, medical devices, and a wide variety of other applications. Opera offers a range of FEA modules, enabling accurate robust solution of multiphysics problems in low and high-frequency electromagnetics, thermal, and stress domains. It also has a fully integrated optimizer. Opera is based on a scripting language, augmented with Python, which allows automation of all the steps in the modelling process, and customization of the user environment. Built upon the scripting facilities offered by Opera is the application-specific environment designed for Electrical machines (both in 2d and 3d format).

This template-driven application is designed to offer an intuitive interface for machine designers to build and setup their analyses. At the same time it integrates extensive technical knowledge about machine design into its setup and post-processing stages, in order to offer the user the full capabilities of the Finite Element solvers in a format that is useful to them.

The interface removes the complexity of setting up and post-processing FE models while at the same time making use, in an optimal way, of the accuracy and performance that finite element solvers can provide. Some typical examples of results that the machine designer can obtain directly from the Machines Environments are: torque vs. angle curves, back-EMF, cogging torque, torque vs. speed characteristics, etc.

The model chosen for analysis is the electrical traction motor of the 2004 Toyota Prius hybrid vehicle. The permanent magnet brushless motor has been extensively characterised by the Oak Ridge National Laboratory in the US and the complete set of design and performance data is publicly available. The device is an 8-pole, 50 kW motor designed to deliver it’s maximum power at a base speed of around 1200 rpm. However, by using a boost capacitor and a flux weakening method, the motor is regularly working at speeds of up to (and above) 3000 rpm. The set of electromagnetic data published by Oak Ridge include, among others, back-emf curves (for a wide range of speeds), static and dynamic torque and torque vs. speed characteristics.

In order to build the device in the Machines Environments, we start by setting the machine type and units in which we will be working. Starting from the default machine template we modify the geometric dimensions in order to match the machine design. The number and shape of stator slots can be modified to create the exact stator configuration.

For brushless machines, an extensive list of rotor topologies are available.  For the Prius motor we choose an embedded magnet rotor type, with two magnets / pole (V-shape topology). Along with the geometry definition, the Machines Environments will also set the material properties, drives and symmetry options. The user can provide a custom BH file for each of the individual parts of the motor (for example stator core, magnets, insulator, shaft, etc).
Based on the type of analysis which is being chosen, the Machines Environments will select the correct type of excitation (be that a current-driven conductor or a fully customisable electric circuit). The user only needs to specify the properties of the relevant components, for example phase resistances and inductances, parameters for voltage source, etc. Based on the topology of the device, the Machines Environments will also determine the correct symmetry conditions so that the minimum required section of the machine is analysed in order to optimise the analysis throughput.

The mesh is also handled automatically by the Machines Environments, with the use of scaled mesh sizes in the different parts of the machine. This ensures that sufficient mesh resolution is achieved in the relevant sections of the machine, while keep the mesh elements to a minimum in regions where the fields are negligible (for example in the shaft or outer air regions). In order to offer more flexibility to users and to allow for rapid machine characterisation, a new option has been introduced in the 3d Machines Environments.

The user now has the possibility of building the full 3d model through the Machines Environments but decide to solve only a 2d cross-section of the model. Hence, the computation time can be drastically reduced by solving just a 2d approximation of the model. In this way, the user can perform a quick evaluation of the design before deciding to solve a full 3d simulation.

The advantage is that a single model is being built and the user can easily switch between solving a full 3d model or the 2d approximation depending on the requirements. In some of the following analyses we will be employing the 2d slice option for the Prius motor.

Apart from modifying the main geometric parameters of the model, the users also have the possibility of running custom-built scripts at various points during the build stage (for example when building the rotor poles) in order to allow a complete flexibility in the model design.  If the model contains non-standard geometric features these can be added or modified using these user-defined commands. Once defined, the scripts will be included in the model building stage for that particular design, so that future runs of the same model will automatically include the custom features.

Entire parts of the model can be modified or even replaced using these custom made scripts. We will be using this facility (of building custom geometric features) in the Toyota Prius model in order to modify two important features:

  • one is the shape of the rotor punching which enclose the magnets. By changing the shape at the tip of this region, the flux paths in the rotor will change along with the performance of the motor
  • the second modification is the indent in the rotor, which will also help to limit the leakage flux and maximize the quadrature-axis reactance As we will see, these non-standard modifications to the geometry of the Prius motor will prove to significant in the overall performance of the motor and are only made possible by the use of customizable geometry building.

We can now look at the results obtained from the various analyses available in the 3d Machines Environments. These cover all the necessary tests that are required to fully characterise the machine from an Electromagnetic point of view. The first of these analyses is the cogging torque analysis. This is performed as a series of static jobs, which are automatically built, solved and post-processed.
There is no current set in the conductors and the gap mesh is very fine. This is a crucial requirement when doing cogging torque analysis because of the high cancelation fields and the small rotation angle (usually equivalent to one or two stator slots) We can now see the results obtained from the cogging torque analysis where the rotor was moved for 7.5 mechanical degrees. The effect that the customisations done to the rotor have on the machine performance can be easily seen. The peak cogging torque is reduced by around 20% and the overall shape of the curve is smoother. This will result into a more efficient use of the power available coming from a reduction in torque ripple and ultimately will result in less vibration and noise.

For the Back-EMF analysis we run over 180 electrical degrees with the windings setup as ‘open-circuit’. The Slice model is run over a range of speeds from 500 – 3000 rpm.

Here we see the back-EMF waveforms at 3000RPM If we wish to consider eddy currents induced by motion then we can carry out a full electromagnetics with motion analysis.  We request, for example, a fixed rotor speed and the software will create the appropriate drive circuit with a voltage ramp.

We can, if desired, used a full 3D analysis with motion, but this will be relatively costly during early development stages. So we can obtain the end-winding inductance from a 3D static model and feed that into a Slice model to obtain results an order of magnitude faster.  And here we see typical results for torque versus time:

A torque versus speed analysis is achieved using a series of static cases, all automatically generated, using the method described in the reference. And here we see the torque-speed curve:
For more detailed and relevant information, including comparisons with measured results, explore our machine design webpages, starting at