forked from modelica/ModelicaStandardLibrary
-
Notifications
You must be signed in to change notification settings - Fork 0
/
ThyristorCenterTapmPulse.mo
96 lines (95 loc) · 4.15 KB
/
ThyristorCenterTapmPulse.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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
within Modelica.Electrical.PowerConverters.ACDC;
model ThyristorCenterTapmPulse
"m pulse thyristor rectifier with center tap"
extends Icons.Converter;
import Modelica.Constants.pi;
// parameter Integer m(final min=3) = 3 "Number of phases" annotation(Evaluate=true);
parameter SI.Resistance RonThyristor(final min=0) = 1e-05
"Closed thyristor resistance";
parameter SI.Conductance GoffThyristor(final min=0) = 1e-05
"Opened thyristor conductance";
parameter SI.Voltage VkneeThyristor(final min=0) = 0
"Thyristor forward threshold voltage";
parameter Boolean offStart[m]=fill(true, m)
"Boolean start value of variable thyristor_p[:].off"
annotation (choices(checkBox=true));
extends PowerConverters.Interfaces.ACDC.ACplug;
extends PowerConverters.Interfaces.ACDC.DCpin;
extends Modelica.Electrical.Analog.Interfaces.ConditionalHeatPort(final T=
293.15);
extends Interfaces.Enable.Enable1m;
Modelica.Electrical.Polyphase.Ideal.IdealThyristor thyristor(
final m=m,
final Ron=fill(RonThyristor, m),
final Goff=fill(GoffThyristor, m),
final Vknee=fill(VkneeThyristor, m),
final useHeatPort=useHeatPort,
final idealThyristor(off(start=offStart, fixed=fill(true, m))))
"Thyristors conducting AC potentials" annotation (Placement(transformation(
origin={-10,0},
extent={{10,10},{-10,-10}},
rotation=180)));
Modelica.Electrical.Polyphase.Basic.Star star(final m=m)
annotation (Placement(transformation(extent={{70,10},{90,-10}})));
Modelica.Thermal.HeatTransfer.Components.ThermalCollector
thermalCollector(final m=m) if useHeatPort
annotation (Placement(transformation(extent={{20,-100},{40,-80}})));
equation
assert(mod(m, 2) == 1,
"ThyristorCenterTapmPulse: only odd phase numbers are allowed");
if not useHeatPort then
LossPower = sum(thyristor.idealThyristor.LossPower);
end if;
connect(thyristor.plug_n, star.plug_p) annotation (Line(
points={{0,0},{70,0}}, color={0,0,255}));
connect(star.pin_n, dc_p) annotation (Line(
points={{90,0},{100,0}}, color={0,0,255}));
connect(heatPort, thermalCollector.port_b) annotation (Line(
points={{0,-100},{30,-100}}, color={191,0,0}));
connect(thyristor.heatPort, thermalCollector.port_a) annotation (Line(
points={{-10,-10},{-10,-20},{30,-20},{30,-80}}, color={191,0,0}));
connect(ac, thyristor.plug_p) annotation (Line(
points={{-100,0},{-20,0}}, color={0,0,255}));
connect(andCondition_p.y, thyristor.fire) annotation (Line(
points={{-60,-69},{-60,20},{0,20},{0,11.8}}, color={255,0,255}));
annotation (defaultComponentName="rectifier",
Icon(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{
100,100}}), graphics={
Text(
extent={{-100,70},{0,50}},
textColor={0,0,255},
textString="AC"),
Text(
extent={{0,-50},{100,-70}},
textColor={0,0,255},
textString="DC"),
Rectangle(
extent={{-40,24},{40,-24}},
lineColor={255,255,255},
fillColor={255,255,255},
fillPattern=FillPattern.Solid),
Line(
points={{-40,0},{40,0}},
color={0,0,255}),
Line(
points={{20,24},{20,-24}},
color={0,0,255}),
Line(
points={{20,0},{-20,24},{-20,-24},{20,0}},
color={0,0,255}),
Line(
points={{0,12},{0,28}},
color={0,0,255})}),
Documentation(info="<html>
<p>
General information about AC/DC converters can be found at the
<a href=\"modelica://Modelica.Electrical.PowerConverters.UsersGuide.ACDCConcept\">AC/DC converter concept</a>
</p>
<p>
This is a m pulse thyristor rectifier with center tap. All voltage sources must have one interconnected plug (tap). This rectifiers works only with odd number of phases due the symmetry constrains of even phase numbers implemented in
<a href=\"modelica://Modelica.Electrical.Polyphase.Functions.symmetricOrientation\">symmetricOrientation</a>.
See example
<a href=\"modelica://Modelica.Electrical.PowerConverters.Examples.ACDC.RectifierCenterTapmPulse\">Examples.ACDC.RectifierCenterTapmPulse</a>.
</p>
</html>"));
end ThyristorCenterTapmPulse;