Extends from Modelica.Icons.ExamplesPackage (Icon for packages containing runnable examples).
Name | Description |
---|---|
AIMC_DOL | Test example: AsynchronousInductionMachineSquirrelCage direct-on-line |
AIMC_YD | Test example: AsynchronousInductionMachineSquirrelCage Y-D |
AIMC_Transformer | Test example: AsynchronousInductionMachineSquirrelCage transformer starting |
AIMS_Start | Test example: AsynchronousInductionMachineSlipRing |
AIMC_Inverter | Test example: AsynchronousInductionMachineSquirrelCage with inverter |
AIMC_Steinmetz | AsynchronousInductionMachineSquirrelCage Steinmetz-connection |
AIMC_withLosses | Test example: AsynchronousInductionMachineSquirrelCage with losses |
Extends from Modelica.Icons.Example (Icon for runnable examples).
Type | Name | Default | Description |
---|---|---|---|
Voltage | VNominal | 100 | Nominal RMS voltage per phase [V] |
Frequency | fNominal | 50 | Nominal frequency [Hz] |
Time | tStart1 | 0.1 | Start time [s] |
Torque | TLoad | 161.4 | Nominal load torque [N.m] |
AngularVelocity | wLoad | 1440.45*2*Modelica.Constants... | Nominal load speed [rad/s] |
Inertia | JLoad | 0.29 | Load's moment of inertia [kg.m2] |
model AIMC_DOL "Test example: AsynchronousInductionMachineSquirrelCage direct-on-line" extends Modelica.Icons.Example; constant Integer m=3 "Number of phases"; parameter Modelica.SIunits.Voltage VNominal=100 "Nominal RMS voltage per phase"; parameter Modelica.SIunits.Frequency fNominal=50 "Nominal frequency"; parameter Modelica.SIunits.Time tStart1=0.1 "Start time"; parameter Modelica.SIunits.Torque TLoad=161.4 "Nominal load torque"; parameter Modelica.SIunits.AngularVelocity wLoad(displayUnit="1/min")=1440.45*2*Modelica.Constants.pi/60 "Nominal load speed"; parameter Modelica.SIunits.Inertia JLoad=0.29 "Load's moment of inertia";Machines.BasicMachines.AsynchronousInductionMachines.AIM_SquirrelCage aimc; Machines.Sensors.CurrentQuasiRMSSensor currentQuasiRMSSensor; Modelica.Electrical.MultiPhase.Sources.SineVoltage sineVoltage( final m=m, freqHz=fill(fNominal, m), V=fill(sqrt(2/3)*VNominal, m)); Modelica.Electrical.MultiPhase.Basic.Star star(final m=m); Modelica.Electrical.Analog.Basic.Ground ground; Modelica.Blocks.Sources.BooleanStep booleanStep[m](each startTime=tStart1); Modelica.Electrical.MultiPhase.Ideal.IdealClosingSwitch idealCloser(final m=m); Modelica.Mechanics.Rotational.Components.Inertia loadInertia( J=JLoad); Modelica.Mechanics.Rotational.Sources.QuadraticSpeedDependentTorque quadraticLoadTorque( w_nominal=wLoad, TorqueDirection=false, tau_nominal=-TLoad, useSupport=false); Machines.Utilities.TerminalBox terminalBox(terminalConnection="D"); equationconnect(star.pin_n, ground.p); connect(sineVoltage.plug_n, star.plug_p); connect(sineVoltage.plug_p, idealCloser.plug_p); connect(booleanStep.y, idealCloser.control); connect(idealCloser.plug_n, currentQuasiRMSSensor.plug_p); connect(terminalBox.plug_sn, aimc.plug_sn); connect(terminalBox.plug_sp, aimc.plug_sp); connect(terminalBox.plugSupply, currentQuasiRMSSensor.plug_n); connect(loadInertia.flange_b, quadraticLoadTorque.flange); connect(aimc.flange, loadInertia.flange_a); end AIMC_DOL;
Extends from Modelica.Icons.Example (Icon for runnable examples).
Type | Name | Default | Description |
---|---|---|---|
Voltage | VNominal | 100 | Nominal RMS voltage per phase [V] |
Frequency | fNominal | 50 | Nominal frequency [Hz] |
Time | tStart1 | 0.1 | Start time [s] |
Time | tStart2 | 2.0 | Start time from Y to D [s] |
Torque | TLoad | 161.4 | Nominal load torque [N.m] |
AngularVelocity | wLoad | 1440.45*2*Modelica.Constants... | Nominal load speed [rad/s] |
Inertia | JLoad | 0.29 | Load's moment of inertia [kg.m2] |
model AIMC_YD "Test example: AsynchronousInductionMachineSquirrelCage Y-D" extends Modelica.Icons.Example; constant Integer m=3 "Number of phases"; parameter Modelica.SIunits.Voltage VNominal=100 "Nominal RMS voltage per phase"; parameter Modelica.SIunits.Frequency fNominal=50 "Nominal frequency"; parameter Modelica.SIunits.Time tStart1=0.1 "Start time"; parameter Modelica.SIunits.Time tStart2=2.0 "Start time from Y to D"; parameter Modelica.SIunits.Torque TLoad=161.4 "Nominal load torque"; parameter Modelica.SIunits.AngularVelocity wLoad(displayUnit="1/min")=1440.45*2*Modelica.Constants.pi/60 "Nominal load speed"; parameter Modelica.SIunits.Inertia JLoad=0.29 "Load's moment of inertia";Machines.BasicMachines.AsynchronousInductionMachines.AIM_SquirrelCage aimc; Machines.Sensors.CurrentQuasiRMSSensor currentQuasiRMSSensor; Modelica.Electrical.MultiPhase.Sources.SineVoltage sineVoltage( final m=m, freqHz=fill(fNominal, m), V=fill(sqrt(2/3)*VNominal, m)); Modelica.Electrical.MultiPhase.Basic.Star star(final m=m); Modelica.Electrical.Analog.Basic.Ground ground; Modelica.Blocks.Sources.BooleanStep booleanStep[m](each startTime=tStart1); Modelica.Electrical.MultiPhase.Ideal.IdealClosingSwitch idealCloser( final m=m); Machines.Utilities.SwitchYD switchYD; Modelica.Blocks.Sources.BooleanStep booleanStepYD[m](each startTime= tStart2); Modelica.Mechanics.Rotational.Components.Inertia loadInertia( J=JLoad); Modelica.Mechanics.Rotational.Sources.QuadraticSpeedDependentTorque quadraticLoadTorque( w_nominal=wLoad, TorqueDirection=false, tau_nominal=-TLoad, useSupport=false); equationconnect(star.pin_n, ground.p); connect(sineVoltage.plug_n, star.plug_p); connect(sineVoltage.plug_p, idealCloser.plug_p); connect(loadInertia.flange_b, quadraticLoadTorque.flange); connect(booleanStep.y, idealCloser.control); connect(booleanStepYD.y, switchYD.control); connect(idealCloser.plug_n, currentQuasiRMSSensor.plug_p); connect(switchYD.plug_sn, aimc.plug_sn); connect(switchYD.plug_sp, aimc.plug_sp); connect(switchYD.plugSupply, currentQuasiRMSSensor.plug_n); connect(aimc.flange, loadInertia.flange_a); end AIMC_YD;
Extends from Modelica.Icons.Example (Icon for runnable examples).
Type | Name | Default | Description |
---|---|---|---|
Voltage | VNominal | 100 | Nominal RMS voltage per phase [V] |
Frequency | fNominal | 50 | Nominal frequency [Hz] |
Time | tStart1 | 0.1 | Start time [s] |
Time | tStart2 | 2.0 | Start time of bypass transformer [s] |
Torque | TLoad | 161.4 | Nominal load torque [N.m] |
AngularVelocity | wLoad | 1440.45*2*Modelica.Constants... | Nominal load speed [rad/s] |
Inertia | JLoad | 0.29 | Load's moment of inertia [kg.m2] |
model AIMC_Transformer "Test example: AsynchronousInductionMachineSquirrelCage transformer starting" extends Modelica.Icons.Example; constant Integer m=3 "Number of phases"; parameter Modelica.SIunits.Voltage VNominal=100 "Nominal RMS voltage per phase"; parameter Modelica.SIunits.Frequency fNominal=50 "Nominal frequency"; parameter Modelica.SIunits.Time tStart1=0.1 "Start time"; parameter Modelica.SIunits.Time tStart2=2.0 "Start time of bypass transformer"; parameter Modelica.SIunits.Torque TLoad=161.4 "Nominal load torque"; parameter Modelica.SIunits.AngularVelocity wLoad(displayUnit="1/min")=1440.45*2*Modelica.Constants.pi/60 "Nominal load speed"; parameter Modelica.SIunits.Inertia JLoad=0.29 "Load's moment of inertia";Machines.BasicMachines.AsynchronousInductionMachines.AIM_SquirrelCage aimc; Machines.Sensors.CurrentQuasiRMSSensor currentQuasiRMSSensor; Modelica.Electrical.MultiPhase.Sources.SineVoltage sineVoltage( final m=m, freqHz=fill(fNominal, m), V=fill(sqrt(2/3)*VNominal, m)); Modelica.Electrical.MultiPhase.Basic.Star star(final m=m); Modelica.Electrical.Analog.Basic.Ground ground; Modelica.Blocks.Sources.BooleanStep booleanStep1[m](each startTime=tStart1); Modelica.Electrical.MultiPhase.Ideal.IdealClosingSwitch idealCloser(final m=m); Machines.BasicMachines.Transformers.Yy.Yy00 transformer( n=transformerData.n, R1=transformerData.R1, L1sigma=transformerData.L1sigma, R2=transformerData.R2, L2sigma=transformerData.L2sigma); Modelica.Electrical.Analog.Basic.Ground ground2; Machines.Utilities.TransformerData transformerData( f=fNominal, V1=VNominal, C1=Modelica.Utilities.Strings.substring( transformer.VectorGroup, 1, 1), V2=VNominal/sqrt(3), C2=Modelica.Utilities.Strings.substring( transformer.VectorGroup, 2, 2), SNominal=50E3, v_sc=0.06, P_sc=500); Modelica.Blocks.Sources.BooleanStep booleanStep2[m](each startTime=tStart2); Modelica.Electrical.MultiPhase.Ideal.IdealCommutingSwitch idealCommutingSwitch(final m=m, Goff=fill(5E-4, m)); Modelica.Mechanics.Rotational.Components.Inertia loadInertia(J=JLoad); Modelica.Mechanics.Rotational.Sources.QuadraticSpeedDependentTorque quadraticLoadTorque( w_nominal=wLoad, TorqueDirection=false, tau_nominal=-TLoad, useSupport=false); Machines.Utilities.TerminalBox terminalBox(terminalConnection="D"); equationconnect(star.pin_n, ground.p); connect(terminalBox.plug_sn, aimc.plug_sn); connect(terminalBox.plug_sp, aimc.plug_sp); connect(loadInertia.flange_b, quadraticLoadTorque.flange); connect(aimc.flange, loadInertia.flange_a); connect(star.plug_p, sineVoltage.plug_n); connect(booleanStep2.y, idealCommutingSwitch.control); connect(transformer.starpoint2, ground2.p); connect(idealCommutingSwitch.plug_p, terminalBox.plugSupply); connect(transformer.plug2, idealCommutingSwitch.plug_n1); connect(sineVoltage.plug_p, currentQuasiRMSSensor.plug_p); connect(booleanStep1.y, idealCloser.control); connect(currentQuasiRMSSensor.plug_n, idealCloser.plug_p); connect(transformer.plug1, idealCloser.plug_n); connect(idealCloser.plug_n, idealCommutingSwitch.plug_n2); end AIMC_Transformer;
Extends from Modelica.Icons.Example (Icon for runnable examples).
Type | Name | Default | Description |
---|---|---|---|
Voltage | VNominal | 100 | Nominal RMS voltage per phase [V] |
Frequency | fNominal | 50 | Nominal frequency [Hz] |
Time | tStart1 | 0.1 | Start time [s] |
Resistance | Rstart | 0.16 | Starting resistance [Ohm] |
Time | tStart2 | 1.0 | Start time of shorting starting resistance [s] |
Torque | TLoad | 161.4 | Nominal load torque [N.m] |
AngularVelocity | wLoad | 1440.45*2*Modelica.Constants... | Nominal load speed [rad/s] |
Inertia | JLoad | 0.29 | Load's moment of inertia [kg.m2] |
model AIMS_Start "Test example: AsynchronousInductionMachineSlipRing" extends Modelica.Icons.Example; constant Integer m=3 "Number of phases"; parameter Modelica.SIunits.Voltage VNominal=100 "Nominal RMS voltage per phase"; parameter Modelica.SIunits.Frequency fNominal=50 "Nominal frequency"; parameter Modelica.SIunits.Time tStart1=0.1 "Start time"; parameter Modelica.SIunits.Resistance Rstart=0.16 "Starting resistance"; parameter Modelica.SIunits.Time tStart2=1.0 "Start time of shorting starting resistance"; parameter Modelica.SIunits.Torque TLoad=161.4 "Nominal load torque"; parameter Modelica.SIunits.AngularVelocity wLoad(displayUnit="1/min")=1440.45*2*Modelica.Constants.pi/60 "Nominal load speed"; parameter Modelica.SIunits.Inertia JLoad=0.29 "Load's moment of inertia";Machines.BasicMachines.AsynchronousInductionMachines.AIM_SlipRing aims; Machines.Sensors.CurrentQuasiRMSSensor currentQuasiRMSSensor; Modelica.Electrical.MultiPhase.Sources.SineVoltage sineVoltage( final m=m, freqHz=fill(fNominal, m), V=fill(sqrt(2/3)*VNominal, m)); Modelica.Electrical.MultiPhase.Basic.Star star(final m=m); Modelica.Electrical.Analog.Basic.Ground ground; Modelica.Blocks.Sources.BooleanStep booleanStep[m](each startTime=tStart1); Modelica.Electrical.MultiPhase.Ideal.IdealClosingSwitch idealCloser( final m=m); Modelica.Mechanics.Rotational.Components.Inertia loadInertia( J=JLoad); Modelica.Mechanics.Rotational.Sources.QuadraticSpeedDependentTorque quadraticLoadTorque( w_nominal=wLoad, TorqueDirection=false, tau_nominal=-TLoad, useSupport=false); Machines.Utilities.TerminalBox terminalBox(terminalConnection="D"); Machines.Utilities.SwitchedRheostat switchedRheostat(RStart=Rstart, tStart=tStart2); equationconnect(star.pin_n, ground.p); connect(sineVoltage.plug_n, star.plug_p); connect(sineVoltage.plug_p, idealCloser.plug_p); connect(loadInertia.flange_b, quadraticLoadTorque.flange); connect(booleanStep.y, idealCloser.control); connect(idealCloser.plug_n, currentQuasiRMSSensor.plug_p); connect(terminalBox.plugSupply, currentQuasiRMSSensor.plug_n); connect(terminalBox.plug_sn, aims.plug_sn); connect(terminalBox.plug_sp, aims.plug_sp); connect(aims.flange, loadInertia.flange_a); connect(switchedRheostat.plug_p, aims.plug_rp); connect(switchedRheostat.plug_n, aims.plug_rn); end AIMS_Start;
Extends from Modelica.Icons.Example (Icon for runnable examples).
Type | Name | Default | Description |
---|---|---|---|
Voltage | VNominal | 100 | Nominal RMS voltage per phase [V] |
Frequency | fNominal | 50 | Nominal frequency [Hz] |
Frequency | f | 50 | Actual frequency [Hz] |
Time | tRamp | 1 | Frequency ramp [s] |
Torque | TLoad | 161.4 | Nominal load torque [N.m] |
Time | tStep | 1.2 | Time of load torque step [s] |
Inertia | JLoad | 0.29 | Load's moment of inertia [kg.m2] |
model AIMC_Inverter "Test example: AsynchronousInductionMachineSquirrelCage with inverter" extends Modelica.Icons.Example; constant Integer m=3 "Number of phases"; parameter Modelica.SIunits.Voltage VNominal=100 "Nominal RMS voltage per phase"; parameter Modelica.SIunits.Frequency fNominal=50 "Nominal frequency"; parameter Modelica.SIunits.Frequency f=50 "Actual frequency"; parameter Modelica.SIunits.Time tRamp=1 "Frequency ramp"; parameter Modelica.SIunits.Torque TLoad=161.4 "Nominal load torque"; parameter Modelica.SIunits.Time tStep=1.2 "Time of load torque step"; parameter Modelica.SIunits.Inertia JLoad=0.29 "Load's moment of inertia";Machines.BasicMachines.AsynchronousInductionMachines.AIM_SquirrelCage aimc; Machines.Sensors.CurrentQuasiRMSSensor currentQuasiRMSSensor; Modelica.Blocks.Sources.Ramp ramp(height=f, duration=tRamp); Machines.Utilities.VfController vfController( final m=m, VNominal=VNominal, fNominal=fNominal); Modelica.Electrical.MultiPhase.Sources.SignalVoltage signalVoltage(final m= m); Modelica.Electrical.MultiPhase.Basic.Star star(final m=m); Modelica.Electrical.Analog.Basic.Ground ground; Modelica.Mechanics.Rotational.Components.Inertia loadInertia( J=JLoad); Modelica.Mechanics.Rotational.Sources.TorqueStep loadTorqueStep( startTime=tStep, stepTorque=-TLoad, useSupport=false); Machines.Utilities.TerminalBox terminalBox(terminalConnection="Y"); equationconnect(signalVoltage.plug_n, star.plug_p); connect(star.pin_n, ground.p); connect(ramp.y, vfController.u); connect(vfController.y, signalVoltage.v); connect(loadTorqueStep.flange, loadInertia.flange_b); connect(signalVoltage.plug_p, currentQuasiRMSSensor.plug_p); connect(terminalBox.plugSupply, currentQuasiRMSSensor.plug_n); connect(terminalBox.plug_sn, aimc.plug_sn); connect(terminalBox.plug_sp, aimc.plug_sp); connect(aimc.flange, loadInertia.flange_a); end AIMC_Inverter;
Extends from Modelica.Icons.Example (Icon for runnable examples).
Type | Name | Default | Description |
---|---|---|---|
Voltage | VNominal | 100 | Nominal RMS voltage per phase [V] |
Frequency | fNominal | 50 | Nominal frequency [Hz] |
Time | tStart1 | 0.1 | Start time [s] |
Capacitance | Cr | 0.0035 | Motor's running capacitor [F] |
Capacitance | Cs | 5*Cr | Motor's (additional) starting capacitor [F] |
AngularVelocity | wSwitch | 1350*2*Modelica.Constants.pi... | Speed for switching off the starting capacitor [rad/s] |
Torque | TLoad | 2/3*161.4 | Nominal load torque [N.m] |
AngularVelocity | wLoad | 1462.5*2*Modelica.Constants.... | Nominal load speed [rad/s] |
Inertia | JLoad | 0.29 | Load's moment of inertia [kg.m2] |
model AIMC_Steinmetz "AsynchronousInductionMachineSquirrelCage Steinmetz-connection" extends Modelica.Icons.Example; constant Integer m=3 "Number of phases"; parameter Modelica.SIunits.Voltage VNominal=100 "Nominal RMS voltage per phase"; parameter Modelica.SIunits.Frequency fNominal=50 "Nominal frequency"; parameter Modelica.SIunits.Time tStart1=0.1 "Start time"; parameter Modelica.SIunits.Capacitance Cr=0.0035 "Motor's running capacitor"; parameter Modelica.SIunits.Capacitance Cs=5*Cr "Motor's (additional) starting capacitor"; parameter Modelica.SIunits.AngularVelocity wSwitch(displayUnit="1/min")=1350*2*Modelica.Constants.pi/60 "Speed for switching off the starting capacitor"; parameter Modelica.SIunits.Torque TLoad=2/3*161.4 "Nominal load torque"; parameter Modelica.SIunits.AngularVelocity wLoad(displayUnit="1/min")=1462.5*2*Modelica.Constants.pi/60 "Nominal load speed"; parameter Modelica.SIunits.Inertia JLoad=0.29 "Load's moment of inertia";Machines.BasicMachines.AsynchronousInductionMachines.AIM_SquirrelCage aimc(useSupport=true); Modelica.Electrical.Analog.Sources.SineVoltage sineVoltage(freqHz= fNominal, V=sqrt(2)*VNominal); Modelica.Electrical.Analog.Basic.Ground ground; Modelica.Blocks.Sources.BooleanStep booleanStep(startTime=tStart1); Modelica.Electrical.Analog.Ideal.IdealClosingSwitch idealCloser; Modelica.Mechanics.Rotational.Components.Inertia loadInertia( J=JLoad); Modelica.Mechanics.Rotational.Sources.QuadraticSpeedDependentTorque quadraticLoadTorque( w_nominal=wLoad, TorqueDirection=false, tau_nominal=-TLoad); Machines.Utilities.TerminalBox TerminalBox1( terminalConnection="D"); Modelica.Electrical.MultiPhase.Basic.PlugToPin_p plugToPin_p3(m=m, k=3); Modelica.Electrical.MultiPhase.Basic.PlugToPin_p plugToPin_p2(m=m, k=2); Modelica.Electrical.MultiPhase.Basic.PlugToPin_p plugToPin_p1(m=m, k=1); Modelica.Electrical.Analog.Basic.Capacitor cRun(C=Cr); Modelica.Electrical.Analog.Basic.Capacitor cStart(C=Cs); Modelica.Electrical.Analog.Ideal.IdealOpeningSwitch idealOpener; Modelica.Blocks.Logical.GreaterThreshold greaterThreshold(threshold= wSwitch); Modelica.Mechanics.Rotational.Components.Fixed fixed; Modelica.Mechanics.Rotational.Sensors.RelSpeedSensor relSpeedSensor; equationconnect(ground.p, sineVoltage.n); connect(sineVoltage.p, idealCloser.p); connect(booleanStep.y, idealCloser.control); connect(plugToPin_p3.pin_p, sineVoltage.n); connect(idealCloser.n, plugToPin_p2.pin_p); connect(cRun.n, plugToPin_p1.pin_p); connect(loadInertia.flange_b, quadraticLoadTorque.flange); connect(cRun.p, idealCloser.n); connect(plugToPin_p1.pin_p,cStart. n); connect(idealOpener.n, cStart.p); connect(idealOpener.p, idealCloser.n); connect(greaterThreshold.y, idealOpener.control); connect(TerminalBox1.plug_sn, aimc.plug_sn); connect(TerminalBox1.plug_sp, aimc.plug_sp); connect(TerminalBox1.plugSupply, plugToPin_p2.plug_p); connect(TerminalBox1.plugSupply, plugToPin_p3.plug_p); connect(TerminalBox1.plugSupply, plugToPin_p1.plug_p); connect(quadraticLoadTorque.support, fixed.flange); connect(relSpeedSensor.flange_a, fixed.flange); connect(relSpeedSensor.w_rel, greaterThreshold.u); connect(aimc.support, fixed.flange); connect(aimc.flange, relSpeedSensor.flange_b); connect(aimc.flange, loadInertia.flange_a); end AIMC_Steinmetz;
Test example: Asynchronous induction machine with squirrel cage - characteristics with losses
Current | I_sim | I_meas |
Speed | w_sim | w_meas |
Power factor | pf_sim | pf_meas |
Efficiency | eff_sim | eff_meas |
Machine parameters are taken from a standard 18.5 kW 400 V 50 Hz motor, simulation results are compared with measurements.
Nominal stator current | 32.85 | A |
Power factor | 0.898 | |
Speed | 1462.4 | rpm |
Electrical input | 20,443.95 | W |
Stator copper losses | 770.13 | W |
Stator core losses | 410.00 | W |
Rotor copper losses | 481.60 | W |
Stray load losses | 102.22 | W |
Friction losses | 180.00 | W |
Mechanical output | 18,500.00 | W |
Efficiency | 90.49 | % |
Nominal torque | 120.79 | Nm |
Stator resistance per phase | 0.56 | Ω |
Temperature coefficient | copper | |
Reference temperature | 20 | °C |
Operation temperature | 90 | °C |
Stator leakage reactance at 50 Hz | 1.52 | Ω |
Main field reactance at 50 Hz | 66.40 | Ω |
Rotor leakage reactance at 50 Hz | 2.31 | Ω |
Rotor resistance per phase | 0.42 | Ω |
Temperature coefficient | aluminium | |
Reference temperature | 20 | °C |
Operation temperature | 90 | °C |
See:
Anton Haumer, Christian Kral, Hansjörg Kapeller, Thomas Bäuml, Johannes V. Gragger
The AdvancedMachines Library: Loss Models for Electric Machines
Modelica 2009, 7th International Modelica Conference
Extends from Modelica.Icons.Example (Icon for runnable examples).
model AIMC_withLosses "Test example: AsynchronousInductionMachineSquirrelCage with losses" extends Modelica.Icons.Example; import Modelica.SIunits.Conversions.from_rpm; import Modelica.SIunits.Conversions.to_rpm; import Modelica.SIunits.Conversions.from_degC; protected constant Modelica.SIunits.Angle pi=Modelica.Constants.pi; constant Integer m=3 "Number of phases"; parameter Modelica.SIunits.Inertia J=0.12 "Moment of inertia"; parameter Modelica.SIunits.Power PNominal=18500 "Nominal output"; parameter Modelica.SIunits.Voltage VNominal=400 "Nominal RMS voltage"; parameter Modelica.SIunits.Power PcoreRef=410 "Nominal core losses"; parameter Modelica.SIunits.Voltage VcoreNominal=387.9 "Nominal inner RMS voltage"; parameter Modelica.SIunits.Power PfrictionRef=180 "Nominal friction losses"; parameter Modelica.SIunits.Current INominal=32.85 "Nominal RMS current"; parameter Real pfNominal=0.898 "Nominal power factor"; parameter Modelica.SIunits.Frequency fNominal=50 "Nominal frequency"; parameter Modelica.SIunits.AngularVelocity wNominal=from_rpm(1462.5) "Nominal speed"; parameter Modelica.SIunits.Torque TNominal=PNominal/wNominal "Nominal torque"; parameter Modelica.SIunits.Temperature TempNominal = from_degC(90) "Nominal temperature"; Modelica.SIunits.Power Pel=electricalPowerSensor.P; Modelica.SIunits.ReactivePower Qel=electricalPowerSensor.Q; Modelica.SIunits.ApparentPower Sel=sqrt(Pel^2+Qel^2); parameter Real Ptable[:]={ 1E-6, 1845, 3549, 5325, 7521, 9372, 11010, 12930, 14950, 16360, 18500, 18560, 20180, 22170}; parameter Real Itable[:]={ 11.0, 11.20, 12.27, 13.87, 16.41, 18.78, 21.07, 23.92, 27.05, 29.40, 32.85, 32.95, 35.92, 39.35}; parameter Real ntable[:]={ 1500, 1496, 1493, 1490, 1486, 1482, 1479, 1475, 1471, 1467, 1462, 1462, 1458, 1453}; parameter Real ctable[:]={ 0.085, 0.327, 0.506, 0.636, 0.741, 0.797, 0.831, 0.857, 0.875, 0.887, 0.896, 0.896, 0.902, 0.906}; parameter Real etable[:]={ 0,0.7250,0.8268,0.8698,0.8929,0.9028,0.9064,0.9088,0.9089,0.9070,0.9044,0.9043,0.9008,0.8972}; public output Modelica.SIunits.Power Pmech= powerSensor.power "Mechanical output"; output Modelica.SIunits.Current I_sim= currentQuasiRMSSensor.I "Simulated current"; output Modelica.SIunits.Current I_meas=combiTable1Ds.y[1] "Measured current"; output Modelica.SIunits.AngularVelocity w_sim(displayUnit="1/min") = aimc.wMechanical "Simulated speed"; output Modelica.SIunits.Current w_meas=combiTable1Ds.y[2] "Measured speed"; output Real pf_sim=if noEvent(Sel>Modelica.Constants.small) then Pel/Sel else 0 "Simulated power factor"; output Modelica.SIunits.Current pf_meas=combiTable1Ds.y[3] "Measured power factor"; output Real eff_sim=if noEvent(abs(Pel)>Modelica.Constants.small) then Pmech/Pel else 0 "Simulated efficiency"; output Modelica.SIunits.Current eff_meas=combiTable1Ds.y[4] "Measured efficiency";Machines.BasicMachines.AsynchronousInductionMachines.AIM_SquirrelCage aimc( Jr=J, p=2, fsNominal=fNominal, TsOperational=TempNominal, TrOperational=TempNominal, statorCoreParameters( PRef=PcoreRef, VRef=VcoreNominal, wRef=2*pi*fNominal), strayLoadParameters( PRef=0.005*sqrt(3)*VNominal*INominal*pfNominal, IRef=INominal/sqrt(3), wRef=wNominal), Rs=0.56, alpha20s(displayUnit="1/K") = Modelica.Electrical.Machines.Thermal.Constants.alpha20Copper, Lssigma=1.52/(2*pi*fNominal), Lm=66.4/(2*pi*fNominal), Lrsigma=2.31/(2*pi*fNominal), Rr=0.42, alpha20r(displayUnit="1/K") = Modelica.Electrical.Machines.Thermal.Constants.alpha20Aluminium, wMechanical(start=wNominal, fixed=true), frictionParameters(PRef=PfrictionRef, wRef=wNominal), TsRef=293.15, TrRef=293.15); Machines.Utilities.TerminalBox terminalBox(terminalConnection="D"); Machines.Sensors.ElectricalPowerSensor electricalPowerSensor; Machines.Sensors.CurrentQuasiRMSSensor currentQuasiRMSSensor; Modelica.Electrical.MultiPhase.Sources.SineVoltage sineVoltage( final m=m, freqHz=fill(fNominal, m), V=fill(sqrt(2/3)*VNominal, m)); Modelica.Electrical.MultiPhase.Basic.Star star(final m=m); Modelica.Electrical.Analog.Basic.Ground ground; Modelica.Mechanics.Rotational.Sensors.PowerSensor powerSensor; Modelica.Mechanics.Rotational.Components.Inertia loadInertia(J=J); Modelica.Mechanics.Rotational.Sources.Torque torque; Modelica.Blocks.Math.Gain gain(k=-1); Modelica.Blocks.Continuous.PI PI(k=0.01, T=0.01); Modelica.Blocks.Math.Feedback feedback; Modelica.Blocks.Sources.Ramp ramp( height=1.2*PNominal, offset=0, startTime=4.5, duration=5.5); Modelica.Blocks.Tables.CombiTable1Ds combiTable1Ds( table={{Ptable[j],Itable[j],ntable[j],ctable[j],etable[j]} for j in 1:size(Ptable, 1)}, smoothness=Modelica.Blocks.Types.Smoothness.ContinuousDerivative); equationconnect(star.pin_n, ground.p); connect(sineVoltage.plug_n, star.plug_p); connect(terminalBox.plug_sn, aimc.plug_sn); connect(terminalBox.plug_sp, aimc.plug_sp); connect(currentQuasiRMSSensor.plug_n, electricalPowerSensor.plug_p); connect(electricalPowerSensor.plug_nv, star.plug_p); connect(electricalPowerSensor.plug_ni, terminalBox.plugSupply); connect(aimc.flange, powerSensor.flange_a); connect(powerSensor.flange_b, loadInertia.flange_a); connect(torque.flange, loadInertia.flange_b); connect(gain.y, torque.tau); connect(sineVoltage.plug_p, currentQuasiRMSSensor.plug_p); connect(powerSensor.power, feedback.u2); connect(feedback.y, PI.u); connect(PI.y, gain.u); connect(ramp.y, feedback.u1); connect(powerSensor.power, combiTable1Ds.u); end AIMC_withLosses;