model ReliefValve parameter SFPLibDyn.Units.Dimensionless param_input_q = 40 "max input flow rate (l/min)"; parameter SFPLibDyn.Units.Position param_valve_displ = 0.0033 "max valve displacement"; parameter SFPLibDyn.Units.Force param_spring_F = 715.05 "spring preload"; parameter SFPLibDyn.Units.Stiffness param_spring_k = 158000 "spring rate"; SFPLibDyn.Mechanical.Translational.Mass Mass(coeff_viscous = 50, endstops_model = SFPLibDyn.Units.Choices.mass_type.Ideal, high_lim = param_valve_displ, low_lim = 0, mass = 0.02) annotation( Placement(visible = true, transformation(origin = {84, 44}, extent = {{-10, -10}, {10, 10}}, rotation = 90))); SFPLibDyn.Mechanical.Translational.Spring Spring(preload = param_spring_F, spring_rate = param_spring_k) annotation( Placement(transformation(origin = {84, 68}, extent = {{-10, -10}, {10, 10}}, rotation = 90))); SFPLibDyn.Mechanical.Translational.Sources.ZeroSpeed zero_s annotation( Placement(transformation(origin = {84, 94}, extent = {{-10, 10}, {10, -10}}, rotation = -90))); SFPLibDyn.Components.Piston piston3(d_piston = 0.006, direction = -1) annotation( Placement(visible = true, transformation(origin = {84, 20}, extent = {{-10, 10}, {10, -10}}, rotation = 90))); SFPLibDyn.Components.PoppetSharpEdgeSeat Poppet(angle_half = 0.3490658503988659, coeff_f_flow = 0.5, d_hole = 0.005100000000000001, d_poppet = 0.006000000000000001, d_rod = 0.002700000000000001) annotation( Placement(visible = true, transformation(origin = {84, -4}, extent = {{-10, -10}, {10, 10}}, rotation = -90))); SFPLibDyn.Components.Leakage Leakage(d_clearance = 0.0001, d_ext = 0.005100000000000001, l_contact_0 = 0.003900000000000001) annotation( Placement(visible = true, transformation(origin = {84, -52}, extent = {{-10, -10}, {10, 10}}, rotation = -90))); SFPLibDyn.Components.Piston piston1(d_piston = 0.005100000000000001, l_chamber_0 = 0) annotation( Placement(visible = true, transformation(origin = {84, -78}, extent = {{-10, -10}, {10, 10}}, rotation = -90))); SFPLibDyn.Mechanical.Translational.Sources.ZeroForce zero_f annotation( Placement(transformation(origin = {84, -96}, extent = {{4, 4}, {-4, -4}}, rotation = -90))); SFPLibDyn.Hydraulic.Volumes.Volume2p Vol_int1(pressure(start = 0), vol_0 = 3.000000000000002e-08) annotation( Placement(visible = true, transformation(origin = {54, -70}, extent = {{-6, -6}, {6, 6}}, rotation = 180))); SFPLibDyn.Components.Piston piston2(d_piston = 0.005100000000000001, d_rod = 0.002700000000000001, direction = -1) annotation( Placement(visible = true, transformation(origin = {84, -28}, extent = {{-10, 10}, {10, -10}}, rotation = 90))); SFPLibDyn.Hydraulic.Sources.Tank tank1 annotation( Placement(transformation(origin = {4, 8}, extent = {{-6, -3}, {6, 6}}))); SFPLibDyn.Hydraulic.Sources.FlowrateSource Q_in(scale = 1/60000) annotation( Placement(transformation(origin = {-56, -42}, extent = {{-12, -10}, {12, 10}}))); SFPLibDyn.Signals.Source.LinearStages q_sig(stage1_duration = 10, stage1_end = param_input_q, stage1_start = 0) annotation( Placement(visible = true, transformation(origin = {-84, -42}, extent = {{-10, -10}, {10, 10}}, rotation = 0))); SFPLibDyn.Hydraulic.Valves.ReliefValve RV(p_crack = 6e+07) annotation( Placement(transformation(origin = {-24, -68}, extent = {{-12, 12}, {12, -12}}))); SFPLibDyn.Hydraulic.Orifices.Orifice OR_in(area = 5.03e-05, d_hydr = 0.004, diam = 0.006000000000000001, n_parall = 4, or_model = SFPLibDyn.Units.Choices.orifice_type.Diameter) annotation( Placement(transformation(origin = {26, -42}, extent = {{-6, -12}, {6, 12}}, rotation = -90))); SFPLibDyn.Hydraulic.Orifices.Orifice OR_out(area = 6.36e-05, d_hydr = 0.0045, diam = 0.004000000000000001, n_parall = 6, or_model = SFPLibDyn.Units.Choices.orifice_type.Diameter) annotation( Placement(transformation(origin = {26, 26}, extent = {{-6, -12}, {6, 12}}, rotation = -90))); inner SFPLibDyn.Properties.Hydraulic.FluidProp fluidProp annotation( Placement(transformation(origin = {4, 90}, extent = {{-10, -10}, {10, 10}}))); SFPLibDyn.Hydraulic.Volumes.Volume4p Vol_int2(vol_0 = 3.000000000000002e-06) annotation( Placement(visible = true, transformation(origin = {54, -42}, extent = {{-6, -6}, {6, 6}}, rotation = -90))); SFPLibDyn.Hydraulic.Volumes.Volume3p Vol_int3(vol_0 = 5.000000000000003e-06) annotation( Placement(transformation(origin = {54, 26}, extent = {{-6, 6}, {6, -6}}, rotation = -180))); SFPLibDyn.Hydraulic.Volumes.Volume3p Vol_IN(vol_0 = 1.000000000000001e-05) annotation( Placement(visible = true, transformation(origin = {-24, -42}, extent = {{-8, 8}, {8, -8}}, rotation = -180))); SFPLibDyn.Hydraulic.Sources.Tank tank2 annotation( Placement(transformation(origin = {-24, -90}, extent = {{-6, -4.5}, {6, 4.5}}))); equation connect(tank1.h1, OR_out.h1) annotation( Line(points = {{4, 14}, {4, 26}, {14, 26}})); connect(Vol_int1.h1, Leakage.h2) annotation( Line(points = {{54, -64}, {54, -58}, {74, -58}})); connect(piston1.t2, zero_f.t1) annotation( Line(points = {{84, -88}, {84, -92}})); connect(q_sig.y1, Q_in.u1) annotation( Line(points = {{-74, -42}, {-68, -42}}, color = {170, 0, 0})); connect(piston2.t1, Leakage.t1) annotation( Line(points = {{84, -38}, {84, -42}})); connect(Poppet.t2, piston2.t2) annotation( Line(points = {{84, -14}, {84, -18}})); connect(Leakage.t2, piston1.t1) annotation( Line(points = {{84, -62}, {84, -68}})); connect(piston3.t1, Poppet.t1) annotation( Line(points = {{84, 10}, {84, 6}})); connect(Mass.t1, piston3.t2) annotation( Line(points = {{84, 34}, {84, 30}})); connect(Spring.t1, Mass.t2) annotation( Line(points = {{84, 58}, {84, 54}})); connect(zero_s.t1, Spring.t2) annotation( Line(points = {{84, 84}, {84, 78}})); connect(OR_in.h2, Vol_int2.h1) annotation( Line(points = {{38, -42}, {48, -42}})); connect(Vol_int2.h3, Poppet.h2) annotation( Line(points = {{54, -36}, {54, -10}, {74, -10}})); connect(Vol_int2.h4, Leakage.h1) annotation( Line(points = {{54, -48}, {54, -54}, {68, -54}, {68, -46}, {74, -46}})); connect(OR_out.h2, Vol_int3.h3) annotation( Line(points = {{38, 26}, {48, 26}})); connect(Poppet.h1, Vol_int3.h1) annotation( Line(points = {{74, -2}, {74, 0}, {54, 0}, {54, 20}})); connect(RV.h1, Vol_IN.h1) annotation( Line(points = {{-24, -56}, {-24, -50}})); connect(Vol_IN.h3, Q_in.h1) annotation( Line(points = {{-32, -42}, {-44, -42}})); connect(Vol_IN.h2, OR_in.h1) annotation( Line(points = {{-16, -42}, {14, -42}})); connect(piston3.h1, Vol_int3.h2) annotation( Line(points = {{74, 26}, {60, 26}})); connect(Vol_int2.h2, piston2.h1) annotation( Line(points = {{60, -42}, {64, -42}, {64, -22}, {74, -22}})); connect(piston1.h1, Vol_int1.h2) annotation( Line(points = {{74, -84}, {54, -84}, {54, -76}})); connect(RV.h2, tank2.h1) annotation( Line(points = {{-24, -80}, {-24, -85.5}})); annotation( Icon(graphics = {Line(origin = {0.320122, 60.3963}, points = {{0, 36}, {0, -30}}), Rectangle(origin = {0, -10}, fillColor = {232, 232, 232}, fillPattern = FillPattern.Sphere, lineThickness = 1.5, extent = {{-60, 60}, {60, -60}}), Line(origin = {63.3101, -7.13366}, points = {{-2.9901, 11.5257}, {-2.9901, -16.4743}, {-2.9901, 11.5257}, {-2.99013, -16.4743}, {3.00987, 17.5257}, {9.00987, -16.4743}, {15.0099, 17.5257}, {21.0099, -16.4743}, {27.0099, 17.5257}, {33.0099, -16.4743}}, thickness = 1), Line(origin = {-15.6799, 4.39634}, points = {{48, 28}, {-22, 28}, {-22, -50}}, thickness = 1, arrow = {Arrow.None, Arrow.Filled}, arrowSize = 14), Line(origin = {0.320122, -74.2836}, points = {{0, 5}, {0, -25}}), Line(origin = {-27.6799, 40.3963}, points = {{28, 10}, {-12, 50}, {-72, 50}, {-72, -50}}, pattern = LinePattern.Dash, thickness = 1), Ellipse(origin = {0, 50}, fillPattern = FillPattern.Solid, lineThickness = 2, extent = {{-2, 2}, {2, -2}}), Line(origin = {-89.8475, -9.60366}, points = {{-10, 0}, {30, 0}}, pattern = LinePattern.Dash, thickness = 1), Ellipse(origin = {1, 51}, extent = {{1, 1}, {-1, -1}})}, coordinateSystem(extent = {{-120, -120}, {120, 120}})), experiment(StartTime = 0, StopTime = 10, Tolerance = 1e-06, Interval = 0.002), Diagram(coordinateSystem(extent = {{-120, -120}, {120, 120}}), graphics = {Bitmap(origin = {-66, 44}, rotation = 180, extent = {{68, 64}, {-68, -64}}, fileName = "modelica://SFPLibDyn/Resources/Examples/Images/rv_valve.png")})); end ReliefValve;