model Core "Model of core losses"
parameter Machines.Losses.CoreParameters coreParameters(m = 3);
final parameter Integer m = coreParameters.m "Number of phases";
parameter Real turnsRatio(final min = Modelica.Constants.small) "Effective number of stator turns / effective number of rotor turns (if used as rotor core)";
extends Modelica.Thermal.HeatTransfer.Interfaces.PartialElementaryConditionalHeatPortWithoutT(useHeatPort = false);
Machines.Interfaces.SpacePhasor spacePhasor annotation (Placement(
transformation(extent = {
{-110, -10},
{-90, 10}}),
iconTransformation(extent = {
{-110, -10},
{-90, 10}})));
input Modelica.SIunits.AngularVelocity w "Remagnetization angular velocity"
annotation (Dialog(group = "Losses"));
Modelica.SIunits.Conductance Gc "Variable core loss conductance";
protected
Modelica.SIunits.AngularVelocity wLimit = noEvent(max(noEvent(abs(w)), coreParameters.wMin)) "Limited angular velocity";
equation
if coreParameters.PRef <= 0 then
Gc = 0;
spacePhasor.i_ = zeros(2);
else
Gc = coreParameters.GcRef;
spacePhasor.i_ = Gc * spacePhasor.v_;
end if;
lossPower = 1.5 * (spacePhasor.v_[1] * spacePhasor.i_[1] + spacePhasor.v_[2] * spacePhasor.i_[2]);
annotation (
Icon(graphics = {
Rectangle(
extent = {
{-70, 30},
{70, -30}},
lineColor = {0, 0, 255},
fillColor = {255, 255, 255},
fillPattern = FillPattern.Solid),
Line(points = {
{-90, 0},
{-70, 0}}),
Line(
points = {
{-70, 10},
{70, 10}},
color = {0, 0, 255}),
Line(
points = {
{-70, -30},
{70, -30}},
color = {0, 0, 255}),
Line(
points = {
{-70, -10},
{70, -10}},
color = {0, 0, 255}),
Line(
points = {
{70, 0},
{80, 0}},
color = {0, 0, 255}),
Line(
points = {
{80, 20},
{80, -20}},
color = {0, 0, 255}),
Line(
points = {
{90, 14},
{90, -14}},
color = {0, 0, 255}),
Line(
points = {
{100, 8},
{100, -8}},
color = {0, 0, 255}),
Text(
extent = {
{-150, 90},
{150, 50}},
lineColor = {0, 0, 255},
textString = "%name")}),
Documentation(info = "<html>\n<p>\nCore losses can be separated into <strong>eddy current</strong> and <strong>hysteresis</strong> losses. The total core losses\ncan thus be expressed as\n</p>\n<pre>\n P = PRef * (ratioHysteresis * (wRef / w) + 1 - ratioHysteresis) * (V / VRef)^2\n</pre>\n<p>\nwhere <code>w</code> is the actual angular remagnetization velocity and <code>V</code> is the actual voltage.\nThe term <code>ratioHysteresis</code> is the ratio of the hysteresis losses with respect to the total core losses for the reference voltage and frequency.\n</p>\n\n<p>\nIn the current implementation hysteresis losses are <strong>not considered</strong> since complex numbers are not provided in Modelica.\nTherefore, implicitly <code>ratioHysteresis = 0</code> is set. For the voltage and frequency range with respect to Fig. 1,\nthe dependency of total core losses on the parameter <code>ratioHysteresis</code> is depicted in Fig. 2.\nThe current implementation has thus the drawback over a model that considers <code>ratioHysteresis > 0</code>:\n</p>\n<ul>\n<li>underestimation of the losses in the constant field region (<code>w</code> < <code>wRef</code>)</li>\n<li>overestimation of the losses in the field weakening region (<code>w</code> > <code>wRef</code>)</li>\n</ul>\n\n<table border=0 cellspacing=0 cellpadding=1>\n <tr><td> <img src=\"modelica://Modelica/Resources/Images/Electrical/Machines/corelossesVw.png\"\n alt=\"corelossesVw.png\"> </td>\n </tr>\n <tr><td> <strong> Fig. 1: </strong>Voltage versus angular velocity</td>\n </tr>\n</table>\n\n<table border=0 cellspacing=0 cellpadding=1>\n <tr><td> <img src=\"modelica://Modelica/Resources/Images/Electrical/Machines/corelossesPcw.png\"\n alt=\"corelossesPcw.png\"> </td>\n </tr>\n <tr><td> <strong> Fig. 2: </strong>Core losses versus angular velocity with parameter <code>ratioHysteresis</code></td>\n </tr>\n</table>\n\n<h4>Note</h4>\n<p>In the current implementation it is assumed that <code>ratioHysteresis = 0</code>. This parameter cannot be changed due to compatibility reasons.</p>\n\n<h4>See also</h4>\n<p>\n<a href=\"modelica://Modelica.Electrical.Machines.Losses.CoreParameters\">Core loss parameters</a>\n</p>\n\n</html>"));
end Core;