model CV parameter SFPLibDyn.Units.Pressure param_pcrack = 10e5 "cracking pressure"; parameter SFPLibDyn.Units.Stiffness param_spring_k = 50e3 "spring rate"; SFPLibDyn.Units.VolFlowRate Q_flow "volume flow rate"; SFPLibDyn.Units.Pressure Delta_p "pressure drop"; SFPLibDyn.Components.Piston piston2(d_piston = 0.011, direction = -1, l_chamber_0 = 0.003) annotation( Placement(transformation(origin = {65, 1}, extent = {{-10, 10}, {10, -10}}, rotation = 90))); SFPLibDyn.Components.Piston piston1(d_piston = 0.011, d_rod = 0.009, direction = +1) annotation( Placement(visible = true, transformation(origin = {65, -23}, extent = {{-10, -10}, {10, 10}}, rotation = -90))); SFPLibDyn.Hydraulic.Orifices.Orifice OR_out(area = 7.536e-05, d_hydr = 0.004, or_model = SFPLibDyn.Units.Choices.orifice_type.DiamArea) annotation( Placement(transformation(origin = {-7, -29}, extent = {{-6, -12}, {6, 12}}, rotation = -90))); SFPLibDyn.Mechanical.Translational.Spring Spring(preload = param_pcrack*SFPLibDyn.Constants.pi*((8e-3)^2)/4, spring_rate = param_spring_k) annotation( Placement(transformation(origin = {65, 51}, extent = {{-9, -9}, {9, 9}}, rotation = 90))); SFPLibDyn.Mechanical.Translational.Sources.ZeroSpeed zero_s annotation( Placement(transformation(origin = {65, 69}, extent = {{-5, 5}, {5, -5}}, rotation = -90))); SFPLibDyn.Components.PoppetSharpEdgeSeat Poppet(coeff_f_flow = 0, d_hole = 0.008, d_poppet = 0.009, direction = +1) annotation( Placement(transformation(origin = {65, -48}, extent = {{-10, -10}, {10, 10}}, rotation = -90))); SFPLibDyn.Mechanical.Translational.Sources.ZeroForce zero_f annotation( Placement(transformation(origin = {65, -71}, extent = {{-7, 7}, {7, -7}}, rotation = 90))); SFPLibDyn.Mechanical.Translational.Mass Mass(endstops_model = SFPLibDyn.Units.Choices.mass_type.Ideal, high_lim = 0.005, low_lim = 0, coeff_viscous = 10) annotation( Placement(transformation(origin = {65, 27}, extent = {{-11, -11}, {11, 11}}, rotation = 90))); SFPLibDyn.Hydraulic.Nodes.Node3p n1 annotation( Placement(transformation(origin = {41, -29}, extent = {{-6, -6}, {6, 6}}, rotation = -90))); SFPLibDyn.Hydraulic.Volumes.Volume2p Vol_int(pressure(start = 0)) annotation( Placement(transformation(origin = {19, -29}, extent = {{-9, -9}, {9, 9}}, rotation = -90))); SFPLibDyn.Connectors.HydPinVol Port1 annotation( Placement(transformation(origin = {-49, -54}, extent = {{-6, -6}, {6, 6}}), iconTransformation(origin = {0, -120}, extent = {{-10, -10}, {10, 10}}))); SFPLibDyn.Connectors.HydPinVol Port2 annotation( Placement(transformation(origin = {-49, -29}, extent = {{-7, -7}, {7, 7}}), iconTransformation(origin = {0, 120}, extent = {{-10, -10}, {10, 10}}))); SFPLibDyn.Hydraulic.Nodes.Node3p n2 annotation( Placement(transformation(origin = {-30, -29}, extent = {{-6, 6}, {6, -6}}, rotation = 90))); equation Q_flow = Port1.q; Delta_p = Port1.p - Port2.p; connect(Port1, Poppet.h2) annotation( Line(points = {{-49, -54}, {55, -54}})); connect(Vol_int.h1, OR_out.h2) annotation( Line(points = {{10, -29}, {5, -29}})); connect(Mass.t1, piston2.t2) annotation( Line(points = {{65, 16}, {64.5, 16}, {64.5, 11}, {65, 11}})); connect(piston2.t1, piston1.t1) annotation( Line(points = {{65, -9}, {65, -14}})); connect(Spring.t1, Mass.t2) annotation( Line(points = {{65, 42}, {65, 38}})); connect(Spring.t2, zero_s.t1) annotation( Line(points = {{65, 60}, {65, 64}})); connect(piston1.t2, Poppet.t1) annotation( Line(points = {{65, -33}, {65, -38}})); connect(Poppet.t2, zero_f.t1) annotation( Line(points = {{65, -58}, {65, -64}})); connect(Vol_int.h2, n1.h1) annotation( Line(points = {{28, -29}, {34, -29}})); connect(n2.h1, Port2) annotation( Line(points = {{-36, -29}, {-42, -29}, {-42, -28}, {-48, -28}})); connect(n1.h2, piston1.h1) annotation( Line(points = {{47, -29}, {55, -29}})); connect(OR_out.h1, n2.h2) annotation( Line(points = {{-19, -29}, {-24, -29}})); connect(Poppet.h1, n1.h3) annotation( Line(points = {{55, -45}, {41, -45}, {41, -35}})); connect(piston2.h1, n2.h3) annotation( Line(points = {{55, 7}, {-30, 7}, {-30, -23}})); annotation( Icon(coordinateSystem(extent = {{-80, -120}, {80, 120}}, grid = {1, 1}), graphics = {Text(origin = {69, 5}, rotation = -90, extent = {{-38, 10}, {38, -10}}, textString = "%name"), Text(origin = {-25, -108}, rotation = 180, extent = {{-16, 10}, {16, -10}}, textString = "1"), Text(origin = {-24, 110}, rotation = 180, extent = {{-16, 10}, {16, -10}}, textString = "2"), Line(origin = {0, -61.21}, points = {{-30, 30}, {0, 0}, {30, 30}}), Line(origin = {0, -61.21}, rotation = 180, points = {{0, 0}, {0, 58.79}}), Line(origin = {0, -25}, rotation = 90, points = {{0, 0}, {6.25, -30}, {18.75, 30}, {31.25, -30}, {43.75, 30}, {56.25, -30}, {68.75, 30}, {75, 0}}), Line(origin = {0, -25}, points = {{0, 0}, {0, 145}}), Ellipse(origin = {0, -40}, extent = {{-15, -15}, {15, 15}})}), Diagram(coordinateSystem(extent = {{-90, 80}, {80, -80}}, grid = {1, 1}), graphics = {Text(origin = {-66, -28}, rotation = 180, extent = {{-16, 10}, {16, -10}}, textString = "2"), Text(origin = {-67, -52}, rotation = 180, extent = {{-16, 10}, {16, -10}}, textString = "1")}), __OpenModelica_commandLineOptions = ""); end CV;