EPAVersion: 2023-04-06

Generic IPM 150kW EDU - ALPHA Generation Process

This document summarizes the process to generate full efficiency and power loss maps for an Electric Drive Unit (EDU) for a Generic 150 kW Integrated Powertrain Module (IPM). The EDU includes the inverter, emotor and the gearing and the gear ratio for this EDU is 9.5:1. The data used to construct these maps were numerically derived based on a function with coefficients identified using averaged power consumption data from several confidential benchmarking test data files. The test data were obtained from several state-of-the-art internal permanent magnet synchronous reluctance (IPMSRM) e-motors used in current production battery electric vehicles. Transformation functions, whose coefficients represent the averaged power consumption data, were utilized to blend and transform the confidential test data into one final map. The final map was then scaled to 150kW to represent a generic EDU suitable for use in a BEV. The generated efficiency map is used as an input for ALPHA and represents the combined operating boundaries and electrical power consumption of the electric motor, inverter, and gearing, categorized together as an EDU.

SUGGESTED CITATION:
Generic IPM 150kW EDU - ALPHA Map Package. Version 2023-04. Ann Arbor MI: US EPA National Vehicle and Fuel Emissions Laboratory, National Center for Advanced Technology, 2023.

EDU Physical Characteristics

The following table sets the key physical characteristics for a Generic IPM 150kW EDU and are based on characteristics of the original e-motors tested. The items in the table follow ALPHA’s code syntax for “emachines,” which is: emach.characteristic name_engineering units = value; % comments.

emach                             = class_REVS_emachine_geared;

emach.name                        = 'Generic IPM 150kW EDU';
emach.type                        = enum_emachine_type.EDU;
emach.gear.ratio                  = 9.5;
emach.gear.efficiency_norm        = 1;
emach.inertia_kgm2                = 8.86 * (1/2*0.117*1/2)^2;
emach.max_speed_radps             = 15000 * unit_convert.rpm2radps;
emach.max_torque_Nm               = 312;
emach.max_motor_power_W           = 150000;
emach.max_generator_power_W       = emach.max_motor_power_W;
nominalVoltage_V                  = 350;

Import EDU Data

The following code imports power loss data numerically derived based on averaged power consumption data from several confidential source data files. The results of the numerical derivation are provided in 3b- Generic IPM 150kW EDU – Derived Input Data File.xlsx. EPA reviews the quality of the test data we import to ensure consistency with expected data trends and emotor system physics. Any data points considered significant outliers are removed from the dataset before generating the final efficiency map. In addition, since many of the datasets are missing low-speed and torque datapoints, occasionally a few “grounding” datapoints are added to help the curve fitting algorithm extrapolate the gradients near the map’s boundaries.

tbl_mot                  = readmatrix('3b- Generic IPM 150kW EDU - Derived Input Data File.xlsx','Sheet','Input Data','Range','A8:R26');
data(1).speed_rpm        = tbl_mot(1,3:end);
data(1).torque_Nm        = tbl_mot(2:end,1);
data(1).elec_powerloss_W = tbl_mot(2:end,3:end)*1000;
data(1).name             = 'Data';

EDU Torque Limits

The following table sets the torque limits of the EDU input map based on the derived input data. The maximum torque line is set by defining maximum torque (axis 2) at discrete speeds (axis 1) of the operating map.

emach.positive_torque_limit_Nm.axis_1.signal      = 'emach_spd_radps';
emach.positive_torque_limit_Nm.axis_1.breakpoints = [data(1).speed_rpm] * unit_convert.rpm2radps;
emach.positive_torque_limit_Nm.axis_2.signal      = 'voltage_V';
emach.positive_torque_limit_Nm.axis_2.breakpoints = nominalVoltage_V;
emach.positive_torque_limit_Nm.table              = [311.88	311.88	311.9	311.9	311.9	279.97	227.88	190.68	162.77	141.07	123.71	109.50	97.66	87.65	79.06	71.62];

