model DC_PermanentMagnet "Permanent magnet DC machine"
extends Machines.Interfaces.PartialBasicDCMachine(final ViNominal = VaNominal - Machines.Thermal.convertResistance(Ra, TaRef, alpha20a, TaNominal) * IaNominal - Machines.Losses.DCMachines.brushVoltageDrop(brushParameters, IaNominal), final psi_eNominal = Lme * IeNominal, redeclare final Machines.Thermal.DCMachines.ThermalAmbientDCPM thermalAmbient(final Tpm = TpmOperational), redeclare final Machines.Interfaces.DCMachines.ThermalPortDCPM thermalPort, redeclare final Machines.Interfaces.DCMachines.ThermalPortDCPM internalThermalPort, redeclare final Machines.Interfaces.DCMachines.PowerBalanceDCPM powerBalance(final lossPowerPermanentMagnet = 0), core(final w = airGapDC.w));
final parameter Modelica.SIunits.Temperature TpmOperational = 293.15 "Operational temperature of permanent magnet"
annotation (Dialog(group = "Operational temperatures"));
Machines.BasicMachines.Components.AirGapDC airGapDC(final turnsRatio = turnsRatio, final Le = Lme, final quasiStationary = quasiStationary) annotation (Placement(transformation(
extent = {
{-10, -10},
{10, 10}},
rotation = 270)));
Modelica.Electrical.Analog.Basic.Ground eGround annotation (Placement(transformation(
extent = {
{-10, -10},
{10, 10}},
rotation = 270,
origin = {-20, -30})));
Modelica.Electrical.Analog.Sources.ConstantCurrent ie(I = IeNominal) annotation (Placement(transformation(
origin = {0, -40},
extent = {
{-10, -10},
{10, 10}})));
protected
constant Modelica.SIunits.Inductance Lme = 1 "Field excitation inductance";
constant Modelica.SIunits.Current IeNominal = 1 "Equivalent excitation current";
equation
connect(airGapDC.flange,inertiaRotor.flange_a) annotation (Line(points = {
{10, 0},
{36, 0},
{36, 0},
{70, 0}}));
connect(airGapDC.pin_an,brush.p) annotation (Line(
points = {
{-10, 10},
{-10, 60}},
color = {0, 0, 255}));
connect(airGapDC.pin_ap,la.n) annotation (Line(
points = {
{10, 10},
{10, 60}},
color = {0, 0, 255}));
connect(airGapDC.pin_en,eGround.p) annotation (Line(
points = {
{-10, -10},
{-10, -20},
{-10, -30}},
color = {0, 0, 255}));
connect(airGapDC.pin_ep,ie.n) annotation (Line(
points = {
{10, -10},
{10, -40}},
color = {0, 0, 255}));
connect(airGapDC.support,internalSupport) annotation (Line(points = {
{-10, 0},
{-40, 0},
{-40, -90},
{60, -90},
{60, -100}}));
connect(eGround.p,ie.p) annotation (Line(
points = {
{-10, -30},
{-10, -30},
{-10, -40}},
color = {0, 0, 255}));
annotation (
defaultComponentName = "dcpm",
Icon(
coordinateSystem(
preserveAspectRatio = true,
extent = {
{-100, -100},
{100, 100}}),
graphics = {
Rectangle(
extent = {
{-130, 10},
{-100, -10}},
fillColor = {0, 255, 0},
fillPattern = FillPattern.Solid),
Rectangle(
extent = {
{-100, 10},
{-70, -10}},
fillColor = {255, 0, 0},
fillPattern = FillPattern.Solid)}),
Documentation(info = "<html>\n<p><strong>Model of a DC Machine with permanent magnets.</strong><br>\nArmature resistance and inductance are modeled directly after the armature pins, then using a <em>AirGapDC</em> model. Permanent magnet excitation is modelled by a constant equivalent excitation current feeding AirGapDC. The machine models take the following loss effects into account:\n</p>\n\n<ul>\n<li>heat losses in the temperature dependent armature winding resistance</li>\n<li>brush losses in the armature circuit</li>\n<li>friction losses</li>\n<li>core losses (only eddy current losses, no hysteresis losses)</li>\n<li>stray load losses</li>\n</ul>\n\n<p>No saturation is modelled.\n<br><strong>Default values for machine's parameters (a realistic example) are:</strong><br></p>\n<table>\n<tr>\n<td>stator's moment of inertia</td>\n<td>0.29</td><td>kg.m2</td>\n</tr>\n<tr>\n<td>rotor's moment of inertia</td>\n<td>0.15</td><td>kg.m2</td>\n</tr>\n<tr>\n<td>nominal armature voltage</td>\n<td>100</td><td>V</td>\n</tr>\n<tr>\n<td>nominal armature current</td>\n<td>100</td><td>A</td>\n</tr>\n<tr>\n<td>nominal speed</td>\n<td>1425</td><td>rpm</td>\n</tr>\n<tr>\n<td>nominal torque</td>\n<td>63.66</td><td>Nm</td>\n</tr>\n<tr>\n<td>nominal mechanical output</td>\n<td>9.5</td><td>kW</td>\n</tr>\n<tr>\n<td>efficiency</td>\n<td>95.0</td><td>%</td>\n</tr>\n<tr>\n<td>armature resistance</td>\n<td>0.05</td><td>Ohm at reference temperature</td>\n</tr>\n<tr>\n<td>reference temperature TaRef</td>\n<td>20</td><td>°C</td>\n</tr>\n<tr>\n<td>temperature coefficient alpha20a </td>\n<td>0</td><td>1/K</td>\n</tr>\n<tr>\n<td>armature inductance</td>\n<td>0.0015</td><td>H</td>\n</tr>\n<tr>\n<td>armature nominal temperature TaNominal</td>\n<td>20</td><td>°C</td>\n</tr>\n<tr>\n<td>armature operational temperature TaOperational</td>\n<td>20</td><td>°C</td>\n</tr>\n</table>\nArmature resistance resp. inductance include resistance resp. inductance of commutating pole winding and compensation winding, if present.\n</html>"));
end DC_PermanentMagnet;