The fourth and last unit of our car model: the motion along the road. Drive force, brake force and resistance in; speed, acceleration and distance out, limited by the grip of the tyres. Specified in plain words and verified like a software unit: model review, static analysis, six tests, decision coverage. Every report linked as the tool wrote it.
See the work products ↓7 min read · all reports open in a browser, no MATLAB needed

Three tools · EverView · EverCheck · EverTest
The powertrain pushes, the driving resistances hold back, the brakes slow down. This unit adds the three forces up and turns them into motion. It has two states, speed and distance, three places where it limits a value, and the most demanding test of the series: a drive of ten kilometres that touches every limit of the interface. Same workflow, same five work products.
| Step | Work product | Tool | ISO 26262 | Result |
|---|---|---|---|---|
| 1 | Unit Specification | Word | Part 8, Clause 9 — verification environment specified | 6 requirements |
| 2 | WEB_LON.html — model view | EverView | Part 6, Clause 8 — design review input | 26 blocks, 6 requirement tags |
| 3 | SMA_LON.html — static analysis | EverCheck | Part 6, Clause 8 — verification of unit design | 54 / 54 checks passed |
| 4 | VER_LON.html — test results | EverTest | Part 8, Clause 9 — verification executed and evaluated | 6 / 6 passed, 6 / 6 requirements, 11 / 11 design ranges |
| 5 | COV_LON.html — structural coverage | EverTest | Part 6, Clause 9 — coverage metrics | Decision 6 / 6 |
All reports are self-contained HTML files. They open offline, without MATLAB, and are the files that document the test environment in the safety case.
Newton’s second law, one step at a time. Every 20 ms the unit takes the three forces, works out the acceleration, and moves the speed and the distance on by one step. Three limits keep the result physical.
| Effect | Where it comes from | How it behaves | Our car |
|---|---|---|---|
| Grip | The tyres pass on only as much force as the road gives them | Drive minus brake force is cut at plus and minus MU_ROAD × weight | 14 715 N dry, 10 300 N wet, 4 415 N on snow |
| Acceleration | Tyre force minus resistance, divided by the mass | The speed changes by acceleration × 20 ms per cycle | 1500 kg: 12 000 N give 8 m/s² |
| No rolling back | Brakes and hills slow a car down, they do not drive it backwards | The speed never goes below 0; the acceleration reports what was actually applied | Held on a 15 % hill: 0 m/s, 0 m/s² |
| Distance | Speed times time, added up | Grows by speed × 20 ms per cycle; never decreases | 3.92 m after 1 s of full drive |
With this unit the car model is complete, and the numbers of the earlier pages finally add up to driving:

