File Exchange

image thumbnail

Hybrid Electric Vehicle (HEV) Power Train Using Battery Model

version (568 KB) by Pierre Mercier
Demonstration of a hybrid electric vehicle (HEV) power train using SimPowerSystems and SimDriveline


Updated 29 Aug 2014

View Version History

View License

The demonstration shows different operating modes of the HEV over one complete cycle: accelerating, cruising, recharging the battery while accelerating and regenerative braking.
The Electrical Subsystem is composed of four parts: The electrical motor, the generator, the battery, and the DC/DC converter.
The Planetary Gear Subsystem models the power split device. It uses a planetary device, which transmits the mechanical motive force from the engine, the motor and the generator by allocating and combining them.
The Internal Combustion Engine subsystem models a 57 kW @ 6000 rpm gasoline fuel engine with speed governor.

The Vehicle Dynamics subsystem models all the mechanical parts of the vehicle.

The Energy Management Subsystem (EMS) determines the reference signals for the electric motor drive, the electric generator drive and the internal combustion engine in order to distribute accurately the power from these three sources.

This demonstration was previously available in SimPowerSystems Version 5.4 (R2011a). The authors of this work are Olivier Tremblay, Louis-A. Dessaint (Ecole de Technologie Superieure).

Cite As

Pierre Mercier (2020). Hybrid Electric Vehicle (HEV) Power Train Using Battery Model (, MATLAB Central File Exchange. Retrieved .

Comments and Ratings (48)

Sushma Shivaraja

Khaled Awaili

first of all, thanks for sharing this model,,,
i have one comment need to be cleared for this model, for motor speed controller,, the two inputs to the controller must be for speed ( actual and ref speeds), but in your model the reference is the Torque ref value,, and the interesting is that the model is working.. is written on the speed controller N and N*,, but if you put a scope and investigate the signal of N and N* it is completely different, you or any one has used this model can explain this point.

Hy Qin

Rogério Peres

Cecilia Guan

G Saravanakumar

Sihong Chen

Trung Quang Nguyen

Hajar Esseghier

qingxi zhao

taha sadeq

Good work

Me too asking same question we need know more about the modelling. Is there any published paper regarding this work?


Hakan Basargan

Hakan Basargan

Dear Pierre,

I would like to use your "Motor Model" and "DC/DC Converter Model" of Hybrid Electric Vehicle (HEV) Power Train Using Battery Model.

How should I give reference for your this model ? Do you have any published paper ?

Best regards.

huan liu


emad moamen

Qiang Zhang

ammar mishal

The model is very interesting, If I would like to replace the generator with a constant voltage source how can I do that?

aashitha baby

can u sent the reference paper or book so that it is helpful for my thesis




omar mouline

I am using a 2015 Matlab when i run the program i keep get an error:
Failed to load library 'driveline' referenced by 'power_HEV_powertrain/Electrical Subsystem/SIm//SDL'
I have been looking for the simdriveline on the smiling toolbox but did not find any suggestions?

ankit Shrivastava

Qiang Li



I dont found the parameters file.

Kp and Ki and other parameters are required.

How i can do please?

Li guangyao


Kuntal Mistry

Thanks for sharing. !

ferid REHIMI

how can I impose a fixed velocity of the vehicle by introducing the acceleration. For example to get 50 km/h, what is the acceleration to be proposed (certainly it is not acc=0) because there is a damping behavior of the vehicle if no acceleration was added.

Guan Hong

Hi, thank you for sharing. May I know where can I find reference paper for the DC DC converter used in your model? I am also interested to know more about the DC DC converter in your other work "Fuel Cell Vehicle (FCV) Power Train"

Please advice. Thank you.


Hi.How do you take into account the sliding friction force of the vehicle?

zhou jianshan

Thank you for your sharing, thanks!

Andres RM

Hello Olivier,

I've found this very Interesting. I'm trying to simulate a HEV vehicle for my final career thesis and I'd like to ask you a question.

where can I find documentation to make the similar Vector Control? I've not been able to make a better one and I don't know how I's been done.

Thank you very much!

Olivier Tremblay

Hi bin liu,
There is many ways to implement EMS. Here is a reference you can use to develop your own EMS:
B. Jeanneret, R. Trigui, F.Badin, F.Harel, New Hybrid concept simulation
tools, evaluation on the Toyota Prius car, The 16Th International electric
vehicle symposium, October 13-16, 1999 - Bejing - China.

For the battery power, the SPS model is much more detailed than a simple Voc in series with ohmic resistance. The voltage source of the battery includes Voc as a function of SOC, polarization resistance and polarization voltage. The maximum battery power can be determined using the model equation found in:
Tremblay, O., Dessaint, L.-A. "Experimental Validation of a Battery Dynamic Model for EV Applications." World Electric Vehicle Journal. Vol. 3 - ISSN 2032-6653 - © 2009 AVERE, EVS24 Stavanger, Norway, May 13 - 16, 2009.

I hope this will help you in your work.
Best regards

bin liu

Hi Olivier,
As you said 'The maximum battery power (21kw) is obtained at around 210A (at 90% SOC). At this time, the battery voltage is about 100V (Vbatt).'
what I want to know is that: the maximum battery power (21kw) is obtained only at this point (Ibatt=210A,Vbatt=100V) or can be always be obtained when the vbatt>100V?
In fact, from the simulation 'HEV', I think that when Vbatt>100V, the battery can always give 21kW.
Can you give me the real meaning of this value 'maximum battery power (21kw)'.

bin liu

Hi Olivier,
First of all, thanks to your reply. I calculated that Pmax(21kW) is obtained at Ibatt=261.248A and Vbatt=80.46V. With this equation: Pbatt=Ibatt*(Voc-Ibatt*R).
However, I found in another model named 'power_FCV_powertrain', also in '\Energy Management Subsystem\Battery Management System\', the value 'Vbatt=288V' which is the same as in the battery model which is set 'Nominal voltage=288V', and the gain V2W is set '2000'. Can you give me some advice?
The most important question for me is: How you calculate the maximum battery power? And how you get the point of battery voltage and battery current?
best wishes

Olivier Tremblay

Due to the internal resistance, when the current is 210A, the batteryn voltage drops to around 100V. The BMS calculates de "maximum available power" based on the maximum battery power. That's why we use Vbatt = 100V.

bin liu

Hi Olivier,
As you said 'The maximum battery power (21kw) is obtained at around 210A (at 90% SOC). At this time, the battery voltage is about 100V (Vbatt)'. The nominal voltage of the battery you used in the model is 200V. It is impossible to be 100V when at 90% SOC.
This problem really confuses me, because the battery parameter(Vbatt) you use is different in the same model.

Olivier Tremblay

Hi Bin lu,
Without changing any PI controller parameters, it is possible to step down the DC bus voltage to 200V. In the DC/DC converter, set the initial voltage of Cbus1 to 72 V and Cbus to 200. Divide the inductance value (L) by 10. Set the reference value (Ubus Ref) to 200.
Of course, you need to downsize the 2 PMSM motor drive parameters to 200V in order to match the new DC Bus voltage. I hope this will help you!

Best regards

Olivier Tremblay

Hi Bin lu,
The maximum battery power (21kw) is obtained at around 210A (at 90% SOC). At this time, the battery voltage is about 100V (Vbatt). The relation between the available battery power and the battery voltage has been aproximate to 21 000W / 100V = 210 (W2V). In the model, we have approximated the gain to 200.

Best regards

bin liu

bin liu

I still have one question for this model. There is 'DC/DC converter' block, The DC/DC converter adapts the low voltage of the battery (200 V) to the DC bus which feeds the AC motor at a voltage of 500 V using PI controller. However, in my case, my battery is only 72V(nominal voltage), and I want to keep the DC bus voltage 200V(for example). I found it really difficut tuning the PI contrller to get this value. The value is even not stable.
Can you give me some advice?
best wishes

bin liu

I have a question about this model.
I found the value 'Vbatt' used in the model is 100V, but in the 'Electrical Subsystem', in the battery model the 'nominal voltage' you set is 200V. I can not understand it, can you also give me some details about this?

Thank you very much!!!

Olivier Tremblay

Hi Giannis,
The ICE maximum power represents the net available power at the output shaft. In order to represent a very simplified relationship of the engine loss, we supposed that the efficiency of the ICE is 50% at the maximum speed. That's why we multiplied the maximum power by 2 and we included a viscous friction of 57 kW at 5000rpm (0.2079 Nms x (5000 / 30 * pi)^2 = 57 000).

First of all, I want to say a big Thank you to the authors of this model. I found it very helpful and interesting!
I want to make a specific question about this model:
On the ICE subsystem, on ICE block, I noticed that parameter "Maximum Power (W)" is 57000+57000 (=114KW). Moreover, there is a "torsional spring-damper" block, connected to the ICE axis.
After the simulation, I found that the maximum output power of the ICE subsystem is 57 kW @ 5000 rpm. Nice.
My Question is: I want to create a model of an ICE whose parameters are 45kW @ 5000rpm. What is the rate of the parameter that I have to set as "Maximum Power (W)". And how can I calculate the rate of the Damping - “ICE friction - 45 kW @ 5000 rpm” in torsional spring-damper block??
I am running release 2010a.

MATLAB Release Compatibility
Created with R2014a
Compatible with any release
Platform Compatibility
Windows macOS Linux

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!