Core

model Core "Model of core losses"
    extends Modelica.Electrical.Analog.Interfaces.OnePort;

    parameter Machines.Losses.CoreParameters coreParameters(m = 1) "Armature core losses";

    extends Modelica.Thermal.HeatTransfer.Interfaces.PartialElementaryConditionalHeatPortWithoutT(useHeatPort = false);

    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;
        i = 0;
    else 
        Gc = coreParameters.GcRef;
        i = Gc * v;
    end if;
    lossPower = v * i;

    annotation (
        Icon(graphics = {
            Rectangle(
                extent = {
                    {-70, 30}, 
                    {70, -30}},
                lineColor = {0, 0, 255},
                fillColor = {255, 255, 255},
                fillPattern = FillPattern.Solid), 
            Line(points = {
                {70, 0}, 
                {90, 0}}), 
            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}), 
            Text(
                extent = {
                    {-150, 90}, 
                    {150, 50}},
                lineColor = {0, 0, 255},
                textString = "%name")}),
        Documentation(info = "<html>\n<p>\nCore losses can be separated into <em>eddy current</em> and <em>hysteresis</em> 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 velocity and <code>v</code> is the actual voltage. The term <code>ratioHysteresis</code> is the ratio\nof the hysteresis losses with respect to the total core losses for reference inner voltage and reference angular velocity.\n</p>\n\n<p>\nFor the voltage and angular velocity range with respect to Fig.&nbsp;1,\nthe dependency of total core losses on the parameter <code>ratioHysteresis</code> is depicted in Fig.&nbsp;2.\n</p>\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;