emach.negative_torque_limit_Nm.axis_1.signal      = 'emach_spd_radps';
emach.negative_torque_limit_Nm.axis_1.breakpoints = [data(1).speed_rpm] * unit_convert.rpm2radps;
emach.negative_torque_limit_Nm.axis_2.signal      = 'voltage_V';
emach.negative_torque_limit_Nm.axis_2.breakpoints = nominalVoltage_V;
emach.negative_torque_limit_Nm.table              = -emach.positive_torque_limit_Nm.table;

Build the emachine Object in Matlab

The script below creates an “emach” object which is converted into power loss space for the “drive” quadrant, extrapolated to the edges of the operating space (rather than efficiency space), and scaled for maximum power.

These power losses were then “mirrored” to the regen quadrant considering the average of the empirical internal mechanical and electrical losses differences typically seen between operating in the “drive” and “regen” quadrants. Since the dataset did not have any regen data, we mirrored the drive quadrant power loss data onto the regen quadrant compensated by a factor of 1.05 (or 105 %) which represents an empirical average encountered in confidential data available to this program.

emach = emach.load_data(data,'mirror_factor',1.05);

EDU Efficiency Map

The following code generates the Efficiency Map shown below for this EDU which includes the combined efficiency data of the electric motor, inverter, and gearing. The efficiency data points used to generate the efficiency map are superimposed on this image. A clean version of the efficiency map (without data points) is included in 4a- Generic IPM 150kW EDU – Efficiency.pdf. The 6- Generic IPM 150kW EDU - Electrical Power Consumption Data.xlsx file contains a sample data set extracted from this efficiency map.

REVS_plot_emachine(emach,'efficiency');
REVS_plot_emachine_data_overlay(data, 'efficiency','gear_ratio',emach.gear.ratio);

Power Loss Difference (%) Table

In addition, the table below shows the relative power loss difference by comparing the power loss data derived from the power loss data found in 3b- Generic IPM 150kW EDU – Derived Input Data File.xlsx file and the ALPHA map power data. The relative power loss difference for these data points is calculated using the following formula and represented as a percentage in the table.

$$\delta P_{loss} = \frac{P_{loss}(map) - P_{loss}(data)}{P_{loss}(data)}$$

Where

$$P_{loss} = | P_{mech} - P_{elec} |$$

In cases where the original data contain abrupt changes in curvature, the ALPHA curve-fitting function produces a smooth surface through the points, resulting in a noticeable difference between the values of the original data points and the curve fit surface. Additionally, larger percentage values for power loss difference are typical where the magnitude of the power loss is small (for example, at low torques and speeds)

