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.
Where
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 ];