-
Notifications
You must be signed in to change notification settings - Fork 164
/
CurrentQuasiRMSSensor.mo
71 lines (68 loc) · 3.3 KB
/
CurrentQuasiRMSSensor.mo
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
within Modelica.Electrical.QuasiStatic.Polyphase.Sensors;
model CurrentQuasiRMSSensor
"Continuous quasi current RMS sensor for polyphase system"
extends Modelica.Electrical.QuasiStatic.Polyphase.Interfaces.RelativeSensorElementary;
parameter Integer m(min=1) = 3 "Number of phases";
Modelica.Blocks.Interfaces.RealOutput I(unit="A")
"Continuous quasi average RMS of current" annotation (Placement(
transformation(
origin={0,-100},
extent={{-10,-10},{10,10}},
rotation=270), iconTransformation(
extent={{-10,-10},{10,10}},
rotation=270,
origin={0,-110})));
QuasiStatic.SinglePhase.Sensors.CurrentSensor currentSensor[m]
annotation (Placement(transformation(extent={{-10,-10},{10,10}})));
QuasiStatic.Polyphase.Blocks.QuasiRMS quasiRMS(final m=m) annotation (
Placement(transformation(
extent={{-10,-10},{10,10}},
rotation=270,
origin={0,-50})));
Modelica.SIunits.ComplexVoltage v[m] = plug_p.pin.v - plug_n.pin.v "Complex voltage";
Modelica.SIunits.ComplexCurrent i[m] = plug_p.pin.i "Complex current";
equation
connect(quasiRMS.y, I) annotation (Line(
points={{0,-61},{0,-100}}, color={0,0,127}));
connect(plugToPins_p.pin_p, currentSensor.pin_p) annotation (Line(
points={{-68,0},{-10,0}}, color={85,170,255}));
connect(currentSensor.pin_n, plugToPins_n.pin_n) annotation (Line(
points={{10,0},{68,0}}, color={85,170,255}));
connect(currentSensor.i, quasiRMS.u) annotation (Line(
points={{0,-11},{0,-38}}, color={85,170,255}));
annotation (defaultComponentName="currentRMSSensor",
Icon(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{
100,100}}), graphics={
Line(points={{0,-70},{0,-100}}, color={85,170,255}),
Text(
extent={{150,-100},{-150,-70}},
textString="m=%m"),
Text(
extent={{-30,-10},{30,-70}},
textColor={64,64,64},
textString="A"),
Line(points={{70,0},{90,0}}, color={85,170,255}),
Line(points={{-70,0},{-90,0}}, color={85,170,255})}),
Documentation(revisions="<html>
</html>",
info="<html>
<p>
This sensor determines the continuous quasi <a href=\"Modelica://Modelica.Blocks.Math.RootMeanSquare\">RMS</a>
value of a polyphase current system, by averaging the phase RMS current phasors <code>i</code>.
</p>
<pre>
I = sum({abs(i[k]) for k in 1:m})/m
</pre>
<h4>See also</h4>
<p>
<a href=\"modelica://Modelica.Electrical.QuasiStatic.Polyphase.Sensors.ReferenceSensor\">ReferenceSensor</a>,
<a href=\"modelica://Modelica.Electrical.QuasiStatic.Polyphase.Sensors.FrequencySensor\">FrequencySensor</a>,
<a href=\"modelica://Modelica.Electrical.QuasiStatic.Polyphase.Sensors.PotentialSensor\">PotentialSensor</a>,
<a href=\"modelica://Modelica.Electrical.QuasiStatic.Polyphase.Sensors.VoltageSensor\">VoltageSensor</a>,
<a href=\"modelica://Modelica.Electrical.QuasiStatic.Polyphase.Sensors.VoltageQuasiRMSSensor\">VoltageQuasiRMSSensor</a>,
<a href=\"modelica://Modelica.Electrical.QuasiStatic.Polyphase.Sensors.CurrentSensor\">CurrentSensor</a>,
<a href=\"modelica://Modelica.Electrical.QuasiStatic.Polyphase.Sensors.PowerSensor\">PowerSensor</a>,
<a href=\"modelica://Modelica.Electrical.QuasiStatic.Polyphase.Sensors.MultiSensor\">MultiSensor</a>
</p>
</html>"));
end CurrentQuasiRMSSensor;