REVS_table_data_comparision_emachine(data,emach, 'loss_diff_pct');
                                                                                                              Data Power Loss Percent Difference
                                                                                                              ----------------------------------

                                                                                                            EDU Torque ( Nm ) \ EDU Speed ( RPM)

                      0 RPM       105 RPM       211 RPM       316 RPM       421 RPM       526 RPM       632 RPM       737 RPM       842 RPM       947 RPM      1053 RPM      1158 RPM      1263 RPM      1368 RPM      1474 RPM      1579 RPM
                 __________    __________    __________    __________    __________    __________    __________    __________    __________    __________    __________    __________    __________    __________    __________    __________

    2962.9 Nm       -0.21         -0.04         -0.32         -0.09        -0.29           NaN           NaN           NaN           NaN           NaN           NaN           NaN           NaN           NaN           NaN           NaN   
    2821.8 Nm        0.26          0.39          0.15           0.3         0.53           NaN           NaN           NaN           NaN           NaN           NaN           NaN           NaN           NaN           NaN           NaN   
    2469.1 Nm       -0.45         -0.26         -0.44         -0.37        -0.28          0.07           NaN           NaN           NaN           NaN           NaN           NaN           NaN           NaN           NaN           NaN   
    2116.3 Nm        0.57          0.65          0.34          0.27         0.45          0.49         -0.68           NaN           NaN           NaN           NaN           NaN           NaN           NaN           NaN           NaN   
    1763.6 Nm        -0.3         -0.16         -0.25         -0.36        -0.02         -0.01          0.74         -0.34           NaN           NaN           NaN           NaN           NaN           NaN           NaN           NaN   
    1410.9 Nm       -0.03             0         -0.01          -0.2         0.18         -0.11         -0.01          0.52          0.15         -0.55           NaN           NaN           NaN           NaN           NaN           NaN   
    1058.2 Nm       -0.03         -0.09          0.03         -0.15         0.07         -0.01         -0.27          -0.2          0.51          0.22          0.01         -0.08         -0.63           NaN           NaN           NaN   
    634.2 Nm        -0.14         -0.23         -0.03         -0.02        -0.21          0.09         -0.12         -0.15         -0.06         -0.07         -0.08         -0.05         -0.07           NaN           NaN           NaN   
    493.8 Nm         0.61         -0.04          0.07          0.01        -0.57           0.5          0.36          0.17          0.33          0.93           1.4          1.62          1.71         -0.64          -1.4           NaN   
    423.3 Nm        -0.96         -1.12         -0.88         -0.87        -1.05         -0.68         -0.86         -0.97         -1.02         -0.88         -0.78          -0.7         -0.62         -0.41         -0.45         -1.98   
    352.7 Nm        -2.07          -2.1         -1.78         -1.73        -1.79         -1.47         -1.74         -1.89         -1.95         -1.79         -1.75         -1.69         -1.64         -0.34         -0.21         -0.94   
    282.2 Nm        -5.36         -4.51            -4         -3.72        -3.47         -3.12         -3.47         -3.58         -3.55         -3.62         -3.63         -3.59         -3.55          -2.3         -1.98         -1.72   
    211.6 Nm         2.02          1.45          1.33          1.16         1.17           0.7          0.83          0.88          0.68           0.8           0.6          0.53          0.48          1.74          1.96          2.16   
    141.1 Nm        11.06          8.57          7.25          6.55         6.28          4.56          5.51          5.97          5.48          5.38          4.91           4.7          4.57          4.05          4.13          4.22   
    105.8 Nm        16.46         12.73         10.47          9.45         9.03          6.48          8.02          8.81          8.15          7.71          7.07          6.77           6.6          4.35          4.34          4.36   
    70.5 Nm          4.05          2.86          4.34          4.02         3.87          3.07          3.58          3.78          3.56          3.32          3.11          3.01          3.04           2.3           2.3          2.36   
    35.3 Nm         -5.81         -3.27         -2.89         -2.31        -2.05         -0.88          -1.5          -1.9         -1.61         -1.67         -1.39         -1.28         -1.08         -0.46         -0.43         -0.35   
    0.0 Nm         -20.04        -13.94        -12.23        -10.61        -9.69         -6.51         -8.25         -9.13         -8.15         -7.89            -7         -6.58         -6.19         -5.41         -5.26         -5.06   

Power Loss Map

A clean version of the Power Loss map is shown below and in 5a- Generic IPM 150kW EDU - Power Loss.pdf. The additional plots show system losses, converted to effective torque loss, as a function of motor output torque and speed. Effective torque loss represents the total power loss in the system as a loss of mechanical power. The associated speed is kept constant, and thus the total loss is expressed as a loss of torque. Torque losses are presented on a log scale.

REVS_plot_emachine(emach,'power loss');
REVS_plot_emachine(emach,'torque loss curves');

Generate ALPHA .m file for ALPHA Model Simulations

This code generates and writes the created ALPHA emachine definition into an “.m file” for use in later ALPHA vehicle model simulations. The .m file is the actual input file used in ALPHA that defines power consumption over the speed and torque operating limits of the Generic IPM 150kW EDU.

emach.write_mscript('emachine_Generic_IPM_150kW_EDU.m');

Motor Build: emachine_Generic_IPM_150kW_EDU.m


% ALPHA ELECTRIC MOTOR DEFINITION
% Generated 06-Apr-2023 16:27:35

% Constructor
mg = class_REVS_emachine_geared();
mg.name =  'Generic IPM 150kW EDU'; 
mg.source_filename = mfilename;

