|
| 1 | +within OpenIPSL.Examples.Microgrids.UniversityCampus.CampusA.GenerationGroups.CTG1; |
| 2 | +model CTG1MachineComplete_MPC |
| 3 | + "Generation group for CTG1 containing the synchronous machine, excitation system, voltage compensator, and turbine governor system." |
| 4 | + extends OpenIPSL.Interfaces.Generator; |
| 5 | + |
| 6 | + replaceable OpenIPSL.Electrical.Machines.PSSE.GENROU machine( |
| 7 | + V_b=V_b, |
| 8 | + Tpd0=guData.guDynamics.machine.Tpd0, |
| 9 | + Tppd0=guData.guDynamics.machine.Tppd0, |
| 10 | + Tpq0=guData.guDynamics.machine.Tpq0, |
| 11 | + Tppq0=guData.guDynamics.machine.Tppq0, |
| 12 | + D=guData.guDynamics.machine.D, |
| 13 | + Xd=guData.guDynamics.machine.Xd, |
| 14 | + Xq=guData.guDynamics.machine.Xq, |
| 15 | + Xpd=guData.guDynamics.machine.Xpd, |
| 16 | + Xpq=guData.guDynamics.machine.Xpq, |
| 17 | + Xppd=guData.guDynamics.machine.Xppd, |
| 18 | + Xl=guData.guDynamics.machine.Xl, |
| 19 | + S10=guData.guDynamics.machine.S10, |
| 20 | + S12=guData.guDynamics.machine.S12, |
| 21 | + angle_0=angle_0, |
| 22 | + Xppq=guData.guDynamics.machine.Xppq, |
| 23 | + R_a=guData.guDynamics.machine.R_a, |
| 24 | + Xpp=guData.guDynamics.machine.Xpp, |
| 25 | + H=guData.guDynamics.machine.H, |
| 26 | + M_b=guData.guDynamics.machine.M_b, |
| 27 | + P_0=P_0, |
| 28 | + Q_0=Q_0, |
| 29 | + v_0=v_0) constrainedby |
| 30 | + OpenIPSL.Electrical.Machines.PSSE.BaseClasses.baseMachine |
| 31 | + annotation (choicesAllMatching=true, |
| 32 | + Placement(transformation(extent={{40,-10}, |
| 33 | + {60,10}}))); |
| 34 | + replaceable Electrical.Controls.PSSE.ES.ESST4B exciter( |
| 35 | + T_R=guData.guDynamics.excSystem.T_R, |
| 36 | + K_PR=guData.guDynamics.excSystem.K_PR, |
| 37 | + K_IR=guData.guDynamics.excSystem.K_IR, |
| 38 | + V_RMAX=guData.guDynamics.excSystem.V_RMAX, |
| 39 | + V_RMIN=guData.guDynamics.excSystem.V_RMIN, |
| 40 | + T_A=guData.guDynamics.excSystem.T_A, |
| 41 | + K_PM=guData.guDynamics.excSystem.K_PM, |
| 42 | + K_IM=guData.guDynamics.excSystem.K_IM, |
| 43 | + V_MMAX=guData.guDynamics.excSystem.V_MMAX, |
| 44 | + V_MMIN=guData.guDynamics.excSystem.V_MMIN, |
| 45 | + K_G=guData.guDynamics.excSystem.K_G, |
| 46 | + K_P=guData.guDynamics.excSystem.K_P, |
| 47 | + K_I=guData.guDynamics.excSystem.K_I, |
| 48 | + V_BMAX=guData.guDynamics.excSystem.V_BMAX, |
| 49 | + K_C=guData.guDynamics.excSystem.K_C, |
| 50 | + X_L=guData.guDynamics.excSystem.X_L, |
| 51 | + THETAP=guData.guDynamics.excSystem.THETAP) |
| 52 | + constrainedby OpenIPSL.Electrical.Controls.PSSE.ES.BaseClasses.BaseExciter |
| 53 | + annotation (choicesAllMatching=true, Placement(transformation(extent={{-28,-24}, |
| 54 | + {10,10}}))); |
| 55 | + Modelica.Blocks.Sources.Constant const(k=0) |
| 56 | + annotation (Placement(transformation(extent={{-40,-64},{-32,-56}}))); |
| 57 | + Modelica.Blocks.Sources.Constant const1(k=Modelica.Constants.inf) |
| 58 | + annotation (Placement(transformation(extent={{-28,-76},{-20,-68}}))); |
| 59 | + replaceable Electrical.Controls.PSSE.TG.GAST governor( |
| 60 | + R=guData.guDynamics.tg.R, |
| 61 | + T_1=guData.guDynamics.tg.T_1, |
| 62 | + T_2=guData.guDynamics.tg.T_2, |
| 63 | + T_3=guData.guDynamics.tg.T_3, |
| 64 | + AT=guData.guDynamics.tg.AT, |
| 65 | + K_T=guData.guDynamics.tg.K_T, |
| 66 | + V_MAX=guData.guDynamics.tg.V_MAX, |
| 67 | + V_MIN=guData.guDynamics.tg.V_MIN, |
| 68 | + D_turb=guData.guDynamics.tg.D_turb) |
| 69 | + constrainedby OpenIPSL.Electrical.Controls.PSSE.TG.BaseClasses.BaseGovernor |
| 70 | + annotation (choicesAllMatching=true, Placement(transformation(extent={{-30,40}, |
| 71 | + {-10,60}}))); |
| 72 | + DynParamRecords.GUDynamics guData(redeclare record GUnitDynamics = |
| 73 | + DynParamRecords.CTG1) |
| 74 | + annotation (Placement(transformation(extent={{-80,-60},{-60,-40}}))); |
| 75 | + Electrical.Controls.PSSE.VC.IEEEVC iEEEVC(RC=0, XC=0.05) |
| 76 | + annotation (Placement(transformation(extent={{44,-60},{18,-38}}))); |
| 77 | + Modelica.Blocks.Math.Add add |
| 78 | + annotation (Placement(transformation(extent={{-70,34},{-50,54}}))); |
| 79 | + Modelica.Blocks.Interfaces.RealInput Pm_ref |
| 80 | + "Connector of Real input signal 1" annotation (Placement(transformation( |
| 81 | + extent={{-120,40},{-100,60}}), iconTransformation(extent={{-120,40},{ |
| 82 | + -100,60}}))); |
| 83 | + Modelica.Blocks.Interfaces.RealInput E_ref annotation (Placement( |
| 84 | + transformation(extent={{-120,-60},{-100,-40}}), iconTransformation( |
| 85 | + extent={{-120,-60},{-100,-40}}))); |
| 86 | +equation |
| 87 | + connect(exciter.EFD, machine.EFD) annotation (Line(points={{11.9,-7},{38,-7},{ |
| 88 | + 38,-6}}, color={0,0,127})); |
| 89 | + connect(exciter.XADIFD, machine.XADIFD) annotation (Line(points={{6.2,-25.7},{ |
| 90 | + 6.2,-30},{64,-30},{64,-9},{61,-9}}, color={0,0,127})); |
| 91 | + connect(machine.EFD0, exciter.EFD0) annotation (Line(points={{61,-5},{68,-5},{ |
| 92 | + 68,-34},{-34,-34},{-34,-13.8},{-29.9,-13.8}}, color={0,0,127})); |
| 93 | + connect(const.y, exciter.VUEL) annotation (Line(points={{-31.6,-60},{-16.6, |
| 94 | + -60},{-16.6,-25.7}},color={0,0,127})); |
| 95 | + connect(const1.y, exciter.VOEL) annotation (Line(points={{-19.6,-72},{-12,-72}, |
| 96 | + {-12,-30},{-9,-30},{-9,-25.7}}, |
| 97 | + color={0,0,127})); |
| 98 | + connect(governor.PMECH, machine.PMECH) annotation (Line(points={{-9,50},{28,50}, |
| 99 | + {28,6},{38,6}}, color={0,0,127})); |
| 100 | + connect(governor.SPEED, machine.SPEED) annotation (Line(points={{-28,56},{-40, |
| 101 | + 56},{-40,68},{80,68},{80,7},{61,7}}, color={0,0,127})); |
| 102 | + |
| 103 | + connect(exciter.Bus, pwPin) annotation (Line(points={{8.1,6.6},{20,6.6},{20,34}, |
| 104 | + {86,34},{86,0},{110,0}}, color={0,0,255})); |
| 105 | + connect(machine.p, iEEEVC.Gen_terminal) annotation (Line(points={{60,0},{74,0}, |
| 106 | + {74,-41.1429},{41.1111,-41.1429}}, color={0,0,255})); |
| 107 | + connect(iEEEVC.Bus, exciter.Gen_terminal) annotation (Line(points={{20.8889, |
| 108 | + -41.1429},{-38,-41.1429},{-38,6.6},{-26.1,6.6}}, color={0,0,255})); |
| 109 | + connect(iEEEVC.VCT, exciter.ECOMP) annotation (Line(points={{15.6889,-50.5714}, |
| 110 | + {-42,-50.5714},{-42,-7},{-29.9,-7}}, color={0,0,127})); |
| 111 | + connect(add.y, governor.PMECH0) |
| 112 | + annotation (Line(points={{-49,44},{-28,44}}, color={0,0,127})); |
| 113 | + connect(machine.PMECH0, add.u2) annotation (Line(points={{61,5},{70,5},{70,28}, |
| 114 | + {-82,28},{-82,38},{-72,38}}, color={0,0,127})); |
| 115 | + connect(add.u1, Pm_ref) |
| 116 | + annotation (Line(points={{-72,50},{-110,50}}, color={0,0,127})); |
| 117 | + connect(exciter.VOTHSG, E_ref) annotation (Line(points={{-29.9,-0.2},{-58, |
| 118 | + -0.2},{-58,0},{-88,0},{-88,-50},{-110,-50}}, color={0,0,127})); |
| 119 | +end CTG1MachineComplete_MPC; |
0 commit comments