diff --git a/Modelica/Electrical/Machines/Examples/InductionMachines/IMC_DCBraking.mo b/Modelica/Electrical/Machines/Examples/InductionMachines/IMC_DCBraking.mo index 47fe6a8dc9..ab01758d68 100644 --- a/Modelica/Electrical/Machines/Examples/InductionMachines/IMC_DCBraking.mo +++ b/Modelica/Electrical/Machines/Examples/InductionMachines/IMC_DCBraking.mo @@ -2,6 +2,7 @@ within Modelica.Electrical.Machines.Examples.InductionMachines; model IMC_DCBraking "Induction machine with DC current braking" extends Modelica.Icons.Example; import Modelica.Constants.pi; + import Modelica.Electrical.Machines.Thermal.convertResistance; constant Integer m=3 "Number of phases"; parameter SI.AngularVelocity w0(displayUnit="rev/min")= 2*pi*imcData.fsNominal/imcData.p "Initial mechanical speed"; @@ -11,8 +12,14 @@ model IMC_DCBraking "Induction machine with DC current braking" SI.Torque tauShaft=imc.tauShaft "Shaft torque"; SI.AngularVelocity wMechanical(displayUnit="rev/min") = imc.wMechanical "Shaft speed"; - parameter Modelica.Electrical.Machines.Utilities.DcBrakeSettings settings(INominal= - 100, layout="D3") + parameter Modelica.Electrical.Machines.Utilities.DcBrakeSettings settings( + INominal=100, + R=convertResistance( + imcData.Rs, + imcData.TsRef, + imcData.alpha20s, + imc.TsOperational), + layout="D3") annotation (Placement(transformation(extent={{20,60},{40,80}}))); parameter Modelica.Electrical.Machines.Utilities.ParameterRecords.IM_SquirrelCageData @@ -49,50 +56,32 @@ model IMC_DCBraking "Induction machine with DC current braking" annotation (Placement(transformation(extent={{-20,70},{-40,90}}))); Modelica.Electrical.Polyphase.Basic.PlugToPin_p plugToPin2(m=m, k=2) annotation (Placement(transformation(extent={{-20,30},{-40,50}}))); - Modelica.Electrical.Polyphase.Basic.PlugToPin_p plugToPin3(m=m, k=3) if settings.connect3 + Modelica.Electrical.Polyphase.Basic.PlugToPin_p plugToPin3(m=m, k=3) annotation (Placement(transformation(extent={{-20,-10},{-40,10}}))); - Modelica.Electrical.Analog.Sources.ConstantCurrent - constantCurrent(I=settings.Idc) + Analog.Sources.ConstantVoltage + constantVoltage(V=settings.Vdc) annotation (Placement(transformation( - extent={{-10,-10},{10,10}}, + extent={{10,-10},{-10,10}}, rotation=90, origin={-50,62}))); Modelica.Electrical.Analog.Basic.Ground ground annotation (Placement(transformation(extent={{-70,20},{-50,40}}))); + Blocks.Sources.BooleanConstant booleanConstant(k=settings.layout == "Y2") + annotation (Placement(transformation(extent={{-90,0},{-70,20}}))); + Analog.Ideal.IdealOpeningSwitch switch annotation ( + Placement(transformation( + extent={{-10,-10},{10,10}}, + rotation=90, + origin={-50,10}))); initial equation - if settings.layout=="Y3" then - //imc.is[2]=settings.is[2]; - der(imc.is[2])=0; - der(imc.idq_rs[1])=0; - der(imc.idq_rs[2])=0; - end if; - if settings.layout=="Y2" then - der(imc.idq_rs[1])=0; - der(imc.idq_rs[2])=0; - end if; - if settings.layout=="D2" then - //imc.is[2]=settings.is[2]; - der(imc.is[2])=0; - der(imc.idq_rs[1])=0; - der(imc.idq_rs[2])=0; - end if; - if settings.layout=="D3" then - //der(imc.idq_ss[1])=0; - //der(imc.idq_ss[2])=0; - der(imc.is[1])=0; - der(imc.is[2])=0; - der(imc.idq_rs[1])=0; - der(imc.idq_rs[2])=0; + imc.idq_ss=zeros(2); + imc.idq_rs=zeros(2); + if settings.layout=="D2" or settings.layout=="D3" then + imc.i_0_s=0; end if; equation connect(imc.flange, loadInertia.flange_a) annotation (Line(points={{40,0},{50,0}}, color={0,0,0})); - connect(plugToPin1.pin_p, constantCurrent.n) - annotation (Line(points={{-32,80},{-50,80},{-50,72}}, color={0,0,255})); - connect(plugToPin2.pin_p, constantCurrent.p) - annotation (Line(points={{-32,40},{-50,40},{-50,52}}, color={0,0,255})); - connect(constantCurrent.p, plugToPin3.pin_p) - annotation (Line(points={{-50,52},{-50,0},{-32,0}}, color={0,0,255})); connect(plugToPin2.plug_p, plugToPin1.plug_p) annotation (Line(points={{-28,40}, {-20,40},{-20,80},{-28,80}}, color={0,0,255})); connect(plugToPin2.plug_p, plugToPin3.plug_p) annotation (Line(points={{-28,40}, @@ -105,6 +94,16 @@ equation annotation (Line(points={{-28,40},{30,40},{30,12}}, color={0,0,255})); connect(plugToPin2.pin_p, ground.p) annotation (Line(points={{-32,40},{-60,40}}, color={0,0,255})); + connect(booleanConstant.y, switch.control) + annotation (Line(points={{-69,10},{-62,10}}, color={255,0,255})); + connect(switch.p, plugToPin3.pin_p) + annotation (Line(points={{-50,0},{-32,0}}, color={0,0,255})); + connect(ground.p, switch.n) + annotation (Line(points={{-60,40},{-50,40},{-50,20}}, color={0,0,255})); + connect(constantVoltage.p, plugToPin1.pin_p) + annotation (Line(points={{-50,72},{-50,80},{-32,80}}, color={0,0,255})); + connect(ground.p, constantVoltage.n) + annotation (Line(points={{-60,40},{-50,40},{-50,52}}, color={0,0,255})); annotation (experiment( StopTime=25, Interval=0.001, diff --git a/Modelica/Electrical/Machines/Utilities/DcBrakeSettings.mo b/Modelica/Electrical/Machines/Utilities/DcBrakeSettings.mo index 840821df28..44f2f5c800 100644 --- a/Modelica/Electrical/Machines/Utilities/DcBrakeSettings.mo +++ b/Modelica/Electrical/Machines/Utilities/DcBrakeSettings.mo @@ -1,6 +1,7 @@ within Modelica.Electrical.Machines.Utilities; record DcBrakeSettings "Setting for DC current braking" parameter SI.Current INominal=100 "Nominal RMS current per phase"; + parameter SI.Resistance R=0.03 "Phase resistance at desired temperature"; parameter String layout="Y3" "Braking connection layout" annotation (choices( choice="Y3" "Y 3 phases", @@ -25,6 +26,12 @@ record DcBrakeSettings "Setting for DC current braking" elseif layout=="D2" then Idc*{2/3,-1/3,-1/3} else Idc*{1/2,-1/2,0} "Phase currents" annotation(Dialog(group="Results", enable=false)); + parameter SI.Voltage Vdc= + if layout == "Y3" then 3/2*R*INominal*sqrt(2) + elseif layout == "Y2" then 2.0*R*INominal*sqrt(3/2) + elseif layout == "D2" then 2/3*R*INominal*3/sqrt(2) + else 1/2*R*INominal*sqrt(6) "DC braking voltage" + annotation (Dialog(group="Results", enable=false)); annotation (defaultComponentPrefixes="parameter", Icon(coordinateSystem(preserveAspectRatio=false), graphics={ Rectangle( diff --git a/Modelica/Resources/Reference/Modelica/Electrical/Machines/Examples/InductionMachines/IMC_DCBraking/comparisonSignals.txt b/Modelica/Resources/Reference/Modelica/Electrical/Machines/Examples/InductionMachines/IMC_DCBraking/comparisonSignals.txt index 6c816e4083..71936b639c 100644 --- a/Modelica/Resources/Reference/Modelica/Electrical/Machines/Examples/InductionMachines/IMC_DCBraking/comparisonSignals.txt +++ b/Modelica/Resources/Reference/Modelica/Electrical/Machines/Examples/InductionMachines/IMC_DCBraking/comparisonSignals.txt @@ -1,12 +1,10 @@ time -imc.idq_rr[1] -imc.idq_rr[2] -loadInertia.phi -loadInertia.w -imc.idq_sr[1] -imc.idq_sr[2] -imc.is[1] -imc.is[2] -tauElectrical -tauShaft -wMechanical +imc.idq_ss[1] +imc.idq_ss[2] +imc.idq_rs[1] +imc.idq_rs[2] +imc.wMechanical +imc.phiMechanical +imc.tauElectrical +imc.tauShaft +