EPAVersion: 2023-03-22

2011 Hyundai Sonata 30kW 270V EMOT - ALPHA Generation Process

This document summarizes the process to generate full efficiency and power loss maps for a 2011 Hyundai Sonata 30kW 270V electric motor and inverter (EMOT) using test data collected by Oak Ridge National Lab (ORNL). The generated map defines the operating boundaries and electrical power consumption of both the electric motor and inverter which are needed for ALPHA modeling.

SUGGESTED CITATION:
2011 Hyundai Sonata 30kW 270V EMOT - ALPHA Map Package. Version 2023-03. Ann Arbor MI: US EPA National Vehicle and Fuel Emissions Laboratory, National Center for Advanced Technology, 2023.

EMOT Physical Characteristics

The following table sets the key physical characteristics for the 2011 Hyundai Sonata 30kW electric motor and inverter (EMOT) used in the ALPHA model based on published information provided in 3d- Benchmarking of Competitive Technologies Presentation by ORNL May 2012.pdf and 3e- FY2012 DOE Annual Progress Report Advanced Power Electronics and Electric Motors Program.pdf. 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                        = '2011 Hyundai Sonata 30kW 270V EMOT';
emach.inertia_kgm2                = 2 * (1/2*0.1604*1/2)^2; % Inertia = rotor mass *1/2 rotor diameter,  rotor mass = 2kg, rotor diameter = 0.1604m.  (0.01077 kg-m2)
emach.max_speed_radps             = 6000 * unit_convert.rpm2radps; % max RPM of 6000 converted to radians per second.
emach.max_torque_Nm               = 205;
emach.max_motor_power_W           = 30000;
emach.max_generator_power_W       = emach.max_motor_power_W;

Import EMOT Data

The following code imports EMOT efficiency data provided by ORNL found in 3c- 2011 Hyundai Sonata 30kW 270V EMOT - ORNL Test Data.xlsx file. 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.

Specifically for this dataset, the efficiency datapoints associated with 0.0 torque were removed since the values associated with those datapoints did not make sense physically. In addition, two datapoints were removed at 500 RPM at 10 and 20 Nm torque because they did not follow the torque loss trend at 500 RPM. Finally, one grounding datapoint was added at 0.01 rpm and 0.007 Nm to better estimate the losses near zero speed and torque.

tbl_mot                 = readmatrix('data/3c- 2011 Hyundai Sonata 30kW 270V EMOT - ORNL Test Data.xlsx','Sheet','Combined','Range','C3:J24');
data(1).name            = 'EMOT Test Data';
data(1).speed_rpm       = tbl_mot(1,2:end);
data(1).torque_Nm       = tbl_mot(2:end,1);
data(1).efficiency_norm = tbl_mot(2:end,2:end)/100;

data(2).name            = 'Grounding Points';
data(2).speed_rpm       = 0.01;
data(2).torque_Nm       = 0.007;
data(2).efficiency_norm = 0.001;

EMOT Torque Limits

The following table sets the torque limits of the EMOT input map based on test data collected by ORNL found in 3c- 2011 Hyundai Sonata 30kW 270V EMOT - ORNL Test Data File.xlsx. 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 = [0;395.910781000000;493.494424000000;1000.92936800000;2002.78810400000;3011.15241600000;4006.50557600000;5001.85873600000;6010.22304800000]* unit_convert.rpm2radps;
emach.positive_torque_limit_Nm.table              = [199.968660000000;199.968660000000;199.968660000000;190.149525000000;160.353529000000;99.7457640000000;71.9813130000000;57.4219060000000;50.6500890000000];

emach.negative_torque_limit_Nm.axis_1.signal      =  'emach_spd_radps';
emach.negative_torque_limit_Nm.axis_1.breakpoints = emach.positive_torque_limit_Nm.axis_1.breakpoints;
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 (rather than efficiency) for the “drive” quadrant, extrapolated to the edges of the operating 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 ORNL 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);

EMOT Efficiency Map

The following code generates the Efficiency Map shown below. 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- 2011 Hyundai Sonata 30kW 270V EMOT – Efficiency.pdf. The 6- 2011 Hyundai Sonata 30kW 270V EMOT - 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');

For comparison, the Motor-Inverter Efficiency Map shown below was published by ORNL in a technical presentation located in 3d- Benchmarking of Competitive Technologies Presentation by ORNL May 2012.pdf and 3e- FY2012 DOE Annual Progress Report Advanced Power Electronics and Electric Motors Program.pdf.

Power Loss Difference (%) Table

In addition, the diagram below shows the power loss difference by comparing the power loss data derived from the ORNL efficiency data found in 3c- 2011 Hyundai Sonata 30kW 270V EMOT - ORNL Test Data.xlsx file and the ALPHA map power data. The power loss percentage difference for these data points is calculated using the following formula.