Figure 1 · Computed from the specification: the same car on three roads, flat, without air drag. Left: full drive to 100 km/h, then full brake. Right: the stopping distance.
Why a plain sum. The unit uses the simplest integration there is: the new speed is the old speed plus acceleration times 20 ms, and the distance grows by the speed at the start of the cycle. After one second of full drive that gives 3.92 m, where the exact formula gives 4.00 m. The specification states this difference, so the test can expect it instead of tolerating it.
The plan. The car was built in steps, and each step was verified before the next one was added: the powertrain, the driving resistances, the brakes and the longitudinal motion (this page). Next the loop is closed with the cruise controller.
The cruise controller only ever sees one number from the car: the speed. Every other unit reaches the controller through this one. A car that rolls backwards on a hill, that brakes harder than its tyres allow, or that loses a metre per kilometre would test the controller against a car that does not exist. The controller would pass, and the road would find the problem.
The unit has two states, and both run for the whole drive. An error in a state does not show in one step; it adds up. That is why the tests here run up to two minutes of simulated time and look at the speed and the distance in every cycle, and why the specification says how large the rounding of single precision may get over ten kilometres.
ISO 26262-8 asks for a specified verification environment (Clause 9) and for confidence in every tool whose error could let a fault go undetected (Clause 11). The powertrain page explains the argument in full. The full run for this unit takes about fifteen seconds.
Three pages in the same layout as for the other units: the interface table, six requirements, and the six test cases with the values a reviewer can check by hand.
| Name | Type | Data type | Min | Max | Unit | Description |
|---|---|---|---|---|---|---|
fDrive | Input | single | 0 | 12000 | N | Drive force at the wheels (from the powertrain) |
fBrake | Input | single | 0 | 15000 | N | Brake force at the wheels (from the brakes) |
fRes | Input | single | −2207.25 | 5273.83 | N | Driving resistance, positive slows the car (from the resistances) |
v | Output | single | 0 | 85 | m/s | Vehicle speed, never negative |
accLong | Output | single | −13.3259 | 9.4716 | m/s² | Longitudinal acceleration actually applied |
distance | Output | single | 0 | 10000 | m | Distance travelled |
MU_ROAD | Parameter | single | 0.3 | 1.0 | – | Road grip: dry 1.0, wet 0.7, snow 0.3 |
VEH_MASS | Parameter | single | 1500 | 1500 | kg | Vehicle mass |
G | Parameter | single | 9.81 | 9.81 | m/s² | Gravity |
V_INIT | Parameter | single | 0 | 0 | m/s | Speed at the start |
TS | Parameter | single | 0.02 | 0.02 | s | Sample time |
V_INIT and the distance is 0 m.VEH_MASS, times TS. The net force is the tyre force minus fRes.fDrive − fBrake is limited to plus and minus MU_ROAD × VEH_MASS × G.accLong reports the acceleration actually applied in that cycle.TS. It never decreases.What matters: the input ranges are the output ranges of the three units that feed this one, so the interfaces of the car model fit together by construction. MU_ROAD is the only parameter with a range: one car, tested on dry, wet and snowy roads. Speed and distance have no physical limit inside this unit; 85 m/s (just above the 300 km/h limiter of the powertrain) and 10 km (longer than any test) are design assumptions, and the specification says so.
Twenty-six blocks, read from left to right. The shaded area on the left is the grip of the road: drive minus brake force, cut at plus and minus MU_ROAD × VEH_MASS × G by a min and a max. Then the resistance is subtracted, the result divided by the mass and multiplied by the sample time. A sum and a max make the new speed, never below 0, and a unit delay holds it. The bottom line adds up the distance in a second unit delay.

Figure 2 · The unit in EverView. Signal names, types and ranges on every line; one REQ tag per requirement on the block that implements it.
REQ: LON-3 on the max that closes the grip limit, LON-2 on the division by the mass, LON-4 on the max that stops the car at 0, LON-1 on the speed state with its initial value V_INIT, LON-5 on the distance sum, LON-6 on the acceleration output. EverCheck and EverTest read the same tags.accLong is the change of speed in the cycle divided by TS, not the force divided by the mass. In the cycle in which the car stops the two differ, and only the measured value is true: that is what LON-4 asks for.The same 54 checks as for the other units, run before any test effort is spent: interface complete and consistent, only approved block types, explicit initialization, divisions safe against zero, unique requirement IDs, requirement traceability, model configuration, no warnings during model update. Result: 54 of 54 passed.

Figure 3 · EverCheck summary: 26 blocks, operator complexity 15, 54 / 54.
V_INIT, the distance at 0, both written in the model. Without them LON-1 would depend on the simulator’s defaults.Each test is a short drive: accelerate, hold, brake, stop. Six test cases, one per requirement, 6967 time steps in total, and an expected value in every one of them, computed from the specification before the first run.
| Test case | Situation | What we expect | REQ |
|---|---|---|---|
| TC1_Start | Full drive from the first cycle, 0.5 s | Speed 0, 0.16, 0.32 m/s; distance 0, 0, 0.0032 m; acceleration 8 m/s² at once | LON-1 |
| TC2_Newton | 12 000 N, then 6000 N against 1500 N, then coasting against 1500 N, 1 s each | 8, 11 and 10 m/s after each second; 8, 3 and −1 m/s² | LON-2 |
| TC3_Grip | Snow: full drive for 1 s, then full brake for 0.5 s | Both capped at 4414.5 N: +2.943 and −2.943 m/s² | LON-3 |
| TC4_NoReverse | Wet road: drive to 4 m/s, brake to a stop, hold on a 15 % uphill with and without brake, roll down a 15 % downhill | Stops at 1.2 s, −0.857 m/s² in the last cycle; stays at 0 on the hill; rolls forward at 0.8048 m/s² | LON-4 |
| TC5_Distance | 1 s full drive, 1 s cruise, brake to a stop | 3.92 m, 11.92 m, 15.26 m at the stop, then constant | LON-5 |
| TC6_Range | Full drive downhill, cruise at 85 m/s against the highest resistance, full brake, 125 s | 9.4715 and −13.3259 m/s², exactly 85 m/s, exactly 10 000 m; never outside the ranges | LON-6 |
MU_ROAD takes both ends of its range and a value in between, and the upper grip limit, which a dry road never reaches, is reached at all.> brake 15000 N, with the expected numbers after //. The goal of each case states the values to look for, so a reviewer can read the plot against the specification without opening the model.This is the EverView export of the test harness itself, live in the frame: the longitudinal motion unit between the EverTest source and sink, with the signal names and ranges of the interface. Double-click into LON to walk the model, click a block for its properties. Exactly what a reviewer does, with no licence.
Open full screen in a new tab ↗
Open the live harnessFull screen in a new tab. Walk into the unit, click a block for its properties. Best on a tablet or desktop.Open live export ↗
LIVE EVERVIEW EXPORT · LON_harness · NAVIGATE · SEARCH · PROPERTIES
One run executes the six cases in the harness and writes the verification report. Result: 6 of 6 passed, all six requirements covered, all eleven design ranges reached.

