SMPM_MTPATest example: PermanentMagnetSynchronousMachine, investigating maximum torque per Amps |
This information is part of the Modelica Standard Library maintained by the Modelica Association.
This example investigates the maximum torque per amps (MTPA) of a quasi-static permanent magnet synchronous machine. The machines is operated at constant speed. The current magnitude is kept constant and the current angle is rotated from 0 to 360 degrees with the simulation period of one second.
In this simulation the angle is the following angles are calculated:
phi_v
= angle of voltage phasorphi_i
= angle of current phasorphiphi_v - phi_i
= angle between voltage and current phasortheta
= rotor displacement angleepsilon = phi - theta
= current angleSimulate for 1 second and plot (versus angle epsilon):
smpmQS.tauElectrical
: machine torquesmpmQS.abs_vs[1]
: machine phase voltage magnitudephi
: phase angle between voltage and current phasorThe resistors connected to the terminals of the windings of the quasi-static machine model are necessary to numerically stabilize the simulation.
m |
Value: 3 Type: Integer Description: Number of phases |
---|---|
VNominal |
Value: 100 Type: Voltage (V) Description: Nominal RMS voltage per phase |
fNominal |
Value: 50 Type: Frequency (Hz) Description: Nominal frequency |
f |
Value: 50 Type: Frequency (Hz) Description: Actual frequency |
tRamp |
Value: 1 Type: Time (s) Description: Frequency ramp |
TLoad |
Value: 181.4 Type: Torque (N·m) Description: Nominal load torque |
tStep |
Value: 1.2 Type: Time (s) Description: Time of load torque step |
JLoad |
Value: 0.29 Type: Inertia (kg·m²) Description: Load's moment of inertia |
wNominal |
Value: 2 * pi * fNominal / smpmData.p Type: AngularVelocity (rad/s) Description: Nominal angular velocity |
positiveRange |
Value: false Type: Boolean Description: Use positive range of angles, if true |
smpmData |
Value: Type: SM_PermanentMagnetData Description: Synchronous machine data |
theta |
Default Value: rotorAngleQS.rotorDisplacementAngle Type: Angle (rad) Description: Rotor displacement angle, quasi-static |
---|---|
phi_i |
Default Value: Modelica.Math.wrapAngle(smpmQS.arg_is[1], positiveRange) Type: Angle (rad) Description: Angle of current |
phi_v |
Default Value: Modelica.Math.wrapAngle(smpmQS.arg_vs[1], positiveRange) Type: Angle (rad) Description: Angle of voltage |
phi |
Default Value: Modelica.Math.wrapAngle(phi_v - phi_i, positiveRange) Type: Angle (rad) Description: Angle between voltage and current |
epsilon |
Default Value: Modelica.Math.wrapAngle(phi - theta, positiveRange) Type: Angle (rad) Description: Current angle |
smpmData |
Type: SM_PermanentMagnetData Description: Synchronous machine data |
|
---|---|---|
smpmQS |
Type: SM_PermanentMagnet |
|
quadraticSpeedDependentTorqueQS |
Type: ConstantSpeed |
|
starMachineQS |
Type: Star |
|
groundMQS |
Type: Ground |
|
terminalBoxQS |
Type: MultiTerminalBox |
|
currentControllerQS |
Type: CurrentController |
|
angleSensorQS |
Type: AngleSensor |
|
referenceCurrentSourceQS |
Type: ReferenceCurrentSource |
|
starQS |
Type: Star |
|
groundeQS |
Type: Ground |
|
resistorQS |
Type: Resistor |
|
rotorAngleQS |
Type: RotorDisplacementAngle |
|
currentRMSSensorQS |
Type: CurrentQuasiRMSSensor |
|
voltageQuasiRMSSensorQS |
Type: VoltageQuasiRMSSensor |
|
starMQS |
Type: Star |
|
rotSource |
Type: ComplexRotatingPhasor |
|
toReal |
Type: ComplexToReal |