$$\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 ORNL 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 ORNL 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(1),emach, 'loss_diff_pct');
                   EMOT Test Data Power Loss Percent Difference

                   500 RPM      1000 RPM      2000 RPM      3000 RPM      4000 RPM      5000 RPM      6000 RPM
                __________    __________    __________    __________    __________    __________    __________

    205.0 Nm       0.21           NaN           NaN           NaN           NaN           NaN           NaN   
    190.0 Nm      -1.29          -0.2           NaN           NaN           NaN           NaN           NaN   
    180.0 Nm        1.8          0.14           NaN           NaN           NaN           NaN           NaN   
    170.0 Nm      -0.63         -0.03           NaN           NaN           NaN           NaN           NaN   
    160.0 Nm       -0.2          0.58         -0.69           NaN           NaN           NaN           NaN   
    150.0 Nm       0.28         -0.39          1.03           NaN           NaN           NaN           NaN   
    140.0 Nm       0.16         -0.13         -0.17           NaN           NaN           NaN           NaN   
    130.0 Nm       0.12         -0.18          0.14           NaN           NaN           NaN           NaN   
    120.0 Nm      -0.73          0.01         -0.92           NaN           NaN           NaN           NaN   
    110.0 Nm       0.92          1.27          1.49           NaN           NaN           NaN           NaN   
    100.0 Nm      -0.83          -1.3         -0.06          0.37           NaN           NaN           NaN   
    90.0 Nm        0.58         -0.01         -1.85         -0.19           NaN           NaN           NaN   
    80.0 Nm        -0.2           0.3          1.57         -0.69           NaN           NaN           NaN   
    70.0 Nm       -0.19         -0.03         -0.51          0.74         -0.03           NaN           NaN   
    60.0 Nm        0.22          0.09          0.06          -0.4         -0.46          0.75           NaN   
    50.0 Nm       -0.13         -0.11          0.06          0.16          0.87         -1.65         -1.13   
    40.0 Nm       -0.11         -0.17          0.01           0.3         -0.45          1.11          2.14   
    30.0 Nm       -0.02          0.04         -0.14         -0.74         -0.48          -0.8         -1.08   
    20.0 Nm         NaN          -0.7         -0.36          0.23          1.34          1.09         -0.53   
    10.0 Nm         NaN          1.43          0.86          0.57         -0.37         -0.01          1.07   

Power Loss Map

The Power Loss map is shown below and in 5a- 2011 Hyundai Sonata 30kW 270V EMOT - Power Loss.pdf. Following this are two graphs expressing losses in the EMOT as “effective torque loss” as functions of motor output torque and speed. 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 2011 Hyundai Sonata 30kW EMOT.

emach.write_mscript('emachine_2011_Hyundai_Sonata_30kW_270V_EMOT.m');

Motor Build: emachine_2011_Hyundai_Sonata_30kW_270V_EMOT.m


% ALPHA ELECTRIC MOTOR DEFINITION
% Generated 22-Mar-2023 15:01:34

% Constructor
mg = class_REVS_emachine_geared();
mg.name =  '2011 Hyundai Sonata 30kW 270V EMOT'; 
mg.source_filename = mfilename;

% Physical Description
mg.electrical_source =  'propulsion'; 
mg.inertia_kgm2 =  0.0032160199999999996; 
mg.gear.ratio =  1; 
mg.gear.efficiency_norm =  1; 

% Capacity Limits
mg.max_speed_radps =  628.31853071795865; 
mg.max_torque_Nm =  205; 
mg.max_motor_power_W =  30000; 
mg.max_generator_power_W =  30000; 
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	;     41.459680035553248	;     51.678615234197544	;     104.81707830903581	;     209.73147980744767	;     315.32714363149188	;     419.56028280427142	;     523.79342197705091	;     629.38908580109512		]; 
mg.positive_torque_limit_Nm.table = [	     199.96866000000000	;     199.96866000000000	;     199.96866000000000	;     190.14952500000001	;     160.35352900000001	;     99.745763999999994	;     71.981313000000000	;     57.421906000000000	;     50.650089000000001		]; 
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	;     41.459680035553248	;     51.678615234197544	;     104.81707830903581	;     209.73147980744767	;     315.32714363149188	;     419.56028280427142	;     523.79342197705091	;     629.38908580109512		]; 
mg.negative_torque_limit_Nm.table = [	    -199.96866000000000	;    -199.96866000000000	;    -199.96866000000000	;    -190.14952500000001	;    -160.35352900000001	;    -99.745763999999994	;    -71.981313000000000	;    -57.421906000000000	;    -50.650089000000001		]; 

