within AIDAModelica; model CreateMotion "[SF1.1/2/3/4.2] Create motion" // CP: 65001 // SimulationX Version: 3.8.2.45319 x64 Modelica.Blocks.Interfaces.RealInput ThrottleCommandK "Throttle command of k-th motor" annotation( Placement(transformation(extent = {{-125, -10}, {-85, 30}}), iconTransformation(extent = {{-120, -20}, {-80, 20}}))); Modelica.Blocks.Interfaces.RealOutput MotorKAngularVelocity(quantity = "Mechanics.Rotation.RotVelocity", displayUnit = "rpm") "Angular velocity of k-th motor" annotation( Placement(transformation(extent = {{75, 0}, {95, 20}}), iconTransformation(extent = {{86.7, -10}, {106.7, 10}}))); Modelica.Blocks.Continuous.FirstOrder W(T = 0.2, initType = Modelica.Blocks.Types.Init.InitialState, y_start = 377.59565222) annotation( Placement(transformation(extent = {{30, 0}, {50, 20}}))); AIDAModelica.WSSModel wSSModel1 annotation( Placement(transformation(extent = {{-40, 0}, {-20, 20}}))); equation connect(wSSModel1.WSSOut, W.u) annotation( Line(points = {{-20, 10}, {-15, 10}, {23, 10}, {28, 10}}, color = {0, 0, 127}, thickness = 0.0625)); //le moteur tourne dans un seul sens /*MotorKAngularVelocity=max(0,W.y);*/ connect(wSSModel1.CmdKIn, ThrottleCommandK) annotation( Line(points = {{-40, 10}, {-45, 10}, {-100, 10}, {-105, 10}}, color = {0, 0, 127}, thickness = 0.0625)); connect(W.y, MotorKAngularVelocity) annotation( Line(points = {{51, 10}, {56, 10}, {80, 10}, {85, 10}}, color = {0, 0, 127}, thickness = 0.0625)); annotation( ThrottleCommandK(flags = 2), MotorKAngularVelocity(flags = 2), W(u(flags = 2), y(flags = 2)), wSSModel1(CmdKIn(flags = 2), WSSOut(flags = 2)), Icon(coordinateSystem(extent = {{-100, -50}, {100, 50}}, initialScale = 0.1), graphics = {Rectangle(fillColor = {255, 255, 255}, fillPattern = FillPattern.Solid, extent = {{-100, 50}, {100, -50}}), Text(origin = {-4, 0}, extent = {{-36, 8}, {36, -8}}, textString = "%name")}), experiment(StopTime = 1, StartTime = 0, Interval = 0.002, MaxInterval = "0.001")); end CreateMotion;