Figure 4 · Requirements traceability matrix: one test case per requirement, all passed.

Figure 5 · TC4_NoReverse in the report: up to 4 m/s, braked to 0, held on the hill with and without brake, never below 0, then rolling forward downhill.

Figure 6 · The test data of TC1: the hand-computed reference next to the recorded value in every cycle, with the phase marker, the goal and the plot commands in the description column.
? as reference. Each recorded value was compared with the hand-computed one; only then were the references written. Largest difference: 0.0064 m/s², the rounding of single precision. The allowed difference is 0.01.Three things did not pass on the first attempt. None of them was a modelling error, all three were gaps between the specification and the arithmetic, and each was closed in the specification first:
MU_ROAD was tested at 0.3 and 1.0 only. The check asks for a value in between, so TC4 now runs on a wet road at 0.7.
Figure 7 · TC6_Range: acceleration, distance and speed over 125 s. Every limit of the interface reached, none passed.
Each of the three limits is a min or max block, and each is a decision with two outcomes: the limit is active or it is not. The coverage report shows all six outcomes, cyclomatic complexity 4.

Figure 8 · COV_LON: decision 6 / 6 on the two grip limits and the no-rolling-back limit.

Figure 9 · TC3_Grip on snow: both grip limits active, one after the other. Without the limits the plot would show +8 and −10 m/s².
V_INIT and whether the distance adds up is the job of TC1, TC5 and their references.The argument is the same as for the powertrain, the resistances and the brakes. EverCheck and EverTest bring their own TCL 3 qualification kit. The plant model is a tool we build ourselves, and its confidence comes from the work shown here: a specification, a model that passed the product’s static checks, tests against values computed in advance, coverage of every decision, and reports that record every version. With this page all four plant units have that record, and the interfaces between them were specified to fit.
Because the cruise controller under test only drives forwards, and a reverse gear is not part of this model. Without the limit a car held by its brakes on a hill would start to roll back as soon as the brake force exceeded the hill, which is not what brakes do. The limit is one max block, and TC4 checks it on a hill with and without the brake.
The acceleration of a cycle is the change from this cycle’s speed to the next one. The speed is a state and shows the change in the next cycle. TC1 shows it in the first three numbers: acceleration 8 m/s² at once, speed 0.16 m/s one cycle later, distance two cycles later.
The unit adds up the speed at the start of each cycle, the simplest integration there is. Over one second of constant acceleration that misses half a cycle of speed gain: 0.08 m. At 50 Hz the difference stays below 0.1 m per second of acceleration, and the specification writes it down instead of hiding it in a tolerance.
The exact value is 9.4715 m/s². In single precision the model computes 9.47151, one hundred-thousandth above it, and the range check stopped the simulation. The design limit was raised by 0.0001 in the specification, the model and the test specification, with the reason written next to it.
The car model is complete. Next the loop is closed: the cruise controller drives the four verified units, and the tests look at the whole car on the road.
Download the trial, take one plant unit, and produce the five work products for it. Or bring one unit to a half-day working session — your model, your requirements, your reports at the end.
⬇ Download Free Trial Talk to us