% 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	    52.359877559829862	    104.71975511965972	    209.43951023931947	    314.15926535897938	    418.87902047863906	    523.59877559829886	    628.31853071795865		]; 
mg.electric_power_W.axis_2.signal =  'emach_trq_Nm'; 
mg.electric_power_W.axis_2.breakpoints = [	    -205.00000000000000	   -190.00000000000000	   -180.00000000000000	   -170.00000000000000	   -160.00000000000000	   -150.00000000000000	   -140.00000000000000	   -130.00000000000000	   -120.00000000000000	   -110.00000000000000	   -100.00000000000000	   -90.000000000000000	   -80.000000000000000	   -70.000000000000000	   -60.000000000000000	   -50.000000000000000	   -40.000000000000000	   -30.000000000000000	   -20.000000000000000	   -10.000000000000000	    0.0000000000000000	    10.000000000000000	    20.000000000000000	    30.000000000000000	    40.000000000000000	    50.000000000000000	    60.000000000000000	    70.000000000000000	    80.000000000000000	    90.000000000000000	    100.00000000000000	    110.00000000000000	    120.00000000000000	    130.00000000000000	    140.00000000000000	    150.00000000000000	    160.00000000000000	    170.00000000000000	    180.00000000000000	    190.00000000000000	    205.00000000000000		]; 
mg.electric_power_W.table = [
    3591.2588268915893	    3149.6234627082636	    2858.4873527528130	    2572.4802578442318	    2294.6806196644316	    2028.1176618846710	    1775.5423928142698	    1538.8386920131106	    1318.8999680551419	    1115.9687079943628	    930.13182605785221	    761.39031088528520	    609.60107090907400	    474.46296681412957	    355.71467174406092	    253.25968768323941	    167.21384777670050	    97.963369322183908	    46.238090045938414	    13.209367449489111	   0.59674732518444329	    10.812601960408649	    41.242164814640098	    90.021951111320945	    155.87902666611814	    237.99499130865200	    335.90204949067760	    449.41169737064126	    578.55810901719997	    723.55032189726603	    884.65000418517991	    1061.9798519073147	    1255.5340095231895	    1465.2309585602525	    1690.8451023169309	    1931.5333198240014	    2185.5102598090048	    2450.1647874085961	    2722.6200710605135	    2999.9510663174419	    3420.6343514819682	;
   -6110.8295852785632	   -5935.8201801590467	   -5933.8633976069905	   -5805.1799008120170	   -5646.8596850797730	   -5460.9088932367540	   -5221.8938437509269	   -4934.5819266358412	   -4617.4767918032303	   -4298.5635631292271	   -3946.5169696634061	   -3593.5597891490424	   -3219.4807449830710	   -2834.7567076701348	   -2440.3614641935269	   -2029.9199640244988	   -1604.8488979406236	   -1163.7120164723588	   -703.92371859108334	   -221.78194146078016	    285.30212162383555	    818.42576615526730	    1376.9982964083194	    1958.8080193329722	    2560.4352563336970	    3177.9489136280795	    3809.4020789021542	    4456.0773654647119	    5111.9394597475084	    5777.9368083736308	    6464.0515882659647	    7151.0343123204402	    7869.5726307154882	    8589.8327528515820	    9338.4671898105571	    10133.098509231166	    10978.267118246191	    11849.750491360939	    12749.459262525812	    13769.860107721277	    15136.581095432546	;
   -16004.063174686342	   -15242.352814284654	   -14733.491864053090	   -14176.132919123744	   -13550.486440416222	   -12831.768254225177	   -12084.354533312542	   -11319.298797816864	   -10532.653003931679	   -9701.3864017443702	   -8803.5313641107387	   -7926.9720738665528	   -7053.9879680467357	   -6166.4382848858177	   -5265.3728389856124	   -4349.9459741116934	   -3423.7382099659899	   -2485.5551144232236	   -1528.7893958576431	   -551.46486204385553	    464.20196239775396	    1523.3819818352715	    2632.2776746690038	    3765.6528716723969	    4917.2131549582973	    6079.8426086219233	    7252.5568754264332	    8438.9136804877253	    9638.1486079350980	    10851.261599915066	    12060.971422048793	    13250.399671073073	    14503.245383598307	    15798.587113949156	    17114.490868454792	    18447.196618298101	    19807.231556494178	    21255.906363066784	    22769.616814517703	    24329.514348368957	    26670.856465864035	;
   -36505.114108206144	   -34098.979145854923	   -32497.842336141013	   -30901.283795821586	   -29313.328166855958	   -27739.267954533836	   -26045.005031121924	   -24276.755066594433	   -22453.235591554458	   -20612.389920256701	   -18672.219495051504	   -16722.509572775871	   -14846.531339025798	   -12934.645520066038	   -11018.943048965588	   -9089.0050212295755	   -7138.3786481175875	   -5164.7518637868443	   -3168.1696459021500	   -1148.4106338394049	    904.81337706283205	    3003.4316690843748	    5159.3228212650220	    7346.9126474016457	    9557.3706600323749	    11789.089831622941	    14040.154177046661	    16304.706459993158	    18572.905056906038	    20875.313272909258	    23107.504229907780	    25348.780457016695	    27684.651344505692	    30037.023282200960	    32442.032945645140	    34917.506398630976	    37507.457328360040	    40084.170461598274	    42652.687767572832	    45216.843387873741	    49058.856523042210	;
   -58739.529818789160	   -54518.530014078802	   -51702.126623535463	   -48882.275035823033	   -46056.286358404912	   -43220.836993109704	   -40372.174669673208	   -37506.415675040305	   -34619.667352101933	   -31708.065709824230	   -28767.774727223303	   -25795.038292034071	   -22833.006190460081	   -19901.659477356625	   -16944.582444267748	   -13979.500270774279	   -10987.730840613083	   -7964.2888163504222	   -4929.9765591158375	   -1863.6366777751632	    1230.7466592538992	    4369.8093961650848	    7569.9724426667444	    10813.756110083148	    14069.288001696952	    17354.116435119115	    20663.874562473073	    23981.160943974064	    27322.967471878041	    30635.565956946917	    33937.975282234307	    37271.288298853862	    40631.928154734960	    44016.241610481549	    47420.548529173015	    50841.141256017145	    54274.320494323634	    57716.512038090696	    61164.549919608449	    64615.872701308464	    69796.291486494272	;
   -80422.980624145668	   -74516.847842342104	   -70578.915237050940	   -66640.302906303361	   -62700.574469110717	   -58759.255235995144	   -54815.865622126170	   -50869.935096487781	   -46921.051665934421	   -42968.918272090312	   -39013.399115293607	   -35054.528913390786	   -31092.511690359919	   -27127.655480507961	   -23160.276783780588	   -19187.127267452932	   -15160.832896664651	   -11106.731322944659	   -7017.9552413807814	   -2863.6055631704280	    1290.6554359686991	    5462.6946152083774	    9670.4466033204735	    13954.450922507860	    18272.988114205466	    22617.110755687718	    27011.337446418234	    31410.965157236304	    35813.032492804799	    40217.837667449479	    44625.670543349668	    49036.721734438732	    53451.020528171473	    57868.433838535915	    62288.675124519614	    66711.348599764096	    71136.003025427985	    75562.178909604729	    79989.421855897104	    84417.314443980038	    91059.885340288209	;
   -101507.12710976711	   -94038.199106530126	   -89059.187143206524	   -84080.466750233274	   -79102.076444731923	   -74123.898527984726	   -69145.581548715971	   -64166.464704472848	   -59185.506417060344	   -54201.220282706236	   -49211.622780918769	   -44214.198561870682	   -39205.890790886435	   -34183.125774279113	   -29141.861388753052	   -24077.661096669883	   -19067.082686604652	   -14017.128787247015	   -8937.0039495619276	   -3781.8663077958759	    1402.0514463703635	    6633.5480460439057	    11931.601542598859	    17316.042639993510	    22730.808727651180	    28182.094232539042	    33581.821253890826	    39003.459509860579	    44442.771897419108	    49895.898041801614	    55359.424938518263	    60830.433131930578	    66306.520156069368	    71785.791279112207	    77266.826351700496	    82748.629893296020	    88230.569967975098	    93712.310030952343	    99193.736798013910	    104674.88626952725	    112896.22014495150	;
   -122418.78021083874	   -113321.03805836831	   -107256.06204075442	   -101191.39319162934	   -95127.349988000366	   -89064.401906492014	   -83003.190975051271	   -76944.553746803766	   -70889.543299183191	   -64839.450484330271	   -58795.823181330343	   -52760.481731070031	   -46735.528086662234	   -40723.345521394360	   -34726.585032659095	   -28748.133929503507	   -22791.061535085744	   -16710.994416685557	   -10604.084818944693	   -4468.1696510322536	    1734.6825641729583	    8027.2851687960319	    14432.350038918845	    20883.472155201809	    27362.106597345890	    33956.871301886174	    40531.193004670204	    47088.005388213278	    53630.068363964761	    60159.916171590041	    66679.827335874521	    73191.811641186971	    79697.609814908588	    86198.702232723415	    92696.323630272847	    99191.481465282195	    105684.97619262582	    112177.42225867401	    118669.26907510351	    125160.82159240257	    134897.88379431091	]; 
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		];