The problem
Passenger three-wheelers carry widely varying loads on short, stop-start trips, and operators care about range per charge and battery life. A physical powertrain model shows how payload, drive cycle and pack size affect range, and how often the motor works near its limits.
Objectives
- Build a physical powertrain model using Simscape and Simscape Electrical blocks.
- Represent an example L5 three-wheeler with variable payload.
- Model a battery with SOC-dependent open-circuit voltage and internal resistance.
- Estimate range for empty, half and full passenger loads on an urban cycle.
- Identify operating points where the motor is current-limited.
What you need
Tools and toolboxes
- Simulink — Driver controller, drive-cycle source, logging and test harness.
- Simscape — Physical network for the mechanical driveline (Inertia, Simple Gear, translational and rotational elements).
- Simscape Electrical — A Battery (Table-Based) block and a controlled motor/drive abstraction for the electrical side.
- Simscape Driveline (optional) — Tire and Vehicle Body blocks; the same can be built from base Simscape elements or plain Simulink.
Software
- MATLAB R2023b or later
- Simulink with Simscape products
- CSV file of an urban cycle such as IDC or a logged route
Extra parts and data
None beyond the software above.
Key concepts
- Acausal physical modelling
- Simscape components are connected by physical ports (torque and speed, voltage and current) and the solver works out the equations, so the model mirrors the real hardware layout.
- Table-based battery
- Open-circuit voltage and internal resistance are given as lookup tables against SOC (and optionally temperature), so terminal voltage sags under load and recovers at rest.
- Payload sensitivity
- Three-wheelers can carry a payload comparable to the vehicle mass, so rolling resistance and inertia energy change considerably between empty and full.
- Current limit
- The motor controller caps phase and battery current, so at low pack voltage or on a slope the delivered torque falls below demand.
Step-by-step guide
- 1
Define the example vehicle
Write a parameter script for an example L5 passenger three-wheeler: kerb mass 400 kg, driver 70 kg, up to three passengers at 70 kg each, Crr 0.015, CdA 1.0 m², wheel radius 0.2 m, reduction ratio 8:1, motor peak 50 N·m and 8 kW, and a 51.2 V, 150 Ah LFP pack (about 7.7 kWh). State clearly that these are example values. Define range on the chosen urban cycle as the main output.
Checkpoint: A parameter script and a table of the three payload cases with total mass for each.
- 2
Build the mechanical driveline
In Simscape, connect an Ideal Torque Source to a motor rotor Inertia, a Simple Gear for the reduction ratio, and a wheel. Model the vehicle as a translational mass with rolling and aerodynamic resistance, either with Simscape Driveline's Tire and Vehicle Body blocks or with a Wheel and Axle plus Translational Damper and custom drag. Add a Solver Configuration block and use ode23t or daessc.
Checkpoint: With a constant motor torque, the vehicle accelerates to the speed where the resistive forces balance, matching a hand calculation.
- 3
Add the battery model
Use the Simscape Electrical Battery (Table-Based) block, or build an OCV source plus series resistor from Simscape foundation blocks. Enter an example LFP OCV–SOC table, with its flat plateau around 3.2–3.3 V per cell scaled to 16 series cells, and an internal resistance table. Connect a Controlled Current Source driven by the motor's electrical power divided by pack voltage, so the electrical side sees the right current.
Checkpoint: A constant 50 A discharge drains SOC at the expected rate (about one third of capacity per hour) and terminal voltage sags by I·R.
- 4
Model the motor and controller
Represent the motor and controller as a torque source limited by a torque–speed envelope and a battery current limit. Compute electrical power as mechanical power divided by an efficiency that you can make a 2-D lookup against speed and torque later. Implement the limits in a MATLAB Function block so the logic is readable, and log commanded and delivered torque.
Checkpoint: A full-throttle run shows delivered torque below commanded when the current limit is reached, and the limit is logged.
- 5
Add driver and drive cycle
Feed an urban cycle (IDC or a logged route) from a From Workspace block. Use a PI driver controller with anti-windup to generate the torque command, with negative commands used for regeneration up to a regen limit and friction braking for the rest. Check the driver can follow the cycle for the full-payload case. If tracking fails on steep accelerations, check whether the current limit is active before retuning the controller gains.
Checkpoint: Speed tracking within ±2 km/h for the full-payload case, shown in the Simulation Data Inspector.
- 6
Verify subsystems
Run three checks: energy balance (battery energy out equals road-load energy plus losses plus kinetic energy change within 1 per cent); a coast-down test from 40 km/h with zero torque, comparing deceleration with the road-load equation; and a gradient test showing the maximum slope at 10 km/h. Fix any sign errors before moving on. Keep these checks as a small script that runs automatically after every model change, so regressions are caught early.
Checkpoint: All three checks pass and are recorded in a verification table.
- 7
Range estimation
Script a range run: repeat the urban cycle until SOC reaches a chosen lower limit (for example 10 per cent), using a stop condition from an Assertion or Stop Simulation block. Record distance and Wh/km for empty, half and full payload. For speed, you can run one cycle and extrapolate, but run the full discharge once to check that voltage sag at low SOC does not change the result.
Checkpoint: Range and Wh/km for each payload case, with consumption in a sensible range for the example, roughly 50–80 Wh/km.
- 8
Analyse operating points
Plot a histogram of motor operating points on the torque–speed plane, weighted by energy, for each payload. Identify how much time the motor spends current-limited and at which speeds. Compare the energy share of rolling resistance, drag and braking losses between empty and full loads, and explain the difference. Use histcounts2 on logged speed and torque, weighting each sample by electrical energy, and draw the motor envelope over the map for reference.
Checkpoint: An operating-point heat map for each case and a table of energy shares.
- 9
Report and recommendations
Write up the model structure, parameters, verification, range results and operating-point analysis. Recommend, for this example, whether a larger pack or a more efficient motor gives more range per rupee of design change, stating assumptions. Note the model limits: no thermal effects, a constant regen limit, and no battery ageing. Include the parameter script, model files and the range script so another team can repeat the study with their own vehicle data.
Checkpoint: A report with range for three payloads, verified model checks and a reasoned recommendation.
Testing & validation
- Constant-torque and coast-down tests agree with hand calculations.
- Battery discharge rate matches capacity and current.
- Energy balance closes within 1 per cent.
- Range from a full discharge run agrees with the single-cycle extrapolation within a few per cent.
Expected results
A physical Simscape powertrain model of an example three-wheeler with range estimates for three payload cases, an operating-point map of the motor and a verified energy balance.
Take it further
- Compare an LFP pack with an NMC pack of the same energy on mass and range.
- Add a real logged route with elevation.
- Add a battery thermal model for hot-weather operation.
- Model a lead-acid pack for comparison with older vehicles.
Viva and review questions
Why use Simscape instead of plain Simulink here?
Simscape connects components through physical ports, so the model follows the real powertrain layout and handles the coupling between battery voltage, current and motor power without hand-deriving every equation.
Why does payload affect range so strongly for a three-wheeler?
Passenger load can be a large fraction of total mass, and both rolling resistance and the energy spent accelerating are proportional to mass, while low speeds make drag relatively small.
What does the LFP plateau mean for SOC indication?
Voltage changes very little across much of the SOC range, so voltage alone is a poor SOC indicator and coulomb counting or a model-based estimator is needed.
Learn it at DIYguru
These DIYguru courses and programmes teach what this project needs.
- CourseCertification Course in MATLAB-SIMULINK, QSS & Advisor Toolbox for EV Design
- CourseAdvanced Certification Course in EV Design & Simulation using MATLAB
- ProgrammeAdvanced Nanodegree Certification Program in EV Engineering, Design, Simulations, and Analysis
- ProgrammePCP in EV Electrical Design & Simulation
