Files
AIDASimulation/SimulationModels/OpenModelica 1.25/AIDAModelica/YAngularSpeedErrorModel.mo

47 lines
2.0 KiB
Plaintext
Raw Normal View History

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(origin = {-120, 60}, 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(origin = {-120, -60}, 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(origin = {-120, 0}, 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(origin = {110, 0}, 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;