Main Content

Create Equivalent Systems for Conical Poppet Valves

This example shows how to model a conical popped valve by using a composite Simscape™ component or by creating a model using Simscape blocks. To learn about how to model other kind of valves, see Model a Pressure Relief Valve in the Position-Based Translational Domain and Model a Spring in Chamber with Composite Components in the Position-Based Translational Domain.

Compare a Composite Component to an Equivalent Simscape Model

Open the PositionBasedPressureReliefValveComponentization model. Conical Poppet Valve is a Variant Subsystem that contains three variants: Composite, Position-Based Orifice, and Equivalent System, which all model a conical popped valve with different approaches. The figure below shows the Composite and Position-Based Orifice variants. The composite component uses position-based translational Mass, Hard Stop, Spacer, and World blocks. The position-based Orifice block is a modified version of the Orifice (IL) block and uses position-based translational ports for the orifice opening distance. The position-based Orifice block calculates the fluid force based on the orifice geometry.

Run the model for the two variants and compare the results.

model = 'PositionBasedPressureReliefValveComponentization';
variant = [model '/Conical Poppet Valve'];
open_system(model);
% Set Model Variant to "Composite"
set_param(variant, 'OverrideUsingVariant', 'Composite')
% Set the Simlog output name and run the model for the Composite case
set_param(model,'SimscapeLogName','simlog_Composite');
sim('PositionBasedPressureReliefValveComponentization');

% Set Model Variant to "Position-Based Orifice"
set_param(variant, 'OverrideUsingVariant', 'PositionBasedOrifice')
% Set the Simlog output name and run the model for the Position-Based
% Orifice case
set_param(model,'SimscapeLogName','simlog_PositionBasedOrifice')
sim('PositionBasedPressureReliefValveComponentization');
% Close existing figures to reset axes for livescript use
close all;

% Plot the composite variant results
PositionBasedPressureReliefValveComponentizationPlotComparison('Composite');
PositionBasedPressureReliefValveComponentizationPlotComparison('PositionBasedOrifice');
figure(h1_PositionBasedPressureReliefValveComponentization);
nexttile(1)
legend('Composite','Position-Based Orifice','location','southeast');
nexttile(2)
legend('Composite','Position-Based Orifice','location','southeast');

Figure PositionBasedPressureReliefValveComponentization; contains 2 axes objects. Axes object 1 with title Valve Forces, xlabel Time (s), ylabel Force (N) contains 2 objects of type line. These objects represent Composite, Position-Based Orifice. Axes object 2 with title Poppet Displacement, xlabel Time (s), ylabel Displacement (mm) contains 2 objects of type line. These objects represent Composite, Position-Based Orifice.

The two implementations return identical results. Set the model to the default settings.

set_param(model,'SimscapeLogName','simlog_PositionBasedPressureReliefValveComponentization')
set_param(variant, 'OverrideUsingVariant', 'Composite')

Compare a Composite Component to a Model That Uses Physical Signal Equations

The Equivalent System variant uses an unmodified Orifice (IL) block. This variant uses PS signals to perform the force calculations that the position-based orifice variant performed internally. The PS force signal is an input to the Actuator block, which applies the force to the Position-Based Translational network. The model canvas complexity illustrates the advantages of implementing similar modeling situations within a Simscape component instead.

This figure shows the Fluid Force Calculations subsystem.

This code runs the model in the Equivalent System variant and compares the results to the Composite variant results.

% Set Model Variant to "Equivalent System"
set_param(variant, 'OverrideUsingVariant', 'EquivalentSystem')
% Set the Simlog output name and run the model for the Equivalent System
% case
set_param(model,'SimscapeLogName','simlog_EquivalentSystem')
sim('PositionBasedPressureReliefValveComponentization');
% Close existing figures to reset axes for livescript use
close all;

% Plot the Composite variant results
PositionBasedPressureReliefValveComponentizationPlotComparison('Composite');
PositionBasedPressureReliefValveComponentizationPlotComparison('EquivalentSystem');
figure(h1_PositionBasedPressureReliefValveComponentization);
nexttile(1)
legend('Composite','Equivalent System','location','southeast');
nexttile(2)
legend('Composite','Equivalent System','location','southeast');

Figure PositionBasedPressureReliefValveComponentization; contains 2 axes objects. Axes object 1 with title Valve Forces, xlabel Time (s), ylabel Force (N) contains 2 objects of type line. These objects represent Composite, Equivalent System. Axes object 2 with title Poppet Displacement, xlabel Time (s), ylabel Displacement (mm) contains 2 objects of type line. These objects represent Composite, Equivalent System.

The results are different because the conical poppet valve composite component performs smoothing calculations, but the recreated equations model does not.

% Restore defaults
set_param(model,'SimscapeLogName','simlog_PositionBasedPressureReliefValveComponentization')
set_param(variant,'OverrideUsingVariant', 'Composite')

See Also

Topics