% Physical Description
mg.electrical_source =  'propulsion'; 
mg.inertia_kgm2 =  0.0075802837500000006; 
mg.type = enum_emachine_type.EDU;
mg.gear.ratio =  9.5; 
mg.gear.efficiency_norm =  1; 

% Capacity Limits
mg.max_speed_radps =  1570.7963267948965; 
mg.max_torque_Nm =  312; 
mg.max_motor_power_W =  150000; 
mg.max_generator_power_W =  150000; 
mg.positive_torque_limit_Nm = class_REVS_dynamic_lookup;
mg.positive_torque_limit_Nm.axis_1.signal =  'emach_spd_radps'; 
mg.positive_torque_limit_Nm.axis_1.breakpoints = [	     0.0000000000000000	    104.71975511965977	    209.43951023931953	    314.15926535897933	    418.87902047863906	    523.59877559829886	    628.31853071795865	    733.03828583761833	    837.75804095727813	    942.47779607693792	    1047.1975511965977	    1151.9173063162575	    1256.6370614359173	    1361.3568165555769	    1466.0765716752367	    1570.7963267948965		]; 
mg.positive_torque_limit_Nm.axis_2.signal =  'voltage_V'; 
mg.positive_torque_limit_Nm.axis_2.breakpoints =  350; 
mg.positive_torque_limit_Nm.table = [	     311.88000000000000	    311.88000000000000	    311.89999999999998	    311.89999999999998	    311.89999999999998	    279.97000000000003	    227.88000000000000	    190.68000000000001	    162.77000000000001	    141.06999999999999	    123.70999999999999	    109.50000000000000	    97.659999999999997	    87.650000000000006	    79.060000000000002	    71.620000000000005		]; 
mg.negative_torque_limit_Nm = class_REVS_dynamic_lookup;
mg.negative_torque_limit_Nm.axis_1.signal =  'emach_spd_radps'; 
mg.negative_torque_limit_Nm.axis_1.breakpoints = [	     0.0000000000000000	    104.71975511965977	    209.43951023931953	    314.15926535897933	    418.87902047863906	    523.59877559829886	    628.31853071795865	    733.03828583761833	    837.75804095727813	    942.47779607693792	    1047.1975511965977	    1151.9173063162575	    1256.6370614359173	    1361.3568165555769	    1466.0765716752367	    1570.7963267948965		]; 
mg.negative_torque_limit_Nm.axis_2.signal =  'voltage_V'; 
mg.negative_torque_limit_Nm.axis_2.breakpoints =  350; 
mg.negative_torque_limit_Nm.table = [	    -311.88000000000000	   -311.88000000000000	   -311.89999999999998	   -311.89999999999998	   -311.89999999999998	   -279.97000000000003	   -227.88000000000000	   -190.68000000000001	   -162.77000000000001	   -141.06999999999999	   -123.70999999999999	   -109.50000000000000	   -97.659999999999997	   -87.650000000000006	   -79.060000000000002	   -71.620000000000005		]; 

