within AIDAModelica; model YAngularSpeedErrorModel "Y angular speed error calculation model" Modelica.Blocks.Interfaces.RealInput PitchCosign( quantity="Mechanics.Rotation.Angle", displayUnit="rad") "'input Real' as connector" annotation(Placement( transformation(extent={{-20,-20},{20,20}}), iconTransformation(extent={{-120,30},{-80,70}}))); Modelica.Blocks.Interfaces.RealInput Pitch( quantity="Mechanics.Rotation.Angle", displayUnit="rad") "'input Real' as connector" annotation(Placement( transformation(extent={{-20,-20},{20,20}}), iconTransformation(extent={{-120,-20},{-80,20}}))); Modelica.Blocks.Interfaces.RealInput AngularSpeedY( quantity="Mechanics.Rotation.RotVelocity", displayUnit="rad/s") "'input Real' as connector" annotation(Placement( transformation(extent={{-20,-20},{20,20}}), iconTransformation(extent={{-120,-70},{-80,-30}}))); Modelica.Blocks.Interfaces.RealOutput AngularSpeedYError( quantity="Mechanics.Rotation.RotVelocity", displayUnit="rad/s") "'output Real' as connector" annotation(Placement( transformation(extent={{-10,-10},{10,10}}), iconTransformation(extent={{86.7,-10},{106.7,10}}))); parameter Real Kwteta=1.5 "Proportional gain Kwteta"; parameter Boolean RTStepConsign=false "test pour commande de step sur la consigne de vitesse angulaire"; Real eteta( quantity="Mechanics.Rotation.Angle", displayUnit="rad") "Teta error"; Real wyd( quantity="Mechanics.Rotation.RotVelocity", displayUnit="rad/s") "Desired angular speed Y"; equation // enter your equations here eteta = Pitch-PitchCosign; if RTStepConsign==true and abs(PitchCosign)>0.001 then wyd = Kwteta; else wyd = -Kwteta*eteta; end if; AngularSpeedYError = wyd-AngularSpeedY; annotation(Icon(graphics={ Rectangle( fillColor={255,255,255}, fillPattern=FillPattern.Solid, extent={{-100,100},{100,-100}})})); end YAngularSpeedErrorModel;