Validating Flow Response With the Simulation Data Inspector
This example shows the workflow for a unit test assessment of model suitability based on the mass flow rate through a valve by using the Simulation Data Inspector. Performing a successful validation ensures that you are using the most appropriate equations to model a specific application or phenomena. Testing a model's response in a test harness helps to assess the response of a model to a controlled range of inputs. You can find other test harness examples in Test Harnesses.
This tutorial uses the example
is composed of a Simulink model and a live script that runs the harness for multiple spool
sscfluids_4_way_3_position_valve example uses a script to run and
process the model and plot the simulation data. This tutorial shows an alternative way to
validate the model by using the Simulation Data Inspector. Open the model by entering
sscfluids_4_way_3_position_valve at the command line. Open the live
script by clicking the Open live script link at the bottom of the model.
Build a Test Harness
To collect simulation data to validate the four-way valve, construct a unit test that
interrogates the valve at a range of pressures. The
sscfluids_4_way_3_position_valve is an example of a four-way valve in a
Use a Ramp block and a PS-Lookup Table (1D) block to set the testing range of the valve. The ramp block specifies the simulation time and the look-up table specifies the validating data range. In
Mass flow rate is the chosen variable to validate against specification sheet data. The test harness is configured to steadily increase pressure from 0 to 5.8 bar.
The specification sheet data is for maximum open area, which is when the spool positions are fully extended in the positive and negative positions. The simulation runs two tests: one for the flow paths open at the maximum positive position, and one for the flow paths open at the maximum negative spool position.
Store your validating data in a Simulation Data Inspector-friendly format. The validating data is specified as volumetric flow rate for pressure differential over the four valve flow paths. However, the data need to be converted to a timeseries in order to compare it in the Data Inspector with the simulation results:The specification sheet data is in lpm. To match the simulation default units, the data set is multiplied by
%For 11 data points in the look-up table during a ramp from 0 to 100s: flowRateData_PB = timeseries(0.0166*[0.58 9.45 20.6 29.9 41.7 55.9 69.3 82.2 94 107 120], linspace(0,100,11)); flowRateData_PB.Name = 'Mass Flow Rate PB'; save validating_data.mat flowRateData_PB
0.0166to convert the data to kg/s.
You can also import timeseries data from an Excel sheet.
sscfluids_4_way_3_position_valve, the valve performance is modeled by default with tabulated data. Change this to a linear model in the live script at line 26 with the following command:
% Setting parameters from Orifice parameterization dropdown set_param('sscfluids_4_way_3_position_valve/valve','valve_spec',... 'fluids.isothermal_liquid.valves_orifices.directional_control_valves.enum.directional_valve_spec.linear')
This is equivalent to setting the valve Orifice parameterization to
Linear - Area vs. spool travel.
The test harness is constructed as a unit within a system. To maintain flow through the valve, pumps are connected between the look-up tables and ports.
Collect Simulation Data
The interrogation range is set by the limits of the validating data.
Once the ramp, valve, and 1-D look-up table data and parameters have been set, log the valve data so it can be used in the Simulation Data Inspector. To log the data:
In Modeling, select Model Settings > Model Settings, select Simscape.
In the Simscape pane, check Record data in Simulation Data Inspector.
Check Open viewer after simulation.
Un-check Limit data points.
When the data are recorded in the Simulation Data Inspector, they are saved there under
the block name and port. For example, in a test harness saved as
sscfluids_4_way_3_position_valve.slx, the mass flow rate in the valve block between ports
P and B is saved as a signal as
When Record data in Simulation Data Inspector is left unchecked,
the results are saved as a
Series object under the
simlog variable. For example, the time series for the mass flow rate
through the P-B orifice of the valve block is saved as a series as
For more information, see
After you enable logging, run the live script.
Assess Model Results
Import your validating data.
Click Import. Select Import From and navigate to the pressure timeseries data Mass Flow Rate PB. The import pane displays timeseries data currently in your workspace.
In the To section, ensure that New run is selected and that the time series data Mass Flow Rate PB is checked. Click Import.
In the left-hand pane, click Compare.
Set Baseline to Signals > Mass Flow Rate PB.
Set Compare to to Signals > simlog_sscfluids_4_way_3_position_valve.valve.orifice_PB.mdot_A (Run 1: 4_way_3_position_valve). This run contains the signal data from when the P-B orifice is in open in the positive and neutral positions.
The tolerance of your comparison is the precision to which you can validate your model. Depending on the size of a signal, the Simulation Data Inspector uses either the relative or the absolute tolerance for validation:
Global absolute tolerance signifies the overall absolute range of acceptable variation between data and a simulation point. This tolerance is applied when the signal is small.
Global relative tolerance signifies the maximum acceptable difference between data and a simulation point. This tolerance is applied when the signal is large.
Global time tolerance signifies the range in time one value can be compared to another.
The absolute and relative tolerances should be equal to or larger than the solver tolerance. In this example, set the absolute and relative tolerances to
0.03and set the time tolerance to
0. A nonzero time tolerance value is useful when you expect an impulse response during simulation.
Click Compare. The simulation and data appear with the tolerance bounding lines:
With global and absolute tolerances of 0.03, the linear model is out of tolerance with the data. When the simulation results are fully within the green band limits, the valve is validated for the tested range of the simulation. The shape of the error suggests that it isn't the most suitable model for the application.
The default parameterization of
the same tabulated data as the specification sheet. To see a model in the Simulation Data
Inspector that is fully in tolerance, change the parameterization at line 26 in the live
% Setting parameters from Orifice parameterization dropdown set_param('sscfluids_4_way_3_position_valve/valve','valve_spec',... 'fluids.isothermal_liquid.valves_orifices.directional_control_valves.enum.directional_valve_spec.table2D_volflow_opening_pressure')
However, the slight error offset suggests that some tuning would improve the model accuracy.