SMIB. Make sure to unselect the option to save the contents of the package in one file.
SMIB create two sub-packages named Experiments and BaseModels. Then add two sub-packages inside BaseModels called GenerationUnits and BaseNetwork. Once again, remember to keep the option to " save the contents of the package in one file" unselected. Experiments package. Double-click the Experiments package and go to the text layer to add the following line of class extension:
package Experiments
extends Modelica.Icons.Example;
end Experiments;
BaseNetwork, create a new partial model called SMIBPartial. OpenIPSL.Interfaces.Generator, and right-click the icon to create a new model by class extension. Name the new model InfiniteBus and place it inside GenerationUnits.
GeneratorOnly. Your package should look as follows:
InfiniteBus, drag and drop a GENCLS generator model from OpenIPSL.Electrical.Machines.PSSE. GENCLS component to pwPin. GENROE generator model from OpenIPSL.Electrical.Machines.PSSE to GeneratorOnly.
PMECH0 on the right to the input pin PMECH on the left of the GENROE block. Do the same for the EFD0 output and input EFD on the bottom. Also, connect the blue pin to pwPin. Your connections should look as follows
GENCLS block inside the InfiniteBus model. Be sure to enter all the machine parameters in the figure below:
InfiniteBus model. Propagate the power flow parameters one layer up as indicated in the highlighted text of the following code chunk:
model InfiniteBus
extends OpenIPSL.Interfaces.Generator;
OpenIPSL.Electrical.Machines.PSSE.GENCLS gENCLS(P_0=P_0,
Q_0=Q_0,
v_0=v_0,
angle_0=angle_0,
M_b=100000000,
H=5.0000,
D=0.0000,
R_a=0.0000,
X_d=0.2000)
a..;
equation
connect(gENCLS.p, pwPin)
a..;
end InfiniteBus;
GeneratorOnly model, double click the GENROE component and fill in the power flow data fields. Notice that no explicit values should be passed to v_0 ( V_0 in OpenIPSL 1.5), angle_0, P_0, and Q_0. These values are propagated from an upper layer.
SMIBPartial model. Drag and drop the following components:
OpenIPSL.Buses.Bus (you could also work with OpenIPSL.Buses.BusExt); OpenIPSL.Branches.PwLine; Load from OpenIPSL.Electrical.Loads.PSSE; PwFault from OpenIPSL.Electrical.Events; SystemBase from OpenIPSL.Electrical.SystemBase. Set the base frequency to 50 Hz and the base to 100 MVA; InfiniteBus generation unit.
B01 component and select the option to display the power flow. Do the same for the remaining buses and the generation unit component. pwFault block and fill in the parameters as indicated below:
Experiments create a new model named SMIB by extending the SMIBPartial model. Although not entirely required, add the following line to the Modelica text to include an icon to the model:
model SMIB
extends Modelica.Icons.Example;
extends BaseModels.BaseNetwork.SMIBPartial;
end SMIB;
📌 You should have a package structure similar to this:
GeneratorOnly component from the GenerationUnits package to the diagram layer of the SMIB model. Name it genunit and make sure that the Display power flow option inside its parameters window is checked. genunit to bus B01. The model should look as follows:
SMIB.