% Losses & Efficiency
mg.electric_power_W = class_REVS_dynamic_lookup;
mg.electric_power_W.axis_1.signal =  'emach_spd_radps'; 
mg.electric_power_W.axis_1.breakpoints = [	     0.0000000000000000	    104.71975511965972	    209.43951023931945	    314.15926535897938	    418.87902047863889	    523.59877559829886	    628.31853071795877	    733.03828583761810	    837.75804095727801	    942.47779607693815	    1047.1975511965977	    1151.9173063162575	    1256.6370614359175	    1361.3568165555769	    1466.0765716752364	    1570.7963267948967		]; 
mg.electric_power_W.axis_2.signal =  'emach_trq_Nm'; 
mg.electric_power_W.axis_2.breakpoints = [	    -311.88118811881191	   -259.90099009900990	   -222.77227722772278	   -185.64356435643560	   -148.51485148514851	   -111.38613861386139	   -66.757425742574256	   -46.351006068348774	   -29.702970297029701	    0.0000000000000000	    29.702970297029712	    46.351006068348767	    66.757425742574256	    111.38613861386139	    148.51485148514851	    185.64356435643560	    222.77227722772278	    259.90099009900990	    311.88118811881191		]; 
mg.electric_power_W.table = [
    10011.292391662248	    7295.3977212824284	    4991.8914938964199	    3626.1058633956582	    2521.9897047176073	    1616.2883812044786	    792.10058544321760	    516.72654722041807	    325.71137250736064	    134.24061525644436	    308.27126770141228	    491.50637763044813	    754.57278789106465	    1539.3523429958125	    2401.8945502117003	    3453.4336872709619	    4754.1823536903439	    6947.9978360553678	    9534.5641803261005	;
   -21570.703930523829	   -19025.815133239204	   -17563.797231294273	   -15161.363562680548	   -12492.288770988727	   -9617.2632682690910	   -5886.9857418998336	   -4087.7466373058301	   -2589.7565980986851	    257.12881322907339	    3602.8543462313319	    5582.3516696129382	    8042.4416322047000	    13613.971319562772	    18466.866857240453	    23515.962058817266	    28819.002171146152	    35017.675580433672	    43221.471842478437	;
   -52528.876432811907	   -44991.581015515061	   -39919.183318350697	   -33864.386456168257	   -27506.898326561448	   -20906.826530990445	   -12643.920785836854	   -8759.2121372835900	   -5554.8829425049034	    361.06403658042331	    6850.4124119947237	    10609.478317833127	    15256.143245112722	    25635.242139920789	    34531.523912441880	    43658.915754960515	    53074.586414546895	    63425.874230642548	    77502.497655395928	;
   -84256.848106758101	   -71412.697854706930	   -62558.621599789745	   -52715.340432607321	   -42581.444656612519	   -32201.764307278176	   -19378.548321038714	   -13404.643544682267	   -8494.8899317692903	    483.36325081706843	    10121.659132333234	    15661.322438844751	    22491.111702600345	    37651.397798543519	    50539.098285075168	    63660.982682911359	    77059.644829046345	    91400.405143949683	    111050.38300105945	;
   -115123.55180107633	   -97634.393132078723	   -85212.798442445302	   -71701.791348503597	   -57807.836969077543	   -43584.737032856079	   -26098.825237650737	   -18023.312174160128	   -11409.448149661075	    628.84700729730298	    13416.839625780824	    20738.551885541689	    29739.776739060082	    49583.715727726078	    66402.057442220583	    83534.004951563285	    101030.66579795236	    119564.85879951520	    145418.49541578465	;
   -144748.01000886509	   -122497.32493261431	   -106553.63092051187	   -89854.923524799044	   -72521.374191751820	   -54760.507424776522	   -32905.103824904865	   -22720.035970491932	   -14351.204644507454	    811.99289157132557	    16685.743503242767	    25741.309411736795	    36906.564539231287	    61713.374166754598	    82753.450153856640	    104200.66211578669	    126252.47802062919	    149023.35175510950	    180969.34374467572	;
   -173533.57622511734	   -145719.47110374039	   -125859.57095122336	   -107103.73900340725	   -86836.233612568147	   -65619.173661337933	   -39458.592309471867	   -27271.889745296019	   -17262.981195183838	    893.90575568595261	    19984.282708610608	    30882.421334340943	    44314.014318562491	    74145.021406349697	    99484.533483354884	    125728.55158751615	    153412.32217076517	    180045.22816951264	    217322.10022761222	;
   -201922.90097444615	   -169087.93804352716	   -145918.13337868746	   -123150.79019559927	   -100505.68698961967	   -76268.198314298643	   -45863.015399844233	   -31688.807059344279	   -20054.922624304290	    1073.5062523950814	    23395.710200438178	    36151.634204400565	    51863.546219561933	    86776.342752305936	    116830.26755678670	    148401.06284403504	    179857.14575416106	    210931.36517727023	    254058.71277817781	;
   -230352.92313150468	   -192666.26741509361	   -165978.07021655235	   -139538.20540337224	   -113325.74107918788	   -86526.152240544805	   -52160.642050340139	   -36006.810368954175	   -22728.333796351395	    1393.6522422946814	    26918.280008059934	    41514.460493219092	    59514.949770547064	    99780.111528118170	    134984.96773925435	    170751.30173920604	    206304.48245901745	    241623.89073302734	    290766.25637177011	;
   -259039.11786412715	   -216416.23284473040	   -186052.29918475545	   -155725.98844049778	   -125468.68555980548	   -95945.360843426795	   -58249.205680655374	   -40246.119010831302	   -25361.584422025157	    1789.8718194876174	    30478.159920552705	    46951.908243761332	    67365.547434544307	    113582.67202674737	    153784.74252482154	    193294.83600838215	    232744.53955908865	    272161.95560618443	    327241.74214001244	;
   -288016.78410082555	   -240341.27511702161	   -206325.18382843689	   -172422.87723871414	   -138804.32626663736	   -105445.46800373036	   -64144.926535458442	   -44296.068941136575	   -27819.893873096593	    2297.8752295779518	    34203.179474381664	    52569.208779249886	    75399.901278275996	    127308.30166977213	    171453.40656257223	    215360.78105941004	    259005.13998386884	    302544.71755304874	    363452.11391552648	;
   -317258.01133365475	   -264537.33727778908	   -226902.41004490576	   -189340.65091075774	   -151937.82808737337	   -114719.97429476233	   -69850.086854120236	   -48198.777982491709	   -30173.069468732578	    2856.6102726123536	    38027.638345243853	    58326.489939231411	    83615.620916969157	    141248.44918218831	    189320.17469232396	    237227.84708417710	    284989.16011936922	    332682.18719556229	    399422.62892526051	;
   -346705.35145825875	   -288992.21017770731	   -247759.90099168461	   -206496.40455305335	   -165144.48124136974	   -123765.22422804369	   -75336.054553989859	   -51939.234702716989	   -32417.980544575930	    3448.8551582999985	    41954.574312649747	    64238.181128199380	    92040.832464679042	    155409.89985972072	    207133.72644489526	    258885.97295593540	    310721.05976031045	    362585.00899684528	    435205.31175029598	;
   -376283.64093633619	   -313621.07028902683	   -268828.95169656735	   -224001.22821519614	   -179176.33038896474	   -134468.38305802390	   -80732.000124082551	   -55458.036032035037	   -34509.214408360218	    4400.1768301117927	    46022.298939780798	    70361.285761744555	    100572.94419357025	    168055.22200649203	    224195.43388569404	    280230.08902167785	    336263.95580525650	    392331.40861916693	    470868.79867144395	;
   -405924.45741972065	   -338371.98897344153	   -290091.28875869705	   -241780.01300787632	   -193425.24847079115	   -144941.33444228017	   -86093.684542145595	   -58888.654963007284	   -36475.301680271987	    5253.0303199366363	    50210.752831771599	    76567.499658887900	    109126.73206509826	    180909.30400828051	    241058.45535585828	    301325.69233975816	    361633.03640308097	    421968.61179055856	    506475.71944387432	;
   -435585.24450128898	   -363186.98431615211	   -311448.35490758531	   -259638.54360143043	   -207643.93479956902	   -155300.23300574950	   -91663.057090251154	   -62319.922918383571	   -38303.634299466881	    6212.3237340578780	    54529.333806195995	    82769.317879924012	    117472.63232206760	    193858.28472535699	    257946.88097770576	    322349.04630306654	    386916.89881408704	    451548.47239452519	    542064.75531257875	]; 
mg.unpowered_torque_loss_Nm = class_REVS_dynamic_lookup;
mg.unpowered_torque_loss_Nm.axis_1.signal =  'emach_spd_radps'; 
mg.unpowered_torque_loss_Nm.axis_1.breakpoints = [	    -15000.000000000000	    15000.000000000000		]; 
mg.unpowered_torque_loss_Nm.table = [	     0.0000000000000000	    0.0000000000000000		];