MagneticFluxSensor

model MagneticFluxSensor "Sensor to measure magnetic flux"
    extends Modelica.Icons.RotationalSensor;
    extends Modelica.Magnetic.FundamentalWave.Interfaces.PartialTwoPort;

    Modelica.SIunits.ComplexMagneticPotentialDifference V_m "Complex magnetic potential difference";
    Modelica.ComplexBlocks.Interfaces.ComplexOutput Phi "Complex magnetic flux from por_ p to port_n as output signal"
        annotation (Placement(transformation(
            origin = {0, -100},
            extent = {
                {10, -10}, 
                {-10, 10}},
            rotation = 90)));
equation
    port_p.Phi + port_n.Phi = Complex(0, 0);
    V_m = Complex(0, 0);
    port_p.Phi = Phi;
    port_p.V_m - port_n.V_m = V_m;

    annotation (
        defaultComponentName = "magFluxSensor",
        Icon(
            coordinateSystem(
                preserveAspectRatio = false,
                extent = {
                    {-100, -100}, 
                    {100, 100}}),
            graphics = {
                Text(
                    extent = {
                        {-29, -11}, 
                        {30, -70}},
                    textString = "Phi"), 
                Line(points = {
                    {-72, 0}, 
                    {-90, 0}}), 
                Text(
                    extent = {
                        {-140, 120}, 
                        {140, 80}},
                    textString = "%name",
                    lineColor = {0, 0, 255}), 
                Line(points = {
                    {70, 0}, 
                    {90, 0}}), 
                Line(points = {
                    {0, -90}, 
                    {0, -70}})}),
        Documentation(info = "<html>\n<p>Sensor for magnetic flux.</p>\n\n<h4>See also</h4>\n<p>\n<a href=\"modelica://Modelica.Magnetic.FundamentalWave.Sensors.MagneticPotentialDifferenceSensor\">MagneticPotentialDifferenceSensor</a>\n</p>\n</html>"));
end MagneticFluxSensor;