Skip to content

Commit 6bddea8

Browse files
committed
Update
1 parent cd2d624 commit 6bddea8

3 files changed

Lines changed: 170 additions & 48 deletions

File tree

OpenIPSL/Electrical/Renewables/PSSE/AddOnBlocks.mo

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -86,8 +86,10 @@ package AddOnBlocks
8686
fillColor={255,255,170},
8787
fillPattern=FillPattern.Solid),
8888
Text(
89-
extent={{-80,80},{80,-80}},
89+
extent={{-100,100},{100,-100}},
9090
textColor={0,0,255},
91-
textString="Irradiance to Power")}));
91+
textString="Irradiance
92+
to
93+
Power")}));
9294
end IrradianceToPower;
9395
end AddOnBlocks;

OpenIPSL/Tests/BaseClasses/SMIBAddOn.mo

Lines changed: 33 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -6,58 +6,61 @@ partial model SMIBAddOn
66
R=2.50000E-2,
77
X=2.50000E-2,
88
G=0,
9-
B=0.05000/2) annotation (Placement(transformation(extent={{34,10},{54,30}})));
9+
B=0.05000/2) annotation (Placement(transformation(extent={{40,-4},{60,16}})));
1010
OpenIPSL.Electrical.Branches.PwLine pwLine1(
1111
R=2.50000E-2,
1212
X=2.50000E-2,
1313
G=0,
14-
B=0.05000/2) annotation (Placement(transformation(extent={{34,-30},{54,-10}})));
15-
OpenIPSL.Electrical.Machines.PSSE.GENCLS gENCLS2_1(
16-
angle_0=-1.570655e-05,
17-
R_a=0,
18-
X_d=2.00000E-1,
19-
M_b=100000000,
20-
V_b=100000,
21-
P_0=-1498800,
22-
Q_0=-4334000,
23-
v_0=1.00000) annotation (Placement(transformation(extent={{98,-12},{86,12}})));
14+
B=0.05000/2) annotation (Placement(transformation(extent={{40,-16},{60,4}})));
2415
OpenIPSL.Electrical.Branches.PwLine pwLine2(
2516
G=0,
2617
B=0,
2718
R=2.50000E-3,
2819
X=2.50000E-3)
29-
annotation (Placement(transformation(extent={{-6,-10},{14,10}})));
20+
annotation (Placement(transformation(extent={{4,-10},{24,10}})));
3021
OpenIPSL.Electrical.Events.PwFault pwFault(
3122
R=0.5,
3223
X=0.5,
3324
t1=2.00,
3425
t2=2.15)
35-
annotation (Placement(transformation(extent={{32,-60},{52,-40}})));
26+
annotation (Placement(transformation(extent={{42,-36},{58,-20}})));
3627
inner OpenIPSL.Electrical.SystemBase SysData(fn=50, S_b=100000000) annotation (Placement(transformation(extent={{-100,80},
3728
{-60,100}})));
38-
OpenIPSL.Electrical.Buses.Bus GEN1
39-
annotation (Placement(transformation(extent={{-40,-10},{-20,10}})));
29+
OpenIPSL.Electrical.Buses.Bus PV_BUS
30+
annotation (Placement(transformation(extent={{-10,-10},{10,10}})));
4031
OpenIPSL.Electrical.Buses.Bus FAULT
41-
annotation (Placement(transformation(extent={{6,-10},{26,10}})));
32+
annotation (Placement(transformation(extent={{18,-10},{38,10}})));
4233
OpenIPSL.Electrical.Buses.Bus GEN2
43-
annotation (Placement(transformation(extent={{64,-10},{84,10}})));
34+
annotation (Placement(transformation(extent={{60,-10},{80,10}})));
35+
Electrical.Sources.VoltageSourceReImInput voltageSourceReImInput
36+
annotation (Placement(transformation(extent={{96,-10},{76,10}})));
37+
Modelica.Blocks.Sources.RealExpression realExpression
38+
annotation (Placement(transformation(extent={{130,-14},{110,6}})));
39+
Modelica.Blocks.Sources.RealExpression realExpression1(y=if time <= 50000
40+
then 1 else 0.99)
41+
annotation (Placement(transformation(extent={{130,10},{110,30}})));
4442
equation
4543
connect(FAULT.p,pwLine. p)
46-
annotation (Line(points={{16,0},{24,0},{24,20},{35,20}}, color={0,0,255}));
47-
connect(pwLine1.p,pwLine. p) annotation (Line(points={{35,-20},{24,-20},{24,20},
48-
{35,20}}, color={0,0,255}));
49-
connect(pwFault.p,FAULT. p) annotation (Line(points={{30.3333,-50},{20,-50},{
50-
20,0},{16,0}}, color={0,0,255}));
44+
annotation (Line(points={{28,0},{36,0},{36,6},{41,6}}, color={0,0,255}));
45+
connect(pwLine1.p,pwLine. p) annotation (Line(points={{41,-6},{36,-6},{36,6},
46+
{41,6}}, color={0,0,255}));
47+
connect(pwFault.p,FAULT. p) annotation (Line(points={{40.6667,-28},{32,-28},{
48+
32,0},{28,0}}, color={0,0,255}));
5149
connect(pwLine.n,GEN2. p)
52-
annotation (Line(points={{53,20},{64,20},{64,0},{74,0}}, color={0,0,255}));
53-
connect(pwLine1.n,GEN2. p) annotation (Line(points={{53,-20},{64,-20},{64,0},{
54-
74,0}}, color={0,0,255}));
55-
connect(GEN2.p,gENCLS2_1. p)
56-
annotation (Line(points={{74,0},{86,0}}, color={0,0,255}));
50+
annotation (Line(points={{59,6},{64,6},{64,0},{70,0}}, color={0,0,255}));
51+
connect(pwLine1.n,GEN2. p) annotation (Line(points={{59,-6},{64,-6},{64,0},{
52+
70,0}}, color={0,0,255}));
5753
connect(pwLine2.n, FAULT.p)
58-
annotation (Line(points={{13,0},{16,0}}, color={0,0,255}));
59-
connect(GEN1.p, pwLine2.p)
60-
annotation (Line(points={{-30,0},{-5,0}}, color={0,0,255}));
54+
annotation (Line(points={{23,0},{28,0}}, color={0,0,255}));
55+
connect(PV_BUS.p, pwLine2.p)
56+
annotation (Line(points={{0,0},{5,0}}, color={0,0,255}));
57+
connect(voltageSourceReImInput.p, GEN2.p)
58+
annotation (Line(points={{75,0},{70,0}}, color={0,0,255}));
59+
connect(voltageSourceReImInput.vIm, realExpression.y)
60+
annotation (Line(points={{98,-4},{109,-4}}, color={0,0,127}));
61+
connect(realExpression1.y, voltageSourceReImInput.vRe) annotation (Line(
62+
points={{109,20},{104,20},{104,12},{106,12},{106,4},{98,4}}, color={0,0,
63+
127}));
6164
annotation (Icon(coordinateSystem(preserveAspectRatio=false, extent={{-100,
6265
-100},{120,100}})), Diagram(
6366
coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{100,
Lines changed: 133 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,17 @@
11
within OpenIPSL.Tests.Renewable.PSSE;
22
model PVPlantSolarIrradiance
33
"PV source in a SMIB system to test functionality of Irradiance to Power Add on"
4-
extends BaseClasses.SMIBAddOn;
5-
Electrical.Renewables.PSSE.PV pV(
6-
P_0=1500000,
7-
Q_0=-5665800,
4+
extends BaseClasses.SMIBAddOn(SysData(fn=60), pwFault(
5+
R=0.4,
6+
X=0.4,
7+
t1=40000,
8+
t2=40000.3));
9+
Electrical.Renewables.PSSE.PV PV(
10+
P_0=10,
11+
Q_0=3.2868,
812
v_0=1,
9-
angle_0(displayUnit="deg") = 0.02574992,
10-
QFunctionality=1,
13+
angle_0(displayUnit="deg") = 0,
14+
QFunctionality=0,
1115
PFunctionality=0,
1216
Irr2Pow=true,
1317
redeclare OpenIPSL.Electrical.Renewables.PSSE.InverterInterface.REGCA1
@@ -16,23 +20,128 @@ model PVPlantSolarIrradiance
1620
RenewableController(vref0=1),
1721
redeclare OpenIPSL.Electrical.Renewables.PSSE.PlantController.REPCA1
1822
PlantController)
19-
annotation (Placement(transformation(extent={{-60,-10},{-40,10}})));
23+
annotation (Placement(transformation(extent={{-26,-10},{-6,10}})));
2024
Electrical.Renewables.PSSE.AddOnBlocks.IrradianceToPower irradianceToPower(
2125
M_b(displayUnit="MV.A") = 100000000,
2226
Ypv(displayUnit="MW") = 1500000,
2327
Tcstc(displayUnit="degC") = 298.15,
2428
fpv=1,
2529
ap=0,
26-
SolarRadiationTable=[0.0,1000; 2,600; 3,700; 4,250; 5,1000],
27-
SolarArrayTemperatureTable=[0.0,25; 10,25])
28-
annotation (Placement(transformation(extent={{-92,-6},{-72,14}})));
30+
SolarRadiationTable=[0,0; 300,0; 600,0; 900,0; 1200,0; 1500,0; 1800,0; 2100,
31+
0; 2400,0; 2700,0; 3000,0; 3300,0; 3600,0; 3900,0; 4200,0; 4500,0; 4800,
32+
0; 5100,0; 5400,0; 5700,0; 6000,0; 6300,0; 6600,0; 6900,0; 7200,0; 7500,
33+
0; 7800,0; 8100,0; 8400,0; 8700,0; 9000,0; 9300,0; 9600,0; 9900,0;
34+
10200,0; 10500,0; 10800,0; 11100,0; 11400,0; 11700,0; 12000,0; 12300,0;
35+
12600,0; 12900,0; 13200,0; 13500,0; 13800,0; 14100,0; 14400,0; 14700,0;
36+
15000,0; 15300,0; 15600,0; 15900,0; 16200,7; 16500,11; 16800,16; 17100,
37+
23; 17400,30; 17700,39; 18000,48; 18300,58; 18600,69; 18900,80; 19200,
38+
91; 19500,103; 19800,115; 20100,128; 20400,141; 20700,154; 21000,168;
39+
21300,181; 21600,195; 21900,209; 22200,223; 22500,237; 22800,252; 23100,
40+
266; 23400,280; 23700,294; 24000,309; 24300,324; 24600,338; 24900,353;
41+
25200,368; 25500,383; 25800,398; 26100,413; 26400,427; 26700,442; 27000,
42+
456; 27300,472; 27600,487; 27900,502; 28200,516; 28500,530; 28800,544;
43+
29100,558; 29400,571; 29700,586; 30000,599; 30300,612; 30600,625; 30900,
44+
640; 31200,652; 31500,664; 31800,676; 32100,688; 32400,700; 32700,711;
45+
33000,722; 33300,733; 33600,744; 33900,754; 34200,763; 34500,773; 34800,
46+
782; 35100,791; 35400,800; 35700,808; 36000,817; 36300,823; 36600,831;
47+
36900,838; 37200,844; 37500,850; 37800,856; 38100,860; 38400,864; 38700,
48+
869; 39000,874; 39300,878; 39600,881; 39900,885; 40200,888; 40500,891;
49+
40800,893; 41100,895; 41400,897; 41700,893; 42000,895; 42300,895; 42600,
50+
895; 42900,895; 43200,895; 43500,893; 43800,892; 44100,890; 44400,889;
51+
44700,886; 45000,884; 45300,871; 45600,868; 45900,863; 46200,859; 46500,
52+
855; 46800,850; 47100,845; 47400,840; 47700,834; 48000,828; 48300,821;
53+
48600,815; 48900,809; 49200,801; 49500,794; 49800,786; 50100,777; 50400,
54+
769; 50700,760; 51000,751; 51300,741; 51600,731; 51900,721; 52200,711;
55+
52500,704; 52800,693; 53100,682; 53400,670; 53700,660; 54000,648; 54300,
56+
636; 54600,623; 54900,611; 55200,598; 55500,585; 55800,572; 56100,561;
57+
56400,547; 56700,534; 57000,520; 57300,507; 57600,493; 57900,479; 58200,
58+
465; 58500,451; 58800,436; 59100,422; 59400,407; 59700,394; 60000,380;
59+
60300,365; 60600,351; 60900,336; 61200,321; 61500,307; 61800,292; 62100,
60+
278; 62400,263; 62700,249; 63000,235; 63300,223; 63600,209; 63900,195;
61+
64200,181; 64500,168; 64800,155; 65100,142; 65400,129; 65700,116; 66000,
62+
104; 66300,92; 66600,81; 66900,71; 67200,61; 67500,51; 67800,41; 68100,
63+
33; 68400,25; 68700,18; 69000,12; 69300,8; 69600,0; 69900,0; 70200,0;
64+
70500,0; 70800,0; 71100,0; 71400,0; 71700,0; 72000,0; 72300,0; 72600,0;
65+
72900,0; 73200,0; 73500,0; 73800,0; 74100,0; 74400,0; 74700,0; 75000,0;
66+
75300,0; 75600,0; 75900,0; 76200,0; 76500,0; 76800,0; 77100,0; 77400,0;
67+
77700,0; 78000,0; 78300,0; 78600,0; 78900,0; 79200,0; 79500,0; 79800,0;
68+
80100,0; 80400,0; 80700,0; 81000,0; 81300,0; 81600,0; 81900,0; 82200,0;
69+
82500,0; 82800,0; 83100,0; 83400,0; 83700,0; 84000,0; 84300,0; 84600,0;
70+
84900,0; 85200,0; 85500,0; 85800,0; 86100,0; 86400,0],
71+
SolarArrayTemperatureTable=[0,19.6; 300,19.6; 600,19.6; 900,19.6; 1200,19.6;
72+
1500,19.5; 1800,19.5; 2100,19.5; 2400,19.5; 2700,19.5; 3000,19.4; 3300,
73+
19.4; 3600,19.4; 3900,19.4; 4200,19.3; 4500,19.3; 4800,19.3; 5100,19.2;
74+
5400,19.2; 5700,19.2; 6000,19.1; 6300,19.1; 6600,19.1; 6900,19; 7200,19;
75+
7500,18.9; 7800,18.9; 8100,18.8; 8400,18.7; 8700,18.7; 9000,18.6; 9300,
76+
18.5; 9600,18.5; 9900,18.4; 10200,18.3; 10500,18.3; 10800,18.2; 11100,
77+
18.2; 11400,18.1; 11700,18; 12000,18; 12300,17.9; 12600,17.9; 12900,
78+
17.8; 13200,17.8; 13500,17.7; 13800,17.7; 14100,17.6; 14400,17.5; 14700,
79+
17.5; 15000,17.5; 15300,17.5; 15600,17.4; 15900,17.4; 16200,17.4; 16500,
80+
17.3; 16800,17.3; 17100,17.3; 17400,17.3; 17700,17.2; 18000,17.2; 18300,
81+
17.2; 18600,17.2; 18900,17.2; 19200,17.2; 19500,17.1; 19800,17.1; 20100,
82+
17.1; 20400,17.1; 20700,17.1; 21000,17.1; 21300,17.1; 21600,17.1; 21900,
83+
17.1; 22200,17.1; 22500,17.1; 22800,17.1; 23100,17.1; 23400,17.1; 23700,
84+
17.1; 24000,17.1; 24300,17.1; 24600,17.2; 24900,17.2; 25200,17.2; 25500,
85+
17.2; 25800,17.2; 26100,17.3; 26400,17.3; 26700,17.3; 27000,17.4; 27300,
86+
17.4; 27600,17.4; 27900,17.4; 28200,17.5; 28500,17.5; 28800,17.5; 29100,
87+
17.6; 29400,17.7; 29700,17.7; 30000,17.8; 30300,17.9; 30600,18; 30900,
88+
18; 31200,18.1; 31500,18.2; 31800,18.3; 32100,18.3; 32400,18.4; 32700,
89+
18.5; 33000,18.5; 33300,18.6; 33600,18.7; 33900,18.8; 34200,18.8; 34500,
90+
18.9; 34800,19; 35100,19; 35400,19.1; 35700,19.2; 36000,19.2; 36300,
91+
19.3; 36600,19.3; 36900,19.4; 37200,19.5; 37500,19.5; 37800,19.6; 38100,
92+
19.6; 38400,19.7; 38700,19.7; 39000,19.8; 39300,19.8; 39600,19.9; 39900,
93+
19.9; 40200,20; 40500,20.1; 40800,20.2; 41100,20.3; 41400,20.4; 41700,
94+
20.4; 42000,20.5; 42300,20.6; 42600,20.7; 42900,20.8; 43200,20.9; 43500,
95+
20.8; 43800,20.8; 44100,20.8; 44400,20.8; 44700,20.7; 45000,20.7; 45300,
96+
20.7; 45600,20.7; 45900,20.6; 46200,20.6; 46500,20.6; 46800,20.5; 47100,
97+
20.5; 47400,20.4; 47700,20.3; 48000,20.3; 48300,20.2; 48600,20.1; 48900,
98+
20.1; 49200,20; 49500,19.9; 49800,19.9; 50100,19.8; 50400,19.7; 50700,
99+
19.7; 51000,19.7; 51300,19.6; 51600,19.6; 51900,19.5; 52200,19.5; 52500,
100+
19.5; 52800,19.4; 53100,19.4; 53400,19.4; 53700,19.3; 54000,19.3; 54300,
101+
19.3; 54600,19.2; 54900,19.2; 55200,19.2; 55500,19.2; 55800,19.1; 56100,
102+
19.1; 56400,19.1; 56700,19; 57000,19; 57300,19; 57600,19; 57900,18.9;
103+
58200,18.9; 58500,18.9; 58800,18.8; 59100,18.8; 59400,18.8; 59700,18.8;
104+
60000,18.7; 60300,18.7; 60600,18.7; 60900,18.6; 61200,18.6; 61500,18.6;
105+
61800,18.5; 62100,18.5; 62400,18.4; 62700,18.4; 63000,18.3; 63300,18.3;
106+
63600,18.2; 63900,18.2; 64200,18.1; 64500,18.1; 64800,18.1; 65100,18;
107+
65400,18; 65700,17.9; 66000,17.9; 66300,17.8; 66600,17.8; 66900,17.8;
108+
67200,17.7; 67500,17.7; 67800,17.6; 68100,17.6; 68400,17.6; 68700,17.5;
109+
69000,17.5; 69300,17.5; 69600,17.5; 69900,17.4; 70200,17.4; 70500,17.4;
110+
70800,17.4; 71100,17.4; 71400,17.3; 71700,17.3; 72000,17.3; 72300,17.3;
111+
72600,17.3; 72900,17.3; 73200,17.2; 73500,17.2; 73800,17.2; 74100,17.2;
112+
74400,17.2; 74700,17.2; 75000,17.2; 75300,17.2; 75600,17.1; 75900,17.1;
113+
76200,17.1; 76500,17.1; 76800,17.1; 77100,17.1; 77400,17; 77700,17;
114+
78000,17; 78300,17; 78600,17; 78900,17; 79200,17; 79500,16.9; 79800,
115+
16.9; 80100,16.9; 80400,16.9; 80700,16.9; 81000,16.9; 81300,16.9; 81600,
116+
16.9; 81900,16.9; 82200,16.9; 82500,16.9; 82800,16.9; 83100,16.9; 83400,
117+
16.9; 83700,16.9; 84000,16.9; 84300,16.9; 84600,16.9; 84900,16.9; 85200,
118+
16.9; 85500,16.9; 85800,16.9; 86100,16.9; 86400,16.9])
119+
annotation (Placement(transformation(extent={{-100,-2},{-80,18}})));
120+
Electrical.Loads.NoiseInjections.WhiteNoiseInjection whiteNoiseInjection(
121+
active_sigma=0.0001, samplePeriod=10)
122+
annotation (Placement(transformation(extent={{-98,-32},{-82,-16}})));
123+
Modelica.Blocks.Math.Add add
124+
annotation (Placement(transformation(extent={{-56,-2},{-44,10}})));
125+
inner Modelica.Blocks.Noise.GlobalSeed globalSeed(
126+
useAutomaticSeed=false,
127+
enableNoise=true,
128+
fixedSeed=10000)
129+
annotation (Placement(transformation(extent={{-52,74},{-32,94}})));
130+
Modelica.Blocks.Nonlinear.Limiter limiter(uMax=100000, uMin=0)
131+
annotation (Placement(transformation(extent={{-76,-30},{-64,-18}})));
29132
equation
30-
connect(pV.pwPin, GEN1.p)
31-
annotation (Line(points={{-40,0},{-30,0}}, color={0,0,255}));
32-
connect(irradianceToPower.Ppv, pV.i2p)
33-
annotation (Line(points={{-71,4},{-62,4}}, color={0,0,127}));
133+
connect(PV.pwPin, PV_BUS.p)
134+
annotation (Line(points={{-6,0},{0,0}}, color={0,0,255}));
135+
connect(irradianceToPower.Ppv, add.u1)
136+
annotation (Line(points={{-79,8},{-78,7.6},{-57.2,7.6}}, color={0,0,127}));
137+
connect(add.y, PV.i2p)
138+
annotation (Line(points={{-43.4,4},{-28,4}}, color={0,0,127}));
139+
connect(whiteNoiseInjection.y, limiter.u) annotation (Line(points={{-81.28,
140+
-24.08},{-82,-24},{-77.2,-24}}, color={0,0,127}));
141+
connect(limiter.y, add.u2) annotation (Line(points={{-63.4,-24},{-54,-24},{
142+
-54,-8},{-66,-8},{-66,0.4},{-57.2,0.4}}, color={0,0,127}));
34143
annotation (experiment(
35-
StopTime=5,
144+
StopTime=86400,
36145
__Dymola_NumberOfIntervals=5000,
37146
__Dymola_Algorithm="Dassl"), Documentation(info="<html>
38147
<p>
@@ -46,5 +155,13 @@ This capability is not found in the original version of the WECC-based renewable
46155
<li><code>pV.RenewableGenerator.Qgen</code></li>
47156
<li><code>irradianceToPower.Ppv</code></li>
48157
</ul>
49-
</html>"));
158+
</html>"),
159+
Diagram(coordinateSystem(extent={{-180,-100},{140,100}}), graphics={Text(
160+
extent={{-102,-8},{-78,-14}},
161+
textColor={0,0,0},
162+
textString="Noise"), Text(
163+
extent={{-40,12},{-24,6}},
164+
textColor={0,0,0},
165+
textString="Pinput")}),
166+
Icon(coordinateSystem(extent={{-180,-100},{140,100}})));
50167
end PVPlantSolarIrradiance;

0 commit comments

Comments
 (0)