.OpenIPSL.Examples.Tutorial.Example_4.Instructions.SMIBSystemAssembly

Assembling a SMIB System

Information

Assembling a SMIB System
  1. Open Dymola.
  2. Load the OpenIPSL library.
  3. Create a new package called SMIB. Make sure to unselect the option to save the contents of the package in one file.

    SMIBPackageCreation

  4. Inside 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.
  5. To follow the structure and appearance convention of packages in Modelica, we can add an icon to the 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;
        
  6. Inside BaseNetwork, create a new partial model called SMIBPartial.
  7. Go to the Package Browser, navigate to 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.

    InfiniteBusModelCreation

  8. Repeat the procedure to create a new model called GeneratorOnly. Your package should look as follows:

    InitialPackageStructure

  9. Inside InfiniteBus, drag and drop a GENCLS generator model from OpenIPSL.Electrical.Machines.PSSE.
  10. Connect the blue pin of the GENCLS component to pwPin.
  11. Now drag and drop a GENROE generator model from OpenIPSL.Electrical.Machines.PSSE to GeneratorOnly.

    AddingGENROEBlock

  12. Connect the output pin 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

    DefaultGENROEConnections

  13. Double click the GENCLS block inside the InfiniteBus model. Be sure to enter all the machine parameters in the figure below:

    GENCLSMachineParameters

  14. Switch to the Modelica Text of the 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;
        
  15. Go to the diagram layer of the 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.

    GENROEParameterPropagation

  16. Similarly, pass the dynamical machine parameters to the generator model

    GENROEMachineParameters

  17. Go now to the diagram layer of the SMIBPartial model. Drag and drop the following components:


  18. Connect and name the different components as shown below:

    SMIBModelConnections

  19. Enter the parameters for each of the four lines, as indicated in the corresponding table at the beginning of this document. For example, lines 1 and 2 should have the following parameters:

    LineParameters

  20. Click the B01 component and select the option to display the power flow. Do the same for the remaining buses and the generation unit component.
  21. Double click the pwFault block and fill in the parameters as indicated below:

    FaultBlockParameters

  22. Inside 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:

    UpdatedPackageStructure


  23. Drag-and-drop a 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.
  24. Connect genunit to bus B01. The model should look as follows:

    FinalSMIBModel

  25. Save your models. You should see several .mo files accompanying the model inside a folder called SMIB.
  26. Close Dymola or unload your SMIB model.

Generated at 2026-03-12T19:14:05Z by OpenModelicaOpenModelica 1.26.3 using GenerateDoc.mos