Author a Test Sequence and Test Assessment
This example shows how to use a Test Sequence block and Test Assessment block to create a test harness for a transmission shift logic controller. The Test Sequence block varies the speed input to the controller and the Test Assessment block verifies that the speed is appropriate for the gear position. For more information, see Test Sequence Basics.
Create a Test Sequence
1. Open the model.
2. Right-click the
shift_controller subsystem and select Test Harness > Create for ‘shift_controller’.
3. In the Create Test Harness dialog box, under Sources and Sinks:
Set the source drop-down menu to
Select Add separate assessment block.
Select Open harness after creation.
For more information, see Create a Test Harness.
4. Click OK. The test harness for the
shift_controller subsystem opens.
5. Double-click the Test Sequence block. The Test Sequence Editor opens.
6. Change the name of the first step from
Accelerate, and add the step actions that specify the initial throttle setting and how the speed increases:
speed = 10*ramp(et);
throttle = 100;
The ramp function returns the value of a ramp signal of slope 1 at time et, which is the elapsed time of the step. For this example, the speed at a particular time after the beginning of the step is 10 times the value of the ramp at that time. See Test Sequence Editor for more information.
7. Right-click the
Accelerate step and select Add step after. Change the name of this step from
Stop, and add the step actions that stop the test when the throttle and speed are equal to
throttle = 0;
speed = 0;
8. In the Symbols pane, point to Constant and click the add data button . Enter
Limit for the constant name and click Add data.
9. Point to
Limit and click the edit button . In the Constant value field, enter
2. Click OK.
10. Right-click the Transition column in the first step, select Add transition. Enter the transition condition for the
Accelerate step. In this example,
Accelerate transitions to
Stop when the system is in fourth gear for at least two seconds. In the Transition column, enter:
duration(gear == 4) >= Limit
11. In the Next Step column, select
12. Save the changes and close the Test Sequence Editor.
Create a Test Assessment
Next, add verifications to the Test Assessment block.
1. Double-click the Test Assessment block to open the editor. The editor displays a default
When decomposition sequence in the Step column. For more information, see Assess a Model by Using When Decomposition.
2. Change the name of the first step from
3. Right-click the
Assessments step and select Add sub-step. Repeat this step to add another substep so there are a total of four substeps.
4. Change the names and add actions for the four substeps as shown in the image. The fourth step,
else, handles simulation conditions outside of the preceding
when conditions. In this step, you do not specify any actions.
5. Save the changes and close the the Test Sequence Editor.
6. In the test harness, add a Scope block and connect the
gear signals to the scope as shown in the image.
7. Open the Scope block. In View > Layout, select a three-column, one-row layout.
8. In the Simulink model, in the Simulation tab, set Stop Time to 15 and click Run. View the signal data in the Scope block. The speed plot shows how the speed increases to a maximum value of 105. The throttle plot shows that the throttle value is held at 100 throughout the test. The gear plot shows that the gear shifts to the next-higher gear at the appropriate speed. After the gear has been equal to 4 for 2 seconds, the speed and throttle go to zero and the gear decreases.
9. View the results of the
verify statements in the Simulation Data Inspector.
In the Simulink model, in the Simulation tab, click Data Inspector.
Click the Visualizations and layouts button and, under Grid, set Rows to
3and Columns to
Select one plot, then select an assessment from the left pane. Repeat for each of the other plots and assessments.
When the model runs, the Test Assessment block verifies that the speed is in the correct range for each gear position. A pass indicates that the speed is in the correct range. Each
verify statement is for a specific gear, so the speed is untested when the controller is in a different gear than the one being tested. There are two pass regions for the
Check1st test assessment because the gear position goes back to first in the second step of the test sequence.