Contenido principal

Single-Stage Primary Cylinder

R2026b

This example shows how to model, parameterize, and test a single-stage primary cylinder, starting from manufacturer data sheet information. In this example, you calculate the unknown parameters given the numerical data extracted from the data sheet. After you simulate the model, you can compare the simulation push rod force versus pressure relationship curve with curve provided on the manufacturer data sheet.

Open the Model

The SingleStagePrimaryCylinder model, which is a model of a single-stage primary cylinder with a test harness.

open_system('SingleStagePrimaryCylinder')

Manufacturer Data Sheet Data

Define data for the supplier component design parameters and the expected output function diagram.

sspc.dp = 31.75*1e-3;               % (m) Piston diameter
sspc.stroke = 36*1e-3;              % (m) Piston stroke
sspc.disp = 27*1e-6;                % (m^3) Circuit displacement
sspc.maxPress = 120*1e5;            % (Pa or N/m^2) Max pressure

sspc.pushRodF = [0 100 4000];       % (N) Push rod force                     
sspc.circuitP = [0 0   45e5];       % (Pa or N/m^2) Pressure vector

Plot the function diagram of single-stage primary cylinder.

p1 = plot(sspc.pushRodF,sspc.circuitP);
p2 = xlabel('Push rod force (N)');
p3 = ylabel('Circuit pressure (Pa)');
p4 = title('Function diagram from data sheet');
grid on

Figure contains an axes object. The axes object with title Function diagram from data sheet, xlabel Push rod force (N), ylabel Circuit pressure (Pa) contains an object of type line.

Calculate derived parameters or make assumptions for the remaining parameters.

sspc.aPist = (pi/4)*sspc.dp^2;                              % (m^2) Pressure acting piston area
sspc.deadzone = 1.5e-3;                                     % (m) length for which no pressure generated
sspc.c = 1e-3;                                              % (Ns/m) Damping coefficient
sspc.mass = 1e-2;                                           % (Kg) Piston mass
sspc.v2D = 1000e-9;                                         % (m^3) Circuit dead Volume
sspc.v2M = sspc.v2D+sspc.aPist*(sspc.stroke-sspc.deadzone); % (m^3) Circuit max Volume
sspc.a1Ori = 100e-6;                                        % (m^2) Compensating orifice area
sspc.a2Ori = 10e-6;                                         % (m^2) Circuit orifice area
sspc.pRes = 1e5;                                            % (Pa) Initial Pressure condition
sspc.hss = 1e8;                                             % (N/m) Hard stop stiffness
sspc.hsd = 1e6;                                             % (N/(m/s)) Hard stop damping coefficient

Parameter Estimation Scheme

The equation of motion of the single-stage primary cylinder system is

mx1..+cx1.+k1x1=Fp1-P1A-PreL.

The steady-state equation of the system is

k1x1=Fp1-P1A-PreL

[x111x121][k1PreL]=[Fp1-P11AFp2-P12A]

where:

  • x1 is positions of mass from the left side assumed hard stop.

  • m is mass of piston.

  • c is damping coefficient of piston.

  • k1 is spring stiffness coefficients.

  • FP1 is force applied on push rod of primary cylinder.

  • P1 is pressures in brake circuit.

  • PreL is preload on the spring.

You can solve the steady-state equation of the system at the two points given in the function diagram. Use the solution as parameters that govern the functionality of the system.

sspc.fP1 = sspc.pushRodF(2);
sspc.fP2 = sspc.pushRodF(3);
sspc.P1 = sspc.circuitP(2);
sspc.P2 = sspc.circuitP(3);
sspc.a = [sspc.deadzone 1; ...
         sspc.stroke   1];
sspc.b = [sspc.fP1 - sspc.P1*sspc.aPist; ...
         sspc.fP2 - sspc.P2*sspc.aPist];     
sspc.out = sspc.a\sspc.b;

sspc.k = sspc.out(1);              % (N/m) Spring stiffness
sspc.preL = sspc.out(2);           % (N) Spring preload force
sspc.def = sspc.preL/sspc.k;       % (m) Spring compression

Set Model Up for Simulation

It is important to test the system with the correct load. In the test model, a spring-based accumulator performs the loading on the single-stage primary cylinder. Use information from the data sheet to determine the stroke values for circuits.

sspc.vol = sspc.v2M-sspc.v2D-sspc.aPist*sspc.deadzone;   % (m^3) Fluid chamber capacity for pressure circuit 
sspc.loadP = sspc.circuitP(3);                           % (Pa) Pressure at full capacity for pressure circuit

Simulate the Model

The model generates push rod force versus pressure plots for selected manufacturer designs. The applied push rod force to the single-stage primary cylinder is ramped at 25 N/sec in the simulation.

 simT = (sspc.pushRodF(3)/25)+10; % Simulation time
 sim('SingleStagePrimaryCylinder.slx',simT)

Plot the output from the model and the results with the data sheet functional specification. The plot shows that the results match, which means that you parameterized the block correctly.

figure
i1 = plot(logsout{1}.Values.Time,...
    logsout{2}.Values.Data);
i2 = xlabel('Time (sec)');
i3 = ylabel('Push rod force (N)');
i4 = title('Model force applied by driver on push rod');
i1.LineWidth = 2;
i2.FontSize = 14;
i3.FontSize = 14;
i4.FontSize = 14;
grid on

Figure contains an axes object. The axes object with title Model force applied by driver on push rod, xlabel Time (sec), ylabel Push rod force (N) contains an object of type line.

figure
p5 = plot(logsout{2}.Values.Data,logsout{1}.Values.Data,...
    ':',sspc.pushRodF,sspc.circuitP,'--');
p6 = legend('Circuit pressure','Function diagram - data sheet','location','best');
grid on
p5(1).LineWidth = 2;
p5(2).LineWidth = 2;
p7 = xlabel('Push rod force (N)');
p8 = ylabel('Pressure (Pa)');
p6.FontSize = 14;
p7.FontSize = 14;
p8.FontSize = 14;

Figure contains an axes object. The axes object with xlabel Push rod force (N), ylabel Pressure (Pa) contains 2 objects of type line. These objects represent Circuit pressure, Function diagram - data sheet.

See Also

Topics