From 543f86c0c879b813991bd7430adfd3ef0180f5d0 Mon Sep 17 00:00:00 2001
From: Sashi20
Date: Thu, 16 Jul 2020 00:20:28 +0550
Subject: Added(A)/Deleted(D) following Flowsheet file R
Contingency_Analysis_Of_16_Bus_System_Using_Openmodelica_By_Mr_Ajin_Raj_D/README.txt
->
Contingency_Analysis_Of_16_Bus_System_Using_Openipsl_By_Mr_Ajin_Raj_D/README.txt
R
Contingency_Analysis_Of_16_Bus_System_Using_Openmodelica_By_Mr_Ajin_Raj_D/project_files/MODELING_SIXTEEN_BUS_SYSTEM.mo
->
Contingency_Analysis_Of_16_Bus_System_Using_Openipsl_By_Mr_Ajin_Raj_D/project_files/MODELING_SIXTEEN_BUS_SYSTEM.mo
R
Contingency_Analysis_Of_16_Bus_System_Using_Openmodelica_By_Mr_Ajin_Raj_D/project_files/REPORT.pdf
->
Contingency_Analysis_Of_16_Bus_System_Using_Openipsl_By_Mr_Ajin_Raj_D/project_files/REPORT.pdf
R
Contingency_Analysis_Of_16_Bus_System_Using_Openmodelica_By_Mr_Ajin_Raj_D/proposal.pdf
->
Contingency_Analysis_Of_16_Bus_System_Using_Openipsl_By_Mr_Ajin_Raj_D/proposal.pdf
A
Dynamic_Study_Of_69_Bus_Radial_Networks_With_Dg_Using_Openipsl_By_Mr_Aritra_Banerjee/README.txt
R
Dynamic_Study_Of_69_Bus_Radial_Networks_With_Dg_Using_Openmodelica_And_Openipsl_By_Mr_Aritra_Banerjee/abstract_om.pdf
->
Dynamic_Study_Of_69_Bus_Radial_Networks_With_Dg_Using_Openipsl_By_Mr_Aritra_Banerjee/abstract_om.pdf
A
Dynamic_Study_Of_69_Bus_Radial_Networks_With_Dg_Using_Openipsl_By_Mr_Aritra_Banerjee/project_files/abstract_om1.pdf
A
Dynamic_Study_Of_69_Bus_Radial_Networks_With_Dg_Using_Openipsl_By_Mr_Aritra_Banerjee/project_files/modelmo.zip
R
Dynamic_Study_On_Wind_Farm_Modeling_By_Using_Openmodelica_And_Openipsl_By_Mr_Gandra_Mahesh/Abstract_Dynamic.pdf
->
Dynamic_Study_On_Wind_Farm_Modelling_By_Using_Openipsl_By_Mr_Gandra_Mahesh/Abstract_Dynamic.pdf
R
Dynamic_Study_On_Wind_Farm_Modeling_By_Using_Openmodelica_And_Openipsl_By_Mr_Gandra_Mahesh/README.txt
->
Dynamic_Study_On_Wind_Farm_Modelling_By_Using_Openipsl_By_Mr_Gandra_Mahesh/README.txt
R
Dynamic_Study_On_Wind_Farm_Modeling_By_Using_Openmodelica_And_Openipsl_By_Mr_Gandra_Mahesh/project_files/Abstract.pdf
->
Dynamic_Study_On_Wind_Farm_Modelling_By_Using_Openipsl_By_Mr_Gandra_Mahesh/project_files/Abstract.pdf
R
Dynamic_Study_On_Wind_Farm_Modeling_By_Using_Openmodelica_And_Openipsl_By_Mr_Gandra_Mahesh/project_files/Dynamic_Study_On_Windfarm.zip
->
Dynamic_Study_On_Wind_Farm_Modelling_By_Using_Openipsl_By_Mr_Gandra_Mahesh/project_files/Dynamic_Study_On_Windfarm.zip
R
Fault_Analysis_Of_33_Bus_Distribution_System_Using_Openmodelica_And_Openipsl_By_Ms_R.abhisha,_R.rabecca_And_S.selsiya/Abstract.pdf
->
Fault_Analysis_Of_33_Bus_Distribution_System_Using_Openipsl_By_Ms_R.abhisha,_R.rabecca_And_S.selsiya/Abstract.pdf
R
Fault_Analysis_Of_33_Bus_Distribution_System_Using_Openmodelica_And_Openipsl_By_Ms_R.abhisha,_R.rabecca_And_S.selsiya/README.txt
->
Fault_Analysis_Of_33_Bus_Distribution_System_Using_Openipsl_By_Ms_R.abhisha,_R.rabecca_And_S.selsiya/README.txt
R
Fault_Analysis_Of_33_Bus_Distribution_System_Using_Openmodelica_And_Openipsl_By_Ms_R.abhisha,_R.rabecca_And_S.selsiya/project_files/Project.zip
->
Fault_Analysis_Of_33_Bus_Distribution_System_Using_Openipsl_By_Ms_R.abhisha,_R.rabecca_And_S.selsiya/project_files/Project.zip
R
Fault_Analysis_Of_33_Bus_Distribution_System_Using_Openmodelica_And_Openipsl_By_Ms_R.abhisha,_R.rabecca_And_S.selsiya/project_files/Report.pdf
->
Fault_Analysis_Of_33_Bus_Distribution_System_Using_Openipsl_By_Ms_R.abhisha,_R.rabecca_And_S.selsiya/project_files/Report.pdf
R
Fault_Analysis_Of_39_Bus_Power_System_Using_Openmodelica_Openipsl_By_Mr_R.asick/Abstract.pdf
->
Fault_Analysis_Of_39_Bus_Power_System_Using_Openipsl_By_Mr_R.asick/Abstract.pdf
R
Ieee14_Bus_System_Implementation_In_Modelica_Using_The_Openipsl_By_Prof_Prof._Luigi_Vanfretti/IEEE14_bus_system_implementation_in_Modelica_using_the_OpenIPSL.pdf
->
Ieee14_Bus_System_Implementation_Using_The_Openipsl_By_Prof_Prof._Luigi_Vanfretti/IEEE14_bus_system_implementation_in_Modelica_using_the_OpenIPSL.pdf
R
Ieee14_Bus_System_Implementation_In_Modelica_Using_The_Openipsl_By_Prof_Prof._Luigi_Vanfretti/README.txt
->
Ieee14_Bus_System_Implementation_Using_The_Openipsl_By_Prof_Prof._Luigi_Vanfretti/README.txt
R
Ieee14_Bus_System_Implementation_In_Modelica_Using_The_Openipsl_By_Prof_Prof._Luigi_Vanfretti/project_files/IEEE14Bus.mo
->
Ieee14_Bus_System_Implementation_Using_The_Openipsl_By_Prof_Prof._Luigi_Vanfretti/project_files/IEEE14Bus.mo
R
Ieee14_Bus_System_Implementation_In_Modelica_Using_The_Openipsl_By_Prof_Prof._Luigi_Vanfretti/project_files/IEEE14_bus_system_implementation_in_Modelica_using_the_OpenIPSL.pdf
->
Ieee14_Bus_System_Implementation_Using_The_Openipsl_By_Prof_Prof._Luigi_Vanfretti/project_files/IEEE14_bus_system_implementation_in_Modelica_using_the_OpenIPSL.pdf
R
Ieee9_Bus_System_Implementation_In_Modelica_Using_The_Openipsl_By_Prof_Prof._Luigi_Vanfretti/IEEE9_bus_system_implementation_in_Modelica_using_the_OpenIPSL.pdf
->
Ieee9_Bus_System_Implementation_Using_The_Openipsl_By_Prof_Prof._Luigi_Vanfretti/IEEE9_bus_system_implementation_in_Modelica_using_the_OpenIPSL.pdf
R
Ieee9_Bus_System_Implementation_In_Modelica_Using_The_Openipsl_By_Prof_Prof._Luigi_Vanfretti/README.txt
->
Ieee9_Bus_System_Implementation_Using_The_Openipsl_By_Prof_Prof._Luigi_Vanfretti/README.txt
R
Ieee9_Bus_System_Implementation_In_Modelica_Using_The_Openipsl_By_Prof_Prof._Luigi_Vanfretti/project_files/IEEE9Bus.mo
->
Ieee9_Bus_System_Implementation_Using_The_Openipsl_By_Prof_Prof._Luigi_Vanfretti/project_files/IEEE9Bus.mo
R
Ieee9_Bus_System_Implementation_In_Modelica_Using_The_Openipsl_By_Prof_Prof._Luigi_Vanfretti/project_files/IEEE9_bus_system_implementation_in_Modelica_using_the_OpenIPSL.pdf
->
Ieee9_Bus_System_Implementation_Using_The_Openipsl_By_Prof_Prof._Luigi_Vanfretti/project_files/IEEE9_bus_system_implementation_in_Modelica_using_the_OpenIPSL.pdf
R
Kundur'S_Two-Area_System_Modeling_Using_Modelica_And_Openipsl_By_Dr_Prof._Luigi_Vanfretti_And_Maxime_Baudette/Kundur_Two_Area_network.pdf
->
Kundur'S_Two-Area_System_Modelling_Using_Openipsl_By_Dr_Prof._Luigi_Vanfretti_And_Maxime_Baudette/Kundur_Two_Area_network.pdf
R
Kundur'S_Two-Area_System_Modeling_Using_Modelica_And_Openipsl_By_Dr_Prof._Luigi_Vanfretti_And_Maxime_Baudette/README.txt
->
Kundur'S_Two-Area_System_Modelling_Using_Openipsl_By_Dr_Prof._Luigi_Vanfretti_And_Maxime_Baudette/README.txt
R
Kundur'S_Two-Area_System_Modeling_Using_Modelica_And_Openipsl_By_Dr_Prof._Luigi_Vanfretti_And_Maxime_Baudette/project_files/Kundur_Two_Area_network.pdf
->
Kundur'S_Two-Area_System_Modelling_Using_Openipsl_By_Dr_Prof._Luigi_Vanfretti_And_Maxime_Baudette/project_files/Kundur_Two_Area_network.pdf
R
Kundur'S_Two-Area_System_Modeling_Using_Modelica_And_Openipsl_By_Dr_Prof._Luigi_Vanfretti_And_Maxime_Baudette/project_files/TwoAreas.mo
->
Kundur'S_Two-Area_System_Modelling_Using_Openipsl_By_Dr_Prof._Luigi_Vanfretti_And_Maxime_Baudette/project_files/TwoAreas.mo
R
Modelling_And_Simulation_Od_51-Bus_System_Using_Openmodelica_And_Openipsl_By_Mr_R._Asick/Abstract.pdf
->
Modelling_And_Simulation_Od_51-Bus_System_Using_Openipsl_By_Mr_R._Asick/Abstract.pdf
R
Modelling_And_Simulation_Od_51-Bus_System_Using_Openmodelica_And_Openipsl_By_Mr_R._Asick/README.txt
->
Modelling_And_Simulation_Od_51-Bus_System_Using_Openipsl_By_Mr_R._Asick/README.txt
R
Modelling_And_Simulation_Od_51-Bus_System_Using_Openmodelica_And_Openipsl_By_Mr_R._Asick/project_files/Modelling_of_51_bus_system.mo
->
Modelling_And_Simulation_Od_51-Bus_System_Using_Openipsl_By_Mr_R._Asick/project_files/Modelling_of_51_bus_system.mo
R
Modelling_And_Simulation_Od_51-Bus_System_Using_Openmodelica_And_Openipsl_By_Mr_R._Asick/project_files/REPORT.pdf
->
Modelling_And_Simulation_Od_51-Bus_System_Using_Openipsl_By_Mr_R._Asick/project_files/REPORT.pdf
R
Modelling_And_Simulation_Of_181_Bus_Tneb_Power_System_Using_Openmodelica_And_Openipsl_By_Ms_J._Abinaya,_H._Dhinisha,_P._Pavithra_And_P._Tharshana_Priya/LoadFlowAnalysis.pdf
->
Modelling_And_Simulation_Of_181_Bus_Tneb_Power_System_Using_Openipsl_By_Ms_J._Abinaya,_H._Dhinisha,_P._Pavithra_And_P._Tharshana_Priya/LoadFlowAnalysis.pdf
R
Modeling_And_Simulation_Of_1_Generator_And_9_Bus_Using_The_Openipsl_By_Mr_Aritra_Banerjee/README.txt
->
Modelling_And_Simulation_Of_1_Generator_And_9_Bus_Using_The_Openipsl_By_Mr_Aritra_Banerjee/README.txt
R
Modeling_And_Simulation_Of_1_Generator_And_9_Bus_Using_The_Openipsl_By_Mr_Aritra_Banerjee/abstract.pdf
->
Modelling_And_Simulation_Of_1_Generator_And_9_Bus_Using_The_Openipsl_By_Mr_Aritra_Banerjee/abstract.pdf
R
Modeling_And_Simulation_Of_1_Generator_And_9_Bus_Using_The_Openipsl_By_Mr_Aritra_Banerjee/project_files/modelabstract.pdf
->
Modelling_And_Simulation_Of_1_Generator_And_9_Bus_Using_The_Openipsl_By_Mr_Aritra_Banerjee/project_files/modelabstract.pdf
R
Modeling_And_Simulation_Of_1_Generator_And_9_Bus_Using_The_Openipsl_By_Mr_Aritra_Banerjee/project_files/modelingandsimulationfile.zip
->
Modelling_And_Simulation_Of_1_Generator_And_9_Bus_Using_The_Openipsl_By_Mr_Aritra_Banerjee/project_files/modelingandsimulationfile.zip
R
Modelling_And_Simulation_Of_4_Machine_10_Bus_System_Using_Openmodelica_And_Openipsl_By_Mr_Syed_Yasser_Ali/A99.pdf
->
Modelling_And_Simulation_Of_4_Machine_10_Bus_System_Using_Openipsl_By_Mr_Syed_Yasser_Ali/A99.pdf
R
Modelling_And_Simulation_Of_4_Machine_10_Bus_System_Using_Openmodelica_And_Openipsl_By_Mr_Syed_Yasser_Ali/README.txt
->
Modelling_And_Simulation_Of_4_Machine_10_Bus_System_Using_Openipsl_By_Mr_Syed_Yasser_Ali/README.txt
R
Modelling_And_Simulation_Of_4_Machine_10_Bus_System_Using_Openmodelica_And_Openipsl_By_Mr_Syed_Yasser_Ali/project_files/four_machine_10_bus.pdf
->
Modelling_And_Simulation_Of_4_Machine_10_Bus_System_Using_Openipsl_By_Mr_Syed_Yasser_Ali/project_files/four_machine_10_bus.pdf
R
Modelling_And_Simulation_Of_4_Machine_10_Bus_System_Using_Openmodelica_And_Openipsl_By_Mr_Syed_Yasser_Ali/project_files/four_machine_10_bus.zip
->
Modelling_And_Simulation_Of_4_Machine_10_Bus_System_Using_Openipsl_By_Mr_Syed_Yasser_Ali/project_files/four_machine_10_bus.zip
R
Modelling_And_Simulation_Of_Ieee_118_Bus_System_Using_Openmodelica_And_Openipsl_By_Mr_R._Asick/Abstract.pdf
->
Modelling_And_Simulation_Of_Ieee_118_Bus_System_Using_Openipsl_By_Mr_R._Asick/Abstract.pdf
R
Modelling_And_Simulation_Of_Ieee_24_Bus_System_Using_Openmodelica_And_Openipsl_By_Mr_Syed_Yasser_Ali/ABSRACT_IEEE24.pdf
->
Modelling_And_Simulation_Of_Ieee_24_Bus_System_Using_Openipsl_By_Mr_Syed_Yasser_Ali/ABSRACT_IEEE24.pdf
R
Modelling_And_Simulation_Of_Ieee_24_Bus_System_Using_Openmodelica_And_Openipsl_By_Mr_Syed_Yasser_Ali/README.txt
->
Modelling_And_Simulation_Of_Ieee_24_Bus_System_Using_Openipsl_By_Mr_Syed_Yasser_Ali/README.txt
R
Modelling_And_Simulation_Of_Ieee_24_Bus_System_Using_Openmodelica_And_Openipsl_By_Mr_Syed_Yasser_Ali/project_files/IEEE_24_bus.pdf
->
Modelling_And_Simulation_Of_Ieee_24_Bus_System_Using_Openipsl_By_Mr_Syed_Yasser_Ali/project_files/IEEE_24_bus.pdf
R
Modelling_And_Simulation_Of_Ieee_24_Bus_System_Using_Openmodelica_And_Openipsl_By_Mr_Syed_Yasser_Ali/project_files/IEEE_24_bus.zip
->
Modelling_And_Simulation_Of_Ieee_24_Bus_System_Using_Openipsl_By_Mr_Syed_Yasser_Ali/project_files/IEEE_24_bus.zip
R
Modelling_And_Simulation_Of_Illini_42_Bus_System_Using_Openmodelica_And_Openipsl_By_Mr_Syed_Yasser_Ali/Illini_42_bus_system.pdf
->
Modelling_And_Simulation_Of_Illini_42_Bus_System_Using_Openipsl_By_Mr_Syed_Yasser_Ali/Illini_42_bus_system.pdf
R
Modelling_Of_10_Bus_System_Using_Modelica_And_Openipsl._By_Mr_Arumilli_Hemanth/Abstract.pdf
->
Modelling_Of_10_Bus_System_Using_Openipsl._By_Mr_Arumilli_Hemanth/Abstract.pdf
R
Modelling_Of_10_Bus_System_Using_Modelica_And_Openipsl._By_Mr_Arumilli_Hemanth/README.txt
->
Modelling_Of_10_Bus_System_Using_Openipsl._By_Mr_Arumilli_Hemanth/README.txt
R
Modelling_Of_10_Bus_System_Using_Modelica_And_Openipsl._By_Mr_Arumilli_Hemanth/project_files/10bussystem.zip
->
Modelling_Of_10_Bus_System_Using_Openipsl._By_Mr_Arumilli_Hemanth/project_files/10bussystem.zip
R
Modelling_Of_10_Bus_System_Using_Modelica_And_Openipsl._By_Mr_Arumilli_Hemanth/project_files/DOCUMENTATION.pdf
->
Modelling_Of_10_Bus_System_Using_Openipsl._By_Mr_Arumilli_Hemanth/project_files/DOCUMENTATION.pdf
R
Modeling_Of_A_Five_Bus_Power_System_Under_Three_Phase_Fault_Using_The_Openipsl_By_Ms_Sai_Suma_Yallapragada/README.txt
->
Modelling_Of_A_Five_Bus_Power_System_Under_Three_Phase_Fault_Using_The_Openipsl_By_Ms_Sai_Suma_Yallapragada/README.txt
R
Modeling_Of_A_Five_Bus_Power_System_Under_Three_Phase_Fault_Using_The_Openipsl_By_Ms_Sai_Suma_Yallapragada/abstract1.pdf
->
Modelling_Of_A_Five_Bus_Power_System_Under_Three_Phase_Fault_Using_The_Openipsl_By_Ms_Sai_Suma_Yallapragada/abstract1.pdf
R
Modeling_Of_A_Five_Bus_Power_System_Under_Three_Phase_Fault_Using_The_Openipsl_By_Ms_Sai_Suma_Yallapragada/project_files/Modelling_of_5_bus_system_under_3phase_fault_using_OpenIPSL.pdf
->
Modelling_Of_A_Five_Bus_Power_System_Under_Three_Phase_Fault_Using_The_Openipsl_By_Ms_Sai_Suma_Yallapragada/project_files/Modelling_of_5_bus_system_under_3phase_fault_using_OpenIPSL.pdf
R
Modeling_Of_A_Five_Bus_Power_System_Under_Three_Phase_Fault_Using_The_Openipsl_By_Ms_Sai_Suma_Yallapragada/project_files/modelling_of_5bus_system_under_3phase_fault.mo
->
Modelling_Of_A_Five_Bus_Power_System_Under_Three_Phase_Fault_Using_The_Openipsl_By_Ms_Sai_Suma_Yallapragada/project_files/modelling_of_5bus_system_under_3phase_fault.mo
R
Modeling_Of_An_Islanded_Operation_Controller_For_Power_Systems_Study._By_Mr_Biswarup_Mukherjee_And_Prof._Luigi_Vanfretti/Modeling_of_an_islanded_operation_controller_for_power_systems_study.pdf
->
Modelling_Of_An_Islanded_Operation_Controller_For_Power_Systems_Study_By_Mr_Biswarup_Mukherjee_And_Prof._Luigi_Vanfretti/Modeling_of_an_islanded_operation_controller_for_power_systems_study.pdf
R
Modeling_Of_An_Islanded_Operation_Controller_For_Power_Systems_Study._By_Mr_Biswarup_Mukherjee_And_Prof._Luigi_Vanfretti/README.txt
->
Modelling_Of_An_Islanded_Operation_Controller_For_Power_Systems_Study_By_Mr_Biswarup_Mukherjee_And_Prof._Luigi_Vanfretti/README.txt
R
Modeling_Of_An_Islanded_Operation_Controller_For_Power_Systems_Study._By_Mr_Biswarup_Mukherjee_And_Prof._Luigi_Vanfretti/project_files/IslandedOperationControl.mo
->
Modelling_Of_An_Islanded_Operation_Controller_For_Power_Systems_Study_By_Mr_Biswarup_Mukherjee_And_Prof._Luigi_Vanfretti/project_files/IslandedOperationControl.mo
R
Modeling_Of_An_Islanded_Operation_Controller_For_Power_Systems_Study._By_Mr_Biswarup_Mukherjee_And_Prof._Luigi_Vanfretti/project_files/Modeling_of_an_islanded_operation_controller_for_power_systems_study.pdf
->
Modelling_Of_An_Islanded_Operation_Controller_For_Power_Systems_Study_By_Mr_Biswarup_Mukherjee_And_Prof._Luigi_Vanfretti/project_files/Modeling_of_an_islanded_operation_controller_for_power_systems_study.pdf
R
Modeling_Of_Fault_Analysis_Of_6-Bus_System_By_Mr_Mohd_Ayaz/Modeling_of_fault_analysis_of_6_bus_system.pdf
->
Modelling_Of_Fault_Analysis_Of_6-Bus_System_By_Mr_Mohd_Ayaz/Modeling_of_fault_analysis_of_6_bus_system.pdf
R Modeling_Of_Fault_Analysis_Of_6-Bus_System_By_Mr_Mohd_Ayaz/README.txt ->
Modelling_Of_Fault_Analysis_Of_6-Bus_System_By_Mr_Mohd_Ayaz/README.txt R
Modeling_Of_Fault_Analysis_Of_6-Bus_System_By_Mr_Mohd_Ayaz/project_files/Modeling_of_Fault_Analysis_of_six_Bus_System.pdf
->
Modelling_Of_Fault_Analysis_Of_6-Bus_System_By_Mr_Mohd_Ayaz/project_files/Modeling_of_Fault_Analysis_of_six_Bus_System.pdf
R
Modeling_Of_Fault_Analysis_Of_6-Bus_System_By_Mr_Mohd_Ayaz/project_files/Modeling_of_fault_analysis_of_6_bus_system.zip
->
Modelling_Of_Fault_Analysis_Of_6-Bus_System_By_Mr_Mohd_Ayaz/project_files/Modeling_of_fault_analysis_of_6_bus_system.zip
R
Modelling_Of_Ieee_62_Bus_System_Using_Modelica_And_Openipsl_By_Mr_Syed_Yasser_Ali/Modelling_of_IEEE_62_bus_system_using_Modelica_and_OpenIPSL.pdf
->
Modelling_Of_Ieee_62_Bus_System_Using_Openipsl_By_Mr_Syed_Yasser_Ali/Modelling_of_IEEE_62_bus_system_using_Modelica_and_OpenIPSL.pdf
R
Modelling_Of_Ieee_62_Bus_System_Using_Modelica_And_Openipsl_By_Mr_Syed_Yasser_Ali/README.txt
->
Modelling_Of_Ieee_62_Bus_System_Using_Openipsl_By_Mr_Syed_Yasser_Ali/README.txt
R
Modelling_Of_Ieee_62_Bus_System_Using_Modelica_And_Openipsl_By_Mr_Syed_Yasser_Ali/project_files/Modelling_of_IEEE_62_bus_system_using_Modelica_and_OpenIPSL.pdf
->
Modelling_Of_Ieee_62_Bus_System_Using_Openipsl_By_Mr_Syed_Yasser_Ali/project_files/Modelling_of_IEEE_62_bus_system_using_Modelica_and_OpenIPSL.pdf
R
Modelling_Of_Ieee_62_Bus_System_Using_Modelica_And_Openipsl_By_Mr_Syed_Yasser_Ali/project_files/Modelling_of_IEEE_62_bus_system_using_Modelica_and_OpenIPSL.zip
->
Modelling_Of_Ieee_62_Bus_System_Using_Openipsl_By_Mr_Syed_Yasser_Ali/project_files/Modelling_of_IEEE_62_bus_system_using_Modelica_and_OpenIPSL.zip
R
"Modeling_Of_Ieee_9-Bus_Modified_Test_System_Using\r\nOpenipsl_By_Mrs_K.jeevitha/abstractalfc1.pdf"
->
Modelling_Of_Ieee_9-Bus_Modified_Test_System_Using_Openipsl_By_Mrs_K.jeevitha/abstractalfc1.pdf
R
Modelling_Of_Ieee_Modified_30_Bus_System_Using_Modelica_And_Openipsl_By_Mr_Syed_Yasser_Ali/README.txt
->
Modelling_Of_Ieee_Modified_30_Bus_System_Using_Openipsl_By_Mr_Syed_Yasser_Ali/README.txt
R
Modelling_Of_Ieee_Modified_30_Bus_System_Using_Modelica_And_Openipsl_By_Mr_Syed_Yasser_Ali/ieee_modified_30_bus_system_documentation.pdf
->
Modelling_Of_Ieee_Modified_30_Bus_System_Using_Openipsl_By_Mr_Syed_Yasser_Ali/ieee_modified_30_bus_system_documentation.pdf
R
Modelling_Of_Ieee_Modified_30_Bus_System_Using_Modelica_And_Openipsl_By_Mr_Syed_Yasser_Ali/project_files/ieee_modified_30_bus_system.zip
->
Modelling_Of_Ieee_Modified_30_Bus_System_Using_Openipsl_By_Mr_Syed_Yasser_Ali/project_files/ieee_modified_30_bus_system.zip
R
Modelling_Of_Ieee_Modified_30_Bus_System_Using_Modelica_And_Openipsl_By_Mr_Syed_Yasser_Ali/project_files/ieee_modified_30_bus_system_documentation.pdf
->
Modelling_Of_Ieee_Modified_30_Bus_System_Using_Openipsl_By_Mr_Syed_Yasser_Ali/project_files/ieee_modified_30_bus_system_documentation.pdf
R
Modeling_Of_Rbts_System_Along_With_Generation_Expansion_Planning_By_Mr_Gandra_Mahesh/Modeling_of_RBTS_system_along_with_Generation_Expansion_Planning.pdf
->
Modelling_Of_Rbts_System_Along_With_Generation_Expansion_Planning_By_Mr_Gandra_Mahesh/Modeling_of_RBTS_system_along_with_Generation_Expansion_Planning.pdf
R
Modeling_Of_Rbts_System_Along_With_Generation_Expansion_Planning_By_Mr_Gandra_Mahesh/README.txt
->
Modelling_Of_Rbts_System_Along_With_Generation_Expansion_Planning_By_Mr_Gandra_Mahesh/README.txt
R
Modeling_Of_Rbts_System_Along_With_Generation_Expansion_Planning_By_Mr_Gandra_Mahesh/project_files/Modeling_of_RBTS_system_along_with_Generation_Expansion_Planning.pdf
->
Modelling_Of_Rbts_System_Along_With_Generation_Expansion_Planning_By_Mr_Gandra_Mahesh/project_files/Modeling_of_RBTS_system_along_with_Generation_Expansion_Planning.pdf
R
Modeling_Of_Rbts_System_Along_With_Generation_Expansion_Planning_By_Mr_Gandra_Mahesh/project_files/Modeling_of_RBTS_system_along_with_Generation_Expansion_Planning.zip
->
Modelling_Of_Rbts_System_Along_With_Generation_Expansion_Planning_By_Mr_Gandra_Mahesh/project_files/Modeling_of_RBTS_system_along_with_Generation_Expansion_Planning.zip
R
Modeling_Of_Single_Machine_Distribution_Network_Using_Modelica_And_Openipsl_By_Mr_Syed_Yasser_Ali/Modeling_of_proposed_Single_Machine_distribution_network_using_Modelica_and_OpenIPSL.pdf
->
Modelling_Of_Single_Machine_Distribution_Network_Using_Openipsl_By_Mr_Syed_Yasser_Ali/Modeling_of_proposed_Single_Machine_distribution_network_using_Modelica_and_OpenIPSL.pdf
R
Modeling_Of_Single_Machine_Distribution_Network_Using_Modelica_And_Openipsl_By_Mr_Syed_Yasser_Ali/README.txt
->
Modelling_Of_Single_Machine_Distribution_Network_Using_Openipsl_By_Mr_Syed_Yasser_Ali/README.txt
R
Modeling_Of_Single_Machine_Distribution_Network_Using_Modelica_And_Openipsl_By_Mr_Syed_Yasser_Ali/project_files/Modeling_of_proposed_Single_Machine_distribution_network_using_Modelica_and_OpenIPSL.pdf
->
Modelling_Of_Single_Machine_Distribution_Network_Using_Openipsl_By_Mr_Syed_Yasser_Ali/project_files/Modeling_of_proposed_Single_Machine_distribution_network_using_Modelica_and_OpenIPSL.pdf
R
Modeling_Of_Single_Machine_Distribution_Network_Using_Modelica_And_Openipsl_By_Mr_Syed_Yasser_Ali/project_files/Modeling_of_proposed_Single_Machine_distribution_network_using_Modelica_and_OpenIPSL.zip
->
Modelling_Of_Single_Machine_Distribution_Network_Using_Openipsl_By_Mr_Syed_Yasser_Ali/project_files/Modeling_of_proposed_Single_Machine_distribution_network_using_Modelica_and_OpenIPSL.zip
R
Modeling_Of_Single_Machine_Infinite_Bus_(smib)_Using_Modelica_And_The_Openipsl_By_Mr_Biswarup_Mukherjee_And_Prof._Luigi_Vanfretti/A2_final.pdf
->
Modelling_Of_Single_Machine_Infinite_Bus_(smib)_Using_The_Openipsl_By_Mr_Biswarup_Mukherjee_And_Prof._Luigi_Vanfretti/A2_final.pdf
R
Modeling_Of_Single_Machine_Infinite_Bus_(smib)_Using_Modelica_And_The_Openipsl_By_Mr_Biswarup_Mukherjee_And_Prof._Luigi_Vanfretti/README.txt
->
Modelling_Of_Single_Machine_Infinite_Bus_(smib)_Using_The_Openipsl_By_Mr_Biswarup_Mukherjee_And_Prof._Luigi_Vanfretti/README.txt
R
Modeling_Of_Single_Machine_Infinite_Bus_(smib)_Using_Modelica_And_The_Openipsl_By_Mr_Biswarup_Mukherjee_And_Prof._Luigi_Vanfretti/project_files/A2_final.pdf
->
Modelling_Of_Single_Machine_Infinite_Bus_(smib)_Using_The_Openipsl_By_Mr_Biswarup_Mukherjee_And_Prof._Luigi_Vanfretti/project_files/A2_final.pdf
R
Modeling_Of_Single_Machine_Infinite_Bus_(smib)_Using_Modelica_And_The_Openipsl_By_Mr_Biswarup_Mukherjee_And_Prof._Luigi_Vanfretti/project_files/SMIB_Simple.mo
->
Modelling_Of_Single_Machine_Infinite_Bus_(smib)_Using_The_Openipsl_By_Mr_Biswarup_Mukherjee_And_Prof._Luigi_Vanfretti/project_files/SMIB_Simple.mo
R
Modeling_Of_Single_Machine_Infinite_Bus_(smib_Controlled)_Using_The_Openipsl_By_Mr_Biswarup_Mukherjee_And_Prof._Luigi_Vanfretti/A3_final.pdf
->
Modelling_Of_Single_Machine_Infinite_Bus_(smib_Controlled)_Using_The_Openipsl_By_Mr_Biswarup_Mukherjee_And_Prof._Luigi_Vanfretti/A3_final.pdf
R
Modeling_Of_Single_Machine_Infinite_Bus_(smib_Controlled)_Using_The_Openipsl_By_Mr_Biswarup_Mukherjee_And_Prof._Luigi_Vanfretti/README.txt
->
Modelling_Of_Single_Machine_Infinite_Bus_(smib_Controlled)_Using_The_Openipsl_By_Mr_Biswarup_Mukherjee_And_Prof._Luigi_Vanfretti/README.txt
R
Modeling_Of_Single_Machine_Infinite_Bus_(smib_Controlled)_Using_The_Openipsl_By_Mr_Biswarup_Mukherjee_And_Prof._Luigi_Vanfretti/project_files/A3_final.pdf
->
Modelling_Of_Single_Machine_Infinite_Bus_(smib_Controlled)_Using_The_Openipsl_By_Mr_Biswarup_Mukherjee_And_Prof._Luigi_Vanfretti/project_files/A3_final.pdf
R
Modeling_Of_Single_Machine_Infinite_Bus_(smib_Controlled)_Using_The_Openipsl_By_Mr_Biswarup_Mukherjee_And_Prof._Luigi_Vanfretti/project_files/SMIB_Control.mo
->
Modelling_Of_Single_Machine_Infinite_Bus_(smib_Controlled)_Using_The_Openipsl_By_Mr_Biswarup_Mukherjee_And_Prof._Luigi_Vanfretti/project_files/SMIB_Control.mo
R
Power_System_Modeling_Of_A_4-Bus_System_Using_Varying_Load_From_Openipsl_By_Mr_Pritish_Chatterjee/Power_system_modeling_of_a_4bus_system_using_varying_load_from_OpenIPSL.pdf
->
Power_System_Modelling_Of_A_4-Bus_System_Using_Varying_Load_From_Openipsl_By_Mr_Pritish_Chatterjee/Power_system_modeling_of_a_4bus_system_using_varying_load_from_OpenIPSL.pdf
R
Power_System_Modeling_Of_A_4-Bus_System_Using_Varying_Load_From_Openipsl_By_Mr_Pritish_Chatterjee/README.txt
->
Power_System_Modelling_Of_A_4-Bus_System_Using_Varying_Load_From_Openipsl_By_Mr_Pritish_Chatterjee/README.txt
R
Power_System_Modeling_Of_A_4-Bus_System_Using_Varying_Load_From_Openipsl_By_Mr_Pritish_Chatterjee/project_files/Model.mo
->
Power_System_Modelling_Of_A_4-Bus_System_Using_Varying_Load_From_Openipsl_By_Mr_Pritish_Chatterjee/project_files/Model.mo
R
Power_System_Modeling_Of_A_4-Bus_System_Using_Varying_Load_From_Openipsl_By_Mr_Pritish_Chatterjee/project_files/Power_system_modeling_of_a_4bus_system_using_varying_load_and_SVC.pdf
->
Power_System_Modelling_Of_A_4-Bus_System_Using_Varying_Load_From_Openipsl_By_Mr_Pritish_Chatterjee/project_files/Power_system_modeling_of_a_4bus_system_using_varying_load_and_SVC.pdf
R
Power_System_Modeling_Using_A_Gas_Turbine_Governor_System_(ggov)._By_Prof_Prof._Luigi_Vanfretti_And_Biswarup_Mukherjee/A4_final.pdf
->
Power_System_Modelling_Using_A_Gas_Turbine_Governor_System_(ggov)_By_Prof_Prof._Luigi_Vanfretti_And_Biswarup_Mukherjee/A4_final.pdf
R
Power_System_Modeling_Using_A_Gas_Turbine_Governor_System_(ggov)._By_Prof_Prof._Luigi_Vanfretti_And_Biswarup_Mukherjee/README.txt
->
Power_System_Modelling_Using_A_Gas_Turbine_Governor_System_(ggov)_By_Prof_Prof._Luigi_Vanfretti_And_Biswarup_Mukherjee/README.txt
R
Power_System_Modeling_Using_A_Gas_Turbine_Governor_System_(ggov)._By_Prof_Prof._Luigi_Vanfretti_And_Biswarup_Mukherjee/project_files/A4_final.pdf
->
Power_System_Modelling_Using_A_Gas_Turbine_Governor_System_(ggov)_By_Prof_Prof._Luigi_Vanfretti_And_Biswarup_Mukherjee/project_files/A4_final.pdf
R
Power_System_Modeling_Using_A_Gas_Turbine_Governor_System_(ggov)._By_Prof_Prof._Luigi_Vanfretti_And_Biswarup_Mukherjee/project_files/GGOV.mo
->
Power_System_Modelling_Using_A_Gas_Turbine_Governor_System_(ggov)_By_Prof_Prof._Luigi_Vanfretti_And_Biswarup_Mukherjee/project_files/GGOV.mo
R
Power_System_Modeling_Using_A_Time_Varying_Load_From_Openipsl_By_Mr_Biswarup_Mukherjee/A5_final.pdf
->
Power_System_Modelling_Using_A_Time_Varying_Load_From_Openipsl_By_Mr_Biswarup_Mukherjee/A5_final.pdf
R
Power_System_Modeling_Using_A_Time_Varying_Load_From_Openipsl_By_Mr_Biswarup_Mukherjee/README.txt
->
Power_System_Modelling_Using_A_Time_Varying_Load_From_Openipsl_By_Mr_Biswarup_Mukherjee/README.txt
R
Power_System_Modeling_Using_A_Time_Varying_Load_From_Openipsl_By_Mr_Biswarup_Mukherjee/project_files/A5_final.pdf
->
Power_System_Modelling_Using_A_Time_Varying_Load_From_Openipsl_By_Mr_Biswarup_Mukherjee/project_files/A5_final.pdf
R
Power_System_Modeling_Using_A_Time_Varying_Load_From_Openipsl_By_Mr_Biswarup_Mukherjee/project_files/LoadVariation.mo
->
Power_System_Modelling_Using_A_Time_Varying_Load_From_Openipsl_By_Mr_Biswarup_Mukherjee/project_files/LoadVariation.mo
R
Renewable_Energy_Integration_Of_37-Bus_System_Using_Openmodelica_And_Openipsl_By_Mr_Mohd_Ayaz/README.txt
->
Renewable_Energy_Integration_Of_37-Bus_System_Using_Openipsl_By_Mr_Mohd_Ayaz/README.txt
R
Renewable_Energy_Integration_Of_37-Bus_System_Using_Openmodelica_And_Openipsl_By_Mr_Mohd_Ayaz/Renewable_Energy_Integration_of_37_bus_System.pdf
->
Renewable_Energy_Integration_Of_37-Bus_System_Using_Openipsl_By_Mr_Mohd_Ayaz/Renewable_Energy_Integration_of_37_bus_System.pdf
R
Renewable_Energy_Integration_Of_37-Bus_System_Using_Openmodelica_And_Openipsl_By_Mr_Mohd_Ayaz/project_files/Renewable_Energy_Integration_of_37_Bus_System_Using_OpenModelica_and_OpenIPSL.zip
->
Renewable_Energy_Integration_Of_37-Bus_System_Using_Openipsl_By_Mr_Mohd_Ayaz/project_files/Renewable_Energy_Integration_of_37_Bus_System_Using_OpenModelica_and_OpenIPSL.zip
R
Renewable_Energy_Integration_Of_37-Bus_System_Using_Openmodelica_And_Openipsl_By_Mr_Mohd_Ayaz/project_files/Renewable_Energy_Integration_of_37_bus_System.pdf
->
Renewable_Energy_Integration_Of_37-Bus_System_Using_Openipsl_By_Mr_Mohd_Ayaz/project_files/Renewable_Energy_Integration_of_37_bus_System.pdf
R
Unsymmetrical_Faults_On_Power_System_Using_Modelica_And_Openipsl_By_Ms_Jeevitha_M,pradeepa_P,elavarasan_R/ABSTRACTSUBMISSIONFORM.pdf
->
Unsymmetrical_Faults_On_Power_System_Using_Openipsl_By_Ms_Jeevitha_M,pradeepa_P,elavarasan_R/ABSTRACTSUBMISSIONFORM.pdf
---
.../README.txt | 8 +
.../project_files/MODELING_SIXTEEN_BUS_SYSTEM.mo | 209 +
.../project_files/REPORT.pdf | Bin 0 -> 1146886 bytes
.../proposal.pdf | Bin 0 -> 11102 bytes
.../README.txt | 8 -
.../project_files/MODELING_SIXTEEN_BUS_SYSTEM.mo | 209 -
.../project_files/REPORT.pdf | Bin 1146886 -> 0 bytes
.../proposal.pdf | Bin 11102 -> 0 bytes
.../README.txt | 8 +
.../abstract_om.pdf | Bin 0 -> 98513 bytes
.../project_files/abstract_om1.pdf | Bin 0 -> 495406 bytes
.../project_files/modelmo.zip | Bin 0 -> 14697 bytes
.../abstract_om.pdf | Bin 98513 -> 0 bytes
.../Abstract_Dynamic.pdf | Bin 94824 -> 0 bytes
.../README.txt | 8 -
.../project_files/Abstract.pdf | Bin 297824 -> 0 bytes
.../project_files/Dynamic_Study_On_Windfarm.zip | Bin 9310826 -> 0 bytes
.../Abstract_Dynamic.pdf | Bin 0 -> 94824 bytes
.../README.txt | 8 +
.../project_files/Abstract.pdf | Bin 0 -> 297824 bytes
.../project_files/Dynamic_Study_On_Windfarm.zip | Bin 0 -> 9310826 bytes
.../Abstract.pdf | Bin 0 -> 71313 bytes
.../README.txt | 8 +
.../project_files/Project.zip | Bin 0 -> 8797617 bytes
.../project_files/Report.pdf | Bin 0 -> 345063 bytes
.../Abstract.pdf | Bin 71313 -> 0 bytes
.../README.txt | 8 -
.../project_files/Project.zip | Bin 8797617 -> 0 bytes
.../project_files/Report.pdf | Bin 345063 -> 0 bytes
.../Abstract.pdf | Bin 0 -> 57540 bytes
.../Abstract.pdf | Bin 57540 -> 0 bytes
...plementation_in_Modelica_using_the_OpenIPSL.pdf | Bin 369979 -> 0 bytes
.../README.txt | 8 -
.../project_files/IEEE14Bus.mo | 1204 -
...plementation_in_Modelica_using_the_OpenIPSL.pdf | Bin 369979 -> 0 bytes
...plementation_in_Modelica_using_the_OpenIPSL.pdf | Bin 0 -> 369979 bytes
.../README.txt | 8 +
.../project_files/IEEE14Bus.mo | 1204 +
...plementation_in_Modelica_using_the_OpenIPSL.pdf | Bin 0 -> 369979 bytes
...plementation_in_Modelica_using_the_OpenIPSL.pdf | Bin 358266 -> 0 bytes
.../README.txt | 8 -
.../project_files/IEEE9Bus.mo | 696 -
...plementation_in_Modelica_using_the_OpenIPSL.pdf | Bin 358266 -> 0 bytes
...plementation_in_Modelica_using_the_OpenIPSL.pdf | Bin 0 -> 358266 bytes
.../README.txt | 8 +
.../project_files/IEEE9Bus.mo | 696 +
...plementation_in_Modelica_using_the_OpenIPSL.pdf | Bin 0 -> 358266 bytes
.../Kundur_Two_Area_network.pdf | Bin 183751 -> 0 bytes
.../README.txt | 8 -
.../project_files/Kundur_Two_Area_network.pdf | Bin 183751 -> 0 bytes
.../project_files/TwoAreas.mo | 760 -
.../Kundur_Two_Area_network.pdf | Bin 0 -> 183751 bytes
.../README.txt | 8 +
.../project_files/Kundur_Two_Area_network.pdf | Bin 0 -> 183751 bytes
.../project_files/TwoAreas.mo | 760 +
.../README.txt | 8 -
.../abstract.pdf | Bin 95033 -> 0 bytes
.../project_files/modelabstract.pdf | Bin 178136 -> 0 bytes
.../project_files/modelingandsimulationfile.zip | Bin 150698 -> 0 bytes
.../README.txt | 8 -
.../abstract1.pdf | Bin 207433 -> 0 bytes
...us_system_under_3phase_fault_using_OpenIPSL.pdf | Bin 673257 -> 0 bytes
.../modelling_of_5bus_system_under_3phase_fault.mo | 90 -
...peration_controller_for_power_systems_study.pdf | Bin 64495 -> 0 bytes
.../README.txt | 8 -
.../project_files/IslandedOperationControl.mo | 33782 -------------------
...peration_controller_for_power_systems_study.pdf | Bin 212115 -> 0 bytes
.../Modeling_of_fault_analysis_of_6_bus_system.pdf | Bin 131211 -> 0 bytes
.../README.txt | 8 -
...odeling_of_Fault_Analysis_of_six_Bus_System.pdf | Bin 334733 -> 0 bytes
.../Modeling_of_fault_analysis_of_6_bus_system.zip | Bin 313051 -> 0 bytes
.../abstractalfc1.pdf" | Bin 21644 -> 0 bytes
...em_along_with_Generation_Expansion_Planning.pdf | Bin 280763 -> 0 bytes
.../README.txt | 8 -
...em_along_with_Generation_Expansion_Planning.pdf | Bin 280763 -> 0 bytes
...em_along_with_Generation_Expansion_Planning.zip | Bin 246493 -> 0 bytes
...ibution_network_using_Modelica_and_OpenIPSL.pdf | Bin 223708 -> 0 bytes
.../README.txt | 8 -
...ibution_network_using_Modelica_and_OpenIPSL.pdf | Bin 223708 -> 0 bytes
...ibution_network_using_Modelica_and_OpenIPSL.zip | Bin 896285 -> 0 bytes
.../A2_final.pdf | Bin 570531 -> 0 bytes
.../README.txt | 8 -
.../project_files/A2_final.pdf | Bin 570531 -> 0 bytes
.../project_files/SMIB_Simple.mo | 63 -
.../A3_final.pdf | Bin 563176 -> 0 bytes
.../README.txt | 8 -
.../project_files/A3_final.pdf | Bin 563176 -> 0 bytes
.../project_files/SMIB_Control.mo | 65 -
.../Abstract.pdf | Bin 0 -> 57364 bytes
.../README.txt | 8 +
.../project_files/Modelling_of_51_bus_system.mo | 2144 ++
.../project_files/REPORT.pdf | Bin 0 -> 238433 bytes
.../Abstract.pdf | Bin 57364 -> 0 bytes
.../README.txt | 8 -
.../project_files/Modelling_of_51_bus_system.mo | 2144 --
.../project_files/REPORT.pdf | Bin 238433 -> 0 bytes
.../LoadFlowAnalysis.pdf | Bin 0 -> 73626 bytes
.../LoadFlowAnalysis.pdf | Bin 73626 -> 0 bytes
.../README.txt | 8 +
.../abstract.pdf | Bin 0 -> 95033 bytes
.../project_files/modelabstract.pdf | Bin 0 -> 178136 bytes
.../project_files/modelingandsimulationfile.zip | Bin 0 -> 150698 bytes
.../A99.pdf | Bin 0 -> 5133 bytes
.../README.txt | 8 +
.../project_files/four_machine_10_bus.pdf | Bin 0 -> 176056 bytes
.../project_files/four_machine_10_bus.zip | Bin 0 -> 154446 bytes
.../A99.pdf | Bin 5133 -> 0 bytes
.../README.txt | 8 -
.../project_files/four_machine_10_bus.pdf | Bin 176056 -> 0 bytes
.../project_files/four_machine_10_bus.zip | Bin 154446 -> 0 bytes
.../Abstract.pdf | Bin 0 -> 107092 bytes
.../Abstract.pdf | Bin 107092 -> 0 bytes
.../ABSRACT_IEEE24.pdf | Bin 0 -> 5266 bytes
.../README.txt | 8 +
.../project_files/IEEE_24_bus.pdf | Bin 0 -> 69437 bytes
.../project_files/IEEE_24_bus.zip | Bin 0 -> 56879 bytes
.../ABSRACT_IEEE24.pdf | Bin 5266 -> 0 bytes
.../README.txt | 8 -
.../project_files/IEEE_24_bus.pdf | Bin 69437 -> 0 bytes
.../project_files/IEEE_24_bus.zip | Bin 56879 -> 0 bytes
.../Illini_42_bus_system.pdf | Bin 0 -> 259151 bytes
.../Illini_42_bus_system.pdf | Bin 259151 -> 0 bytes
.../Abstract.pdf | Bin 63978 -> 0 bytes
.../README.txt | 8 -
.../project_files/10bussystem.zip | Bin 864462 -> 0 bytes
.../project_files/DOCUMENTATION.pdf | Bin 308120 -> 0 bytes
.../Abstract.pdf | Bin 0 -> 63978 bytes
.../README.txt | 8 +
.../project_files/10bussystem.zip | Bin 0 -> 864462 bytes
.../project_files/DOCUMENTATION.pdf | Bin 0 -> 308120 bytes
.../README.txt | 8 +
.../abstract1.pdf | Bin 0 -> 207433 bytes
...us_system_under_3phase_fault_using_OpenIPSL.pdf | Bin 0 -> 673257 bytes
.../modelling_of_5bus_system_under_3phase_fault.mo | 90 +
...peration_controller_for_power_systems_study.pdf | Bin 0 -> 64495 bytes
.../README.txt | 8 +
.../project_files/IslandedOperationControl.mo | 33782 +++++++++++++++++++
...peration_controller_for_power_systems_study.pdf | Bin 0 -> 212115 bytes
.../Modeling_of_fault_analysis_of_6_bus_system.pdf | Bin 0 -> 131211 bytes
.../README.txt | 8 +
...odeling_of_Fault_Analysis_of_six_Bus_System.pdf | Bin 0 -> 334733 bytes
.../Modeling_of_fault_analysis_of_6_bus_system.zip | Bin 0 -> 313051 bytes
...E_62_bus_system_using_Modelica_and_OpenIPSL.pdf | Bin 223586 -> 0 bytes
.../README.txt | 8 -
...E_62_bus_system_using_Modelica_and_OpenIPSL.pdf | Bin 223586 -> 0 bytes
...E_62_bus_system_using_Modelica_and_OpenIPSL.zip | Bin 768092 -> 0 bytes
...E_62_bus_system_using_Modelica_and_OpenIPSL.pdf | Bin 0 -> 223586 bytes
.../README.txt | 8 +
...E_62_bus_system_using_Modelica_and_OpenIPSL.pdf | Bin 0 -> 223586 bytes
...E_62_bus_system_using_Modelica_and_OpenIPSL.zip | Bin 0 -> 768092 bytes
.../abstractalfc1.pdf | Bin 0 -> 21644 bytes
.../README.txt | 8 -
.../ieee_modified_30_bus_system_documentation.pdf | Bin 122893 -> 0 bytes
.../project_files/ieee_modified_30_bus_system.zip | Bin 669880 -> 0 bytes
.../ieee_modified_30_bus_system_documentation.pdf | Bin 122906 -> 0 bytes
.../README.txt | 8 +
.../ieee_modified_30_bus_system_documentation.pdf | Bin 0 -> 122893 bytes
.../project_files/ieee_modified_30_bus_system.zip | Bin 0 -> 669880 bytes
.../ieee_modified_30_bus_system_documentation.pdf | Bin 0 -> 122906 bytes
...em_along_with_Generation_Expansion_Planning.pdf | Bin 0 -> 280763 bytes
.../README.txt | 8 +
...em_along_with_Generation_Expansion_Planning.pdf | Bin 0 -> 280763 bytes
...em_along_with_Generation_Expansion_Planning.zip | Bin 0 -> 246493 bytes
...ibution_network_using_Modelica_and_OpenIPSL.pdf | Bin 0 -> 223708 bytes
.../README.txt | 8 +
...ibution_network_using_Modelica_and_OpenIPSL.pdf | Bin 0 -> 223708 bytes
...ibution_network_using_Modelica_and_OpenIPSL.zip | Bin 0 -> 896285 bytes
.../A2_final.pdf | Bin 0 -> 570531 bytes
.../README.txt | 8 +
.../project_files/A2_final.pdf | Bin 0 -> 570531 bytes
.../project_files/SMIB_Simple.mo | 63 +
.../A3_final.pdf | Bin 0 -> 563176 bytes
.../README.txt | 8 +
.../project_files/A3_final.pdf | Bin 0 -> 563176 bytes
.../project_files/SMIB_Control.mo | 65 +
...bus_system_using_varying_load_from_OpenIPSL.pdf | Bin 113591 -> 0 bytes
.../README.txt | 8 -
.../project_files/Model.mo | 69 -
...of_a_4bus_system_using_varying_load_and_SVC.pdf | Bin 105119 -> 0 bytes
.../A4_final.pdf | Bin 469266 -> 0 bytes
.../README.txt | 8 -
.../project_files/A4_final.pdf | Bin 469266 -> 0 bytes
.../project_files/GGOV.mo | 92 -
.../A5_final.pdf | Bin 469002 -> 0 bytes
.../README.txt | 8 -
.../project_files/A5_final.pdf | Bin 469002 -> 0 bytes
.../project_files/LoadVariation.mo | 125 -
...bus_system_using_varying_load_from_OpenIPSL.pdf | Bin 0 -> 113591 bytes
.../README.txt | 8 +
.../project_files/Model.mo | 69 +
...of_a_4bus_system_using_varying_load_and_SVC.pdf | Bin 0 -> 105119 bytes
.../A4_final.pdf | Bin 0 -> 469266 bytes
.../README.txt | 8 +
.../project_files/A4_final.pdf | Bin 0 -> 469266 bytes
.../project_files/GGOV.mo | 92 +
.../A5_final.pdf | Bin 0 -> 469002 bytes
.../README.txt | 8 +
.../project_files/A5_final.pdf | Bin 0 -> 469002 bytes
.../project_files/LoadVariation.mo | 125 +
.../README.txt | 8 +
...newable_Energy_Integration_of_37_bus_System.pdf | Bin 0 -> 48977 bytes
..._Bus_System_Using_OpenModelica_and_OpenIPSL.zip | Bin 0 -> 427590 bytes
...newable_Energy_Integration_of_37_bus_System.pdf | Bin 0 -> 449424 bytes
.../README.txt | 8 -
...newable_Energy_Integration_of_37_bus_System.pdf | Bin 48977 -> 0 bytes
..._Bus_System_Using_OpenModelica_and_OpenIPSL.zip | Bin 427590 -> 0 bytes
...newable_Energy_Integration_of_37_bus_System.pdf | Bin 449424 -> 0 bytes
.../ABSTRACTSUBMISSIONFORM.pdf | Bin 156299 -> 0 bytes
.../ABSTRACTSUBMISSIONFORM.pdf | Bin 0 -> 156299 bytes
209 files changed, 39499 insertions(+), 39491 deletions(-)
create mode 100644 Contingency_Analysis_Of_16_Bus_System_Using_Openipsl_By_Mr_Ajin_Raj_D/README.txt
create mode 100644 Contingency_Analysis_Of_16_Bus_System_Using_Openipsl_By_Mr_Ajin_Raj_D/project_files/MODELING_SIXTEEN_BUS_SYSTEM.mo
create mode 100644 Contingency_Analysis_Of_16_Bus_System_Using_Openipsl_By_Mr_Ajin_Raj_D/project_files/REPORT.pdf
create mode 100644 Contingency_Analysis_Of_16_Bus_System_Using_Openipsl_By_Mr_Ajin_Raj_D/proposal.pdf
delete mode 100644 Contingency_Analysis_Of_16_Bus_System_Using_Openmodelica_By_Mr_Ajin_Raj_D/README.txt
delete mode 100644 Contingency_Analysis_Of_16_Bus_System_Using_Openmodelica_By_Mr_Ajin_Raj_D/project_files/MODELING_SIXTEEN_BUS_SYSTEM.mo
delete mode 100644 Contingency_Analysis_Of_16_Bus_System_Using_Openmodelica_By_Mr_Ajin_Raj_D/project_files/REPORT.pdf
delete mode 100644 Contingency_Analysis_Of_16_Bus_System_Using_Openmodelica_By_Mr_Ajin_Raj_D/proposal.pdf
create mode 100644 Dynamic_Study_Of_69_Bus_Radial_Networks_With_Dg_Using_Openipsl_By_Mr_Aritra_Banerjee/README.txt
create mode 100644 Dynamic_Study_Of_69_Bus_Radial_Networks_With_Dg_Using_Openipsl_By_Mr_Aritra_Banerjee/abstract_om.pdf
create mode 100644 Dynamic_Study_Of_69_Bus_Radial_Networks_With_Dg_Using_Openipsl_By_Mr_Aritra_Banerjee/project_files/abstract_om1.pdf
create mode 100644 Dynamic_Study_Of_69_Bus_Radial_Networks_With_Dg_Using_Openipsl_By_Mr_Aritra_Banerjee/project_files/modelmo.zip
delete mode 100644 Dynamic_Study_Of_69_Bus_Radial_Networks_With_Dg_Using_Openmodelica_And_Openipsl_By_Mr_Aritra_Banerjee/abstract_om.pdf
delete mode 100644 Dynamic_Study_On_Wind_Farm_Modeling_By_Using_Openmodelica_And_Openipsl_By_Mr_Gandra_Mahesh/Abstract_Dynamic.pdf
delete mode 100644 Dynamic_Study_On_Wind_Farm_Modeling_By_Using_Openmodelica_And_Openipsl_By_Mr_Gandra_Mahesh/README.txt
delete mode 100644 Dynamic_Study_On_Wind_Farm_Modeling_By_Using_Openmodelica_And_Openipsl_By_Mr_Gandra_Mahesh/project_files/Abstract.pdf
delete mode 100644 Dynamic_Study_On_Wind_Farm_Modeling_By_Using_Openmodelica_And_Openipsl_By_Mr_Gandra_Mahesh/project_files/Dynamic_Study_On_Windfarm.zip
create mode 100644 Dynamic_Study_On_Wind_Farm_Modelling_By_Using_Openipsl_By_Mr_Gandra_Mahesh/Abstract_Dynamic.pdf
create mode 100644 Dynamic_Study_On_Wind_Farm_Modelling_By_Using_Openipsl_By_Mr_Gandra_Mahesh/README.txt
create mode 100644 Dynamic_Study_On_Wind_Farm_Modelling_By_Using_Openipsl_By_Mr_Gandra_Mahesh/project_files/Abstract.pdf
create mode 100644 Dynamic_Study_On_Wind_Farm_Modelling_By_Using_Openipsl_By_Mr_Gandra_Mahesh/project_files/Dynamic_Study_On_Windfarm.zip
create mode 100644 Fault_Analysis_Of_33_Bus_Distribution_System_Using_Openipsl_By_Ms_R.abhisha,_R.rabecca_And_S.selsiya/Abstract.pdf
create mode 100644 Fault_Analysis_Of_33_Bus_Distribution_System_Using_Openipsl_By_Ms_R.abhisha,_R.rabecca_And_S.selsiya/README.txt
create mode 100644 Fault_Analysis_Of_33_Bus_Distribution_System_Using_Openipsl_By_Ms_R.abhisha,_R.rabecca_And_S.selsiya/project_files/Project.zip
create mode 100644 Fault_Analysis_Of_33_Bus_Distribution_System_Using_Openipsl_By_Ms_R.abhisha,_R.rabecca_And_S.selsiya/project_files/Report.pdf
delete mode 100644 Fault_Analysis_Of_33_Bus_Distribution_System_Using_Openmodelica_And_Openipsl_By_Ms_R.abhisha,_R.rabecca_And_S.selsiya/Abstract.pdf
delete mode 100644 Fault_Analysis_Of_33_Bus_Distribution_System_Using_Openmodelica_And_Openipsl_By_Ms_R.abhisha,_R.rabecca_And_S.selsiya/README.txt
delete mode 100644 Fault_Analysis_Of_33_Bus_Distribution_System_Using_Openmodelica_And_Openipsl_By_Ms_R.abhisha,_R.rabecca_And_S.selsiya/project_files/Project.zip
delete mode 100644 Fault_Analysis_Of_33_Bus_Distribution_System_Using_Openmodelica_And_Openipsl_By_Ms_R.abhisha,_R.rabecca_And_S.selsiya/project_files/Report.pdf
create mode 100644 Fault_Analysis_Of_39_Bus_Power_System_Using_Openipsl_By_Mr_R.asick/Abstract.pdf
delete mode 100644 Fault_Analysis_Of_39_Bus_Power_System_Using_Openmodelica_Openipsl_By_Mr_R.asick/Abstract.pdf
delete mode 100644 Ieee14_Bus_System_Implementation_In_Modelica_Using_The_Openipsl_By_Prof_Prof._Luigi_Vanfretti/IEEE14_bus_system_implementation_in_Modelica_using_the_OpenIPSL.pdf
delete mode 100644 Ieee14_Bus_System_Implementation_In_Modelica_Using_The_Openipsl_By_Prof_Prof._Luigi_Vanfretti/README.txt
delete mode 100644 Ieee14_Bus_System_Implementation_In_Modelica_Using_The_Openipsl_By_Prof_Prof._Luigi_Vanfretti/project_files/IEEE14Bus.mo
delete mode 100644 Ieee14_Bus_System_Implementation_In_Modelica_Using_The_Openipsl_By_Prof_Prof._Luigi_Vanfretti/project_files/IEEE14_bus_system_implementation_in_Modelica_using_the_OpenIPSL.pdf
create mode 100644 Ieee14_Bus_System_Implementation_Using_The_Openipsl_By_Prof_Prof._Luigi_Vanfretti/IEEE14_bus_system_implementation_in_Modelica_using_the_OpenIPSL.pdf
create mode 100644 Ieee14_Bus_System_Implementation_Using_The_Openipsl_By_Prof_Prof._Luigi_Vanfretti/README.txt
create mode 100644 Ieee14_Bus_System_Implementation_Using_The_Openipsl_By_Prof_Prof._Luigi_Vanfretti/project_files/IEEE14Bus.mo
create mode 100644 Ieee14_Bus_System_Implementation_Using_The_Openipsl_By_Prof_Prof._Luigi_Vanfretti/project_files/IEEE14_bus_system_implementation_in_Modelica_using_the_OpenIPSL.pdf
delete mode 100644 Ieee9_Bus_System_Implementation_In_Modelica_Using_The_Openipsl_By_Prof_Prof._Luigi_Vanfretti/IEEE9_bus_system_implementation_in_Modelica_using_the_OpenIPSL.pdf
delete mode 100644 Ieee9_Bus_System_Implementation_In_Modelica_Using_The_Openipsl_By_Prof_Prof._Luigi_Vanfretti/README.txt
delete mode 100644 Ieee9_Bus_System_Implementation_In_Modelica_Using_The_Openipsl_By_Prof_Prof._Luigi_Vanfretti/project_files/IEEE9Bus.mo
delete mode 100644 Ieee9_Bus_System_Implementation_In_Modelica_Using_The_Openipsl_By_Prof_Prof._Luigi_Vanfretti/project_files/IEEE9_bus_system_implementation_in_Modelica_using_the_OpenIPSL.pdf
create mode 100644 Ieee9_Bus_System_Implementation_Using_The_Openipsl_By_Prof_Prof._Luigi_Vanfretti/IEEE9_bus_system_implementation_in_Modelica_using_the_OpenIPSL.pdf
create mode 100644 Ieee9_Bus_System_Implementation_Using_The_Openipsl_By_Prof_Prof._Luigi_Vanfretti/README.txt
create mode 100644 Ieee9_Bus_System_Implementation_Using_The_Openipsl_By_Prof_Prof._Luigi_Vanfretti/project_files/IEEE9Bus.mo
create mode 100644 Ieee9_Bus_System_Implementation_Using_The_Openipsl_By_Prof_Prof._Luigi_Vanfretti/project_files/IEEE9_bus_system_implementation_in_Modelica_using_the_OpenIPSL.pdf
delete mode 100644 Kundur'S_Two-Area_System_Modeling_Using_Modelica_And_Openipsl_By_Dr_Prof._Luigi_Vanfretti_And_Maxime_Baudette/Kundur_Two_Area_network.pdf
delete mode 100644 Kundur'S_Two-Area_System_Modeling_Using_Modelica_And_Openipsl_By_Dr_Prof._Luigi_Vanfretti_And_Maxime_Baudette/README.txt
delete mode 100644 Kundur'S_Two-Area_System_Modeling_Using_Modelica_And_Openipsl_By_Dr_Prof._Luigi_Vanfretti_And_Maxime_Baudette/project_files/Kundur_Two_Area_network.pdf
delete mode 100644 Kundur'S_Two-Area_System_Modeling_Using_Modelica_And_Openipsl_By_Dr_Prof._Luigi_Vanfretti_And_Maxime_Baudette/project_files/TwoAreas.mo
create mode 100644 Kundur'S_Two-Area_System_Modelling_Using_Openipsl_By_Dr_Prof._Luigi_Vanfretti_And_Maxime_Baudette/Kundur_Two_Area_network.pdf
create mode 100644 Kundur'S_Two-Area_System_Modelling_Using_Openipsl_By_Dr_Prof._Luigi_Vanfretti_And_Maxime_Baudette/README.txt
create mode 100644 Kundur'S_Two-Area_System_Modelling_Using_Openipsl_By_Dr_Prof._Luigi_Vanfretti_And_Maxime_Baudette/project_files/Kundur_Two_Area_network.pdf
create mode 100644 Kundur'S_Two-Area_System_Modelling_Using_Openipsl_By_Dr_Prof._Luigi_Vanfretti_And_Maxime_Baudette/project_files/TwoAreas.mo
delete mode 100644 Modeling_And_Simulation_Of_1_Generator_And_9_Bus_Using_The_Openipsl_By_Mr_Aritra_Banerjee/README.txt
delete mode 100644 Modeling_And_Simulation_Of_1_Generator_And_9_Bus_Using_The_Openipsl_By_Mr_Aritra_Banerjee/abstract.pdf
delete mode 100644 Modeling_And_Simulation_Of_1_Generator_And_9_Bus_Using_The_Openipsl_By_Mr_Aritra_Banerjee/project_files/modelabstract.pdf
delete mode 100644 Modeling_And_Simulation_Of_1_Generator_And_9_Bus_Using_The_Openipsl_By_Mr_Aritra_Banerjee/project_files/modelingandsimulationfile.zip
delete mode 100644 Modeling_Of_A_Five_Bus_Power_System_Under_Three_Phase_Fault_Using_The_Openipsl_By_Ms_Sai_Suma_Yallapragada/README.txt
delete mode 100644 Modeling_Of_A_Five_Bus_Power_System_Under_Three_Phase_Fault_Using_The_Openipsl_By_Ms_Sai_Suma_Yallapragada/abstract1.pdf
delete mode 100644 Modeling_Of_A_Five_Bus_Power_System_Under_Three_Phase_Fault_Using_The_Openipsl_By_Ms_Sai_Suma_Yallapragada/project_files/Modelling_of_5_bus_system_under_3phase_fault_using_OpenIPSL.pdf
delete mode 100644 Modeling_Of_A_Five_Bus_Power_System_Under_Three_Phase_Fault_Using_The_Openipsl_By_Ms_Sai_Suma_Yallapragada/project_files/modelling_of_5bus_system_under_3phase_fault.mo
delete mode 100644 Modeling_Of_An_Islanded_Operation_Controller_For_Power_Systems_Study._By_Mr_Biswarup_Mukherjee_And_Prof._Luigi_Vanfretti/Modeling_of_an_islanded_operation_controller_for_power_systems_study.pdf
delete mode 100644 Modeling_Of_An_Islanded_Operation_Controller_For_Power_Systems_Study._By_Mr_Biswarup_Mukherjee_And_Prof._Luigi_Vanfretti/README.txt
delete mode 100644 Modeling_Of_An_Islanded_Operation_Controller_For_Power_Systems_Study._By_Mr_Biswarup_Mukherjee_And_Prof._Luigi_Vanfretti/project_files/IslandedOperationControl.mo
delete mode 100644 Modeling_Of_An_Islanded_Operation_Controller_For_Power_Systems_Study._By_Mr_Biswarup_Mukherjee_And_Prof._Luigi_Vanfretti/project_files/Modeling_of_an_islanded_operation_controller_for_power_systems_study.pdf
delete mode 100644 Modeling_Of_Fault_Analysis_Of_6-Bus_System_By_Mr_Mohd_Ayaz/Modeling_of_fault_analysis_of_6_bus_system.pdf
delete mode 100644 Modeling_Of_Fault_Analysis_Of_6-Bus_System_By_Mr_Mohd_Ayaz/README.txt
delete mode 100644 Modeling_Of_Fault_Analysis_Of_6-Bus_System_By_Mr_Mohd_Ayaz/project_files/Modeling_of_Fault_Analysis_of_six_Bus_System.pdf
delete mode 100644 Modeling_Of_Fault_Analysis_Of_6-Bus_System_By_Mr_Mohd_Ayaz/project_files/Modeling_of_fault_analysis_of_6_bus_system.zip
delete mode 100644 "Modeling_Of_Ieee_9-Bus_Modified_Test_System_Using\r\nOpenipsl_By_Mrs_K.jeevitha/abstractalfc1.pdf"
delete mode 100644 Modeling_Of_Rbts_System_Along_With_Generation_Expansion_Planning_By_Mr_Gandra_Mahesh/Modeling_of_RBTS_system_along_with_Generation_Expansion_Planning.pdf
delete mode 100644 Modeling_Of_Rbts_System_Along_With_Generation_Expansion_Planning_By_Mr_Gandra_Mahesh/README.txt
delete mode 100644 Modeling_Of_Rbts_System_Along_With_Generation_Expansion_Planning_By_Mr_Gandra_Mahesh/project_files/Modeling_of_RBTS_system_along_with_Generation_Expansion_Planning.pdf
delete mode 100644 Modeling_Of_Rbts_System_Along_With_Generation_Expansion_Planning_By_Mr_Gandra_Mahesh/project_files/Modeling_of_RBTS_system_along_with_Generation_Expansion_Planning.zip
delete mode 100644 Modeling_Of_Single_Machine_Distribution_Network_Using_Modelica_And_Openipsl_By_Mr_Syed_Yasser_Ali/Modeling_of_proposed_Single_Machine_distribution_network_using_Modelica_and_OpenIPSL.pdf
delete mode 100644 Modeling_Of_Single_Machine_Distribution_Network_Using_Modelica_And_Openipsl_By_Mr_Syed_Yasser_Ali/README.txt
delete mode 100644 Modeling_Of_Single_Machine_Distribution_Network_Using_Modelica_And_Openipsl_By_Mr_Syed_Yasser_Ali/project_files/Modeling_of_proposed_Single_Machine_distribution_network_using_Modelica_and_OpenIPSL.pdf
delete mode 100644 Modeling_Of_Single_Machine_Distribution_Network_Using_Modelica_And_Openipsl_By_Mr_Syed_Yasser_Ali/project_files/Modeling_of_proposed_Single_Machine_distribution_network_using_Modelica_and_OpenIPSL.zip
delete mode 100644 Modeling_Of_Single_Machine_Infinite_Bus_(smib)_Using_Modelica_And_The_Openipsl_By_Mr_Biswarup_Mukherjee_And_Prof._Luigi_Vanfretti/A2_final.pdf
delete mode 100644 Modeling_Of_Single_Machine_Infinite_Bus_(smib)_Using_Modelica_And_The_Openipsl_By_Mr_Biswarup_Mukherjee_And_Prof._Luigi_Vanfretti/README.txt
delete mode 100644 Modeling_Of_Single_Machine_Infinite_Bus_(smib)_Using_Modelica_And_The_Openipsl_By_Mr_Biswarup_Mukherjee_And_Prof._Luigi_Vanfretti/project_files/A2_final.pdf
delete mode 100644 Modeling_Of_Single_Machine_Infinite_Bus_(smib)_Using_Modelica_And_The_Openipsl_By_Mr_Biswarup_Mukherjee_And_Prof._Luigi_Vanfretti/project_files/SMIB_Simple.mo
delete mode 100644 Modeling_Of_Single_Machine_Infinite_Bus_(smib_Controlled)_Using_The_Openipsl_By_Mr_Biswarup_Mukherjee_And_Prof._Luigi_Vanfretti/A3_final.pdf
delete mode 100644 Modeling_Of_Single_Machine_Infinite_Bus_(smib_Controlled)_Using_The_Openipsl_By_Mr_Biswarup_Mukherjee_And_Prof._Luigi_Vanfretti/README.txt
delete mode 100644 Modeling_Of_Single_Machine_Infinite_Bus_(smib_Controlled)_Using_The_Openipsl_By_Mr_Biswarup_Mukherjee_And_Prof._Luigi_Vanfretti/project_files/A3_final.pdf
delete mode 100644 Modeling_Of_Single_Machine_Infinite_Bus_(smib_Controlled)_Using_The_Openipsl_By_Mr_Biswarup_Mukherjee_And_Prof._Luigi_Vanfretti/project_files/SMIB_Control.mo
create mode 100644 Modelling_And_Simulation_Od_51-Bus_System_Using_Openipsl_By_Mr_R._Asick/Abstract.pdf
create mode 100644 Modelling_And_Simulation_Od_51-Bus_System_Using_Openipsl_By_Mr_R._Asick/README.txt
create mode 100644 Modelling_And_Simulation_Od_51-Bus_System_Using_Openipsl_By_Mr_R._Asick/project_files/Modelling_of_51_bus_system.mo
create mode 100644 Modelling_And_Simulation_Od_51-Bus_System_Using_Openipsl_By_Mr_R._Asick/project_files/REPORT.pdf
delete mode 100644 Modelling_And_Simulation_Od_51-Bus_System_Using_Openmodelica_And_Openipsl_By_Mr_R._Asick/Abstract.pdf
delete mode 100644 Modelling_And_Simulation_Od_51-Bus_System_Using_Openmodelica_And_Openipsl_By_Mr_R._Asick/README.txt
delete mode 100644 Modelling_And_Simulation_Od_51-Bus_System_Using_Openmodelica_And_Openipsl_By_Mr_R._Asick/project_files/Modelling_of_51_bus_system.mo
delete mode 100644 Modelling_And_Simulation_Od_51-Bus_System_Using_Openmodelica_And_Openipsl_By_Mr_R._Asick/project_files/REPORT.pdf
create mode 100644 Modelling_And_Simulation_Of_181_Bus_Tneb_Power_System_Using_Openipsl_By_Ms_J._Abinaya,_H._Dhinisha,_P._Pavithra_And_P._Tharshana_Priya/LoadFlowAnalysis.pdf
delete mode 100644 Modelling_And_Simulation_Of_181_Bus_Tneb_Power_System_Using_Openmodelica_And_Openipsl_By_Ms_J._Abinaya,_H._Dhinisha,_P._Pavithra_And_P._Tharshana_Priya/LoadFlowAnalysis.pdf
create mode 100644 Modelling_And_Simulation_Of_1_Generator_And_9_Bus_Using_The_Openipsl_By_Mr_Aritra_Banerjee/README.txt
create mode 100644 Modelling_And_Simulation_Of_1_Generator_And_9_Bus_Using_The_Openipsl_By_Mr_Aritra_Banerjee/abstract.pdf
create mode 100644 Modelling_And_Simulation_Of_1_Generator_And_9_Bus_Using_The_Openipsl_By_Mr_Aritra_Banerjee/project_files/modelabstract.pdf
create mode 100644 Modelling_And_Simulation_Of_1_Generator_And_9_Bus_Using_The_Openipsl_By_Mr_Aritra_Banerjee/project_files/modelingandsimulationfile.zip
create mode 100644 Modelling_And_Simulation_Of_4_Machine_10_Bus_System_Using_Openipsl_By_Mr_Syed_Yasser_Ali/A99.pdf
create mode 100644 Modelling_And_Simulation_Of_4_Machine_10_Bus_System_Using_Openipsl_By_Mr_Syed_Yasser_Ali/README.txt
create mode 100644 Modelling_And_Simulation_Of_4_Machine_10_Bus_System_Using_Openipsl_By_Mr_Syed_Yasser_Ali/project_files/four_machine_10_bus.pdf
create mode 100644 Modelling_And_Simulation_Of_4_Machine_10_Bus_System_Using_Openipsl_By_Mr_Syed_Yasser_Ali/project_files/four_machine_10_bus.zip
delete mode 100644 Modelling_And_Simulation_Of_4_Machine_10_Bus_System_Using_Openmodelica_And_Openipsl_By_Mr_Syed_Yasser_Ali/A99.pdf
delete mode 100644 Modelling_And_Simulation_Of_4_Machine_10_Bus_System_Using_Openmodelica_And_Openipsl_By_Mr_Syed_Yasser_Ali/README.txt
delete mode 100644 Modelling_And_Simulation_Of_4_Machine_10_Bus_System_Using_Openmodelica_And_Openipsl_By_Mr_Syed_Yasser_Ali/project_files/four_machine_10_bus.pdf
delete mode 100644 Modelling_And_Simulation_Of_4_Machine_10_Bus_System_Using_Openmodelica_And_Openipsl_By_Mr_Syed_Yasser_Ali/project_files/four_machine_10_bus.zip
create mode 100644 Modelling_And_Simulation_Of_Ieee_118_Bus_System_Using_Openipsl_By_Mr_R._Asick/Abstract.pdf
delete mode 100644 Modelling_And_Simulation_Of_Ieee_118_Bus_System_Using_Openmodelica_And_Openipsl_By_Mr_R._Asick/Abstract.pdf
create mode 100644 Modelling_And_Simulation_Of_Ieee_24_Bus_System_Using_Openipsl_By_Mr_Syed_Yasser_Ali/ABSRACT_IEEE24.pdf
create mode 100644 Modelling_And_Simulation_Of_Ieee_24_Bus_System_Using_Openipsl_By_Mr_Syed_Yasser_Ali/README.txt
create mode 100644 Modelling_And_Simulation_Of_Ieee_24_Bus_System_Using_Openipsl_By_Mr_Syed_Yasser_Ali/project_files/IEEE_24_bus.pdf
create mode 100644 Modelling_And_Simulation_Of_Ieee_24_Bus_System_Using_Openipsl_By_Mr_Syed_Yasser_Ali/project_files/IEEE_24_bus.zip
delete mode 100644 Modelling_And_Simulation_Of_Ieee_24_Bus_System_Using_Openmodelica_And_Openipsl_By_Mr_Syed_Yasser_Ali/ABSRACT_IEEE24.pdf
delete mode 100644 Modelling_And_Simulation_Of_Ieee_24_Bus_System_Using_Openmodelica_And_Openipsl_By_Mr_Syed_Yasser_Ali/README.txt
delete mode 100644 Modelling_And_Simulation_Of_Ieee_24_Bus_System_Using_Openmodelica_And_Openipsl_By_Mr_Syed_Yasser_Ali/project_files/IEEE_24_bus.pdf
delete mode 100644 Modelling_And_Simulation_Of_Ieee_24_Bus_System_Using_Openmodelica_And_Openipsl_By_Mr_Syed_Yasser_Ali/project_files/IEEE_24_bus.zip
create mode 100644 Modelling_And_Simulation_Of_Illini_42_Bus_System_Using_Openipsl_By_Mr_Syed_Yasser_Ali/Illini_42_bus_system.pdf
delete mode 100644 Modelling_And_Simulation_Of_Illini_42_Bus_System_Using_Openmodelica_And_Openipsl_By_Mr_Syed_Yasser_Ali/Illini_42_bus_system.pdf
delete mode 100644 Modelling_Of_10_Bus_System_Using_Modelica_And_Openipsl._By_Mr_Arumilli_Hemanth/Abstract.pdf
delete mode 100644 Modelling_Of_10_Bus_System_Using_Modelica_And_Openipsl._By_Mr_Arumilli_Hemanth/README.txt
delete mode 100644 Modelling_Of_10_Bus_System_Using_Modelica_And_Openipsl._By_Mr_Arumilli_Hemanth/project_files/10bussystem.zip
delete mode 100644 Modelling_Of_10_Bus_System_Using_Modelica_And_Openipsl._By_Mr_Arumilli_Hemanth/project_files/DOCUMENTATION.pdf
create mode 100644 Modelling_Of_10_Bus_System_Using_Openipsl._By_Mr_Arumilli_Hemanth/Abstract.pdf
create mode 100644 Modelling_Of_10_Bus_System_Using_Openipsl._By_Mr_Arumilli_Hemanth/README.txt
create mode 100644 Modelling_Of_10_Bus_System_Using_Openipsl._By_Mr_Arumilli_Hemanth/project_files/10bussystem.zip
create mode 100644 Modelling_Of_10_Bus_System_Using_Openipsl._By_Mr_Arumilli_Hemanth/project_files/DOCUMENTATION.pdf
create mode 100644 Modelling_Of_A_Five_Bus_Power_System_Under_Three_Phase_Fault_Using_The_Openipsl_By_Ms_Sai_Suma_Yallapragada/README.txt
create mode 100644 Modelling_Of_A_Five_Bus_Power_System_Under_Three_Phase_Fault_Using_The_Openipsl_By_Ms_Sai_Suma_Yallapragada/abstract1.pdf
create mode 100644 Modelling_Of_A_Five_Bus_Power_System_Under_Three_Phase_Fault_Using_The_Openipsl_By_Ms_Sai_Suma_Yallapragada/project_files/Modelling_of_5_bus_system_under_3phase_fault_using_OpenIPSL.pdf
create mode 100644 Modelling_Of_A_Five_Bus_Power_System_Under_Three_Phase_Fault_Using_The_Openipsl_By_Ms_Sai_Suma_Yallapragada/project_files/modelling_of_5bus_system_under_3phase_fault.mo
create mode 100644 Modelling_Of_An_Islanded_Operation_Controller_For_Power_Systems_Study_By_Mr_Biswarup_Mukherjee_And_Prof._Luigi_Vanfretti/Modeling_of_an_islanded_operation_controller_for_power_systems_study.pdf
create mode 100644 Modelling_Of_An_Islanded_Operation_Controller_For_Power_Systems_Study_By_Mr_Biswarup_Mukherjee_And_Prof._Luigi_Vanfretti/README.txt
create mode 100644 Modelling_Of_An_Islanded_Operation_Controller_For_Power_Systems_Study_By_Mr_Biswarup_Mukherjee_And_Prof._Luigi_Vanfretti/project_files/IslandedOperationControl.mo
create mode 100644 Modelling_Of_An_Islanded_Operation_Controller_For_Power_Systems_Study_By_Mr_Biswarup_Mukherjee_And_Prof._Luigi_Vanfretti/project_files/Modeling_of_an_islanded_operation_controller_for_power_systems_study.pdf
create mode 100644 Modelling_Of_Fault_Analysis_Of_6-Bus_System_By_Mr_Mohd_Ayaz/Modeling_of_fault_analysis_of_6_bus_system.pdf
create mode 100644 Modelling_Of_Fault_Analysis_Of_6-Bus_System_By_Mr_Mohd_Ayaz/README.txt
create mode 100644 Modelling_Of_Fault_Analysis_Of_6-Bus_System_By_Mr_Mohd_Ayaz/project_files/Modeling_of_Fault_Analysis_of_six_Bus_System.pdf
create mode 100644 Modelling_Of_Fault_Analysis_Of_6-Bus_System_By_Mr_Mohd_Ayaz/project_files/Modeling_of_fault_analysis_of_6_bus_system.zip
delete mode 100644 Modelling_Of_Ieee_62_Bus_System_Using_Modelica_And_Openipsl_By_Mr_Syed_Yasser_Ali/Modelling_of_IEEE_62_bus_system_using_Modelica_and_OpenIPSL.pdf
delete mode 100644 Modelling_Of_Ieee_62_Bus_System_Using_Modelica_And_Openipsl_By_Mr_Syed_Yasser_Ali/README.txt
delete mode 100644 Modelling_Of_Ieee_62_Bus_System_Using_Modelica_And_Openipsl_By_Mr_Syed_Yasser_Ali/project_files/Modelling_of_IEEE_62_bus_system_using_Modelica_and_OpenIPSL.pdf
delete mode 100644 Modelling_Of_Ieee_62_Bus_System_Using_Modelica_And_Openipsl_By_Mr_Syed_Yasser_Ali/project_files/Modelling_of_IEEE_62_bus_system_using_Modelica_and_OpenIPSL.zip
create mode 100644 Modelling_Of_Ieee_62_Bus_System_Using_Openipsl_By_Mr_Syed_Yasser_Ali/Modelling_of_IEEE_62_bus_system_using_Modelica_and_OpenIPSL.pdf
create mode 100644 Modelling_Of_Ieee_62_Bus_System_Using_Openipsl_By_Mr_Syed_Yasser_Ali/README.txt
create mode 100644 Modelling_Of_Ieee_62_Bus_System_Using_Openipsl_By_Mr_Syed_Yasser_Ali/project_files/Modelling_of_IEEE_62_bus_system_using_Modelica_and_OpenIPSL.pdf
create mode 100644 Modelling_Of_Ieee_62_Bus_System_Using_Openipsl_By_Mr_Syed_Yasser_Ali/project_files/Modelling_of_IEEE_62_bus_system_using_Modelica_and_OpenIPSL.zip
create mode 100644 Modelling_Of_Ieee_9-Bus_Modified_Test_System_Using_Openipsl_By_Mrs_K.jeevitha/abstractalfc1.pdf
delete mode 100644 Modelling_Of_Ieee_Modified_30_Bus_System_Using_Modelica_And_Openipsl_By_Mr_Syed_Yasser_Ali/README.txt
delete mode 100644 Modelling_Of_Ieee_Modified_30_Bus_System_Using_Modelica_And_Openipsl_By_Mr_Syed_Yasser_Ali/ieee_modified_30_bus_system_documentation.pdf
delete mode 100644 Modelling_Of_Ieee_Modified_30_Bus_System_Using_Modelica_And_Openipsl_By_Mr_Syed_Yasser_Ali/project_files/ieee_modified_30_bus_system.zip
delete mode 100644 Modelling_Of_Ieee_Modified_30_Bus_System_Using_Modelica_And_Openipsl_By_Mr_Syed_Yasser_Ali/project_files/ieee_modified_30_bus_system_documentation.pdf
create mode 100644 Modelling_Of_Ieee_Modified_30_Bus_System_Using_Openipsl_By_Mr_Syed_Yasser_Ali/README.txt
create mode 100644 Modelling_Of_Ieee_Modified_30_Bus_System_Using_Openipsl_By_Mr_Syed_Yasser_Ali/ieee_modified_30_bus_system_documentation.pdf
create mode 100644 Modelling_Of_Ieee_Modified_30_Bus_System_Using_Openipsl_By_Mr_Syed_Yasser_Ali/project_files/ieee_modified_30_bus_system.zip
create mode 100644 Modelling_Of_Ieee_Modified_30_Bus_System_Using_Openipsl_By_Mr_Syed_Yasser_Ali/project_files/ieee_modified_30_bus_system_documentation.pdf
create mode 100644 Modelling_Of_Rbts_System_Along_With_Generation_Expansion_Planning_By_Mr_Gandra_Mahesh/Modeling_of_RBTS_system_along_with_Generation_Expansion_Planning.pdf
create mode 100644 Modelling_Of_Rbts_System_Along_With_Generation_Expansion_Planning_By_Mr_Gandra_Mahesh/README.txt
create mode 100644 Modelling_Of_Rbts_System_Along_With_Generation_Expansion_Planning_By_Mr_Gandra_Mahesh/project_files/Modeling_of_RBTS_system_along_with_Generation_Expansion_Planning.pdf
create mode 100644 Modelling_Of_Rbts_System_Along_With_Generation_Expansion_Planning_By_Mr_Gandra_Mahesh/project_files/Modeling_of_RBTS_system_along_with_Generation_Expansion_Planning.zip
create mode 100644 Modelling_Of_Single_Machine_Distribution_Network_Using_Openipsl_By_Mr_Syed_Yasser_Ali/Modeling_of_proposed_Single_Machine_distribution_network_using_Modelica_and_OpenIPSL.pdf
create mode 100644 Modelling_Of_Single_Machine_Distribution_Network_Using_Openipsl_By_Mr_Syed_Yasser_Ali/README.txt
create mode 100644 Modelling_Of_Single_Machine_Distribution_Network_Using_Openipsl_By_Mr_Syed_Yasser_Ali/project_files/Modeling_of_proposed_Single_Machine_distribution_network_using_Modelica_and_OpenIPSL.pdf
create mode 100644 Modelling_Of_Single_Machine_Distribution_Network_Using_Openipsl_By_Mr_Syed_Yasser_Ali/project_files/Modeling_of_proposed_Single_Machine_distribution_network_using_Modelica_and_OpenIPSL.zip
create mode 100644 Modelling_Of_Single_Machine_Infinite_Bus_(smib)_Using_The_Openipsl_By_Mr_Biswarup_Mukherjee_And_Prof._Luigi_Vanfretti/A2_final.pdf
create mode 100644 Modelling_Of_Single_Machine_Infinite_Bus_(smib)_Using_The_Openipsl_By_Mr_Biswarup_Mukherjee_And_Prof._Luigi_Vanfretti/README.txt
create mode 100644 Modelling_Of_Single_Machine_Infinite_Bus_(smib)_Using_The_Openipsl_By_Mr_Biswarup_Mukherjee_And_Prof._Luigi_Vanfretti/project_files/A2_final.pdf
create mode 100644 Modelling_Of_Single_Machine_Infinite_Bus_(smib)_Using_The_Openipsl_By_Mr_Biswarup_Mukherjee_And_Prof._Luigi_Vanfretti/project_files/SMIB_Simple.mo
create mode 100644 Modelling_Of_Single_Machine_Infinite_Bus_(smib_Controlled)_Using_The_Openipsl_By_Mr_Biswarup_Mukherjee_And_Prof._Luigi_Vanfretti/A3_final.pdf
create mode 100644 Modelling_Of_Single_Machine_Infinite_Bus_(smib_Controlled)_Using_The_Openipsl_By_Mr_Biswarup_Mukherjee_And_Prof._Luigi_Vanfretti/README.txt
create mode 100644 Modelling_Of_Single_Machine_Infinite_Bus_(smib_Controlled)_Using_The_Openipsl_By_Mr_Biswarup_Mukherjee_And_Prof._Luigi_Vanfretti/project_files/A3_final.pdf
create mode 100644 Modelling_Of_Single_Machine_Infinite_Bus_(smib_Controlled)_Using_The_Openipsl_By_Mr_Biswarup_Mukherjee_And_Prof._Luigi_Vanfretti/project_files/SMIB_Control.mo
delete mode 100644 Power_System_Modeling_Of_A_4-Bus_System_Using_Varying_Load_From_Openipsl_By_Mr_Pritish_Chatterjee/Power_system_modeling_of_a_4bus_system_using_varying_load_from_OpenIPSL.pdf
delete mode 100644 Power_System_Modeling_Of_A_4-Bus_System_Using_Varying_Load_From_Openipsl_By_Mr_Pritish_Chatterjee/README.txt
delete mode 100644 Power_System_Modeling_Of_A_4-Bus_System_Using_Varying_Load_From_Openipsl_By_Mr_Pritish_Chatterjee/project_files/Model.mo
delete mode 100644 Power_System_Modeling_Of_A_4-Bus_System_Using_Varying_Load_From_Openipsl_By_Mr_Pritish_Chatterjee/project_files/Power_system_modeling_of_a_4bus_system_using_varying_load_and_SVC.pdf
delete mode 100644 Power_System_Modeling_Using_A_Gas_Turbine_Governor_System_(ggov)._By_Prof_Prof._Luigi_Vanfretti_And_Biswarup_Mukherjee/A4_final.pdf
delete mode 100644 Power_System_Modeling_Using_A_Gas_Turbine_Governor_System_(ggov)._By_Prof_Prof._Luigi_Vanfretti_And_Biswarup_Mukherjee/README.txt
delete mode 100644 Power_System_Modeling_Using_A_Gas_Turbine_Governor_System_(ggov)._By_Prof_Prof._Luigi_Vanfretti_And_Biswarup_Mukherjee/project_files/A4_final.pdf
delete mode 100644 Power_System_Modeling_Using_A_Gas_Turbine_Governor_System_(ggov)._By_Prof_Prof._Luigi_Vanfretti_And_Biswarup_Mukherjee/project_files/GGOV.mo
delete mode 100644 Power_System_Modeling_Using_A_Time_Varying_Load_From_Openipsl_By_Mr_Biswarup_Mukherjee/A5_final.pdf
delete mode 100644 Power_System_Modeling_Using_A_Time_Varying_Load_From_Openipsl_By_Mr_Biswarup_Mukherjee/README.txt
delete mode 100644 Power_System_Modeling_Using_A_Time_Varying_Load_From_Openipsl_By_Mr_Biswarup_Mukherjee/project_files/A5_final.pdf
delete mode 100644 Power_System_Modeling_Using_A_Time_Varying_Load_From_Openipsl_By_Mr_Biswarup_Mukherjee/project_files/LoadVariation.mo
create mode 100644 Power_System_Modelling_Of_A_4-Bus_System_Using_Varying_Load_From_Openipsl_By_Mr_Pritish_Chatterjee/Power_system_modeling_of_a_4bus_system_using_varying_load_from_OpenIPSL.pdf
create mode 100644 Power_System_Modelling_Of_A_4-Bus_System_Using_Varying_Load_From_Openipsl_By_Mr_Pritish_Chatterjee/README.txt
create mode 100644 Power_System_Modelling_Of_A_4-Bus_System_Using_Varying_Load_From_Openipsl_By_Mr_Pritish_Chatterjee/project_files/Model.mo
create mode 100644 Power_System_Modelling_Of_A_4-Bus_System_Using_Varying_Load_From_Openipsl_By_Mr_Pritish_Chatterjee/project_files/Power_system_modeling_of_a_4bus_system_using_varying_load_and_SVC.pdf
create mode 100644 Power_System_Modelling_Using_A_Gas_Turbine_Governor_System_(ggov)_By_Prof_Prof._Luigi_Vanfretti_And_Biswarup_Mukherjee/A4_final.pdf
create mode 100644 Power_System_Modelling_Using_A_Gas_Turbine_Governor_System_(ggov)_By_Prof_Prof._Luigi_Vanfretti_And_Biswarup_Mukherjee/README.txt
create mode 100644 Power_System_Modelling_Using_A_Gas_Turbine_Governor_System_(ggov)_By_Prof_Prof._Luigi_Vanfretti_And_Biswarup_Mukherjee/project_files/A4_final.pdf
create mode 100644 Power_System_Modelling_Using_A_Gas_Turbine_Governor_System_(ggov)_By_Prof_Prof._Luigi_Vanfretti_And_Biswarup_Mukherjee/project_files/GGOV.mo
create mode 100644 Power_System_Modelling_Using_A_Time_Varying_Load_From_Openipsl_By_Mr_Biswarup_Mukherjee/A5_final.pdf
create mode 100644 Power_System_Modelling_Using_A_Time_Varying_Load_From_Openipsl_By_Mr_Biswarup_Mukherjee/README.txt
create mode 100644 Power_System_Modelling_Using_A_Time_Varying_Load_From_Openipsl_By_Mr_Biswarup_Mukherjee/project_files/A5_final.pdf
create mode 100644 Power_System_Modelling_Using_A_Time_Varying_Load_From_Openipsl_By_Mr_Biswarup_Mukherjee/project_files/LoadVariation.mo
create mode 100644 Renewable_Energy_Integration_Of_37-Bus_System_Using_Openipsl_By_Mr_Mohd_Ayaz/README.txt
create mode 100644 Renewable_Energy_Integration_Of_37-Bus_System_Using_Openipsl_By_Mr_Mohd_Ayaz/Renewable_Energy_Integration_of_37_bus_System.pdf
create mode 100644 Renewable_Energy_Integration_Of_37-Bus_System_Using_Openipsl_By_Mr_Mohd_Ayaz/project_files/Renewable_Energy_Integration_of_37_Bus_System_Using_OpenModelica_and_OpenIPSL.zip
create mode 100644 Renewable_Energy_Integration_Of_37-Bus_System_Using_Openipsl_By_Mr_Mohd_Ayaz/project_files/Renewable_Energy_Integration_of_37_bus_System.pdf
delete mode 100644 Renewable_Energy_Integration_Of_37-Bus_System_Using_Openmodelica_And_Openipsl_By_Mr_Mohd_Ayaz/README.txt
delete mode 100644 Renewable_Energy_Integration_Of_37-Bus_System_Using_Openmodelica_And_Openipsl_By_Mr_Mohd_Ayaz/Renewable_Energy_Integration_of_37_bus_System.pdf
delete mode 100644 Renewable_Energy_Integration_Of_37-Bus_System_Using_Openmodelica_And_Openipsl_By_Mr_Mohd_Ayaz/project_files/Renewable_Energy_Integration_of_37_Bus_System_Using_OpenModelica_and_OpenIPSL.zip
delete mode 100644 Renewable_Energy_Integration_Of_37-Bus_System_Using_Openmodelica_And_Openipsl_By_Mr_Mohd_Ayaz/project_files/Renewable_Energy_Integration_of_37_bus_System.pdf
delete mode 100644 Unsymmetrical_Faults_On_Power_System_Using_Modelica_And_Openipsl_By_Ms_Jeevitha_M,pradeepa_P,elavarasan_R/ABSTRACTSUBMISSIONFORM.pdf
create mode 100644 Unsymmetrical_Faults_On_Power_System_Using_Openipsl_By_Ms_Jeevitha_M,pradeepa_P,elavarasan_R/ABSTRACTSUBMISSIONFORM.pdf
diff --git a/Contingency_Analysis_Of_16_Bus_System_Using_Openipsl_By_Mr_Ajin_Raj_D/README.txt b/Contingency_Analysis_Of_16_Bus_System_Using_Openipsl_By_Mr_Ajin_Raj_D/README.txt
new file mode 100644
index 0000000..2f1cc07
--- /dev/null
+++ b/Contingency_Analysis_Of_16_Bus_System_Using_Openipsl_By_Mr_Ajin_Raj_D/README.txt
@@ -0,0 +1,8 @@
+About the Power System Simulation
+
+Title Of The Power System Simulation Project: Contingency Analysis of 16 bus system using OpenModelica
+Proposar Name: Mr Ajin Raj D
+University: St.xavier'S Catholic College Of Engineering
+
+
+OM PSSP Project By FOSSEE, IIT Bombay
diff --git a/Contingency_Analysis_Of_16_Bus_System_Using_Openipsl_By_Mr_Ajin_Raj_D/project_files/MODELING_SIXTEEN_BUS_SYSTEM.mo b/Contingency_Analysis_Of_16_Bus_System_Using_Openipsl_By_Mr_Ajin_Raj_D/project_files/MODELING_SIXTEEN_BUS_SYSTEM.mo
new file mode 100644
index 0000000..13ae501
--- /dev/null
+++ b/Contingency_Analysis_Of_16_Bus_System_Using_Openipsl_By_Mr_Ajin_Raj_D/project_files/MODELING_SIXTEEN_BUS_SYSTEM.mo
@@ -0,0 +1,209 @@
+package MODELING_SIXTEEN_BUS_SYSTEM
+ model SIXTEENBUS_NETWORK
+ OpenIPSL.Electrical.Buses.Bus B1(P_0 = 10.37, Q_0 = 12.19, V_0 = 1.060, V_b = 11, angle_0 = 0, displayPF = true) annotation(
+ Placement(visible = true, transformation(origin = {-60, 50}, extent = {{-4, -4}, {4, 4}}, rotation = -90)));
+ OpenIPSL.Electrical.Buses.Bus B2(P_0 = 10, Q_0 = 0, V_0 = 1.045, V_b = 11, angle_0 = 0.596, displayPF = true) annotation(
+ Placement(visible = true, transformation(origin = {14, 50}, extent = {{-4, -4}, {4, 4}}, rotation = -90)));
+ OpenIPSL.Electrical.Buses.Bus B3(P_0 = 10, Q_0 = 0, V_0 = 1.010, V_b = 11, angle_0 = 3.120, displayPF = true) annotation(
+ Placement(visible = true, transformation(origin = {72, 50}, extent = {{-4, -4}, {4, 4}}, rotation = -90)));
+ OpenIPSL.Electrical.Buses.Bus B4(P_0 = 2.00, Q_0 = 1.60, V_0 = 1.047, V_b = 11, angle_0 = -0.316, displayPF = true) annotation(
+ Placement(visible = true, transformation(origin = {-62, -18}, extent = {{-4, -4}, {4, 4}}, rotation = -90)));
+ OpenIPSL.Electrical.Buses.Bus B5(P_0 = 3.00, Q_0 = 0.40, V_0 = 1.039, V_b = 11, angle_0 = -0.527, displayPF = true) annotation(
+ Placement(visible = true, transformation(origin = {-30, 10}, extent = {{-4, -4}, {4, 4}}, rotation = 0)));
+ OpenIPSL.Electrical.Buses.Bus B6(P_0 = 2.00, Q_0 = -0.40, V_0 = 1.044, V_b = 11, angle_0 = -0.497, displayPF = true) annotation(
+ Placement(visible = true, transformation(origin = {-62, -58}, extent = {{-4, -4}, {4, 4}}, rotation = -90)));
+ OpenIPSL.Electrical.Buses.Bus B7(P_0 = 1.50, Q_0 = 1.20, V_0 = 1.044, V_b = 11, angle_0 = -0.480, displayPF = true) annotation(
+ Placement(visible = true, transformation(origin = {-26, -74}, extent = {{-4, -4}, {4, 4}}, rotation = -90)));
+ OpenIPSL.Electrical.Buses.Bus B8(P_0 = 4.00, Q_0 = 2.70, V_0 = 1.033, V_b = 11, angle_0 = 0.085, displayPF = true) annotation(
+ Placement(visible = true, transformation(origin = {14, 8}, extent = {{-4, -4}, {4, 4}}, rotation = -90)));
+ OpenIPSL.Electrical.Buses.Bus B9(P_0 = 5.00, Q_0 = 1.80, V_0 = 1.031, V_b = 11, angle_0 = -0.475, displayPF = true) annotation(
+ Placement(visible = true, transformation(origin = {14, -36}, extent = {{-4, -4}, {4, 4}}, rotation = -90)));
+ OpenIPSL.Electrical.Buses.Bus B10(P_0 = 1.00, Q_0 = 0.90, V_0 = 1.033, V_b = 11, angle_0 = 0.253, displayPF = true) annotation(
+ Placement(visible = true, transformation(origin = {45, -35}, extent = {{-5, -5}, {5, 5}}, rotation = -90)));
+ OpenIPSL.Electrical.Buses.Bus B11(P_0 = 0.60, Q_0 = -0.50, V_0 = 1.037, V_b = 11, angle_0 = -0.530, displayPF = true) annotation(
+ Placement(visible = true, transformation(origin = {-6, -56}, extent = {{-4, -4}, {4, 4}}, rotation = -90)));
+ OpenIPSL.Electrical.Buses.Bus B12(P_0 = 4.50, Q_0 = -1.70, V_0 = 1.029, V_b = 11, angle_0 = -0.816, displayPF = true) annotation(
+ Placement(visible = true, transformation(origin = {16, -78}, extent = {{-4, -4}, {4, 4}}, rotation = -90)));
+ OpenIPSL.Electrical.Buses.Bus B13(P_0 = 1.00, Q_0 = 0.90, V_0 = 1.034, V_b = 11, angle_0 = 0.613, displayPF = true) annotation(
+ Placement(visible = true, transformation(origin = {72, 6}, extent = {{-4, -4}, {4, 4}}, rotation = -90)));
+ OpenIPSL.Electrical.Buses.Bus B14(P_0 = 1.00, Q_0 = -1.10, V_0 = 1.034, V_b = 11, angle_0 = 0.316, displayPF = true) annotation(
+ Placement(visible = true, transformation(origin = {72, -20}, extent = {{-4, -4}, {4, 4}}, rotation = 180)));
+ OpenIPSL.Electrical.Buses.Bus B15(P_0 = 1.00, Q_0 = 0.90, V_0 = 1.042, V_b = 11, angle_0 = 0.096, displayPF = true) annotation(
+ Placement(visible = true, transformation(origin = {80, -52}, extent = {{-4, -4}, {4, 4}}, rotation = -90)));
+ OpenIPSL.Electrical.Buses.Bus B16(P_0 = 2.10, Q_0 = -0.80, V(fixed = false), V_0 = 1.045, V_b = 11, angle(fixed = false), angle_0 = -0.411, displayPF = true) annotation(
+ Placement(visible = true, transformation(origin = {54, -82}, extent = {{-4, -4}, {4, 4}}, rotation = -90)));
+ inner OpenIPSL.Electrical.SystemBase sysData(S_b = 100, fn = 50) annotation(
+ Placement(visible = true, transformation(origin = {-64, 91}, extent = {{-36, -9}, {36, 9}}, rotation = 0)));
+ OpenIPSL.Electrical.Branches.PwLine L14(B = 0, G = 0, R = 0.075, X = 0.10, displayPF = true) annotation(
+ Placement(visible = true, transformation(origin = {-60, 18}, extent = {{-4, -4}, {4, 4}}, rotation = -90)));
+ OpenIPSL.Electrical.Branches.PwLine L45(B = 0, G = 0, R = 0.08, X = 0.11, displayPF = true) annotation(
+ Placement(visible = true, transformation(origin = {-42, -4}, extent = {{-4, -4}, {4, 4}}, rotation = -90)));
+ OpenIPSL.Electrical.Branches.PwLine L46(B = 0, G = 0, R = 0.09, X = 0.18, displayPF = true) annotation(
+ Placement(visible = true, transformation(origin = {-60, -40}, extent = {{-4, 4}, {4, -4}}, rotation = -90)));
+ OpenIPSL.Electrical.Branches.PwLine L67(B = 0, G = 0, R = 0.04, X = 0.04, displayPF = true) annotation(
+ Placement(visible = true, transformation(origin = {-44, -64}, extent = {{-4, -4}, {4, 4}}, rotation = 0)));
+ OpenIPSL.Electrical.Branches.PwLine L28(B = 0, G = 0, R = 0.11, X = 0.11, displayPF = true) annotation(
+ Placement(visible = true, transformation(origin = {16, 26}, extent = {{-4, -4}, {4, 4}}, rotation = -90)));
+ OpenIPSL.Electrical.Branches.PwLine L89(B = 0, G = 0, R = 0.08, X = 0.11, displayPF = true) annotation(
+ Placement(visible = true, transformation(origin = {16, -16}, extent = {{-4, -4}, {4, 4}}, rotation = -90)));
+ OpenIPSL.Electrical.Branches.PwLine L810(B = 0, G = 0, R = 0.11, X = 0.11, displayPF = true) annotation(
+ Placement(visible = true, transformation(origin = {42, -16}, extent = {{-4, -4}, {4, 4}}, rotation = -90)));
+ OpenIPSL.Electrical.Branches.PwLine L911(B = 0, G = 0, R = 0.11, X = 0.11, displayPF = true) annotation(
+ Placement(visible = true, transformation(origin = {3, -43}, extent = {{-5, -5}, {5, 5}}, rotation = 180)));
+ OpenIPSL.Electrical.Branches.PwLine L912(B = 0, G = 0, R = 0.08, X = 0.11, displayPF = true) annotation(
+ Placement(visible = true, transformation(origin = {15, -61}, extent = {{-5, -5}, {5, 5}}, rotation = -90)));
+ OpenIPSL.Electrical.Branches.PwLine L313(B = 0, G = 0, R = 0.11, X = 0.11, displayPF = true) annotation(
+ Placement(visible = true, transformation(origin = {72, 26}, extent = {{-4, -4}, {4, 4}}, rotation = -90)));
+ OpenIPSL.Electrical.Branches.PwLine L1314(B = 0, G = 0, R = 0.09, X = 0.12, displayPF = true) annotation(
+ Placement(visible = true, transformation(origin = {80, -12}, extent = {{-4, 4}, {4, -4}}, rotation = -90)));
+ OpenIPSL.Electrical.Branches.PwLine L1315(B = 0, G = 0, R = 0.08, X = 0.11, displayPF = true) annotation(
+ Placement(visible = true, transformation(origin = {94, -12}, extent = {{-4, -4}, {4, 4}}, rotation = -90)));
+ OpenIPSL.Electrical.Branches.PwLine L1516(B = 0, G = 0, R = 0.04, X = 0.04, displayPF = true) annotation(
+ Placement(visible = true, transformation(origin = {67, -67}, extent = {{-5, -5}, {5, 5}}, rotation = 180)));
+ OpenIPSL.Electrical.Branches.PwLine L511(B = 0, G = 0, R = 0.04, X = 0.04, displayPF = true, t1 = 15, t2 = 16) annotation(
+ Placement(visible = true, transformation(origin = {-14, -16}, extent = {{-4, -4}, {4, 4}}, rotation = -90)));
+ OpenIPSL.Electrical.Branches.PwLine L1014(B = 0, G = 0, R = 0.04, X = 0.04, displayPF = true) annotation(
+ Placement(visible = true, transformation(origin = {63, -35}, extent = {{-5, -5}, {5, 5}}, rotation = 0)));
+ OpenIPSL.Electrical.Branches.PwLine L716(B = 0, G = 0, R = 0.12, X = 0.12, displayPF = true) annotation(
+ Placement(visible = true, transformation(origin = {-1, -87}, extent = {{-5, -5}, {5, 5}}, rotation = 0)));
+ OpenIPSL.Electrical.Loads.PSAT.LOADPQ LD4(P_0 = 2.00, Q_0 = 1.60, Sn = 100, V_0 = 1.047, V_b = 11, angle_0 = -0.316, forcePQ = true) annotation(
+ Placement(visible = true, transformation(origin = {-74, -32}, extent = {{-4, -4}, {4, 4}}, rotation = 0)));
+ OpenIPSL.Electrical.Loads.PSAT.LOADPQ LD5(P_0 = 3.00, Q_0 = 0.40, Sn = 100, V_0 = 1.039, V_b = 11, angle_0 = -0.527, forcePQ = true) annotation(
+ Placement(visible = true, transformation(origin = {-14, 10}, extent = {{-4, -4}, {4, 4}}, rotation = 90)));
+ OpenIPSL.Electrical.Loads.PSAT.LOADPQ LD6(P_0 = 2.00, Q_0 = -0.40, Sn = 100, V_0 = 1.044, V_b = 11, angle_0 = -0.497, forcePQ = true) annotation(
+ Placement(visible = true, transformation(origin = {-68, -76}, extent = {{-4, -4}, {4, 4}}, rotation = 0)));
+ OpenIPSL.Electrical.Loads.PSAT.LOADPQ LD7(P_0 = 1.50, Q_0 = 1.20, Sn = 100, V_0 = 1.044, V_b = 11, angle_0 = -0.480, forcePQ = true) annotation(
+ Placement(visible = true, transformation(origin = {-36, -88}, extent = {{-4, -4}, {4, 4}}, rotation = 0)));
+ OpenIPSL.Electrical.Loads.PSAT.LOADPQ LD8(P_0 = 4.00, Q_0 = 2.70, Sn = 100, V_0 = 1.033, V_b = 11, angle_0 = 0.085, forcePQ = true) annotation(
+ Placement(visible = true, transformation(origin = {6, -6}, extent = {{-4, -4}, {4, 4}}, rotation = 0)));
+ OpenIPSL.Electrical.Loads.PSAT.LOADPQ LD9(P_0 = 5.00, Q_0 = 1.80, Sn = 100, V_0 = 1.031, V_b = 11, angle_0 = -0.475, forcePQ = true) annotation(
+ Placement(visible = true, transformation(origin = {26, -46}, extent = {{-4, -4}, {4, 4}}, rotation = 0)));
+ OpenIPSL.Electrical.Loads.PSAT.LOADPQ LD10(P_0 = 1.00, Q_0 = 0.90, Sn = 100, V_0 = 1.033, V_b = 11, angle_0 = 0.253, forcePQ = true) annotation(
+ Placement(visible = true, transformation(origin = {40, -50}, extent = {{-4, -4}, {4, 4}}, rotation = 0)));
+ OpenIPSL.Electrical.Loads.PSAT.LOADPQ LD11(P_0 = 0.60, Q_0 = -0.50, Sn = 100, V_0 = 1.037, V_b = 11, angle_0 = -0.530, forcePQ = true) annotation(
+ Placement(visible = true, transformation(origin = {-6, -68}, extent = {{-4, -4}, {4, 4}}, rotation = 0)));
+ OpenIPSL.Electrical.Loads.PSAT.LOADPQ LD12(P_0 = 4.50, Q_0 = -1.70, Sn = 100, V_0 = 1.029, V_b = 11, angle_0 = -0.816, forcePQ = true) annotation(
+ Placement(visible = true, transformation(origin = {32, -80}, extent = {{-4, -4}, {4, 4}}, rotation = 90)));
+ OpenIPSL.Electrical.Loads.PSAT.LOADPQ LD13(P_0 = 1.00, Q_0 = 0.90, Sn = 100, V_0 = 1.034, V_b = 11, angle_0 = 0.613, forcePQ = true) annotation(
+ Placement(visible = true, transformation(origin = {66, -6}, extent = {{-4, -4}, {4, 4}}, rotation = 0)));
+ OpenIPSL.Electrical.Loads.PSAT.LOADPQ LD14(P_0 = 1.00, Q_0 = -1.10, Sn = 100, V_0 = 1.034, V_b = 11, angle_0 = 0.316, forcePQ = true) annotation(
+ Placement(visible = true, transformation(origin = {56, -18}, extent = {{-4, -4}, {4, 4}}, rotation = -90)));
+ OpenIPSL.Electrical.Loads.PSAT.LOADPQ LD15(P_0 = 1.00, Q_0 = 0.90, Sn = 100, V_0 = 1.042, V_b = 11, angle_0 = -0.096, forcePQ = true) annotation(
+ Placement(visible = true, transformation(origin = {92, -68}, extent = {{-4, -4}, {4, 4}}, rotation = 0)));
+ OpenIPSL.Electrical.Loads.PSAT.LOADPQ LD16(P_0 = 2.10, Q_0 = -0.80, Sn = 100, V_0 = 1.045, V_b = 11, angle_0 = -0.411, forcePQ = true) annotation(
+ Placement(visible = true, transformation(origin = {68, -92}, extent = {{-4, -4}, {4, 4}}, rotation = 90)));
+ OpenIPSL.Electrical.Buses.InfiniteBus infiniteBus(P_0 = 10.37, Q_0 = 12.19, V_0 = 1.060, V_b = 11, angle_0 = 0, displayPF = true) annotation(
+ Placement(visible = true, transformation(origin = {-60, 64}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
+ OpenIPSL.Electrical.Machines.PSAT.Order2 order2(D = 0.8, M = 2, P_0 = 10, Q_0 = 0, Sn = 100, V_0 = 1.045, V_b = 11, Vn = 11, angle_0 = 0.596, ra = 0, v(fixed = false), x1d = 0.01) annotation(
+ Placement(visible = true, transformation(origin = {14, 70}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
+ OpenIPSL.Electrical.Machines.PSAT.Order2 order21(D = 0.8, M = 2, P_0 = 10, Q_0 = 0, Sn = 100, V_0 = 1.010, V_b = 100, Vn = 11, angle_0 = 3.120, ra = 0, v(fixed = false), x1d = 0.01) annotation(
+ Placement(visible = true, transformation(origin = {70, 76}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
+ equation
+ connect(B1.p, L14.p) annotation(
+ Line(points = {{-60, 50}, {-60, 50}, {-60, 22}, {-60, 22}}, color = {0, 0, 255}));
+ connect(B4.p, L14.n) annotation(
+ Line(points = {{-62, -18}, {-60, -18}, {-60, 14}, {-60, 14}}, color = {0, 0, 255}));
+ connect(B4.p, L45.n) annotation(
+ Line(points = {{-62, -18}, {-56, -18}, {-56, -8}, {-42, -8}, {-42, -8}, {-42, -8}}, color = {0, 0, 255}));
+ connect(L46.p, B4.p) annotation(
+ Line(points = {{-60, -36}, {-60, -36}, {-60, -18}, {-62, -18}, {-62, -18}}, color = {0, 0, 255}));
+ connect(L46.n, B6.p) annotation(
+ Line(points = {{-60, -44}, {-60, -44}, {-60, -58}, {-62, -58}, {-62, -58}}, color = {0, 0, 255}));
+ connect(L67.p, B6.p) annotation(
+ Line(points = {{-48, -64}, {-62, -64}, {-62, -58}, {-62, -58}, {-62, -58}}, color = {0, 0, 255}));
+ connect(L67.n, B7.p) annotation(
+ Line(points = {{-40, -64}, {-26, -64}, {-26, -74}, {-26, -74}, {-26, -74}}, color = {0, 0, 255}));
+ connect(L28.p, B2.p) annotation(
+ Line(points = {{16, 30}, {16, 30}, {16, 50}, {14, 50}, {14, 50}}, color = {0, 0, 255}));
+ connect(L28.n, B8.p) annotation(
+ Line(points = {{16, 22}, {16, 22}, {16, 8}, {14, 8}, {14, 8}}, color = {0, 0, 255}));
+ connect(L89.p, B8.p) annotation(
+ Line(points = {{16, -12}, {16, -12}, {16, 8}, {14, 8}, {14, 8}}, color = {0, 0, 255}));
+ connect(L89.n, B9.p) annotation(
+ Line(points = {{16, -20}, {16, -20}, {16, -36}, {14, -36}, {14, -36}}, color = {0, 0, 255}));
+ connect(B8.p, L810.p) annotation(
+ Line(points = {{14, 8}, {20, 8}, {20, -4}, {42, -4}, {42, -12}}, color = {0, 0, 255}));
+ connect(L810.n, B10.p) annotation(
+ Line(points = {{42, -20}, {42, -34}, {46, -34}}, color = {0, 0, 255}));
+ connect(L911.p, B9.p) annotation(
+ Line(points = {{8, -42}, {14, -42}, {14, -36}, {14, -36}}, color = {0, 0, 255}));
+ connect(L911.n, B11.p) annotation(
+ Line(points = {{-2, -42}, {-6, -42}, {-6, -56}}, color = {0, 0, 255}));
+ connect(L912.p, B9.p) annotation(
+ Line(points = {{16, -56}, {14, -56}, {14, -36}, {14, -36}}, color = {0, 0, 255}));
+ connect(L912.n, B12.p) annotation(
+ Line(points = {{16, -66}, {16, -66}, {16, -78}, {16, -78}}, color = {0, 0, 255}));
+ connect(L313.p, B3.p) annotation(
+ Line(points = {{72, 30}, {72, 30}, {72, 50}, {72, 50}}, color = {0, 0, 255}));
+ connect(L313.n, B13.p) annotation(
+ Line(points = {{72, 22}, {72, 22}, {72, 6}, {72, 6}}, color = {0, 0, 255}));
+ connect(B13.p, L1314.p) annotation(
+ Line(points = {{72, 6}, {72, 0}, {80, 0}, {80, -8}}, color = {0, 0, 255}));
+ connect(L1314.n, B14.p) annotation(
+ Line(points = {{80, -16}, {80, -20}, {72, -20}}, color = {0, 0, 255}));
+ connect(L1315.n, B15.p) annotation(
+ Line(points = {{94, -16}, {94, -16}, {94, -42}, {80, -42}, {80, -52}, {80, -52}, {80, -52}}, color = {0, 0, 255}));
+ connect(L1315.p, B13.p) annotation(
+ Line(points = {{94, -8}, {94, -8}, {94, 2}, {72, 2}, {72, 6}, {72, 6}}, color = {0, 0, 255}));
+ connect(L1516.p, B15.p) annotation(
+ Line(points = {{72, -66}, {80, -66}, {80, -52}, {80, -52}}, color = {0, 0, 255}));
+ connect(L1516.n, B16.p) annotation(
+ Line(points = {{62, -66}, {54, -66}, {54, -82}, {54, -82}}, color = {0, 0, 255}));
+ connect(L511.n, B11.p) annotation(
+ Line(points = {{-14, -20}, {-14, -48}, {-6, -48}, {-6, -56}}, color = {0, 0, 255}));
+ connect(B10.p, L1014.p) annotation(
+ Line(points = {{46, -34}, {46, -40}, {58, -40}, {58, -35}}, color = {0, 0, 255}));
+ connect(L1014.n, B14.p) annotation(
+ Line(points = {{68, -34}, {70, -34}, {70, -20}, {72, -20}, {72, -20}, {72, -20}}, color = {0, 0, 255}));
+ connect(L716.p, B7.p) annotation(
+ Line(points = {{-6, -86}, {-28, -86}, {-28, -74}, {-26, -74}, {-26, -74}}, color = {0, 0, 255}));
+ connect(L716.n, B16.p) annotation(
+ Line(points = {{4, -86}, {54, -86}, {54, -82}, {54, -82}, {54, -82}}, color = {0, 0, 255}));
+ connect(LD4.p, B4.p) annotation(
+ Line(points = {{-74, -28}, {-74, -28}, {-74, -20}, {-62, -20}, {-62, -18}, {-62, -18}}, color = {0, 0, 255}));
+ connect(LD6.p, B6.p) annotation(
+ Line(points = {{-68, -72}, {-68, -72}, {-68, -60}, {-62, -60}, {-62, -58}, {-62, -58}}, color = {0, 0, 255}));
+ connect(LD7.p, B7.p) annotation(
+ Line(points = {{-36, -84}, {-36, -84}, {-36, -76}, {-26, -76}, {-26, -74}, {-26, -74}}, color = {0, 0, 255}));
+ connect(LD8.p, B8.p) annotation(
+ Line(points = {{6, -2}, {6, -2}, {6, 6}, {14, 6}, {14, 8}, {14, 8}}, color = {0, 0, 255}));
+ connect(LD9.p, B9.p) annotation(
+ Line(points = {{26, -42}, {26, -42}, {26, -38}, {14, -38}, {14, -36}, {14, -36}}, color = {0, 0, 255}));
+ connect(LD10.p, B10.p) annotation(
+ Line(points = {{40, -46}, {40, -38}, {46, -38}, {46, -34}}, color = {0, 0, 255}));
+ connect(LD11.p, B11.p) annotation(
+ Line(points = {{-6, -64}, {-6, -56}}, color = {0, 0, 255}));
+ connect(LD12.p, B12.p) annotation(
+ Line(points = {{28, -80}, {16, -80}, {16, -78}, {16, -78}, {16, -78}}, color = {0, 0, 255}));
+ connect(LD13.p, B13.p) annotation(
+ Line(points = {{66, -2}, {66, -2}, {66, 4}, {72, 4}, {72, 6}, {72, 6}}, color = {0, 0, 255}));
+ connect(LD14.p, B14.p) annotation(
+ Line(points = {{60, -18}, {70, -18}, {70, -20}, {72, -20}, {72, -20}}, color = {0, 0, 255}));
+ connect(LD15.p, B15.p) annotation(
+ Line(points = {{92, -64}, {92, -64}, {92, -54}, {80, -54}, {80, -52}, {80, -52}}, color = {0, 0, 255}));
+ connect(LD16.p, B16.p) annotation(
+ Line(points = {{64, -92}, {58, -92}, {58, -84}, {54, -84}, {54, -82}, {54, -82}}, color = {0, 0, 255}));
+ connect(infiniteBus.p, B1.p) annotation(
+ Line(points = {{-60, 54}, {-60, 50}}, color = {0, 0, 255}));
+ connect(LD5.p, B5.p) annotation(
+ Line(points = {{-18, 10}, {-30, 10}, {-30, 10}, {-30, 10}}, color = {0, 0, 255}));
+ connect(L45.p, B5.p) annotation(
+ Line(points = {{-42, 0}, {-42, 0}, {-42, 10}, {-30, 10}, {-30, 10}}, color = {0, 0, 255}));
+ connect(L511.p, B5.p) annotation(
+ Line(points = {{-14, -12}, {-14, -10}, {-28, -10}, {-28, 10}, {-30, 10}}, color = {0, 0, 255}));
+ connect(order2.p, B2.p) annotation(
+ Line(points = {{14, 60}, {14, 50}}, color = {0, 0, 255}));
+ connect(order21.pm, order21.pm0) annotation(
+ Line(points = {{64, 88}, {64, 88}, {64, 92}, {56, 92}, {56, 84}, {58, 84}, {58, 84}}, color = {0, 0, 127}));
+ connect(order21.vf, order21.vf0) annotation(
+ Line(points = {{76, 88}, {76, 88}, {76, 94}, {88, 94}, {88, 84}, {82, 84}, {82, 84}}, color = {0, 0, 127}));
+ connect(order21.p, B3.p) annotation(
+ Line(points = {{70, 66}, {70, 66}, {70, 50}, {72, 50}, {72, 50}}, color = {0, 0, 255}));
+ connect(order2.pm, order2.pm0) annotation(
+ Line(points = {{10, 82}, {8, 82}, {8, 90}, {-8, 90}, {-8, 78}, {4, 78}, {4, 78}}, color = {0, 0, 127}));
+ connect(order2.vf, order2.vf0) annotation(
+ Line(points = {{20, 82}, {22, 82}, {22, 92}, {26, 92}, {26, 78}, {26, 78}, {26, 78}}, color = {0, 0, 127}));
+ end SIXTEENBUS_NETWORK;
+ annotation(
+ uses(OpenIPSL(version = "1.5.0")));
+end MODELING_SIXTEEN_BUS_SYSTEM;
diff --git a/Contingency_Analysis_Of_16_Bus_System_Using_Openipsl_By_Mr_Ajin_Raj_D/project_files/REPORT.pdf b/Contingency_Analysis_Of_16_Bus_System_Using_Openipsl_By_Mr_Ajin_Raj_D/project_files/REPORT.pdf
new file mode 100644
index 0000000..8ed64ff
Binary files /dev/null and b/Contingency_Analysis_Of_16_Bus_System_Using_Openipsl_By_Mr_Ajin_Raj_D/project_files/REPORT.pdf differ
diff --git a/Contingency_Analysis_Of_16_Bus_System_Using_Openipsl_By_Mr_Ajin_Raj_D/proposal.pdf b/Contingency_Analysis_Of_16_Bus_System_Using_Openipsl_By_Mr_Ajin_Raj_D/proposal.pdf
new file mode 100644
index 0000000..4be611d
Binary files /dev/null and b/Contingency_Analysis_Of_16_Bus_System_Using_Openipsl_By_Mr_Ajin_Raj_D/proposal.pdf differ
diff --git a/Contingency_Analysis_Of_16_Bus_System_Using_Openmodelica_By_Mr_Ajin_Raj_D/README.txt b/Contingency_Analysis_Of_16_Bus_System_Using_Openmodelica_By_Mr_Ajin_Raj_D/README.txt
deleted file mode 100644
index 2f1cc07..0000000
--- a/Contingency_Analysis_Of_16_Bus_System_Using_Openmodelica_By_Mr_Ajin_Raj_D/README.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-About the Power System Simulation
-
-Title Of The Power System Simulation Project: Contingency Analysis of 16 bus system using OpenModelica
-Proposar Name: Mr Ajin Raj D
-University: St.xavier'S Catholic College Of Engineering
-
-
-OM PSSP Project By FOSSEE, IIT Bombay
diff --git a/Contingency_Analysis_Of_16_Bus_System_Using_Openmodelica_By_Mr_Ajin_Raj_D/project_files/MODELING_SIXTEEN_BUS_SYSTEM.mo b/Contingency_Analysis_Of_16_Bus_System_Using_Openmodelica_By_Mr_Ajin_Raj_D/project_files/MODELING_SIXTEEN_BUS_SYSTEM.mo
deleted file mode 100644
index 13ae501..0000000
--- a/Contingency_Analysis_Of_16_Bus_System_Using_Openmodelica_By_Mr_Ajin_Raj_D/project_files/MODELING_SIXTEEN_BUS_SYSTEM.mo
+++ /dev/null
@@ -1,209 +0,0 @@
-package MODELING_SIXTEEN_BUS_SYSTEM
- model SIXTEENBUS_NETWORK
- OpenIPSL.Electrical.Buses.Bus B1(P_0 = 10.37, Q_0 = 12.19, V_0 = 1.060, V_b = 11, angle_0 = 0, displayPF = true) annotation(
- Placement(visible = true, transformation(origin = {-60, 50}, extent = {{-4, -4}, {4, 4}}, rotation = -90)));
- OpenIPSL.Electrical.Buses.Bus B2(P_0 = 10, Q_0 = 0, V_0 = 1.045, V_b = 11, angle_0 = 0.596, displayPF = true) annotation(
- Placement(visible = true, transformation(origin = {14, 50}, extent = {{-4, -4}, {4, 4}}, rotation = -90)));
- OpenIPSL.Electrical.Buses.Bus B3(P_0 = 10, Q_0 = 0, V_0 = 1.010, V_b = 11, angle_0 = 3.120, displayPF = true) annotation(
- Placement(visible = true, transformation(origin = {72, 50}, extent = {{-4, -4}, {4, 4}}, rotation = -90)));
- OpenIPSL.Electrical.Buses.Bus B4(P_0 = 2.00, Q_0 = 1.60, V_0 = 1.047, V_b = 11, angle_0 = -0.316, displayPF = true) annotation(
- Placement(visible = true, transformation(origin = {-62, -18}, extent = {{-4, -4}, {4, 4}}, rotation = -90)));
- OpenIPSL.Electrical.Buses.Bus B5(P_0 = 3.00, Q_0 = 0.40, V_0 = 1.039, V_b = 11, angle_0 = -0.527, displayPF = true) annotation(
- Placement(visible = true, transformation(origin = {-30, 10}, extent = {{-4, -4}, {4, 4}}, rotation = 0)));
- OpenIPSL.Electrical.Buses.Bus B6(P_0 = 2.00, Q_0 = -0.40, V_0 = 1.044, V_b = 11, angle_0 = -0.497, displayPF = true) annotation(
- Placement(visible = true, transformation(origin = {-62, -58}, extent = {{-4, -4}, {4, 4}}, rotation = -90)));
- OpenIPSL.Electrical.Buses.Bus B7(P_0 = 1.50, Q_0 = 1.20, V_0 = 1.044, V_b = 11, angle_0 = -0.480, displayPF = true) annotation(
- Placement(visible = true, transformation(origin = {-26, -74}, extent = {{-4, -4}, {4, 4}}, rotation = -90)));
- OpenIPSL.Electrical.Buses.Bus B8(P_0 = 4.00, Q_0 = 2.70, V_0 = 1.033, V_b = 11, angle_0 = 0.085, displayPF = true) annotation(
- Placement(visible = true, transformation(origin = {14, 8}, extent = {{-4, -4}, {4, 4}}, rotation = -90)));
- OpenIPSL.Electrical.Buses.Bus B9(P_0 = 5.00, Q_0 = 1.80, V_0 = 1.031, V_b = 11, angle_0 = -0.475, displayPF = true) annotation(
- Placement(visible = true, transformation(origin = {14, -36}, extent = {{-4, -4}, {4, 4}}, rotation = -90)));
- OpenIPSL.Electrical.Buses.Bus B10(P_0 = 1.00, Q_0 = 0.90, V_0 = 1.033, V_b = 11, angle_0 = 0.253, displayPF = true) annotation(
- Placement(visible = true, transformation(origin = {45, -35}, extent = {{-5, -5}, {5, 5}}, rotation = -90)));
- OpenIPSL.Electrical.Buses.Bus B11(P_0 = 0.60, Q_0 = -0.50, V_0 = 1.037, V_b = 11, angle_0 = -0.530, displayPF = true) annotation(
- Placement(visible = true, transformation(origin = {-6, -56}, extent = {{-4, -4}, {4, 4}}, rotation = -90)));
- OpenIPSL.Electrical.Buses.Bus B12(P_0 = 4.50, Q_0 = -1.70, V_0 = 1.029, V_b = 11, angle_0 = -0.816, displayPF = true) annotation(
- Placement(visible = true, transformation(origin = {16, -78}, extent = {{-4, -4}, {4, 4}}, rotation = -90)));
- OpenIPSL.Electrical.Buses.Bus B13(P_0 = 1.00, Q_0 = 0.90, V_0 = 1.034, V_b = 11, angle_0 = 0.613, displayPF = true) annotation(
- Placement(visible = true, transformation(origin = {72, 6}, extent = {{-4, -4}, {4, 4}}, rotation = -90)));
- OpenIPSL.Electrical.Buses.Bus B14(P_0 = 1.00, Q_0 = -1.10, V_0 = 1.034, V_b = 11, angle_0 = 0.316, displayPF = true) annotation(
- Placement(visible = true, transformation(origin = {72, -20}, extent = {{-4, -4}, {4, 4}}, rotation = 180)));
- OpenIPSL.Electrical.Buses.Bus B15(P_0 = 1.00, Q_0 = 0.90, V_0 = 1.042, V_b = 11, angle_0 = 0.096, displayPF = true) annotation(
- Placement(visible = true, transformation(origin = {80, -52}, extent = {{-4, -4}, {4, 4}}, rotation = -90)));
- OpenIPSL.Electrical.Buses.Bus B16(P_0 = 2.10, Q_0 = -0.80, V(fixed = false), V_0 = 1.045, V_b = 11, angle(fixed = false), angle_0 = -0.411, displayPF = true) annotation(
- Placement(visible = true, transformation(origin = {54, -82}, extent = {{-4, -4}, {4, 4}}, rotation = -90)));
- inner OpenIPSL.Electrical.SystemBase sysData(S_b = 100, fn = 50) annotation(
- Placement(visible = true, transformation(origin = {-64, 91}, extent = {{-36, -9}, {36, 9}}, rotation = 0)));
- OpenIPSL.Electrical.Branches.PwLine L14(B = 0, G = 0, R = 0.075, X = 0.10, displayPF = true) annotation(
- Placement(visible = true, transformation(origin = {-60, 18}, extent = {{-4, -4}, {4, 4}}, rotation = -90)));
- OpenIPSL.Electrical.Branches.PwLine L45(B = 0, G = 0, R = 0.08, X = 0.11, displayPF = true) annotation(
- Placement(visible = true, transformation(origin = {-42, -4}, extent = {{-4, -4}, {4, 4}}, rotation = -90)));
- OpenIPSL.Electrical.Branches.PwLine L46(B = 0, G = 0, R = 0.09, X = 0.18, displayPF = true) annotation(
- Placement(visible = true, transformation(origin = {-60, -40}, extent = {{-4, 4}, {4, -4}}, rotation = -90)));
- OpenIPSL.Electrical.Branches.PwLine L67(B = 0, G = 0, R = 0.04, X = 0.04, displayPF = true) annotation(
- Placement(visible = true, transformation(origin = {-44, -64}, extent = {{-4, -4}, {4, 4}}, rotation = 0)));
- OpenIPSL.Electrical.Branches.PwLine L28(B = 0, G = 0, R = 0.11, X = 0.11, displayPF = true) annotation(
- Placement(visible = true, transformation(origin = {16, 26}, extent = {{-4, -4}, {4, 4}}, rotation = -90)));
- OpenIPSL.Electrical.Branches.PwLine L89(B = 0, G = 0, R = 0.08, X = 0.11, displayPF = true) annotation(
- Placement(visible = true, transformation(origin = {16, -16}, extent = {{-4, -4}, {4, 4}}, rotation = -90)));
- OpenIPSL.Electrical.Branches.PwLine L810(B = 0, G = 0, R = 0.11, X = 0.11, displayPF = true) annotation(
- Placement(visible = true, transformation(origin = {42, -16}, extent = {{-4, -4}, {4, 4}}, rotation = -90)));
- OpenIPSL.Electrical.Branches.PwLine L911(B = 0, G = 0, R = 0.11, X = 0.11, displayPF = true) annotation(
- Placement(visible = true, transformation(origin = {3, -43}, extent = {{-5, -5}, {5, 5}}, rotation = 180)));
- OpenIPSL.Electrical.Branches.PwLine L912(B = 0, G = 0, R = 0.08, X = 0.11, displayPF = true) annotation(
- Placement(visible = true, transformation(origin = {15, -61}, extent = {{-5, -5}, {5, 5}}, rotation = -90)));
- OpenIPSL.Electrical.Branches.PwLine L313(B = 0, G = 0, R = 0.11, X = 0.11, displayPF = true) annotation(
- Placement(visible = true, transformation(origin = {72, 26}, extent = {{-4, -4}, {4, 4}}, rotation = -90)));
- OpenIPSL.Electrical.Branches.PwLine L1314(B = 0, G = 0, R = 0.09, X = 0.12, displayPF = true) annotation(
- Placement(visible = true, transformation(origin = {80, -12}, extent = {{-4, 4}, {4, -4}}, rotation = -90)));
- OpenIPSL.Electrical.Branches.PwLine L1315(B = 0, G = 0, R = 0.08, X = 0.11, displayPF = true) annotation(
- Placement(visible = true, transformation(origin = {94, -12}, extent = {{-4, -4}, {4, 4}}, rotation = -90)));
- OpenIPSL.Electrical.Branches.PwLine L1516(B = 0, G = 0, R = 0.04, X = 0.04, displayPF = true) annotation(
- Placement(visible = true, transformation(origin = {67, -67}, extent = {{-5, -5}, {5, 5}}, rotation = 180)));
- OpenIPSL.Electrical.Branches.PwLine L511(B = 0, G = 0, R = 0.04, X = 0.04, displayPF = true, t1 = 15, t2 = 16) annotation(
- Placement(visible = true, transformation(origin = {-14, -16}, extent = {{-4, -4}, {4, 4}}, rotation = -90)));
- OpenIPSL.Electrical.Branches.PwLine L1014(B = 0, G = 0, R = 0.04, X = 0.04, displayPF = true) annotation(
- Placement(visible = true, transformation(origin = {63, -35}, extent = {{-5, -5}, {5, 5}}, rotation = 0)));
- OpenIPSL.Electrical.Branches.PwLine L716(B = 0, G = 0, R = 0.12, X = 0.12, displayPF = true) annotation(
- Placement(visible = true, transformation(origin = {-1, -87}, extent = {{-5, -5}, {5, 5}}, rotation = 0)));
- OpenIPSL.Electrical.Loads.PSAT.LOADPQ LD4(P_0 = 2.00, Q_0 = 1.60, Sn = 100, V_0 = 1.047, V_b = 11, angle_0 = -0.316, forcePQ = true) annotation(
- Placement(visible = true, transformation(origin = {-74, -32}, extent = {{-4, -4}, {4, 4}}, rotation = 0)));
- OpenIPSL.Electrical.Loads.PSAT.LOADPQ LD5(P_0 = 3.00, Q_0 = 0.40, Sn = 100, V_0 = 1.039, V_b = 11, angle_0 = -0.527, forcePQ = true) annotation(
- Placement(visible = true, transformation(origin = {-14, 10}, extent = {{-4, -4}, {4, 4}}, rotation = 90)));
- OpenIPSL.Electrical.Loads.PSAT.LOADPQ LD6(P_0 = 2.00, Q_0 = -0.40, Sn = 100, V_0 = 1.044, V_b = 11, angle_0 = -0.497, forcePQ = true) annotation(
- Placement(visible = true, transformation(origin = {-68, -76}, extent = {{-4, -4}, {4, 4}}, rotation = 0)));
- OpenIPSL.Electrical.Loads.PSAT.LOADPQ LD7(P_0 = 1.50, Q_0 = 1.20, Sn = 100, V_0 = 1.044, V_b = 11, angle_0 = -0.480, forcePQ = true) annotation(
- Placement(visible = true, transformation(origin = {-36, -88}, extent = {{-4, -4}, {4, 4}}, rotation = 0)));
- OpenIPSL.Electrical.Loads.PSAT.LOADPQ LD8(P_0 = 4.00, Q_0 = 2.70, Sn = 100, V_0 = 1.033, V_b = 11, angle_0 = 0.085, forcePQ = true) annotation(
- Placement(visible = true, transformation(origin = {6, -6}, extent = {{-4, -4}, {4, 4}}, rotation = 0)));
- OpenIPSL.Electrical.Loads.PSAT.LOADPQ LD9(P_0 = 5.00, Q_0 = 1.80, Sn = 100, V_0 = 1.031, V_b = 11, angle_0 = -0.475, forcePQ = true) annotation(
- Placement(visible = true, transformation(origin = {26, -46}, extent = {{-4, -4}, {4, 4}}, rotation = 0)));
- OpenIPSL.Electrical.Loads.PSAT.LOADPQ LD10(P_0 = 1.00, Q_0 = 0.90, Sn = 100, V_0 = 1.033, V_b = 11, angle_0 = 0.253, forcePQ = true) annotation(
- Placement(visible = true, transformation(origin = {40, -50}, extent = {{-4, -4}, {4, 4}}, rotation = 0)));
- OpenIPSL.Electrical.Loads.PSAT.LOADPQ LD11(P_0 = 0.60, Q_0 = -0.50, Sn = 100, V_0 = 1.037, V_b = 11, angle_0 = -0.530, forcePQ = true) annotation(
- Placement(visible = true, transformation(origin = {-6, -68}, extent = {{-4, -4}, {4, 4}}, rotation = 0)));
- OpenIPSL.Electrical.Loads.PSAT.LOADPQ LD12(P_0 = 4.50, Q_0 = -1.70, Sn = 100, V_0 = 1.029, V_b = 11, angle_0 = -0.816, forcePQ = true) annotation(
- Placement(visible = true, transformation(origin = {32, -80}, extent = {{-4, -4}, {4, 4}}, rotation = 90)));
- OpenIPSL.Electrical.Loads.PSAT.LOADPQ LD13(P_0 = 1.00, Q_0 = 0.90, Sn = 100, V_0 = 1.034, V_b = 11, angle_0 = 0.613, forcePQ = true) annotation(
- Placement(visible = true, transformation(origin = {66, -6}, extent = {{-4, -4}, {4, 4}}, rotation = 0)));
- OpenIPSL.Electrical.Loads.PSAT.LOADPQ LD14(P_0 = 1.00, Q_0 = -1.10, Sn = 100, V_0 = 1.034, V_b = 11, angle_0 = 0.316, forcePQ = true) annotation(
- Placement(visible = true, transformation(origin = {56, -18}, extent = {{-4, -4}, {4, 4}}, rotation = -90)));
- OpenIPSL.Electrical.Loads.PSAT.LOADPQ LD15(P_0 = 1.00, Q_0 = 0.90, Sn = 100, V_0 = 1.042, V_b = 11, angle_0 = -0.096, forcePQ = true) annotation(
- Placement(visible = true, transformation(origin = {92, -68}, extent = {{-4, -4}, {4, 4}}, rotation = 0)));
- OpenIPSL.Electrical.Loads.PSAT.LOADPQ LD16(P_0 = 2.10, Q_0 = -0.80, Sn = 100, V_0 = 1.045, V_b = 11, angle_0 = -0.411, forcePQ = true) annotation(
- Placement(visible = true, transformation(origin = {68, -92}, extent = {{-4, -4}, {4, 4}}, rotation = 90)));
- OpenIPSL.Electrical.Buses.InfiniteBus infiniteBus(P_0 = 10.37, Q_0 = 12.19, V_0 = 1.060, V_b = 11, angle_0 = 0, displayPF = true) annotation(
- Placement(visible = true, transformation(origin = {-60, 64}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
- OpenIPSL.Electrical.Machines.PSAT.Order2 order2(D = 0.8, M = 2, P_0 = 10, Q_0 = 0, Sn = 100, V_0 = 1.045, V_b = 11, Vn = 11, angle_0 = 0.596, ra = 0, v(fixed = false), x1d = 0.01) annotation(
- Placement(visible = true, transformation(origin = {14, 70}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
- OpenIPSL.Electrical.Machines.PSAT.Order2 order21(D = 0.8, M = 2, P_0 = 10, Q_0 = 0, Sn = 100, V_0 = 1.010, V_b = 100, Vn = 11, angle_0 = 3.120, ra = 0, v(fixed = false), x1d = 0.01) annotation(
- Placement(visible = true, transformation(origin = {70, 76}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
- equation
- connect(B1.p, L14.p) annotation(
- Line(points = {{-60, 50}, {-60, 50}, {-60, 22}, {-60, 22}}, color = {0, 0, 255}));
- connect(B4.p, L14.n) annotation(
- Line(points = {{-62, -18}, {-60, -18}, {-60, 14}, {-60, 14}}, color = {0, 0, 255}));
- connect(B4.p, L45.n) annotation(
- Line(points = {{-62, -18}, {-56, -18}, {-56, -8}, {-42, -8}, {-42, -8}, {-42, -8}}, color = {0, 0, 255}));
- connect(L46.p, B4.p) annotation(
- Line(points = {{-60, -36}, {-60, -36}, {-60, -18}, {-62, -18}, {-62, -18}}, color = {0, 0, 255}));
- connect(L46.n, B6.p) annotation(
- Line(points = {{-60, -44}, {-60, -44}, {-60, -58}, {-62, -58}, {-62, -58}}, color = {0, 0, 255}));
- connect(L67.p, B6.p) annotation(
- Line(points = {{-48, -64}, {-62, -64}, {-62, -58}, {-62, -58}, {-62, -58}}, color = {0, 0, 255}));
- connect(L67.n, B7.p) annotation(
- Line(points = {{-40, -64}, {-26, -64}, {-26, -74}, {-26, -74}, {-26, -74}}, color = {0, 0, 255}));
- connect(L28.p, B2.p) annotation(
- Line(points = {{16, 30}, {16, 30}, {16, 50}, {14, 50}, {14, 50}}, color = {0, 0, 255}));
- connect(L28.n, B8.p) annotation(
- Line(points = {{16, 22}, {16, 22}, {16, 8}, {14, 8}, {14, 8}}, color = {0, 0, 255}));
- connect(L89.p, B8.p) annotation(
- Line(points = {{16, -12}, {16, -12}, {16, 8}, {14, 8}, {14, 8}}, color = {0, 0, 255}));
- connect(L89.n, B9.p) annotation(
- Line(points = {{16, -20}, {16, -20}, {16, -36}, {14, -36}, {14, -36}}, color = {0, 0, 255}));
- connect(B8.p, L810.p) annotation(
- Line(points = {{14, 8}, {20, 8}, {20, -4}, {42, -4}, {42, -12}}, color = {0, 0, 255}));
- connect(L810.n, B10.p) annotation(
- Line(points = {{42, -20}, {42, -34}, {46, -34}}, color = {0, 0, 255}));
- connect(L911.p, B9.p) annotation(
- Line(points = {{8, -42}, {14, -42}, {14, -36}, {14, -36}}, color = {0, 0, 255}));
- connect(L911.n, B11.p) annotation(
- Line(points = {{-2, -42}, {-6, -42}, {-6, -56}}, color = {0, 0, 255}));
- connect(L912.p, B9.p) annotation(
- Line(points = {{16, -56}, {14, -56}, {14, -36}, {14, -36}}, color = {0, 0, 255}));
- connect(L912.n, B12.p) annotation(
- Line(points = {{16, -66}, {16, -66}, {16, -78}, {16, -78}}, color = {0, 0, 255}));
- connect(L313.p, B3.p) annotation(
- Line(points = {{72, 30}, {72, 30}, {72, 50}, {72, 50}}, color = {0, 0, 255}));
- connect(L313.n, B13.p) annotation(
- Line(points = {{72, 22}, {72, 22}, {72, 6}, {72, 6}}, color = {0, 0, 255}));
- connect(B13.p, L1314.p) annotation(
- Line(points = {{72, 6}, {72, 0}, {80, 0}, {80, -8}}, color = {0, 0, 255}));
- connect(L1314.n, B14.p) annotation(
- Line(points = {{80, -16}, {80, -20}, {72, -20}}, color = {0, 0, 255}));
- connect(L1315.n, B15.p) annotation(
- Line(points = {{94, -16}, {94, -16}, {94, -42}, {80, -42}, {80, -52}, {80, -52}, {80, -52}}, color = {0, 0, 255}));
- connect(L1315.p, B13.p) annotation(
- Line(points = {{94, -8}, {94, -8}, {94, 2}, {72, 2}, {72, 6}, {72, 6}}, color = {0, 0, 255}));
- connect(L1516.p, B15.p) annotation(
- Line(points = {{72, -66}, {80, -66}, {80, -52}, {80, -52}}, color = {0, 0, 255}));
- connect(L1516.n, B16.p) annotation(
- Line(points = {{62, -66}, {54, -66}, {54, -82}, {54, -82}}, color = {0, 0, 255}));
- connect(L511.n, B11.p) annotation(
- Line(points = {{-14, -20}, {-14, -48}, {-6, -48}, {-6, -56}}, color = {0, 0, 255}));
- connect(B10.p, L1014.p) annotation(
- Line(points = {{46, -34}, {46, -40}, {58, -40}, {58, -35}}, color = {0, 0, 255}));
- connect(L1014.n, B14.p) annotation(
- Line(points = {{68, -34}, {70, -34}, {70, -20}, {72, -20}, {72, -20}, {72, -20}}, color = {0, 0, 255}));
- connect(L716.p, B7.p) annotation(
- Line(points = {{-6, -86}, {-28, -86}, {-28, -74}, {-26, -74}, {-26, -74}}, color = {0, 0, 255}));
- connect(L716.n, B16.p) annotation(
- Line(points = {{4, -86}, {54, -86}, {54, -82}, {54, -82}, {54, -82}}, color = {0, 0, 255}));
- connect(LD4.p, B4.p) annotation(
- Line(points = {{-74, -28}, {-74, -28}, {-74, -20}, {-62, -20}, {-62, -18}, {-62, -18}}, color = {0, 0, 255}));
- connect(LD6.p, B6.p) annotation(
- Line(points = {{-68, -72}, {-68, -72}, {-68, -60}, {-62, -60}, {-62, -58}, {-62, -58}}, color = {0, 0, 255}));
- connect(LD7.p, B7.p) annotation(
- Line(points = {{-36, -84}, {-36, -84}, {-36, -76}, {-26, -76}, {-26, -74}, {-26, -74}}, color = {0, 0, 255}));
- connect(LD8.p, B8.p) annotation(
- Line(points = {{6, -2}, {6, -2}, {6, 6}, {14, 6}, {14, 8}, {14, 8}}, color = {0, 0, 255}));
- connect(LD9.p, B9.p) annotation(
- Line(points = {{26, -42}, {26, -42}, {26, -38}, {14, -38}, {14, -36}, {14, -36}}, color = {0, 0, 255}));
- connect(LD10.p, B10.p) annotation(
- Line(points = {{40, -46}, {40, -38}, {46, -38}, {46, -34}}, color = {0, 0, 255}));
- connect(LD11.p, B11.p) annotation(
- Line(points = {{-6, -64}, {-6, -56}}, color = {0, 0, 255}));
- connect(LD12.p, B12.p) annotation(
- Line(points = {{28, -80}, {16, -80}, {16, -78}, {16, -78}, {16, -78}}, color = {0, 0, 255}));
- connect(LD13.p, B13.p) annotation(
- Line(points = {{66, -2}, {66, -2}, {66, 4}, {72, 4}, {72, 6}, {72, 6}}, color = {0, 0, 255}));
- connect(LD14.p, B14.p) annotation(
- Line(points = {{60, -18}, {70, -18}, {70, -20}, {72, -20}, {72, -20}}, color = {0, 0, 255}));
- connect(LD15.p, B15.p) annotation(
- Line(points = {{92, -64}, {92, -64}, {92, -54}, {80, -54}, {80, -52}, {80, -52}}, color = {0, 0, 255}));
- connect(LD16.p, B16.p) annotation(
- Line(points = {{64, -92}, {58, -92}, {58, -84}, {54, -84}, {54, -82}, {54, -82}}, color = {0, 0, 255}));
- connect(infiniteBus.p, B1.p) annotation(
- Line(points = {{-60, 54}, {-60, 50}}, color = {0, 0, 255}));
- connect(LD5.p, B5.p) annotation(
- Line(points = {{-18, 10}, {-30, 10}, {-30, 10}, {-30, 10}}, color = {0, 0, 255}));
- connect(L45.p, B5.p) annotation(
- Line(points = {{-42, 0}, {-42, 0}, {-42, 10}, {-30, 10}, {-30, 10}}, color = {0, 0, 255}));
- connect(L511.p, B5.p) annotation(
- Line(points = {{-14, -12}, {-14, -10}, {-28, -10}, {-28, 10}, {-30, 10}}, color = {0, 0, 255}));
- connect(order2.p, B2.p) annotation(
- Line(points = {{14, 60}, {14, 50}}, color = {0, 0, 255}));
- connect(order21.pm, order21.pm0) annotation(
- Line(points = {{64, 88}, {64, 88}, {64, 92}, {56, 92}, {56, 84}, {58, 84}, {58, 84}}, color = {0, 0, 127}));
- connect(order21.vf, order21.vf0) annotation(
- Line(points = {{76, 88}, {76, 88}, {76, 94}, {88, 94}, {88, 84}, {82, 84}, {82, 84}}, color = {0, 0, 127}));
- connect(order21.p, B3.p) annotation(
- Line(points = {{70, 66}, {70, 66}, {70, 50}, {72, 50}, {72, 50}}, color = {0, 0, 255}));
- connect(order2.pm, order2.pm0) annotation(
- Line(points = {{10, 82}, {8, 82}, {8, 90}, {-8, 90}, {-8, 78}, {4, 78}, {4, 78}}, color = {0, 0, 127}));
- connect(order2.vf, order2.vf0) annotation(
- Line(points = {{20, 82}, {22, 82}, {22, 92}, {26, 92}, {26, 78}, {26, 78}, {26, 78}}, color = {0, 0, 127}));
- end SIXTEENBUS_NETWORK;
- annotation(
- uses(OpenIPSL(version = "1.5.0")));
-end MODELING_SIXTEEN_BUS_SYSTEM;
diff --git a/Contingency_Analysis_Of_16_Bus_System_Using_Openmodelica_By_Mr_Ajin_Raj_D/project_files/REPORT.pdf b/Contingency_Analysis_Of_16_Bus_System_Using_Openmodelica_By_Mr_Ajin_Raj_D/project_files/REPORT.pdf
deleted file mode 100644
index 8ed64ff..0000000
Binary files a/Contingency_Analysis_Of_16_Bus_System_Using_Openmodelica_By_Mr_Ajin_Raj_D/project_files/REPORT.pdf and /dev/null differ
diff --git a/Contingency_Analysis_Of_16_Bus_System_Using_Openmodelica_By_Mr_Ajin_Raj_D/proposal.pdf b/Contingency_Analysis_Of_16_Bus_System_Using_Openmodelica_By_Mr_Ajin_Raj_D/proposal.pdf
deleted file mode 100644
index 4be611d..0000000
Binary files a/Contingency_Analysis_Of_16_Bus_System_Using_Openmodelica_By_Mr_Ajin_Raj_D/proposal.pdf and /dev/null differ
diff --git a/Dynamic_Study_Of_69_Bus_Radial_Networks_With_Dg_Using_Openipsl_By_Mr_Aritra_Banerjee/README.txt b/Dynamic_Study_Of_69_Bus_Radial_Networks_With_Dg_Using_Openipsl_By_Mr_Aritra_Banerjee/README.txt
new file mode 100644
index 0000000..9237279
--- /dev/null
+++ b/Dynamic_Study_Of_69_Bus_Radial_Networks_With_Dg_Using_Openipsl_By_Mr_Aritra_Banerjee/README.txt
@@ -0,0 +1,8 @@
+About the Power System Simulation
+
+Title Of The Power System Simulation Project: Dynamic Study of 69 Bus Radial Networks with DG using OpenModelica and OpenIPSL
+Proposar Name: Mr Aritra Banerjee
+University: Meghnad Saha Institute of Technology
+
+
+OM PSSP Project By FOSSEE, IIT Bombay
diff --git a/Dynamic_Study_Of_69_Bus_Radial_Networks_With_Dg_Using_Openipsl_By_Mr_Aritra_Banerjee/abstract_om.pdf b/Dynamic_Study_Of_69_Bus_Radial_Networks_With_Dg_Using_Openipsl_By_Mr_Aritra_Banerjee/abstract_om.pdf
new file mode 100644
index 0000000..4fa1a95
Binary files /dev/null and b/Dynamic_Study_Of_69_Bus_Radial_Networks_With_Dg_Using_Openipsl_By_Mr_Aritra_Banerjee/abstract_om.pdf differ
diff --git a/Dynamic_Study_Of_69_Bus_Radial_Networks_With_Dg_Using_Openipsl_By_Mr_Aritra_Banerjee/project_files/abstract_om1.pdf b/Dynamic_Study_Of_69_Bus_Radial_Networks_With_Dg_Using_Openipsl_By_Mr_Aritra_Banerjee/project_files/abstract_om1.pdf
new file mode 100644
index 0000000..4a30f46
Binary files /dev/null and b/Dynamic_Study_Of_69_Bus_Radial_Networks_With_Dg_Using_Openipsl_By_Mr_Aritra_Banerjee/project_files/abstract_om1.pdf differ
diff --git a/Dynamic_Study_Of_69_Bus_Radial_Networks_With_Dg_Using_Openipsl_By_Mr_Aritra_Banerjee/project_files/modelmo.zip b/Dynamic_Study_Of_69_Bus_Radial_Networks_With_Dg_Using_Openipsl_By_Mr_Aritra_Banerjee/project_files/modelmo.zip
new file mode 100644
index 0000000..39436c9
Binary files /dev/null and b/Dynamic_Study_Of_69_Bus_Radial_Networks_With_Dg_Using_Openipsl_By_Mr_Aritra_Banerjee/project_files/modelmo.zip differ
diff --git a/Dynamic_Study_Of_69_Bus_Radial_Networks_With_Dg_Using_Openmodelica_And_Openipsl_By_Mr_Aritra_Banerjee/abstract_om.pdf b/Dynamic_Study_Of_69_Bus_Radial_Networks_With_Dg_Using_Openmodelica_And_Openipsl_By_Mr_Aritra_Banerjee/abstract_om.pdf
deleted file mode 100644
index 4fa1a95..0000000
Binary files a/Dynamic_Study_Of_69_Bus_Radial_Networks_With_Dg_Using_Openmodelica_And_Openipsl_By_Mr_Aritra_Banerjee/abstract_om.pdf and /dev/null differ
diff --git a/Dynamic_Study_On_Wind_Farm_Modeling_By_Using_Openmodelica_And_Openipsl_By_Mr_Gandra_Mahesh/Abstract_Dynamic.pdf b/Dynamic_Study_On_Wind_Farm_Modeling_By_Using_Openmodelica_And_Openipsl_By_Mr_Gandra_Mahesh/Abstract_Dynamic.pdf
deleted file mode 100644
index cc23a97..0000000
Binary files a/Dynamic_Study_On_Wind_Farm_Modeling_By_Using_Openmodelica_And_Openipsl_By_Mr_Gandra_Mahesh/Abstract_Dynamic.pdf and /dev/null differ
diff --git a/Dynamic_Study_On_Wind_Farm_Modeling_By_Using_Openmodelica_And_Openipsl_By_Mr_Gandra_Mahesh/README.txt b/Dynamic_Study_On_Wind_Farm_Modeling_By_Using_Openmodelica_And_Openipsl_By_Mr_Gandra_Mahesh/README.txt
deleted file mode 100644
index fbb5ca8..0000000
--- a/Dynamic_Study_On_Wind_Farm_Modeling_By_Using_Openmodelica_And_Openipsl_By_Mr_Gandra_Mahesh/README.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-About the Power System Simulation
-
-Title Of The Power System Simulation Project: Dynamic Study on Wind Farm Modeling by Using OpenModelica and OpenIPSL
-Proposar Name: Mr Gandra Mahesh
-University: Sir C R Reddy College Of Engineering
-
-
-OM PSSP Project By FOSSEE, IIT Bombay
diff --git a/Dynamic_Study_On_Wind_Farm_Modeling_By_Using_Openmodelica_And_Openipsl_By_Mr_Gandra_Mahesh/project_files/Abstract.pdf b/Dynamic_Study_On_Wind_Farm_Modeling_By_Using_Openmodelica_And_Openipsl_By_Mr_Gandra_Mahesh/project_files/Abstract.pdf
deleted file mode 100644
index ea167ba..0000000
Binary files a/Dynamic_Study_On_Wind_Farm_Modeling_By_Using_Openmodelica_And_Openipsl_By_Mr_Gandra_Mahesh/project_files/Abstract.pdf and /dev/null differ
diff --git a/Dynamic_Study_On_Wind_Farm_Modeling_By_Using_Openmodelica_And_Openipsl_By_Mr_Gandra_Mahesh/project_files/Dynamic_Study_On_Windfarm.zip b/Dynamic_Study_On_Wind_Farm_Modeling_By_Using_Openmodelica_And_Openipsl_By_Mr_Gandra_Mahesh/project_files/Dynamic_Study_On_Windfarm.zip
deleted file mode 100644
index 8ba860f..0000000
Binary files a/Dynamic_Study_On_Wind_Farm_Modeling_By_Using_Openmodelica_And_Openipsl_By_Mr_Gandra_Mahesh/project_files/Dynamic_Study_On_Windfarm.zip and /dev/null differ
diff --git a/Dynamic_Study_On_Wind_Farm_Modelling_By_Using_Openipsl_By_Mr_Gandra_Mahesh/Abstract_Dynamic.pdf b/Dynamic_Study_On_Wind_Farm_Modelling_By_Using_Openipsl_By_Mr_Gandra_Mahesh/Abstract_Dynamic.pdf
new file mode 100644
index 0000000..cc23a97
Binary files /dev/null and b/Dynamic_Study_On_Wind_Farm_Modelling_By_Using_Openipsl_By_Mr_Gandra_Mahesh/Abstract_Dynamic.pdf differ
diff --git a/Dynamic_Study_On_Wind_Farm_Modelling_By_Using_Openipsl_By_Mr_Gandra_Mahesh/README.txt b/Dynamic_Study_On_Wind_Farm_Modelling_By_Using_Openipsl_By_Mr_Gandra_Mahesh/README.txt
new file mode 100644
index 0000000..fbb5ca8
--- /dev/null
+++ b/Dynamic_Study_On_Wind_Farm_Modelling_By_Using_Openipsl_By_Mr_Gandra_Mahesh/README.txt
@@ -0,0 +1,8 @@
+About the Power System Simulation
+
+Title Of The Power System Simulation Project: Dynamic Study on Wind Farm Modeling by Using OpenModelica and OpenIPSL
+Proposar Name: Mr Gandra Mahesh
+University: Sir C R Reddy College Of Engineering
+
+
+OM PSSP Project By FOSSEE, IIT Bombay
diff --git a/Dynamic_Study_On_Wind_Farm_Modelling_By_Using_Openipsl_By_Mr_Gandra_Mahesh/project_files/Abstract.pdf b/Dynamic_Study_On_Wind_Farm_Modelling_By_Using_Openipsl_By_Mr_Gandra_Mahesh/project_files/Abstract.pdf
new file mode 100644
index 0000000..ea167ba
Binary files /dev/null and b/Dynamic_Study_On_Wind_Farm_Modelling_By_Using_Openipsl_By_Mr_Gandra_Mahesh/project_files/Abstract.pdf differ
diff --git a/Dynamic_Study_On_Wind_Farm_Modelling_By_Using_Openipsl_By_Mr_Gandra_Mahesh/project_files/Dynamic_Study_On_Windfarm.zip b/Dynamic_Study_On_Wind_Farm_Modelling_By_Using_Openipsl_By_Mr_Gandra_Mahesh/project_files/Dynamic_Study_On_Windfarm.zip
new file mode 100644
index 0000000..8ba860f
Binary files /dev/null and b/Dynamic_Study_On_Wind_Farm_Modelling_By_Using_Openipsl_By_Mr_Gandra_Mahesh/project_files/Dynamic_Study_On_Windfarm.zip differ
diff --git a/Fault_Analysis_Of_33_Bus_Distribution_System_Using_Openipsl_By_Ms_R.abhisha,_R.rabecca_And_S.selsiya/Abstract.pdf b/Fault_Analysis_Of_33_Bus_Distribution_System_Using_Openipsl_By_Ms_R.abhisha,_R.rabecca_And_S.selsiya/Abstract.pdf
new file mode 100644
index 0000000..2104e67
Binary files /dev/null and b/Fault_Analysis_Of_33_Bus_Distribution_System_Using_Openipsl_By_Ms_R.abhisha,_R.rabecca_And_S.selsiya/Abstract.pdf differ
diff --git a/Fault_Analysis_Of_33_Bus_Distribution_System_Using_Openipsl_By_Ms_R.abhisha,_R.rabecca_And_S.selsiya/README.txt b/Fault_Analysis_Of_33_Bus_Distribution_System_Using_Openipsl_By_Ms_R.abhisha,_R.rabecca_And_S.selsiya/README.txt
new file mode 100644
index 0000000..7732fd3
--- /dev/null
+++ b/Fault_Analysis_Of_33_Bus_Distribution_System_Using_Openipsl_By_Ms_R.abhisha,_R.rabecca_And_S.selsiya/README.txt
@@ -0,0 +1,8 @@
+About the Power System Simulation
+
+Title Of The Power System Simulation Project: Fault analysis of 33 bus distribution system using OpenModelica and OpenIPSL
+Proposar Name: Ms R.abhisha, R.rabecca And S.selsiya
+University: St.xavier’s Catholic College Of Engineering
+
+
+OM PSSP Project By FOSSEE, IIT Bombay
diff --git a/Fault_Analysis_Of_33_Bus_Distribution_System_Using_Openipsl_By_Ms_R.abhisha,_R.rabecca_And_S.selsiya/project_files/Project.zip b/Fault_Analysis_Of_33_Bus_Distribution_System_Using_Openipsl_By_Ms_R.abhisha,_R.rabecca_And_S.selsiya/project_files/Project.zip
new file mode 100644
index 0000000..7140459
Binary files /dev/null and b/Fault_Analysis_Of_33_Bus_Distribution_System_Using_Openipsl_By_Ms_R.abhisha,_R.rabecca_And_S.selsiya/project_files/Project.zip differ
diff --git a/Fault_Analysis_Of_33_Bus_Distribution_System_Using_Openipsl_By_Ms_R.abhisha,_R.rabecca_And_S.selsiya/project_files/Report.pdf b/Fault_Analysis_Of_33_Bus_Distribution_System_Using_Openipsl_By_Ms_R.abhisha,_R.rabecca_And_S.selsiya/project_files/Report.pdf
new file mode 100644
index 0000000..cdedaec
Binary files /dev/null and b/Fault_Analysis_Of_33_Bus_Distribution_System_Using_Openipsl_By_Ms_R.abhisha,_R.rabecca_And_S.selsiya/project_files/Report.pdf differ
diff --git a/Fault_Analysis_Of_33_Bus_Distribution_System_Using_Openmodelica_And_Openipsl_By_Ms_R.abhisha,_R.rabecca_And_S.selsiya/Abstract.pdf b/Fault_Analysis_Of_33_Bus_Distribution_System_Using_Openmodelica_And_Openipsl_By_Ms_R.abhisha,_R.rabecca_And_S.selsiya/Abstract.pdf
deleted file mode 100644
index 2104e67..0000000
Binary files a/Fault_Analysis_Of_33_Bus_Distribution_System_Using_Openmodelica_And_Openipsl_By_Ms_R.abhisha,_R.rabecca_And_S.selsiya/Abstract.pdf and /dev/null differ
diff --git a/Fault_Analysis_Of_33_Bus_Distribution_System_Using_Openmodelica_And_Openipsl_By_Ms_R.abhisha,_R.rabecca_And_S.selsiya/README.txt b/Fault_Analysis_Of_33_Bus_Distribution_System_Using_Openmodelica_And_Openipsl_By_Ms_R.abhisha,_R.rabecca_And_S.selsiya/README.txt
deleted file mode 100644
index 7732fd3..0000000
--- a/Fault_Analysis_Of_33_Bus_Distribution_System_Using_Openmodelica_And_Openipsl_By_Ms_R.abhisha,_R.rabecca_And_S.selsiya/README.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-About the Power System Simulation
-
-Title Of The Power System Simulation Project: Fault analysis of 33 bus distribution system using OpenModelica and OpenIPSL
-Proposar Name: Ms R.abhisha, R.rabecca And S.selsiya
-University: St.xavier’s Catholic College Of Engineering
-
-
-OM PSSP Project By FOSSEE, IIT Bombay
diff --git a/Fault_Analysis_Of_33_Bus_Distribution_System_Using_Openmodelica_And_Openipsl_By_Ms_R.abhisha,_R.rabecca_And_S.selsiya/project_files/Project.zip b/Fault_Analysis_Of_33_Bus_Distribution_System_Using_Openmodelica_And_Openipsl_By_Ms_R.abhisha,_R.rabecca_And_S.selsiya/project_files/Project.zip
deleted file mode 100644
index 7140459..0000000
Binary files a/Fault_Analysis_Of_33_Bus_Distribution_System_Using_Openmodelica_And_Openipsl_By_Ms_R.abhisha,_R.rabecca_And_S.selsiya/project_files/Project.zip and /dev/null differ
diff --git a/Fault_Analysis_Of_33_Bus_Distribution_System_Using_Openmodelica_And_Openipsl_By_Ms_R.abhisha,_R.rabecca_And_S.selsiya/project_files/Report.pdf b/Fault_Analysis_Of_33_Bus_Distribution_System_Using_Openmodelica_And_Openipsl_By_Ms_R.abhisha,_R.rabecca_And_S.selsiya/project_files/Report.pdf
deleted file mode 100644
index cdedaec..0000000
Binary files a/Fault_Analysis_Of_33_Bus_Distribution_System_Using_Openmodelica_And_Openipsl_By_Ms_R.abhisha,_R.rabecca_And_S.selsiya/project_files/Report.pdf and /dev/null differ
diff --git a/Fault_Analysis_Of_39_Bus_Power_System_Using_Openipsl_By_Mr_R.asick/Abstract.pdf b/Fault_Analysis_Of_39_Bus_Power_System_Using_Openipsl_By_Mr_R.asick/Abstract.pdf
new file mode 100644
index 0000000..f71056d
Binary files /dev/null and b/Fault_Analysis_Of_39_Bus_Power_System_Using_Openipsl_By_Mr_R.asick/Abstract.pdf differ
diff --git a/Fault_Analysis_Of_39_Bus_Power_System_Using_Openmodelica_Openipsl_By_Mr_R.asick/Abstract.pdf b/Fault_Analysis_Of_39_Bus_Power_System_Using_Openmodelica_Openipsl_By_Mr_R.asick/Abstract.pdf
deleted file mode 100644
index f71056d..0000000
Binary files a/Fault_Analysis_Of_39_Bus_Power_System_Using_Openmodelica_Openipsl_By_Mr_R.asick/Abstract.pdf and /dev/null differ
diff --git a/Ieee14_Bus_System_Implementation_In_Modelica_Using_The_Openipsl_By_Prof_Prof._Luigi_Vanfretti/IEEE14_bus_system_implementation_in_Modelica_using_the_OpenIPSL.pdf b/Ieee14_Bus_System_Implementation_In_Modelica_Using_The_Openipsl_By_Prof_Prof._Luigi_Vanfretti/IEEE14_bus_system_implementation_in_Modelica_using_the_OpenIPSL.pdf
deleted file mode 100644
index 0f64d15..0000000
Binary files a/Ieee14_Bus_System_Implementation_In_Modelica_Using_The_Openipsl_By_Prof_Prof._Luigi_Vanfretti/IEEE14_bus_system_implementation_in_Modelica_using_the_OpenIPSL.pdf and /dev/null differ
diff --git a/Ieee14_Bus_System_Implementation_In_Modelica_Using_The_Openipsl_By_Prof_Prof._Luigi_Vanfretti/README.txt b/Ieee14_Bus_System_Implementation_In_Modelica_Using_The_Openipsl_By_Prof_Prof._Luigi_Vanfretti/README.txt
deleted file mode 100644
index 5fa86c1..0000000
--- a/Ieee14_Bus_System_Implementation_In_Modelica_Using_The_Openipsl_By_Prof_Prof._Luigi_Vanfretti/README.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-About the Power System Simulation
-
-Title Of The Power System Simulation Project: IEEE14 bus system implementation in Modelica using the OpenIPSL
-Proposar Name: Prof Luigi Vanfretti
-University: rensselaer Polytechnic Institute
-
-
-OM PSSP Project By FOSSEE, IIT Bombay
diff --git a/Ieee14_Bus_System_Implementation_In_Modelica_Using_The_Openipsl_By_Prof_Prof._Luigi_Vanfretti/project_files/IEEE14Bus.mo b/Ieee14_Bus_System_Implementation_In_Modelica_Using_The_Openipsl_By_Prof_Prof._Luigi_Vanfretti/project_files/IEEE14Bus.mo
deleted file mode 100644
index 90c8c7d..0000000
--- a/Ieee14_Bus_System_Implementation_In_Modelica_Using_The_Openipsl_By_Prof_Prof._Luigi_Vanfretti/project_files/IEEE14Bus.mo
+++ /dev/null
@@ -1,1204 +0,0 @@
-package IEEE14Bus
- class Copyright "Disclaimer
-
OpenIPSL:
-Copyright August 2017 - Prof. Luigi Vanfretti, Rensselaer Polytechnic Institute, Troy, NY.
-Copyright April 2016 - July 2017 SmarTS Lab (Sweden)
-
-The authors can be contacted by email: luigi.vanfretti@gmail.com
-This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0.
-If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0.
-
-iPSL:
-Copyright 2015-2016 RTE (France), SmarTS Lab (Sweden), AIA (Spain) and DTU (Denmark)
-
-The authors can be contacted by email: info@itesla-ipsl.org
-
-This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0.
-If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0.
-"
-
- annotation (
- preferredView="info",
- DocumentationClass=false,
- Icon(graphics={
- Text(
- extent={{-100,140},{100,100}},
- lineColor={0,127,0},
- textString="%name%"),
- Ellipse(
- extent={{-100,100},{100,-100}},
- lineColor={0,127,0},
- fillColor={255,255,255},
- fillPattern=FillPattern.Solid),
- Ellipse(
- extent={{-60,60},{60,-60}},
- lineColor={0,127,72},
- fillColor={0,127,0},
- fillPattern=FillPattern.Solid),
- Ellipse(
- extent={{-40,40},{40,-40}},
- lineColor={255,255,255},
- fillColor={255,255,255},
- fillPattern=FillPattern.Solid),
- Rectangle(
- extent={{28,22},{64,-20}},
- lineColor={255,255,255},
- fillColor={255,255,255},
- fillPattern=FillPattern.Solid)}),
- Documentation);
- end Copyright;
-
- model IEEE_14_Buses
- import Modelica.Constants.pi;
- OpenIPSL.Electrical.Buses.Bus B1(
- V_b=69,
- V_0=1.06,
- angle_0=0) annotation (Placement(transformation(
- extent={{-15,-15},{15,15}},
- rotation=90,
- origin={-135,-31})));
- OpenIPSL.Electrical.Buses.Bus B2(
- V_b=69,
- V_0=1.045,
- angle_0=-7.7738) annotation (Placement(transformation(
- extent={{-15,-15},{15,15}},
- rotation=90,
- origin={-60,-128})));
- OpenIPSL.Electrical.Buses.Bus B3(
- V_b=69,
- V_0=1.01,
- angle_0=-19.0293) annotation (Placement(transformation(
- extent={{-15,-15},{15,15}},
- rotation=90,
- origin={44,-122})));
- OpenIPSL.Electrical.Buses.Bus B4(
- V_b=69,
- V_0=0.99782,
- angle_0=-15.1497) annotation (Placement(transformation(
- extent={{-15,-15},{15,15}},
- rotation=90,
- origin={32,-32})));
- OpenIPSL.Electrical.Buses.Bus B5(
- V_b=69,
- V_0=1.0029,
- angle_0=-13.0033) annotation (Placement(transformation(
- extent={{-15,-15},{15,15}},
- rotation=90,
- origin={-24,-40})));
- OpenIPSL.Electrical.Buses.Bus B6(
- V_b=13.8,
- V_0=1.07,
- angle_0=-21.1744) annotation (Placement(transformation(
- extent={{-15,-15},{15,15}},
- rotation=90,
- origin={-47,19})));
- OpenIPSL.Electrical.Buses.Bus B7(
- V_0=1.09,
- angle_0=-19.445,
- V_b=13.8) annotation (Placement(transformation(
- extent={{-15,-15},{15,15}},
- rotation=90,
- origin={91,1})));
- OpenIPSL.Electrical.Buses.Bus B8(
- V_0=1.09,
- angle_0=-19.445,
- V_b=18) annotation (Placement(transformation(
- extent={{-15,-15},{15,15}},
- rotation=180,
- origin={149,-37})));
- OpenIPSL.Electrical.Buses.Bus B9(
- V_0=1.0129,
- angle_0=-21.7195,
- V_b=13.8) annotation (Placement(transformation(
- extent={{-15,-15},{15,15}},
- rotation=90,
- origin={86,44})));
- OpenIPSL.Electrical.Buses.Bus B10(
- V_b=13.8,
- V_0=1.0122,
- angle_0=-22.0281) annotation (Placement(transformation(
- extent={{-15,-15},{15,15}},
- rotation=90,
- origin={16,110})));
- OpenIPSL.Electrical.Buses.Bus B11(
- V_b=13.8,
- V_0=1.0357,
- angle_0=-21.7633) annotation (Placement(transformation(
- extent={{-15,-15},{15,15}},
- rotation=90,
- origin={16,40})));
- OpenIPSL.Electrical.Buses.Bus B12(
- V_b=13.8,
- V_0=1.0462,
- angle_0=-22.3792) annotation (Placement(transformation(
- extent={{-15,-15},{15,15}},
- rotation=90,
- origin={-128,68})));
- OpenIPSL.Electrical.Buses.Bus B13(
- V_b=13.8,
- V_0=1.0366,
- angle_0=-22.4297) annotation (Placement(transformation(
- extent={{-15,-15},{15,15}},
- rotation=90,
- origin={-64,110})));
- OpenIPSL.Electrical.Buses.Bus B14(
- V_0=0.99695,
- angle_0=-23.5234,
- V_b=13.8) annotation (Placement(transformation(
- extent={{-15,-15},{15,15}},
- rotation=90,
- origin={104,108})));
- OpenIPSL.Electrical.Branches.PwLine L1(
- R=0.05695,
- X=0.17388,
- G=0,
- B=0.034/2) annotation (Placement(transformation(
- extent={{-8.99999,-5.99999},{8.99999,6.00002}},
- rotation=90,
- origin={-60,-77})));
- OpenIPSL.Electrical.Branches.PwLine L7(
- G=0,
- R=0.05403,
- X=0.22304,
- B=0.0492/2) annotation (Placement(transformation(
- extent={{-10,-6.99999},{10,6.99999}},
- rotation=0,
- origin={-84,-53})));
- OpenIPSL.Electrical.Branches.PwLine L3(
- G=0,
- R=0.01938,
- X=0.05917,
- B=0.0528/2) annotation (Placement(transformation(
- extent={{-10,-6.99995},{10,6.99998}},
- rotation=270,
- origin={-135,-96})));
- OpenIPSL.Electrical.Branches.PwLine L6(
- G=0,
- R=0.06701,
- X=0.17103,
- B=0.0346/2) annotation (Placement(transformation(
- extent={{-8.99998,-6},{8.99999,5.99996}},
- rotation=90,
- origin={44,-65})));
- OpenIPSL.Electrical.Branches.PwLine L8(
- G=0,
- R=0.01335,
- X=0.04211,
- B=0.0128/2) annotation (Placement(transformation(
- extent={{-10,-6.99999},{10,6.99999}},
- rotation=0,
- origin={2,-53})));
- OpenIPSL.Electrical.Branches.PwLine L13(
- G=0,
- R=0.09498,
- X=0.1989,
- B=0) annotation (Placement(transformation(
- extent={{-10,-6.00002},{10,6.00001}},
- rotation=0,
- origin={-2,26})));
- OpenIPSL.Electrical.Branches.PwLine L10(
- G=0,
- R=0.12291,
- X=0.25581,
- B=0) annotation (Placement(transformation(
- extent={{-8.99999,-6},{9.00002,5.99999}},
- rotation=90,
- origin={-128,47})));
- OpenIPSL.Electrical.Branches.PwLine L12(
- G=0,
- R=0.06615,
- X=0.13027,
- B=0) annotation (Placement(transformation(
- extent={{-9.00001,-6.00001},{9.00001,6.00001}},
- rotation=90,
- origin={-64,63})));
- OpenIPSL.Electrical.Branches.PwLine L14(
- G=0,
- B=0,
- R=0.08205,
- X=0.19207) annotation (Placement(transformation(
- extent={{-8.5,-6},{8.5,6}},
- rotation=90,
- origin={16,66.5})));
- OpenIPSL.Electrical.Branches.PwLine L15(
- G=0,
- B=0,
- R=0.03181,
- X=0.0845) annotation (Placement(transformation(
- extent={{-8.99999,-6},{8.99999,5.99998}},
- rotation=90,
- origin={52,69})));
- OpenIPSL.Electrical.Branches.PwLine L16(
- G=0,
- B=0,
- R=0.12711,
- X=0.27038) annotation (Placement(transformation(
- extent={{-9.5,-6.0002},{9.49997,6.00018}},
- rotation=90,
- origin={104,75.5})));
- OpenIPSL.Electrical.Branches.PwLine L17(
- G=0,
- B=0,
- R=0.17093,
- X=0.34802) annotation (Placement(transformation(
- extent={{-9.5,-6.00021},{9.5,6.00022}},
- rotation=180,
- origin={44.5,97.9998})));
- OpenIPSL.Electrical.Branches.PwLine L2(
- G=0,
- B=0,
- R=0,
- X=0.11001) annotation (Placement(transformation(
- extent={{-9.5,-6.50002},{9.5,6.50002}},
- rotation=90,
- origin={91.5,19.5})));
- OpenIPSL.Electrical.Branches.PwLine L5(
- G=0,
- R=0.04699,
- X=0.19797,
- B=0.0438/2) annotation (Placement(transformation(
- extent={{-8.99998,-5.99999},{8.99998,5.99999}},
- rotation=180,
- origin={13,-108})));
- OpenIPSL.Electrical.Branches.PwLine L11(
- G=0,
- B=0,
- R=0.22092,
- X=0.19988) annotation (Placement(transformation(
- extent={{-8.99999,-5.99999},{8.99999,5.99999}},
- rotation=90,
- origin={-88,79})));
- OpenIPSL.Electrical.Loads.PSAT.VoltDependant lPQ2(
- V_b=69,
- V_0=1.002918521543744,
- angle_0=-0.226950235044097*180/pi,
- P_0=10.64,
- Q_0=2.24) annotation (Placement(transformation(
- extent={{-6,-6},{6,6}},
- rotation=180,
- origin={-41,-15})));
- OpenIPSL.Electrical.Loads.PSAT.VoltDependant lPQ3(
- V_0=1.045,
- V_b=69,
- angle_0=-0.135677901384789*180/pi,
- P_0=30.38,
- Q_0=17.78) annotation (Placement(transformation(
- extent={{-6,-6},{6,6}},
- rotation=180,
- origin={-28,-118})));
- OpenIPSL.Electrical.Loads.PSAT.VoltDependant lPQ12(
- V_0=1.01,
- V_b=69,
- angle_0=-0.332124297307116*180/pi,
- P_0=131.88,
- Q_0=26.6) annotation (Placement(transformation(
- extent={{-6,-6},{6,6}},
- rotation=180,
- origin={71,-101})));
- OpenIPSL.Electrical.Loads.PSAT.VoltDependant lPQ9(
- V_b=13.8,
- V_0=1.012902425305420,
- angle_0=-0.379076293864958*180/pi,
- P_0=41.3,
- Q_0=23.24) annotation (Placement(transformation(
- extent={{-6,-6},{6,6}},
- rotation=180,
- origin={138,62})));
- OpenIPSL.Electrical.Loads.PSAT.VoltDependant lPQ6(
- V_b=13.8,
- V_0=0.996954035152595,
- angle_0=-0.410560994783471*180/pi,
- P_0=20.86,
- Q_0=7) annotation (Placement(transformation(
- extent={{-6,-6},{6,6}},
- rotation=180,
- origin={104,132})));
- OpenIPSL.Electrical.Loads.PSAT.VoltDependant lPQ8(
- V_b=13.8,
- V_0=1.012187694288416,
- angle_0=-0.384463531221707*180/pi,
- P_0=12.6,
- Q_0=8.12) annotation (Placement(transformation(
- extent={{-6,-6},{6,6}},
- rotation=180,
- origin={17,131})));
- OpenIPSL.Electrical.Loads.PSAT.VoltDependant lPQ11(
- V_b=13.8,
- V_0=1.036593776863207,
- angle_0=-0.391472739421350*180/pi,
- P_0=18.9,
- Q_0=8.12) annotation (Placement(transformation(
- extent={{-6,-6},{6,6}},
- rotation=180,
- origin={-62,132})));
- OpenIPSL.Electrical.Loads.PSAT.VoltDependant lPQ7(
- V_b=13.8,
- V_0=1.046151564164931,
- angle_0=-0.390590184761168*180/pi,
- P_0=8.54,
- Q_0=2.24) annotation (Placement(transformation(
- extent={{-6,-6},{6,6}},
- rotation=180,
- origin={-143,99})));
- OpenIPSL.Electrical.Loads.PSAT.VoltDependant lPQ10(
- V_b=13.8,
- V_0=1.035651856727375,
- angle_0=-0.379841137315380*180/pi,
- P_0=4.9,
- Q_0=2.52) annotation (Placement(transformation(
- extent={{-6,-6},{6,6}},
- rotation=90,
- origin={38,50})));
- OpenIPSL.Electrical.Loads.PSAT.VoltDependant lPQ4(
- V_0=1.07,
- V_b=13.8,
- angle_0=-0.369562610674900*180/pi,
- P_0=15.68,
- Q_0=10.5) annotation (Placement(transformation(
- extent={{-6,-6},{6,6}},
- rotation=180,
- origin={-39,73})));
- OpenIPSL.Electrical.Loads.PSAT.VoltDependant lPQ5(
- V_b=69,
- V_0=0.997818344821605,
- angle_0=-0.264411509112327*180/pi,
- P_0=66.92,
- Q_0=5.6) annotation (Placement(transformation(
- extent={{-6,-6},{6,6}},
- rotation=180,
- origin={7,-11})));
- OpenIPSL.Electrical.Branches.PSAT.TwoWindingTransformer twoWindingTransformer(
- fn=60,
- kT=18/13.8,
- x=0.17615,
- r=0,
- V_b=18,
- Vn=18) annotation (Placement(transformation(
- extent={{-14,-14},{14,14}},
- rotation=180,
- origin={119,-38})));
- OpenIPSL.Electrical.Branches.PSAT.TWTransformerWithFixedTapRatio
- tWTransformerWithFixedTapRatio(
- fn=60,
- kT=69/13.8,
- R=0,
- X=0.25202,
- Vbus=69,
- Vn1=69,
- m=0.932) annotation (Placement(transformation(
- extent={{-14,-14},{14,14}},
- rotation=90,
- origin={-18,-6})));
- OpenIPSL.Electrical.Branches.PSAT.TWTransformerWithFixedTapRatio
- tWTransformerWithFixedTapRatio1(
- fn=60,
- kT=69/13.8,
- R=0,
- X=0.55618,
- Vbus=69,
- Vn1=69,
- m=0.969) annotation (Placement(transformation(
- extent={{-14,-14},{14,14}},
- rotation=90,
- origin={44,16})));
- OpenIPSL.Electrical.Branches.PSAT.TWTransformerWithFixedTapRatio
- tWTransformerWithFixedTapRatio2(
- fn=60,
- kT=69/13.8,
- R=0,
- X=0.20912,
- Vbus=69,
- Vn1=69,
- m=0.978) annotation (Placement(transformation(
- extent={{-14,-14},{14,14}},
- rotation=0,
- origin={64,-18})));
- IEEE14Bus.Generation_Groups.GroupBus2 groupBus2_1(
- V_b=69,
- V_0=1.045,
- P_0=0.400000000000003*SysData.S_b,
- Q_0=0.948601533828267*SysData.S_b,
- angle_0=-0.135677901384789*180/pi)
- annotation (Placement(transformation(extent={{-84,-160},{-64,-140}})));
- IEEE14Bus.Generation_Groups.GroupBus3 groupBus3_1(
- V_b=69,
- V_0=1.01,
- P_0=0.000000000000001*SysData.S_b,
- Q_0=0.597360399382514*SysData.S_b,
- angle_0=-0.332124297307116*180/pi)
- annotation (Placement(transformation(extent={{12,-162},{34,-142}})));
- IEEE14Bus.Generation_Groups.GroupBus6 groupBus6_1(
- V_b=13.8,
- V_0=1.07,
- P_0=0.000000000000039*SysData.S_b,
- angle_0=-0.378890344088088*180/pi,
- Q_0=0.444329439389711*SysData.S_b)
- annotation (Placement(transformation(extent={{-96,-10},{-76,10}})));
- IEEE14Bus.Generation_Groups.GroupBus8 groupBus8_1(
- V_b=18,
- V_0=1.09,
- P_0=-0.000000000000000*SysData.S_b,
- Q_0=0.334022011934611*SysData.S_b,
- angle_0=-19.445) annotation (Placement(transformation(
- extent={{-10,-10},{10,10}},
- rotation=180,
- origin={172,-36})));
- OpenIPSL.Electrical.Branches.PwLine pwLinewithOpeningSending(
- R=0.05811,
- X=0.17632,
- G=0,
- B=0.0374/2,
- t2=25,
- t1=20,
- opening=2)
- annotation (Placement(transformation(extent={{-2,-82},{16,-69}})));
- inner OpenIPSL.Electrical.SystemBase SysData(S_b=100, fn=50)
- annotation (Placement(transformation(extent={{-194,126},{-128,154}})));
- OpenIPSL.Electrical.Events.PwFault pwFault2(
- X=1e-5,
- t1=1,
- R=0,
- t2=1.2) annotation (Placement(transformation(
- extent={{-7,-7},{7,7}},
- rotation=270,
- origin={73,-51})));
- Generation_Groups.GroupBus1 groupBus1_1(
- V_b=69,
- V_0=1.06,
- P_0=3.520304175896794*SysData.S_b,
- Q_0=-0.281968127428245*SysData.S_b)
- annotation (Placement(transformation(extent={{-178,-16},{-158,4}})));
- equation
- connect(B12.p, L11.p) annotation (Line(
- points={{-128,68},{-128,62},{-88,62},{-88,70.9}},
- color={0,0,255},
- smooth=Smooth.None));
- connect(L10.p, B6.p) annotation (Line(
- points={{-128,38.9},{-128,28},{-47,28},{-47,19}},
- color={0,0,255},
- smooth=Smooth.None));
- connect(B3.p, L6.p) annotation (Line(
- points={{44,-122},{44,-98},{44,-73.1},{44,-73.1}},
- color={0,0,255},
- smooth=Smooth.None));
- connect(B1.p, L3.p) annotation (Line(
- points={{-135,-31},{-135,-60},{-135,-87},{-135,-87}},
- color={0,0,255},
- smooth=Smooth.None));
- connect(B4.p, L6.n) annotation (Line(
- points={{32,-32},{32,-42},{44,-42},{44,-56.9}},
- color={0,0,255},
- smooth=Smooth.None));
- connect(B4.p, L8.n) annotation (Line(
- points={{32,-32},{32,-42},{18,-42},{18,-53},{11,-53}},
- color={0,0,255},
- smooth=Smooth.None));
- connect(B5.p, lPQ2.p) annotation (Line(
- points={{-24,-40},{-24,-21},{-41,-21}},
- color={0,0,255},
- smooth=Smooth.None));
- connect(lPQ5.p, B4.p) annotation (Line(
- points={{7,-17},{7,-24},{32,-24},{32,-32}},
- color={0,0,255},
- smooth=Smooth.None));
- connect(lPQ11.p, B13.p) annotation (Line(
- points={{-62,126},{-62,118},{-64,118},{-64,110}},
- color={0,0,255},
- smooth=Smooth.None));
- connect(B10.p, L15.n) annotation (Line(
- points={{16,110},{16,84},{52,84},{52,77.1}},
- color={0,0,255},
- smooth=Smooth.None));
- connect(B10.p, L14.n) annotation (Line(
- points={{16,110},{16,74.15}},
- color={0,0,255},
- smooth=Smooth.None));
- connect(B13.p, L12.n) annotation (Line(
- points={{-64,110},{-64,71.1}},
- color={0,0,255},
- smooth=Smooth.None));
- connect(L16.n, B14.p) annotation (Line(points={{104,84.05},{104,88.05},{104,
- 108}}, color={0,0,255}));
- connect(B9.p, lPQ9.p) annotation (Line(points={{86,44},{86,44},{86,50},{138,
- 50},{138,56}}, color={0,0,255}));
- connect(B11.p, lPQ10.p) annotation (Line(points={{16,40},{16,40},{16,50},{32,
- 50}}, color={0,0,255}));
- connect(B11.p, L14.p)
- annotation (Line(points={{16,40},{16,58.85}}, color={0,0,255}));
- connect(lPQ4.p, B6.p) annotation (Line(points={{-39,67},{-39,44.75},{-47,
- 44.75},{-47,19}}, color={0,0,255}));
- connect(B6.p, L12.p) annotation (Line(points={{-47,19},{-47,40.5},{-64,40.5},
- {-64,54.9}}, color={0,0,255}));
- connect(lPQ7.p, B12.p) annotation (Line(points={{-143,93},{-143,82},{-128,82},
- {-128,68}}, color={0,0,255}));
- connect(B13.p, L11.n) annotation (Line(points={{-64,110},{-64,98},{-88,98},{-88,
- 87.1}}, color={0,0,255}));
- connect(L10.n, B12.p) annotation (Line(points={{-128,55.1},{-128,55.1},{
- -128,68}},
- color={0,0,255}));
- connect(B3.p, lPQ12.p) annotation (Line(points={{44,-122},{44,-122},{44,-106},
- {44,-107},{71,-107}}, color={0,0,255}));
- connect(B3.p, L5.p) annotation (Line(points={{44,-122},{44,-108},{21.1,-108}},
- color={0,0,255}));
- connect(B7.p, L2.p) annotation (Line(points={{91,1},{91,9.5},{91.5,9.5},{91.5,
- 10.95}}, color={0,0,255}));
- connect(B9.p, L2.n) annotation (Line(points={{86,44},{91.5,44},{91.5,28.05}},
- color={0,0,255}));
- connect(B2.p, lPQ3.p) annotation (Line(points={{-60,-128},{-60,-124},{-28,-124}},
- color={0,0,255}));
- connect(B2.p, L1.p) annotation (Line(points={{-60,-128},{-60,-85.1},{-60,
- -85.1}},
- color={0,0,255}));
- connect(L1.n, B5.p) annotation (Line(points={{-60,-68.9},{-60,-59.8},{-24,
- -59.8},{-24,-40}},
- color={0,0,255}));
- connect(B1.p, L7.p) annotation (Line(points={{-135,-31},{-135,-53},{-93,-53}},
- color={0,0,255}));
- connect(B5.p, L7.n)
- annotation (Line(points={{-24,-40},{-24,-53},{-75,-53}}, color={0,0,255}));
- connect(B7.p, twoWindingTransformer.n)
- annotation (Line(points={{91,1},{91,-38},{103.6,-38}}, color={0,0,255}));
- connect(twoWindingTransformer.p, B8.p) annotation (Line(points={{134.4,-38},{
- 149,-38},{149,-37}}, color={0,0,255}));
- connect(B4.p, tWTransformerWithFixedTapRatio1.p) annotation (Line(points={{32,
- -32},{32,-32},{32,-4},{32,0.6},{44,0.6}}, color={0,0,255}));
- connect(B5.p, tWTransformerWithFixedTapRatio.p) annotation (Line(points={{-24,
- -40},{-22,-40},{-22,-21.4},{-18,-21.4}}, color={0,0,255}));
- connect(B6.p, tWTransformerWithFixedTapRatio.n) annotation (Line(points={{-47,
- 19},{-47,12},{-18,12},{-18,9.4}}, color={0,0,255}));
- connect(groupBus2_1.pwPin, B2.p) annotation (Line(points={{-63,-150},{-60,-150},
- {-60,-128}}, color={0,0,255}));
- connect(groupBus3_1.pwPin, B3.p) annotation (Line(points={{35,-152.2},{44,-152.2},
- {44,-122}}, color={0,0,255}));
- connect(groupBus6_1.pwPin, B6.p)
- annotation (Line(points={{-75,0},{-47,0},{-47,19}}, color={0,0,255}));
- connect(B4.p, tWTransformerWithFixedTapRatio2.p) annotation (Line(points={{32,
- -32},{36,-32},{36,-18},{48.6,-18}}, color={0,0,255}));
- connect(B7.p, tWTransformerWithFixedTapRatio2.n) annotation (Line(points={{91,
- 1},{91,-8.5},{79.4,-8.5},{79.4,-18}}, color={0,0,255}));
- connect(B9.p, tWTransformerWithFixedTapRatio1.n) annotation (Line(points={{86,
- 44},{86,44},{86,36},{86,34},{44,34},{44,31.4}}, color={0,0,255}));
- connect(B6.p, L13.p) annotation (Line(points={{-47,19},{-47,28},{-14,28},{-14,
- 26},{-11,26}}, color={0,0,255}));
- connect(L13.n, B11.p)
- annotation (Line(points={{7,26},{16,26},{16,40}}, color={0,0,255}));
- connect(B5.p, L8.p) annotation (Line(points={{-24,-40},{-24,-40},{-14,-40},{-14,
- -53},{-7,-53}}, color={0,0,255}));
- connect(B8.p, groupBus8_1.pwPin) annotation (Line(points={{149,-37},{159.5,-37},
- {159.5,-36.2},{160.8,-36.2}}, color={0,0,255}));
- connect(L15.p, B9.p)
- annotation (Line(points={{52,60.9},{86,60.9},{86,44}}, color={0,0,255}));
- connect(B9.p, L16.p) annotation (Line(points={{86,44},{86,44},{86,56},{96,
- 56},{104,56},{104,66.95}},
- color={0,0,255}));
- connect(B14.p, L17.p) annotation (Line(points={{104,108},{104,118},{74,118},{
- 74,97.9998},{53.05,97.9998}}, color={0,0,255}));
- connect(B13.p, L17.n) annotation (Line(points={{-64,110},{-64,97.9998},{35.95,
- 97.9998}}, color={0,0,255}));
- connect(lPQ8.p, B10.p) annotation (Line(points={{17,125},{17,114.65},{16,
- 114.65},{16,110}}, color={0,0,255}));
- connect(lPQ6.p, L17.p) annotation (Line(points={{104,126},{104,118},{74,118},
- {74,97.9998},{53.05,97.9998}}, color={0,0,255}));
- connect(B2.p, pwLinewithOpeningSending.p) annotation (Line(points={{-60,-128},
- {-60,-128},{-60,-100},{-60,-106},{-14,-106},{-14,-76},{-1.1,-76},{-1.1,
- -75.5}}, color={0,0,255}));
- connect(B4.p, pwLinewithOpeningSending.n) annotation (Line(points={{32,-32},{
- 32,-32},{32,-76},{15.1,-76},{15.1,-75.5}}, color={0,0,255}));
- connect(L5.n, B2.p) annotation (Line(points={{4.90002,-108},{-6,-108},{-6,-134},
- {-60,-134},{-60,-128}}, color={0,0,255}));
- connect(L3.n, B2.p) annotation (Line(points={{-135,-105},{-135,-134},{-60,
- -134},{-60,-128}},
- color={0,0,255}));
- connect(groupBus1_1.pwPin, B1.p) annotation (Line(points={{-157,-6.2},{-135,-6.2},
- {-135,-31}}, color={0,0,255}));
- connect(B4.p, pwFault2.p) annotation (Line(points={{32,-32},{32,-28},{73,
- -28},{73,-42.8333}},
- color={0,0,255}));
- annotation (
- Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-200,-180},{
- 200,160}})),
- Icon(coordinateSystem(extent={{-200,-180},{200,160}})),
- Documentation(info="
-
-
-Reference |
-PSAT Manual 2.1.8 |
-
-
-Last update |
-13/07/2015 |
-
-
-Author |
-MAA Murad,SmarTS Lab, KTH Royal Institute of Technology |
-
-
-Contact |
-luigiv@kth.se |
-
-
-
<OpenIPSL: iTesla Power System Library>
-Copyright 2015 RTE (France), AIA (Spain), KTH (Sweden) and DTU (Denmark)
-
-- RTE: http://www.rte-france.com/
-- AIA: http://www.aia.es/en/energy/
-- KTH: https://www.kth.se/en
-- DTU:http://www.dtu.dk/english
-
-The authors can be contacted by email: info at itesla-ipsl dot org
-This package is part of the iTesla Power System Library ("OpenIPSL") .
-The OpenIPSL is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
-The OpenIPSL is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
-You should have received a copy of the GNU Lesser General Public License along with the OpenIPSL. If not, see <http://www.gnu.org/licenses/>.
-"),
- experiment(
- StopTime=10,
- Interval=0.001,
- Tolerance=1e-006,
- __Dymola_fixedstepsize=0.001,
- __Dymola_Algorithm="Rkfix2"),
- __Dymola_experimentSetupOutput);
- end IEEE_14_Buses;
-
- package Generation_Groups
-
- model GroupBus1
- extends OpenIPSL.Electrical.Essentials.pfComponent;
- parameter Real vf0=1.122656195484139 "Initial field voltage";
- parameter Real vref0=1.065622531687790 "Reference voltage AVR";
- OpenIPSL.Electrical.Controls.PSAT.AVR.AVRTypeII AVR1(
- Ta=0.02,
- Kf=0.002,
- Tf=1,
- Ke=1,
- Te=0.2,
- Tr=0.001,
- vrmax=7.32,
- vrmin=0,
- Ka=200,
- v0=V_0) annotation (Placement(transformation(extent={{-52,-6},{0,42}})));
- OpenIPSL.Electrical.Machines.PSAT.Order5_Type2 Syn1(
- Sn=615,
- Vn=69,
- V_b=V_b,
- fn=60,
- ra=0,
- xd=0.8979,
- xq=0.646,
- x1d=0.2998,
- x2d=0.23,
- x2q=0.4,
- T1d0=7.4,
- T2d0=0.03,
- T2q0=0.033,
- M=2*5.148,
- D=2,
- V_0=V_0,
- angle_0=angle_0,
- P_0=P_0,
- Q_0=Q_0) annotation (Placement(transformation(extent={{34,-32},{88,30}})));
- OpenIPSL.Interfaces.PwPin pwPin annotation (Placement(transformation(extent={
- {100,-12},{120,8}}), iconTransformation(extent={{100,-12},{120,8}})));
- equation
- connect(AVR1.vf, Syn1.vf) annotation (Line(points={{5.2,18},{12,18},{12,14.5},
- {28.6,14.5}}, color={0,0,127}));
- connect(Syn1.v, AVR1.v) annotation (Line(points={{90.7,8.3},{96,8.3},{96,-56},
- {-82,-56},{-82,4},{-57.2,4},{-57.2,3.6}}, color={0,0,127}));
- connect(Syn1.p, pwPin) annotation (Line(points={{88,-1},{100.35,-1},{100.35,-2},
- {110,-2}}, color={0,0,255}));
- connect(Syn1.pm0, Syn1.pm) annotation (Line(points={{39.4,-35.1},{39.4,-44},{
- 14,-44},{14,-16.5},{28.6,-16.5}}, color={0,0,127}));
- connect(AVR1.vref0, AVR1.vref) annotation (Line(points={{-26,46.8},{-28,46.8},
- {-28,66},{-28,70},{-74,70},{-74,32.4},{-57.2,32.4}}, color={0,0,127}));
- connect(AVR1.vf0, Syn1.vf0) annotation (Line(points={{-26,-10.8},{-26,-30},{8,
- -30},{8,44},{39.4,44},{39.4,33.1}}, color={0,0,127}));
- annotation (
- Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{
- 100,100}})),
- Icon(coordinateSystem(extent={{-100,-100},{100,100}}, preserveAspectRatio=
- false),graphics={Text(
- extent={{-93,6},{-24,-12}},
- lineColor={0,0,255},
- textStyle={TextStyle.Italic},
- textString=""),Ellipse(extent={{-94,68},{98,-84}}, lineColor={28,108,
- 200}),Line(points={{-28,-8},{-12,16}}, color={28,108,200}),Line(
- points={{-12,16},{14,-16},{32,10}}, color={28,108,200}),Text(
- extent={{-18,-32},{20,-64}},
- lineColor={28,108,200},
- textString="Gen1 5.2")}),
- Documentation(info="
-
-
-Reference |
-PSAT Manual 2.1.8 |
-
-
-Last update |
-13/07/2015 |
-
-
-Author |
-MAA Murad,SmarTS Lab, KTH Royal Institute of Technology |
-
-
-Contact |
-luigiv@kth.se |
-
-
-
<OpenIPSL: iTesla Power System Library>
-Copyright 2015 RTE (France), AIA (Spain), KTH (Sweden) and DTU (Denmark)
-
-- RTE: http://www.rte-france.com/
-- AIA: http://www.aia.es/en/energy/
-- KTH: https://www.kth.se/en
-- DTU:http://www.dtu.dk/english
-
-The authors can be contacted by email: info at itesla-ipsl dot org
-This package is part of the iTesla Power System Library ("OpenIPSL") .
-The OpenIPSL is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
-The OpenIPSL is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
-You should have received a copy of the GNU Lesser General Public License along with the OpenIPSL. If not, see <http://www.gnu.org/licenses/>.
-"));
- end GroupBus1;
-
- model GroupBus2
- extends OpenIPSL.Electrical.Essentials.pfComponent;
- parameter Real vf0=2.718126892405429 "Initial field voltage";
- parameter Real vref0=1.181847826013889 "Reference voltage AVR";
- OpenIPSL.Electrical.Controls.PSAT.AVR.AVRTypeII aVR1TypeII1(
- Ta=0.02,
- Tf=1,
- Ke=1,
- Tr=0.001,
- Ka=20,
- Kf=0.001,
- Te=1.98,
- v0=V_0,
- vrmin=0,
- vrmax=4.38)
- annotation (Placement(transformation(extent={{-74,12},{-24,50}})));
- OpenIPSL.Electrical.Machines.PSAT.Order6 Syn3(
- Sn=60,
- Vn=69,
- V_b=V_b,
- fn=60,
- ra=0.0031,
- xq=0.98,
- x1d=0.1850,
- x1q=0.36,
- x2d=0.13,
- x2q=0.13,
- T1d0=6.1,
- T1q0=0.3,
- T2q0=0.099,
- M=2*6.54,
- D=2,
- V_0=V_0,
- xd=1.05,
- angle_0=angle_0,
- P_0=P_0,
- Q_0=Q_0) annotation (Placement(transformation(extent={{20,-36},{86,34}})));
- OpenIPSL.Interfaces.PwPin pwPin annotation (Placement(transformation(extent={
- {122,-10},{142,10}}),iconTransformation(extent={{122,-10},{142,10}})));
- equation
- connect(aVR1TypeII1.vf, Syn3.vf) annotation (Line(points={{-19,31},{-2.65,31},
- {-2.65,16.5},{13.4,16.5}}, color={0,0,127}));
- connect(Syn3.v, aVR1TypeII1.v) annotation (Line(points={{89.3,9.5},{116,9.5},
- {116,-88},{-82,-88},{-82,-84},{-82,14},{-82,19.6},{-79,19.6}},color={
- 0,0,127}));
- connect(Syn3.p, pwPin) annotation (Line(points={{86,-1},{110.65,-1},{110.65,0},
- {132,0}}, color={0,0,255}));
- connect(Syn3.pm0, Syn3.pm) annotation (Line(points={{26.6,-39.5},{26.6,-50},{
- 2,-50},{2,-18.5},{13.4,-18.5}}, color={0,0,127}));
- connect(Syn3.vf0, aVR1TypeII1.vf0) annotation (Line(points={{26.6,37.5},{26.6,
- 54},{-14,54},{-14,-12},{-14,-6},{-49,-6},{-49,8.2}}, color={0,0,127}));
- connect(aVR1TypeII1.vref0, aVR1TypeII1.vref) annotation (Line(points={{-49,
- 53.8},{-49,68},{-98,68},{-98,40},{-98,42.4},{-79,42.4}}, color={0,0,
- 127}));
- annotation (
- Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-120,-100},{
- 120,100}})),
- Icon(coordinateSystem(extent={{-120,-100},{120,100}}, preserveAspectRatio=
- false), graphics={Ellipse(extent={{-72,78},{120,-74}}, lineColor={
- 28,108,200}),Line(points={{0,26},{26,-6},{44,20}}, color={28,108,200}),
- Line(points={{-16,2},{0,26}}, color={28,108,200}),Text(
- extent={{-6,-22},{32,-54}},
- lineColor={28,108,200},
- textString="Gen2 6")}),
- Documentation(info="
-
-
-Reference |
-PSAT Manual 2.1.8 |
-
-
-Last update |
-13/07/2015 |
-
-
-Author |
-MAA Murad,SmarTS Lab, KTH Royal Institute of Technology |
-
-
-Contact |
-luigiv@kth.se |
-
-
-
<OpenIPSL: iTesla Power System Library>
-Copyright 2015 RTE (France), AIA (Spain), KTH (Sweden) and DTU (Denmark)
-
-- RTE: http://www.rte-france.com/
-- AIA: http://www.aia.es/en/energy/
-- KTH: https://www.kth.se/en
-- DTU:http://www.dtu.dk/english
-
-The authors can be contacted by email: info at itesla-ipsl dot org
-This package is part of the iTesla Power System Library ("OpenIPSL") .
-The OpenIPSL is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
-The OpenIPSL is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
-You should have received a copy of the GNU Lesser General Public License along with the OpenIPSL. If not, see <http://www.gnu.org/licenses/>.
-"));
- end GroupBus2;
-
- model GroupBus3
- extends OpenIPSL.Electrical.Essentials.pfComponent;
- parameter Real vf0=2.045032675265054 "Initial field voltage";
- parameter Real vref0=1.112638137121514 "Reference voltage AVR";
- OpenIPSL.Electrical.Controls.PSAT.AVR.AVRTypeII aVR2TypeII2(
- Ta=0.02,
- Tf=1,
- Ke=1,
- Tr=0.001,
- Ka=20,
- Kf=0.001,
- Te=1.98,
- v0=V_0,
- vrmin=0,
- vrmax=4.38) annotation (Placement(transformation(
- extent={{-30,-32},{30,32}},
- rotation=0,
- origin={-28,-2})));
- OpenIPSL.Electrical.Machines.PSAT.Order6 Syn2(
- Sn=60,
- Vn=69,
- V_b=V_b,
- fn=60,
- ra=0.0031,
- xq=0.98,
- x1d=0.1850,
- x1q=0.36,
- x2d=0.13,
- x2q=0.13,
- T1d0=6.1,
- T1q0=0.3,
- T2q0=0.099,
- M=2*6.54,
- D=2,
- V_0=V_0,
- xd=1.05,
- angle_0=angle_0,
- P_0=P_0,
- Q_0=Q_0) annotation (Placement(transformation(
- extent={{-28,-25},{28,25}},
- rotation=0,
- origin={66,1})));
- OpenIPSL.Interfaces.PwPin pwPin annotation (Placement(transformation(extent={
- {120,-12},{140,8}}),iconTransformation(extent={{120,-12},{140,8}})));
- equation
- connect(aVR2TypeII2.vf, Syn2.vf) annotation (Line(points={{8,-2},{12,-2},{12,
- 13.5},{32.4,13.5}}, color={0,0,127}));
- connect(Syn2.v, aVR2TypeII2.v) annotation (Line(points={{96.8,8.5},{112,8.5},
- {112,-48},{-82,-48},{-82,-21.2},{-64,-21.2}}, color={0,0,127}));
- connect(Syn2.p, pwPin) annotation (Line(points={{94,1},{115.4,1},{115.4,-2},{
- 130,-2}}, color={0,0,255}));
- connect(Syn2.pm0, Syn2.pm) annotation (Line(points={{43.6,-26.5},{43.6,-34},{
- 2,-34},{2,-11.5},{32.4,-11.5}}, color={0,0,127}));
- connect(aVR2TypeII2.vref0, aVR2TypeII2.vref) annotation (Line(points={{-28,
- 36.4},{-28,72},{-28,76},{-86,76},{-86,17.2},{-64,17.2}}, color={0,0,
- 127}));
- connect(Syn2.vf0, aVR2TypeII2.vf0) annotation (Line(points={{43.6,28.5},{43.6,
- 90},{-92,90},{-92,-86},{-68,-86},{-68,-40.4},{-28,-40.4}}, color={0,0,
- 127}));
- annotation (
- Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{
- 120,100}})),
- Icon(coordinateSystem(extent={{-100,-100},{120,100}}, preserveAspectRatio=
- false), graphics={Ellipse(extent={{-80,78},{112,-74}}, lineColor={
- 28,108,200}),Line(points={{-8,26},{18,-6},{36,20}}, color={28,108,200}),
- Line(points={{-24,2},{-8,26}}, color={28,108,200}),Text(
- extent={{-14,-24},{24,-56}},
- lineColor={28,108,200},
- textString="Gen3 6")}),
- Documentation(info="
-
-
-Reference |
-PSAT Manual 2.1.8 |
-
-
-Last update |
-13/07/2015 |
-
-
-Author |
-MAA Murad,SmarTS Lab, KTH Royal Institute of Technology |
-
-
-Contact |
-luigiv@kth.se |
-
-
-
<OpenIPSL: iTesla Power System Library>
-Copyright 2015 RTE (France), AIA (Spain), KTH (Sweden) and DTU (Denmark)
-
-- RTE: http://www.rte-france.com/
-- AIA: http://www.aia.es/en/energy/
-- KTH: https://www.kth.se/en
-- DTU:http://www.dtu.dk/english
-
-The authors can be contacted by email: info at itesla-ipsl dot org
-This package is part of the iTesla Power System Library ("OpenIPSL") .
-The OpenIPSL is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
-The OpenIPSL is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
-You should have received a copy of the GNU Lesser General Public License along with the OpenIPSL. If not, see <http://www.gnu.org/licenses/>.
-"));
- end GroupBus3;
-
- model GroupBus6
- extends OpenIPSL.Electrical.Essentials.pfComponent;
- parameter Real vf0=3.146313160164693 "Initial field voltage";
- parameter Real vref0=1.228917822125829 "Reference voltage AVR";
- OpenIPSL.Electrical.Controls.PSAT.AVR.AVRTypeII aVR4TypeII1(
- Ta=0.02,
- Tf=1,
- Ke=1,
- Tr=0.001,
- Ka=20,
- Kf=0.001,
- Te=0.7,
- v0=V_0,
- vrmin=1.395,
- vrmax=6.81) annotation (Placement(transformation(
- extent={{-23,-17},{23,17}},
- rotation=0,
- origin={-7,53})));
- OpenIPSL.Electrical.Machines.PSAT.Order6 Syn5(
- fn=60,
- D=2,
- Sn=25,
- xd=1.25,
- xq=1.22,
- x1d=0.232,
- x1q=0.715,
- x2d=0.12,
- x2q=0.12,
- T1d0=4.75,
- T1q0=1.5,
- T2d0=0.06,
- T2q0=0.21,
- M=2*5.06,
- Vn=13.8,
- V_b=V_b,
- V_0=V_0,
- angle_0=angle_0,
- P_0=P_0,
- Q_0=Q_0,
- ra=0.0041) annotation (Placement(transformation(
- extent={{-23,-20},{23,20}},
- rotation=0,
- origin={69,2})));
- OpenIPSL.Interfaces.PwPin pwPin annotation (Placement(transformation(extent={
- {100,-10},{120,10}}),iconTransformation(extent={{100,-10},{120,10}})));
- equation
- connect(aVR4TypeII1.vf, Syn5.vf) annotation (Line(points={{20.6,53},{32,53},{
- 32,12},{41.4,12}}, color={0,0,127}));
- connect(Syn5.v, aVR4TypeII1.v) annotation (Line(points={{94.3,8},{98,8},{98,
- 88},{-52,88},{-52,42.8},{-34.6,42.8}}, color={0,0,127}));
- connect(Syn5.p, pwPin) annotation (Line(points={{92,2},{113.15,2},{113.15,0},
- {110,0}},color={0,0,255}));
- connect(Syn5.pm0, Syn5.pm) annotation (Line(points={{50.6,-20},{50.6,-26},{28,
- -26},{28,-8},{41.4,-8}}, color={0,0,127}));
- connect(aVR4TypeII1.vref0, aVR4TypeII1.vref) annotation (Line(points={{-7,
- 73.4},{-7,82},{-46,82},{-46,63.2},{-34.6,63.2}}, color={0,0,127}));
- connect(Syn5.vf0, aVR4TypeII1.vf0) annotation (Line(points={{50.6,24},{26,24},
- {-7,24},{-7,32.6}}, color={0,0,127}));
- annotation (
- Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{
- 100,100}})),
- Icon(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{100,
- 100}}), graphics={Ellipse(extent={{-92,78},{100,-74}}, lineColor={
- 28,108,200}),Line(points={{-20,26},{6,-6},{24,20}}, color={28,108,200}),
- Line(points={{-36,2},{-20,26}}, color={28,108,200}),Text(
- extent={{-24,-22},{14,-54}},
- lineColor={28,108,200},
- textString="Gen4 6")}),
- Documentation(info="
-
-
-Reference |
-PSAT Manual 2.1.8 |
-
-
-Last update |
-13/07/2015 |
-
-
-Author |
-MAA Murad,SmarTS Lab, KTH Royal Institute of Technology |
-
-
-Contact |
-luigiv@kth.se |
-
-
-
<OpenIPSL: iTesla Power System Library>
-Copyright 2015 RTE (France), AIA (Spain), KTH (Sweden) and DTU (Denmark)
-
-- RTE: http://www.rte-france.com/
-- AIA: http://www.aia.es/en/energy/
-- KTH: https://www.kth.se/en
-- DTU:http://www.dtu.dk/english
-
-The authors can be contacted by email: info at itesla-ipsl dot org
-This package is part of the iTesla Power System Library ("OpenIPSL") .
-The OpenIPSL is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
-The OpenIPSL is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
-You should have received a copy of the GNU Lesser General Public License along with the OpenIPSL. If not, see <http://www.gnu.org/licenses/>.
-"));
- end GroupBus6;
-
- model GroupBus8
- extends OpenIPSL.Electrical.Essentials.pfComponent;
- parameter Real vf0=2.622215878949932 "Initial field voltage";
- parameter Real vref0=1.221943942023239 "Reference voltage AVR";
- OpenIPSL.Electrical.Controls.PSAT.AVR.AVRTypeII aVR3TypeII2(
- Ta=0.02,
- Tf=1,
- Ke=1,
- Tr=0.001,
- Ka=20,
- Kf=0.001,
- Te=0.7,
- v0=V_0,
- vrmin=1.395,
- vrmax=6.810) annotation (Placement(transformation(
- extent={{-20,-21},{20,21}},
- rotation=0,
- origin={-12,13})));
- OpenIPSL.Electrical.Machines.PSAT.Order6 Syn4(
- fn=60,
- D=2,
- Sn=25,
- Vn=18,
- V_b=V_b,
- xd=1.25,
- xq=1.22,
- x1d=0.232,
- x1q=0.715,
- x2d=0.12,
- x2q=0.12,
- T1d0=4.75,
- T1q0=1.5,
- T2d0=0.06,
- T2q0=0.21,
- M=2*5.06,
- V_0=V_0,
- angle_0=angle_0,
- P_0=P_0,
- Q_0=Q_0,
- ra=0.0041) annotation (Placement(transformation(
- extent={{-17,-17},{17,17}},
- rotation=0,
- origin={55,1})));
- OpenIPSL.Interfaces.PwPin pwPin annotation (Placement(transformation(extent={
- {102,-8},{122,12}}),iconTransformation(extent={{102,-8},{122,12}})));
- equation
- connect(aVR3TypeII2.vf, Syn4.vf) annotation (Line(points={{12,13},{20.5,13},{
- 20.5,9.5},{34.6,9.5}}, color={0,0,127}));
- connect(Syn4.v, aVR3TypeII2.v) annotation (Line(points={{73.7,6.1},{98,6.1},{
- 98,-34},{-36,-34},{-36,0.4}}, color={0,0,127}));
- connect(Syn4.p, pwPin) annotation (Line(points={{72,1},{103.85,1},{103.85,2},
- {112,2}},color={0,0,255}));
- connect(Syn4.pm0, Syn4.pm) annotation (Line(points={{41.4,-17.7},{41.4,-26},{
- 18,-26},{18,-7.5},{34.6,-7.5}}, color={0,0,127}));
- connect(Syn4.vf0, aVR3TypeII2.vf0) annotation (Line(points={{41.4,19.7},{41.4,
- 38},{12,38},{12,-24},{-12,-24},{-12,-12.2}}, color={0,0,127}));
- connect(aVR3TypeII2.vref0, aVR3TypeII2.vref) annotation (Line(points={{-12,
- 38.2},{-12,58},{-12,62},{-56,62},{-56,25.6},{-36,25.6}}, color={0,0,
- 127}));
- annotation (
- Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{
- 100,100}})),
- Icon(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{100,
- 100}}), graphics={Ellipse(extent={{-92,78},{100,-74}}, lineColor={
- 28,108,200}),Line(points={{-20,26},{6,-6},{24,20}}, color={28,108,200}),
- Line(points={{-36,2},{-20,26}}, color={28,108,200}),Text(
- extent={{-26,-22},{12,-54}},
- lineColor={28,108,200},
- textString="Gen2 6")}),
- Documentation(info="
-
-
-Reference |
-PSAT Manual 2.1.8 |
-
-
-Last update |
-13/07/2015 |
-
-
-Author |
-MAA Murad,SmarTS Lab, KTH Royal Institute of Technology |
-
-
-Contact |
-luigiv@kth.se |
-
-
-
<OpenIPSL: iTesla Power System Library>
-Copyright 2015 RTE (France), AIA (Spain), KTH (Sweden) and DTU (Denmark)
-
-- RTE: http://www.rte-france.com/
-- AIA: http://www.aia.es/en/energy/
-- KTH: https://www.kth.se/en
-- DTU:http://www.dtu.dk/english
-
-The authors can be contacted by email: info at itesla-ipsl dot org
-This package is part of the iTesla Power System Library ("OpenIPSL") .
-The OpenIPSL is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
-The OpenIPSL is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
-You should have received a copy of the GNU Lesser General Public License along with the OpenIPSL. If not, see <http://www.gnu.org/licenses/>.
-"));
- end GroupBus8;
- annotation (Documentation);
- end Generation_Groups;
-annotation (
- uses(OpenIPSL(version="1.5.0"), Modelica(version="3.2.2")),
- Documentation(info="
-
-Reference |
-PSAT Manual 2.1.8 |
-
-
-Last update |
-13/07/2015 |
-
-
-Author |
-MAA Murad,SmarTS Lab, KTH Royal Institute of Technology |
-
-
-Contact |
-luigiv@kth.se |
-
-
-"),
- version="1");
-end IEEE14Bus;
diff --git a/Ieee14_Bus_System_Implementation_In_Modelica_Using_The_Openipsl_By_Prof_Prof._Luigi_Vanfretti/project_files/IEEE14_bus_system_implementation_in_Modelica_using_the_OpenIPSL.pdf b/Ieee14_Bus_System_Implementation_In_Modelica_Using_The_Openipsl_By_Prof_Prof._Luigi_Vanfretti/project_files/IEEE14_bus_system_implementation_in_Modelica_using_the_OpenIPSL.pdf
deleted file mode 100644
index 0f64d15..0000000
Binary files a/Ieee14_Bus_System_Implementation_In_Modelica_Using_The_Openipsl_By_Prof_Prof._Luigi_Vanfretti/project_files/IEEE14_bus_system_implementation_in_Modelica_using_the_OpenIPSL.pdf and /dev/null differ
diff --git a/Ieee14_Bus_System_Implementation_Using_The_Openipsl_By_Prof_Prof._Luigi_Vanfretti/IEEE14_bus_system_implementation_in_Modelica_using_the_OpenIPSL.pdf b/Ieee14_Bus_System_Implementation_Using_The_Openipsl_By_Prof_Prof._Luigi_Vanfretti/IEEE14_bus_system_implementation_in_Modelica_using_the_OpenIPSL.pdf
new file mode 100644
index 0000000..0f64d15
Binary files /dev/null and b/Ieee14_Bus_System_Implementation_Using_The_Openipsl_By_Prof_Prof._Luigi_Vanfretti/IEEE14_bus_system_implementation_in_Modelica_using_the_OpenIPSL.pdf differ
diff --git a/Ieee14_Bus_System_Implementation_Using_The_Openipsl_By_Prof_Prof._Luigi_Vanfretti/README.txt b/Ieee14_Bus_System_Implementation_Using_The_Openipsl_By_Prof_Prof._Luigi_Vanfretti/README.txt
new file mode 100644
index 0000000..5fa86c1
--- /dev/null
+++ b/Ieee14_Bus_System_Implementation_Using_The_Openipsl_By_Prof_Prof._Luigi_Vanfretti/README.txt
@@ -0,0 +1,8 @@
+About the Power System Simulation
+
+Title Of The Power System Simulation Project: IEEE14 bus system implementation in Modelica using the OpenIPSL
+Proposar Name: Prof Luigi Vanfretti
+University: rensselaer Polytechnic Institute
+
+
+OM PSSP Project By FOSSEE, IIT Bombay
diff --git a/Ieee14_Bus_System_Implementation_Using_The_Openipsl_By_Prof_Prof._Luigi_Vanfretti/project_files/IEEE14Bus.mo b/Ieee14_Bus_System_Implementation_Using_The_Openipsl_By_Prof_Prof._Luigi_Vanfretti/project_files/IEEE14Bus.mo
new file mode 100644
index 0000000..90c8c7d
--- /dev/null
+++ b/Ieee14_Bus_System_Implementation_Using_The_Openipsl_By_Prof_Prof._Luigi_Vanfretti/project_files/IEEE14Bus.mo
@@ -0,0 +1,1204 @@
+package IEEE14Bus
+ class Copyright "Disclaimer
+OpenIPSL:
+Copyright August 2017 - Prof. Luigi Vanfretti, Rensselaer Polytechnic Institute, Troy, NY.
+Copyright April 2016 - July 2017 SmarTS Lab (Sweden)
+
+The authors can be contacted by email: luigi.vanfretti@gmail.com
+This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0.
+If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0.
+
+iPSL:
+Copyright 2015-2016 RTE (France), SmarTS Lab (Sweden), AIA (Spain) and DTU (Denmark)
+
+The authors can be contacted by email: info@itesla-ipsl.org
+
+This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0.
+If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0.
+"
+
+ annotation (
+ preferredView="info",
+ DocumentationClass=false,
+ Icon(graphics={
+ Text(
+ extent={{-100,140},{100,100}},
+ lineColor={0,127,0},
+ textString="%name%"),
+ Ellipse(
+ extent={{-100,100},{100,-100}},
+ lineColor={0,127,0},
+ fillColor={255,255,255},
+ fillPattern=FillPattern.Solid),
+ Ellipse(
+ extent={{-60,60},{60,-60}},
+ lineColor={0,127,72},
+ fillColor={0,127,0},
+ fillPattern=FillPattern.Solid),
+ Ellipse(
+ extent={{-40,40},{40,-40}},
+ lineColor={255,255,255},
+ fillColor={255,255,255},
+ fillPattern=FillPattern.Solid),
+ Rectangle(
+ extent={{28,22},{64,-20}},
+ lineColor={255,255,255},
+ fillColor={255,255,255},
+ fillPattern=FillPattern.Solid)}),
+ Documentation);
+ end Copyright;
+
+ model IEEE_14_Buses
+ import Modelica.Constants.pi;
+ OpenIPSL.Electrical.Buses.Bus B1(
+ V_b=69,
+ V_0=1.06,
+ angle_0=0) annotation (Placement(transformation(
+ extent={{-15,-15},{15,15}},
+ rotation=90,
+ origin={-135,-31})));
+ OpenIPSL.Electrical.Buses.Bus B2(
+ V_b=69,
+ V_0=1.045,
+ angle_0=-7.7738) annotation (Placement(transformation(
+ extent={{-15,-15},{15,15}},
+ rotation=90,
+ origin={-60,-128})));
+ OpenIPSL.Electrical.Buses.Bus B3(
+ V_b=69,
+ V_0=1.01,
+ angle_0=-19.0293) annotation (Placement(transformation(
+ extent={{-15,-15},{15,15}},
+ rotation=90,
+ origin={44,-122})));
+ OpenIPSL.Electrical.Buses.Bus B4(
+ V_b=69,
+ V_0=0.99782,
+ angle_0=-15.1497) annotation (Placement(transformation(
+ extent={{-15,-15},{15,15}},
+ rotation=90,
+ origin={32,-32})));
+ OpenIPSL.Electrical.Buses.Bus B5(
+ V_b=69,
+ V_0=1.0029,
+ angle_0=-13.0033) annotation (Placement(transformation(
+ extent={{-15,-15},{15,15}},
+ rotation=90,
+ origin={-24,-40})));
+ OpenIPSL.Electrical.Buses.Bus B6(
+ V_b=13.8,
+ V_0=1.07,
+ angle_0=-21.1744) annotation (Placement(transformation(
+ extent={{-15,-15},{15,15}},
+ rotation=90,
+ origin={-47,19})));
+ OpenIPSL.Electrical.Buses.Bus B7(
+ V_0=1.09,
+ angle_0=-19.445,
+ V_b=13.8) annotation (Placement(transformation(
+ extent={{-15,-15},{15,15}},
+ rotation=90,
+ origin={91,1})));
+ OpenIPSL.Electrical.Buses.Bus B8(
+ V_0=1.09,
+ angle_0=-19.445,
+ V_b=18) annotation (Placement(transformation(
+ extent={{-15,-15},{15,15}},
+ rotation=180,
+ origin={149,-37})));
+ OpenIPSL.Electrical.Buses.Bus B9(
+ V_0=1.0129,
+ angle_0=-21.7195,
+ V_b=13.8) annotation (Placement(transformation(
+ extent={{-15,-15},{15,15}},
+ rotation=90,
+ origin={86,44})));
+ OpenIPSL.Electrical.Buses.Bus B10(
+ V_b=13.8,
+ V_0=1.0122,
+ angle_0=-22.0281) annotation (Placement(transformation(
+ extent={{-15,-15},{15,15}},
+ rotation=90,
+ origin={16,110})));
+ OpenIPSL.Electrical.Buses.Bus B11(
+ V_b=13.8,
+ V_0=1.0357,
+ angle_0=-21.7633) annotation (Placement(transformation(
+ extent={{-15,-15},{15,15}},
+ rotation=90,
+ origin={16,40})));
+ OpenIPSL.Electrical.Buses.Bus B12(
+ V_b=13.8,
+ V_0=1.0462,
+ angle_0=-22.3792) annotation (Placement(transformation(
+ extent={{-15,-15},{15,15}},
+ rotation=90,
+ origin={-128,68})));
+ OpenIPSL.Electrical.Buses.Bus B13(
+ V_b=13.8,
+ V_0=1.0366,
+ angle_0=-22.4297) annotation (Placement(transformation(
+ extent={{-15,-15},{15,15}},
+ rotation=90,
+ origin={-64,110})));
+ OpenIPSL.Electrical.Buses.Bus B14(
+ V_0=0.99695,
+ angle_0=-23.5234,
+ V_b=13.8) annotation (Placement(transformation(
+ extent={{-15,-15},{15,15}},
+ rotation=90,
+ origin={104,108})));
+ OpenIPSL.Electrical.Branches.PwLine L1(
+ R=0.05695,
+ X=0.17388,
+ G=0,
+ B=0.034/2) annotation (Placement(transformation(
+ extent={{-8.99999,-5.99999},{8.99999,6.00002}},
+ rotation=90,
+ origin={-60,-77})));
+ OpenIPSL.Electrical.Branches.PwLine L7(
+ G=0,
+ R=0.05403,
+ X=0.22304,
+ B=0.0492/2) annotation (Placement(transformation(
+ extent={{-10,-6.99999},{10,6.99999}},
+ rotation=0,
+ origin={-84,-53})));
+ OpenIPSL.Electrical.Branches.PwLine L3(
+ G=0,
+ R=0.01938,
+ X=0.05917,
+ B=0.0528/2) annotation (Placement(transformation(
+ extent={{-10,-6.99995},{10,6.99998}},
+ rotation=270,
+ origin={-135,-96})));
+ OpenIPSL.Electrical.Branches.PwLine L6(
+ G=0,
+ R=0.06701,
+ X=0.17103,
+ B=0.0346/2) annotation (Placement(transformation(
+ extent={{-8.99998,-6},{8.99999,5.99996}},
+ rotation=90,
+ origin={44,-65})));
+ OpenIPSL.Electrical.Branches.PwLine L8(
+ G=0,
+ R=0.01335,
+ X=0.04211,
+ B=0.0128/2) annotation (Placement(transformation(
+ extent={{-10,-6.99999},{10,6.99999}},
+ rotation=0,
+ origin={2,-53})));
+ OpenIPSL.Electrical.Branches.PwLine L13(
+ G=0,
+ R=0.09498,
+ X=0.1989,
+ B=0) annotation (Placement(transformation(
+ extent={{-10,-6.00002},{10,6.00001}},
+ rotation=0,
+ origin={-2,26})));
+ OpenIPSL.Electrical.Branches.PwLine L10(
+ G=0,
+ R=0.12291,
+ X=0.25581,
+ B=0) annotation (Placement(transformation(
+ extent={{-8.99999,-6},{9.00002,5.99999}},
+ rotation=90,
+ origin={-128,47})));
+ OpenIPSL.Electrical.Branches.PwLine L12(
+ G=0,
+ R=0.06615,
+ X=0.13027,
+ B=0) annotation (Placement(transformation(
+ extent={{-9.00001,-6.00001},{9.00001,6.00001}},
+ rotation=90,
+ origin={-64,63})));
+ OpenIPSL.Electrical.Branches.PwLine L14(
+ G=0,
+ B=0,
+ R=0.08205,
+ X=0.19207) annotation (Placement(transformation(
+ extent={{-8.5,-6},{8.5,6}},
+ rotation=90,
+ origin={16,66.5})));
+ OpenIPSL.Electrical.Branches.PwLine L15(
+ G=0,
+ B=0,
+ R=0.03181,
+ X=0.0845) annotation (Placement(transformation(
+ extent={{-8.99999,-6},{8.99999,5.99998}},
+ rotation=90,
+ origin={52,69})));
+ OpenIPSL.Electrical.Branches.PwLine L16(
+ G=0,
+ B=0,
+ R=0.12711,
+ X=0.27038) annotation (Placement(transformation(
+ extent={{-9.5,-6.0002},{9.49997,6.00018}},
+ rotation=90,
+ origin={104,75.5})));
+ OpenIPSL.Electrical.Branches.PwLine L17(
+ G=0,
+ B=0,
+ R=0.17093,
+ X=0.34802) annotation (Placement(transformation(
+ extent={{-9.5,-6.00021},{9.5,6.00022}},
+ rotation=180,
+ origin={44.5,97.9998})));
+ OpenIPSL.Electrical.Branches.PwLine L2(
+ G=0,
+ B=0,
+ R=0,
+ X=0.11001) annotation (Placement(transformation(
+ extent={{-9.5,-6.50002},{9.5,6.50002}},
+ rotation=90,
+ origin={91.5,19.5})));
+ OpenIPSL.Electrical.Branches.PwLine L5(
+ G=0,
+ R=0.04699,
+ X=0.19797,
+ B=0.0438/2) annotation (Placement(transformation(
+ extent={{-8.99998,-5.99999},{8.99998,5.99999}},
+ rotation=180,
+ origin={13,-108})));
+ OpenIPSL.Electrical.Branches.PwLine L11(
+ G=0,
+ B=0,
+ R=0.22092,
+ X=0.19988) annotation (Placement(transformation(
+ extent={{-8.99999,-5.99999},{8.99999,5.99999}},
+ rotation=90,
+ origin={-88,79})));
+ OpenIPSL.Electrical.Loads.PSAT.VoltDependant lPQ2(
+ V_b=69,
+ V_0=1.002918521543744,
+ angle_0=-0.226950235044097*180/pi,
+ P_0=10.64,
+ Q_0=2.24) annotation (Placement(transformation(
+ extent={{-6,-6},{6,6}},
+ rotation=180,
+ origin={-41,-15})));
+ OpenIPSL.Electrical.Loads.PSAT.VoltDependant lPQ3(
+ V_0=1.045,
+ V_b=69,
+ angle_0=-0.135677901384789*180/pi,
+ P_0=30.38,
+ Q_0=17.78) annotation (Placement(transformation(
+ extent={{-6,-6},{6,6}},
+ rotation=180,
+ origin={-28,-118})));
+ OpenIPSL.Electrical.Loads.PSAT.VoltDependant lPQ12(
+ V_0=1.01,
+ V_b=69,
+ angle_0=-0.332124297307116*180/pi,
+ P_0=131.88,
+ Q_0=26.6) annotation (Placement(transformation(
+ extent={{-6,-6},{6,6}},
+ rotation=180,
+ origin={71,-101})));
+ OpenIPSL.Electrical.Loads.PSAT.VoltDependant lPQ9(
+ V_b=13.8,
+ V_0=1.012902425305420,
+ angle_0=-0.379076293864958*180/pi,
+ P_0=41.3,
+ Q_0=23.24) annotation (Placement(transformation(
+ extent={{-6,-6},{6,6}},
+ rotation=180,
+ origin={138,62})));
+ OpenIPSL.Electrical.Loads.PSAT.VoltDependant lPQ6(
+ V_b=13.8,
+ V_0=0.996954035152595,
+ angle_0=-0.410560994783471*180/pi,
+ P_0=20.86,
+ Q_0=7) annotation (Placement(transformation(
+ extent={{-6,-6},{6,6}},
+ rotation=180,
+ origin={104,132})));
+ OpenIPSL.Electrical.Loads.PSAT.VoltDependant lPQ8(
+ V_b=13.8,
+ V_0=1.012187694288416,
+ angle_0=-0.384463531221707*180/pi,
+ P_0=12.6,
+ Q_0=8.12) annotation (Placement(transformation(
+ extent={{-6,-6},{6,6}},
+ rotation=180,
+ origin={17,131})));
+ OpenIPSL.Electrical.Loads.PSAT.VoltDependant lPQ11(
+ V_b=13.8,
+ V_0=1.036593776863207,
+ angle_0=-0.391472739421350*180/pi,
+ P_0=18.9,
+ Q_0=8.12) annotation (Placement(transformation(
+ extent={{-6,-6},{6,6}},
+ rotation=180,
+ origin={-62,132})));
+ OpenIPSL.Electrical.Loads.PSAT.VoltDependant lPQ7(
+ V_b=13.8,
+ V_0=1.046151564164931,
+ angle_0=-0.390590184761168*180/pi,
+ P_0=8.54,
+ Q_0=2.24) annotation (Placement(transformation(
+ extent={{-6,-6},{6,6}},
+ rotation=180,
+ origin={-143,99})));
+ OpenIPSL.Electrical.Loads.PSAT.VoltDependant lPQ10(
+ V_b=13.8,
+ V_0=1.035651856727375,
+ angle_0=-0.379841137315380*180/pi,
+ P_0=4.9,
+ Q_0=2.52) annotation (Placement(transformation(
+ extent={{-6,-6},{6,6}},
+ rotation=90,
+ origin={38,50})));
+ OpenIPSL.Electrical.Loads.PSAT.VoltDependant lPQ4(
+ V_0=1.07,
+ V_b=13.8,
+ angle_0=-0.369562610674900*180/pi,
+ P_0=15.68,
+ Q_0=10.5) annotation (Placement(transformation(
+ extent={{-6,-6},{6,6}},
+ rotation=180,
+ origin={-39,73})));
+ OpenIPSL.Electrical.Loads.PSAT.VoltDependant lPQ5(
+ V_b=69,
+ V_0=0.997818344821605,
+ angle_0=-0.264411509112327*180/pi,
+ P_0=66.92,
+ Q_0=5.6) annotation (Placement(transformation(
+ extent={{-6,-6},{6,6}},
+ rotation=180,
+ origin={7,-11})));
+ OpenIPSL.Electrical.Branches.PSAT.TwoWindingTransformer twoWindingTransformer(
+ fn=60,
+ kT=18/13.8,
+ x=0.17615,
+ r=0,
+ V_b=18,
+ Vn=18) annotation (Placement(transformation(
+ extent={{-14,-14},{14,14}},
+ rotation=180,
+ origin={119,-38})));
+ OpenIPSL.Electrical.Branches.PSAT.TWTransformerWithFixedTapRatio
+ tWTransformerWithFixedTapRatio(
+ fn=60,
+ kT=69/13.8,
+ R=0,
+ X=0.25202,
+ Vbus=69,
+ Vn1=69,
+ m=0.932) annotation (Placement(transformation(
+ extent={{-14,-14},{14,14}},
+ rotation=90,
+ origin={-18,-6})));
+ OpenIPSL.Electrical.Branches.PSAT.TWTransformerWithFixedTapRatio
+ tWTransformerWithFixedTapRatio1(
+ fn=60,
+ kT=69/13.8,
+ R=0,
+ X=0.55618,
+ Vbus=69,
+ Vn1=69,
+ m=0.969) annotation (Placement(transformation(
+ extent={{-14,-14},{14,14}},
+ rotation=90,
+ origin={44,16})));
+ OpenIPSL.Electrical.Branches.PSAT.TWTransformerWithFixedTapRatio
+ tWTransformerWithFixedTapRatio2(
+ fn=60,
+ kT=69/13.8,
+ R=0,
+ X=0.20912,
+ Vbus=69,
+ Vn1=69,
+ m=0.978) annotation (Placement(transformation(
+ extent={{-14,-14},{14,14}},
+ rotation=0,
+ origin={64,-18})));
+ IEEE14Bus.Generation_Groups.GroupBus2 groupBus2_1(
+ V_b=69,
+ V_0=1.045,
+ P_0=0.400000000000003*SysData.S_b,
+ Q_0=0.948601533828267*SysData.S_b,
+ angle_0=-0.135677901384789*180/pi)
+ annotation (Placement(transformation(extent={{-84,-160},{-64,-140}})));
+ IEEE14Bus.Generation_Groups.GroupBus3 groupBus3_1(
+ V_b=69,
+ V_0=1.01,
+ P_0=0.000000000000001*SysData.S_b,
+ Q_0=0.597360399382514*SysData.S_b,
+ angle_0=-0.332124297307116*180/pi)
+ annotation (Placement(transformation(extent={{12,-162},{34,-142}})));
+ IEEE14Bus.Generation_Groups.GroupBus6 groupBus6_1(
+ V_b=13.8,
+ V_0=1.07,
+ P_0=0.000000000000039*SysData.S_b,
+ angle_0=-0.378890344088088*180/pi,
+ Q_0=0.444329439389711*SysData.S_b)
+ annotation (Placement(transformation(extent={{-96,-10},{-76,10}})));
+ IEEE14Bus.Generation_Groups.GroupBus8 groupBus8_1(
+ V_b=18,
+ V_0=1.09,
+ P_0=-0.000000000000000*SysData.S_b,
+ Q_0=0.334022011934611*SysData.S_b,
+ angle_0=-19.445) annotation (Placement(transformation(
+ extent={{-10,-10},{10,10}},
+ rotation=180,
+ origin={172,-36})));
+ OpenIPSL.Electrical.Branches.PwLine pwLinewithOpeningSending(
+ R=0.05811,
+ X=0.17632,
+ G=0,
+ B=0.0374/2,
+ t2=25,
+ t1=20,
+ opening=2)
+ annotation (Placement(transformation(extent={{-2,-82},{16,-69}})));
+ inner OpenIPSL.Electrical.SystemBase SysData(S_b=100, fn=50)
+ annotation (Placement(transformation(extent={{-194,126},{-128,154}})));
+ OpenIPSL.Electrical.Events.PwFault pwFault2(
+ X=1e-5,
+ t1=1,
+ R=0,
+ t2=1.2) annotation (Placement(transformation(
+ extent={{-7,-7},{7,7}},
+ rotation=270,
+ origin={73,-51})));
+ Generation_Groups.GroupBus1 groupBus1_1(
+ V_b=69,
+ V_0=1.06,
+ P_0=3.520304175896794*SysData.S_b,
+ Q_0=-0.281968127428245*SysData.S_b)
+ annotation (Placement(transformation(extent={{-178,-16},{-158,4}})));
+ equation
+ connect(B12.p, L11.p) annotation (Line(
+ points={{-128,68},{-128,62},{-88,62},{-88,70.9}},
+ color={0,0,255},
+ smooth=Smooth.None));
+ connect(L10.p, B6.p) annotation (Line(
+ points={{-128,38.9},{-128,28},{-47,28},{-47,19}},
+ color={0,0,255},
+ smooth=Smooth.None));
+ connect(B3.p, L6.p) annotation (Line(
+ points={{44,-122},{44,-98},{44,-73.1},{44,-73.1}},
+ color={0,0,255},
+ smooth=Smooth.None));
+ connect(B1.p, L3.p) annotation (Line(
+ points={{-135,-31},{-135,-60},{-135,-87},{-135,-87}},
+ color={0,0,255},
+ smooth=Smooth.None));
+ connect(B4.p, L6.n) annotation (Line(
+ points={{32,-32},{32,-42},{44,-42},{44,-56.9}},
+ color={0,0,255},
+ smooth=Smooth.None));
+ connect(B4.p, L8.n) annotation (Line(
+ points={{32,-32},{32,-42},{18,-42},{18,-53},{11,-53}},
+ color={0,0,255},
+ smooth=Smooth.None));
+ connect(B5.p, lPQ2.p) annotation (Line(
+ points={{-24,-40},{-24,-21},{-41,-21}},
+ color={0,0,255},
+ smooth=Smooth.None));
+ connect(lPQ5.p, B4.p) annotation (Line(
+ points={{7,-17},{7,-24},{32,-24},{32,-32}},
+ color={0,0,255},
+ smooth=Smooth.None));
+ connect(lPQ11.p, B13.p) annotation (Line(
+ points={{-62,126},{-62,118},{-64,118},{-64,110}},
+ color={0,0,255},
+ smooth=Smooth.None));
+ connect(B10.p, L15.n) annotation (Line(
+ points={{16,110},{16,84},{52,84},{52,77.1}},
+ color={0,0,255},
+ smooth=Smooth.None));
+ connect(B10.p, L14.n) annotation (Line(
+ points={{16,110},{16,74.15}},
+ color={0,0,255},
+ smooth=Smooth.None));
+ connect(B13.p, L12.n) annotation (Line(
+ points={{-64,110},{-64,71.1}},
+ color={0,0,255},
+ smooth=Smooth.None));
+ connect(L16.n, B14.p) annotation (Line(points={{104,84.05},{104,88.05},{104,
+ 108}}, color={0,0,255}));
+ connect(B9.p, lPQ9.p) annotation (Line(points={{86,44},{86,44},{86,50},{138,
+ 50},{138,56}}, color={0,0,255}));
+ connect(B11.p, lPQ10.p) annotation (Line(points={{16,40},{16,40},{16,50},{32,
+ 50}}, color={0,0,255}));
+ connect(B11.p, L14.p)
+ annotation (Line(points={{16,40},{16,58.85}}, color={0,0,255}));
+ connect(lPQ4.p, B6.p) annotation (Line(points={{-39,67},{-39,44.75},{-47,
+ 44.75},{-47,19}}, color={0,0,255}));
+ connect(B6.p, L12.p) annotation (Line(points={{-47,19},{-47,40.5},{-64,40.5},
+ {-64,54.9}}, color={0,0,255}));
+ connect(lPQ7.p, B12.p) annotation (Line(points={{-143,93},{-143,82},{-128,82},
+ {-128,68}}, color={0,0,255}));
+ connect(B13.p, L11.n) annotation (Line(points={{-64,110},{-64,98},{-88,98},{-88,
+ 87.1}}, color={0,0,255}));
+ connect(L10.n, B12.p) annotation (Line(points={{-128,55.1},{-128,55.1},{
+ -128,68}},
+ color={0,0,255}));
+ connect(B3.p, lPQ12.p) annotation (Line(points={{44,-122},{44,-122},{44,-106},
+ {44,-107},{71,-107}}, color={0,0,255}));
+ connect(B3.p, L5.p) annotation (Line(points={{44,-122},{44,-108},{21.1,-108}},
+ color={0,0,255}));
+ connect(B7.p, L2.p) annotation (Line(points={{91,1},{91,9.5},{91.5,9.5},{91.5,
+ 10.95}}, color={0,0,255}));
+ connect(B9.p, L2.n) annotation (Line(points={{86,44},{91.5,44},{91.5,28.05}},
+ color={0,0,255}));
+ connect(B2.p, lPQ3.p) annotation (Line(points={{-60,-128},{-60,-124},{-28,-124}},
+ color={0,0,255}));
+ connect(B2.p, L1.p) annotation (Line(points={{-60,-128},{-60,-85.1},{-60,
+ -85.1}},
+ color={0,0,255}));
+ connect(L1.n, B5.p) annotation (Line(points={{-60,-68.9},{-60,-59.8},{-24,
+ -59.8},{-24,-40}},
+ color={0,0,255}));
+ connect(B1.p, L7.p) annotation (Line(points={{-135,-31},{-135,-53},{-93,-53}},
+ color={0,0,255}));
+ connect(B5.p, L7.n)
+ annotation (Line(points={{-24,-40},{-24,-53},{-75,-53}}, color={0,0,255}));
+ connect(B7.p, twoWindingTransformer.n)
+ annotation (Line(points={{91,1},{91,-38},{103.6,-38}}, color={0,0,255}));
+ connect(twoWindingTransformer.p, B8.p) annotation (Line(points={{134.4,-38},{
+ 149,-38},{149,-37}}, color={0,0,255}));
+ connect(B4.p, tWTransformerWithFixedTapRatio1.p) annotation (Line(points={{32,
+ -32},{32,-32},{32,-4},{32,0.6},{44,0.6}}, color={0,0,255}));
+ connect(B5.p, tWTransformerWithFixedTapRatio.p) annotation (Line(points={{-24,
+ -40},{-22,-40},{-22,-21.4},{-18,-21.4}}, color={0,0,255}));
+ connect(B6.p, tWTransformerWithFixedTapRatio.n) annotation (Line(points={{-47,
+ 19},{-47,12},{-18,12},{-18,9.4}}, color={0,0,255}));
+ connect(groupBus2_1.pwPin, B2.p) annotation (Line(points={{-63,-150},{-60,-150},
+ {-60,-128}}, color={0,0,255}));
+ connect(groupBus3_1.pwPin, B3.p) annotation (Line(points={{35,-152.2},{44,-152.2},
+ {44,-122}}, color={0,0,255}));
+ connect(groupBus6_1.pwPin, B6.p)
+ annotation (Line(points={{-75,0},{-47,0},{-47,19}}, color={0,0,255}));
+ connect(B4.p, tWTransformerWithFixedTapRatio2.p) annotation (Line(points={{32,
+ -32},{36,-32},{36,-18},{48.6,-18}}, color={0,0,255}));
+ connect(B7.p, tWTransformerWithFixedTapRatio2.n) annotation (Line(points={{91,
+ 1},{91,-8.5},{79.4,-8.5},{79.4,-18}}, color={0,0,255}));
+ connect(B9.p, tWTransformerWithFixedTapRatio1.n) annotation (Line(points={{86,
+ 44},{86,44},{86,36},{86,34},{44,34},{44,31.4}}, color={0,0,255}));
+ connect(B6.p, L13.p) annotation (Line(points={{-47,19},{-47,28},{-14,28},{-14,
+ 26},{-11,26}}, color={0,0,255}));
+ connect(L13.n, B11.p)
+ annotation (Line(points={{7,26},{16,26},{16,40}}, color={0,0,255}));
+ connect(B5.p, L8.p) annotation (Line(points={{-24,-40},{-24,-40},{-14,-40},{-14,
+ -53},{-7,-53}}, color={0,0,255}));
+ connect(B8.p, groupBus8_1.pwPin) annotation (Line(points={{149,-37},{159.5,-37},
+ {159.5,-36.2},{160.8,-36.2}}, color={0,0,255}));
+ connect(L15.p, B9.p)
+ annotation (Line(points={{52,60.9},{86,60.9},{86,44}}, color={0,0,255}));
+ connect(B9.p, L16.p) annotation (Line(points={{86,44},{86,44},{86,56},{96,
+ 56},{104,56},{104,66.95}},
+ color={0,0,255}));
+ connect(B14.p, L17.p) annotation (Line(points={{104,108},{104,118},{74,118},{
+ 74,97.9998},{53.05,97.9998}}, color={0,0,255}));
+ connect(B13.p, L17.n) annotation (Line(points={{-64,110},{-64,97.9998},{35.95,
+ 97.9998}}, color={0,0,255}));
+ connect(lPQ8.p, B10.p) annotation (Line(points={{17,125},{17,114.65},{16,
+ 114.65},{16,110}}, color={0,0,255}));
+ connect(lPQ6.p, L17.p) annotation (Line(points={{104,126},{104,118},{74,118},
+ {74,97.9998},{53.05,97.9998}}, color={0,0,255}));
+ connect(B2.p, pwLinewithOpeningSending.p) annotation (Line(points={{-60,-128},
+ {-60,-128},{-60,-100},{-60,-106},{-14,-106},{-14,-76},{-1.1,-76},{-1.1,
+ -75.5}}, color={0,0,255}));
+ connect(B4.p, pwLinewithOpeningSending.n) annotation (Line(points={{32,-32},{
+ 32,-32},{32,-76},{15.1,-76},{15.1,-75.5}}, color={0,0,255}));
+ connect(L5.n, B2.p) annotation (Line(points={{4.90002,-108},{-6,-108},{-6,-134},
+ {-60,-134},{-60,-128}}, color={0,0,255}));
+ connect(L3.n, B2.p) annotation (Line(points={{-135,-105},{-135,-134},{-60,
+ -134},{-60,-128}},
+ color={0,0,255}));
+ connect(groupBus1_1.pwPin, B1.p) annotation (Line(points={{-157,-6.2},{-135,-6.2},
+ {-135,-31}}, color={0,0,255}));
+ connect(B4.p, pwFault2.p) annotation (Line(points={{32,-32},{32,-28},{73,
+ -28},{73,-42.8333}},
+ color={0,0,255}));
+ annotation (
+ Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-200,-180},{
+ 200,160}})),
+ Icon(coordinateSystem(extent={{-200,-180},{200,160}})),
+ Documentation(info="
+
+
+Reference |
+PSAT Manual 2.1.8 |
+
+
+Last update |
+13/07/2015 |
+
+
+Author |
+MAA Murad,SmarTS Lab, KTH Royal Institute of Technology |
+
+
+Contact |
+luigiv@kth.se |
+
+
+
<OpenIPSL: iTesla Power System Library>
+Copyright 2015 RTE (France), AIA (Spain), KTH (Sweden) and DTU (Denmark)
+
+- RTE: http://www.rte-france.com/
+- AIA: http://www.aia.es/en/energy/
+- KTH: https://www.kth.se/en
+- DTU:http://www.dtu.dk/english
+
+The authors can be contacted by email: info at itesla-ipsl dot org
+This package is part of the iTesla Power System Library ("OpenIPSL") .
+The OpenIPSL is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
+The OpenIPSL is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
+You should have received a copy of the GNU Lesser General Public License along with the OpenIPSL. If not, see <http://www.gnu.org/licenses/>.
+"),
+ experiment(
+ StopTime=10,
+ Interval=0.001,
+ Tolerance=1e-006,
+ __Dymola_fixedstepsize=0.001,
+ __Dymola_Algorithm="Rkfix2"),
+ __Dymola_experimentSetupOutput);
+ end IEEE_14_Buses;
+
+ package Generation_Groups
+
+ model GroupBus1
+ extends OpenIPSL.Electrical.Essentials.pfComponent;
+ parameter Real vf0=1.122656195484139 "Initial field voltage";
+ parameter Real vref0=1.065622531687790 "Reference voltage AVR";
+ OpenIPSL.Electrical.Controls.PSAT.AVR.AVRTypeII AVR1(
+ Ta=0.02,
+ Kf=0.002,
+ Tf=1,
+ Ke=1,
+ Te=0.2,
+ Tr=0.001,
+ vrmax=7.32,
+ vrmin=0,
+ Ka=200,
+ v0=V_0) annotation (Placement(transformation(extent={{-52,-6},{0,42}})));
+ OpenIPSL.Electrical.Machines.PSAT.Order5_Type2 Syn1(
+ Sn=615,
+ Vn=69,
+ V_b=V_b,
+ fn=60,
+ ra=0,
+ xd=0.8979,
+ xq=0.646,
+ x1d=0.2998,
+ x2d=0.23,
+ x2q=0.4,
+ T1d0=7.4,
+ T2d0=0.03,
+ T2q0=0.033,
+ M=2*5.148,
+ D=2,
+ V_0=V_0,
+ angle_0=angle_0,
+ P_0=P_0,
+ Q_0=Q_0) annotation (Placement(transformation(extent={{34,-32},{88,30}})));
+ OpenIPSL.Interfaces.PwPin pwPin annotation (Placement(transformation(extent={
+ {100,-12},{120,8}}), iconTransformation(extent={{100,-12},{120,8}})));
+ equation
+ connect(AVR1.vf, Syn1.vf) annotation (Line(points={{5.2,18},{12,18},{12,14.5},
+ {28.6,14.5}}, color={0,0,127}));
+ connect(Syn1.v, AVR1.v) annotation (Line(points={{90.7,8.3},{96,8.3},{96,-56},
+ {-82,-56},{-82,4},{-57.2,4},{-57.2,3.6}}, color={0,0,127}));
+ connect(Syn1.p, pwPin) annotation (Line(points={{88,-1},{100.35,-1},{100.35,-2},
+ {110,-2}}, color={0,0,255}));
+ connect(Syn1.pm0, Syn1.pm) annotation (Line(points={{39.4,-35.1},{39.4,-44},{
+ 14,-44},{14,-16.5},{28.6,-16.5}}, color={0,0,127}));
+ connect(AVR1.vref0, AVR1.vref) annotation (Line(points={{-26,46.8},{-28,46.8},
+ {-28,66},{-28,70},{-74,70},{-74,32.4},{-57.2,32.4}}, color={0,0,127}));
+ connect(AVR1.vf0, Syn1.vf0) annotation (Line(points={{-26,-10.8},{-26,-30},{8,
+ -30},{8,44},{39.4,44},{39.4,33.1}}, color={0,0,127}));
+ annotation (
+ Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{
+ 100,100}})),
+ Icon(coordinateSystem(extent={{-100,-100},{100,100}}, preserveAspectRatio=
+ false),graphics={Text(
+ extent={{-93,6},{-24,-12}},
+ lineColor={0,0,255},
+ textStyle={TextStyle.Italic},
+ textString=""),Ellipse(extent={{-94,68},{98,-84}}, lineColor={28,108,
+ 200}),Line(points={{-28,-8},{-12,16}}, color={28,108,200}),Line(
+ points={{-12,16},{14,-16},{32,10}}, color={28,108,200}),Text(
+ extent={{-18,-32},{20,-64}},
+ lineColor={28,108,200},
+ textString="Gen1 5.2")}),
+ Documentation(info="
+
+
+Reference |
+PSAT Manual 2.1.8 |
+
+
+Last update |
+13/07/2015 |
+
+
+Author |
+MAA Murad,SmarTS Lab, KTH Royal Institute of Technology |
+
+
+Contact |
+luigiv@kth.se |
+
+
+
<OpenIPSL: iTesla Power System Library>
+Copyright 2015 RTE (France), AIA (Spain), KTH (Sweden) and DTU (Denmark)
+
+- RTE: http://www.rte-france.com/
+- AIA: http://www.aia.es/en/energy/
+- KTH: https://www.kth.se/en
+- DTU:http://www.dtu.dk/english
+
+The authors can be contacted by email: info at itesla-ipsl dot org
+This package is part of the iTesla Power System Library ("OpenIPSL") .
+The OpenIPSL is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
+The OpenIPSL is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
+You should have received a copy of the GNU Lesser General Public License along with the OpenIPSL. If not, see <http://www.gnu.org/licenses/>.
+"));
+ end GroupBus1;
+
+ model GroupBus2
+ extends OpenIPSL.Electrical.Essentials.pfComponent;
+ parameter Real vf0=2.718126892405429 "Initial field voltage";
+ parameter Real vref0=1.181847826013889 "Reference voltage AVR";
+ OpenIPSL.Electrical.Controls.PSAT.AVR.AVRTypeII aVR1TypeII1(
+ Ta=0.02,
+ Tf=1,
+ Ke=1,
+ Tr=0.001,
+ Ka=20,
+ Kf=0.001,
+ Te=1.98,
+ v0=V_0,
+ vrmin=0,
+ vrmax=4.38)
+ annotation (Placement(transformation(extent={{-74,12},{-24,50}})));
+ OpenIPSL.Electrical.Machines.PSAT.Order6 Syn3(
+ Sn=60,
+ Vn=69,
+ V_b=V_b,
+ fn=60,
+ ra=0.0031,
+ xq=0.98,
+ x1d=0.1850,
+ x1q=0.36,
+ x2d=0.13,
+ x2q=0.13,
+ T1d0=6.1,
+ T1q0=0.3,
+ T2q0=0.099,
+ M=2*6.54,
+ D=2,
+ V_0=V_0,
+ xd=1.05,
+ angle_0=angle_0,
+ P_0=P_0,
+ Q_0=Q_0) annotation (Placement(transformation(extent={{20,-36},{86,34}})));
+ OpenIPSL.Interfaces.PwPin pwPin annotation (Placement(transformation(extent={
+ {122,-10},{142,10}}),iconTransformation(extent={{122,-10},{142,10}})));
+ equation
+ connect(aVR1TypeII1.vf, Syn3.vf) annotation (Line(points={{-19,31},{-2.65,31},
+ {-2.65,16.5},{13.4,16.5}}, color={0,0,127}));
+ connect(Syn3.v, aVR1TypeII1.v) annotation (Line(points={{89.3,9.5},{116,9.5},
+ {116,-88},{-82,-88},{-82,-84},{-82,14},{-82,19.6},{-79,19.6}},color={
+ 0,0,127}));
+ connect(Syn3.p, pwPin) annotation (Line(points={{86,-1},{110.65,-1},{110.65,0},
+ {132,0}}, color={0,0,255}));
+ connect(Syn3.pm0, Syn3.pm) annotation (Line(points={{26.6,-39.5},{26.6,-50},{
+ 2,-50},{2,-18.5},{13.4,-18.5}}, color={0,0,127}));
+ connect(Syn3.vf0, aVR1TypeII1.vf0) annotation (Line(points={{26.6,37.5},{26.6,
+ 54},{-14,54},{-14,-12},{-14,-6},{-49,-6},{-49,8.2}}, color={0,0,127}));
+ connect(aVR1TypeII1.vref0, aVR1TypeII1.vref) annotation (Line(points={{-49,
+ 53.8},{-49,68},{-98,68},{-98,40},{-98,42.4},{-79,42.4}}, color={0,0,
+ 127}));
+ annotation (
+ Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-120,-100},{
+ 120,100}})),
+ Icon(coordinateSystem(extent={{-120,-100},{120,100}}, preserveAspectRatio=
+ false), graphics={Ellipse(extent={{-72,78},{120,-74}}, lineColor={
+ 28,108,200}),Line(points={{0,26},{26,-6},{44,20}}, color={28,108,200}),
+ Line(points={{-16,2},{0,26}}, color={28,108,200}),Text(
+ extent={{-6,-22},{32,-54}},
+ lineColor={28,108,200},
+ textString="Gen2 6")}),
+ Documentation(info="
+
+
+Reference |
+PSAT Manual 2.1.8 |
+
+
+Last update |
+13/07/2015 |
+
+
+Author |
+MAA Murad,SmarTS Lab, KTH Royal Institute of Technology |
+
+
+Contact |
+luigiv@kth.se |
+
+
+
<OpenIPSL: iTesla Power System Library>
+Copyright 2015 RTE (France), AIA (Spain), KTH (Sweden) and DTU (Denmark)
+
+- RTE: http://www.rte-france.com/
+- AIA: http://www.aia.es/en/energy/
+- KTH: https://www.kth.se/en
+- DTU:http://www.dtu.dk/english
+
+The authors can be contacted by email: info at itesla-ipsl dot org
+This package is part of the iTesla Power System Library ("OpenIPSL") .
+The OpenIPSL is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
+The OpenIPSL is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
+You should have received a copy of the GNU Lesser General Public License along with the OpenIPSL. If not, see <http://www.gnu.org/licenses/>.
+"));
+ end GroupBus2;
+
+ model GroupBus3
+ extends OpenIPSL.Electrical.Essentials.pfComponent;
+ parameter Real vf0=2.045032675265054 "Initial field voltage";
+ parameter Real vref0=1.112638137121514 "Reference voltage AVR";
+ OpenIPSL.Electrical.Controls.PSAT.AVR.AVRTypeII aVR2TypeII2(
+ Ta=0.02,
+ Tf=1,
+ Ke=1,
+ Tr=0.001,
+ Ka=20,
+ Kf=0.001,
+ Te=1.98,
+ v0=V_0,
+ vrmin=0,
+ vrmax=4.38) annotation (Placement(transformation(
+ extent={{-30,-32},{30,32}},
+ rotation=0,
+ origin={-28,-2})));
+ OpenIPSL.Electrical.Machines.PSAT.Order6 Syn2(
+ Sn=60,
+ Vn=69,
+ V_b=V_b,
+ fn=60,
+ ra=0.0031,
+ xq=0.98,
+ x1d=0.1850,
+ x1q=0.36,
+ x2d=0.13,
+ x2q=0.13,
+ T1d0=6.1,
+ T1q0=0.3,
+ T2q0=0.099,
+ M=2*6.54,
+ D=2,
+ V_0=V_0,
+ xd=1.05,
+ angle_0=angle_0,
+ P_0=P_0,
+ Q_0=Q_0) annotation (Placement(transformation(
+ extent={{-28,-25},{28,25}},
+ rotation=0,
+ origin={66,1})));
+ OpenIPSL.Interfaces.PwPin pwPin annotation (Placement(transformation(extent={
+ {120,-12},{140,8}}),iconTransformation(extent={{120,-12},{140,8}})));
+ equation
+ connect(aVR2TypeII2.vf, Syn2.vf) annotation (Line(points={{8,-2},{12,-2},{12,
+ 13.5},{32.4,13.5}}, color={0,0,127}));
+ connect(Syn2.v, aVR2TypeII2.v) annotation (Line(points={{96.8,8.5},{112,8.5},
+ {112,-48},{-82,-48},{-82,-21.2},{-64,-21.2}}, color={0,0,127}));
+ connect(Syn2.p, pwPin) annotation (Line(points={{94,1},{115.4,1},{115.4,-2},{
+ 130,-2}}, color={0,0,255}));
+ connect(Syn2.pm0, Syn2.pm) annotation (Line(points={{43.6,-26.5},{43.6,-34},{
+ 2,-34},{2,-11.5},{32.4,-11.5}}, color={0,0,127}));
+ connect(aVR2TypeII2.vref0, aVR2TypeII2.vref) annotation (Line(points={{-28,
+ 36.4},{-28,72},{-28,76},{-86,76},{-86,17.2},{-64,17.2}}, color={0,0,
+ 127}));
+ connect(Syn2.vf0, aVR2TypeII2.vf0) annotation (Line(points={{43.6,28.5},{43.6,
+ 90},{-92,90},{-92,-86},{-68,-86},{-68,-40.4},{-28,-40.4}}, color={0,0,
+ 127}));
+ annotation (
+ Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{
+ 120,100}})),
+ Icon(coordinateSystem(extent={{-100,-100},{120,100}}, preserveAspectRatio=
+ false), graphics={Ellipse(extent={{-80,78},{112,-74}}, lineColor={
+ 28,108,200}),Line(points={{-8,26},{18,-6},{36,20}}, color={28,108,200}),
+ Line(points={{-24,2},{-8,26}}, color={28,108,200}),Text(
+ extent={{-14,-24},{24,-56}},
+ lineColor={28,108,200},
+ textString="Gen3 6")}),
+ Documentation(info="
+
+
+Reference |
+PSAT Manual 2.1.8 |
+
+
+Last update |
+13/07/2015 |
+
+
+Author |
+MAA Murad,SmarTS Lab, KTH Royal Institute of Technology |
+
+
+Contact |
+luigiv@kth.se |
+
+
+
<OpenIPSL: iTesla Power System Library>
+Copyright 2015 RTE (France), AIA (Spain), KTH (Sweden) and DTU (Denmark)
+
+- RTE: http://www.rte-france.com/
+- AIA: http://www.aia.es/en/energy/
+- KTH: https://www.kth.se/en
+- DTU:http://www.dtu.dk/english
+
+The authors can be contacted by email: info at itesla-ipsl dot org
+This package is part of the iTesla Power System Library ("OpenIPSL") .
+The OpenIPSL is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
+The OpenIPSL is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
+You should have received a copy of the GNU Lesser General Public License along with the OpenIPSL. If not, see <http://www.gnu.org/licenses/>.
+"));
+ end GroupBus3;
+
+ model GroupBus6
+ extends OpenIPSL.Electrical.Essentials.pfComponent;
+ parameter Real vf0=3.146313160164693 "Initial field voltage";
+ parameter Real vref0=1.228917822125829 "Reference voltage AVR";
+ OpenIPSL.Electrical.Controls.PSAT.AVR.AVRTypeII aVR4TypeII1(
+ Ta=0.02,
+ Tf=1,
+ Ke=1,
+ Tr=0.001,
+ Ka=20,
+ Kf=0.001,
+ Te=0.7,
+ v0=V_0,
+ vrmin=1.395,
+ vrmax=6.81) annotation (Placement(transformation(
+ extent={{-23,-17},{23,17}},
+ rotation=0,
+ origin={-7,53})));
+ OpenIPSL.Electrical.Machines.PSAT.Order6 Syn5(
+ fn=60,
+ D=2,
+ Sn=25,
+ xd=1.25,
+ xq=1.22,
+ x1d=0.232,
+ x1q=0.715,
+ x2d=0.12,
+ x2q=0.12,
+ T1d0=4.75,
+ T1q0=1.5,
+ T2d0=0.06,
+ T2q0=0.21,
+ M=2*5.06,
+ Vn=13.8,
+ V_b=V_b,
+ V_0=V_0,
+ angle_0=angle_0,
+ P_0=P_0,
+ Q_0=Q_0,
+ ra=0.0041) annotation (Placement(transformation(
+ extent={{-23,-20},{23,20}},
+ rotation=0,
+ origin={69,2})));
+ OpenIPSL.Interfaces.PwPin pwPin annotation (Placement(transformation(extent={
+ {100,-10},{120,10}}),iconTransformation(extent={{100,-10},{120,10}})));
+ equation
+ connect(aVR4TypeII1.vf, Syn5.vf) annotation (Line(points={{20.6,53},{32,53},{
+ 32,12},{41.4,12}}, color={0,0,127}));
+ connect(Syn5.v, aVR4TypeII1.v) annotation (Line(points={{94.3,8},{98,8},{98,
+ 88},{-52,88},{-52,42.8},{-34.6,42.8}}, color={0,0,127}));
+ connect(Syn5.p, pwPin) annotation (Line(points={{92,2},{113.15,2},{113.15,0},
+ {110,0}},color={0,0,255}));
+ connect(Syn5.pm0, Syn5.pm) annotation (Line(points={{50.6,-20},{50.6,-26},{28,
+ -26},{28,-8},{41.4,-8}}, color={0,0,127}));
+ connect(aVR4TypeII1.vref0, aVR4TypeII1.vref) annotation (Line(points={{-7,
+ 73.4},{-7,82},{-46,82},{-46,63.2},{-34.6,63.2}}, color={0,0,127}));
+ connect(Syn5.vf0, aVR4TypeII1.vf0) annotation (Line(points={{50.6,24},{26,24},
+ {-7,24},{-7,32.6}}, color={0,0,127}));
+ annotation (
+ Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{
+ 100,100}})),
+ Icon(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{100,
+ 100}}), graphics={Ellipse(extent={{-92,78},{100,-74}}, lineColor={
+ 28,108,200}),Line(points={{-20,26},{6,-6},{24,20}}, color={28,108,200}),
+ Line(points={{-36,2},{-20,26}}, color={28,108,200}),Text(
+ extent={{-24,-22},{14,-54}},
+ lineColor={28,108,200},
+ textString="Gen4 6")}),
+ Documentation(info="
+
+
+Reference |
+PSAT Manual 2.1.8 |
+
+
+Last update |
+13/07/2015 |
+
+
+Author |
+MAA Murad,SmarTS Lab, KTH Royal Institute of Technology |
+
+
+Contact |
+luigiv@kth.se |
+
+
+
<OpenIPSL: iTesla Power System Library>
+Copyright 2015 RTE (France), AIA (Spain), KTH (Sweden) and DTU (Denmark)
+
+- RTE: http://www.rte-france.com/
+- AIA: http://www.aia.es/en/energy/
+- KTH: https://www.kth.se/en
+- DTU:http://www.dtu.dk/english
+
+The authors can be contacted by email: info at itesla-ipsl dot org
+This package is part of the iTesla Power System Library ("OpenIPSL") .
+The OpenIPSL is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
+The OpenIPSL is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
+You should have received a copy of the GNU Lesser General Public License along with the OpenIPSL. If not, see <http://www.gnu.org/licenses/>.
+"));
+ end GroupBus6;
+
+ model GroupBus8
+ extends OpenIPSL.Electrical.Essentials.pfComponent;
+ parameter Real vf0=2.622215878949932 "Initial field voltage";
+ parameter Real vref0=1.221943942023239 "Reference voltage AVR";
+ OpenIPSL.Electrical.Controls.PSAT.AVR.AVRTypeII aVR3TypeII2(
+ Ta=0.02,
+ Tf=1,
+ Ke=1,
+ Tr=0.001,
+ Ka=20,
+ Kf=0.001,
+ Te=0.7,
+ v0=V_0,
+ vrmin=1.395,
+ vrmax=6.810) annotation (Placement(transformation(
+ extent={{-20,-21},{20,21}},
+ rotation=0,
+ origin={-12,13})));
+ OpenIPSL.Electrical.Machines.PSAT.Order6 Syn4(
+ fn=60,
+ D=2,
+ Sn=25,
+ Vn=18,
+ V_b=V_b,
+ xd=1.25,
+ xq=1.22,
+ x1d=0.232,
+ x1q=0.715,
+ x2d=0.12,
+ x2q=0.12,
+ T1d0=4.75,
+ T1q0=1.5,
+ T2d0=0.06,
+ T2q0=0.21,
+ M=2*5.06,
+ V_0=V_0,
+ angle_0=angle_0,
+ P_0=P_0,
+ Q_0=Q_0,
+ ra=0.0041) annotation (Placement(transformation(
+ extent={{-17,-17},{17,17}},
+ rotation=0,
+ origin={55,1})));
+ OpenIPSL.Interfaces.PwPin pwPin annotation (Placement(transformation(extent={
+ {102,-8},{122,12}}),iconTransformation(extent={{102,-8},{122,12}})));
+ equation
+ connect(aVR3TypeII2.vf, Syn4.vf) annotation (Line(points={{12,13},{20.5,13},{
+ 20.5,9.5},{34.6,9.5}}, color={0,0,127}));
+ connect(Syn4.v, aVR3TypeII2.v) annotation (Line(points={{73.7,6.1},{98,6.1},{
+ 98,-34},{-36,-34},{-36,0.4}}, color={0,0,127}));
+ connect(Syn4.p, pwPin) annotation (Line(points={{72,1},{103.85,1},{103.85,2},
+ {112,2}},color={0,0,255}));
+ connect(Syn4.pm0, Syn4.pm) annotation (Line(points={{41.4,-17.7},{41.4,-26},{
+ 18,-26},{18,-7.5},{34.6,-7.5}}, color={0,0,127}));
+ connect(Syn4.vf0, aVR3TypeII2.vf0) annotation (Line(points={{41.4,19.7},{41.4,
+ 38},{12,38},{12,-24},{-12,-24},{-12,-12.2}}, color={0,0,127}));
+ connect(aVR3TypeII2.vref0, aVR3TypeII2.vref) annotation (Line(points={{-12,
+ 38.2},{-12,58},{-12,62},{-56,62},{-56,25.6},{-36,25.6}}, color={0,0,
+ 127}));
+ annotation (
+ Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{
+ 100,100}})),
+ Icon(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{100,
+ 100}}), graphics={Ellipse(extent={{-92,78},{100,-74}}, lineColor={
+ 28,108,200}),Line(points={{-20,26},{6,-6},{24,20}}, color={28,108,200}),
+ Line(points={{-36,2},{-20,26}}, color={28,108,200}),Text(
+ extent={{-26,-22},{12,-54}},
+ lineColor={28,108,200},
+ textString="Gen2 6")}),
+ Documentation(info="
+
+
+Reference |
+PSAT Manual 2.1.8 |
+
+
+Last update |
+13/07/2015 |
+
+
+Author |
+MAA Murad,SmarTS Lab, KTH Royal Institute of Technology |
+
+
+Contact |
+luigiv@kth.se |
+
+
+
<OpenIPSL: iTesla Power System Library>
+Copyright 2015 RTE (France), AIA (Spain), KTH (Sweden) and DTU (Denmark)
+
+- RTE: http://www.rte-france.com/
+- AIA: http://www.aia.es/en/energy/
+- KTH: https://www.kth.se/en
+- DTU:http://www.dtu.dk/english
+
+The authors can be contacted by email: info at itesla-ipsl dot org
+This package is part of the iTesla Power System Library ("OpenIPSL") .
+The OpenIPSL is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
+The OpenIPSL is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
+You should have received a copy of the GNU Lesser General Public License along with the OpenIPSL. If not, see <http://www.gnu.org/licenses/>.
+"));
+ end GroupBus8;
+ annotation (Documentation);
+ end Generation_Groups;
+annotation (
+ uses(OpenIPSL(version="1.5.0"), Modelica(version="3.2.2")),
+ Documentation(info="
+
+Reference |
+PSAT Manual 2.1.8 |
+
+
+Last update |
+13/07/2015 |
+
+
+Author |
+MAA Murad,SmarTS Lab, KTH Royal Institute of Technology |
+
+
+Contact |
+luigiv@kth.se |
+
+
+"),
+ version="1");
+end IEEE14Bus;
diff --git a/Ieee14_Bus_System_Implementation_Using_The_Openipsl_By_Prof_Prof._Luigi_Vanfretti/project_files/IEEE14_bus_system_implementation_in_Modelica_using_the_OpenIPSL.pdf b/Ieee14_Bus_System_Implementation_Using_The_Openipsl_By_Prof_Prof._Luigi_Vanfretti/project_files/IEEE14_bus_system_implementation_in_Modelica_using_the_OpenIPSL.pdf
new file mode 100644
index 0000000..0f64d15
Binary files /dev/null and b/Ieee14_Bus_System_Implementation_Using_The_Openipsl_By_Prof_Prof._Luigi_Vanfretti/project_files/IEEE14_bus_system_implementation_in_Modelica_using_the_OpenIPSL.pdf differ
diff --git a/Ieee9_Bus_System_Implementation_In_Modelica_Using_The_Openipsl_By_Prof_Prof._Luigi_Vanfretti/IEEE9_bus_system_implementation_in_Modelica_using_the_OpenIPSL.pdf b/Ieee9_Bus_System_Implementation_In_Modelica_Using_The_Openipsl_By_Prof_Prof._Luigi_Vanfretti/IEEE9_bus_system_implementation_in_Modelica_using_the_OpenIPSL.pdf
deleted file mode 100644
index 787b01d..0000000
Binary files a/Ieee9_Bus_System_Implementation_In_Modelica_Using_The_Openipsl_By_Prof_Prof._Luigi_Vanfretti/IEEE9_bus_system_implementation_in_Modelica_using_the_OpenIPSL.pdf and /dev/null differ
diff --git a/Ieee9_Bus_System_Implementation_In_Modelica_Using_The_Openipsl_By_Prof_Prof._Luigi_Vanfretti/README.txt b/Ieee9_Bus_System_Implementation_In_Modelica_Using_The_Openipsl_By_Prof_Prof._Luigi_Vanfretti/README.txt
deleted file mode 100644
index cb04058..0000000
--- a/Ieee9_Bus_System_Implementation_In_Modelica_Using_The_Openipsl_By_Prof_Prof._Luigi_Vanfretti/README.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-About the Power System Simulation
-
-Title Of The Power System Simulation Project: IEEE9 bus system implementation in Modelica using the OpenIPSL
-Proposar Name: Prof Luigi Vanfretti
-University: Rensselaer Polytechnic Institute
-
-
-OM PSSP Project By FOSSEE, IIT Bombay
diff --git a/Ieee9_Bus_System_Implementation_In_Modelica_Using_The_Openipsl_By_Prof_Prof._Luigi_Vanfretti/project_files/IEEE9Bus.mo b/Ieee9_Bus_System_Implementation_In_Modelica_Using_The_Openipsl_By_Prof_Prof._Luigi_Vanfretti/project_files/IEEE9Bus.mo
deleted file mode 100644
index fbdf563..0000000
--- a/Ieee9_Bus_System_Implementation_In_Modelica_Using_The_Openipsl_By_Prof_Prof._Luigi_Vanfretti/project_files/IEEE9Bus.mo
+++ /dev/null
@@ -1,696 +0,0 @@
-package IEEE9Bus
- class Copyright "Disclaimer
-OpenIPSL:
-Copyright August 2017 - Prof. Luigi Vanfretti, Rensselaer Polytechnic Institute, Troy, NY.
-Copyright April 2016 - July 2017 SmarTS Lab (Sweden)
-
-The authors can be contacted by email: luigi.vanfretti@gmail.com
-This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0.
-If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0.
-
-iPSL:
-Copyright 2015-2016 RTE (France), SmarTS Lab (Sweden), AIA (Spain) and DTU (Denmark)
-
-The authors can be contacted by email: info@itesla-ipsl.org
-
-This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0.
-If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0.
-"
-
- annotation (
- preferredView="info",
- DocumentationClass=false,
- Icon(graphics={
- Text(
- extent={{-100,140},{100,100}},
- lineColor={0,127,0},
- textString="%name%"),
- Ellipse(
- extent={{-100,100},{100,-100}},
- lineColor={0,127,0},
- fillColor={255,255,255},
- fillPattern=FillPattern.Solid),
- Ellipse(
- extent={{-60,60},{60,-60}},
- lineColor={0,127,72},
- fillColor={0,127,0},
- fillPattern=FillPattern.Solid),
- Ellipse(
- extent={{-40,40},{40,-40}},
- lineColor={255,255,255},
- fillColor={255,255,255},
- fillPattern=FillPattern.Solid),
- Rectangle(
- extent={{28,22},{64,-20}},
- lineColor={255,255,255},
- fillColor={255,255,255},
- fillPattern=FillPattern.Solid)}),
- Documentation);
- end Copyright;
-
- model IEEE_9_Buses
- import Modelica.Constants.pi;
- OpenIPSL.Electrical.Branches.PSAT.TwoWindingTransformer twoWindingTransformer(
- kT=16.5/230,
- x=0.0576,
- r=0,
- V_b=16.5,
- Vn=16.5) annotation (Placement(transformation(
- extent={{-10,-10},{10,10}},
- rotation=90,
- origin={0,-66})));
- OpenIPSL.Electrical.Branches.PwLine line_6_4(
- R=0.017,
- X=0.092,
- G=0,
- B=0.079) annotation (Placement(transformation(
- extent={{-9,-6},{9,6}},
- rotation=270,
- origin={86,-21})));
- OpenIPSL.Electrical.Branches.PwLine line_4_5(
- G=0,
- R=0.01,
- X=0.085,
- B=0.088) annotation (Placement(transformation(
- extent={{-9,-6},{9,6}},
- rotation=270,
- origin={-72,-21})));
- OpenIPSL.Electrical.Loads.PSAT.VoltDependant lOADPQ(
- V_b=230,
- V_0=0.995630859628167,
- Sn=100,
- P_0=125,
- Q_0=50,
- angle_0=-3.9888) annotation (Placement(transformation(
- extent={{-7,-7},{7,7}},
- rotation=0,
- origin={-99,-11})));
- OpenIPSL.Electrical.Loads.PSAT.VoltDependant PQ1(
- V_b=230,
- V_0=1.012654326639182,
- Sn=100,
- P_0=90,
- Q_0=30,
- angle_0=-3.6874) annotation (Placement(transformation(
- extent={{-7,-7},{7,7}},
- rotation=0,
- origin={109,-13})));
- OpenIPSL.Electrical.Branches.PwLine line_9_6(
- G=0,
- R=0.039,
- X=0.170,
- B=0.179) annotation (Placement(transformation(
- extent={{-9,-6},{9,6}},
- rotation=90,
- origin={86,57})));
- OpenIPSL.Electrical.Branches.PwLine line_5_7(
- G=0,
- R=0.032,
- X=0.161,
- B=0.153) annotation (Placement(transformation(
- extent={{-9,-6},{9,6}},
- rotation=90,
- origin={-72,53})));
- OpenIPSL.Electrical.Branches.PwLine line_8_9(
- G=0,
- R=0.0119,
- X=0.1008,
- B=0.1045) annotation (Placement(transformation(
- extent={{-9,-6},{9,6}},
- rotation=180,
- origin={39,90})));
- OpenIPSL.Electrical.Branches.PSAT.TwoWindingTransformer
- twoWindingTransformer1(
- r=0,
- kT=13.8/230,
- x=0.0586,
- V_b=13.8,
- Vn=13.8) annotation (Placement(transformation(
- extent={{-10,-10},{10,10}},
- rotation=180,
- origin={102,90})));
- OpenIPSL.Electrical.Branches.PSAT.TwoWindingTransformer
- twoWindingTransformer2(
- r=0,
- kT=18/230,
- x=0.0625,
- Sn=100,
- V_b=18,
- Vn=18) annotation (Placement(transformation(
- extent={{-10,-10},{10,10}},
- rotation=0,
- origin={-102,90})));
- OpenIPSL.Electrical.Loads.PSAT.VoltDependant lOADPQ1(
- V_b=230,
- V_0=1.015882581760390,
- Sn=100,
- P_0=100,
- Q_0=35,
- angle_0=0.72754) annotation (Placement(transformation(
- extent={{-7,-7},{7,7}},
- rotation=0,
- origin={7,53})));
- OpenIPSL.Electrical.Buses.Bus B2(
- V_0=1.025,
- V_b=18,
- angle_0=9.28)
- annotation (Placement(transformation(extent={{-130,80},{-110,100}})));
- OpenIPSL.Electrical.Buses.Bus B7(
- V_b=230,
- V_0=1.0258,
- angle_0=3.7197)
- annotation (Placement(transformation(extent={{-90,80},{-70,100}})));
- OpenIPSL.Electrical.Buses.Bus B8(
- V_0=1.015882581760390,
- V_b=230,
- angle_0=0.72754) annotation (Placement(transformation(
- extent={{-10,-10},{10,10}},
- rotation=0,
- origin={0,90})));
- OpenIPSL.Electrical.Buses.Bus B9(
- V_b=230,
- V_0=1.0324,
- angle_0=1.9667)
- annotation (Placement(transformation(extent={{70,80},{90,100}})));
- OpenIPSL.Electrical.Buses.Bus B3(
- V_0=1.025,
- V_b=13.8,
- angle_0=4.6648)
- annotation (Placement(transformation(extent={{110,80},{130,100}})));
- OpenIPSL.Electrical.Buses.Bus B6(
- V_0=1.012654326639182,
- V_b=230,
- angle_0=-3.6874) annotation (Placement(transformation(
- extent={{-10,-10},{10,10}},
- rotation=-90,
- origin={86,20})));
- OpenIPSL.Electrical.Buses.Bus B5(
- V_0=0.995630859628167,
- V_b=230,
- angle_0=-3.9888) annotation (Placement(transformation(
- extent={{-12,-12},{12,12}},
- rotation=90,
- origin={-72,20})));
- OpenIPSL.Electrical.Buses.Bus B4(
- V_0=1.0258,
- V_b=230,
- angle_0=-2.2168) annotation (Placement(transformation(
- extent={{-12,-12},{12,12}},
- rotation=-90,
- origin={0,-46})));
- OpenIPSL.Electrical.Buses.Bus B1(
- angle_0=0,
- V_0=1.04,
- V_b=16.5) annotation (Placement(transformation(
- extent={{-12,-12},{12,12}},
- rotation=-90,
- origin={0,-86})));
- Generation_Groups.Gen1 gen1(
- V_b=18,
- V_0=1.025,
- height_1=0.05,
- tstart_1=2,
- refdisturb_1=false,
- vref0=1.120103884682511,
- vf0=1.789323314329606,
- angle_0=0.161966652912444*180/pi,
- P_0=163,
- Q_0=6.6536560198189)
- annotation (Placement(transformation(extent={{-160,80},{-140,100}})));
- Generation_Groups.Gen2 gen2(
- V_b=13.8,
- V_0=1.025,
- height_2=0.05,
- tstart_2=2,
- refdisturb_2=false,
- vref0=1.097573933623472,
- vf0=1.402994304406186,
- P_0=85,
- Q_0=-10.8597088920594,
- angle_0=4.6648)
- annotation (Placement(transformation(extent={{160,80},{140,100}})));
- Generation_Groups.Gen3 gen3(
- V_0=1.040000000000000,
- angle_0=0,
- height_3=0.05,
- tstart_3=2,
- refdisturb_3=false,
- V_b=16.5,
- vref0=1.095242742681042,
- vf0=1.082148046273888,
- P_0=71.6410214993680,
- Q_0=27.0459279594234) annotation (Placement(transformation(
- extent={{-10,-10},{10,10}},
- rotation=90,
- origin={0,-104})));
- inner OpenIPSL.Electrical.SystemBase SysData(S_b=100, fn=50)
- annotation (Placement(transformation(extent={{80,-120},{180,-80}})));
- OpenIPSL.Electrical.Events.PwFault pwFault2(
- X=0.01,
- t1=3,
- t2=3.1,
- R=0.01) annotation (Placement(transformation(
- extent={{-7,-7},{7,7}},
- rotation=270,
- origin={57,61})));
- OpenIPSL.Electrical.Branches.PwLine pwLine2Openings(
- R=0.0085,
- X=0.072,
- G=0,
- B=0.0745,
- t1=30,
- t2=35,
- opening=1)
- annotation (Placement(transformation(extent={{-50,84},{-32,96}})));
- equation
- connect(line_5_7.n, B7.p) annotation (Line(
- points={{-72,61.1},{-72,90},{-80,90}},
- color={0,0,255},
- smooth=Smooth.None));
- connect(twoWindingTransformer1.n, B9.p) annotation (Line(
- points={{91,90},{80,90}},
- color={0,0,255},
- smooth=Smooth.None));
- connect(line_9_6.n, B9.p) annotation (Line(
- points={{86,65.1},{86,90},{80,90}},
- color={0,0,255},
- smooth=Smooth.None));
- connect(twoWindingTransformer1.p, B3.p) annotation (Line(
- points={{113,90},{120,90}},
- color={0,0,255},
- smooth=Smooth.None));
- connect(B6.p, line_9_6.p) annotation (Line(
- points={{86,20},{86,48.9}},
- color={0,0,255},
- smooth=Smooth.None));
- connect(line_5_7.p, B5.p) annotation (Line(
- points={{-72,44.9},{-72,20}},
- color={0,0,255},
- smooth=Smooth.None));
- connect(twoWindingTransformer.p, B1.p) annotation (Line(
- points={{0,-77},{0,-86}},
- color={0,0,255},
- smooth=Smooth.None));
- connect(B2.p, gen1.pwPin)
- annotation (Line(points={{-120,90},{-139,90}}, color={0,0,255}));
- connect(B2.p, twoWindingTransformer2.p)
- annotation (Line(points={{-120,90},{-110,90},{-113,90}}, color={0,0,255}));
- connect(twoWindingTransformer2.n, B7.p)
- annotation (Line(points={{-91,90},{-91,90},{-80,90}}, color={0,0,255}));
- connect(gen2.pwPin, B3.p)
- annotation (Line(points={{139,90},{129.5,90},{120,90}}, color={0,0,255}));
- connect(lOADPQ.p, B5.p) annotation (Line(points={{-99,-4},{-99,4},{-72,4},{-72,
- 20}}, color={0,0,255}));
- connect(B4.p, twoWindingTransformer.n)
- annotation (Line(points={{0,-46},{0,-55}}, color={0,0,255}));
- connect(gen3.pwPin, B1.p)
- annotation (Line(points={{0,-93},{0,-86}}, color={0,0,255}));
- connect(B8.p, lOADPQ1.p) annotation (Line(points={{0,90},{6,90},{6,88},{7,88},
- {7,60}}, color={0,0,255}));
- connect(line_8_9.p, B9.p)
- annotation (Line(points={{47.1,90},{47.1,90},{80,90}}, color={0,0,255}));
- connect(B8.p, line_8_9.n)
- annotation (Line(points={{0,90},{30.9,90}}, color={0,0,255}));
- connect(B5.p, line_4_5.p)
- annotation (Line(points={{-72,20},{-72,-12.9}}, color={0,0,255}));
- connect(B4.p, line_4_5.n) annotation (Line(points={{0,-46},{0,-42},{-72,-42},
- {-72,-29.1}}, color={0,0,255}));
- connect(B6.p, line_6_4.p)
- annotation (Line(points={{86,20},{86,-12.9}}, color={0,0,255}));
- connect(B4.p, line_6_4.n) annotation (Line(points={{0,-46},{-2,-46},{-2,-42},
- {86,-42},{86,-29.1}}, color={0,0,255}));
- connect(B6.p, PQ1.p) annotation (Line(points={{86,20},{86,20},{86,2},{86,4},{
- 109,4},{109,-6}}, color={0,0,255}));
- connect(B9.p, pwFault2.p)
- annotation (Line(points={{80,90},{57,90},{57,69.1667}}, color={0,0,255}));
- connect(B7.p, pwLine2Openings.p)
- annotation (Line(points={{-80,90},{-49.1,90}}, color={0,0,255}));
- connect(B8.p, pwLine2Openings.n)
- annotation (Line(points={{0,90},{-32.9,90}}, color={0,0,255}));
- annotation (
- Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-180,-120},{
- 180,120}})),
- Icon(coordinateSystem(extent={{-180,-120},{180,120}})),
- Documentation(info="
-
-Reference |
-PSAT Manual 2.1.8 |
-
-
-Last update |
-15/07/2015 |
-
-
-Author |
-MAA Murad, SmarTS Lab, KTH Royal Institute of Technology |
-
-
-Contact |
-luigiv@kth.se |
-
-
-"),
- experiment(
- StopTime=20,
- Interval=0.001,
- Tolerance=1e-006,
- __Dymola_fixedstepsize=0.001,
- __Dymola_Algorithm="Rkfix2"),
- __Dymola_experimentSetupOutput);
- end IEEE_9_Buses;
-
- package Generation_Groups
- model Gen1
- extends OpenIPSL.Electrical.Essentials.pfComponent;
- parameter Real vf0=1.755517086537914;
- parameter Real vref0=1.118023800520641;
- parameter Real height_1 annotation (Dialog(group="AVR Disturbance"));
- parameter Real tstart_1 annotation (Dialog(group="AVR Disturbance"));
- parameter Boolean refdisturb_1 annotation (Dialog(group="AVR Disturbance"));
- OpenIPSL.Electrical.Machines.PSAT.Order4 gen(
- Sn=100,
- Vn=18,
- V_b=V_b,
- V_0=V_0,
- angle_0=angle_0,
- P_0=P_0,
- Q_0=Q_0,
- ra=0,
- xd=0.8958,
- xq=0.8645,
- x1d=0.1198,
- x1q=0.1969,
- T1d0=6,
- T1q0=0.5350,
- M=12.8,
- D=0) annotation (Placement(transformation(
- extent={{-10,-10},{10,10}},
- rotation=0,
- origin={28,14})));
- OpenIPSL.Electrical.Controls.PSAT.AVR.AVRTypeII AVR(
- vrmin=-5,
- vrmax=5,
- v0=V_0,
- Ka=20,
- Ta=0.2,
- Kf=0.063,
- Tf=0.35,
- Ke=1,
- Te=0.314,
- Tr=0.001,
- Ae=0.0039,
- Be=1.555) annotation (Placement(transformation(
- extent={{-10,-10},{10,10}},
- rotation=0,
- origin={-6,10})));
- Modelica.Blocks.Sources.Step step(
- startTime=tstart_1,
- offset=vref0,
- height=height_1) annotation (Placement(transformation(
- extent={{-4,-4},{4,4}},
- rotation=90,
- origin={-56,-2})));
- Modelica.Blocks.Logical.Switch switch1
- annotation (Placement(transformation(extent={{-50,12},{-40,22}})));
- Modelica.Blocks.Sources.BooleanConstant booleanConstant(k=refdisturb_1)
- annotation (Placement(transformation(extent={{-80,2},{-70,12}})));
- OpenIPSL.Interfaces.PwPin pwPin
- annotation (Placement(transformation(extent={{100,-10},{120,10}})));
- //Real P_MW;
- //Real Q_MVA;
- equation
- //P_MW = gen.P*S_b;
- // Q_MVA = gen.Q*S_b;
- connect(gen.v, AVR.v) annotation (Line(
- points={{39,17},{48,17},{48,-14},{-22,-14},{-22,4},{-18,4}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(switch1.y, AVR.vref) annotation (Line(points={{-39.5,17},{-26.75,17},
- {-26.75,16},{-18,16}},color={0,0,127}));
- connect(booleanConstant.y, switch1.u2) annotation (Line(points={{-69.5,7},{-66,
- 7},{-66,17},{-51,17}}, color={255,0,255}));
- connect(step.y, switch1.u1)
- annotation (Line(points={{-56,2.4},{-56,21},{-51,21}}, color={0,0,127}));
- connect(gen.p, pwPin) annotation (Line(points={{38,14},{66,14},{66,0},{110,0}},
- color={0,0,255}));
- connect(AVR.vf, gen.vf)
- annotation (Line(points={{6,10},{8,10},{8,19},{16,19}}, color={0,0,127}));
- connect(gen.pm0, gen.pm) annotation (Line(points={{20,3},{20,0},{14,0},{14,9},
- {16,9}}, color={0,0,127}));
- connect(gen.vf0, AVR.vf0) annotation (Line(points={{20,25},{10,25},{10,36},{-26,
- 36},{-26,-8},{-6,-8},{-6,-2}}, color={0,0,127}));
- connect(AVR.vref0, switch1.u3) annotation (Line(points={{-6,22},{-30,22},{-30,
- 50},{-68,50},{-68,42},{-68,13},{-51,13}}, color={0,0,127}));
- annotation (
- Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{
- 100,100}})),
- Icon(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{100,
- 100}}), graphics={Ellipse(extent={{-100,-100},{100,100}}, lineColor=
- {28,108,200}),Line(points={{-60,-20},{-20,20},{20,-20},{60,20}},
- color={28,108,200}),Text(
- extent={{-34,-32},{38,-52}},
- lineColor={28,108,200},
- fillColor={0,0,255},
- fillPattern=FillPattern.Solid,
- textString="%name"),Text(
- extent={{62,106},{134,68}},
- lineColor={238,46,47},
- fillColor={0,0,255},
- fillPattern=FillPattern.Solid,
- textString=DynamicSelect("0.0", String(P_MW, significantDigits=3))),
- Text(
- extent={{62,-70},{134,-108}},
- lineColor={0,255,0},
- fillColor={0,0,255},
- fillPattern=FillPattern.Solid,
- textString=DynamicSelect("0.0", String(Q_MVA, significantDigits=3)))}),
- Documentation);
- end Gen1;
-
- model Gen2
- extends OpenIPSL.Electrical.Essentials.pfComponent;
- parameter Real vf0=1.359665419632471;
- parameter Real vref0=1.095179545801796;
- parameter Real height_2 annotation (Dialog(group="AVR Disturbance"));
- parameter Real tstart_2 annotation (Dialog(group="AVR Disturbance"));
- parameter Boolean refdisturb_2 annotation (Dialog(group="AVR Disturbance"));
- OpenIPSL.Electrical.Machines.PSAT.Order4 gen(
- Sn=100,
- Vn=13.8,
- V_b=V_b,
- V_0=V_0,
- angle_0=angle_0,
- P_0=P_0,
- Q_0=Q_0,
- ra=0,
- xd=1.3125,
- x1d=0.1813,
- x1q=0.25,
- T1d0=5.89,
- T1q0=0.6,
- M=6.02,
- D=0,
- xq=1.2578) annotation (Placement(transformation(
- extent={{-10,-10},{10,10}},
- rotation=0,
- origin={28,14})));
- OpenIPSL.Electrical.Controls.PSAT.AVR.AVRTypeII AVR(
- vrmin=-5,
- vrmax=5,
- v0=V_0,
- Ka=20,
- Ta=0.2,
- Kf=0.063,
- Tf=0.35,
- Ke=1,
- Te=0.314,
- Tr=0.001,
- Ae=0.0039,
- Be=1.555) annotation (Placement(transformation(
- extent={{-10,-10},{10,10}},
- rotation=0,
- origin={-6,10})));
- Modelica.Blocks.Sources.Step step(
- startTime=tstart_2,
- height=height_2,
- offset=vref0) annotation (Placement(transformation(
- extent={{-4,-4},{4,4}},
- rotation=90,
- origin={-56,-2})));
- Modelica.Blocks.Logical.Switch switch1
- annotation (Placement(transformation(extent={{-50,12},{-40,22}})));
- Modelica.Blocks.Sources.BooleanConstant booleanConstant(k=refdisturb_2)
- annotation (Placement(transformation(extent={{-80,2},{-70,12}})));
- OpenIPSL.Interfaces.PwPin pwPin
- annotation (Placement(transformation(extent={{100,-10},{120,10}})));
- //Real P_MW;
- //Real Q_MVA;
- equation
- //P_MW = gen.P*S_b;
- //Q_MVA = gen.Q*S_b;
- connect(gen.v, AVR.v) annotation (Line(
- points={{39,17},{48,17},{48,-14},{-22,-14},{-22,4},{-18,4}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(switch1.y, AVR.vref) annotation (Line(points={{-39.5,17},{-26.75,17},
- {-26.75,16},{-18,16}},color={0,0,127}));
- connect(booleanConstant.y, switch1.u2) annotation (Line(points={{-69.5,7},{-66,
- 7},{-66,17},{-51,17}}, color={255,0,255}));
- connect(step.y, switch1.u1)
- annotation (Line(points={{-56,2.4},{-56,21},{-51,21}}, color={0,0,127}));
- connect(gen.p, pwPin) annotation (Line(points={{38,14},{66,14},{66,0},{110,0}},
- color={0,0,255}));
- connect(AVR.vf, gen.vf)
- annotation (Line(points={{6,10},{8,10},{8,19},{16,19}}, color={0,0,127}));
- connect(gen.pm0, gen.pm) annotation (Line(points={{20,3},{20,0},{12,0},{12,9},
- {16,9}}, color={0,0,127}));
- connect(AVR.vref0, switch1.u3) annotation (Line(points={{-6,22},{-34,22},{-34,
- 42},{-62,42},{-62,13},{-51,13}}, color={0,0,127}));
- connect(AVR.vf0, gen.vf0) annotation (Line(points={{-6,-2},{0,-2},{0,-6},{10,
- -6},{10,25},{20,25}}, color={0,0,127}));
- annotation (
- Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{
- 100,100}})),
- Icon(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{100,
- 100}}), graphics={Ellipse(extent={{-100,-100},{100,100}}, lineColor=
- {28,108,200}),Line(points={{-60,-20},{-20,20},{20,-20},{60,20}},
- color={28,108,200}),Text(
- extent={{-34,-32},{38,-52}},
- lineColor={28,108,200},
- fillColor={0,0,255},
- fillPattern=FillPattern.Solid,
- textString="%name"),Text(
- extent={{62,106},{134,68}},
- lineColor={238,46,47},
- fillColor={0,0,255},
- fillPattern=FillPattern.Solid,
- textString=DynamicSelect("0.0", String(P_MW, significantDigits=3))),
- Text(
- extent={{62,-70},{134,-108}},
- lineColor={0,255,0},
- fillColor={0,0,255},
- fillPattern=FillPattern.Solid,
- textString=DynamicSelect("0.0", String(Q_MVA, significantDigits=3)))}),
- Documentation);
- end Gen2;
-
- model Gen3
- extends OpenIPSL.Electrical.Essentials.pfComponent;
- parameter Real vf0=1.079018784709528;
- parameter Real vref0=1.095077501312303;
- parameter Real height_3 annotation (Dialog(group="AVR Disturbance"));
- parameter Real tstart_3 annotation (Dialog(group="AVR Disturbance"));
- parameter Boolean refdisturb_3 annotation (Dialog(group="AVR Disturbance"));
- OpenIPSL.Electrical.Machines.PSAT.Order4 gen(
- Sn=100,
- ra=0,
- xd=0.1460,
- xq=0.0969,
- x1d=0.0608,
- x1q=0.0969,
- T1d0=8.96,
- T1q0=0.310,
- V_b=V_b,
- V_0=V_0,
- P_0=P_0,
- Q_0=Q_0,
- M=47.28,
- D=0,
- Vn=16.5,
- angle_0=angle_0) annotation (Placement(transformation(
- extent={{-10,-10},{10,10}},
- rotation=0,
- origin={28,14})));
- OpenIPSL.Electrical.Controls.PSAT.AVR.AVRTypeII AVR(
- vrmin=-5,
- vrmax=5,
- v0=V_0,
- Ka=20,
- Ta=0.2,
- Kf=0.063,
- Tf=0.35,
- Ke=1,
- Te=0.314,
- Tr=0.001,
- Ae=0.0039,
- Be=1.555) annotation (Placement(transformation(
- extent={{-10,-10},{10,10}},
- rotation=0,
- origin={-6,10})));
- Modelica.Blocks.Sources.Step step(
- startTime=tstart_3,
- height=height_3,
- offset=vref0) annotation (Placement(transformation(
- extent={{-4,-4},{4,4}},
- rotation=0,
- origin={-66,30})));
- Modelica.Blocks.Logical.Switch switch1
- annotation (Placement(transformation(extent={{-50,12},{-40,22}})));
- Modelica.Blocks.Sources.BooleanConstant booleanConstant(k=refdisturb_3)
- annotation (Placement(transformation(extent={{-72,12},{-62,22}})));
- OpenIPSL.Interfaces.PwPin pwPin
- annotation (Placement(transformation(extent={{100,-10},{120,10}})));
- //Real P_MW;
- //Real Q_MVA;
- equation
- //P_MW = gen.P*S_b;
- //Q_MVA = gen.Q*S_b;
- connect(gen.v, AVR.v) annotation (Line(
- points={{39,17},{48,17},{48,-14},{-22,-14},{-22,4},{-18,4}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(switch1.y, AVR.vref) annotation (Line(points={{-39.5,17},{-26.75,17},
- {-26.75,16},{-18,16}},color={0,0,127}));
- connect(booleanConstant.y, switch1.u2) annotation (Line(points={{-61.5,17},{-61.5,
- 17},{-51,17}}, color={255,0,255}));
- connect(step.y, switch1.u1) annotation (Line(points={{-61.6,30},{-56,30},{-56,
- 21},{-51,21}}, color={0,0,127}));
- connect(gen.p, pwPin) annotation (Line(points={{38,14},{66,14},{66,0},{110,0}},
- color={0,0,255}));
- connect(AVR.vf, gen.vf)
- annotation (Line(points={{6,10},{8,10},{8,19},{16,19}}, color={0,0,127}));
- connect(gen.pm0, gen.pm) annotation (Line(points={{20,3},{20,0},{14,0},{14,9},
- {16,9}}, color={0,0,127}));
- connect(AVR.vf0, gen.vf0) annotation (Line(points={{-6,-2},{-6,-2},{-6,-10},{
- -92,-10},{-92,6},{-92,42},{20,42},{20,25}}, color={0,0,127}));
- connect(AVR.vref0, switch1.u3) annotation (Line(points={{-6,22},{-6,22},{-6,
- 36},{-84,36},{-84,2},{-56,2},{-56,13},{-51,13}}, color={0,0,127}));
- annotation (
- Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{
- 100,100}})),
- Icon(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{100,
- 100}}), graphics={Ellipse(extent={{-100,-100},{100,100}}, lineColor=
- {28,108,200}),Line(points={{-60,-20},{-20,20},{20,-20},{60,20}},
- color={28,108,200}),Text(
- extent={{-34,-32},{38,-52}},
- lineColor={28,108,200},
- fillColor={0,0,255},
- fillPattern=FillPattern.Solid,
- textString="%name"),Text(
- extent={{62,106},{134,68}},
- lineColor={238,46,47},
- fillColor={0,0,255},
- fillPattern=FillPattern.Solid,
- textString=DynamicSelect("0.0", String(P_MW, significantDigits=3))),
- Text(
- extent={{62,-70},{134,-108}},
- lineColor={0,255,0},
- fillColor={0,0,255},
- fillPattern=FillPattern.Solid,
- textString=DynamicSelect("0.0", String(Q_MVA, significantDigits=3)))}),
- Documentation);
- end Gen3;
- annotation (Documentation);
- end Generation_Groups;
-annotation (
- uses(OpenIPSL(version="1.5.0"), Modelica(version="3.2.2")),
- version="1",
- Documentation);
-end IEEE9Bus;
diff --git a/Ieee9_Bus_System_Implementation_In_Modelica_Using_The_Openipsl_By_Prof_Prof._Luigi_Vanfretti/project_files/IEEE9_bus_system_implementation_in_Modelica_using_the_OpenIPSL.pdf b/Ieee9_Bus_System_Implementation_In_Modelica_Using_The_Openipsl_By_Prof_Prof._Luigi_Vanfretti/project_files/IEEE9_bus_system_implementation_in_Modelica_using_the_OpenIPSL.pdf
deleted file mode 100644
index 787b01d..0000000
Binary files a/Ieee9_Bus_System_Implementation_In_Modelica_Using_The_Openipsl_By_Prof_Prof._Luigi_Vanfretti/project_files/IEEE9_bus_system_implementation_in_Modelica_using_the_OpenIPSL.pdf and /dev/null differ
diff --git a/Ieee9_Bus_System_Implementation_Using_The_Openipsl_By_Prof_Prof._Luigi_Vanfretti/IEEE9_bus_system_implementation_in_Modelica_using_the_OpenIPSL.pdf b/Ieee9_Bus_System_Implementation_Using_The_Openipsl_By_Prof_Prof._Luigi_Vanfretti/IEEE9_bus_system_implementation_in_Modelica_using_the_OpenIPSL.pdf
new file mode 100644
index 0000000..787b01d
Binary files /dev/null and b/Ieee9_Bus_System_Implementation_Using_The_Openipsl_By_Prof_Prof._Luigi_Vanfretti/IEEE9_bus_system_implementation_in_Modelica_using_the_OpenIPSL.pdf differ
diff --git a/Ieee9_Bus_System_Implementation_Using_The_Openipsl_By_Prof_Prof._Luigi_Vanfretti/README.txt b/Ieee9_Bus_System_Implementation_Using_The_Openipsl_By_Prof_Prof._Luigi_Vanfretti/README.txt
new file mode 100644
index 0000000..cb04058
--- /dev/null
+++ b/Ieee9_Bus_System_Implementation_Using_The_Openipsl_By_Prof_Prof._Luigi_Vanfretti/README.txt
@@ -0,0 +1,8 @@
+About the Power System Simulation
+
+Title Of The Power System Simulation Project: IEEE9 bus system implementation in Modelica using the OpenIPSL
+Proposar Name: Prof Luigi Vanfretti
+University: Rensselaer Polytechnic Institute
+
+
+OM PSSP Project By FOSSEE, IIT Bombay
diff --git a/Ieee9_Bus_System_Implementation_Using_The_Openipsl_By_Prof_Prof._Luigi_Vanfretti/project_files/IEEE9Bus.mo b/Ieee9_Bus_System_Implementation_Using_The_Openipsl_By_Prof_Prof._Luigi_Vanfretti/project_files/IEEE9Bus.mo
new file mode 100644
index 0000000..fbdf563
--- /dev/null
+++ b/Ieee9_Bus_System_Implementation_Using_The_Openipsl_By_Prof_Prof._Luigi_Vanfretti/project_files/IEEE9Bus.mo
@@ -0,0 +1,696 @@
+package IEEE9Bus
+ class Copyright "Disclaimer
+OpenIPSL:
+Copyright August 2017 - Prof. Luigi Vanfretti, Rensselaer Polytechnic Institute, Troy, NY.
+Copyright April 2016 - July 2017 SmarTS Lab (Sweden)
+
+The authors can be contacted by email: luigi.vanfretti@gmail.com
+This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0.
+If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0.
+
+iPSL:
+Copyright 2015-2016 RTE (France), SmarTS Lab (Sweden), AIA (Spain) and DTU (Denmark)
+
+The authors can be contacted by email: info@itesla-ipsl.org
+
+This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0.
+If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0.
+"
+
+ annotation (
+ preferredView="info",
+ DocumentationClass=false,
+ Icon(graphics={
+ Text(
+ extent={{-100,140},{100,100}},
+ lineColor={0,127,0},
+ textString="%name%"),
+ Ellipse(
+ extent={{-100,100},{100,-100}},
+ lineColor={0,127,0},
+ fillColor={255,255,255},
+ fillPattern=FillPattern.Solid),
+ Ellipse(
+ extent={{-60,60},{60,-60}},
+ lineColor={0,127,72},
+ fillColor={0,127,0},
+ fillPattern=FillPattern.Solid),
+ Ellipse(
+ extent={{-40,40},{40,-40}},
+ lineColor={255,255,255},
+ fillColor={255,255,255},
+ fillPattern=FillPattern.Solid),
+ Rectangle(
+ extent={{28,22},{64,-20}},
+ lineColor={255,255,255},
+ fillColor={255,255,255},
+ fillPattern=FillPattern.Solid)}),
+ Documentation);
+ end Copyright;
+
+ model IEEE_9_Buses
+ import Modelica.Constants.pi;
+ OpenIPSL.Electrical.Branches.PSAT.TwoWindingTransformer twoWindingTransformer(
+ kT=16.5/230,
+ x=0.0576,
+ r=0,
+ V_b=16.5,
+ Vn=16.5) annotation (Placement(transformation(
+ extent={{-10,-10},{10,10}},
+ rotation=90,
+ origin={0,-66})));
+ OpenIPSL.Electrical.Branches.PwLine line_6_4(
+ R=0.017,
+ X=0.092,
+ G=0,
+ B=0.079) annotation (Placement(transformation(
+ extent={{-9,-6},{9,6}},
+ rotation=270,
+ origin={86,-21})));
+ OpenIPSL.Electrical.Branches.PwLine line_4_5(
+ G=0,
+ R=0.01,
+ X=0.085,
+ B=0.088) annotation (Placement(transformation(
+ extent={{-9,-6},{9,6}},
+ rotation=270,
+ origin={-72,-21})));
+ OpenIPSL.Electrical.Loads.PSAT.VoltDependant lOADPQ(
+ V_b=230,
+ V_0=0.995630859628167,
+ Sn=100,
+ P_0=125,
+ Q_0=50,
+ angle_0=-3.9888) annotation (Placement(transformation(
+ extent={{-7,-7},{7,7}},
+ rotation=0,
+ origin={-99,-11})));
+ OpenIPSL.Electrical.Loads.PSAT.VoltDependant PQ1(
+ V_b=230,
+ V_0=1.012654326639182,
+ Sn=100,
+ P_0=90,
+ Q_0=30,
+ angle_0=-3.6874) annotation (Placement(transformation(
+ extent={{-7,-7},{7,7}},
+ rotation=0,
+ origin={109,-13})));
+ OpenIPSL.Electrical.Branches.PwLine line_9_6(
+ G=0,
+ R=0.039,
+ X=0.170,
+ B=0.179) annotation (Placement(transformation(
+ extent={{-9,-6},{9,6}},
+ rotation=90,
+ origin={86,57})));
+ OpenIPSL.Electrical.Branches.PwLine line_5_7(
+ G=0,
+ R=0.032,
+ X=0.161,
+ B=0.153) annotation (Placement(transformation(
+ extent={{-9,-6},{9,6}},
+ rotation=90,
+ origin={-72,53})));
+ OpenIPSL.Electrical.Branches.PwLine line_8_9(
+ G=0,
+ R=0.0119,
+ X=0.1008,
+ B=0.1045) annotation (Placement(transformation(
+ extent={{-9,-6},{9,6}},
+ rotation=180,
+ origin={39,90})));
+ OpenIPSL.Electrical.Branches.PSAT.TwoWindingTransformer
+ twoWindingTransformer1(
+ r=0,
+ kT=13.8/230,
+ x=0.0586,
+ V_b=13.8,
+ Vn=13.8) annotation (Placement(transformation(
+ extent={{-10,-10},{10,10}},
+ rotation=180,
+ origin={102,90})));
+ OpenIPSL.Electrical.Branches.PSAT.TwoWindingTransformer
+ twoWindingTransformer2(
+ r=0,
+ kT=18/230,
+ x=0.0625,
+ Sn=100,
+ V_b=18,
+ Vn=18) annotation (Placement(transformation(
+ extent={{-10,-10},{10,10}},
+ rotation=0,
+ origin={-102,90})));
+ OpenIPSL.Electrical.Loads.PSAT.VoltDependant lOADPQ1(
+ V_b=230,
+ V_0=1.015882581760390,
+ Sn=100,
+ P_0=100,
+ Q_0=35,
+ angle_0=0.72754) annotation (Placement(transformation(
+ extent={{-7,-7},{7,7}},
+ rotation=0,
+ origin={7,53})));
+ OpenIPSL.Electrical.Buses.Bus B2(
+ V_0=1.025,
+ V_b=18,
+ angle_0=9.28)
+ annotation (Placement(transformation(extent={{-130,80},{-110,100}})));
+ OpenIPSL.Electrical.Buses.Bus B7(
+ V_b=230,
+ V_0=1.0258,
+ angle_0=3.7197)
+ annotation (Placement(transformation(extent={{-90,80},{-70,100}})));
+ OpenIPSL.Electrical.Buses.Bus B8(
+ V_0=1.015882581760390,
+ V_b=230,
+ angle_0=0.72754) annotation (Placement(transformation(
+ extent={{-10,-10},{10,10}},
+ rotation=0,
+ origin={0,90})));
+ OpenIPSL.Electrical.Buses.Bus B9(
+ V_b=230,
+ V_0=1.0324,
+ angle_0=1.9667)
+ annotation (Placement(transformation(extent={{70,80},{90,100}})));
+ OpenIPSL.Electrical.Buses.Bus B3(
+ V_0=1.025,
+ V_b=13.8,
+ angle_0=4.6648)
+ annotation (Placement(transformation(extent={{110,80},{130,100}})));
+ OpenIPSL.Electrical.Buses.Bus B6(
+ V_0=1.012654326639182,
+ V_b=230,
+ angle_0=-3.6874) annotation (Placement(transformation(
+ extent={{-10,-10},{10,10}},
+ rotation=-90,
+ origin={86,20})));
+ OpenIPSL.Electrical.Buses.Bus B5(
+ V_0=0.995630859628167,
+ V_b=230,
+ angle_0=-3.9888) annotation (Placement(transformation(
+ extent={{-12,-12},{12,12}},
+ rotation=90,
+ origin={-72,20})));
+ OpenIPSL.Electrical.Buses.Bus B4(
+ V_0=1.0258,
+ V_b=230,
+ angle_0=-2.2168) annotation (Placement(transformation(
+ extent={{-12,-12},{12,12}},
+ rotation=-90,
+ origin={0,-46})));
+ OpenIPSL.Electrical.Buses.Bus B1(
+ angle_0=0,
+ V_0=1.04,
+ V_b=16.5) annotation (Placement(transformation(
+ extent={{-12,-12},{12,12}},
+ rotation=-90,
+ origin={0,-86})));
+ Generation_Groups.Gen1 gen1(
+ V_b=18,
+ V_0=1.025,
+ height_1=0.05,
+ tstart_1=2,
+ refdisturb_1=false,
+ vref0=1.120103884682511,
+ vf0=1.789323314329606,
+ angle_0=0.161966652912444*180/pi,
+ P_0=163,
+ Q_0=6.6536560198189)
+ annotation (Placement(transformation(extent={{-160,80},{-140,100}})));
+ Generation_Groups.Gen2 gen2(
+ V_b=13.8,
+ V_0=1.025,
+ height_2=0.05,
+ tstart_2=2,
+ refdisturb_2=false,
+ vref0=1.097573933623472,
+ vf0=1.402994304406186,
+ P_0=85,
+ Q_0=-10.8597088920594,
+ angle_0=4.6648)
+ annotation (Placement(transformation(extent={{160,80},{140,100}})));
+ Generation_Groups.Gen3 gen3(
+ V_0=1.040000000000000,
+ angle_0=0,
+ height_3=0.05,
+ tstart_3=2,
+ refdisturb_3=false,
+ V_b=16.5,
+ vref0=1.095242742681042,
+ vf0=1.082148046273888,
+ P_0=71.6410214993680,
+ Q_0=27.0459279594234) annotation (Placement(transformation(
+ extent={{-10,-10},{10,10}},
+ rotation=90,
+ origin={0,-104})));
+ inner OpenIPSL.Electrical.SystemBase SysData(S_b=100, fn=50)
+ annotation (Placement(transformation(extent={{80,-120},{180,-80}})));
+ OpenIPSL.Electrical.Events.PwFault pwFault2(
+ X=0.01,
+ t1=3,
+ t2=3.1,
+ R=0.01) annotation (Placement(transformation(
+ extent={{-7,-7},{7,7}},
+ rotation=270,
+ origin={57,61})));
+ OpenIPSL.Electrical.Branches.PwLine pwLine2Openings(
+ R=0.0085,
+ X=0.072,
+ G=0,
+ B=0.0745,
+ t1=30,
+ t2=35,
+ opening=1)
+ annotation (Placement(transformation(extent={{-50,84},{-32,96}})));
+ equation
+ connect(line_5_7.n, B7.p) annotation (Line(
+ points={{-72,61.1},{-72,90},{-80,90}},
+ color={0,0,255},
+ smooth=Smooth.None));
+ connect(twoWindingTransformer1.n, B9.p) annotation (Line(
+ points={{91,90},{80,90}},
+ color={0,0,255},
+ smooth=Smooth.None));
+ connect(line_9_6.n, B9.p) annotation (Line(
+ points={{86,65.1},{86,90},{80,90}},
+ color={0,0,255},
+ smooth=Smooth.None));
+ connect(twoWindingTransformer1.p, B3.p) annotation (Line(
+ points={{113,90},{120,90}},
+ color={0,0,255},
+ smooth=Smooth.None));
+ connect(B6.p, line_9_6.p) annotation (Line(
+ points={{86,20},{86,48.9}},
+ color={0,0,255},
+ smooth=Smooth.None));
+ connect(line_5_7.p, B5.p) annotation (Line(
+ points={{-72,44.9},{-72,20}},
+ color={0,0,255},
+ smooth=Smooth.None));
+ connect(twoWindingTransformer.p, B1.p) annotation (Line(
+ points={{0,-77},{0,-86}},
+ color={0,0,255},
+ smooth=Smooth.None));
+ connect(B2.p, gen1.pwPin)
+ annotation (Line(points={{-120,90},{-139,90}}, color={0,0,255}));
+ connect(B2.p, twoWindingTransformer2.p)
+ annotation (Line(points={{-120,90},{-110,90},{-113,90}}, color={0,0,255}));
+ connect(twoWindingTransformer2.n, B7.p)
+ annotation (Line(points={{-91,90},{-91,90},{-80,90}}, color={0,0,255}));
+ connect(gen2.pwPin, B3.p)
+ annotation (Line(points={{139,90},{129.5,90},{120,90}}, color={0,0,255}));
+ connect(lOADPQ.p, B5.p) annotation (Line(points={{-99,-4},{-99,4},{-72,4},{-72,
+ 20}}, color={0,0,255}));
+ connect(B4.p, twoWindingTransformer.n)
+ annotation (Line(points={{0,-46},{0,-55}}, color={0,0,255}));
+ connect(gen3.pwPin, B1.p)
+ annotation (Line(points={{0,-93},{0,-86}}, color={0,0,255}));
+ connect(B8.p, lOADPQ1.p) annotation (Line(points={{0,90},{6,90},{6,88},{7,88},
+ {7,60}}, color={0,0,255}));
+ connect(line_8_9.p, B9.p)
+ annotation (Line(points={{47.1,90},{47.1,90},{80,90}}, color={0,0,255}));
+ connect(B8.p, line_8_9.n)
+ annotation (Line(points={{0,90},{30.9,90}}, color={0,0,255}));
+ connect(B5.p, line_4_5.p)
+ annotation (Line(points={{-72,20},{-72,-12.9}}, color={0,0,255}));
+ connect(B4.p, line_4_5.n) annotation (Line(points={{0,-46},{0,-42},{-72,-42},
+ {-72,-29.1}}, color={0,0,255}));
+ connect(B6.p, line_6_4.p)
+ annotation (Line(points={{86,20},{86,-12.9}}, color={0,0,255}));
+ connect(B4.p, line_6_4.n) annotation (Line(points={{0,-46},{-2,-46},{-2,-42},
+ {86,-42},{86,-29.1}}, color={0,0,255}));
+ connect(B6.p, PQ1.p) annotation (Line(points={{86,20},{86,20},{86,2},{86,4},{
+ 109,4},{109,-6}}, color={0,0,255}));
+ connect(B9.p, pwFault2.p)
+ annotation (Line(points={{80,90},{57,90},{57,69.1667}}, color={0,0,255}));
+ connect(B7.p, pwLine2Openings.p)
+ annotation (Line(points={{-80,90},{-49.1,90}}, color={0,0,255}));
+ connect(B8.p, pwLine2Openings.n)
+ annotation (Line(points={{0,90},{-32.9,90}}, color={0,0,255}));
+ annotation (
+ Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-180,-120},{
+ 180,120}})),
+ Icon(coordinateSystem(extent={{-180,-120},{180,120}})),
+ Documentation(info="
+
+Reference |
+PSAT Manual 2.1.8 |
+
+
+Last update |
+15/07/2015 |
+
+
+Author |
+MAA Murad, SmarTS Lab, KTH Royal Institute of Technology |
+
+
+Contact |
+luigiv@kth.se |
+
+
+"),
+ experiment(
+ StopTime=20,
+ Interval=0.001,
+ Tolerance=1e-006,
+ __Dymola_fixedstepsize=0.001,
+ __Dymola_Algorithm="Rkfix2"),
+ __Dymola_experimentSetupOutput);
+ end IEEE_9_Buses;
+
+ package Generation_Groups
+ model Gen1
+ extends OpenIPSL.Electrical.Essentials.pfComponent;
+ parameter Real vf0=1.755517086537914;
+ parameter Real vref0=1.118023800520641;
+ parameter Real height_1 annotation (Dialog(group="AVR Disturbance"));
+ parameter Real tstart_1 annotation (Dialog(group="AVR Disturbance"));
+ parameter Boolean refdisturb_1 annotation (Dialog(group="AVR Disturbance"));
+ OpenIPSL.Electrical.Machines.PSAT.Order4 gen(
+ Sn=100,
+ Vn=18,
+ V_b=V_b,
+ V_0=V_0,
+ angle_0=angle_0,
+ P_0=P_0,
+ Q_0=Q_0,
+ ra=0,
+ xd=0.8958,
+ xq=0.8645,
+ x1d=0.1198,
+ x1q=0.1969,
+ T1d0=6,
+ T1q0=0.5350,
+ M=12.8,
+ D=0) annotation (Placement(transformation(
+ extent={{-10,-10},{10,10}},
+ rotation=0,
+ origin={28,14})));
+ OpenIPSL.Electrical.Controls.PSAT.AVR.AVRTypeII AVR(
+ vrmin=-5,
+ vrmax=5,
+ v0=V_0,
+ Ka=20,
+ Ta=0.2,
+ Kf=0.063,
+ Tf=0.35,
+ Ke=1,
+ Te=0.314,
+ Tr=0.001,
+ Ae=0.0039,
+ Be=1.555) annotation (Placement(transformation(
+ extent={{-10,-10},{10,10}},
+ rotation=0,
+ origin={-6,10})));
+ Modelica.Blocks.Sources.Step step(
+ startTime=tstart_1,
+ offset=vref0,
+ height=height_1) annotation (Placement(transformation(
+ extent={{-4,-4},{4,4}},
+ rotation=90,
+ origin={-56,-2})));
+ Modelica.Blocks.Logical.Switch switch1
+ annotation (Placement(transformation(extent={{-50,12},{-40,22}})));
+ Modelica.Blocks.Sources.BooleanConstant booleanConstant(k=refdisturb_1)
+ annotation (Placement(transformation(extent={{-80,2},{-70,12}})));
+ OpenIPSL.Interfaces.PwPin pwPin
+ annotation (Placement(transformation(extent={{100,-10},{120,10}})));
+ //Real P_MW;
+ //Real Q_MVA;
+ equation
+ //P_MW = gen.P*S_b;
+ // Q_MVA = gen.Q*S_b;
+ connect(gen.v, AVR.v) annotation (Line(
+ points={{39,17},{48,17},{48,-14},{-22,-14},{-22,4},{-18,4}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(switch1.y, AVR.vref) annotation (Line(points={{-39.5,17},{-26.75,17},
+ {-26.75,16},{-18,16}},color={0,0,127}));
+ connect(booleanConstant.y, switch1.u2) annotation (Line(points={{-69.5,7},{-66,
+ 7},{-66,17},{-51,17}}, color={255,0,255}));
+ connect(step.y, switch1.u1)
+ annotation (Line(points={{-56,2.4},{-56,21},{-51,21}}, color={0,0,127}));
+ connect(gen.p, pwPin) annotation (Line(points={{38,14},{66,14},{66,0},{110,0}},
+ color={0,0,255}));
+ connect(AVR.vf, gen.vf)
+ annotation (Line(points={{6,10},{8,10},{8,19},{16,19}}, color={0,0,127}));
+ connect(gen.pm0, gen.pm) annotation (Line(points={{20,3},{20,0},{14,0},{14,9},
+ {16,9}}, color={0,0,127}));
+ connect(gen.vf0, AVR.vf0) annotation (Line(points={{20,25},{10,25},{10,36},{-26,
+ 36},{-26,-8},{-6,-8},{-6,-2}}, color={0,0,127}));
+ connect(AVR.vref0, switch1.u3) annotation (Line(points={{-6,22},{-30,22},{-30,
+ 50},{-68,50},{-68,42},{-68,13},{-51,13}}, color={0,0,127}));
+ annotation (
+ Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{
+ 100,100}})),
+ Icon(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{100,
+ 100}}), graphics={Ellipse(extent={{-100,-100},{100,100}}, lineColor=
+ {28,108,200}),Line(points={{-60,-20},{-20,20},{20,-20},{60,20}},
+ color={28,108,200}),Text(
+ extent={{-34,-32},{38,-52}},
+ lineColor={28,108,200},
+ fillColor={0,0,255},
+ fillPattern=FillPattern.Solid,
+ textString="%name"),Text(
+ extent={{62,106},{134,68}},
+ lineColor={238,46,47},
+ fillColor={0,0,255},
+ fillPattern=FillPattern.Solid,
+ textString=DynamicSelect("0.0", String(P_MW, significantDigits=3))),
+ Text(
+ extent={{62,-70},{134,-108}},
+ lineColor={0,255,0},
+ fillColor={0,0,255},
+ fillPattern=FillPattern.Solid,
+ textString=DynamicSelect("0.0", String(Q_MVA, significantDigits=3)))}),
+ Documentation);
+ end Gen1;
+
+ model Gen2
+ extends OpenIPSL.Electrical.Essentials.pfComponent;
+ parameter Real vf0=1.359665419632471;
+ parameter Real vref0=1.095179545801796;
+ parameter Real height_2 annotation (Dialog(group="AVR Disturbance"));
+ parameter Real tstart_2 annotation (Dialog(group="AVR Disturbance"));
+ parameter Boolean refdisturb_2 annotation (Dialog(group="AVR Disturbance"));
+ OpenIPSL.Electrical.Machines.PSAT.Order4 gen(
+ Sn=100,
+ Vn=13.8,
+ V_b=V_b,
+ V_0=V_0,
+ angle_0=angle_0,
+ P_0=P_0,
+ Q_0=Q_0,
+ ra=0,
+ xd=1.3125,
+ x1d=0.1813,
+ x1q=0.25,
+ T1d0=5.89,
+ T1q0=0.6,
+ M=6.02,
+ D=0,
+ xq=1.2578) annotation (Placement(transformation(
+ extent={{-10,-10},{10,10}},
+ rotation=0,
+ origin={28,14})));
+ OpenIPSL.Electrical.Controls.PSAT.AVR.AVRTypeII AVR(
+ vrmin=-5,
+ vrmax=5,
+ v0=V_0,
+ Ka=20,
+ Ta=0.2,
+ Kf=0.063,
+ Tf=0.35,
+ Ke=1,
+ Te=0.314,
+ Tr=0.001,
+ Ae=0.0039,
+ Be=1.555) annotation (Placement(transformation(
+ extent={{-10,-10},{10,10}},
+ rotation=0,
+ origin={-6,10})));
+ Modelica.Blocks.Sources.Step step(
+ startTime=tstart_2,
+ height=height_2,
+ offset=vref0) annotation (Placement(transformation(
+ extent={{-4,-4},{4,4}},
+ rotation=90,
+ origin={-56,-2})));
+ Modelica.Blocks.Logical.Switch switch1
+ annotation (Placement(transformation(extent={{-50,12},{-40,22}})));
+ Modelica.Blocks.Sources.BooleanConstant booleanConstant(k=refdisturb_2)
+ annotation (Placement(transformation(extent={{-80,2},{-70,12}})));
+ OpenIPSL.Interfaces.PwPin pwPin
+ annotation (Placement(transformation(extent={{100,-10},{120,10}})));
+ //Real P_MW;
+ //Real Q_MVA;
+ equation
+ //P_MW = gen.P*S_b;
+ //Q_MVA = gen.Q*S_b;
+ connect(gen.v, AVR.v) annotation (Line(
+ points={{39,17},{48,17},{48,-14},{-22,-14},{-22,4},{-18,4}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(switch1.y, AVR.vref) annotation (Line(points={{-39.5,17},{-26.75,17},
+ {-26.75,16},{-18,16}},color={0,0,127}));
+ connect(booleanConstant.y, switch1.u2) annotation (Line(points={{-69.5,7},{-66,
+ 7},{-66,17},{-51,17}}, color={255,0,255}));
+ connect(step.y, switch1.u1)
+ annotation (Line(points={{-56,2.4},{-56,21},{-51,21}}, color={0,0,127}));
+ connect(gen.p, pwPin) annotation (Line(points={{38,14},{66,14},{66,0},{110,0}},
+ color={0,0,255}));
+ connect(AVR.vf, gen.vf)
+ annotation (Line(points={{6,10},{8,10},{8,19},{16,19}}, color={0,0,127}));
+ connect(gen.pm0, gen.pm) annotation (Line(points={{20,3},{20,0},{12,0},{12,9},
+ {16,9}}, color={0,0,127}));
+ connect(AVR.vref0, switch1.u3) annotation (Line(points={{-6,22},{-34,22},{-34,
+ 42},{-62,42},{-62,13},{-51,13}}, color={0,0,127}));
+ connect(AVR.vf0, gen.vf0) annotation (Line(points={{-6,-2},{0,-2},{0,-6},{10,
+ -6},{10,25},{20,25}}, color={0,0,127}));
+ annotation (
+ Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{
+ 100,100}})),
+ Icon(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{100,
+ 100}}), graphics={Ellipse(extent={{-100,-100},{100,100}}, lineColor=
+ {28,108,200}),Line(points={{-60,-20},{-20,20},{20,-20},{60,20}},
+ color={28,108,200}),Text(
+ extent={{-34,-32},{38,-52}},
+ lineColor={28,108,200},
+ fillColor={0,0,255},
+ fillPattern=FillPattern.Solid,
+ textString="%name"),Text(
+ extent={{62,106},{134,68}},
+ lineColor={238,46,47},
+ fillColor={0,0,255},
+ fillPattern=FillPattern.Solid,
+ textString=DynamicSelect("0.0", String(P_MW, significantDigits=3))),
+ Text(
+ extent={{62,-70},{134,-108}},
+ lineColor={0,255,0},
+ fillColor={0,0,255},
+ fillPattern=FillPattern.Solid,
+ textString=DynamicSelect("0.0", String(Q_MVA, significantDigits=3)))}),
+ Documentation);
+ end Gen2;
+
+ model Gen3
+ extends OpenIPSL.Electrical.Essentials.pfComponent;
+ parameter Real vf0=1.079018784709528;
+ parameter Real vref0=1.095077501312303;
+ parameter Real height_3 annotation (Dialog(group="AVR Disturbance"));
+ parameter Real tstart_3 annotation (Dialog(group="AVR Disturbance"));
+ parameter Boolean refdisturb_3 annotation (Dialog(group="AVR Disturbance"));
+ OpenIPSL.Electrical.Machines.PSAT.Order4 gen(
+ Sn=100,
+ ra=0,
+ xd=0.1460,
+ xq=0.0969,
+ x1d=0.0608,
+ x1q=0.0969,
+ T1d0=8.96,
+ T1q0=0.310,
+ V_b=V_b,
+ V_0=V_0,
+ P_0=P_0,
+ Q_0=Q_0,
+ M=47.28,
+ D=0,
+ Vn=16.5,
+ angle_0=angle_0) annotation (Placement(transformation(
+ extent={{-10,-10},{10,10}},
+ rotation=0,
+ origin={28,14})));
+ OpenIPSL.Electrical.Controls.PSAT.AVR.AVRTypeII AVR(
+ vrmin=-5,
+ vrmax=5,
+ v0=V_0,
+ Ka=20,
+ Ta=0.2,
+ Kf=0.063,
+ Tf=0.35,
+ Ke=1,
+ Te=0.314,
+ Tr=0.001,
+ Ae=0.0039,
+ Be=1.555) annotation (Placement(transformation(
+ extent={{-10,-10},{10,10}},
+ rotation=0,
+ origin={-6,10})));
+ Modelica.Blocks.Sources.Step step(
+ startTime=tstart_3,
+ height=height_3,
+ offset=vref0) annotation (Placement(transformation(
+ extent={{-4,-4},{4,4}},
+ rotation=0,
+ origin={-66,30})));
+ Modelica.Blocks.Logical.Switch switch1
+ annotation (Placement(transformation(extent={{-50,12},{-40,22}})));
+ Modelica.Blocks.Sources.BooleanConstant booleanConstant(k=refdisturb_3)
+ annotation (Placement(transformation(extent={{-72,12},{-62,22}})));
+ OpenIPSL.Interfaces.PwPin pwPin
+ annotation (Placement(transformation(extent={{100,-10},{120,10}})));
+ //Real P_MW;
+ //Real Q_MVA;
+ equation
+ //P_MW = gen.P*S_b;
+ //Q_MVA = gen.Q*S_b;
+ connect(gen.v, AVR.v) annotation (Line(
+ points={{39,17},{48,17},{48,-14},{-22,-14},{-22,4},{-18,4}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(switch1.y, AVR.vref) annotation (Line(points={{-39.5,17},{-26.75,17},
+ {-26.75,16},{-18,16}},color={0,0,127}));
+ connect(booleanConstant.y, switch1.u2) annotation (Line(points={{-61.5,17},{-61.5,
+ 17},{-51,17}}, color={255,0,255}));
+ connect(step.y, switch1.u1) annotation (Line(points={{-61.6,30},{-56,30},{-56,
+ 21},{-51,21}}, color={0,0,127}));
+ connect(gen.p, pwPin) annotation (Line(points={{38,14},{66,14},{66,0},{110,0}},
+ color={0,0,255}));
+ connect(AVR.vf, gen.vf)
+ annotation (Line(points={{6,10},{8,10},{8,19},{16,19}}, color={0,0,127}));
+ connect(gen.pm0, gen.pm) annotation (Line(points={{20,3},{20,0},{14,0},{14,9},
+ {16,9}}, color={0,0,127}));
+ connect(AVR.vf0, gen.vf0) annotation (Line(points={{-6,-2},{-6,-2},{-6,-10},{
+ -92,-10},{-92,6},{-92,42},{20,42},{20,25}}, color={0,0,127}));
+ connect(AVR.vref0, switch1.u3) annotation (Line(points={{-6,22},{-6,22},{-6,
+ 36},{-84,36},{-84,2},{-56,2},{-56,13},{-51,13}}, color={0,0,127}));
+ annotation (
+ Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{
+ 100,100}})),
+ Icon(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{100,
+ 100}}), graphics={Ellipse(extent={{-100,-100},{100,100}}, lineColor=
+ {28,108,200}),Line(points={{-60,-20},{-20,20},{20,-20},{60,20}},
+ color={28,108,200}),Text(
+ extent={{-34,-32},{38,-52}},
+ lineColor={28,108,200},
+ fillColor={0,0,255},
+ fillPattern=FillPattern.Solid,
+ textString="%name"),Text(
+ extent={{62,106},{134,68}},
+ lineColor={238,46,47},
+ fillColor={0,0,255},
+ fillPattern=FillPattern.Solid,
+ textString=DynamicSelect("0.0", String(P_MW, significantDigits=3))),
+ Text(
+ extent={{62,-70},{134,-108}},
+ lineColor={0,255,0},
+ fillColor={0,0,255},
+ fillPattern=FillPattern.Solid,
+ textString=DynamicSelect("0.0", String(Q_MVA, significantDigits=3)))}),
+ Documentation);
+ end Gen3;
+ annotation (Documentation);
+ end Generation_Groups;
+annotation (
+ uses(OpenIPSL(version="1.5.0"), Modelica(version="3.2.2")),
+ version="1",
+ Documentation);
+end IEEE9Bus;
diff --git a/Ieee9_Bus_System_Implementation_Using_The_Openipsl_By_Prof_Prof._Luigi_Vanfretti/project_files/IEEE9_bus_system_implementation_in_Modelica_using_the_OpenIPSL.pdf b/Ieee9_Bus_System_Implementation_Using_The_Openipsl_By_Prof_Prof._Luigi_Vanfretti/project_files/IEEE9_bus_system_implementation_in_Modelica_using_the_OpenIPSL.pdf
new file mode 100644
index 0000000..787b01d
Binary files /dev/null and b/Ieee9_Bus_System_Implementation_Using_The_Openipsl_By_Prof_Prof._Luigi_Vanfretti/project_files/IEEE9_bus_system_implementation_in_Modelica_using_the_OpenIPSL.pdf differ
diff --git a/Kundur'S_Two-Area_System_Modeling_Using_Modelica_And_Openipsl_By_Dr_Prof._Luigi_Vanfretti_And_Maxime_Baudette/Kundur_Two_Area_network.pdf b/Kundur'S_Two-Area_System_Modeling_Using_Modelica_And_Openipsl_By_Dr_Prof._Luigi_Vanfretti_And_Maxime_Baudette/Kundur_Two_Area_network.pdf
deleted file mode 100644
index c0c81b3..0000000
Binary files a/Kundur'S_Two-Area_System_Modeling_Using_Modelica_And_Openipsl_By_Dr_Prof._Luigi_Vanfretti_And_Maxime_Baudette/Kundur_Two_Area_network.pdf and /dev/null differ
diff --git a/Kundur'S_Two-Area_System_Modeling_Using_Modelica_And_Openipsl_By_Dr_Prof._Luigi_Vanfretti_And_Maxime_Baudette/README.txt b/Kundur'S_Two-Area_System_Modeling_Using_Modelica_And_Openipsl_By_Dr_Prof._Luigi_Vanfretti_And_Maxime_Baudette/README.txt
deleted file mode 100644
index 5532f74..0000000
--- a/Kundur'S_Two-Area_System_Modeling_Using_Modelica_And_Openipsl_By_Dr_Prof._Luigi_Vanfretti_And_Maxime_Baudette/README.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-About the Power System Simulation
-
-Title Of The Power System Simulation Project: Kundur's Two-Area System Modeling using Modelica and OpenIPSL
-Proposar Name: Dr Prof. Luigi Vanfretti And Maxime Baudette
-University: Rensselaer Polytechnic Institute
-
-
-OM PSSP Project By FOSSEE, IIT Bombay
diff --git a/Kundur'S_Two-Area_System_Modeling_Using_Modelica_And_Openipsl_By_Dr_Prof._Luigi_Vanfretti_And_Maxime_Baudette/project_files/Kundur_Two_Area_network.pdf b/Kundur'S_Two-Area_System_Modeling_Using_Modelica_And_Openipsl_By_Dr_Prof._Luigi_Vanfretti_And_Maxime_Baudette/project_files/Kundur_Two_Area_network.pdf
deleted file mode 100644
index c0c81b3..0000000
Binary files a/Kundur'S_Two-Area_System_Modeling_Using_Modelica_And_Openipsl_By_Dr_Prof._Luigi_Vanfretti_And_Maxime_Baudette/project_files/Kundur_Two_Area_network.pdf and /dev/null differ
diff --git a/Kundur'S_Two-Area_System_Modeling_Using_Modelica_And_Openipsl_By_Dr_Prof._Luigi_Vanfretti_And_Maxime_Baudette/project_files/TwoAreas.mo b/Kundur'S_Two-Area_System_Modeling_Using_Modelica_And_Openipsl_By_Dr_Prof._Luigi_Vanfretti_And_Maxime_Baudette/project_files/TwoAreas.mo
deleted file mode 100644
index 1babc3d..0000000
--- a/Kundur'S_Two-Area_System_Modeling_Using_Modelica_And_Openipsl_By_Dr_Prof._Luigi_Vanfretti_And_Maxime_Baudette/project_files/TwoAreas.mo
+++ /dev/null
@@ -1,760 +0,0 @@
-package TwoAreas "2 areas test system from Klein, Rogers, and Kundur"
- class Copyright "Disclaimer
-OpenIPSL:
-Copyright August 2017 - Prof. Luigi Vanfretti, Rensselaer Polytechnic Institute, Troy, NY.
-Copyright April 2016 - July 2017 SmarTS Lab (Sweden)
-
-The authors can be contacted by email: luigi.vanfretti@gmail.com
-This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0.
-If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0.
-
-iPSL:
-Copyright 2015-2016 RTE (France), SmarTS Lab (Sweden), AIA (Spain) and DTU (Denmark)
-
-The authors can be contacted by email: info@itesla-ipsl.org
-
-This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0.
-If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0.
-"
-
- annotation (
- preferredView="info",
- DocumentationClass=false,
- Icon(graphics={
- Text(
- extent={{-100,140},{100,100}},
- lineColor={0,127,0},
- textString="%name%"),
- Ellipse(
- extent={{-100,100},{100,-100}},
- lineColor={0,127,0},
- fillColor={255,255,255},
- fillPattern=FillPattern.Solid),
- Ellipse(
- extent={{-60,60},{60,-60}},
- lineColor={0,127,72},
- fillColor={0,127,0},
- fillPattern=FillPattern.Solid),
- Ellipse(
- extent={{-40,40},{40,-40}},
- lineColor={255,255,255},
- fillColor={255,255,255},
- fillPattern=FillPattern.Solid),
- Rectangle(
- extent={{28,22},{64,-20}},
- lineColor={255,255,255},
- fillColor={255,255,255},
- fillPattern=FillPattern.Solid)}),
- Documentation);
- end Copyright;
-
- model Two_Areas_PSAT
- import Modelica.Constants.pi;
- parameter Real r=0.0001;
- parameter Real x=0.001;
- parameter Real b=0.00175*0.5;
- replaceable TwoAreas.Data.PF1 PF_results constrainedby
- TwoAreas.Support.PF_TwoAreas
- annotation (Placement(transformation(extent={{-220,-40},{-200,-20}})));
- OpenIPSL.Electrical.Buses.Bus bus1
- annotation (Placement(transformation(extent={{-190,20},{-170,40}})));
- OpenIPSL.Electrical.Buses.Bus bus2
- annotation (Placement(transformation(extent={{-190,-10},{-170,10}})));
- OpenIPSL.Electrical.Buses.Bus bus3
- annotation (Placement(transformation(extent={{170,20},{190,40}})));
- OpenIPSL.Electrical.Buses.Bus bus4
- annotation (Placement(transformation(extent={{170,-20},{190,0}})));
- OpenIPSL.Electrical.Buses.Bus bus5
- annotation (Placement(transformation(extent={{-150,20},{-130,40}})));
- OpenIPSL.Electrical.Buses.Bus bus6
- annotation (Placement(transformation(extent={{-110,20},{-90,40}})));
- OpenIPSL.Electrical.Buses.Bus bus7
- annotation (Placement(transformation(extent={{-70,20},{-50,40}})));
- OpenIPSL.Electrical.Buses.Bus bus8
- annotation (Placement(transformation(extent={{-10,20},{10,40}})));
- OpenIPSL.Electrical.Buses.Bus bus9
- annotation (Placement(transformation(extent={{50,20},{70,40}})));
- OpenIPSL.Electrical.Buses.Bus bus10
- annotation (Placement(transformation(extent={{90,20},{110,40}})));
- OpenIPSL.Electrical.Buses.Bus bus11
- annotation (Placement(transformation(extent={{130,20},{150,40}})));
- TwoAreas.Groups.PSAT.G1 g1(
- V_b=20,
- V_0=PF_results.voltages.V1,
- angle_0=PF_results.voltages.A1,
- P_0=PF_results.machines.P1_1,
- Q_0=PF_results.machines.Q1_1)
- annotation (Placement(transformation(extent={{-214,24},{-202,36}})));
- TwoAreas.Groups.PSAT.G2 g2(
- V_0=PF_results.voltages.V2,
- angle_0=PF_results.voltages.A2,
- P_0=PF_results.machines.P2_1,
- Q_0=PF_results.machines.Q2_1,
- V_b=20)
- annotation (Placement(transformation(extent={{-214,-6},{-202,6}})));
- TwoAreas.Groups.PSAT.G3 g3(
- V_0=PF_results.voltages.V3,
- angle_0=PF_results.voltages.A3,
- P_0=PF_results.machines.P3_1,
- Q_0=PF_results.machines.Q3_1,
- V_b=20) annotation (Placement(transformation(
- extent={{-6,-6},{6,6}},
- rotation=180,
- origin={208,30})));
- TwoAreas.Groups.PSAT.G4 g4(
- V_0=PF_results.voltages.V4,
- angle_0=PF_results.voltages.A4,
- P_0=PF_results.machines.P4_1,
- Q_0=PF_results.machines.Q4_1,
- V_b=20) annotation (Placement(transformation(
- extent={{-6,-6},{6,6}},
- rotation=180,
- origin={208,-10})));
- OpenIPSL.Electrical.Branches.PwLine Line6_7(
- R=r*10,
- X=x*10,
- G=0,
- B=b*10) annotation (Placement(transformation(extent={{-90,20},{-70,40}})));
- OpenIPSL.Electrical.Branches.PwLine Line5_6(
- R=r*25,
- X=x*25,
- G=0,
- B=b*25) annotation (Placement(transformation(extent={{-130,20},{-110,40}})));
- OpenIPSL.Electrical.Branches.PwLine Line7_8_1(
- R=r*110,
- X=x*110,
- G=0,
- B=b*110/2)
- annotation (Placement(transformation(extent={{-40,30},{-20,50}})));
- OpenIPSL.Electrical.Branches.PwLine Line7_8_2(
- R=r*110,
- X=x*110,
- G=0,
- B=b*110) annotation (Placement(transformation(extent={{-40,10},{-20,30}})));
- OpenIPSL.Electrical.Branches.PwLine Line8_9_2(
- R=r*110,
- X=x*110,
- G=0,
- B=b*110) annotation (Placement(transformation(extent={{20,10},{40,30}})));
- OpenIPSL.Electrical.Branches.PwLine Line8_9_1(
- R=r*110,
- X=x*110,
- G=0,
- B=b*110/2) annotation (Placement(transformation(extent={{20,30},{40,50}})));
- OpenIPSL.Electrical.Branches.PwLine Line9_10(
- R=r*10,
- X=x*10,
- G=0,
- B=b*10) annotation (Placement(transformation(extent={{70,20},{90,40}})));
- OpenIPSL.Electrical.Branches.PwLine Line10_11(
- R=r*25,
- X=x*25,
- G=0,
- B=b*25) annotation (Placement(transformation(extent={{110,20},{130,40}})));
- OpenIPSL.Electrical.Events.PwFault pwFault(
- R=0,
- t1=1,
- t2=1.050,
- X=1e-5) annotation (Placement(transformation(
- extent={{-10,-10},{10,10}},
- rotation=270,
- origin={2,-16})));
- OpenIPSL.Electrical.Loads.PSAT.ZIP Load7(
- Pz=0,
- Pi=1,
- Qz=0,
- Qi=0,
- V_b=230,
- V_0=PF_results.voltages.V7,
- angle_0=PF_results.voltages.A7,
- P_0=PF_results.loads.PL7_1,
- Q_0=PF_results.loads.QL7_1)
- annotation (Placement(transformation(extent={{-76,-30},{-52,-6}})));
- OpenIPSL.Electrical.Loads.PSAT.ZIP Load9(
- Pz=0,
- Pi=1,
- Qz=0,
- Qi=0,
- V_b=230,
- V_0=PF_results.voltages.V9,
- angle_0=PF_results.voltages.A9,
- P_0=PF_results.loads.PL9_1,
- Q_0=PF_results.loads.QL9_1)
- annotation (Placement(transformation(extent={{80,-30},{54,-4}})));
- OpenIPSL.Electrical.Branches.PSAT.TwoWindingTransformer trafo1(
- Sn=900,
- r=0,
- x=0.15,
- kT=20/230,
- V_b=20,
- Vn=20) annotation (Placement(transformation(extent={{-170,20},{-150,40}})));
- OpenIPSL.Electrical.Branches.PSAT.TwoWindingTransformer trafo2(
- Sn=900,
- r=0,
- x=0.15,
- kT=20/230,
- V_b=20,
- Vn=20) annotation (Placement(transformation(extent={{-170,-10},{-150,10}})));
- OpenIPSL.Electrical.Branches.PSAT.TwoWindingTransformer trafo3(
- Sn=900,
- r=0,
- x=0.15,
- kT=20/230,
- V_b=20,
- Vn=20) annotation (Placement(transformation(extent={{170,20},{150,40}})));
- OpenIPSL.Electrical.Branches.PSAT.TwoWindingTransformer trafo4(
- Sn=900,
- r=0,
- x=0.15,
- kT=20/230,
- V_b=20,
- Vn=20) annotation (Placement(transformation(extent={{170,-20},{150,0}})));
- inner OpenIPSL.Electrical.SystemBase SysData(fn=60)
- annotation (Placement(transformation(extent={{-220,46},{-170,60}})));
- equation
- connect(g1.pwPin, bus1.p) annotation (Line(points={{-201.4,30},{-201.4,30},{-180,
- 30}}, color={0,0,255}));
- connect(g2.pwPin, bus2.p) annotation (Line(points={{-201.4,0},{-201.4,0},{-180,
- 0}}, color={0,0,255}));
- connect(Line6_7.n, bus7.p) annotation (Line(points={{-71,30},{-71,30},{-60,30}},
- color={0,0,255}));
- connect(Line6_7.p, bus6.p) annotation (Line(points={{-89,30},{-89,30},{-100,30}},
- color={0,0,255}));
- connect(Line5_6.n, bus6.p) annotation (Line(points={{-111,30},{-111,30},{-100,
- 30}}, color={0,0,255}));
- connect(Line5_6.p, bus5.p) annotation (Line(points={{-129,30},{-129,30},{-140,
- 30}}, color={0,0,255}));
- connect(Line8_9_2.n, bus9.p) annotation (Line(points={{39,20},{54,20},{54,30},
- {60,30}}, color={0,0,255}));
- connect(Line8_9_1.n, bus9.p) annotation (Line(points={{39,40},{54,40},{54,30},
- {60,30}}, color={0,0,255}));
- connect(Line8_9_2.p, bus8.p) annotation (Line(points={{21,20},{6,20},{6,30},{0,
- 30}}, color={0,0,255}));
- connect(Line8_9_1.p, bus8.p) annotation (Line(points={{21,40},{6,40},{6,30},{0,
- 30}}, color={0,0,255}));
- connect(Line7_8_2.n, bus8.p) annotation (Line(points={{-21,20},{-6,20},{-6,22},
- {-6,30},{0,30}}, color={0,0,255}));
- connect(Line7_8_1.n, bus8.p) annotation (Line(points={{-21,40},{-6,40},{-6,30},
- {0,30}}, color={0,0,255}));
- connect(Line7_8_1.p, bus7.p) annotation (Line(points={{-39,40},{-54,40},{-54,30},
- {-60,30}}, color={0,0,255}));
- connect(Line7_8_2.p, bus7.p) annotation (Line(points={{-39,20},{-54,20},{-54,30},
- {-60,30}}, color={0,0,255}));
- connect(bus9.p, Line9_10.p)
- annotation (Line(points={{60,30},{71,30}}, color={0,0,255}));
- connect(Line9_10.n, bus10.p) annotation (Line(points={{89,30},{89,30},{100,30}},
- color={0,0,255}));
- connect(bus10.p, Line10_11.p)
- annotation (Line(points={{100,30},{111,30}}, color={0,0,255}));
- connect(Line10_11.n, bus11.p) annotation (Line(points={{129,30},{129,30},{140,
- 30}}, color={0,0,255}));
- connect(g4.pwPin, bus4.p) annotation (Line(points={{201.4,-10},{201.4,-10},{
- 180,-10}}, color={0,0,255}));
- connect(g3.pwPin, bus3.p)
- annotation (Line(points={{201.4,30},{180,30}}, color={0,0,255}));
- connect(Load7.p, bus7.p) annotation (Line(points={{-64,-6},{-64,-6},{-64,0},{-64,
- 28},{-64,30},{-60,30}}, color={0,0,255}));
- connect(Load9.p, Line9_10.p) annotation (Line(points={{67,-4},{67,-4},{67,30},
- {71,30}}, color={0,0,255}));
- connect(pwFault.p, bus8.p)
- annotation (Line(points={{2,-4.33333},{2,30},{0,30}}, color={0,0,255}));
- connect(bus1.p, trafo1.p)
- annotation (Line(points={{-180,30},{-171,30}}, color={0,0,255}));
- connect(bus5.p, trafo1.n)
- annotation (Line(points={{-140,30},{-149,30}}, color={0,0,255}));
- connect(bus2.p, trafo2.p)
- annotation (Line(points={{-180,0},{-171,0}}, color={0,0,255}));
- connect(trafo2.n, bus6.p) annotation (Line(points={{-149,0},{-104,0},{-104,30},
- {-100,30}}, color={0,0,255}));
- connect(trafo4.n, bus10.p) annotation (Line(points={{149,-10},{108,-10},{108,
- 30},{100,30}}, color={0,0,255}));
- connect(trafo4.p, bus4.p)
- annotation (Line(points={{171,-10},{176,-10},{180,-10}}, color={0,0,255}));
- connect(trafo3.p, bus3.p)
- annotation (Line(points={{171,30},{175.5,30},{180,30}}, color={0,0,255}));
- connect(bus11.p, trafo3.n)
- annotation (Line(points={{140,30},{149,30}}, color={0,0,255}));
- annotation (
- Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-220,-40},{220,
- 60}}), graphics={Text(
- extent={{-68,-34},{46,-38}},
- lineColor={28,108,200},
- textString="Two-Area System
-Prabha Kundur, \"Power System Stability and Control\", Example 12.6, page 813")}),
- Icon(coordinateSystem(extent={{-220,-40},{220,60}})),
- Documentation(info="
-
-
-Reference |
-Two Area System PSAT, d_kundur1.mdl, PSAT |
-
-
-Last update |
-February 2016 |
-
-
-Author |
-Maxime Baudette, Ahsan Murad, SmarTS Lab, KTH Royal Institute of Technology |
-
-
-Contact |
-luigiv@kth.se |
-
-
-"),
- experiment(
- StopTime=10,
- Interval=0.0001,
- Tolerance=1e-006,
- __Dymola_fixedstepsize=0.0001,
- __Dymola_Algorithm="Rkfix2"),
- __Dymola_experimentSetupOutput);
- end Two_Areas_PSAT;
-
- package Groups
- package PSAT
- model G1
- extends TwoAreas.Support.Generator;
- OpenIPSL.Electrical.Machines.PSAT.Order6 order6_1(
- Sn=900,
- Vn=20,
- ra=0.0025,
- x1d=0.3,
- M=13,
- D=0,
- xd=1.80,
- xq=1.7,
- x1q=0.55,
- x2d=0.25,
- x2q=0.25,
- T1d0=8,
- T1q0=0.4,
- T2d0=0.03,
- T2q0=0.05,
- V_b=V_b,
- V_0=V_0,
- angle_0=angle_0,
- P_0=P_0,
- Q_0=Q_0) annotation (Placement(transformation(extent={{-34,-54},{78,56}})));
- equation
- connect(order6_1.p, pwPin) annotation (Line(points={{78,1},{94.8,1},{94.8,0},{
- 70,0}}, color={0,0,255}));
- connect(order6_1.vf0, order6_1.vf) annotation (Line(points={{-22.8,61.5},{-22.8,
- 72},{-46,72},{-46,28.5},{-45.2,28.5}},
- color={0,0,127}));
- connect(order6_1.pm0, order6_1.pm) annotation (Line(points={{-22.8,-59.5},{-22.8,
- -76},{-22.8,-84},{-48,-84},{-48,-26.5},{-45.2,-26.5}},
- color={0,0,127}));
- annotation (
- Icon(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{100,
- 100}})),
- Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{
- 100,100}})),
- Documentation(info="
-
-
-Reference |
-Two Area System PSAT, d_kundur1.mdl, PSAT |
-
-
-Last update |
-February 2016 |
-
-
-Author |
-Maxime Baudette, Ahsan Murad, SmarTS Lab, KTH Royal Institute of Technology |
-
-
-Contact |
-luigiv@kth.se |
-
-
-"));
- end G1;
-
- model G2
- extends TwoAreas.Support.Generator;
- OpenIPSL.Electrical.Machines.PSAT.Order6 order6_1(
- Sn=900,
- Vn=20,
- ra=0.0025,
- x1d=0.3,
- M=13,
- D=0,
- xd=1.80,
- xq=1.7,
- x1q=0.55,
- x2d=0.25,
- x2q=0.25,
- T1d0=8,
- T1q0=0.4,
- T2d0=0.03,
- T2q0=0.05,
- V_b=V_b,
- V_0=V_0,
- angle_0=angle_0,
- P_0=P_0,
- Q_0=Q_0) annotation (Placement(transformation(extent={{-34,-54},{78,56}})));
- equation
- connect(order6_1.p, pwPin) annotation (Line(points={{78,1},{94.8,1},{94.8,0},{
- 70,0}}, color={0,0,255}));
- connect(order6_1.vf0, order6_1.vf) annotation (Line(points={{-22.8,61.5},{-22.8,
- 72},{-46,72},{-46,28.5},{-45.2,28.5}},
- color={0,0,127}));
- connect(order6_1.pm0, order6_1.pm) annotation (Line(points={{-22.8,-59.5},{-22.8,
- -76},{-22.8,-84},{-48,-84},{-48,-26.5},{-45.2,-26.5}},
- color={0,0,127}));
- annotation (
- Icon(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{100,
- 100}})),
- Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{
- 100,100}})),
- Documentation(info="
-
-
-Reference |
-Two Area System PSAT, d_kundur1.mdl, PSAT |
-
-
-Last update |
-February 2016 |
-
-
-Author |
-Maxime Baudette, Ahsan Murad, SmarTS Lab, KTH Royal Institute of Technology |
-
-
-Contact |
-luigiv@kth.se |
-
-
-"));
- end G2;
-
- model G3
- extends TwoAreas.Support.Generator;
- OpenIPSL.Electrical.Machines.PSAT.Order6 order6_1(
- Sn=900,
- Vn=20,
- ra=0.0025,
- x1d=0.3,
- D=0,
- xd=1.80,
- xq=1.7,
- x1q=0.55,
- x2d=0.25,
- x2q=0.25,
- T1d0=8,
- T1q0=0.4,
- T2d0=0.03,
- T2q0=0.05,
- V_b=V_b,
- V_0=V_0,
- angle_0=angle_0,
- P_0=P_0,
- Q_0=Q_0,
- M=12.35) annotation (Placement(transformation(extent={{-34,-54},{78,56}})));
- equation
- connect(order6_1.p, pwPin) annotation (Line(points={{78,1},{94.8,1},{
- 94.8,0},{70,0}}, color={0,0,255}));
- connect(order6_1.vf0, order6_1.vf) annotation (Line(points={{-22.8,61.5},{-22.8,
- 72},{-46,72},{-46,28.5},{-45.2,28.5}},
- color={0,0,127}));
- connect(order6_1.pm0, order6_1.pm) annotation (Line(points={{-22.8,-59.5},{-22.8,
- -76},{-22.8,-84},{-48,-84},{-48,-26.5},{-45.2,-26.5}},
- color={0,0,127}));
- annotation (
- Icon(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{100,
- 100}})),
- Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{
- 100,100}})),
- Documentation(info="
-
-
-Reference |
-Two Area System PSAT, d_kundur1.mdl, PSAT |
-
-
-Last update |
-February 2016 |
-
-
-Author |
-Maxime Baudette, Ahsan Murad, SmarTS Lab, KTH Royal Institute of Technology |
-
-
-Contact |
-luigiv@kth.se |
-
-
-"));
- end G3;
-
- model G4
- extends TwoAreas.Support.Generator;
- OpenIPSL.Electrical.Machines.PSAT.Order6 order6_1(
- Sn=900,
- Vn=20,
- ra=0.0025,
- x1d=0.3,
- D=0,
- xd=1.80,
- xq=1.7,
- x1q=0.55,
- x2d=0.25,
- x2q=0.25,
- T1d0=8,
- T1q0=0.4,
- T2d0=0.03,
- T2q0=0.05,
- V_b=V_b,
- V_0=V_0,
- angle_0=angle_0,
- P_0=P_0,
- Q_0=Q_0,
- M=12.35) annotation (Placement(transformation(extent={{-34,-54},{78,56}})));
- equation
- connect(order6_1.p, pwPin) annotation (Line(points={{78,1},{94.8,1},{
- 94.8,0},{70,0}}, color={0,0,255}));
- connect(order6_1.vf0, order6_1.vf) annotation (Line(points={{-22.8,61.5},{-22.8,
- 72},{-46,72},{-46,28.5},{-45.2,28.5}},
- color={0,0,127}));
- connect(order6_1.pm0, order6_1.pm) annotation (Line(points={{-22.8,-59.5},{-22.8,
- -76},{-22.8,-84},{-48,-84},{-48,-26.5},{-45.2,-26.5}},
- color={0,0,127}));
- annotation (
- Icon(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{100,
- 100}})),
- Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{
- 100,100}})),
- Documentation(info="
-
-
-Reference |
-Two Area System PSAT, d_kundur1.mdl, PSAT |
-
-
-Last update |
-February 2016 |
-
-
-Author |
-Maxime Baudette, Ahsan Murad, SmarTS Lab, KTH Royal Institute of Technology |
-
-
-Contact |
-luigiv@kth.se |
-
-
-"));
- end G4;
- annotation (Documentation(info="
-
-
-Reference |
-Two Area System PSAT, d_kundur1.mdl, PSAT |
-
-
-Last update |
-February 2016 |
-
-
-Author |
-Maxime Baudette, Ahsan Murad, SmarTS Lab, KTH Royal Institute of Technology |
-
-
-Contact |
-luigiv@kth.se |
-
-
-"));
- end PSAT;
- annotation (Documentation(info="
-
-
-Reference |
-Two-Area System, Prabha Kundur, Power System Stability and Control, Example 12.6, page 813 |
-
-
-Last update |
-February 2016 |
-
-
-Author |
-Maxime Baudette, Tin Rabuzin, Ahsan Murad, SmarTS Lab, KTH Royal Institute of Technology |
-
-
-Contact |
-luigiv@kth.se |
-
-
-"));
- end Groups;
-
- package Data
- record PF1
- extends TwoAreas.Support.PF_TwoAreas(
- voltages(
- V1=1.03,
- A1=20.2473,
- V2=1.01,
- A2=10.4897,
- V3=1.03,
- A3=-6.8,
- V4=1.01,
- A4=-16.9776,
- V5=1.0069,
- A5=13.7881,
- V6=0.97914,
- A6=3.7146,
- V7=0.96283,
- A7=-4.6748,
- V8=0.94828,
- A8=-18.5131,
- V9=0.97386,
- A9=-32.1004,
- V10=0.98486,
- A10=-23.7131,
- V11=1.0088,
- A11=-13.4215),
- machines(
- P1_1=700,
- Q1_1=182.450226027067,
- P2_1=700,
- Q2_1=228.434194888742,
- P3_1=718.906215107731,
- Q3_1=172.421333322957,
- P4_1=700,
- Q4_1=193.556043309309),
- loads(
- PL7_1=967,
- QL7_1=-100,
- PL9_1=1767,
- QL9_1=-250));
- annotation (Documentation);
- end PF1;
- annotation (Documentation);
- end Data;
-
- package Support
- partial record PF_TwoAreas
- record Voltages
- // Bus number 1
- parameter Real V1;
- parameter Real A1;
- // Bus number 2
- parameter Real V2;
- parameter Real A2;
- // Bus number 3
- parameter Real V3;
- parameter Real A3;
- // Bus number 4
- parameter Real V4;
- parameter Real A4;
- // Bus number 5
- parameter Real V5;
- parameter Real A5;
- // Bus number 6
- parameter Real V6;
- parameter Real A6;
- // Bus number 7
- parameter Real V7;
- parameter Real A7;
- // Bus number 8
- parameter Real V8;
- parameter Real A8;
- // Bus number 9
- parameter Real V9;
- parameter Real A9;
- // Bus number 10
- parameter Real V10;
- parameter Real A10;
- // Bus number 11
- parameter Real V11;
- parameter Real A11;
- annotation (Documentation);
- end Voltages;
-
- record Machines
- // Gen at bus 1
- parameter Real P1_1;
- parameter Real Q1_1;
- // Gen at bus 2
- parameter Real P2_1;
- parameter Real Q2_1;
- // Gen at bus 3
- parameter Real P3_1;
- parameter Real Q3_1;
- // Gen at bus 4
- parameter Real P4_1;
- parameter Real Q4_1;
- annotation (Documentation);
- end Machines;
-
- record Loads
- // Gen at bus 1
- parameter Real PL7_1;
- parameter Real QL7_1;
- // Gen at bus 2
- parameter Real PL9_1;
- parameter Real QL9_1;
- annotation (Documentation);
- end Loads;
-
- Voltages voltages;
- Machines machines;
- Loads loads;
- annotation (Documentation);
- end PF_TwoAreas;
-
- partial model Generator
- extends OpenIPSL.Electrical.Essentials.pfComponent;
- OpenIPSL.Interfaces.PwPin pwPin annotation (Placement(transformation(extent={
- {60,-10},{80,10}}), iconTransformation(extent={{100,-10},{120,10}})));
- annotation (Icon(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},
- {100,100}}), graphics={Ellipse(
- extent={{-100,100},{100,-100}},
- lineColor={0,0,0},
- fillColor={215,215,215},
- fillPattern=FillPattern.Solid),Line(
- points={{20,-20},{50,-40},{80,0}},
- color={0,0,0},
- thickness=0.5),Text(
- extent={{-40,20},{40,-20}},
- lineColor={0,0,0},
- textString="%name"),Line(
- points={{-20,20},{-50,40},{-80,0}},
- color={0,0,0},
- thickness=0.5)}), Documentation);
- end Generator;
- annotation (Documentation);
- end Support;
-annotation (uses(OpenIPSL(version="1.5.0"), Modelica(version="3.2.2")),
- Documentation(info="
-
-
-Reference |
-Two-Area System, Prabha Kundur, Power System Stability and Control, Example 12.6, page 813 |
-
-
-Last update |
-February 2016 |
-
-
-Author |
-Maxime Baudette, Tin Rabuzin, Ahsan Murad, SmarTS Lab, KTH Royal Institute of Technology |
-
-
-Contact |
-luigiv@kth.se |
-
-
-"));
-end TwoAreas;
diff --git a/Kundur'S_Two-Area_System_Modelling_Using_Openipsl_By_Dr_Prof._Luigi_Vanfretti_And_Maxime_Baudette/Kundur_Two_Area_network.pdf b/Kundur'S_Two-Area_System_Modelling_Using_Openipsl_By_Dr_Prof._Luigi_Vanfretti_And_Maxime_Baudette/Kundur_Two_Area_network.pdf
new file mode 100644
index 0000000..c0c81b3
Binary files /dev/null and b/Kundur'S_Two-Area_System_Modelling_Using_Openipsl_By_Dr_Prof._Luigi_Vanfretti_And_Maxime_Baudette/Kundur_Two_Area_network.pdf differ
diff --git a/Kundur'S_Two-Area_System_Modelling_Using_Openipsl_By_Dr_Prof._Luigi_Vanfretti_And_Maxime_Baudette/README.txt b/Kundur'S_Two-Area_System_Modelling_Using_Openipsl_By_Dr_Prof._Luigi_Vanfretti_And_Maxime_Baudette/README.txt
new file mode 100644
index 0000000..5532f74
--- /dev/null
+++ b/Kundur'S_Two-Area_System_Modelling_Using_Openipsl_By_Dr_Prof._Luigi_Vanfretti_And_Maxime_Baudette/README.txt
@@ -0,0 +1,8 @@
+About the Power System Simulation
+
+Title Of The Power System Simulation Project: Kundur's Two-Area System Modeling using Modelica and OpenIPSL
+Proposar Name: Dr Prof. Luigi Vanfretti And Maxime Baudette
+University: Rensselaer Polytechnic Institute
+
+
+OM PSSP Project By FOSSEE, IIT Bombay
diff --git a/Kundur'S_Two-Area_System_Modelling_Using_Openipsl_By_Dr_Prof._Luigi_Vanfretti_And_Maxime_Baudette/project_files/Kundur_Two_Area_network.pdf b/Kundur'S_Two-Area_System_Modelling_Using_Openipsl_By_Dr_Prof._Luigi_Vanfretti_And_Maxime_Baudette/project_files/Kundur_Two_Area_network.pdf
new file mode 100644
index 0000000..c0c81b3
Binary files /dev/null and b/Kundur'S_Two-Area_System_Modelling_Using_Openipsl_By_Dr_Prof._Luigi_Vanfretti_And_Maxime_Baudette/project_files/Kundur_Two_Area_network.pdf differ
diff --git a/Kundur'S_Two-Area_System_Modelling_Using_Openipsl_By_Dr_Prof._Luigi_Vanfretti_And_Maxime_Baudette/project_files/TwoAreas.mo b/Kundur'S_Two-Area_System_Modelling_Using_Openipsl_By_Dr_Prof._Luigi_Vanfretti_And_Maxime_Baudette/project_files/TwoAreas.mo
new file mode 100644
index 0000000..1babc3d
--- /dev/null
+++ b/Kundur'S_Two-Area_System_Modelling_Using_Openipsl_By_Dr_Prof._Luigi_Vanfretti_And_Maxime_Baudette/project_files/TwoAreas.mo
@@ -0,0 +1,760 @@
+package TwoAreas "2 areas test system from Klein, Rogers, and Kundur"
+ class Copyright "Disclaimer
+OpenIPSL:
+Copyright August 2017 - Prof. Luigi Vanfretti, Rensselaer Polytechnic Institute, Troy, NY.
+Copyright April 2016 - July 2017 SmarTS Lab (Sweden)
+
+The authors can be contacted by email: luigi.vanfretti@gmail.com
+This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0.
+If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0.
+
+iPSL:
+Copyright 2015-2016 RTE (France), SmarTS Lab (Sweden), AIA (Spain) and DTU (Denmark)
+
+The authors can be contacted by email: info@itesla-ipsl.org
+
+This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0.
+If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0.
+"
+
+ annotation (
+ preferredView="info",
+ DocumentationClass=false,
+ Icon(graphics={
+ Text(
+ extent={{-100,140},{100,100}},
+ lineColor={0,127,0},
+ textString="%name%"),
+ Ellipse(
+ extent={{-100,100},{100,-100}},
+ lineColor={0,127,0},
+ fillColor={255,255,255},
+ fillPattern=FillPattern.Solid),
+ Ellipse(
+ extent={{-60,60},{60,-60}},
+ lineColor={0,127,72},
+ fillColor={0,127,0},
+ fillPattern=FillPattern.Solid),
+ Ellipse(
+ extent={{-40,40},{40,-40}},
+ lineColor={255,255,255},
+ fillColor={255,255,255},
+ fillPattern=FillPattern.Solid),
+ Rectangle(
+ extent={{28,22},{64,-20}},
+ lineColor={255,255,255},
+ fillColor={255,255,255},
+ fillPattern=FillPattern.Solid)}),
+ Documentation);
+ end Copyright;
+
+ model Two_Areas_PSAT
+ import Modelica.Constants.pi;
+ parameter Real r=0.0001;
+ parameter Real x=0.001;
+ parameter Real b=0.00175*0.5;
+ replaceable TwoAreas.Data.PF1 PF_results constrainedby
+ TwoAreas.Support.PF_TwoAreas
+ annotation (Placement(transformation(extent={{-220,-40},{-200,-20}})));
+ OpenIPSL.Electrical.Buses.Bus bus1
+ annotation (Placement(transformation(extent={{-190,20},{-170,40}})));
+ OpenIPSL.Electrical.Buses.Bus bus2
+ annotation (Placement(transformation(extent={{-190,-10},{-170,10}})));
+ OpenIPSL.Electrical.Buses.Bus bus3
+ annotation (Placement(transformation(extent={{170,20},{190,40}})));
+ OpenIPSL.Electrical.Buses.Bus bus4
+ annotation (Placement(transformation(extent={{170,-20},{190,0}})));
+ OpenIPSL.Electrical.Buses.Bus bus5
+ annotation (Placement(transformation(extent={{-150,20},{-130,40}})));
+ OpenIPSL.Electrical.Buses.Bus bus6
+ annotation (Placement(transformation(extent={{-110,20},{-90,40}})));
+ OpenIPSL.Electrical.Buses.Bus bus7
+ annotation (Placement(transformation(extent={{-70,20},{-50,40}})));
+ OpenIPSL.Electrical.Buses.Bus bus8
+ annotation (Placement(transformation(extent={{-10,20},{10,40}})));
+ OpenIPSL.Electrical.Buses.Bus bus9
+ annotation (Placement(transformation(extent={{50,20},{70,40}})));
+ OpenIPSL.Electrical.Buses.Bus bus10
+ annotation (Placement(transformation(extent={{90,20},{110,40}})));
+ OpenIPSL.Electrical.Buses.Bus bus11
+ annotation (Placement(transformation(extent={{130,20},{150,40}})));
+ TwoAreas.Groups.PSAT.G1 g1(
+ V_b=20,
+ V_0=PF_results.voltages.V1,
+ angle_0=PF_results.voltages.A1,
+ P_0=PF_results.machines.P1_1,
+ Q_0=PF_results.machines.Q1_1)
+ annotation (Placement(transformation(extent={{-214,24},{-202,36}})));
+ TwoAreas.Groups.PSAT.G2 g2(
+ V_0=PF_results.voltages.V2,
+ angle_0=PF_results.voltages.A2,
+ P_0=PF_results.machines.P2_1,
+ Q_0=PF_results.machines.Q2_1,
+ V_b=20)
+ annotation (Placement(transformation(extent={{-214,-6},{-202,6}})));
+ TwoAreas.Groups.PSAT.G3 g3(
+ V_0=PF_results.voltages.V3,
+ angle_0=PF_results.voltages.A3,
+ P_0=PF_results.machines.P3_1,
+ Q_0=PF_results.machines.Q3_1,
+ V_b=20) annotation (Placement(transformation(
+ extent={{-6,-6},{6,6}},
+ rotation=180,
+ origin={208,30})));
+ TwoAreas.Groups.PSAT.G4 g4(
+ V_0=PF_results.voltages.V4,
+ angle_0=PF_results.voltages.A4,
+ P_0=PF_results.machines.P4_1,
+ Q_0=PF_results.machines.Q4_1,
+ V_b=20) annotation (Placement(transformation(
+ extent={{-6,-6},{6,6}},
+ rotation=180,
+ origin={208,-10})));
+ OpenIPSL.Electrical.Branches.PwLine Line6_7(
+ R=r*10,
+ X=x*10,
+ G=0,
+ B=b*10) annotation (Placement(transformation(extent={{-90,20},{-70,40}})));
+ OpenIPSL.Electrical.Branches.PwLine Line5_6(
+ R=r*25,
+ X=x*25,
+ G=0,
+ B=b*25) annotation (Placement(transformation(extent={{-130,20},{-110,40}})));
+ OpenIPSL.Electrical.Branches.PwLine Line7_8_1(
+ R=r*110,
+ X=x*110,
+ G=0,
+ B=b*110/2)
+ annotation (Placement(transformation(extent={{-40,30},{-20,50}})));
+ OpenIPSL.Electrical.Branches.PwLine Line7_8_2(
+ R=r*110,
+ X=x*110,
+ G=0,
+ B=b*110) annotation (Placement(transformation(extent={{-40,10},{-20,30}})));
+ OpenIPSL.Electrical.Branches.PwLine Line8_9_2(
+ R=r*110,
+ X=x*110,
+ G=0,
+ B=b*110) annotation (Placement(transformation(extent={{20,10},{40,30}})));
+ OpenIPSL.Electrical.Branches.PwLine Line8_9_1(
+ R=r*110,
+ X=x*110,
+ G=0,
+ B=b*110/2) annotation (Placement(transformation(extent={{20,30},{40,50}})));
+ OpenIPSL.Electrical.Branches.PwLine Line9_10(
+ R=r*10,
+ X=x*10,
+ G=0,
+ B=b*10) annotation (Placement(transformation(extent={{70,20},{90,40}})));
+ OpenIPSL.Electrical.Branches.PwLine Line10_11(
+ R=r*25,
+ X=x*25,
+ G=0,
+ B=b*25) annotation (Placement(transformation(extent={{110,20},{130,40}})));
+ OpenIPSL.Electrical.Events.PwFault pwFault(
+ R=0,
+ t1=1,
+ t2=1.050,
+ X=1e-5) annotation (Placement(transformation(
+ extent={{-10,-10},{10,10}},
+ rotation=270,
+ origin={2,-16})));
+ OpenIPSL.Electrical.Loads.PSAT.ZIP Load7(
+ Pz=0,
+ Pi=1,
+ Qz=0,
+ Qi=0,
+ V_b=230,
+ V_0=PF_results.voltages.V7,
+ angle_0=PF_results.voltages.A7,
+ P_0=PF_results.loads.PL7_1,
+ Q_0=PF_results.loads.QL7_1)
+ annotation (Placement(transformation(extent={{-76,-30},{-52,-6}})));
+ OpenIPSL.Electrical.Loads.PSAT.ZIP Load9(
+ Pz=0,
+ Pi=1,
+ Qz=0,
+ Qi=0,
+ V_b=230,
+ V_0=PF_results.voltages.V9,
+ angle_0=PF_results.voltages.A9,
+ P_0=PF_results.loads.PL9_1,
+ Q_0=PF_results.loads.QL9_1)
+ annotation (Placement(transformation(extent={{80,-30},{54,-4}})));
+ OpenIPSL.Electrical.Branches.PSAT.TwoWindingTransformer trafo1(
+ Sn=900,
+ r=0,
+ x=0.15,
+ kT=20/230,
+ V_b=20,
+ Vn=20) annotation (Placement(transformation(extent={{-170,20},{-150,40}})));
+ OpenIPSL.Electrical.Branches.PSAT.TwoWindingTransformer trafo2(
+ Sn=900,
+ r=0,
+ x=0.15,
+ kT=20/230,
+ V_b=20,
+ Vn=20) annotation (Placement(transformation(extent={{-170,-10},{-150,10}})));
+ OpenIPSL.Electrical.Branches.PSAT.TwoWindingTransformer trafo3(
+ Sn=900,
+ r=0,
+ x=0.15,
+ kT=20/230,
+ V_b=20,
+ Vn=20) annotation (Placement(transformation(extent={{170,20},{150,40}})));
+ OpenIPSL.Electrical.Branches.PSAT.TwoWindingTransformer trafo4(
+ Sn=900,
+ r=0,
+ x=0.15,
+ kT=20/230,
+ V_b=20,
+ Vn=20) annotation (Placement(transformation(extent={{170,-20},{150,0}})));
+ inner OpenIPSL.Electrical.SystemBase SysData(fn=60)
+ annotation (Placement(transformation(extent={{-220,46},{-170,60}})));
+ equation
+ connect(g1.pwPin, bus1.p) annotation (Line(points={{-201.4,30},{-201.4,30},{-180,
+ 30}}, color={0,0,255}));
+ connect(g2.pwPin, bus2.p) annotation (Line(points={{-201.4,0},{-201.4,0},{-180,
+ 0}}, color={0,0,255}));
+ connect(Line6_7.n, bus7.p) annotation (Line(points={{-71,30},{-71,30},{-60,30}},
+ color={0,0,255}));
+ connect(Line6_7.p, bus6.p) annotation (Line(points={{-89,30},{-89,30},{-100,30}},
+ color={0,0,255}));
+ connect(Line5_6.n, bus6.p) annotation (Line(points={{-111,30},{-111,30},{-100,
+ 30}}, color={0,0,255}));
+ connect(Line5_6.p, bus5.p) annotation (Line(points={{-129,30},{-129,30},{-140,
+ 30}}, color={0,0,255}));
+ connect(Line8_9_2.n, bus9.p) annotation (Line(points={{39,20},{54,20},{54,30},
+ {60,30}}, color={0,0,255}));
+ connect(Line8_9_1.n, bus9.p) annotation (Line(points={{39,40},{54,40},{54,30},
+ {60,30}}, color={0,0,255}));
+ connect(Line8_9_2.p, bus8.p) annotation (Line(points={{21,20},{6,20},{6,30},{0,
+ 30}}, color={0,0,255}));
+ connect(Line8_9_1.p, bus8.p) annotation (Line(points={{21,40},{6,40},{6,30},{0,
+ 30}}, color={0,0,255}));
+ connect(Line7_8_2.n, bus8.p) annotation (Line(points={{-21,20},{-6,20},{-6,22},
+ {-6,30},{0,30}}, color={0,0,255}));
+ connect(Line7_8_1.n, bus8.p) annotation (Line(points={{-21,40},{-6,40},{-6,30},
+ {0,30}}, color={0,0,255}));
+ connect(Line7_8_1.p, bus7.p) annotation (Line(points={{-39,40},{-54,40},{-54,30},
+ {-60,30}}, color={0,0,255}));
+ connect(Line7_8_2.p, bus7.p) annotation (Line(points={{-39,20},{-54,20},{-54,30},
+ {-60,30}}, color={0,0,255}));
+ connect(bus9.p, Line9_10.p)
+ annotation (Line(points={{60,30},{71,30}}, color={0,0,255}));
+ connect(Line9_10.n, bus10.p) annotation (Line(points={{89,30},{89,30},{100,30}},
+ color={0,0,255}));
+ connect(bus10.p, Line10_11.p)
+ annotation (Line(points={{100,30},{111,30}}, color={0,0,255}));
+ connect(Line10_11.n, bus11.p) annotation (Line(points={{129,30},{129,30},{140,
+ 30}}, color={0,0,255}));
+ connect(g4.pwPin, bus4.p) annotation (Line(points={{201.4,-10},{201.4,-10},{
+ 180,-10}}, color={0,0,255}));
+ connect(g3.pwPin, bus3.p)
+ annotation (Line(points={{201.4,30},{180,30}}, color={0,0,255}));
+ connect(Load7.p, bus7.p) annotation (Line(points={{-64,-6},{-64,-6},{-64,0},{-64,
+ 28},{-64,30},{-60,30}}, color={0,0,255}));
+ connect(Load9.p, Line9_10.p) annotation (Line(points={{67,-4},{67,-4},{67,30},
+ {71,30}}, color={0,0,255}));
+ connect(pwFault.p, bus8.p)
+ annotation (Line(points={{2,-4.33333},{2,30},{0,30}}, color={0,0,255}));
+ connect(bus1.p, trafo1.p)
+ annotation (Line(points={{-180,30},{-171,30}}, color={0,0,255}));
+ connect(bus5.p, trafo1.n)
+ annotation (Line(points={{-140,30},{-149,30}}, color={0,0,255}));
+ connect(bus2.p, trafo2.p)
+ annotation (Line(points={{-180,0},{-171,0}}, color={0,0,255}));
+ connect(trafo2.n, bus6.p) annotation (Line(points={{-149,0},{-104,0},{-104,30},
+ {-100,30}}, color={0,0,255}));
+ connect(trafo4.n, bus10.p) annotation (Line(points={{149,-10},{108,-10},{108,
+ 30},{100,30}}, color={0,0,255}));
+ connect(trafo4.p, bus4.p)
+ annotation (Line(points={{171,-10},{176,-10},{180,-10}}, color={0,0,255}));
+ connect(trafo3.p, bus3.p)
+ annotation (Line(points={{171,30},{175.5,30},{180,30}}, color={0,0,255}));
+ connect(bus11.p, trafo3.n)
+ annotation (Line(points={{140,30},{149,30}}, color={0,0,255}));
+ annotation (
+ Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-220,-40},{220,
+ 60}}), graphics={Text(
+ extent={{-68,-34},{46,-38}},
+ lineColor={28,108,200},
+ textString="Two-Area System
+Prabha Kundur, \"Power System Stability and Control\", Example 12.6, page 813")}),
+ Icon(coordinateSystem(extent={{-220,-40},{220,60}})),
+ Documentation(info="
+
+
+Reference |
+Two Area System PSAT, d_kundur1.mdl, PSAT |
+
+
+Last update |
+February 2016 |
+
+
+Author |
+Maxime Baudette, Ahsan Murad, SmarTS Lab, KTH Royal Institute of Technology |
+
+
+Contact |
+luigiv@kth.se |
+
+
+"),
+ experiment(
+ StopTime=10,
+ Interval=0.0001,
+ Tolerance=1e-006,
+ __Dymola_fixedstepsize=0.0001,
+ __Dymola_Algorithm="Rkfix2"),
+ __Dymola_experimentSetupOutput);
+ end Two_Areas_PSAT;
+
+ package Groups
+ package PSAT
+ model G1
+ extends TwoAreas.Support.Generator;
+ OpenIPSL.Electrical.Machines.PSAT.Order6 order6_1(
+ Sn=900,
+ Vn=20,
+ ra=0.0025,
+ x1d=0.3,
+ M=13,
+ D=0,
+ xd=1.80,
+ xq=1.7,
+ x1q=0.55,
+ x2d=0.25,
+ x2q=0.25,
+ T1d0=8,
+ T1q0=0.4,
+ T2d0=0.03,
+ T2q0=0.05,
+ V_b=V_b,
+ V_0=V_0,
+ angle_0=angle_0,
+ P_0=P_0,
+ Q_0=Q_0) annotation (Placement(transformation(extent={{-34,-54},{78,56}})));
+ equation
+ connect(order6_1.p, pwPin) annotation (Line(points={{78,1},{94.8,1},{94.8,0},{
+ 70,0}}, color={0,0,255}));
+ connect(order6_1.vf0, order6_1.vf) annotation (Line(points={{-22.8,61.5},{-22.8,
+ 72},{-46,72},{-46,28.5},{-45.2,28.5}},
+ color={0,0,127}));
+ connect(order6_1.pm0, order6_1.pm) annotation (Line(points={{-22.8,-59.5},{-22.8,
+ -76},{-22.8,-84},{-48,-84},{-48,-26.5},{-45.2,-26.5}},
+ color={0,0,127}));
+ annotation (
+ Icon(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{100,
+ 100}})),
+ Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{
+ 100,100}})),
+ Documentation(info="
+
+
+Reference |
+Two Area System PSAT, d_kundur1.mdl, PSAT |
+
+
+Last update |
+February 2016 |
+
+
+Author |
+Maxime Baudette, Ahsan Murad, SmarTS Lab, KTH Royal Institute of Technology |
+
+
+Contact |
+luigiv@kth.se |
+
+
+"));
+ end G1;
+
+ model G2
+ extends TwoAreas.Support.Generator;
+ OpenIPSL.Electrical.Machines.PSAT.Order6 order6_1(
+ Sn=900,
+ Vn=20,
+ ra=0.0025,
+ x1d=0.3,
+ M=13,
+ D=0,
+ xd=1.80,
+ xq=1.7,
+ x1q=0.55,
+ x2d=0.25,
+ x2q=0.25,
+ T1d0=8,
+ T1q0=0.4,
+ T2d0=0.03,
+ T2q0=0.05,
+ V_b=V_b,
+ V_0=V_0,
+ angle_0=angle_0,
+ P_0=P_0,
+ Q_0=Q_0) annotation (Placement(transformation(extent={{-34,-54},{78,56}})));
+ equation
+ connect(order6_1.p, pwPin) annotation (Line(points={{78,1},{94.8,1},{94.8,0},{
+ 70,0}}, color={0,0,255}));
+ connect(order6_1.vf0, order6_1.vf) annotation (Line(points={{-22.8,61.5},{-22.8,
+ 72},{-46,72},{-46,28.5},{-45.2,28.5}},
+ color={0,0,127}));
+ connect(order6_1.pm0, order6_1.pm) annotation (Line(points={{-22.8,-59.5},{-22.8,
+ -76},{-22.8,-84},{-48,-84},{-48,-26.5},{-45.2,-26.5}},
+ color={0,0,127}));
+ annotation (
+ Icon(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{100,
+ 100}})),
+ Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{
+ 100,100}})),
+ Documentation(info="
+
+
+Reference |
+Two Area System PSAT, d_kundur1.mdl, PSAT |
+
+
+Last update |
+February 2016 |
+
+
+Author |
+Maxime Baudette, Ahsan Murad, SmarTS Lab, KTH Royal Institute of Technology |
+
+
+Contact |
+luigiv@kth.se |
+
+
+"));
+ end G2;
+
+ model G3
+ extends TwoAreas.Support.Generator;
+ OpenIPSL.Electrical.Machines.PSAT.Order6 order6_1(
+ Sn=900,
+ Vn=20,
+ ra=0.0025,
+ x1d=0.3,
+ D=0,
+ xd=1.80,
+ xq=1.7,
+ x1q=0.55,
+ x2d=0.25,
+ x2q=0.25,
+ T1d0=8,
+ T1q0=0.4,
+ T2d0=0.03,
+ T2q0=0.05,
+ V_b=V_b,
+ V_0=V_0,
+ angle_0=angle_0,
+ P_0=P_0,
+ Q_0=Q_0,
+ M=12.35) annotation (Placement(transformation(extent={{-34,-54},{78,56}})));
+ equation
+ connect(order6_1.p, pwPin) annotation (Line(points={{78,1},{94.8,1},{
+ 94.8,0},{70,0}}, color={0,0,255}));
+ connect(order6_1.vf0, order6_1.vf) annotation (Line(points={{-22.8,61.5},{-22.8,
+ 72},{-46,72},{-46,28.5},{-45.2,28.5}},
+ color={0,0,127}));
+ connect(order6_1.pm0, order6_1.pm) annotation (Line(points={{-22.8,-59.5},{-22.8,
+ -76},{-22.8,-84},{-48,-84},{-48,-26.5},{-45.2,-26.5}},
+ color={0,0,127}));
+ annotation (
+ Icon(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{100,
+ 100}})),
+ Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{
+ 100,100}})),
+ Documentation(info="
+
+
+Reference |
+Two Area System PSAT, d_kundur1.mdl, PSAT |
+
+
+Last update |
+February 2016 |
+
+
+Author |
+Maxime Baudette, Ahsan Murad, SmarTS Lab, KTH Royal Institute of Technology |
+
+
+Contact |
+luigiv@kth.se |
+
+
+"));
+ end G3;
+
+ model G4
+ extends TwoAreas.Support.Generator;
+ OpenIPSL.Electrical.Machines.PSAT.Order6 order6_1(
+ Sn=900,
+ Vn=20,
+ ra=0.0025,
+ x1d=0.3,
+ D=0,
+ xd=1.80,
+ xq=1.7,
+ x1q=0.55,
+ x2d=0.25,
+ x2q=0.25,
+ T1d0=8,
+ T1q0=0.4,
+ T2d0=0.03,
+ T2q0=0.05,
+ V_b=V_b,
+ V_0=V_0,
+ angle_0=angle_0,
+ P_0=P_0,
+ Q_0=Q_0,
+ M=12.35) annotation (Placement(transformation(extent={{-34,-54},{78,56}})));
+ equation
+ connect(order6_1.p, pwPin) annotation (Line(points={{78,1},{94.8,1},{
+ 94.8,0},{70,0}}, color={0,0,255}));
+ connect(order6_1.vf0, order6_1.vf) annotation (Line(points={{-22.8,61.5},{-22.8,
+ 72},{-46,72},{-46,28.5},{-45.2,28.5}},
+ color={0,0,127}));
+ connect(order6_1.pm0, order6_1.pm) annotation (Line(points={{-22.8,-59.5},{-22.8,
+ -76},{-22.8,-84},{-48,-84},{-48,-26.5},{-45.2,-26.5}},
+ color={0,0,127}));
+ annotation (
+ Icon(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{100,
+ 100}})),
+ Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{
+ 100,100}})),
+ Documentation(info="
+
+
+Reference |
+Two Area System PSAT, d_kundur1.mdl, PSAT |
+
+
+Last update |
+February 2016 |
+
+
+Author |
+Maxime Baudette, Ahsan Murad, SmarTS Lab, KTH Royal Institute of Technology |
+
+
+Contact |
+luigiv@kth.se |
+
+
+"));
+ end G4;
+ annotation (Documentation(info="
+
+
+Reference |
+Two Area System PSAT, d_kundur1.mdl, PSAT |
+
+
+Last update |
+February 2016 |
+
+
+Author |
+Maxime Baudette, Ahsan Murad, SmarTS Lab, KTH Royal Institute of Technology |
+
+
+Contact |
+luigiv@kth.se |
+
+
+"));
+ end PSAT;
+ annotation (Documentation(info="
+
+
+Reference |
+Two-Area System, Prabha Kundur, Power System Stability and Control, Example 12.6, page 813 |
+
+
+Last update |
+February 2016 |
+
+
+Author |
+Maxime Baudette, Tin Rabuzin, Ahsan Murad, SmarTS Lab, KTH Royal Institute of Technology |
+
+
+Contact |
+luigiv@kth.se |
+
+
+"));
+ end Groups;
+
+ package Data
+ record PF1
+ extends TwoAreas.Support.PF_TwoAreas(
+ voltages(
+ V1=1.03,
+ A1=20.2473,
+ V2=1.01,
+ A2=10.4897,
+ V3=1.03,
+ A3=-6.8,
+ V4=1.01,
+ A4=-16.9776,
+ V5=1.0069,
+ A5=13.7881,
+ V6=0.97914,
+ A6=3.7146,
+ V7=0.96283,
+ A7=-4.6748,
+ V8=0.94828,
+ A8=-18.5131,
+ V9=0.97386,
+ A9=-32.1004,
+ V10=0.98486,
+ A10=-23.7131,
+ V11=1.0088,
+ A11=-13.4215),
+ machines(
+ P1_1=700,
+ Q1_1=182.450226027067,
+ P2_1=700,
+ Q2_1=228.434194888742,
+ P3_1=718.906215107731,
+ Q3_1=172.421333322957,
+ P4_1=700,
+ Q4_1=193.556043309309),
+ loads(
+ PL7_1=967,
+ QL7_1=-100,
+ PL9_1=1767,
+ QL9_1=-250));
+ annotation (Documentation);
+ end PF1;
+ annotation (Documentation);
+ end Data;
+
+ package Support
+ partial record PF_TwoAreas
+ record Voltages
+ // Bus number 1
+ parameter Real V1;
+ parameter Real A1;
+ // Bus number 2
+ parameter Real V2;
+ parameter Real A2;
+ // Bus number 3
+ parameter Real V3;
+ parameter Real A3;
+ // Bus number 4
+ parameter Real V4;
+ parameter Real A4;
+ // Bus number 5
+ parameter Real V5;
+ parameter Real A5;
+ // Bus number 6
+ parameter Real V6;
+ parameter Real A6;
+ // Bus number 7
+ parameter Real V7;
+ parameter Real A7;
+ // Bus number 8
+ parameter Real V8;
+ parameter Real A8;
+ // Bus number 9
+ parameter Real V9;
+ parameter Real A9;
+ // Bus number 10
+ parameter Real V10;
+ parameter Real A10;
+ // Bus number 11
+ parameter Real V11;
+ parameter Real A11;
+ annotation (Documentation);
+ end Voltages;
+
+ record Machines
+ // Gen at bus 1
+ parameter Real P1_1;
+ parameter Real Q1_1;
+ // Gen at bus 2
+ parameter Real P2_1;
+ parameter Real Q2_1;
+ // Gen at bus 3
+ parameter Real P3_1;
+ parameter Real Q3_1;
+ // Gen at bus 4
+ parameter Real P4_1;
+ parameter Real Q4_1;
+ annotation (Documentation);
+ end Machines;
+
+ record Loads
+ // Gen at bus 1
+ parameter Real PL7_1;
+ parameter Real QL7_1;
+ // Gen at bus 2
+ parameter Real PL9_1;
+ parameter Real QL9_1;
+ annotation (Documentation);
+ end Loads;
+
+ Voltages voltages;
+ Machines machines;
+ Loads loads;
+ annotation (Documentation);
+ end PF_TwoAreas;
+
+ partial model Generator
+ extends OpenIPSL.Electrical.Essentials.pfComponent;
+ OpenIPSL.Interfaces.PwPin pwPin annotation (Placement(transformation(extent={
+ {60,-10},{80,10}}), iconTransformation(extent={{100,-10},{120,10}})));
+ annotation (Icon(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},
+ {100,100}}), graphics={Ellipse(
+ extent={{-100,100},{100,-100}},
+ lineColor={0,0,0},
+ fillColor={215,215,215},
+ fillPattern=FillPattern.Solid),Line(
+ points={{20,-20},{50,-40},{80,0}},
+ color={0,0,0},
+ thickness=0.5),Text(
+ extent={{-40,20},{40,-20}},
+ lineColor={0,0,0},
+ textString="%name"),Line(
+ points={{-20,20},{-50,40},{-80,0}},
+ color={0,0,0},
+ thickness=0.5)}), Documentation);
+ end Generator;
+ annotation (Documentation);
+ end Support;
+annotation (uses(OpenIPSL(version="1.5.0"), Modelica(version="3.2.2")),
+ Documentation(info="
+
+
+Reference |
+Two-Area System, Prabha Kundur, Power System Stability and Control, Example 12.6, page 813 |
+
+
+Last update |
+February 2016 |
+
+
+Author |
+Maxime Baudette, Tin Rabuzin, Ahsan Murad, SmarTS Lab, KTH Royal Institute of Technology |
+
+
+Contact |
+luigiv@kth.se |
+
+
+"));
+end TwoAreas;
diff --git a/Modeling_And_Simulation_Of_1_Generator_And_9_Bus_Using_The_Openipsl_By_Mr_Aritra_Banerjee/README.txt b/Modeling_And_Simulation_Of_1_Generator_And_9_Bus_Using_The_Openipsl_By_Mr_Aritra_Banerjee/README.txt
deleted file mode 100644
index ad6f443..0000000
--- a/Modeling_And_Simulation_Of_1_Generator_And_9_Bus_Using_The_Openipsl_By_Mr_Aritra_Banerjee/README.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-About the Power System Simulation
-
-Title Of The Power System Simulation Project: Modeling and simulation of 1 generator and 9 bus using the OpenIPSL
-Proposar Name: Mr Aritra Banerjee
-University: Meghnad Saha Institute Of Technology
-
-
-OM PSSP Project By FOSSEE, IIT Bombay
diff --git a/Modeling_And_Simulation_Of_1_Generator_And_9_Bus_Using_The_Openipsl_By_Mr_Aritra_Banerjee/abstract.pdf b/Modeling_And_Simulation_Of_1_Generator_And_9_Bus_Using_The_Openipsl_By_Mr_Aritra_Banerjee/abstract.pdf
deleted file mode 100644
index 6296c34..0000000
Binary files a/Modeling_And_Simulation_Of_1_Generator_And_9_Bus_Using_The_Openipsl_By_Mr_Aritra_Banerjee/abstract.pdf and /dev/null differ
diff --git a/Modeling_And_Simulation_Of_1_Generator_And_9_Bus_Using_The_Openipsl_By_Mr_Aritra_Banerjee/project_files/modelabstract.pdf b/Modeling_And_Simulation_Of_1_Generator_And_9_Bus_Using_The_Openipsl_By_Mr_Aritra_Banerjee/project_files/modelabstract.pdf
deleted file mode 100644
index f627104..0000000
Binary files a/Modeling_And_Simulation_Of_1_Generator_And_9_Bus_Using_The_Openipsl_By_Mr_Aritra_Banerjee/project_files/modelabstract.pdf and /dev/null differ
diff --git a/Modeling_And_Simulation_Of_1_Generator_And_9_Bus_Using_The_Openipsl_By_Mr_Aritra_Banerjee/project_files/modelingandsimulationfile.zip b/Modeling_And_Simulation_Of_1_Generator_And_9_Bus_Using_The_Openipsl_By_Mr_Aritra_Banerjee/project_files/modelingandsimulationfile.zip
deleted file mode 100644
index a98173b..0000000
Binary files a/Modeling_And_Simulation_Of_1_Generator_And_9_Bus_Using_The_Openipsl_By_Mr_Aritra_Banerjee/project_files/modelingandsimulationfile.zip and /dev/null differ
diff --git a/Modeling_Of_A_Five_Bus_Power_System_Under_Three_Phase_Fault_Using_The_Openipsl_By_Ms_Sai_Suma_Yallapragada/README.txt b/Modeling_Of_A_Five_Bus_Power_System_Under_Three_Phase_Fault_Using_The_Openipsl_By_Ms_Sai_Suma_Yallapragada/README.txt
deleted file mode 100644
index b7bbdda..0000000
--- a/Modeling_Of_A_Five_Bus_Power_System_Under_Three_Phase_Fault_Using_The_Openipsl_By_Ms_Sai_Suma_Yallapragada/README.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-About the Power System Simulation
-
-Title Of The Power System Simulation Project: Modeling of a five bus power system under three phase fault using the OpenIPSL
-Proposar Name: Ms Sai Suma Yallapragada
-University: Visvesvaraya National Institute Of Technology, Nagpur
-
-
-OM PSSP Project By FOSSEE, IIT Bombay
diff --git a/Modeling_Of_A_Five_Bus_Power_System_Under_Three_Phase_Fault_Using_The_Openipsl_By_Ms_Sai_Suma_Yallapragada/abstract1.pdf b/Modeling_Of_A_Five_Bus_Power_System_Under_Three_Phase_Fault_Using_The_Openipsl_By_Ms_Sai_Suma_Yallapragada/abstract1.pdf
deleted file mode 100644
index da9ae57..0000000
Binary files a/Modeling_Of_A_Five_Bus_Power_System_Under_Three_Phase_Fault_Using_The_Openipsl_By_Ms_Sai_Suma_Yallapragada/abstract1.pdf and /dev/null differ
diff --git a/Modeling_Of_A_Five_Bus_Power_System_Under_Three_Phase_Fault_Using_The_Openipsl_By_Ms_Sai_Suma_Yallapragada/project_files/Modelling_of_5_bus_system_under_3phase_fault_using_OpenIPSL.pdf b/Modeling_Of_A_Five_Bus_Power_System_Under_Three_Phase_Fault_Using_The_Openipsl_By_Ms_Sai_Suma_Yallapragada/project_files/Modelling_of_5_bus_system_under_3phase_fault_using_OpenIPSL.pdf
deleted file mode 100644
index c242b03..0000000
Binary files a/Modeling_Of_A_Five_Bus_Power_System_Under_Three_Phase_Fault_Using_The_Openipsl_By_Ms_Sai_Suma_Yallapragada/project_files/Modelling_of_5_bus_system_under_3phase_fault_using_OpenIPSL.pdf and /dev/null differ
diff --git a/Modeling_Of_A_Five_Bus_Power_System_Under_Three_Phase_Fault_Using_The_Openipsl_By_Ms_Sai_Suma_Yallapragada/project_files/modelling_of_5bus_system_under_3phase_fault.mo b/Modeling_Of_A_Five_Bus_Power_System_Under_Three_Phase_Fault_Using_The_Openipsl_By_Ms_Sai_Suma_Yallapragada/project_files/modelling_of_5bus_system_under_3phase_fault.mo
deleted file mode 100644
index d32ce4a..0000000
--- a/Modeling_Of_A_Five_Bus_Power_System_Under_Three_Phase_Fault_Using_The_Openipsl_By_Ms_Sai_Suma_Yallapragada/project_files/modelling_of_5bus_system_under_3phase_fault.mo
+++ /dev/null
@@ -1,90 +0,0 @@
-model modelling_of_5bus_system_under_3phase_fault
- OpenIPSL.Electrical.Buses.Bus bus1(P_0 = 131.43, Q_0 = 90.89,V_0 = 1.06, V_b = 230, angle_0 = 0, displayPF = true) annotation(
- Placement(visible = true, transformation(origin = {-64, 34}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
- OpenIPSL.Electrical.Buses.Bus bus2( P_0 = 45, Q_0 = 15,V_0 = 0.99, V_b = 230, angle_0 = -4.64, displayPF = true) annotation(
- Placement(visible = true, transformation(origin = {-10, 34}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
- OpenIPSL.Electrical.Buses.Bus bus3( P_0 = 40, Q_0 = 5,V_0 = 0.98, V_b = 230, angle_0 = -4.96, displayPF = true) annotation(
- Placement(visible = true, transformation(origin = {46, 34}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
- OpenIPSL.Electrical.Buses.Bus bus4( P_0 = 40, Q_0 = -61.64,V_0 = 1, V_b = 230, angle_0 = -2.07, displayPF = true) annotation(
- Placement(visible = true, transformation(origin = {-36, -28}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
- OpenIPSL.Electrical.Buses.Bus bus5( P_0 = 60, Q_0 = 10,V_0 = 0.97, V_b = 230, angle_0 = -5.77, displayPF = true) annotation(
- Placement(visible = true, transformation(origin = {38, -28}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
- OpenIPSL.Electrical.Branches.PwLine pwLine1(B = 0.05, G = 0, R = 0.08, X = 0.24) annotation(
- Placement(visible = true, transformation(origin = {-38, 20}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- OpenIPSL.Electrical.Branches.PwLine pwLine2(B = 0.01, G = 0, R = 0.01, X = 0.03) annotation(
- Placement(visible = true, transformation(origin = {18, 18}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- OpenIPSL.Electrical.Branches.PwLine pwLine3(B = 0.03, G = 0, R = 0.04, X = 0.12) annotation(
- Placement(visible = true, transformation(origin = {-8, -18}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- OpenIPSL.Electrical.Branches.PwLine pwLine4(B = 0.01, G = 0, R = 0.06, X = 0.18) annotation(
- Placement(visible = true, transformation(origin = {18, 2}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- OpenIPSL.Electrical.Branches.PwLine pwLine5(B = 0.04, G = 0, R = 0.06, X = 0.18, opening = 1, t1 = 20, t2 = 25) annotation(
- Placement(visible = true, transformation(origin = {-20, 2}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
- OpenIPSL.Electrical.Branches.PwLine pwLine6(B = 0.05, G = 0, R = 0.08, X = 0.24, t1 = 20, t2 = 25) annotation(
- Placement(visible = true, transformation(origin = {46, 0}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
- OpenIPSL.Electrical.Branches.PwLine pwLine7(B = 0.06, G = 0, R = 0.02, X = 0.06) annotation(
- Placement(visible = true, transformation(origin = {-66, 2}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
- OpenIPSL.Electrical.Loads.PSAT.LOADPQ loadpq1(P_0 = 45, Q_0 = 15, V_0 = 0.99, V_b = 230, angle_0 = -4.64, forcePQ = true) annotation(
- Placement(visible = true, transformation(origin = {-28, 60}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
- OpenIPSL.Electrical.Loads.PSAT.LOADPQ loadpq2(Angle_V(fixed = false),P(fixed = false),P_0 = 40, Q(fixed = false), Q_0 = -61.64, V(fixed = false), V_0 = 1, V_b = 230, angle_0 = -2.07, forcePQ = true) annotation(
- Placement(visible = true, transformation(origin = {-28, -58}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- inner OpenIPSL.Electrical.SystemBase SysData annotation(
- Placement(visible = true, transformation(origin = {76, -74}, extent = {{-12, -10}, {12, 10}}, rotation = 0)));
- OpenIPSL.Electrical.Machines.PSAT.Order3 order32(D = 0, M = 10, P_0 = 40, Q_0 = -61.64, Sn = 100, T1d0 = 8, V_0 = 1, V_b = 230, Vn = 230, angle_0 = -2.07, ra = 0.01, x1d = 0.302, xd = 1.9, xq = 1.7) annotation(
- Placement(visible = true, transformation(origin = {-66, -50}, extent = {{-12, -12}, {12, 12}}, rotation = 0)));
- OpenIPSL.Electrical.Loads.PSAT.LOADPQ loadpq3(P_0 = 60, Q_0 = 10, V_0 = 0.97, V_b = 230, angle_0 = -5.77, forcePQ = true) annotation(
- Placement(visible = true, transformation(origin = {36, -54}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- OpenIPSL.Electrical.Loads.PSAT.LOADPQ loadpq4(P_0 = 40, Q_0 = 5, V_0 = 0.98, V_b = 230, angle_0 = -4.96, forcePQ = true) annotation(
- Placement(visible = true, transformation(origin = {36, 62}, extent = {{-10, -10}, {10, 10}}, rotation = 180)));
- OpenIPSL.Electrical.Events.PwFault pwFault1(R = 0.05, X = 0.5, t1 = 1.5, t2 = 2) annotation(
- Placement(visible = true, transformation(origin = {74, -16}, extent = {{-6, -6}, {6, 6}}, rotation = 0)));
- OpenIPSL.Electrical.Buses.InfiniteBus infiniteBus1(P_0 = 131.43, Q_0 = 90.89, V_0 = 1.06, V_b = 230, angle_0 = 0) annotation(
- Placement(visible = true, transformation(origin = {-76, 62}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
-equation
- connect(order32.vf0, order32.vf) annotation(
- Line(points = {{-76, -36}, {-76, -36}, {-76, -32}, {-88, -32}, {-88, -42}, {-80, -42}, {-80, -44}}, color = {0, 0, 127}));
- connect(infiniteBus1.p, bus1.p) annotation(
- Line(points = {{-66, 62}, {-66, 62}, {-66, 34}, {-64, 34}}, color = {0, 0, 255}));
- connect(pwFault1.p, pwLine6.n) annotation(
- Line(points = {{68, -16}, {46, -16}, {46, -8}, {46, -8}}, color = {0, 0, 255}));
- connect(pwLine3.p, bus4.p) annotation(
- Line(points = {{-17, -18}, {-30, -18}, {-30, -28}, {-36, -28}}, color = {0, 0, 255}));
- connect(pwLine3.n, bus5.p) annotation(
- Line(points = {{1, -18}, {36, -18}, {36, -28}, {38, -28}}, color = {0, 0, 255}));
- connect(loadpq4.p, bus3.p) annotation(
- Line(points = {{36, 52}, {46, 52}, {46, 34}, {46, 34}}, color = {0, 0, 255}));
- connect(bus5.p, loadpq3.p) annotation(
- Line(points = {{38, -28}, {36, -28}, {36, -44}, {36, -44}}, color = {0, 0, 255}));
- connect(order32.pm0, order32.pm) annotation(
- Line(points = {{-75.6, -63.2}, {-91.6, -63.2}, {-91.6, -56.2}, {-79.6, -56.2}}, color = {0, 0, 127}));
- connect(order32.p, bus4.p) annotation(
- Line(points = {{-54, -50}, {-36, -50}, {-36, -28}}, color = {0, 0, 255}));
- connect(loadpq1.p, bus2.p) annotation(
- Line(points = {{-18, 60}, {-10, 60}, {-10, 34}, {-10, 34}}, color = {0, 0, 255}));
- connect(bus4.p, loadpq2.p) annotation(
- Line(points = {{-36, -28}, {-28, -28}, {-28, -48}, {-28, -48}}, color = {0, 0, 255}));
- connect(pwLine4.n, bus3.p) annotation(
- Line(points = {{28, 2}, {42, 2}, {42, 34}, {46, 34}, {46, 34}}, color = {0, 0, 255}));
- connect(pwLine4.p, bus4.p) annotation(
- Line(points = {{10, 2}, {-32, 2}, {-32, -28}, {-36, -28}, {-36, -28}}, color = {0, 0, 255}));
- connect(pwLine7.n, bus4.p) annotation(
- Line(points = {{-66, -6}, {-36, -6}, {-36, -28}, {-36, -28}}, color = {0, 0, 255}));
- connect(pwLine7.p, bus1.p) annotation(
- Line(points = {{-66, 12}, {-64, 12}, {-64, 34}, {-64, 34}}, color = {0, 0, 255}));
- connect(pwLine2.n, bus3.p) annotation(
- Line(points = {{28, 18}, {40, 18}, {40, 34}, {46, 34}, {46, 34}}, color = {0, 0, 255}));
- connect(pwLine2.p, bus2.p) annotation(
- Line(points = {{10, 18}, {-4, 18}, {-4, 34}, {-10, 34}, {-10, 34}}, color = {0, 0, 255}));
- connect(pwLine6.n, bus5.p) annotation(
- Line(points = {{46, -8}, {44, -8}, {44, -26}, {38, -26}, {38, -28}}, color = {0, 0, 255}));
- connect(pwLine6.p, bus3.p) annotation(
- Line(points = {{46, 9}, {46, 34}}, color = {0, 0, 255}));
- connect(pwLine1.n, bus2.p) annotation(
- Line(points = {{-28, 20}, {-10, 20}, {-10, 34}, {-10, 34}}, color = {0, 0, 255}));
- connect(pwLine1.p, bus1.p) annotation(
- Line(points = {{-48, 20}, {-64, 20}, {-64, 34}, {-64, 34}}, color = {0, 0, 255}));
- connect(pwLine5.p, bus2.p) annotation(
- Line(points = {{-20, 12}, {-20, 12}, {-20, 34}, {-10, 34}, {-10, 34}}, color = {0, 0, 255}));
- connect(pwLine5.n, bus4.p) annotation(
- Line(points = {{-20, -6}, {-30, -6}, {-30, -28}, {-36, -28}, {-36, -28}}, color = {0, 0, 255}));
- annotation(
- uses(OpenIPSL(version = "1.5.0"), Modelica(version = "3.2.3")));end modelling_of_5bus_system_under_3phase_fault;
diff --git a/Modeling_Of_An_Islanded_Operation_Controller_For_Power_Systems_Study._By_Mr_Biswarup_Mukherjee_And_Prof._Luigi_Vanfretti/Modeling_of_an_islanded_operation_controller_for_power_systems_study.pdf b/Modeling_Of_An_Islanded_Operation_Controller_For_Power_Systems_Study._By_Mr_Biswarup_Mukherjee_And_Prof._Luigi_Vanfretti/Modeling_of_an_islanded_operation_controller_for_power_systems_study.pdf
deleted file mode 100644
index 569035c..0000000
Binary files a/Modeling_Of_An_Islanded_Operation_Controller_For_Power_Systems_Study._By_Mr_Biswarup_Mukherjee_And_Prof._Luigi_Vanfretti/Modeling_of_an_islanded_operation_controller_for_power_systems_study.pdf and /dev/null differ
diff --git a/Modeling_Of_An_Islanded_Operation_Controller_For_Power_Systems_Study._By_Mr_Biswarup_Mukherjee_And_Prof._Luigi_Vanfretti/README.txt b/Modeling_Of_An_Islanded_Operation_Controller_For_Power_Systems_Study._By_Mr_Biswarup_Mukherjee_And_Prof._Luigi_Vanfretti/README.txt
deleted file mode 100644
index 05eca0a..0000000
--- a/Modeling_Of_An_Islanded_Operation_Controller_For_Power_Systems_Study._By_Mr_Biswarup_Mukherjee_And_Prof._Luigi_Vanfretti/README.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-About the Power System Simulation
-
-Title Of The Power System Simulation Project: Modeling of an Islanded Operation Controller for Power Systems Study.
-Proposar Name: Mr Biswarup Mukherjee and Prof. Luigi Vanfretti
-University: Indian Institute Of Technology Bombay and Rensselaer Polytechnic Institute
-
-
-OM PSSP Project By FOSSEE, IIT Bombay
diff --git a/Modeling_Of_An_Islanded_Operation_Controller_For_Power_Systems_Study._By_Mr_Biswarup_Mukherjee_And_Prof._Luigi_Vanfretti/project_files/IslandedOperationControl.mo b/Modeling_Of_An_Islanded_Operation_Controller_For_Power_Systems_Study._By_Mr_Biswarup_Mukherjee_And_Prof._Luigi_Vanfretti/project_files/IslandedOperationControl.mo
deleted file mode 100644
index 43208fb..0000000
--- a/Modeling_Of_An_Islanded_Operation_Controller_For_Power_Systems_Study._By_Mr_Biswarup_Mukherjee_And_Prof._Luigi_Vanfretti/project_files/IslandedOperationControl.mo
+++ /dev/null
@@ -1,33782 +0,0 @@
-package IslandedOperationControl
- class Copyright "Disclaimer
- The package 'IslandedOperationControl.mo' is a copy of the modified package 'Modelica2018US_paper_15.mo', that includes the models presented in the conference paper 'Modeling of PMU-Based Islanded Operation Controls for
- Power Distribution Networks using Modelica and OpenIPSL' at American Modelica Conference 2018.
-Copyright July 2018 - Biswarup Mukherjee, IIT Bombay, India & Prof. Luigi Vanfretti, Rensselaer Polytechnic Institute, Troy, NY.
-
-
-OpenIPSL:
-Copyright August 2017 - Prof. Luigi Vanfretti, Rensselaer Polytechnic Institute, Troy, NY.
-Copyright April 2016 - July 2017 SmarTS Lab (Sweden)
-
-The authors can be contacted by email: luigi.vanfretti@gmail.com
-This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0.
-If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0.
-
-iPSL:
-Copyright 2015-2016 RTE (France), SmarTS Lab (Sweden), AIA (Spain) and DTU (Denmark)
-
-The authors can be contacted by email: info@itesla-ipsl.org
-
-This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0.
-If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0.
-"
-
- annotation (
- preferredView="info",
- DocumentationClass=false,
- Icon(graphics={
- Text(
- extent={{-100,140},{100,100}},
- lineColor={0,127,0},
- textString="%name%"),
- Ellipse(
- extent={{-100,100},{100,-100}},
- lineColor={0,127,0},
- fillColor={255,255,255},
- fillPattern=FillPattern.Solid),
- Ellipse(
- extent={{-60,60},{60,-60}},
- lineColor={0,127,72},
- fillColor={0,127,0},
- fillPattern=FillPattern.Solid),
- Ellipse(
- extent={{-40,40},{40,-40}},
- lineColor={255,255,255},
- fillColor={255,255,255},
- fillPattern=FillPattern.Solid),
- Rectangle(
- extent={{28,22},{64,-20}},
- lineColor={255,255,255},
- fillColor={255,255,255},
- fillPattern=FillPattern.Solid)}),
- Documentation(info="
-"));
- end Copyright;
-
- package Network
- model Network_DL
- extends Modelica.Icons.Example;
- OpenIPSL.Electrical.Buses.Bus B1(displayPF = false, V_0 = network_10_0_MW_voltages_WL.V1, angle_0 = network_10_0_MW_voltages_WL.A1) annotation (
- Placement(transformation(extent = {{-90, 30}, {-70, 50}})));
- OpenIPSL.Electrical.Buses.Bus B2(displayPF = false, V_0 = network_10_0_MW_voltages_WL.V2, angle_0 = network_10_0_MW_voltages_WL.A2) annotation (
- Placement(transformation(extent = {{-50, 30}, {-30, 50}})));
- OpenIPSL.Electrical.Branches.PSSE.TwoWindingTransformer T1(R = 0.001, X = 0.2, G = 0, B = 0, VNOM1 = 220, VB1 = 220, VNOM2 = 24, VB2 = 24) annotation (
- Placement(transformation(extent = {{-6, -4}, {6, 4}}, rotation = 180, origin = {-60, 40})));
- Generators.G1 G1(V_b = 24, V_0 = network_10_0_MW_voltages_WL.V1, angle_0 = network_10_0_MW_voltages_WL.A1, P_0 = network_10_0_MW_machines_WL.P1_1, Q_0 = network_10_0_MW_machines_WL.Q1_1) annotation (
- Placement(transformation(extent = {{-110, 30}, {-90, 50}})));
- OpenIPSL.Electrical.Branches.PwLine L1(G = 0, B = 0, R = 0.001, X = 0.2, displayPF = false) annotation (
- Placement(transformation(extent = {{-30, 36}, {-18, 44}})));
- OpenIPSL.Electrical.Buses.Bus B3(displayPF = false, V_0 = network_10_0_MW_voltages_WL.V3, angle_0 = network_10_0_MW_voltages_WL.A3) annotation (
- Placement(transformation(extent = {{-12, 30}, {8, 50}})));
- OpenIPSL.Electrical.Buses.Bus B4(displayPF = false, V_0 = network_10_0_MW_voltages_WL.V4, angle_0 = network_10_0_MW_voltages_WL.A4) annotation (
- Placement(transformation(extent = {{54, 30}, {74, 50}})));
- OpenIPSL.Electrical.Branches.PwLine L2_1(G = 0, B = 0, R = 0.0005, X = 0.1, displayPF = false) annotation (
- Placement(transformation(extent = {{24, 56}, {36, 64}})));
- OpenIPSL.Electrical.Branches.PwLine L2_2(G = 0, B = 0, R = 0.0005, X = 0.1, displayPF = false) annotation (
- Placement(transformation(extent = {{24, 16}, {36, 24}})));
- OpenIPSL.Electrical.Buses.Bus B6(displayPF = false, V_0 = network_10_0_MW_voltages_WL.V6, angle_0 = network_10_0_MW_voltages_WL.A6) annotation (
- Placement(transformation(extent = {{-10, -10}, {10, 10}}, rotation = 90, origin = {80, -24})));
- OpenIPSL.Electrical.Branches.PwLine L3(X = 0.2, G = 0, B = 0, R = 0.01, displayPF = false) annotation (
- Placement(transformation(extent = {{-7.99999, -5.00005}, {7.99999, 5}}, rotation = -90, origin = {81, 9.99999})));
- OpenIPSL.Electrical.Buses.Bus B7(displayPF = false, V_0 = network_10_0_MW_voltages_WL.V7, angle_0 = network_10_0_MW_voltages_WL.A7) annotation (
- Placement(transformation(extent = {{-10, -10}, {10, 10}}, rotation = 90, origin = {60, -60})));
- OpenIPSL.Electrical.Branches.PSSE.TwoWindingTransformer T2(G = 0, B = 0, VNOM1 = 220, VB1 = 220, VNOM2 = 24, VB2 = 24, R = 0.005, X = 0.1) annotation (
- Placement(transformation(extent = {{-6, -4}, {6, 4}}, rotation = 270, origin = {60, -40})));
- inner OpenIPSL.Electrical.SystemBase SysData(S_b = 100, fn = 50) annotation (
- Placement(transformation(extent = {{-140, 100}, {-80, 120}})));
- OpenIPSL.Electrical.Loads.PSSE.Load LD1(V_b = 220, V_0 = network_10_0_MW_voltages_WL.V3, angle_0 = network_10_0_MW_voltages_WL.A3, P_0 = network_10_0_MW_loads_WL.PL3_1, Q_0 = network_10_0_MW_loads_WL.QL3_1) annotation (
- Placement(transformation(extent = {{-16, -14}, {-4, -2}})));
- Essentials.Breaker breaker1 annotation (
- Placement(transformation(extent = {{-4, -4}, {4, 4}}, rotation = 90, origin = {80, -16})));
- public
- OpenIPSL.Electrical.Branches.PwLine L2(G = 0, B = 0, R = 0.05, X = 0.5, displayPF = false) annotation (
- Placement(transformation(extent = {{-8.00001, -5.00001}, {8, 5.00001}}, rotation = 0, origin = {96, 41})));
- Essentials.Breaker breaker2 annotation (
- Placement(transformation(extent = {{-4, -4}, {4, 4}}, rotation = 90, origin = {80, 28})));
- OpenIPSL.Electrical.Buses.Bus B8(displayPF = false, V_0 = network_10_0_MW_voltages_WL.V8, angle_0 = network_10_0_MW_voltages_WL.A8) annotation (
- Placement(transformation(extent = {{-10, -10}, {10, 10}}, rotation = 90, origin = {100, -58})));
- OpenIPSL.Electrical.Branches.PwLine L4(G = 0, B = 0, R = 0.05, X = 0.5) annotation (
- Placement(transformation(extent = {{-6, -4}, {6, 4}}, rotation = -90, origin = {100, -42})));
- OpenIPSL.Electrical.Buses.Bus B5(displayPF = false, V_0 = network_10_0_MW_voltages_WL.V5, angle_0 = network_10_0_MW_voltages_WL.A5) annotation (
- Placement(transformation(extent = {{110, 30}, {130, 50}})));
- OpenIPSL.Electrical.Loads.PSSE.Load load(V_b = 220, V_0 = network_10_0_MW_voltages_WL.V5, angle_0 = network_10_0_MW_voltages_WL.A5, P_0 = network_10_0_MW_loads_WL.PL5_1, Q_0 = network_10_0_MW_loads_WL.QL5_1) annotation (
- Placement(transformation(extent = {{122, -2}, {132, 8}})));
- Generators.G22 g22_IslandedControl(V_0 = network_10_0_MW_voltages_WL.V7, angle_0 = network_10_0_MW_voltages_WL.A7, P_0 = network_10_0_MW_machines_WL.P7_1, Q_0 = network_10_0_MW_machines_WL.Q7_1) annotation (
- Placement(transformation(extent = {{28, -92}, {52, -70}})));
- OpenIPSL.Electrical.Loads.PSSE.Load LD2(V_b = 220, V_0 = network_10_0_MW_voltages_WL.V8, angle_0 = network_10_0_MW_voltages_WL.A8, P_0 = network_10_0_MW_loads_WL.PL8_1, Q_0 = network_10_0_MW_loads_WL.QL8_1) annotation (
- Placement(transformation(extent = {{94, -100}, {106, -88}})));
- Essentials.Event_Islanding event_Islanding(f_DN(u = B6.p.vi, u1 = B6.p.vr)) annotation (
- Placement(transformation(extent = {{-4, -50}, {22, -28}})));
- PowerFlowData.case10_0MW.Network_10_0_MW_loads_WL network_10_0_MW_loads_WL annotation (
- Placement(transformation(extent = {{-72, 92}, {-52, 112}})));
- PowerFlowData.case10_0MW.Network_10_0_MW_machines_WL network_10_0_MW_machines_WL annotation (
- Placement(transformation(extent = {{-38, 92}, {-18, 112}})));
- PowerFlowData.case10_0MW.Network_10_0_MW_voltages_WL network_10_0_MW_voltages_WL annotation (
- Placement(transformation(extent = {{-4, 92}, {16, 112}})));
- equation
- connect(T1.p, B2.p) annotation (
- Line(points = {{-53, 40}, {-40, 40}}, color = {0, 0, 255}));
- connect(B1.p, T1.n) annotation (
- Line(points = {{-80, 40}, {-67, 40}}, color = {0, 0, 255}));
- connect(G1.conn, B1.p) annotation (
- Line(points = {{-89, 40}, {-89, 40}, {-80, 40}}, color = {0, 0, 255}));
- connect(L1.n, B3.p) annotation (
- Line(points = {{-18.6, 40}, {-2, 40}}, color = {0, 0, 255}));
- connect(L1.p, B2.p) annotation (
- Line(points = {{-29.4, 40}, {-40, 40}}, color = {0, 0, 255}));
- connect(L2_2.n, B4.p) annotation (
- Line(points = {{35.4, 20}, {56, 20}, {56, 40}, {64, 40}}, color = {0, 0, 255}));
- connect(L2_1.n, B4.p) annotation (
- Line(points = {{35.4, 60}, {56, 60}, {56, 40}, {64, 40}}, color = {0, 0, 255}));
- connect(L2_1.p, B3.p) annotation (
- Line(points = {{24.6, 60}, {24.6, 60}, {4, 60}, {4, 40}, {-2, 40}}, color = {0, 0, 255}));
- connect(L2_2.p, B3.p) annotation (
- Line(points = {{24.6, 20}, {4, 20}, {4, 40}, {-2, 40}}, color = {0, 0, 255}));
- connect(T2.p, B6.p) annotation (
- Line(points = {{60, -33}, {60, -28}, {80, -28}, {80, -24}}, color = {0, 0, 255}));
- connect(T2.n, B7.p) annotation (
- Line(points = {{60, -47}, {60, -60}}, color = {0, 0, 255}));
- connect(LD1.p, B3.p) annotation (
- Line(points = {{-10, -2}, {-10, 40}, {-2, 40}}, color = {0, 0, 255}));
- connect(B6.p, breaker1.p) annotation (
- Line(points = {{80, -24}, {80, -20.5}}, color = {0, 0, 255}));
- connect(L2.p, B4.p) annotation (
- Line(points = {{88.8, 41}, {88.8, 40}, {64, 40}}, color = {0, 0, 255}));
- connect(breaker2.n, B4.p) annotation (
- Line(points = {{80, 32.5}, {80, 40}, {64, 40}}, color = {0, 0, 255}));
- connect(L3.p, breaker2.p) annotation (
- Line(points={{81,17.2},{80,17.2},{80,23.5}}, color = {0, 0, 255}));
- connect(breaker1.n, L3.n) annotation (
- Line(points={{80,-11.5},{80,2.8},{81,2.8}}, color = {0, 0, 255}));
- connect(L4.p, B6.p) annotation (
- Line(points = {{100, -36.6}, {100, -28}, {80, -28}, {80, -24}}, color = {0, 0, 255}));
- connect(B5.p, L2.n) annotation (
- Line(points = {{120, 40}, {112, 40}, {112, 41}, {103.2, 41}}, color = {0, 0, 255}));
- connect(L4.n, B8.p) annotation (
- Line(points = {{100, -47.4}, {100, -47.4}, {100, -58}}, color = {0, 0, 255}));
- connect(B5.p, load.p) annotation (
- Line(points = {{120, 40}, {128, 40}, {128, 8}, {127, 8}}, color = {0, 0, 255}));
- connect(g22_IslandedControl.conn, B7.p) annotation (
- Line(points = {{53.2, -81}, {53.2, -82.27}, {60, -82.27}, {60, -60}}, color = {0, 0, 255}));
- connect(B8.p, LD2.p) annotation (
- Line(points = {{100, -58}, {100, -58}, {100, -88}}, color = {0, 0, 255}));
- connect(event_Islanding.startIslanding, g22_IslandedControl.start_islanding) annotation (
- Line(points = {{9, -50.6}, {9, -98}, {39.76, -98}, {39.76, -92.44}}, color = {255, 0, 255}));
- connect(event_Islanding.y1, g22_IslandedControl.f_DN) annotation (
- Line(points = {{20.4, -41.8}, {26, -41.8}, {26, -74.18}, {28, -74.18}}, color = {0, 0, 127}));
- connect(event_Islanding.Trip_Breaker_To_Island, breaker1.TRIGGER) annotation (
- Line(points = {{20.2, -35.6}, {26, -35.6}, {26, -16}, {75.5, -16}}, color = {255, 0, 255}));
- connect(event_Islanding.y, breaker2.TRIGGER) annotation (
- Line(points = {{8.8, -27.6}, {8.8, -6}, {72, -6}, {72, 28}, {75.5, 28}}, color = {255, 0, 255}));
- annotation (
- Icon(coordinateSystem(preserveAspectRatio = false, extent = {{-140, -120}, {140, 120}})),
- Diagram(coordinateSystem(preserveAspectRatio = false, extent = {{-140, -120}, {140, 120}})),
- experiment(StopTime = 70, Interval = 0.02, __Dymola_fixedstepsize = 0.02, __Dymola_Algorithm = "Rkfix4"),
- __Dymola_experimentFlags(Advanced(GenerateVariableDependencies = false, OutputModelicaCode = false), Evaluate = true, OutputCPUtime = false, OutputFlatModelica = false));
- end Network_DL;
-
- model Network_CD "islanded operation controller disabled"
- extends Modelica.Icons.Example;
- OpenIPSL.Electrical.Buses.Bus B1(displayPF = false, V_0 = network_10_0_MW_voltages_WL.V1, angle_0 = network_10_0_MW_voltages_WL.A1) annotation (
- Placement(transformation(extent = {{-90, 30}, {-70, 50}})));
- OpenIPSL.Electrical.Buses.Bus B2(displayPF = false, V_0 = network_10_0_MW_voltages_WL.V2, angle_0 = network_10_0_MW_voltages_WL.A2) annotation (
- Placement(transformation(extent = {{-50, 30}, {-30, 50}})));
- OpenIPSL.Electrical.Branches.PSSE.TwoWindingTransformer T1(R = 0.001, X = 0.2, G = 0, B = 0, VNOM1 = 220, VB1 = 220, VNOM2 = 24, VB2 = 24) annotation (
- Placement(transformation(extent = {{-6, -4}, {6, 4}}, rotation = 180, origin = {-60, 40})));
- Generators.G1 G1(V_b = 24, V_0 = network_10_0_MW_voltages_WL.V1, angle_0 = network_10_0_MW_voltages_WL.A1, P_0 = network_10_0_MW_machines_WL.P1_1, Q_0 = network_10_0_MW_machines_WL.Q1_1) annotation (
- Placement(transformation(extent = {{-110, 30}, {-90, 50}})));
- OpenIPSL.Electrical.Branches.PwLine L1(G = 0, B = 0, R = 0.001, X = 0.2, displayPF = false) annotation (
- Placement(transformation(extent = {{-30, 36}, {-18, 44}})));
- OpenIPSL.Electrical.Buses.Bus B3(displayPF = false, V_0 = network_10_0_MW_voltages_WL.V3, angle_0 = network_10_0_MW_voltages_WL.A3) annotation (
- Placement(transformation(extent = {{-12, 30}, {8, 50}})));
- OpenIPSL.Electrical.Buses.Bus B4(displayPF = false, V_0 = network_10_0_MW_voltages_WL.V4, angle_0 = network_10_0_MW_voltages_WL.A4) annotation (
- Placement(transformation(extent = {{54, 30}, {74, 50}})));
- OpenIPSL.Electrical.Branches.PwLine L2_1(G = 0, B = 0, R = 0.0005, X = 0.1, displayPF = false) annotation (
- Placement(transformation(extent = {{24, 56}, {36, 64}})));
- OpenIPSL.Electrical.Branches.PwLine L2_2(G = 0, B = 0, R = 0.0005, X = 0.1, displayPF = false) annotation (
- Placement(transformation(extent = {{24, 16}, {36, 24}})));
- OpenIPSL.Electrical.Buses.Bus B6(displayPF = false, V_0 = network_10_0_MW_voltages_WL.V6, angle_0 = network_10_0_MW_voltages_WL.A6) annotation (
- Placement(transformation(extent = {{-10, -10}, {10, 10}}, rotation = 90, origin = {80, -24})));
- OpenIPSL.Electrical.Branches.PwLine L3(X = 0.2, G = 0, B = 0, R = 0.01, displayPF = false) annotation (
- Placement(transformation(extent = {{-7.99999, -5.00005}, {7.99999, 5}}, rotation = -90, origin = {81, 9.99999})));
- OpenIPSL.Electrical.Buses.Bus B7(displayPF = false, V_0 = network_10_0_MW_voltages_WL.V7, angle_0 = network_10_0_MW_voltages_WL.A7) annotation (
- Placement(transformation(extent = {{-10, -10}, {10, 10}}, rotation = 90, origin = {60, -60})));
- OpenIPSL.Electrical.Branches.PSSE.TwoWindingTransformer T2(G = 0, B = 0, VNOM1 = 220, VB1 = 220, VNOM2 = 24, VB2 = 24, R = 0.005, X = 0.1) annotation (
- Placement(transformation(extent = {{-6, -4}, {6, 4}}, rotation = 270, origin = {60, -40})));
- inner OpenIPSL.Electrical.SystemBase SysData(S_b = 100, fn = 50) annotation (
- Placement(transformation(extent = {{-140, 100}, {-80, 120}})));
- OpenIPSL.Electrical.Loads.PSSE.Load LD1(V_b = 220, V_0 = network_10_0_MW_voltages_WL.V3, angle_0 = network_10_0_MW_voltages_WL.A3, P_0 = network_10_0_MW_loads_WL.PL3_1, Q_0 = network_10_0_MW_loads_WL.QL3_1) annotation (
- Placement(transformation(extent = {{-16, -14}, {-4, -2}})));
- Essentials.Breaker breaker1 annotation (
- Placement(transformation(extent = {{-4, -4}, {4, 4}}, rotation = 90, origin = {80, -16})));
- public
- OpenIPSL.Electrical.Branches.PwLine L2(G = 0, B = 0, R = 0.05, X = 0.5, displayPF = false) annotation (
- Placement(transformation(extent = {{-8.00001, -5.00001}, {8, 5.00001}}, rotation = 0, origin = {96, 41})));
- Essentials.Breaker breaker2 annotation (
- Placement(transformation(extent = {{-4, -4}, {4, 4}}, rotation = 90, origin = {80, 28})));
- OpenIPSL.Electrical.Buses.Bus B8(displayPF = false, V_0 = network_10_0_MW_voltages_WL.V8, angle_0 = network_10_0_MW_voltages_WL.A8) annotation (
- Placement(transformation(extent = {{-10, -10}, {10, 10}}, rotation = 90, origin = {100, -58})));
- OpenIPSL.Electrical.Branches.PwLine L4(G = 0, B = 0, R = 0.05, X = 0.5) annotation (
- Placement(transformation(extent = {{-6, -4}, {6, 4}}, rotation = -90, origin = {100, -42})));
- OpenIPSL.Electrical.Buses.Bus B5(displayPF = false, V_0 = network_10_0_MW_voltages_WL.V5, angle_0 = network_10_0_MW_voltages_WL.A5) annotation (
- Placement(transformation(extent = {{110, 30}, {130, 50}})));
- OpenIPSL.Electrical.Loads.PSSE.Load load(V_b = 220, V_0 = network_10_0_MW_voltages_WL.V5, angle_0 = network_10_0_MW_voltages_WL.A5, P_0 = network_10_0_MW_loads_WL.PL5_1, Q_0 = network_10_0_MW_loads_WL.QL5_1) annotation (
- Placement(transformation(extent = {{122, -2}, {132, 8}})));
- Generators.G22_CD g22_IslandedControl(V_0 = network_10_0_MW_voltages_WL.V7, angle_0 = network_10_0_MW_voltages_WL.A7, P_0 = network_10_0_MW_machines_WL.P7_1, Q_0 = network_10_0_MW_machines_WL.Q7_1) annotation (
- Placement(transformation(extent = {{28, -92}, {52, -70}})));
- OpenIPSL.Electrical.Loads.PSSE.Load LD2(V_b = 220, V_0 = network_10_0_MW_voltages_WL.V8, angle_0 = network_10_0_MW_voltages_WL.A8, P_0 = network_10_0_MW_loads_WL.PL8_1, Q_0 = network_10_0_MW_loads_WL.QL8_1) annotation (
- Placement(transformation(extent = {{94, -100}, {106, -88}})));
- Essentials.Event_Islanding event_Islanding(f_DN(u = B6.p.vi, u1 = B6.p.vr)) annotation (
- Placement(transformation(extent = {{-4, -50}, {22, -28}})));
- PowerFlowData.case10_0MW.Network_10_0_MW_loads_WL network_10_0_MW_loads_WL annotation (
- Placement(transformation(extent = {{-72, 92}, {-52, 112}})));
- PowerFlowData.case10_0MW.Network_10_0_MW_machines_WL network_10_0_MW_machines_WL annotation (
- Placement(transformation(extent = {{-38, 92}, {-18, 112}})));
- PowerFlowData.case10_0MW.Network_10_0_MW_voltages_WL network_10_0_MW_voltages_WL annotation (
- Placement(transformation(extent = {{-4, 92}, {16, 112}})));
- equation
- connect(T1.p, B2.p) annotation (
- Line(points = {{-53, 40}, {-40, 40}}, color = {0, 0, 255}));
- connect(B1.p, T1.n) annotation (
- Line(points = {{-80, 40}, {-67, 40}}, color = {0, 0, 255}));
- connect(G1.conn, B1.p) annotation (
- Line(points = {{-89, 40}, {-89, 40}, {-80, 40}}, color = {0, 0, 255}));
- connect(L1.n, B3.p) annotation (
- Line(points = {{-18.6, 40}, {-2, 40}}, color = {0, 0, 255}));
- connect(L1.p, B2.p) annotation (
- Line(points = {{-29.4, 40}, {-40, 40}}, color = {0, 0, 255}));
- connect(L2_2.n, B4.p) annotation (
- Line(points = {{35.4, 20}, {56, 20}, {56, 40}, {64, 40}}, color = {0, 0, 255}));
- connect(L2_1.n, B4.p) annotation (
- Line(points = {{35.4, 60}, {56, 60}, {56, 40}, {64, 40}}, color = {0, 0, 255}));
- connect(L2_1.p, B3.p) annotation (
- Line(points = {{24.6, 60}, {24.6, 60}, {4, 60}, {4, 40}, {-2, 40}}, color = {0, 0, 255}));
- connect(L2_2.p, B3.p) annotation (
- Line(points = {{24.6, 20}, {4, 20}, {4, 40}, {-2, 40}}, color = {0, 0, 255}));
- connect(T2.p, B6.p) annotation (
- Line(points = {{60, -33}, {60, -28}, {80, -28}, {80, -24}}, color = {0, 0, 255}));
- connect(T2.n, B7.p) annotation (
- Line(points = {{60, -47}, {60, -60}}, color = {0, 0, 255}));
- connect(LD1.p, B3.p) annotation (
- Line(points = {{-10, -2}, {-10, 40}, {-2, 40}}, color = {0, 0, 255}));
- connect(B6.p, breaker1.p) annotation (
- Line(points = {{80, -24}, {80, -20.5}}, color = {0, 0, 255}));
- connect(L2.p, B4.p) annotation (
- Line(points = {{88.8, 41}, {88.8, 40}, {64, 40}}, color = {0, 0, 255}));
- connect(breaker2.n, B4.p) annotation (
- Line(points = {{80, 32.5}, {80, 40}, {64, 40}}, color = {0, 0, 255}));
- connect(L3.p, breaker2.p) annotation (
- Line(points = {{81, 17.2}, {80, 17.2}, {80, 23.5}}, color = {0, 0, 255}));
- connect(breaker1.n, L3.n) annotation (
- Line(points = {{80, -11.5}, {80, 2.8}, {81, 2.8}}, color = {0, 0, 255}));
- connect(L4.p, B6.p) annotation (
- Line(points = {{100, -36.6}, {100, -28}, {80, -28}, {80, -24}}, color = {0, 0, 255}));
- connect(B5.p, L2.n) annotation (
- Line(points = {{120, 40}, {112, 40}, {112, 41}, {103.2, 41}}, color = {0, 0, 255}));
- connect(L4.n, B8.p) annotation (
- Line(points = {{100, -47.4}, {100, -47.4}, {100, -58}}, color = {0, 0, 255}));
- connect(B5.p, load.p) annotation (
- Line(points = {{120, 40}, {128, 40}, {128, 8}, {127, 8}}, color = {0, 0, 255}));
- connect(g22_IslandedControl.conn, B7.p) annotation (
- Line(points = {{53.2, -81}, {53.2, -82.27}, {60, -82.27}, {60, -60}}, color = {0, 0, 255}));
- connect(B8.p, LD2.p) annotation (
- Line(points = {{100, -58}, {100, -58}, {100, -88}}, color = {0, 0, 255}));
- connect(event_Islanding.startIslanding, g22_IslandedControl.start_islanding) annotation (
- Line(points = {{9, -50.6}, {9, -98}, {39.76, -98}, {39.76, -92.44}}, color = {255, 0, 255}));
- connect(event_Islanding.y1, g22_IslandedControl.f_DN) annotation (
- Line(points = {{20.4, -41.8}, {26, -41.8}, {26, -74.18}, {28, -74.18}}, color = {0, 0, 127}));
- connect(event_Islanding.Trip_Breaker_To_Island, breaker1.TRIGGER) annotation (
- Line(points = {{20.2, -35.6}, {26, -35.6}, {26, -16}, {75.5, -16}}, color = {255, 0, 255}));
- connect(event_Islanding.y, breaker2.TRIGGER) annotation (
- Line(points = {{8.8, -27.6}, {8.8, -6}, {72, -6}, {72, 28}, {75.5, 28}}, color = {255, 0, 255}));
- annotation (
- Icon(coordinateSystem(preserveAspectRatio = false, extent = {{-140, -120}, {140, 120}})),
- Diagram(coordinateSystem(preserveAspectRatio = false, extent = {{-140, -120}, {140, 120}})),
- experiment(StopTime = 70, Interval = 0.02, __Dymola_fixedstepsize = 0.02, __Dymola_Algorithm = "Rkfix4"),
- __Dymola_experimentFlags(Advanced(GenerateVariableDependencies = false, OutputModelicaCode = false), Evaluate = true, OutputCPUtime = false, OutputFlatModelica = false));
- end Network_CD;
- end Network;
-
- package Essentials
- model Event_Islanding
- parameter Real L1 = 0.5 "frequency upper limit";
- parameter Real L2 = -3 "frequency lower limit";
- parameter Real dt = 2 "time interval";
- Modelica.Blocks.Sources.BooleanConstant booleanConstant(k = true) annotation (
- Placement(transformation(extent = {{-64, 18}, {-44, 38}})));
- FrequencyCalculationBlock f_DN annotation (
- Placement(transformation(extent = {{-64, -54}, {-42, -32}})));
- Modelica.Blocks.Interfaces.BooleanOutput y annotation (
- Placement(transformation(rotation = 0, extent = {{-14, -12}, {14, 12}}, origin = {14, 34}), iconTransformation(extent = {{-14, -12}, {14, 12}}, rotation = 90, origin = {8, 104})));
- Modelica.Blocks.Interfaces.RealOutput y1 annotation (
- Placement(transformation(rotation = 0, extent = {{110, -50}, {138, -26}}), iconTransformation(extent = {{110, -50}, {138, -26}})));
- Modelica.Blocks.Interfaces.BooleanOutput startIslanding annotation (
- Placement(transformation(rotation = 180, extent = {{14, -12}, {-14, 12}}, origin = {14, -80}), iconTransformation(extent = {{-14, -12}, {14, 12}}, rotation = 270, origin = {10, -126})));
- Modelica.Blocks.Interfaces.BooleanOutput Trip_Breaker_To_Island annotation (
- Placement(transformation(rotation = 0, extent = {{108, 12}, {136, 36}}), iconTransformation(extent = {{108, 12}, {136, 36}})));
- Modelica.Blocks.Sources.BooleanStep booleanStep(startTime = 6.01, startValue = true) annotation (
- Placement(transformation(extent = {{-64, -18}, {-42, 4}})));
- Modelica.Blocks.Sources.BooleanStep booleanStep1(startTime = 7) annotation (
- Placement(transformation(extent = {{-62, -94}, {-40, -72}})));
- equation
- connect(f_DN.y, y1) annotation (
- Line(points = {{-40.9, -43.44}, {-21.45, -43.44}, {-21.45, -38}, {124, -38}}, color = {0, 0, 127}));
- connect(booleanConstant.y, y) annotation (
- Line(points = {{-43, 28}, {-28, 28}, {-28, 34}, {14, 34}}, color = {255, 0, 255}));
- connect(booleanStep1.y, startIslanding) annotation (
- Line(points = {{-38.9, -83}, {-19.45, -83}, {-19.45, -80}, {14, -80}}, color = {255, 0, 255}));
- connect(booleanStep.y, Trip_Breaker_To_Island) annotation (
- Line(points = {{-40.9, -7}, {26, -7}, {26, 24}, {122, 24}}, color = {255, 0, 255}));
- annotation (
- Diagram(coordinateSystem(extent = {{-120, -120}, {140, 100}})),
- Icon(coordinateSystem(extent = {{-120, -120}, {140, 100}}), graphics={ Ellipse(extent = {{-106, 100}, {124, -120}}, lineColor = {28, 108, 200}, fillColor = {85, 170, 255},
- fillPattern = FillPattern.Solid)}));
- end Event_Islanding;
-
- model FrequencyCalculationBlock "frequency calculation for the DN"
- Modelica.Blocks.Interfaces.RealInput u annotation (
- Placement(transformation(extent = {{-120, 34}, {-80, 74}})));
- Modelica.Blocks.Interfaces.RealOutput y "O/P is in rad/sec" annotation (
- Placement(transformation(extent = {{100, -14}, {120, 6}})));
- Modelica.Blocks.Continuous.Derivative derivative annotation (
- Placement(transformation(extent = {{-56, 34}, {-36, 54}})));
- Modelica.Blocks.Math.Product product annotation (
- Placement(transformation(extent = {{-12, 16}, {10, 36}})));
- Modelica.Blocks.Math.Add add(k2 = -1) annotation (
- Placement(transformation(extent = {{30, 0}, {50, 20}})));
- Modelica.Blocks.Math.Division division annotation (
- Placement(transformation(extent = {{70, -14}, {90, 6}})));
- Modelica.Blocks.Interfaces.RealInput u1 annotation (
- Placement(transformation(extent = {{-120, -92}, {-80, -52}})));
- Modelica.Blocks.Math.Product product1 annotation (
- Placement(transformation(extent = {{-12, -10}, {10, 10}})));
- Modelica.Blocks.Math.Product product2 annotation (
- Placement(transformation(extent = {{-10, -88}, {12, -68}})));
- Modelica.Blocks.Math.Product product3 annotation (
- Placement(transformation(extent = {{-10, -54}, {12, -34}})));
- Modelica.Blocks.Math.Add add1(k1 = +1, k2 = +1) annotation (
- Placement(transformation(extent = {{30, -26}, {50, -6}})));
- Modelica.Blocks.Continuous.Derivative derivative1 annotation (
- Placement(transformation(extent = {{-54, -28}, {-34, -8}})));
- equation
- connect(division.y, y) annotation (
- Line(points = {{91, -4}, {91, -4}, {110, -4}}, color = {0, 0, 127}));
- connect(product.y, add.u1) annotation (
- Line(points = {{11.1, 26}, {16, 26}, {16, 16}, {28, 16}}, color = {0, 0, 127}));
- connect(product1.y, add.u2) annotation (
- Line(points = {{11.1, 0}, {16, 0}, {16, 4}, {28, 4}}, color = {0, 0, 127}));
- connect(product3.y, add1.u1) annotation (
- Line(points = {{13.1, -44}, {17.55, -44}, {17.55, -10}, {28, -10}}, color = {0, 0, 127}));
- connect(u, derivative.u) annotation (
- Line(points = {{-100, 54}, {-100, 54}, {-70, 54}, {-70, 44}, {-58, 44}}, color = {0, 0, 127}));
- connect(derivative.y, product.u1) annotation (
- Line(points = {{-35, 44}, {-30, 44}, {-30, 32}, {-14.2, 32}}, color = {0, 0, 127}));
- connect(product.u2, u1) annotation (
- Line(points = {{-14.2, 20}, {-14.2, 20}, {-64, 20}, {-64, -72}, {-100, -72}}, color = {0, 0, 127}));
- connect(product2.u1, u1) annotation (
- Line(points = {{-12.2, -72}, {-46, -72}, {-100, -72}}, color = {0, 0, 127}));
- connect(product2.u2, u1) annotation (
- Line(points = {{-12.2, -84}, {-12.2, -84}, {-34, -84}, {-34, -72}, {-100, -72}}, color = {0, 0, 127}));
- connect(derivative1.y, product1.u2) annotation (
- Line(points = {{-33, -18}, {-26, -18}, {-26, -6}, {-14.2, -6}}, color = {0, 0, 127}));
- connect(product3.u1, derivative.u) annotation (
- Line(points = {{-12.2, -38}, {-70, -38}, {-70, 44}, {-58, 44}}, color = {0, 0, 127}));
- connect(product1.u1, derivative.u) annotation (
- Line(points = {{-14.2, 6}, {-36, 6}, {-70, 6}, {-70, 44}, {-58, 44}}, color = {0, 0, 127}));
- connect(derivative1.u, u1) annotation (
- Line(points = {{-56, -18}, {-64, -18}, {-64, -72}, {-100, -72}}, color = {0, 0, 127}));
- connect(product3.u2, derivative.u) annotation (
- Line(points = {{-12.2, -50}, {-34, -50}, {-34, -38}, {-70, -38}, {-70, 44}, {-58, 44}}, color = {0, 0, 127}));
- connect(add1.u2, product2.y) annotation (
- Line(points = {{28, -22}, {22, -22}, {22, -78}, {13.1, -78}}, color = {0, 0, 127}));
- connect(division.u2, add1.y) annotation (
- Line(points = {{68, -10}, {60, -10}, {60, -16}, {51, -16}}, color = {0, 0, 127}));
- connect(division.u1, add.y) annotation (
- Line(points = {{68, 2}, {60, 2}, {60, 10}, {51, 10}}, color = {0, 0, 127}));
- annotation (
- Icon(coordinateSystem(preserveAspectRatio = false), graphics = {Rectangle(extent = {{-100, 100}, {100, -100}}, lineColor = {28, 108, 200}, fillColor = {255, 255, 255}, fillPattern = FillPattern.Solid), Text(extent = {{-70, 64}, {50, -24}}, lineColor = {28, 108, 200}, textString = "FrequencyCalculationBlock")}),
- Diagram(coordinateSystem(preserveAspectRatio = false)));
- end FrequencyCalculationBlock;
-
- model Breaker
- import Modelica.ComplexMath.j;
- OpenIPSL.Interfaces.PwPin p annotation (
- Placement(transformation(extent = {{-100, -10}, {-80, 10}}), iconTransformation(extent = {{-100, -10}, {-80, 10}})));
- OpenIPSL.Interfaces.PwPin n annotation (
- Placement(transformation(extent = {{80, -10}, {100, 10}}), iconTransformation(extent = {{80, -10}, {100, 10}})));
- Complex vs(re = p.vr, im = p.vi);
- Complex vr(re = n.vr, im = n.vi);
- Complex is(re = p.ir, im = p.ii);
- Complex ir(re = n.ir, im = n.ii);
- Modelica.Blocks.Interfaces.BooleanInput TRIGGER annotation (
- Placement(transformation(extent = {{-32, 80}, {-12, 100}}), iconTransformation(extent = {{-10, -10}, {10, 10}}, rotation = -90, origin = {0, 90})));
- equation
- if not TRIGGER then
- is = 0 + j * 0;
- ir = 0 + j * 0;
- else
- ir = -is;
- vs = vr;
- end if;
- annotation (
- Icon(coordinateSystem(preserveAspectRatio = false, extent = {{-80, -80}, {80, 80}}), graphics={ Ellipse(extent = {{-80, 80}, {80, -80}}, lineColor = {0, 0, 255},
- lineThickness = 0.5, fillColor = {255, 255, 255},
- fillPattern = FillPattern.Solid)}),
- Diagram(coordinateSystem(preserveAspectRatio = false, extent = {{-80, -80}, {80, 80}})));
- end Breaker;
- end Essentials;
-
- package Generators
- model G1
- outer OpenIPSL.Electrical.SystemBase SysData;
- extends OpenIPSL.Electrical.Essentials.pfComponent;
- OpenIPSL.Interfaces.PwPin conn annotation (
- Placement(transformation(extent = {{100, -10}, {120, 10}}), iconTransformation(extent = {{100, -10}, {120, 10}})));
- OpenIPSL.Electrical.Machines.PSSE.GENSAL gENROE(M_b = 100, Tpd0 = 5, Tppd0 = 0.07, Tppq0 = 0.09, H = 4.28, D = 0, Xd = 1.84, Xq = 1.75, Xpd = 0.41, Xppd = 0.2, Xl = 0.12, S10 = 0.11, S12 = 0.39, Xppq = 0.2, R_a = 0, V_b = V_b, V_0 = V_0, angle_0 = angle_0, P_0 = P_0, Q_0 = Q_0, SPEED(fixed = true, start = 0), w(fixed = true, start = 0)) annotation (
- Placement(transformation(extent = {{-18, -20}, {22, 20}})));
- OpenIPSL.Electrical.Controls.PSSE.ES.SEXS sEXS(T_AT_B = 0.1, T_B = 1, K = 100, T_E = 0.1, E_MIN = -10, E_MAX = 10) annotation (
- Placement(transformation(extent = {{-60, -28}, {-34, -4}})));
- OpenIPSL.Electrical.Controls.PSSE.TG.HYGOV hYGOV annotation (
- Placement(transformation(extent = {{-62, 0}, {-34, 20}})));
- Modelica.Blocks.Sources.Constant const(k = 0) annotation (
- Placement(transformation(extent = {{-90, -62}, {-76, -48}})));
- Modelica.Blocks.Math.Add add(k2 = +1) annotation (
- Placement(transformation(extent = {{-90, 14}, {-76, 28}})));
- Modelica.Blocks.Sources.Ramp ramp(startTime = 6, duration = 5, height = 0.0101) annotation (
- Placement(transformation(extent = {{-76, -6}, {-90, 8}})));
- equation
- connect(gENROE.p, conn) annotation (
- Line(points = {{22, 0}, {22, 0}, {110, 0}}, color = {0, 0, 255}));
- connect(hYGOV.PMECH0, gENROE.PMECH0) annotation (
- Line(points = {{-60.8333, 4.44444}, {-72, 4.44444}, {-72, 28}, {40, 28}, {40, 10}, {24, 10}}, color = {0, 0, 127}));
- connect(hYGOV.PMECH, gENROE.PMECH) annotation (
- Line(points = {{-33.4167, 11.1111}, {-28, 11.1111}, {-28, 10}, {-22, 10}}, color = {0, 0, 127}));
- connect(sEXS.EFD, gENROE.EFD) annotation (
- Line(points = {{-33.35, -14.6667}, {-30, -14.6667}, {-30, -10}, {-22, -10}}, color = {0, 0, 127}));
- connect(add.u2, ramp.y) annotation (
- Line(points = {{-91.4, 16.8}, {-96, 16.8}, {-96, 1}, {-90.7, 1}}, color = {0, 0, 127}));
- connect(const.y, sEXS.VOTHSG) annotation (
- Line(points = {{-75.3, -55}, {-75.3, -55}, {-68, -55}, {-68, -8.66667}, {-60, -8.66667}}, color = {0, 0, 127}));
- connect(gENROE.ETERM, sEXS.ECOMP) annotation (
- Line(points = {{24, -6}, {38, -6}, {38, -32}, {-82, -32}, {-82, -14.6667}, {-60, -14.6667}}, color = {0, 0, 127}));
- connect(sEXS.EFD0, gENROE.EFD0) annotation (
- Line(points = {{-60, -23.3333}, {-86, -23.3333}, {-86, -40}, {30, -40}, {30, -10}, {24, -10}}, color = {0, 0, 127}));
- connect(add.y, hYGOV.SPEED) annotation (
- Line(points = {{-75.3, 21}, {-66, 21}, {-66, 16.6667}, {-60.8333, 16.6667}}, color = {0, 0, 127}));
- connect(add.u1, gENROE.SPEED) annotation (
- Line(points = {{-91.4, 25.2}, {-96, 25.2}, {-96, 36}, {48, 36}, {48, 14}, {24, 14}}, color = {0, 0, 127}));
- connect(sEXS.VUEL, sEXS.VOTHSG) annotation (
- Line(points = {{-55.45, -28}, {-56, -28}, {-56, -56}, {-68, -56}, {-68, -8.66667}, {-60, -8.66667}}, color = {0, 0, 127}));
- connect(sEXS.VOEL, sEXS.VOTHSG) annotation (
- Line(points = {{-51.55, -28}, {-52, -28}, {-52, -56}, {-68, -56}, {-68, -8.66667}, {-60, -8.66667}}, color = {0, 0, 127}));
- connect(conn, conn) annotation (
- Line(points = {{110, 0}, {110, 0}}, color = {0, 0, 255}));
- connect(sEXS.XADIFD, sEXS.VOTHSG) annotation (
- Line(points = {{-41.15, -27.7333}, {-41.15, -58}, {-52, -58}, {-52, -56}, {-68, -56}, {-68, -8.66667}, {-60, -8.66667}}, color = {0, 0, 127}));
- annotation (
- Icon(coordinateSystem(preserveAspectRatio = false), graphics={ Ellipse(extent = {{-100, 100}, {100, -100}}, lineColor = {0, 0, 0}, fillColor = {255, 255, 255},
- fillPattern = FillPattern.Solid), Line(points = {{-48, 2}, {-20, 56}, {2, 4}, {24, -28}, {48, 22}}, color = {0, 0, 0}, smooth = Smooth.Bezier), Text(extent = {{-52, -18}, {56, -66}}, lineColor = {0, 0, 0}, fillColor = {255, 255, 255},
- fillPattern = FillPattern.Solid, textString = "%name")}),
- Diagram(coordinateSystem(preserveAspectRatio = false, extent = {{-100, -100}, {100, 100}})));
- end G1;
-
- model G22
- outer OpenIPSL.Electrical.SystemBase SysData;
- extends OpenIPSL.Electrical.Essentials.pfComponent;
- OpenIPSL.Interfaces.PwPin conn annotation (
- Placement(transformation(extent = {{100, -10}, {120, 10}}), iconTransformation(extent = {{100, -10}, {120, 10}})));
- OpenIPSL.Electrical.Machines.PSSE.GENSAL gENROE(M_b = 100, Tpd0 = 5, Tppd0 = 0.07, Tppq0 = 0.09, H = 4.28, D = 0, Xd = 1.84, Xq = 1.75, Xpd = 0.41, Xppd = 0.2, Xl = 0.12, S10 = 0.11, S12 = 0.39, Xppq = 0.2, R_a = 0, V_b = V_b, V_0 = V_0, angle_0 = angle_0, P_0 = P_0, Q_0 = Q_0) annotation (
- Placement(transformation(extent = {{30, -28}, {70, 12}})));
- OpenIPSL.Electrical.Controls.PSSE.TG.IEESGO iEESGO(P_MAX = 1.5, P_MIN = 0) annotation (
- Placement(transformation(extent = {{-22, -4}, {10, 10}})));
- OpenIPSL.Electrical.Controls.PSSE.ES.SEXS sEXS(T_AT_B = 0.2, K = 50, E_MIN = 0, E_MAX = 5, T_E = 0.01, T_B = 10) annotation (
- Placement(transformation(extent = {{-26, -34}, {-4, -14}})));
- Modelica.Blocks.Interfaces.RealInput f_DN annotation (
- Placement(transformation(extent = {{-110, 52}, {-90, 72}}), iconTransformation(extent = {{-110, 52}, {-90, 72}})));
- Modelica.Blocks.Sources.Constant const1(k = 0) annotation (
- Placement(transformation(extent = {{7, -7}, {-7, 7}}, rotation = 180, origin = {-77, -17})));
- Modelica.Blocks.Logical.Switch switch1 annotation (
- Placement(transformation(extent = {{0, 46}, {18, 64}})));
- Modelica.Blocks.Interfaces.BooleanInput start_islanding annotation (
- Placement(transformation(extent = {{-12, -12}, {12, 12}}, rotation = 0, origin = {-100, 20}), iconTransformation(extent = {{-12, -12}, {12, 12}}, rotation = 90, origin = {-2, -104})));
- Modelica.Blocks.Math.Add add2(k1 = +1) annotation (
- Placement(transformation(extent = {{-6, 28}, {-18, 40}})));
- Modelica.Blocks.Continuous.PI PI(T = 0.00025, k = 0.0000001) annotation (
- Placement(transformation(extent = {{32, 48}, {46, 62}})));
- equation
- connect(add2.u2, gENROE.SPEED) annotation (
- Line(points = {{-4.8, 30.4}, {86, 30.4}, {86, 6}, {72, 6}}, color = {0, 0, 127}));
- connect(iEESGO.PMECH, gENROE.PMECH) annotation (
- Line(points = {{10.6667, 3.77778}, {26, 3.77778}, {26, 2}}, color = {0, 0, 127}));
- connect(sEXS.EFD, gENROE.EFD) annotation (
- Line(points = {{-3.45, -22.8889}, {12.275, -22.8889}, {12.275, -18}, {26, -18}}, color = {0, 0, 127}));
- connect(gENROE.ETERM, sEXS.ECOMP) annotation (
- Line(points = {{72, -14}, {88, -14}, {88, -58}, {-44, -58}, {-44, -22.8889}, {-26, -22.8889}}, color = {0, 0, 127}));
- connect(gENROE.p, conn) annotation (
- Line(points = {{70, -8}, {88, -8}, {88, 0}, {110, 0}}, color = {0, 0, 255}));
- connect(switch1.y, PI.u) annotation (
- Line(points = {{18.9, 55}, {24, 55}, {30.6, 55}}, color = {0, 0, 127}));
- connect(add2.u1, PI.y) annotation (
- Line(points = {{-4.8, 37.6}, {56, 37.6}, {56, 55}, {46.7, 55}}, color = {0, 0, 127}));
- connect(const1.y, switch1.u3) annotation (
- Line(points = {{-69.3, -17}, {-51.75, -17}, {-51.75, 47.8}, {-1.8, 47.8}}, color = {0, 0, 127}));
- connect(f_DN, switch1.u1) annotation (
- Line(points = {{-100, 62}, {-52, 62}, {-52, 62.2}, {-1.8, 62.2}}, color = {0, 0, 127}));
- connect(iEESGO.SPEED, add2.y) annotation (
- Line(points = {{-20.6667, 7.66667}, {-42, 7.66667}, {-42, 34}, {-18.6, 34}}, color = {0, 0, 127}));
- connect(gENROE.PMECH0, iEESGO.PMECH0) annotation (
- Line(points = {{72, 2}, {78, 2}, {78, 20}, {-32, 20}, {-32, -0.888889}, {-20.6667, -0.888889}}, color = {0, 0, 127}));
- connect(gENROE.EFD0, sEXS.EFD0) annotation (
- Line(points = {{72, -18}, {76, -18}, {76, -48}, {-36, -48}, {-36, -30.1111}, {-26, -30.1111}}, color = {0, 0, 127}));
- connect(sEXS.VOTHSG, switch1.u3) annotation (
- Line(points = {{-26, -17.8889}, {-52, -17.8889}, {-52, 47.8}, {-1.8, 47.8}}, color = {0, 0, 127}));
- connect(sEXS.VUEL, switch1.u3) annotation (
- Line(points = {{-22.15, -34}, {-22, -34}, {-22, -70}, {-52, -70}, {-52, -18}, {-51.75, -17}, {-51.75, 47.8}, {-1.8, 47.8}}, color = {0, 0, 127}));
- connect(sEXS.VOEL, switch1.u3) annotation (
- Line(points = {{-18.85, -34}, {-18, -34}, {-18, -70}, {-52, -70}, {-52, -18}, {-51.75, -17}, {-51.75, 47.8}, {-1.8, 47.8}}, color = {0, 0, 127}));
- connect(start_islanding, switch1.u2) annotation (
- Line(points = {{-100, 20}, {-88, 20}, {-78, 20}, {-78, 55}, {-1.8, 55}}, color = {255, 0, 255}));
- connect(sEXS.XADIFD, switch1.u3) annotation (
- Line(points = {{-10.05, -33.7778}, {-10.05, -70}, {-52, -70}, {-52, -18}, {-52, -17}, {-52, 47.8}, {-1.8, 47.8}}, color = {0, 0, 127}));
- annotation (
- Icon(coordinateSystem(preserveAspectRatio = false, extent = {{-100, -100}, {100, 100}}), graphics={ Ellipse(extent = {{-100, 100}, {100, -100}}, lineColor = {0, 0, 0}, fillColor = {255, 255, 255},
- fillPattern = FillPattern.Solid), Line(points = {{-48, 2}, {-20, 56}, {2, 4}, {24, -28}, {48, 22}}, color = {0, 0, 0}, smooth = Smooth.Bezier), Text(extent = {{-52, -18}, {56, -66}}, lineColor = {0, 0, 0}, fillColor = {255, 255, 255},
- fillPattern = FillPattern.Solid, textString = "%name")}),
- Diagram(coordinateSystem(preserveAspectRatio = false, extent = {{-100, -100}, {100, 100}})));
- end G22;
-
- model G22_CD
- outer OpenIPSL.Electrical.SystemBase SysData;
- extends OpenIPSL.Electrical.Essentials.pfComponent;
- OpenIPSL.Interfaces.PwPin conn annotation (
- Placement(transformation(extent = {{100, -10}, {120, 10}}), iconTransformation(extent = {{100, -10}, {120, 10}})));
- OpenIPSL.Electrical.Machines.PSSE.GENSAL gENROE(M_b = 100, Tpd0 = 5, Tppd0 = 0.07, Tppq0 = 0.09, H = 4.28, D = 0, Xd = 1.84, Xq = 1.75, Xpd = 0.41, Xppd = 0.2, Xl = 0.12, S10 = 0.11, S12 = 0.39, Xppq = 0.2, R_a = 0, V_b = V_b, V_0 = V_0, angle_0 = angle_0, P_0 = P_0, Q_0 = Q_0) annotation (
- Placement(transformation(extent = {{30, -28}, {70, 12}})));
- OpenIPSL.Electrical.Controls.PSSE.TG.IEESGO iEESGO(P_MAX = 1.5, P_MIN = 0) annotation (
- Placement(transformation(extent = {{-22, -4}, {10, 10}})));
- OpenIPSL.Electrical.Controls.PSSE.ES.SEXS sEXS(T_AT_B = 0.2, K = 50, E_MIN = 0, E_MAX = 5, T_E = 0.01, T_B = 10) annotation (
- Placement(transformation(extent = {{-26, -34}, {-4, -14}})));
- Modelica.Blocks.Interfaces.RealInput f_DN annotation (
- Placement(transformation(extent = {{-110, 52}, {-90, 72}}), iconTransformation(extent = {{-110, 52}, {-90, 72}})));
- Modelica.Blocks.Sources.Constant const1(k = 0) annotation (
- Placement(transformation(extent = {{7, -7}, {-7, 7}}, rotation = 180, origin = {-77, -17})));
- Modelica.Blocks.Logical.Switch switch1 annotation (
- Placement(transformation(extent = {{0, 46}, {18, 64}})));
- Modelica.Blocks.Interfaces.BooleanInput start_islanding annotation (
- Placement(transformation(extent = {{-12, -12}, {12, 12}}, rotation = 0, origin = {-100, 20}), iconTransformation(extent = {{-12, -12}, {12, 12}}, rotation = 90, origin = {-2, -104})));
- Modelica.Blocks.Math.Add add2(k1 = +1) annotation (
- Placement(transformation(extent = {{-6, 28}, {-18, 40}})));
- Modelica.Blocks.Continuous.PI PI(T = 0.00025, k = 0.0000001) annotation (
- Placement(transformation(extent = {{32, 48}, {46, 62}})));
- Modelica.Blocks.Math.Gain gain(k = 0) annotation (
- Placement(transformation(extent = {{56, 50}, {66, 60}})));
- equation
- connect(add2.u2, gENROE.SPEED) annotation (
- Line(points = {{-4.8, 30.4}, {86, 30.4}, {86, 6}, {72, 6}}, color = {0, 0, 127}));
- connect(iEESGO.PMECH, gENROE.PMECH) annotation (
- Line(points = {{10.6667, 3.77778}, {26, 3.77778}, {26, 2}}, color = {0, 0, 127}));
- connect(sEXS.EFD, gENROE.EFD) annotation (
- Line(points = {{-3.45, -22.8889}, {12.275, -22.8889}, {12.275, -18}, {26, -18}}, color = {0, 0, 127}));
- connect(gENROE.ETERM, sEXS.ECOMP) annotation (
- Line(points = {{72, -14}, {88, -14}, {88, -58}, {-44, -58}, {-44, -22.8889}, {-26, -22.8889}}, color = {0, 0, 127}));
- connect(gENROE.p, conn) annotation (
- Line(points = {{70, -8}, {88, -8}, {88, 0}, {110, 0}}, color = {0, 0, 255}));
- connect(switch1.y, PI.u) annotation (
- Line(points = {{18.9, 55}, {24, 55}, {30.6, 55}}, color = {0, 0, 127}));
- connect(const1.y, switch1.u3) annotation (
- Line(points = {{-69.3, -17}, {-51.75, -17}, {-51.75, 47.8}, {-1.8, 47.8}}, color = {0, 0, 127}));
- connect(f_DN, switch1.u1) annotation (
- Line(points = {{-100, 62}, {-52, 62}, {-52, 62.2}, {-1.8, 62.2}}, color = {0, 0, 127}));
- connect(iEESGO.SPEED, add2.y) annotation (
- Line(points = {{-20.6667, 7.66667}, {-42, 7.66667}, {-42, 34}, {-18.6, 34}}, color = {0, 0, 127}));
- connect(gENROE.PMECH0, iEESGO.PMECH0) annotation (
- Line(points = {{72, 2}, {78, 2}, {78, 20}, {-32, 20}, {-32, -0.888889}, {-20.6667, -0.888889}}, color = {0, 0, 127}));
- connect(gENROE.EFD0, sEXS.EFD0) annotation (
- Line(points = {{72, -18}, {76, -18}, {76, -48}, {-36, -48}, {-36, -30.1111}, {-26, -30.1111}}, color = {0, 0, 127}));
- connect(sEXS.VOTHSG, switch1.u3) annotation (
- Line(points = {{-26, -17.8889}, {-52, -17.8889}, {-52, 47.8}, {-1.8, 47.8}}, color = {0, 0, 127}));
- connect(sEXS.VUEL, switch1.u3) annotation (
- Line(points = {{-22.15, -34}, {-22, -34}, {-22, -70}, {-52, -70}, {-52, -18}, {-51.75, -17}, {-51.75, 47.8}, {-1.8, 47.8}}, color = {0, 0, 127}));
- connect(sEXS.VOEL, switch1.u3) annotation (
- Line(points = {{-18.85, -34}, {-18, -34}, {-18, -70}, {-52, -70}, {-52, -18}, {-51.75, -17}, {-51.75, 47.8}, {-1.8, 47.8}}, color = {0, 0, 127}));
- connect(start_islanding, switch1.u2) annotation (
- Line(points = {{-100, 20}, {-88, 20}, {-78, 20}, {-78, 55}, {-1.8, 55}}, color = {255, 0, 255}));
- connect(PI.y, gain.u) annotation (
- Line(points = {{46.7, 55}, {49.35, 55}, {55, 55}}, color = {0, 0, 127}));
- connect(add2.u1, gain.y) annotation (
- Line(points = {{-4.8, 37.6}, {76, 37.6}, {76, 55}, {66.5, 55}}, color = {0, 0, 127}));
- connect(sEXS.XADIFD, switch1.u3) annotation (
- Line(points = {{-10.05, -33.7778}, {-10.05, -70}, {-52, -70}, {-52, -18}, {-52, -17}, {-52, 47.8}, {-1.8, 47.8}}, color = {0, 0, 127}));
- annotation (
- Icon(coordinateSystem(preserveAspectRatio = false, extent = {{-100, -100}, {100, 100}}), graphics = {Ellipse(extent = {{-100, 100}, {100, -100}}, lineColor = {0, 0, 0}, fillColor = {255, 255, 255}, fillPattern = FillPattern.Solid), Line(points = {{-48, 2}, {-20, 56}, {2, 4}, {24, -28}, {48, 22}}, color = {0, 0, 0}, smooth = Smooth.Bezier), Text(extent = {{-52, -18}, {56, -66}}, lineColor = {0, 0, 0}, fillColor = {255, 255, 255}, fillPattern = FillPattern.Solid, textString = "%name")}),
- Diagram(coordinateSystem(preserveAspectRatio = false, extent = {{-100, -100}, {100, 100}})));
- end G22_CD;
- end Generators;
-
- package PowerFlowData
- package case10_0MW
- record Network_10_0_MW_loads_WL
- extends Modelica.Icons.Record;
- // Load 3_1
- parameter Real PL3_1 = 50.000000;
- parameter Real QL3_1 = 10.000000;
- // Load 5_1
- parameter Real PL5_1 = 10.000000;
- parameter Real QL5_1 = 10.000000;
- // Load 8_1
- parameter Real PL8_1 = 10.000000;
- parameter Real QL8_1 = 10.000000;
- annotation ();
- end Network_10_0_MW_loads_WL;
-
- record Network_10_0_MW_machines_WL
- extends Modelica.Icons.Record;
- // Machine 7_1
- parameter Real P7_1 = 10.000000;
- parameter Real Q7_1 = 27.599998;
- // Machine 1_1
- parameter Real P1_1 = 60.381001;
- parameter Real Q1_1 = 23.062000;
- annotation ();
- end Network_10_0_MW_machines_WL;
-
- record Network_10_0_MW_trafos_WL
- extends Modelica.Icons.Record;
- // 2WindingTrafo 6_7
- parameter Real t1_6_7 = 1.000000;
- parameter Real t2_6_7 = 1.000000;
- // 2WindingTrafo 1_2
- parameter Real t1_1_2 = 1.000000;
- parameter Real t2_1_2 = 1.000000;
- annotation ();
- end Network_10_0_MW_trafos_WL;
-
- record Network_10_0_MW_voltages_WL
- extends Modelica.Icons.Record;
- // Bus number 1
- parameter Real V1 = 1.000000;
- parameter Real A1 = 0.000000;
- // Bus number 2
- parameter Real V2 = 0.960860;
- parameter Real A2 = -7.206201;
- // Bus number 3
- parameter Real V3 = 0.938050;
- parameter Real A3 = -14.891100;
- // Bus number 4
- parameter Real V4 = 0.939980;
- parameter Real A4 = -15.226201;
- // Bus number 5
- parameter Real V5 = 0.875770;
- parameter Real A5 = -18.359800;
- // Bus number 6
- parameter Real V6 = 0.971940;
- parameter Real A6 = -15.256498;
- // Bus number 7
- parameter Real V7 = 1.000000;
- parameter Real A7 = -14.748300;
- // Bus number 8
- parameter Real V8 = 0.910260;
- parameter Real A8 = -18.172001;
- annotation ();
- end Network_10_0_MW_voltages_WL;
- end case10_0MW;
- end PowerFlowData;
-
- package OpenIPSL "Open-Instance Power System Library"
- class Copyright "Disclaimer
-OpenIPSL:
-Copyright August 2017 - Prof. Luigi Vanfretti, Rensselaer Polytechnic Institute, Troy, NY.
-Copyright April 2016 - July 2017 SmarTS Lab (Sweden)
-
-The authors can be contacted by email: luigi.vanfretti@gmail.com
-This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0.
-If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0.
-
-iPSL:
-Copyright 2015-2016 RTE (France), SmarTS Lab (Sweden), AIA (Spain) and DTU (Denmark)
-
-The authors can be contacted by email: info@itesla-ipsl.org
-
-This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0.
-If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0.
-"
-
- annotation (
- preferredView="info",
- DocumentationClass=false,
- Icon(graphics={
- Text(
- extent={{-100,140},{100,100}},
- lineColor={0,127,0},
- textString="%name%"),
- Ellipse(
- extent={{-100,100},{100,-100}},
- lineColor={0,127,0},
- fillColor={255,255,255},
- fillPattern=FillPattern.Solid),
- Ellipse(
- extent={{-60,60},{60,-60}},
- lineColor={0,127,72},
- fillColor={0,127,0},
- fillPattern=FillPattern.Solid),
- Ellipse(
- extent={{-40,40},{40,-40}},
- lineColor={255,255,255},
- fillColor={255,255,255},
- fillPattern=FillPattern.Solid),
- Rectangle(
- extent={{28,22},{64,-20}},
- lineColor={255,255,255},
- fillColor={255,255,255},
- fillPattern=FillPattern.Solid)}),
- Documentation);
- end Copyright;
-
- package Examples
- extends Modelica.Icons.ExamplesPackage;
-
- package Machines
- extends Modelica.Icons.ExamplesPackage;
-
- package PSSE
- extends Modelica.Icons.ExamplesPackage;
-
- model GEN "SMIB system with one load and flexible GEN model (needs replaceable support)"
- extends OpenIPSL.Examples.SMIBpartial;
- Electrical.Machines.PSSE.Plant G1(
- redeclare Electrical.Machines.PSSE.GENROE machine(
- M_b=100,
- Tpd0=5,
- Tppd0=0.07,
- Tppq0=0.09,
- H=4.28,
- D=0,
- Xd=1.84,
- Xq=1.75,
- Xpd=0.41,
- Xppd=0.2,
- Xl=0.12,
- S10=0.11,
- S12=0.39,
- V_0=1,
- P_0=40,
- angle_0=4.046276,
- Q_0=5.416582,
- Xppq=0.2,
- R_a=0,
- Xpq=2,
- Tpq0=2),
- redeclare OpenIPSL.Electrical.Controls.PSSE.TG.ConstantPower governor,
- redeclare OpenIPSL.Electrical.Controls.PSSE.ES.ConstantExcitation exciter,
- redeclare OpenIPSL.Electrical.Controls.PSSE.PSS.DisabledPSS pss)
- annotation (Placement(transformation(extent={{-80,-10},{-60,10}})));
- equation
- connect(G1.pwPin, GEN1.p)
- annotation (Line(points={{-59,0},{-49.5,0},{-40,0}}, color={0,0,255}));
-
- end GEN;
-
- model GENSAL "SMIB system with one load and GENSAL model"
- extends OpenIPSL.Examples.SMIBpartial;
- OpenIPSL.Electrical.Machines.PSSE.GENSAL gENSAL(
- M_b=100,
- Tpd0=5,
- Tppd0=0.07,
- Tppq0=0.09,
- H=4.28,
- D=0,
- Xd=1.84,
- Xq=1.75,
- Xpd=0.41,
- Xppd=0.2,
- Xl=0.12,
- S10=0.11,
- S12=0.39,
- V_0=1,
- P_0=40,
- angle_0=4.046276,
- Q_0=5.416582,
- Xppq=0.2,
- R_a=0) annotation (Placement(transformation(extent={{-100,-20},{-60,
- 20}})));
- equation
- connect(gENSAL.PMECH, gENSAL.PMECH0) annotation (Line(points={{-104,10},{-112,
- 10},{-112,26},{-54,26},{-54,10},{-58,10}}, color={0,0,127}));
- connect(gENSAL.EFD, gENSAL.EFD0) annotation (Line(points={{-104,-10},{-112,-10},
- {-112,-30},{-54,-30},{-54,-10},{-58,-10}}, color={0,0,127}));
- connect(gENSAL.p, GEN1.p)
- annotation (Line(points={{-60,0},{-60,0},{-40,0}}, color={0,0,255}));
- annotation (Documentation, experiment(StopTime=10));
- end GENSAL;
-
- model GENSAE "SMIB system with one load and GENSAE model"
- extends OpenIPSL.Examples.SMIBpartial;
- OpenIPSL.Electrical.Machines.PSSE.GENSAE gENSAE(
- M_b=100,
- Tpd0=5,
- Tppd0=0.07,
- Tppq0=0.09,
- H=4.28,
- D=0,
- Xd=1.84,
- Xq=1.75,
- Xpd=0.41,
- Xppd=0.2,
- Xl=0.12,
- S10=0.11,
- S12=0.39,
- V_0=1,
- P_0=40,
- angle_0=4.046276,
- Q_0=5.416582,
- Xppq=0.2,
- R_a=0) annotation (Placement(transformation(extent={{-100,-20},{-60,
- 20}})));
- equation
- connect(gENSAE.PMECH, gENSAE.PMECH0) annotation (Line(points={{-104,10},{-112,
- 10},{-112,26},{-54,26},{-54,10},{-58,10}}, color={0,0,127}));
- connect(gENSAE.EFD, gENSAE.EFD0) annotation (Line(points={{-104,-10},{-112,-10},
- {-112,-30},{-54,-30},{-54,-10},{-58,-10}}, color={0,0,127}));
- connect(gENSAE.p, GEN1.p)
- annotation (Line(points={{-60,0},{-60,0},{-40,0}}, color={0,0,255}));
- annotation (Documentation, experiment(StopTime=10));
- end GENSAE;
-
- model GENROU
- extends OpenIPSL.Examples.SMIBpartial;
- OpenIPSL.Electrical.Machines.PSSE.GENROU gENROU(
- M_b=100,
- Tpd0=5,
- Tppd0=0.07,
- Tpq0=0.9,
- Tppq0=0.09,
- D=0,
- Xd=1.84,
- Xq=1.75,
- Xpd=0.41,
- Xpq=0.6,
- Xppd=0.2,
- Xl=0.12,
- S10=0.11,
- S12=0.39,
- V_0=1,
- P_0=40,
- angle_0=4.046276,
- Q_0=5.416582,
- Xppq=0.2,
- R_a=0,
- Xpp=0.2,
- H=4.28) annotation (Placement(transformation(extent={{-100,-20},{
- -60,20}})));
- equation
- connect(gENROU.PMECH, gENROU.PMECH0) annotation (Line(points={{-104,10},{-112,
- 10},{-112,26},{-54,26},{-54,10},{-58,10}}, color={0,0,127}));
- connect(gENROU.EFD, gENROU.EFD0) annotation (Line(points={{-104,-10},{-112,-10},
- {-112,-30},{-54,-30},{-54,-10},{-58,-10}}, color={0,0,127}));
- connect(gENROU.p, GEN1.p)
- annotation (Line(points={{-60,0},{-60,0},{-40,0}}, color={0,0,255}));
- annotation (Documentation, experiment(StopTime=10));
- end GENROU;
-
- model GENROE
- extends OpenIPSL.Examples.SMIBpartial;
- OpenIPSL.Electrical.Machines.PSSE.GENROE gENROE(
- M_b=100,
- Tpd0=5,
- Tppd0=0.07,
- Tpq0=0.9,
- Tppq0=0.09,
- H=4.28,
- D=0,
- Xd=1.84,
- Xq=1.75,
- Xpd=0.41,
- Xpq=0.6,
- Xppd=0.2,
- Xl=0.12,
- S10=0.11,
- S12=0.39,
- V_0=1,
- P_0=40,
- angle_0=4.046276,
- Q_0=5.416582,
- Xppq=0.2,
- R_a=0,
- Xpp=0.2) annotation (Placement(transformation(extent={{-100,-20},
- {-60,20}})));
- equation
- connect(gENROE.PMECH, gENROE.PMECH0) annotation (Line(points={{-104,10},{-112,
- 10},{-112,26},{-54,26},{-54,10},{-58,10}}, color={0,0,127}));
- connect(gENROE.EFD, gENROE.EFD0) annotation (Line(points={{-104,-10},{-112,-10},
- {-112,-30},{-54,-30},{-54,-10},{-58,-10}}, color={0,0,127}));
- connect(gENROE.p, GEN1.p)
- annotation (Line(points={{-60,0},{-60,0},{-40,0}}, color={0,0,255}));
- annotation (Documentation, experiment(StopTime=10));
- end GENROE;
- annotation (Documentation);
- end PSSE;
-
- package PSAT
- extends Modelica.Icons.ExamplesPackage;
-
- model Order2test2
- extends OpenIPSL.Examples.BaseTest;
- extends Modelica.Icons.Example;
- OpenIPSL.Electrical.Machines.PSAT.Order2 order21(
- Sn=20,
- V_b=400,
- V_0=1,
- angle_0=0,
- Vn=400,
- ra=0.001,
- x1d=0.302,
- M=10,
- D=0,
- P_0=16.0352698692006,
- Q_0=11.859436505981) annotation (Placement(visible=true,
- transformation(
- origin={-29.946,0},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- equation
- connect(order21.vf, order21.vf0) annotation (Line(points={{-41.946,5},{-46,5},
- {-46,14},{-37.946,14},{-37.946,11}}, color={0,0,127}));
- connect(order21.pm, order21.pm0) annotation (Line(points={{-41.946,-5},{-46,-5},
- {-46,-14},{-37.946,-14},{-37.946,-11}}, color={0,0,127}));
- connect(order21.p, bus.p) annotation (Line(points={{-19.946,0},{-9.473,0},{-9.473,
- 0},{0,0}}, color={0,0,255}));
- annotation (Documentation,experiment(StopTime=20));
- end Order2test2;
-
- model Order2test2_perturbation
- extends OpenIPSL.Examples.BaseTest;
- extends Modelica.Icons.Example;
- Modelica.Blocks.Math.Add3 add31 annotation (Placement(visible=true,
- transformation(
- origin={-45,25},
- extent={{-5,-5},{5,5}},
- rotation=0)));
- Modelica.Blocks.Math.Add add1 annotation (Placement(visible=true,
- transformation(
- origin={-74.9999,35},
- extent={{-4.99992,-5.00001},{4.99991,5.00002}},
- rotation=0)));
- Modelica.Blocks.Sources.Step step1(height=0.0005, startTime=2) annotation (
- Placement(visible=true, transformation(
- origin={-95,55},
- extent={{-5,-5},{5,5}},
- rotation=0)));
- Modelica.Blocks.Sources.Step step2(height=-0.0005, startTime=2.1) annotation (
- Placement(visible=true, transformation(
- origin={-95,35},
- extent={{-5,-5},{5,5}},
- rotation=0)));
- Modelica.Blocks.Sources.Sine sine1(amplitude=0.001, freqHz=0.2) annotation (
- Placement(visible=true, transformation(
- origin={-95,20},
- extent={{-5,-5},{5,5}},
- rotation=0)));
- Modelica.Blocks.Math.Add add2(k2=-1) annotation (Placement(visible=true,
- transformation(
- origin={-75,15},
- extent={{-5,-5},{5,5}},
- rotation=0)));
- Modelica.Blocks.Sources.Sine sine2(
- amplitude=0.001,
- freqHz=0.2,
- startTime=5) annotation (Placement(visible=true, transformation(
- origin={-95,5},
- extent={{-5,-5},{5,5}},
- rotation=0)));
- Modelica.Blocks.Sources.Sine sine3(
- amplitude=0.001,
- freqHz=0.2,
- startTime=10) annotation (Placement(visible=true, transformation(
- origin={-95,-75},
- extent={{-5,-5},{5,5}},
- rotation=0)));
- Modelica.Blocks.Math.Add add3(k2=-1) annotation (Placement(visible=true,
- transformation(
- origin={-75,-65},
- extent={{-4.99999,-4.99999},{4.99999,4.99999}},
- rotation=0)));
- Modelica.Blocks.Sources.Sine sine4(
- amplitude=0.001,
- freqHz=0.2,
- startTime=5) annotation (Placement(visible=true, transformation(
- origin={-95,-55},
- extent={{-5,-5},{5,5}},
- rotation=0)));
- Modelica.Blocks.Sources.Step step3(height=-0.0005, startTime=7.1) annotation (
- Placement(visible=true, transformation(
- origin={-95,-35},
- extent={{-5,-5},{5,5}},
- rotation=0)));
- Modelica.Blocks.Sources.Step step4(height=0.0005, startTime=7) annotation (
- Placement(visible=true, transformation(
- origin={-95,-15},
- extent={{-5,-5},{5,5}},
- rotation=0)));
- Modelica.Blocks.Math.Add add4 annotation (Placement(visible=true,
- transformation(
- origin={-75,-25},
- extent={{-5,-5},{5,5}},
- rotation=0)));
- Modelica.Blocks.Math.Add3 add32 annotation (Placement(visible=true,
- transformation(
- origin={-45,-25},
- extent={{-5.00007,-5.00012},{5.00001,4.99999}},
- rotation=0)));
- OpenIPSL.Electrical.Machines.PSAT.Order2 order2_Inputs_Outputs1(
- D=0,
- V_b=400,
- V_0=1,
- angle_0=0,
- Sn=20,
- Vn=400,
- ra=0.001,
- x1d=0.302,
- M=10,
- P_0=16.0352698692006,
- Q_0=11.859436505981) annotation (Placement(visible=true,
- transformation(
- origin={-20.1083,0.1663},
- extent={{-8.8917,-9.1663},{8.8916,9.1663}},
- rotation=0)));
- equation
- connect(step3.y, add4.u2) annotation (Line(
- visible=true,
- origin={-86.308,-30.9083},
- points={{-3.192,-4.0917},{2.3974,-4.0917},{2.3974,2.9083},{5.308,2.9083}},
- color={0,0,127}));
-
- connect(step4.y, add4.u1) annotation (Line(
- visible=true,
- origin={-86.308,-19.6146},
- points={{-3.192,4.6146},{2.3974,4.6146},{2.3974,-2.3854},{5.308,-2.3854}},
- color={0,0,127}));
-
- connect(order2_Inputs_Outputs1.p, bus.p) annotation (Line(points={{-11.2167,
- 0.1663},{-5.66375,0.1663},{-5.66375,0},{0,0}}, color={0,0,255}));
- connect(add31.y, order2_Inputs_Outputs1.vf) annotation (Line(points={{-39.5,
- 25},{-35,25},{-35,4.74945},{-30.7783,4.74945}}, color={0,0,127}));
- connect(order2_Inputs_Outputs1.vf0, add31.u3) annotation (Line(points={{-27.2217,
- 10.2492},{-27.2217,14},{-55,14},{-55,21},{-51,21}}, color={0,0,127}));
- connect(add32.y, order2_Inputs_Outputs1.pm) annotation (Line(points={{-39.5,-25.0001},
- {-35,-25.0001},{-35,-4.41685},{-30.7783,-4.41685}}, color={0,0,127}));
- connect(add1.y, add31.u1) annotation (Line(points={{-69.5,35},{-60,35},{-60,
- 29},{-51,29}}, color={0,0,127}));
- connect(add2.y, add31.u2) annotation (Line(points={{-69.5,15},{-60,15},{-60,
- 25},{-51,25}}, color={0,0,127}));
- connect(step2.y, add1.u2) annotation (Line(points={{-89.5,35},{-87,35},{-87,
- 32},{-80.9998,32}}, color={0,0,127}));
- connect(step1.y, add1.u1) annotation (Line(points={{-89.5,55},{-87,55},{-87,
- 38},{-80.9998,38}}, color={0,0,127}));
- connect(sine2.y, add2.u2) annotation (Line(points={{-89.5,5},{-86,5},{-86,12},
- {-81,12}}, color={0,0,127}));
- connect(sine1.y, add2.u1) annotation (Line(points={{-89.5,20},{-86,20},{-86,
- 18},{-81,18}}, color={0,0,127}));
- connect(order2_Inputs_Outputs1.pm0, add32.u1) annotation (Line(points={{-27.2217,
- -9.91663},{-27.2217,-13},{-54,-13},{-54,-21},{-51.0001,-21}}, color={
- 0,0,127}));
- connect(add4.y, add32.u2) annotation (Line(points={{-69.5,-25},{-60,-25},{-60,
- -25.0001},{-51.0001,-25.0001}}, color={0,0,127}));
- connect(sine4.y, add3.u1) annotation (Line(points={{-89.5,-55},{-85,-55},{-85,
- -62},{-81,-62}}, color={0,0,127}));
- connect(sine3.y, add3.u2) annotation (Line(points={{-89.5,-75},{-85,-75},{-85,
- -68},{-81,-68}}, color={0,0,127}));
- connect(add3.y, add32.u3) annotation (Line(points={{-69.5,-65},{-60,-65},{-60,
- -29.0001},{-51.0001,-29.0001}}, color={0,0,127}));
- annotation (Documentation,experiment(StopTime=20));
- end Order2test2_perturbation;
-
- model Order3test2
- extends OpenIPSL.Examples.BaseTest;
- extends Modelica.Icons.Example;
- OpenIPSL.Electrical.Machines.PSAT.Order3 order31(
- V_b=400,
- V_0=1,
- angle_0=0,
- Sn=20,
- Vn=400,
- ra=0.01,
- x1d=0.302,
- M=10,
- D=0,
- xd=1.9,
- T1d0=8,
- xq=1.7,
- P_0=16.0352698692006,
- Q_0=11.859436505981) annotation (Placement(visible=true,
- transformation(
- origin={-25,0},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- equation
- connect(order31.vf, order31.vf0) annotation (Line(points={{-37,5},{-40,5},{-40,
- 15},{-33,15},{-33,11}}, color={0,0,127}));
- connect(order31.pm, order31.pm0) annotation (Line(points={{-37,-5},{-40,-5},{
- -40,-15},{-33,-15},{-33,-11}}, color={0,0,127}));
- connect(order31.p, bus.p)
- annotation (Line(points={{-15,0},{-7,0},{-7,0},{0,0}}, color={0,0,255}));
- annotation (Documentation,experiment(StopTime=20));
- end Order3test2;
-
- model Order3test2_perturbation
- extends OpenIPSL.Examples.BaseTest;
- extends Modelica.Icons.Example;
- OpenIPSL.Electrical.Machines.PSAT.Order3 order3_Inputs_Outputs1(
- V_b=400,
- V_0=1,
- angle_0=0,
- Sn=20,
- Vn=400,
- ra=0.01,
- x1d=0.302,
- M=10,
- D=0,
- xd=1.9,
- T1d0=8,
- xq=1.7,
- P_0=16.0352698692006,
- Q_0=11.859436505981) annotation (Placement(visible=true,
- transformation(
- origin={-18.3443,-0.375609},
- extent={{-9.6557,-9.62439},{9.6557,9.62439}},
- rotation=0)));
- Modelica.Blocks.Math.Add3 add31 annotation (Placement(visible=true,
- transformation(
- origin={-45,25},
- extent={{-5,-5},{5,5}},
- rotation=0)));
- Modelica.Blocks.Math.Add add1 annotation (Placement(visible=true,
- transformation(
- origin={-74.9999,35},
- extent={{-4.99992,-5.00001},{4.99991,5.00002}},
- rotation=0)));
- Modelica.Blocks.Sources.Step step1(height=0.0005, startTime=2) annotation (
- Placement(visible=true, transformation(
- origin={-95,55},
- extent={{-5,-5},{5,5}},
- rotation=0)));
- Modelica.Blocks.Sources.Step step2(height=-0.0005, startTime=2.1) annotation (
- Placement(visible=true, transformation(
- origin={-95,35},
- extent={{-5,-5},{5,5}},
- rotation=0)));
- Modelica.Blocks.Sources.Sine sine1(amplitude=0.001, freqHz=0.2) annotation (
- Placement(visible=true, transformation(
- origin={-95,20},
- extent={{-5,-5},{5,5}},
- rotation=0)));
- Modelica.Blocks.Math.Add add2(k2=-1) annotation (Placement(visible=true,
- transformation(
- origin={-75,15},
- extent={{-5,-5},{5,5}},
- rotation=0)));
- Modelica.Blocks.Sources.Sine sine2(
- amplitude=0.001,
- freqHz=0.2,
- startTime=5) annotation (Placement(visible=true, transformation(
- origin={-95,5},
- extent={{-5,-5},{5,5}},
- rotation=0)));
- Modelica.Blocks.Sources.Sine sine3(
- amplitude=0.001,
- freqHz=0.2,
- startTime=10) annotation (Placement(visible=true, transformation(
- origin={-95,-75},
- extent={{-5,-5},{5,5}},
- rotation=0)));
- Modelica.Blocks.Math.Add add3(k2=-1) annotation (Placement(visible=true,
- transformation(
- origin={-75,-65},
- extent={{-4.99999,-4.99999},{4.99999,4.99999}},
- rotation=0)));
- Modelica.Blocks.Sources.Sine sine4(
- amplitude=0.001,
- freqHz=0.2,
- startTime=5) annotation (Placement(visible=true, transformation(
- origin={-95,-55},
- extent={{-5,-5},{5,5}},
- rotation=0)));
- Modelica.Blocks.Sources.Step step3(height=-0.0005, startTime=7.1) annotation (
- Placement(visible=true, transformation(
- origin={-95,-35},
- extent={{-5,-5},{5,5}},
- rotation=0)));
- Modelica.Blocks.Sources.Step step4(height=0.0005, startTime=7) annotation (
- Placement(visible=true, transformation(
- origin={-95,-15},
- extent={{-5,-5},{5,5}},
- rotation=0)));
- Modelica.Blocks.Math.Add add4 annotation (Placement(visible=true,
- transformation(
- origin={-75,-25},
- extent={{-5,-5},{5,5}},
- rotation=0)));
- Modelica.Blocks.Math.Add3 add32 annotation (Placement(visible=true,
- transformation(
- origin={-45,-25},
- extent={{-5.00007,-5.00012},{5.00001,4.99999}},
- rotation=0)));
- equation
- connect(step3.y, add4.u2) annotation (Line(
- visible=true,
- origin={-86.308,-30.9083},
- points={{-3.192,-4.0917},{2.3974,-4.0917},{2.3974,2.9083},{5.308,2.9083}},
- color={0,0,127}));
-
- connect(step4.y, add4.u1) annotation (Line(
- visible=true,
- origin={-86.308,-19.6146},
- points={{-3.192,4.6146},{2.3974,4.6146},{2.3974,-2.3854},{5.308,-2.3854}},
- color={0,0,127}));
-
- connect(add1.y, add31.u1) annotation (Line(points={{-69.5,35},{-60,35},{-60,
- 29},{-51,29}}, color={0,0,127}));
- connect(add2.y, add31.u2) annotation (Line(points={{-69.5,15},{-60,15},{-60,
- 25},{-51,25}}, color={0,0,127}));
- connect(step2.y, add1.u2) annotation (Line(points={{-89.5,35},{-87,35},{-87,
- 32},{-80.9998,32}}, color={0,0,127}));
- connect(step1.y, add1.u1) annotation (Line(points={{-89.5,55},{-87,55},{-87,
- 38},{-80.9998,38}}, color={0,0,127}));
- connect(sine2.y, add2.u2) annotation (Line(points={{-89.5,5},{-86,5},{-86,12},
- {-81,12}}, color={0,0,127}));
- connect(sine1.y, add2.u1) annotation (Line(points={{-89.5,20},{-86,20},{-86,
- 18},{-81,18}}, color={0,0,127}));
- connect(add4.y, add32.u2) annotation (Line(points={{-69.5,-25},{-60,-25},{-60,
- -25.0001},{-51.0001,-25.0001}}, color={0,0,127}));
- connect(sine4.y, add3.u1) annotation (Line(points={{-89.5,-55},{-85,-55},{-85,
- -62},{-81,-62}}, color={0,0,127}));
- connect(sine3.y, add3.u2) annotation (Line(points={{-89.5,-75},{-85,-75},{-85,
- -68},{-81,-68}}, color={0,0,127}));
- connect(add3.y, add32.u3) annotation (Line(points={{-69.5,-65},{-60,-65},{-60,
- -29.0001},{-51.0001,-29.0001}}, color={0,0,127}));
- connect(order3_Inputs_Outputs1.p, bus.p) annotation (Line(points={{-8.6886,-0.375609},
- {-3.86151,-0.375609},{-3.86151,0},{0,0}}, color={0,0,255}));
- connect(add31.y, order3_Inputs_Outputs1.vf) annotation (Line(points={{-39.5,
- 25},{-34,25},{-34,4.43659},{-29.9311,4.43659}}, color={0,0,127}));
- connect(add32.y, order3_Inputs_Outputs1.pm) annotation (Line(points={{-39.5,-25.0001},
- {-34,-25.0001},{-34,-5.1878},{-29.9311,-5.1878}}, color={0,0,127}));
- connect(order3_Inputs_Outputs1.vf0, add31.u3) annotation (Line(points={{-26.0689,
- 10.2112},{-26.0689,14},{-56,14},{-56,21},{-51,21}}, color={0,0,127}));
- connect(order3_Inputs_Outputs1.pm0, add32.u1) annotation (Line(points={{-26.0689,
- -10.9624},{-26.0689,-16},{-56,-16},{-56,-21},{-51.0001,-21}}, color={
- 0,0,127}));
- annotation (Documentation,experiment(StopTime=20));
- end Order3test2_perturbation;
-
- model Order3test2_TG
- extends OpenIPSL.Examples.BaseTest;
- extends Modelica.Icons.Example;
- OpenIPSL.Electrical.Machines.PSAT.Order3 order3_Inputs_Outputs1(
- V_b=400,
- V_0=1,
- angle_0=0,
- Sn=20,
- Vn=400,
- ra=0.01,
- x1d=0.302,
- M=10,
- D=0,
- xd=1.9,
- T1d0=8,
- xq=1.7,
- P_0=16.0352698692006,
- Q_0=11.859436505981) annotation (Placement(visible=true,
- transformation(
- origin={-29.9999,0},
- extent={{-10.0001,-10},{9.99991,10}},
- rotation=0)));
- OpenIPSL.Electrical.Controls.PSAT.TG.TGtypeII TGtypeII1 annotation
- (Placement(visible=true, transformation(
- origin={-63,-5},
- extent={{-9,-9},{9,9}},
- rotation=0)));
- equation
- connect(TGtypeII1.pm, order3_Inputs_Outputs1.pm) annotation (Line(points={{-53.1,-5},{-42,-5}},
- color={0,0,127}));
- connect(order3_Inputs_Outputs1.vf0, order3_Inputs_Outputs1.vf) annotation (
- Line(points={{-38,11},{-38,16},{-48,16},{-48,6},{-48,5},{-42,5}}, color={
- 0,0,127}));
- connect(order3_Inputs_Outputs1.pm0, TGtypeII1.pm0) annotation (Line(points={{-38,-11},{-38,-28},{-86,-28},{-86,10},{-63,10},{-63,5.8}},
- color={0,0,127}));
- connect(order3_Inputs_Outputs1.p, bus.p)
- annotation (Line(points={{-20,0},{-20,0},{0,0}}, color={0,0,255}));
- connect(order3_Inputs_Outputs1.w, TGtypeII1.w) annotation (Line(points={{-19,9},{-16,9},{-16,22},{-80,22},{-80,-5},{-73.8,-5}}, color={0,0,127}));
- annotation (Documentation,experiment(StopTime=20));
- end Order3test2_TG;
-
- model Order3test2_AVR
- extends Modelica.Icons.Example;
- extends OpenIPSL.Examples.BaseTest;
- OpenIPSL.Electrical.Machines.PSAT.Order3 order3_Inputs_Outputs1(
- V_b=400,
- V_0=1,
- angle_0=0,
- Sn=20,
- Vn=400,
- ra=0.01,
- x1d=0.302,
- M=10,
- D=0,
- xd=1.9,
- T1d0=8,
- xq=1.7,
- P_0=16.0352698692006,
- Q_0=11.859436505981) annotation (Placement(visible=true,
- transformation(
- origin={-30,0},
- extent={{-9.99992,-10},{10,10}},
- rotation=0)));
- OpenIPSL.Electrical.Controls.PSAT.AVR.AVRtypeIII AVRtypeIII1
- annotation (Placement(visible=true, transformation(
- origin={-68,0},
- extent={{-10,-10},{10,10}},
- rotation=0)));
- Modelica.Blocks.Sources.Constant const(k=0)
- annotation (Placement(transformation(extent={{-98,-4},{-90,4}})));
- equation
- connect(order3_Inputs_Outputs1.p, bus.p)
- annotation (Line(points={{-20,0},{-20,0},{0,0}}, color={0,0,255}));
- connect(AVRtypeIII1.vf, order3_Inputs_Outputs1.vf) annotation (Line(points={{
- -57.1667,0},{-50.5,0},{-50.5,5},{-41.9999,5}}, color={0,0,127}));
- connect(AVRtypeIII1.v, order3_Inputs_Outputs1.v) annotation (Line(points={{-77.1667,
- 5},{-88,5},{-88,22},{-15,22},{-15,3},{-19,3}}, color={0,0,127}));
- connect(order3_Inputs_Outputs1.pm0, order3_Inputs_Outputs1.pm) annotation (
- Line(points={{-37.9999,-11},{-37.9999,-14},{-47,-14},{-47,-5},{-41.9999,-5}},
- color={0,0,127}));
- connect(AVRtypeIII1.vf0, order3_Inputs_Outputs1.vf0) annotation (Line(points=
- {{-68,9.16667},{-68,16},{-37.9999,16},{-37.9999,11}},color={0,0,127}));
- connect(AVRtypeIII1.vs, const.y) annotation (Line(points={{-77.1667,-5},{-86,
- -5},{-86,0},{-89.6,0}}, color={0,0,127}));
- annotation (Documentation,experiment(StopTime=20));
- end Order3test2_AVR;
-
- model Order4test2
- extends OpenIPSL.Examples.BaseTest;
- extends Modelica.Icons.Example;
- OpenIPSL.Electrical.Machines.PSAT.Order4 Generator(
- Sn=100,
- Vn=20,
- V_b=400,
- V_0=1,
- angle_0=0,
- ra=0.001,
- M=10,
- D=0,
- x1d=0.302,
- P_0=16.0352698692006,
- Q_0=11.859436505981) annotation (Placement(transformation(extent=
- {{-60,-20},{-20,20}})));
- equation
- connect(Generator.vf0, Generator.vf) annotation (Line(points={{-56,22},{-56,
- 28},{-76,28},{-76,10},{-64,10}}, color={0,0,127}));
- connect(Generator.pm, Generator.pm0) annotation (Line(points={{-64,-10},{-72,
- -10},{-72,-18},{-72,-28},{-56,-28},{-56,-22}}, color={0,0,127}));
- connect(Generator.p, bus.p)
- annotation (Line(points={{-20,0},{-20,0},{0,0}}, color={0,0,255}));
- annotation (experiment(StopTime=20), Documentation);
- end Order4test2;
-
- model Order4test2_perturbation
- extends OpenIPSL.Examples.BaseTest;
- extends Modelica.Icons.Example;
- OpenIPSL.Electrical.Machines.PSAT.Order4 Generator(
- Sn=100,
- Vn=20,
- V_b=400,
- V_0=1,
- angle_0=0,
- ra=0.001,
- M=10,
- D=0,
- x1d=0.302,
- P_0=16.0352698692006,
- Q_0=11.859436505981) annotation (Placement(transformation(extent=
- {{-26,-10},{-6,10}})));
- Modelica.Blocks.Math.Add3 add31 annotation (Placement(visible=true,
- transformation(
- origin={-45,25},
- extent={{-5,-5},{5,5}},
- rotation=0)));
- Modelica.Blocks.Math.Add add1 annotation (Placement(visible=true,
- transformation(
- origin={-74.9999,35},
- extent={{-4.99992,-5.00001},{4.99991,5.00002}},
- rotation=0)));
- Modelica.Blocks.Sources.Step step1(height=0.0005, startTime=2) annotation (
- Placement(visible=true, transformation(
- origin={-95,55},
- extent={{-5,-5},{5,5}},
- rotation=0)));
- Modelica.Blocks.Sources.Step step2(height=-0.0005, startTime=2.1) annotation (
- Placement(visible=true, transformation(
- origin={-95,35},
- extent={{-5,-5},{5,5}},
- rotation=0)));
- Modelica.Blocks.Sources.Sine sine1(amplitude=0.001, freqHz=0.2) annotation (
- Placement(visible=true, transformation(
- origin={-95,20},
- extent={{-5,-5},{5,5}},
- rotation=0)));
- Modelica.Blocks.Math.Add add2(k2=-1) annotation (Placement(visible=true,
- transformation(
- origin={-75,15},
- extent={{-5,-5},{5,5}},
- rotation=0)));
- Modelica.Blocks.Sources.Sine sine2(
- amplitude=0.001,
- freqHz=0.2,
- startTime=5) annotation (Placement(visible=true, transformation(
- origin={-95,5},
- extent={{-5,-5},{5,5}},
- rotation=0)));
- Modelica.Blocks.Sources.Sine sine3(
- amplitude=0.001,
- freqHz=0.2,
- startTime=10) annotation (Placement(visible=true, transformation(
- origin={-95,-75},
- extent={{-5,-5},{5,5}},
- rotation=0)));
- Modelica.Blocks.Math.Add add3(k2=-1) annotation (Placement(visible=true,
- transformation(
- origin={-75,-65},
- extent={{-4.99999,-4.99999},{4.99999,4.99999}},
- rotation=0)));
- Modelica.Blocks.Sources.Sine sine4(
- amplitude=0.001,
- freqHz=0.2,
- startTime=5) annotation (Placement(visible=true, transformation(
- origin={-95,-55},
- extent={{-5,-5},{5,5}},
- rotation=0)));
- Modelica.Blocks.Sources.Step step3(height=-0.0005, startTime=7.1) annotation (
- Placement(visible=true, transformation(
- origin={-95,-35},
- extent={{-5,-5},{5,5}},
- rotation=0)));
- Modelica.Blocks.Sources.Step step4(height=0.0005, startTime=7) annotation (
- Placement(visible=true, transformation(
- origin={-95,-15},
- extent={{-5,-5},{5,5}},
- rotation=0)));
- Modelica.Blocks.Math.Add add4 annotation (Placement(visible=true,
- transformation(
- origin={-75,-25},
- extent={{-5,-5},{5,5}},
- rotation=0)));
- Modelica.Blocks.Math.Add3 add32 annotation (Placement(visible=true,
- transformation(
- origin={-45,-25},
- extent={{-5.00007,-5.00012},{5.00001,4.99999}},
- rotation=0)));
- equation
- connect(Generator.p, bus.p) annotation (Line(points={{-6,0},{-4.25,0},{-4.25,
- 0},{0,0}}, color={0,0,255}));
- connect(step3.y, add4.u2) annotation (Line(
- visible=true,
- origin={-86.308,-30.9083},
- points={{-3.192,-4.0917},{2.3974,-4.0917},{2.3974,2.9083},{5.308,2.9083}},
- color={0,0,127}));
-
- connect(step4.y, add4.u1) annotation (Line(
- visible=true,
- origin={-86.308,-19.6146},
- points={{-3.192,4.6146},{2.3974,4.6146},{2.3974,-2.3854},{5.308,-2.3854}},
- color={0,0,127}));
-
- connect(add1.y, add31.u1) annotation (Line(points={{-69.5,35},{-60,35},{-60,
- 29},{-51,29}}, color={0,0,127}));
- connect(add2.y, add31.u2) annotation (Line(points={{-69.5,15},{-60,15},{-60,
- 25},{-51,25}}, color={0,0,127}));
- connect(step2.y, add1.u2) annotation (Line(points={{-89.5,35},{-87,35},{-87,
- 32},{-80.9998,32}}, color={0,0,127}));
- connect(step1.y, add1.u1) annotation (Line(points={{-89.5,55},{-87,55},{-87,
- 38},{-80.9998,38}}, color={0,0,127}));
- connect(sine2.y, add2.u2) annotation (Line(points={{-89.5,5},{-86,5},{-86,12},
- {-81,12}}, color={0,0,127}));
- connect(sine1.y, add2.u1) annotation (Line(points={{-89.5,20},{-86,20},{-86,
- 18},{-81,18}}, color={0,0,127}));
- connect(add4.y, add32.u2) annotation (Line(points={{-69.5,-25},{-60,-25},{-60,
- -25.0001},{-51.0001,-25.0001}}, color={0,0,127}));
- connect(sine4.y, add3.u1) annotation (Line(points={{-89.5,-55},{-85,-55},{-85,
- -62},{-81,-62}}, color={0,0,127}));
- connect(sine3.y, add3.u2) annotation (Line(points={{-89.5,-75},{-85,-75},{-85,
- -68},{-81,-68}}, color={0,0,127}));
- connect(add3.y, add32.u3) annotation (Line(points={{-69.5,-65},{-60,-65},{-60,
- -29.0001},{-51.0001,-29.0001}}, color={0,0,127}));
- connect(add31.y, Generator.vf) annotation (Line(points={{-39.5,25},{-35,25},{
- -35,5},{-28,5}}, color={0,0,127}));
- connect(add32.y, Generator.pm) annotation (Line(points={{-39.5,-25.0001},{-35,
- -25.0001},{-35,-5},{-28,-5}}, color={0,0,127}));
- connect(Generator.vf0, add31.u3) annotation (Line(points={{-24,11},{-24,14},{
- -55,14},{-55,21},{-51,21}}, color={0,0,127}));
- connect(Generator.pm0, add32.u1) annotation (Line(points={{-24,-11},{-24,-16},
- {-54,-16},{-54,-21},{-51.0001,-21}}, color={0,0,127}));
- annotation (
- Diagram(coordinateSystem(
- extent={{-100,-100},{100,100}},
- preserveAspectRatio=false,
- initialScale=0.1,
- grid={1,1})),
- experiment(StopTime=20),
- Documentation);
- end Order4test2_perturbation;
-
- model Order4test2_TG
- extends OpenIPSL.Examples.BaseTest;
- extends Modelica.Icons.Example;
- OpenIPSL.Electrical.Controls.PSAT.TG.TGtypeII TGtypeII1 annotation
- (Placement(visible=true, transformation(
- origin={-72.5,-7.5},
- extent={{-12.5,-12.5},{12.5,12.5}},
- rotation=0)));
- OpenIPSL.Electrical.Machines.PSAT.Order4 Generator(
- V_b=200,
- V_0=1,
- angle_0=0,
- ra=0.001,
- x1d=0.302,
- M=10,
- D=0,
- Sn=370,
- Vn=200,
- P_0=16.0352698692006,
- Q_0=11.859436505981) annotation (Placement(transformation(extent=
- {{-40,-15},{-10,15}})));
- equation
- connect(Generator.p, bus.p) annotation (Line(points={{-10,0},{-4.25,0},{-4.25,
- 0},{0,0}}, color={0,0,255}));
- connect(TGtypeII1.pm, Generator.pm) annotation (Line(points={{-58.75,-7.5},{-43,-7.5}},
- color={0,0,127}));
- connect(Generator.pm0, TGtypeII1.pm0) annotation (Line(points={{-37,-16.5},{-37,-25},{-50,-25},{-50,15},{-72.5,15},{-72.5,7.5}},
- color={0,0,127}));
- connect(Generator.vf0, Generator.vf) annotation (Line(points={{-37,16.5},{-37,
- 20},{-45,20},{-45,7.5},{-43,7.5}}, color={0,0,127}));
- connect(Generator.w, TGtypeII1.w) annotation (Line(points={{-8.5,13.5},{-4,13.5},{-4,26},{-92,26},{-92,-7.5},{-87.5,-7.5}}, color={0,0,127}));
- annotation (Documentation,experiment(StopTime=20));
- end Order4test2_TG;
-
- model Order4test2_AVR
- extends OpenIPSL.Examples.BaseTest;
- extends Modelica.Icons.Example;
- OpenIPSL.Electrical.Controls.PSAT.AVR.AVRtypeIII AVRtypeIII1
- annotation (Placement(visible=true, transformation(
- origin={-67,5},
- extent={{-10,-10},{10,10}},
- rotation=0)));
- OpenIPSL.Electrical.Machines.PSAT.Order4 order4_Inputs_Outputs(
- V_b=200,
- V_0=1,
- angle_0=0,
- Sn=370,
- Vn=200,
- ra=0.001,
- x1d=0.302,
- M=10,
- D=0,
- P_0=16.0352698692006,
- Q_0=11.859436505981) annotation (Placement(transformation(extent=
- {{-37,-10},{-17,10}})));
- Modelica.Blocks.Sources.Constant const(k=0)
- annotation (Placement(transformation(extent={{-97,-4},{-87,6}})));
- equation
- connect(AVRtypeIII1.vf, order4_Inputs_Outputs.vf) annotation (Line(
- points={{-56.1667,5},{-47,5},{-47,5},{-39,5}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(const.y, AVRtypeIII1.vs) annotation (Line(points={{-86.5,1},{-81,1},{
- -81,0},{-76.1667,0}}, color={0,0,127}));
- connect(AVRtypeIII1.v, order4_Inputs_Outputs.v) annotation (Line(points={{-76.1667,
- 10},{-87,10},{-87,20},{-10,20},{-10,3},{-16,3}}, color={0,0,127}));
- connect(order4_Inputs_Outputs.pm0, order4_Inputs_Outputs.pm) annotation (Line(
- points={{-35,-11},{-35,-13},{-41,-13},{-41,-5},{-39,-5}}, color={0,0,
- 127}));
- connect(order4_Inputs_Outputs.p, bus.p)
- annotation (Line(points={{-17,0},{-8,0},{-8,0},{0,0}}, color={0,0,255}));
- connect(AVRtypeIII1.vf0, order4_Inputs_Outputs.vf0) annotation (Line(points={
- {-67,14.1667},{-67,23},{-35,23},{-35,11}},color={0,0,127}));
- annotation (Documentation,experiment(StopTime=20));
- end Order4test2_AVR;
-
- model Order5test2
- extends OpenIPSL.Examples.BaseTest;
- extends Modelica.Icons.Example;
- OpenIPSL.Electrical.Machines.PSAT.Order5_Type1 order5Type1_Inputs_Outputs(
- Sn=370,
- Vn=200,
- ra=0.001,
- x1d=0.302,
- M=10,
- D=0,
- V_b=400,
- V_0=1,
- angle_0=0,
- P_0=16.0352698692006,
- Q_0=11.859436505981,
- xd=1.9,
- xq=1.7,
- x1q=0.5,
- T1d0=8,
- T1q0=0.8,
- T2q0=0.02) annotation (Placement(transformation(extent={{-32,-10},
- {-12,10}})));
- equation
- connect(order5Type1_Inputs_Outputs.vf, order5Type1_Inputs_Outputs.vf0)
- annotation (Line(points={{-34,5},{-37,5},{-37,15},{-30,15},{-30,11}},color=
- {0,0,127}));
- connect(order5Type1_Inputs_Outputs.pm, order5Type1_Inputs_Outputs.pm0)
- annotation (Line(points={{-34,-5},{-37,-5},{-37,-15},{-30,-15},{-30,-11}},
- color={0,0,127}));
- connect(order5Type1_Inputs_Outputs.p, bus.p)
- annotation (Line(points={{-12,0},{-6,0},{-6,0},{0,0}}, color={0,0,255}));
- annotation (
- Diagram(coordinateSystem(
- extent={{-100,-100},{100,100}},
- preserveAspectRatio=false,
- initialScale=0.1,
- grid={1,1})),
- experiment(StopTime=20),
- Documentation);
- end Order5test2;
-
- model Order6test2
- extends OpenIPSL.Examples.BaseTest;
- extends Modelica.Icons.Example;
- OpenIPSL.Electrical.Machines.PSAT.Order6 order6Type2_1(
- Sn=100,
- V_0=1,
- angle_0=0,
- ra=0.001,
- x1d=0.302,
- M=10,
- D=0,
- V_b=400,
- Vn=20,
- xd=1.9,
- xq=1.7,
- x1q=0.5,
- x2d=0.204,
- x2q=0.3,
- T1d0=8,
- T1q0=0.8,
- T2d0=0.04,
- T2q0=0.02,
- Taa=2e-3,
- P_0=16.0352698692006,
- Q_0=11.859436505981) annotation (Placement(transformation(extent=
- {{-61,-20},{-21,20}})));
- equation
- connect(order6Type2_1.vf0, order6Type2_1.vf) annotation (Line(points={{-57,22},
- {-57,25},{-71,25},{-71,10},{-65,10}}, color={0,0,127}));
- connect(order6Type2_1.pm, order6Type2_1.pm0) annotation (Line(points={{-65,-10},
- {-71,-10},{-71,-25},{-57,-25},{-57,-22}}, color={0,0,127}));
- connect(order6Type2_1.p, bus.p)
- annotation (Line(points={{-21,0},{-10,0},{-10,0},{0,0}}, color={0,0,255}));
- annotation (
- Diagram(coordinateSystem(
- extent={{-100,-100},{100,100}},
- preserveAspectRatio=false,
- initialScale=0.1,
- grid={1,1})),
- experiment(StopTime=20),
- Documentation);
- end Order6test2;
-
- model InductiveMotorI_SIMBOpenline_Test
- "Order 1 inductive machine from PSAT, line opened at 2 s for 1 s"
- extends Modelica.Icons.Example;
- OpenIPSL.Electrical.Machines.PSAT.MotorTypeI motorTypeI(
- Sup=0,
- V_0=1.0336,
- angle_0=-0.02173,
- P_0=0.5,
- Q_0=0.286) annotation (Placement(transformation(
- extent={{-10,-10},{10,10}},
- rotation=180,
- origin={70,0})));
- OpenIPSL.Electrical.Branches.PwLine pwLine1(
- G=0,
- B=0,
- R=0.01,
- X=0.1) annotation (Placement(transformation(
- extent={{-10,-10},{10,9.99999}},
- rotation=180,
- origin={0,-20})));
- OpenIPSL.Electrical.Branches.PwLine pwLine2(
- G=0,
- B=0,
- R=0.01,
- X=0.1,
- t1=2,
- t2=3,
- opening=1) annotation (Placement(transformation(
- extent={{-10,-10},{10,10}},
- rotation=180,
- origin={0,20})));
- OpenIPSL.Electrical.Buses.InfiniteBus infiniteBus(V_0=1.05, angle_0
- =0) annotation (Placement(transformation(
- extent={{-10,-10},{10,10}},
- rotation=0,
- origin={-70,0})));
- inner OpenIPSL.Electrical.SystemBase SysData annotation (Placement(
- transformation(extent={{-100,80},{-40,100}})));
- equation
- connect(infiniteBus.p, pwLine2.n) annotation (Line(
- points={{-60,0},{-40.175,0},{-40.175,20},{-9,20}},
- color={0,0,255},
- smooth=Smooth.None));
- connect(pwLine1.n, infiniteBus.p) annotation (Line(
- points={{-9,-20},{-40,-20},{-40,0},{-60,0}},
- color={0,0,255},
- smooth=Smooth.None));
- connect(pwLine2.p, motorTypeI.p) annotation (Line(
- points={{9,20},{40,20},{40,0},{60,0}},
- color={0,0,255},
- smooth=Smooth.None));
- connect(pwLine1.p, motorTypeI.p) annotation (Line(
- points={{9,-20},{40,-20},{40,1.33227e-15},{60,1.33227e-15}},
- color={0,0,255},
- smooth=Smooth.None));
- annotation (Documentation,experiment(StopTime=20));
- end InductiveMotorI_SIMBOpenline_Test;
-
- model InductiveMotorIII_SIMBOpenline_Test
- extends Modelica.Icons.Example;
- OpenIPSL.Electrical.Machines.PSAT.MotorTypeIII motorTypeI(
- Sup=0,
- V_0=1.0336,
- angle_0=-0.02173,
- P_0=0.251061717038311,
- Q_0=0.226568616630697) annotation (Placement(transformation(
- extent={{-10,-10},{10,10}},
- rotation=180,
- origin={70,0})));
- OpenIPSL.Electrical.Branches.PwLine pwLine1(
- G=0,
- R=0.01,
- X=0.1,
- B=1e-3) annotation (Placement(transformation(
- extent={{-10,-10},{10,9.99999}},
- rotation=180,
- origin={0,-20})));
- OpenIPSL.Electrical.Branches.PwLine pwLine2(
- G=0,
- R=0.01,
- X=0.1,
- t1=2,
- t2=3,
- B=1e-3,
- opening=1) annotation (Placement(transformation(
- extent={{-10,-9.99992},{10,10.0001}},
- rotation=180,
- origin={0,20.0001})));
- OpenIPSL.Electrical.Buses.InfiniteBus infiniteBus(V_0=1.05, angle_0
- =0) annotation (Placement(transformation(
- extent={{-10,-10},{10,10}},
- rotation=0,
- origin={-70,0})));
- inner OpenIPSL.Electrical.SystemBase SysData(fn=60) annotation (
- Placement(transformation(extent={{-100,80},{-40,100}})));
- equation
- connect(infiniteBus.p, pwLine2.n) annotation (Line(
- points={{-60,0},{-40.175,0},{-40.175,20},{-9,20}},
- color={0,0,255},
- smooth=Smooth.None));
- connect(pwLine2.p, motorTypeI.p)
- annotation (Line(points={{9,20},{40,20},{40,0},{60,0}}, color={0,0,255}));
- connect(pwLine1.p, motorTypeI.p) annotation (Line(points={{9,-20},{40,-20},{
- 40,0},{60,0}}, color={0,0,255}));
- connect(pwLine1.n, pwLine2.n) annotation (Line(points={{-9,-20},{-40,-20},{-40,
- 0},{-40.175,0},{-40.175,20},{-9,20}}, color={0,0,255}));
- annotation (Documentation,experiment(StopTime=20));
- end InductiveMotorIII_SIMBOpenline_Test;
-
- model InductiveMotorV_SIMBOpenline_Test
- extends Modelica.Icons.Example;
- OpenIPSL.Electrical.Machines.PSAT.MotorTypeV motorTypeI(
- Sup=0,
- V_0=1.0336,
- angle_0=-0.02173,
- P_0=0.251061717038311,
- Q_0=0.226568616630697) annotation (Placement(transformation(
- extent={{-10,-10},{10,10}},
- rotation=180,
- origin={70,0})));
- OpenIPSL.Electrical.Branches.PwLine pwLine1(
- G=0,
- B=0,
- R=0.01,
- X=0.1) annotation (Placement(transformation(
- extent={{-10,-10},{10,10}},
- rotation=180,
- origin={0,-20})));
- OpenIPSL.Electrical.Branches.PwLine pwLine2(
- G=0,
- B=0,
- R=0.01,
- X=0.1,
- t1=2,
- t2=3,
- opening=1) annotation (Placement(transformation(
- extent={{-10,-10},{10,10}},
- rotation=180,
- origin={0,20})));
- OpenIPSL.Electrical.Buses.InfiniteBus infiniteBus(V_0=1.05, angle_0
- =0) annotation (Placement(transformation(
- extent={{-10,-10},{10,10}},
- rotation=0,
- origin={-70,0})));
- inner OpenIPSL.Electrical.SystemBase SysData(fn=60) annotation (
- Placement(transformation(extent={{-100,80},{-40,100}})));
- equation
- connect(pwLine1.n, infiniteBus.p) annotation (Line(
- points={{-9,-20},{-40,-20},{-40,0},{-60,0}},
- color={0,0,255},
- smooth=Smooth.None));
- connect(pwLine2.n, infiniteBus.p) annotation (Line(points={{-9,20},{-40,20},{
- -40,0},{-60,0},{-60,0}}, color={0,0,255}));
- connect(pwLine2.p, motorTypeI.p) annotation (Line(points={{9,20},{40,20},{40,
- 0},{60,0},{60,1.33227e-15}}, color={0,0,255}));
- connect(pwLine1.p, motorTypeI.p) annotation (Line(points={{9,-20},{40,-20},{
- 40,0},{60,0},{60,1.22125e-15}}, color={0,0,255}));
- annotation (Documentation,experiment(StopTime=20));
- end InductiveMotorV_SIMBOpenline_Test;
- annotation (Documentation);
- end PSAT;
- annotation (Documentation);
- end Machines;
-
- package Controls
- extends Modelica.Icons.ExamplesPackage;
-
- package PSSE
- extends Modelica.Icons.ExamplesPackage;
-
- package ES
- extends Modelica.Icons.ExamplesPackage;
-
- model EXAC2 "SMIB system with one load and GENROE model"
- extends OpenIPSL.Examples.SMIBpartial;
- OpenIPSL.Electrical.Machines.PSSE.GENROE gENROE(
- M_b=100,
- Tpd0=5,
- Tppd0=0.07,
- Tpq0=0.9,
- Tppq0=0.09,
- H=4.28,
- D=0,
- Xd=1.84,
- Xq=1.75,
- Xpd=0.41,
- Xpq=0.6,
- Xppd=0.2,
- Xl=0.12,
- S10=0.11,
- S12=0.39,
- V_0=1,
- P_0=40,
- angle_0=4.046276,
- Q_0=5.416582,
- Xppq=0.2) annotation (Placement(transformation(extent={{-100,-20},
- {-60,20}})));
- OpenIPSL.Electrical.Controls.PSSE.ES.EXAC2 eXAC2_1(
- K_B=2,
- K_H=2,
- K_A=400,
- T_A=0.02,
- V_AMAX=9,
- V_AMIN=-5.34,
- T_E=0.8,
- K_F=0.03,
- T_F=1,
- K_C=0.2,
- K_D=0.48,
- K_E=1,
- E_1=5.25,
- E_2=7,
- S_EE_1=0.03,
- S_EE_2=0.1,
- T_R=0.005,
- T_B=0.005,
- T_C=0.005,
- V_RMAX=4,
- V_RMIN=-4,
- K_L=1,
- V_LR=10) annotation (Placement(transformation(extent={{-54,-52},
- {-100,-30}})));
- Modelica.Blocks.Sources.Constant const(k=0) annotation (Placement(
- transformation(
- extent={{-4,-4},{4,4}},
- rotation=180,
- origin={-44,-44})));
- equation
- connect(gENROE.PMECH, gENROE.PMECH0) annotation (Line(points={{-104,10},{-110,
- 10},{-110,26},{-48,26},{-48,10},{-58,10}}, color={0,0,127}));
- connect(gENROE.EFD0, eXAC2_1.EFD0) annotation (Line(points={{-58,-10},{-48,-10},
- {-48,-47.7222},{-54,-47.7222}}, color={0,0,127}));
- connect(gENROE.XADIFD, eXAC2_1.XADIFD) annotation (Line(points={{-58.4,-18},{
- -50,-18},{-50,-44.0556},{-54.23,-44.0556}}, color={0,0,127}));
- connect(gENROE.ETERM, eXAC2_1.ECOMP) annotation (Line(points={{-58,-6},{-46,-6},
- {-46,-39.7778},{-54,-39.7778}}, color={0,0,127}));
- connect(eXAC2_1.EFD, gENROE.EFD) annotation (Line(points={{-101.15,-39.7778},
- {-110,-39.7778},{-110,-10},{-104,-10}},color={0,0,127}));
- connect(gENROE.p, GEN1.p)
- annotation (Line(points={{-60,0},{-60,0},{-40,0}}, color={0,0,255}));
- connect(eXAC2_1.VOTHSG, const.y) annotation (Line(points={{-54,-34.2778},{-51.1437,
- -34.2778},{-51.1437,-44},{-48.4,-44}}, color={0,0,127}));
- connect(eXAC2_1.VUEL, const.y) annotation (Line(points={{-62.05,-52},{-50,-52},
- {-50,-44},{-48.4,-44}}, color={0,0,127}));
- connect(eXAC2_1.VOEL, const.y) annotation (Line(points={{-68.95,-52},{-50,-52},
- {-50,-44},{-48.4,-44}}, color={0,0,127}));
- annotation (
- Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{
- 100,100}})),
- Documentation,
- experiment(StopTime=10));
- end EXAC2;
-
- model ESAC2A "SMIB model example of GENROU with Excitation System ESAC2A"
- extends OpenIPSL.Examples.SMIBpartial;
- OpenIPSL.Electrical.Machines.PSSE.GENROU generator(
- Xppd=0.2,
- Xppq=0.2,
- Xpp=0.2,
- Xl=0.12,
- V_0=1,
- P_0=100*0.399999529123306,
- angle_0=4.04626655578613,
- Q_0=100*0.0541657134890556,
- M_b=100,
- Tpd0=5,
- Tppd0=0.50000E-01,
- Tppq0=0.1,
- H=4.0000,
- D=0,
- Xd=1.41,
- Xq=1.3500,
- Xpd=0.3,
- S10=0.1,
- S12=0.5,
- Xpq=0.6,
- Tpq0=0.7) annotation (Placement(transformation(extent={{-108,-14},
- {-80,16}})));
- Modelica.Blocks.Sources.Constant const(k=0) annotation (Placement(
- transformation(
- extent={{-4,-4},{4,4}},
- rotation=180,
- origin={-42,-26})));
- Modelica.Blocks.Sources.Constant const2(k=0)
- annotation (Placement(transformation(extent={{-110,166},{-94,182}})));
- Modelica.Blocks.Sources.Constant const4(k=1000) annotation (Placement(
- transformation(
- extent={{-5,-5},{5,5}},
- rotation=180,
- origin={-41,-45})));
- Modelica.Blocks.Sources.Constant const5(k=-1000) annotation (Placement(
- transformation(
- extent={{-5,-5},{5,5}},
- rotation=180,
- origin={-41,-61})));
- OpenIPSL.Electrical.Controls.PSSE.ES.ESAC2A eSAC2A(
- V_RMAX=4,
- V_RMIN=-4,
- V_FEMAX=10) annotation (Placement(transformation(extent={{-74,-70},
- {-144,-24}})));
- equation
- connect(eSAC2A.EFD0, generator.EFD0) annotation (Line(
- points={{-74,-61.0556},{-60,-61.0556},{-60,-6.5},{-78.6,-6.5}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(const.y, eSAC2A.VOTHSG) annotation (Line(
- points={{-46.4,-26},{-63.25,-26},{-63.25,-32.9444},{-74,-32.9444}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(generator.XADIFD, eSAC2A.XADIFD) annotation (Line(
- points={{-78.88,-12.5},{-56,-12.5},{-56,-53.3889},{-74,-53.3889}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(eSAC2A.VOEL, const4.y) annotation (Line(
- points={{-96.75,-70},{-58.6875,-70},{-58.6875,-45},{-46.5,-45}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(const5.y, eSAC2A.VUEL) annotation (Line(
- points={{-46.5,-61},{-54,-61},{-54,-70},{-86.25,-70}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(generator.PELEC, eSAC2A.ECOMP) annotation (Line(
- points={{-78.6,5.5},{-64,5.5},{-64,-44.4444},{-74,-44.4444}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(generator.PMECH0, generator.PMECH) annotation (Line(
- points={{-78.6,8.5},{-74,8.5},{-74,20},{-110,20},{-110,8.5},{-110.8,8.5}},
- color={0,0,127},
- smooth=Smooth.None));
-
- connect(eSAC2A.EFD, generator.EFD) annotation (Line(points={{-145.75,-44.4444},
- {-150,-44.4444},{-150,-6.5},{-110.8,-6.5}}, color={0,0,127}));
- connect(generator.p, GEN1.p) annotation (Line(points={{-80,1},{-58.3,1},{-58.3,
- 0},{-40,0}}, color={0,0,255}));
- annotation (
- Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{
- 100,100}})),
- Documentation,
- experiment(StopTime=10));
- end ESAC2A;
-
- model ESST4B "SMIB model example of GENROU with Excitation System ESST4B"
- extends OpenIPSL.Examples.SMIBpartial;
- OpenIPSL.Electrical.Machines.PSSE.GENROU generator(
- Xppd=0.2,
- Xppq=0.2,
- Xpp=0.2,
- Xl=0.12,
- V_0=1,
- P_0=100*0.399999529123306,
- angle_0=4.04626655578613,
- Q_0=100*0.0541657134890556,
- M_b=100,
- Tpd0=5,
- Tppd0=0.50000E-01,
- Tppq0=0.1,
- H=4.0000,
- D=0,
- Xd=1.41,
- Xq=1.3500,
- Xpd=0.3,
- S10=0.1,
- S12=0.5,
- Xpq=0.6,
- Tpq0=0.7) annotation (Placement(transformation(extent={{-120,-16},
- {-92,18}})));
- Modelica.Blocks.Sources.Constant const(k=0) annotation (Placement(
- transformation(
- extent={{-4,-4},{4,4}},
- rotation=0,
- origin={-98,-52})));
- Modelica.Blocks.Sources.Constant const2(k=0)
- annotation (Placement(transformation(extent={{-110,166},{-94,182}})));
- Modelica.Blocks.Sources.Constant const5(k=0) annotation (Placement(
- transformation(
- extent={{-5,-5},{5,5}},
- rotation=0,
- origin={-97,-37})));
- OpenIPSL.Electrical.Controls.PSSE.ES.ESST4B eSST4B annotation (
- Placement(transformation(
- extent={{-14,-10},{14,10}},
- rotation=0,
- origin={-64,-4})));
- inner Electrical.SystemBase SysData
- annotation (Placement(transformation(extent={{-100,80},{-40,100}})));
- Modelica.Blocks.Sources.Constant const1(k=Modelica.Constants.inf)
- annotation (Placement(transformation(extent={{-40,-48},{-56,-32}})));
- equation
- connect(generator.p, eSST4B.Gen_terminal) annotation (Line(
- points={{-92,1},{-66.7,1},{-66.7,4.33333},{-75.9,4.33333}},
- color={0,0,255},
- smooth=Smooth.None));
- connect(const.y, eSST4B.VOTHSG) annotation (Line(
- points={{-93.6,-52},{-86,-52},{-86,2.11111},{-78,2.11111}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(generator.EFD0, eSST4B.EFD0) annotation (Line(
- points={{-90.6,-7.5},{-90,-7.5},{-90,-10.1111},{-78,-10.1111}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(const5.y, eSST4B.VUEL) annotation (Line(
- points={{-91.5,-37},{-84,-37},{-84,-14},{-73.1,-14}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(generator.PMECH0, generator.PMECH) annotation (Line(
- points={{-90.6,9.5},{-70,9.5},{-70,22},{-102,22},{-102,9.5},{-122.8,9.5}},
- color={0,0,127},
- smooth=Smooth.None));
-
- connect(eSST4B.EFD, generator.EFD) annotation (Line(
- points={{-49.3,-2.88889},{-48,-2.88889},{-48,-24},{-124,-24},{-124,-7.5},
- {-122.8,-7.5}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(generator.XADIFD, eSST4B.XADIFD) annotation (Line(
- points={{-90.88,-14.3},{-90.88,-20},{-94,-20},{-94,-6.77778},{-78,-6.77778}},
- color={0,0,127},
- smooth=Smooth.None));
-
- connect(generator.PELEC, eSST4B.ECOMP) annotation (Line(
- points={{-90.6,6.1},{-68,6.1},{-68,-2.88889},{-78,-2.88889}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(eSST4B.Bus, GEN1.p) annotation (Line(points={{-52.1,4.33333},{-47.5818,
- 4.33333},{-47.5818,0},{-40,0}}, color={0,0,255}));
- connect(const1.y, eSST4B.VOEL) annotation (Line(points={{-56.8,-40},{-68.9,-40},
- {-68.9,-14}}, color={0,0,127}));
- annotation (
- Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{
- 100,100}})),
- Documentation,
- experiment(StopTime=10));
- end ESST4B;
-
- model URST5T "SMIB model example of GENROU with Excitation System URST5T"
- extends OpenIPSL.Examples.SMIBpartial;
- OpenIPSL.Electrical.Machines.PSSE.GENROU generator(
- Xppd=0.2,
- Xppq=0.2,
- Xpp=0.2,
- Xl=0.12,
- V_0=1,
- P_0=100*0.399999529123306,
- angle_0=4.04626655578613,
- Q_0=100*0.0541657134890556,
- M_b=100,
- Tpd0=5,
- Tppd0=0.50000E-01,
- Tppq0=0.1,
- H=4.0000,
- D=0,
- Xd=1.41,
- Xq=1.3500,
- Xpd=0.3,
- S10=0.1,
- S12=0.5,
- Xpq=0.6,
- Tpq0=0.7) annotation (Placement(transformation(extent={{-104,-16},
- {-76,18}})));
- Modelica.Blocks.Sources.Constant const2(k=0)
- annotation (Placement(transformation(extent={{-110,166},{-94,182}})));
- Modelica.Blocks.Sources.Constant VOEL(k=1000) annotation (Placement(
- transformation(
- extent={{-5,-5},{5,5}},
- rotation=0,
- origin={-87,-67})));
- OpenIPSL.Electrical.Controls.PSSE.ES.URST5T uRST5T annotation (
- Placement(transformation(extent={{-56,-40},{-34,-20}})));
- Modelica.Blocks.Sources.Constant VUEL(k=-1000) annotation (Placement(
- transformation(
- extent={{-5,-5},{5,5}},
- rotation=0,
- origin={-73,-81})));
- Modelica.Blocks.Sources.Constant VOTHSG(k=0) annotation (Placement(
- transformation(
- extent={{-5,-5},{5,5}},
- rotation=0,
- origin={-73,-55})));
- inner Electrical.SystemBase SysData
- annotation (Placement(transformation(extent={{-100,80},{-40,100}})));
- equation
- connect(VUEL.y, uRST5T.VUEL) annotation (Line(
- points={{-67.5,-81},{-58.25,-81},{-58.25,-40},{-52.15,-40}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(VOEL.y, uRST5T.VOEL) annotation (Line(
- points={{-81.5,-67},{-60,-67},{-60,-40},{-48.85,-40}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(VOTHSG.y, uRST5T.VOTHSG) annotation (Line(
- points={{-67.5,-55},{-62,-55},{-62,-23.8889},{-56,-23.8889}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(generator.XADIFD, uRST5T.XADIFD) annotation (Line(
- points={{-74.88,-14.3},{-74.88,-32.7778},{-56,-32.7778}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(generator.EFD0, uRST5T.EFD0) annotation (Line(
- points={{-74.6,-7.5},{-64,-7.5},{-64,-36.1111},{-56,-36.1111}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(generator.PMECH0, generator.PMECH) annotation (Line(
- points={{-74.6,9.5},{-70,9.5},{-70,22},{-104,22},{-104,9.5},{-106.8,9.5}},
- color={0,0,127},
- smooth=Smooth.None));
-
- connect(generator.PELEC, uRST5T.ECOMP) annotation (Line(
- points={{-74.6,6.1},{-66,6.1},{-66,-28.8889},{-56,-28.8889}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(uRST5T.EFD, generator.EFD) annotation (Line(
- points={{-33.45,-28.8889},{-14,-28.8889},{-14,-44},{-104,-44},{-104,-7.5},
- {-106.8,-7.5}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(generator.p, GEN1.p) annotation (Line(points={{-76,1},{-57.3,1},{-57.3,
- 0},{-40,0}}, color={0,0,255}));
- connect(uRST5T.VT, uRST5T.ECOMP) annotation (Line(points={{-56,-26.1111},{-58,
- -26.1111},{-58,-26},{-60,-26},{-60,-28.8889},{-56,-28.8889}}, color={
- 0,0,127}));
- annotation (
- Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{
- 100,100}})),
- Documentation,
- experiment(StopTime=10));
- end URST5T;
-
- model SEXS "SMIB model example of GENROU with Excitation System EXST1"
- extends OpenIPSL.Examples.SMIBpartial;
- Modelica.Blocks.Sources.Constant const2(k=0)
- annotation (Placement(transformation(extent={{-110,166},{-94,182}})));
- OpenIPSL.Electrical.Machines.PSSE.GENROU gENROE(
- M_b=100,
- Tpd0=5,
- Tppd0=0.07,
- Tpq0=0.9,
- Tppq0=0.09,
- D=0,
- Xd=1.84,
- Xq=1.75,
- Xpd=0.41,
- Xpq=0.6,
- Xppd=0.2,
- Xl=0.12,
- S10=0.11,
- S12=0.39,
- V_0=1,
- P_0=40,
- angle_0=4.046276,
- Q_0=5.416582,
- Xppq=0.2,
- R_a=0,
- Xpp=0.2,
- H=4.28) annotation (Placement(transformation(extent={{-110,-20},
- {-70,20}})));
- OpenIPSL.Electrical.Controls.PSSE.ES.SEXS sEXS(
- T_AT_B=0.1,
- T_B=1,
- K=100,
- T_E=0.1,
- E_MIN=-10,
- E_MAX=10) annotation (Placement(transformation(extent={{-70,-54},
- {-108,-26}})));
- Modelica.Blocks.Sources.Constant const(k=0) annotation (Placement(
- transformation(
- extent={{4,-4},{-4,4}},
- rotation=0,
- origin={-50,-40})));
- equation
- connect(gENROE.PMECH, gENROE.PMECH0) annotation (Line(points={{-114,10},{-114,
- 10},{-114,26},{-60,26},{-60,10},{-68,10}}, color={0,0,127}));
- connect(gENROE.EFD0, sEXS.EFD0) annotation (Line(points={{-68,-10},{-60,-10},{-60,-48.5556},{-70,-48.5556}},
- color={0,0,127}));
- connect(gENROE.ETERM, sEXS.ECOMP) annotation (Line(points={{-68,-6},{-64,-6},{-64,-38.4444},{-70,-38.4444}},
- color={0,0,127}));
- connect(sEXS.VOEL, const.y) annotation (Line(points={{-82.35,-54},{-68,-54},{
- -68,-40},{-54.4,-40}}, color={0,0,127}));
- connect(sEXS.VOTHSG, const.y) annotation (Line(points={{-70,-31.4444},{-64,-31.4444},{-64,-40},{-54.4,-40}},
- color={0,0,127}));
- connect(sEXS.VUEL, const.y) annotation (Line(points={{-76.65,-54},{-64,-54},{
- -64,-40},{-54.4,-40}}, color={0,0,127}));
- connect(sEXS.EFD, gENROE.EFD) annotation (Line(points={{-108.95,-38.4444},{-114,-38.4444},{-114,-10},{-114,-10}},
- color={0,0,127}));
- connect(gENROE.p, GEN1.p)
- annotation (Line(points={{-70,0},{-40,0},{-40,0}}, color={0,0,255}));
- connect(gENROE.XADIFD, sEXS.XADIFD) annotation (Line(points={{-68.4,-18},{-62,-18},{-62,-60},{-97.55,-60},{-97.55,-53.6889}}, color={0,0,127}));
- annotation (
- Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-120,-100},{
- 120,100}})),
- Documentation,
- Icon(coordinateSystem(extent={{-120,-100},{120,100}})),
- experiment(StopTime=10));
- end SEXS;
-
- model SCRX "SMIB model example of GENROU with Excitation System EXST1"
- extends OpenIPSL.Examples.SMIBpartial;
- Modelica.Blocks.Sources.Constant const2(k=0)
- annotation (Placement(transformation(extent={{-110,166},{-94,182}})));
- OpenIPSL.Electrical.Machines.PSSE.GENROU gENROE(
- M_b=100,
- Tpd0=5,
- Tppd0=0.07,
- Tpq0=0.9,
- Tppq0=0.09,
- D=0,
- Xd=1.84,
- Xq=1.75,
- Xpd=0.41,
- Xpq=0.6,
- Xppd=0.2,
- Xl=0.12,
- S10=0.11,
- S12=0.39,
- V_0=1,
- P_0=40,
- angle_0=4.046276,
- Q_0=5.416582,
- Xppq=0.2,
- R_a=0,
- Xpp=0.2,
- H=4.28) annotation (Placement(transformation(extent={{-112,-20},
- {-72,20}})));
- Modelica.Blocks.Sources.Constant const(k=0) annotation (Placement(
- transformation(
- extent={{4,-4},{-4,4}},
- rotation=0,
- origin={-52,-36})));
- OpenIPSL.Electrical.Controls.PSSE.ES.SCRX sCRX(
- T_AT_B=0.1,
- T_B=1,
- K=100,
- E_MIN=-10,
- E_MAX=10,
- C_SWITCH=false,
- r_cr_fd=0,
- T_E=0.005) annotation (Placement(transformation(extent={{-74,-58},
- {-108,-30}})));
- equation
- connect(gENROE.PMECH, gENROE.PMECH0) annotation (Line(points={{-116,10},{-116,
- 10},{-116,26},{-62,26},{-62,10},{-70,10}}, color={0,0,127}));
- connect(sCRX.EFD, gENROE.EFD) annotation (Line(points={{-108.85,-42.4444},{-116,-42.4444},{-116,-10},{-116,-10}},
- color={0,0,127}));
- connect(gENROE.ETERM, sCRX.ECOMP) annotation (Line(points={{-70,-6},{-66,-6},{-66,-42.4444},{-74,-42.4444}},
- color={0,0,127}));
- connect(const.y, sCRX.VOTHSG) annotation (Line(points={{-56.4,-36},{-74,-36},{-74,-35.4444}},
- color={0,0,127}));
- connect(sCRX.VOEL, sCRX.VOTHSG) annotation (Line(points={{-85.05,-58},{-70,-58},{-70,-36},{-74,-36},{-74,-35.4444}},
- color={0,0,127}));
- connect(sCRX.VUEL, sCRX.VOTHSG) annotation (Line(points={{-79.95,-58},{-70,-58},{-70,-36},{-74,-36},{-74,-35.4444}},
- color={0,0,127}));
- connect(sCRX.XADIFD, gENROE.XADIFD) annotation (Line(points={{-98.65,-57.6889},{-64,-57.6889},{-64,-18},{-70.4,-18}},
- color={0,0,127}));
- connect(sCRX.EFD0, gENROE.EFD0) annotation (Line(points={{-74,-52.5556},{-62,-52.5556},{-62,-10},{-70,-10}},
- color={0,0,127}));
- connect(gENROE.p, GEN1.p)
- annotation (Line(points={{-72,0},{-72,0},{-40,0}}, color={0,0,255}));
- annotation (
- Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-120,-100},{
- 120,100}})),
- Documentation,
- Icon(coordinateSystem(extent={{-120,-100},{120,100}})),
- experiment(StopTime=10));
- end SCRX;
-
- model EXAC1 "SMIB system with one load and GENROE model"
- extends OpenIPSL.Examples.SMIBpartial;
- OpenIPSL.Electrical.Machines.PSSE.GENROE gENROE(
- M_b=100,
- Tpd0=5,
- Tppd0=0.07,
- Tpq0=0.9,
- Tppq0=0.09,
- H=4.28,
- D=0,
- Xd=1.84,
- Xq=1.75,
- Xpd=0.41,
- Xpq=0.6,
- Xppd=0.2,
- Xl=0.12,
- S10=0.11,
- S12=0.39,
- V_0=1,
- P_0=40,
- angle_0=4.046276,
- Q_0=5.416582,
- Xppq=0.2) annotation (Placement(transformation(extent={{-100,-20},
- {-60,20}})));
- Modelica.Blocks.Sources.Constant const(k=0)
- annotation (Placement(transformation(extent={{-20,-56},{-40,-36}})));
- OpenIPSL.Electrical.Controls.PSSE.ES.EXAC1 eXAC1_1(
- K_A=400,
- T_A=0.02,
- V_RMAX=9,
- V_RMIN=-5.43,
- T_E=0.8,
- K_F=0.03,
- T_F=1,
- K_C=0.2,
- K_D=0.48,
- K_E=1,
- E_1=5.25,
- E_2=7,
- S_EE_1=0.03,
- S_EE_2=0.1,
- T_R=0.004,
- T_B=0.004,
- T_C=0.004) annotation (Placement(transformation(extent={{-60,-50},
- {-98,-24}})));
- equation
- connect(gENROE.PMECH, gENROE.PMECH0) annotation (Line(points={{-104,10},{-110,
- 10},{-110,26},{-48,26},{-48,10},{-58,10}}, color={0,0,127}));
- connect(eXAC1_1.EFD, gENROE.EFD) annotation (Line(points={{-98.95,-35.5556},{
- -110,-35.5556},{-110,-10},{-104,-10}}, color={0,0,127}));
- connect(eXAC1_1.XADIFD, gENROE.XADIFD) annotation (Line(points={{-60,-40.6111},
- {-56,-40.6111},{-56,-18},{-58.4,-18}}, color={0,0,127}));
- connect(eXAC1_1.VOTHSG, const.y) annotation (Line(points={{-60,-29.0556},{-48,
- -29.0556},{-48,-46},{-41,-46}}, color={0,0,127}));
- connect(eXAC1_1.VUEL, const.y) annotation (Line(points={{-66.65,-50},{-48,-50},
- {-48,-46},{-41,-46}}, color={0,0,127}));
- connect(eXAC1_1.VOEL, const.y) annotation (Line(points={{-72.35,-50},{-48,-50},
- {-48,-46},{-41,-46}}, color={0,0,127}));
- connect(eXAC1_1.ECOMP, gENROE.ETERM) annotation (Line(points={{-60,-35.5556},
- {-52,-35.5556},{-52,-6},{-58,-6}},color={0,0,127}));
- connect(eXAC1_1.EFD0, gENROE.EFD0) annotation (Line(points={{-60,-44.9444},{-54,
- -44.9444},{-54,-10},{-58,-10}}, color={0,0,127}));
- connect(gENROE.p, GEN1.p)
- annotation (Line(points={{-60,0},{-60,0},{-40,0}}, color={0,0,255}));
- annotation (
- Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{
- 100,100}})),
- Documentation,
- experiment(StopTime=10));
- end EXAC1;
-
- model EXST1 "SMIB system with one load and GENROE model"
- extends OpenIPSL.Examples.SMIBpartial;
- OpenIPSL.Electrical.Machines.PSSE.GENROE gENROE(
- M_b=100,
- Tpd0=5,
- Tppd0=0.07,
- Tpq0=0.9,
- Tppq0=0.09,
- H=4.28,
- D=0,
- Xd=1.84,
- Xq=1.75,
- Xpd=0.41,
- Xpq=0.6,
- Xppd=0.2,
- Xl=0.12,
- S10=0.11,
- S12=0.39,
- V_0=1,
- P_0=40,
- angle_0=4.046276,
- Q_0=5.416582,
- Xppq=0.2) annotation (Placement(transformation(extent={{-100,-20},
- {-60,20}})));
- Modelica.Blocks.Sources.Constant const(k=0)
- annotation (Placement(transformation(extent={{-20,-56},{-40,-36}})));
- OpenIPSL.Electrical.Controls.PSSE.ES.EXST1 eXST1_1(
- V_IMAX=10,
- V_IMIN=-10,
- T_R=0.02,
- T_B=1,
- K_A=80,
- T_A=0.05,
- V_RMAX=8,
- V_RMIN=-3,
- K_C=0.2,
- K_F=0.1,
- T_F=1,
- T_C=0.1) annotation (Placement(transformation(extent={{-58,-58},
- {-100,-28}})));
- equation
- connect(gENROE.PMECH, gENROE.PMECH0) annotation (Line(points={{-104,10},{-110,
- 10},{-110,26},{-48,26},{-48,10},{-58,10}}, color={0,0,127}));
- connect(eXST1_1.EFD, gENROE.EFD) annotation (Line(points={{-101.05,-41.3333},
- {-110,-41.3333},{-110,-10},{-104,-10}},color={0,0,127}));
- connect(eXST1_1.ECOMP, gENROE.ETERM) annotation (Line(points={{-58,-41.3333},
- {-50,-41.3333},{-50,-6},{-58,-6}},color={0,0,127}));
- connect(const.y, eXST1_1.VOEL) annotation (Line(points={{-41,-46},{-71.65,-46},
- {-71.65,-58}}, color={0,0,127}));
- connect(eXST1_1.VOTHSG, eXST1_1.VOEL) annotation (Line(points={{-58,-33.8333},
- {-50,-33.8333},{-50,-46},{-71.65,-46},{-71.65,-58}}, color={0,0,127}));
- connect(eXST1_1.VUEL, eXST1_1.VOEL) annotation (Line(points={{-65.35,-58},{-50,
- -58},{-50,-46},{-71.65,-46},{-71.65,-58}}, color={0,0,127}));
- connect(eXST1_1.XADIFD, gENROE.XADIFD) annotation (Line(points={{-58,-47.1667},
- {-54,-47.1667},{-54,-18},{-58.4,-18}}, color={0,0,127}));
- connect(eXST1_1.EFD0, gENROE.EFD0) annotation (Line(points={{-58,-52.1667},{-58,
- -60},{-48,-60},{-48,-10},{-58,-10}}, color={0,0,127}));
- connect(gENROE.p, GEN1.p)
- annotation (Line(points={{-60,0},{-60,0},{-40,0}}, color={0,0,255}));
- annotation (
- Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{
- 100,100}})),
- Documentation,
- experiment(StopTime=10));
- end EXST1;
-
- model ESST1A "SMIB system with one load and GENROE model"
- extends OpenIPSL.Examples.SMIBpartial;
- OpenIPSL.Electrical.Machines.PSSE.GENROE gENROE(
- M_b=100,
- Tpd0=5,
- Tppd0=0.07,
- Tpq0=0.9,
- Tppq0=0.09,
- H=4.28,
- D=0,
- Xd=1.84,
- Xq=1.75,
- Xpd=0.41,
- Xpq=0.6,
- Xppd=0.2,
- Xl=0.12,
- S10=0.11,
- S12=0.39,
- V_0=1,
- P_0=40,
- angle_0=4.046276,
- Q_0=5.416582,
- Xppq=0.2) annotation (Placement(transformation(extent={{-100,-20},
- {-60,20}})));
- Modelica.Blocks.Sources.Constant const(k=0)
- annotation (Placement(transformation(extent={{-20,-56},{-40,-36}})));
- OpenIPSL.Electrical.Controls.PSSE.ES.ESST1A eSST1A(
- V_IMAX=0.3,
- V_IMIN=-0.3,
- T_C=2,
- T_B=10,
- T_C1=0.08,
- T_B1=0.083,
- K_A=300,
- V_AMAX=7,
- V_AMIN=-7,
- V_RMAX=5.2,
- V_RMIN=-5.2,
- K_C=0.38,
- K_F=1,
- T_F=1,
- K_LR=1,
- I_LR=0,
- T_A=0.1,
- T_R=0.1) annotation (Placement(transformation(extent={{-58,-60},
- {-86,-34}})));
- Modelica.Blocks.Sources.Constant const1(k=-Modelica.Constants.inf)
- annotation (Placement(transformation(extent={{-20,-90},{-40,-70}})));
- Modelica.Blocks.Sources.Constant const2(k=Modelica.Constants.inf)
- annotation (Placement(transformation(extent={{-18,-120},{-38,-100}})));
- equation
- connect(gENROE.PMECH, gENROE.PMECH0) annotation (Line(points={{-104,10},{-110,
- 10},{-110,26},{-48,26},{-48,10},{-58,10}}, color={0,0,127}));
- connect(const1.y, eSST1A.VUEL2) annotation (Line(points={{-41,-80},{-71.307,-80},
- {-71.307,-59.9928}}, color={0,0,127}));
- connect(eSST1A.VUEL3, eSST1A.VUEL2) annotation (Line(points={{-75.4895,-59.9964},
- {-75.4895,-80},{-71.307,-80},{-71.307,-59.9928}}, color={0,0,127}));
- connect(const2.y, eSST1A.VOEL) annotation (Line(points={{-39,-110},{-67.1,-110},
- {-67.1,-60}}, color={0,0,127}));
- connect(eSST1A.EFD, gENROE.EFD) annotation (Line(points={{-86.7,-45.5556},{-112,
- -45.5556},{-112,-10},{-104,-10}}, color={0,0,127}));
- connect(gENROE.ETERM, eSST1A.ECOMP) annotation (Line(points={{-58,-6},{-52,-6},
- {-52,-45.5556},{-58,-45.5556}}, color={0,0,127}));
- connect(eSST1A.VT, eSST1A.ECOMP) annotation (Line(points={{-58.0175,-41.9625},
- {-52,-41.9625},{-52,-45.5556},{-58,-45.5556}}, color={0,0,127}));
- connect(eSST1A.EFD0, gENROE.EFD0) annotation (Line(points={{-58,-54.9444},{-50,
- -54.9444},{-50,-10},{-58,-10}}, color={0,0,127}));
- connect(eSST1A.XADIFD, gENROE.XADIFD) annotation (Line(points={{-58,-50.6111},
- {-48,-50.6111},{-48,-18},{-58.4,-18}}, color={0,0,127}));
- connect(gENROE.p, GEN1.p)
- annotation (Line(points={{-60,0},{-60,0},{-40,0}}, color={0,0,255}));
- connect(eSST1A.VOTHSG2, const.y) annotation (Line(points={{-58,-36.1667},{-52,
- -36.1667},{-52,-36},{-44,-36},{-44,-46},{-41,-46}}, color={0,0,127}));
- connect(eSST1A.VOTHSG, const.y) annotation (Line(points={{-58,-39.0556},{-56,
- -39.0556},{-56,-36},{-52,-36},{-44,-36},{-44,-46},{-41,-46}}, color={
- 0,0,127}));
- connect(eSST1A.VUEL, const.y) annotation (Line(points={{-62.9,-60},{-62,-60},
- {-62,-64},{-44,-64},{-44,-46},{-41,-46}},color={0,0,127}));
- annotation (
- Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{
- 100,100}})),
- Documentation,
- experiment(StopTime=10));
- end ESST1A;
-
- model IEEEX1 "SMIB system with one load and GENROE model"
- extends OpenIPSL.Examples.SMIBpartial;
- OpenIPSL.Electrical.Machines.PSSE.GENROE gENROE(
- M_b=100,
- Tpd0=5,
- Tppd0=0.07,
- Tpq0=0.9,
- Tppq0=0.09,
- H=4.28,
- D=0,
- Xd=1.84,
- Xq=1.75,
- Xpd=0.41,
- Xpq=0.6,
- Xppd=0.2,
- Xl=0.12,
- S10=0.11,
- S12=0.39,
- V_0=1,
- P_0=40,
- angle_0=4.046276,
- Q_0=5.416582,
- Xppq=0.2) annotation (Placement(transformation(extent={{-100,-20},
- {-60,20}})));
- Modelica.Blocks.Sources.Constant const(k=0)
- annotation (Placement(transformation(extent={{-20,-52},{-40,-32}})));
- OpenIPSL.Electrical.Controls.PSSE.ES.IEEEX1 iEEEX1_1(
- T_R=0.04,
- K_A=75,
- T_A=0.05,
- T_B=1,
- T_C=1,
- V_RMAX=3.9,
- V_RMIN=-3.9,
- T_E=0.5,
- K_F=0.07,
- T_F1=1,
- E_1=2.47,
- S_EE_1=0.035,
- E_2=4.5,
- S_EE_2=0.47,
- K_E=0) annotation (Placement(transformation(extent={{-68,-60},{
- -92,-38}})));
- equation
- connect(gENROE.PMECH, gENROE.PMECH0) annotation (Line(points={{-104,10},{-110,
- 10},{-110,26},{-48,26},{-48,10},{-58,10}}, color={0,0,127}));
- connect(iEEEX1_1.EFD, gENROE.EFD) annotation (Line(points={{-92.6,-47.7778},{-102,-47.7778},{-102,-48},{-110,-48},{-110,-10},{-104,-10}},
- color={0,
- 0,127}));
- connect(iEEEX1_1.VOTHSG, const.y) annotation (Line(points={{-68,-42.2778},{-48.1116,-42.2778},{-48.1116,-42},{-41,-42}},
- color={0,0,127}));
- connect(iEEEX1_1.EFD0, gENROE.EFD0) annotation (Line(points={{-68,-55.7222},{-54,-55.7222},{-54,-10},{-58,-10}},
- color={0,0,127}));
- connect(iEEEX1_1.ECOMP, gENROE.ETERM) annotation (Line(points={{-68,-47.7778},{-52,-47.7778},{-52,-6},{-58,-6}},
- color={0,0,127}));
- connect(iEEEX1_1.VOEL, const.y) annotation (Line(points={{-75.8,-60},{-48,-60},
- {-48,-42},{-41,-42}}, color={0,0,127}));
- connect(iEEEX1_1.VUEL, const.y) annotation (Line(points={{-72.2,-60},{-48,-60},
- {-48,-42},{-41,-42}}, color={0,0,127}));
- connect(gENROE.p, GEN1.p)
- annotation (Line(points={{-60,0},{-60,0},{-40,0}}, color={0,0,255}));
- connect(gENROE.XADIFD, iEEEX1_1.XADIFD) annotation (Line(points={{-58.4,-18},{-56,-18},{-56,-66},{-85.4,-66},{-85.4,-59.7556}}, color={0,0,127}));
- annotation (
- Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{
- 100,100}})),
- Documentation,
- experiment(StopTime=10));
- end IEEEX1;
-
- model ESAC1A "SMIB system with one load and GENROE model"
- extends OpenIPSL.Examples.SMIBpartial;
- OpenIPSL.Electrical.Machines.PSSE.GENROE gENROE(
- M_b=100,
- Tpd0=5,
- Tppd0=0.07,
- Tpq0=0.9,
- Tppq0=0.09,
- H=4.28,
- D=0,
- Xd=1.84,
- Xq=1.75,
- Xpd=0.41,
- Xpq=0.6,
- Xppd=0.2,
- Xl=0.12,
- S10=0.11,
- S12=0.39,
- V_0=1,
- P_0=40,
- angle_0=4.046276,
- Q_0=5.416582,
- Xppq=0.2) annotation (Placement(transformation(extent={{-100,-20},
- {-60,20}})));
- Modelica.Blocks.Sources.Constant const(k=0)
- annotation (Placement(transformation(extent={{-28,-58},{-38,-48}})));
- Modelica.Blocks.Sources.Constant const1(k=-Modelica.Constants.inf)
- annotation (Placement(transformation(extent={{-28,-80},{-38,-70}})));
- Modelica.Blocks.Sources.Constant const2(k=Modelica.Constants.inf)
- annotation (Placement(transformation(extent={{-28,-100},{-38,-90}})));
- OpenIPSL.Electrical.Controls.PSSE.ES.ESAC1A eSAC1A(
- T_R=0.04,
- T_B=2,
- T_C=10,
- K_A=400,
- T_A=0.02,
- V_AMAX=9,
- V_AMIN=-5.34,
- T_E=0.8,
- K_F=0.03,
- T_F=1,
- K_C=0.2,
- K_D=0.48,
- K_E=1,
- E_1=5.25,
- E_2=7,
- S_EE_1=0.03,
- S_EE_2=0.1,
- V_RMAX=3,
- V_RMIN=-3) annotation (Placement(transformation(extent={{-52,-58},
- {-106,-38}})));
- inner OpenIPSL.Electrical.SystemBase SysData annotation (
- Placement(transformation(extent={{-100,80},{-40,100}})));
- equation
- connect(gENROE.PMECH, gENROE.PMECH0) annotation (Line(points={{-104,10},{-110,
- 10},{-110,26},{-48,26},{-48,10},{-58,10}}, color={0,0,127}));
- connect(eSAC1A.VOTHSG, const.y) annotation (Line(points={{-52,-41.8889},{-52,
- -53},{-38.5,-53}}, color={0,0,127}));
- connect(gENROE.ETERM, eSAC1A.ECOMP) annotation (Line(points={{-58,-6},{-32,-6},
- {-32,-46.8889},{-52,-46.8889}}, color={0,0,127}));
- connect(eSAC1A.EFD0, gENROE.EFD0) annotation (Line(points={{-52,-54.1111},{-52,
- -62},{-46,-62},{-46,-10},{-58,-10}}, color={0,0,127}));
- connect(gENROE.XADIFD, eSAC1A.XADIFD) annotation (Line(points={{-58.4,-18},{-44,
- -18},{-44,-64},{-52,-64},{-52,-50.7778}}, color={0,0,127}));
- connect(eSAC1A.EFD, gENROE.EFD) annotation (Line(points={{-107.35,-46.8889},{
- -110,-46.8889},{-110,-10},{-104,-10}}, color={0,0,127}));
- connect(const1.y, eSAC1A.VUEL) annotation (Line(points={{-38.5,-75},{-61.45,-75},
- {-61.45,-58}}, color={0,0,127}));
- connect(const2.y, eSAC1A.VOEL) annotation (Line(points={{-38.5,-95},{-38.5,-95},
- {-69.55,-95},{-69.55,-58}}, color={0,0,127}));
- connect(gENROE.p, GEN1.p)
- annotation (Line(points={{-60,0},{-60,0},{-40,0}}, color={0,0,255}));
- annotation (
- Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{
- 100,100}})),
- Documentation,
- experiment(StopTime=10));
- end ESAC1A;
-
- model ESDC1A "SMIB system with one load and GENROE model"
- extends OpenIPSL.Examples.SMIBpartial;
- OpenIPSL.Electrical.Machines.PSSE.GENROE gENROE(
- M_b=100,
- Tpd0=5,
- Tppd0=0.07,
- Tpq0=0.9,
- Tppq0=0.09,
- H=4.28,
- D=0,
- Xd=1.84,
- Xq=1.75,
- Xpd=0.41,
- Xpq=0.6,
- Xppd=0.2,
- Xl=0.12,
- S10=0.11,
- S12=0.39,
- V_0=1,
- P_0=40,
- angle_0=4.046276,
- Q_0=5.416582,
- Xppq=0.2) annotation (Placement(transformation(extent={{-100,-20},
- {-60,20}})));
- Modelica.Blocks.Sources.Constant const(k=0)
- annotation (Placement(transformation(extent={{-28,-46},{-38,-36}})));
- Modelica.Blocks.Sources.Constant const1(k=-Modelica.Constants.inf)
- annotation (Placement(transformation(extent={{-28,-60},{-38,-50}})));
- OpenIPSL.Electrical.Controls.PSSE.ES.ESDC1A eSDC1A(
- T_R=0.04,
- T_F1=1,
- E_1=2.47,
- S_EE_1=0.035,
- E_2=4.5,
- S_EE_2=0.47,
- K_A=75,
- T_A=0.05,
- T_B=1,
- T_C=1,
- V_RMIN=-3.9,
- K_E=0,
- T_E=0.5,
- K_F=0.07,
- V_RMAX=0) annotation (Placement(transformation(extent={{-60,-50},
- {-100,-36}})));
- equation
- connect(gENROE.PMECH, gENROE.PMECH0) annotation (Line(points={{-104,10},{-110,
- 10},{-110,26},{-48,26},{-48,10},{-58,10}}, color={0,0,127}));
- connect(eSDC1A.EFD, gENROE.EFD) annotation (Line(points={{-101,-42.2222},{-106,-42.2222},{-106,-10},{-104,-10}},
- color={0,0,127}));
- connect(eSDC1A.EFD0, gENROE.EFD0) annotation (Line(points={{-60,-47.2778},{-60,-58},{-48,-58},{-48,-10},{-58,-10}},
- color={0,0,127}));
- connect(gENROE.ETERM, eSDC1A.ECOMP) annotation (Line(points={{-58,-6},{-54,-6},{-54,-38},{-58,-38},{-58,-42.2222},{-60,-42.2222}},
- color={0,0,127}));
- connect(eSDC1A.VOTHSG, const.y) annotation (Line(points={{-60,-38.7222},{-49.5556,-38.7222},{-49.5556,-41},{-38.5,-41}},
- color={0,0,127}));
- connect(eSDC1A.VOEL, const.y) annotation (Line(points={{-73,-50},{-42,-50},{-42,
- -41},{-38.5,-41}}, color={0,0,127}));
- connect(eSDC1A.VUEL, const1.y) annotation (Line(points={{-67,-50},{-54,-50},{
- -54,-55},{-38.5,-55}}, color={0,0,127}));
- connect(gENROE.p, GEN1.p)
- annotation (Line(points={{-60,0},{-60,0},{-40,0}}, color={0,0,255}));
- connect(gENROE.XADIFD, eSDC1A.XADIFD) annotation (Line(points={{-58.4,-18},{-56,-18},{-56,-62},{-89,-62},{-89,-49.8444}}, color={0,0,127}));
- annotation (
- Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{
- 100,100}})),
- Documentation,
- experiment(StopTime=10));
- end ESDC1A;
-
- model ESDC2A "SMIB system with one load and GENROE model"
- extends OpenIPSL.Examples.SMIBpartial;
- OpenIPSL.Electrical.Machines.PSSE.GENROE gENROE(
- M_b=100,
- Tpd0=5,
- Tppd0=0.07,
- Tpq0=0.9,
- Tppq0=0.09,
- H=4.28,
- D=0,
- Xd=1.84,
- Xq=1.75,
- Xpd=0.41,
- Xpq=0.6,
- Xppd=0.2,
- Xl=0.12,
- S10=0.11,
- S12=0.39,
- V_0=1,
- P_0=40,
- angle_0=4.046276,
- Q_0=5.416582,
- Xppq=0.2) annotation (Placement(transformation(extent={{-104,-20},
- {-64,20}})));
- Modelica.Blocks.Sources.Constant const(k=0)
- annotation (Placement(transformation(extent={{-32,-46},{-42,-36}})));
- Modelica.Blocks.Sources.Constant const1(k=-Modelica.Constants.inf)
- annotation (Placement(transformation(extent={{-32,-60},{-42,-50}})));
- OpenIPSL.Electrical.Controls.PSSE.ES.ESDC2A eSDC2A(
- T_R=0.04,
- T_F1=1,
- E_1=2.47,
- S_EE_1=0.035,
- E_2=4.5,
- S_EE_2=0.47,
- K_A=75,
- T_A=0.05,
- T_B=1,
- T_C=1,
- V_RMIN=-3.9,
- T_E=0.5,
- K_F=0.07,
- V_RMAX=0,
- K_E=0) annotation (Placement(transformation(extent={{-62,-50},{
- -104,-32}})));
- equation
- connect(gENROE.PMECH, gENROE.PMECH0) annotation (Line(points={{-108,10},{-114,
- 10},{-114,26},{-52,26},{-52,10},{-62,10}}, color={0,0,127}));
- connect(eSDC2A.EFD, gENROE.EFD) annotation (Line(points={{-105.05,-40},{-112,
- -40},{-112,-10},{-108,-10}}, color={0,0,127}));
- connect(gENROE.ETERM, eSDC2A.ECOMP) annotation (Line(points={{-62,-6},{-56,-6},
- {-56,-40},{-62,-40}}, color={0,0,127}));
- connect(eSDC2A.VOTHSG, const.y) annotation (Line(points={{-62,-35.5},{-46,-35.5},
- {-46,-41},{-42.5,-41}}, color={0,0,127}));
- connect(eSDC2A.VT, eSDC2A.ECOMP) annotation (Line(points={{-62,-43.5},{-62,-56},
- {-56,-56},{-56,-40},{-62,-40}}, color={0,0,127}));
- connect(eSDC2A.EFD0, gENROE.EFD0) annotation (Line(points={{-62,-46.5},{-62,-54},
- {-58,-54},{-58,-10},{-62,-10}}, color={0,0,127}));
- connect(eSDC2A.VOEL, const.y) annotation (Line(points={{-75.65,-50},{-46,-50},
- {-46,-41},{-42.5,-41}}, color={0,0,127}));
- connect(const1.y, eSDC2A.VUEL) annotation (Line(points={{-42.5,-55},{-50,-55},
- {-50,-50},{-69.35,-50}}, color={0,0,127}));
- connect(gENROE.p, GEN1.p)
- annotation (Line(points={{-64,0},{-64,0},{-40,0}}, color={0,0,255}));
- connect(gENROE.XADIFD, eSDC2A.XADIFD) annotation (Line(points={{-62.4,-18},{-54,-18},{-54,-60},{-92.45,-60},{-92.45,-49.8}}, color={0,0,127}));
- annotation (
- Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{
- 100,100}})),
- Documentation,
- experiment(StopTime=10));
- end ESDC2A;
-
- model IEEET2 "SMIB system with one load and GENROE model"
- extends OpenIPSL.Examples.SMIBpartial;
- OpenIPSL.Electrical.Machines.PSSE.GENROE gENROE(
- M_b=100,
- Tpd0=5,
- Tppd0=0.07,
- Tpq0=0.9,
- Tppq0=0.09,
- H=4.28,
- D=0,
- Xd=1.84,
- Xq=1.75,
- Xpd=0.41,
- Xpq=0.6,
- Xppd=0.2,
- Xl=0.12,
- S10=0.11,
- S12=0.39,
- V_0=1,
- P_0=40,
- angle_0=4.046276,
- Q_0=5.416582,
- Xppq=0.2) annotation (Placement(transformation(extent={{-108,-20},
- {-68,20}})));
- Modelica.Blocks.Sources.Constant const(k=0)
- annotation (Placement(transformation(extent={{-28,-50},{-48,-30}})));
- OpenIPSL.Electrical.Controls.PSSE.ES.IEEET2 iEEET2_1(
- T_R=0.02,
- K_A=200,
- T_A=0.001,
- T_E=0.55,
- K_F=0.06,
- T_F1=0.3,
- T_F2=0.6,
- E_1=2.85,
- S_EE_1=0.3,
- E_2=3.8,
- S_EE_2=0.6,
- V_RMAX=2,
- V_RMIN=-2,
- K_E=0.1) annotation (Placement(transformation(extent={{-74,-58},
- {-106,-32}})));
- inner OpenIPSL.Electrical.SystemBase SysData annotation (
- Placement(transformation(extent={{-100,80},{-40,100}})));
- equation
- connect(gENROE.PMECH, gENROE.PMECH0) annotation (Line(points={{-112,10},{-118,
- 10},{-118,26},{-56,26},{-56,10},{-66,10}}, color={0,0,127}));
- connect(iEEET2_1.EFD, gENROE.EFD) annotation (Line(points={{-106.8,-43.5556},{-118,-43.5556},{-118,-10},{-112,-10}},
- color={0,0,127}));
- connect(iEEET2_1.ECOMP, gENROE.ETERM) annotation (Line(points={{-74,-43.5556},{-58,-43.5556},{-58,-6},{-66,-6}},
- color={0,0,127}));
- connect(iEEET2_1.EFD0, gENROE.EFD0) annotation (Line(points={{-74,-52.9444},{-56,-52.9444},{-56,-10},{-66,-10}},
- color={0,0,127}));
- connect(iEEET2_1.VOTHSG, const.y) annotation (Line(points={{-74,-37.0556},{-55.3333,-37.0556},{-55.3333,-40},{-49,-40}},
- color={0,0,127}));
- connect(iEEET2_1.VOEL, const.y) annotation (Line(points={{-84.4,-58},{-50,-58},
- {-50,-40},{-49,-40}}, color={0,0,127}));
- connect(iEEET2_1.VUEL, const.y) annotation (Line(points={{-79.6,-58},{-50,-58},
- {-50,-40},{-49,-40}}, color={0,0,127}));
- connect(gENROE.p, GEN1.p)
- annotation (Line(points={{-68,0},{-68,0},{-40,0}}, color={0,0,255}));
- connect(gENROE.XADIFD, iEEET2_1.XADIFD) annotation (Line(points={{-66.4,-18},{-62,-18},{-62,-64},{-97.2,-64},{-97.2,-57.7111}}, color={0,0,127}));
- annotation (
- Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{
- 100,100}})),
- Documentation,
- experiment(StopTime=10));
- end IEEET2;
-
- model ST5B "SMIB system with one load and GENROE model"
- extends OpenIPSL.Examples.SMIBpartial;
- OpenIPSL.Electrical.Controls.PSSE.ES.ST5B sT5B(
- T_R=0,
- T_C1=0.8,
- T_B1=6,
- T_C2=0.08,
- T_B2=0.01,
- T_UC1=2,
- T_UB1=10,
- T_UC2=0.1,
- T_UB2=0.05,
- T_OC1=0.1,
- T_OB1=2,
- T_OC2=0.08,
- T_OB2=0.08,
- K_C=0.004,
- T_1=0.001,
- K_R=200,
- V_RMAX=5,
- V_RMIN=-4) annotation (Placement(transformation(extent={{-64,-76},
- {-124,-44}})));
- Modelica.Blocks.Sources.Constant PSS_off(k=0)
- annotation (Placement(transformation(extent={{-140,-102},{-128,-90}})));
- Modelica.Blocks.Sources.Constant VOEL(k=100)
- annotation (Placement(transformation(extent={{-140,-122},{-128,-110}})));
- Modelica.Blocks.Sources.Constant VUEL(k=-100)
- annotation (Placement(transformation(extent={{-140,-142},{-128,-130}})));
- OpenIPSL.Electrical.Machines.PSSE.GENROE gENROE(
- M_b=100,
- Tpd0=5,
- Tppd0=0.07,
- Tpq0=0.9,
- Tppq0=0.09,
- H=4.28,
- D=0,
- Xd=1.84,
- Xq=1.75,
- Xpd=0.41,
- Xpq=0.6,
- Xppd=0.2,
- Xl=0.12,
- S10=0.11,
- S12=0.39,
- V_0=1,
- P_0=40,
- angle_0=4.046276,
- Q_0=5.416582,
- Xppq=0.2) annotation (Placement(transformation(extent={{-112,-20},
- {-72,20}})));
- equation
- connect(PSS_off.y, sT5B.VOTHSG) annotation (Line(points={{-127.4,-96},{-64,-96},
- {-64,-50.2222}}, color={0,0,127}));
- connect(VOEL.y, sT5B.VOEL) annotation (Line(points={{-127.4,-116},{-83.5,-116},
- {-83.5,-76}}, color={0,0,127}));
- connect(VUEL.y, sT5B.VUEL) annotation (Line(points={{-127.4,-136},{-74.5,-136},
- {-74.5,-76}}, color={0,0,127}));
- connect(gENROE.ETERM, sT5B.ECOMP) annotation (Line(points={{-70,-6},{-50,-6},
- {-50,-58.2222},{-64,-58.2222}},color={0,0,127}));
- connect(sT5B.XADIFD, gENROE.XADIFD) annotation (Line(points={{-64,-63.5556},{
- -60,-63.5556},{-60,-18},{-70.4,-18}}, color={0,0,127}));
- connect(sT5B.EFD0, gENROE.EFD0) annotation (Line(points={{-64,-69.7778},{-56,
- -69.7778},{-56,-10},{-70,-10}}, color={0,0,127}));
- connect(sT5B.EFD, gENROE.EFD) annotation (Line(points={{-125.5,-58.2222},{-128,
- -58.2222},{-128,-10},{-116,-10}}, color={0,0,127}));
- connect(gENROE.PMECH, gENROE.PMECH0) annotation (Line(points={{-116,10},{-128,
- 10},{-128,30},{-60,30},{-60,10},{-70,10}}, color={0,0,127}));
- connect(gENROE.p, GEN1.p)
- annotation (Line(points={{-72,0},{-72,0},{-40,0}}, color={0,0,255}));
- annotation (
- Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{
- 100,100}})),
- Documentation,
- experiment(StopTime=10));
- end ST5B;
-
- model IEEET1 "SMIB system with one load and GENROE model"
- import iPSL = IslandedOperationControl.OpenIPSL;
- extends iPSL.Examples.SMIBpartial;
- iPSL.Electrical.Machines.PSSE.GENROE gENROE(
- M_b=100,
- Tpd0=5,
- Tppd0=0.07,
- Tpq0=0.9,
- Tppq0=0.09,
- H=4.28,
- D=0,
- Xd=1.84,
- Xq=1.75,
- Xpd=0.41,
- Xpq=0.6,
- Xppd=0.2,
- Xl=0.12,
- S10=0.11,
- S12=0.39,
- V_0=1,
- P_0=40,
- angle_0=4.046276,
- Q_0=5.416582,
- Xppq=0.2)
- annotation (Placement(transformation(extent={{-108,-20},{-68,20}})));
- Modelica.Blocks.Sources.Constant const(k=0)
- annotation (Placement(transformation(extent={{-28,-50},{-48,-30}})));
- iPSL.Electrical.Controls.PSSE.ES.IEEET1 iEEET2_1(
- T_R=0.02,
- K_A=200,
- T_A=0.001,
- T_E=0.55,
- K_F=0.06,
- E_1=2.85,
- S_EE_1=0.3,
- E_2=3.8,
- S_EE_2=0.6,
- V_RMAX=2,
- V_RMIN=-2,
- K_E=0.1)
- annotation (Placement(transformation(extent={{-74,-58},{-106,-32}})));
- inner iPSL.Electrical.SystemBase SysData
- annotation (Placement(transformation(extent={{-100,80},{-40,100}})));
- equation
- connect(gENROE.PMECH, gENROE.PMECH0) annotation (Line(points={{-112,10},{-118,
- 10},{-118,26},{-56,26},{-56,10},{-66,10}}, color={0,0,127}));
- connect(iEEET2_1.EFD, gENROE.EFD) annotation (Line(points={{-106.8,-43.5556},{-118,-43.5556},{-118,-10},{-112,-10}},
- color={0,0,127}));
- connect(iEEET2_1.ECOMP, gENROE.ETERM) annotation (Line(points={{-74,-43.5556},{-58,-43.5556},{-58,-6},{-66,-6}},
- color={0,0,127}));
- connect(iEEET2_1.EFD0, gENROE.EFD0) annotation (Line(points={{-74,-52.9444},{-56,-52.9444},{-56,-10},{-66,-10}},
- color={0,0,127}));
- connect(iEEET2_1.VOTHSG, const.y) annotation (Line(points={{-74,-37.0556},{-55.3333,-37.0556},{-55.3333,-40},{-49,-40}},
- color={0,0,127}));
- connect(iEEET2_1.VOEL, const.y) annotation (Line(points={{-84.4,-58},{-50,-58},
- {-50,-40},{-49,-40}}, color={0,0,127}));
- connect(iEEET2_1.VUEL, const.y) annotation (Line(points={{-79.6,-58},{-50,-58},
- {-50,-40},{-49,-40}}, color={0,0,127}));
- connect(gENROE.p, GEN1.p)
- annotation (Line(points={{-68,0},{-68,0},{-40,0}}, color={0,0,255}));
- connect(gENROE.XADIFD, iEEET2_1.XADIFD) annotation (Line(points={{-66.4,-18},{-62,-18},{-62,-66},{-97.2,-66},{-97.2,-57.7111}}, color={0,0,127}));
- annotation (
- Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{
- 100,100}})),
- Documentation,
- experiment(StopTime=10));
- end IEEET1;
-
- model EXNI "SMIB system with one load and GENROE model"
- extends OpenIPSL.Examples.SMIBpartial;
- OpenIPSL.Electrical.Machines.PSSE.GENROE gENROE(
- M_b=100,
- Tpd0=5,
- Tppd0=0.07,
- Tpq0=0.9,
- Tppq0=0.09,
- H=4.28,
- D=0,
- Xd=1.84,
- Xq=1.75,
- Xpd=0.41,
- Xpq=0.6,
- Xppd=0.2,
- Xl=0.12,
- S10=0.11,
- S12=0.39,
- V_0=1,
- P_0=40,
- angle_0=4.046276,
- Q_0=5.416582,
- Xppq=0.2) annotation (Placement(transformation(extent={{-100,-20},
- {-60,20}})));
- Modelica.Blocks.Sources.Constant const(k=0)
- annotation (Placement(transformation(extent={{-20,-56},{-40,-36}})));
- Electrical.Controls.PSSE.ES.EXNI eXNI
- annotation (Placement(transformation(extent={{-64,-54},{-94,-26}})));
- equation
- connect(gENROE.PMECH, gENROE.PMECH0) annotation (Line(points={{-104,10},{-110,
- 10},{-110,26},{-48,26},{-48,10},{-58,10}}, color={0,0,127}));
- connect(gENROE.p, GEN1.p)
- annotation (Line(points={{-60,0},{-60,0},{-40,0}}, color={0,0,255}));
- connect(eXNI.VOTHSG, const.y) annotation (Line(points={{-64,-31.4444},{-60,-31.4444},
- {-60,-32},{-41,-32},{-41,-46}}, color={0,0,127}));
- connect(eXNI.ECOMP, gENROE.ETERM) annotation (Line(points={{-64,-38.4444},{-60,
- -38.4444},{-60,-38},{-52,-38},{-52,-6},{-58,-6}}, color={0,0,127}));
- connect(eXNI.XADIFD, gENROE.XADIFD) annotation (Line(points={{-64,-43.8889},{
- -60,-43.8889},{-60,-44},{-60,-18},{-58.4,-18}}, color={0,0,127}));
- connect(eXNI.EFD0, gENROE.EFD0) annotation (Line(points={{-64,-48.5556},{-60,
- -48.5556},{-60,-48},{-56,-48},{-56,-10},{-58,-10}}, color={0,0,127}));
- connect(eXNI.VUEL, const.y) annotation (Line(points={{-69.25,-54},{-70,-54},{
- -70,-60},{-46,-60},{-46,-46},{-41,-46}}, color={0,0,127}));
- connect(eXNI.VOEL, const.y) annotation (Line(points={{-73.75,-54},{-74,-54},{
- -74,-60},{-46,-60},{-46,-46},{-41,-46}}, color={0,0,127}));
- connect(eXNI.EFD, gENROE.EFD) annotation (Line(points={{-94.75,-38.4444},{-110,
- -38.4444},{-110,-10},{-104,-10}}, color={0,0,127}));
- annotation (
- Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{
- 100,100}})),
- Documentation,
- experiment(StopTime=10));
- end EXNI;
- annotation (Documentation);
- end ES;
-
- package TG
- extends Modelica.Icons.ExamplesPackage;
-
- model IEESGO
- "Simple Machine Infinite Bus with Machine, Governor and Excitation system"
- extends OpenIPSL.Examples.SMIBpartial;
- OpenIPSL.Electrical.Machines.PSSE.GENSAL generator(
- Xppd=0.2,
- Xppq=0.2,
- Xl=0.12,
- V_0=1,
- angle_0=4.05,
- P_0=39.99995,
- Q_0=5.416571,
- M_b=100,
- Tpd0=6.7000,
- Tppd0=0.028,
- Tppq0=0.0358,
- H=4.4100,
- D=0,
- Xd=1.2200,
- Xq=0.76000,
- Xpd=0.29700,
- S10=0.18600,
- S12=0.802) annotation (Placement(transformation(extent={{-90,-10},
- {-70,10}})));
- OpenIPSL.Electrical.Controls.PSSE.ES.SCRX SCRX(
- T_B=10,
- K=100,
- T_E=0.05,
- E_MIN=0,
- E_MAX=5,
- r_cr_fd=0,
- C_SWITCH=false,
- T_AT_B=0.1) annotation (Placement(transformation(
- extent={{-18,-16},{18,16}},
- rotation=180,
- origin={-80,-34})));
- Modelica.Blocks.Sources.Constant const(k=0) annotation (Placement(
- transformation(
- extent={{-2,-2},{2,2}},
- rotation=180,
- origin={-50,-34})));
- OpenIPSL.Electrical.Controls.PSSE.TG.IEESGO iEESGO(
- T_1=0.01,
- T_2=0.0,
- T_3=0.15,
- T_4=0.3,
- T_5=8.0,
- T_6=0.4,
- K_2=0.7,
- K_3=0.43,
- P_MAX=1.0,
- P_MIN=0.0,
- K_1=0.1) annotation (Placement(transformation(extent={{-64,24},
- {-96,38}})));
- equation
- connect(SCRX.VUEL, const.y) annotation (Line(
- points={{-68.3,-18},{-53.67,-18},{-53.67,-34},{-52.2,-34}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(SCRX.VOEL, const.y) annotation (Line(
- points={{-73.7,-18},{-53.67,-18},{-53.67,-34},{-52.2,-34}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(SCRX.VOTHSG, const.y) annotation (Line(
- points={{-62,-43.7778},{-53.67,-43.7778},{-53.67,-34},{-52.2,-34}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(generator.EFD0, SCRX.EFD0) annotation (Line(
- points={{-69,-5},{-69,-24.2222},{-62,-24.2222}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(SCRX.EFD, generator.EFD) annotation (Line(points={{-98.9,-35.7778},{-104,
- -35.7778},{-104,-5},{-92,-5}}, color={0,0,127}));
- connect(generator.ETERM, SCRX.ECOMP) annotation (Line(points={{-69,-3},{-44,-3},
- {-44,-35.7778},{-62,-35.7778}}, color={0,0,127}));
- connect(generator.XADIFD, SCRX.XADIFD) annotation (Line(points={{-69.2,-9},{-52,
- -9},{-52,-29.5556},{-62,-29.5556}}, color={0,0,127}));
- connect(iEESGO.SPEED, generator.SPEED) annotation (Line(points={{-64.8,35},{-62,
- 35},{-62,7},{-69,7}}, color={0,0,127}));
- connect(iEESGO.PMECH, generator.PMECH) annotation (Line(points={{-97,32},{-104,
- 32},{-104,5},{-92,5}}, color={0,0,127}));
- connect(iEESGO.PMECH0, generator.PMECH0) annotation (Line(points={{-64.8,28},
- {-62,28},{-62,5},{-69,5}},color={0,0,127}));
- connect(generator.p, GEN1.p)
- annotation (Line(points={{-70,0},{-70,0},{-40,0}}, color={0,0,255}));
- annotation (
- Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,-120},{
- 100,80}})),
- Icon(coordinateSystem(extent={{-100,-120},{100,80}})),
- Documentation,
- experiment(StopTime=10));
- end IEESGO;
-
- model HYGOV
- "Simple Machine Infinite Bus with Machine, Governor and Excitation system"
- extends OpenIPSL.Examples.SMIBpartial;
- OpenIPSL.Electrical.Machines.PSSE.GENSAL generator(
- Xppd=0.2,
- Xppq=0.2,
- Xl=0.12,
- V_0=1,
- angle_0=4.05,
- P_0=39.99995,
- Q_0=5.416571,
- M_b=100,
- Tpd0=6.7000,
- Tppd0=0.028,
- Tppq0=0.0358,
- H=4.4100,
- D=0,
- Xd=1.2200,
- Xq=0.76000,
- Xpd=0.29700,
- S10=0.18600,
- S12=0.802) annotation (Placement(transformation(extent={{-96,-10},
- {-76,10}})));
- OpenIPSL.Electrical.Controls.PSSE.TG.HYGOV HYGOV(
- VELM=0.02,
- G_MAX=0.415,
- R=0.05,
- r=0.3,
- T_r=5,
- T_f=0.05,
- T_g=0.5,
- G_MIN=0,
- T_w=1.25,
- A_t=1.2,
- D_turb=0.2,
- q_NL=0.08) annotation (Placement(transformation(
- extent={{-19,-14},{19,14}},
- rotation=180,
- origin={-81,38})));
- OpenIPSL.Electrical.Controls.PSSE.ES.SCRX SCRX(
- T_B=10,
- K=100,
- T_E=0.05,
- E_MIN=0,
- E_MAX=5,
- r_cr_fd=0,
- C_SWITCH=false,
- T_AT_B=0.1) annotation (Placement(transformation(
- extent={{-18,-16},{18,16}},
- rotation=180,
- origin={-86,-34})));
- Modelica.Blocks.Sources.Constant const(k=0) annotation (Placement(
- transformation(
- extent={{-2,-2},{2,2}},
- rotation=180,
- origin={-56,-34})));
- equation
- connect(SCRX.VUEL, const.y) annotation (Line(
- points={{-74.3,-18},{-59.67,-18},{-59.67,-34},{-58.2,-34}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(SCRX.VOEL, const.y) annotation (Line(
- points={{-79.7,-18},{-59.67,-18},{-59.67,-34},{-58.2,-34}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(SCRX.VOTHSG, const.y) annotation (Line(
- points={{-68,-43.7778},{-59.67,-43.7778},{-59.67,-34},{-58.2,-34}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(generator.EFD0, SCRX.EFD0) annotation (Line(
- points={{-75,-5},{-75,-24.2222},{-68,-24.2222}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(generator.PMECH0, HYGOV.PMECH0) annotation (Line(points={{-75,5},{-52,
- 5},{-52,45},{-62.475,45}}, color={0,0,127}));
- connect(generator.SPEED, HYGOV.SPEED) annotation (Line(points={{-75,7},{-58,7},
- {-58,31},{-62.475,31}}, color={0,0,127}));
- connect(HYGOV.PMECH, generator.PMECH) annotation (Line(points={{-100.95,38},{
- -110,38},{-110,5},{-98,5}}, color={0,0,127}));
- connect(SCRX.EFD, generator.EFD) annotation (Line(points={{-104.9,-35.7778},{
- -110,-35.7778},{-110,-5},{-98,-5}}, color={0,0,127}));
- connect(generator.ETERM, SCRX.ECOMP) annotation (Line(points={{-75,-3},{-50,-3},
- {-50,-35.7778},{-68,-35.7778}}, color={0,0,127}));
- connect(generator.XADIFD, SCRX.XADIFD) annotation (Line(points={{-75.2,-9},{-58,
- -9},{-58,-29.5556},{-68,-29.5556}}, color={0,0,127}));
- connect(generator.p, GEN1.p)
- annotation (Line(points={{-76,0},{-76,0},{-40,0}}, color={0,0,255}));
- annotation (
- Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,-120},{
- 100,80}})),
- Icon(coordinateSystem(extent={{-100,-120},{100,80}})),
- Documentation,
- experiment(StopTime=10));
- end HYGOV;
-
- model GGOV "three phase to ground fault test of GGOV"
- extends OpenIPSL.Examples.SMIBpartial;
- OpenIPSL.Electrical.Machines.PSSE.GENROU generator(
- Xppd=0.2,
- Xppq=0.2,
- Xpp=0.2,
- Xl=0.12,
- M_b=100,
- Tpd0=5,
- Tppd0=0.50000E-01,
- Tppq0=0.1,
- H=4.0000,
- D=0,
- Xd=1.41,
- Xq=1.3500,
- Xpd=0.3,
- S10=0.1,
- S12=0.5,
- Xpq=0.6,
- Tpq0=0.7,
- V_0=1,
- angle_0=4.05,
- P_0=39.99995,
- Q_0=5.416571) annotation (Placement(transformation(extent={{-100,
- -16},{-60,18}})));
- OpenIPSL.Electrical.Controls.PSSE.TG.GGOV1.GGOV1 gGOV1pele(
- R=0.04,
- T_pelec=1,
- maxerr=0.05,
- minerr=-0.05,
- Kpgov=10,
- Kigov=2,
- Kdgov=0,
- Tdgov=1,
- Vmax=1,
- Vmin=0.15,
- Tact=0.5,
- Kturb=1.5,
- Wfnl=0.2,
- Tb=0.1,
- Tc=0,
- Teng=0,
- Tfload=3,
- Kpload=2,
- Kiload=0.67,
- Ldref=1,
- Dm=0,
- Ropen=0.1,
- Rclose=-0.1,
- Kimw=0,
- Aset=0.1,
- Ka=10,
- Ta=0.1,
- Trate=0,
- db=0,
- Tsa=4,
- Tsb=5,
- Rup=99,
- Rdown=-99,
- DELT=0.005,
- Flag=0) annotation (Placement(transformation(
- extent={{-20,-18},{20,18}},
- rotation=180,
- origin={-68,40})));
- equation
- connect(gGOV1pele.PELEC, generator.PELEC) annotation (Line(
- points={{-47.3793,46.9652},{-34,46.9652},{-34,6.1},{-58,6.1}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(generator.EFD0, generator.EFD) annotation (Line(
- points={{-58,-7.5},{-52,-7.5},{-52,-30},{-102,-30},{-102,-7.5},{-104,-7.5}},
- color={0,0,127},
- smooth=Smooth.None));
-
- connect(gGOV1pele.PMECH, generator.PMECH) annotation (Line(points={{-88.6897,
- 39.2174},{-106,39.2174},{-106,9.5},{-104,9.5}}, color={0,0,127}));
- connect(generator.SPEED, gGOV1pele.SPEED) annotation (Line(points={{-58,12.9},
- {-40,12.9},{-40,29.8261},{-47.4483,29.8261}}, color={0,0,127}));
- connect(generator.p, GEN1.p) annotation (Line(points={{-60,1},{-50,1},{-50,0},
- {-40,0}}, color={0,0,255}));
- annotation (
- Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{
- 100,100}})),
- Documentation,
- experiment(StopTime=10));
- end GGOV;
-
- model TGOV1 "SMIB system with one load and GENROE model"
- extends OpenIPSL.Examples.SMIBpartial;
- OpenIPSL.Electrical.Machines.PSSE.GENROE gENROE(
- M_b=100,
- Tpd0=5,
- Tppd0=0.07,
- Tpq0=0.9,
- Tppq0=0.09,
- H=4.28,
- D=0,
- Xd=1.84,
- Xq=1.75,
- Xpd=0.41,
- Xpq=0.6,
- Xppd=0.2,
- Xl=0.12,
- S10=0.11,
- S12=0.39,
- V_0=1,
- P_0=40,
- angle_0=4.046276,
- Q_0=5.416582,
- Xppq=0.2) annotation (Placement(transformation(extent={{-100,-20},
- {-60,20}})));
- OpenIPSL.Electrical.Controls.PSSE.TG.TGOV1 tGOV1_1(
- R=0.04,
- D_t=0,
- T_1=0.4,
- T_2=2,
- T_3=6,
- V_MAX=0.86,
- V_MIN=0.3) annotation (Placement(transformation(extent={{-72,32},
- {-88,44}})));
- equation
- connect(gENROE.EFD, gENROE.EFD0) annotation (Line(points={{-104,-10},{-110,-10},
- {-110,-30},{-48,-30},{-48,-10},{-58,-10}}, color={0,0,127}));
- connect(tGOV1_1.SPEED, gENROE.SPEED) annotation (Line(points={{-73,41},{-52,
- 41},{-52,14},{-58,14}}, color={0,0,127}));
- connect(tGOV1_1.PMECH0, gENROE.PMECH0) annotation (Line(points={{-73,35},{-48,
- 35},{-48,10},{-58,10}}, color={0,0,127}));
- connect(tGOV1_1.PMECH, gENROE.PMECH) annotation (Line(points={{-89,38},{-110,
- 38},{-110,10},{-104,10}}, color={0,0,127}));
- connect(gENROE.p, GEN1.p)
- annotation (Line(points={{-60,0},{-60,0},{-40,0}}, color={0,0,255}));
- annotation (
- Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{
- 100,100}})),
- Documentation,
- experiment(StopTime=10));
- end TGOV1;
- annotation (Documentation);
- end TG;
-
- package PSS
- extends Modelica.Icons.ExamplesPackage;
-
- model STAB3
- "Simple Machine Infinite Bus with Machine, Governor and Excitation system"
- extends OpenIPSL.Examples.SMIBpartial;
- OpenIPSL.Electrical.Machines.PSSE.GENSAL generator(
- Xppd=0.2,
- Xppq=0.2,
- Xl=0.12,
- V_0=1,
- angle_0=4.05,
- P_0=39.99995,
- Q_0=5.416571,
- M_b=100,
- Tpd0=6.7000,
- Tppd0=0.28000E-01,
- Tppq0=0.35000E-01,
- H=4.4100,
- D=0,
- Xd=1.2200,
- Xq=0.76000,
- Xpd=0.29700,
- S10=0.18600,
- S12=0.802) annotation (Placement(transformation(extent={{-106,-12},
- {-78,14}})));
- OpenIPSL.Electrical.Controls.PSSE.TG.HYGOV HYGOV(VELM=0.02, G_MAX
- =0.415) annotation (Placement(transformation(
- extent={{-19,-14},{19,14}},
- rotation=180,
- origin={-83,30})));
- OpenIPSL.Electrical.Controls.PSSE.ES.SCRX SCRX(
- T_AT_B=0.01,
- T_B=10,
- K=100,
- T_E=0.05,
- E_MIN=0,
- E_MAX=5,
- r_cr_fd=0,
- C_SWITCH=false) annotation (Placement(transformation(
- extent={{-18,-16},{18,16}},
- rotation=180,
- origin={-94,-36})));
- Modelica.Blocks.Sources.Constant const(k=0) annotation (Placement(
- transformation(
- extent={{-2,-2},{2,2}},
- rotation=180,
- origin={-68,-34})));
- equation
- connect(SCRX.VUEL, const.y) annotation (Line(
- points={{-82.3,-20},{-71.67,-20},{-71.67,-34},{-70.2,-34}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(SCRX.VOEL, const.y) annotation (Line(
- points={{-87.7,-20},{-71.67,-20},{-71.67,-34},{-70.2,-34}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(generator.EFD0, SCRX.EFD0) annotation (Line(
- points={{-76.6,-5.5},{-74,-5.5},{-74,-26.2222},{-76,-26.2222}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(generator.XADIFD, SCRX.XADIFD) annotation (Line(points={{-76.88,-10.7},
- {-70,-10.7},{-70,-31.5556},{-76,-31.5556}}, color={0,0,127}));
- connect(SCRX.ECOMP, generator.ETERM) annotation (Line(points={{-76,-37.7778},
- {-66,-37.7778},{-66,-2.9},{-76.6,-2.9}},color={0,0,127}));
- connect(generator.SPEED, HYGOV.SPEED) annotation (Line(points={{-76.6,10.1},{
- -58,10.1},{-58,23},{-64.475,23}}, color={0,0,127}));
- connect(generator.PMECH0, HYGOV.PMECH0) annotation (Line(points={{-76.6,7.5},
- {-64,7.5},{-64,10},{-48,10},{-48,37},{-64.475,37}},color={0,0,127}));
- connect(HYGOV.PMECH, generator.PMECH) annotation (Line(points={{-102.95,30},{
- -112,30},{-112,7.5},{-108.8,7.5}}, color={0,0,127}));
- connect(generator.EFD, SCRX.EFD) annotation (Line(points={{-108.8,-5.5},{-116,
- -5.5},{-116,-37.7778},{-112.9,-37.7778}}, color={0,0,127}));
- connect(SCRX.VOTHSG, const.y) annotation (Line(points={{-76,-45.7778},{-74,-45.7778},
- {-74,-36},{-71.67,-36},{-71.67,-34},{-70.2,-34}}, color={0,0,127}));
- connect(generator.p, GEN1.p) annotation (Line(points={{-78,1},{-58.3,1},{-58.3,
- 0},{-40,0}}, color={0,0,255}));
- annotation (
- Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,-120},{
- 100,80}})),
- Icon(coordinateSystem(extent={{-100,-120},{100,80}})),
- Documentation,
- experiment(StopTime=10));
- end STAB3;
-
- model STABNI
- "Simple Machine Infinite Bus with Machine, Governor and Excitation system"
- extends OpenIPSL.Examples.SMIBpartial;
- OpenIPSL.Electrical.Machines.PSSE.GENSAL generator(
- Xppd=0.2,
- Xppq=0.2,
- Xl=0.12,
- V_0=1,
- angle_0=4.05,
- P_0=39.99995,
- Q_0=5.416571,
- M_b=100,
- Tpd0=6.7000,
- Tppd0=0.28000E-01,
- Tppq0=0.35000E-01,
- H=4.4100,
- D=0,
- Xd=1.2200,
- Xq=0.76000,
- Xpd=0.29700,
- S10=0.18600,
- S12=0.802) annotation (Placement(transformation(extent={{-98,-14},
- {-70,12}})));
- OpenIPSL.Electrical.Controls.PSSE.TG.HYGOV HYGOV(VELM=0.02, G_MAX
- =0.415) annotation (Placement(transformation(
- extent={{-19,-14},{19,14}},
- rotation=180,
- origin={-75,28})));
- OpenIPSL.Electrical.Controls.PSSE.ES.SCRX SCRX(
- T_AT_B=0.01,
- T_B=10,
- K=100,
- T_E=0.05,
- E_MIN=0,
- E_MAX=5,
- r_cr_fd=0,
- C_SWITCH=false) annotation (Placement(transformation(
- extent={{-18,-16},{18,16}},
- rotation=180,
- origin={-86,-38})));
- Modelica.Blocks.Sources.Constant const(k=0) annotation (Placement(
- transformation(
- extent={{-2,-2},{2,2}},
- rotation=180,
- origin={-60,-36})));
- equation
- connect(SCRX.VUEL, const.y) annotation (Line(
- points={{-74.3,-22},{-63.67,-22},{-63.67,-36},{-62.2,-36}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(SCRX.VOEL, const.y) annotation (Line(
- points={{-79.7,-22},{-63.67,-22},{-63.67,-36},{-62.2,-36}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(generator.EFD0, SCRX.EFD0) annotation (Line(
- points={{-68.6,-7.5},{-66,-7.5},{-66,-28.2222},{-68,-28.2222}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(generator.PMECH0, HYGOV.PMECH0) annotation (Line(points={{-68.6,5.5},
- {-58,5.5},{-58,8},{-48,8},{-48,35},{-56.475,35}},color={0,0,127}));
- connect(generator.SPEED, HYGOV.SPEED) annotation (Line(points={{-68.6,8.1},{-56,
- 8.1},{-52,8.1},{-52,22},{-52,21},{-56.475,21}}, color={0,0,127}));
- connect(generator.XADIFD, SCRX.XADIFD) annotation (Line(points={{-68.88,-12.7},
- {-62,-12.7},{-62,-33.5556},{-68,-33.5556}}, color={0,0,127}));
- connect(SCRX.VOTHSG, const.y) annotation (Line(points={{-68,-47.7778},{-64,-47.7778},
- {-64,-38},{-64,-37.2},{-64,-36},{-62.2,-36}}, color={0,0,127}));
- connect(generator.PMECH, HYGOV.PMECH0) annotation (Line(points={{-100.8,5.5},
- {-110,5.5},{-110,14},{-48,14},{-48,35},{-56.475,35}},color={0,0,127}));
- connect(SCRX.EFD, generator.EFD) annotation (Line(points={{-104.9,-39.7778},{
- -110,-39.7778},{-110,-7.5},{-100.8,-7.5}}, color={0,0,127}));
- connect(generator.p, GEN1.p) annotation (Line(points={{-70,-1},{-53.3,-1},{-53.3,
- 0},{-40,0}}, color={0,0,255}));
- connect(SCRX.ECOMP, generator.ETERM) annotation (Line(points={{-68,-39.7778},
- {-66,-39.7778},{-66,-4.9},{-68.6,-4.9}},color={0,0,127}));
- annotation (
- Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,-120},{
- 100,80}})),
- Icon(coordinateSystem(extent={{-100,-120},{100,80}})),
- Documentation,
- experiment(StopTime=10));
- end STABNI;
-
- model PSS2A "SMIB system with one load and GENROE model"
- extends OpenIPSL.Examples.SMIBpartial;
- OpenIPSL.Electrical.Machines.PSSE.GENROE gENROE(
- M_b=100,
- Tpd0=5,
- Tppd0=0.07,
- Tpq0=0.9,
- Tppq0=0.09,
- H=4.28,
- D=0,
- Xd=1.84,
- Xq=1.75,
- Xpd=0.41,
- Xpq=0.6,
- Xppd=0.2,
- Xl=0.12,
- S10=0.11,
- S12=0.39,
- V_0=1,
- P_0=40,
- angle_0=4.046276,
- Q_0=5.416582,
- Xppq=0.2) annotation (Placement(transformation(extent={{-100,-20},
- {-60,20}})));
- Modelica.Blocks.Sources.Constant const(k=0)
- annotation (Placement(transformation(extent={{-20,-86},{-40,-66}})));
- OpenIPSL.Electrical.Controls.PSSE.ES.ESST1A eSST1A(
- V_IMAX=0.3,
- V_IMIN=-0.3,
- T_C=2,
- T_B=10,
- T_C1=0.08,
- T_B1=0.083,
- K_A=300,
- V_AMAX=7,
- V_AMIN=-7,
- V_RMAX=5.2,
- V_RMIN=-5.2,
- K_C=0.38,
- K_F=1,
- T_F=1,
- K_LR=1,
- I_LR=0,
- T_A=0.1,
- T_R=0.1) annotation (Placement(transformation(extent={{-56,-90},
- {-108,-60}})));
- Modelica.Blocks.Sources.Constant const1(k=-Modelica.Constants.inf)
- annotation (Placement(transformation(extent={{-20,-120},{-40,-100}})));
- Modelica.Blocks.Sources.Constant const2(k=Modelica.Constants.inf)
- annotation (Placement(transformation(extent={{-18,-150},{-38,-130}})));
- OpenIPSL.Electrical.Controls.PSSE.PSS.PSS2A pSS2A(
- T_w2=5,
- T_6=0,
- T_w3=5,
- T_w4=5,
- T_7=5,
- K_S2=0.758,
- K_S3=1,
- T_8=0.12,
- T_9=0.1,
- K_S1=2,
- T_1=0.47,
- T_2=0.07,
- T_3=0.47,
- T_4=0.07,
- V_STMAX=0.1,
- V_STMIN=-0.1,
- M=5,
- N=1,
- T_w1=0) annotation (Placement(transformation(extent={{-156,-40},
- {-118,-32}})));
- equation
- connect(gENROE.PMECH, gENROE.PMECH0) annotation (Line(points={{-104,10},{-110,
- 10},{-110,26},{-48,26},{-48,10},{-58,10}}, color={0,0,127}));
- connect(eSST1A.ECOMP, gENROE.ETERM) annotation (Line(points={{-56,-73.3333},{
- -52,-73.3333},{-52,-6},{-58,-6}}, color={0,0,127}));
- connect(const1.y, eSST1A.VUEL2) annotation (Line(points={{-41,-110},{-80.713,
- -110},{-80.713,-89.9917}}, color={0,0,127}));
- connect(eSST1A.VUEL, const.y) annotation (Line(points={{-65.1,-90},{-65.1,-94},
- {-46,-94},{-46,-76},{-41,-76}}, color={0,0,127}));
- connect(eSST1A.VUEL3, eSST1A.VUEL2) annotation (Line(points={{-88.4805,-89.9958},
- {-88.4805,-110},{-80.713,-110},{-80.713,-89.9917}}, color={0,0,127}));
- connect(const2.y, eSST1A.VOEL) annotation (Line(points={{-39,-140},{-72.9,-140},
- {-72.9,-90}}, color={0,0,127}));
- connect(pSS2A.V_S2, gENROE.PELEC) annotation (Line(points={{-156,-38},{-158,-38},
- {-158,-48},{-46,-48},{-46,6},{-58,6}}, color={0,0,127}));
- connect(pSS2A.V_S1, gENROE.SPEED) annotation (Line(points={{-156,-34},{-158,-34},
- {-158,30},{-44,30},{-44,14},{-58,14}}, color={0,0,127}));
- connect(eSST1A.EFD, gENROE.EFD) annotation (Line(points={{-109.3,-73.3333},{-114,
- -73.3333},{-114,-10},{-104,-10}}, color={0,0,127}));
- connect(eSST1A.VT, gENROE.ETERM) annotation (Line(points={{-56.0325,-69.1875},
- {-52,-69.1875},{-52,-6},{-58,-6}}, color={0,0,127}));
- connect(eSST1A.EFD0, gENROE.EFD0) annotation (Line(points={{-56,-84.1667},{-50,
- -84.1667},{-50,-10},{-58,-10}}, color={0,0,127}));
- connect(eSST1A.XADIFD, gENROE.XADIFD) annotation (Line(points={{-56,-79.1667},
- {-48,-79.1667},{-48,-18},{-58.4,-18}}, color={0,0,127}));
- connect(eSST1A.VOTHSG2, pSS2A.VOTHSG) annotation (Line(points={{-56,-62.5},{-44,
- -62.5},{-44,-36},{-117.4,-36}}, color={0,0,127}));
- connect(eSST1A.VOTHSG, const.y) annotation (Line(points={{-56,-65.8333},{-46,
- -65.8333},{-46,-76},{-41,-76}}, color={0,0,127}));
- connect(gENROE.p, GEN1.p)
- annotation (Line(points={{-60,0},{-60,0},{-40,0}}, color={0,0,255}));
- annotation (
- Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{
- 100,100}})),
- Documentation,
- experiment(StopTime=10));
- end PSS2A;
-
- model IEEEST "SMIB system with one load and GENROE model"
- extends OpenIPSL.Examples.SMIBpartial;
- OpenIPSL.Electrical.Machines.PSSE.GENROE gENROE(
- M_b=100,
- Tpd0=5,
- Tppd0=0.07,
- Tpq0=0.9,
- Tppq0=0.09,
- H=4.28,
- D=0,
- Xd=1.84,
- Xq=1.75,
- Xpd=0.41,
- Xpq=0.6,
- Xppd=0.2,
- Xl=0.12,
- S10=0.11,
- S12=0.39,
- V_0=1,
- P_0=40,
- angle_0=4.046276,
- Q_0=5.416582,
- Xppq=0.2) annotation (Placement(transformation(extent={{-102,-20},
- {-62,20}})));
- Modelica.Blocks.Sources.Constant const(k=0)
- annotation (Placement(transformation(extent={{-22,-86},{-42,-66}})));
- OpenIPSL.Electrical.Controls.PSSE.ES.ESST1A eSST1A(
- V_IMAX=0.3,
- V_IMIN=-0.3,
- T_C=2,
- T_B=10,
- T_C1=0.08,
- T_B1=0.083,
- K_A=300,
- V_AMAX=7,
- V_AMIN=-7,
- V_RMAX=5.2,
- V_RMIN=-5.2,
- K_C=0.38,
- K_F=1,
- T_F=1,
- K_LR=1,
- I_LR=0,
- T_A=0.1,
- T_R=0.1) annotation (Placement(transformation(extent={{-58,-90},
- {-110,-60}})));
- Modelica.Blocks.Sources.Constant const1(k=-Modelica.Constants.inf)
- annotation (Placement(transformation(extent={{-22,-120},{-42,-100}})));
- Modelica.Blocks.Sources.Constant const2(k=Modelica.Constants.inf)
- annotation (Placement(transformation(extent={{-20,-150},{-40,-130}})));
- OpenIPSL.Electrical.Controls.PSSE.PSS.IEEEST iEEEST(
- A_1=48.7435,
- A_2=4.7488,
- A_3=0.0,
- A_4=0.0,
- A_5=-85.7761,
- A_6=0.0459,
- T_1=0.7361,
- T_2=1.5868,
- T_3=0.0,
- T_4=0.02,
- T_5=13.8921,
- T_6=0.1057,
- K_S=0.0099,
- L_SMAX=0.1,
- L_SMIN=-0.1,
- V_CU=0.0,
- V_CL=0.0) annotation (Placement(transformation(extent={{-96,-44},
- {-68,-32}})));
- equation
- connect(gENROE.PMECH, gENROE.PMECH0) annotation (Line(points={{-106,10},{-112,
- 10},{-112,26},{-50,26},{-50,10},{-60,10}}, color={0,0,127}));
- connect(eSST1A.ECOMP, gENROE.ETERM) annotation (Line(points={{-58,-73.3333},{
- -54,-73.3333},{-54,-6},{-60,-6}}, color={0,0,127}));
- connect(const1.y, eSST1A.VUEL2) annotation (Line(points={{-43,-110},{-82.713,
- -110},{-82.713,-89.9917}}, color={0,0,127}));
- connect(eSST1A.VUEL, const.y) annotation (Line(points={{-67.1,-90},{-67.1,-94},
- {-48,-94},{-48,-76},{-43,-76}}, color={0,0,127}));
- connect(eSST1A.VUEL3, eSST1A.VUEL2) annotation (Line(points={{-90.4805,-89.9958},
- {-90.4805,-110},{-82.713,-110},{-82.713,-89.9917}}, color={0,0,127}));
- connect(const2.y, eSST1A.VOEL) annotation (Line(points={{-41,-140},{-74.9,-140},
- {-74.9,-90}}, color={0,0,127}));
- connect(eSST1A.EFD, gENROE.EFD) annotation (Line(points={{-111.3,-73.3333},{-116,
- -73.3333},{-116,-10},{-106,-10}}, color={0,0,127}));
- connect(eSST1A.VT, gENROE.ETERM) annotation (Line(points={{-58.0325,-69.1875},
- {-54,-69.1875},{-54,-6},{-60,-6}}, color={0,0,127}));
- connect(eSST1A.EFD0, gENROE.EFD0) annotation (Line(points={{-58,-84.1667},{-52,
- -84.1667},{-52,-10},{-60,-10}}, color={0,0,127}));
- connect(eSST1A.XADIFD, gENROE.XADIFD) annotation (Line(points={{-58,-79.1667},
- {-50,-79.1667},{-50,-18},{-60.4,-18}}, color={0,0,127}));
- connect(iEEEST.V_CT, gENROE.ETERM) annotation (Line(points={{-95.7667,-35},{-102,
- -35},{-102,-28},{-54,-28},{-54,-6},{-60,-6}}, color={0,0,127}));
- connect(iEEEST.V_S, gENROE.PELEC) annotation (Line(points={{-95.7667,-41},{-102,
- -41},{-102,-52},{-56,-52},{-56,6},{-60,6}}, color={0,0,127}));
- connect(eSST1A.VOTHSG2, const.y) annotation (Line(points={{-58,-62.5},{-46,-62.5},
- {-46,-76},{-43,-76}}, color={0,0,127}));
- connect(iEEEST.VOTHSG, eSST1A.VOTHSG) annotation (Line(points={{-66.8333,-38},
- {-48,-38},{-48,-65.8333},{-58,-65.8333}}, color={0,0,127}));
- connect(gENROE.p, GEN1.p)
- annotation (Line(points={{-62,0},{-62,0},{-40,0}}, color={0,0,255}));
- annotation (
- Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{
- 100,100}})),
- Documentation,
- experiment(StopTime=10));
- end IEEEST;
-
- model PSS2B "SMIB system with one load and GENROE model"
- extends OpenIPSL.Examples.SMIBpartial;
- OpenIPSL.Electrical.Machines.PSSE.GENROE gENROE(
- M_b=100,
- Tpd0=5,
- Tppd0=0.07,
- Tpq0=0.9,
- Tppq0=0.09,
- H=4.28,
- D=0,
- Xd=1.84,
- Xq=1.75,
- Xpd=0.41,
- Xpq=0.6,
- Xppd=0.2,
- Xl=0.12,
- S10=0.11,
- S12=0.39,
- V_0=1,
- P_0=40,
- angle_0=4.046276,
- Q_0=5.416582,
- Xppq=0.2) annotation (Placement(transformation(extent={{-100,-20},
- {-60,20}})));
- Modelica.Blocks.Sources.Constant const(k=0)
- annotation (Placement(transformation(extent={{-20,-86},{-40,-66}})));
- OpenIPSL.Electrical.Controls.PSSE.ES.ESST1A eSST1A(
- V_IMAX=0.3,
- V_IMIN=-0.3,
- T_C=2,
- T_B=10,
- T_C1=0.08,
- T_B1=0.083,
- K_A=300,
- V_AMAX=7,
- V_AMIN=-7,
- V_RMAX=5.2,
- V_RMIN=-5.2,
- K_C=0.38,
- K_F=1,
- T_F=1,
- K_LR=1,
- I_LR=0,
- T_A=0.1,
- T_R=0.1) annotation (Placement(transformation(extent={{-56,-90},
- {-108,-60}})));
- Modelica.Blocks.Sources.Constant const1(k=-Modelica.Constants.inf)
- annotation (Placement(transformation(extent={{-20,-120},{-40,-100}})));
- Modelica.Blocks.Sources.Constant const2(k=Modelica.Constants.inf)
- annotation (Placement(transformation(extent={{-18,-150},{-38,-130}})));
- OpenIPSL.Electrical.Controls.PSSE.PSS.PSS2B pSS2B(
- T_w1=2,
- T_w2=2,
- T_6=0,
- T_w3=2,
- T_w4=0,
- T_7=2,
- K_S2=0.1564,
- K_S3=1,
- T_8=0,
- T_9=0,
- K_S1=10,
- T_1=0.25,
- T_2=0.03,
- T_3=0.15,
- T_4=0.015,
- T_10=0,
- T_11=0,
- V_S1MAX=999,
- V_S1MIN=-999,
- V_S2MAX=999,
- V_S2MIN=-999,
- V_STMAX=0.1,
- V_STMIN=-0.1,
- M=0,
- N=0) annotation (Placement(transformation(extent={{-156,-28},{-120,
- -20}})));
- equation
- connect(gENROE.PMECH, gENROE.PMECH0) annotation (Line(points={{-104,10},{-110,
- 10},{-110,26},{-48,26},{-48,10},{-58,10}}, color={0,0,127}));
- connect(eSST1A.ECOMP, gENROE.ETERM) annotation (Line(points={{-56,-73.3333},{
- -52,-73.3333},{-52,-6},{-58,-6}}, color={0,0,127}));
- connect(const1.y, eSST1A.VUEL2) annotation (Line(points={{-41,-110},{-80.713,
- -110},{-80.713,-89.9917}}, color={0,0,127}));
- connect(eSST1A.VUEL, const.y) annotation (Line(points={{-65.1,-90},{-65.1,-94},
- {-46,-94},{-46,-76},{-41,-76}}, color={0,0,127}));
- connect(eSST1A.VUEL3, eSST1A.VUEL2) annotation (Line(points={{-88.4805,-89.9958},
- {-88.4805,-110},{-80.713,-110},{-80.713,-89.9917}}, color={0,0,127}));
- connect(const2.y, eSST1A.VOEL) annotation (Line(points={{-39,-140},{-72.9,-140},
- {-72.9,-90}}, color={0,0,127}));
- connect(eSST1A.EFD, gENROE.EFD) annotation (Line(points={{-109.3,-73.3333},{-114,
- -73.3333},{-114,-10},{-104,-10}}, color={0,0,127}));
- connect(eSST1A.VT, gENROE.ETERM) annotation (Line(points={{-56.0325,-69.1875},
- {-52,-69.1875},{-52,-6},{-58,-6}}, color={0,0,127}));
- connect(eSST1A.EFD0, gENROE.EFD0) annotation (Line(points={{-56,-84.1667},{-50,
- -84.1667},{-50,-10},{-58,-10}}, color={0,0,127}));
- connect(eSST1A.XADIFD, gENROE.XADIFD) annotation (Line(points={{-56,-79.1667},
- {-48,-79.1667},{-48,-18},{-58.4,-18}}, color={0,0,127}));
- connect(eSST1A.VOTHSG, const.y) annotation (Line(points={{-56,-65.8333},{-46,
- -65.8333},{-46,-76},{-41,-76}}, color={0,0,127}));
- connect(gENROE.p, GEN1.p)
- annotation (Line(points={{-60,0},{-60,0},{-40,0}}, color={0,0,255}));
- connect(gENROE.SPEED, pSS2B.V_S1) annotation (Line(points={{-58,14},{-44,14},
- {-44,30},{-158,30},{-158,-22},{-156,-22}},color={0,0,127}));
- connect(gENROE.PELEC, pSS2B.V_S2) annotation (Line(points={{-58,6},{-46,6},{-46,
- -30},{-158,-30},{-158,-26},{-156,-26}}, color={0,0,127}));
- connect(pSS2B.VOTHSG, eSST1A.VOTHSG2) annotation (Line(points={{-119.4,-24},{
- -82,-24},{-44,-24},{-44,-62.5},{-56,-62.5}}, color={0,0,127}));
- annotation (
- Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{
- 100,100}})),
- Documentation,
- experiment(StopTime=10));
- end PSS2B;
- annotation (Documentation);
- end PSS;
- annotation (Documentation);
- end PSSE;
-
- package PSAT
- extends Modelica.Icons.ExamplesPackage;
-
- package AVR
- extends Modelica.Icons.ExamplesPackage;
-
- model AVRTypeI_Test
- extends Modelica.Icons.Example;
- OpenIPSL.Electrical.Machines.PSAT.Order6 order6Type2_Inputs_Outputs(
- V_0=1,
- angle_0=0,
- V_b=200,
- Sn=370,
- Vn=200,
- ra=0.001,
- x1d=0.302,
- M=10,
- D=0,
- P_0=16.0352698692006,
- Q_0=11.859436505981) annotation (Placement(transformation(
- extent={{-86,-10},{-50,26}})));
- inner OpenIPSL.Electrical.SystemBase SysData annotation (
- Placement(transformation(extent={{58,78},{82,98}})));
- Electrical.Branches.PwLine pwLine1(
- X=0.1,
- R=0.01,
- G=0,
- B=0.0005) annotation (Placement(visible=true, transformation(
- origin={0,2},
- extent={{-6,-6},{6,6}},
- rotation=0)));
- Electrical.Branches.PwLine pwLinewithOpening1(
- G=0,
- R=0.01,
- X=0.1,
- opening=1,
- B=0.0005,
- t1=2,
- t2=2.15) annotation (Placement(visible=true, transformation(
- origin={40,22},
- extent={{-6,-6},{6,6}},
- rotation=0)));
- Electrical.Branches.PwLine pwLine2(
- G=0,
- R=0.01,
- X=0.1,
- B=0.0005) annotation (Placement(visible=true, transformation(
- origin={0,16},
- extent={{-6,-6},{6,6}},
- rotation=0)));
- Electrical.Branches.PwLine pwLine3(
- G=0,
- R=0.01,
- X=0.1,
- B=0.0005) annotation (Placement(visible=true, transformation(
- origin={42,-6},
- extent={{-6,-6},{6,6}},
- rotation=0)));
- Electrical.Branches.PwLine pwLine4(
- G=0,
- R=0.01,
- X=0.1,
- B=0.0005) annotation (Placement(visible=true, transformation(
- origin={40,40},
- extent={{-5.99999,-5.99998},{5.99999,6}},
- rotation=0)));
- Electrical.Loads.PSAT.LOADPQ pwLoadPQ1(
- P_0=8,
- Q_0=6,
- V_0=1,
- angle_0=0) annotation (Placement(visible=true, transformation(
- origin={74,32},
- extent={{-6,-6},{6,6}},
- rotation=90)));
- Electrical.Loads.PSAT.LOADPQ pwLoadPQ2(
- P_0=8,
- Q_0=6,
- V_0=1,
- angle_0=0) annotation (Placement(visible=true, transformation(
- origin={74.034,-6.2889},
- extent={{-6.2889,-6.0335},{6.2889,6.0335}},
- rotation=90)));
- Electrical.Buses.Bus bus
- annotation (Placement(transformation(extent={{-30,-2},{-10,18}})));
- Electrical.Buses.Bus bus1
- annotation (Placement(transformation(extent={{10,-2},{30,18}})));
- Electrical.Buses.Bus bus2
- annotation (Placement(transformation(extent={{50,22},{70,42}})));
- Electrical.Buses.Bus bus3
- annotation (Placement(transformation(extent={{50,-16},{70,4}})));
- Electrical.Controls.PSAT.AVR.AVRTypeI aVRI
- annotation (Placement(transformation(extent={{-72,36},{-92,54}})));
- Modelica.Blocks.Sources.Ramp ramp(
- duration=20,
- startTime=1,
- height=-0.1) annotation (Placement(transformation(
- extent={{6,-6},{-6,6}},
- rotation=0,
- origin={-34,48})));
- Modelica.Blocks.Math.Add add
- annotation (Placement(transformation(extent={{-50,46},{-60,56}})));
- equation
-
- connect(pwLine2.p, pwLine1.p) annotation (Line(points={{-5.4,16},{-14,16},{-14,
- 2},{-5.4,2}}, color={0,0,255}));
- connect(pwLine2.n, pwLine1.n) annotation (Line(points={{5.4,16},{14,16},{14,2},
- {5.4,2}}, color={0,0,255}));
- connect(pwLine4.p, pwLinewithOpening1.p) annotation (Line(points={{34.6,40},{
- 28,40},{28,22},{34.6,22}}, color={0,0,255}));
- connect(pwLine4.n, pwLinewithOpening1.n) annotation (Line(points={{45.4,40},{
- 52,40},{52,22},{45.4,22}}, color={0,0,255}));
- connect(bus.p, pwLine1.p) annotation (Line(points={{-20,8},{-14,8},{-14,2},{-5.4,
- 2}}, color={0,0,255}));
- connect(bus1.p, pwLine1.n)
- annotation (Line(points={{20,8},{14,8},{14,2},{5.4,2}}, color={0,0,255}));
- connect(bus1.p, pwLinewithOpening1.p) annotation (Line(points={{20,8},{24,8},
- {24,28},{28,28},{28,22},{34.6,22}},color={0,0,255}));
- connect(pwLine3.p, pwLinewithOpening1.p) annotation (Line(points={{36.6,-6},{
- 24,-6},{24,28},{28,28},{28,22},{34.6,22}}, color={0,0,255}));
- connect(bus2.p, pwLoadPQ1.p)
- annotation (Line(points={{60,32},{68,32}}, color={0,0,255}));
- connect(bus2.p, pwLinewithOpening1.n) annotation (Line(points={{60,32},{52,32},
- {52,22},{45.4,22}}, color={0,0,255}));
- connect(bus3.p, pwLoadPQ2.p) annotation (Line(points={{60,-6},{68.0005,-6},{
- 68.0005,-6.2889}}, color={0,0,255}));
- connect(pwLine3.n, bus3.p)
- annotation (Line(points={{47.4,-6},{60,-6}}, color={0,0,255}));
- connect(bus.p, order6Type2_Inputs_Outputs.p)
- annotation (Line(points={{-20,8},{-50,8}}, color={0,0,255}));
- connect(aVRI.vf, order6Type2_Inputs_Outputs.vf) annotation (Line(points={{-94,
- 45},{-96,45},{-96,17},{-89.6,17}}, color={0,0,127}));
- connect(aVRI.v, order6Type2_Inputs_Outputs.v) annotation (Line(points={{-70,
- 39.6},{-44,39.6},{-44,13.4},{-48.2,13.4}}, color={0,0,127}));
- connect(aVRI.vf0, order6Type2_Inputs_Outputs.vf0) annotation (Line(points={{-82,
- 34.2},{-82,27.8},{-82.4,27.8}}, color={0,0,127}));
- connect(aVRI.vref0, add.u1) annotation (Line(points={{-82,55.8},{-82,62},{-49,
- 62},{-49,54}}, color={0,0,127}));
- connect(ramp.y, add.u2) annotation (Line(points={{-40.6,48},{-43.25,48},{-49,
- 48}}, color={0,0,127}));
- connect(add.y, aVRI.vref) annotation (Line(points={{-60.5,51},{-65.25,51},{-65.25,
- 50.4},{-70,50.4}}, color={0,0,127}));
- connect(order6Type2_Inputs_Outputs.pm, order6Type2_Inputs_Outputs.pm0)
- annotation (Line(points={{-89.6,-1},{-96,-1},{-96,-16},{-82.4,-16},{-82.4,-11.8}},
- color={0,0,127}));
- annotation (
- Diagram(coordinateSystem(extent={{-100,-100},{100,100}},
- preserveAspectRatio=false)),
- Icon(coordinateSystem(extent={{-100,-100},{100,100}})),
- Documentation,
- experiment(StopTime=60),
- __Dymola_experimentSetupOutput);
- end AVRTypeI_Test;
-
- model AVRTypeII_Test
- extends Modelica.Icons.Example;
- OpenIPSL.Electrical.Machines.PSAT.Order6 order6Type2_Inputs_Outputs(
- V_0=1,
- angle_0=0,
- V_b=200,
- Sn=370,
- Vn=200,
- ra=0.001,
- x1d=0.302,
- M=10,
- D=0,
- P_0=16.0352698692006,
- Q_0=11.859436505981) annotation (Placement(transformation(
- extent={{-86,-10},{-50,26}})));
- inner OpenIPSL.Electrical.SystemBase SysData annotation (
- Placement(transformation(extent={{58,78},{82,98}})));
- Electrical.Branches.PwLine pwLine1(
- X=0.1,
- R=0.01,
- G=0,
- B=0.0005) annotation (Placement(visible=true, transformation(
- origin={0,2},
- extent={{-6,-6},{6,6}},
- rotation=0)));
- Electrical.Branches.PwLine pwLinewithOpening1(
- G=0,
- R=0.01,
- X=0.1,
- opening=1,
- B=0.0005,
- t1=2,
- t2=2.15) annotation (Placement(visible=true, transformation(
- origin={40,22},
- extent={{-6,-6},{6,6}},
- rotation=0)));
- Electrical.Branches.PwLine pwLine2(
- G=0,
- R=0.01,
- X=0.1,
- B=0.0005) annotation (Placement(visible=true, transformation(
- origin={0,16},
- extent={{-6,-6},{6,6}},
- rotation=0)));
- Electrical.Branches.PwLine pwLine3(
- G=0,
- R=0.01,
- X=0.1,
- B=0.0005) annotation (Placement(visible=true, transformation(
- origin={42,-6},
- extent={{-6,-6},{6,6}},
- rotation=0)));
- Electrical.Branches.PwLine pwLine4(
- G=0,
- R=0.01,
- X=0.1,
- B=0.0005) annotation (Placement(visible=true, transformation(
- origin={40,40},
- extent={{-5.99999,-5.99998},{5.99999,6}},
- rotation=0)));
- Electrical.Loads.PSAT.LOADPQ pwLoadPQ1(
- P_0=8,
- Q_0=6,
- V_0=1,
- angle_0=0) annotation (Placement(visible=true, transformation(
- origin={74,32},
- extent={{-6,-6},{6,6}},
- rotation=90)));
- Electrical.Loads.PSAT.LOADPQ pwLoadPQ2(
- P_0=8,
- Q_0=6,
- V_0=1,
- angle_0=0) annotation (Placement(visible=true, transformation(
- origin={74.034,-6.2889},
- extent={{-6.2889,-6.0335},{6.2889,6.0335}},
- rotation=90)));
- Electrical.Buses.Bus bus
- annotation (Placement(transformation(extent={{-30,-2},{-10,18}})));
- Electrical.Buses.Bus bus1
- annotation (Placement(transformation(extent={{10,-2},{30,18}})));
- Electrical.Buses.Bus bus2
- annotation (Placement(transformation(extent={{50,22},{70,42}})));
- Electrical.Buses.Bus bus3
- annotation (Placement(transformation(extent={{50,-16},{70,4}})));
- Electrical.Controls.PSAT.AVR.AVRTypeII aVRI
- annotation (Placement(transformation(extent={{-72,36},{-92,54}})));
- Modelica.Blocks.Sources.Ramp ramp(
- duration=20,
- startTime=1,
- height=-0.1) annotation (Placement(transformation(
- extent={{6,-6},{-6,6}},
- rotation=0,
- origin={-34,48})));
- Modelica.Blocks.Math.Add add
- annotation (Placement(transformation(extent={{-50,46},{-60,56}})));
- equation
-
- connect(pwLine2.p, pwLine1.p) annotation (Line(points={{-5.4,16},{-14,16},{-14,
- 2},{-5.4,2}}, color={0,0,255}));
- connect(pwLine2.n, pwLine1.n) annotation (Line(points={{5.4,16},{14,16},{14,2},
- {5.4,2}}, color={0,0,255}));
- connect(pwLine4.p, pwLinewithOpening1.p) annotation (Line(points={{34.6,40},{
- 28,40},{28,22},{34.6,22}}, color={0,0,255}));
- connect(pwLine4.n, pwLinewithOpening1.n) annotation (Line(points={{45.4,40},{
- 52,40},{52,22},{45.4,22}}, color={0,0,255}));
- connect(bus.p, pwLine1.p) annotation (Line(points={{-20,8},{-14,8},{-14,2},{-5.4,
- 2}}, color={0,0,255}));
- connect(bus1.p, pwLine1.n)
- annotation (Line(points={{20,8},{14,8},{14,2},{5.4,2}}, color={0,0,255}));
- connect(bus1.p, pwLinewithOpening1.p) annotation (Line(points={{20,8},{24,8},
- {24,28},{28,28},{28,22},{34.6,22}},color={0,0,255}));
- connect(pwLine3.p, pwLinewithOpening1.p) annotation (Line(points={{36.6,-6},{
- 24,-6},{24,28},{28,28},{28,22},{34.6,22}}, color={0,0,255}));
- connect(bus2.p, pwLoadPQ1.p)
- annotation (Line(points={{60,32},{68,32}}, color={0,0,255}));
- connect(bus2.p, pwLinewithOpening1.n) annotation (Line(points={{60,32},{52,32},
- {52,22},{45.4,22}}, color={0,0,255}));
- connect(bus3.p, pwLoadPQ2.p) annotation (Line(points={{60,-6},{68.0005,-6},{
- 68.0005,-6.2889}}, color={0,0,255}));
- connect(pwLine3.n, bus3.p)
- annotation (Line(points={{47.4,-6},{60,-6}}, color={0,0,255}));
- connect(bus.p, order6Type2_Inputs_Outputs.p)
- annotation (Line(points={{-20,8},{-50,8}}, color={0,0,255}));
- connect(aVRI.vf, order6Type2_Inputs_Outputs.vf) annotation (Line(points={{-94,
- 45},{-96,45},{-96,17},{-89.6,17}}, color={0,0,127}));
- connect(aVRI.v, order6Type2_Inputs_Outputs.v) annotation (Line(points={{-70,
- 39.6},{-44,39.6},{-44,13.4},{-48.2,13.4}}, color={0,0,127}));
- connect(aVRI.vf0, order6Type2_Inputs_Outputs.vf0) annotation (Line(points={{-82,
- 34.2},{-82,27.8},{-82.4,27.8}}, color={0,0,127}));
- connect(aVRI.vref0, add.u1) annotation (Line(points={{-82,55.8},{-82,62},{-49,
- 62},{-49,54}}, color={0,0,127}));
- connect(ramp.y, add.u2) annotation (Line(points={{-40.6,48},{-40.6,48},{-49,
- 48}}, color={0,0,127}));
- connect(add.y, aVRI.vref) annotation (Line(points={{-60.5,51},{-65.25,51},{-65.25,
- 50.4},{-70,50.4}}, color={0,0,127}));
- connect(order6Type2_Inputs_Outputs.pm, order6Type2_Inputs_Outputs.pm0)
- annotation (Line(points={{-89.6,-1},{-96,-1},{-96,-16},{-82.4,-16},{-82.4,-11.8}},
- color={0,0,127}));
- annotation (
- Diagram(coordinateSystem(extent={{-100,-100},{100,100}},
- preserveAspectRatio=false)),
- Icon(coordinateSystem(extent={{-100,-100},{100,100}})),
- Documentation,
- experiment(StopTime=60),
- __Dymola_experimentSetupOutput);
- end AVRTypeII_Test;
- annotation (Documentation);
- end AVR;
-
- package OEL
- extends Modelica.Icons.ExamplesPackage;
-
- model AVRTypeII_OEL_Test
- extends OpenIPSL.Examples.BaseTest(
- pwLoadPQ2(
- t_start_1=1,
- t_end_1=21,
- dQ1=3.2,
- forcePQ=true),
- pwLinewithOpening1(t1=100, t2=100),
- pwLoadPQ1(forcePQ=false));
- extends Modelica.Icons.Example;
- Electrical.Machines.PSAT.Order4 order4(
- V_0=1,
- angle_0=0,
- ra=0.001,
- x1d=0.302,
- M=10,
- D=0,
- P_0=16.0352698692006,
- Q_0=11.859436505981,
- Sn=20,
- Vn=370,
- V_b=400) annotation (Placement(transformation(extent={{-45,-10},{-25,10}})));
- Electrical.Controls.PSAT.AVR.AVRTypeII exciter_Type_II(
- vrmin=-5,
- vrmax=5,
- Ta=0.1,
- Te=1,
- Tr=0.001,
- Ae=0.0006,
- Be=0.9,
- Kf=0.45,
- Tf=1,
- Ka=400,
- Ke=0.01) annotation (Placement(transformation(extent={{-70,18},{-90,38}})));
- Electrical.Controls.PSAT.OEL.OEL oXL(
- vOEL_max=0.05,
- T0=5,
- xd=order4.xd,
- xq=order4.xq,
- Sn=order4.Sn,
- Vn=order4.Vn,
- if_lim=3.07)
- annotation (Placement(transformation(extent={{-18,24},{-38,44}})));
- equation
- connect(order4.pm0, order4.pm) annotation (Line(points={{-43,-11},{-43,-16},{
- -60,-16},{-60,-5},{-47,-5}}, color={0,0,127}));
- connect(order4.p, bus.p)
- annotation (Line(points={{-25,0},{-25,0},{0,0}}, color={0,0,255}));
- connect(order4.vf, exciter_Type_II.vf) annotation (Line(points={{-47,5},{-96.75,
- 5},{-96.75,28},{-92,28}}, color={0,0,127}));
- connect(exciter_Type_II.vf0, order4.vf0) annotation (Line(points={{-80,16},{-80,
- 16},{-80,11},{-43,11}}, color={0,0,127}));
- connect(exciter_Type_II.vref0, oXL.v_ref0) annotation (Line(points={{-80,40},
- {-80,40},{-80,72},{-27.8,72},{-27.8,45.2}},color={0,0,127}));
- connect(oXL.v, order4.v) annotation (Line(points={{-18.8,40},{-12,40},{-12,3},
- {-24,3}}, color={0,0,127}));
- connect(order4.P, oXL.p) annotation (Line(points={{-24,-3},{-14,-3},{-14,36},
- {-18.8,36}},color={0,0,127}));
- connect(order4.Q, oXL.q) annotation (Line(points={{-24,-7},{-16,-7},{-16,32},
- {-18.8,32}},color={0,0,127}));
- connect(exciter_Type_II.v, order4.v) annotation (Line(points={{-68,22},{-20,
- 22},{-20,3},{-24,3}}, color={0,0,127}));
- connect(oXL.v_ref, exciter_Type_II.vref)
- annotation (Line(points={{-38.4,34},{-54,34},{-68,34}}, color={0,0,127}));
- annotation (
- Documentation,
- Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{
- 100,100}})),
- experiment(StopTime=50),
- __Dymola_experimentSetupOutput);
- end AVRTypeII_OEL_Test;
- annotation (Documentation);
- end OEL;
-
- package TG
- extends Modelica.Icons.ExamplesPackage;
-
- model TGTypeI_test
- extends TGTestBase;
- extends Modelica.Icons.Example;
- parameter Real p0=0.160352698692006 "Power flow, node active power";
- OpenIPSL.Electrical.Controls.PSAT.TG.TGTypeI tGTypeI(
- wref=1,
- pref=p0,
- R=0.2,
- pmax=1,
- pmin=0,
- Ts=0.1,
- Tc=1,
- T3=0.04,
- T4=5,
- T5=0.04) annotation (Placement(transformation(extent={{-68,-24},
- {-40,4}})));
- equation
-
- connect(tGTypeI.pm, gen.pm) annotation (Line(points={{-38.6,-10},{-24,-10}}, color={0,0,127}));
- connect(tGTypeI.w, gen.w) annotation (Line(points={{-70.8,-10},{-80,-10},{-80,40},{30,40},{30,18},{22,18}}, color={0,0,127}));
- annotation (experiment(StopTime=10));
- end TGTypeI_test;
-
- model TGTypeII_test
- extends TGTestBase;
- extends Modelica.Icons.Example;
- Electrical.Controls.PSAT.TG.TGtypeII tGtypeII(S_b=SysData.S_b)
- annotation (Placement(transformation(extent={{-68,-24},{-40,4}})));
- equation
- connect(tGtypeII.pm, gen.pm) annotation (Line(points={{-38.6,-10},{-24,-10}}, color={0,0,127}));
- connect(tGtypeII.w, gen.w) annotation (Line(points={{-70.8,-10},{-80,-10},{-80,40},{30,40},{30,18},{22,18}}, color={0,0,127}));
- connect(tGtypeII.pm0, gen.pm0) annotation (Line(points={{-54,6.8},{-54,20},{-90,20},{-90,-32},{-16,-32},{-16,-22}}, color={0,0,127}));
- annotation (experiment(StopTime=10));
- end TGTypeII_test;
-
- model TGTypeIII_test
- extends Modelica.Icons.Example;
- extends TGTestBase;
- OpenIPSL.Electrical.Controls.PSAT.TG.TGTypeIII tGTypeIII(
- Tg=0.2,
- Tp=0.04,
- delta=0.3,
- sigma=0.04,
- Tr=5,
- vmin=-0.1,
- vmax=0.1,
- gmax=1,
- gmin=0,
- Tw=1,
- a11=0.5,
- a13=1,
- a21=1.5,
- a23=1,
- int3=2.712336,
- P_0=0.1) annotation (Placement(transformation(extent={{-68,-24},
- {-40,4}})));
- equation
-
- connect(tGTypeIII.pm, gen.pm) annotation (Line(points={{-38.6,-10},{-24,-10}}, color={0,0,127}));
- connect(tGTypeIII.w, gen.w) annotation (Line(points={{-70.8,-10},{-80,-10},{-80,40},{30,40},{30,18},{22,18}}, color={0,0,127}));
- annotation (Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,
- -100},{100,100}})), Documentation,
- experiment(StopTime=10));
- end TGTypeIII_test;
-
- model TGTypeIV_test
- extends TGTestBase;
- extends Modelica.Icons.Example;
- OpenIPSL.Electrical.Controls.PSAT.TG.TGTypeIV tGTypeIV(
- Ki=0.105,
- Tg=0.2,
- Tp=0.04,
- delta=0.3,
- sigma=0.05,
- Tr=5,
- vmin=-0.1,
- vmax=0.1,
- gmax=1,
- gmin=0,
- Tw=1,
- a11=0.5,
- a13=1,
- a21=1.5,
- a23=1,
- Kp=1.163,
- Pref=0.080199,
- wref=1) annotation (Placement(transformation(extent={{-68,-24},
- {-40,4}})));
- equation
-
- connect(tGTypeIV.Pm, gen.pm) annotation (Line(points={{-38.6,-10},{-24,-10}}, color={0,0,127}));
- connect(tGTypeIV.w, gen.w) annotation (Line(points={{-70.8,-10},{-80,-10},{-80,40},{30,40},{30,18},{22,18}}, color={0,0,127}));
- annotation (Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,
- -100},{100,100}})), Documentation,
- experiment(StopTime=10));
- end TGTypeIV_test;
-
- model TGTypeV_test
- extends TGTestBase;
- extends Modelica.Icons.Example;
- OpenIPSL.Electrical.Controls.PSAT.TG.TGTypeV tGTypeV(
- Ki=0.5,
- Kp=3.0,
- Tg=0.2,
- Tp=0.05,
- sigma=0.04,
- vmin=-0.1,
- vmax=0.1,
- gmax=1,
- gmin=0,
- Tw=1,
- Pref=0.160552) annotation (Placement(transformation(extent={{-68,
- -24},{-40,4}})));
- Modelica.Blocks.Sources.Sine sine2(
- amplitude=0.001,
- freqHz=0.2,
- offset=1,
- startTime=5) annotation (Placement(transformation(
- extent={{-6,6},{6,-6}},
- rotation=180,
- origin={-26,-60})));
- Modelica.Blocks.Sources.Sine sine1(
- amplitude=-0.001,
- freqHz=0.2,
- startTime=10,
- offset=0) annotation (Placement(transformation(
- extent={{6,-6},{-6,6}},
- rotation=0,
- origin={-26,-40})));
- Modelica.Blocks.Math.Add pertubation annotation (Placement(transformation(
- extent={{-10,10},{10,-10}},
- rotation=180,
- origin={-60,-50})));
- equation
-
- connect(sine2.y, pertubation.u1) annotation (Line(
- points={{-32.6,-60},{-40,-60},{-40,-44},{-48,-44}},
- color={0,0,127},
- smooth=Smooth.None));
-
- connect(sine1.y, pertubation.u2) annotation (Line(
- points={{-32.6,-40},{-40,-40},{-40,-56},{-48,-56}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(pertubation.y, tGTypeV.wref) annotation (Line(
- points={{-71,-50},{-80,-50},{-80,-18.4},{-70.8,-18.4}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(tGTypeV.Pm, gen.pm) annotation (Line(points={{-38.6,-10},{-24,-10}}, color={0,0,127}));
- connect(tGTypeV.pref, gen.pm0) annotation (Line(points={{-70.8,-1.6},{-90,-1.6},{-90,-30},{-16,-30},{-16,-22}}, color={0,0,127}));
- connect(tGTypeV.w, gen.w) annotation (Line(points={{-70.8,-10},{-80,-10},{-80,40},{30,40},{30,18},{22,18}}, color={0,0,127}));
- annotation (Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,
- -100},{100,100}}), graphics={Text(
- extent={{-14,-46},{60,-58}},
- lineColor={0,0,255},
- textString="Wref perturbation with sine signal 5-10s")}),
- Documentation);
- end TGTypeV_test;
-
- model TGTypeVI_test
- extends TGTestBase;
- extends Modelica.Icons.Example;
- OpenIPSL.Electrical.Controls.PSAT.TG.TGTypeVI tGTypeVI(
- Ka=3.33333,
- Ta=0.07,
- vmin=-0.1,
- vmax=0.1,
- gmax=0.97518,
- gmin=0.01,
- Rp=0.05,
- Kp=1.163,
- Ki=0.105,
- Kd=0,
- Td=0.01,
- beta=0.1,
- Tw=2.67,
- dref=0,
- po=0.16074) annotation (Placement(transformation(extent={{-68,-24},
- {-40,4}})));
- Modelica.Blocks.Sources.Sine sine2(
- freqHz=0.2,
- startTime=10,
- amplitude=-0.001,
- offset=0) annotation (Placement(visible=true, transformation(
- origin={-26,-60},
- extent={{6,-6},{-6,6}},
- rotation=0)));
- Modelica.Blocks.Math.Add Perturbation(k2=+1) annotation (Placement(visible=
- true, transformation(
- origin={-60,-50},
- extent={{9.99996,-9.99996},{-10,10}},
- rotation=0)));
- Modelica.Blocks.Sources.Sine sine1(
- freqHz=0.2,
- startTime=5,
- amplitude=0.001,
- offset=1) annotation (Placement(visible=true, transformation(
- origin={-26,-40},
- extent={{6.00002,-6.00001},{-6,6.00001}},
- rotation=0)));
- equation
-
- connect(sine1.y, Perturbation.u1) annotation (Line(
- points={{-32.6,-40},{-39.6999,-40},{-39.6999,-44},{-48,-44}},
- color={0,0,127},
- smooth=Smooth.None));
-
- connect(tGTypeVI.Pm, gen.pm) annotation (Line(points={{-38.6,-10},{-24,-10}}, color={0,0,127}));
- connect(Perturbation.u2,sine2. y) annotation (Line(points={{-48,-56},{-40,-56},{-40,-60},{-32.6,-60}}, color={0,0,127}));
- connect(Perturbation.y, tGTypeVI.wref) annotation (Line(points={{-71,-50},{-88,-50},{-88,1.2},{-70.8,1.2}}, color={0,0,127}));
- connect(gen.pm0, tGTypeVI.pref) annotation (Line(points={{-16,-22},{-16,-28},{-80,-28},{-80,-21.2},{-70.8,-21.2}}, color={0,0,127}));
- connect(gen.P, tGTypeVI.pe) annotation (Line(points={{22,-6},{32,-6},{32,-30},{-84,-30},{-84,-14.2},{-70.8,-14.2}}, color={0,0,127}));
- connect(gen.w, tGTypeVI.we) annotation (Line(points={{22,18},{30,18},{30,40},{-80,40},{-80,-5.8},{-70.8,-5.8}}, color={0,0,127}));
- annotation (
- Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{
- 100,100}}), graphics={ Text(
- extent={{-14,-46},{60,-58}},
- lineColor={0,0,255},
- textString="Wref perturbation with sine signal 5-10s")}),
- Icon(coordinateSystem(extent={{-100,-100},{100,100}})),
- Documentation,
- experiment(StopTime=10));
- end TGTypeVI_test;
-
- partial model TGTestBase
- OpenIPSL.Electrical.Loads.PSAT.LOADPQ pwLoadPQ1(
- P_0=0.08,
- Q_0=0.06,
- V_0=1,
- angle_0=0) annotation (Placement(visible=true, transformation(
- origin={90.0709,0},
- extent={{-5.92912,-6.00002},{5.92911,6.00001}},
- rotation=0)));
- OpenIPSL.Electrical.Branches.PwLine pwLineFault(
- B=0.001/2,
- G=0,
- R=0.01,
- X=0.1,
- t1=8,
- t2=8.1) annotation (Placement(visible=true, transformation(
- origin={70,30},
- extent={{-10,-10},{10,10}},
- rotation=0)));
- OpenIPSL.Electrical.Branches.PwLine pwLine3(
- B=0.001/2,
- G=0,
- R=0.01,
- X=0.1) annotation (Placement(visible=true, transformation(
- origin={70,10},
- extent={{-10,-10},{10,10}},
- rotation=0)));
- OpenIPSL.Electrical.Branches.PwLine pwLine4(
- B=0.001/2,
- G=0,
- R=0.01,
- X=0.1) annotation (Placement(visible=true, transformation(
- origin={70,-10},
- extent={{-10,-10},{10,10}},
- rotation=0)));
- OpenIPSL.Electrical.Loads.PSAT.LOADPQ pwLoadPQ2(
- P_0=0.08,
- Q_0=0.06,
- V_0=1,
- angle_0=0) annotation (Placement(visible=true, transformation(
- origin={90,-26},
- extent={{-6,-6},{6,6}},
- rotation=0)));
- OpenIPSL.Electrical.Branches.PwLine pwLine1(
- B=0.001/2,
- G=0,
- R=0.01,
- X=0.1,
- displayPF=false) annotation (Placement(visible=true,
- transformation(
- origin={46,10},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- OpenIPSL.Electrical.Branches.PwLine pwLine2(
- B=0.001/2,
- G=0,
- R=0.01,
- X=0.1) annotation (Placement(visible=true, transformation(
- origin={46,-10},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- OpenIPSL.Electrical.Events.PwFaultPQ pwFault(
- X=0.001,
- t1=3,
- t2=3.1,
- R=10) annotation (Placement(transformation(extent={{76,-36},{64,
- -24}})));
- parameter Real p0=0.160352698692006 "Power flow, node active power";
- inner OpenIPSL.Electrical.SystemBase SysData annotation (
- Placement(transformation(extent={{-100,80},{-60,100}})));
- Electrical.Machines.PSAT.Order3 gen(
- P_0=0.16041,
- Q_0=0.12012,
- V_b=400,
- V_0=1,
- angle_0=0,
- Sn=20,
- Vn=400,
- ra=0.001,
- x1d=0.302,
- M=10,
- D=0,
- xd=1.9,
- T1d0=8,
- xq=1.7) annotation (Placement(visible=true, transformation(
- origin={0,0},
- extent={{-20,-20},{20,20}},
- rotation=0)));
- equation
- connect(pwLine1.n, pwLine3.p) annotation (Line(
- points={{55,10},{61,10}},
- color={0,0,255},
- smooth=Smooth.None));
- connect(pwLine2.n,pwLine4. p) annotation (Line(
- points={{55,-10},{61,-10}},
- color={0,0,255},
- smooth=Smooth.None));
-
- connect(pwLine3.p, pwLineFault.p) annotation (Line(points={{61,10},{61,30}}, color={0,0,255}));
- connect(pwLineFault.n, pwLine3.n) annotation (Line(points={{79,30},{79,10}}, color={0,0,255}));
- connect(pwFault.p, pwLine4.n) annotation (Line(points={{77,-30},{79,-30},{79,-10}}, color={0,0,255}));
- connect(pwLoadPQ2.p, pwLine4.n) annotation (Line(points={{90,-20},{90,-10},{79,-10}}, color={0,0,255}));
- connect(pwLoadPQ1.p, pwLine3.n) annotation (Line(points={{90.0709,6},{90,6},{90,10},{79,10}}, color={0,0,255}));
- connect(pwLine1.n, pwLine2.n) annotation (Line(points={{55,10},{55,10},{55,-10}}, color={0,0,255}));
- connect(gen.vf0, gen.vf) annotation (Line(points={{-16,22},{-16,28},{-32,28},{-32,10},{-24,10}}, color={0,0,127}));
- connect(gen.p, pwLine1.p) annotation (Line(points={{20,0},{37,0},{37,10}}, color={0,0,255}));
- connect(gen.p, pwLine2.p) annotation (Line(points={{20,0},{37,0},{37,-10}}, color={0,0,255}));
- annotation (
- Diagram(coordinateSystem(extent={{-100,-100},{100,100}},
- preserveAspectRatio=false)),
- Icon(coordinateSystem(extent={{-100,-100},{100,100}})),
- Documentation);
- end TGTestBase;
- annotation (Documentation);
- end TG;
- annotation (Documentation);
- end PSAT;
-
- package CGMES
- package ES
- model ExcSEXS "SMIB model example of GENROU with Excitation System ExcSEXS"
- extends OpenIPSL.Examples.SMIBpartial;
- Modelica.Blocks.Sources.Constant const2(k=0)
- annotation (Placement(transformation(extent={{-110,166},{-94,182}})));
- OpenIPSL.Electrical.Machines.PSSE.GENROU gENROE(
- M_b=100,
- Tpd0=5,
- Tppd0=0.07,
- Tpq0=0.9,
- Tppq0=0.09,
- D=0,
- Xd=1.84,
- Xq=1.75,
- Xpd=0.41,
- Xpq=0.6,
- Xppd=0.2,
- Xl=0.12,
- S10=0.11,
- S12=0.39,
- V_0=1,
- P_0=40,
- angle_0=4.046276,
- Q_0=5.416582,
- Xppq=0.2,
- R_a=0,
- Xpp=0.2,
- H=4.28) annotation (Placement(transformation(extent={{-110,-20},
- {-70,20}})));
- Electrical.Controls.CGMES.ES.ExcSEXS sEXS(
- T_AT_B=0.1,
- T_B=1,
- K=100,
- T_E=0.1,
- E_MIN=-10,
- E_MAX=10,
- K_C=0.08,
- EFD_MAX=5,
- EFD_MIN=-5,
- T_C=1) annotation (Placement(transformation(extent={{-70,-54},{-108,-26}})));
- Modelica.Blocks.Sources.Constant const(k=0) annotation (Placement(
- transformation(
- extent={{4,-4},{-4,4}},
- rotation=0,
- origin={-50,-40})));
- equation
- connect(gENROE.PMECH, gENROE.PMECH0) annotation (Line(points={{-114,10},{-114,
- 10},{-114,26},{-60,26},{-60,10},{-68,10}}, color={0,0,127}));
- connect(gENROE.EFD0, sEXS.EFD0) annotation (Line(points={{-68,-10},{-60,-10},{-60,-48.5556},{-70,-48.5556}},
- color={0,0,127}));
- connect(gENROE.ETERM, sEXS.ECOMP) annotation (Line(points={{-68,-6},{-64,-6},{-64,-38.4444},{-70,-38.4444}},
- color={0,0,127}));
- connect(sEXS.VOEL, const.y) annotation (Line(points={{-82.35,-54},{-68,-54},{
- -68,-40},{-54.4,-40}}, color={0,0,127}));
- connect(sEXS.VOTHSG, const.y) annotation (Line(points={{-70,-31.4444},{-64,-31.4444},{-64,-40},{-54.4,-40}},
- color={0,0,127}));
- connect(sEXS.VUEL, const.y) annotation (Line(points={{-76.65,-54},{-64,-54},{
- -64,-40},{-54.4,-40}}, color={0,0,127}));
- connect(sEXS.EFD, gENROE.EFD) annotation (Line(points={{-108.95,-38.4444},{-114,-38.4444},{-114,-10},{-114,-10}},
- color={0,0,127}));
- connect(gENROE.p, GEN1.p)
- annotation (Line(points={{-70,0},{-40,0},{-40,0}}, color={0,0,255}));
- connect(gENROE.XADIFD, sEXS.XADIFD) annotation (Line(points={{-68.4,-18},{-62,-18},{-62,-60},{-97.55,-60},{-97.55,-53.6889}}, color={0,0,127}));
- annotation (
- Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-120,-100},{
- 120,100}})),
- Documentation,
- Icon(coordinateSystem(extent={{-120,-100},{120,100}})),
- experiment(StopTime=10));
- end ExcSEXS;
- annotation (Icon(graphics={Rectangle(
- lineColor={200,200,200},
- fillColor={248,248,248},
- fillPattern=FillPattern.HorizontalCylinder,
- extent={{-100,-100},{100,100}},
- radius=25.0),Polygon(
- origin={18,24},
- lineColor={78,138,73},
- fillColor={78,138,73},
- pattern=LinePattern.None,
- fillPattern=FillPattern.Solid,
- points={{-58.0,46.0},{42.0,-14.0},{-58.0,-74.0},{-58.0,46.0}})}),
- Documentation);
- end ES;
- annotation (Icon(graphics={Rectangle(
- lineColor={200,200,200},
- fillColor={248,248,248},
- fillPattern=FillPattern.HorizontalCylinder,
- extent={{-100,-100},{100,100}},
- radius=25.0),Polygon(
- origin={18,24},
- lineColor={78,138,73},
- fillColor={78,138,73},
- pattern=LinePattern.None,
- fillPattern=FillPattern.Solid,
- points={{-58.0,46.0},{42.0,-14.0},{-58.0,-74.0},{-58.0,46.0}})}),
- Documentation);
- end CGMES;
- annotation (Documentation);
- end Controls;
-
- package Events
- extends Modelica.Icons.ExamplesPackage;
-
- model TestBreaker "Example model to test the breaker model"
- extends Modelica.Icons.Example;
-
- inner Electrical.SystemBase SysData annotation (Placement(transformation(extent={{-100,80},{-76,100}})));
- Electrical.Buses.InfiniteBus infiniteBusExt(displayPF=true) annotation (Placement(transformation(extent={{-80,20},{-60,40}})));
- Electrical.Loads.PSAT.LOADPQ lOADPQExt annotation (Placement(transformation(
- extent={{-10,-10},{10,10}},
- rotation=90,
- origin={50,30})));
- Electrical.Events.Breaker breakerExt(t_o=0.5, enableTrigger=true) annotation (Placement(transformation(extent={{-10,20},{10,40}})));
- Electrical.Buses.InfiniteBus infiniteBusPara(displayPF=true) annotation (Placement(transformation(extent={{-80,-40},{-60,-20}})));
- Electrical.Loads.PSAT.LOADPQ lOADPQPara annotation (Placement(transformation(
- extent={{-10,-10},{10,10}},
- rotation=90,
- origin={50,-30})));
- Electrical.Events.Breaker breakerPara(
- t_o=0.5,
- rc_enabled=true,
- t_rc=0.7) annotation (Placement(transformation(extent={{-10,-40},{10,-20}})));
- Modelica.Blocks.Sources.BooleanPulse booleanPulse(period=0.1, startTime=0.1) annotation (Placement(transformation(extent={{-40,60},{-20,80}})));
- Electrical.Branches.PwLine pwLineExt(
- R=1,
- X=1,
- G=1,
- B=1,
- displayPF=true)
- annotation (Placement(transformation(extent={{-40,20},{-20,40}})));
- Electrical.Branches.PwLine pwLinePara(
- R=1,
- X=1,
- G=1,
- B=1,
- displayPF=true)
- annotation (Placement(transformation(extent={{-40,-40},{-20,-20}})));
- equation
- connect(lOADPQExt.p, breakerExt.r) annotation (Line(points={{40,30},{10,30}}, color={0,0,255}));
- connect(lOADPQPara.p, breakerPara.r) annotation (Line(points={{40,-30},{10,-30}}, color={0,0,255}));
- connect(booleanPulse.y, breakerExt.Trigger) annotation (Line(points={{-19,70},{0,70},{0,42}}, color={255,0,255}));
- connect(breakerExt.s, pwLineExt.n) annotation (Line(points={{-10,30},{-21,30}}, color={0,0,255}));
- connect(pwLineExt.p, infiniteBusExt.p) annotation (Line(points={{-39,30},{-60,30}}, color={0,0,255}));
- connect(breakerPara.s, pwLinePara.n) annotation (Line(points={{-10,-30},{-21,-30}}, color={0,0,255}));
- connect(pwLinePara.p, infiniteBusPara.p) annotation (Line(points={{-39,-30},{-60,-30}}, color={0,0,255}));
- annotation (experiment(StopTime=1.0));
- end TestBreaker;
- end Events;
-
- package Loads
- extends Modelica.Icons.ExamplesPackage;
-
- package PSAT
- extends Modelica.Icons.ExamplesPackage;
-
- model Loadtestpq
- extends Modelica.Icons.Example;
- OpenIPSL.Electrical.Branches.PwLine pwLine1(
- X=0.1,
- R=0.01,
- G=0,
- B=0.001/2) annotation (Placement(visible=true, transformation(
- origin={39.8634,-35.6714},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- OpenIPSL.Electrical.Branches.PwLine pwLine2(
- B=0.001/2,
- G=0,
- R=0.01,
- X=0.1) annotation (Placement(visible=true, transformation(
- origin={39.8634,-15.6714},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- OpenIPSL.Electrical.Branches.PwLine pwLine3(
- B=0.001/2,
- G=0,
- R=0.01,
- X=0.1) annotation (Placement(visible=true, transformation(
- origin={85.0,-35.0},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- OpenIPSL.Electrical.Branches.PwLine pwLine4(
- B=0.001/2,
- G=0,
- R=0.01,
- X=0.1) annotation (Placement(visible=true, transformation(
- origin={85.0,-15.0},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- Modelica.Blocks.Math.Add3 add31 annotation (Placement(visible=true,
- transformation(
- origin={-45.0,13.9829},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- Modelica.Blocks.Math.Add add1 annotation (Placement(visible=true,
- transformation(
- origin={-79.1062,34.6621},
- extent={{-6.3229,-6.3229},{6.3229,6.3229}},
- rotation=0)));
- Modelica.Blocks.Sources.Step step1(height=0.0005, startTime=2) annotation (
- Placement(visible=true, transformation(
- origin={-107.7833,40.985},
- extent={{-5.0,-5.0},{5.0,5.0}},
- rotation=0)));
- Modelica.Blocks.Sources.Step step2(height=-0.0005, startTime=2.1) annotation (
- Placement(visible=true, transformation(
- origin={-107.7833,25.985},
- extent={{-5.0,-5.0},{5.0,5.0}},
- rotation=0)));
- Modelica.Blocks.Sources.Sine sine1(amplitude=0.001, freqHz=0.2) annotation (
- Placement(visible=true, transformation(
- origin={-107.7833,10.4652},
- extent={{-4.4802,-4.4802},{4.4802,4.4802}},
- rotation=0)));
- Modelica.Blocks.Math.Add add2(k2=-1) annotation (Placement(visible=true,
- transformation(
- origin={-79.1062,14.6621},
- extent={{-6.3229,-6.3229},{6.3229,6.3229}},
- rotation=0)));
- Modelica.Blocks.Sources.Sine sine2(
- amplitude=0.001,
- freqHz=0.2,
- startTime=5) annotation (Placement(visible=true, transformation(
- origin={-107.3823,-5.5198},
- extent={{-4.4802,-4.4802},{4.4802,4.4802}},
- rotation=0)));
- Modelica.Blocks.Sources.Sine sine3(
- amplitude=0.001,
- freqHz=0.2,
- startTime=10) annotation (Placement(visible=true, transformation(
- origin={-107.3823,-76.5048},
- extent={{-4.4802,-4.4802},{4.4802,4.4802}},
- rotation=0)));
- Modelica.Blocks.Math.Add add3(k2=-1) annotation (Placement(visible=true,
- transformation(
- origin={-79.1062,-56.3229},
- extent={{-6.3229,-6.3229},{6.3229,6.3229}},
- rotation=0)));
- Modelica.Blocks.Sources.Sine sine4(
- amplitude=0.001,
- freqHz=0.2,
- startTime=5) annotation (Placement(visible=true, transformation(
- origin={-107.7833,-60.5198},
- extent={{-4.4802,-4.4802},{4.4802,4.4802}},
- rotation=0)));
- Modelica.Blocks.Sources.Step step3(height=-0.0005, startTime=7.1) annotation (
- Placement(visible=true, transformation(
- origin={-107.7833,-45.0},
- extent={{-5.0,-5.0},{5.0,5.0}},
- rotation=0)));
- Modelica.Blocks.Sources.Step step4(height=0.0005, startTime=7) annotation (
- Placement(visible=true, transformation(
- origin={-107.7833,-30.0},
- extent={{-5.0,-5.0},{5.0,5.0}},
- rotation=0)));
- Modelica.Blocks.Math.Add add4 annotation (Placement(visible=true,
- transformation(
- origin={-79.1062,-36.3229},
- extent={{-6.3229,-6.3229},{6.3229,6.3229}},
- rotation=0)));
- Modelica.Blocks.Math.Add3 add32 annotation (Placement(visible=true,
- transformation(
- origin={-45.0,-57.0021},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- OpenIPSL.Electrical.Machines.PSAT.Order3 order3_Inputs_Outputs1(
- P_0=0.0800989878477798,
- Q_0=0.0570163388727956,
- Sn=20,
- V_b=400,
- V_0=1,
- angle_0=0,
- Vn=400,
- ra=0.001,
- x1d=0.302,
- M=10,
- D=0,
- xd=1.9,
- T1d0=8,
- xq=1.7) annotation (Placement(visible=true, transformation(
- origin={3.3113,-20.7513},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- OpenIPSL.Electrical.Loads.PSAT.LOADPQ LOADPQ1(
- Sn=10,
- P_0=0.8,
- Q_0=0.6) annotation (Placement(visible=true, transformation(
- origin={122.1536,-15.0},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- inner OpenIPSL.Electrical.SystemBase SysData
- annotation (Placement(transformation(extent={{50,80},{75,100}})));
- equation
- connect(pwLine4.n, LOADPQ1.p) annotation (Line(
- visible=true,
- origin={101.5768,-15.0},
- points={{-7.5768,0},{20.5768,0},{20.5768,10}}));
- connect(pwLine4.n, pwLine3.n) annotation (Line(
- visible=true,
- origin={92.0,-25.0},
- points={{2,10},{2,5},{5,5},{5,0},{2,0},{2,-10}}));
- connect(pwLine3.p, pwLine4.p) annotation (Line(
- visible=true,
- origin={78.0,-25.0},
- points={{-2,-10},{-2,-5},{-5,-5},{-5,0},{-2,0},{-2,10}}));
- connect(pwLine1.n, pwLine3.p) annotation (Line(
- visible=true,
- origin={67.2159,-35.3357},
- points={{-18.3525,-0.3357},{4.7841,-0.3357},{4.7841,0.3357},{8.7841,0.3357}}));
- connect(pwLine2.n, pwLine4.p) annotation (Line(
- visible=true,
- origin={67.2159,-15.3357},
- points={{-18.3525,-0.3357},{4.7841,-0.3357},{4.7841,0.3357},{8.7841,0.3357}}));
- connect(order3_Inputs_Outputs1.pm0, add32.u3) annotation (Line(
- visible=true,
- origin={-19.0108,-51.4898},
- points={{14.3221,19.7385},{41.1619,19.7385},{41.1619,-23.5102},{-38.8284,
- -23.5102},{-38.8284,-13.5123},{-37.9892,-13.5123}},
- color={0,0,127}));
- connect(order3_Inputs_Outputs1.vf0, add31.u3) annotation (Line(
- visible=true,
- origin={-21.3443,-2.9483},
- points={{16.6556,-6.803},{38.6557,-6.803},{38.6557,-0.1282},{-38.6557,-0.1282},
- {-38.6557,8.9312},{-35.6557,8.9312}},
- color={0,0,127}));
- connect(add31.y, order3_Inputs_Outputs1.vf) annotation (Line(
- visible=true,
- origin={-28.1135,-5.371},
- points={{-5.8865,19.3539},{-2.8865,19.3539},{-2.8865,-9.629},{-3.8826,-9.629},{-3.8826,-10.3803},{19.4248,-10.3803}},
- color={0,0,127}));
- connect(add32.y, order3_Inputs_Outputs1.pm) annotation (Line(
- visible=true,
- origin={-28.216,-45.5845},
- points={{-5.784,-11.4176},{-2.784,-11.4176},{-2.784,-9.4155},{-4.0877,-9.4155},{-4.0877,19.8332},{19.5273,19.8332}},
- color={0,0,127}));
- connect(step3.y, add4.u2) annotation (Line(
- visible=true,
- origin={-92.0911,-42.5583},
- points={{-10.1922,-2.4417},{2.3974,-2.4417},{2.3974,2.44166},{5.39742,
- 2.44166}},
- color={0,0,127}));
- connect(add3.y, add32.u2) annotation (Line(
- visible=true,
- origin={-62.2878,-56.6625},
- points={{-9.86321,0.3396},{2.2878,0.3396},{2.2878,-0.3396},{5.2878,-0.3396}},
- color={0,0,127}));
-
- connect(step4.y, add4.u1) annotation (Line(
- visible=true,
- origin={-92.0911,-31.2646},
- points={{-10.1922,1.2646},{2.3974,1.2646},{2.3974,-1.26456},{5.39742,-1.26456}},
- color={0,0,127}));
-
- connect(add4.y, add32.u1) annotation (Line(
- visible=true,
- origin={-62.2878,-42.6625},
- points={{-9.86321,6.3396},{2.2878,6.3396},{2.2878,-6.3396},{5.2878,-6.3396}},
- color={0,0,127}));
-
- connect(add3.u2, sine3.y) annotation (Line(
- visible=true,
- origin={-95.6692,-69.1821},
- points={{8.97552,9.06546},{2.2971,9.06546},{2.2971,-5.4041},{-6.78488,-5.4041},
- {-6.78488,-7.3227}},
- color={0,0,127}));
- connect(sine4.y, add3.u1) annotation (Line(
- visible=true,
- origin={-93.5606,-55.5207},
- points={{-9.29448,-4.9991},{-1.4394,-0.9841},{3.8669,2.9916},{6.86692,
- 2.99154}},
- color={0,0,127}));
- connect(sine1.y, add2.u1) annotation (Line(
- visible=true,
- origin={-93.5606,15.4643},
- points={{-9.29448,-4.9991},{-1.4394,-0.9841},{3.8669,2.9916},{6.86692,
- 2.99154}},
- color={0,0,127}));
- connect(add2.u2, sine2.y) annotation (Line(
- visible=true,
- origin={-95.6692,1.8029},
- points={{8.97552,9.06546},{2.2971,9.06546},{2.2971,-5.4041},{-6.78488,-5.4041},
- {-6.78488,-7.3227}},
- color={0,0,127}));
- connect(step2.y, add1.u2) annotation (Line(
- visible=true,
- origin={-92.0911,28.4267},
- points={{-10.1922,-2.4417},{2.3974,-2.4417},{2.3974,2.44166},{5.39742,
- 2.44166}},
- color={0,0,127}));
- connect(step1.y, add1.u1) annotation (Line(
- visible=true,
- origin={-92.0911,39.7204},
- points={{-10.1922,1.2646},{2.3974,1.2646},{2.3974,-1.26456},{5.39742,-1.26456}},
- color={0,0,127}));
-
- connect(add1.y, add31.u1) annotation (Line(
- visible=true,
- origin={-62.2878,28.3225},
- points={{-9.86321,6.3396},{2.2878,6.3396},{2.2878,-6.3396},{5.2878,-6.3396}},
- color={0,0,127}));
-
- connect(add2.y, add31.u2) annotation (Line(
- visible=true,
- origin={-62.2878,14.3225},
- points={{-9.86321,0.3396},{2.2878,0.3396},{2.2878,-0.3396},{5.2878,-0.3396}},
- color={0,0,127}));
-
- connect(order3_Inputs_Outputs1.p, pwLine2.p) annotation (Line(
- visible=true,
- origin={25.2254,-18.2865},
- points={{-11.9141,-2.4648},{1.638,-2.4648},{1.638,2.6151},{5.638,2.6151}}));
- connect(pwLine2.p, pwLine1.p) annotation (Line(
- visible=true,
- origin={32.8634,-25.6714},
- points={{-2,10},{-2,5},{-5,5},{-5,0},{-2,0},{-2,-10}}));
- annotation (Diagram(coordinateSystem(
- extent={{-148.5,-105.0},{148.5,105.0}},
- preserveAspectRatio=true,
- initialScale=0.1,
- grid={5,5}), graphics={Text(
- visible=true,
- origin={39.8634,3.4703},
- fillPattern=FillPattern.Solid,
- extent={{-35.0,-5.8583},{35.0,5.8583}},
- textString="SystemSbase=100 MVA",
- fontName="Arial")}), Documentation);
- end Loadtestpq;
-
- model Loadtestexponentialrecovery
- extends Modelica.Icons.Example;
- OpenIPSL.Electrical.Branches.PwLine pwLine1(
- X=0.1,
- R=0.01,
- G=0,
- B=0.001/2) annotation (Placement(visible=true, transformation(
- origin={39.8634,-35.6714},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- OpenIPSL.Electrical.Branches.PwLine pwLine2(
- B=0.001/2,
- G=0,
- R=0.01,
- X=0.1) annotation (Placement(visible=true, transformation(
- origin={39.8634,-15.6714},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- OpenIPSL.Electrical.Branches.PwLine pwLine3(
- B=0.001/2,
- G=0,
- R=0.01,
- X=0.1) annotation (Placement(visible=true, transformation(
- origin={85.0,-35.0},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- OpenIPSL.Electrical.Branches.PwLine pwLine4(
- B=0.001/2,
- G=0,
- R=0.01,
- X=0.1) annotation (Placement(visible=true, transformation(
- origin={85.0,-15.0},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- Modelica.Blocks.Math.Add3 add31 annotation (Placement(visible=true,
- transformation(
- origin={-45.0,13.9829},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- Modelica.Blocks.Math.Add add1 annotation (Placement(visible=true,
- transformation(
- origin={-79.1062,34.6621},
- extent={{-6.3229,-6.3229},{6.3229,6.3229}},
- rotation=0)));
- Modelica.Blocks.Sources.Step step1(height=0.0005, startTime=2) annotation (
- Placement(visible=true, transformation(
- origin={-107.7833,40.985},
- extent={{-5.0,-5.0},{5.0,5.0}},
- rotation=0)));
- Modelica.Blocks.Sources.Step step2(height=-0.0005, startTime=2.1) annotation (
- Placement(visible=true, transformation(
- origin={-107.7833,25.985},
- extent={{-5.0,-5.0},{5.0,5.0}},
- rotation=0)));
- Modelica.Blocks.Sources.Sine sine1(amplitude=0.001, freqHz=0.2) annotation (
- Placement(visible=true, transformation(
- origin={-107.7833,10.4652},
- extent={{-4.4802,-4.4802},{4.4802,4.4802}},
- rotation=0)));
- Modelica.Blocks.Math.Add add2(k2=-1) annotation (Placement(visible=true,
- transformation(
- origin={-79.1062,14.6621},
- extent={{-6.3229,-6.3229},{6.3229,6.3229}},
- rotation=0)));
- Modelica.Blocks.Sources.Sine sine2(
- amplitude=0.001,
- freqHz=0.2,
- startTime=5) annotation (Placement(visible=true, transformation(
- origin={-107.3823,-5.5198},
- extent={{-4.4802,-4.4802},{4.4802,4.4802}},
- rotation=0)));
- Modelica.Blocks.Sources.Sine sine3(
- amplitude=0.001,
- freqHz=0.2,
- startTime=10) annotation (Placement(visible=true, transformation(
- origin={-107.3823,-76.5048},
- extent={{-4.4802,-4.4802},{4.4802,4.4802}},
- rotation=0)));
- Modelica.Blocks.Math.Add add3(k2=-1) annotation (Placement(visible=true,
- transformation(
- origin={-79.1062,-56.3229},
- extent={{-6.3229,-6.3229},{6.3229,6.3229}},
- rotation=0)));
- Modelica.Blocks.Sources.Sine sine4(
- amplitude=0.001,
- freqHz=0.2,
- startTime=5) annotation (Placement(visible=true, transformation(
- origin={-107.7833,-60.5198},
- extent={{-4.4802,-4.4802},{4.4802,4.4802}},
- rotation=0)));
- Modelica.Blocks.Sources.Step step3(height=-0.0005, startTime=7.1) annotation (
- Placement(visible=true, transformation(
- origin={-107.7833,-45.0},
- extent={{-5.0,-5.0},{5.0,5.0}},
- rotation=0)));
- Modelica.Blocks.Sources.Step step4(height=0.0005, startTime=7) annotation (
- Placement(visible=true, transformation(
- origin={-107.7833,-30.0},
- extent={{-5.0,-5.0},{5.0,5.0}},
- rotation=0)));
- Modelica.Blocks.Math.Add add4 annotation (Placement(visible=true,
- transformation(
- origin={-79.1062,-36.3229},
- extent={{-6.3229,-6.3229},{6.3229,6.3229}},
- rotation=0)));
- Modelica.Blocks.Math.Add3 add32 annotation (Placement(visible=true,
- transformation(
- origin={-45.0,-57.0021},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- OpenIPSL.Electrical.Machines.PSAT.Order3 order3_Inputs_Outputs1(
- P_0=0.0800989878477798,
- Q_0=0.0570163388727956,
- Sn=20,
- V_b=400,
- V_0=1,
- angle_0=0,
- Vn=400,
- ra=0.001,
- x1d=0.302,
- M=10,
- D=0,
- xd=1.9,
- T1d0=8,
- xq=1.7) annotation (Placement(visible=true, transformation(
- origin={3.3113,-20.7513},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- OpenIPSL.Electrical.Loads.PSAT.ExponentialRecovery exponentialRecovery1(
- V_0=0.993325452568749,
- alpha_t=1.5,
- beta_t=1.5,
- Sn=10,
- P_0=0.8,
- Q_0=0.6) annotation (Placement(visible=true, transformation(
- origin={125.0,-17.844},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- inner OpenIPSL.Electrical.SystemBase SysData annotation (Placement(
- transformation(extent={{100,80},{125,100}})));
- equation
- connect(pwLine4.n, exponentialRecovery1.p) annotation (Line(
- visible=true,
- origin={107.0,-16.422},
- points={{-13,1.422},{4,1.422},{4,8.578},{18,8.578}}));
- connect(pwLine4.n, pwLine3.n) annotation (Line(
- visible=true,
- origin={92.0,-25.0},
- points={{2,10},{2,5},{5,5},{5,0},{2,0},{2,-10}}));
- connect(pwLine3.p, pwLine4.p) annotation (Line(
- visible=true,
- origin={78.0,-25.0},
- points={{-2,-10},{-2,-5},{-5,-5},{-5,0},{-2,0},{-2,10}}));
- connect(pwLine1.n, pwLine3.p) annotation (Line(
- visible=true,
- origin={67.2159,-35.3357},
- points={{-18.3525,-0.3357},{4.7841,-0.3357},{4.7841,0.3357},{8.7841,0.3357}}));
- connect(pwLine2.n, pwLine4.p) annotation (Line(
- visible=true,
- origin={67.2159,-15.3357},
- points={{-18.3525,-0.3357},{4.7841,-0.3357},{4.7841,0.3357},{8.7841,0.3357}}));
- connect(order3_Inputs_Outputs1.pm0, add32.u3) annotation (Line(
- visible=true,
- origin={-19.0108,-51.4898},
- points={{14.3221,19.7385},{41.1619,19.7385},{41.1619,-23.5102},{-38.8284,
- -23.5102},{-38.8284,-13.5123},{-37.9892,-13.5123}},
- color={0,0,127}));
- connect(order3_Inputs_Outputs1.vf0, add31.u3) annotation (Line(
- visible=true,
- origin={-21.3443,-2.9483},
- points={{16.6556,-6.803},{38.6557,-6.803},{38.6557,-0.1282},{-38.6557,-0.1282},
- {-38.6557,8.9312},{-35.6557,8.9312}},
- color={0,0,127}));
- connect(add31.y, order3_Inputs_Outputs1.vf) annotation (Line(
- visible=true,
- origin={-28.1135,-5.371},
- points={{-5.8865,19.3539},{-2.8865,19.3539},{-2.8865,-9.629},{-3.8826,-9.629},{-3.8826,-10.3803},{19.4248,-10.3803}},
- color={0,0,127}));
- connect(add32.y, order3_Inputs_Outputs1.pm) annotation (Line(
- visible=true,
- origin={-28.216,-45.5845},
- points={{-5.784,-11.4176},{-2.784,-11.4176},{-2.784,-9.4155},{-4.0877,-9.4155},{-4.0877,19.8332},{19.5273,19.8332}},
- color={0,0,127}));
- connect(step3.y, add4.u2) annotation (Line(
- visible=true,
- origin={-92.0911,-42.5583},
- points={{-10.1922,-2.4417},{2.3974,-2.4417},{2.3974,2.44166},{5.39742,
- 2.44166}},
- color={0,0,127}));
- connect(add3.y, add32.u2) annotation (Line(
- visible=true,
- origin={-62.2878,-56.6625},
- points={{-9.86321,0.3396},{2.2878,0.3396},{2.2878,-0.3396},{5.2878,-0.3396}},
- color={0,0,127}));
-
- connect(step4.y, add4.u1) annotation (Line(
- visible=true,
- origin={-92.0911,-31.2646},
- points={{-10.1922,1.2646},{2.3974,1.2646},{2.3974,-1.26456},{5.39742,-1.26456}},
- color={0,0,127}));
-
- connect(add4.y, add32.u1) annotation (Line(
- visible=true,
- origin={-62.2878,-42.6625},
- points={{-9.86321,6.3396},{2.2878,6.3396},{2.2878,-6.3396},{5.2878,-6.3396}},
- color={0,0,127}));
-
- connect(add3.u2, sine3.y) annotation (Line(
- visible=true,
- origin={-95.6692,-69.1821},
- points={{8.97552,9.06546},{2.2971,9.06546},{2.2971,-5.4041},{-6.78488,-5.4041},
- {-6.78488,-7.3227}},
- color={0,0,127}));
- connect(sine4.y, add3.u1) annotation (Line(
- visible=true,
- origin={-93.5606,-55.5207},
- points={{-9.29448,-4.9991},{-1.4394,-0.9841},{3.8669,2.9916},{6.86692,
- 2.99154}},
- color={0,0,127}));
- connect(sine1.y, add2.u1) annotation (Line(
- visible=true,
- origin={-93.5606,15.4643},
- points={{-9.29448,-4.9991},{-1.4394,-0.9841},{3.8669,2.9916},{6.86692,
- 2.99154}},
- color={0,0,127}));
- connect(add2.u2, sine2.y) annotation (Line(
- visible=true,
- origin={-95.6692,1.8029},
- points={{8.97552,9.06546},{2.2971,9.06546},{2.2971,-5.4041},{-6.78488,-5.4041},
- {-6.78488,-7.3227}},
- color={0,0,127}));
- connect(step2.y, add1.u2) annotation (Line(
- visible=true,
- origin={-92.0911,28.4267},
- points={{-10.1922,-2.4417},{2.3974,-2.4417},{2.3974,2.44166},{5.39742,
- 2.44166}},
- color={0,0,127}));
- connect(step1.y, add1.u1) annotation (Line(
- visible=true,
- origin={-92.0911,39.7204},
- points={{-10.1922,1.2646},{2.3974,1.2646},{2.3974,-1.26456},{5.39742,-1.26456}},
- color={0,0,127}));
-
- connect(add1.y, add31.u1) annotation (Line(
- visible=true,
- origin={-62.2878,28.3225},
- points={{-9.86321,6.3396},{2.2878,6.3396},{2.2878,-6.3396},{5.2878,-6.3396}},
- color={0,0,127}));
-
- connect(add2.y, add31.u2) annotation (Line(
- visible=true,
- origin={-62.2878,14.3225},
- points={{-9.86321,0.3396},{2.2878,0.3396},{2.2878,-0.3396},{5.2878,-0.3396}},
- color={0,0,127}));
-
- connect(order3_Inputs_Outputs1.p, pwLine2.p) annotation (Line(
- visible=true,
- origin={25.2254,-18.2865},
- points={{-11.9141,-2.4648},{1.638,-2.4648},{1.638,2.6151},{5.638,2.6151}}));
- connect(pwLine2.p, pwLine1.p) annotation (Line(
- visible=true,
- origin={32.8634,-25.6714},
- points={{-2,10},{-2,5},{-5,5},{-5,0},{-2,0},{-2,-10}}));
- annotation (Diagram(coordinateSystem(
- extent={{-148.5,-105.0},{148.5,105.0}},
- preserveAspectRatio=true,
- initialScale=0.1,
- grid={5,5}), graphics={Text(
- visible=true,
- origin={39.8634,3.4703},
- fillPattern=FillPattern.Solid,
- extent={{-35.0,-5.8583},{35.0,5.8583}},
- textString="SystemSbase=100 MVA",
- fontName="Arial")}), Documentation);
- end Loadtestexponentialrecovery;
-
- model Loadtestvoltagedependantload
- extends Modelica.Icons.Example;
- OpenIPSL.Electrical.Branches.PwLine pwLine1(
- X=0.1,
- R=0.01,
- G=0,
- B=0.001/2) annotation (Placement(visible=true, transformation(
- origin={39.8634,-35.6714},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- OpenIPSL.Electrical.Branches.PwLine pwLine2(
- B=0.001/2,
- G=0,
- R=0.01,
- X=0.1) annotation (Placement(visible=true, transformation(
- origin={39.8634,-15.6714},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- OpenIPSL.Electrical.Branches.PwLine pwLine3(
- B=0.001/2,
- G=0,
- R=0.01,
- X=0.1) annotation (Placement(visible=true, transformation(
- origin={85.0,-35.0},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- OpenIPSL.Electrical.Branches.PwLine pwLine4(
- B=0.001/2,
- G=0,
- R=0.01,
- X=0.1) annotation (Placement(visible=true, transformation(
- origin={85.0,-15.0},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- Modelica.Blocks.Math.Add3 add31 annotation (Placement(visible=true,
- transformation(
- origin={-45.0,13.9829},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- Modelica.Blocks.Math.Add add1 annotation (Placement(visible=true,
- transformation(
- origin={-79.1062,34.6621},
- extent={{-6.3229,-6.3229},{6.3229,6.3229}},
- rotation=0)));
- Modelica.Blocks.Sources.Step step1(height=0.0005, startTime=2) annotation (
- Placement(visible=true, transformation(
- origin={-107.7833,40.985},
- extent={{-5.0,-5.0},{5.0,5.0}},
- rotation=0)));
- Modelica.Blocks.Sources.Step step2(height=-0.0005, startTime=2.1) annotation (
- Placement(visible=true, transformation(
- origin={-107.7833,25.985},
- extent={{-5.0,-5.0},{5.0,5.0}},
- rotation=0)));
- Modelica.Blocks.Sources.Sine sine1(amplitude=0.001, freqHz=0.2) annotation (
- Placement(visible=true, transformation(
- origin={-107.7833,10.4652},
- extent={{-4.4802,-4.4802},{4.4802,4.4802}},
- rotation=0)));
- Modelica.Blocks.Math.Add add2(k2=-1) annotation (Placement(visible=true,
- transformation(
- origin={-79.1062,14.6621},
- extent={{-6.3229,-6.3229},{6.3229,6.3229}},
- rotation=0)));
- Modelica.Blocks.Sources.Sine sine2(
- amplitude=0.001,
- freqHz=0.2,
- startTime=5) annotation (Placement(visible=true, transformation(
- origin={-107.3823,-5.5198},
- extent={{-4.4802,-4.4802},{4.4802,4.4802}},
- rotation=0)));
- Modelica.Blocks.Sources.Sine sine3(
- amplitude=0.001,
- freqHz=0.2,
- startTime=10) annotation (Placement(visible=true, transformation(
- origin={-107.3823,-76.5048},
- extent={{-4.4802,-4.4802},{4.4802,4.4802}},
- rotation=0)));
- Modelica.Blocks.Math.Add add3(k2=-1) annotation (Placement(visible=true,
- transformation(
- origin={-79.1062,-56.3229},
- extent={{-6.3229,-6.3229},{6.3229,6.3229}},
- rotation=0)));
- Modelica.Blocks.Sources.Sine sine4(
- amplitude=0.001,
- freqHz=0.2,
- startTime=5) annotation (Placement(visible=true, transformation(
- origin={-107.7833,-60.5198},
- extent={{-4.4802,-4.4802},{4.4802,4.4802}},
- rotation=0)));
- Modelica.Blocks.Sources.Step step3(height=-0.0005, startTime=7.1) annotation (
- Placement(visible=true, transformation(
- origin={-107.7833,-45.0},
- extent={{-5.0,-5.0},{5.0,5.0}},
- rotation=0)));
- Modelica.Blocks.Sources.Step step4(height=0.0005, startTime=7) annotation (
- Placement(visible=true, transformation(
- origin={-107.7833,-30.0},
- extent={{-5.0,-5.0},{5.0,5.0}},
- rotation=0)));
- Modelica.Blocks.Math.Add add4 annotation (Placement(visible=true,
- transformation(
- origin={-79.1062,-36.3229},
- extent={{-6.3229,-6.3229},{6.3229,6.3229}},
- rotation=0)));
- Modelica.Blocks.Math.Add3 add32 annotation (Placement(visible=true,
- transformation(
- origin={-45.0,-57.0021},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- OpenIPSL.Electrical.Machines.PSAT.Order3 order3_Inputs_Outputs1(
- P_0=0.0800989878477798,
- Q_0=0.0570163388727956,
- Sn=20,
- V_b=400,
- V_0=1,
- angle_0=0,
- Vn=400,
- ra=0.001,
- x1d=0.302,
- M=10,
- D=0,
- xd=1.9,
- T1d0=8,
- xq=1.7) annotation (Placement(visible=true, transformation(
- origin={3.3113,-20.7513},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- OpenIPSL.Electrical.Loads.PSAT.VoltDependant voltDepend1(
- Sn=10,
- V_0=0.993325452568749,
- P_0=0.8,
- Q_0=0.6) annotation (Placement(visible=true, transformation(
- origin={125.0,-45.0},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- inner OpenIPSL.Electrical.SystemBase SysData annotation (Placement(
- transformation(extent={{100,80},{125,100}})));
- equation
- connect(pwLine3.n, voltDepend1.p) annotation (Line(
- visible=true,
- origin={107.0,-40.0},
- points={{-13,5},{4,5},{4,5},{18,5}}));
- connect(pwLine4.n, pwLine3.n) annotation (Line(
- visible=true,
- origin={92.0,-25.0},
- points={{2,10},{2,5},{5,5},{5,0},{2,0},{2,-10}}));
- connect(pwLine3.p, pwLine4.p) annotation (Line(
- visible=true,
- origin={78.0,-25.0},
- points={{-2,-10},{-2,-5},{-5,-5},{-5,0},{-2,0},{-2,10}}));
- connect(pwLine1.n, pwLine3.p) annotation (Line(
- visible=true,
- origin={67.2159,-35.3357},
- points={{-18.3525,-0.3357},{4.7841,-0.3357},{4.7841,0.3357},{8.7841,0.3357}}));
- connect(pwLine2.n, pwLine4.p) annotation (Line(
- visible=true,
- origin={67.2159,-15.3357},
- points={{-18.3525,-0.3357},{4.7841,-0.3357},{4.7841,0.3357},{8.7841,0.3357}}));
- connect(order3_Inputs_Outputs1.pm0, add32.u3) annotation (Line(
- visible=true,
- origin={-19.0108,-51.4898},
- points={{14.3221,19.7385},{41.1619,19.7385},{41.1619,-23.5102},{-38.8284,
- -23.5102},{-38.8284,-13.5123},{-37.9892,-13.5123}},
- color={0,0,127}));
- connect(order3_Inputs_Outputs1.vf0, add31.u3) annotation (Line(
- visible=true,
- origin={-21.3443,-2.9483},
- points={{16.6556,-6.803},{38.6557,-6.803},{38.6557,-0.1282},{-38.6557,-0.1282},
- {-38.6557,8.9312},{-35.6557,8.9312}},
- color={0,0,127}));
- connect(add31.y, order3_Inputs_Outputs1.vf) annotation (Line(
- visible=true,
- origin={-28.1135,-5.371},
- points={{-5.8865,19.3539},{-2.8865,19.3539},{-2.8865,-9.629},{-3.8826,-9.629},{-3.8826,-10.3803},{19.4248,-10.3803}},
- color={0,0,127}));
- connect(add32.y, order3_Inputs_Outputs1.pm) annotation (Line(
- visible=true,
- origin={-28.216,-45.5845},
- points={{-5.784,-11.4176},{-2.784,-11.4176},{-2.784,-9.4155},{-4.0877,-9.4155},{-4.0877,19.8332},{19.5273,19.8332}},
- color={0,0,127}));
- connect(step3.y, add4.u2) annotation (Line(
- visible=true,
- origin={-92.0911,-42.5583},
- points={{-10.1922,-2.4417},{2.3974,-2.4417},{2.3974,2.44166},{5.39742,
- 2.44166}},
- color={0,0,127}));
- connect(add3.y, add32.u2) annotation (Line(
- visible=true,
- origin={-62.2878,-56.6625},
- points={{-9.86321,0.3396},{2.2878,0.3396},{2.2878,-0.3396},{5.2878,-0.3396}},
- color={0,0,127}));
-
- connect(step4.y, add4.u1) annotation (Line(
- visible=true,
- origin={-92.0911,-31.2646},
- points={{-10.1922,1.2646},{2.3974,1.2646},{2.3974,-1.26456},{5.39742,-1.26456}},
- color={0,0,127}));
-
- connect(add4.y, add32.u1) annotation (Line(
- visible=true,
- origin={-62.2878,-42.6625},
- points={{-9.86321,6.3396},{2.2878,6.3396},{2.2878,-6.3396},{5.2878,-6.3396}},
- color={0,0,127}));
-
- connect(add3.u2, sine3.y) annotation (Line(
- visible=true,
- origin={-95.6692,-69.1821},
- points={{8.97552,9.06546},{2.2971,9.06546},{2.2971,-5.4041},{-6.78488,-5.4041},
- {-6.78488,-7.3227}},
- color={0,0,127}));
- connect(sine4.y, add3.u1) annotation (Line(
- visible=true,
- origin={-93.5606,-55.5207},
- points={{-9.29448,-4.9991},{-1.4394,-0.9841},{3.8669,2.9916},{6.86692,
- 2.99154}},
- color={0,0,127}));
- connect(sine1.y, add2.u1) annotation (Line(
- visible=true,
- origin={-93.5606,15.4643},
- points={{-9.29448,-4.9991},{-1.4394,-0.9841},{3.8669,2.9916},{6.86692,
- 2.99154}},
- color={0,0,127}));
- connect(add2.u2, sine2.y) annotation (Line(
- visible=true,
- origin={-95.6692,1.8029},
- points={{8.97552,9.06546},{2.2971,9.06546},{2.2971,-5.4041},{-6.78488,-5.4041},
- {-6.78488,-7.3227}},
- color={0,0,127}));
- connect(step2.y, add1.u2) annotation (Line(
- visible=true,
- origin={-92.0911,28.4267},
- points={{-10.1922,-2.4417},{2.3974,-2.4417},{2.3974,2.44166},{5.39742,
- 2.44166}},
- color={0,0,127}));
- connect(step1.y, add1.u1) annotation (Line(
- visible=true,
- origin={-92.0911,39.7204},
- points={{-10.1922,1.2646},{2.3974,1.2646},{2.3974,-1.26456},{5.39742,-1.26456}},
- color={0,0,127}));
-
- connect(add1.y, add31.u1) annotation (Line(
- visible=true,
- origin={-62.2878,28.3225},
- points={{-9.86321,6.3396},{2.2878,6.3396},{2.2878,-6.3396},{5.2878,-6.3396}},
- color={0,0,127}));
-
- connect(add2.y, add31.u2) annotation (Line(
- visible=true,
- origin={-62.2878,14.3225},
- points={{-9.86321,0.3396},{2.2878,0.3396},{2.2878,-0.3396},{5.2878,-0.3396}},
- color={0,0,127}));
-
- connect(order3_Inputs_Outputs1.p, pwLine2.p) annotation (Line(
- visible=true,
- origin={25.2254,-18.2865},
- points={{-11.9141,-2.4648},{1.638,-2.4648},{1.638,2.6151},{5.638,2.6151}}));
- connect(pwLine2.p, pwLine1.p) annotation (Line(
- visible=true,
- origin={32.8634,-25.6714},
- points={{-2,10},{-2,5},{-5,5},{-5,0},{-2,0},{-2,-10}}));
- annotation (Diagram(coordinateSystem(
- extent={{-148.5,-105.0},{148.5,105.0}},
- preserveAspectRatio=true,
- initialScale=0.1,
- grid={5,5}), graphics={Text(
- visible=true,
- origin={39.8634,3.4703},
- fillPattern=FillPattern.Solid,
- extent={{-35.0,-5.8583},{35.0,5.8583}},
- textString="SystemSbase=100 MVA",
- fontName="Arial")}), Documentation);
- end Loadtestvoltagedependantload;
-
- model Loadtestzip
- extends Modelica.Icons.Example;
- OpenIPSL.Electrical.Branches.PwLine pwLine1(
- X=0.1,
- R=0.01,
- G=0,
- B=0.001/2) annotation (Placement(visible=true, transformation(
- origin={39.8634,-35.6714},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- OpenIPSL.Electrical.Branches.PwLine pwLine2(
- B=0.001/2,
- G=0,
- R=0.01,
- X=0.1) annotation (Placement(visible=true, transformation(
- origin={39.8634,-15.6714},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- OpenIPSL.Electrical.Branches.PwLine pwLine3(
- B=0.001/2,
- G=0,
- R=0.01,
- X=0.1) annotation (Placement(visible=true, transformation(
- origin={85.0,-35.0},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- OpenIPSL.Electrical.Branches.PwLine pwLine4(
- B=0.001/2,
- G=0,
- R=0.01,
- X=0.1) annotation (Placement(visible=true, transformation(
- origin={85.0,-15.0},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- Modelica.Blocks.Math.Add3 add31 annotation (Placement(visible=true,
- transformation(
- origin={-45.0,13.9829},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- Modelica.Blocks.Math.Add add1 annotation (Placement(visible=true,
- transformation(
- origin={-79.1062,34.6621},
- extent={{-6.3229,-6.3229},{6.3229,6.3229}},
- rotation=0)));
- Modelica.Blocks.Sources.Step step1(height=0.0005, startTime=2) annotation (
- Placement(visible=true, transformation(
- origin={-107.7833,40.985},
- extent={{-5.0,-5.0},{5.0,5.0}},
- rotation=0)));
- Modelica.Blocks.Sources.Step step2(height=-0.0005, startTime=2.1) annotation (
- Placement(visible=true, transformation(
- origin={-107.7833,25.985},
- extent={{-5.0,-5.0},{5.0,5.0}},
- rotation=0)));
- Modelica.Blocks.Sources.Sine sine1(amplitude=0.001, freqHz=0.2) annotation (
- Placement(visible=true, transformation(
- origin={-107.7833,10.4652},
- extent={{-4.4802,-4.4802},{4.4802,4.4802}},
- rotation=0)));
- Modelica.Blocks.Math.Add add2(k2=-1) annotation (Placement(visible=true,
- transformation(
- origin={-79.1062,14.6621},
- extent={{-6.3229,-6.3229},{6.3229,6.3229}},
- rotation=0)));
- Modelica.Blocks.Sources.Sine sine2(
- amplitude=0.001,
- freqHz=0.2,
- startTime=5) annotation (Placement(visible=true, transformation(
- origin={-107.3823,-5.5198},
- extent={{-4.4802,-4.4802},{4.4802,4.4802}},
- rotation=0)));
- Modelica.Blocks.Sources.Sine sine3(
- amplitude=0.001,
- freqHz=0.2,
- startTime=10) annotation (Placement(visible=true, transformation(
- origin={-107.3823,-76.5048},
- extent={{-4.4802,-4.4802},{4.4802,4.4802}},
- rotation=0)));
- Modelica.Blocks.Math.Add add3(k2=-1) annotation (Placement(visible=true,
- transformation(
- origin={-79.1062,-56.3229},
- extent={{-6.3229,-6.3229},{6.3229,6.3229}},
- rotation=0)));
- Modelica.Blocks.Sources.Sine sine4(
- amplitude=0.001,
- freqHz=0.2,
- startTime=5) annotation (Placement(visible=true, transformation(
- origin={-107.7833,-60.5198},
- extent={{-4.4802,-4.4802},{4.4802,4.4802}},
- rotation=0)));
- Modelica.Blocks.Sources.Step step3(height=-0.0005, startTime=7.1) annotation (
- Placement(visible=true, transformation(
- origin={-107.7833,-45.0},
- extent={{-5.0,-5.0},{5.0,5.0}},
- rotation=0)));
- Modelica.Blocks.Sources.Step step4(height=0.0005, startTime=7) annotation (
- Placement(visible=true, transformation(
- origin={-107.7833,-30.0},
- extent={{-5.0,-5.0},{5.0,5.0}},
- rotation=0)));
- Modelica.Blocks.Math.Add add4 annotation (Placement(visible=true,
- transformation(
- origin={-79.1062,-36.3229},
- extent={{-6.3229,-6.3229},{6.3229,6.3229}},
- rotation=0)));
- Modelica.Blocks.Math.Add3 add32 annotation (Placement(visible=true,
- transformation(
- origin={-45.0,-57.0021},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- OpenIPSL.Electrical.Machines.PSAT.Order3 order3_Inputs_Outputs1(
- P_0=0.0800989878477798,
- Q_0=0.0570163388727956,
- Sn=20,
- V_b=400,
- V_0=1,
- angle_0=0,
- Vn=400,
- ra=0.001,
- x1d=0.302,
- M=10,
- D=0,
- xd=1.9,
- T1d0=8,
- xq=1.7) annotation (Placement(visible=true, transformation(
- origin={3.3113,-20.7513},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- OpenIPSL.Electrical.Loads.PSAT.ZIP ZIP1(
- Sn=10,
- V_0=0.993325452568749,
- Pz=0.5,
- Pi=0.3,
- Qz=0.5,
- Qi=0.3,
- P_0=0.8,
- Q_0=0.6) annotation (Placement(visible=true, transformation(
- origin={123.3697,-10.0},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- inner OpenIPSL.Electrical.SystemBase SysData annotation (Placement(
- transformation(extent={{100,80},{125,100}})));
- equation
- connect(pwLine4.n, ZIP1.p) annotation (Line(
- visible=true,
- origin={105.7773,-12.5},
- points={{-11.7773,-2.5},{3.5924,-2.5},{3.5924,12.5},{17.5924,12.5}}));
- connect(pwLine4.n, pwLine3.n) annotation (Line(
- visible=true,
- origin={92.0,-25.0},
- points={{2,10},{2,5},{5,5},{5,0},{2,0},{2,-10}}));
- connect(pwLine3.p, pwLine4.p) annotation (Line(
- visible=true,
- origin={78.0,-25.0},
- points={{-2,-10},{-2,-5},{-5,-5},{-5,0},{-2,0},{-2,10}}));
- connect(pwLine1.n, pwLine3.p) annotation (Line(
- visible=true,
- origin={67.2159,-35.3357},
- points={{-18.3525,-0.3357},{4.7841,-0.3357},{4.7841,0.3357},{8.7841,0.3357}}));
- connect(pwLine2.n, pwLine4.p) annotation (Line(
- visible=true,
- origin={67.2159,-15.3357},
- points={{-18.3525,-0.3357},{4.7841,-0.3357},{4.7841,0.3357},{8.7841,0.3357}}));
- connect(order3_Inputs_Outputs1.pm0, add32.u3) annotation (Line(
- visible=true,
- origin={-19.0108,-51.4898},
- points={{14.3221,19.7385},{41.1619,19.7385},{41.1619,-23.5102},{-38.8284,
- -23.5102},{-38.8284,-13.5123},{-37.9892,-13.5123}},
- color={0,0,127}));
- connect(order3_Inputs_Outputs1.vf0, add31.u3) annotation (Line(
- visible=true,
- origin={-21.3443,-2.9483},
- points={{16.6556,-6.803},{38.6557,-6.803},{38.6557,-0.1282},{-38.6557,-0.1282},
- {-38.6557,8.9312},{-35.6557,8.9312}},
- color={0,0,127}));
- connect(add31.y, order3_Inputs_Outputs1.vf) annotation (Line(
- visible=true,
- origin={-28.1135,-5.371},
- points={{-5.8865,19.3539},{-2.8865,19.3539},{-2.8865,-9.629},{-3.8826,-9.629},{-3.8826,-10.3803},{19.4248,-10.3803}},
- color={0,0,127}));
- connect(add32.y, order3_Inputs_Outputs1.pm) annotation (Line(
- visible=true,
- origin={-28.216,-45.5845},
- points={{-5.784,-11.4176},{-2.784,-11.4176},{-2.784,-9.4155},{-4.0877,-9.4155},{-4.0877,19.8332},{19.5273,19.8332}},
- color={0,0,127}));
- connect(step3.y, add4.u2) annotation (Line(
- visible=true,
- origin={-92.0911,-42.5583},
- points={{-10.1922,-2.4417},{2.3974,-2.4417},{2.3974,2.44166},{5.39742,
- 2.44166}},
- color={0,0,127}));
- connect(add3.y, add32.u2) annotation (Line(
- visible=true,
- origin={-62.2878,-56.6625},
- points={{-9.86321,0.3396},{2.2878,0.3396},{2.2878,-0.3396},{5.2878,-0.3396}},
- color={0,0,127}));
-
- connect(step4.y, add4.u1) annotation (Line(
- visible=true,
- origin={-92.0911,-31.2646},
- points={{-10.1922,1.2646},{2.3974,1.2646},{2.3974,-1.26456},{5.39742,-1.26456}},
- color={0,0,127}));
-
- connect(add4.y, add32.u1) annotation (Line(
- visible=true,
- origin={-62.2878,-42.6625},
- points={{-9.86321,6.3396},{2.2878,6.3396},{2.2878,-6.3396},{5.2878,-6.3396}},
- color={0,0,127}));
-
- connect(add3.u2, sine3.y) annotation (Line(
- visible=true,
- origin={-95.6692,-69.1821},
- points={{8.97552,9.06546},{2.2971,9.06546},{2.2971,-5.4041},{-6.78488,-5.4041},
- {-6.78488,-7.3227}},
- color={0,0,127}));
- connect(sine4.y, add3.u1) annotation (Line(
- visible=true,
- origin={-93.5606,-55.5207},
- points={{-9.29448,-4.9991},{-1.4394,-0.9841},{3.8669,2.9916},{6.86692,
- 2.99154}},
- color={0,0,127}));
- connect(sine1.y, add2.u1) annotation (Line(
- visible=true,
- origin={-93.5606,15.4643},
- points={{-9.29448,-4.9991},{-1.4394,-0.9841},{3.8669,2.9916},{6.86692,
- 2.99154}},
- color={0,0,127}));
- connect(add2.u2, sine2.y) annotation (Line(
- visible=true,
- origin={-95.6692,1.8029},
- points={{8.97552,9.06546},{2.2971,9.06546},{2.2971,-5.4041},{-6.78488,-5.4041},
- {-6.78488,-7.3227}},
- color={0,0,127}));
- connect(step2.y, add1.u2) annotation (Line(
- visible=true,
- origin={-92.0911,28.4267},
- points={{-10.1922,-2.4417},{2.3974,-2.4417},{2.3974,2.44166},{5.39742,
- 2.44166}},
- color={0,0,127}));
- connect(step1.y, add1.u1) annotation (Line(
- visible=true,
- origin={-92.0911,39.7204},
- points={{-10.1922,1.2646},{2.3974,1.2646},{2.3974,-1.26456},{5.39742,-1.26456}},
- color={0,0,127}));
-
- connect(add1.y, add31.u1) annotation (Line(
- visible=true,
- origin={-62.2878,28.3225},
- points={{-9.86321,6.3396},{2.2878,6.3396},{2.2878,-6.3396},{5.2878,-6.3396}},
- color={0,0,127}));
-
- connect(add2.y, add31.u2) annotation (Line(
- visible=true,
- origin={-62.2878,14.3225},
- points={{-9.86321,0.3396},{2.2878,0.3396},{2.2878,-0.3396},{5.2878,-0.3396}},
- color={0,0,127}));
-
- connect(order3_Inputs_Outputs1.p, pwLine2.p) annotation (Line(
- visible=true,
- origin={25.2254,-18.2865},
- points={{-11.9141,-2.4648},{1.638,-2.4648},{1.638,2.6151},{5.638,2.6151}}));
- connect(pwLine2.p, pwLine1.p) annotation (Line(
- visible=true,
- origin={32.8634,-25.6714},
- points={{-2,10},{-2,5},{-5,5},{-5,0},{-2,0},{-2,-10}}));
- annotation (Diagram(coordinateSystem(
- extent={{-148.5,-105.0},{148.5,105.0}},
- preserveAspectRatio=true,
- initialScale=0.1,
- grid={5,5}), graphics={Text(
- visible=true,
- origin={39.8634,3.4703},
- fillPattern=FillPattern.Solid,
- extent={{-35.0,-5.8583},{35.0,5.8583}},
- textString="SystemSbase=100 MVA",
- fontName="Arial")}), Documentation);
- end Loadtestzip;
-
- model Loadtestfreq
- extends Modelica.Icons.Example;
- OpenIPSL.Electrical.Branches.PwLine pwLine1(
- X=0.1,
- R=0.01,
- G=0,
- B=0.001/2) annotation (Placement(visible=true, transformation(
- origin={39.8634,-35.6714},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- OpenIPSL.Electrical.Branches.PwLine pwLine2(
- B=0.001/2,
- G=0,
- R=0.01,
- X=0.1) annotation (Placement(visible=true, transformation(
- origin={39.8634,-15.6714},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- OpenIPSL.Electrical.Branches.PwLine pwLine3(
- B=0.001/2,
- G=0,
- R=0.01,
- X=0.1) annotation (Placement(visible=true, transformation(
- origin={85.0,-35.0},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- OpenIPSL.Electrical.Branches.PwLine pwLine4(
- B=0.001/2,
- G=0,
- R=0.01,
- X=0.1) annotation (Placement(visible=true, transformation(
- origin={85.0,-15.0},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- Modelica.Blocks.Math.Add3 add31 annotation (Placement(visible=true,
- transformation(
- origin={-45.0,13.9829},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- Modelica.Blocks.Math.Add add1 annotation (Placement(visible=true,
- transformation(
- origin={-79.1062,34.6621},
- extent={{-6.3229,-6.3229},{6.3229,6.3229}},
- rotation=0)));
- Modelica.Blocks.Sources.Step step1(height=0.0005, startTime=2) annotation (
- Placement(visible=true, transformation(
- origin={-107.7833,40.985},
- extent={{-5.0,-5.0},{5.0,5.0}},
- rotation=0)));
- Modelica.Blocks.Sources.Step step2(height=-0.0005, startTime=2.1) annotation (
- Placement(visible=true, transformation(
- origin={-107.7833,25.985},
- extent={{-5.0,-5.0},{5.0,5.0}},
- rotation=0)));
- Modelica.Blocks.Sources.Sine sine1(amplitude=0.001, freqHz=0.2) annotation (
- Placement(visible=true, transformation(
- origin={-107.7833,10.4652},
- extent={{-4.4802,-4.4802},{4.4802,4.4802}},
- rotation=0)));
- Modelica.Blocks.Math.Add add2(k2=-1) annotation (Placement(visible=true,
- transformation(
- origin={-79.1062,14.6621},
- extent={{-6.3229,-6.3229},{6.3229,6.3229}},
- rotation=0)));
- Modelica.Blocks.Sources.Sine sine2(
- amplitude=0.001,
- freqHz=0.2,
- startTime=5) annotation (Placement(visible=true, transformation(
- origin={-107.3823,-5.5198},
- extent={{-4.4802,-4.4802},{4.4802,4.4802}},
- rotation=0)));
- Modelica.Blocks.Sources.Sine sine3(
- amplitude=0.001,
- freqHz=0.2,
- startTime=10) annotation (Placement(visible=true, transformation(
- origin={-107.3823,-76.5048},
- extent={{-4.4802,-4.4802},{4.4802,4.4802}},
- rotation=0)));
- Modelica.Blocks.Math.Add add3(k2=-1) annotation (Placement(visible=true,
- transformation(
- origin={-79.1062,-56.3229},
- extent={{-6.3229,-6.3229},{6.3229,6.3229}},
- rotation=0)));
- Modelica.Blocks.Sources.Sine sine4(
- amplitude=0.001,
- freqHz=0.2,
- startTime=5) annotation (Placement(visible=true, transformation(
- origin={-107.7833,-60.5198},
- extent={{-4.4802,-4.4802},{4.4802,4.4802}},
- rotation=0)));
- Modelica.Blocks.Sources.Step step3(height=-0.0005, startTime=7.1) annotation (
- Placement(visible=true, transformation(
- origin={-107.7833,-45.0},
- extent={{-5.0,-5.0},{5.0,5.0}},
- rotation=0)));
- Modelica.Blocks.Sources.Step step4(height=0.0005, startTime=7) annotation (
- Placement(visible=true, transformation(
- origin={-107.7833,-30.0},
- extent={{-5.0,-5.0},{5.0,5.0}},
- rotation=0)));
- Modelica.Blocks.Math.Add add4 annotation (Placement(visible=true,
- transformation(
- origin={-79.1062,-36.3229},
- extent={{-6.3229,-6.3229},{6.3229,6.3229}},
- rotation=0)));
- Modelica.Blocks.Math.Add3 add32 annotation (Placement(visible=true,
- transformation(
- origin={-45.0,-57.0021},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- OpenIPSL.Electrical.Machines.PSAT.Order3 order3_Inputs_Outputs1(
- P_0=0.0800989878477798,
- Q_0=0.0570163388727956,
- Sn=20,
- V_b=400,
- V_0=1,
- angle_0=0,
- Vn=400,
- ra=0.001,
- x1d=0.302,
- M=10,
- D=0,
- xd=1.9,
- T1d0=8,
- xq=1.7) annotation (Placement(visible=true, transformation(
- origin={3.3113,-20.7513},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- OpenIPSL.Electrical.Loads.PSAT.FrequencyDependentLoad frequencyDependentLoad1(
- alpha_p=0,
- beta_p=1,
- beta_q=1,
- Sn=10,
- V_0=0.993325452568749,
- angle_0=-0.00746932024404292,
- alpha_q=0,
- Tf=0.1,
- P_0=0.8,
- Q_0=0.6) annotation (Placement(visible=true, transformation(
- origin={123.3697,-45.0},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- inner OpenIPSL.Electrical.SystemBase SysData annotation (Placement(
- transformation(extent={{100,80},{125,100}})));
- equation
- connect(pwLine3.n, frequencyDependentLoad1.p) annotation (Line(
- visible=true,
- origin={105.7773,-40.0},
- points={{-11.7773,5},{3.5924,5},{3.5924,5},{17.5924,5}}));
- connect(pwLine4.n, pwLine3.n) annotation (Line(
- visible=true,
- origin={92.0,-25.0},
- points={{2,10},{2,5},{5,5},{5,0},{2,0},{2,-10}}));
- connect(pwLine3.p, pwLine4.p) annotation (Line(
- visible=true,
- origin={78.0,-25.0},
- points={{-2,-10},{-2,-5},{-5,-5},{-5,0},{-2,0},{-2,10}}));
- connect(pwLine1.n, pwLine3.p) annotation (Line(
- visible=true,
- origin={67.2159,-35.3357},
- points={{-18.3525,-0.3357},{4.7841,-0.3357},{4.7841,0.3357},{8.7841,0.3357}}));
- connect(pwLine2.n, pwLine4.p) annotation (Line(
- visible=true,
- origin={67.2159,-15.3357},
- points={{-18.3525,-0.3357},{4.7841,-0.3357},{4.7841,0.3357},{8.7841,0.3357}}));
- connect(order3_Inputs_Outputs1.pm0, add32.u3) annotation (Line(
- visible=true,
- origin={-19.0108,-51.4898},
- points={{14.3221,19.7385},{41.1619,19.7385},{41.1619,-23.5102},{-38.8284,
- -23.5102},{-38.8284,-13.5123},{-37.9892,-13.5123}},
- color={0,0,127}));
- connect(order3_Inputs_Outputs1.vf0, add31.u3) annotation (Line(
- visible=true,
- origin={-21.3443,-2.9483},
- points={{16.6556,-6.803},{38.6557,-6.803},{38.6557,-0.1282},{-38.6557,-0.1282},
- {-38.6557,8.9312},{-35.6557,8.9312}},
- color={0,0,127}));
- connect(add31.y, order3_Inputs_Outputs1.vf) annotation (Line(
- visible=true,
- origin={-28.1135,-5.371},
- points={{-5.8865,19.3539},{-2.8865,19.3539},{-2.8865,-9.629},{-3.8826,-9.629},{-3.8826,-10.3803},{19.4248,-10.3803}},
- color={0,0,127}));
- connect(add32.y, order3_Inputs_Outputs1.pm) annotation (Line(
- visible=true,
- origin={-28.216,-45.5845},
- points={{-5.784,-11.4176},{-2.784,-11.4176},{-2.784,-9.4155},{-4.0877,-9.4155},{-4.0877,19.8332},{19.5273,19.8332}},
- color={0,0,127}));
- connect(step3.y, add4.u2) annotation (Line(
- visible=true,
- origin={-92.0911,-42.5583},
- points={{-10.1922,-2.4417},{2.3974,-2.4417},{2.3974,2.44166},{5.39742,
- 2.44166}},
- color={0,0,127}));
- connect(add3.y, add32.u2) annotation (Line(
- visible=true,
- origin={-62.2878,-56.6625},
- points={{-9.86321,0.3396},{2.2878,0.3396},{2.2878,-0.3396},{5.2878,-0.3396}},
- color={0,0,127}));
-
- connect(step4.y, add4.u1) annotation (Line(
- visible=true,
- origin={-92.0911,-31.2646},
- points={{-10.1922,1.2646},{2.3974,1.2646},{2.3974,-1.26456},{5.39742,-1.26456}},
- color={0,0,127}));
-
- connect(add4.y, add32.u1) annotation (Line(
- visible=true,
- origin={-62.2878,-42.6625},
- points={{-9.86321,6.3396},{2.2878,6.3396},{2.2878,-6.3396},{5.2878,-6.3396}},
- color={0,0,127}));
-
- connect(add3.u2, sine3.y) annotation (Line(
- visible=true,
- origin={-95.6692,-69.1821},
- points={{8.97552,9.06546},{2.2971,9.06546},{2.2971,-5.4041},{-6.78488,-5.4041},
- {-6.78488,-7.3227}},
- color={0,0,127}));
- connect(sine4.y, add3.u1) annotation (Line(
- visible=true,
- origin={-93.5606,-55.5207},
- points={{-9.29448,-4.9991},{-1.4394,-0.9841},{3.8669,2.9916},{6.86692,
- 2.99154}},
- color={0,0,127}));
- connect(sine1.y, add2.u1) annotation (Line(
- visible=true,
- origin={-93.5606,15.4643},
- points={{-9.29448,-4.9991},{-1.4394,-0.9841},{3.8669,2.9916},{6.86692,
- 2.99154}},
- color={0,0,127}));
- connect(add2.u2, sine2.y) annotation (Line(
- visible=true,
- origin={-95.6692,1.8029},
- points={{8.97552,9.06546},{2.2971,9.06546},{2.2971,-5.4041},{-6.78488,-5.4041},
- {-6.78488,-7.3227}},
- color={0,0,127}));
- connect(step2.y, add1.u2) annotation (Line(
- visible=true,
- origin={-92.0911,28.4267},
- points={{-10.1922,-2.4417},{2.3974,-2.4417},{2.3974,2.44166},{5.39742,
- 2.44166}},
- color={0,0,127}));
- connect(step1.y, add1.u1) annotation (Line(
- visible=true,
- origin={-92.0911,39.7204},
- points={{-10.1922,1.2646},{2.3974,1.2646},{2.3974,-1.26456},{5.39742,-1.26456}},
- color={0,0,127}));
-
- connect(add1.y, add31.u1) annotation (Line(
- visible=true,
- origin={-62.2878,28.3225},
- points={{-9.86321,6.3396},{2.2878,6.3396},{2.2878,-6.3396},{5.2878,-6.3396}},
- color={0,0,127}));
-
- connect(add2.y, add31.u2) annotation (Line(
- visible=true,
- origin={-62.2878,14.3225},
- points={{-9.86321,0.3396},{2.2878,0.3396},{2.2878,-0.3396},{5.2878,-0.3396}},
- color={0,0,127}));
-
- connect(order3_Inputs_Outputs1.p, pwLine2.p) annotation (Line(
- visible=true,
- origin={25.2254,-18.2865},
- points={{-11.9141,-2.4648},{1.638,-2.4648},{1.638,2.6151},{5.638,2.6151}}));
- connect(pwLine2.p, pwLine1.p) annotation (Line(
- visible=true,
- origin={32.8634,-25.6714},
- points={{-2,10},{-2,5},{-5,5},{-5,0},{-2,0},{-2,-10}}));
- annotation (Diagram(coordinateSystem(
- extent={{-148.5,-105.0},{148.5,105.0}},
- preserveAspectRatio=true,
- initialScale=0.1,
- grid={5,5}), graphics={Text(
- visible=true,
- origin={39.8634,3.4703},
- fillPattern=FillPattern.Solid,
- extent={{-35.0,-5.8583},{35.0,5.8583}},
- textString="SystemSbase=100 MVA",
- fontName="Arial")}), Documentation);
- end Loadtestfreq;
-
- model Loadtestmixed
- extends Modelica.Icons.Example;
- OpenIPSL.Electrical.Branches.PwLine pwLine1(
- X=0.1,
- R=0.01,
- G=0,
- B=0.001/2) annotation (Placement(visible=true, transformation(
- origin={39.8634,-35.6714},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- OpenIPSL.Electrical.Branches.PwLine pwLine2(
- B=0.001/2,
- G=0,
- R=0.01,
- X=0.1) annotation (Placement(visible=true, transformation(
- origin={39.8634,-15.6714},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- OpenIPSL.Electrical.Branches.PwLine pwLine3(
- B=0.001/2,
- G=0,
- R=0.01,
- X=0.1) annotation (Placement(visible=true, transformation(
- origin={85.0,-35.0},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- OpenIPSL.Electrical.Branches.PwLine pwLine4(
- B=0.001/2,
- G=0,
- R=0.01,
- X=0.1) annotation (Placement(visible=true, transformation(
- origin={85.0,-15.0},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- Modelica.Blocks.Math.Add3 add31 annotation (Placement(visible=true,
- transformation(
- origin={-45.0,13.9829},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- Modelica.Blocks.Math.Add add1 annotation (Placement(visible=true,
- transformation(
- origin={-79.1062,34.6621},
- extent={{-6.3229,-6.3229},{6.3229,6.3229}},
- rotation=0)));
- Modelica.Blocks.Sources.Step step1(height=0.0005, startTime=2) annotation (
- Placement(visible=true, transformation(
- origin={-107.7833,40.985},
- extent={{-5.0,-5.0},{5.0,5.0}},
- rotation=0)));
- Modelica.Blocks.Sources.Step step2(height=-0.0005, startTime=2.1) annotation (
- Placement(visible=true, transformation(
- origin={-107.7833,25.985},
- extent={{-5.0,-5.0},{5.0,5.0}},
- rotation=0)));
- Modelica.Blocks.Sources.Sine sine1(amplitude=0.001, freqHz=0.2) annotation (
- Placement(visible=true, transformation(
- origin={-107.7833,10.4652},
- extent={{-4.4802,-4.4802},{4.4802,4.4802}},
- rotation=0)));
- Modelica.Blocks.Math.Add add2(k2=-1) annotation (Placement(visible=true,
- transformation(
- origin={-79.1062,14.6621},
- extent={{-6.3229,-6.3229},{6.3229,6.3229}},
- rotation=0)));
- Modelica.Blocks.Sources.Sine sine2(
- amplitude=0.001,
- freqHz=0.2,
- startTime=5) annotation (Placement(visible=true, transformation(
- origin={-107.3823,-5.5198},
- extent={{-4.4802,-4.4802},{4.4802,4.4802}},
- rotation=0)));
- Modelica.Blocks.Sources.Sine sine3(
- amplitude=0.001,
- freqHz=0.2,
- startTime=10) annotation (Placement(visible=true, transformation(
- origin={-107.3823,-76.5048},
- extent={{-4.4802,-4.4802},{4.4802,4.4802}},
- rotation=0)));
- Modelica.Blocks.Math.Add add3(k2=-1) annotation (Placement(visible=true,
- transformation(
- origin={-79.1062,-56.3229},
- extent={{-6.3229,-6.3229},{6.3229,6.3229}},
- rotation=0)));
- Modelica.Blocks.Sources.Sine sine4(
- amplitude=0.001,
- freqHz=0.2,
- startTime=5) annotation (Placement(visible=true, transformation(
- origin={-107.7833,-60.5198},
- extent={{-4.4802,-4.4802},{4.4802,4.4802}},
- rotation=0)));
- Modelica.Blocks.Sources.Step step3(height=-0.0005, startTime=7.1) annotation (
- Placement(visible=true, transformation(
- origin={-107.7833,-45.0},
- extent={{-5.0,-5.0},{5.0,5.0}},
- rotation=0)));
- Modelica.Blocks.Sources.Step step4(height=0.0005, startTime=7) annotation (
- Placement(visible=true, transformation(
- origin={-107.7833,-30.0},
- extent={{-5.0,-5.0},{5.0,5.0}},
- rotation=0)));
- Modelica.Blocks.Math.Add add4 annotation (Placement(visible=true,
- transformation(
- origin={-79.1062,-36.3229},
- extent={{-6.3229,-6.3229},{6.3229,6.3229}},
- rotation=0)));
- Modelica.Blocks.Math.Add3 add32 annotation (Placement(visible=true,
- transformation(
- origin={-45.0,-57.0021},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- OpenIPSL.Electrical.Machines.PSAT.Order3 order3_Inputs_Outputs1(
- P_0=0.0800989878477798,
- Q_0=0.0570163388727956,
- Sn=20,
- V_b=400,
- V_0=1,
- angle_0=0,
- Vn=400,
- ra=0.001,
- x1d=0.302,
- M=10,
- D=0,
- xd=1.9,
- T1d0=8,
- xq=1.7) annotation (Placement(visible=true, transformation(
- origin={3.3113,-20.7513},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- OpenIPSL.Electrical.Loads.PSAT.Mixed_Load mixed_Load1(
- V_0=0.993325452568749,
- Sn=10,
- Tpv=0.1,
- Tqv=0.1,
- Tfv=0.1,
- Tft=0.1,
- Kpf=1,
- Kqf=1,
- alpha=1,
- beta=1,
- angle_0=-0.00746932024404292,
- P_0=0.8,
- Q_0=0.6) annotation (Placement(visible=true, transformation(
- origin={125.0,-40.0},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- inner OpenIPSL.Electrical.SystemBase SysData annotation (Placement(
- transformation(extent={{100,80},{125,100}})));
- equation
- connect(mixed_Load1.p, pwLine3.n) annotation (Line(
- visible=true,
- origin={100.5,-37.5},
- points={{24.5,7.5},{-2.5,7.5},{-2.5,2.5},{-6.5,2.5}}));
- connect(pwLine4.n, pwLine3.n) annotation (Line(
- visible=true,
- origin={92.0,-25.0},
- points={{2,10},{2,5},{5,5},{5,0},{2,0},{2,-10}}));
- connect(pwLine3.p, pwLine4.p) annotation (Line(
- visible=true,
- origin={78.0,-25.0},
- points={{-2,-10},{-2,-5},{-5,-5},{-5,0},{-2,0},{-2,10}}));
- connect(pwLine1.n, pwLine3.p) annotation (Line(
- visible=true,
- origin={67.2159,-35.3357},
- points={{-18.3525,-0.3357},{4.7841,-0.3357},{4.7841,0.3357},{8.7841,0.3357}}));
- connect(pwLine2.n, pwLine4.p) annotation (Line(
- visible=true,
- origin={67.2159,-15.3357},
- points={{-18.3525,-0.3357},{4.7841,-0.3357},{4.7841,0.3357},{8.7841,0.3357}}));
- connect(order3_Inputs_Outputs1.pm0, add32.u3) annotation (Line(
- visible=true,
- origin={-19.0108,-51.4898},
- points={{14.3221,19.7385},{41.1619,19.7385},{41.1619,-23.5102},{-38.8284,
- -23.5102},{-38.8284,-13.5123},{-37.9892,-13.5123}},
- color={0,0,127}));
- connect(order3_Inputs_Outputs1.vf0, add31.u3) annotation (Line(
- visible=true,
- origin={-21.3443,-2.9483},
- points={{16.6556,-6.803},{38.6557,-6.803},{38.6557,-0.1282},{-38.6557,-0.1282},
- {-38.6557,8.9312},{-35.6557,8.9312}},
- color={0,0,127}));
- connect(add31.y, order3_Inputs_Outputs1.vf) annotation (Line(
- visible=true,
- origin={-28.1135,-5.371},
- points={{-5.8865,19.3539},{-2.8865,19.3539},{-2.8865,-9.629},{-3.8826,-9.629},{-3.8826,-10.3803},{19.4248,-10.3803}},
- color={0,0,127}));
- connect(add32.y, order3_Inputs_Outputs1.pm) annotation (Line(
- visible=true,
- origin={-28.216,-45.5845},
- points={{-5.784,-11.4176},{-2.784,-11.4176},{-2.784,-9.4155},{-4.0877,-9.4155},{-4.0877,19.8332},{19.5273,19.8332}},
- color={0,0,127}));
- connect(step3.y, add4.u2) annotation (Line(
- visible=true,
- origin={-92.0911,-42.5583},
- points={{-10.1922,-2.4417},{2.3974,-2.4417},{2.3974,2.44166},{5.39742,
- 2.44166}},
- color={0,0,127}));
- connect(add3.y, add32.u2) annotation (Line(
- visible=true,
- origin={-62.2878,-56.6625},
- points={{-9.86321,0.3396},{2.2878,0.3396},{2.2878,-0.3396},{5.2878,-0.3396}},
- color={0,0,127}));
-
- connect(step4.y, add4.u1) annotation (Line(
- visible=true,
- origin={-92.0911,-31.2646},
- points={{-10.1922,1.2646},{2.3974,1.2646},{2.3974,-1.26456},{5.39742,-1.26456}},
- color={0,0,127}));
-
- connect(add4.y, add32.u1) annotation (Line(
- visible=true,
- origin={-62.2878,-42.6625},
- points={{-9.86321,6.3396},{2.2878,6.3396},{2.2878,-6.3396},{5.2878,-6.3396}},
- color={0,0,127}));
-
- connect(add3.u2, sine3.y) annotation (Line(
- visible=true,
- origin={-95.6692,-69.1821},
- points={{8.97552,9.06546},{2.2971,9.06546},{2.2971,-5.4041},{-6.78488,-5.4041},
- {-6.78488,-7.3227}},
- color={0,0,127}));
- connect(sine4.y, add3.u1) annotation (Line(
- visible=true,
- origin={-93.5606,-55.5207},
- points={{-9.29448,-4.9991},{-1.4394,-0.9841},{3.8669,2.9916},{6.86692,
- 2.99154}},
- color={0,0,127}));
- connect(sine1.y, add2.u1) annotation (Line(
- visible=true,
- origin={-93.5606,15.4643},
- points={{-9.29448,-4.9991},{-1.4394,-0.9841},{3.8669,2.9916},{6.86692,
- 2.99154}},
- color={0,0,127}));
- connect(add2.u2, sine2.y) annotation (Line(
- visible=true,
- origin={-95.6692,1.8029},
- points={{8.97552,9.06546},{2.2971,9.06546},{2.2971,-5.4041},{-6.78488,-5.4041},
- {-6.78488,-7.3227}},
- color={0,0,127}));
- connect(step2.y, add1.u2) annotation (Line(
- visible=true,
- origin={-92.0911,28.4267},
- points={{-10.1922,-2.4417},{2.3974,-2.4417},{2.3974,2.44166},{5.39742,
- 2.44166}},
- color={0,0,127}));
- connect(step1.y, add1.u1) annotation (Line(
- visible=true,
- origin={-92.0911,39.7204},
- points={{-10.1922,1.2646},{2.3974,1.2646},{2.3974,-1.26456},{5.39742,-1.26456}},
- color={0,0,127}));
-
- connect(add1.y, add31.u1) annotation (Line(
- visible=true,
- origin={-62.2878,28.3225},
- points={{-9.86321,6.3396},{2.2878,6.3396},{2.2878,-6.3396},{5.2878,-6.3396}},
- color={0,0,127}));
-
- connect(add2.y, add31.u2) annotation (Line(
- visible=true,
- origin={-62.2878,14.3225},
- points={{-9.86321,0.3396},{2.2878,0.3396},{2.2878,-0.3396},{5.2878,-0.3396}},
- color={0,0,127}));
-
- connect(order3_Inputs_Outputs1.p, pwLine2.p) annotation (Line(
- visible=true,
- origin={25.2254,-18.2865},
- points={{-11.9141,-2.4648},{1.638,-2.4648},{1.638,2.6151},{5.638,2.6151}}));
- connect(pwLine2.p, pwLine1.p) annotation (Line(
- visible=true,
- origin={32.8634,-25.6714},
- points={{-2,10},{-2,5},{-5,5},{-5,0},{-2,0},{-2,-10}}));
- annotation (Diagram(coordinateSystem(
- extent={{-148.5,-105.0},{148.5,105.0}},
- preserveAspectRatio=true,
- initialScale=0.1,
- grid={5,5}), graphics={Text(
- visible=true,
- origin={39.8634,3.4703},
- fillPattern=FillPattern.Solid,
- extent={{-35.0,-5.8583},{35.0,5.8583}},
- textString="SystemSbase=100 MVA",
- fontName="Arial")}), Documentation);
- end Loadtestmixed;
-
- model Loadtestzipjimma
- extends Modelica.Icons.Example;
- OpenIPSL.Electrical.Branches.PwLine pwLine1(
- X=0.1,
- R=0.01,
- G=0,
- B=0.001/2) annotation (Placement(visible=true, transformation(
- origin={39.8634,-35.6714},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- OpenIPSL.Electrical.Branches.PwLine pwLine2(
- B=0.001/2,
- G=0,
- R=0.01,
- X=0.1) annotation (Placement(visible=true, transformation(
- origin={39.8634,-15.6714},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- OpenIPSL.Electrical.Branches.PwLine pwLine3(
- B=0.001/2,
- G=0,
- R=0.01,
- X=0.1) annotation (Placement(visible=true, transformation(
- origin={85.0,-35.0},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- OpenIPSL.Electrical.Branches.PwLine pwLine4(
- B=0.001/2,
- G=0,
- R=0.01,
- X=0.1) annotation (Placement(visible=true, transformation(
- origin={85.0,-15.0},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- Modelica.Blocks.Math.Add3 add31 annotation (Placement(visible=true,
- transformation(
- origin={-45.0,13.9829},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- Modelica.Blocks.Math.Add add1 annotation (Placement(visible=true,
- transformation(
- origin={-79.1062,34.6621},
- extent={{-6.3229,-6.3229},{6.3229,6.3229}},
- rotation=0)));
- Modelica.Blocks.Sources.Step step1(height=0.0005, startTime=2) annotation (
- Placement(visible=true, transformation(
- origin={-107.7833,40.985},
- extent={{-5.0,-5.0},{5.0,5.0}},
- rotation=0)));
- Modelica.Blocks.Sources.Step step2(height=-0.0005, startTime=2.1) annotation (
- Placement(visible=true, transformation(
- origin={-107.7833,25.985},
- extent={{-5.0,-5.0},{5.0,5.0}},
- rotation=0)));
- Modelica.Blocks.Sources.Sine sine1(amplitude=0.001, freqHz=0.2) annotation (
- Placement(visible=true, transformation(
- origin={-107.7833,10.4652},
- extent={{-4.4802,-4.4802},{4.4802,4.4802}},
- rotation=0)));
- Modelica.Blocks.Math.Add add2(k2=-1) annotation (Placement(visible=true,
- transformation(
- origin={-79.1062,14.6621},
- extent={{-6.3229,-6.3229},{6.3229,6.3229}},
- rotation=0)));
- Modelica.Blocks.Sources.Sine sine2(
- amplitude=0.001,
- freqHz=0.2,
- startTime=5) annotation (Placement(visible=true, transformation(
- origin={-107.3823,-5.5198},
- extent={{-4.4802,-4.4802},{4.4802,4.4802}},
- rotation=0)));
- Modelica.Blocks.Sources.Sine sine3(
- amplitude=0.001,
- freqHz=0.2,
- startTime=10) annotation (Placement(visible=true, transformation(
- origin={-107.3823,-76.5048},
- extent={{-4.4802,-4.4802},{4.4802,4.4802}},
- rotation=0)));
- Modelica.Blocks.Math.Add add3(k2=-1) annotation (Placement(visible=true,
- transformation(
- origin={-79.1062,-56.3229},
- extent={{-6.3229,-6.3229},{6.3229,6.3229}},
- rotation=0)));
- Modelica.Blocks.Sources.Sine sine4(
- amplitude=0.001,
- freqHz=0.2,
- startTime=5) annotation (Placement(visible=true, transformation(
- origin={-107.7833,-60.5198},
- extent={{-4.4802,-4.4802},{4.4802,4.4802}},
- rotation=0)));
- Modelica.Blocks.Sources.Step step3(height=-0.0005, startTime=7.1) annotation (
- Placement(visible=true, transformation(
- origin={-107.7833,-45.0},
- extent={{-5.0,-5.0},{5.0,5.0}},
- rotation=0)));
- Modelica.Blocks.Sources.Step step4(height=0.0005, startTime=7) annotation (
- Placement(visible=true, transformation(
- origin={-107.7833,-30.0},
- extent={{-5.0,-5.0},{5.0,5.0}},
- rotation=0)));
- Modelica.Blocks.Math.Add add4 annotation (Placement(visible=true,
- transformation(
- origin={-79.1062,-36.3229},
- extent={{-6.3229,-6.3229},{6.3229,6.3229}},
- rotation=0)));
- Modelica.Blocks.Math.Add3 add32 annotation (Placement(visible=true,
- transformation(
- origin={-45.0,-57.0021},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- OpenIPSL.Electrical.Machines.PSAT.Order3 order3_Inputs_Outputs1(
- P_0=0.0800989878477798,
- Q_0=0.0570163388727956,
- Sn=20,
- V_b=400,
- V_0=1,
- angle_0=0,
- Vn=400,
- ra=0.001,
- x1d=0.302,
- M=10,
- D=0,
- xd=1.9,
- T1d0=8,
- xq=1.7) annotation (Placement(visible=true, transformation(
- origin={3.3113,-20.7513},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- OpenIPSL.Electrical.Loads.PSAT.ZIP_Jimma ZIP_Jimma1(
- V_0=0.993325565105317,
- Sn=10,
- Tf=0.1,
- P_0=0.8,
- Q_0=0.6) annotation (Placement(visible=true, transformation(
- origin={125.0,-5.0},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- inner OpenIPSL.Electrical.SystemBase SysData annotation (Placement(
- transformation(extent={{100,80},{135,100}})));
- equation
- connect(pwLine4.n, ZIP_Jimma1.p) annotation (Line(
- visible=true,
- origin={107.0,-10.0},
- points={{-13,-5},{4,-5},{4,15},{18,15}}));
- connect(pwLine4.n, pwLine3.n) annotation (Line(
- visible=true,
- origin={92.0,-25.0},
- points={{2,10},{2,5},{5,5},{5,0},{2,0},{2,-10}}));
- connect(pwLine3.p, pwLine4.p) annotation (Line(
- visible=true,
- origin={78.0,-25.0},
- points={{-2,-10},{-2,-5},{-5,-5},{-5,0},{-2,0},{-2,10}}));
- connect(pwLine1.n, pwLine3.p) annotation (Line(
- visible=true,
- origin={67.2159,-35.3357},
- points={{-18.3525,-0.3357},{4.7841,-0.3357},{4.7841,0.3357},{8.7841,0.3357}}));
- connect(pwLine2.n, pwLine4.p) annotation (Line(
- visible=true,
- origin={67.2159,-15.3357},
- points={{-18.3525,-0.3357},{4.7841,-0.3357},{4.7841,0.3357},{8.7841,0.3357}}));
- connect(order3_Inputs_Outputs1.pm0, add32.u3) annotation (Line(
- visible=true,
- origin={-19.0108,-51.4898},
- points={{14.3221,19.7385},{41.1619,19.7385},{41.1619,-23.5102},{-38.8284,
- -23.5102},{-38.8284,-13.5123},{-37.9892,-13.5123}},
- color={0,0,127}));
- connect(order3_Inputs_Outputs1.vf0, add31.u3) annotation (Line(
- visible=true,
- origin={-21.3443,-2.9483},
- points={{16.6556,-6.803},{38.6557,-6.803},{38.6557,-0.1282},{-38.6557,-0.1282},
- {-38.6557,8.9312},{-35.6557,8.9312}},
- color={0,0,127}));
- connect(add31.y, order3_Inputs_Outputs1.vf) annotation (Line(
- visible=true,
- origin={-28.1135,-5.371},
- points={{-5.8865,19.3539},{-2.8865,19.3539},{-2.8865,-9.629},{-3.8826,-9.629},{-3.8826,-10.3803},{19.4248,-10.3803}},
- color={0,0,127}));
- connect(add32.y, order3_Inputs_Outputs1.pm) annotation (Line(
- visible=true,
- origin={-28.216,-45.5845},
- points={{-5.784,-11.4176},{-2.784,-11.4176},{-2.784,-9.4155},{-4.0877,-9.4155},{-4.0877,19.8332},{19.5273,19.8332}},
- color={0,0,127}));
- connect(step3.y, add4.u2) annotation (Line(
- visible=true,
- origin={-92.0911,-42.5583},
- points={{-10.1922,-2.4417},{2.3974,-2.4417},{2.3974,2.44166},{5.39742,
- 2.44166}},
- color={0,0,127}));
- connect(add3.y, add32.u2) annotation (Line(
- visible=true,
- origin={-62.2878,-56.6625},
- points={{-9.86321,0.3396},{2.2878,0.3396},{2.2878,-0.3396},{5.2878,-0.3396}},
- color={0,0,127}));
-
- connect(step4.y, add4.u1) annotation (Line(
- visible=true,
- origin={-92.0911,-31.2646},
- points={{-10.1922,1.2646},{2.3974,1.2646},{2.3974,-1.26456},{5.39742,-1.26456}},
- color={0,0,127}));
-
- connect(add4.y, add32.u1) annotation (Line(
- visible=true,
- origin={-62.2878,-42.6625},
- points={{-9.86321,6.3396},{2.2878,6.3396},{2.2878,-6.3396},{5.2878,-6.3396}},
- color={0,0,127}));
-
- connect(add3.u2, sine3.y) annotation (Line(
- visible=true,
- origin={-95.6692,-69.1821},
- points={{8.97552,9.06546},{2.2971,9.06546},{2.2971,-5.4041},{-6.78488,-5.4041},
- {-6.78488,-7.3227}},
- color={0,0,127}));
- connect(sine4.y, add3.u1) annotation (Line(
- visible=true,
- origin={-93.5606,-55.5207},
- points={{-9.29448,-4.9991},{-1.4394,-0.9841},{3.8669,2.9916},{6.86692,
- 2.99154}},
- color={0,0,127}));
- connect(sine1.y, add2.u1) annotation (Line(
- visible=true,
- origin={-93.5606,15.4643},
- points={{-9.29448,-4.9991},{-1.4394,-0.9841},{3.8669,2.9916},{6.86692,
- 2.99154}},
- color={0,0,127}));
- connect(add2.u2, sine2.y) annotation (Line(
- visible=true,
- origin={-95.6692,1.8029},
- points={{8.97552,9.06546},{2.2971,9.06546},{2.2971,-5.4041},{-6.78488,-5.4041},
- {-6.78488,-7.3227}},
- color={0,0,127}));
- connect(step2.y, add1.u2) annotation (Line(
- visible=true,
- origin={-92.0911,28.4267},
- points={{-10.1922,-2.4417},{2.3974,-2.4417},{2.3974,2.44166},{5.39742,
- 2.44166}},
- color={0,0,127}));
- connect(step1.y, add1.u1) annotation (Line(
- visible=true,
- origin={-92.0911,39.7204},
- points={{-10.1922,1.2646},{2.3974,1.2646},{2.3974,-1.26456},{5.39742,-1.26456}},
- color={0,0,127}));
-
- connect(add1.y, add31.u1) annotation (Line(
- visible=true,
- origin={-62.2878,28.3225},
- points={{-9.86321,6.3396},{2.2878,6.3396},{2.2878,-6.3396},{5.2878,-6.3396}},
- color={0,0,127}));
-
- connect(add2.y, add31.u2) annotation (Line(
- visible=true,
- origin={-62.2878,14.3225},
- points={{-9.86321,0.3396},{2.2878,0.3396},{2.2878,-0.3396},{5.2878,-0.3396}},
- color={0,0,127}));
-
- connect(order3_Inputs_Outputs1.p, pwLine2.p) annotation (Line(
- visible=true,
- origin={25.2254,-18.2865},
- points={{-11.9141,-2.4648},{1.638,-2.4648},{1.638,2.6151},{5.638,2.6151}}));
- connect(pwLine2.p, pwLine1.p) annotation (Line(
- visible=true,
- origin={32.8634,-25.6714},
- points={{-2,10},{-2,5},{-5,5},{-5,0},{-2,0},{-2,-10}}));
- annotation (Diagram(coordinateSystem(
- extent={{-148.5,-105.0},{148.5,105.0}},
- preserveAspectRatio=true,
- initialScale=0.1,
- grid={5,5}), graphics={Text(
- visible=true,
- origin={39.8634,3.4703},
- fillPattern=FillPattern.Solid,
- extent={{-35.0,-5.8583},{35.0,5.8583}},
- textString="SystemSbase=100 MVA",
- fontName="Arial")}), Documentation);
- end Loadtestzipjimma;
- annotation (Documentation);
- end PSAT;
- annotation (Documentation);
- end Loads;
-
- package Solar
- extends Modelica.Icons.ExamplesPackage;
-
- package PSAT
- extends Modelica.Icons.ExamplesPackage;
-
- model SolarPQtest
- extends Modelica.Icons.Example;
- OpenIPSL.Electrical.Solar.PSAT.ConstantPQPV.PQ1 PQ11(
- P_0=0.4,
- Q_0=0.3,
- V_0=1.00018548610126,
- angle_0=-0.0000253046024029618) annotation (Placement(visible=
- true, transformation(
- origin={35.0,10.0},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- OpenIPSL.Electrical.Branches.PwLine pwLine1(
- B=0.001/2,
- G=0,
- R=0.01,
- X=0.1) annotation (Placement(visible=true, transformation(
- origin={-70.0,-10.0},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- OpenIPSL.Electrical.Events.PwFault pwFault1(
- R=20,
- X=1,
- t1=3,
- t2=3.1) annotation (Placement(visible=true, transformation(
- origin={20.0,-57.3},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- OpenIPSL.Electrical.Branches.PwLine pwLinewithOpening1(
- B=0.001/2,
- G=0,
- R=0.01,
- X=0.1,
- t1=8,
- t2=8.1) annotation (Placement(visible=true, transformation(
- origin={-25.0,0.0},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- OpenIPSL.Electrical.Branches.PwLine pwLine2(
- B=0.001/2,
- G=0,
- R=0.01,
- X=0.1) annotation (Placement(visible=true, transformation(
- origin={-70.0,10.0},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- OpenIPSL.Electrical.Branches.PwLine pwLine3(
- B=0.001/2,
- G=0,
- R=0.01,
- X=0.1) annotation (Placement(visible=true, transformation(
- origin={-25.0,-30.0},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- OpenIPSL.Electrical.Branches.PwLine pwLine4(
- B=0.001/2,
- G=0,
- R=0.01,
- X=0.1) annotation (Placement(visible=true, transformation(
- origin={-25.0,15.0},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- OpenIPSL.Electrical.Loads.PSAT.LOADPQ pwLoadPQ2(
- P_0=0.08,
- Q_0=0.06,
- V_0=1,
- angle_0=0) annotation (Placement(visible=true, transformation(
- origin={15.0,-30.0},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- OpenIPSL.Electrical.Machines.PSAT.Order3 order31(
- Sn=20,
- P_0=0.0401256732154526,
- Q_0=0.0262725307404601,
- V_b=400,
- V_0=1,
- angle_0=0,
- Vn=400,
- ra=0.001,
- x1d=0.302,
- M=10,
- D=0,
- xd=1.9,
- T1d0=8,
- xq=1.7) annotation (Placement(visible=true, transformation(
- origin={-110.0,10.0},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- OpenIPSL.Electrical.Buses.Bus bus1 annotation (Placement(visible=
- true, transformation(
- origin={-87.5421,10.0},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- OpenIPSL.Electrical.Buses.Bus bus2 annotation (Placement(visible=
- true, transformation(
- origin={-46.7243,11.8063},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- OpenIPSL.Electrical.Buses.Bus bus3 annotation (Placement(visible=
- true, transformation(
- origin={5.0,12.1033},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- OpenIPSL.Electrical.Buses.Bus bus4 annotation (Placement(visible=
- true, transformation(
- origin={-3.3112,-30.0},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- inner OpenIPSL.Electrical.SystemBase SysData
- annotation (Placement(transformation(extent={{50,50},{75,70}})));
- equation
- connect(pwLine2.p, pwLine1.p) annotation (Line(
- visible=true,
- origin={-77.0,0.0},
- points={{-4.66667,10},{-4.66667,5},{-5,5},{-5,0},{-4.66667,0},{-4.66667,-10}}));
- connect(pwLine1.n, pwLine2.n) annotation (Line(
- visible=true,
- origin={-63.0,0.0},
- points={{4.66667,-10},{4.66667,-5},{5,-5},{5,0},{4.66667,0},{4.66667,10}}));
- connect(pwLine4.p, pwLinewithOpening1.p) annotation (Line(
- visible=true,
- origin={-32.0,7.5},
- points={{0.0,7.5},{0.0,-7.5}}));
- connect(pwLinewithOpening1.n, pwLine4.n) annotation (Line(
- visible=true,
- origin={-18.0,7.5},
- points={{0.0,-7.5},{0.0,7.5}}));
- connect(bus1.p, pwLine2.p) annotation (Line(
- visible=true,
- origin={-82.2711,10.0},
- points={{-5.271,0},{0.604433,0}}));
- connect(pwLine2.n, bus2.p) annotation (Line(
- visible=true,
- origin={-52.1495,10.6021},
- points={{-6.18383,-0.6021},{5.4252,-0.6021},{5.4252,1.2042}}));
- connect(bus2.p, pwLine4.p) annotation (Line(
- visible=true,
- origin={-41.8162,13.9354},
- points={{-4.9081,-2.1291},{-4.9081,1.0646},{5.14953,1.0646}}));
- connect(bus2.p, pwLine3.p) annotation (Line(
- visible=true,
- origin={-41.8162,-16.0646},
- points={{-4.9081,27.8709},{-4.9081,-13.9354},{5.14953,-13.9354}}));
- connect(pwLine4.n, bus3.p) annotation (Line(
- visible=true,
- origin={-7.25,13.5517},
- points={{-6.08333,1.4483},{-0.75,1.4483},{-0.75,-1.4484},{12.25,-1.4484}}));
- connect(pwLine3.n, bus4.p) annotation (Line(
- visible=true,
- origin={-10.6556,-30.0},
- points={{-2.67773,0},{7.3444,0}}));
- connect(bus4.p, pwLoadPQ2.p) annotation (Line(
- visible=true,
- origin={0.4592,-29.3333},
- points={{-3.7704,-0.6667},{-3.7704,10.3333},{14.5408,10.3333}}));
- connect(bus4.p, pwFault1.p) annotation (Line(
- visible=true,
- origin={2.1259,-47.5333},
- points={{-5.4371,17.5333},{-5.4371,-9.7667},{6.20743,-9.7667}}));
- connect(bus1.p, order31.p) annotation (Line(
- visible=true,
- origin={-91.3614,9.8998},
- points={{3.8193,0.1002},{3.8193,0.14984},{-7.6386,0.14984}}));
- connect(PQ11.p, bus3.p) annotation (Line(
- visible=true,
- origin={17.4388,13.7927},
- points={{6.5612,-3.7927},{6.2194,-1.6893},{-12.4388,-1.6894}}));
- connect(order31.vf0, order31.vf) annotation (Line(points={{-118,21},{-118,25},
- {-125,25},{-125,15},{-120,15}}, color={0,0,127}));
- connect(order31.pm, order31.pm0) annotation (Line(points={{-120,5},{-125,5},{
- -125,-5},{-118,-5},{-118,-1}}, color={0,0,127}));
- annotation (Diagram(coordinateSystem(
- extent={{-148.5,-105},{148.5,105}},
- preserveAspectRatio=false,
- initialScale=0.1,
- grid={5,5})), Documentation);
- end SolarPQtest;
-
- model SolarPVtest
- extends Modelica.Icons.Example;
- OpenIPSL.Electrical.Branches.PwLine pwLine1(
- B=0.001/2,
- G=0,
- R=0.01,
- X=0.1) annotation (Placement(visible=true, transformation(
- origin={-70.0,-10.0},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- OpenIPSL.Electrical.Events.PwFault pwFault1(
- R=20,
- X=1,
- t1=3,
- t2=3.1) annotation (Placement(visible=true, transformation(
- origin={20.0,-57.3},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- OpenIPSL.Electrical.Branches.PwLine pwLinewithOpening1(
- B=0.001/2,
- G=0,
- R=0.01,
- X=0.1,
- t1=8,
- t2=8.1) annotation (Placement(visible=true, transformation(
- origin={-25.0,0.0},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- OpenIPSL.Electrical.Branches.PwLine pwLine2(
- B=0.001/2,
- G=0,
- R=0.01,
- X=0.1) annotation (Placement(visible=true, transformation(
- origin={-70.0,10.0},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- OpenIPSL.Electrical.Branches.PwLine pwLine3(
- B=0.001/2,
- G=0,
- R=0.01,
- X=0.1) annotation (Placement(visible=true, transformation(
- origin={-25.0,-30.0},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- OpenIPSL.Electrical.Branches.PwLine pwLine4(
- B=0.001/2,
- G=0,
- R=0.01,
- X=0.1) annotation (Placement(visible=true, transformation(
- origin={-25.0,15.0},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- OpenIPSL.Electrical.Loads.PSAT.LOADPQ pwLoadPQ2(
- P_0=0.08,
- Q_0=0.06,
- V_0=1,
- angle_0=0) annotation (Placement(visible=true, transformation(
- origin={15.0,-30.0},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- OpenIPSL.Electrical.Machines.PSAT.Order3 order31(
- Sn=20,
- P_0=0.0401256732154526,
- Q_0=0.0262725307404601,
- V_b=400,
- V_0=1,
- angle_0=0,
- Vn=400,
- ra=0.001,
- x1d=0.302,
- M=10,
- D=0,
- xd=1.9,
- T1d0=8,
- xq=1.7) annotation (Placement(visible=true, transformation(
- origin={-110.0,10.0},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- OpenIPSL.Electrical.Buses.Bus bus1 annotation (Placement(visible=
- true, transformation(
- origin={-87.5421,10.0},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- OpenIPSL.Electrical.Buses.Bus bus2 annotation (Placement(visible=
- true, transformation(
- origin={-46.7243,11.8063},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- OpenIPSL.Electrical.Buses.Bus bus3 annotation (Placement(visible=
- true, transformation(
- origin={5.0,12.1033},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- OpenIPSL.Electrical.Buses.Bus bus4 annotation (Placement(visible=
- true, transformation(
- origin={-3.3112,-30.0},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- OpenIPSL.Electrical.Solar.PSAT.ConstantPQPV.PV1 PV11(
- Q_0=0.283430554716626,
- angle_0=-0.00000839852213846341,
- V_0=1.00002,
- vref=1.00002,
- P_0=0.4) annotation (Placement(visible=true, transformation(
- origin={30.0,12.1033},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- inner OpenIPSL.Electrical.SystemBase SysData
- annotation (Placement(transformation(extent={{55,50},{80,70}})));
- equation
- connect(bus3.p, PV11.p) annotation (Line(
- visible=true,
- origin={12.0,12.1033},
- points={{-7,0},{7,0}}));
- connect(pwLine2.p, pwLine1.p) annotation (Line(
- visible=true,
- origin={-77.0,0.0},
- points={{-4.66667,10},{-4.66667,5},{-5,5},{-5,0},{-4.66667,0},{-4.66667,-10}}));
- connect(pwLine1.n, pwLine2.n) annotation (Line(
- visible=true,
- origin={-63.0,0.0},
- points={{4.66667,-10},{4.66667,-5},{5,-5},{5,0},{4.66667,0},{4.66667,10}}));
- connect(pwLine4.p, pwLinewithOpening1.p) annotation (Line(
- visible=true,
- origin={-32.0,7.5},
- points={{0.0,7.5},{0.0,-7.5}}));
- connect(pwLinewithOpening1.n, pwLine4.n) annotation (Line(
- visible=true,
- origin={-18.0,7.5},
- points={{0.0,-7.5},{0.0,7.5}}));
- connect(bus1.p, pwLine2.p) annotation (Line(
- visible=true,
- origin={-82.2711,10.0},
- points={{-5.271,0},{0.604433,0}}));
- connect(pwLine2.n, bus2.p) annotation (Line(
- visible=true,
- origin={-52.1495,10.6021},
- points={{-6.18383,-0.6021},{5.4252,-0.6021},{5.4252,1.2042}}));
- connect(bus2.p, pwLine4.p) annotation (Line(
- visible=true,
- origin={-41.8162,13.9354},
- points={{-4.9081,-2.1291},{-4.9081,1.0646},{5.14953,1.0646}}));
- connect(bus2.p, pwLine3.p) annotation (Line(
- visible=true,
- origin={-41.8162,-16.0646},
- points={{-4.9081,27.8709},{-4.9081,-13.9354},{5.14953,-13.9354}}));
- connect(pwLine4.n, bus3.p) annotation (Line(
- visible=true,
- origin={-7.25,13.5517},
- points={{-6.08333,1.4483},{-0.75,1.4483},{-0.75,-1.4484},{12.25,-1.4484}}));
- connect(pwLine3.n, bus4.p) annotation (Line(
- visible=true,
- origin={-10.6556,-30.0},
- points={{-2.67773,0},{7.3444,0}}));
- connect(bus4.p, pwLoadPQ2.p) annotation (Line(
- visible=true,
- origin={0.4592,-29.3333},
- points={{-3.7704,-0.6667},{-3.7704,10.3333},{14.5408,10.3333}}));
- connect(bus4.p, pwFault1.p) annotation (Line(
- visible=true,
- origin={2.1259,-47.5333},
- points={{-5.4371,17.5333},{-5.4371,-9.7667},{6.20743,-9.7667}}));
- connect(bus1.p, order31.p) annotation (Line(
- visible=true,
- origin={-91.3614,9.8998},
- points={{3.8193,0.1002},{3.8193,0.14984},{-7.6386,0.14984}}));
- connect(order31.vf0, order31.vf) annotation (Line(points={{-118,21},{-118,25},
- {-130,25},{-130,15},{-120,15}}, color={0,0,127}));
- connect(order31.pm, order31.pm0) annotation (Line(points={{-120,5},{-130,5},{
- -130,-5},{-118,-5},{-118,-1}}, color={0,0,127}));
- annotation (Diagram(coordinateSystem(
- extent={{-148.5,-105},{148.5,105}},
- preserveAspectRatio=false,
- initialScale=0.1,
- grid={5,5}), graphics={Text(
- visible=true,
- origin={-70.0,29.1417},
- fillPattern=FillPattern.Solid,
- extent={{-35.0,-5.8583},{35.0,5.8583}},
- textString="SystemSbase=100 MVA",
- fontName="Arial")}), Documentation);
- end SolarPVtest;
-
- model testTemperature
- extends Modelica.Icons.Example;
- Modelica.Blocks.Sources.Constant const(k=1000) annotation (Placement(visible=
- true, transformation(
- origin={-73.3987,11.6013},
- extent={{-3.3987,-3.3987},{3.3987,3.3987}},
- rotation=0)));
- Modelica.Blocks.Sources.Constant const1(k=25) annotation (Placement(visible=
- true, transformation(
- origin={-85.0,-8.3987},
- extent={{-3.3987,-3.3987},{3.3987,3.3987}},
- rotation=0)));
- OpenIPSL.Electrical.Branches.PwLine pwLine13(
- B=0,
- G=0,
- R=0,
- X=0.04*1/0.63) annotation (Placement(visible=true, transformation(
- origin={49.0376,0.0024},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- OpenIPSL.Electrical.Branches.PwLine pwLine14(
- B=0.001884956/2*100,
- G=0,
- R=0,
- X=0.848230016469244/100) annotation (Placement(visible=true,
- transformation(
- origin={83.1777,5.4501},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- OpenIPSL.Electrical.Buses.InfiniteBus infiniteBus8(angle_0=0, V_0=1)
- annotation (Placement(visible=true, transformation(
- origin={117.9874,-1.1504},
- extent={{10.0,-10.0},{-10.0,10.0}},
- rotation=0)));
- OpenIPSL.Electrical.Branches.PwLine pwLine15(
- B=0.001884956/2*100,
- G=0,
- R=0,
- X=0.848230016469244/100) annotation (Placement(visible=true,
- transformation(
- origin={83.2752,-9.5499},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- Modelica.Blocks.Math.Add add1 annotation (Placement(visible=true,
- transformation(
- origin={-50.0,-16.424},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- Modelica.Blocks.Sources.Step step1(startTime=0.3, height=15) annotation (
- Placement(visible=true, transformation(
- origin={-110.8976,-31.3287},
- extent={{-4.1024,-4.1024},{4.1024,4.1024}},
- rotation=0)));
- Modelica.Blocks.Sources.Step step2(startTime=0.7, height=-15) annotation (
- Placement(visible=true, transformation(
- origin={-110.0,-61.3488},
- extent={{-5.0,-5.0},{5.0,5.0}},
- rotation=0)));
- Modelica.Blocks.Math.Add add2 annotation (Placement(visible=true,
- transformation(
- origin={-82.1332,-43.3987},
- extent={{-2.8669,-2.8669},{2.8669,2.8669}},
- rotation=0)));
- OpenIPSL.Electrical.Solar.KTH.PFmodelmpptCorrected05MW PFmodel1(
- anglev0=0.030372922116265,
- p0=0.44884,
- q0=0.00003,
- v0=1.0003436) annotation (Placement(visible=true, transformation(
- origin={-7.9875,0.0},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- inner OpenIPSL.Electrical.SystemBase SysData
- annotation (Placement(transformation(extent={{50,50},{70,70}})));
- equation
- connect(add1.y, PFmodel1.T) annotation (Line(
- visible=true,
- origin={-26.2406,-10.712},
- points={{-12.7594,-5.712},{3.2531,-5.712},{3.2531,5.712},{6.2531,5.712}},
- color={0,0,127}));
-
- connect(const.y, PFmodel1.E) annotation (Line(
- visible=true,
- origin={-33.9057,8.3006},
- points={{-35.7544,3.3007},{10.9182,3.3007},{10.9182,-3.3006},{13.9182,-3.3006}},
- color={0,0,127}));
-
- connect(PFmodel1.pwPin1, pwLine13.p) annotation (Line(
- visible=true,
- origin={32.2688,0.1454},
- points={{-29.2563,-0.1454},{9.7437,-0.1454},{9.7437,-0.143},{5.10213,-0.143}}));
- connect(const1.y, add1.u1) annotation (Line(
- visible=true,
- origin={-68.3155,-9.4113},
- points={{-12.9459,1.0126},{3.3154,1.0126},{3.3154,-1.0127},{6.3155,-1.0127}},
- color={0,0,127}));
-
- connect(add2.y, add1.u2) annotation (Line(
- visible=true,
- origin={-73.3198,-29.4155},
- points={{-5.65981,-13.9832},{-5.65981,6.9916},{11.3198,6.9915}},
- color={0,0,127}));
- connect(step1.y, add2.u1) annotation (Line(
- visible=true,
- origin={-92.2764,-36.5036},
- points={{-14.1086,5.1749},{3.7029,5.1749},{3.7029,-5.17496},{6.70292,-5.17496}},
- color={0,0,127}));
-
- connect(add2.u2, step2.y) annotation (Line(
- visible=true,
- origin={-98.2684,-53.2338},
- points={{12.6949,8.11496},{-3.2317,8.11496},{-3.2317,-8.115},{-6.2316,-8.115}},
- color={0,0,127}));
-
- connect(pwLine13.n, pwLine14.p) annotation (Line(
- visible=true,
- origin={68.1427,2.7263},
- points={{-7.43843,-2.7239},{2.035,-2.7239},{2.035,2.7238},{3.36833,2.7238}}));
- connect(pwLine14.n, pwLine15.n) annotation (Line(
- visible=true,
- origin={90.2103,-4.5499},
- points={{4.63407,10},{4.63407,-5},{4.73157,-5}}));
- connect(pwLine14.p, pwLine15.p) annotation (Line(
- visible=true,
- origin={76.2102,-4.5499},
- points={{-4.69917,10},{-4.69917,-5},{-4.60167,-5}}));
- connect(infiniteBus8.p, pwLine14.n) annotation (Line(
- visible=true,
- origin={97.3801,2.1498},
- points={{31.6073,-3.3002},{-1.2024,-3.3002},{-1.2024,3.3003},{-2.53573,
- 3.3003}}));
- annotation (Diagram(coordinateSystem(
- extent={{-148.5,-105.0},{148.5,105.0}},
- preserveAspectRatio=true,
- initialScale=0.1,
- grid={5,5}), graphics={Text(
- visible=true,
- origin={136.1319,30.0},
- fillPattern=FillPattern.Solid,
- extent={{-41.1319,-13.2857},{41.1319,13.2857}},
- textString="VoltageGrid=10000 (1p.u.)",
- fontName="Arial")}), Documentation);
- end testTemperature;
-
- model testIrradation
- extends Modelica.Icons.Example;
- Modelica.Blocks.Sources.Constant const(k=25) annotation (Placement(visible=
- true, transformation(
- origin={-59.5887,-17.0499},
- extent={{-3.3987,-3.3987},{3.3987,3.3987}},
- rotation=0)));
- Modelica.Blocks.Sources.Constant const1(k=1000) annotation (Placement(visible=
- true, transformation(
- origin={-87.9874,22.9501},
- extent={{-3.3987,-3.3987},{3.3987,3.3987}},
- rotation=0)));
- OpenIPSL.Electrical.Branches.PwLine pwLine13(
- B=0,
- G=0,
- R=0,
- X=0.04*1/0.63) annotation (Placement(visible=true, transformation(
- origin={49.0376,0.0024},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- OpenIPSL.Electrical.Branches.PwLine pwLine14(
- B=0.001884956/2*100,
- G=0,
- R=0,
- X=0.848230016469244/100) annotation (Placement(visible=true,
- transformation(
- origin={83.1777,5.4501},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- OpenIPSL.Electrical.Buses.InfiniteBus infiniteBus8(angle_0=0, V_0=1)
- annotation (Placement(visible=true, transformation(
- origin={117.9874,-1.1504},
- extent={{10.0,-10.0},{-10.0,10.0}},
- rotation=0)));
- OpenIPSL.Electrical.Branches.PwLine pwLine15(
- B=0.001884956/2*100,
- G=0,
- R=0,
- X=0.848230016469244/100) annotation (Placement(visible=true,
- transformation(
- origin={83.2752,-9.5499},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- Modelica.Blocks.Math.Add add1 annotation (Placement(visible=true,
- transformation(
- origin={-52.9874,14.9248},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- Modelica.Blocks.Sources.Step step1(startTime=0.3, height=-500) annotation (
- Placement(visible=true, transformation(
- origin={-113.885,0.0201},
- extent={{-4.1024,-4.1024},{4.1024,4.1024}},
- rotation=0)));
- Modelica.Blocks.Sources.Step step2(startTime=0.7, height=500) annotation (
- Placement(visible=true, transformation(
- origin={-112.9874,-30.0},
- extent={{-5.0,-5.0},{5.0,5.0}},
- rotation=0)));
- Modelica.Blocks.Math.Add add2 annotation (Placement(visible=true,
- transformation(
- origin={-85.1206,-12.0499},
- extent={{-2.8669,-2.8669},{2.8669,2.8669}},
- rotation=0)));
- OpenIPSL.Electrical.Solar.KTH.PFmodelmpptCorrected05MW PFmodel1(
- anglev0=0.030372922116265,
- p0=0.44884,
- q0=0.00003,
- v0=1.00034051839501) annotation (Placement(visible=true,
- transformation(
- origin={-7.9875,0.2883},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- inner OpenIPSL.Electrical.SystemBase SysData
- annotation (Placement(transformation(extent={{50,50},{75,70}})));
- equation
- connect(const1.y, add1.u1) annotation (Line(
- visible=true,
- origin={-71.3029,21.9375},
- points={{-12.9459,1.0126},{3.3154,1.0126},{3.3154,-1.0127},{6.3155,-1.0127}},
- color={0,0,127}));
-
- connect(add2.y, add1.u2) annotation (Line(
- visible=true,
- origin={-76.3072,1.9333},
- points={{-5.65981,-13.9832},{-5.65981,6.9915},{11.3198,6.9915}},
- color={0,0,127}));
- connect(step1.y, add2.u1) annotation (Line(
- visible=true,
- origin={-95.2638,-5.1548},
- points={{-14.1086,5.1749},{3.7029,5.1749},{3.7029,-5.17496},{6.70292,-5.17496}},
- color={0,0,127}));
-
- connect(add2.u2, step2.y) annotation (Line(
- visible=true,
- origin={-101.2558,-21.885},
- points={{12.6949,8.11496},{-3.2317,8.11496},{-3.2317,-8.115},{-6.2316,-8.115}},
- color={0,0,127}));
-
- connect(pwLine13.n, pwLine14.p) annotation (Line(
- visible=true,
- origin={68.1427,2.7263},
- points={{-7.43843,-2.7239},{2.035,-2.7239},{2.035,2.7238},{3.36833,2.7238}}));
- connect(pwLine14.n, pwLine15.n) annotation (Line(
- visible=true,
- origin={90.2103,-4.5499},
- points={{4.63407,10},{4.63407,-5},{4.73157,-5}}));
- connect(pwLine14.p, pwLine15.p) annotation (Line(
- visible=true,
- origin={76.2102,-4.5499},
- points={{-4.69917,10},{-4.69917,-5},{-4.60167,-5}}));
- connect(infiniteBus8.p, pwLine14.n) annotation (Line(
- visible=true,
- origin={97.3801,2.1498},
- points={{31.6073,-3.3002},{-1.2024,-3.3002},{-1.2024,3.3003},{-2.53573,
- 3.3003}}));
- connect(const.y, PFmodel1.T) annotation (Line(
- visible=true,
- origin={-30.4532,-10.8808},
- points={{-25.3969,-6.1691},{7.4657,-6.1691},{7.4657,6.1691},{10.4657,
- 6.1691}},
- color={0,0,127}));
- connect(PFmodel1.pwPin1, pwLine13.p) annotation (Line(
- visible=true,
- origin={32.2688,0.1454},
- points={{-29.2563,0.1429},{9.7437,0.1429},{9.7437,-0.143},{5.10213,-0.143}}));
- connect(add1.y, PFmodel1.E) annotation (Line(
- visible=true,
- origin={-26.9875,10.1066},
- points={{-14.9999,4.8182},{4,4.8183},{4,-4.8183},{7,-4.8183}},
- color={0,0,127}));
- annotation (Diagram(coordinateSystem(
- extent={{-148.5,-105.0},{148.5,105.0}},
- preserveAspectRatio=true,
- initialScale=0.1,
- grid={5,5}), graphics={Text(
- visible=true,
- origin={136.1319,30.0},
- fillPattern=FillPattern.Solid,
- extent={{-41.1319,-13.2857},{41.1319,13.2857}},
- textString="VoltageGrid=10000 (1p.u.)",
- fontName="Arial")}), Documentation);
- end testIrradation;
- annotation (Documentation);
- end PSAT;
- annotation (Documentation);
- end Solar;
-
- package Wind
- extends Modelica.Icons.ExamplesPackage;
-
- model PSAT_WT_Test
- extends Modelica.Icons.Example;
- OpenIPSL.Electrical.Wind.PSAT.PSAT_Type_3.PSAT_WT dfig_Turbine1(
- V_b=1,
- angle_0=0.00161587015139445,
- P_0=0.016,
- Q_0=-0.002086945,
- fn=50,
- poles=2,
- vw_base=15,
- Pnom=10,
- ngb=1/89) annotation (Placement(visible=true, transformation(
- origin={46.6515,15.0},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- OpenIPSL.Electrical.Branches.PwLine pwLine5(
- B=0.001,
- G=0,
- R=0.01,
- X=0.1) annotation (Placement(visible=true, transformation(
- origin={6.551,15.0},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- OpenIPSL.Electrical.Wind.WindGenerator windGenerator1(
- v0=0.537631527453836,
- typ=3,
- tstop=15,
- sigma=1,
- vmax=25/15,
- wmag=-0.2) annotation (Placement(visible=true, transformation(
- origin={25.0,40.0},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- OpenIPSL.Electrical.Buses.InfiniteBus infiniteBus1(V_0=1, angle_0=0)
- annotation (Placement(visible=true, transformation(
- origin={-28.2108,15.0},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- equation
- connect(infiniteBus1.p, pwLine5.p) annotation (Line(
- visible=true,
- origin={-8.8299,15.0},
- points={{-30.3809,0},{3.71423,0}},
- color={0,0,255}));
- connect(windGenerator1.Vw, dfig_Turbine1.Wind_Speed) annotation (Line(
- visible=true,
- origin={43.101,34.2663},
- points={{-7.101,5.7337},{3.5505,5.7337},{3.5505,-11.4673}},
- color={0,0,127}));
- connect(pwLine5.n, dfig_Turbine1.pin) annotation (Line(
- visible=true,
- origin={24.6013,15.0},
- points={{-6.38363,0},{11.0502,0}},
- color={0,0,255}));
- annotation (Diagram(coordinateSystem(
- extent={{-148.5,-105.0},{148.5,105.0}},
- preserveAspectRatio=true,
- initialScale=0.1,
- grid={5,5})), Documentation);
- end PSAT_WT_Test;
-
- model GE_WT_Test
- extends Modelica.Icons.Example;
- OpenIPSL.Electrical.Wind.GE.Type_3.GE_WT GE_WT_init1 annotation (
- Placement(visible=true, transformation(
- origin={75.0,1.7487},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- OpenIPSL.Electrical.Buses.InfiniteBus infBus2(angle_0=-0.000216626610049175,
- V_0=1.05999999985841) annotation (Placement(visible=true,
- transformation(
- origin={-42.5798,1.9703},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- OpenIPSL.Electrical.Branches.PwLine pwLine2(
- R=0.009,
- X=0.065,
- B=0.063,
- G=0) annotation (Placement(visible=true, transformation(
- origin={-1.6888,1.6478},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- OpenIPSL.Electrical.Branches.PwLine pwLine3(
- R=0.0006,
- X=0.0333,
- G=0,
- B=0) annotation (Placement(visible=true, transformation(
- origin={16.9703,1.7398},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- OpenIPSL.Electrical.Branches.PwLine pwLine4(
- R=0.05,
- X=0.015,
- B=0.045,
- G=0) annotation (Placement(visible=true, transformation(
- origin={35.0,1.6888},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- OpenIPSL.Electrical.Branches.PwLine pwLine5(
- R=0.00222,
- X=0.0222,
- G=0,
- B=0) annotation (Placement(visible=true, transformation(
- origin={53.0297,1.8373},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- OpenIPSL.Electrical.Wind.WindGenerator windGenerator1 annotation (
- Placement(visible=true, transformation(
- origin={50.0,17.493},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- OpenIPSL.Electrical.Branches.PwLine pwLine1(
- R=0.013,
- X=0.13,
- G=0,
- B=0) annotation (Placement(visible=true, transformation(
- origin={-20.0,1.7863},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- OpenIPSL.Electrical.Events.PwFault pwFault1(
- R=1/99999.999,
- t1=10,
- t2=10.1,
- X=1/99999.999) annotation (Placement(visible=true, transformation(
- origin={0.9428,15.0},
- extent={{-14.0572,-11.7143},{14.0572,11.7143}},
- rotation=0)));
- equation
- connect(infBus2.p, pwLine1.p) annotation (Line(
- visible=true,
- origin={-30.0532,1.8477},
- points={{-23.5266,0.1226},{-23.5266,-0.0614},{-1.61347,-0.0614}},
- color={0,0,255}));
- connect(pwLine1.n, pwFault1.p) annotation (Line(
- visible=true,
- origin={-11.6324,11.3764},
- points={{3.29907,-9.5901},{3.29907,3.6236},{-3.82487,3.6236}},
- color={0,0,255}));
- connect(pwLine1.n, pwLine2.p) annotation (Line(
- visible=true,
- origin={-11.5629,1.694},
- points={{3.22957,0.0923},{3.22957,-0.0462},{-1.79257,-0.0462}},
- color={0,0,255}));
- connect(pwLine2.n, pwLine3.p) annotation (Line(
- visible=true,
- origin={6.8642,1.7091},
- points={{3.11367,-0.0613},{3.11367,0.0307},{-1.56057,0.0307}},
- color={0,0,255}));
- connect(windGenerator1.Vw, GE_WT_init1.Wind_Speed) annotation (Line(
- visible=true,
- origin={70.3333,14.8446},
- points={{-9.3333,2.6484},{4.6667,2.6484},{4.6667,-5.29687}},
- color={0,0,127}));
- connect(pwLine5.n, GE_WT_init1.pwPin1) annotation (Line(
- visible=true,
- origin={61.3531,1.7782},
- points={{3.34327,0.0591},{3.34327,-0.0295},{2.6469,-0.0295}},
- color={0,0,255}));
- connect(pwLine4.n, pwLine5.p) annotation (Line(
- visible=true,
- origin={43.3432,1.7878},
- points={{3.32347,-0.099},{3.32347,0.0495},{-1.98017,0.0495}},
- color={0,0,255}));
- connect(pwLine3.n, pwLine4.p) annotation (Line(
- visible=true,
- origin={25.3135,1.7058},
- points={{3.32347,0.034},{3.32347,-0.017},{-1.98017,-0.017}},
- color={0,0,255}));
- annotation (Diagram(coordinateSystem(
- extent={{-148.5,-105},{148.5,105}},
- preserveAspectRatio=false,
- initialScale=0.1,
- grid={5,5}), graphics), Documentation);
- end GE_WT_Test;
-
- package PSSE
- extends Modelica.Icons.ExamplesPackage;
-
- package WT4G
- extends Modelica.Icons.ExamplesPackage;
-
- model WT4G1_WT4E1
- extends Modelica.Icons.Example;
- constant Real pi=Modelica.Constants.pi;
- parameter Real V1=1.00000;
- parameter Real A1=-1.570655e-005;
- parameter Real V3=0.9999999;
- parameter Real A3=0.02574992;
- parameter Real P1=-1.4988;
- parameter Real Q1=-4.3340;
- parameter Real Zr=0.00000E+0;
- parameter Real Zi=2.00000E-1;
- parameter Real P3=1.500;
- parameter Real Q3=-5.6658;
- parameter Real R1=2.50000E-2;
- parameter Real X1=2.50000E-2;
- parameter Real B1=0.05000;
- parameter Real dyrw[1, 9]=[0.20000E-01, 0.20000E-01, 0.40000, 0.90000, 1.1100,
- 1.2000, 2.0000, 2.0000, 0.20000E-01];
- OpenIPSL.Electrical.Branches.PwLine pwLine(
- R=R1,
- X=X1,
- G=0,
- B=B1/2) annotation (Placement(transformation(extent={{30,10},{
- 50,30}})));
- OpenIPSL.Electrical.Branches.PwLine pwLine1(
- R=R1,
- X=X1,
- G=0,
- B=B1/2) annotation (Placement(transformation(extent={{30,-30},{
- 50,-10}})));
- OpenIPSL.Electrical.Machines.PSSE.GENCLS gENCLS2_1(
- V_0=V1,
- angle_0=A1,
- P_0=P1,
- Q_0=Q1,
- R_a=Zr,
- X_d=Zi,
- M_b=100) annotation (Placement(transformation(extent={{102,-12},
- {90,12}})));
- OpenIPSL.Electrical.Branches.PwLine pwLine2(
- G=0,
- B=0,
- R=2.50000E-3,
- X=2.50000E-3) annotation (Placement(transformation(extent={{-20,
- -10},{0,10}})));
- OpenIPSL.Electrical.Wind.PSSE.WT4G.WT4G1 wT4G1(
- V_0=V3,
- angle_0=A3,
- M_b=100,
- P_0=P3,
- Q_0=Q3,
- T_IQCmd=0.02,
- T_IPCmd=0.02,
- V_LVPL1=0.4,
- V_LVPL2=0.9,
- G_LVPL=1.11,
- V_HVRCR=1.2,
- CUR_HVRCR=2,
- RIp_LVPL=2,
- T_LVPL=0.02) annotation (Placement(transformation(
- extent={{12,12},{-12,-12}},
- rotation=180,
- origin={-52,0})));
- OpenIPSL.Electrical.Events.PwFault pwFault(
- R=0.5,
- X=0.5,
- t1=1,
- t2=1.5) annotation (Placement(transformation(extent={{20,-60},{
- 40,-40}})));
- OpenIPSL.Electrical.Wind.PSSE.WT4G.WT4E1 wT4E1_1(
- PFAFLG=false,
- VARFLG=true,
- Tfv=0.15,
- Kpv=18,
- KIV=5,
- Kpp=0.05,
- KIP=0.15,
- Kf=0,
- Tf=0.08,
- QMX=0.48,
- QMN=-0.47,
- IPMAX=1.1,
- TRV=0.1,
- dPMX=0.5,
- dPMN=-0.5,
- T_Power=0.05,
- KQI=0.15,
- VMINCL=0.9,
- VMAXCL=1.1,
- KVI=120,
- Tv=0.05,
- Tp=0.05,
- ImaxTD=1.7,
- Iphl=1.11,
- Iqhl=1.11,
- PQFLAG=false) annotation (Placement(transformation(extent={{-96,
- 12},{-72,-12}})));
- inner OpenIPSL.Electrical.SystemBase SysData(S_b=100, fn=60)
- annotation (Placement(transformation(extent={{-100,80},{-48,100}})));
- OpenIPSL.Electrical.Buses.Bus GEN annotation (Placement(
- transformation(extent={{-40,-10},{-20,10}})));
- OpenIPSL.Electrical.Buses.Bus BUS1 annotation (Placement(
- transformation(extent={{0,-10},{20,10}})));
- OpenIPSL.Electrical.Buses.Bus INF annotation (Placement(
- transformation(extent={{60,-10},{80,10}})));
- equation
- connect(wT4G1.p, GEN.p) annotation (Line(points={{-38.8,-1.77636e-015},{-40,-1.77636e-015},
- {-40,0},{-30,0}}, color={0,0,255}));
- connect(GEN.p, pwLine2.p)
- annotation (Line(points={{-30,0},{-19,0}}, color={0,0,255}));
- connect(pwLine2.n, BUS1.p)
- annotation (Line(points={{-1,0},{-1,0},{10,0}}, color={0,0,255}));
- connect(BUS1.p, pwLine.p)
- annotation (Line(points={{10,0},{20,0},{20,20},{31,20}}, color={0,0,255}));
- connect(pwLine1.p, pwLine.p) annotation (Line(points={{31,-20},{20,-20},{20,
- 20},{31,20}}, color={0,0,255}));
- connect(pwFault.p, BUS1.p) annotation (Line(points={{18.3333,-50},{14,-50},{
- 14,0},{10,0}}, color={0,0,255}));
- connect(pwLine.n, INF.p)
- annotation (Line(points={{49,20},{60,20},{60,0},{70,0}}, color={0,0,255}));
- connect(pwLine1.n, INF.p) annotation (Line(points={{49,-20},{60,-20},{60,0},{
- 70,0}}, color={0,0,255}));
- connect(INF.p, gENCLS2_1.p)
- annotation (Line(points={{70,0},{90,0},{90,0}}, color={0,0,255}));
- connect(wT4E1_1.WIQCMD, wT4G1.I_qcmd) annotation (Line(points={{-70.8,8.4},{-68,
- 8.4},{-68,9.6},{-62.8,9.6}}, color={0,0,127}));
- connect(wT4E1_1.WIPCMD, wT4G1.I_pcmd) annotation (Line(points={{-70.8,3.6},{-68,
- 3.6},{-68,4.8},{-62.8,4.8}}, color={0,0,127}));
- connect(wT4G1.P, wT4E1_1.P) annotation (Line(points={{-65.2,-4.8},{-68,-4.8},
- {-68,-2.4},{-73.2,-2.4}}, color={0,0,127}));
- connect(wT4G1.V, wT4E1_1.V) annotation (Line(points={{-65.2,0},{-70,0},{-70,-9.6},
- {-73.2,-9.6}}, color={0,0,127}));
- connect(wT4G1.Q, wT4E1_1.Q) annotation (Line(points={{-65.2,-9.6},{-68,-9.6},
- {-68,-6},{-73.2,-6}}, color={0,0,127}));
- annotation (Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,
- -100},{100,100}})), Documentation);
- end WT4G1_WT4E1;
-
- model WT4G1
- extends Modelica.Icons.Example;
- constant Real pi=Modelica.Constants.pi;
- parameter Real V1=1.00000;
- parameter Real A1=-1.570655e-005;
- parameter Real V3=0.9999999;
- parameter Real A3=0.02574992;
- parameter Real P1=-1.4988;
- parameter Real Q1=-4.3340;
- parameter Real Zr=0.00000E+0;
- parameter Real Zi=2.00000E-1;
- parameter Real P3=1.500;
- parameter Real Q3=-5.6658;
- parameter Real R1=2.50000E-2;
- parameter Real X1=2.50000E-2;
- parameter Real B1=0.05000;
- parameter Real dyrw[1, 9]=[0.20000E-01, 0.20000E-01, 0.40000, 0.90000, 1.1100,
- 1.2000, 2.0000, 2.0000, 0.20000E-01];
- OpenIPSL.Electrical.Branches.PwLine pwLine(
- R=R1,
- X=X1,
- G=0,
- B=B1/2) annotation (Placement(transformation(extent={{30,10},{
- 50,30}})));
- OpenIPSL.Electrical.Branches.PwLine pwLine1(
- R=R1,
- X=X1,
- G=0,
- B=B1/2) annotation (Placement(transformation(extent={{30,-30},{
- 50,-10}})));
- OpenIPSL.Electrical.Machines.PSSE.GENCLS gENCLS2_1(
- V_0=V1,
- angle_0=A1,
- P_0=P1,
- Q_0=Q1,
- R_a=Zr,
- X_d=Zi,
- M_b=100) annotation (Placement(transformation(extent={{102,-12},
- {90,12}})));
- OpenIPSL.Electrical.Branches.PwLine pwLine2(
- G=0,
- B=0,
- R=2.50000E-3,
- X=2.50000E-3) annotation (Placement(transformation(extent={{-20,
- -10},{0,10}})));
- OpenIPSL.Electrical.Wind.PSSE.WT4G.WT4G1 wT4G1(
- V_0=V3,
- angle_0=A3,
- M_b=100,
- P_0=P3,
- Q_0=Q3,
- T_IQCmd=0.02,
- T_IPCmd=0.02,
- V_LVPL1=0.4,
- V_LVPL2=0.9,
- G_LVPL=1.11,
- V_HVRCR=1.2,
- CUR_HVRCR=2,
- RIp_LVPL=2,
- T_LVPL=0.02) annotation (Placement(transformation(
- extent={{12,12},{-12,-12}},
- rotation=180,
- origin={-52,0})));
- OpenIPSL.Electrical.Events.PwFault pwFault(
- R=0.5,
- X=0.5,
- t1=1,
- t2=1.5) annotation (Placement(transformation(extent={{20,-60},{
- 40,-40}})));
- inner OpenIPSL.Electrical.SystemBase SysData(S_b=100, fn=60)
- annotation (Placement(transformation(extent={{-100,80},{-48,100}})));
- OpenIPSL.Electrical.Buses.Bus GEN annotation (Placement(
- transformation(extent={{-40,-10},{-20,10}})));
- OpenIPSL.Electrical.Buses.Bus BUS1 annotation (Placement(
- transformation(extent={{0,-10},{20,10}})));
- OpenIPSL.Electrical.Buses.Bus INF annotation (Placement(
- transformation(extent={{60,-10},{80,10}})));
- equation
- connect(wT4G1.p, GEN.p) annotation (Line(points={{-38.8,-1.77636e-015},{-40,-1.77636e-015},
- {-40,0},{-30,0}}, color={0,0,255}));
- connect(GEN.p, pwLine2.p)
- annotation (Line(points={{-30,0},{-21.6667,0}}, color={0,0,255}));
- connect(pwLine2.n, BUS1.p) annotation (Line(points={{1.66667,0},{1.66667,0},{
- 10,0}}, color={0,0,255}));
- connect(BUS1.p, pwLine.p) annotation (Line(points={{10,0},{20,0},{20,20},{
- 28.3333,20}}, color={0,0,255}));
- connect(pwLine1.p, pwLine.p) annotation (Line(points={{28.3333,-20},{20,-20},
- {20,20},{28.3333,20}}, color={0,0,255}));
- connect(pwFault.p, BUS1.p) annotation (Line(points={{18.3333,-50},{14,-50},{
- 14,0},{10,0}}, color={0,0,255}));
- connect(pwLine.n, INF.p) annotation (Line(points={{51.6667,20},{60,20},{60,0},
- {70,0}}, color={0,0,255}));
- connect(pwLine1.n, INF.p) annotation (Line(points={{51.6667,-20},{60,-20},{60,
- 0},{70,0}}, color={0,0,255}));
- connect(INF.p, gENCLS2_1.p) annotation (Line(points={{70,0},{88.8,0},{88.8,-0.180432}},
- color={0,0,255}));
- connect(wT4G1.I_qcmd, wT4G1.I_qcmd0) annotation (Line(points={{-62.8,9.6},{-66,
- 9.6},{-66,16},{-59.2,16},{-59.2,13.2}}, color={0,0,127}));
- connect(wT4G1.I_pcmd, wT4G1.I_pcmd0) annotation (Line(points={{-62.8,4.8},{-68,
- 4.8},{-68,18},{-54.4,18},{-54.4,13.2}}, color={0,0,127}));
- annotation (Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,
- -100},{100,100}})), Documentation);
- end WT4G1;
- annotation (Documentation);
- end WT4G;
- annotation (Documentation);
- end PSSE;
- annotation (Documentation);
- end Wind;
-
- package Branches
- extends Modelica.Icons.ExamplesPackage;
-
- package PSAT
- extends Modelica.Icons.ExamplesPackage;
-
- model TwoWindingTransformer_Test
- extends Modelica.Icons.Example;
- OpenIPSL.Electrical.Machines.PSAT.Order2 order2_1(
- Sn=100,
- D=5,
- V_0=1,
- angle_0=0,
- Vn=13800,
- V_b=13800,
- P_0=0.050249405357958,
- Q_0=0.010496891745129,
- ra=0.001,
- x1d=0.302,
- M=10) annotation (Placement(transformation(extent={{-80,-10},{-60,
- 10}})));
- OpenIPSL.Electrical.Loads.PSAT.LOADPQ lOADPQ(Q_0=0.001, P_0=0.03)
- annotation (Placement(transformation(extent={{60,-30},{80,-10}})));
- OpenIPSL.Electrical.Branches.PSAT.TwoWindingTransformer twoWindingTransformer(
- Vn=13800,
- xT=0.1,
- rT=0.01,
- V_b=13800) annotation (Placement(transformation(extent={{-40,-10},
- {-20,10}})));
- OpenIPSL.Electrical.Buses.InfiniteBus infiniteBus(V_0=1, angle_0=0)
- annotation (Placement(transformation(extent={{-80,-50},{-60,-30}})));
- OpenIPSL.Electrical.Branches.PwLine pwLine1(
- R=0.01,
- X=0.1,
- G=0,
- B=0.001/2)
- annotation (Placement(transformation(extent={{10,0},{30,20}})));
- OpenIPSL.Electrical.Branches.PwLine pwLine2(
- R=0.01,
- X=0.1,
- G=0,
- B=0.001)
- annotation (Placement(transformation(extent={{10,-20},{30,0}})));
- OpenIPSL.Electrical.Buses.Bus bus1 annotation (Placement(
- transformation(extent={{-60,-10},{-40,10}})));
- OpenIPSL.Electrical.Buses.Bus bus2
- annotation (Placement(transformation(extent={{-20,-10},{0,10}})));
- OpenIPSL.Electrical.Buses.Bus bus3
- annotation (Placement(transformation(extent={{40,-10},{60,10}})));
- inner OpenIPSL.Electrical.SystemBase SysData annotation (Placement(
- transformation(extent={{-100,80},{-60,100}})));
- equation
- connect(infiniteBus.p, order2_1.p) annotation (Line(
- points={{-60,-40},{-55,-40},{-55,0},{-60,0}},
- color={0,0,255},
- smooth=Smooth.None));
- connect(bus3.p,pwLine2. n) annotation (Line(
- points={{50,0},{40,0},{40,-10},{29,-10}},
- color={0,0,255},
- smooth=Smooth.None));
- connect(twoWindingTransformer.n, bus2.p) annotation (Line(
- points={{-19,0},{-10,0}},
- color={0,0,255},
- smooth=Smooth.None));
- connect(twoWindingTransformer.p, bus1.p) annotation (Line(
- points={{-41,0},{-50,0}},
- color={0,0,255},
- smooth=Smooth.None));
- connect(bus1.p, order2_1.p) annotation (Line(
- points={{-50,0},{-60,0}},
- color={0,0,255},
- smooth=Smooth.None));
- connect(bus2.p,pwLine2. p) annotation (Line(
- points={{-10,0},{6,0},{6,-10},{11,-10}},
- color={0,0,255},
- smooth=Smooth.None));
- connect(order2_1.vf0, order2_1.vf) annotation (Line(points={{-78,11},{-78,14},{-88,14},{-88,5},{-82,5}},
- color={0,0,127}));
- connect(order2_1.pm, order2_1.pm0) annotation (Line(points={{-82,-5},{-88,-5},{-88,-14},{-78,-14},{-78,-11}},
- color={0,0,127}));
- connect(bus3.p, lOADPQ.p) annotation (Line(points={{50,0},{70,0},{70,-10}}, color={0,0,255}));
- connect(pwLine1.p, bus2.p) annotation (Line(points={{11,10},{6,10},{6,0},{-10,0}}, color={0,0,255}));
- connect(pwLine1.n, bus3.p) annotation (Line(points={{29,10},{40,10},{40,0},{50,0}}, color={0,0,255}));
- end TwoWindingTransformer_Test;
-
- model ThreeWindingTransformer_Test
- extends Modelica.Icons.Example;
- OpenIPSL.Electrical.Branches.PwLine pwLine3(
- B=0.001/2,
- G=0,
- R=0.01,
- X=0.1) annotation (Placement(visible=true, transformation(
- origin={-2,-10},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- OpenIPSL.Electrical.Branches.PwLine pwLine4(
- B=0.001/2,
- G=0,
- R=0.01,
- X=0.1) annotation (Placement(visible=true, transformation(
- origin={-2,10},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- Modelica.Blocks.Sources.Sine sine1(amplitude=0.001, freqHz=0.2) annotation (
- Placement(visible=true, transformation(
- origin={-91.783,9.4652},
- extent={{-4.4802,-4.4802},{4.4802,4.4802}},
- rotation=0)));
- Modelica.Blocks.Math.Add add2(k2=-1) annotation (Placement(visible=true,
- transformation(
- origin={-78,2},
- extent={{-4,-4},{4,4}},
- rotation=0)));
- Modelica.Blocks.Sources.Sine sine2(
- amplitude=0.001,
- freqHz=0.2,
- startTime=5) annotation (Placement(visible=true, transformation(
- origin={-91.382,-5.5198},
- extent={{-4.4802,-4.4802},{4.4802,4.4802}},
- rotation=0)));
- OpenIPSL.Electrical.Machines.PSAT.Order2 Gen1(
- Sn=370,
- D=5,
- P_0=0.080124489663871,
- Q_0=0.059251697676828,
- V_b=400,
- V_0=1,
- angle_0=0,
- Vn=400,
- ra=0.001,
- x1d=0.302,
- M=10) annotation (Placement(transformation(extent={{-52,-10},{-32,
- 10}})));
- Modelica.Blocks.Math.Add add
- annotation (Placement(transformation(extent={{-70,10},{-60,0}})));
- OpenIPSL.Electrical.Loads.PSAT.LOADPQ_variation lOADPQ(
- t_start_1=5,
- t_end_1=8,
- t_start_2=8,
- t_end_2=12,
- dP1=0,
- dP2=0,
- P_0=0.04,
- Q_0=0.02,
- dQ1=0.01,
- dQ2=-0.01) annotation (Placement(transformation(extent={{80,-10},
- {100,10}})));
- OpenIPSL.Electrical.Loads.PSAT.LOADPQ_variation lOADPQ1(
- P_0=0.04,
- Q_0=0.04,
- t_start_1=0,
- t_end_1=0,
- t_start_2=0,
- t_end_2=0,
- dP1=0,
- dQ1=0,
- dP2=0,
- dQ2=0) annotation (Placement(transformation(extent={{80,-50},{100,
- -30}})));
- Electrical.Branches.PSAT.ThreeWindingTransformer threeWindingTransformer annotation (Placement(transformation(extent={{28,-10},{48,10}})));
- OpenIPSL.Electrical.Buses.Bus Bus1 annotation (Placement(
- transformation(extent={{-32,-10},{-12,10}})));
- OpenIPSL.Electrical.Buses.Bus Bus2
- annotation (Placement(transformation(extent={{8,-10},{28,10}})));
- OpenIPSL.Electrical.Buses.Bus Bus3
- annotation (Placement(transformation(extent={{60,10},{80,30}})));
- OpenIPSL.Electrical.Buses.Bus Bus4 annotation (Placement(
- transformation(extent={{60,-30},{80,-10}})));
- inner OpenIPSL.Electrical.SystemBase SysData annotation (Placement(
- transformation(extent={{-100,80},{-60,100}})));
- equation
- connect(add2.y, add.u1) annotation (Line(
- points={{-73.6,2},{-71,2}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(add.y, Gen1.vf) annotation (Line(
- points={{-59.5,5},{-54,5}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(Gen1.vf0, add.u2) annotation (Line(
- points={{-50,11},{-50,16},{-74,16},{-74,8},{-71,8}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(Gen1.pm0, Gen1.pm) annotation (Line(
- points={{-50,-11},{-50,-16},{-60,-16},{-60,-5},{-54,-5}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(pwLine4.n, pwLine3.n) annotation (Line(
- points={{7,10},{13,10},{13,-10},{7,-10}},
- color={0,0,255},
- smooth=Smooth.None));
- connect(pwLine4.p, pwLine3.p) annotation (Line(
- points={{-11,10},{-17,10},{-17,-10},{-11,-10}},
- color={0,0,255},
- smooth=Smooth.None));
- connect(Gen1.p, Bus1.p) annotation (Line(
- points={{-32,0},{-22,0}},
- color={0,0,255},
- smooth=Smooth.None));
- connect(Bus1.p, pwLine3.p) annotation (Line(
- points={{-22,0},{-17,0},{-17,-10},{-11,-10}},
- color={0,0,255},
- smooth=Smooth.None));
- connect(Bus2.p, pwLine3.n) annotation (Line(
- points={{18,0},{13,0},{13,-10},{7,-10}},
- color={0,0,255},
- smooth=Smooth.None));
- connect(Bus2.p, threeWindingTransformer.b1) annotation (Line(
- points={{18,0},{27,0}},
- color={0,0,255},
- smooth=Smooth.None));
- connect(threeWindingTransformer.b2, Bus3.p) annotation (Line(
- points={{49,3},{63,3},{63,20},{70,20}},
- color={0,0,255},
- smooth=Smooth.None));
- connect(lOADPQ.p, Bus3.p) annotation (Line(
- points={{90,10},{90,20},{70,20}},
- color={0,0,255},
- smooth=Smooth.None));
- connect(threeWindingTransformer.b3, Bus4.p) annotation (Line(
- points={{49,-3},{63,-3},{63,-20},{70,-20}},
- color={0,0,255},
- smooth=Smooth.None));
- connect(Bus4.p, lOADPQ1.p) annotation (Line(
- points={{70,-20},{90,-20},{90,-30}},
- color={0,0,255},
- smooth=Smooth.None));
- connect(sine1.y, add2.u1) annotation (Line(points={{-86.8548,9.4652},{-84,9.4652},{-84,4},{-82.8,4},{-82.8,4.4}}, color={0,0,127}));
- connect(sine2.y, add2.u2) annotation (Line(points={{-86.4538,-5.5198},{-84.2269,-5.5198},{-84.2269,-0.4},{-82.8,-0.4}}, color={0,0,127}));
- annotation (Documentation(info="
-
-Reference |
-KTH own Model, PSAT Manual 2.1.8 |
-
-
-Last update |
-29/09/2015 |
-
-
-Author |
-MAA Murad, SmarTS Lab, KTH Royal Institute of Technology |
-
-
-Contact |
-luigiv@kth.se |
-
-
-"));
- end ThreeWindingTransformer_Test;
-
- model PhaseShiftingTransformer_Test
- extends Modelica.Icons.Example;
- OpenIPSL.Electrical.Loads.PSAT.LOADPQ lOADPQ_B3(Q_0=0.001, P_0=0.03)
- annotation (Placement(transformation(extent={{30,-50},{50,-30}})));
- OpenIPSL.Electrical.Branches.PwLine pwLine1(
- R=0.01,
- X=0.1,
- G=0,
- B=0.001/2)
- annotation (Placement(transformation(extent={{0,0},{20,20}})));
- OpenIPSL.Electrical.Branches.PwLine pwLine2(
- R=0.01,
- X=0.1,
- G=0,
- B=0.001)
- annotation (Placement(transformation(extent={{0,-20},{20,0}})));
- OpenIPSL.Electrical.Branches.PwLine pwLine3(
- R=0.01,
- X=0.1,
- G=0,
- B=0.001/2)
- annotation (Placement(transformation(extent={{50,0},{70,20}})));
- OpenIPSL.Electrical.Branches.PSAT.PhaseShiftingTransformer.PSTransformer
- pSTransformer
- annotation (Placement(transformation(extent={{50,-20},{70,0}})));
- OpenIPSL.Electrical.Loads.PSAT.LOADPQ_variation lOADPQ_B4(
- P_0=0.02,
- Q_0=0.01,
- t_start_1=5,
- t_end_1=7.99,
- t_start_2=8,
- t_end_2=12,
- dQ1=0.01,
- dQ2=-0.01,
- dP1=0.02,
- dP2=-0.02) annotation (Placement(transformation(extent={{80,-50},
- {100,-30}})));
- Modelica.Blocks.Sources.Sine sine1(amplitude=0.001, freqHz=0.2) annotation (
- Placement(visible=true, transformation(
- origin={-26,40},
- extent={{4.4802,-4.4802},{-4.4802,4.4802}},
- rotation=0)));
- Modelica.Blocks.Math.Add diff(k2=-1) annotation (Placement(visible=true,
- transformation(
- origin={-47,31},
- extent={{4.99999,-4.99999},{-5,5}},
- rotation=0)));
- Modelica.Blocks.Sources.Sine sine2(
- amplitude=0.001,
- freqHz=0.2,
- startTime=5) annotation (Placement(visible=true, transformation(
- origin={-26,22},
- extent={{4.4802,-4.4802},{-4.4802,4.4802}},
- rotation=0)));
- OpenIPSL.Electrical.Machines.PSAT.Order2 Gen1(
- D=5,
- Sn=100,
- Vn=13800,
- V_b=13800,
- V_0=1,
- P_0=0.050249405357958,
- Q_0=0.010496891745129,
- angle_0=0,
- ra=0.001,
- x1d=0.302,
- M=10) annotation (Placement(transformation(extent={{-80,-10},{-60,
- 10}})));
- Modelica.Blocks.Math.Add add
- annotation (Placement(transformation(extent={{-64,24},{-78,38}})));
- OpenIPSL.Electrical.Branches.PSAT.TwoWindingTransformer twoWindingTransformer(
- Vn=13800,
- rT=0.01,
- xT=0.1,
- V_b=13800) annotation (Placement(transformation(extent={{-40,-10},
- {-20,10}})));
- OpenIPSL.Electrical.Buses.Bus B1 annotation (Placement(
- transformation(extent={{-60,-10},{-40,10}})));
- OpenIPSL.Electrical.Buses.Bus B2
- annotation (Placement(transformation(extent={{-20,-10},{0,10}})));
- OpenIPSL.Electrical.Buses.Bus B3
- annotation (Placement(transformation(extent={{20,-10},{40,10}})));
- OpenIPSL.Electrical.Buses.Bus B4 annotation (Placement(
- transformation(extent={{80,-10},{100,10}})));
- inner OpenIPSL.Electrical.SystemBase SysData annotation (Placement(
- transformation(extent={{-100,80},{-60,100}})));
- equation
- connect(pSTransformer.pk, pSTransformer.u) annotation (Line(
- points={{71,-14},{74,-14},{74,-20},{44,-20},{44,-4.4},{48,-4.4}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(sine1.y,diff. u1) annotation (Line(
- points={{-30.9282,40},{-36,40},{-36,34},{-41,34}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(sine2.y,diff. u2) annotation (Line(
- points={{-30.9282,22},{-36,22},{-36,28},{-41,28}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(Gen1.vf0, add.u2) annotation (Line(
- points={{-78,11},{-78,20},{-58,20},{-58,26.8},{-62.6,26.8}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(Gen1.p, B1.p) annotation (Line(
- points={{-60,0},{-50,0}},
- color={0,0,255},
- smooth=Smooth.None));
- connect(B1.p, twoWindingTransformer.p) annotation (Line(
- points={{-50,0},{-41,0}},
- color={0,0,255},
- smooth=Smooth.None));
- connect(twoWindingTransformer.n, B2.p) annotation (Line(
- points={{-19,0},{-10,0}},
- color={0,0,255},
- smooth=Smooth.None));
- connect(B3.p, lOADPQ_B3.p) annotation (Line(
- points={{30,0},{40,0},{40,-30}},
- color={0,0,255},
- smooth=Smooth.None));
- connect(B4.p, lOADPQ_B4.p) annotation (Line(
- points={{90,0},{96,0},{96,-22},{90,-22},{90,-30}},
- color={0,0,255},
- smooth=Smooth.None));
- connect(pwLine3.p, B3.p) annotation (Line(points={{51,10},{40,10},{40,0},{30,0}}, color={0,0,255}));
- connect(pSTransformer.p, B3.p) annotation (Line(points={{49,-10},{40,-10},{40,0},{30,0}}, color={0,0,255}));
- connect(pSTransformer.n, B4.p) annotation (Line(points={{71,-10},{76,-10},{76,0},{90,0}}, color={0,0,255}));
- connect(pwLine3.n, B4.p) annotation (Line(points={{69,10},{76,10},{76,0},{90,0}}, color={0,0,255}));
- connect(pwLine1.n, B3.p) annotation (Line(points={{19,10},{24,10},{24,0},{30,0}}, color={0,0,255}));
- connect(pwLine2.n, B3.p) annotation (Line(points={{19,-10},{24,-10},{24,0},{30,0}}, color={0,0,255}));
- connect(pwLine1.p, B2.p) annotation (Line(points={{1,10},{-4,10},{-4,0},{-10,0}}, color={0,0,255}));
- connect(pwLine2.p, B2.p) annotation (Line(points={{1,-10},{-4,-10},{-4,0},{-10,0}}, color={0,0,255}));
- connect(add.y, Gen1.vf) annotation (Line(points={{-78.7,31},{-92,31},{-92,5},{-82,5}}, color={0,0,127}));
- connect(Gen1.pm0, Gen1.pm) annotation (Line(points={{-78,-11},{-78,-14},{-86,-14},{-86,-5},{-82,-5}}, color={0,0,127}));
- connect(diff.y, add.u1) annotation (Line(points={{-52.5,31},{-58,31},{-58,35.2},{-62.6,35.2}}, color={0,0,127}));
- annotation (Documentation(info="
-
-Reference |
-KTH own Model, PSAT Manual 2.1.8 |
-
-
-Last update |
-29/09/2015 |
-
-
-Author |
-MAA Murad, SmarTS Lab, KTH Royal Institute of Technology |
-
-
-Contact |
-luigiv@kth.se |
-
-
-"));
- end PhaseShiftingTransformer_Test;
-
- model ULTC_Test
- extends Modelica.Icons.Example;
- OpenIPSL.Electrical.Branches.PwLine pwLine3(
- B=0.001/2,
- G=0,
- R=0.01,
- X=0.1) annotation (Placement(visible=true, transformation(
- origin={20,-10},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- OpenIPSL.Electrical.Branches.PwLine pwLine4(
- B=0.001/2,
- G=0,
- R=0.01,
- X=0.1) annotation (Placement(visible=true, transformation(
- origin={20,10},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- Modelica.Blocks.Sources.Sine sine1(amplitude=0.001, freqHz=0.2) annotation (
- Placement(visible=true, transformation(
- origin={-92,10},
- extent={{-4.4802,-4.4802},{4.4802,4.4802}},
- rotation=0)));
- Modelica.Blocks.Math.Add diff(k2=-1) annotation (Placement(visible=true,
- transformation(
- origin={-72,0},
- extent={{-6.3229,-6.3229},{6.3229,6.3229}},
- rotation=0)));
- Modelica.Blocks.Sources.Sine sine2(
- amplitude=0.001,
- freqHz=0.2,
- startTime=5) annotation (Placement(visible=true, transformation(
- origin={-92,-10},
- extent={{-4.4802,-4.4802},{4.4802,4.4802}},
- rotation=0)));
- OpenIPSL.Electrical.Machines.PSAT.Order2 order2_Inputs_Outputs(
- Sn=370,
- P_0=0.081032877181982,
- Q_0=0.058523044412627,
- D=5,
- V_b=400,
- V_0=1,
- angle_0=0,
- Vn=400,
- ra=0.001,
- x1d=0.302,
- M=10) annotation (Placement(transformation(extent={{-30,-10},{-10,
- 10}})));
- Modelica.Blocks.Math.Add add
- annotation (Placement(transformation(extent={{-56,-6},{-44,6}})));
- OpenIPSL.Electrical.Loads.PSAT.LOADPQ_variation lOADPQ_B3(
- P_0=0.08,
- Q_0=0.06,
- t_start_1=5,
- t_end_1=8,
- t_start_2=8,
- t_end_2=12,
- dP1=0,
- dP2=0,
- dQ1=-0.05,
- dQ2=0.05) annotation (Placement(transformation(extent={{80,-40},{
- 100,-20}})));
- OpenIPSL.Electrical.Branches.PSAT.ULTC_VoltageControl uLTC_VoltageControl
- annotation (Placement(transformation(extent={{50,-10},{70,10}})));
- OpenIPSL.Electrical.Buses.Bus B1 annotation (Placement(
- transformation(extent={{-10,-10},{10,10}})));
- OpenIPSL.Electrical.Buses.Bus B2
- annotation (Placement(transformation(extent={{30,-10},{50,10}})));
- OpenIPSL.Electrical.Buses.Bus B3
- annotation (Placement(transformation(extent={{70,-10},{90,10}})));
- inner OpenIPSL.Electrical.SystemBase SysData annotation (Placement(
- transformation(extent={{-100,80},{-40,100}})));
- equation
- connect(add.y, order2_Inputs_Outputs.vf) annotation (Line(
- points={{-43.4,0},{-39,0},{-39,5},{-32,5}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(order2_Inputs_Outputs.pm0, order2_Inputs_Outputs.pm) annotation (Line(
- points={{-28,-11},{-28,-14},{-36,-14},{-36,-5},{-32,-5}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(sine1.y,diff. u1) annotation (Line(
- points={{-87.0718,10},{-82,10},{-82,4},{-79.5875,4},{-79.5875,3.79374}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(sine2.y,diff. u2) annotation (Line(
- points={{-87.0718,-10},{-82,-10},{-82,-4},{-79.5875,-4},{-79.5875,-3.79374}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(pwLine4.p, pwLine3.p) annotation (Line(
- points={{11,10},{6,10},{6,-10},{11,-10}},
- color={0,0,255},
- smooth=Smooth.None));
- connect(order2_Inputs_Outputs.p, B1.p) annotation (Line(
- points={{-10,0},{0,0}},
- color={0,0,255},
- smooth=Smooth.None));
- connect(B1.p, pwLine3.p) annotation (Line(
- points={{0,0},{6,0},{6,-10},{11,-10}},
- color={0,0,255},
- smooth=Smooth.None));
- connect(B2.p, pwLine3.n) annotation (Line(
- points={{40,0},{34,0},{34,-10},{29,-10}},
- color={0,0,255},
- smooth=Smooth.None));
- connect(uLTC_VoltageControl.n, B3.p) annotation (Line(
- points={{71,0},{80,0}},
- color={0,0,255},
- smooth=Smooth.None));
- connect(lOADPQ_B3.p, B3.p) annotation (Line(
- points={{90,-20},{90,0},{80,0}},
- color={0,0,255},
- smooth=Smooth.None));
- connect(B2.p, uLTC_VoltageControl.p) annotation (Line(
- points={{40,0},{49,0}},
- color={0,0,255},
- smooth=Smooth.None));
- connect(B2.p, pwLine4.n) annotation (Line(points={{40,0},{34,0},{34,10},{29,10}}, color={0,0,255}));
- connect(diff.y, add.u2) annotation (Line(points={{-65.0448,0},{-62,0},{-62,-3.6},{-57.2,-3.6}}, color={0,0,127}));
- connect(add.u1, order2_Inputs_Outputs.vf0) annotation (Line(points={{-57.2,3.6},{-62,3.6},{-62,18},{-28,18},{-28,11}}, color={0,0,127}));
- annotation (Documentation(info="
-
-Reference |
-KTH own Model, PSAT Manual 2.1.8 |
-
-
-Last update |
-29/09/2015 |
-
-
-Author |
-MAA Murad, SmarTS Lab, KTH Royal Institute of Technology |
-
-
-Contact |
-luigiv@kth.se |
-
-
-"));
- end ULTC_Test;
- annotation (Documentation);
- end PSAT;
- annotation (Documentation);
- end Branches;
-
- package FACTS
- extends Modelica.Icons.ExamplesPackage;
-
- model StatcomCode_Test
- import Modelica.Constants.pi;
- extends Modelica.Icons.Example;
- OpenIPSL.Electrical.Branches.PwLine pwLine4(
- B=0.001/2,
- G=0,
- R=0.01,
- X=0.1) annotation (Placement(visible=true, transformation(
- origin={-13,13},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- OpenIPSL.Electrical.Branches.PwLine pwLine2(
- B=0.001/2,
- G=0,
- R=0.01,
- X=0.1) annotation (Placement(visible=true, transformation(
- origin={-15,-17},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- OpenIPSL.Electrical.Machines.PSAT.Order2 Syn2(
- D=1,
- Sn=370,
- V_0=1.027606413803688,
- V_b=400,
- ra=0.001,
- x1d=0.302,
- M=10,
- angle_0=0.036282466109908*180/pi,
- P_0=0.800000000076548*SysData.S_b,
- Q_0=0.500000000133379*SysData.S_b,
- Vn=400) annotation (Placement(transformation(
- extent={{-15,-16},{15,16}},
- rotation=180,
- origin={123,0})));
- OpenIPSL.Electrical.Branches.PwLine pwLine1(
- B=0.001/2,
- G=0,
- R=0.01,
- X=0.1) annotation (Placement(visible=true, transformation(
- origin={53,17},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- OpenIPSL.Electrical.Branches.PwLine pwLine3(
- B=0.001/2,
- G=0,
- R=0.01,
- X=0.1) annotation (Placement(visible=true, transformation(
- origin={55,-17},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- OpenIPSL.Electrical.Machines.PSAT.Order2 order2_Inputs_Outputs(
- Sn=370,
- D=5,
- V_b=400,
- V_0=1,
- angle_0=0,
- Vn=400,
- ra=0.001,
- x1d=0.302,
- M=10,
- P_0=0.004219210312137*SysData.S_b,
- Q_0=-0.001421467052118*SysData.S_b)
- annotation (Placement(transformation(extent={{-78,-8},{-58,12}})));
- Modelica.Blocks.Sources.Pulse pulse(
- period=10,
- startTime=4.2,
- amplitude=0.045,
- width=58,
- nperiod=-1,
- offset=0.999885177318814)
- annotation (Placement(transformation(extent={{-158,14},{-138,34}})));
- Modelica.Blocks.Sources.Pulse pulse1(
- period=10,
- amplitude=-0.045,
- width=42,
- startTime=0,
- nperiod=-1)
- annotation (Placement(transformation(extent={{-156,-22},{-136,-2}})));
- Modelica.Blocks.Math.Add3 add3_1(
- k3=0,
- k1=1,
- k2=1) annotation (Placement(transformation(extent={{-118,-10},{-98,10}})));
- OpenIPSL.Electrical.FACTS.PSAT.STATCOM sTATCOM3_1(V_0=1, angle_0=-0.000213067852480
- *180/pi)
- annotation (Placement(transformation(extent={{-14,-54},{6,-34}})));
- OpenIPSL.Electrical.Buses.Bus bus
- annotation (Placement(transformation(extent={{4,-8},{24,12}})));
- OpenIPSL.Electrical.Loads.PSAT.LOADPQ_variation lOADPQ(
- t_start_1=7,
- t_end_1=7.001,
- dP1=0,
- t_start_2=8,
- dP2=0,
- P_0=0.8*SysData.S_b,
- Q_0=0.6*SysData.S_b,
- t_end_2=50,
- angle_0=-0.000213067852480*180/pi,
- dQ1=0.1*SysData.S_b,
- dQ2=0.42*SysData.S_b)
- annotation (Placement(transformation(extent={{38,-52},{58,-32}})));
- inner OpenIPSL.Electrical.SystemBase SysData
- annotation (Placement(transformation(extent={{-116,60},{-76,80}})));
- equation
- connect(pwLine1.n, pwLine3.n) annotation (Line(
- points={{62,17},{78,17},{78,-17},{64,-17}},
- color={0,0,255},
- smooth=Smooth.None));
- connect(bus.p, lOADPQ.p) annotation (Line(
- points={{14,2},{24,2},{24,-32},{48,-32}},
- color={0,0,255},
- smooth=Smooth.None));
- connect(sTATCOM3_1.p, lOADPQ.p) annotation (Line(
- points={{7,-44},{20,-44},{20,2},{24,2},{24,-32},{48,-32}},
- color={0,0,255},
- smooth=Smooth.None));
- connect(pwLine3.p, lOADPQ.p) annotation (Line(
- points={{46,-17},{38,-17},{38,2},{24,2},{24,-32},{48,-32}},
- color={0,0,255},
- smooth=Smooth.None));
- connect(pwLine1.p, lOADPQ.p) annotation (Line(
- points={{44,17},{38,17},{38,2},{24,2},{24,-32},{48,-32}},
- color={0,0,255},
- smooth=Smooth.None));
- connect(Syn2.p, pwLine3.n) annotation (Line(
- points={{108,1.83187e-015},{78,1.83187e-015},{78,-17},{64,-17}},
- color={0,0,255},
- smooth=Smooth.None));
- connect(pwLine2.n, bus.p) annotation (Line(
- points={{-6,-17},{0,-17},{0,2},{14,2}},
- color={0,0,255},
- smooth=Smooth.None));
- connect(pwLine4.n, bus.p) annotation (Line(
- points={{-4,13},{0,13},{0,2},{14,2}},
- color={0,0,255},
- smooth=Smooth.None));
- connect(pwLine4.p, pwLine2.p) annotation (Line(
- points={{-22,13},{-28,13},{-28,-17},{-24,-17}},
- color={0,0,255},
- smooth=Smooth.None));
- connect(order2_Inputs_Outputs.p, pwLine2.p) annotation (Line(
- points={{-58,2},{-28,2},{-28,-17},{-24,-17}},
- color={0,0,255},
- smooth=Smooth.None));
- connect(add3_1.y, order2_Inputs_Outputs.vf) annotation (Line(
- points={{-97,0},{-92,0},{-92,7},{-80,7}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(order2_Inputs_Outputs.vf0, add3_1.u3) annotation (Line(
- points={{-76,13},{-48,13},{-48,-22},{-120,-22},{-120,-8}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(pulse1.y, add3_1.u2) annotation (Line(
- points={{-135,-12},{-126,-12},{-126,0},{-120,0}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(pulse.y, add3_1.u1) annotation (Line(
- points={{-137,24},{-130,24},{-130,8},{-120,8}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(order2_Inputs_Outputs.pm0, order2_Inputs_Outputs.pm) annotation (Line(
- points={{-76,-9},{-54,-9},{-54,-16},{-90,-16},{-90,-3},{-80,-3}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(Syn2.pm, Syn2.pm0) annotation (Line(points={{141,8},{148,8},{148,26},
- {135,26},{135,17.6}}, color={0,0,127}));
- connect(Syn2.vf0, Syn2.vf) annotation (Line(points={{135,-17.6},{135,-26},{
- 152,-26},{152,-8},{141,-8}}, color={0,0,127}));
- annotation (
- Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{
- 100,100}})),
- Icon(coordinateSystem(extent={{-100,-100},{100,100}})),
- Documentation(info="
-
-Reference |
-KTH own Model, PSAT Manual 2.1.8 |
-
-
-Last update |
-29/09/2015 |
-
-
-Author |
-MAA Murad, SmarTS Lab, KTH Royal Institute of Technology |
-
-
-Contact |
-luigiv@kth.se |
-
-
-"));
- end StatcomCode_Test;
-
- model TCSC_Reactance_Test
- extends Modelica.Icons.Example;
- OpenIPSL.Electrical.Machines.PSAT.Order2 Gen1(
- Sn=370,
- P_0=0.080101913348342,
- Q_0=0.060948619430301,
- D=5,
- V_b=400,
- V_0=1,
- angle_0=0,
- Vn=400,
- ra=0.001,
- x1d=0.302,
- M=10)
- annotation (Placement(transformation(extent={{-22,-10},{-2,10}})));
- Modelica.Blocks.Sources.Pulse pulse(
- period=10,
- startTime=4.2,
- amplitude=0.045,
- width=58,
- offset=1.005017533847740,
- nperiod=2)
- annotation (Placement(transformation(extent={{-116,10},{-96,30}})));
- Modelica.Blocks.Sources.Pulse pulse1(
- period=10,
- amplitude=-0.045,
- width=42,
- startTime=0,
- nperiod=2)
- annotation (Placement(transformation(extent={{-118,-26},{-98,-6}})));
- Modelica.Blocks.Math.Add3 add3_1(
- k3=0,
- k1=1,
- k2=1) annotation (Placement(transformation(extent={{-58,-10},{-38,10}})));
- OpenIPSL.Electrical.Branches.PwLine pwLine1(
- R=0.01,
- X=0.1,
- G=0,
- B=0.001/2)
- annotation (Placement(transformation(extent={{62,-10},{82,10}})));
- OpenIPSL.Electrical.Loads.PSAT.LOADPQ_variation lOADPQ(
- P_0=0.08,
- Q_0=0.06,
- t_start_1=2,
- t_end_1=10,
- t_start_2=12,
- t_end_2=20,
- dP1=0,
- dQ1=0.01,
- dP2=0,
- dQ2=-0.01)
- annotation (Placement(transformation(extent={{96,-10},{116,10}})));
- OpenIPSL.Electrical.FACTS.PSAT.TCSCReactance tCSCReactance
- annotation (Placement(transformation(extent={{26,-10},{46,10}})));
- inner OpenIPSL.Electrical.SystemBase SysData
- annotation (Placement(transformation(extent={{-100,60},{-76,80}})));
- equation
- connect(pulse1.y, add3_1.u2) annotation (Line(
- points={{-97,-16},{-68,-16},{-68,0},{-60,0}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(pulse.y, add3_1.u1) annotation (Line(
- points={{-95,20},{-70,20},{-70,8},{-60,8}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(pwLine1.n, lOADPQ.p) annotation (Line(
- points={{81,0},{92,0},{92,10},{106,10}},
- color={0,0,255},
- smooth=Smooth.None));
- connect(add3_1.y, Gen1.vf) annotation (Line(
- points={{-37,0},{-32,0},{-32,5},{-24,5}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(Gen1.pm0, Gen1.pm) annotation (Line(
- points={{-20,-11},{8,-11},{8,-20},{-32,-20},{-32,-5},{-24,-5}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(Gen1.vf0, add3_1.u3) annotation (Line(
- points={{-20,11},{4,11},{4,22},{-36,22},{-36,-20},{-60,-20},{-60,-8}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(tCSCReactance.n, pwLine1.p) annotation (Line(
- points={{47,0},{63,0}},
- color={0,0,255},
- smooth=Smooth.None));
- connect(Gen1.p, tCSCReactance.p) annotation (Line(
- points={{-2,0},{11.5,0},{11.5,0.2},{25.1,0.2}},
- color={0,0,255},
- smooth=Smooth.None));
- annotation (
- Diagram(coordinateSystem(preserveAspectRatio=true, extent={{-100,-100},{100,
- 100}}), graphics),
- Icon(coordinateSystem(extent={{-100,-100},{100,100}})),
- Documentation(info="
-
-Reference |
-KTH own Model, PSAT Manual 2.1.8 |
-
-
-Last update |
-29/09/2015 |
-
-
-Author |
-MAA Murad, SmarTS Lab, KTH Royal Institute of Technology |
-
-
-Contact |
-luigiv@kth.se |
-
-
-"));
- end TCSC_Reactance_Test;
-
- model TCSC_Alpha_Test
- extends Modelica.Icons.Example;
- OpenIPSL.Electrical.Machines.PSAT.Order2 Gen1(
- Sn=370,
- P_0=0.080101913348342,
- Q_0=0.060948619430301,
- D=5,
- angle_0=0,
- V_0=1,
- Vn=400,
- ra=0.001,
- x1d=0.302,
- M=10)
- annotation (Placement(transformation(extent={{-24,-10},{-4,10}})));
- Modelica.Blocks.Sources.Pulse pulse(
- period=10,
- startTime=4.2,
- amplitude=0.045,
- width=58,
- offset=1.005017533847740,
- nperiod=2)
- annotation (Placement(transformation(extent={{-126,6},{-106,26}})));
- Modelica.Blocks.Sources.Pulse pulse1(
- period=10,
- amplitude=-0.045,
- width=42,
- startTime=0,
- nperiod=2)
- annotation (Placement(transformation(extent={{-128,-28},{-108,-8}})));
- Modelica.Blocks.Math.Add3 add3_1(
- k3=0,
- k1=1,
- k2=1) annotation (Placement(transformation(extent={{-78,-10},{-58,10}})));
- OpenIPSL.Electrical.Branches.PwLine pwLine1(
- R=0.01,
- G=0,
- B=0.001/2,
- X=0.1)
- annotation (Placement(transformation(extent={{56,-10},{76,10}})));
- OpenIPSL.Electrical.Loads.PSAT.LOADPQ_variation lOADPQ(
- P_0=0.08,
- Q_0=0.06,
- t_start_1=2,
- t_end_1=10,
- dP1=0.01,
- dQ1=0.01,
- t_start_2=12,
- t_end_2=20,
- dP2=-0.01,
- dQ2=-0.01)
- annotation (Placement(transformation(extent={{94,-10},{114,10}})));
- OpenIPSL.Electrical.FACTS.PSAT.TCSCAlpha tCSCAlpha
- annotation (Placement(transformation(extent={{18,-10},{38,10}})));
- inner OpenIPSL.Electrical.SystemBase SysData
- annotation (Placement(transformation(extent={{-120,60},{-96,80}})));
- equation
- connect(pulse1.y, add3_1.u2) annotation (Line(
- points={{-107,-18},{-92,-18},{-92,0},{-80,0}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(pulse.y, add3_1.u1) annotation (Line(
- points={{-105,16},{-94,16},{-94,8},{-80,8}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(pwLine1.n, lOADPQ.p) annotation (Line(
- points={{75,0},{88,0},{88,10},{104,10}},
- color={0,0,255},
- smooth=Smooth.None));
- connect(add3_1.y, Gen1.vf) annotation (Line(
- points={{-57,0},{-32,0},{-32,5},{-26,5}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(Gen1.vf0, add3_1.u3) annotation (Line(
- points={{-22,11},{2,11},{2,22},{-42,22},{-42,-16},{-86,-16},{-86,-8},{-80,
- -8}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(Gen1.pm0, Gen1.pm) annotation (Line(
- points={{-22,-11},{4,-11},{4,-20},{-32,-20},{-32,-5},{-26,-5}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(tCSCAlpha.n, pwLine1.p) annotation (Line(
- points={{39,0},{57,0}},
- color={0,0,255},
- smooth=Smooth.None));
- connect(Gen1.p, tCSCAlpha.p) annotation (Line(
- points={{-4,0},{7.5,0},{7.5,0},{17.1,0}},
- color={0,0,255},
- smooth=Smooth.None));
- annotation (
- Diagram(coordinateSystem(preserveAspectRatio=true, extent={{-100,-100},{100,
- 100}}), graphics),
- Icon(coordinateSystem(extent={{-100,-100},{100,100}})),
- Documentation(info="
-
-Reference |
-KTH own Model, PSAT Manual 2.1.8 |
-
-
-Last update |
-29/09/2015 |
-
-
-Author |
-MAA Murad, SmarTS Lab, KTH Royal Institute of Technology |
-
-
-Contact |
-luigiv@kth.se |
-
-
-"));
- end TCSC_Alpha_Test;
- annotation (Documentation);
- end FACTS;
-
- model TwoWindingTransformer "SMIB system with one load and GENROE model"
- extends Modelica.Icons.Example;
- OpenIPSL.Electrical.Branches.PwLine pwLine1(
- R=0.001,
- X=0.2,
- G=0,
- B=0) annotation (Placement(transformation(extent={{40,20},{60,40}})));
- OpenIPSL.Electrical.Branches.PwLine pwLine3(
- t2=100,
- R=0.0005,
- X=0.1,
- G=0,
- B=0,
- t1=100)
- annotation (Placement(transformation(extent={{20,-40},{40,-20}})));
- OpenIPSL.Electrical.Branches.PwLine pwLine4(
- t2=100,
- t1=100,
- R=0.0005,
- X=0.1,
- G=0,
- B=0)
- annotation (Placement(transformation(extent={{60,-40},{80,-20}})));
- OpenIPSL.Electrical.Machines.PSSE.GENCLS gENCLS(
- M_b=100,
- D=0,
- V_0=1,
- angle_0=0,
- X_d=0.2,
- H=0,
- P_0=10.0278,
- Q_0=32.05072)
- annotation (Placement(transformation(extent={{118,-12},{106,12}})));
- OpenIPSL.Electrical.Loads.PSSE.Load_variation constantLoad(
- d_t=0,
- d_P=0,
- t1=0,
- V_0=0.9679495,
- angle_0=-0.5840921,
- P_0=50,
- Q_0=10)
- annotation (Placement(transformation(extent={{-4,-52},{8,-40}})));
- OpenIPSL.Electrical.Events.PwFault pwFault(
- t1=2,
- t2=2.15,
- R=0.1,
- X=0.1) annotation (Placement(transformation(
- extent={{-6,-6},{6,6}},
- rotation=-90,
- origin={54,-58})));
- OpenIPSL.Electrical.Machines.PSSE.GENSAL gENROE(
- M_b=100,
- Tpd0=5,
- D=0,
- Xppd=0.2,
- Xl=0.12,
- Xppq=0.2,
- Tppd0=0.05,
- Tppq0=0.1,
- H=4,
- Xd=1.41,
- Xq=1.35,
- Xpd=0.3,
- S10=0.1,
- S12=0.5,
- R_a=0.002,
- V_b=14.7,
- V_0=1,
- angle_0=4.747869,
- P_0=40,
- Q_0=-16.46028)
- annotation (Placement(transformation(extent={{-92,-20},{-58,20}})));
- OpenIPSL.Electrical.Branches.PSSE.TwoWindingTransformer twoWindingTransformer(
- CZ=1,
- R=0.001,
- X=0.2,
- G=0,
- B=0,
- S_n=1,
- ANG1=1,
- VB1=14.7,
- VB2=130,
- t1=0.8085,
- VNOM1=20,
- t2=1.02,
- VNOM2=130,
- CW=3)
- annotation (Placement(transformation(extent={{-26,-4},{-14,4}})));
- OpenIPSL.Electrical.Buses.Bus BUS01
- annotation (Placement(transformation(extent={{-50,-10},{-30,10}})));
- OpenIPSL.Electrical.Buses.Bus BUS02
- annotation (Placement(transformation(extent={{-10,-10},{10,10}})));
- OpenIPSL.Electrical.Buses.Bus BUS03
- annotation (Placement(transformation(extent={{40,-40},{60,-20}})));
- OpenIPSL.Electrical.Buses.Bus BUS1
- annotation (Placement(transformation(extent={{80,-10},{100,10}})));
- inner OpenIPSL.Electrical.SystemBase SysData(S_b=100, fn=50)
- annotation (Placement(transformation(extent={{-100,80},{-40,100}})));
- equation
- connect(gENROE.PMECH, gENROE.PMECH0) annotation (Line(points={{-91.66,10},{-98,
- 10},{-98,26},{-50,26},{-50,-6},{-56.64,-6}}, color={0,0,127}));
- connect(gENROE.EFD, gENROE.EFD0) annotation (Line(points={{-91.66,-10},{-98,-10},
- {-98,-24},{-50,-24},{-50,-14},{-56.64,-14}}, color={0,0,127}));
- connect(gENROE.p, BUS01.p)
- annotation (Line(points={{-56.3,0},{-40,0}}, color={0,0,255}));
- connect(BUS01.p, twoWindingTransformer.p)
- annotation (Line(points={{-40,0},{-27,0}}, color={0,0,255}));
- connect(twoWindingTransformer.n, BUS02.p)
- annotation (Line(points={{-13,0},{0,0}}, color={0,0,255}));
- connect(pwLine1.p, BUS02.p) annotation (Line(points={{38.3333,30},{4,30},{4,0},
- {0,0}}, color={0,0,255}));
- connect(pwLine3.p, BUS02.p) annotation (Line(points={{18.3333,-30},{4,-30},{4,
- 0},{0,0}}, color={0,0,255}));
- connect(constantLoad.p, BUS02.p)
- annotation (Line(points={{2,-39.4},{2,0},{0,0}}, color={0,0,255}));
- connect(pwLine3.n, BUS03.p) annotation (Line(points={{41.6667,-30},{41.6667,-30},
- {50,-30}}, color={0,0,255}));
- connect(BUS03.p, pwLine4.p)
- annotation (Line(points={{50,-30},{58.3333,-30}}, color={0,0,255}));
- connect(BUS1.p, gENCLS.p) annotation (Line(points={{90,0},{104.8,0},{104.8,-0.180432}},
- color={0,0,255}));
- connect(pwLine1.n, BUS1.p) annotation (Line(points={{61.6667,30},{86,30},{86,
- 0},{90,0}}, color={0,0,255}));
- connect(pwLine4.n, BUS1.p) annotation (Line(points={{81.6667,-30},{86,-30},{
- 86,0},{90,0}}, color={0,0,255}));
- connect(pwFault.p, BUS03.p)
- annotation (Line(points={{54,-51},{54,-30},{50,-30}}, color={0,0,255}));
- annotation (Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,
- -100},{100,100}})), Documentation);
- end TwoWindingTransformer;
-
- partial model SMIBpartial "SMIB system with one load"
- extends Modelica.Icons.Example;
- OpenIPSL.Electrical.Branches.PwLine pwLine(
- R=0.001,
- X=0.2,
- G=0,
- B=0) annotation (Placement(transformation(extent={{-26,-4},{-14,4}})));
- OpenIPSL.Electrical.Branches.PwLine pwLine1(
- R=0.001,
- G=0,
- B=0,
- X=0.2)
- annotation (Placement(transformation(extent={{34,26},{46,34}})));
- OpenIPSL.Electrical.Branches.PwLine pwLine3(
- R=0.0005,
- X=0.1,
- G=0,
- B=0)
- annotation (Placement(transformation(extent={{14,-34},{26,-26}})));
- OpenIPSL.Electrical.Branches.PwLine pwLine4(
- R=0.0005,
- X=0.1,
- G=0,
- B=0)
- annotation (Placement(transformation(extent={{54,-34},{66,-26}})));
- OpenIPSL.Electrical.Machines.PSSE.GENCLS gENCLS(
- M_b=100,
- D=0,
- V_0=1,
- angle_0=0,
- X_d=0.2,
- P_0=10.01711,
- Q_0=8.006544,
- H=0)
- annotation (Placement(transformation(extent={{112,-12},{98,12}})));
- OpenIPSL.Electrical.Loads.PSSE.Load_variation constantLoad(
- PQBRAK=0.7,
- d_t=0,
- d_P=0,
- V_0=0.9919935,
- angle_0=-0.5762684,
- t1=0,
- characteristic=2,
- P_0=50,
- Q_0=10)
- annotation (Placement(transformation(extent={{-4,-52},{8,-40}})));
- OpenIPSL.Electrical.Events.PwFault pwFault(
- t1=2,
- t2=2.15,
- R=0,
- X=0) annotation (Placement(transformation(
- extent={{-6,-6},{6,6}},
- rotation=-90,
- origin={44,-60})));
- OpenIPSL.Electrical.Buses.Bus GEN1
- annotation (Placement(transformation(extent={{-50,-10},{-30,10}})));
- inner OpenIPSL.Electrical.SystemBase SysData
- annotation (Placement(transformation(extent={{-100,80},{-40,100}})));
- OpenIPSL.Electrical.Buses.Bus LOAD
- annotation (Placement(transformation(extent={{-10,-10},{10,10}})));
- OpenIPSL.Electrical.Buses.Bus GEN2
- annotation (Placement(transformation(extent={{70,-10},{90,10}})));
- OpenIPSL.Electrical.Buses.Bus FAULT
- annotation (Placement(transformation(extent={{30,-40},{50,-20}})));
- equation
- connect(GEN1.p, pwLine.p)
- annotation (Line(points={{-40,0},{-40,0},{-25.4,0}}, color={0,0,255}));
- connect(pwLine.n, LOAD.p)
- annotation (Line(points={{-14.6,0},{-14.6,0},{0,0}}, color={0,0,255}));
- connect(pwLine3.p, LOAD.p) annotation (Line(points={{14.6,-30},{4,-30},{4,0},
- {0,0}},color={0,0,255}));
- connect(constantLoad.p, LOAD.p)
- annotation (Line(points={{2,-40},{2,0},{0,0}}, color={0,0,255}));
- connect(pwLine1.p, LOAD.p)
- annotation (Line(points={{34.6,30},{4,30},{4,0},{0,0}}, color={0,0,255}));
- connect(GEN2.p, gENCLS.p)
- annotation (Line(points={{80,0},{98,0},{98,0}}, color={0,0,255}));
- connect(pwLine4.n, GEN2.p) annotation (Line(points={{65.4,-30},{76,-30},{76,0},
- {80,0}}, color={0,0,255}));
- connect(pwLine1.n, GEN2.p) annotation (Line(points={{45.4,30},{76,30},{76,0},
- {80,0}},color={0,0,255}));
- connect(FAULT.p, pwLine4.p)
- annotation (Line(points={{40,-30},{54.6,-30}}, color={0,0,255}));
- connect(FAULT.p, pwLine3.n)
- annotation (Line(points={{40,-30},{25.4,-30}}, color={0,0,255}));
- connect(pwFault.p, pwLine4.p)
- annotation (Line(points={{44,-53},{44,-30},{54.6,-30}}, color={0,0,255}));
- annotation (Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,
- -100},{100,100}})), Documentation);
- end SMIBpartial;
-
- partial model BaseTest
- extends Modelica.Icons.Example;
- Electrical.Branches.PwLine pwLine1(
- X=0.1,
- R=0.01,
- G=0,
- B=0.0005) annotation (Placement(visible=true, transformation(
- origin={20,-12},
- extent={{-6,-6},{6,6}},
- rotation=0)));
- Electrical.Branches.PwLine pwLinewithOpening1(
- G=0,
- R=0.01,
- X=0.1,
- opening=1,
- B=0.0005,
- t1=2,
- t2=2.15) annotation (Placement(visible=true, transformation(
- origin={60,12},
- extent={{-6,-6},{6,6}},
- rotation=0)));
- Electrical.Branches.PwLine pwLine2(
- G=0,
- R=0.01,
- X=0.1,
- B=0.0005) annotation (Placement(visible=true, transformation(
- origin={20,12},
- extent={{-6,-6},{6,6}},
- rotation=0)));
- Electrical.Branches.PwLine pwLine3(
- G=0,
- R=0.01,
- X=0.1,
- B=0.0005) annotation (Placement(visible=true, transformation(
- origin={62,-14},
- extent={{-6,-6},{6,6}},
- rotation=0)));
- Electrical.Branches.PwLine pwLine4(
- G=0,
- R=0.01,
- X=0.1,
- B=0.0005) annotation (Placement(visible=true, transformation(
- origin={60,36},
- extent={{-5.99999,-5.99998},{5.99999,6}},
- rotation=0)));
- Electrical.Loads.PSAT.LOADPQ pwLoadPQ1(
- P_0=8,
- Q_0=6,
- V_0=1,
- angle_0=0) annotation (Placement(visible=true, transformation(
- origin={94,24},
- extent={{-6,-6},{6,6}},
- rotation=90)));
- Electrical.Loads.PSAT.LOADPQ_variation pwLoadPQ2(
- P_0=8,
- Q_0=6,
- V_0=1,
- angle_0=0) annotation (Placement(visible=true, transformation(
- origin={94.0335,-14.2889},
- extent={{-6.2889,-6.0335},{6.2889,6.0335}},
- rotation=90)));
- inner Electrical.SystemBase SysData
- annotation (Placement(transformation(extent={{-100,80},{-40,100}})));
- Electrical.Buses.Bus bus
- annotation (Placement(transformation(extent={{-10,-10},{10,10}})));
- Electrical.Buses.Bus bus1
- annotation (Placement(transformation(extent={{30,-10},{50,10}})));
- Electrical.Buses.Bus bus2
- annotation (Placement(transformation(extent={{70,14},{90,34}})));
- Electrical.Buses.Bus bus3
- annotation (Placement(transformation(extent={{70,-24},{90,-4}})));
- equation
- connect(pwLine2.p, pwLine1.p) annotation (Line(points={{14.6,12},{6,12},{6,-12},
- {14.6,-12}}, color={0,0,255}));
- connect(pwLine2.n, pwLine1.n) annotation (Line(points={{25.4,12},{34,12},{34,
- -12},{25.4,-12}}, color={0,0,255}));
- connect(pwLine4.p, pwLinewithOpening1.p) annotation (Line(points={{54.6,36},{
- 48,36},{48,12},{54.6,12}}, color={0,0,255}));
- connect(pwLine4.n, pwLinewithOpening1.n) annotation (Line(points={{65.4,36},{
- 72,36},{72,12},{65.4,12}}, color={0,0,255}));
- connect(bus.p, pwLine1.p) annotation (Line(points={{0,0},{6,0},{6,-12},{14.6,
- -12}}, color={0,0,255}));
- connect(bus1.p, pwLine1.n) annotation (Line(points={{40,0},{34,0},{34,-12},{
- 25.4,-12}}, color={0,0,255}));
- connect(bus1.p, pwLinewithOpening1.p) annotation (Line(points={{40,0},{44,0},
- {44,20},{48,20},{48,12},{54.6,12}}, color={0,0,255}));
- connect(pwLine3.p, pwLinewithOpening1.p) annotation (Line(points={{56.6,-14},
- {44,-14},{44,20},{48,20},{48,12},{54.6,12}}, color={0,0,255}));
- connect(bus2.p, pwLoadPQ1.p)
- annotation (Line(points={{80,24},{84,24},{87.4,24}}, color={0,0,255}));
- connect(bus2.p, pwLinewithOpening1.n) annotation (Line(points={{80,24},{72,24},
- {72,12},{65.4,12}}, color={0,0,255}));
- connect(bus3.p, pwLoadPQ2.p) annotation (Line(points={{80,-14},{87.3966,-14},
- {87.3966,-14.2889}}, color={0,0,255}));
- connect(pwLine3.n, bus3.p) annotation (Line(points={{67.4,-14},{67.4,-14},{80,
- -14}}, color={0,0,255}));
- annotation (
- Icon(coordinateSystem(preserveAspectRatio=false)),
- Diagram(coordinateSystem(preserveAspectRatio=false)),
- Documentation);
- end BaseTest;
- annotation (Documentation);
- end Examples;
-
- package Electrical
- record SystemBase "System Base Definition"
- parameter OpenIPSL.Types.ApparentPowerMega S_b=100 "System base";
- parameter Modelica.SIunits.Frequency fn=50 "System Frequency";
- annotation (
- Icon(coordinateSystem(
- preserveAspectRatio=false,
- extent={{-120,-100},{120,100}},
- initialScale=0.1), graphics={Rectangle(extent={{-120,100},{120,-100}},
- lineColor={28,108,200}),Text(
- extent={{-100,40},{100,0}},
- lineColor={28,108,200},
- horizontalAlignment=TextAlignment.Left,
- textString="System Base: %S_b MVA"),Text(
- extent={{-100,-20},{100,-60}},
- lineColor={28,108,200},
- horizontalAlignment=TextAlignment.Left,
- textString="Frequency: %fn Hz"),Text(
- extent={{-100,100},{100,60}},
- lineColor={28,108,200},
- horizontalAlignment=TextAlignment.Center,
- textString="System Data")}),
- defaultComponentName="SysData",
- defaultComponentPrefixes="inner",
- missingInnerMessage="
-No 'System Data' component is defined. A default component will be used, and generate a system base of 100 MVA, and a frequency of 50 Hz",
- Diagram(coordinateSystem(
- extent={{-120,-100},{120,100}},
- preserveAspectRatio=false,
- initialScale=0.1)),
- defaultComponentPrefixes="inner",
- Documentation);
-
- end SystemBase;
-
- package Buses
- model Bus "Bus model (2014/03/10)"
- extends OpenIPSL.Electrical.Essentials.pfComponent;
- OpenIPSL.Interfaces.PwPin p(vr(start=V_0*cos(angle_0*Modelica.Constants.pi
- /180)), vi(start=V_0*sin(angle_0*Modelica.Constants.pi/180)))
- annotation (Placement(
- visible=true,
- transformation(
- origin={0,0},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0),
- iconTransformation(
- origin={0,0},
- extent={{-10,-10},{10,10}},
- rotation=0)));
- Real V(start=V_0) "Bus voltage magnitude (pu)";
- Modelica.SIunits.Conversions.NonSIunits.Angle_deg angle(start=angle_0)
- "Bus voltage angle";
- parameter Boolean displayPF=true "Display voltage values:" annotation (Dialog(
- group="Visualisation",
- __Dymola_compact=true,
- __Dymola_descriptionLabel=true), choices(checkBox=true));
- equation
- V = sqrt(p.vr^2 + p.vi^2);
- angle = atan2(p.vi, p.vr)*180/Modelica.Constants.pi;
- p.ir = 0;
- p.ii = 0;
- annotation (Icon(graphics={Rectangle(
- visible=true,
- fillPattern=FillPattern.Solid,
- extent={{-10,-100},{10,100}}),Text(
- visible=true,
- origin={-0.02605,120.133},
- fillPattern=FillPattern.Solid,
- extent={{-100,-20},{100,20}},
- textString="%name"),Text(
- visible=displayPF,
- origin={0,-120},
- extent={{-60,-20},{60,20}},
- lineColor={170,0,0},
- textString=DynamicSelect("Vpu", String(V, significantDigits=3))),Text(
- visible=displayPF,
- origin={0,-160},
- extent={{-60,-20},{60,20}},
- lineColor={170,0,0},
- textString=DynamicSelect("Angle", String(angle, significantDigits=3)
- + "°"))}), Documentation);
- end Bus;
-
- model InfiniteBus "PSAT Infinite Bus"
- extends OpenIPSL.Electrical.Essentials.pfComponent;
- Real P "Active Power absorbed by the Infinite bus (MW)";
- Real Q "Reactive Power absorbed by the Infinite bus (MVAr)";
- Interfaces.PwPin p
- annotation (Placement(transformation(extent={{90,-10},{110,10}})));
- parameter Boolean displayPF=false "Display power flow results:" annotation (
- Dialog(
- group="Visualisation",
- __Dymola_compact=true,
- __Dymola_descriptionLabel=true), choices(checkBox=true));
- equation
- p.vr = V_0*cos(angle_0*Modelica.Constants.pi/180);
- p.vi = V_0*sin(angle_0*Modelica.Constants.pi/180);
- P = -(p.vr*p.ir + p.vi*p.ii)*S_b;
- Q = -(p.vr*p.ii - p.vi*p.ir)*S_b;
- annotation (
- Icon(coordinateSystem(
- extent={{-100,-100},{100,100}},
- preserveAspectRatio=false,
- initialScale=0.1,
- grid={2,2}), graphics={Rectangle(
- extent={{-100,-100},{100,100}},
- lineColor={0,0,0},
- fillColor={241,241,241},
- fillPattern=FillPattern.Solid),Text(
- visible=displayPF,
- extent={{-80,100},{80,20}},
- lineColor={255,0,0},
- textString=DynamicSelect("0.0 MW",
- OpenIPSL.NonElectrical.Functions.displayPower(P, " MW"))),Polygon(
- visible=displayPF,
- points=DynamicSelect({{-20,30},{-20,10},{20,20},{-20,30}}, if P >= 0
- then {{-20,30},{-20,10},{20,20},{-20,30}} else {{20,30},{20,10},{-20,
- 20},{20,30}}),
- lineColor={255,0,0},
- fillColor={255,0,0},
- fillPattern=FillPattern.Solid),Text(
- visible=displayPF,
- extent={{-80,-20},{80,-100}},
- lineColor={0,255,0},
- textString=DynamicSelect("0.0 Mvar",
- OpenIPSL.NonElectrical.Functions.displayPower(Q, " Mvar"))),Polygon(
- visible=displayPF,
- points=DynamicSelect({{-20,-30},{-20,-10},{20,-20},{-20,-30}}, if Q
- >= 0 then {{-20,-30},{-20,-10},{20,-20},{-20,-30}} else {{20,-30},
- {20,-10},{-20,-20},{20,-30}}),
- lineColor={0,255,0},
- fillColor={0,255,0},
- fillPattern=FillPattern.Solid),Text(
- extent={{-100,160},{100,120}},
- lineColor={0,0,255},
- textString="%name")}),
- Diagram(coordinateSystem(
- preserveAspectRatio=true,
- initialScale=0.1,
- grid={2,2})),
- Documentation(info="
-
-Reference |
-None |
-
-
-Last update |
-2015-12-14 |
-
-
-Author |
-Maxime Baudette, SmarTS Lab, KTH Royal Institute of Technology |
-
-
-Contact |
-luigiv@kth.se |
-
-
-"));
- end InfiniteBus;
-
- model InternalBus "Bus for change base"
- outer OpenIPSL.Electrical.SystemBase SysData;
- constant Real pi=Modelica.Constants.pi;
- parameter Real M_b=120 "Machine base power rating (MVA)"
- annotation (Dialog(group="Power flow data"));
- parameter Real S_b=SysData.S_b "System base power rating (MVA)"
- annotation (Dialog(group="Power flow data"));
- OpenIPSL.Interfaces.PwPin p "Machine base" annotation (Placement(
- transformation(extent={{-32,-4},{-12,16}}), iconTransformation(
- extent={{-32,-4},{-12,16}})));
- OpenIPSL.Interfaces.PwPin n "System base" annotation (Placement(
- transformation(extent={{8,-4},{28,16}}), iconTransformation(
- extent={{8,-4},{28,16}})));
- protected
- parameter Real CoB=M_b/S_b;
- equation
- 0 = n.vr - p.vr;
- 0 = n.vi - p.vi;
- 0 = p.ir*CoB + n.ir;
- 0 = p.ii*CoB + n.ii;
- annotation (
- Icon(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{100,
- 100}}), graphics={Rectangle(
- extent={{8,96},{-12,-88}},
- lineColor={0,0,255},
- fillColor={95,95,95},
- fillPattern=FillPattern.Solid),Text(
- extent={{-46,34},{-22,2}},
- lineColor={0,0,255},
- textString="*")}),
- Diagram(graphics),
- Documentation);
- end InternalBus;
-
- model BusExt
- outer OpenIPSL.Electrical.SystemBase SysData
- "Must add this line in all models";
- parameter Integer np(min=0) = 0 "Number of left connection"
- annotation (Dialog(connectorSizing=true), HideResult=true);
- parameter Integer nn(min=0) = 0 "Number of right connections"
- annotation (Dialog(connectorSizing=true), HideResult=true);
- OpenIPSL.Interfaces.PwPin p[np] annotation (Placement(
- visible=true,
- transformation(
- origin={-20.0001,1},
- extent={{-9.99994,-99},{10.0001,99}},
- rotation=0),
- iconTransformation(
- origin={20,0},
- extent={{-4,-60},{4,60}},
- rotation=0)));
- OpenIPSL.Interfaces.PwPin n[nn] annotation (Placement(
- visible=true,
- transformation(
- origin={20,0},
- extent={{-12,-100},{12,100}},
- rotation=0),
- iconTransformation(
- origin={0,0},
- extent={{-4,-60},{4,60}},
- rotation=0)));
- Real V(start=V_0) "Bus voltage magnitude (pu)";
- Real angle(start=angle_0) "Bus voltage angle (deg)";
- parameter Real V_0=1 "Voltage magnitude (pu)"
- annotation (Dialog(group="Power flow data"));
- parameter Real angle_0=0 "Voltage angle (deg)"
- annotation (Dialog(group="Power flow data"));
- parameter Real V_b=130 "Base voltage (kV)"
- annotation (Dialog(group="Power flow data"));
- parameter Real S_b=SysData.S_b "System base power (MVA)"
- annotation (Dialog(group="Power flow data"));
- protected
- parameter Real vr0=V_0*cos(angle_0*Modelica.Constants.pi/180);
- parameter Real vi0=V_0*sin(angle_0*Modelica.Constants.pi/180);
- equation
- if np > 1 then
- for i in 2:np loop
- connect(p[1], p[i]);
- end for;
- end if;
- if nn > 1 then
- for i in 2:nn loop
- connect(n[1], n[i]);
- end for;
- end if;
- if np > 0 and nn > 0 then
- connect(p[1], n[1]);
- end if;
- if np > 0 then
- V = sqrt(p[1].vr^2 + p[1].vi^2);
- angle = atan2(p[1].vi, p[1].vr)*180/Modelica.Constants.pi;
- elseif nn > 0 then
- V = sqrt(n[1].vr^2 + n[1].vi^2);
- angle = atan2(n[1].vi, n[1].vr)*180/Modelica.Constants.pi;
- else
- V = 0;
- angle = 0;
- end if;
- annotation (
- Diagram(coordinateSystem(extent={{0,-100},{20,100}})),
- Icon(coordinateSystem(extent={{0,-100},{20,100}}, preserveAspectRatio=false),
- graphics={Rectangle(
- extent={{0,100},{20,-100}},
- lineColor={0,0,255},
- fillColor={85,170,255},
- fillPattern=FillPattern.Solid)}),
- Documentation(info="
-
-Reference |
-None |
-
-
-Last update |
-2017-07-07 |
-
-
-Author |
-Jan Lavenius, Giuseppe Laera, KTH Royal Institute of Technology; tbeu |
-
-
-Contact |
-luigiv@kth.se |
-
-
-"));
- end BusExt;
- annotation (Documentation);
- end Buses;
-
- package Branches
- model PwLine "Model for a transmission Line based on the pi-equivalent circuit"
- outer OpenIPSL.Electrical.SystemBase SysData;
- import Modelica.ComplexMath.conj;
- import Modelica.ComplexMath.real;
- import Modelica.ComplexMath.imag;
- import Modelica.ComplexMath.j;
- OpenIPSL.Interfaces.PwPin p annotation (Placement(transformation(
- extent={{-100,-10},{-80,10}}), iconTransformation(extent={{-100,
- -10},{-80,10}})));
- OpenIPSL.Interfaces.PwPin n annotation (Placement(transformation(
- extent={{80,-10},{100,10}}), iconTransformation(extent={{80,-10},
- {100,10}})));
- parameter Modelica.SIunits.PerUnit R "Resistance (pu)"
- annotation (Dialog(group="Line parameters"));
- parameter Modelica.SIunits.PerUnit X "Reactance (pu)"
- annotation (Dialog(group="Line parameters"));
- parameter Modelica.SIunits.PerUnit G "Shunt half conductance (pu)"
- annotation (Dialog(group="Line parameters"));
- parameter Modelica.SIunits.PerUnit B "Shunt half susceptance (pu)"
- annotation (Dialog(group="Line parameters"));
- parameter OpenIPSL.Types.ApparentPowerMega S_b=SysData.S_b
- "System base power (MVA)"
- annotation (Dialog(group="Line parameters", enable=false));
- parameter Modelica.SIunits.Time t1=Modelica.Constants.inf
- annotation (Dialog(group="Perturbation parameters"));
- parameter Modelica.SIunits.Time t2=Modelica.Constants.inf
- annotation (Dialog(group="Perturbation parameters"));
- parameter Integer opening=1 annotation (Dialog(group=
- "Perturbation parameters"), choices(
- choice=1 "Line opening at both ends",
- choice=2 "Line opening at sending end",
- choice=3 "Line opening at receiving end"));
- parameter Boolean displayPF=false "Display power flow results:" annotation (
- Dialog(
- group="Visualisation",
- __Dymola_compact=true,
- __Dymola_descriptionLabel=true), choices(checkBox=true));
- OpenIPSL.Types.ActivePowerMega P12;
- OpenIPSL.Types.ActivePowerMega P21;
- OpenIPSL.Types.ReactivePowerMega Q12;
- OpenIPSL.Types.ReactivePowerMega Q21;
- Complex vs(re=p.vr, im=p.vi);
- Complex is(re=p.ir, im=p.ii);
- Complex vr(re=n.vr, im=n.vi);
- Complex ir(re=n.ir, im=n.ii);
- protected
- parameter Complex Y(re=G, im=B);
- parameter Complex Z(re=R, im=X);
- equation
- //Calculations for the power flow display
- P12 = real(vs*conj(is))*S_b;
- P21 = -real(vr*conj(ir))*S_b;
- Q12 = imag(vs*conj(is))*S_b;
- Q21 = -imag(vr*conj(ir))*S_b;
- //PI model with different line openings
- if time >= t1 and time < t2 then
- if opening == 1 then
- is = Complex(0);
- ir = Complex(0);
- elseif opening == 2 then
- is = Complex(0);
- ir = (vr - ir*Z)*Y;
- else
- ir = Complex(0);
- is = (vs - is*Z)*Y;
- end if;
- else
- vs - vr = Z*(is - vs*Y);
- vr - vs = Z*(ir - vr*Y);
- end if;
- annotation (Icon(coordinateSystem(preserveAspectRatio=true, initialScale=0.1),
- graphics={Rectangle(
- extent={{-80,40},{80,-40}},
- lineColor={0,0,255},
- fillColor={255,255,255},
- fillPattern=FillPattern.Solid),Rectangle(
- extent={{-60,20},{60,-20}},
- lineColor={0,0,255},
- fillColor={95,95,95},
- fillPattern=FillPattern.Solid),Text(
- visible=displayPF,
- extent={{-200,160},{-20,40}},
- lineColor={255,0,0},
- textString=DynamicSelect("0.0 MW",
- OpenIPSL.NonElectrical.Functions.displayPower(P12, " MW"))),Polygon(
- visible=displayPF,
- points=DynamicSelect({{-120,70},{-120,50},{-80,60},{-120,70}}, if P12
- >= 0 then {{-120,70},{-120,50},{-80,60},{-120,70}} else {{-80,70},
- {-80,50},{-120,60},{-80,70}}),
- lineColor={255,0,0},
- fillColor={255,0,0},
- fillPattern=FillPattern.Solid),Text(
- visible=displayPF,
- extent={{20,160},{200,40}},
- lineColor={255,0,0},
- textString=DynamicSelect("0.0 MW",
- OpenIPSL.NonElectrical.Functions.displayPower(P21, " MW"))),Polygon(
- visible=displayPF,
- points=DynamicSelect({{80,70},{80,50},{120,60},{80,70}}, if P21 >= 0
- then {{80,70},{80,50},{120,60},{80,70}} else {{120,70},{120,50},{
- 80,60},{120,70}}),
- lineColor={255,0,0},
- fillColor={255,0,0},
- fillPattern=FillPattern.Solid),Text(
- visible=displayPF,
- extent={{-200,-40},{-20,-160}},
- lineColor={0,255,0},
- textString=DynamicSelect("0.0 Mvar",
- OpenIPSL.NonElectrical.Functions.displayPower(Q12, " Mvar"))),
- Polygon(
- visible=displayPF,
- points=DynamicSelect({{-120,-70},{-120,-50},{-80,-60},{-120,-70}},
- if Q12 >= 0 then {{-120,-70},{-120,-50},{-80,-60},{-120,-70}} else
- {{-80,-70},{-80,-50},{-120,-60},{-80,-70}}),
- lineColor={0,255,0},
- fillColor={0,255,0},
- fillPattern=FillPattern.Solid),Text(
- visible=displayPF,
- extent={{20,-40},{200,-160}},
- lineColor={0,255,0},
- textString=DynamicSelect("0.0 Mvar",
- OpenIPSL.NonElectrical.Functions.displayPower(Q21, " Mvar"))),
- Polygon(
- visible=displayPF,
- points=DynamicSelect({{80,-70},{80,-50},{120,-60},{80,-70}}, if Q21
- >= 0 then {{80,-70},{80,-50},{120,-60},{80,-70}} else {{120,-70},{
- 120,-50},{80,-60},{120,-70}}),
- lineColor={0,255,0},
- fillColor={0,255,0},
- fillPattern=FillPattern.Solid),Text(
- extent={{-60,20},{60,-20}},
- lineColor={255,255,0},
- textString="%name")}), Documentation);
- end PwLine;
-
- package Simulink
- package LTC
- model LTC
- Modelica.Blocks.Continuous.LimIntegrator imLimitedIntegrator(
- outMax=1,
- k=1,
- outMin=-delay1,
- y_start=-delay1,
- initType=Modelica.Blocks.Types.Init.InitialOutput)
- annotation (Placement(transformation(extent={{62,8},{78,24}})));
- LTC_deadband deadband1(Uplim=Uplim, Downlim=Downlim)
- annotation (Placement(transformation(extent={{-12,-14},{54,42}})));
- parameter Real Uplim=0.01;
- parameter Real Downlim=-0.01;
- parameter Real Ymin=0.88 "Min Ratio";
- parameter Real Ymax=1.2 "Max Ratio";
- parameter Real delay1;
- parameter Real delay2;
- parameter Real positionNo=33;
- parameter Real r0=1 "Transformer Ratio";
- LTC_switch lTC_switch
- annotation (Placement(transformation(extent={{88,6},{108,26}})));
- Modelica.Blocks.Sources.Constant imSetPoint(k=0)
- annotation (Placement(transformation(extent={{62,-20},{82,0}})));
- Modelica.Blocks.Sources.Constant imSetPoint1(k=1)
- annotation (Placement(transformation(extent={{-76,-38},{-56,-18}})));
- Modelica.Blocks.Interfaces.RealOutput r annotation (Placement(transformation(
- extent={{178,6},{198,26}}), iconTransformation(extent={{78,0},{114,38}})));
- LTC_lookup lTC_lookup(Uplim=Uplim, Downlim=Downlim)
- annotation (Placement(transformation(extent={{-2,42},{42,86}})));
- Modelica.Blocks.Continuous.LimIntegrator imLimitedIntegrator1(
- outMin=Ymin,
- outMax=Ymax,
- k=(Ymax - Ymin)/(positionNo*delay2),
- y_start=r0,
- initType=Modelica.Blocks.Types.Init.InitialOutput)
- annotation (Placement(transformation(extent={{120,8},{136,24}})));
- LTC_quantizer lTC_quantizer
- annotation (Placement(transformation(extent={{150,6},{170,26}})));
- Modelica.Blocks.Interfaces.RealInput u annotation (Placement(transformation(
- extent={{-84,12},{-64,32}}), iconTransformation(extent={{-116,4},{-80,
- 42}})));
- Modelica.Blocks.Math.Add add(k2=-1)
- annotation (Placement(transformation(extent={{-34,6},{-14,26}})));
- equation
- connect(lTC_lookup.out, lTC_switch.LTCin) annotation (Line(
- points={{36.94,64.22},{84,64.22},{84,20.9},{91.6,20.9}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(r, lTC_quantizer.n) annotation (Line(
- points={{188,16},{182,16},{182,16.1},{168.5,16.1}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(imLimitedIntegrator1.y, lTC_quantizer.p)
- annotation (Line(points={{136.8,16},{152.7,16}}, color={0,0,127}));
- connect(imLimitedIntegrator1.u, lTC_switch.r) annotation (Line(points={{118.4,
- 16},{105.1,16},{105.1,16.8}}, color={0,0,127}));
- connect(imLimitedIntegrator.y, lTC_switch.Signalin)
- annotation (Line(points={{78.8,16},{91.7,16}}, color={0,0,127}));
- connect(deadband1.signal, imLimitedIntegrator.u) annotation (Line(points={{
- 42.78,16.24},{51.39,16.24},{51.39,16},{60.4,16}}, color={0,0,127}));
- connect(imSetPoint.y, lTC_switch.Normalin) annotation (Line(points={{83,-10},
- {88,-10},{88,10.7},{91.7,10.7}}, color={0,0,127}));
- connect(add.y, deadband1.u)
- annotation (Line(points={{-13,16},{1.2,16},{1.2,16.24}}, color={0,0,127}));
- connect(lTC_lookup.u, deadband1.u) annotation (Line(points={{3.72,63.78},{-8,
- 63.78},{-8,16},{1.2,16},{1.2,16.24}}, color={0,0,127}));
- connect(add.u1, u)
- annotation (Line(points={{-36,22},{-74,22}}, color={0,0,127}));
- connect(imSetPoint1.y, add.u2) annotation (Line(points={{-55,-28},{-44,-28},{
- -44,10},{-36,10}}, color={0,0,127}));
- annotation (
- Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{
- 200,100}})),
- Icon(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{200,
- 100}}), graphics={Rectangle(
- extent={{-78,70},{80,-32}},
- lineColor={0,0,255},
- fillColor={255,255,255},
- fillPattern=FillPattern.Solid),Text(
- extent={{-60,32},{66,-58}},
- lineColor={0,0,255},
- fillColor={255,255,255},
- fillPattern=FillPattern.Solid,
- textString="LTC
- ")}), Documentation(info="
-
-
-Reference |
-Load Tap Changer |
-
-
-Last update |
-2015-10-02 |
-
-
-Author |
-Le Qi, SmarTS Lab, KTH Royal Institute of Technology |
-
-
-Contact |
-luigiv@kth.se |
-
-
-"));
- end LTC;
-
- model LTC_deadband
- Modelica.Blocks.Interfaces.RealOutput signal annotation (Placement(
- transformation(extent={{56,-2},{76,18}}), iconTransformation(extent={{
- 56,-2},{76,18}})));
- Modelica.Blocks.Interfaces.RealInput u annotation (Placement(transformation(
- extent={{-68,0},{-48,20}}), iconTransformation(extent={{-70,-2},{-50,
- 18}})));
- parameter Real Uplim;
- parameter Real Downlim;
- equation
- if u > Uplim or u < Downlim then
- signal = 1;
- else
- signal = -100;
- end if;
- annotation (
- Icon(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{100,
- 100}}), graphics={Rectangle(
- extent={{-50,52},{56,-38}},
- lineColor={0,0,255},
- fillColor={255,255,255},
- fillPattern=FillPattern.Solid),Text(
- extent={{-34,32},{40,-24}},
- lineColor={0,0,255},
- fillColor={255,255,255},
- fillPattern=FillPattern.Solid,
- textString="deadband")}),
- Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{
- 100,100}}), graphics),
- Documentation(info="
-
-
-Reference |
-Load Tap Changer with a deadband |
-
-
-Last update |
-2015-10-02 |
-
-
-Author |
-Le Qi, SmarTS Lab, KTH Royal Institute of Technology |
-
-
-Contact |
-luigiv@kth.se |
-
-
-"));
- end LTC_deadband;
-
- model LTC_switch
- Modelica.Blocks.Interfaces.RealInput Signalin annotation (Placement(
- transformation(extent={{-68,-4},{-48,16}}), iconTransformation(extent={
- {-78,-16},{-48,16}})));
- Modelica.Blocks.Interfaces.RealInput LTCin annotation (Placement(
- transformation(extent={{-68,46},{-48,66}}), iconTransformation(extent={
- {-80,32},{-48,66}})));
- Modelica.Blocks.Interfaces.RealInput Normalin annotation (Placement(
- transformation(extent={{-68,-58},{-48,-38}}), iconTransformation(extent=
- {{-78,-68},{-48,-38}})));
- Modelica.Blocks.Interfaces.RealOutput r annotation (Placement(transformation(
- extent={{54,0},{74,20}}), iconTransformation(extent={{56,-8},{86,24}})));
- equation
- if Signalin > 0 then
- r = LTCin;
- else
- r = Normalin;
- end if;
- annotation (
- Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{
- 100,100}}), graphics),
- Icon(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{100,
- 100}}), graphics={Rectangle(
- extent={{-46,94},{56,-94}},
- lineColor={0,0,255},
- fillColor={255,255,255},
- fillPattern=FillPattern.Solid),Line(
- points={{-46,0},{-32,0},{-32,18}},
- color={0,0,255},
- smooth=Smooth.None,
- thickness=1),Line(
- points={{-32,0},{-32,-18}},
- color={0,0,255},
- smooth=Smooth.None,
- thickness=1)}),
- Documentation(info="
-
-
-Reference |
-Load Tap Changer with switching |
-
-
-Last update |
-2015-10-02 |
-
-
-Author |
-Le Qi, SmarTS Lab, KTH Royal Institute of Technology |
-
-
-Contact |
-luigiv@kth.se |
-
-
-"));
- end LTC_switch;
-
- model LTC_quantizer
- Modelica.Blocks.Interfaces.RealInput p annotation (Placement(transformation(
- extent={{-76,-2},{-56,18}}), iconTransformation(extent={{-90,-18},{-56,
- 18}})));
- Modelica.Blocks.Interfaces.RealOutput n annotation (Placement(transformation(
- extent={{70,-4},{90,16}}), iconTransformation(extent={{70,-14},{100,
- 16}})));
- parameter Real Ratio[1, 33]=[0.88, 0.89, 0.9, 0.91, 0.92, 0.93, 0.94, 0.95,
- 0.96, 0.97, 0.98, 0.99, 1, 1.01, 1.02, 1.03, 1.04, 1.05, 1.06, 1.07, 1.08,
- 1.09, 1.1, 1.11, 1.12, 1.13, 1.14, 1.15, 1.16, 1.17, 1.18, 1.19, 1.2];
- equation
- if 0.77 <= p and p < Ratio[1, 2] then
- n = Ratio[1, 1];
- elseif Ratio[1, 2] <= p and p < Ratio[1, 3] then
- n = Ratio[1, 2];
- elseif Ratio[1, 3] <= p and p < Ratio[1, 4] then
- n = Ratio[1, 3];
- elseif Ratio[1, 4] <= p and p < Ratio[1, 5] then
- n = Ratio[1, 4];
- elseif Ratio[1, 5] <= p and p < Ratio[1, 6] then
- n = Ratio[1, 5];
- elseif Ratio[1, 6] <= p and p < Ratio[1, 7] then
- n = Ratio[1, 6];
- elseif Ratio[1, 7] <= p and p < Ratio[1, 8] then
- n = Ratio[1, 7];
- elseif Ratio[1, 8] <= p and p < Ratio[1, 9] then
- n = Ratio[1, 8];
- elseif Ratio[1, 9] <= p and p < Ratio[1, 10] then
- n = Ratio[1, 9];
- elseif Ratio[1, 10] <= p and p < Ratio[1, 11] then
- n = Ratio[1, 10];
- elseif Ratio[1, 11] <= p and p < Ratio[1, 12] then
- n = Ratio[1, 11];
- elseif Ratio[1, 12] <= p and p < Ratio[1, 13] then
- n = Ratio[1, 12];
- elseif Ratio[1, 13] <= p and p < Ratio[1, 14] then
- n = Ratio[1, 13];
- elseif Ratio[1, 14] <= p and p < Ratio[1, 15] then
- n = Ratio[1, 14];
- elseif Ratio[1, 15] <= p and p < Ratio[1, 16] then
- n = Ratio[1, 15];
- elseif Ratio[1, 16] <= p and p < Ratio[1, 17] then
- n = Ratio[1, 16];
- elseif Ratio[1, 17] <= p and p < Ratio[1, 18] then
- n = Ratio[1, 17];
- elseif Ratio[1, 18] <= p and p < Ratio[1, 19] then
- n = Ratio[1, 18];
- elseif Ratio[1, 19] <= p and p < Ratio[1, 20] then
- n = Ratio[1, 19];
- elseif Ratio[1, 20] <= p and p < Ratio[1, 21] then
- n = Ratio[1, 20];
- elseif Ratio[1, 21] <= p and p < Ratio[1, 22] then
- n = Ratio[1, 21];
- elseif Ratio[1, 22] <= p and p < Ratio[1, 23] then
- n = Ratio[1, 22];
- elseif Ratio[1, 23] <= p and p < Ratio[1, 24] then
- n = Ratio[1, 23];
- elseif Ratio[1, 24] <= p and p < Ratio[1, 25] then
- n = Ratio[1, 24];
- elseif Ratio[1, 25] <= p and p < Ratio[1, 26] then
- n = Ratio[1, 25];
- elseif Ratio[1, 26] <= p and p < Ratio[1, 27] then
- n = Ratio[1, 26];
- elseif Ratio[1, 27] <= p and p < Ratio[1, 28] then
- n = Ratio[1, 27];
- elseif Ratio[1, 28] <= p and p < Ratio[1, 29] then
- n = Ratio[1, 28];
- elseif Ratio[1, 29] <= p and p < Ratio[1, 30] then
- n = Ratio[1, 29];
- elseif Ratio[1, 30] <= p and p < Ratio[1, 31] then
- n = Ratio[1, 30];
- elseif Ratio[1, 31] <= p and p < Ratio[1, 32] then
- n = Ratio[1, 31];
- elseif Ratio[1, 32] <= p and p < Ratio[1, 33] then
- n = Ratio[1, 32];
- else
- n = Ratio[1, 33];
- end if;
- annotation (
- Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{
- 100,100}}), graphics),
- Icon(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{100,
- 100}}), graphics={Rectangle(extent={{-54,46},{70,-42}}, lineColor={
- 0,0,255}),Line(
- points={{-36,-36},{-26,-36},{-26,-28},{-16,-28},{-16,-18},{-8,-18},{-8,
- -8},{2,-8},{2,2},{10,2},{10,10},{18,10},{18,18},{26,18},{26,26},{34,
- 26},{34,32},{42,32},{42,38},{50,38},{50,44},{60,44}},
- color={0,0,255},
- smooth=Smooth.None)}),
- Documentation(info="
-
-
-Reference |
-Load Tap Changer's quantizer |
-
-
-Last update |
-2015-10-02 |
-
-
-Author |
-Le Qi, SmarTS Lab, KTH Royal Institute of Technology |
-
-
-Contact |
-luigiv@kth.se |
-
-
-"));
- end LTC_quantizer;
-
- model LTC_lookup
- Modelica.Blocks.Interfaces.RealInput u annotation (Placement(transformation(
- extent={{-76,-2},{-56,18}}), iconTransformation(extent={{-92,-20},{-56,
- 18}})));
- Modelica.Blocks.Interfaces.RealOutput out annotation (Placement(
- transformation(extent={{62,-12},{82,8}}), iconTransformation(extent={{
- 62,-16},{92,18}})));
- parameter Real Uplim;
- parameter Real Downlim;
- equation
- if u > Uplim then
- out = 1;
- elseif u < Downlim then
- out = -1;
- else
- out = 0;
- end if;
- annotation (
- Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{
- 100,100}}), graphics),
- Icon(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{100,
- 100}}), graphics={Rectangle(extent={{-54,32},{62,-34}}, lineColor={
- 0,0,255}),Line(
- points={{-46,-18},{-12,-18},{-10,-18}},
- color={0,0,255},
- smooth=Smooth.None),Line(
- points={{-10,0},{12,0}},
- color={0,0,255},
- smooth=Smooth.None),Line(
- points={{-10,0},{-10,-18}},
- color={0,0,255},
- smooth=Smooth.None,
- pattern=LinePattern.Dash),Line(
- points={{12,20},{12,0}},
- color={0,0,255},
- smooth=Smooth.None,
- pattern=LinePattern.Dash),Line(
- points={{12,20},{34,20},{52,20}},
- color={0,0,255},
- smooth=Smooth.None)}),
- Documentation(info="
-
-
-Reference |
-Load Tap Changer's lookup |
-
-
-Last update |
-2015-10-02 |
-
-
-Author |
-Le Qi, SmarTS Lab, KTH Royal Institute of Technology |
-
-
-Contact |
-luigiv@kth.se |
-
-
-"));
- end LTC_lookup;
- annotation (Documentation);
- end LTC;
- annotation (Documentation);
- end Simulink;
-
- package PSSE
- model TwoWindingTransformer
- "Static Two-winding transformer according to PSS/E, without phase shift"
- outer OpenIPSL.Electrical.SystemBase SysData;
- import Modelica.Constants.pi;
- import Modelica.ComplexMath.j;
- import Modelica.ComplexMath.conj;
- OpenIPSL.Interfaces.PwPin p annotation (Placement(transformation(
- extent={{-80,-10},{-60,10}}), iconTransformation(extent={{-80,
- -10},{-60,10}})));
- OpenIPSL.Interfaces.PwPin n annotation (Placement(transformation(
- extent={{60,-10},{80,10}}), iconTransformation(extent={{60,
- -10},{80,10}})));
- parameter Real S_b=SysData.S_b "System base power (MVA)"
- annotation (Dialog(enable=false));
- parameter Integer CZ=1 "Impedance I/O code" annotation (Dialog(tab=
- "Transformer impedance data"), choices(
- choice=1 "Z pu (winding kV system MVA)",
- choice=2 "Z pu (winding kV widing MVA)",
- choice=3 "Load loss (W) & |Z| (pu)"));
- parameter Real R "Specified R (pu)"
- annotation (Dialog(tab="Transformer impedance data"));
- parameter Real X "Specified X (pu)"
- annotation (Dialog(tab="Transformer impedance data"));
- parameter Real G "Magnetizing G"
- annotation (Dialog(tab="Transformer impedance data"));
- parameter Real B "Magnetizing B"
- annotation (Dialog(tab="Transformer impedance data"));
- parameter Integer CW=1 "Winding I/O code" annotation (Dialog(tab=
- "Transformer Nominal Ratings Data"), choices(
- choice=1 "Turns ratio (pu on bus base kV)",
- choice=2 "Winding voltage (kV)",
- choice=3 "Turns ratio (pu on nom wind kV)"));
- parameter Real t1=1 "Winding 1 ratio (pu)"
- annotation (Dialog(tab="Transformer Nominal Ratings Data"));
- parameter Real VNOM1=0 "Winding 1 Nominal kV"
- annotation (Dialog(tab="Transformer Nominal Ratings Data"));
- parameter Real VB1=300 "Bus Base kV on the side of winding 1"
- annotation (Dialog(tab="Transformer Nominal Ratings Data"));
- parameter Real t2=1 "Secondary winding tap ratio"
- annotation (Dialog(tab="Transformer Nominal Ratings Data"));
- parameter Real VNOM2=0 "Winding 2 Nominal kV"
- annotation (Dialog(tab="Transformer Nominal Ratings Data"));
- parameter Real VB2=300 "Bus Base kV on the side of winding 2"
- annotation (Dialog(tab="Transformer Nominal Ratings Data"));
- parameter Real ANG1=0 "Winding (1-2) Angle (degrees)"
- annotation (Dialog(tab="Transformer Nominal Ratings Data"));
- parameter Real S_n=S_b "Winding MVA"
- annotation (Dialog(tab="Transformer Nominal Ratings Data"));
- protected
- parameter Real VNOM1_int=if abs(VNOM1) < Modelica.Constants.eps then VB1
- else VNOM1;
- parameter Real VNOM2_int=if abs(VNOM2) < Modelica.Constants.eps then VB2
- else VNOM2;
- parameter Real r=if CZ == 1 then R else R*S_b/S_n;
- parameter Real x=if CZ == 1 then X else X*S_b/S_n;
- parameter Complex t=T1/T2*(cos(ANG1/180*pi) + j*sin(ANG1/180*pi));
- parameter Real T2=if CW == 1 then t2 elseif CW == 3 then t2*(VNOM2_int/VB2)
- else t2/VB2;
- parameter Real T1=if CW == 1 then t1 elseif CW == 3 then t1*(VNOM1_int/VB1)
- else t1/VB1;
- parameter Complex Ym(re=G, im=B);
- parameter Complex xeq(re=r*abs(T2)^2, im=x*abs(T2)^2);
- Complex ei(re=p.vr, im=p.vi);
- Complex ej(re=n.vr, im=n.vi);
- Complex ii(re=p.ir, im=p.ii);
- Complex ij(re=n.ir, im=n.ii);
- equation
- ej = ei/t + xeq*ij;
- (ii - ei*Ym)*conj(t) = -ij;
- annotation (
- Icon(coordinateSystem(preserveAspectRatio=false, extent={{-60,-40},{60,40}}),
- graphics={Rectangle(
- extent={{-60,40},{60,-40}},
- lineColor={255,255,255},
- fillColor={255,255,255},
- fillPattern=FillPattern.Solid),Ellipse(extent={{-50,30},{10,-30}},
- lineColor={28,108,200}),Ellipse(extent={{-12,30},{52,-30}}, lineColor=
- {28,108,200}),Line(
- points={{-60,0},{-50,0}},
- color={28,108,200},
- arrow={Arrow.None,Arrow.Filled}),Line(points={{52,0},{60,0}}, color={
- 28,108,200}),Polygon(
- points={{-56,4},{-50,0},{-56,-4},{-56,4}},
- lineColor={28,108,200},
- fillColor={28,108,200},
- fillPattern=FillPattern.Solid)}),
- Diagram(coordinateSystem(extent={{-60,-40},{60,40}}, preserveAspectRatio=
- false)),
- Documentation);
- end TwoWindingTransformer;
- annotation (Documentation);
- end PSSE;
-
- package PSAT
- model TwoWindingTransformer "Modeled as series reactances without iron losses"
- outer OpenIPSL.Electrical.SystemBase SysData;
- OpenIPSL.Interfaces.PwPin p annotation (Placement(transformation(
- extent={{-120,-10},{-100,10}})));
- OpenIPSL.Interfaces.PwPin n annotation (Placement(transformation(
- extent={{100,-10},{120,10}})));
- parameter Real S_b=SysData.S_b "System base power (MVA)"
- annotation (Dialog(group="Power flow"));
- parameter Real V_b=40 "Sending end bus voltage (kV)"
- annotation (Dialog(group="Power flow"));
- // parameter Real fn=SysData.fn "Frequency rating (Hz)"
- // annotation (Dialog(group="Power flow"));
- parameter Real Sn=100 "Power rating (MVA)"
- annotation (Dialog(group="Transformer parameters"));
- parameter Real Vn=40 "Voltage rating of transformer (kV)"
- annotation (Dialog(group="Transformer parameters"));
- // parameter Real kT=1 "Nominal tap ratio (kV1/kV2)"
- // annotation (Dialog(group="Transformer parameters"));
- parameter Real rT=0.01 "Resistance (pu, transformer base)"
- annotation (Dialog(group="Transformer parameters"));
- parameter Real xT=0.2 "Reactance (pu, transformer base)"
- annotation (Dialog(group="Transformer parameters"));
- parameter Real m=1.0 "Optional fixed tap ratio"
- annotation (Dialog(group="Transformer parameters"));
-
- protected
- parameter Real Zn = Vn^2/Sn "Transformer base impedance";
- parameter Real Zb = V_b^2/S_b "System base impedance";
- parameter Real r = rT * Zn/Zb "Resistance (pu, system base)";
- parameter Real x = xT * Zn/Zb "Reactance (pu, system base)";
- parameter Boolean tc = m <> 1.0 "Internal parameter to switch on the icon arrow";
- equation
- r*p.ir - x*p.ii = 1/m^2*p.vr - 1/m*n.vr;
- r*p.ii + x*p.ir = 1/m^2*p.vi - 1/m*n.vi;
- r*n.ir - x*n.ii = n.vr - 1/m*p.vr;
- x*n.ir + r*n.ii = n.vi - 1/m*p.vi;
- annotation (
- Icon(graphics={Ellipse(extent={{-46,30},{8,-30}}, lineColor={0,0,255}),
- Ellipse(extent={{-10,30},{44,-30}}, lineColor={0,0,255}),Line(
- points={{100,0},{44,0},{44,0}},
- color={0,0,255},
- smooth=Smooth.None),Line(
- points={{-100,0},{-46,0}},
- color={0,0,255},
- smooth=Smooth.None),Text(
- extent={{-38,20},{-4,-20}},
- lineColor={28,108,200},
- textString="1"),Text(
- extent={{4,18},{32,-16}},
- lineColor={28,108,200},
- textString="2"),
- Text(
- extent={{-100,100},{100,40}},
- lineColor={0,0,255},
- textString="%name"),
- Line(
- visible= tc,
- points={{-60,-40},{0,40}},
- color={28,108,200}),
- Line(
- points={{0,40},{-10,36}},
- color={28,108,200},
- visible=tc),
- Line(
- visible=tc,
- points={{0,40},{0,30}},
- color={28,108,200}),
- Text(
- visible=tc,
- extent={{-80,-40},{-40,-60}},
- lineColor={28,108,200},
- textString="TC")}),
- Documentation(info="
-
-Reference |
-PSAT Manual 2.1.8 |
-
-
-Last update |
-29/09/2015 |
-
-
-Author |
-MAA Murad, SmarTS Lab, KTH Royal Institute of Technology |
-
-
-Contact |
-luigiv@kth.se |
-
-
-"));
- end TwoWindingTransformer;
-
- model ThreeWindingTransformer
- outer OpenIPSL.Electrical.SystemBase SysData;
- OpenIPSL.Interfaces.PwPin b1 annotation (Placement(transformation(
- extent={{-120,-10},{-100,10}}), iconTransformation(extent={
- {-120,-10},{-100,10}})));
- OpenIPSL.Interfaces.PwPin b2 annotation (Placement(transformation(
- extent={{100,20},{120,40}})));
- OpenIPSL.Interfaces.PwPin b3 annotation (Placement(transformation(
- extent={{100,-40},{120,-20}})));
- parameter Real S_b=SysData.S_b "System base power (MVA)"
- annotation (Dialog(group="Power flow"));
- parameter Real V_b=400000 "Sending end bus voltage (kV)"
- annotation (Dialog(group="Power flow"));
- parameter Real Sn=100 "Power rating (MVA)"
- annotation (Dialog(group="Transformer parameters"));
- parameter Real Vn=400000 "Voltage rating for transformer (V)"
- annotation (Dialog(group="Transformer parameters"));
- parameter Real r12=0.01 "Resistance of the branch 1-2 (pu, transformer base)"
- annotation (Dialog(group="Transformer parameters"));
- parameter Real r13=0.01 "Resistance of the branch 1-3 (pu, transformer base)"
- annotation (Dialog(group="Transformer parameters"));
- parameter Real r23=0.01 "Resistance of the branch 2-3 (pu, transformer base)"
- annotation (Dialog(group="Transformer parameters"));
- parameter Real x12=0.1 "Reactance of the branch 1-2 (pu, transformer base)"
- annotation (Dialog(group="Transformer parameters"));
- parameter Real x13=0.1 "Reactance of the branch 1-3 (pu, transformer base)"
- annotation (Dialog(group="Transformer parameters"));
- parameter Real x23=0.1 "Reactance of the branch 2-3 (pu, transformer base)"
- annotation (Dialog(group="Transformer parameters"));
- parameter Real m=0.98 "Fixed tap ratio"
- annotation (Dialog(group="Transformer parameters"));
- Real v0 "Voltage of the fictious bus";
- Real v1;
- Real v2;
- Real v3;
- Real anglev0 "Angle of the fictious bus";
- Real anglev1;
- Real anglev2;
- Real anglev3;
- TwoWindingTransformer branch1(
- V_b=V_b,
- Sn=Sn,
- Vn=Vn,
- rT=0.5*(r12 + r13 - r23),
- xT=0.5*(x12 + x13 - x23),
- m=m) annotation (Placement(transformation(extent={{-58,-10},{-38,10}})));
- TwoWindingTransformer branch2(
- V_b=V_b, Sn=Sn,
- Vn=Vn,
- rT=0.5*(r12 + r23 - r13),
- xT=0.5*(x12 + x23 - x13)) annotation (Placement(transformation(extent={{40,20},{60,40}})));
- TwoWindingTransformer branch3(
- V_b=V_b, Sn=Sn,
- Vn=Vn,
- rT=0.5*(r23 + r13 - r12),
- xT=0.5*(x23 + x13 - x12)) annotation (Placement(transformation(extent={{40,-40},{60,-20}})));
- equation
- v0 = sqrt(branch1.n.vr^2 + branch1.n.vi^2);
- v1 = sqrt(b1.vr^2 + b1.vi^2);
- v2 = sqrt(b2.vr^2 + b2.vi^2);
- v3 = sqrt(b3.vr^2 + b3.vi^2);
- anglev0 = atan2(branch1.n.vi, branch1.n.vr);
- anglev1 = atan2(b1.vi, b1.vr);
- anglev2 = atan2(b2.vi, b2.vr);
- anglev3 = atan2(b3.vi, b3.vr);
- connect(branch1.p, b1) annotation (Line(
- points={{-59,0},{-110,0}},
- color={0,0,255},
- smooth=Smooth.None));
- connect(branch1.n, branch2.p) annotation (Line(points={{-37,0},{0,0},{0,30},{39,30}}, color={0,0,255}));
- connect(branch2.n, b2) annotation (Line(points={{61,30},{110,30}}, color={0,0,255}));
- connect(branch1.n, branch3.p) annotation (Line(points={{-37,0},{0,0},{0,-30},{39,-30}}, color={0,0,255}));
- connect(branch3.n, b3) annotation (Line(points={{61,-30},{110,-30}}, color={0,0,255}));
- annotation (
- Diagram(coordinateSystem(preserveAspectRatio=true, extent={{-100,-100},{100,
- 100}})),
- Icon(coordinateSystem(preserveAspectRatio=true, extent={{-100,-100},{100,
- 100}}), graphics={Ellipse(extent={{-52,34},{12,-28}}, lineColor={0,
- 0,255}),Ellipse(extent={{-4,64},{60,2}}, lineColor={0,0,255}),Ellipse(
- extent={{-2,16},{62,-46}}, lineColor={0,0,255}),Line(
- points={{-54,-22},{10,42},{10,42}},
- color={0,0,255},
- smooth=Smooth.None),Line(
- points={{2,40},{10,42},{10,42}},
- color={0,0,255},
- smooth=Smooth.None),Line(
- points={{8,34},{10,42}},
- color={0,0,255},
- smooth=Smooth.None),Line(
- points={{60,32},{100,32},{100,32}},
- color={0,0,255},
- smooth=Smooth.None),Line(
- points={{58,-28},{102,-28},{100,-28}},
- color={0,0,255},
- smooth=Smooth.None),Line(
- points={{-100,0},{-52,0}},
- color={0,0,255},
- smooth=Smooth.None),Text(
- extent={{-60,-50},{60,-92}},
- lineColor={0,128,0},
- textString="TWT"),
- Text(
- extent={{-100,140},{100,80}},
- lineColor={0,0,255},
- textString="%name")}),
- Documentation(info="
-
-Reference |
-PSAT Manual 2.1.8 |
-
-
-Last update |
-15/07/2015 |
-
-
-Author |
-MAA Murad, SmarTS Lab, KTH Royal Institute of Technology |
-
-
-Contact |
-luigiv@kth.se |
-
-
-"));
- end ThreeWindingTransformer;
-
- model ULTC_VoltageControl
- "Under Load Tap Changer, continuous model, secondary voltage control"
- OpenIPSL.Interfaces.PwPin p annotation (Placement(transformation(
- extent={{-120,-10},{-100,10}})));
- OpenIPSL.Interfaces.PwPin n annotation (Placement(transformation(
- extent={{100,-10},{120,10}})));
- parameter Real S_b=100 "System base power (MVA)"
- annotation (Dialog(group="Power flow data"));
- parameter Real Vbus1=400000 "Sending end Bus nominal voltage (V)"
- annotation (Dialog(group="Power flow data"));
- parameter Real Vbus2=100000 "Receiving end Bus nominal voltage (V)"
- annotation (Dialog(group="Power flow data"));
- parameter Real Sn=100 "Power rating (MVA)"
- annotation (Dialog(group="ULTC data"));
- parameter Real Vn=400000 "Voltage rating (V)"
- annotation (Dialog(group="ULTC data"));
- parameter Real V_0=1.008959700699460
- "Initial voltage magnitude of the controlled bus (pu)"
- annotation (Dialog(group="Power flow data"));
- parameter Real m0=0.98 "Initial tap ratio"
- annotation (Dialog(group="Power flow data"));
- parameter Real kT=4 "Nominal tap ratio (V1/V2)"
- annotation (Dialog(group="ULTC data"));
- parameter Real H=0.001 "Integral deviation (pu)"
- annotation (Dialog(group="ULTC data"));
- parameter Real K=0.10 "Inverse time constant (1/s)"
- annotation (Dialog(group="ULTC data"));
- parameter Real m_max=0.98 "Maximum tap ratio (p.u./p.u.)"
- annotation (Dialog(group="ULTC data"));
- parameter Real m_min=0.9785 "Minimum tap ratio (p.u./p.u.)"
- annotation (Dialog(group="ULTC data"));
- // annotation (Dialog(group="ULTC data"));
- // parameter Real deltam=0 "Tap ratio step (p.u./p.u.)"
- parameter Real v_ref=1.0 "Reference voltage (power) (pu)"
- annotation (Dialog(group="ULTC data"));
- parameter Real xT=0.001 "Transformer reactance (pu)"
- annotation (Dialog(group="ULTC data"));
- parameter Real rT=0.1 "Transformer resistance (pu)"
- annotation (Dialog(group="ULTC data"));
- // parameter Real d=0.05 "Dead zone percentage"
- // annotation (Dialog(group="ULTC data"));
- Real m "Tap ratio";
- Real vk "Voltage at primary, p.u.";
- Real vm(start=V_0) "Voltage at secondary p.u.";
- Real anglevk "Angle at primary";
- Real anglevm "Angle at secondary ";
- protected
- parameter Real V2=Vn/kT "Secondary voltage";
- parameter Real Zn = Vn^2/Sn "Transformer base impedance";
- parameter Real Zb = Vbus1^2/S_b "System base impedance";
- parameter Real r = rT * Zn/Zb "Resistance (pu, system base)";
- parameter Real x = xT * Zn/Zb "Reactance (pu, system base)";
- parameter Real vref=v_ref*(V2/Vbus2);
- initial equation
- m = m0;
- equation
- vk = sqrt(p.vr^2 + p.vi^2);
- vm = sqrt(n.vr^2 + n.vi^2);
- anglevk = atan2(p.vi, p.vr);
- anglevm = atan2(n.vi, n.vr);
- if m > m_max and der(m) > 0 then
- r*p.ir - x*p.ii = 1/m_max^2*p.vr - 1/m_max*n.vr;
- r*p.ii + x*p.ir = 1/m_max^2*p.vi - 1/m_max*n.vi;
- r*n.ir - x*n.ii = n.vr - 1/m_max*p.vr;
- x*n.ir + r*n.ii = n.vi - 1/m_max*p.vi;
- der(m) = 0;
- elseif m < m_min and der(m) < 0 then
- r*p.ir - x*p.ii = 1/m_min^2*p.vr - 1/m_min*n.vr;
- r*p.ii + x*p.ir = 1/m_min^2*p.vi - 1/m_min*n.vi;
- r*n.ir - x*n.ii = n.vr - 1/m_min*p.vr;
- x*n.ir + r*n.ii = n.vi - 1/m_min*p.vi;
- der(m) = 0;
- else
- r*p.ir - x*p.ii = 1/m^2*p.vr - 1/m*n.vr;
- r*p.ii + x*p.ir = 1/m^2*p.vi - 1/m*n.vi;
- r*n.ir - x*n.ii = n.vr - 1/m*p.vr;
- x*n.ir + r*n.ii = n.vi - 1/m*p.vi;
- der(m) = (-H*m) + K*(vm - vref);
- end if;
- annotation (
- Diagram(coordinateSystem(preserveAspectRatio=true, extent={{-100,-100},{100,
- 100}}), graphics),
- Icon(coordinateSystem(preserveAspectRatio=true, extent={{-100,-100},{100,
- 100}}), graphics={Ellipse(extent={{-46,30},{8,-30}}, lineColor={0,0,
- 255}),Ellipse(extent={{-10,30},{44,-30}}, lineColor={0,0,255}),Line(
- points={{100,0},{44,0},{44,0}},
- color={0,0,255},
- smooth=Smooth.None),Line(
- points={{-100,0},{-46,0}},
- color={0,0,255},
- smooth=Smooth.None),Line(
- points={{70,0},{70,-40},{-36,-40},{-20,18},{-20,18}},
- color={0,0,255},
- smooth=Smooth.None),Line(
- points={{-30,6},{-20,18}},
- color={0,0,255},
- smooth=Smooth.None),Line(
- points={{-20,2},{-20,16}},
- color={0,0,255},
- smooth=Smooth.None),Text(
- extent={{-100,-40},{100,-100}},
- lineColor={0,128,0},
- textString="ULTC"),
- Text(
- extent={{-100,100},{100,40}},
- lineColor={0,0,255},
- textString="%name")}),
- Documentation(info="
-
-Reference |
-PSAT Manual 2.1.8 |
-
-
-Last update |
-15/07/2015 |
-
-
-Author |
-MAA Murad, SmarTS Lab, KTH Royal Institute of Technology |
-
-
-Contact |
-luigiv@kth.se |
-
-
-"));
- end ULTC_VoltageControl;
-
- package PhaseShiftingTransformer
- model PSTransformer
- constant Real pi=Modelica.Constants.pi;
- parameter Real SystemBase=100;
- parameter Real Vbus1=20000 "Sending end Bus nominal voltage, change of base";
- parameter Real Vbus2=20000 "Receiving end Bus voltage, change of base";
- parameter Real Sn=100 "Power rating MVA";
- parameter Real Vn1=20000 "Primary Voltage rating,KV";
- parameter Real Vn2=20000 "Secondary voltage rating, KV";
- parameter Real fn=50 "Frequency rating Hz";
- parameter Real Tm=0.001 "Measurement time constant, s";
- parameter Real Kp=0.05 "Proportional gain";
- parameter Real Ki=0.01 "Integral gain";
- parameter Real p_ref=0.01 "Reference Power, p.u.";
- parameter Real alpha_max=pi/2 "Maximum phase angle, rad";
- parameter Real alpha_min=-pi/2 "Minimum phase angle, rad";
- parameter Real xT=0.1 "Transformer Reactance, p.u.";
- parameter Real rT=0.01 "Transformer Resistance, p.u.";
- parameter Real m=0.98 "Transformer fixed tap ratio, p.u./p.u.";
- parameter Real alpha0=0.002062339234360;
- parameter Real pmes0=0.01;
- parameter Real vk0=0.997649085060455;
- parameter Real vm0=1.007257703014177;
- parameter Real anglevk0=-0.007392164704867;
- parameter Real anglevm0=-0.009372077496959;
- Real vk(start=vk0);
- Real vm(start=vm0);
- Real anglevk(start=anglevk0);
- Real anglevm(start=anglevm0);
- OpenIPSL.Interfaces.PwPin p annotation (Placement(transformation(
- extent={{-120,-10},{-100,10}})));
- OpenIPSL.Interfaces.PwPin n annotation (Placement(transformation(
- extent={{100,-10},{120,10}})));
- Modelica.Blocks.Interfaces.RealOutput pk(start=p_ref) annotation (Placement(
- transformation(extent={{100,-50},{120,-30}}), iconTransformation(extent=
- {{100,-50},{120,-30}})));
- Modelica.Blocks.Interfaces.RealInput u
- annotation (Placement(transformation(extent={{-140,36},{-100,76}})));
- pst1 pst1_1(
- SystemBase=SystemBase,
- Vbus1=Vbus1,
- Vbus2=Vbus2,
- Sn=Sn,
- Vn1=Vn1,
- Vn2=Vn2,
- fn=fn,
- Tm=Tm,
- Kp=Kp,
- Ki=Ki,
- p_ref=p_ref,
- alpha_max=alpha_max,
- alpha_min=alpha_min,
- xT=xT,
- rT=rT,
- m=m,
- alpha0=alpha0,
- pmes0=pmes0,
- vk0=vk0,
- anglevk0=anglevk0)
- annotation (Placement(transformation(extent={{-40,-10},{-20,10}})));
- pst2 pst2_1(
- SystemBase=SystemBase,
- Vbus1=Vbus1,
- Vbus2=Vbus2,
- Sn=Sn,
- Vn1=Vn1,
- Vn2=Vn2,
- fn=fn,
- Tm=Tm,
- Kp=Kp,
- Ki=Ki,
- p_ref=p_ref,
- alpha_max=alpha_max,
- alpha_min=alpha_min,
- xT=xT,
- rT=rT,
- m=m,
- alpha0=alpha0,
- pmes0=pmes0,
- vm0=vm0,
- anglevm0=anglevm0)
- annotation (Placement(transformation(extent={{20,-10},{40,10}})));
- protected
- parameter Real Vb2new=Vbus1*Vbus1;
- parameter Real Vb2old=Vn1*Vn1;
- parameter Real R=rT*(Vb2old*SystemBase)/(Vb2new*Sn)
- "Transformer Resistance, p.u.";
- parameter Real X=xT*(Vb2old*SystemBase)/(Vb2new*Sn)
- "Transformer Reactance, p.u.";
- parameter Real pref=p_ref*(Sn/SystemBase);
- parameter Real gt=R/(R^2 + X^2) "Converting resistance to conductance p.u.";
- parameter Real bt=-X/(R^2 + X^2) "Converting reactance to susceptance p.u.";
- equation
- vk = sqrt(p.vr^2 + p.vi^2);
- vm = sqrt(n.vr^2 + n.vi^2);
- anglevk = atan2(p.vi, p.vr);
- anglevm = atan2(n.vi, n.vr);
- pk = p.vr*p.ir + p.vi*p.ii;
- connect(pst2_1.n, n) annotation (Line(
- points={{41,0},{70.5,0},{70.5,0},{110,0}},
- color={0,0,255},
- smooth=Smooth.None));
- connect(pst2_1.p, pst1_1.n) annotation (Line(
- points={{19,0},{-2,0},{-2,0},{-19,0}},
- color={0,0,255},
- smooth=Smooth.None));
- connect(pst1_1.p, p) annotation (Line(
- points={{-41,0},{-76.5,0},{-76.5,0},{-110,0}},
- color={0,0,255},
- smooth=Smooth.None));
- connect(u, pst2_1.pk) annotation (Line(
- points={{-120,56},{-8,56},{-8,-4},{18,-4}},
- color={0,0,127},
- smooth=Smooth.None));
- annotation (
- Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{
- 100,100}})),
- Icon(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{100,
- 100}}), graphics={Ellipse(extent={{-48,24},{10,-32}}, lineColor={0,
- 0,255}),Ellipse(extent={{-6,26},{52,-30}}, lineColor={0,0,255}),Line(
- points={{-104,0},{-48,0}},
- color={0,0,255},
- smooth=Smooth.None),Rectangle(extent={{66,10},{94,-12}}, lineColor={0,
- 0,255}),Line(
- points={{52,0},{66,0},{66,0}},
- color={0,0,255},
- smooth=Smooth.None),Line(
- points={{100,0},{94,0},{96,0}},
- color={0,0,255},
- smooth=Smooth.None),Line(
- points={{80,-12},{80,-44},{-50,-44},{-50,0},{-50,0}},
- color={0,0,255},
- smooth=Smooth.None),Text(
- extent={{74,4},{84,-2}},
- lineColor={0,0,255},
- textString="%Angle%"),Text(
- extent={{-40,-52},{40,-92}},
- lineColor={0,128,0},
- textString="PST"),
- Text(
- extent={{-100,100},{100,40}},
- lineColor={0,0,255},
- textString="%name")}),
- Documentation(info="
-
-Reference |
-PSAT Manual 2.1.8 |
-
-
-Last update |
-15/07/2015 |
-
-
-Author |
-MAA Murad, SmarTS Lab, KTH Royal Institute of Technology |
-
-
-Contact |
-luigiv@kth.se |
-
-
-"));
- end PSTransformer;
-
- model pst1
- constant Real pi=Modelica.Constants.pi;
- parameter Real SystemBase=100;
- parameter Real Vbus1=20000 "Sending end Bus nominal voltage, change of base";
- parameter Real Vbus2=20000 "Receiving end Bus voltage, change of base";
- parameter Real Sn=100 "Power rating MVA";
- parameter Real Vn1=20000 "Primary Voltage rating,KV";
- parameter Real Vn2=20000 "Secondary voltage rating, KV";
- parameter Real fn=50 "Frequency rating Hz";
- parameter Real Tm=0.001 "Measurement time constant, s";
- parameter Real Kp=0.05 "Proportional gain";
- parameter Real Ki=0.01 "Integral gain";
- parameter Real p_ref=0.01 "Reference Power, p.u.";
- parameter Real alpha_max=pi/2 "Maximum phase angle, rad";
- parameter Real alpha_min=-pi/2 "Minimum phase angle, rad";
- parameter Real xT=0.1 "Transformer Reactance, p.u.";
- parameter Real rT=0.01 "Transformer Resistance, p.u.";
- parameter Real m=0.98 "Transformer fixed tap ratio, p.u./p.u.";
- parameter Real alpha0=0.002062339234360;
- parameter Real pmes0=0.01;
- parameter Real vk0=0.997649085060455;
- parameter Real anglevk0=-0.007392164704867;
- Real vk(start=vk0) "Voltage at primary, p.u.";
- Real vm;
- Real anglevk(start=anglevk0);
- Real anglevm;
- OpenIPSL.Interfaces.PwPin p annotation (Placement(visible=true,
- transformation(extent={{-120,-10},{-100,10}})));
- OpenIPSL.Interfaces.PwPin n annotation (Placement(transformation(
- extent={{100,-10},{120,10}})));
- protected
- parameter Real Vb2new=Vbus1*Vbus1;
- parameter Real Vb2old=Vn1*Vn1;
- parameter Real R=rT*(Vb2old*SystemBase)/(Vb2new*Sn)
- "Transformer Resistance, p.u.";
- parameter Real X=xT*(Vb2old*SystemBase)/(Vb2new*Sn)
- "Transformer Reactance, p.u.";
- parameter Real pref=p_ref*(Sn/SystemBase);
- parameter Real gt=R/(R^2 + X^2) "Converting resistance to conductance p.u.";
- parameter Real bt=-X/(R^2 + X^2) "Converting reactance to susceptance p.u.";
- equation
- vk = sqrt(p.vr^2 + p.vi^2);
- vm = sqrt(n.vr^2 + n.vi^2);
- anglevk = atan2(p.vi, p.vr);
- anglevm = atan2(n.vi, n.vr);
- R*p.ir - X*p.ii = 1/m^2*p.vr - 1/m*n.vr;
- R*p.ii + X*p.ir = 1/m^2*p.vi - 1/m*n.vi;
- R*n.ir - X*n.ii = n.vr - 1/m*p.vr;
- X*n.ir + R*n.ii = n.vi - 1/m*p.vi;
- end pst1;
-
- model pst2
- constant Real pi=Modelica.Constants.pi;
- parameter Real SystemBase=100;
- parameter Real Vbus1=20000 "Sending end Bus nominal voltage, change of base";
- parameter Real Vbus2=20000 "Receiving end Bus voltage, change of base";
- parameter Real Sn=100 "Power rating MVA";
- parameter Real Vn1=20000 "Primary Voltage rating,KV";
- parameter Real Vn2=20000 "Secondary voltage rating, KV";
- parameter Real fn=50 "Frequency rating Hz";
- parameter Real Tm=0.001 "Measurement time constant, s";
- parameter Real Kp=0.05 "Proportional gain";
- parameter Real Ki=0.01 "Integral gain";
- parameter Real p_ref=0.01 "Reference Power, p.u.";
- parameter Real alpha_max=pi/2 "Maximum phase angle, rad";
- parameter Real alpha_min=-pi/2 "Minimum phase angle, rad";
- parameter Real xT=0.1 "Transformer Reactance, p.u.";
- parameter Real rT=0.01 "Transformer Resistance, p.u.";
- parameter Real m=0.98 "Transformer fixed tap ratio, p.u./p.u.";
- parameter Real alpha0=0.002062339234360;
- parameter Real pmes0=0.01;
- parameter Real vm0=1.007257703014177;
- parameter Real anglevm0=-0.009372077496959;
- Real vk "Voltage at primary, p.u.";
- Real vm(start=vm0) "Voltage at secondary p.u.";
- Real anglevk "Angle at primary";
- Real anglevm;
- Real alpha;
- Real pmes;
- OpenIPSL.Interfaces.PwPin p annotation (Placement(visible=true,
- transformation(extent={{-120,-10},{-100,10}})));
- OpenIPSL.Interfaces.PwPin n annotation (Placement(transformation(
- extent={{100,-10},{120,10}})));
- Modelica.Blocks.Interfaces.RealInput pk
- annotation (Placement(transformation(extent={{-140,-60},{-100,-20}})));
- protected
- parameter Real Vb2new=Vbus1*Vbus1;
- parameter Real Vb2old=Vn1*Vn1;
- parameter Real R=rT*(Vb2old*SystemBase)/(Vb2new*Sn)
- "Transformer Resistance, p.u.";
- parameter Real X=xT*(Vb2old*SystemBase)/(Vb2new*Sn)
- "Transformer Reactance, p.u.";
- parameter Real pref=p_ref*(Sn/SystemBase);
- parameter Real gt=R/(R^2 + X^2) "Converting resistance to conductance p.u.";
- parameter Real bt=-X/(R^2 + X^2) "Converting reactance to susceptance p.u.";
- initial equation
- alpha = alpha0;
- pmes = pmes0;
- equation
- vk = sqrt(p.vr^2 + p.vi^2);
- vm = sqrt(n.vr^2 + n.vi^2);
- anglevk = atan2(p.vi, p.vr);
- anglevm = atan2(n.vi, n.vr);
- if alpha > alpha_max and der(alpha) > 0 and der(pmes) > 0 then
- der(alpha) = 0;
- der(pmes) = (pk - pmes)/Tm;
- p.vr = n.vr*cos(alpha_max) - n.vi*sin(alpha_max);
- p.vi = n.vr*sin(alpha_max) + n.vi*cos(alpha_max);
- // pk=p.vr*p.ir + p.vi*p.ii;
- p.ir + n.ir = 0;
- p.ii + n.ii = 0;
- elseif alpha < alpha_min and der(alpha) < 0 and der(pmes) < 0 then
- der(alpha) = 0;
- der(pmes) = (pk - pmes)/Tm;
- p.vr = n.vr*cos(alpha_min) - n.vi*sin(alpha_min);
- p.vi = n.vr*sin(alpha_min) + n.vi*cos(alpha_min);
- // pk=p.vr*p.ir + p.vi*p.ii;
- p.ir + n.ir = 0;
- p.ii + n.ii = 0;
- else
- der(alpha) = Kp*(pk - pmes)/Tm + Ki*(pmes - pref);
- der(pmes) = (pk - pmes)/Tm;
- p.vr = n.vr*cos(alpha) - n.vi*sin(alpha);
- p.vi = n.vr*sin(alpha) + n.vi*cos(alpha);
- // pk=p.vr*p.ir + p.vi*p.ii;
- p.ir + n.ir = 0;
- p.ii + n.ii = 0;
- end if;
- end pst2;
- annotation (Documentation);
- end PhaseShiftingTransformer;
- annotation (Documentation);
- end PSAT;
- annotation (Documentation);
- end Branches;
-
- package Machines
- package PSAT
- model Order2 "Second Order Synchronous Machine with Inputs and Outputs"
- extends BaseClasses.baseMachine(vf(start=vf00), xq0=x1d);
- protected
- parameter Real K=1/(ra^2 + x1d^2) "a constant for scaling";
- parameter Real c1=ra*K "scaled ra";
- parameter Real c2=x1d*K "scaled x'd";
- parameter Real c3=x1d*K "scaled x'd";
- parameter Real vf00=V_MBtoSB*(vq0 + ra*iq0 + x1d*id0) "Init. val. (pu, SB)";
- equation
- id = -c1*vd - c3*vq + vf_MB*c3;
- iq = c2*vd - c1*vq + vf_MB*c1;
- vf0 = vf00;
- annotation (Documentation(info="
-
-
-Reference |
-Order II Synchonous Machine, PSAT Manual 2.1.8 |
-
-
-Last update |
-September 2015 |
-
-
-Author |
-Joan Russinol, SmarTS Lab, KTH Royal Institute of Technology |
-
-
-Contact |
-luigiv@kth.se |
-
-
-"), Icon(coordinateSystem(extent={{-100,-100},{100,100}}, initialScale=
- 0.1), graphics={Text(
- origin={0,60},
- extent={{-60,-20},{60,20}},
- lineColor={28,108,200},
- textString="Order II")}));
- end Order2;
-
- model Order3 "Third Order Synchronous Machine with Inputs and Outputs"
- extends BaseClasses.baseMachine(vf(start=vf00), xq0=xq);
- parameter Real xd "d-axis synchronous reactance (pu)"
- annotation (Dialog(group="Machine parameters"));
- parameter Real T1d0 "d-axis open circuit transient time constant (s)"
- annotation (Dialog(group="Machine parameters"));
- parameter Real xq "q-axis synchronous reactance (pu)"
- annotation (Dialog(group="Machine parameters"));
- Real e1q(start=e1q0) "q-axis transient voltage (pu)";
-
- protected
- parameter Real K=1/(ra^2 + xq*x1d) "a constant for scaling";
- parameter Real c1=ra*K "scaled ra";
- parameter Real c2=x1d*K "scaled x'd";
- parameter Real c3=xq*K " scaled xq";
- parameter Real vf00=V_MBtoSB*(e1q0 + (xd - x1d)*id0) "Init. val. (pu, SB)";
- parameter Real e1q0=vq0 + ra*iq0 + x1d*id0 "Initialitation";
- initial equation
- der(e1q) = 0;
- equation
- der(e1q) = ((-e1q) - (xd - x1d)*id + vf_MB)/T1d0;
- id = (-c1*vd) - c3*vq + e1q*c3;
- iq = c2*vd - c1*vq + e1q*c1;
- vf0 = vf00;
- annotation (Icon(coordinateSystem(extent={{-100,-100},{100,100}},
- initialScale=0.1), graphics={Text(
- origin={0,60},
- extent={{-60,-20},{60,20}},
- lineColor={28,108,200},
- textString="Order III")}), Documentation(info="
-
-
-Reference |
-Order III Synchonous Machine, PSAT Manual 2.1.8 |
-
-
-Last update |
-September 2015 |
-
-
-Author |
-Joan Russinol, SmarTS Lab, KTH Royal Institute of Technology |
-
-
-Contact |
-luigiv@kth.se |
-
-
-"));
- end Order3;
-
- model Order4 "Fourth Order Synchronous Machine with Inputs and Outputs"
- extends BaseClasses.baseMachine(vf(start=vf00), xq0=xq);
- parameter Real xd=1.9 "d-axis synchronous reactance (pu)"
- annotation (Dialog(group="Machine parameters"));
- parameter Real xq=1.7 "q-axis synchronous reactance (pu)"
- annotation (Dialog(group="Machine parameters"));
- parameter Real x1q=0.5 "q-axis transient reactance (pu)"
- annotation (Dialog(group="Machine parameters"));
- parameter Real T1d0=8 "d-axis open circuit transient time constant (s)"
- annotation (Dialog(group="Machine parameters"));
- parameter Real T1q0=0.8 "q-axis open circuit transient time constant (s)"
- annotation (Dialog(group="Machine parameters"));
- Real e1q(start=e1q0) "q-axis transient voltage (pu)";
- Real e1d(start=e1d0) "d-axis transient voltage (pu)";
- protected
- parameter Real vf00=V_MBtoSB*(e1q0 + (xd - x1d)*id0) "Init. val. (pu, SB)";
- parameter Real e1q0=vq0 + ra*iq0 + x1d*id0 "Initialization";
- parameter Real e1d0=vd0 + ra*id0 - x1q*iq0 "Initialization";
- initial equation
- der(e1q) = 0;
-
- equation
- der(e1q) = ((-e1q) - (xd - x1d)*id + vf_MB)/T1d0;
- if xq <> x1q then
- // safe-guard against division by zero.
- der(e1d) = ((-e1d) + (xq - x1q)*iq)/T1q0 "differential equations *";
- else
- der(e1d) = (-e1d)/T1q0 "differential equations *";
- end if;
- e1q = vq + ra*iq + x1d*id;
- e1d = vd + ra*id - x1q*iq "relation between voltages and currents *";
- vf0 = vf00;
- annotation (Icon(coordinateSystem(extent={{-100,-100},{100,100}},
- initialScale=0.1), graphics={Text(
- origin={0,60},
- extent={{-60,-20},{60,20}},
- lineColor={28,108,200},
- textString="Order IV")}), Documentation(info="
-
-
-Reference |
-Generator Order IV, PSAT Manual |
-
-
-Last update |
-2015-10-02 |
-
-
-Author |
-Le Qi, SmarTS Lab, KTH Royal Institute of Technology |
-
-
-Contact |
-luigiv@kth.se |
-
-
-"));
- end Order4;
-
- model Order5_Type1
- extends BaseClasses.baseMachine(vf(start=vf00), xq0=xq);
- parameter Real xd=1.9 "d-axis synchronous reactance (pu)"
- annotation (Dialog(group="Machine parameters"));
- parameter Real xq=1.7 "q-axis synchronous reactance (pu)"
- annotation (Dialog(group="Machine parameters"));
- parameter Real x1q=0.5 "q-axis transient reactance (pu)"
- annotation (Dialog(group="Machine parameters"));
- parameter Real T1d0=8 "d-axis open circuit transient time constant (s)"
- annotation (Dialog(group="Machine parameters"));
- parameter Real T1q0=0.8 "q-axis open circuit transient time constant (s)"
- annotation (Dialog(group="Machine parameters"));
- parameter Real T2q0=0.02
- "q-axis open circuit sub-transient time constant (s)"
- annotation (Dialog(group="Machine parameters"));
- Real e1q(start=e1q0) "q-axis transient voltage";
- Real e1d(start=e1d0) "d-axis transient voltage";
- Real e2d(start=e2d0) "d-axis sub-transient voltage";
- protected
- parameter Real vf00=V_MBtoSB*(e1q0 + (xd - x1d)*id0) "Init. val. (pu, SB)";
- parameter Real e1q0=vq0 + ra*iq0 + x1d*id0 "Initialization";
- parameter Real e1d0=vd0 + ra*id0 - x1q*iq0 "Initialization*";
- parameter Real e2d0=vd0 + ra*id0 - x1q*iq0 "Initialization";
- initial equation
- der(delta) = 0;
- der(e1q) = 0;
- der(e1d) = 0;
- der(e2d) = 0;
- equation
- der(e1q) = ((-e1q) - (xd - x1d)*id + vf_MB)/T1d0;
- der(e1d) = ((-e1d) + (xq - x1q - T2q0/T1q0*x1d/x1q*(xq - x1q))*iq)/T1q0
- "differential equations/";
- der(e2d) = ((-e2d) + e1d + (x1q - x1d + T2q0/T1q0*x1d/x1q*(xq - x1q))*iq)/
- T2q0 "differential equations/";
- e1q = vq + ra*iq + x1d*id;
- e2d = vd + ra*id - x1q*iq "relation between voltages and currents/";
- vf0 = vf00;
- annotation (Icon(coordinateSystem(extent={{-100,-100},{100,100}},
- initialScale=0.1), graphics={Text(
- origin={0,60},
- fillPattern=FillPattern.Solid,
- extent={{-60,-20},{60,20}},
- fontName="Arial",
- lineColor={28,108,200},
- textString="Order V - Type 1")}), Documentation(info="
-
-
-Reference |
-Generator Order V Type 1, PSAT Manual |
-
-
-Last update |
-2015-10-02 |
-
-
-Author |
-Le Qi, SmarTS Lab, KTH Royal Institute of Technology |
-
-
-Contact |
-luigiv@kth.se |
-
-
-"));
- end Order5_Type1;
-
- model Order5_Type2
- extends BaseClasses.baseMachine(vf(start=vf00), xq0=xq);
- parameter Real xd=1.9 "d-axis synchronous reactance (pu)"
- annotation (Dialog(group="Machine parameters"));
- parameter Real xq=1.7 "q-axis synchronous reactance (pu)"
- annotation (Dialog(group="Machine parameters"));
- parameter Real x2d=0.204 "d-axis sub-transient reactance (pu)"
- annotation (Dialog(group="Machine parameters"));
- parameter Real x2q=0.3 "q-axis sub-transient reactance (pu)"
- annotation (Dialog(group="Machine parameters"));
- parameter Real T1d0=8 "d-axis open circuit transient time constant (s)"
- annotation (Dialog(group="Machine parameters"));
- parameter Real T2d0=0.8 "d-axis open circuit sub-transient time constant (s)"
- annotation (Dialog(group="Machine parameters"));
- parameter Real T2q0=0.02 "q-axis open circuit sub-transient time constant (s)"
- annotation (Dialog(group="Machine parameters"));
- parameter Real Taa=0.002 "d-axis aditional leakage time constant (s)"
- annotation (Dialog(group="Machine parameters"));
- Real e1q(start=e1q0) "q-axis transient voltage";
- Real e2q(start=e2q0) "q-axis sub-transient voltage";
- Real e2d(start=e2d0) "d-axis sub-transient voltage";
- protected
- parameter Real e2q0=vq0 + ra*iq0 + x2d*id0 "Initialitation";
- parameter Real e2d0=vd0 + ra*id0 - x2q*iq0 "Initialitation";
- parameter Real K1=xd - x1d - (T2d0*x2d*(xd - x1d))/(T1d0*x1d);
- parameter Real K2=x1d - x2d + (T2d0*x2d*(xd - x1d))/(T1d0*x1d);
- parameter Real e1q0=(-K1*Taa/T1d0*id0) + (1 - Taa/T1d0)*(e2q0 + K2*id0);
- parameter Real vf00=V_MBtoSB*(K1*id0 + e1q0)/(1 - Taa/T1d0)
- "Init. val. (pu, SB)";
- initial equation
- //der(e1q) = 0;
- der(e2q) = 0;
- der(e2d) = 0;
- equation
- der(e1q) = ((-e1q) - (xd - x1d - T2d0/T1d0*x2d/x1d*(xd - x1d))*id + (1 - Taa/
- T1d0)*vf_MB)/T1d0;
- der(e2d) = ((-e2d) + (xq - x2q)*iq)/T2q0;
- der(e2q) = ((-e2q) + e1q - (x1d - x2d + T2d0/T1d0*x2d/x1d*(xd - x1d))*id +
- Taa/T1d0*vf_MB)/T2d0 "differential equations";
- e2q = vq + ra*iq + x2d*id;
- e2d = vd + ra*id - x2q*iq "relation between voltages and currents";
- vf0 = vf00;
- annotation (Icon(coordinateSystem(extent={{-100,-100},{100,100}},
- initialScale=0.1), graphics={Rectangle(
- visible=true,
- fillColor={255,255,255},
- extent={{-100.0,-100.0},{100.0,100.0}}),Text(
- origin={0,60},
- extent={{-60,-20},{60,20}},
- lineColor={28,108,200},
- textString="Order V - Type 2")}), Documentation(info="
-
-
-Reference |
-Generator Order V Type 2, PSAT Manual |
-
-
-Last update |
-2015-10-02 |
-
-
-Author |
-Le Qi, SmarTS Lab, KTH Royal Institute of Technology |
-
-
-Contact |
-luigiv@kth.se |
-
-
-"));
- end Order5_Type2;
-
- model Order6
- extends BaseClasses.baseMachine(vf(start=vf00), xq0=xq);
- parameter Real xd=1.9 "d-axis synchronous reactance (pu)"
- annotation (Dialog(group="Machine parameters"));
- parameter Real xq=1.7 "q-axis synchronous reactance (pu)"
- annotation (Dialog(group="Machine parameters"));
- parameter Real x1q=0.5 "q-axis transient reactance (pu)"
- annotation (Dialog(group="Machine parameters"));
- parameter Real x2d=0.204 "d-axis sub-transient reactance (pu)"
- annotation (Dialog(group="Machine parameters"));
- parameter Real x2q=0.3 "q-axis sub-transient reactance (pu)"
- annotation (Dialog(group="Machine parameters"));
- parameter Real T1d0=8 "d-axis open circuit transient time constant (s)"
- annotation (Dialog(group="Machine parameters"));
- parameter Real T1q0=0.8 "q-axis open circuit transient time constant (s)"
- annotation (Dialog(group="Machine parameters"));
- parameter Real T2d0=0.04 "d-axis open circuit sub-transient time constant (s)"
- annotation (Dialog(group="Machine parameters"));
- parameter Real T2q0=0.02 "q-axis open circuit sub-transient time constant (s)"
- annotation (Dialog(group="Machine parameters"));
- parameter Real Taa=2e-3 "d-axis aditional leakage time constant (s)"
- annotation (Dialog(group="Machine parameters"));
-
- Real e1q(start=e1q0, fixed=true) "q-axis transient voltage";
- Real e1d(start=e1d0) "d-axis transient voltage";
- Real e2q(start=e2q0, fixed=true) "q-axis sub-transient voltage";
- Real e2d(start=e2d0) "d-axis sub-transient voltage";
- protected
- parameter Real e2q0=vq0 + ra*iq0 + x2d*id0 "Initialitation";
- parameter Real e2d0=vd0 + ra*id0 - x2q*iq0 "Initialitation";
- parameter Real e1d0=(xq - x1q - T2q0*x2q*(xq - x1q)/(T1q0*x1q))*iq0;
- parameter Real K1=xd - x1d - T2d0*x2d*(xd - x1d)/(T1d0*x1d);
- parameter Real K2=x1d - x2d + T2d0*x2d*(xd - x1d)/(T1d0*x1d);
- parameter Real e1q0=e2q0 + K2*id0 - Taa/T1d0*((K1 + K2)*id0 + e2q0);
- parameter Real vf00=V_MBtoSB*(K1*id0 + e1q0)/(1 - Taa/T1d0)
- "Init. val. (pu, SB)";
- initial equation
- der(e1d) = 0;
- // der(e1d) = 0;
- der(e2d) = 0;
- // der(e2q) = 0;
- equation
-
- der(e1q) = ((-e1q) - (xd - x1d - T2d0/T1d0*x2d/x1d*(xd - x1d))*id + (1 - Taa/
- T1d0)*vf_MB)/T1d0;
- der(e1d) = ((-e1d) + (xq - x1q - T2q0/T1q0*x2q/x1q*(xq - x1q))*iq)/T1q0;
- der(e2d) = ((-e2d) + e1d + (x1q - x2q + T2q0/T1q0*x2q/x1q*(xq - x1q))*iq)/
- T2q0;
- der(e2q) = ((-e2q) + e1q - (x1d - x2d + T2d0/T1d0*x2d/x1d*(xd - x1d))*id +
- Taa/T1d0*vf_MB)/T2d0;
- e2q = vq + ra*iq + x2d*id;
- e2d = vd + ra*id - x2q*iq;
- vf0 = vf00;
- annotation (Icon(coordinateSystem(extent={{-100,-100},{100,100}},
- initialScale=0.1), graphics={Rectangle(
- visible=true,
- fillColor={255,255,255},
- extent={{-100.0,-100.0},{100.0,100.0}}),Text(
- origin={0,60},
- extent={{-60,-20},{60,20}},
- lineColor={28,108,200},
- textString="Order VI")}), Documentation(info="
-
-
-Reference |
-Generator Order VI, PSAT Manual |
-
-
-Last update |
-2015-10-02 |
-
-
-Author |
-Le Qi, SmarTS Lab, KTH Royal Institute of Technology |
-
-
-Contact |
-luigiv@kth.se |
-
-
-"));
- end Order6;
-
- model MotorTypeI "Induction Machine - Order I"
- extends OpenIPSL.Electrical.Essentials.pfComponent;
- parameter Integer Sup=1 "Start-up control" annotation (Dialog(group=
- "Machine parameters"), choices(choice=0, choice=1));
- parameter Real Rs=0.01 "Stator resistance (pu)"
- annotation (Dialog(group="Machine parameters"));
- parameter Real Xs=0.15 "Stator reactance (pu)"
- annotation (Dialog(group="Machine parameters"));
- parameter Real Rr1=0.05 "1st cage rotor resistance (pu)"
- annotation (Dialog(group="Machine parameters"));
- parameter Real Xr1=0.15 "1st cage rotor reactance (pu)"
- annotation (Dialog(group="Machine parameters"));
- parameter Real Xm=5 "Magnetizing reactance (pu)"
- annotation (Dialog(group="Machine parameters"));
- parameter Real Hm=3 "Inertia constant (kWs/KVA)"
- annotation (Dialog(group="Machine parameters"));
- parameter Real a=0.5 "1st coefficient of tau_m(w) (pu)"
- annotation (Dialog(group="Machine parameters"));
- parameter Real b=0.00 "2nd coefficient of tau_m(w) (pu)"
- annotation (Dialog(group="Machine parameters"));
- parameter Real c=0.00 "3rd coefficient of tau_m(w) (pu)"
- annotation (Dialog(group="Machine parameters"));
- parameter Real tup=0 "Start up time (s)"
- annotation (Dialog(group="Machine parameters"));
- Real v(start=V_0) "Bus voltage magnitude";
- Real anglev(start=angle_0) " Bus voltage angle";
- Real s(start=Rr1*P_0*(Q_0 + V_0*V_0/Xm)/(V_0*V_0*V_0*V_0*(Xs + Xr1)));
- Real Tm;
- Real P(start=P_0);
- Real Q(start=Q_0);
- Real Re;
- OpenIPSL.Interfaces.PwPin p(
- vr(start=vr0),
- vi(start=vi0),
- ir(start=ir0),
- ii(start=ii0)) annotation (Placement(transformation(extent={{90,-10},
- {110,10}})));
- protected
- constant Real pi=Modelica.Constants.pi;
- parameter Real vr0=V_0*cos(angle_0);
- parameter Real vi0=V_0*sin(angle_0);
- parameter Real ir0=(P_0*vr0 + Q_0*vi0)/(vr0^2 + vi0^2);
- parameter Real ii0=(P_0*vi0 - Q_0*vr0)/(vr0^2 + vi0^2);
- parameter Real A=a + b + c;
- parameter Real B=(-b) - 2*c;
- parameter Real C=c;
- parameter Real Xe=Xs + Xr1;
- initial equation
- der(s) = 0;
- equation
- P = p.vr*p.ir + p.vi*p.ii;
- Q = (-p.vr*p.ii) + p.vi*p.ir;
- anglev = atan2(p.vi, p.vr);
- v = sqrt(p.vr^2 + p.vi^2);
- Tm = A + B*s + C*s*s;
- Re = Rs + Rr1/s;
- //s=Rr1/(Re-Rs);
- der(s) = (Tm - P)/(2*Hm);
- p.ii = (-p.vr/Xm) + (p.vi*Re - p.vr*Xe)/(Re*Re + Xe*Xe);
- p.ir = p.vi/Xm + (p.vr*Re + p.vi*Xe)/(Re*Re + Xe*Xe);
- annotation (Icon(coordinateSystem(preserveAspectRatio=true, extent={{-100,-100},
- {100,100}}), graphics={Rectangle(
- visible=true,
- fillColor={255,255,255},
- extent={{-100,-100},{100,100}}),Ellipse(
- visible=true,
- fillColor={255,255,255},
- extent={{-56,-58},{55.9318,54}}),Text(
- extent={{-50,48},{50,-52}},
- lineColor={0,0,0},
- textString="M"),Text(
- origin={0,-76.0978},
- fillPattern=FillPattern.Solid,
- extent={{-57.2101,-15.0},{57.2101,15.0}},
- fontName="Arial",
- textString="%name",
- lineColor={0,0,0})}), Documentation(info="
-
-
-Reference |
-Induction Machine, PSAT Manual 2.1.8 |
-
-
-Last update |
-September 2015 |
-
-
-Author |
-Joan Russinol, SmarTS Lab, KTH Royal Institute of Technology |
-
-
-Contact |
-luigiv@kth.se |
-
-
-
-
-
- with the problem of a constant offset mismatch -0.00012
-"));
- end MotorTypeI;
-
- model MotorTypeIII "Induction Machine - Order III"
- extends OpenIPSL.Electrical.Essentials.pfComponent;
- parameter Integer Sup=1 "Start up control" annotation (Dialog(group=
- "Machine parameters"), choices(choice=0, choice=1));
- parameter Real Rs=0.01 "Stator resistance (pu)"
- annotation (Dialog(group="Machine parameters"));
- parameter Real Xs=0.15 "Stator reactance (pu)"
- annotation (Dialog(group="Machine parameters"));
- parameter Real Rr1=0.05 "1st cage rotor resistance (pu)"
- annotation (Dialog(group="Machine parameters"));
- parameter Real Xr1=0.15 "1st cage rotor reactance (pu)"
- annotation (Dialog(group="Machine parameters"));
- parameter Real Xm=5 "Magnetizing reactance (pu)"
- annotation (Dialog(group="Machine parameters"));
- parameter Real Hm=3 "Inertia constant (s)"
- annotation (Dialog(group="Machine parameters"));
- parameter Real a=0.25 "1st coefficient of tau_m(w) (pu)"
- annotation (Dialog(group="Machine parameters"));
- parameter Real b=0.00 "2nd coefficient of tau_m(w) (pu)"
- annotation (Dialog(group="Machine parameters"));
- parameter Real c=0.00 "3rd coefficient of tau_m(w) (pu)"
- annotation (Dialog(group="Machine parameters"));
- parameter Real tup=0 "Start up time (s)"
- annotation (Dialog(group="Machine parameters"));
- Real v(start=V_0) "Bus voltage magnitude";
- Real anglev(start=angle_0) " Bus voltage angle";
- Real s(start=S0);
- Real Tm;
- Real Te;
- Real P(start=P_0);
- Real Q(start=Q_0);
- Real Vr;
- Real Vm;
- Real Ir;
- Real Im;
- Real epr(start=epr0);
- Real epm(start=epm0);
- Real I;
- Real anglei;
- OpenIPSL.Interfaces.PwPin p(
- vr(start=vr0),
- vi(start=vi0),
- ir(start=ir0),
- ii(start=ii0)) annotation (Placement(transformation(extent={{90,-10},
- {110,10}})));
- protected
- constant Real pi=Modelica.Constants.pi;
- parameter Real Omegab=2*pi*fn "Base freq in rad/s";
- parameter Real vr0=V_0*cos(angle_0);
- parameter Real vi0=V_0*sin(angle_0);
- parameter Real ir0=(P_0*vr0 + Q_0*vi0)/(vr0^2 + vi0^2);
- parameter Real ii0=(P_0*vi0 - Q_0*vr0)/(vr0^2 + vi0^2);
- parameter Real i2=ir0*ir0 + ii0*ii0;
- parameter Real A=a + b + c;
- parameter Real B=(-b) - 2*c;
- parameter Real C=c;
- parameter Real X0=Xs + Xm;
- parameter Real Xp=Xs + Xr1*Xm/(Xr1 + Xm);
- parameter Real Tp0=(Xr1 + Xm)/(Omegab*Rr1);
- parameter Real RZs2=1/(Rs*Rs + Xp*Xp);
- parameter Real K=Rr1/((Xr1 + Xm)*A);
- parameter Real K2=1 + Tp0*Tp0*Omegab*Omegab*S0*S0;
- parameter Real K1=Tp0*Omegab*S0;
- parameter Real a03=Rs*Rs + Xp*Xp;
- //r1^2+(xS +xR1xm/(xR1 + xm))^2
- parameter Real a13=Rs/a03;
- parameter Real a23=Xp/a03;
- parameter Real S0=K*((-Q_0) + X0*i2);
- parameter Real epm0=(K1*(X0 - Xp)*ir0 + (X0 - Xp)*(-1)*ii0)/K2;
- parameter Real epr0=(K1*(X0 - Xp)*(-1)*ii0 - (X0 - Xp)*ir0)/K2;
- initial equation
- der(s) = 0;
- der(epr) = 0;
- der(epm) = 0;
- equation
- anglev = atan2(p.vi, p.vr);
- anglei = atan2(p.ii, p.ir);
- v = sqrt(p.vr^2 + p.vi^2);
- I = sqrt(p.ii^2 + p.ir^2);
- Vr = p.vi;
- Vm = p.vr;
- Im = p.ir;
- Ir = -p.ii;
- P = p.vr*p.ir + p.vi*p.ii;
- Q = (-p.vr*p.ii) + p.vi*p.ir;
- der(s) = (Tm - Te)/(2*Hm);
- Tm = A + B*s + C*s*s;
- Te = epr*Ir + epm*Im;
- der(epr) = Omegab*s*epm - (epr + (X0 - Xp)*Im)/Tp0;
- der(epm) = (-Omegab*s*epr) - (epm - (X0 - Xp)*Ir)/Tp0;
- Im = (-a23*((-Vr) - epr)) + a13*(Vm - epm);
- Ir = a13*((-Vr) - epr) + a23*(Vm - epm);
- annotation (Icon(coordinateSystem(preserveAspectRatio=true, extent={{-100,-100},
- {100,100}}), graphics={Rectangle(
- visible=true,
- fillColor={255,255,255},
- extent={{-100,-100},{100,100}}),Ellipse(
- visible=true,
- fillColor={255,255,255},
- extent={{-56,-58},{55.9318,54}}),Text(
- extent={{-50,48},{50,-52}},
- lineColor={0,0,0},
- textString="M"),Text(
- origin={0,-76.0978},
- fillPattern=FillPattern.Solid,
- extent={{-57.2101,-15.0},{57.2101,15.0}},
- fontName="Arial",
- textString="%name",
- lineColor={0,0,0})}), Documentation(info="
-
-
-Reference |
-Induction Machine, PSAT Manual 2.1.8 |
-
-
-Last update |
-September 2015 |
-
-
-Author |
-Joan Russinol, SmarTS Lab, KTH Royal Institute of Technology |
-
-
-Contact |
-luigiv@kth.se |
-
-
-"));
- end MotorTypeIII;
-
- model MotorTypeV "Induction Machine - Order V"
- extends OpenIPSL.Electrical.Essentials.pfComponent;
- parameter Integer Sup=1 "Start up control" annotation (Dialog(group=
- "Machine parameters"), choices(choice=0, choice=1));
- parameter Real Rs=0.01 "Stator resistance (pu)"
- annotation (Dialog(group="Machine parameters"));
- parameter Real Xs=0.15 "Stator reactance (pu)"
- annotation (Dialog(group="Machine parameters"));
- parameter Real Rr1=0.05 "1st cage rotor resistance (pu)"
- annotation (Dialog(group="Machine parameters"));
- parameter Real Xr1=0.15 "1st cage rotor reactance (pu)"
- annotation (Dialog(group="Machine parameters"));
- parameter Real Rr2=0.001 "2nd cage rotor resistance (pu)"
- annotation (Dialog(group="Machine parameters"));
- parameter Real Xr2=0.04 "2nd cage rotor reactance (pu)"
- annotation (Dialog(group="Machine parameters"));
- parameter Real Xm=5 "Magnetizing reactance (pu)"
- annotation (Dialog(group="Machine parameters"));
- parameter Real Hm=3 "Inertia constant (s)"
- annotation (Dialog(group="Machine parameters"));
- parameter Real a=0.13 "1st coefficient of tau_m(w) (pu)"
- annotation (Dialog(group="Machine parameters"));
- parameter Real b=0.02 "2nd coefficient of tau_m(w) (pu)"
- annotation (Dialog(group="Machine parameters"));
- parameter Real c=0.024 "3rd coefficient of tau_m(w) (pu)"
- annotation (Dialog(group="Machine parameters"));
- parameter Real tup=0 "Start up time"
- annotation (Dialog(group="Machine parameters"));
- Real v(start=V_0) "Bus voltage magnitude";
- Real anglev(start=angle_0) " Bus voltage angle";
- Real s(start=S0);
- //(start=Rr1*P_0*(Q_0+V_0*V_0/Xm)/(V_0*V_0*V_0*V_0*(Xs + Xr1)));
- Real Tm;
- Real Te;
- Real P(start=P_0);
- Real Q(start=Q_0);
- Real e1r(start=epr0);
- Real e1m(start=epm0);
- Real e2r(start=0.0353);
- Real e2m(start=0.9995);
- Real Vr;
- Real Vm;
- Real Ir;
- Real Im;
- OpenIPSL.Interfaces.PwPin p(
- vr(start=vr0),
- vi(start=vi0),
- ir(start=ir0),
- ii(start=ii0)) annotation (Placement(transformation(extent={{90,-10},
- {110,10}})));
- protected
- constant Real pi=Modelica.Constants.pi;
- parameter Real Omegab=2*pi*fn "Base freq in rad/s";
- parameter Real vr0=V_0*cos(angle_0);
- parameter Real vi0=V_0*sin(angle_0);
- parameter Real ir0=(P_0*vr0 + Q_0*vi0)/(vr0^2 + vi0^2);
- parameter Real ii0=(P_0*vi0 - Q_0*vr0)/(vr0^2 + vi0^2);
- parameter Real A=a + b + c;
- parameter Real B=(-b) - 2*c;
- parameter Real C=c;
- parameter Real X0=Xs + Xm;
- parameter Real X1=Xs + Xr1*Xm/(Xr1 + Xm);
- parameter Real T10=(Xr1 + Xm)/(Omegab*Rr1);
- parameter Real X2=Xs + Xr1*Xm*Xr2/(Xr1*Xr2 + Xr1*Xm + Xr2*Xm);
- parameter Real T20=(Xr2 + Xr1*Xm/(Xr1 + Xm))/(Omegab*Rr2);
- parameter Real a05=Rs^2 + X2^2;
- parameter Real a15=Rs/a05;
- parameter Real a25=X2/a05;
- parameter Real a35=X0 - X1;
- parameter Real a45=X1 - X2;
- parameter Real i2=ir0*ir0 + ii0*ii0;
- parameter Real K=Rr1/((Xr1 + Xm)*A);
- parameter Real K2=1 + T10*T10*Omegab*Omegab*S0*S0;
- parameter Real K1=T10*Omegab*S0;
- parameter Real S0=K*((-Q_0) + X0*i2);
- parameter Real epm0=(K1*(X0 - X1)*ir0 + (X0 - X1)*(-1)*ii0)/K2;
- parameter Real epr0=(K1*(X0 - X1)*(-1)*ii0 - (X0 - X1)*ir0)/K2;
- initial equation
- der(e2r) = 0;
- der(e2m) = 0;
- der(s) = 0;
- der(e1r) = 0;
- der(e1m) = 0;
- equation
- anglev = atan2(p.vi, p.vr);
- v = sqrt(p.vr^2 + p.vi^2);
- Vr = p.vi;
- Vm = p.vr;
- Im = p.ir;
- Ir = -p.ii;
- P = p.vr*p.ir + p.vi*p.ii;
- Q = (-p.vr*p.ii) + p.vi*p.ir;
- Ir = a15*((-Vr) - e2r) + a25*(Vm - e2m);
- Im = (-a25*((-Vr) - e2r)) + a15*(Vm - e2m);
- der(s) = (Tm - Te)/(2*Hm);
- Te = e2r*Ir + e2m*Im;
- der(e1r) = Omegab*s*e1m - (e1r + a35*Im)/T10;
- der(e1m) = (-Omegab*s*e1r) - (e1m - a35*Ir)/T10;
- der(e2r) = (-Omegab*s*(e1m - e2m)) + der(e1r) + (e1r - e2r - a45*Im)/T20;
- der(e2m) = Omegab*s*(e1r - e2r) + der(e1m) + (e1m - e2m + a45*Ir)/T20;
- Tm = A + B*s + C*s*s;
- annotation (Icon(coordinateSystem(preserveAspectRatio=true, extent={{-100,-100},
- {100,100}}), graphics={Rectangle(
- visible=true,
- fillColor={255,255,255},
- extent={{-100,-100},{100,100}}),Ellipse(
- visible=true,
- fillColor={255,255,255},
- extent={{-56,-58},{55.9318,54}}),Text(
- extent={{-50,48},{50,-52}},
- lineColor={0,0,0},
- textString="M"),Text(
- origin={0,-76.0978},
- fillPattern=FillPattern.Solid,
- extent={{-57.2101,-15.0},{57.2101,15.0}},
- fontName="Arial",
- textString="%name",
- lineColor={0,0,0})}), Documentation(info="
-
-
-Reference |
-Induction Machine, PSAT Manual 2.1.8 |
-
-
-Last update |
-September 2015 |
-
-
-Author |
-Joan Russinol, SmarTS Lab, KTH Royal Institute of Technology |
-
-
-Contact |
-luigiv@kth.se |
-
-
-"));
- end MotorTypeV;
-
- package BaseClasses
- partial model baseMachine
- extends OpenIPSL.Electrical.Essentials.pfComponent;
- import Modelica.Constants.pi;
- import SI = Modelica.SIunits;
- import CM = Modelica.ComplexMath;
- import Complex;
- parameter OpenIPSL.Types.ApparentPowerMega Sn
- "Power rating (MVA)"
- annotation (Dialog(group="Machine parameters"));
- parameter OpenIPSL.Types.VoltageKilo Vn "Voltage rating (kV)"
- annotation (Dialog(group="Machine parameters"));
- parameter SI.PerUnit ra "Armature resistance (pu)"
- annotation (Dialog(group="Machine parameters"));
- parameter SI.PerUnit x1d "d-axis transient reactance (pu)"
- annotation (Dialog(group="Machine parameters"));
- parameter Real M "Mechanical starting time (2H), kWs/kVA"
- annotation (Dialog(group="Machine parameters"));
- parameter Real D "Damping coefficient"
- annotation (Dialog(group="Machine parameters"));
-
- OpenIPSL.Interfaces.PwPin p(
- vr(start=vr0),
- vi(start=vi0),
- ir(start=ir0),
- ii(start=ii0)) annotation (Placement(visible=true,
- transformation(
- origin={100,0},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- Modelica.Blocks.Interfaces.RealOutput delta(
- start=delta0,
- quantity="Angle",
- unit="rad",
- displayUnit="rad") "Rotor angle (rad)" annotation (Placement(visible=true,
- transformation(
- origin={110,60},
- extent={{-10,-10},{10,10}},
- rotation=0)));
- Modelica.Blocks.Interfaces.RealOutput w(start=1) "Rotor speed (pu)"
- annotation (Placement(visible=true, transformation(
- origin={110,90},
- extent={{-10,-10},{10,10}},
- rotation=0)));
- Modelica.Blocks.Interfaces.RealOutput v(start=V_0)
- "Generator terminal voltage (pu)" annotation (Placement(visible=true,
- transformation(
- origin={110,30},
- extent={{-10,-10},{10,10}},
- rotation=0)));
- Modelica.Blocks.Interfaces.RealOutput P(start=p0) "Active power (pu)"
- annotation (Placement(visible=true, transformation(
- origin={110,-30},
- extent={{-10,-10},{10,10}},
- rotation=0)));
- Modelica.Blocks.Interfaces.RealOutput Q(start=q0) "Reactive power (pu)"
- annotation (Placement(visible=true, transformation(
- origin={110,-70},
- extent={{-10,-10},{10,10}},
- rotation=0)));
- Modelica.Blocks.Interfaces.RealInput vf "Field voltage (pu)" annotation (
- Placement(visible=true, transformation(
- origin={-120,50},
- extent={{-20,-20},{20,20}},
- rotation=0)));
- Modelica.Blocks.Interfaces.RealOutput vf0 "Initial field voltage (pu)"
- annotation (Placement(visible=true, transformation(
- origin={-80,110},
- extent={{-10,-10},{10,10}},
- rotation=90)));
- Modelica.Blocks.Interfaces.RealOutput pm0(start=pm00)
- "Initial mechanical power (pu)" annotation (Placement(visible=true,
- transformation(
- origin={-80,-110},
- extent={{-10,-10},{10,10}},
- rotation=270)));
- Modelica.Blocks.Interfaces.RealInput pm(start=pm00) "Mechanical power (pu)"
- annotation (Placement(visible=true, transformation(
- origin={-120,-50},
- extent={{-20,-20},{20,20}},
- rotation=0)));
- SI.Angle anglev(start=SI.Conversions.from_deg(angle_0))
- " Bus voltage angle (rad)";
- Real vd(start=vd0) "d-axis voltage (pu)";
- Real vq(start=vq0) "q-axis voltage (pu)";
- Real id(start=id0) "d-axis currrent (pu)";
- Real iq(start=iq0) "q-axis current (pu)";
- protected
- SI.PerUnit pe(start=pm00) "electrical power transmitted through the air-gap";
- SI.PerUnit vf_MB=vf*V_b/Vn "field voltage on machine base";
- parameter SI.AngularVelocity w_b=2*pi*fn "Base frequency in rad/s";
- // Define multiplicative transforms to go from one pu-base to another:
- parameter Real S_SBtoMB=S_b/Sn "S(system base) -> S(machine base)";
- parameter Real I_MBtoSB=(Sn*V_b)/(S_b*Vn) "I(machine base) -> I(system base)";
- parameter Real V_MBtoSB=Vn/V_b "V(machine base) -> V(system base)";
- parameter Real Z_MBtoSB=(S_b*Vn^2)/(Sn*V_b^2)
- "Z(machine base) -> Z(system base)";
-
- // Initialize stator quantities (system base):
- parameter SI.PerUnit p0=P_0/S_b
- "Initial active power generation in pu (system base)";
- parameter SI.PerUnit q0=Q_0/S_b
- "Initial reactive power generation in pu (system base)";
- parameter Complex Vt0=CM.fromPolar(V_0, SI.Conversions.from_deg(angle_0))
- "Init. val., conjugate";
- parameter Complex S0(re=p0, im=-q0) "Init. val., conjugate";
- parameter Complex I0=S0/(CM.conj(Vt0)) "Init. val., conjugate";
- parameter SI.PerUnit vr0=CM.real(Vt0) "Init. val.";
- parameter SI.PerUnit vi0=CM.imag(Vt0) "Init. val.";
- parameter SI.PerUnit ir0=-CM.real(I0) "Init. val.";
- parameter SI.PerUnit ii0=-CM.imag(I0) "Init. val.";
-
- // Initialize DQ-quantities (pu, machine base)
- parameter SI.PerUnit xq0 "used for setting the initial rotor angle";
- parameter SI.Angle delta0=CM.arg((Vt0 + ((ra + CM.j*xq0)*Z_MBtoSB*I0)))
- "Init. val. rotor angle";
- parameter Complex Vdq0=Vt0*CM.fromPolar(1/V_MBtoSB, (-delta0 + (pi/2)))
- "Init. val (pu, machine base)";
- parameter Complex Idq0=I0*CM.fromPolar(1/I_MBtoSB, (-delta0 + (pi/2)))
- "(pu, machine base)";
- parameter SI.PerUnit vd0=CM.real(Vdq0) "Init. val.";
- parameter SI.PerUnit vq0=CM.imag(Vdq0) "Init. val.";
- parameter SI.PerUnit id0=CM.real(Idq0) "Init. val.";
- parameter SI.PerUnit iq0=CM.imag(Idq0) "Init. val.";
-
- parameter SI.PerUnit pm00=((vq0 + ra*iq0)*iq0 + (vd0 + ra*id0)*id0)/S_SBtoMB
- "Init. val. (pu, system base)";
- initial equation
- w = 1;
- delta = delta0;
- equation
- v = sqrt(p.vr^2 + p.vi^2);
- anglev = atan2(p.vi, p.vr);
- der(delta) = w_b*(w - 1);
- if D > Modelica.Constants.eps then
- der(w) = (pm*S_SBtoMB - pe - D*(w - 1))/M;
- else
- der(w) = (pm*S_SBtoMB - pe)/M;
- end if;
- [p.ir; p.ii] = -[sin(delta), cos(delta); -cos(delta), sin(delta)]*[id; iq]*
- I_MBtoSB;
- [p.vr; p.vi] = [sin(delta), cos(delta); -cos(delta), sin(delta)]*[vd; vq]*
- V_MBtoSB;
- P = -p.vr*p.ir - p.vi*p.ii;
- Q = -p.vi*p.ir + p.vr*p.ii;
- pe = (vq + ra*iq)*iq + (vd + ra*id)*id "pu, machine base";
- pm0 = pm00 "pu, system base";
- annotation (
- Icon(coordinateSystem(extent={{-100,-100},{100,100}}, initialScale=0.1),
- graphics={Rectangle(
- fillColor={255,255,255},
- extent={{-100,-100},{100,100}},
- lineColor={28,108,200},
- fillPattern=FillPattern.Solid),Text(
- origin={-80,50},
- extent={{-10,-10},{10,10}},
- lineColor={28,108,200},
- textString="vf"),Text(
- origin={-80,-50},
- extent={{-10,-10},{10,10}},
- lineColor={28,108,200},
- textString="pm"),Text(
- origin={-80,90},
- extent={{-10,-10},{10,10}},
- lineColor={28,108,200},
- textString="vf0"),Text(
- origin={-80,-90},
- extent={{-10,-10},{10,10}},
- lineColor={28,108,200},
- textString="pm0"),Text(
- origin={85,60},
- extent={{-15,-10},{15,10}},
- lineColor={28,108,200},
- textString="delta"),Text(
- origin={90,90},
- extent={{-10,-10},{10,10}},
- lineColor={28,108,200},
- textString="w"),Text(
- origin={90,30},
- extent={{-10,-10},{10,10}},
- lineColor={28,108,200},
- textString="v"),Ellipse(extent={{-40,40},{40,-40}}, lineColor={28,108,
- 200}),Line(
- points={{-20,0},{-9,15},{9,-15},{20,0}},
- color={28,108,200},
- smooth=Smooth.Bezier),Text(
- origin={0,-60},
- extent={{-60,-20},{60,20}},
- lineColor={28,108,200},
- textString="%name"),Text(
- origin={90,-31},
- extent={{-10,-10},{10,10}},
- lineColor={28,108,200},
- textString="P"),Text(
- origin={90,-70},
- extent={{-10,-10},{10,10}},
- lineColor={28,108,200},
- textString="Q")}),
- Documentation,
- Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{
- 100,100}})));
- end baseMachine;
- annotation (Documentation);
- end BaseClasses;
- annotation (Documentation);
- end PSAT;
-
- package PSSE
- model Plant
- extends Interfaces.Generator;
-
- replaceable
- OpenIPSL.Electrical.Machines.PSSE.BaseClasses.baseMachine machine
- annotation (choicesAllMatching=true, Placement(transformation(
- extent={{40,-10},{60,10}})));
- replaceable Controls.PSSE.ES.BaseClasses.BaseExciter exciter
- annotation (choicesAllMatching=true,
- Placement(transformation(extent={{-28,-24},{10,10}})));
- Modelica.Blocks.Sources.Constant const(k=0)
- annotation (Placement(transformation(extent={{-40,-54},{-32,-46}})));
- Modelica.Blocks.Sources.Constant const1(k=0)
- annotation (Placement(transformation(extent={{-40,-72},{-32,-64}})));
- replaceable Controls.PSSE.TG.BaseClasses.BaseGovernor governor
- annotation (choicesAllMatching=true,
- Placement(transformation(extent={{-30,40},{-10,60}})));
- replaceable
- OpenIPSL.Electrical.Controls.PSSE.PSS.BaseClasses.BasePSS pss
- annotation (Placement(visible=true, transformation(extent={{-88,-6},
- {-48,12}}, rotation=0)));
- equation
- connect(pss.V_S2, governor.PMECH0) annotation (
- Line(points={{-87.3684,-1.5},{-94,-1.5},{-94,30},{-40,30},{-40,45.4545},{-29.1667,45.4545}},
- color = {0, 0, 127}));
- connect(pss.V_S1, machine.SPEED) annotation (
- Line(points={{-87.3684,7.5},{-98,7.5},{-98,68},{80,68},{80,7},{61,7}}, color = {0, 0, 127}));
- connect(pss.VOTHSG, exciter.VOTHSG) annotation (
- Line(points={{-47.3684,3},{-40,3},{-40,3.38889},{-28,3.38889}}, color = {0, 0, 127}));
- connect(exciter.EFD, machine.EFD) annotation (Line(points={{10.95,-5.11111},{38,-5.11111},{38,-5}},
- color={0,0,127}));
- connect(machine.p, pwPin)
- annotation (Line(points={{60,0},{110,0}}, color={0,0,255}));
- connect(exciter.XADIFD, machine.XADIFD) annotation (Line(points={{-0.45,-23.6222},{-0.45,-30},{64,-30},{64,-9},{60.8,-9}},
- color={0,0,127}));
- connect(machine.EFD0, exciter.EFD0) annotation (Line(points={{61,-5},{66,-5},{66,-34},{-32,-34},{-32,-17.3889},{-28,-17.3889}},
- color={0,0,127}));
- connect(exciter.ECOMP, machine.ETERM) annotation (Line(points={{-28,-5.11111},{-32,-5.11111},{-32,20},{68,20},{68,-3},{61,-3}},
- color={0,0,127}));
- connect(const.y, exciter.VUEL) annotation (Line(points={{-31.6,-50},{-21.35,
- -50},{-21.35,-24}}, color={0,0,127}));
- connect(const1.y, exciter.VOEL) annotation (Line(points={{-31.6,-68},{-15.65,
- -68},{-15.65,-24}}, color={0,0,127}));
- connect(governor.PMECH, machine.PMECH) annotation (Line(points={{-9.58333,50.9091},{28,50.9091},{28,5},{38,5}},
- color={0,0,127}));
- connect(governor.SPEED, machine.SPEED) annotation (Line(points={{-29.1667,55.4545},{-40,55.4545},{-40,68},{80,68},{80,7},{61,7}},
- color={0,0,127}));
- connect(machine.PMECH0, governor.PMECH0) annotation (Line(points={{61,5},{74,5},{74,30},{-40,30},{-40,45.4545},{-29.1667,45.4545}},
- color={0,0,127}));
-
- end Plant;
-
- model GENSAL "SALIENT POLE GENERATOR MODEL (QUADRATIC SATURATION ON D-AXIS)"
- // Import of Dependencies
- import IslandedOperationControl.OpenIPSL.NonElectrical.Functions.SE;
- import Modelica.Constants.pi;
- import Complex;
- import Modelica.ComplexMath.arg;
- import Modelica.ComplexMath.real;
- import Modelica.ComplexMath.imag;
- import Modelica.ComplexMath.'abs';
- import Modelica.ComplexMath.conj;
- import Modelica.ComplexMath.fromPolar;
- import Modelica.ComplexMath.j;
- //Extending machine base class
- extends BaseClasses.baseMachine(
- w(start=0),
- EFD(start=efd0),
- XADIFD(start=efd0),
- PMECH(start=pm0),
- ANGLE(start=delta0),
- delta(start=delta0),
- id(start=id0),
- iq(start=iq0),
- ud(start=ud0),
- uq(start=uq0),
- Te(start=pm0));
- Real Epq(start=Epq0) "q-axis voltage behind transient reactance (pu)";
- Real PSIkd(start=PSIkd0) "d-axis rotor flux linkage (pu)";
- Real PSIppq(start=PSIppq0) "q-axis subtransient flux linkage (pu)";
- Real PSIppd(start=PSIppd0) "d-axis subtransient flux linkage (pu)";
- Real PSId(start=PSId0) "d-axis flux linkage (pu)";
- Real PSIq(start=PSIq0) "q-axis flux linkage (pu)";
- Real XadIfd(start=efd0) "Machine field current (pu)";
- protected
- parameter Complex Zs=R_a + j*Xppd "Equivalent impedance";
- parameter Complex Is=real(It + VT/Zs) + j*imag(It + VT/Zs);
- parameter Complex PSIpp0=real(Zs*Is) + j*imag(Zs*Is);
- parameter Complex a=0 + j*(Xq - Xppd);
- parameter Complex Epqp=real(PSIpp0 + a*It) + j*imag(PSIpp0 + a*It);
- parameter Real delta0=arg(Epqp) "rotor angle in radians";
- parameter Complex VT=V_0*cos(anglev_rad) + j*V_0*sin(anglev_rad)
- "Complex terminal voltage";
- parameter Complex S=p0 + j*q0 "Complex power on machine base";
- parameter Complex It=real(S/VT) - j*imag(S/VT) "Terminal current";
- parameter Complex DQ_dq=cos(delta0) - j*sin(delta0) "Parks transformation";
- parameter Complex I_dq=real(It*DQ_dq) - j*imag(It*DQ_dq);
- //Initialization of current and voltage components in synchronous reference frame.
- parameter Real iq0=real(I_dq) "q-axis component of intitial current";
- parameter Real id0=imag(I_dq) "d-axis component of intitial current";
- parameter Real ud0=V_0*cos(anglev_rad - delta0 + pi/2)
- "d-axis component of intitial voltage";
- parameter Real uq0=V_0*sin(anglev_rad - delta0 + pi/2)
- "q-axis component of intitial voltage";
- parameter Complex PSIpp0_dq=real(PSIpp0*DQ_dq) + j*imag(PSIpp0*DQ_dq)
- "Flux linkage in rotor reference frame";
- parameter Real PSIppq0=-imag(PSIpp0_dq)
- "q-axis component of the sub-transient flux linkage";
- parameter Real PSIppd0=real(PSIpp0_dq)
- "d-axis component of the sub-transient flux linkage";
- parameter Real PSIkd0=(PSIppd0 - (Xpd - Xl)*K3d*id0)/(K3d + K4d)
- "d-axis initial rotor flux linkage";
- parameter Real PSId0=PSIppd0 - Xppd*id0;
- parameter Real PSIq0=(-PSIppq0) - Xppq*iq0;
- //Initialization mechanical power and field voltage.
- parameter Real Epq0=uq0 + Xpd*id0 + R_a*iq0;
- parameter Real dsat=SE(
- Epq0,
- S10,
- S12,
- 1,
- 1.2);
- parameter Real efd0=Epq0*(1 + dsat) + (Xd - Xpd)*id0
- "Initial field voltage magnitude";
- parameter Real pm0=p0 + R_a*iq0*iq0 + R_a*id0*id0
- "Initial mechanical power, machine base";
- // Constants
- parameter Real K1d=(Xpd - Xppd)*(Xd - Xpd)/(Xpd - Xl)^2;
- parameter Real K2d=(Xpd - Xl)*(Xppd - Xl)/(Xpd - Xppd);
- parameter Real K3d=(Xppd - Xl)/(Xpd - Xl);
- parameter Real K4d=(Xpd - Xppd)/(Xpd - Xl);
- initial equation
- der(Epq) = 0;
- der(PSIkd) = 0;
- der(PSIppq) = 0;
- delta = delta0;
- w = 0;
- equation
- //Interfacing outputs with the internal variables
- XADIFD = XadIfd;
- PMECH0 = pm0;
- EFD0 = efd0;
- ISORCE = XadIfd;
- der(Epq) = 1/Tpd0*(EFD - XadIfd);
- der(PSIkd) = 1/Tppd0*(Epq - PSIkd - (Xpd - Xl)*id);
- der(PSIppq) = 1/Tppq0*((-PSIppq) + (Xq - Xppq)*iq);
- PSIppd = Epq*K3d + PSIkd*K4d;
- PSId = PSIppd - Xppd*id;
- PSIq = (-PSIppq) - Xppq*iq;
- XadIfd = K1d*(Epq - PSIkd - (Xpd - Xl)*id) + (Xd - Xpd)*id + (SE(
- Epq,
- S10,
- S12,
- 1,
- 1.2) + 1)*Epq;
- Te = PSId*iq - PSIq*id;
- ud = (-PSIq) - R_a*id;
- uq = PSId - R_a*iq;
- //flow, changed from machine base to system bas
- annotation (
- Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{
- 100,100}})),
- Icon(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{100,
- 100}}), graphics={Text(
- extent={{-58,62},{52,-64}},
- lineColor={0,0,255},
- textString="GENSAL")}),
- Documentation(info="
-
-
-Reference |
-PSS/E Manual |
-
-
-Last update |
-Unknown |
-
-
-Author |
-Mengjia Zhang,SmarTS Lab, KTH Royal Institute of Technology |
-
-
-Contact |
-luigiv@kth.se |
-
-
-"));
- end GENSAL;
-
- model GENROU "ROUND ROTOR GENERATOR MODEL (QUADRATIC SATURATION)"
- //Import of dependencies
- import Complex;
- import Modelica.ComplexMath.arg;
- import Modelica.ComplexMath.real;
- import Modelica.ComplexMath.imag;
- import Modelica.ComplexMath.'abs';
- import Modelica.ComplexMath.conj;
- import Modelica.ComplexMath.fromPolar;
- import Modelica.ComplexMath.j;
- import IslandedOperationControl.OpenIPSL.NonElectrical.Functions.SE;
- import Modelica.Constants.pi;
- extends BaseClasses.baseMachine(
- w(start=0),
- XADIFD(start=efd0),
- ANGLE(start=delta0),
- delta(start=delta0),
- id(start=id0),
- iq(start=iq0),
- ud(start=ud0),
- uq(start=uq0),
- Te(start=pm0));
- //Machine parameters
- parameter Real Xpq "q-axis transient reactance (pu)"
- annotation (Dialog(group="Machine parameters"));
- parameter Real Tpq0 "q-axis transient open-circuit time constant (s)"
- annotation (Dialog(group="Machine parameters"));
- parameter Real Xpp=Xppd "Sub-transient reactance (pu)"
- annotation (Dialog(group="Machine parameters"));
- Real Epd(start=Epd0) "d-axis voltage behind transient reactance (pu)";
- Real Epq(start=Epq0) "q-axis voltage behind transient reactance ";
- Real PSIkd(start=PSIkd0) "d-axis rotor flux linkage (pu)";
- Real PSIkq(start=PSIkq0) "q-axis rotor flux linkage (pu)";
- //State variables
- Real PSId(start=PSId0) "d-axis flux linkage (pu)";
- Real PSIq(start=PSIq0) "q-axis flux linkage (pu)";
- Real PSIppd(start=PSIppd0) "d-axis subtransient flux linkage (pu)";
- Real PSIppq(start=PSIppq0) "q-axis subtransient flux linkage (pu)";
- Real PSIpp "Air-gap flux (pu)";
- Real XadIfd(start=efd0) "d-axis machine field current (pu)";
- Real XaqIlq(start=0) "q-axis Machine field current (pu)";
- protected
- parameter Complex Zs=R_a + j*Xpp "Equivalent impedance";
- parameter Complex VT=V_0*cos(anglev_rad) + j*V_0*sin(anglev_rad)
- "Complex terminal voltage";
- parameter Complex S=p0 + j*q0 "Complex power on machine base";
- parameter Complex It=real(S/VT) - j*imag(S/VT)
- "Complex current, machine base";
- parameter Complex Is=real(It + VT/Zs) + j*imag(It + VT/Zs)
- "Equivalent internal current source";
- parameter Complex PSIpp0=real(Zs*Is) + j*imag(Zs*Is)
- "Sub-transient flux linkage in stator reference frame";
- parameter Real ang_PSIpp0=arg(PSIpp0) "flux angle";
- parameter Real ang_It=arg(It) "current angle";
- parameter Real ang_PSIpp0andIt=ang_PSIpp0 - ang_It "angle difference";
- parameter Real abs_PSIpp0='abs'(PSIpp0)
- "magnitude of sub-transient flux linkage";
- parameter Real dsat=SE(
- abs_PSIpp0,
- S10,
- S12,
- 1,
- 1.2) "To include saturation of during initialization";
- parameter Real a=abs_PSIpp0 + abs_PSIpp0*dsat*(Xq - Xl)/(Xd - Xl);
- parameter Real b=(It.re^2 + It.im^2)^0.5*(Xpp - Xq);
- //Initializion rotor angle position
- parameter Real delta0=atan(b*cos(ang_PSIpp0andIt)/(b*sin(ang_PSIpp0andIt) - a))
- + ang_PSIpp0 "initial rotor angle in radians";
- parameter Complex DQ_dq=cos(delta0) - j*sin(delta0)
- "Parks transformation, from stator to rotor reference frame";
- parameter Complex PSIpp0_dq=PSIpp0*DQ_dq
- "Flux linkage in rotor reference frame";
- parameter Complex I_dq=conj(It*DQ_dq);
- //"The terminal current in rotor reference frame"
- parameter Real PSIppq0=imag(PSIpp0_dq)
- "q-axis component of the sub-transient flux linkage";
- parameter Real PSIppd0=real(PSIpp0_dq)
- "d-axis component of the sub-transient flux linkage";
- //Initialization of current and voltage components in rotor reference frame (dq-axes).
- parameter Real delta1=delta0*180/pi "rotor angle in degrees";
- parameter Real iq0=real(I_dq) "q-axis component of intitial current";
- parameter Real id0=imag(I_dq) "d-axis component of intitial current";
- parameter Real ud0=(-(PSIppq0 - Xppq*iq0)) - R_a*id0
- "d-axis component of intitial voltage";
- parameter Real uq0=PSIppd0 - Xppd*id0 - R_a*iq0
- "q-axis component of intitial voltage";
- //Initialization current and voltage components in synchronous reference frame.
- parameter Real vr0=V_0*cos(anglev_rad)
- "Real component of initial terminal voltage";
- parameter Real vi0=V_0*sin(anglev_rad)
- "Imaginary component of intitial terminal voltage";
- parameter Real ir0=-CoB*(p0*vr0 + q0*vi0)/(vr0^2 + vi0^2)
- "Real component of initial armature current, systembase";
- parameter Real ii0=-CoB*(p0*vi0 - q0*vr0)/(vr0^2 + vi0^2)
- "Imaginary component of initial armature current, systembase";
- //Initialization mechanical power and field voltage.
- parameter Real pm0=p0 + R_a*iq0*iq0 + R_a*id0*id0
- "Initial mechanical power, machine base";
- parameter Real efd0=dsat*PSIppd0 + PSIppd0 + (Xpd - Xpp)*id0 + (Xd - Xpd)*id0
- "Initial field voltage magnitude";
- parameter Real Epq0=PSIkd0 + (Xpd - Xl)*id0;
- parameter Real Epd0=PSIkq0 - (Xpq - Xl)*iq0;
- //Initialize remaining states:
- parameter Real PSIkd0=(PSIppd0 - (Xpd - Xl)*K3d*id0)/(K3d + K4d)
- "d-axis initial rotor flux linkage";
- parameter Real PSIkq0=((-PSIppq0) + (Xpq - Xl)*K3q*iq0)/(K3q + K4q)
- "q-axis initial rotor flux linkage";
- parameter Real PSId0=PSIppd0 - Xppd*id0;
- parameter Real PSIq0=(-PSIppq0) - Xppq*iq0;
- // Constants
- parameter Real K1d=(Xpd - Xppd)*(Xd - Xpd)/(Xpd - Xl)^2;
- parameter Real K2d=(Xpd - Xl)*(Xppd - Xl)/(Xpd - Xppd);
- parameter Real K1q=(Xpq - Xppq)*(Xq - Xpq)/(Xpq - Xl)^2;
- parameter Real K2q=(Xpq - Xl)*(Xppq - Xl)/(Xpq - Xppq);
- parameter Real K3d=(Xppd - Xl)/(Xpd - Xl);
- parameter Real K4d=(Xpd - Xppd)/(Xpd - Xl);
- parameter Real K3q=(Xppq - Xl)/(Xpq - Xl);
- parameter Real K4q=(Xpq - Xppq)/(Xpq - Xl);
- parameter Real CoB=M_b/S_b
- "Constant to change from system base to machine base";
- initial equation
- der(Epd) = 0;
- der(Epq) = 0;
- der(PSIkd) = 0;
- der(PSIkq) = 0;
- delta = delta0;
- w = 0;
- equation
- //Interfacing outputs with the internal variables
- XADIFD = XadIfd;
- ISORCE = XadIfd;
- EFD0 = efd0;
- PMECH0 = pm0;
- der(Epq) = 1/Tpd0*(EFD - XadIfd);
- der(Epd) = 1/Tpq0*(-1)*XaqIlq;
- der(PSIkd) = 1/Tppd0*(Epq - PSIkd - (Xpd - Xl)*id);
- der(PSIkq) = 1/Tppq0*(Epd - PSIkq + (Xpq - Xl)*iq);
- Te = PSId*iq - PSIq*id;
- PSId = PSIppd - Xppd*id;
- PSIq = (-PSIppq) - Xppq*iq;
- PSIppd = Epq*K3d + PSIkd*K4d;
- -PSIppq = (-Epd*K3q) - PSIkq*K4q;
- PSIpp = sqrt(PSIppd*PSIppd + PSIppq*PSIppq);
- XadIfd = K1d*(Epq - PSIkd - (Xpd - Xl)*id) + Epq + id*(Xd - Xpd) + SE(
- PSIpp,
- S10,
- S12,
- 1,
- 1.2)*PSIppd;
- XaqIlq = K1q*(Epd - PSIkq + (Xpq - Xl)*iq) + Epd - iq*(Xq - Xpq) - SE(
- PSIpp,
- S10,
- S12,
- 1,
- 1.2)*(-1)*PSIppq*(Xq - Xl)/(Xd - Xl);
- //change sign for PSIppq 3/3
- ud = (-PSIq) - R_a*id;
- uq = PSId - R_a*iq;
- //flow
- annotation (
- Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{
- 100,100}})),
- Icon(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{100,
- 100}}), graphics={Text(
- extent={{-54,24},{54,-26}},
- lineColor={0,0,255},
- textString="GENROU")}),
- Documentation(info="
-
-
-Reference |
-PSS/E Manual |
-
-
-Last update |
-Unknown |
-
-
-Author |
-Mengjia Zhang,SmarTS Lab, KTH Royal Institute of Technology |
-
-
-Contact |
-luigiv@kth.se |
-
-
-"));
- end GENROU;
-
- model GENROE "ROUND ROTOR GENERATOR MODEL (EXPONENTIAL SATURATION)"
- //Import of dependencies
- import Complex;
- import Modelica.ComplexMath.arg;
- import Modelica.ComplexMath.real;
- import Modelica.ComplexMath.imag;
- import Modelica.ComplexMath.'abs';
- import Modelica.ComplexMath.conj;
- import Modelica.ComplexMath.fromPolar;
- import IslandedOperationControl.OpenIPSL.NonElectrical.Functions.SE_exp;
- import Modelica.Constants.pi;
- import Modelica.ComplexMath.j;
- extends BaseClasses.baseMachine(
- w(start=0),
- EFD(start=efd0),
- XADIFD(start=efd0),
- PMECH(start=pm0),
- ANGLE(start=delta0),
- delta(start=delta0),
- id(start=id0),
- iq(start=iq0),
- ud(start=ud0),
- uq(start=uq0),
- Te(start=pm0));
- //Machine parameters
- parameter Real Xpq "Sub-transient reactance (pu)"
- annotation (Dialog(group="Machine parameters"));
- parameter Real Tpq0 "q-axis transient open-circuit time constant (s)"
- annotation (Dialog(group="Machine parameters"));
- parameter Real Xpp=Xppd "Sub-transient reactance (pu)"
- annotation (Dialog(group="Machine parameters"));
- Real Epd(start=Epd0) "d-axis voltage behind transient reactance (pu)";
- Real Epq(start=Epq0) "q-axis voltage behind transient reactance ";
- Real PSIkd(start=PSIkd0) "d-axis rotor flux linkage (pu)";
- Real PSIkq(start=PSIkq0) "q-axis rotor flux linkage (pu)";
- //State variables
- Real PSId(start=PSId0) "d-axis flux linkage (pu)";
- Real PSIq(start=PSIq0) "q-axis flux linkage (pu)";
- Real PSIppd(start=PSIppd0) "d-axis subtransient flux linkage (pu)";
- Real PSIppq(start=PSIppq0) "q-axis subtransient flux linkage (pu)";
- Real PSIpp "Air-gap flux (pu)";
- Real XadIfd(start=efd0) "d-axis machine field current (pu)";
- Real XaqIlq(start=0) "q-axis Machine field current (pu)";
- protected
- parameter Complex Zs=R_a + j*Xpp "Equivalent impedance";
- parameter Complex VT=V_0*cos(anglev_rad) + j*V_0*sin(anglev_rad)
- "Complex terminal voltage";
- parameter Complex S=p0 + j*q0 "Complex power on machine base";
- parameter Complex It=real(S/VT) - j*imag(S/VT)
- "Complex current, machine base";
- parameter Complex Is=real(It + VT/Zs) + j*imag(It + VT/Zs)
- "Equivalent internal current source";
- parameter Complex PSIpp0=real(Zs*Is) + j*imag(Zs*Is)
- "Sub-transient flux linkage in stator reference frame";
- parameter Real ang_PSIpp0=arg(PSIpp0) "flux angle";
- parameter Real ang_It=arg(It) "current angle";
- parameter Real ang_PSIpp0andIt=ang_PSIpp0 - ang_It "angle difference";
- parameter Real abs_PSIpp0='abs'(PSIpp0)
- "magnitude of sub-transient flux linkage";
- parameter Real dsat=SE_exp(
- abs_PSIpp0,
- S10,
- S12,
- 1,
- 1.2) "To include saturation of during initialization";
- parameter Real a=abs_PSIpp0 + abs_PSIpp0*dsat*(Xq - Xl)/(Xd - Xl);
- parameter Real b=(It.re^2 + It.im^2)^0.5*(Xpp - Xq);
- //Initializion rotor angle position
- parameter Real delta0=atan(b*cos(ang_PSIpp0andIt)/(b*sin(ang_PSIpp0andIt) - a))
- + ang_PSIpp0 "initial rotor angle in radians";
- parameter Complex DQ_dq=cos(delta0) - j*sin(delta0)
- "Parks transformation, from stator to rotor reference frame";
- parameter Complex PSIpp0_dq=real(PSIpp0*DQ_dq) + j*imag(PSIpp0*DQ_dq)
- "Flux linkage in rotor reference frame";
- parameter Complex I_dq=real(It*DQ_dq) - j*imag(It*DQ_dq);
- //"The terminal current in rotor reference frame"
- parameter Real PSIppq0=imag(PSIpp0_dq)
- "q-axis component of the sub-transient flux linkage";
- parameter Real PSIppd0=real(PSIpp0_dq)
- "d-axis component of the sub-transient flux linkage";
- //Initialization of current and voltage components in rotor reference frame (dq-axes).
- parameter Real delta1=delta0*180/pi "rotor angle in degrees";
- parameter Real iq0=real(I_dq) "q-axis component of intitial current";
- parameter Real id0=imag(I_dq) "d-axis component of intitial current";
- parameter Real ud0=(-(PSIppq0 - Xppq*iq0)) - R_a*id0
- "d-axis component of intitial voltage";
- parameter Real uq0=PSIppd0 - Xppd*id0 - R_a*iq0
- "q-axis component of intitial voltage";
- //Initialization current and voltage components in synchronous reference frame.
- parameter Real vr0=V_0*cos(anglev_rad)
- "Real component of initial terminal voltage";
- parameter Real vi0=V_0*sin(anglev_rad)
- "Imaginary component of intitial terminal voltage";
- parameter Real ir0=-CoB*(p0*vr0 + q0*vi0)/(vr0^2 + vi0^2)
- "Real component of initial armature current, systembase";
- parameter Real ii0=-CoB*(p0*vi0 - q0*vr0)/(vr0^2 + vi0^2)
- "Imaginary component of initial armature current, systembase";
- //Initialization mechanical power and field voltage.
- parameter Real pm0=p0 + R_a*iq0*iq0 + R_a*id0*id0
- "Initial mechanical power, machine base";
- parameter Real efd0=dsat*PSIppd0 + PSIppd0 + (Xpd - Xpp)*id0 + (Xd - Xpd)*id0
- "Initial field voltage magnitude";
- parameter Real Epq0=PSIkd0 + (Xpd - Xl)*id0;
- parameter Real Epd0=PSIkq0 - (Xpq - Xl)*iq0;
- //Initialize remaining states:
- parameter Real PSIkd0=(PSIppd0 - (Xpd - Xl)*K3d*id0)/(K3d + K4d)
- "d-axis initial rotor flux linkage";
- parameter Real PSIkq0=((-PSIppq0) + (Xpq - Xl)*K3q*iq0)/(K3q + K4q)
- "q-axis initial rotor flux linkage";
- parameter Real PSId0=PSIppd0 - Xppd*id0;
- parameter Real PSIq0=PSIppq0 - Xppq*iq0;
- // Constants
- parameter Real K1d=(Xpd - Xppd)*(Xd - Xpd)/(Xpd - Xl)^2;
- parameter Real K2d=(Xpd - Xl)*(Xppd - Xl)/(Xpd - Xppd);
- parameter Real K1q=(Xpq - Xppq)*(Xq - Xpq)/(Xpq - Xl)^2;
- parameter Real K2q=(Xpq - Xl)*(Xppq - Xl)/(Xpq - Xppq);
- parameter Real K3d=(Xppd - Xl)/(Xpd - Xl);
- parameter Real K4d=(Xpd - Xppd)/(Xpd - Xl);
- parameter Real K3q=(Xppq - Xl)/(Xpq - Xl);
- parameter Real K4q=(Xpq - Xppq)/(Xpq - Xl);
- parameter Real CoB=M_b/S_b
- "Constant to change from system base to machine base";
- initial equation
- der(Epd) = 0;
- der(Epq) = 0;
- der(PSIkd) = 0;
- der(PSIkq) = 0;
- delta = delta0;
- w = 0;
- equation
- //Interfacing outputs with the internal variables
- XADIFD = XadIfd;
- ISORCE = XadIfd;
- EFD0 = efd0;
- PMECH0 = pm0;
- der(Epq) = 1/Tpd0*(EFD - XadIfd);
- der(Epd) = 1/Tpq0*(-1)*XaqIlq;
- der(PSIkd) = 1/Tppd0*(Epq - PSIkd - (Xpd - Xl)*id);
- der(PSIkq) = 1/Tppq0*(Epd - PSIkq + (Xpq - Xl)*iq);
- Te = PSId*iq - PSIq*id;
- PSId = PSIppd - Xppd*id;
- PSIq = (-PSIppq) - Xppq*iq;
- PSIppd = Epq*K3d + PSIkd*K4d;
- -PSIppq = (-Epd*K3q) - PSIkq*K4q;
- PSIpp = sqrt(PSIppd*PSIppd + PSIppq*PSIppq);
- XadIfd = K1d*(Epq - PSIkd - (Xpd - Xl)*id) + Epq + id*(Xd - Xpd) + SE_exp(
- PSIpp,
- S10,
- S12,
- 1,
- 1.2)*PSIppd;
- XaqIlq = K1q*(Epd - PSIkq + (Xpq - Xl)*iq) + Epd - iq*(Xq - Xpq) - SE_exp(
- PSIpp,
- S10,
- S12,
- 1,
- 1.2)*(-1)*PSIppq*(Xq - Xl)/(Xd - Xl);
- //change sign for PSIppq 3/3
- ud = (-PSIq) - R_a*id;
- uq = PSId - R_a*iq;
- //flow
- annotation (
- Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{
- 100,100}})),
- Icon(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{100,
- 100}}), graphics={Text(
- extent={{-54,24},{54,-26}},
- lineColor={0,0,255},
- textString="GENROE")}),
- Documentation);
- end GENROE;
-
- model GENSAE "SALIENT POLE GENERATOR MODEL (EXPONENTIAL SATURATION)"
- // Import of Dependencies
- import IslandedOperationControl.OpenIPSL.NonElectrical.Functions.SE_exp;
- import Modelica.Constants.pi;
- import Complex;
- import Modelica.ComplexMath.arg;
- import Modelica.ComplexMath.real;
- import Modelica.ComplexMath.imag;
- import Modelica.ComplexMath.'abs';
- import Modelica.ComplexMath.conj;
- import Modelica.ComplexMath.fromPolar;
- import Modelica.ComplexMath.j;
- //Extending machine base
- extends BaseClasses.baseMachine(
- w(start=0),
- EFD(start=efd0),
- XADIFD(start=efd0),
- PMECH(start=pm0),
- ANGLE(start=delta0),
- delta(start=delta0),
- id(start=id0),
- iq(start=iq0),
- ud(start=ud0),
- uq(start=uq0),
- Te(start=pm0));
- Real Epq(start=Epq0) "q-axis voltage behind transient reactance (pu)";
- Real PSIkd(start=PSIkd0) "d-axis rotor flux linkage (pu)";
- Real PSIppq(start=PSIppq0) "q-axis subtransient flux linkage (pu)";
- Real PSIppd(start=PSIppd0) "d-axis subtransient flux linkage (pu)";
- Real PSId(start=PSId0) "d-axis flux linkage (pu)";
- Real PSIq(start=PSIq0) "q-axis flux linkage (pu)";
- Real XadIfd(start=efd0) "Machine field current (pu)";
- protected
- parameter Complex Zs=R_a + j*Xppd "Equivalent impedance";
- parameter Complex Is=real(It + VT/Zs) + j*imag(It + VT/Zs);
- parameter Complex PSIpp0=real(Zs*Is) + j*imag(Zs*Is);
- parameter Complex a=0 + j*(Xq - Xppd);
- parameter Complex Epqp=real(PSIpp0 + a*It) + j*imag(PSIpp0 + a*It);
- parameter Real delta0=arg(Epqp) "rotor angle in radians";
- parameter Complex VT=V_0*cos(anglev_rad) + j*V_0*sin(anglev_rad)
- "Complex terminal voltage";
- parameter Complex S=p0 + j*q0 "Complex power on machine base";
- parameter Complex It=real(S/VT) - j*imag(S/VT) "Terminal current";
- parameter Complex DQ_dq=cos(delta0) - j*sin(delta0) "Parks transformation";
- parameter Complex I_dq=real(It*DQ_dq) - j*imag(It*DQ_dq);
- //Initialization of current and voltage components in synchronous reference frame.
- parameter Real iq0=real(I_dq) "q-axis component of intitial current";
- parameter Real id0=imag(I_dq) "d-axis component of intitial current";
- parameter Real ud0=V_0*cos(anglev_rad - delta0 + pi/2)
- "d-axis component of intitial voltage";
- parameter Real uq0=V_0*sin(anglev_rad - delta0 + pi/2)
- "q-axis component of intitial voltage";
- parameter Complex PSIpp0_dq=real(PSIpp0*DQ_dq) + j*imag(PSIpp0*DQ_dq)
- "Flux linkage in rotor reference frame";
- parameter Real PSIppq0=-imag(PSIpp0_dq)
- "q-axis component of the sub-transient flux linkage";
- parameter Real PSIppd0=real(PSIpp0_dq)
- "d-axis component of the sub-transient flux linkage";
- parameter Real PSIkd0=(PSIppd0 - (Xpd - Xl)*K3d*id0)/(K3d + K4d)
- "d-axis initial rotor flux linkage";
- parameter Real PSId0=PSIppd0 - Xppd*id0;
- parameter Real PSIq0=(-PSIppq0) - Xppq*iq0;
- //Initialization mechanical power and field voltage.
- parameter Real Epq0=uq0 + Xpd*id0 + R_a*iq0;
- parameter Real dsat=SE_exp(
- Epq0,
- S10,
- S12,
- 1,
- 1.2);
- parameter Real efd0=Epq0*(1 + dsat) + (Xd - Xpd)*id0
- "Initial field voltage magnitude";
- parameter Real pm0=p0 + R_a*iq0*iq0 + R_a*id0*id0
- "Initial mechanical power, machine base";
- // Constants
- parameter Real K1d=(Xpd - Xppd)*(Xd - Xpd)/(Xpd - Xl)^2;
- parameter Real K2d=(Xpd - Xl)*(Xppd - Xl)/(Xpd - Xppd);
- parameter Real K3d=(Xppd - Xl)/(Xpd - Xl);
- parameter Real K4d=(Xpd - Xppd)/(Xpd - Xl);
- initial equation
- der(Epq) = 0;
- der(PSIkd) = 0;
- der(PSIppq) = 0;
- delta = delta0;
- w = 0;
- equation
- //Interfacing outputs with the internal variables
- XADIFD = XadIfd;
- PMECH0 = pm0;
- EFD0 = efd0;
- ISORCE = XadIfd;
- der(Epq) = 1/Tpd0*(EFD - XadIfd);
- der(PSIkd) = 1/Tppd0*(Epq - PSIkd - (Xpd - Xl)*id);
- der(PSIppq) = 1/Tppq0*((-PSIppq) + (Xq - Xppq)*iq);
- PSIppd = Epq*K3d + PSIkd*K4d;
- PSId = PSIppd - Xppd*id;
- PSIq = (-PSIppq) - Xppq*iq;
- XadIfd = K1d*(Epq - PSIkd - (Xpd - Xl)*id) + (Xd - Xpd)*id + (SE_exp(
- Epq,
- S10,
- S12,
- 1,
- 1.2) + 1)*Epq;
- Te = PSId*iq - PSIq*id;
- ud = (-PSIq) - R_a*id;
- uq = PSId - R_a*iq;
- //flow, changed from machine base to system bas
- annotation (
- Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{
- 100,100}})),
- Icon(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{100,
- 100}}), graphics={Text(
- extent={{-58,62},{52,-64}},
- lineColor={0,0,255},
- textString="GENSAE")}),
- Documentation(info="
-
-
-Reference |
-PSS/E Manual |
-
-
-Last update |
-Unknown |
-
-
-Author |
-Mengjia Zhang,SmarTS Lab, KTH Royal Institute of Technology |
-
-
-Contact |
-luigiv@kth.se |
-
-
-"));
- end GENSAE;
-
- model GENCLS
- import Modelica.Constants.pi;
- import Modelica.Constants.eps;
- extends OpenIPSL.Electrical.Essentials.pfComponent;
- OpenIPSL.Interfaces.PwPin p(
- vr(start=vr0),
- vi(start=vi0),
- ir(start=ir0),
- ii(start=ii0)) annotation (Placement(visible=true, transformation(
- origin={100,0},
- extent={{-10,-10},{10,10}},
- rotation=0)));
- parameter Real M_b "Machine base power rating (MVA)"
- annotation (Dialog(group="Power flow data"));
- parameter Real H=0 "Inertia constant (s)"
- annotation (Dialog(group="Machine parameters"));
- parameter Real D=0 "Damping coefficient"
- annotation (Dialog(group="Machine parameters"));
- parameter Real R_a=0 "Amature resistance (pu)"
- annotation (Dialog(group="Machine parameters"));
- parameter Real X_d=0.2 "d-axis transient reactance (pu)"
- annotation (Dialog(group="Machine parameters"));
- Real delta(start=delta0, fixed=true) "Rotor angle (deg)";
- Real omega(start=0, fixed=true) "Rotor speed (pu)";
- Real V(start=V_0) "Bus voltage magnitude (pu)";
- Real anglev(start=anglev_rad) "Bus voltage angle (rad)";
- Real eq(start=vf0, fixed=true) "Constant emf behind transient reactance (pu)";
- Real vd(start=vd0) "d-axis voltage (pu)";
- Real vq(start=vq0) "q-axis voltage (pu)";
- Real id(start=id0) "d-axis current (pu)";
- Real iq(start=iq0) "q-axis current (pu)";
- Real P(start=P_0/S_b) "Active power (pu. of S_b)";
- Real Q(start=Q_0/S_b) "Reactive power (pu of S_b)";
- protected
- parameter Real CoB=M_b/S_b "Change from system to machine base";
- parameter Real anglev_rad=angle_0*pi/180 "Initial bus voltage angle (rad)";
- parameter Real p0=P_0/M_b "Initial active power (pu on M_b)";
- parameter Real q0=Q_0/M_b "Initial reactive power in (pu on M_b)";
- parameter Real vr0=V_0*cos(anglev_rad);
- parameter Real vi0=V_0*sin(anglev_rad);
- parameter Real ir0=(p0*vr0 + q0*vi0)/(vr0^2 + vi0^2);
- parameter Real ii0=(p0*vi0 - q0*vr0)/(vr0^2 + vi0^2);
- parameter Real delta0=atan2(vi0 + R_a*ii0 + X_d*ir0, vr0 + R_a*ir0 - X_d*ii0);
- parameter Real vd0=vr0*cos(pi/2 - delta0) - vi0*sin(pi/2 - delta0);
- parameter Real vq0=vr0*sin(pi/2 - delta0) + vi0*cos(pi/2 - delta0);
- parameter Real id0=ir0*cos(pi/2 - delta0) - ii0*sin(pi/2 - delta0);
- parameter Real iq0=ir0*sin(pi/2 - delta0) + ii0*cos(pi/2 - delta0);
- parameter Real vf0=vq0 + R_a*iq0 + X_d*id0;
- equation
- //Swing equation
- //in PSS/E setting to zero is equivalent to removing the swing equation
- if abs(H) > eps then
- der(delta) = omega*2*pi*50;
- der(omega) = (P_0/S_b - P - D*omega)/(2*H);
- else
- der(delta) = 0;
- omega = 0;
- end if;
- // d-q voltage and current equations
- der(eq) = 0 "Classical model assumes constant emf";
- vq = eq - R_a*iq - X_d*id "q-axis voltage equation";
- vd = X_d*iq - R_a*id "d-axis voltage equation";
- // Park's transformation
- [p.ir; p.ii] = -CoB*[sin(delta), cos(delta); -cos(delta), sin(delta)]*[id; iq];
- [p.vr; p.vi] = [sin(delta), cos(delta); -cos(delta), sin(delta)]*[vd; vq];
- //Power injections
- -P = p.vr*p.ir + p.vi*p.ii;
- -Q = p.vi*p.ir - p.vr*p.ii;
- // Terminal voltage magnitude and angle
- V = sqrt(p.vr^2 + p.vi^2);
- anglev = atan2(p.vi, p.vr);
- annotation (
- Icon(coordinateSystem(preserveAspectRatio=false, initialScale=0.1),
- graphics={Text(
- extent={{50,150},{100,110}},
- lineColor={0,0,255},
- lineThickness=0.5,
- fillColor={0,0,255},
- fillPattern=FillPattern.Solid,
- textStyle={TextStyle.Bold},
- textString="INF"),Line(points={{-40,88},{0,68}}, color={0,0,255}),
- Line(points={{-40,70},{0,50}}, color={0,0,255}),Line(points={{-40,50},
- {0,30}}, color={0,0,255}),Line(points={{-40,30},{0,10}}, color={0,0,
- 255}),Line(points={{-40,10},{0,-10}}, color={0,0,255}),Line(points={{
- -40,-10},{0,-30}}, color={0,0,255}),Line(points={{-40,-30},{0,-50}},
- color={0,0,255}),Line(points={{-40,-50},{0,-70}}, color={0,0,255}),
- Line(points={{0,80},{0,-80}}, color={0,0,255}),Line(points={{100,0},{
- 96,0},{0,0}}, color={0,0,255}),Rectangle(extent={{-100,100},{100,-100}},
- lineColor={0,0,255})}),
- Diagram(coordinateSystem(
- preserveAspectRatio=true,
- initialScale=0.1,
- grid={2,2})),
- Documentation(info="
-
-
-Reference |
-PSS/E Manual |
-
-
-Last update |
-Unknown |
-
-
-Author |
-Mengjia Zhang,SmarTS Lab, KTH Royal Institute of Technology |
-
-
-Contact |
-luigiv@kth.se |
-
-
-"));
- end GENCLS;
-
- package BaseClasses
- partial model baseMachine
- import Modelica.Constants.pi;
- import Complex;
- import Modelica.ComplexMath.arg;
- import Modelica.ComplexMath.real;
- import Modelica.ComplexMath.imag;
- import Modelica.ComplexMath.'abs';
- import Modelica.ComplexMath.conj;
- import Modelica.Blocks.Interfaces.*;
- extends OpenIPSL.Electrical.Essentials.pfComponent;
- //Machine parameters
- parameter Real M_b "Machine base power (MVA)"
- annotation (Dialog(group="Power flow data"));
- parameter Real Tpd0 "d-axis transient open-circuit time constant (s)"
- annotation (Dialog(group="Machine parameters"));
- parameter Real Tppd0 "d-axis sub-transient open-circuit time constant (s)"
- annotation (Dialog(group="Machine parameters"));
- parameter Real Tppq0 "q-axis transient open-circuit time constant (s)"
- annotation (Dialog(group="Machine parameters"));
- parameter Real H "Inertia constant (s)"
- annotation (Dialog(group="Machine parameters"));
- parameter Real D "Speed damping"
- annotation (Dialog(group="Machine parameters"));
- parameter Real Xd "d-axis reactance"
- annotation (Dialog(group="Machine parameters"));
- parameter Real Xq "q-axis reactance"
- annotation (Dialog(group="Machine parameters"));
- parameter Real Xpd "d-axis transient reactance"
- annotation (Dialog(group="Machine parameters"));
- parameter Real Xppd "d-axis sub-transient reactance"
- annotation (Dialog(group="Machine parameters"));
- parameter Real Xppq "q-axis sub-transient reactance"
- annotation (Dialog(group="Machine parameters"));
- parameter Real Xl "leakage reactance"
- annotation (Dialog(group="Machine parameters"));
- parameter Real S10 "Saturation factor at 1.0 pu"
- annotation (Dialog(group="Machine parameters"));
- parameter Real S12 "Saturation factor at 1.2 pu"
- annotation (Dialog(group="Machine parameters"));
- parameter Real R_a=0 "amature resistance"
- annotation (Dialog(group="Machine parameters"));
- //Initialization
- OpenIPSL.Interfaces.PwPin p(
- vr(start=vr0),
- vi(start=vi0),
- ir(start=ir0),
- ii(start=ii0)) annotation (Placement(transformation(extent={{90,
- -10},{110,10}})));
- RealOutput SPEED(start=0) "Machine speed deviation from nominal (pu)"
- annotation (Placement(transformation(extent={{100,60},{120,80}})));
- RealInput PMECH "Turbine mechanical power (pu on M_b)"
- annotation (Placement(transformation(extent={{-140,30},{-100,70}})));
- RealOutput PMECH0 "Initial value of machine electrical power (pu on M_b)"
- annotation (Placement(transformation(extent={{100,40},{120,60}})));
- RealOutput ETERM(start=V_0) "Machine terminal voltage (pu)"
- annotation (Placement(transformation(extent={{100,-40},{120,-20}})));
- RealInput EFD "Generator main field voltage (pu)"
- annotation (Placement(transformation(extent={{-140,-70},{-100,-30}})));
- RealOutput EFD0 "Initial generator main field voltage (pu)"
- annotation (Placement(transformation(extent={{100,-60},{120,-40}})));
- RealOutput PELEC(start=p0) "Machine electrical power (pu on M_b)"
- annotation (Placement(transformation(extent={{100,20},{120,40}})));
- RealOutput ISORCE "Machine source current (pu)"
- annotation (Placement(transformation(extent={{100,-80},{120,-60}})));
- RealOutput ANGLE "Machine relative rotor angle (deg.)"
- annotation (Placement(transformation(extent={{100,78},{120,98}})));
- RealOutput XADIFD "Machine field current (pu)" annotation (Placement(
- transformation(
- extent={{-10,-10},{10,10}},
- rotation=0,
- origin={110,-90}), iconTransformation(
- extent={{-8,-8},{8,8}},
- rotation=0,
- origin={108,-90})));
- Real w(start=0) "Machine speed deviation (pu)";
- Real delta "Rotor angle (deg.)";
- Real Vt(start=V_0) "Bus voltage magnitude (pu)";
- Real anglev(start=anglev_rad) "Bus voltage angle (deg.)";
- Real I(start=sqrt(ir0^2 + ii0^2)) "Terminal current magnitude (pu)";
- Real anglei(start=atan2(ii0, ir0)) "Terminal current angle (deg.)";
- Real P(start=P_0/S_b) "Active power (p.u. on S_b)";
- Real Q(start=Q_0/S_b) "Reactive power (p.u. on S_b)";
- Real Te "Electrical torque (pu)";
- Real id "d-axis armature current (pu)";
- Real iq "q-axis armature current (pu)";
- Real ud "d-axis terminal voltage (pu)";
- Real uq "q-axis terminal voltage (pu)";
- protected
- parameter Real w_b=2*pi*fn "System base speed (rad/s)";
- parameter Real anglev_rad=angle_0*pi/180
- "initial value of bus voltage angle in rad";
- parameter Real CoB=M_b/S_b;
- parameter Real vr0=V_0*cos(anglev_rad)
- "Real component of initial terminal voltage";
- parameter Real vi0=V_0*sin(anglev_rad)
- "Imaginary component of intitial terminal voltage";
- parameter Real ir0=-CoB*(p0*vr0 + q0*vi0)/(vr0^2 + vi0^2)
- "Real component of initial armature current, systembase";
- parameter Real ii0=-CoB*(p0*vi0 - q0*vr0)/(vr0^2 + vi0^2)
- "Imaginary component of initial armature current, systembase";
- parameter Real p0=P_0/M_b "initial active power generation in pu machinebase";
- parameter Real q0=Q_0/M_b
- "initial reactive power generation in pu machinebase";
- equation
- //Interfacing outputs with the internal variables
- ANGLE = delta;
- SPEED = w;
- ETERM = Vt;
- PELEC = P/CoB;
- [p.ir; p.ii] = -CoB*[sin(delta), cos(delta); -cos(delta), sin(delta)]*[id; iq];
- [p.vr; p.vi] = [sin(delta), cos(delta); -cos(delta), sin(delta)]*[ud; uq];
- -P = p.vr*p.ir + p.vi*p.ii;
- -Q = p.vi*p.ir - p.vr*p.ii;
- Vt = sqrt(p.vr^2 + p.vi^2);
- anglev = atan2(p.vi, p.vr);
- I = sqrt(p.ii^2 + p.ir^2);
- anglei = atan2(p.ii, p.ir);
- der(w) = ((PMECH - D*w)/(w + 1) - Te)/(2*H);
- der(delta) = w_b*w;
- annotation (
- Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{
- 100,100}})),
- Icon(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{100,
- 100}}), graphics={Rectangle(extent={{-100,100},{100,-100}},
- lineColor={0,0,255}),Text(
- extent={{64,75},{92,65}},
- lineColor={0,0,255},
- lineThickness=0.5,
- textString="SPEED"),Text(
- extent={{60,-66},{92,-76}},
- lineColor={0,0,255},
- lineThickness=0.5,
- textString="ISORCE"),Text(
- extent={{64,-25},{92,-35}},
- lineColor={0,0,255},
- textString="ETERM"),Text(
- extent={{64,94},{92,84}},
- lineColor={0,0,255},
- lineThickness=0.5,
- textString="ANGLE"),Text(
- extent={{58,56},{92,46}},
- lineColor={0,0,255},
- lineThickness=0.5,
- textString="PMECH0"),Text(
- extent={{64,34},{92,24}},
- lineColor={0,0,255},
- lineThickness=0.5,
- textString="PELEC"),Text(
- extent={{72,-46},{92,-56}},
- lineColor={0,0,255},
- lineThickness=0.5,
- textString="EFD0"),Text(
- extent={{56,-86},{92,-96}},
- lineColor={0,0,255},
- lineThickness=0.5,
- textString="XADIFD0"),Text(
- extent={{-84,56},{-44,46}},
- lineColor={0,0,255},
- lineThickness=0.5,
- textString="PMECH0"),Text(
- extent={{-88,-46},{-58,-56}},
- lineColor={0,0,255},
- lineThickness=0.5,
- textString="EFD")}),
- Documentation);
- end baseMachine;
- annotation (Documentation);
- end BaseClasses;
- annotation (Documentation);
- end PSSE;
- annotation (Documentation);
- end Machines;
-
- package Controls
- package PSAT
- package TG "Turbine and its governor (the mathematical models are taken from PSAT)"
- model TGTypeI
- Modelica.Blocks.Interfaces.RealInput w "Rotor speed (pu)" annotation (
- Placement(transformation(extent={{-140,-20},{-100,20}})));
- Modelica.Blocks.Interfaces.RealOutput pm "Mechanical power (pu)" annotation (
- Placement(transformation(extent={{100,-10},{120,10}})));
- parameter Real wref=1 "Speed reference (pu)";
- parameter Real pref "Active power reference (pu)";
- parameter Real R "Droop (pu)";
- parameter Real pmax "Maximum turbine output (pu)";
- parameter Real pmin "Minimum turbine output (pu)";
- parameter Real Ts "Governor time constant (s)";
- parameter Real Tc "Servo time constant (s)";
- parameter Real T3 "Transient gain time constant (s)";
- parameter Real T4 "Power fraction time constant (s)";
- parameter Real T5 "Reheat time constant (s)";
- Real pin "Turbine output (pu)";
- protected
- parameter Real pin0=pref "Initialization";
- parameter Real xg10=pin0 "Initialization";
- parameter Real xg20=(1 - T3/Tc)*xg10 "Initialization";
- parameter Real xg30=(1 - T4/T5)*(xg20 + T3*xg10/Tc) "Initialization";
- Real pinstar;
- Real xg1(start=xg10, fixed=true);
- Real xg2(start=xg20, fixed=true);
- Real xg3(start=xg30, fixed=true);
- equation
- pinstar = pref + (wref - w)/R;
- if pinstar >= pmin and pinstar <= pmax then
- pin = pinstar;
- elseif pinstar > pmax then
- pin = pmax;
- else
- pin = pmin;
- end if;
- der(xg1) = (pin - xg1)/Ts;
- der(xg2) = ((1 - T3/Tc)*xg1 - xg2)/Tc;
- der(xg3) = ((1 - T4/T5)*(xg2 + T3*xg1/Tc) - xg3)/T5;
- pm = xg3 + (xg2 + T3*xg1/Tc)*T4/T5;
- annotation (
- Icon(graphics={ Text(
- extent={{-100,10},{-60,-10}},
- lineColor={0,0,0},
- textString="w"),Text(
- extent={{60,10},{100,-10}},
- lineColor={0,0,0},
- textString="pm"),
- Text(
- extent={{-60,0},{60,-80}},
- lineColor={0,0,255},
- textString="TGTypeI"),
- Rectangle(extent={{-100,100},{100,-100}}, lineColor={0,0,0}),
- Text(
- extent={{-80,80},{80,20}},
- lineColor={0,0,0},
- textString="%name")}),
- Documentation(info="
-
-
-Reference |
-Turbine and Governor - control scheme Type I |
-
-
-Last update |
-2015-10-02 |
-
-
-Author |
-Le Qi, SmarTS Lab, KTH Royal Institute of Technology |
-
-
-Contact |
-luigiv@kth.se |
-
-
-"));
- end TGTypeI;
-
- model TGtypeII "TG Type II"
- Modelica.Blocks.Interfaces.RealInput pm0 "Initial mechanical power (pu)"
- annotation (Placement(
- visible=true,
- transformation(
- origin={0,120},
- extent={{-20,-20},{20,20}},
- rotation=-90),
- iconTransformation(
- origin={0.0,120.0},
- extent={{-20.0,-20.0},{20.0,20.0}},
- rotation=-90)));
- Modelica.Blocks.Interfaces.RealOutput pm "Mechanical power (pu)" annotation (
- Placement(
- visible=true,
- transformation(
- origin={109.815,0},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0),
- iconTransformation(
- origin={110.0,-0.0},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- Modelica.Blocks.Interfaces.RealInput w "Rotor speed (pu)" annotation (
- Placement(
- visible=true,
- transformation(
- origin={-120,5e-06},
- extent={{-20,-20},{20,20}},
- rotation=0),
- iconTransformation(
- origin={-120.0,-0.0},
- extent={{-20.0,-20.0},{20.0,20.0}},
- rotation=0)));
- Modelica.Blocks.Math.Add add1(k2=-1) annotation (Placement(visible=true,
- transformation(
- origin={-50,6.66134e-16},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- Modelica.Blocks.Continuous.TransferFunction transferFunction1(a={Ts,1}, b={T3,
- 1}) annotation (Placement(visible=true, transformation(
- origin={10,4.44089e-16},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- parameter Real wref=1 "Reference speed (pu)";
- parameter Real R=0.2 "Droop (pu)";
- parameter Real pmax0=1 "Maximum turbine output (pu)";
- parameter Real pmin0=0 "Minimum turbine output (pu)";
- parameter Real Ts=0.1 "Governor Time constant (s)";
- parameter Real T3=-0.1 "Transient gain time constant (s)";
- parameter Real S_b=100 "System base power (MVA)"
- annotation (Dialog(group="Power flow data"));
- parameter Real Sn=20 "Nominal power (MVA)";
- Modelica.Blocks.Math.Gain gain1(k=1/Ro) annotation (Placement(visible=true,
- transformation(
- origin={-20,6.66134e-16},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- Modelica.Blocks.Sources.Constant const(k=wref) annotation (Placement(visible=
- true, transformation(
- origin={-90,20},
- extent={{-10,-10},{10,10}},
- rotation=0)));
- Modelica.Blocks.Math.Add add2 annotation (Placement(visible=true,
- transformation(
- origin={50,0},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- Modelica.Blocks.Nonlinear.Limiter limiter1(uMax=pmax, uMin=pmin) annotation (
- Placement(visible=true, transformation(
- origin={80,-5.55112e-16},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- protected
- parameter Real Ro=R*S_b/Sn;
- parameter Real pmax=pmax0*Sn/S_b;
- parameter Real pmin=pmin0*Sn/S_b;
- equation
-
- connect(add2.u1, pm0) annotation (Line(points={{38,6},{32,6},{32,50},{0,50},{0,120}}, color={0,0,127}));
- connect(add1.u1, const.y) annotation (Line(points={{-62,6},{-68,6},{-68,20},{-79,20}}, color={0,0,127}));
- connect(w, add1.u2) annotation (Line(points={{-120,0},{-80,0},{-80,-6},{-62,-6}}, color={0,0,127}));
- connect(add2.u2, transferFunction1.y) annotation (Line(points={{38,-6},{30,-6},{30,0},{21,0}}, color={0,0,127}));
- connect(gain1.y, transferFunction1.u) annotation (Line(points={{-9,0},{-2,0}}, color={0,0,127}));
- connect(add1.y, gain1.u) annotation (Line(points={{-39,0},{-32,0}}, color={0,0,127}));
- connect(add2.y, limiter1.u) annotation (Line(points={{61,0},{68,0}}, color={0,0,127}));
- connect(limiter1.y, pm) annotation (Line(points={{91,0},{109.815,0}}, color={0,0,127}));
- annotation (
- Icon( graphics={Rectangle(lineColor={0,0,0}, extent={{-100,-100},{100,100}}),
- Text(
- origin={0,-40},
- extent={{-60,40},{60,-40}},
- fontName="Arial",
- lineColor={0,0,255},
- textString="TGTypeII"),
- Text(
- origin={0,80},
- fillPattern=FillPattern.Solid,
- extent={{-20,10},{20,-10}},
- textString="pm0"),Text(
- origin={-80,0},
- extent={{-20,10},{20,-10}},
- lineColor={0,0,0},
- textString="w"), Text(
- origin={80,0},
- extent={{-20,10},{20,-10}},
- lineColor={0,0,0},
- textString="pm"),
- Text(
- extent={{-80,80},{80,20}},
- lineColor={0,0,0},
- textString="%name")}),
- Documentation(info="
-
-
-Reference |
-TG Type II, PSAT Manual 2.1.8 |
-
-
-Last update |
-September 2015 |
-
-
-Author |
-Joan Russinol, SmarTS Lab, KTH Royal Institute of Technology |
-
-
-Contact |
-luigiv@kth.se |
-
-
-"));
- end TGtypeII;
-
- model TGTypeIII
- "Hydro Turbine (Linear model) and Governor (Standard model)- control scheme Type 3"
- parameter Real P_0 "Active power (pu)"
- annotation (Dialog(group="Power flow data"));
- parameter Real wref=1 "Reference speed (pu)";
- parameter Real Tg "Pilot valve droop (pu)";
- parameter Real gmax "Maximum gate opening (pu)";
- parameter Real gmin "Minimum gate opening (pu)";
- parameter Real vmax "Maximum gate opening rate (pu)";
- parameter Real vmin "Minimum gate opening rate (pu)";
- parameter Real Tp "Pilot valve time constant (s)";
- parameter Real Tr "Dashpot time constant (s)";
- parameter Real delta "Transient speed droop (p.u./p.u.)";
- parameter Real sigma "Permanent speed droop (p.u./p.u.)";
- parameter Real Tw "Water starting time (s)";
- parameter Real a11 "Deriv. of flow rate vs. turbine head";
- parameter Real a13 "Deriv. of flow rate vs. gate position";
- parameter Real a21 "Deriv. of torque vs. turbine head";
- parameter Real a23 "Deriv. of torque vs. gate position";
- parameter Real int3;
- Real deltaG "Gate position variation (pu)";
- Real G "Gate position (pu)";
- Modelica.Blocks.Continuous.Integrator integrator(initType=Modelica.Blocks.Types.Init.NoInit,
- y_start=0) annotation (Placement(transformation(extent={{-20,-10},{0,10}})));
- Modelica.Blocks.Math.Gain gain(k=1/(Tg*Tp))
- annotation (Placement(transformation(extent={{-140,-10},{-120,10}})));
- Modelica.Blocks.Math.Gain gain1(k=1/Tp) annotation (Placement(transformation(
- extent={{-10,-10},{10,10}},
- rotation=180,
- origin={-76,-30})));
- Modelica.Blocks.Continuous.Integrator integrator1(initType=Modelica.Blocks.Types.Init.NoInit,
- y_start=0)
- annotation (Placement(transformation(extent={{-86,-10},{-66,10}})));
- Modelica.Blocks.Math.Feedback feedback
- annotation (Placement(transformation(extent={{-116,-10},{-96,10}})));
- Modelica.Blocks.Math.Gain gain2(k=delta + sigma) annotation (Placement(
- transformation(
- extent={{-10,-10},{10,10}},
- rotation=180,
- origin={-76,30})));
- Modelica.Blocks.Math.Gain gain3(k=sigma/Tr) annotation (Placement(
- transformation(
- extent={{-10,-10},{10,10}},
- rotation=180,
- origin={-130,-60})));
- Modelica.Blocks.Math.Gain gain5(k=1/Tr) annotation (Placement(transformation(
- extent={{-10,-10},{10,10}},
- rotation=0,
- origin={-74,-90})));
- Modelica.Blocks.Continuous.Integrator integrator2(initType=Modelica.Blocks.Types.Init.NoInit,
- y_start=0) annotation (Placement(transformation(
- extent={{-10,10},{10,-10}},
- rotation=180,
- origin={-76,-60})));
- Modelica.Blocks.Math.Feedback feedback1 annotation (Placement(transformation(
- extent={{-10,10},{10,-10}},
- rotation=180,
- origin={-40,-60})));
- Modelica.Blocks.Math.Gain gain4(k=1/(a11*Tw)) annotation (Placement(
- transformation(
- extent={{-10,-10},{10,10}},
- rotation=180,
- origin={140,-70})));
- Modelica.Blocks.Continuous.Integrator integrator3(initType=Modelica.Blocks.Types.Init.NoInit,
- y_start=int3) annotation (Placement(transformation(
- extent={{-10,-10},{10,10}},
- rotation=0,
- origin={150,-40})));
- Modelica.Blocks.Math.Feedback feedback2 annotation (Placement(transformation(
- extent={{-10,-10},{10,10}},
- rotation=0,
- origin={120,-40})));
- Modelica.Blocks.Math.Gain G6(k=(a11*a23 - a13*a21)/a11)
- annotation (Placement(transformation(extent={{84,-10},{104,10}})));
- Modelica.Blocks.Math.Gain gain7(k=a13*a21/(a11*a11*Tw))
- annotation (Placement(transformation(extent={{84,-50},{104,-30}})));
- Modelica.Blocks.Interfaces.RealInput w "Rotor speed (pu)" annotation (
- Placement(transformation(extent={{-280,-20},{-240,20}}), iconTransformation(extent={{-140,-20},{-100,20}})));
- Modelica.Blocks.Interfaces.RealOutput pm "Mechanical power (pu)" annotation (
- Placement(transformation(extent={{200,-10},{220,10}}), iconTransformation(extent={{100,-10},{120,10}})));
- Modelica.Blocks.Nonlinear.Limiter limiter(uMax=vmax, uMin=vmin)
- annotation (Placement(transformation(extent={{-50,-10},{-30,10}})));
- Modelica.Blocks.Nonlinear.Limiter limiter1(uMax=gmax, uMin=gmin)
- annotation (Placement(transformation(extent={{10,-10},{30,10}})));
- Modelica.Blocks.Math.Add add(k1=+1, k2=-1)
- annotation (Placement(transformation(extent={{-200,-10},{-180,10}})));
- Modelica.Blocks.Math.Add3 add3_1(
- k1=-1,
- k2=1,
- k3=1) annotation (Placement(transformation(extent={{-170,-10},{-150,10}})));
- Modelica.Blocks.Math.Add add1
- annotation (Placement(transformation(extent={{50,-10},{70,10}})));
- Modelica.Blocks.Math.Add add2
- annotation (Placement(transformation(extent={{172,-10},{192,10}})));
- Modelica.Blocks.Sources.Constant const(k=P_0)
- annotation (Placement(transformation(extent={{10,40},{30,60}})));
- Modelica.Blocks.Sources.Constant const1(k=wref)
- annotation (Placement(transformation(extent={{-240,10},{-220,30}})));
- equation
- deltaG = limiter1.y;
- G = add1.y;
- connect(gain1.y, feedback.u2) annotation (Line(
- points={{-87,-30},{-106,-30},{-106,-8}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(feedback.y, integrator1.u) annotation (Line(
- points={{-97,0},{-88,0}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(gain.y, feedback.u1) annotation (Line(
- points={{-119,0},{-114,0}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(gain5.y, feedback1.u2) annotation (Line(
- points={{-63,-90},{-40,-90},{-40,-68}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(feedback1.y, integrator2.u) annotation (Line(
- points={{-49,-60},{-64,-60}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(integrator2.y, gain3.u) annotation (Line(
- points={{-87,-60},{-118,-60}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(gain4.y, feedback2.u2) annotation (Line(
- points={{129,-70},{120,-70},{120,-48}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(feedback2.y, integrator3.u) annotation (Line(
- points={{129,-40},{138,-40}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(gain7.y, feedback2.u1) annotation (Line(
- points={{105,-40},{112,-40}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(gain1.u, integrator1.y) annotation (Line(
- points={{-64,-30},{-58.6,-30},{-58.6,0},{-65,0}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(integrator2.y, gain5.u) annotation (Line(
- points={{-87,-60},{-93.7,-60},{-93.7,-90},{-86,-90}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(integrator3.y, gain4.u) annotation (Line(
- points={{161,-40},{166,-40},{166,-70},{152,-70}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(integrator1.y, limiter.u) annotation (Line(
- points={{-65,0},{-52,0}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(limiter.y, integrator.u) annotation (Line(
- points={{-29,0},{-22,0}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(integrator.y, limiter1.u) annotation (Line(
- points={{1,0},{8,0}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(feedback1.u1, limiter1.y) annotation (Line(
- points={{-32,-60},{36,-60},{36,0},{31,0}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(limiter1.y, gain2.u) annotation (Line(
- points={{31,0},{36,0},{36,30},{-64,30}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(w, add.u2) annotation (Line(
- points={{-260,0},{-219,0},{-219,-6},{-202,-6}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(gain2.y, add3_1.u1) annotation (Line(
- points={{-87,30},{-175.7,30},{-175.7,8},{-172,8}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(add.y, add3_1.u2) annotation (Line(
- points={{-179,0},{-172,0}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(gain3.y, add3_1.u3) annotation (Line(
- points={{-141,-60},{-176.7,-60},{-176.7,-8},{-172,-8}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(add3_1.y, gain.u) annotation (Line(
- points={{-149,0},{-142,0}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(limiter1.y, add1.u2) annotation (Line(
- points={{31,0},{36,0},{36,-6},{48,-6}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(add1.y, G6.u) annotation (Line(
- points={{71,0},{82,0}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(add1.y, gain7.u) annotation (Line(
- points={{71,0},{74.3,0},{74.3,-40},{82,-40}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(G6.y, add2.u1) annotation (Line(
- points={{105,0},{160.9,0},{160.9,6},{170,6}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(integrator3.y, add2.u2) annotation (Line(
- points={{161,-40},{166,-40},{166,-6},{170,-6}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(const.y, add1.u1) annotation (Line(points={{31,50},{43.3,50},{43.3,6},{48,6}},
- color={0,0,127}));
- connect(const1.y, add.u1) annotation (Line(points={{-219,20},{-210,20},{-210,6},{-202,6}},
- color={0,0,127}));
- connect(add2.y, pm) annotation (Line(points={{193,0},{210,0}}, color={0,0,127}));
- annotation (
- Icon(graphics={Rectangle(extent={{-100,100},{100,-100}}, lineColor={0,0,0}),
- Text(
- extent={{-60,0},{60,-80}},
- lineColor={0,0,255},
- textString="TGTypeIII"),Text(
- extent={{-100,10},{-60,-10}},
- lineColor={0,0,0},
- textString="w"), Text(
- extent={{60,10},{100,-10}},
- lineColor={0,0,0},
- textString="pm"),
- Text(
- extent={{-80,80},{80,20}},
- lineColor={0,0,0},
- textString="%name")}),
- Documentation(info="
-
-
-Reference |
-Hydro Turbine (Linear model) and Governor (Standard model) - control scheme Type 3, PSAT Manual |
-
-
-Last update |
-2015-10-02 |
-
-
-Author |
-Tetiana Bogodorova, SmarTS Lab, KTH Royal Institute of Technology |
-
-
-Contact |
-luigiv@kth.se |
-
-
-"), Diagram(coordinateSystem(extent={{-240,-120},{200,80}})));
- end TGTypeIII;
-
- model TGTypeIV
- "Hydro Turbine (Linear model) and Governor (Standard model with PI controller)- control scheme Type 4"
- parameter Real wref "Reference speed (pu)";
- parameter Real Tg "Pilot valve droop (pu)";
- parameter Real gmax "Maximum gate opening (pu)";
- parameter Real gmin "Minimum gate opening (pu)";
- parameter Real vmax "Maxmimum gate opening rate (pu)";
- parameter Real vmin "Maximum gate opening rate (pu)";
- parameter Real Tp "Pilot valve time constant (s)";
- parameter Real Tr "Dashpot time constant (s)";
- parameter Real sigma "Permanent speed droop (p.u./p.u.)";
- parameter Real delta "Transient speed droop (p.u./p.u.)";
- parameter Real Tw "Water starting time (s)";
- parameter Real a11 "Deriv. of flow rate vs. turbine head";
- parameter Real a13 "Deriv. of flow rate vs. gate position";
- parameter Real a21 "Deriv. of torque vs. turbine head";
- parameter Real a23 "Deriv. of torque vs. gate position";
- parameter Real Kp "Proportional droop";
- parameter Real Ki "Integral droop";
- parameter Real Pref;
- Real deltaG "Gate position variation (pu)";
- Real v "Gate opening rate (pu)";
- Modelica.Blocks.Continuous.Integrator integrator3(initType=Modelica.Blocks.Types.Init.NoInit,
- y_start=int3)
- annotation (Placement(transformation(extent={{34,-6},{46,6}})));
- Modelica.Blocks.Math.Gain gain(k=1/(Tg*Tp))
- annotation (Placement(transformation(extent={{-56,-6},{-44,6}})));
- Modelica.Blocks.Math.Gain gain1(k=1/Tp) annotation (Placement(transformation(
- extent={{-6,-6},{6,6}},
- rotation=180,
- origin={-10,-20})));
- Modelica.Blocks.Continuous.Integrator integrator2(initType=Modelica.Blocks.Types.Init.NoInit,
- y_start=int2)
- annotation (Placement(transformation(extent={{-16,-6},{-4,6}})));
- Modelica.Blocks.Math.Feedback feedback
- annotation (Placement(transformation(extent={{-36,-6},{-24,6}})));
- Modelica.Blocks.Math.Gain gain2(k=delta + sigma) annotation (Placement(
- transformation(
- extent={{-6,-6},{6,6}},
- rotation=180,
- origin={-12,20})));
- Modelica.Blocks.Math.Gain gain3(k=delta/Tr) annotation (Placement(
- transformation(
- extent={{-6,-6},{6,6}},
- rotation=180,
- origin={-44,-40})));
- Modelica.Blocks.Math.Gain gain5(k=1/Tr) annotation (Placement(transformation(
- extent={{-6,-6},{6,6}},
- rotation=0,
- origin={-10,-60})));
- Modelica.Blocks.Continuous.Integrator integrator4(initType=Modelica.Blocks.Types.Init.NoInit,
- y_start=int4) annotation (Placement(transformation(
- extent={{-6,6},{6,-6}},
- rotation=180,
- origin={-10,-40})));
- Modelica.Blocks.Math.Feedback feedback1 annotation (Placement(transformation(
- extent={{-6,6},{6,-6}},
- rotation=180,
- origin={10,-40})));
- Modelica.Blocks.Math.Gain gain4(k=1/(a11*Tw)) annotation (Placement(
- transformation(
- extent={{-6,-6},{6,6}},
- rotation=180,
- origin={110,-40})));
- Modelica.Blocks.Continuous.Integrator integrator5(initType=Modelica.Blocks.Types.Init.NoInit,
- y_start=int5) annotation (Placement(transformation(
- extent={{-6,-6},{6,6}},
- rotation=0,
- origin={120,-20})));
- Modelica.Blocks.Math.Feedback feedback2 annotation (Placement(transformation(
- extent={{-6,-6},{6,6}},
- rotation=0,
- origin={100,-20})));
- Modelica.Blocks.Math.Gain G6(k=(a11*a23 - a13*a21)/a11)
- annotation (Placement(transformation(extent={{74,-6},{86,6}})));
- Modelica.Blocks.Math.Gain gain7(k=a13*a21/(a11*a11*Tw))
- annotation (Placement(transformation(extent={{74,-26},{86,-14}})));
- Modelica.Blocks.Interfaces.RealInput w "Rotor speed (pu)" annotation (
- Placement(transformation(extent={{-240,-20},{-200,20}}),
- iconTransformation(
- extent={{-140,-20},{-100,20}})));
- Modelica.Blocks.Interfaces.RealOutput Pm "Mechanical power (pu)" annotation (
- Placement(transformation(extent={{160,-10},{180,10}}),
- iconTransformation(
- extent={{100,-10},{120,10}})));
- Modelica.Blocks.Continuous.Integrator integrator1(initType=Modelica.Blocks.Types.Init.NoInit,
- y_start=int1)
- annotation (Placement(transformation(extent={{-126,-6},{-114,6}})));
- Modelica.Blocks.Math.Gain gain6(k=Ki)
- annotation (Placement(transformation(extent={{-146,-6},{-134,6}})));
- Modelica.Blocks.Math.Gain gain8(k=Kp)
- annotation (Placement(transformation(extent={{-146,14},{-134,26}})));
- Modelica.Blocks.Nonlinear.Limiter limiter(uMax=vmax, uMin=vmin)
- annotation (Placement(transformation(extent={{14,-6},{26,6}})));
- Modelica.Blocks.Nonlinear.Limiter limiter1(uMax=gmax, uMin=gmin)
- annotation (Placement(transformation(extent={{54,-6},{66,6}})));
- Modelica.Blocks.Math.Add add1(k1=+1, k2=-1)
- annotation (Placement(transformation(extent={{-177,-7},{-163,7}})));
- Modelica.Blocks.Math.Add add2
- annotation (Placement(transformation(extent={{-101,-7},{-87,7}})));
- Modelica.Blocks.Math.Add3 add3_1(
- k1=-1,
- k2=+1,
- k3=+1) annotation (Placement(transformation(extent={{-77,-7},{-63,7}})));
- Modelica.Blocks.Math.Add add3
- annotation (Placement(transformation(extent={{144,-6},{156,6}})));
- Modelica.Blocks.Sources.Constant const1(k=wref)
- annotation (Placement(transformation(extent={{-196,4},{-184,16}})));
- protected
- parameter Real int1=sigma*Pref;
- parameter Real int2=0;
- parameter Real int3=Pref;
- parameter Real int4=Tr*Pref;
- parameter Real int5=a13*a21/a11*Pref;
- equation
- deltaG = limiter1.y;
- v = limiter.y;
- connect(gain1.y, feedback.u2) annotation (Line(
- points={{-16.6,-20},{-30,-20},{-30,-4.8}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(feedback.y, integrator2.u) annotation (Line(
- points={{-24.6,0},{-17.2,0}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(gain.y, feedback.u1) annotation (Line(
- points={{-43.4,0},{-34.8,0}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(gain5.y, feedback1.u2) annotation (Line(
- points={{-3.4,-60},{10,-60},{10,-44.8}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(feedback1.y, integrator4.u) annotation (Line(
- points={{4.6,-40},{-2.8,-40}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(integrator4.y, gain3.u) annotation (Line(
- points={{-16.6,-40},{-36.8,-40}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(gain4.y, feedback2.u2) annotation (Line(
- points={{103.4,-40},{100,-40},{100,-24.8}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(feedback2.y, integrator5.u) annotation (Line(
- points={{105.4,-20},{112.8,-20}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(gain7.y, feedback2.u1) annotation (Line(
- points={{86.6,-20},{95.2,-20}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(gain1.u, integrator2.y) annotation (Line(
- points={{-2.8,-20},{2,-20},{2,0},{-3.4,0}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(integrator4.y, gain5.u) annotation (Line(
- points={{-16.6,-40},{-26,-40},{-26,-60},{-17.2,-60}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(integrator5.y, gain4.u) annotation (Line(
- points={{126.6,-20},{131.4,-20},{131.4,-40},{117.2,-40}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(gain6.y, integrator1.u) annotation (Line(
- points={{-133.4,0},{-127.2,0}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(limiter.y, integrator3.u) annotation (Line(
- points={{26.6,0},{32.8,0}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(integrator2.y, limiter.u) annotation (Line(
- points={{-3.4,0},{12.8,0}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(integrator3.y, limiter1.u) annotation (Line(
- points={{46.6,0},{52.8,0}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(limiter1.y, gain2.u) annotation (Line(
- points={{66.6,0},{70,0},{70,20},{-4.8,20}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(limiter1.y, feedback1.u1) annotation (Line(
- points={{66.6,0},{70,0},{70,-40},{14.8,-40}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(add1.y, gain8.u) annotation (Line(
- points={{-162.3,8.88178e-16},{-153.65,8.88178e-16},{-153.65,20},{-147.2,20}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(add1.y, gain6.u) annotation (Line(
- points={{-162.3,8.88178e-16},{-147.2,8.88178e-16},{-147.2,0}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(add1.u2, w) annotation (Line(
- points={{-178.4,-4.2},{-180,-4.2},{-180,0},{-220,0}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(integrator1.y, add2.u2) annotation (Line(
- points={{-113.4,0},{-105.4,0},{-105.4,-4.2},{-102.4,-4.2}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(add2.u1, gain8.y) annotation (Line(
- points={{-102.4,4.2},{-106,4.2},{-106,20},{-133.4,20}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(gain2.y, add3_1.u1) annotation (Line(
- points={{-18.6,20},{-84,20},{-84,5.6},{-78.4,5.6}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(add2.y, add3_1.u2) annotation (Line(
- points={{-86.3,8.88178e-16},{-78.4,8.88178e-16}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(add3_1.u3, gain3.y) annotation (Line(
- points={{-78.4,-5.6},{-84,-5.6},{-84,-40},{-50.6,-40}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(G6.y, add3.u1) annotation (Line(
- points={{86.6,0},{120,0},{120,3.6},{142.8,3.6}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(integrator5.y, add3.u2) annotation (Line(
- points={{126.6,-20},{131.3,-20},{131.3,-3.6},{142.8,-3.6}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(add3.y, Pm) annotation (Line(
- points={{156.6,0},{170,0}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(limiter1.y, G6.u) annotation (Line(
- points={{66.6,0},{72.8,0}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(limiter1.y, gain7.u) annotation (Line(
- points={{66.6,0},{70,0},{70,-20},{72.8,-20}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(const1.y, add1.u1) annotation (Line(points={{-183.4,10},{-182,10},{-182,4},{-178,4},{-178,4.2},{-178.4,4.2}},
- color={0,0,127}));
- connect(add3_1.y, gain.u) annotation (Line(points={{-62.3,0},{-57.2,0}}, color={0,0,127}));
- annotation (
- Icon(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{100,
- 100}}), graphics={Rectangle(extent={{-100,100},{100,-100}}, lineColor={0,0,0}),
- Text(
- extent={{-60,0},{60,-80}},
- lineColor={0,0,255},
- textString="TGTypeIV"),Text(
- origin={-80,0},
- extent={{-20,10},{20,-10}},
- fontName="Arial",
- textString="w",
- lineColor={0,0,0}),
- Text(
- origin={80,0},
- extent={{-20,10},{20,-10}},
- fontName="Arial",
- lineColor={0,0,0},
- textString="pm"),
- Text(
- extent={{-80,80},{80,20}},
- lineColor={0,0,0},
- textString="%name")}),
- Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-200,-80},{160,40}})),
- Documentation(info="
-
-
-Reference |
-Hydro Turbine (Linear model) and Governor (Standard model) - control scheme Type 4, PSAT Manual |
-
-
-Last update |
-2015-10-02 |
-
-
-Author |
-Tetiana Bogodorova, SmarTS Lab, KTH Royal Institute of Technology |
-
-
-Contact |
-luigiv@kth.se |
-
-
-"));
- end TGTypeIV;
-
- model TGTypeV
- "Hydro Turbine (Nonlinear model) and Governor (PI controller combined with servomotor)- control scheme Type 5"
- parameter Real Tg "Servomotor droop (pu)";
- parameter Real gmax "Maximum gate opening (pu)";
- parameter Real gmin "Minimum gate opening (pu)";
- parameter Real vmax "Maximum gate opening rate (pu)";
- parameter Real vmin "Minimum gate opening rate (pu)";
- parameter Real Tp "Pilot valve time constant (s)";
- parameter Real Tw "Water starting time (s)";
- parameter Real Kp "Proportional droop (p.u./p.u.)";
- parameter Real Ki "Integral droop (p.u./p.u.)";
- parameter Real sigma "Permanent speed droop (p.u./p.u.)";
- parameter Real Pref;
- Real G "Gate opening (pu)";
- Modelica.Blocks.Continuous.Integrator integrator(initType=Modelica.Blocks.Types.Init.NoInit,
- y_start=Pref)
- annotation (Placement(transformation(extent={{64,-6},{76,6}})));
- Modelica.Blocks.Math.Gain gain(k=1/Tg, y(start=0))
- annotation (Placement(transformation(extent={{24,-6},{36,6}})));
- Modelica.Blocks.Continuous.Integrator integrator3(initType=Modelica.Blocks.Types.Init.SteadyState,
- y_start=Pref) annotation (Placement(transformation(
- extent={{-6,-6},{6,6}},
- rotation=0,
- origin={190,0})));
- Modelica.Blocks.Math.Gain gain7(k=1/Tw)
- annotation (Placement(transformation(extent={{164,-6},{176,6}})));
- Modelica.Blocks.Math.MultiSum multiSum3(k={-1,1}, nu=2)
- annotation (Placement(transformation(extent={{144,-6},{156,6}})));
- Modelica.Blocks.Interfaces.RealInput w "Rotor speed (pu)" annotation (
- Placement(transformation(extent={{-180,-10},{-160,10}}),
- iconTransformation(
- extent={{-140,-20},{-100,20}})));
- Modelica.Blocks.Interfaces.RealOutput Pm "Power Pm (pu)" annotation (
- Placement(transformation(extent={{220,-6},{232,6}}),iconTransformation(
- extent={{100,-10},{120,10}})));
- Modelica.Blocks.Continuous.Integrator integrator4(initType=Modelica.Blocks.Types.Init.SteadyState,
- y_start=Pref)
- annotation (Placement(transformation(extent={{-36,-6},{-24,6}})));
- Modelica.Blocks.Math.Gain Integral(k=Ki)
- annotation (Placement(transformation(extent={{-56,-6},{-44,6}})));
- Modelica.Blocks.Math.Gain gain9(k=1/Tp)
- annotation (Placement(transformation(extent={{-116,-6},{-104,6}})));
- Modelica.Blocks.Math.MultiSum multiSum6( k={-1,1}, nu=2)
- annotation (Placement(transformation(extent={{-136,-6},{-124,6}})));
- Modelica.Blocks.Math.Gain gain6(k=sigma) annotation (Placement(transformation(
- extent={{-6,-6},{6,6}},
- rotation=180,
- origin={-110,20})));
- Modelica.Blocks.Continuous.Integrator integrator5(initType=Modelica.Blocks.Types.Init.NoInit,
- y_start=0)
- annotation (Placement(transformation(extent={{-76,-6},{-64,6}})));
- Modelica.Blocks.Math.Gain Proportional(k=Kp)
- annotation (Placement(transformation(extent={{-46,-26},{-34,-14}})));
- Modelica.Blocks.Math.Gain gain8(k=1/Tp) annotation (Placement(transformation(
- extent={{-6,-6},{6,6}},
- rotation=180,
- origin={-80,-20})));
- Modelica.Blocks.Math.Division division(y(start=1))
- annotation (Placement(transformation(extent={{108,-6},{120,6}})));
- Modelica.Blocks.Math.Product product1
- annotation (Placement(transformation(extent={{204,-6},{216,6}})));
- Modelica.Blocks.Math.MultiProduct square(nu=2) annotation (Placement(transformation(extent={{124,-6},{136,6}})));
- Modelica.Blocks.Sources.Constant one(k=1) annotation (Placement(transformation(
- extent={{-6,-6},{6,6}},
- rotation=0,
- origin={130,-20})));
- Modelica.Blocks.Interfaces.RealInput pref "Reference power (pu)" annotation (Placement(transformation(extent={{-180,20},{-160,40}}), iconTransformation(extent={{-140,40},{-100,80}})));
- Modelica.Blocks.Math.Feedback p_feedback annotation (Placement(transformation(
- extent={{-6,-6},{6,6}},
- rotation=180,
- origin={-80,20})));
- Modelica.Blocks.Nonlinear.Limiter limiter2(uMax=vmax, uMin=vmin)
- annotation (Placement(transformation(extent={{44,-6},{56,6}})));
- Modelica.Blocks.Nonlinear.Limiter limiter3(uMax=gmax, uMin=gmin)
- annotation (Placement(transformation(extent={{84,-6},{96,6}})));
- Modelica.Blocks.Math.Add add1
- annotation (Placement(transformation(extent={{-15,-5},{-5,5}})));
- Modelica.Blocks.Math.Add add2(k1=+1, k2=-1)
- annotation (Placement(transformation(extent={{4,-6},{16,6}})));
- Modelica.Blocks.Math.Add add3(k1=+1, k2=-1)
- annotation (Placement(transformation(extent={{-95,-5},{-85,5}})));
- Modelica.Blocks.Interfaces.RealInput wref "Reference rotor speed (pu)"
- annotation (Placement(transformation(extent={{-180,-30},{-160,-10}}),
- iconTransformation(extent={{-140,-80},{-100,-40}})));
- Modelica.Blocks.Math.Feedback w_feedback annotation (Placement(transformation(extent={{-152,6},{-140,-6}})));
- equation
- G = limiter3.y;
- connect(division.y, square.u[1]) annotation (Line(
- points={{120.6,0},{122,0},{122,2},{124,2},{124,2.1}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(division.y, square.u[2]) annotation (Line(
- points={{120.6,0},{122,0},{122,-2},{124,-2},{124,-2.1}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(square.y, product1.u1) annotation (Line(
- points={{137.02,0},{140,0},{140,12},{200,12},{200,3.6},{202.8,3.6}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(square.y, multiSum3.u[1]) annotation (Line(
- points={{137.02,0},{144,0},{144,2.1}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(one.y, multiSum3.u[2]) annotation (Line(
- points={{136.6,-20},{140,-20},{140,-2.1},{144,-2.1}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(integrator3.y, division.u1) annotation (Line(
- points={{196.6,0},{200,0},{200,-30},{102,-30},{102,3.6},{106.8,3.6}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(limiter3.y, division.u2) annotation (Line(
- points={{96.6,0},{100,0},{100,-3.6},{106.8,-3.6}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(add1.y, p_feedback.u1) annotation (Line(
- points={{-4.5,0},{0,0},{0,20},{-75.2,20}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(Proportional.y, add1.u2) annotation (Line(
- points={{-33.4,-20},{-20,-20},{-20,-3},{-16,-3}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(integrator4.y, add1.u1) annotation (Line(
- points={{-23.4,0},{-20,0},{-20,3},{-16,3}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(gain8.y, add3.u2) annotation (Line(
- points={{-86.6,-20},{-99,-20},{-99,-3},{-96,-3}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(add3.y, integrator5.u) annotation (Line(
- points={{-84.5,0},{-77.2,0}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(add1.y, add2.u1) annotation (Line(points={{-4.5,0},{0,0},{0,3.6},{2.8,3.6}}, color={0,0,127}));
- connect(pref, p_feedback.u2) annotation (Line(points={{-170,30},{-80,30},{-80,24.8}}, color={0,0,127}));
- connect(wref, w_feedback.u1) annotation (Line(points={{-170,-20},{-154,-20},{-154,0},{-150.8,0}}, color={0,0,127}));
- connect(w, w_feedback.u2) annotation (Line(points={{-170,0},{-156,0},{-156,10},{-146,10},{-146,4.8}}, color={0,0,127}));
- connect(gain6.y, multiSum6.u[1]) annotation (Line(points={{-116.6,20},{-140,20},{-140,2.1},{-136,2.1}}, color={0,0,127}));
- connect(w_feedback.y, multiSum6.u[2]) annotation (Line(points={{-140.6,0},{-136,0},{-136,-2.1}}, color={0,0,127}));
- connect(multiSum6.y, gain9.u) annotation (Line(points={{-122.98,0},{-117.2,0}}, color={0,0,127}));
- connect(gain9.y, add3.u1) annotation (Line(points={{-103.4,0},{-100,0},{-100,3},{-96,3}}, color={0,0,127}));
- connect(gain6.u, p_feedback.y) annotation (Line(points={{-102.8,20},{-85.4,20}}, color={0,0,127}));
- connect(integrator5.y, gain8.u) annotation (Line(points={{-63.4,0},{-60,0},{-60,-20},{-72.8,-20}}, color={0,0,127}));
- connect(integrator5.y, Proportional.u) annotation (Line(points={{-63.4,0},{-60,0},{-60,-20},{-47.2,-20}}, color={0,0,127}));
- connect(integrator5.y, Integral.u) annotation (Line(points={{-63.4,0},{-57.2,0}}, color={0,0,127}));
- connect(Integral.y, integrator4.u) annotation (Line(points={{-43.4,0},{-37.2,0}}, color={0,0,127}));
- connect(limiter3.y, add2.u2) annotation (Line(points={{96.6,0},{100,0},{100,-20},{0,-20},{0,-3.6},{2.8,-3.6}}, color={0,0,127}));
- connect(gain.y, limiter2.u) annotation (Line(points={{36.6,0},{42.8,0}}, color={0,0,127}));
- connect(limiter2.y, integrator.u) annotation (Line(points={{56.6,0},{62.8,0}}, color={0,0,127}));
- connect(integrator.y, limiter3.u) annotation (Line(points={{76.6,0},{82.8,0}}, color={0,0,127}));
- connect(add2.y, gain.u) annotation (Line(points={{16.6,0},{22.8,0}}, color={0,0,127}));
- connect(gain7.y, integrator3.u) annotation (Line(points={{176.6,0},{182.8,0}}, color={0,0,127}));
- connect(multiSum3.y, gain7.u) annotation (Line(points={{157.02,0},{162.8,0}}, color={0,0,127}));
- connect(integrator3.y, product1.u2) annotation (Line(points={{196.6,0},{200,0},{200,-4},{202,-4},{202,-3.6},{202.8,-3.6}}, color={0,0,127}));
- connect(product1.y, Pm) annotation (Line(points={{216.6,0},{226,0}}, color={0,0,127}));
- annotation (
- Icon(coordinateSystem(extent={{-100,-100},{100,100}},preserveAspectRatio=
- false), graphics={Rectangle(extent={{-100,100},{100,-100}}, lineColor={0,0,0}),
- Text(
- extent={{-60,0},{62,-82}},
- lineColor={0,0,255},
- textString="TGTypeV"),Text(
- origin={-80,0},
- extent={{-20,-10},{20,10}},
- textString="w",
- lineColor={0,0,0}),
- Text(
- origin={80,0},
- extent={{-20,-10},{20,10}},
- lineColor={0,0,0},
- textString="pm"), Text(
- origin={-80,62},
- extent={{-20,-10},{20,10}},
- lineColor={0,0,0},
- textString="pref"),Text(
- origin={-80,-60},
- extent={{-20,10},{20,-10}},
- lineColor={0,0,0},
- textString="wref"),
- Text(
- extent={{-60,80},{60,20}},
- lineColor={0,0,0},
- textString="%name")}),
- Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-160,-40},{220,40}})),
- Documentation(info="
-
-
-Reference |
-Hydro Turbine (Linear model) and Governor (Standard model) - control scheme Type 5, PSAT Manual |
-
-
-Last update |
-2015-10-02 |
-
-
-Author |
-Tetiana Bogodorova, SmarTS Lab, KTH Royal Institute of Technology |
-
-
-Contact |
-luigiv@kth.se |
-
-
-"));
- end TGTypeV;
-
- model TGTypeVI
- "Hydro Turbine (Nonlinear model) and Governor (PID controller combined with servomotor)- control scheme Type 6"
- parameter Real gmax "Maximum gate opening (pu)";
- parameter Real gmin "Minimum gate opening (pu)";
- parameter Real vmax "Maximum gate opening rate (pu)";
- parameter Real vmin "Minimum gate opening rate (pu)";
- parameter Real Ta "Pilot valve time constant (s)";
- parameter Real Tw "Water starting time (s)";
- parameter Real beta "Transient speed droop (p.u./p.u.)";
- parameter Real Kp "Proportional droop (p.u./p.u.)";
- parameter Real Ki "Integral droop (p.u./p.u.)";
- parameter Real Kd "Derivative droop (p.u./p.u.)";
- parameter Real Td "Derivative droop time constant (s)";
- parameter Real Rp "Permanent droop (p.u./p.u.)";
- parameter Real Ka;
- parameter Real dref;
- parameter Real po;
- Real G "Gate opening (pu)";
- Modelica.Blocks.Continuous.Integrator integrator(initType=Modelica.Blocks.Types.Init.NoInit,
- y_start=po*(gmax - gmin))
- annotation (Placement(transformation(extent={{-8,14},{4,26}})));
- Modelica.Blocks.Sources.Constant one(k=1) annotation (Placement(transformation(
- extent={{6,6},{-6,-6}},
- rotation=180,
- origin={110,0})));
- Modelica.Blocks.Math.Feedback feedback
- annotation (Placement(transformation(extent={{-176,-36},{-164,-24}})));
- Modelica.Blocks.Continuous.Integrator integrator3(initType=Modelica.Blocks.Types.Init.NoInit,
- y_start=po) annotation (Placement(transformation(
- extent={{6,6},{-6,-6}},
- rotation=180,
- origin={170,20})));
- Modelica.Blocks.Math.MultiSum multiSum3(nu=2, k={1,-1})
- annotation (Placement(transformation(extent={{104,14},{116,26}})));
- Modelica.Blocks.Interfaces.RealOutput Pm "Mechanical power (pu)" annotation (
- Placement(transformation(extent={{200,10},{220,30}}),iconTransformation(
- extent={{100,-10},{120,10}})));
- Modelica.Blocks.Math.Gain gain9(k=Kp)
- annotation (Placement(transformation(extent={{-116,34},{-104,46}})));
- Modelica.Blocks.Math.MultiSum multiSum5( k={1,1,1}, nu=3)
- annotation (Placement(transformation(extent={{-76,14},{-64,26}})));
- Modelica.Blocks.Math.Feedback feedback1
- annotation (Placement(transformation(extent={{-146,14},{-134,26}})));
- Modelica.Blocks.Math.Gain gain6(k=Rp) annotation (Placement(transformation(
- extent={{-6,-6},{6,6}},
- rotation=90,
- origin={-140,0})));
- Modelica.Blocks.Math.Feedback w_fb annotation (Placement(transformation(
- extent={{-6,-6},{6,6}},
- rotation=0,
- origin={-160,20})));
- Modelica.Blocks.Continuous.Integrator integrator5(initType=Modelica.Blocks.Types.Init.NoInit,
- y_start=po*(gmax - gmin))
- annotation (Placement(transformation(extent={{-96,14},{-84,26}})));
- Modelica.Blocks.Math.Gain Proportional(k=beta)
- annotation (Placement(transformation(extent={{64,44},{76,56}})));
- Modelica.Blocks.Math.Gain gain8(k=Ki) annotation (Placement(transformation(
- extent={{-6,-6},{6,6}},
- rotation=0,
- origin={-110,20})));
- Modelica.Blocks.Nonlinear.Limiter limiter(uMax=vmax, uMin=vmin)
- annotation (Placement(transformation(extent={{-26,14},{-14,26}})));
- Modelica.Blocks.Nonlinear.Limiter limiter1(uMax=gmax, uMin=gmin)
- annotation (Placement(transformation(extent={{10,14},{22,26}})));
- Modelica.Blocks.Math.Division division
- annotation (Placement(transformation(extent={{64,14},{76,26}})));
- Modelica.Blocks.Math.Product product1
- annotation (Placement(transformation(extent={{184,14},{196,26}})));
- Modelica.Blocks.Math.MultiProduct square(nu=2) annotation (Placement(transformation(extent={{84,14},{96,26}})));
- Modelica.Blocks.Interfaces.RealInput pe "Active power (pu)" annotation (
- Placement(transformation(extent={{-200,-40},{-180,-20}}),
- iconTransformation(extent={{-140,-50},{-100,-10}})));
- Modelica.Blocks.Continuous.Derivative derivative(k=Kd, T=Td)
- annotation (Placement(transformation(extent={{-106,-6},{-94,6}})));
- Modelica.Blocks.Continuous.TransferFunction transferFunction(a={Ta,1}, b={Ka})
- annotation (Placement(transformation(extent={{-44,14},{-32,26}})));
- Modelica.Blocks.Math.Feedback servo_fb
- annotation (Placement(transformation(extent={{-60,14},{-48,26}})));
- Modelica.Blocks.Math.Gain Gain10(k=1/(gmax - gmin))
- annotation (Placement(transformation(extent={{42,14},{54,26}})));
- Modelica.Blocks.Math.MultiSum multiSum4(nu=2, k={-1,1}) annotation (Placement(
- transformation(
- extent={{6,6},{-6,-6}},
- rotation=180,
- origin={130,20})));
- Modelica.Blocks.Math.Gain gain7(k=1/Tw) annotation (Placement(transformation(
- extent={{6,6},{-6,-6}},
- rotation=180,
- origin={150,20})));
- Modelica.Blocks.Logical.Switch switch1 annotation (Placement(transformation(
- extent={{-4,4},{4,-4}},
- rotation=90,
- origin={-140,-16})));
- Modelica.Blocks.Math.RealToBoolean realToBoolean(threshold=0.5) annotation (
- Placement(transformation(
- extent={{-6,-6},{6,6}},
- rotation=180,
- origin={-130,-40})));
- Modelica.Blocks.Sources.Constant const(k=dref) annotation (Placement(
- transformation(
- extent={{-6,-6},{6,6}},
- rotation=180,
- origin={-110,-40})));
- Modelica.Blocks.Interfaces.RealInput pref "Active power reference (pu)"
- annotation (Placement(transformation(extent={{-200,-60},{-180,-40}}),
- iconTransformation(extent={{-140,-100},{-100,-60}})));
- Modelica.Blocks.Interfaces.RealInput wref "Rotor speed reference (pu)"
- annotation (Placement(transformation(extent={{-200,10},{-180,30}}),
- iconTransformation(extent={{-140,100},{-100,60}})));
- Modelica.Blocks.Interfaces.RealInput we "Rotor speed (pu)" annotation (
- Placement(transformation(extent={{-200,-10},{-180,10}}),
- iconTransformation(
- extent={{-140,10},{-100,50}})));
- equation
- G = Gain10.y;
- connect(division.y, square.u[1]) annotation (Line(
- points={{76.6,20},{80,20},{80,22},{84,22},{84,22.1}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(division.y, square.u[2]) annotation (Line(
- points={{76.6,20},{80,20},{80,18},{84,18},{84,17.9}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(square.y, multiSum3.u[1]) annotation (Line(
- points={{97.02,20},{104,20},{104,22.1}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(product1.y, Pm) annotation (Line(
- points={{196.6,20},{210,20}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(gain8.y, integrator5.u) annotation (Line(
- points={{-103.4,20},{-97.2,20}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(feedback1.y, gain9.u) annotation (Line(
- points={{-134.6,20},{-129,20},{-129,40},{-117.2,40}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(feedback1.y, gain8.u) annotation (Line(
- points={{-134.6,20},{-117.2,20}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(feedback1.y, derivative.u) annotation (Line(
- points={{-134.6,20},{-129,20},{-129,0},{-107.2,0}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(limiter1.y, Gain10.u) annotation (Line(
- points={{22.6,20},{40.8,20}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(Proportional.y, multiSum3.u[2]) annotation (Line(
- points={{76.6,50},{100,50},{100,22},{104,22},{104,17.9}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(multiSum3.y, multiSum4.u[1]) annotation (Line(
- points={{117.02,20},{124,20},{124,22.1}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(one.y, multiSum4.u[2]) annotation (Line(
- points={{116.6,0},{120,0},{120,18},{124,18},{124,17.9}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(multiSum4.y, gain7.u) annotation (Line(
- points={{137.02,20},{142.8,20}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(gain7.y, integrator3.u) annotation (Line(
- points={{156.6,20},{162.8,20}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(multiSum3.y, product1.u1) annotation (Line(
- points={{117.02,20},{120.09,20},{120.09,34},{180,34},{180,23.6},{182.8,23.6}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(switch1.y, gain6.u) annotation (Line(
- points={{-140,-11.6},{-140,-7.2}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(limiter1.y, switch1.u1) annotation (Line(
- points={{22.6,20},{30,20},{30,-26},{-136.8,-26},{-136.8,-20.8}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(w_fb.y, Proportional.u) annotation (Line(
- points={{-154.6,20},{-150,20},{-150,50},{62.8,50}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(integrator3.y, division.u1) annotation (Line(points={{176.6,20},{180,20},{180,-10},{60,-10},{60,23.6},{62.8,23.6}},
- color={0,0,127}));
- connect(limiter1.y, servo_fb.u2) annotation (Line(points={{22.6,20},{30,20},{30,6},{-54,6},{-54,15.2}},
- color={0,0,127}));
- connect(we, w_fb.u2) annotation (Line(points={{-190,0},{-160,0},{-160,15.2}}, color={0,0,127}));
- connect(wref, w_fb.u1) annotation (Line(points={{-190,20},{-164.8,20}}, color={0,0,127}));
- connect(feedback.y, switch1.u3) annotation (Line(points={{-164.6,-30},{-143.2,-30},{-143.2,-20.8}}, color={0,0,127}));
- connect(pe, feedback.u1) annotation (Line(points={{-190,-30},{-174.8,-30}}, color={0,0,127}));
- connect(pref, feedback.u2) annotation (Line(points={{-190,-50},{-170,-50},{-170,-34.8}}, color={0,0,127}));
- connect(switch1.u2, realToBoolean.y) annotation (Line(points={{-140,-20.8},{-140,-40},{-136.6,-40}}, color={255,0,255}));
- connect(realToBoolean.u, const.y) annotation (Line(points={{-122.8,-40},{-116.6,-40}}, color={0,0,127}));
- connect(feedback1.u2, gain6.y) annotation (Line(points={{-140,15.2},{-140,6.6}}, color={0,0,127}));
- connect(w_fb.y, feedback1.u1) annotation (Line(points={{-154.6,20},{-144.8,20}}, color={0,0,127}));
- connect(gain9.y, multiSum5.u[1]) annotation (Line(points={{-103.4,40},{-80,40},{-80,22},{-76,22},{-76,22.8}}, color={0,0,127}));
- connect(integrator5.y, multiSum5.u[2]) annotation (Line(points={{-83.4,20},{-80,20},{-80,20},{-76,20}}, color={0,0,127}));
- connect(derivative.y, multiSum5.u[3]) annotation (Line(points={{-93.4,0},{-80,0},{-80,18},{-76,18},{-76,17.2}}, color={0,0,127}));
- connect(multiSum5.y, servo_fb.u1) annotation (Line(points={{-62.98,20},{-58.8,20}}, color={0,0,127}));
- connect(servo_fb.y, transferFunction.u) annotation (Line(points={{-48.6,20},{-45.2,20}}, color={0,0,127}));
- connect(transferFunction.y, limiter.u) annotation (Line(points={{-31.4,20},{-27.2,20}}, color={0,0,127}));
- connect(limiter.y, integrator.u) annotation (Line(points={{-13.4,20},{-9.2,20}}, color={0,0,127}));
- connect(integrator.y, limiter1.u) annotation (Line(points={{4.6,20},{8.8,20}}, color={0,0,127}));
- connect(Gain10.y, division.u2) annotation (Line(points={{54.6,20},{58,20},{58,16.4},{62.8,16.4}}, color={0,0,127}));
- connect(integrator3.y, product1.u2) annotation (Line(points={{176.6,20},{180,20},{180,16.4},{182.8,16.4}}, color={0,0,127}));
- annotation (
- Icon(coordinateSystem(extent={{-100,-100},{100,100}},preserveAspectRatio=
- false), graphics={Rectangle(extent={{-100,100},{100,-100}}, lineColor={0,0,0}),
- Text(
- extent={{-60,-20},{60,-80}},
- lineColor={0,0,255},
- textString="TGTypeVI"),Text(
- extent={{-100,90},{-60,70}},
- lineColor={0,0,0},
- textString="wref"),Text(
- extent={{-100,40},{-60,20}},
- lineColor={0,0,0},
- textString="we"),Text(
- extent={{-100,-20},{-60,-40}},
- lineColor={0,0,0},
- textString="pe"), Text(
- extent={{-100,-70},{-60,-90}},
- lineColor={0,0,0},
- textString="pref"),Text(
- extent={{60,10},{100,-10}},
- lineColor={0,0,0},
- textString="pm"),
- Text(
- extent={{-60,80},{60,20}},
- lineColor={0,0,0},
- textString="%name")}),
- Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-180,-60},{200,60}})),
- Documentation(info="
-
-
-Reference |
-Hydro Turbine (Linear model) and Governor (Standard model) - control scheme Type 6, PSAT Manual |
-
-
-Last update |
-2015-10-02 |
-
-
-Author |
-Tetiana Bogodorova, SmarTS Lab, KTH Royal Institute of Technology |
-
-
-Contact |
-luigiv@kth.se |
-
-
-"));
- end TGTypeVI;
- annotation (Documentation(info="
-"));
- end TG;
-
- package AVR
- model AVRTypeI "PSAT AVR Type 1"
-
- Modelica.Blocks.Interfaces.RealInput v "Generator termminal voltage (pu)"
- annotation (Placement(transformation(extent={{-140,-80},{-100,-40}}),
- iconTransformation(extent={{-140,-80},{-100,-40}})));
- Modelica.Blocks.Interfaces.RealOutput vf "Filed voltage (pu)" annotation (
- Placement(transformation(
- extent={{-10,-10},{10,10}},
- rotation=0,
- origin={110,0}), iconTransformation(extent={{100,-20},{140,20}})));
- Modelica.Blocks.Interfaces.RealInput vref
- "Reference generator terminal voltage (pu)" annotation (Placement(
- transformation(extent={{-140,40},{-100,80}}), iconTransformation(extent=
- {{-140,40},{-100,80}})));
- parameter Real vrmax=7.57 "Maximum regulator voltage (pu)";
- parameter Real vrmin=0 "Minimum regulator voltage (pu)";
- parameter Real K0=7.04 "Regulator gain, (pu/pu)";
- parameter Real T1=6.67 "First pole (s)";
- parameter Real T2=1 "First zero (s)";
- parameter Real T3=1 "Second pole (s";
- parameter Real T4=1 "Second pole (s)";
- parameter Real Te=0.4 "Field circuit time constant (s)";
- parameter Real Tr=0.05 "Measurement time constant (s)";
- parameter Real Ae=0.0006 "1st ceiling coefficient";
- parameter Real Be=0.9 "2nd ceiling coefficient";
- parameter Real v0=1 "Initialization (pu)";
- protected
- parameter Real vf00(fixed=false) "Initialization";
- parameter Real vr0=vf00 - Ae*Modelica.Math.exp(Be*abs(vf00)) "Initialization";
- public
- Modelica.Blocks.Interfaces.RealOutput vref0 "Voltage reference at t=0 (pu)"
- annotation (Placement(transformation(
- extent={{-10,-10},{10,10}},
- rotation=90,
- origin={0,110}), iconTransformation(
- extent={{-20,-20},{20,20}},
- rotation=90,
- origin={0,120})));
- Modelica.Blocks.Interfaces.RealInput vf0
- "Reference generator terminal voltage (pu)" annotation (Placement(
- transformation(
- extent={{-20,-20},{20,20}},
- rotation=90,
- origin={0,-112}), iconTransformation(
- extent={{-20,-20},{20,20}},
- rotation=90,
- origin={0,-120})));
- Modelica.Blocks.Math.Feedback feedback
- annotation (Placement(transformation(extent={{26,10},{46,-10}})));
- Modelica.Blocks.Continuous.FirstOrder firstOrder(
- y_start=vf00,
- initType=Modelica.Blocks.Types.Init.InitialOutput,
- k=1,
- T=Te) annotation (Placement(transformation(extent={{52,-10},{72,10}})));
- NonElectrical.Nonlinear.CeilingBlock ceilingBlock
- annotation (Placement(transformation(extent={{70,30},{50,50}})));
- Modelica.Blocks.Continuous.FirstOrder firstOrder2(
- k=1,
- T=Tr,
- initType=Modelica.Blocks.Types.Init.InitialOutput,
- y_start=v0)
- annotation (Placement(transformation(extent={{-90,-70},{-70,-50}})));
- Modelica.Blocks.Math.Feedback feedback2
- annotation (Placement(transformation(extent={{-70,-10},{-50,10}})));
- Modelica.Blocks.Continuous.TransferFunction transferFunction(
- b={(K0*T2*T4),K0*(T2 + T4),K0},
- a={(T1*T3),(T1 + T3),1},
- initType=Modelica.Blocks.Types.Init.InitialOutput,
- y_start=vr0)
- annotation (Placement(transformation(extent={{-40,-10},{-20,10}})));
- Modelica.Blocks.Nonlinear.Limiter limiter(uMax=vrmax, uMin=vrmin)
- annotation (Placement(transformation(extent={{-8,-10},{12,10}})));
- initial algorithm
- vf00 := vf0;
- algorithm
- vref0 := v0 + (vr0/K0);
-
- equation
- connect(firstOrder.y, vf)
- annotation (Line(points={{73,0},{88,0},{110,0}}, color={0,0,127}));
- connect(ceilingBlock.u, vf) annotation (Line(points={{72,40},{80,40},{80,0},{
- 110,0}}, color={0,0,127}));
- connect(ceilingBlock.y, feedback.u2)
- annotation (Line(points={{49,40},{36,40},{36,8}}, color={0,0,127}));
- connect(v, firstOrder2.u) annotation (Line(points={{-120,-60},{-106,-60},{-92,
- -60}}, color={0,0,127}));
- connect(feedback2.u2, firstOrder2.y) annotation (Line(points={{-60,-8},{-60,-8},
- {-60,-60},{-69,-60}}, color={0,0,127}));
- connect(feedback2.u1, vref) annotation (Line(points={{-68,0},{-80,0},{-80,60},
- {-120,60}}, color={0,0,127}));
- connect(feedback.y, firstOrder.u)
- annotation (Line(points={{45,0},{47.5,0},{50,0}}, color={0,0,127}));
- connect(feedback2.y, transferFunction.u)
- annotation (Line(points={{-51,0},{-46.5,0},{-42,0}}, color={0,0,127}));
- connect(transferFunction.y, limiter.u)
- annotation (Line(points={{-19,0},{-14.5,0},{-10,0}}, color={0,0,127}));
- connect(limiter.y, feedback.u1)
- annotation (Line(points={{13,0},{28,0}}, color={0,0,127}));
- annotation (
- Diagram(coordinateSystem(
- extent={{-100,-100},{100,100}},
- initialScale=0.1,
- preserveAspectRatio=false)),
- Icon(coordinateSystem(
- extent={{-100,-100},{100,100}},
- initialScale=0.1,
- preserveAspectRatio=false), graphics={Rectangle(
- extent={{-100,100},{100,-100}},
- lineColor={0,0,255},
- fillColor={255,255,255},
- fillPattern=FillPattern.Solid),Text(
- extent={{-90,80},{-50,40}},
- lineColor={0,0,255},
- textString="vref"),Text(
- extent={{-100,-40},{-60,-70}},
- lineColor={0,0,255},
- textString="v"),Text(
- extent={{60,20},{100,-20}},
- lineColor={0,0,255},
- textString="vf"),Text(
- extent={{-40,40},{40,-40}},
- lineColor={0,0,255},
- textString="AVR1"),Text(
- extent={{16,-60},{56,-100}},
- lineColor={0,0,255},
- textString="vf0
-"), Text( extent={{2,102},{42,62}},
- lineColor={0,0,255},
- textString="vref0")}),
- Documentation(info="
-
-
-Reference |
-AVR Type II, PSAT Manual 2.1.8 |
-
-
-Last update |
-September 2015 |
-
-
-Author |
-Joan Russinol, SmarTS Lab, KTH Royal Institute of Technology |
-
-
-Contact |
-luigiv@kth.se |
-
-
-"));
- end AVRTypeI;
-
- model AVRTypeII "PSAT AVR Type 2"
-
- Modelica.Blocks.Interfaces.RealInput v "Generator termminal voltage (pu)"
- annotation (Placement(transformation(extent={{-140,-80},{-100,-40}}),
- iconTransformation(extent={{-140,-80},{-100,-40}})));
- Modelica.Blocks.Interfaces.RealOutput vf "Filed voltage (pu)" annotation (
- Placement(transformation(
- extent={{-10,-10},{10,10}},
- rotation=0,
- origin={110,0}), iconTransformation(extent={{100,-20},{140,20}})));
- Modelica.Blocks.Interfaces.RealInput vref
- "Reference generator terminal voltage (pu)" annotation (Placement(
- transformation(extent={{-140,40},{-100,80}}), iconTransformation(extent=
- {{-140,40},{-100,80}})));
- parameter Modelica.SIunits.PerUnit vrmin=-5 "Minimum regulator voltage (pu)";
- parameter Modelica.SIunits.PerUnit vrmax=5 "Maximum regulator voltage (pu)";
- parameter Real Ka=100 "Amplifier gain (pu/pu)";
- parameter Modelica.SIunits.Time Ta=0.5 "Amplifier time constant (s)";
- parameter Real Kf=0.15 "Stabilizer gain (pu/pu)";
- parameter Modelica.SIunits.Time Tf=0.1 "Stabilizer time constant (s)";
- parameter Real Ke=0 "Field circuit integral deviation (pu/pu)";
- parameter Modelica.SIunits.Time Te=0.2 "Field circuit time constant (s)";
- parameter Modelica.SIunits.Time Tr=0.001 "Measurement time constant (s)";
- parameter Real Ae=0.0006 "1st ceiling coefficient";
- parameter Real Be=0.9 "2nd ceiling coefficient";
- parameter Modelica.SIunits.PerUnit v0=1 "Initial measured voltage";
- protected
- parameter Modelica.SIunits.PerUnit vfstate=vr10 - (Ae*Modelica.Math.exp(Be*
- abs(vf00))*vf00);
- parameter Modelica.SIunits.PerUnit vf00(fixed=false) "Initialization of vf";
- parameter Modelica.SIunits.PerUnit vr10=Ke*vf00 + Ae*Modelica.Math.exp(Be*abs(
- vf00))*vf00 "Initialization";
- parameter Modelica.SIunits.PerUnit vr20=-vf00*Kf/Tf "Initialization";
- public
- Modelica.Blocks.Interfaces.RealOutput vref0 "Voltage reference at t=0 (pu)"
- annotation (Placement(transformation(
- extent={{-10,-10},{10,10}},
- rotation=90,
- origin={0,110}), iconTransformation(
- extent={{-20,-20},{20,20}},
- rotation=90,
- origin={0,120})));
- Modelica.Blocks.Interfaces.RealInput vf0
- "Reference generator terminal voltage (pu)" annotation (Placement(
- transformation(
- extent={{-20,-20},{20,20}},
- rotation=90,
- origin={0,-112}), iconTransformation(
- extent={{-20,-20},{20,20}},
- rotation=90,
- origin={0,-120})));
- Modelica.Blocks.Math.Feedback feedback
- annotation (Placement(transformation(extent={{30,10},{50,-10}})));
- Modelica.Blocks.Continuous.TransferFunction ExcitationSystem(
- y_start=vf00,
- a={Te,Ke},
- x_start={vfstate},
- initType=Modelica.Blocks.Types.Init.InitialOutput)
- annotation (Placement(transformation(extent={{52,-10},{72,10}})));
- NonElectrical.Nonlinear.CeilingBlock ceilingBlock(Ae=Ae, Be=Be)
- annotation (Placement(transformation(extent={{72,30},{52,50}})));
- Modelica.Blocks.Continuous.Derivative derivativeBlock(
- y_start=0,
- initType=Modelica.Blocks.Types.Init.SteadyState,
- T=Tf,
- x_start=vf00,
- k=Kf) annotation (Placement(transformation(extent={{72,-50},{52,-30}})));
- Modelica.Blocks.Math.Feedback feedback1
- annotation (Placement(transformation(extent={{-50,-10},{-30,10}})));
- Modelica.Blocks.Continuous.FirstOrder firstOrder2(
- k=1,
- T=Tr,
- y_start=v0,
- initType=Modelica.Blocks.Types.Init.SteadyState) annotation (Placement(
- transformation(
- extent={{-10,-10},{10,10}},
- rotation=90,
- origin={-60,-34})));
- Modelica.Blocks.Math.Feedback Verr
- annotation (Placement(transformation(extent={{-70,-10},{-50,10}})));
- NonElectrical.Continuous.SimpleLagLim simpleLagLim(
- outMax=vrmax,
- outMin=vrmin,
- K=Ka,
- T=Ta,
- y_start=vr10)
- annotation (Placement(transformation(extent={{-10,-10},{10,10}})));
- initial algorithm
- vf00 := vf0;
- algorithm
- vref0 := v0 + vr10/Ka;
-
- equation
- connect(ExcitationSystem.y, vf)
- annotation (Line(points={{73,0},{88,0},{110,0}}, color={0,0,127}));
- connect(ceilingBlock.y, feedback.u2)
- annotation (Line(points={{51,40},{40,40},{40,8}}, color={0,0,127}));
- connect(v, firstOrder2.u) annotation (Line(points={{-120,-60},{-60,-60},{-60,
- -46}}, color={0,0,127}));
- connect(Verr.u2, firstOrder2.y)
- annotation (Line(points={{-60,-8},{-60,-23}}, color={0,0,127}));
- connect(Verr.y, feedback1.u1)
- annotation (Line(points={{-51,0},{-48,0}}, color={0,0,127}));
- connect(Verr.u1, vref) annotation (Line(points={{-68,0},{-80,0},{-80,60},{-120,
- 60}}, color={0,0,127}));
- connect(feedback.y, ExcitationSystem.u)
- annotation (Line(points={{49,0},{49,0},{50,0}}, color={0,0,127}));
- connect(ceilingBlock.u, vf) annotation (Line(points={{74,40},{80,40},{80,0},{
- 110,0}}, color={0,0,127}));
- connect(derivativeBlock.u, vf) annotation (Line(points={{74,-40},{86,-40},{86,
- 0},{110,0}}, color={0,0,127}));
- connect(feedback1.u2, derivativeBlock.y) annotation (Line(points={{-40,-8},{-40,
- -8},{-40,-40},{51,-40}}, color={0,0,127}));
- connect(feedback1.y, simpleLagLim.u)
- annotation (Line(points={{-31,0},{-12,0}}, color={0,0,127}));
- connect(simpleLagLim.y, feedback.u1)
- annotation (Line(points={{11,0},{11,0},{32,0}}, color={0,0,127}));
- annotation (
- Diagram(coordinateSystem(
- extent={{-100,-100},{100,100}},
- initialScale=0.1,
- preserveAspectRatio=false), graphics={Text(
- extent={{32,-28},{46,-36}},
- lineColor={28,108,200},
- textString="vr2"),Text(
- extent={{-2,0},{-8,12}},
- lineColor={28,108,200},
- textString="vr1"),Text(
- extent={{-72,-14},{-64,-20}},
- lineColor={28,108,200},
- textString="Vm"),Text(
- extent={{24,12},{30,2}},
- lineColor={28,108,200},
- textString="vr")}),
- Icon(coordinateSystem(
- extent={{-100,-100},{100,100}},
- initialScale=0.1,
- preserveAspectRatio=false), graphics={Rectangle(
- extent={{-100,100},{100,-100}},
- lineColor={0,0,255},
- fillColor={255,255,255},
- fillPattern=FillPattern.Solid),Text(
- extent={{-90,80},{-50,40}},
- lineColor={0,0,255},
- textString="vref"),Text(
- extent={{-100,-40},{-60,-70}},
- lineColor={0,0,255},
- textString="v"),Text(
- extent={{60,20},{100,-20}},
- lineColor={0,0,255},
- textString="vf"),Text(
- extent={{-40,40},{40,-40}},
- lineColor={0,0,255},
- textString="AVR2"),Text(
- extent={{16,-60},{56,-100}},
- lineColor={0,0,255},
- textString="vf0
-"), Text( extent={{2,102},{42,62}},
- lineColor={0,0,255},
- textString="vref0")}),
- Documentation(info="
-
-
-Reference |
-AVR Type II, PSAT Manual 2.1.8 |
-
-
-Last update |
-September 2015 |
-
-
-Author |
-Joan Russinol, SmarTS Lab, KTH Royal Institute of Technology |
-
-
-Contact |
-luigiv@kth.se |
-
-
-"));
- end AVRTypeII;
-
- model AVRtypeIII
- parameter Real vfmax=5;
- parameter Real vfmin=-5;
- parameter Real K0=20 "regulator gain";
- parameter Real T2=0.1 "regulator pole";
- parameter Real T1=0.45 "Regulator zero";
- parameter Real Te=0.1 "Field circuit time constant";
- parameter Real Tr=0.0015 "Measurement time constant";
- Real vm;
- Real vr;
- Real vf1;
- Modelica.Blocks.Nonlinear.Limiter limiter1(uMax=vfmax, uMin=vfmin)
- annotation (Placement(visible=true, transformation(
- origin={5,0},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- Modelica.Blocks.Interfaces.RealInput v(start=1) annotation (Placement(
- visible=true,
- transformation(
- origin={-119.972,50},
- extent={{-20.0,-20.0},{20.0,20.0}},
- rotation=0),
- iconTransformation(
- origin={-110,60},
- extent={{-10,-10},{10,10}},
- rotation=0)));
- Modelica.Blocks.Interfaces.RealOutput vf annotation (Placement(
- visible=true,
- transformation(
- origin={130,0},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0),
- iconTransformation(
- origin={130,0},
- extent={{-10,-10},{10,10}},
- rotation=0)));
- Modelica.Blocks.Interfaces.RealInput vs annotation (Placement(transformation(
- extent={{-140,-82},{-100,-42}}), iconTransformation(extent={{-120,-70},
- {-100,-50}})));
- Modelica.Blocks.Interfaces.RealInput vf0(start=1) annotation (Placement(
- visible=true,
- transformation(
- origin={0.028,120},
- extent={{-20.0,-20.0},{20.0,20.0}},
- rotation=-90),
- iconTransformation(
- origin={0,110},
- extent={{-10,-10},{10,10}},
- rotation=-90)));
- protected
- parameter Real vref(fixed=false);
- parameter Real s0(fixed=false);
- initial equation
- vref = v;
- s0 = vs;
- vf1 = vf0;
- vm = v;
- vr = K0*(1 - T1/T2)*(vref + vs - vm);
- equation
- der(vm) = (v - vm)/Tr;
- der(vr) = (K0*(1 - T1/T2)*(vref + vs - vm) - vr)/T2;
- der(vf1) = ((vr + K0*(T1/T2)*(vref + vs - vm) + vf0)*(1 + s0*(v/vm - 1)) -
- vf1)/Te;
- limiter1.u = vf1;
- limiter1.y = vf;
- annotation (
- Icon(coordinateSystem(preserveAspectRatio=false, extent={{-120,-120},{120,
- 120}}), graphics={Rectangle(
- extent={{-120,120},{120,-120}},
- lineColor={0,0,255},
- fillColor={255,255,255},
- fillPattern=FillPattern.Solid),Text(
- extent={{-104,72},{-72,50}},
- lineColor={0,0,255},
- textString="v"),Text(
- extent={{-100,-48},{-68,-70}},
- lineColor={0,0,255},
- textString="vs"),Text(
- extent={{88,10},{120,-12}},
- lineColor={0,0,255},
- textString="vf"),Text(
- extent={{-34,36},{42,-24}},
- lineColor={0,0,255},
- textString="AVRTypeIII"),Text(
- extent={{-16,100},{16,78}},
- lineColor={0,0,255},
- textString="vf0")}),
- Documentation(info="
-
-
-Reference |
-AVR Type III, PSAT Manual 2.1.8 |
-
-
-Last update |
-September 2015 |
-
-
-Author |
-Joan Russinol, SmarTS Lab, KTH Royal Institute of Technology |
-
-
-Contact |
-luigiv@kth.se |
-
-
-"), Diagram(coordinateSystem(extent={{-120,-120},{120,120}})));
- end AVRtypeIII;
- annotation (Documentation);
- end AVR;
-
- package OEL
- model OEL "PSATs Over-Excitation Limiter"
- outer OpenIPSL.Electrical.SystemBase SysData;
- Modelica.Blocks.Interfaces.RealInput v "Generator terminal voltage (pu)"
- annotation (Placement(transformation(extent={{-112,50},{-92,70}}),
- iconTransformation(extent={{-104,48},{-80,72}})));
- Modelica.Blocks.Interfaces.RealInput p "Active power (pu)" annotation (
- Placement(transformation(extent={{-112,-10},{-92,10}}),
- iconTransformation(extent={{-104,8},{-80,32}})));
- Modelica.Blocks.Interfaces.RealInput q "Reactive power (pu)" annotation (
- Placement(transformation(extent={{-112,-70},{-92,-50}}),
- iconTransformation(extent={{-104,-32},{-80,-8}})));
- FieldCurrent field_current(xd=Z_MBtoSB*xd, xq=Z_MBtoSB*xq)
- annotation (Placement(transformation(extent={{-40,-32},{-20,-8}})));
- Modelica.Blocks.Interfaces.RealOutput v_ref annotation (Placement(
- transformation(extent={{94,-10},{114,10}}), iconTransformation(extent={
- {92,-12},{116,12}})));
- parameter Modelica.SIunits.Time T0=10 "Integrator time constant (s)";
- parameter Modelica.SIunits.PerUnit xd
- "d-axis estimated generator reactance (pu, machine base)";
- parameter Modelica.SIunits.PerUnit xq
- "q-axis estimated generator reactance (pu, machine base)";
- parameter Modelica.SIunits.PerUnit if_lim
- "Maximum field current (pu, system base)";
- parameter Modelica.SIunits.PerUnit vOEL_max
- "Maximum output signal (pu, machine base)";
- parameter OpenIPSL.Types.ApparentPowerMega Sn=SysData.S_b
- "Power rating (MVA)"
- annotation (Dialog(group="Machine parameters"));
- parameter OpenIPSL.Types.VoltageKilo Vn=V_b "Voltage rating (kV)"
- annotation (Dialog(group="Machine parameters"));
- parameter OpenIPSL.Types.VoltageKilo V_b=400
- "Base voltage of the bus (kV)";
- protected
- parameter Real Z_MBtoSB=(SysData.S_b*Vn^2)/(Sn*V_b^2)
- "Z(machine base) -> Z(system base)";
- parameter Real I_MBtoSB=(Sn*V_b)/(SysData.S_b*Vn)
- "I(machine base) -> I(system base)";
- public
- Modelica.Blocks.Math.Feedback add
- annotation (Placement(transformation(extent={{-10,-30},{10,-10}})));
- Modelica.Blocks.Sources.Constant currentLimit(k=if_lim) annotation (Placement(
- transformation(
- extent={{-10,-10},{10,10}},
- rotation=90,
- origin={0,-60})));
- Modelica.Blocks.Continuous.LimIntegrator limIntegrator(
- k=1/T0,
- outMax=vOEL_max,
- outMin=0,
- strict=true)
- annotation (Placement(transformation(extent={{22,-30},{42,-10}})));
- Modelica.Blocks.Interfaces.RealInput v_ref0 "Generator terminal voltage (pu)"
- annotation (Placement(transformation(
- extent={{-10,-10},{10,10}},
- rotation=-90,
- origin={0,110}), iconTransformation(
- extent={{-12,-12},{12,12}},
- rotation=-90,
- origin={-2,112})));
- Modelica.Blocks.Math.Feedback difference annotation (Placement(transformation(
- extent={{-10,-10},{10,10}},
- rotation=0,
- origin={80,0})));
- equation
- connect(field_current.ifield, add.u1)
- annotation (Line(points={{-19,-20},{-19,-20},{-8,-20}}, color={0,0,127}));
- connect(currentLimit.y, add.u2) annotation (Line(points={{8.88178e-016,-49},{
- 8.88178e-016,-38},{8.88178e-016,-28},{0,-28}}, color={0,0,127}));
- connect(v_ref, difference.y)
- annotation (Line(points={{104,0},{89,0}}, color={0,0,127}));
- connect(field_current.v, v) annotation (Line(points={{-40,-12.8},{-60,-12.8},
- {-60,60},{-102,60}},color={0,0,127}));
- connect(limIntegrator.y, difference.u2) annotation (Line(points={{43,-20},{44,
- -20},{80,-20},{80,-8}}, color={0,0,127}));
- connect(difference.u1, v_ref0) annotation (Line(points={{72,0},{72,0},{40,0},
- {40,60},{0,60},{0,110}},color={0,0,127}));
- connect(p, field_current.p) annotation (Line(points={{-102,0},{-102,0},{-80,0},
- {-80,-20},{-40,-20}}, color={0,0,127}));
- connect(q, field_current.q) annotation (Line(points={{-102,-60},{-60,-60},{-60,
- -27.2},{-40,-27.2}}, color={0,0,127}));
- connect(add.y, limIntegrator.u)
- annotation (Line(points={{9,-20},{9,-20},{20,-20}}, color={0,0,127}));
- annotation (
- Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{
- 100,100}})),
- Icon(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{100,
- 100}}), graphics={Rectangle(extent={{-100,100},{100,-100}},
- lineColor={0,0,255}),Text(
- extent={{-88,82},{-50,46}},
- lineColor={0,0,255},
- fillPattern=FillPattern.Solid,
- textString="v"),Text(
- extent={{-84,42},{-50,8}},
- lineColor={0,0,255},
- fillPattern=FillPattern.Solid,
- textString="p"),Text(
- extent={{-82,-2},{-54,-36}},
- lineColor={0,0,255},
- fillPattern=FillPattern.Solid,
- textString="q"),Text(
- extent={{10,98},{46,66}},
- lineColor={0,0,255},
- fillPattern=FillPattern.Solid,
- textString="vref0"),Text(
- extent={{60,-4},{94,-38}},
- lineColor={0,0,255},
- fillPattern=FillPattern.Solid,
- textString="v_ref"),Text(
- extent={{-26,38},{36,-40}},
- lineColor={0,0,255},
- fillPattern=FillPattern.Solid,
- textString="OXL")}),
- Documentation(info="
-
-
-Reference |
-Over Excitation Limiter, PSAT manual |
-
-
-Last update |
-2015-10-02 |
-
-
-Author |
-Le Qi, SmarTS Lab, KTH Royal Institute of Technology |
-
-
-Contact |
-luigiv@kth.se |
-
-
-"));
- end OEL;
-
- model FieldCurrent
- "Estimates the field current from P,Q,V and the d- and q-axis reactances"
-
- Modelica.Blocks.Interfaces.RealInput v "generator terminal voltage (pu)"
- annotation (Placement(transformation(extent={{-70,30},{-50,50}}),
- iconTransformation(extent={{-116,43},{-84,77}})));
- Modelica.Blocks.Interfaces.RealInput p "active power (pu)" annotation (
- Placement(transformation(extent={{-70,-10},{-50,10}}), iconTransformation(
- extent={{-117,-17},{-83,17}})));
- Modelica.Blocks.Interfaces.RealInput q "reactive power (pu)" annotation (
- Placement(transformation(extent={{-70,-50},{-50,-30}}),
- iconTransformation(extent={{-117,-77},{-83,-43}})));
- Modelica.Blocks.Interfaces.RealOutput ifield "estimated field current (pu)"
- annotation (Placement(transformation(extent={{96,-10},{116,10}}),
- iconTransformation(extent={{94,-17},{126,17}})));
- parameter Real xd;
- parameter Real xq;
- protected
- Real gamma_p;
- Real gamma_q;
- equation
- gamma_p = xq*p/v;
- gamma_q = xq*q/v;
- ifield = sqrt((v + gamma_q)^2 + p^2) + ((xd/xq - 1)*(gamma_q*(v + gamma_q) +
- gamma_p^2)/sqrt((v + gamma_q)^2 + p^2));
-
- annotation (
- Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{
- 100,100}})),
- Icon(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{100,
- 100}}), graphics={Rectangle(extent={{-100,100},{100,-100}},
- lineColor={0,0,255}),Text(
- extent={{-90,80},{-58,60}},
- lineColor={0,0,255},
- fillPattern=FillPattern.Solid,
- textString="v"),Text(
- extent={{-90,-44},{-62,-60}},
- lineColor={0,0,255},
- fillPattern=FillPattern.Solid,
- textString="p"),Text(
- extent={{-88,16},{-60,0}},
- lineColor={0,0,255},
- fillPattern=FillPattern.Solid,
- textString="q"),Text(
- extent={{64,16},{92,0}},
- lineColor={0,0,255},
- fillPattern=FillPattern.Solid,
- textString="if")}),
- Documentation);
- end FieldCurrent;
- annotation (Documentation);
- end OEL;
-
- package PSS
- model PSSTypeII "PSAT PSS TypeII"
- parameter Real vsmax "Max stabilizer output signal (pu)";
- parameter Real vsmin "Min stabilizer output signal (pu)";
- parameter Real Kw "Stabilizer gain (pu/pu)";
- parameter Real Tw "Wash-out time constant (s)";
- parameter Real T1 "First stabilizer time constant (s)";
- parameter Real T2 "Second stabilizer time constant (s)";
- parameter Real T3 "Third stabilizer time constant (s)";
- parameter Real T4 "Fourth stabilizer time constant (s)";
- Modelica.Blocks.Interfaces.RealInput vSI "PSS input signal "
- annotation (Placement(transformation(extent={{-130,-20},{-90,20}})));
- Modelica.Blocks.Interfaces.RealOutput vs "PSS output signal"
- annotation (Placement(transformation(extent={{100,-10},{120,10}})));
- NonElectrical.Continuous.LeadLag imLeadLag(
- K=1,
- T1=T1,
- T2=T2,
- y_start=0)
- annotation (Placement(transformation(extent={{-10,-10},{10,10}})));
- NonElectrical.Continuous.LeadLag imLeadLag1(
- K=1,
- T1=T3,
- T2=T4,
- y_start=0) annotation (Placement(transformation(extent={{28,-10},{48,10}})));
- Modelica.Blocks.Nonlinear.Limiter limiter(uMax=vsmax, uMin=vsmin)
- annotation (Placement(transformation(extent={{60,-10},{80,10}})));
- NonElectrical.Continuous.DerivativeLag derivativeLag(
- K=Kw*Tw,
- T=Tw,
- y_start=0,
- x_start=0)
- annotation (Placement(transformation(extent={{-60,-10},{-40,10}})));
- equation
- connect(vs, limiter.y)
- annotation (Line(points={{110,0},{96,0},{81,0}}, color={0,0,127}));
- connect(imLeadLag1.y, limiter.u)
- annotation (Line(points={{49,0},{53.5,0},{58,0}}, color={0,0,127}));
- connect(imLeadLag.y, imLeadLag1.u)
- annotation (Line(points={{11,0},{26,0}}, color={0,0,127}));
- connect(vSI, derivativeLag.u)
- annotation (Line(points={{-110,0},{-62,0},{-62,0}}, color={0,0,127}));
- connect(derivativeLag.y, imLeadLag.u)
- annotation (Line(points={{-39,0},{-12,0},{-12,0}}, color={0,0,127}));
- annotation (Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,
- -100},{100,100}})), Documentation(info="
-
-
-Reference |
-PSS Type II, PSAT manual |
-
-
-Last update |
-2015-08-24 |
-
-
-Author |
-Tin Rabuzin, SmarTS Lab, KTH Royal Institute of Technology |
-
-
-Contact |
-luigiv@kth.se |
-
-
-"));
- end PSSTypeII;
- annotation (Documentation(info="
-"));
- end PSS;
- annotation (Documentation);
- end PSAT;
-
- package Simulink
- package OEL
- model OEL "OverExcitation Limiter"
- parameter Real ifd_lim "OEL parameter";
- parameter Real r "OEL parameter";
- parameter Real f "OEL parameter";
- parameter Real L1 "OEL parameter";
- parameter Real init_OEL_Timer=L1 "Initial output value";
- Modelica.Blocks.Sources.Constant ifd_lim_value(k=ifd_lim)
- "Limitation of filed current"
- annotation (Placement(transformation(extent={{-98,-28},{-80,-10}})));
- OpenIPSL.NonElectrical.Nonlinear.SaturationBlockTan block_1_1(r=r, f=f)
- annotation (Placement(transformation(extent={{-42,-16},{18,38}})));
- Modelica.Blocks.Continuous.LimIntegrator Timer(
- k=1,
- y_start=init_OEL_Timer,
- outMax=10000.0,
- outMin=L1,
- initType=Modelica.Blocks.Types.Init.InitialOutput)
- annotation (Placement(transformation(extent={{10,8},{24,22}})));
- Modelica.Blocks.Math.Gain imGain(k=-1)
- annotation (Placement(transformation(extent={{10,28},{22,40}})));
- Modelica.Blocks.Interfaces.RealInput ifd "Field current" annotation (
- Placement(transformation(extent={{-94,-4},{-76,16}}), iconTransformation(
- extent={{-94,-4},{-76,16}})));
- Modelica.Blocks.Interfaces.RealInput VolContinput "Voltage control input"
- annotation (Placement(transformation(extent={{-94,-48},{-76,-28}}),
- iconTransformation(extent={{-94,-48},{-76,-28}})));
- Modelica.Blocks.Interfaces.RealOutput OEL_output annotation (Placement(
- transformation(extent={{74,-30},{94,-10}}), iconTransformation(extent={
- {74,-30},{94,-10}})));
- Modelica.Blocks.Math.Add add(k2=-1)
- annotation (Placement(transformation(extent={{-60,0},{-40,20}})));
- Modelica.Blocks.Math.Min min
- annotation (Placement(transformation(extent={{68,6},{78,16}})));
- NonElectrical.Logical.Relay relay
- annotation (Placement(transformation(extent={{40,8},{52,20}})));
- equation
- connect(ifd_lim_value.y, add.u2) annotation (Line(points={{-79.1,-19},{-68,-19},
- {-68,4},{-62,4}}, color={0,0,127}));
- connect(ifd, add.u1) annotation (Line(points={{-85,6},{-72,6},{-72,16},{-62,
- 16}}, color={0,0,127}));
- connect(add.y, block_1_1.p1) annotation (Line(points={{-39,10},{-36,10},{-36,
- 11},{-47,11}}, color={0,0,127}));
- connect(imGain.u, block_1_1.p1) annotation (Line(points={{8.8,34},{-36,34},{-36,
- 11},{-47,11}}, color={0,0,127}));
- connect(block_1_1.n1, Timer.u) annotation (Line(points={{21,11},{5.5,11},{5.5,
- 15},{8.6,15}}, color={0,0,127}));
- connect(min.y, OEL_output)
- annotation (Line(points={{78.5,11},{84,11},{84,-20}}, color={0,0,127}));
- connect(VolContinput, min.u2) annotation (Line(points={{-85,-38},{-12,-38},{
- 60,-38},{60,8},{67,8}}, color={0,0,127}));
- connect(relay.y, min.u1)
- annotation (Line(points={{53.2,14},{67,14},{67,14}}, color={0,0,127}));
- connect(Timer.y, relay.u1) annotation (Line(points={{24.7,15},{30,15},{30,
- 18.5},{38.5,18.5}}, color={0,0,127}));
- connect(imGain.y, relay.u2) annotation (Line(points={{22.6,34},{32,34},{32,14},
- {38.5,14}}, color={0,0,127}));
- connect(relay.u3, min.u2) annotation (Line(points={{38.5,9.5},{32,9.5},{32,-38},
- {60,-38},{60,8},{67,8}}, color={0,0,127}));
- annotation (
- Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{
- 100,100}})),
- Icon(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{100,
- 100}}), graphics={Rectangle(extent={{-74,26},{74,-62}}, lineColor={
- 0,0,127}),Text(
- extent={{-84,6},{-36,-14}},
- lineColor={0,0,255},
- fillPattern=FillPattern.Solid,
- textString="ifd"),Text(
- extent={{-86,-38},{-40,-54}},
- lineColor={0,0,255},
- fillPattern=FillPattern.Solid,
- textString="V"),Text(
- extent={{-52,6},{58,-42}},
- lineColor={0,0,255},
- fillPattern=FillPattern.Solid,
- textString="OEL")}),
- Documentation(info="
-
-
-Reference |
-Over Excitation Limiter |
-
-
-Last update |
-2015-10-02 |
-
-
-Author |
-Le Qi, SmarTS Lab, KTH Royal Institute of Technology |
-
-
-Contact |
-luigiv@kth.se |
-
-
-"));
- end OEL;
- annotation (Documentation);
- end OEL;
-
- package PSS
- model PSS "Power system stabilizer"
- parameter Real Kp "Washout gain";
- parameter Real Tw "Washout time constant";
- parameter Real T1 "Lead-lag filter time constant";
- parameter Real T2 "Lead-lag filter time constant";
- parameter Real C "PSS output limiation";
- parameter Real init_PSS_Leadlag1=0 "initial output value";
- parameter Real init_PSS_Leadlag2=0 "initial output value";
- Modelica.Blocks.Interfaces.RealInput omega "Speed" annotation (Placement(
- transformation(extent={{-106,12},{-94,24}}), iconTransformation(extent=
- {{-100,8},{-88,20}})));
- OpenIPSL.NonElectrical.Continuous.LeadLag Leadlag1(
- K=1,
- T1=T1,
- T2=T2,
- y_start=init_PSS_Leadlag1) annotation (Placement(transformation(
- extent={{-22,4},{-4,22}})));
- OpenIPSL.NonElectrical.Continuous.LeadLag Leadlag2(
- K=1,
- T1=T1,
- T2=T2,
- y_start=init_PSS_Leadlag2)
- annotation (Placement(transformation(extent={{4,4},{22,22}})));
- Modelica.Blocks.Interfaces.RealOutput Upss "PSS output" annotation (Placement(
- transformation(extent={{56,6},{68,18}}), iconTransformation(extent={{56,
- 6},{68,18}})));
- Modelica.Blocks.Nonlinear.Limiter limit(uMin=-C, uMax=C)
- annotation (Placement(transformation(extent={{30,4},{48,22}})));
- Modelica.Blocks.Math.Gain imGain(k=Kp/Tw)
- annotation (Placement(transformation(extent={{-90,12},{-78,24}})));
- OpenIPSL.NonElectrical.Continuous.SimpleLag imSimpleLag(
- K=1,
- T=Tw,
- y_start=0) annotation (Placement(transformation(extent={{-68,10},
- {-52,26}})));
- Modelica.Blocks.Math.Add add(k1=-1)
- annotation (Placement(transformation(extent={{-46,4},{-28,22}})));
- equation
- connect(limit.y, Upss) annotation (Line(points={{48.9,13},{51.45,13},{51.45,
- 12},{62,12}}, color={0,0,127}));
- connect(Leadlag2.y, limit.u)
- annotation (Line(points={{22.9,13},{22.9,13},{28.2,13}}, color={0,0,127}));
- connect(Leadlag1.y, Leadlag2.u)
- annotation (Line(points={{-3.1,13},{-3.1,13},{2.2,13}}, color={0,0,127}));
- connect(add.y, Leadlag1.u) annotation (Line(points={{-27.1,13},{-25.55,13},{-23.8,
- 13}}, color={0,0,127}));
- connect(omega, imGain.u)
- annotation (Line(points={{-100,18},{-96,18},{-91.2,18}}, color={0,0,127}));
- connect(imSimpleLag.y, add.u1) annotation (Line(points={{-51.2,18},{-47.8,18},
- {-47.8,18.4}}, color={0,0,127}));
- connect(imGain.y, imSimpleLag.u) annotation (Line(points={{-77.4,18},{-69.6,
- 18},{-69.6,18}}, color={0,0,127}));
- connect(add.u2, imSimpleLag.u) annotation (Line(points={{-47.8,7.6},{-74,7.6},
- {-74,18},{-69.6,18}}, color={0,0,127}));
- annotation (
- Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{
- 100,100}})),
- Icon(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{100,
- 100}}), graphics={Rectangle(extent={{-88,44},{56,-18}}, lineColor={
- 0,0,255}),Text(
- extent={{-44,28},{22,-2}},
- lineColor={0,0,255},
- textString="PSS"),Text(
- extent={{-86,24},{-62,4}},
- lineColor={0,0,255},
- textString="omega"),Text(
- extent={{34,20},{54,0}},
- lineColor={0,0,255},
- textString="Upss")}),
- Documentation);
- end PSS;
- annotation (Documentation);
- end PSS;
-
- package ES
- model ExcitationSystem
- "This ES is composed by the OEL and PSS and exitation part"
- parameter Real V0=1 "Reference value of terminal voltage";
- parameter Real L2=4 "Exciter parameter";
- parameter Real G=70 "Exciter parameter";
- parameter Real Ta=10 "Exciter parameter";
- parameter Real Tb=20 "Exciter parameter";
- parameter Real vfd0 "Initial Filed voltage";
- parameter Real r "OEL parameter";
- parameter Real f "OEL parameter";
- parameter Real L1 "OEL parameter";
- parameter Real ifd_lim "OEL parameter";
- parameter Real Kp "Washout gain";
- parameter Real Tw "Washout time constant";
- parameter Real T1 "Lead-lag filter time constant";
- parameter Real T2 "Lead-lag filter time constant";
- parameter Real C "PSS output limiation";
- OpenIPSL.Electrical.Controls.Simulink.OEL.OEL oEL(
- init_OEL_Timer=0,
- ifd_lim=ifd_lim,
- r=r,
- f=f,
- L1=L1) annotation (Placement(transformation(extent={{-28,40},{
- 20,76}})));
- Modelica.Blocks.Sources.Constant V_0(k=V0) "Reference terminal voltage "
- annotation (Placement(transformation(extent={{-88,34},{-70,52}})));
- Modelica.Blocks.Interfaces.RealInput ifd "Field current"
- annotation (Placement(transformation(extent={{-96,62},{-84,74}})));
- Modelica.Blocks.Interfaces.RealInput V "Terminal voltage "
- annotation (Placement(transformation(extent={{-96,22},{-84,34}})));
- Modelica.Blocks.Interfaces.RealInput omega "Speed"
- annotation (Placement(transformation(extent={{-96,-10},{-84,2}})));
- Modelica.Blocks.Interfaces.RealOutput vfd "Field voltage"
- annotation (Placement(transformation(extent={{128,22},{140,34}})));
- Modelica.Blocks.Math.Gain Ka(k=10)
- annotation (Placement(transformation(extent={{88,48},{100,60}})));
- Modelica.Blocks.Continuous.LimIntegrator imLimitedIntegrator(
- outMin=0,
- outMax=L2,
- k=1,
- y_start=vfd0,
- initType=Modelica.Blocks.Types.Init.InitialOutput)
- annotation (Placement(transformation(extent={{108,46},{124,62}})));
- OpenIPSL.NonElectrical.Continuous.LeadLag tgr(
- K=G,
- T1=Ta,
- T2=Tb,
- y_start=vfd0) "Transient gain rudection" annotation (Placement(
- transformation(extent={{36,44},{56,64}})));
- OpenIPSL.Electrical.Controls.Simulink.PSS.PSS pSS(
- Kp=Kp,
- Tw=Tw,
- T1=T1,
- T2=T2,
- C=C) annotation (Placement(transformation(extent={{-78,-28},{-44,
- 14}})));
- Modelica.Blocks.Math.Feedback feedback
- annotation (Placement(transformation(extent={{62,44},{82,64}})));
- Modelica.Blocks.Math.Add3 add3_1(k2=-1)
- annotation (Placement(transformation(extent={{-46,18},{-26,38}})));
- equation
- connect(oEL.ifd, ifd) annotation (Line(
- points={{-24.4,59.08},{-77.44,59.08},{-77.44,68},{-90,68}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(omega, pSS.omega) annotation (Line(
- points={{-90,-4},{-84,-4},{-84,-4.06},{-76.98,-4.06}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(imLimitedIntegrator.y, vfd)
- annotation (Line(points={{124.8,54},{134,54},{134,28}}, color={0,0,127}));
- connect(Ka.y, imLimitedIntegrator.u) annotation (Line(points={{100.6,54},{
- 106.4,54},{106.4,54}}, color={0,0,127}));
- connect(oEL.OEL_output, tgr.u) annotation (Line(points={{16.16,54.4},{25.08,
- 54.4},{25.08,54},{34,54}}, color={0,0,127}));
- connect(feedback.y, Ka.u)
- annotation (Line(points={{81,54},{86.8,54},{86.8,54}}, color={0,0,127}));
- connect(tgr.y, feedback.u1)
- annotation (Line(points={{57,54},{64,54},{64,54}}, color={0,0,127}));
- connect(feedback.u2, vfd) annotation (Line(points={{72,46},{72,40},{134,40},{
- 134,28}}, color={0,0,127}));
- connect(V, add3_1.u2)
- annotation (Line(points={{-90,28},{-74,28},{-48,28}}, color={0,0,127}));
- connect(V_0.y, add3_1.u1)
- annotation (Line(points={{-69.1,43},{-48,43},{-48,36}}, color={0,0,127}));
- connect(pSS.Upss, add3_1.u3) annotation (Line(points={{-50.46,-4.48},{-48,-4.48},
- {-48,20}}, color={0,0,127}));
- connect(add3_1.y, oEL.VolContinput) annotation (Line(points={{-25,28},{-18,28},
- {-18,42},{-24.4,42},{-24.4,51.16}}, color={0,0,127}));
- annotation (
- Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{
- 140,100}})),
- Icon(coordinateSystem(extent={{-100,-100},{140,100}}, preserveAspectRatio=
- false), graphics={Rectangle(extent={{-84,78},{128,-20}}, lineColor=
- {0,0,255}),Text(
- extent={{-80,72},{-62,60}},
- lineColor={0,0,255},
- textString="ifd"),Text(
- extent={{-80,34},{-62,22}},
- lineColor={0,0,255},
- textString="V "),Text(
- extent={{-78,2},{-54,-12}},
- lineColor={0,0,255},
- textString="omega"),Text(
- extent={{106,36},{130,22}},
- lineColor={0,0,255},
- textString="vfd"),Text(
- extent={{-34,58},{88,0}},
- lineColor={0,0,255},
- textString="Exciter AVR OEL PSS")}),
- Documentation);
- end ExcitationSystem;
-
- model ExcitationSystemKp0 "Excitation system without PSS included"
- parameter Real V0=1 "Reference value of terminal voltage";
- parameter Real L2=4 "Exciter parameter";
- parameter Real G=70 "Exciter parameter";
- parameter Real Ta=10 "Exciter parameter";
- parameter Real Tb=20 "Exciter parameter";
- parameter Real vfd0 "Initial Filed voltage";
- parameter Real r "OEL parameter";
- parameter Real f "OEL parameter";
- parameter Real L1 "OEL parameter";
- parameter Real ifd_lim "OEL parameter";
- OpenIPSL.Electrical.Controls.Simulink.OEL.OEL oEL(
- init_OEL_Timer=0,
- ifd_lim=ifd_lim,
- r=r,
- f=f,
- L1=L1) annotation (Placement(transformation(extent={{-28,40},{
- 20,76}})));
- Modelica.Blocks.Sources.Constant V_0(k=V0) "Reference terminal voltage "
- annotation (Placement(transformation(extent={{-88,34},{-70,52}})));
- Modelica.Blocks.Interfaces.RealInput ifd "Field current"
- annotation (Placement(transformation(extent={{-96,62},{-84,74}})));
- Modelica.Blocks.Interfaces.RealInput V "Terminal voltage "
- annotation (Placement(transformation(extent={{-96,22},{-84,34}})));
- Modelica.Blocks.Interfaces.RealOutput vfd "Field voltage"
- annotation (Placement(transformation(extent={{128,22},{140,34}})));
- Modelica.Blocks.Math.Gain Ka(k=10)
- annotation (Placement(transformation(extent={{92,48},{104,60}})));
- Modelica.Blocks.Continuous.LimIntegrator imLimitedIntegrator(
- outMin=0,
- outMax=L2,
- k=1,
- y_start=vfd0,
- initType=Modelica.Blocks.Types.Init.InitialOutput)
- annotation (Placement(transformation(extent={{110,46},{126,62}})));
- OpenIPSL.NonElectrical.Continuous.LeadLag tgr(
- K=G,
- T1=Ta,
- T2=Tb,
- y_start=vfd0) "Transient gain rudection" annotation (Placement(
- transformation(extent={{32,44},{52,64}})));
- Modelica.Blocks.Math.Feedback feedback
- annotation (Placement(transformation(extent={{62,44},{82,64}})));
- Modelica.Blocks.Math.Add add(k2=-1)
- annotation (Placement(transformation(extent={{-58,26},{-38,46}})));
- equation
- connect(oEL.ifd, ifd) annotation (Line(
- points={{-24.4,59.08},{-77.44,59.08},{-77.44,68},{-90,68}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(imLimitedIntegrator.y, vfd)
- annotation (Line(points={{126.8,54},{134,54},{134,28}}, color={0,0,127}));
- connect(imLimitedIntegrator.u, Ka.y) annotation (Line(points={{108.4,54},{106,
- 54},{104.6,54}}, color={0,0,127}));
- connect(oEL.OEL_output, tgr.u) annotation (Line(points={{16.16,54.4},{23.08,
- 54.4},{23.08,54},{30,54}}, color={0,0,127}));
- connect(feedback.y, Ka.u)
- annotation (Line(points={{81,54},{90.8,54},{90.8,54}}, color={0,0,127}));
- connect(feedback.u2, vfd) annotation (Line(points={{72,46},{72,40},{134,40},{
- 134,28}}, color={0,0,127}));
- connect(tgr.y, feedback.u1)
- annotation (Line(points={{53,54},{58.5,54},{64,54}}, color={0,0,127}));
- connect(V_0.y, add.u1) annotation (Line(points={{-69.1,43},{-64.55,43},{-64.55,
- 42},{-60,42}}, color={0,0,127}));
- connect(V, add.u2) annotation (Line(points={{-90,28},{-76,28},{-76,30},{-60,
- 30}}, color={0,0,127}));
- connect(add.y, oEL.VolContinput) annotation (Line(points={{-37,36},{-34,36},{
- -34,40},{-34,51.16},{-24.4,51.16}}, color={0,0,127}));
- annotation (
- Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{
- 140,100}})),
- Icon(coordinateSystem(extent={{-100,-100},{140,100}}, preserveAspectRatio=
- false), graphics={Rectangle(extent={{-84,78},{128,-20}}, lineColor=
- {0,0,255}),Text(
- extent={{-80,72},{-62,60}},
- lineColor={0,0,255},
- textString="ifd"),Text(
- extent={{-80,34},{-62,22}},
- lineColor={0,0,255},
- textString="V "),Text(
- extent={{106,36},{130,22}},
- lineColor={0,0,255},
- textString="vfd"),Text(
- extent={{-34,58},{88,0}},
- lineColor={0,0,255},
- textString="Exciter AVR OEL PSS")}),
- Documentation);
- end ExcitationSystemKp0;
- annotation (Documentation);
- end ES;
-
- package TG
- model TurbineTm "Hydraulic turbine model. Mechanical torque as output"
- Modelica.Blocks.Interfaces.RealInput z "Gate openning" annotation (Placement(
- transformation(extent={{-95,2},{-88,10}}), iconTransformation(extent={{
- -92,20},{-78,34}})));
- Modelica.Blocks.Sources.Constant Hs(k=1)
- annotation (Placement(transformation(extent={{-74,-12},{-58,4}})));
- Modelica.Blocks.Math.Gain Tw(k=1/1) "Water time constant"
- annotation (Placement(transformation(extent={{0,-8},{20,12}})));
- Modelica.Blocks.Continuous.Integrator imIntegrator(
- k=1,
- y_start=init_Turbine_V1,
- initType=Modelica.Blocks.Types.Init.InitialOutput)
- annotation (Placement(transformation(extent={{28,-6},{44,10}})));
- Modelica.Blocks.Interfaces.RealInput Omega "Rotor speed in p.u" annotation (
- Placement(transformation(extent={{-96,-26},{-90,-18}}),
- iconTransformation(extent={{-92,-22},{-78,-8}})));
- Modelica.Blocks.Interfaces.RealOutput Tm "Mechanical Torque Tm as output"
- annotation (Placement(transformation(extent={{106,-2},{112,6}}),
- iconTransformation(extent={{30,-4},{46,14}})));
- parameter Real init_Turbine_V1;
- Modelica.Blocks.Math.Product product
- annotation (Placement(transformation(extent={{52,-6},{68,10}})));
- Modelica.Blocks.Math.Division division
- annotation (Placement(transformation(extent={{84,-6},{100,10}})));
- Modelica.Blocks.Math.Add add(k1=-1)
- annotation (Placement(transformation(extent={{-28,-8},{-8,12}})));
- Modelica.Blocks.Math.Division division1
- annotation (Placement(transformation(extent={{-78,14},{-64,28}})));
- Modelica.Blocks.Math.Product product1
- annotation (Placement(transformation(extent={{-52,14},{-38,28}})));
- equation
- connect(Tw.y, imIntegrator.u)
- annotation (Line(points={{21,2},{21,2},{26.4,2}}, color={0,0,127}));
- connect(imIntegrator.y, product.u2) annotation (Line(points={{44.8,2},{48,2},
- {48,-2.8},{50.4,-2.8}}, color={0,0,127}));
- connect(division.y, Tm)
- annotation (Line(points={{100.8,2},{109,2}}, color={0,0,127}));
- connect(product.y, division.u1) annotation (Line(points={{68.8,2},{76,2},{76,
- 6.8},{82.4,6.8}}, color={0,0,127}));
- connect(division.u2, Omega) annotation (Line(points={{82.4,-2.8},{76,-2.8},{
- 76,-22},{-93,-22}}, color={0,0,127}));
- connect(add.y, Tw.u)
- annotation (Line(points={{-7,2},{-5.55,2},{-2,2}}, color={0,0,127}));
- connect(Hs.y, add.u2) annotation (Line(points={{-57.2,-4},{-57.2,-4},{-30,-4}},
- color={0,0,127}));
- connect(product1.y, add.u1) annotation (Line(points={{-37.3,21},{-34,21},{-34,
- 8},{-30,8}}, color={0,0,127}));
- connect(division1.y, product1.u1) annotation (Line(points={{-63.3,21},{-58,21},
- {-58,25.2},{-53.4,25.2}}, color={0,0,127}));
- connect(product1.u2, product1.u1) annotation (Line(points={{-53.4,16.8},{-58,
- 16.8},{-58,25.2},{-53.4,25.2}}, color={0,0,127}));
- connect(division1.u1, imIntegrator.y) annotation (Line(points={{-79.4,25.2},{
- -84,25.2},{-84,46},{44.8,46},{44.8,2}}, color={0,0,127}));
- connect(z, division1.u2) annotation (Line(points={{-91.5,6},{-84,6},{-84,16.8},
- {-79.4,16.8}}, color={0,0,127}));
- connect(product.u1, add.u1) annotation (Line(points={{50.4,6.8},{46,6.8},{46,
- 28},{-34,28},{-34,8},{-30,8}}, color={0,0,127}));
- annotation (
- Icon(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{100,
- 100}}), graphics={Rectangle(extent={{-78,46},{32,-44}}, lineColor={
- 0,0,255}),Text(
- extent={{-78,32},{-64,20}},
- lineColor={0,0,255},
- textString="z"),Text(
- extent={{-76,-8},{-56,-28}},
- lineColor={0,0,255},
- textString="omega"),Text(
- extent={{18,14},{28,0}},
- lineColor={0,0,255},
- textString="Tm"),Text(
- extent={{-52,18},{8,-20}},
- lineColor={0,0,255},
- textString="Hy turbine")}),
- Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{
- 100,100}}), graphics={Text(
- extent={{-96,0},{-80,-2}},
- lineColor={0,0,127},
- textString="z (gate opening)"),Text(
- extent={{-96,-28},{-80,-30}},
- lineColor={0,0,127},
- textString="w (rotor speed)"),Text(
- extent={{102,10},{128,8}},
- lineColor={0,0,127},
- textString="Tm (mech. torque)"),Text(
- extent={{52,14},{70,14}},
- lineColor={0,0,127},
- textString="Pm (mech. power)"),Text(
- extent={{-8,-6},{22,-8}},
- lineColor={0,0,127},
- textString="1/Tw (water time constant)")}),
- Documentation);
- end TurbineTm;
-
- model TurbinePm "Hydraulic turbine model. Mechanical Power Pm as output"
- parameter Real p0 "Initialization, initial electrical power";
- Modelica.Blocks.Interfaces.RealInput z "Gate openning" annotation (Placement(
- transformation(extent={{-95,2},{-88,10}}), iconTransformation(extent={{
- -92,-6},{-78,8}})));
- Modelica.Blocks.Sources.Constant Hs(k=1) "set point"
- annotation (Placement(transformation(extent={{-78,-14},{-58,6}})));
- Modelica.Blocks.Math.Gain Tw(k=1) "Water constant"
- annotation (Placement(transformation(extent={{-16,0},{0,16}})));
- Modelica.Blocks.Continuous.Integrator imIntegrator(
- k=1,
- y_start=p0,
- initType=Modelica.Blocks.Types.Init.InitialOutput)
- annotation (Placement(transformation(extent={{12,0},{28,16}})));
- Modelica.Blocks.Interfaces.RealOutput Pm "Mechanical power" annotation (
- Placement(transformation(extent={{88,2},{94,10}}), iconTransformation(
- extent={{32,-6},{48,12}})));
- Modelica.Blocks.Math.Product product1
- annotation (Placement(transformation(extent={{-54,26},{-40,40}})));
- Modelica.Blocks.Math.Division division1
- annotation (Placement(transformation(extent={{-80,26},{-66,40}})));
- Modelica.Blocks.Math.Add add(k1=-1)
- annotation (Placement(transformation(extent={{-46,-2},{-26,18}})));
- Modelica.Blocks.Math.Product product
- annotation (Placement(transformation(extent={{42,4},{58,20}})));
- equation
- connect(division1.y, product1.u1) annotation (Line(points={{-65.3,33},{-60,33},
- {-60,37.2},{-55.4,37.2}}, color={0,0,127}));
- connect(product1.u2, product1.u1) annotation (Line(points={{-55.4,28.8},{-60,
- 28.8},{-60,37.2},{-55.4,37.2}}, color={0,0,127}));
- connect(Tw.y, imIntegrator.u)
- annotation (Line(points={{0.8,8},{6,8},{10.4,8}}, color={0,0,127}));
- connect(add.y, Tw.u)
- annotation (Line(points={{-25,8},{-17.6,8},{-17.6,8}}, color={0,0,127}));
- connect(Hs.y, add.u2) annotation (Line(points={{-57,-4},{-54,-4},{-54,2},{-48,
- 2}}, color={0,0,127}));
- connect(imIntegrator.y, product.u2) annotation (Line(points={{28.8,8},{34,8},
- {34,7.2},{40.4,7.2}}, color={0,0,127}));
- connect(product.y, Pm) annotation (Line(points={{58.8,12},{74,12},{74,6},{91,
- 6}}, color={0,0,127}));
- connect(product.u1, product1.y) annotation (Line(points={{40.4,16.8},{34,16.8},
- {34,33},{-39.3,33}}, color={0,0,127}));
- connect(division1.u1, product.u2) annotation (Line(points={{-81.4,37.2},{-88,
- 37.2},{-88,50},{32,50},{32,8},{34,8},{34,7.2},{40.4,7.2}}, color={0,0,
- 127}));
- connect(division1.u2, z) annotation (Line(points={{-81.4,28.8},{-84,28.8},{-84,
- 6},{-91.5,6}}, color={0,0,127}));
- connect(add.u1, product1.y) annotation (Line(points={{-48,14},{-56,14},{-56,
- 24},{-34,24},{-34,33},{-39.3,33}}, color={0,0,127}));
- annotation (
- Icon(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{100,
- 100}}), graphics={Rectangle(extent={{-78,46},{32,-44}}, lineColor={
- 0,0,255}),Text(
- extent={{-78,10},{-64,-2}},
- lineColor={0,0,255},
- textString="z"),Text(
- extent={{20,10},{30,-4}},
- lineColor={0,0,255},
- textString="Pm"),Text(
- extent={{-52,18},{8,-20}},
- lineColor={0,0,255},
- textString="Hy turbine")}),
- Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{
- 100,100}}), graphics={Text(
- extent={{-28,40},{-12,38}},
- lineColor={0,0,127},
- textString="q (water flow)"),Text(
- extent={{-28,28},{-14,26}},
- lineColor={0,0,127},
- textString="H (head)"),Text(
- extent={{60,12},{78,12}},
- lineColor={0,0,127},
- textString="Pm (mech. power)"),Text(
- extent={{-98,-4},{-82,4}},
- lineColor={0,0,127},
- textString="z (gate opening)")}),
- Documentation);
- end TurbinePm;
-
- model Governor "Speed governor model for hydro turbines"
- Modelica.Blocks.Interfaces.RealInput Omega "Rotor speed in p.u" annotation (
- Placement(transformation(extent={{-96,26},{-86,38}}), iconTransformation(
- extent={{-14,30},{-4,40}})));
- Modelica.Blocks.Sources.Constant Omega_n(k=1) "Nominal rotor speed in p.u"
- annotation (Placement(transformation(extent={{-94,6},{-82,18}})));
- Modelica.Blocks.Math.Gain Gain1(k=2)
- annotation (Placement(transformation(extent={{10,18},{24,32}})));
- Modelica.Blocks.Math.Gain Gain2(k=0.4)
- annotation (Placement(transformation(extent={{10,0},{24,14}})));
- Modelica.Blocks.Continuous.Integrator Integrator(
- k=1,
- y_start=p0,
- initType=Modelica.Blocks.Types.Init.InitialOutput)
- annotation (Placement(transformation(extent={{30,0},{44,14}})));
- Modelica.Blocks.Math.Gain Droop(k=D) "Permanent speed droop" annotation (
- Placement(transformation(
- extent={{5.5,-5.5},{-5.5,5.5}},
- rotation=270,
- origin={-53.5,6.5})));
- Modelica.Blocks.Math.Gain Gain3(k=5)
- annotation (Placement(transformation(extent={{92,10},{106,24}})));
- Modelica.Blocks.Nonlinear.Limiter Limited(uMin=-0.1, uMax=0.1)
- annotation (Placement(transformation(extent={{112,10},{126,24}})));
- Modelica.Blocks.Continuous.LimIntegrator imLimitedIntegrator(
- outMax=1,
- k=1,
- outMin=0,
- y_start=p0,
- initType=Modelica.Blocks.Types.Init.InitialOutput)
- annotation (Placement(transformation(extent={{132,10},{146,24}})));
- Modelica.Blocks.Interfaces.RealOutput z "Gate opening" annotation (Placement(
- transformation(extent={{156,12},{166,22}}), iconTransformation(extent={
- {148,12},{158,22}})));
- parameter Real D "Permanent speed droop, g19=g20=0.08, all others=0.04";
- parameter Real p0 "Initialization, initial electrical power";
- Modelica.Blocks.Interfaces.RealInput Pm_set annotation (Placement(
- transformation(
- extent={{5,-6},{-5,6}},
- rotation=180,
- origin={-90,-17}), iconTransformation(
- extent={{5,-6},{-5,6}},
- rotation=180,
- origin={-10,14})));
- Modelica.Blocks.Interfaces.RealInput Pe annotation (Placement(transformation(
- extent={{5,-6},{-5,6}},
- rotation=180,
- origin={-90,-33}), iconTransformation(
- extent={{5,-6},{-5,6}},
- rotation=180,
- origin={-10,-8})));
- OpenIPSL.NonElectrical.Continuous.SimpleLag SimpleLag1(
- K=1,
- T=2,
- y_start=p0) annotation (Placement(transformation(extent={{-72,-40},
- {-58,-26}})));
- Modelica.Blocks.Math.Feedback feedback
- annotation (Placement(transformation(extent={{68,6},{88,26}})));
- Modelica.Blocks.Math.Add add(k2=-1) annotation (Placement(transformation(
- extent={{-5,-5},{5,5}},
- rotation=90,
- origin={-53,-9})));
- Modelica.Blocks.Math.Add add1 annotation (Placement(transformation(
- extent={{-5,-5},{5,5}},
- rotation=0,
- origin={-41,25})));
- Modelica.Blocks.Math.Add add2(k1=-1) annotation (Placement(transformation(
- extent={{-5,-5},{5,5}},
- rotation=0,
- origin={-65,29})));
- Modelica.Blocks.Math.Add add3 annotation (Placement(transformation(
- extent={{-6,-6},{6,6}},
- rotation=0,
- origin={58,16})));
- equation
- connect(Gain3.y, Limited.u) annotation (Line(points={{106.7,17},{106.7,17},{
- 110.6,17}}, color={0,0,127}));
- connect(Limited.y, imLimitedIntegrator.u) annotation (Line(points={{126.7,17},
- {128.35,17},{128.35,17},{130.6,17}}, color={0,0,127}));
- connect(imLimitedIntegrator.y, z) annotation (Line(points={{146.7,17},{153.35,
- 17},{153.35,17},{161,17}}, color={0,0,127}));
- connect(feedback.y, Gain3.u) annotation (Line(points={{87,16},{88,16},{88,17},
- {90.6,17}}, color={0,0,127}));
- connect(feedback.u2, z) annotation (Line(points={{78,8},{78,-6},{152,-6},{152,
- 17},{153.35,17},{161,17}}, color={0,0,127}));
- connect(Pe, SimpleLag1.u) annotation (Line(points={{-90,-33},{-81,-33},{-73.4,
- -33}}, color={0,0,127}));
- connect(add.y, Droop.u) annotation (Line(points={{-53,-3.5},{-53,-0.1},{-53.5,
- -0.1}}, color={0,0,127}));
- connect(add.u2, SimpleLag1.y) annotation (Line(points={{-50,-15},{-50,-33},{-57.3,
- -33}}, color={0,0,127}));
- connect(Pm_set, add.u1)
- annotation (Line(points={{-90,-17},{-56,-17},{-56,-15}}, color={0,0,127}));
- connect(Droop.y, add1.u2) annotation (Line(points={{-53.5,12.55},{-53.5,22},{
- -47,22}}, color={0,0,127}));
- connect(add2.u1, Omega)
- annotation (Line(points={{-71,32},{-82,32},{-91,32}}, color={0,0,127}));
- connect(Omega_n.y, add2.u2) annotation (Line(points={{-81.4,12},{-78,12},{-78,
- 26},{-71,26}}, color={0,0,127}));
- connect(add2.y, add1.u1) annotation (Line(points={{-59.5,29},{-53.75,29},{-53.75,
- 28},{-47,28}}, color={0,0,127}));
- connect(Gain1.u, add1.y) annotation (Line(points={{8.6,25},{-13.7,25},{-35.5,
- 25}}, color={0,0,127}));
- connect(Gain2.u, add1.y) annotation (Line(points={{8.6,7},{0,7},{0,25},{-13.7,
- 25},{-35.5,25}}, color={0,0,127}));
- connect(Gain2.y, Integrator.u) annotation (Line(points={{24.7,7},{26.35,7},{
- 26.35,7},{28.6,7}}, color={0,0,127}));
- connect(add3.y, feedback.u1)
- annotation (Line(points={{64.6,16},{67.3,16},{70,16}}, color={0,0,127}));
- connect(Integrator.y, add3.u2) annotation (Line(points={{44.7,7},{48,7},{48,
- 12.4},{50.8,12.4}}, color={0,0,127}));
- connect(Gain1.y, add3.u1) annotation (Line(points={{24.7,25},{44,25},{44,19.6},
- {50.8,19.6}}, color={0,0,127}));
- annotation (
- Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{
- 160,100}}), graphics={Text(
- extent={{90,-6},{128,-10}},
- lineColor={0,0,127},
- textString="Servomotor"),Text(
- extent={{14,34},{52,30}},
- lineColor={0,0,127},
- textString="PI Control"),Text(
- extent={{-102,36},{-78,34}},
- lineColor={0,0,127},
- textString="w (rotor speed)"),Text(
- extent={{-100,-40},{-76,-42}},
- lineColor={0,0,127},
- textString="P (active power)"),Text(
- extent={{-98,-8},{-74,-10}},
- lineColor={0,0,127},
- textString="P0 (power set point)"),Text(
- extent={{-50,6},{-32,8}},
- lineColor={0,0,127},
- textString="Speed drop")}),
- Icon(coordinateSystem(extent={{-100,-100},{160,100}}, preserveAspectRatio=
- false), graphics={Rectangle(extent={{-4,46},{150,-20}}, lineColor={
- 0,0,255}),Text(
- extent={{24,30},{126,6}},
- lineColor={0,0,255},
- textString="Speed Governor"),Text(
- extent={{0,42},{20,26}},
- lineColor={0,0,255},
- textString="Omega"),Text(
- extent={{136,24},{152,12}},
- lineColor={0,0,255},
- textString="z"),Text(
- extent={{0,20},{20,4}},
- lineColor={0,0,255},
- textString="Pmset"),Text(
- extent={{0,-2},{20,-18}},
- lineColor={0,0,255},
- textString="Pe")}),
- Documentation);
- end Governor;
- annotation (Documentation);
- end TG;
- annotation (Documentation);
- end Simulink;
-
- package PSSE
- package OEL
- model OEL
- Modelica.Blocks.Interfaces.RealInput IFD "Field current" annotation (
- Placement(transformation(extent={{-140,-20},{-100,20}}),
- iconTransformation(
- extent={{5,-6},{-5,6}},
- rotation=180,
- origin={-105,0})));
- Modelica.Blocks.Sources.Constant IFDSetpoint(k=IFDdes)
- annotation (Placement(transformation(extent={{-90,30},{-70,50}})));
- Modelica.Blocks.Continuous.LimIntegrator imLimitedIntegrator(
- outMin=Vmin,
- outMax=Vmax,
- k=KMX,
- y_start=0,
- initType=Modelica.Blocks.Types.Init.InitialOutput)
- annotation (Placement(transformation(extent={{10,50},{30,70}})));
- Modelica.Blocks.Interfaces.RealOutput VOEL "OEL output" annotation (Placement(
- transformation(extent={{100,-10},{120,10}}),
- iconTransformation(extent={{
- 100,-6},{110,6}})));
- parameter Real IFD1=1.1 "Low OEL limit (pu)";
- parameter Real IFD2=1.2 "Medium OEL limit (pu)";
- parameter Real IFD3=1.5 "High OEL limit (pu)";
- parameter Real TIME1=60 "Timing for low OEL (s)";
- parameter Real TIME2=30 "Timimg for medium OEL (s)";
- parameter Real TIME3=15 "Timing for high OEL (s)";
- parameter Real IFDdes=1 "IFD setpoint (pu)";
- parameter Real Vmax=0 "Max. OEL output (pu)";
- parameter Real Vmin=-0.05 "Min. OEL output (pu)";
- parameter Real KMX=1 "Control constant";
- IF_comparisor comparisor(
- HighCurrentLimit=IFD3,
- MediumCurrentLimit=IFD2,
- LowCurrentLimit=IFD1)
- annotation (Placement(transformation(extent={{-30,-10},{-10,10}})));
- Modelica.Blocks.Continuous.LimIntegrator imLimitedIntegrator1(
- outMin=Vmin,
- outMax=Vmax,
- k=KMX,
- y_start=6,
- initType=Modelica.Blocks.Types.Init.InitialOutput)
- annotation (Placement(transformation(extent={{10,10},{30,30}})));
- Modelica.Blocks.Continuous.LimIntegrator imLimitedIntegrator2(
- outMin=Vmin,
- outMax=Vmax,
- k=KMX,
- y_start=6,
- initType=Modelica.Blocks.Types.Init.InitialOutput)
- annotation (Placement(transformation(extent={{10,-30},{30,-10}})));
- Modelica.Blocks.Continuous.LimIntegrator imLimitedIntegrator3(
- outMin=Vmin,
- outMax=Vmax,
- k=KMX,
- y_start=7.5,
- initType=Modelica.Blocks.Types.Init.InitialOutput)
- annotation (Placement(transformation(extent={{10,-70},{30,-50}})));
- Modelica.Blocks.Math.Add add(k1=-1)
- annotation (Placement(transformation(extent={{-60,-10},{-40,10}})));
- Modelica.Blocks.Math.MultiSum multiSum(nu=4)
- annotation (Placement(transformation(extent={{60,-10},{80,10}})));
- equation
- connect(comparisor.n1, imLimitedIntegrator.u) annotation (Line(points={{-9,6},{-3.84,6},{-3.84,60},{8,60}},
- color={0,0,127}));
- connect(comparisor.n2, imLimitedIntegrator1.u) annotation (Line(points={{-9,2},{0.16,2},{0.16,20},{8,20}},
- color={0,0,127}));
- connect(comparisor.n3, imLimitedIntegrator2.u) annotation (Line(points={{-9,-2},{0.16,-2},{0.16,-20},{8,-20}},
- color={0,0,127}));
- connect(comparisor.n4, imLimitedIntegrator3.u) annotation (Line(points={{-9,-6},{-3.84,-6},{-3.84,-60},{8,-60}},
- color={0,0,127}));
- connect(add.y,comparisor. p) annotation (Line(points={{-39,0},{-32,0}},
- color={0,0,127}));
- connect(add.u2, IFD) annotation (Line(points={{-62,-6},{-80.5,-6},{-80.5,0},{-120,0}},
- color={0,0,127}));
- connect(IFDSetpoint.y, add.u1) annotation (Line(points={{-69,40},{-65.6,40},{-65.6,6},{-62,6}},
- color={0,0,127}));
- connect(multiSum.y, VOEL)
- annotation (Line(points={{81.7,0},{110,0}}, color={0,0,127}));
- connect(imLimitedIntegrator.y, multiSum.u[1]) annotation (Line(points={{31,60},{48.6,60},{48.6,5.25},{60,5.25}},
- color={0,0,127}));
- connect(imLimitedIntegrator1.y, multiSum.u[2]) annotation (Line(points={{31,20},{40.6,20},{40.6,1.75},{60,1.75}},
- color={0,0,127}));
- connect(imLimitedIntegrator2.y, multiSum.u[3]) annotation (Line(points={{31,-20},{44.6,-20},{44.6,-1.75},{60,-1.75}},
- color={0,0,127}));
- connect(imLimitedIntegrator3.y, multiSum.u[4]) annotation (Line(points={{31,-60},{48.6,-60},{48.6,-5.25},{60,-5.25}},
- color={0,0,127}));
- annotation (
- Icon(
- graphics={Rectangle(extent={{-100,100},{100,-100}},
- lineColor={0,0,255}),
- Text(
- extent={{-40,-40},{40,-80}},
- lineColor={0,0,255},
- textString="OEL"),Text(
- extent={{-96,4},{-72,-6}},
- lineColor={0,0,255},
- textString="IFD/EFD"),Text(
- extent={{82,4},{100,-4}},
- lineColor={0,0,255},
- textString="VOEL"),
- Text(
- extent={{-100,100},{100,40}},
- lineColor={0,0,255},
- textString="%name")}),
- Documentation(info="
-
-
-Reference |
-Over Excitation Limiter, PSSE manual |
-
-
-Last update |
-2015-10-02 |
-
-
-Author |
-Le Qi, SmarTS Lab, KTH Royal Institute of Technology |
-
-
-Contact |
-luigiv@kth.se |
-
-
-"));
- end OEL;
-
- model IF_comparisor
- Modelica.Blocks.Interfaces.RealInput p
- annotation (Placement(transformation(extent={{-140,-20},{-100,20}})));
- Modelica.Blocks.Interfaces.RealOutput n1
- annotation (Placement(transformation(extent={{100,50},{120,70}})));
- Modelica.Blocks.Interfaces.RealOutput n2 annotation (Placement(transformation(
- extent={{100,10},{120,30}}),
- iconTransformation(extent={{100,10},{120,30}})));
- parameter Real HighCurrentLimit=1.5;
- parameter Real MediumCurrentLimit=1.2;
- parameter Real LowCurrentLimit=1.1;
- parameter Real LL=1 - HighCurrentLimit;
- parameter Real ML=1 - MediumCurrentLimit;
- parameter Real HL=1 - LowCurrentLimit;
- Modelica.Blocks.Interfaces.RealOutput n3
- annotation (Placement(transformation(extent={{100,-30},{120,-10}})));
- Modelica.Blocks.Interfaces.RealOutput n4
- annotation (Placement(transformation(extent={{100,-70},{120,-50}})));
- equation
- if p >= HL then
- n1 = 100;
- n2 = 0;
- n3 = 0;
- n4 = 0;
- elseif p >= ML and p < HL then
- n1 = 0;
- n2 = -0.1;
- n3 = 0;
- n4 = 0;
- elseif p >= LL and p < ML then
- n1 = 0;
- n2 = 0;
- n3 = -0.2;
- n4 = 0;
- else
- n1 = 0;
- n2 = 0;
- n3 = 0;
- n4 = -0.5;
- end if;
- annotation (
- Icon(graphics={Rectangle(extent={{-100,100},{100,-100}},
- lineColor={
- 0,0,255}),Text(
- extent={{40,-14},{80,-54}},
- lineColor={0,0,255},
- textString=">"),Text(
- extent={{40,66},{80,26}},
- lineColor={0,0,255},
- textString="<"),Line(
- points={{-100,0},{-40,0}},
- color={0,0,255},
- smooth=Smooth.None),Line(
- points={{0,60},{50,60}},
- color={0,0,255},
- smooth=Smooth.None),Line(
- points={{0,-20},{50,-20}},
- color={0,0,255},
- smooth=Smooth.None),Line(
- points={{-40,0},{-16,-10}},
- color={0,0,255},
- smooth=Smooth.None),Ellipse(extent={{-16,-8},{-10,-14}}, lineColor={0,
- 0,255},
- startAngle=0,
- endAngle=360),
- Ellipse(extent={{-4,62},{0,58}}, lineColor={0,0,255}),
- Ellipse(extent={{-4,-18},{0,-22}}, lineColor={0,0,255}),Line(
- points={{0,20},{50,20}},
- color={0,0,255},
- smooth=Smooth.None),Ellipse(extent={{-4,22},{0,18}}, lineColor={0,
- 0,255}),Line(
- points={{0,-60},{48,-60}},
- color={0,0,255},
- smooth=Smooth.None),Ellipse(extent={{-4,-58},{0,-62}}, lineColor={
- 0,0,255}),
- Text(
- extent={{-120,140},{120,100}},
- lineColor={0,0,255},
- textString="%name")}));
- end IF_comparisor;
- annotation (Documentation);
- end OEL;
-
- package ES
- model ConstantExcitation
- extends
- OpenIPSL.Electrical.Controls.PSSE.ES.BaseClasses.BaseExciter;
- initial equation
- V_REF = 0;
- equation
- connect(DiffV.u2, DiffV.u1) annotation (Line(points={{-122,-6},{-132,-6},{-132,
- 6},{-122,6}}, color={0,0,127}));
- connect(EFD0, EFD) annotation (Line(points={{-200,-130},{-20,-130},{160,-130},
- {160,0},{210,0}}, color={0,0,127}));
- annotation (Icon(coordinateSystem(preserveAspectRatio=false)), Diagram(
- coordinateSystem(preserveAspectRatio=false)));
- end ConstantExcitation;
-
- model ESST4B " IEEE type ST4B potential or compounded
- source-controlled rectifier exciter "
- extends
- OpenIPSL.Electrical.Controls.PSSE.ES.BaseClasses.BaseExciter;
- import Modelica.ComplexMath.j;
- import Modelica.ComplexMath.'abs';
- parameter Real T_R=0.3;
- parameter Real K_PR=2.97;
- parameter Real K_IR=2.97;
- parameter Real V_RMAX=1;
- parameter Real V_RMIN=-0.87;
- parameter Real T_A=0.01;
- parameter Real K_PM=1;
- parameter Real K_IM=0.2;
- parameter Real V_MMAX=1;
- parameter Real V_MMIN=-0.87;
- parameter Real K_G=0.1;
- parameter Real K_P=6.73;
- parameter Real K_I=0.1;
- parameter Real V_BMAX=8.41;
- parameter Real K_C=0.1;
- parameter Real X_L=0;
- parameter Real THETAP=0;
- NonElectrical.Logical.LV_GATE lV_Gate
- annotation (Placement(transformation(extent={{120,-70},{144,-58}})));
- Modelica.Blocks.Interfaces.RealInput XADIFD annotation (Placement(
- transformation(
- extent={{-20,-20},{20,20}},
- rotation=90,
- origin={50,-180}), iconTransformation(extent={{-10,-10},{10,10}},
- origin={-200,-70})));
- Modelica.Blocks.Math.Product product
- annotation (Placement(transformation(extent={{160,-80},{180,-60}})));
- NonElectrical.Continuous.SimpleLag VA(
- K=1,
- T=T_A,
- y_start=VR0) annotation (Placement(transformation(
- extent={{-10,-10},{10,10}},
- rotation=0,
- origin={60,0})));
- Modelica.Blocks.Continuous.LimIntegrator VR1(
- outMax=V_RMAX/K_PR,
- outMin=V_RMIN/K_PR,
- k=K_IR,
- initType=Modelica.Blocks.Types.Init.InitialOutput,
- y_start=VR0)
- annotation (Placement(transformation(extent={{-40,-30},{-20,-10}})));
- Modelica.Blocks.Math.Gain Gain1(k=K_PR)
- annotation (Placement(transformation(extent={{-40,10},{-20,30}})));
- Modelica.Blocks.Nonlinear.Limiter limiter(uMax=V_RMAX, uMin=V_RMIN)
- annotation (Placement(transformation(extent={{20,-10},{40,10}})));
- Modelica.Blocks.Math.Add add
- annotation (Placement(transformation(extent={{-10,-10},{10,10}})));
- Modelica.Blocks.Math.Add add1(k1=-1)
- annotation (Placement(transformation(extent={{80,-10},{100,10}})));
- Modelica.Blocks.Math.Gain gain(k=K_G) annotation (Placement(transformation(
- extent={{-10,-10},{10,10}},
- rotation=180,
- origin={120,60})));
- Modelica.Blocks.Continuous.LimIntegrator VM1(
- outMax=V_MMAX/K_PM,
- outMin=V_MMIN/K_PM,
- k=K_IR,
- initType=Modelica.Blocks.Types.Init.InitialOutput,
- y_start=VA0)
- annotation (Placement(transformation(extent={{110,-30},{130,-10}})));
- Modelica.Blocks.Math.Gain Gain2(k=K_PM)
- annotation (Placement(transformation(extent={{110,10},{130,30}})));
- Modelica.Blocks.Nonlinear.Limiter limiter1(uMax=V_RMAX, uMin=V_RMIN)
- annotation (Placement(transformation(extent={{170,-10},{190,10}})));
- Modelica.Blocks.Math.Add add2
- annotation (Placement(transformation(extent={{140,-10},{160,10}})));
- Modelica.Blocks.Nonlinear.Limiter maxLimiter(uMin=-Modelica.Constants.inf,
- uMax=V_BMAX)
- annotation (Placement(transformation(extent={{100,-120},{120,-100}})));
- OpenIPSL.Interfaces.PwPin Gen_terminal annotation (Placement(
- transformation(extent={{-180,120},{-160,140}}),
- iconTransformation(extent={{-180,120},{-160,140}})));
- OpenIPSL.Interfaces.PwPin Bus annotation (Placement(
- transformation(extent={{160,120},{180,140}}),
- iconTransformation(extent={{160,120},{180,140}})));
- Modelica.Blocks.Math.Add3 add3_1
- annotation (Placement(transformation(extent={{-80,-10},{-60,10}})));
- NonElectrical.Continuous.SimpleLag TransducerDelay(
- K=1,
- T=T_R,
- y_start=ECOMP0)
- annotation (Placement(transformation(extent={{-170,-10},{-150,10}})));
- BaseClasses.RectifierCommutationVoltageDrop rectifierCommutationVoltageDrop(
- K_C=K_C)
- annotation (Placement(transformation(extent={{40,-120},{60,-100}})));
- protected
- Modelica.Blocks.Interfaces.RealOutput VE
- annotation (Placement(transformation(extent={{10,-120},{30,-100}})));
- Complex V_T;
- Complex I_T;
- parameter Complex K_P_comp=K_P*cos(THETAP) + j*K_P*sin(THETAP);
- parameter Real Ifd0(fixed=false);
- parameter Real IN0(fixed=false);
- parameter Real VB0(fixed=false);
- parameter Real VA0(fixed=false);
- parameter Real VR0(fixed=false);
- parameter Real VE0(fixed=false);
- initial equation
- Ifd0 = XADIFD;
- VE0 = VE;
- IN0 = K_C*Ifd0/VE0;
- if IN0 <= 0 then
- VB0 = IN0*1;
- elseif IN0 > 0 and IN0 <= 0.433 then
- VB0 = IN0*(1 - 0.577*IN0);
- elseif IN0 > 0.433 and IN0 < 0.75 then
- VB0 = IN0*sqrt(0.75 - IN0^2);
- elseif IN0 >= 0.75 and IN0 <= 1 then
- VB0 = IN0*1.732*(1 - IN0);
- else
- VB0 = IN0*0;
- end if;
- VA0 = Efd0/VB0;
- VR0 = Efd0*K_G;
- V_REF = ECOMP;
- equation
- VE = 'abs'(K_P_comp*V_T + j*(K_I + K_P_comp*X_L)*I_T);
- V_T = Gen_terminal.vr + j*Gen_terminal.vi;
- I_T = Gen_terminal.ir - Bus.ir + j*(Gen_terminal.ii - Bus.ii);
- connect(add.y, limiter.u) annotation (Line(
- points={{11,0},{18,0}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(maxLimiter.y, product.u2) annotation (Line(
- points={{121,-110},{148,-110},{148,-76},{158,-76}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(lV_Gate.p, product.u1) annotation (Line(
- points={{142.5,-64},{158,-64}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(add3_1.y, Gain1.u) annotation (Line(points={{-59,0},{-52,0},{-52,20},
- {-42,20}}, color={0,0,127}));
- connect(VR1.u, Gain1.u) annotation (Line(points={{-42,-20},{-52,-20},{-52,20},
- {-42,20}}, color={0,0,127}));
- connect(ECOMP, TransducerDelay.u)
- annotation (Line(points={{-200,0},{-172,0},{-172,0}}, color={0,0,127}));
- connect(TransducerDelay.y, DiffV.u2) annotation (Line(points={{-149,0},{-132,
- 0},{-132,-6},{-122,-6}}, color={0,0,127}));
- connect(DiffV.y, add3_1.u2)
- annotation (Line(points={{-99,0},{-82,0},{-82,0}}, color={0,0,127}));
- connect(VOTHSG, add3_1.u1) annotation (Line(points={{-200,90},{-92,90},{-92,8},
- {-82,8}}, color={0,0,127}));
- connect(VUEL, add3_1.u3) annotation (Line(points={{-130,-200},{-130,-20},{-92,
- -20},{-92,-8},{-82,-8}}, color={0,0,127}));
- connect(VR1.y, add.u2) annotation (Line(points={{-19,-20},{-16,-20},{-16,-6},
- {-12,-6}}, color={0,0,127}));
- connect(Gain1.y, add.u1) annotation (Line(points={{-19,20},{-16,20},{-16,6},{
- -12,6}}, color={0,0,127}));
- connect(limiter.y, VA.u)
- annotation (Line(points={{41,0},{44.5,0},{48,0}}, color={0,0,127}));
- connect(VA.y, add1.u2)
- annotation (Line(points={{71,0},{74,0},{74,-6},{78,-6}}, color={0,0,127}));
- connect(add1.y, Gain2.u) annotation (Line(points={{101,0},{104,0},{104,20},{
- 108,20}}, color={0,0,127}));
- connect(VM1.u, Gain2.u) annotation (Line(points={{108,-20},{104,-20},{104,20},
- {108,20}}, color={0,0,127}));
- connect(Gain2.y, add2.u1) annotation (Line(points={{131,20},{134,20},{134,6},
- {138,6}}, color={0,0,127}));
- connect(VM1.y, add2.u2) annotation (Line(points={{131,-20},{134,-20},{134,-6},
- {138,-6}}, color={0,0,127}));
- connect(add2.y, limiter1.u)
- annotation (Line(points={{161,0},{164.5,0},{168,0}}, color={0,0,127}));
- connect(product.y, EFD) annotation (Line(points={{181,-70},{198,-70},{198,0},
- {210,0}}, color={0,0,127}));
- connect(lV_Gate.n2, VOEL) annotation (Line(points={{118.5,-67},{0,-67},{0,-160},
- {-70,-160},{-70,-200}}, color={0,0,127}));
- connect(limiter1.y, lV_Gate.n1) annotation (Line(points={{191,0},{194,0},{194,
- -50},{112,-50},{112,-61},{118.5,-61}}, color={0,0,127}));
- connect(gain.u, EFD) annotation (Line(points={{132,60},{198,60},{198,0},{210,
- 0}}, color={0,0,127}));
- connect(gain.y, add1.u1) annotation (Line(points={{109,60},{74,60},{74,6},{78,
- 6}}, color={0,0,127}));
- connect(XADIFD, rectifierCommutationVoltageDrop.XADIFD)
- annotation (Line(points={{50,-180},{50,-180},{50,-121}}, color={0,0,127}));
- connect(rectifierCommutationVoltageDrop.EFD, maxLimiter.u)
- annotation (Line(points={{61,-110},{98,-110}}, color={0,0,127}));
- connect(VE, rectifierCommutationVoltageDrop.V_EX)
- annotation (Line(points={{20,-110},{39,-110}}, color={0,0,127}));
- connect(Gen_terminal, Bus) annotation (Line(points={{-170,130},{170,130},{170,
- 130}}, color={0,0,255}));
- annotation (
- Diagram(coordinateSystem(extent={{-200,-200},{200,160}}, initialScale=0.1),
- graphics={Text(
- extent={{210,-4},{234,-18}},
- lineColor={255,0,0},
- textString="VB")}),
- Icon(coordinateSystem(extent={{-200,-200},{200,160}}, initialScale=0.1),
- graphics={Text(
- extent={{-146,158},{-96,100}},
- lineColor={0,0,255},
- textString="GenT"),Text(
- extent={{-186,-60},{-116,-80}},
- lineColor={28,108,200},
- textString="XADIFD")}),
- Documentation(info="
-
-
-Reference |
-PSS/E Manual |
-
-
-Last update |
-2016-04-29 |
-
-
-Author |
-Tin Rabuzin,SmarTS Lab, KTH Royal Institute of Technology |
-
-
-Contact |
-luigiv@kth.se |
-
-
-"));
- end ESST4B;
-
- model EXNI "Bus or Solid Fed SCR Bridge Excitation System Model Type NI (NVE)"
- extends
- OpenIPSL.Electrical.Controls.PSSE.ES.BaseClasses.BaseExciter;
- parameter Real T_R=0.60000E-01 "Voltage input time constant (s)";
- //0
- parameter Real K_A=150.00 "AVR gain";
- //400
- parameter Real T_A=0 "AVR time constant (s)";
- parameter Real V_RMAX=4 "Maximum AVR output (pu)";
- parameter Real V_RMIN=-4 "Minimum AVR output (pu)";
- parameter Real K_F=0.110000E-01 "Rate feedback gain (pu)";
- parameter Real T_F1=0.40000 "Rate feedback time constant (s)";
- parameter Real T_F2=0.70000 "Rate feedback time constant (s)";
- parameter Boolean SWITCH=false;
- parameter Real r_cr_fd=10;
- OpenIPSL.NonElectrical.Logical.NegCurLogic negCurLogic(RC_rfd=
- r_cr_fd, nstartvalue=Efd0) annotation (Placement(
- transformation(extent={{140,-14},{182,14}})));
- Modelica.Blocks.Math.Add3 add3_1 annotation (Placement(transformation(extent={{-80,-10},{-60,10}})));
- Modelica.Blocks.Continuous.Derivative derivativeLag(
- k=K_F,
- T=T_F1,
- y_start=0,
- initType=Modelica.Blocks.Types.Init.InitialOutput)
- annotation (Placement(transformation(extent={{34,-60},{14,-40}})));
- NonElectrical.Continuous.SimpleLag simpleLag1(
- K=1,
- T=T_F2,
- y_start=0)
- annotation (Placement(transformation(extent={{0,-60},{-20,-40}})));
- Modelica.Blocks.Math.Add add(k2=-1)
- annotation (Placement(transformation(extent={{-40,-10},{-20,10}})));
- Modelica.Blocks.Nonlinear.Limiter limiter(uMax=V_RMAX, uMin=V_RMIN)
- annotation (Placement(transformation(extent={{16,-10},{36,10}})));
- Modelica.Blocks.Math.Product product
- annotation (Placement(transformation(extent={{50,30},{70,50}})));
- Modelica.Blocks.Logical.Switch switch1
- annotation (Placement(transformation(extent={{94,-14},{114,6}})));
- Modelica.Blocks.Sources.BooleanConstant booleanConstant(k=SWITCH)
- annotation (Placement(transformation(extent={{48,60},{68,80}})));
- NonElectrical.Continuous.SimpleLag TransducerDelay(
- K=1,
- T=T_R,
- y_start=ECOMP0)
- annotation (Placement(transformation(extent={{-170,-10},{-150,10}})));
- Modelica.Blocks.Math.Add Limiters annotation (Placement(transformation(
- extent={{-10,-10},{10,10}},
- rotation=90,
- origin={-100,-150})));
- protected
- parameter Real VR0(fixed=false);
- NonElectrical.Continuous.SimpleLag VR(
- K=K_A,
- T=T_A,
- y_start=VR0)
- annotation (Placement(transformation(extent={{-12,-10},{8,10}})));
- initial equation
- if SWITCH then
- VR0 = Efd0;
- V_REF = VR0/K_A + ECOMP0;
- else
- VR0 = Efd0/ECOMP0;
- V_REF = VR0/K_A + ECOMP0;
- end if;
- equation
- connect(simpleLag1.u, derivativeLag.y) annotation (Line(points={{2,-50},{2,-50},{13,-50}}, color={0,0,127}));
- connect(add.y, VR.u) annotation (Line(points={{-19,0},{-19,0},{-14,0}}, color={0,0,127}));
- connect(VR.y, limiter.u) annotation (Line(points={{9,0},{9,0},{14,0}}, color={0,0,127}));
- connect(derivativeLag.u, limiter.y) annotation (Line(points={{36,-50},{64,-50},{64,0},{37,0}}, color={0,0,127}));
- connect(product.u2, limiter.y) annotation (Line(points={{48,34},{44,34},{44,20},{44,0},{37,0}}, color={0,0,127}));
- connect(product.y, switch1.u3) annotation (Line(points={{71,40},{80,40},{80,-12},{92,-12}}, color={0,0,127}));
- connect(booleanConstant.y, switch1.u2) annotation (Line(points={{69,70},{84,70},{84,-4},{92,-4}}, color={255,0,255}));
- connect(negCurLogic.Efd, EFD) annotation (Line(points={{185.5,0},{210,0}}, color={0,0,127}));
- connect(ECOMP, TransducerDelay.u) annotation (Line(points={{-200,0},{-186,0},{-172,0}}, color={0,0,127}));
- connect(TransducerDelay.y, DiffV.u2) annotation (Line(points={{-149,0},{-132,0},{-132,-6},{-122,-6}}, color={0,0,127}));
- connect(DiffV.y, add3_1.u2) annotation (Line(points={{-99,0},{-82,0},{-82,0}}, color={0,0,127}));
- connect(VOTHSG, add3_1.u1) annotation (Line(points={{-200,90},{-90,90},{-90,8},{-82,8}}, color={0,0,127}));
- connect(Limiters.u1, VUEL) annotation (Line(points={{-106,-162},{-106,-170},{-130,-170},{-130,-200}}, color={0,0,127}));
- connect(Limiters.u2, VOEL) annotation (Line(points={{-94,-162},{-94,-170},{-70,-170},{-70,-200}}, color={0,0,127}));
- connect(Limiters.y, add3_1.u3) annotation (Line(points={{-100,-139},{-100,-139},{-100,-30},{-100,-20},{-88,-20},{-88,-8},{-82,-8}}, color={0,0,127}));
- connect(add3_1.y, add.u1) annotation (Line(points={{-59,0},{-48,0},{-48,6},{-42,6}}, color={0,0,127}));
- connect(simpleLag1.y, add.u2) annotation (Line(points={{-21,-50},{-34,-50},{-48,-50},{-48,-6},{-42,-6}}, color={0,0,127}));
- connect(switch1.y, negCurLogic.Vd) annotation (Line(points={{115,-4},{120,-4},{120,7},{136.5,7}}, color={0,0,127}));
- connect(switch1.u1, limiter.y) annotation (Line(points={{92,4},{64,4},{64,0},{37,0}}, color={0,0,127}));
- connect(product.u1, TransducerDelay.u) annotation (Line(points={{48,46},{-140,46},{-140,24},{-178,24},{-178,0},{-172,0}}, color={0,0,127}));
- connect(XADIFD, negCurLogic.XadIfd) annotation (Line(points={{80,-200},{80,
- -200},{80,-54},{120,-54},{120,-7},{128,-7},{136.5,-7}}, color={0,0,
- 127}));
- annotation (
- Diagram(coordinateSystem(preserveAspectRatio=true, extent={{-200,-200},{200,
- 160}})),
- Documentation(info="
-
-
-Reference |
-PSS/E Manual |
-
-
-Last update |
-2016-04-29 |
-
-
-Author |
-Tin Rabuzin,SmarTS Lab, KTH Royal Institute of Technology |
-
-
-Contact |
-luigiv@kth.se |
-
-
-"), Icon(coordinateSystem(extent={{-200,-200},{200,160}}), graphics={Text(
- extent={{-184,-60},{-114,-80}},
- lineColor={28,108,200},
- textString="XADIFD")}));
- end EXNI;
-
- model ST5B "IEEE 421.5 2005 ST5B Excitation System"
- extends
- OpenIPSL.Electrical.Controls.PSSE.ES.BaseClasses.BaseExciter;
- parameter Real T_R=0.025 "Regulator input filter time constant (s)";
- parameter Real T_C1=0.1
- "Lead time constant of first lead-lag block (voltage regulator channel) (s)";
- parameter Real T_B1=0.2
- "Lag time constant of first lead-lag block (voltage regulator channel) (s)";
- parameter Real T_C2=1
- "Lead time constant of second lead-lag block (voltage regulator channel) (s)";
- parameter Real T_B2=1
- "Lag time constant of second lead-lag block (voltage regulator channel) (s)";
- parameter Real K_R=1 "Voltage regulator gain (pu)";
- parameter Real V_RMAX=10 "Voltage regulator maximum limit (pu)";
- parameter Real V_RMIN=-10 "Voltage regulator minimum limit (pu)";
- parameter Real T_1=0.58 "voltage regulator time constant (s)";
- parameter Real K_C=0.3 "(pu)";
- parameter Real T_UC1=1
- "Lead time constant of first lead-lag block (under- excitation channel) (s)";
- parameter Real T_UB1=1
- "Lag time constant of first lead-lag block (under- excitation channel) (s)";
- parameter Real T_UC2=1
- "Lead time constant of second lead-lag block (under- excitation channel) (s)";
- parameter Real T_UB2=1
- "Lag time constant of second lead-lag block (under- excitation channel) (s)";
- parameter Real T_OC1=1
- "Lead time constant of first lead-lag block (over- excitation channel) (s)";
- parameter Real T_OB1=1
- "Lag time constant of first lead-lag block (over- excitation channel) (s)";
- parameter Real T_OC2=1
- "Lead time constant of second lead-lag block (over- excitation channel) (s)";
- parameter Real T_OB2=1
- "Lag time constant of second lead-lag block (over- excitation channel) (s)";
- Modelica.Blocks.Math.Add VERR1 annotation (Placement(transformation(
- extent={{-10,10},{10,-10}},
- rotation=0,
- origin={-10,0})));
- NonElectrical.Logical.LV_GATE lV_Gate
- annotation (Placement(transformation(extent={{-48,0},{-26,12}})));
- NonElectrical.Logical.HV_GATE hV_Gate
- annotation (Placement(transformation(extent={{-84,-4},{-58,10}})));
- NonElectrical.Continuous.LeadLagLim imLimitedLeadLag(
- K=1,
- outMax=V_RMAX/K_R,
- T1=T_C1,
- T2=T_B1,
- outMin=V_RMIN/K_R,
- y_start=VR0/K_R)
- annotation (Placement(transformation(extent={{20,-10},{40,10}})));
- NonElectrical.Continuous.LeadLagLim imLimitedLeadLag2(
- K=1,
- outMax=V_RMAX/K_R,
- T1=T_C2,
- T2=T_B2,
- outMin=V_RMIN/K_R,
- y_start=VR0/K_R)
- annotation (Placement(transformation(extent={{50,-10},{70,10}})));
- Modelica.Blocks.Math.Gain K_r(k=K_R) annotation (Placement(transformation(
- extent={{-10,-9.5},{10,9.5}},
- rotation=0,
- origin={90,0.5})));
- Modelica.Blocks.Nonlinear.Limiter limiter(uMax=V_RMAX, uMin=V_RMIN)
- annotation (Placement(transformation(extent={{108,-10},{128,10}})));
- Modelica.Blocks.Math.Add VERR2(k1=-1, k2=1) annotation (Placement(
- transformation(
- extent={{-10,10},{10,-10}},
- rotation=0,
- origin={150,0})));
- Modelica.Blocks.Math.Gain K_c(k=K_C) annotation (Placement(transformation(
- extent={{-10,-10},{10,10}},
- rotation=90,
- origin={130,-92})));
- NonElectrical.Continuous.LeadLagLim imLimitedLeadLag1(
- K=1,
- T1=T_UC1,
- T2=T_UB1,
- outMin=V_RMIN/K_R,
- y_start=VR0/K_R,
- outMax=V_RMAX/K_R)
- annotation (Placement(transformation(extent={{20,-60},{40,-40}})));
- NonElectrical.Continuous.LeadLagLim imLimitedLeadLag3(
- K=1,
- outMax=V_RMAX/K_R,
- T1=T_UC1,
- T2=T_UB1,
- outMin=V_RMIN/K_R,
- y_start=VR0/K_R)
- annotation (Placement(transformation(extent={{50,-60},{70,-40}})));
- NonElectrical.Continuous.LeadLagLim imLimitedLeadLag4(
- K=1,
- outMax=V_RMAX/K_R,
- T1=T_OC1,
- T2=T_OB1,
- outMin=V_RMIN/K_R,
- y_start=VR0/K_R)
- annotation (Placement(transformation(extent={{20,-100},{40,-80}})));
- NonElectrical.Continuous.LeadLagLim imLimitedLeadLag5(
- K=1,
- outMax=V_RMAX/K_R,
- T1=T_OC1,
- T2=T_OB1,
- outMin=V_RMIN/K_R,
- y_start=VR0/K_R)
- annotation (Placement(transformation(extent={{50,-100},{70,-80}})));
- NonElectrical.Continuous.SimpleLagLimVar simpleLagLimVar(
- K=1,
- T=T_1,
- y_start=Efd0)
- annotation (Placement(transformation(extent={{174,-10},{194,10}})));
- Modelica.Blocks.Math.Gain high(k=V_RMAX) annotation (Placement(transformation(
- extent={{-10,-10},{10,10}},
- rotation=0,
- origin={106,-30})));
- Modelica.Blocks.Math.Gain low(k=V_RMIN) annotation (Placement(transformation(
- extent={{-10,-10},{10,10}},
- rotation=0,
- origin={104,-70})));
- NonElectrical.Continuous.SimpleLag TransducerDelay(
- K=1,
- T=T_R,
- y_start=ECOMP0) annotation (Placement(transformation(extent={{-170,-10},{-150,10}})));
- protected
- parameter Real VR0(fixed=false);
- initial equation
- VR0 = Efd0 + K_C*XADIFD;
- V_REF = VR0/K_R + ECOMP;
- equation
- connect(VERR1.y, imLimitedLeadLag.u) annotation (Line(points={{1,0},{1,0},{18,0}}, color={0,0,127}));
- connect(imLimitedLeadLag.y, imLimitedLeadLag2.u) annotation (Line(points={{41,0},{41,0},{48,0}}, color={0,0,127}));
- connect(imLimitedLeadLag1.u, imLimitedLeadLag.u) annotation (Line(points={{18,-50},{8,-50},{8,0},{18,0}}, color={0,0,127}));
- connect(imLimitedLeadLag1.y, imLimitedLeadLag3.u) annotation (Line(points={{41,-50},{41,-50},{48,-50}}, color={0,0,127}));
- connect(imLimitedLeadLag4.u, imLimitedLeadLag.u) annotation (Line(points={{18,-90},{8,-90},{8,0},{18,0}}, color={0,0,127}));
- connect(VERR2.y, simpleLagLimVar.u) annotation (Line(points={{161,0},{161,0},{172,0}}, color={0,0,127}));
- connect(low.y, simpleLagLimVar.outMin) annotation (Line(points={{115,-70},{176,-70},{176,-14}}, color={0,0,127}));
- connect(high.y, simpleLagLimVar.outMax) annotation (Line(points={{117,-30},{168,-30},{168,32},{192,32},{192,14}}, color={0,0,127}));
- connect(K_c.y, VERR2.u1) annotation (Line(points={{130,-81},{130,-81},{130,-6},{138,-6}}, color={0,0,127}));
- connect(imLimitedLeadLag4.y, imLimitedLeadLag5.u) annotation (Line(points={{41,-90},{41,-90},{48,-90}}, color={0,0,127}));
- connect(imLimitedLeadLag2.y, K_r.u) annotation (Line(points={{71,0},{78,0},{78,0.5}}, color={0,0,127}));
- connect(lV_Gate.p, VERR1.u2) annotation (Line(points={{-27.375,6},{-22,6}}, color={0,0,127}));
- connect(hV_Gate.p, lV_Gate.n2) annotation (Line(points={{-59.625,3},{-54.8125,3},{-54.8125,3},{-49.375,3}}, color={0,0,127}));
- connect(hV_Gate.n2, DiffV.y) annotation (Line(points={{-85.625,-0.5},{-91.8125,-0.5},{-91.8125,0},{-99,0}}, color={0,0,127}));
- connect(hV_Gate.n1, VUEL) annotation (Line(points={{-85.625,6.5},{-92,6.5},{-92,-160},{-130,-160},{-130,-200}}, color={0,0,127}));
- connect(lV_Gate.n1, VOEL) annotation (Line(points={{-49.375,9},{-54,9},{-54,-160},{-70,-160},{-70,-200}}, color={0,0,127}));
- connect(K_r.y, limiter.u) annotation (Line(points={{101,0.5},{104.5,0.5},{104.5,0},{106,0}}, color={0,0,127}));
- connect(limiter.y, VERR2.u2) annotation (Line(points={{129,0},{132,0},{132,6},{138,6}}, color={0,0,127}));
- connect(simpleLagLimVar.y, EFD) annotation (Line(points={{195,0},{210,0},{210,0}}, color={0,0,127}));
- connect(ECOMP, TransducerDelay.u) annotation (Line(points={{-200,0},{-172,0},{-172,0}}, color={0,0,127}));
- connect(TransducerDelay.y, DiffV.u2) annotation (Line(points={{-149,0},{-132,0},{-132,-6},{-122,-6}}, color={0,0,127}));
- connect(high.u, TransducerDelay.u) annotation (Line(points={{94,-30},{-178,-30},{-178,0},{-172,0}}, color={0,0,127}));
- connect(low.u, TransducerDelay.u) annotation (Line(points={{92,-70},{80,-70},{80,-30},{-178,-30},{-178,0},{-172,0}}, color={0,0,127}));
- connect(VOTHSG, VERR1.u1) annotation (Line(points={{-200,90},{-26,90},{-26,-6},{-22,-6}}, color={0,0,127}));
- connect(XADIFD, K_c.u) annotation (Line(points={{80,-200},{80,-200},{80,-124},
- {80,-120},{130,-120},{130,-104}}, color={0,0,127}));
- annotation (
- Diagram(coordinateSystem(
- preserveAspectRatio=true,
- extent={{-200,-200},{200,160}},
- grid={2,2})),
- Icon(coordinateSystem(
- extent={{-200,-200},{200,160}},
- preserveAspectRatio=true,
- grid={2,2}), graphics={Text(
- extent={{-60,154},{62,110}},
- lineColor={28,108,200},
- textString="ST5B"),Text(
- extent={{-184,-52},{-114,-72}},
- lineColor={28,108,200},
- textString="XADIFD")}),
- Documentation(info="
-
-
-Reference |
-PSS/E Manual |
-
-
-Last update |
-2016-04-29 |
-
-
-Author |
-Tin Rabuzin,SmarTS Lab, KTH Royal Institute of Technology |
-
-
-Contact |
-luigiv@kth.se |
-
-
-"));
- end ST5B;
-
- model IEEEX1
- extends
- OpenIPSL.Electrical.Controls.PSSE.ES.BaseClasses.BaseExciter;
- import
- IslandedOperationControl.OpenIPSL.Electrical.Controls.PSSE.ES.BaseClasses.calculate_dc_exciter_params;
- parameter Real T_R "Voltage input time constant (s)";
- parameter Real K_A "AVR gain";
- parameter Real T_A "AVR time constant (s)";
- parameter Real T_B "(s)";
- parameter Real T_C "(s)";
- parameter Real V_RMAX "Maximum AVR output (pu)";
- parameter Real V_RMIN "Minimum AVR output (pu)";
- parameter Real K_E "Exciter field gain";
- parameter Real T_E "Exciter time constant (s)";
- parameter Real K_F "Rate feedback gain (pu)";
- parameter Real T_F1 "Rate feedback time constant (s)";
- parameter Real E_1 "Exciter saturation point 1 (pu)";
- parameter Real S_EE_1 "Saturation at E1";
- parameter Real E_2 "Exciter saturation point 2 (pu)";
- parameter Real S_EE_2 "Saturation at E2";
- NonElectrical.Continuous.LeadLag LL(
- T1=T_C,
- T2=T_B,
- K=1,
- y_start=VR0/K_A,
- x_start=V_REF - ECOMP0)
- annotation (Placement(transformation(extent={{0,-10},{20,10}})));
- Modelica.Blocks.Math.Add3 V_Erro1(k3=-1)
- annotation (Placement(transformation(extent={{-40,-10},{-20,10}})));
- Modelica.Blocks.Continuous.Derivative imDerivativeLag(
- k=K_F,
- T=T_F1,
- y_start=0,
- initType=Modelica.Blocks.Types.Init.InitialOutput,
- x_start=Efd0)
- annotation (Placement(transformation(extent={{80,-60},{60,-40}})));
- Modelica.Blocks.Math.Add3 V_Erro2
- annotation (Placement(transformation(extent={{-80,40},{-60,60}})));
- NonElectrical.Continuous.SimpleLagLim SL(
- K=K_A,
- T=T_A,
- y_start=VR0,
- outMax=V_RMAX0,
- outMin=V_RMIN0)
- annotation (Placement(transformation(extent={{60,-10},{80,10}})));
- BaseClasses.RotatingExciter rotatingExciter(
- T_E=T_E,
- E_1=E_1,
- E_2=E_2,
- S_EE_1=S_EE_1,
- S_EE_2=S_EE_2,
- Efd0=Efd0,
- K_E=K_E0)
- annotation (Placement(transformation(extent={{120,-20},{160,20}})));
- NonElectrical.Continuous.SimpleLag TransducerDelay(
- K=1,
- T=T_R,
- y_start=ECOMP0)
- annotation (Placement(transformation(extent={{-170,-10},{-150,10}})));
- protected
- parameter Real SE_Efd0(fixed=false);
- parameter Real VR0(fixed=false);
- parameter Real V_RMAX0(fixed=false);
- parameter Real K_E0(fixed=false);
- parameter Real V_RMIN0(fixed=false);
- initial equation
- SE_Efd0 = OpenIPSL.NonElectrical.Functions.SE(
- EFD0,
- S_EE_1,
- S_EE_2,
- E_1,
- E_2);
- (V_RMAX0,V_RMIN0,K_E0) = calculate_dc_exciter_params(
- V_RMAX,
- V_RMIN,
- K_E,
- E_2,
- S_EE_2,
- Efd0,
- SE_Efd0);
- VR0 = Efd0*(K_E0 + SE_Efd0);
- V_REF = VR0/K_A + ECOMP0;
- equation
- connect(V_Erro1.y, LL.u)
- annotation (Line(points={{-19,0},{-2,0}}, color={0,0,127}));
- connect(LL.y, SL.u)
- annotation (Line(points={{21,0},{58,0}}, color={0,0,127}));
- connect(DiffV.y, V_Erro1.u2)
- annotation (Line(points={{-99,0},{-42,0}}, color={0,0,127}));
- connect(SL.y, rotatingExciter.I_C)
- annotation (Line(points={{81,0},{117.5,0}}, color={0,0,127}));
- connect(rotatingExciter.EFD, EFD)
- annotation (Line(points={{162.5,0},{210,0}}, color={0,0,127}));
- connect(imDerivativeLag.y, V_Erro1.u3) annotation (Line(points={{59,-50},{-50,
- -50},{-50,-8},{-42,-8}}, color={0,0,127}));
- connect(imDerivativeLag.u, EFD) annotation (Line(points={{82,-50},{180,-50},{
- 180,0},{210,0}}, color={0,0,127}));
- connect(VOTHSG, V_Erro2.u1) annotation (Line(points={{-200,90},{-100,90},{-100,
- 58},{-82,58}}, color={0,0,127}));
- connect(VUEL, V_Erro2.u2) annotation (Line(points={{-130,-200},{-130,-200},{-130,
- -30},{-130,-28},{-94,-28},{-94,50},{-82,50}}, color={0,0,127}));
- connect(VOEL, V_Erro2.u3) annotation (Line(points={{-70,-200},{-70,20},{-88,
- 20},{-88,42},{-82,42}}, color={0,0,127}));
- connect(V_Erro2.y, V_Erro1.u1) annotation (Line(points={{-59,50},{-50,50},{-50,
- 8},{-42,8}}, color={0,0,127}));
- connect(TransducerDelay.y, DiffV.u2) annotation (Line(points={{-149,0},{-132,
- 0},{-132,-6},{-122,-6}}, color={0,0,127}));
- connect(TransducerDelay.u, ECOMP)
- annotation (Line(points={{-172,0},{-200,0}}, color={0,0,127}));
- annotation (
- Diagram(coordinateSystem(
- extent={{-200,-200},{200,160}},
- grid={2,2},
- initialScale=0.1)),
- Icon(coordinateSystem(
- extent={{-200,-200},{200,160}},
- grid={2,2},
- initialScale=0.1), graphics={Text(
- extent={{-130,160},{130,100}},
- lineColor={28,108,200},
- textString="IEEEX1")}),
- Documentation(info="
-
-
-Reference |
-PSS/E Manual |
-
-
-Last update |
-2016-04-29 |
-
-
-Author |
-Tin Rabuzin,SmarTS Lab, KTH Royal Institute of Technology |
-
-
-Contact |
-luigiv@kth.se |
-
-
-"));
- end IEEEX1;
-
- model SEXS "Simplified excitation system model"
- extends
- OpenIPSL.Electrical.Controls.PSSE.ES.BaseClasses.BaseExciter;
- parameter Real T_AT_B;
- parameter Real T_B;
- parameter Real K;
- parameter Real T_E;
- parameter Real E_MIN;
- parameter Real E_MAX;
- Modelica.Blocks.Math.Add3 V_erro(
- k3=1,
- k1=1,
- k2=1) annotation (Placement(transformation(extent={{-40,-10},{-20,10}})));
- NonElectrical.Continuous.SimpleLagLim simpleLagLim(
- K=K,
- T=T_E,
- y_start=Efd0,
- outMax=E_MAX,
- outMin=E_MIN)
- annotation (Placement(transformation(extent={{120,-10},{140,10}})));
- Modelica.Blocks.Math.Add DiffV1 annotation (Placement(transformation(
- extent={{-10,-10},{10,10}},
- rotation=90,
- origin={-100,-50})));
- NonElectrical.Continuous.LeadLag leadLag(
- K=1,
- T1=T_AT_B*T_B,
- T2=T_B,
- y_start=Efd0/K,
- x_start=Efd0/K)
- annotation (Placement(transformation(extent={{40,-10},{60,10}})));
- initial equation
- V_REF = Efd0/K + ECOMP0;
- equation
- connect(simpleLagLim.y, EFD)
- annotation (Line(points={{141,0},{210,0}}, color={0,0,127}));
- connect(DiffV1.u1, VUEL) annotation (Line(points={{-106,-62},{-106,-80},{-130,
- -80},{-130,-200}}, color={0,0,127}));
- connect(DiffV1.u2, VOEL) annotation (Line(points={{-94,-62},{-94,-80},{-70,-80},
- {-70,-200}}, color={0,0,127}));
- connect(DiffV1.y, V_erro.u3) annotation (Line(points={{-100,-39},{-100,-20},{
- -52,-20},{-52,-8},{-42,-8}}, color={0,0,127}));
- connect(DiffV.y, V_erro.u2)
- annotation (Line(points={{-99,0},{-42,0}}, color={0,0,127}));
- connect(V_erro.u1, VOTHSG) annotation (Line(points={{-42,8},{-52,8},{-52,90},
- {-200,90}}, color={0,0,127}));
- connect(ECOMP, DiffV.u2) annotation (Line(points={{-200,0},{-166,0},{-132,0},
- {-132,-6},{-122,-6}}, color={0,0,127}));
- connect(leadLag.y, simpleLagLim.u)
- annotation (Line(points={{61,0},{118,0}}, color={0,0,127}));
- connect(leadLag.u, V_erro.y)
- annotation (Line(points={{38,0},{-19,0}}, color={0,0,127}));
- annotation (
- Diagram(coordinateSystem(extent={{-200,-200},{200,160}}, initialScale=0.1)),
- Icon(coordinateSystem(extent={{-200,-200},{200,160}}, initialScale=0.1),
- graphics={Text(
- extent={{-100,160},{100,100}},
- lineColor={28,108,200},
- textString="SEXS")}),
- Documentation(info="
-
-
-Reference |
-PSS/E Manual |
-
-
-Last update |
-Unknown |
-
-
-Author |
-Mengjia Zhang,SmarTS Lab, KTH Royal Institute of Technology |
-
-
-Contact |
-luigiv@kth.se |
-
-
-"));
- end SEXS;
-
- model ESDC1A
- extends
- OpenIPSL.Electrical.Controls.PSSE.ES.BaseClasses.BaseExciter;
- import IslandedOperationControl.OpenIPSL.NonElectrical.Functions.SE;
- import
- IslandedOperationControl.OpenIPSL.Electrical.Controls.PSSE.ES.BaseClasses.calculate_dc_exciter_params;
- parameter Real T_R=0 "Voltage input time constant (s)";
- parameter Real K_A=400 "AVR gain";
- parameter Real T_A=0.02 "AVR time constant (s)";
- parameter Real T_B=0 "AVR lead-lag time constant (s)";
- parameter Real T_C=0 "AVR lead-lag time constant (s)";
- parameter Real V_RMAX=9 "Maximum AVR output (pu)";
- parameter Real V_RMIN=-5.43 "Minimum AVR output (pu)";
- parameter Real K_E=1 "Exciter field factor (pu)";
- parameter Real T_E=0.8 "Exciter time constant (s)";
- parameter Real K_F=0.03 "Rate feedback gain (pu)";
- parameter Real T_F1=1 "Rate feedback time constant (s)";
- parameter Real E_1=5.25 "Exciter saturation point 1 (pu)";
- parameter Real E_2=7 "Exciter saturation point 2 (pu)";
- parameter Real S_EE_1=0.03 "Saturation at E_1";
- parameter Real S_EE_2=0.1 "Saturation at E_2";
- Modelica.Blocks.Continuous.Derivative imDerivativeLag(
- k=K_F,
- T=T_F1,
- y_start=0,
- initType=Modelica.Blocks.Types.Init.InitialOutput,
- x_start=Efd0)
- annotation (Placement(transformation(extent={{0,-60},{-20,-40}})));
- NonElectrical.Logical.HV_GATE hV_GATE
- annotation (Placement(transformation(extent={{40,-6},{62,6}})));
- NonElectrical.Continuous.LeadLag imLeadLag(
- K=1,
- T1=T_C,
- T2=T_B,
- y_start=V_R0/K_A)
- annotation (Placement(transformation(extent={{-20,-10},{0,10}})));
- Modelica.Blocks.Math.Add3 add3_1(k3=-1)
- annotation (Placement(transformation(extent={{-60,-10},{-40,10}})));
- OpenIPSL.NonElectrical.Continuous.SimpleLagLim simpleLagLim(
- K=K_A,
- T=T_A,
- y_start=V_R0,
- outMax=V_RMAX0,
- outMin=V_RMIN0) annotation (Placement(transformation(extent={{
- 80,-10},{100,10}})));
- BaseClasses.RotatingExciterLimited rotatingExciterLimited(
- T_E=T_E,
- E_1=E_1,
- E_2=E_2,
- S_EE_1=S_EE_1,
- S_EE_2=S_EE_2,
- Efd0=Efd0,
- K_E=K_E0)
- annotation (Placement(transformation(extent={{120,-10},{140,10}})));
- NonElectrical.Continuous.SimpleLag TransducerDelay(
- K=1,
- T=T_R,
- y_start=ECOMP0)
- annotation (Placement(transformation(extent={{-170,-10},{-150,10}})));
- Modelica.Blocks.Math.Add DiffV1
- annotation (Placement(transformation(extent={{-90,30},{-70,50}})));
- protected
- parameter Real V_R0(fixed=false);
- parameter Real V_RMAX0(fixed=false);
- parameter Real K_E0(fixed=false);
- parameter Real V_RMIN0(fixed=false);
- parameter Real SE_Efd0(fixed=false);
- initial equation
- SE_Efd0 = OpenIPSL.NonElectrical.Functions.SE(
- Efd0,
- S_EE_1,
- S_EE_2,
- E_1,
- E_2);
- (V_RMAX0,V_RMIN0,K_E0) = calculate_dc_exciter_params(
- V_RMAX,
- V_RMIN,
- K_E,
- E_2,
- S_EE_2,
- Efd0,
- SE_Efd0);
- V_R0 = Efd0*(K_E0 + SE_Efd0);
- V_REF = V_R0/K_A + ECOMP0;
- equation
- connect(add3_1.y, imLeadLag.u)
- annotation (Line(points={{-39,0},{-36,0},{-22,0}}, color={0,0,127}));
- connect(hV_GATE.p, simpleLagLim.u)
- annotation (Line(points={{60.625,0},{60.625,0},{78,0}}, color={0,0,127}));
- connect(simpleLagLim.y, rotatingExciterLimited.I_C)
- annotation (Line(points={{101,0},{101,0},{118.75,0}}, color={0,0,127}));
- connect(ECOMP, TransducerDelay.u)
- annotation (Line(points={{-200,0},{-172,0},{-172,0}}, color={0,0,127}));
- connect(TransducerDelay.y, DiffV.u2) annotation (Line(points={{-149,0},{-132,
- 0},{-132,-6},{-122,-6}}, color={0,0,127}));
- connect(rotatingExciterLimited.EFD, EFD)
- annotation (Line(points={{141.25,0},{210,0},{210,0}}, color={0,0,127}));
- connect(imLeadLag.y, hV_GATE.n1) annotation (Line(points={{1,0},{32,0},{32,3},
- {38.625,3}}, color={0,0,127}));
- connect(VUEL, hV_GATE.n2) annotation (Line(points={{-130,-200},{-128,-200},{-128,
- -80},{32,-80},{32,-3},{38.625,-3}}, color={0,0,127}));
- connect(imDerivativeLag.u, EFD) annotation (Line(points={{2,-50},{160,-50},{
- 160,0},{210,0}}, color={0,0,127}));
- connect(imDerivativeLag.y, add3_1.u3) annotation (Line(points={{-21,-50},{-46,
- -50},{-72,-50},{-72,-8},{-62,-8}}, color={0,0,127}));
- connect(DiffV.y, add3_1.u2)
- annotation (Line(points={{-99,0},{-62,0},{-62,0}}, color={0,0,127}));
- connect(VOTHSG, DiffV1.u1) annotation (Line(points={{-200,90},{-150,90},{-96,
- 90},{-96,46},{-92,46}}, color={0,0,127}));
- connect(VOEL, DiffV1.u2) annotation (Line(points={{-70,-200},{-70,-200},{-70,
- -60},{-96,-60},{-96,34},{-92,34}}, color={0,0,127}));
- connect(DiffV1.y, add3_1.u1) annotation (Line(points={{-69,40},{-66,40},{-66,
- 8},{-62,8}}, color={0,0,127}));
- annotation (
- Diagram(coordinateSystem(
- extent={{-200,-200},{200,160}},
- grid={2,2},
- initialScale=0.1)),
- Icon(coordinateSystem(
- extent={{-200,-200},{200,160}},
- grid={2,2},
- initialScale=0.1), graphics={Text(
- extent={{-120,154},{140,94}},
- lineColor={28,108,200},
- textString="ESDC1A")}),
- Documentation(info="
-
-
-Reference |
-ESDC1A, PSS/E Manual |
-
-
-Last update |
-Major change - 2016-01-19 |
-
-
-Author |
-Tin Rabuzin, SmarTS Lab, KTH Royal Institute of Technology |
-
-
-Contact |
-luigiv@kth.se |
-
-
-"));
- end ESDC1A;
-
- model ESDC2A
- extends
- OpenIPSL.Electrical.Controls.PSSE.ES.BaseClasses.BaseExciter;
- import IslandedOperationControl.OpenIPSL.NonElectrical.Functions.SE;
- import
- IslandedOperationControl.OpenIPSL.Electrical.Controls.PSSE.ES.BaseClasses.calculate_dc_exciter_params;
- parameter Real T_R=0 "Voltage input time constant (s)";
- parameter Real K_A=400 "AVR gain";
- parameter Real T_A=0.02 "AVR time constant (s)";
- parameter Real T_B=0 "AVR lead-lag time constant (s)";
- parameter Real T_C=0 "AVR lead-lag time constant (s)";
- parameter Real V_RMAX=9 "Maximum AVR output (pu)";
- parameter Real V_RMIN=-5.43 "Minimum AVR output (pu)";
- parameter Real K_E=1 "Exciter field factor (pu)";
- parameter Real T_E=0.8 "Exciter time constant (s)";
- parameter Real K_F=0.03 "Rate feedback gain (pu)";
- parameter Real T_F1=1 "Rate feedback time constant (s)";
- parameter Real E_1=5.25 "Exciter saturation point 1 (pu)";
- parameter Real E_2=7 "Exciter saturation point 2 (pu)";
- parameter Real S_EE_1=0.03 "Saturation at E_1";
- parameter Real S_EE_2=0.1 "Saturation at E_2";
- Modelica.Blocks.Continuous.Derivative imDerivativeLag(
- k=K_F,
- T=T_F1,
- y_start=0,
- initType=Modelica.Blocks.Types.Init.InitialOutput,
- x_start=Efd0)
- annotation (Placement(transformation(extent={{0,-60},{-20,-40}})));
- NonElectrical.Logical.HV_GATE hV_GATE
- annotation (Placement(transformation(extent={{40,-6},{62,6}})));
- NonElectrical.Continuous.LeadLag imLeadLag(
- K=1,
- T1=T_C,
- T2=T_B,
- y_start=V_R0/K_A)
- annotation (Placement(transformation(extent={{-20,-10},{0,10}})));
- Modelica.Blocks.Math.Add3 add3_1(k3=-1)
- annotation (Placement(transformation(extent={{-60,-10},{-40,10}})));
- BaseClasses.RotatingExciterLimited rotatingExciterLimited(
- T_E=T_E,
- E_1=E_1,
- E_2=E_2,
- S_EE_1=S_EE_1,
- S_EE_2=S_EE_2,
- Efd0=Efd0,
- K_E=K_E0)
- annotation (Placement(transformation(extent={{120,-10},{140,10}})));
- NonElectrical.Continuous.SimpleLag TransducerDelay(
- K=1,
- T=T_R,
- y_start=ECOMP0)
- annotation (Placement(transformation(extent={{-170,-10},{-150,10}})));
- Modelica.Blocks.Math.Add DiffV1
- annotation (Placement(transformation(extent={{-90,30},{-70,50}})));
- NonElectrical.Continuous.SimpleLagLimVar simpleLagLimVar(
- K=K_A,
- T=T_A,
- y_start=V_R0)
- annotation (Placement(transformation(extent={{80,-10},{100,10}})));
- Modelica.Blocks.Interfaces.RealInput VT annotation (Placement(transformation(
- extent={{-20,-20},{20,20}},
- rotation=90,
- origin={102,-120}), iconTransformation(
- extent={{-10,-10},{10,10}},
- rotation=0,
- origin={-200,-70})));
- Modelica.Blocks.Math.Gain gain(k=V_RMIN0) annotation (Placement(
- transformation(
- extent={{-10,-10},{10,10}},
- rotation=90,
- origin={82,-70})));
- Modelica.Blocks.Math.Gain gain1(k=V_RMAX0) annotation (Placement(
- transformation(
- extent={{-10,-10},{10,10}},
- rotation=90,
- origin={110,-70})));
- protected
- parameter Real V_R0(fixed=false);
- parameter Real V_RMAX0(fixed=false);
- parameter Real K_E0(fixed=false);
- parameter Real V_RMIN0(fixed=false);
- parameter Real SE_Efd0(fixed=false);
- initial equation
- SE_Efd0 = OpenIPSL.NonElectrical.Functions.SE(
- Efd0,
- S_EE_1,
- S_EE_2,
- E_1,
- E_2);
- (V_RMAX0,V_RMIN0,K_E0) = calculate_dc_exciter_params(
- V_RMAX,
- V_RMIN,
- K_E,
- E_2,
- S_EE_2,
- Efd0,
- SE_Efd0);
- V_R0 = Efd0*(K_E0 + SE_Efd0);
- V_REF = V_R0/K_A + ECOMP0;
- equation
- connect(add3_1.y, imLeadLag.u)
- annotation (Line(points={{-39,0},{-36,0},{-22,0}}, color={0,0,127}));
- connect(ECOMP, TransducerDelay.u)
- annotation (Line(points={{-200,0},{-172,0},{-172,0}}, color={0,0,127}));
- connect(TransducerDelay.y, DiffV.u2) annotation (Line(points={{-149,0},{-132,
- 0},{-132,-6},{-122,-6}}, color={0,0,127}));
- connect(rotatingExciterLimited.EFD, EFD)
- annotation (Line(points={{141.25,0},{210,0},{210,0}}, color={0,0,127}));
- connect(imLeadLag.y, hV_GATE.n1) annotation (Line(points={{1,0},{32,0},{32,3},
- {38.625,3}}, color={0,0,127}));
- connect(VUEL, hV_GATE.n2) annotation (Line(points={{-130,-200},{-128,-200},{-128,
- -80},{32,-80},{32,-3},{38.625,-3}}, color={0,0,127}));
- connect(imDerivativeLag.u, EFD) annotation (Line(points={{2,-50},{160,-50},{
- 160,0},{210,0}}, color={0,0,127}));
- connect(imDerivativeLag.y, add3_1.u3) annotation (Line(points={{-21,-50},{-46,
- -50},{-72,-50},{-72,-8},{-62,-8}}, color={0,0,127}));
- connect(DiffV.y, add3_1.u2)
- annotation (Line(points={{-99,0},{-62,0},{-62,0}}, color={0,0,127}));
- connect(VOTHSG, DiffV1.u1) annotation (Line(points={{-200,90},{-150,90},{-96,
- 90},{-96,46},{-92,46}}, color={0,0,127}));
- connect(VOEL, DiffV1.u2) annotation (Line(points={{-70,-200},{-70,-200},{-70,
- -60},{-96,-60},{-96,34},{-92,34}}, color={0,0,127}));
- connect(DiffV1.y, add3_1.u1) annotation (Line(points={{-69,40},{-66,40},{-66,
- 8},{-62,8}}, color={0,0,127}));
- connect(simpleLagLimVar.u, hV_GATE.p)
- annotation (Line(points={{78,0},{60.625,0}}, color={0,0,127}));
- connect(simpleLagLimVar.y, rotatingExciterLimited.I_C)
- annotation (Line(points={{101,0},{118.75,0}}, color={0,0,127}));
- connect(VT, gain.u) annotation (Line(points={{102,-120},{102,-92},{82,-92},{
- 82,-82}}, color={0,0,127}));
- connect(gain.y, simpleLagLimVar.outMin)
- annotation (Line(points={{82,-59},{82,-36},{82,-14}}, color={0,0,127}));
- connect(gain1.y, simpleLagLimVar.outMax) annotation (Line(points={{110,-59},{
- 110,-59},{110,20},{98,20},{98,14}}, color={0,0,127}));
- connect(gain1.u, gain.u) annotation (Line(points={{110,-82},{110,-92},{82,-92},
- {82,-82}}, color={0,0,127}));
- annotation (
- Diagram(coordinateSystem(
- extent={{-200,-200},{200,160}},
- grid={2,2},
- initialScale=0.1)),
- Icon(coordinateSystem(
- extent={{-200,-200},{200,160}},
- grid={2,2},
- initialScale=0.1), graphics={Text(
- extent={{-120,154},{140,94}},
- lineColor={28,108,200},
- textString="ESDC1A"),Text(
- extent={{-186,-60},{-150,-80}},
- lineColor={28,108,200},
- textString="VT")}),
- Documentation(info="
-
-
-Reference |
-ESDC1A, PSS/E Manual |
-
-
-Last update |
-Major change - 2016-01-19 |
-
-
-Author |
-Tin Rabuzin, SmarTS Lab, KTH Royal Institute of Technology |
-
-
-Contact |
-luigiv@kth.se |
-
-
-"));
- end ESDC2A;
-
- model EXAC1
- extends
- OpenIPSL.Electrical.Controls.PSSE.ES.BaseClasses.BaseExciter;
- import IslandedOperationControl.OpenIPSL.Electrical.Controls.PSSE.ES.BaseClasses.invFEX;
- import IslandedOperationControl.OpenIPSL.NonElectrical.Functions.SE;
- Modelica.Blocks.Interfaces.RealInput XADIFD "Field current" annotation (
- Placement(transformation(
- extent={{-10,-10},{10,10}},
- rotation=90,
- origin={150,-50}), iconTransformation(extent={{-210,-80},{-190,-60}})));
- OpenIPSL.NonElectrical.Continuous.SimpleLagLim imLimitedSimpleLag(
- K=K_A,
- T=T_A,
- outMin=V_RMIN,
- outMax=V_RMAX,
- y_start=VR0) annotation (Placement(transformation(extent={{60,-10},
- {80,10}})));
- parameter Real T_R=0 "Voltage input time constant (s)";
- parameter Real T_B=0 "AVR lead-lag time constant (s)";
- parameter Real T_C=0 "AVR lead-lag time constant (s)";
- parameter Real K_A=400 "AVR gain (pu)";
- parameter Real T_A=0.02 "AVR time constant (s)";
- parameter Real V_RMAX=9 "Maximum AVR output (pu)";
- parameter Real V_RMIN=-5.43 "Minimum AVR output (pu)";
- parameter Real T_E=0.8 "Exciter time constant (s)";
- parameter Real K_F=0.03 "Rate feedback gain (pu)";
- parameter Real T_F=1 "Rate feedback time const (s)";
- parameter Real K_C=0.2 "Rectifier load factor (pu)";
- parameter Real K_D=0.48 "Exciter demagnetizing factor (pu)";
- parameter Real K_E=1 "Exciter field factor (pu)";
- parameter Real E_1=5.25 "Exciter saturation point 1 (pu)";
- parameter Real E_2=7 "Exciter saturation point 2 (pu)";
- parameter Real S_EE_1=0.03 "Saturation at E1";
- parameter Real S_EE_2=0.1 "Saturation at E2";
- Modelica.Blocks.Continuous.Derivative imDerivativeLag(
- k=K_F,
- T=T_F,
- y_start=0,
- initType=Modelica.Blocks.Types.Init.InitialOutput,
- x_start=VFE0)
- annotation (Placement(transformation(extent={{20,-60},{0,-40}})));
- NonElectrical.Continuous.LeadLag leadLag(
- K=1,
- T1=T_C,
- T2=T_B,
- y_start=VR0/K_A,
- x_start=VR0/K_A)
- annotation (Placement(transformation(extent={{0,-10},{20,10}})));
- Modelica.Blocks.Math.Add3 add3_1(k3=-1)
- annotation (Placement(transformation(extent={{-60,-10},{-40,10}})));
- BaseClasses.RectifierCommutationVoltageDrop rectifierCommutationVoltageDrop(
- K_C=K_C)
- annotation (Placement(transformation(extent={{140,-10},{160,10}})));
- BaseClasses.RotatingExciterWithDemagnetizationLimited
- rotatingExciterWithDemagnetizationLimited(
- T_E=T_E,
- K_E=K_E,
- E_1=E_1,
- E_2=E_2,
- S_EE_1=S_EE_1,
- S_EE_2=S_EE_2,
- K_D=K_D,
- Efd0=VE0)
- annotation (Placement(transformation(extent={{100,-10},{120,10}})));
- NonElectrical.Continuous.SimpleLag TransducerDelay(
- K=1,
- T=T_R,
- y_start=ECOMP0)
- annotation (Placement(transformation(extent={{-170,-10},{-150,10}})));
- Modelica.Blocks.Math.Add3 add3_2 annotation (Placement(transformation(
- extent={{-10,-10},{10,10}},
- rotation=90,
- origin={-100,-90})));
- protected
- parameter Real VR0(fixed=false);
- parameter Real Ifd0(fixed=false);
- parameter Real VE0(fixed=false);
- parameter Real VFE0(fixed=false);
- initial equation
- Ifd0 = XADIFD;
- // Finding initial value of excitation voltage, VE0, via going through conditions of FEX function
- VE0 = invFEX(
- K_C=K_C,
- Efd0=Efd0,
- Ifd0=Ifd0);
- // Case IN>0 not checked because it will be resolved in the next iteration
- VFE0 = VE0*(SE(
- VE0,
- S_EE_1,
- S_EE_2,
- E_1,
- E_2) + K_E) + Ifd0*K_D;
- VR0 = VFE0;
- V_REF = VR0/K_A + ECOMP0;
- equation
- connect(leadLag.y, imLimitedSimpleLag.u)
- annotation (Line(points={{21,0},{58,0}}, color={0,0,127}));
- connect(add3_1.y, leadLag.u)
- annotation (Line(points={{-39,0},{-22,0},{-2,0}}, color={0,0,127}));
- connect(rectifierCommutationVoltageDrop.XADIFD, XADIFD)
- annotation (Line(points={{150,-11},{150,-50}}, color={0,0,127}));
- connect(rotatingExciterWithDemagnetizationLimited.EFD,
- rectifierCommutationVoltageDrop.V_EX)
- annotation (Line(points={{121.25,0},{139,0}}, color={0,0,127}));
- connect(imLimitedSimpleLag.y, rotatingExciterWithDemagnetizationLimited.I_C)
- annotation (Line(points={{81,0},{98.75,0}}, color={0,0,127}));
- connect(rectifierCommutationVoltageDrop.EFD, EFD)
- annotation (Line(points={{161,0},{210,0}}, color={0,0,127}));
- connect(rotatingExciterWithDemagnetizationLimited.XADIFD, XADIFD) annotation (
- Line(points={{110,-11.25},{112,-11.25},{112,-36},{150,-36},{150,-50}},
- color={0,0,127}));
- connect(imDerivativeLag.u, rotatingExciterWithDemagnetizationLimited.V_FE)
- annotation (Line(points={{22,-50},{56,-50},{90,-50},{90,-6.25},{98.75,-6.25}},
- color={0,0,127}));
- connect(DiffV.y, add3_1.u2)
- annotation (Line(points={{-99,0},{-80,0},{-62,0}}, color={0,0,127}));
- connect(ECOMP, TransducerDelay.u)
- annotation (Line(points={{-200,0},{-172,0}}, color={0,0,127}));
- connect(TransducerDelay.y, DiffV.u2) annotation (Line(points={{-149,0},{-132,
- 0},{-132,-6},{-122,-6}}, color={0,0,127}));
- connect(VOEL, add3_2.u3) annotation (Line(points={{-70,-200},{-70,-114},{-92,
- -114},{-92,-102}}, color={0,0,127}));
- connect(VUEL, add3_2.u2) annotation (Line(points={{-130,-200},{-130,-114},{-100,
- -114},{-100,-102}}, color={0,0,127}));
- connect(VOTHSG, add3_2.u1) annotation (Line(points={{-200,90},{-178,90},{-178,
- -110},{-108,-110},{-108,-102}}, color={0,0,127}));
- connect(add3_2.y, add3_1.u1) annotation (Line(points={{-100,-79},{-98,-79},{-98,
- -20},{-90,-20},{-90,8},{-62,8}}, color={0,0,127}));
- connect(imDerivativeLag.y, add3_1.u3) annotation (Line(points={{-1,-50},{-26,
- -50},{-70,-50},{-70,-8},{-62,-8}}, color={0,0,127}));
- annotation (
- Diagram(coordinateSystem(extent={{-200,-200},{200,160}}, initialScale=0.1)),
- Icon(coordinateSystem(extent={{-200,-200},{200,160}}, initialScale=0.1),
- graphics={Text(
- extent={{-184,-62},{-114,-82}},
- lineColor={28,108,200},
- textString="XADIFD"),Text(
- extent={{-120,158},{140,98}},
- lineColor={28,108,200},
- textString="EXAC1")}),
- Documentation(info="
-
-
-Reference |
-EXAC2, PSS/E Manual |
-
-
-Last update |
-2015-11-26 |
-
-
-Author |
-Tin Rabuzin, SmarTS Lab, KTH Royal Institute of Technology |
-
-
-Contact |
-luigiv@kth.se |
-
-
-"));
- end EXAC1;
-
- model EXAC2
- extends
- OpenIPSL.Electrical.Controls.PSSE.ES.BaseClasses.BaseExciter;
- import IslandedOperationControl.OpenIPSL.Electrical.Controls.PSSE.ES.BaseClasses.invFEX;
- import IslandedOperationControl.OpenIPSL.NonElectrical.Functions.SE;
- Modelica.Blocks.Interfaces.RealInput XADIFD "Field current" annotation (
- Placement(
- visible=true,
- transformation(
- origin={160,-48},
- extent={{-10,-10},{10,10}},
- rotation=90),
- iconTransformation(
- origin={-198,-70},
- extent={{-10,-10},{10,10}},
- rotation=0)));
- OpenIPSL.NonElectrical.Continuous.SimpleLagLim imLimitedSimpleLag(
- K=K_A,
- T=T_A,
- outMax=V_AMAX,
- outMin=V_AMIN,
- y_start=VA0) annotation (Placement(transformation(extent={{-20,
- -10},{0,10}})));
- parameter Real T_R=0 "Voltage input time constant (s)";
- parameter Real T_B=0 "AVR lead-lag time constant (s)";
- parameter Real T_C=0 "AVR lead-lag time constant (s)";
- parameter Real K_A=400 "AVR gain (pu)";
- parameter Real T_A=0.02 "AVR time constant (s)";
- parameter Real K_B;
- parameter Real V_RMAX=9 "Maximum AVR output (pu)";
- parameter Real V_RMIN=-5.43 "Minimum AVR output (pu)";
- parameter Real V_AMAX=9 "Maximum AVR output (pu)";
- parameter Real V_AMIN=-5.43 "Minimum AVR output (pu)";
- parameter Real T_E=0.8 "Exciter time constant (s)";
- parameter Real K_L;
- parameter Real K_H;
- parameter Real K_F=0.03 "Rate feedback gain (pu)";
- parameter Real T_F=1 "Rate feedback time const (s)";
- parameter Real K_C=0.2 "Rectifier load factor (pu)";
- parameter Real K_D=0.48 "Exciter demagnetizing factor (pu)";
- parameter Real K_E=1 "Exciter field factor (pu)";
- parameter Real V_LR "Limit value of excitation voltage (pu)";
- parameter Real E_1=5.25 "Exciter saturation point 1 (pu)";
- parameter Real E_2=7 "Exciter saturation point 2 (pu)";
- parameter Real S_EE_1=0.03 "Saturation at E1";
- parameter Real S_EE_2=0.1 "Saturation at E2";
- Modelica.Blocks.Continuous.Derivative imDerivativeLag(
- k=K_F,
- T=T_F,
- y_start=0,
- initType=Modelica.Blocks.Types.Init.InitialOutput,
- x_start=VFE0)
- annotation (Placement(transformation(extent={{20,-100},{0,-80}})));
- NonElectrical.Continuous.LeadLag leadLag(
- K=1,
- T1=T_C,
- T2=T_B,
- y_start=VA0/K_A,
- x_start=VA0/K_A)
- annotation (Placement(transformation(extent={{-50,-10},{-30,10}})));
- Modelica.Blocks.Math.Add3 add3_1(k3=-1)
- annotation (Placement(transformation(extent={{-80,-10},{-60,10}})));
- BaseClasses.RectifierCommutationVoltageDrop rectifierCommutationVoltageDrop(
- K_C=K_C)
- annotation (Placement(transformation(extent={{170,-10},{190,10}})));
- BaseClasses.RotatingExciterWithDemagnetizationLimited
- rotatingExciterWithDemagnetizationLimited(
- T_E=T_E,
- K_E=K_E,
- E_1=E_1,
- E_2=E_2,
- S_EE_1=S_EE_1,
- S_EE_2=S_EE_2,
- K_D=K_D,
- Efd0=VE0)
- annotation (Placement(transformation(extent={{130,-10},{150,10}})));
- NonElectrical.Continuous.SimpleLag TransducerDelay(
- K=1,
- T=T_R,
- y_start=ECOMP0)
- annotation (Placement(transformation(extent={{-170,-10},{-150,10}})));
- Modelica.Blocks.Math.Add3 add3_2 annotation (Placement(transformation(
- extent={{-10,-10},{10,10}},
- rotation=90,
- origin={-100,-90})));
- Modelica.Blocks.Math.Add DiffV1(k2=-1)
- annotation (Placement(transformation(extent={{20,-10},{40,10}})));
- Modelica.Blocks.Math.Gain gain(k=K_H)
- annotation (Placement(transformation(extent={{60,-80},{40,-60}})));
- OpenIPSL.NonElectrical.Logical.LV_GATE lV_GATE
- annotation (Placement(transformation(extent={{46,-6},{68,6}})));
- Modelica.Blocks.Math.Gain gain1(k=K_B)
- annotation (Placement(transformation(extent={{76,-8},{92,8}})));
- Modelica.Blocks.Nonlinear.Limiter limiter(uMax=V_RMAX, uMin=V_RMIN)
- annotation (Placement(transformation(extent={{100,-10},{120,10}})));
- Modelica.Blocks.Math.Gain gain3(k=K_L) annotation (Placement(transformation(
- extent={{10,-10},{-10,10}},
- rotation=0,
- origin={62,-30})));
- Modelica.Blocks.Math.Add add3(k1=-1, k2=+1) annotation (Placement(
- transformation(
- extent={{-10,-10},{10,10}},
- rotation=180,
- origin={90,-30})));
- Modelica.Blocks.Sources.Constant Vref1(k=V_LR) annotation (Placement(
- transformation(
- extent={{10,-10},{-10,10}},
- rotation=0,
- origin={150,-90})));
- protected
- parameter Real VA0(fixed=false);
- parameter Real VR0(fixed=false);
- parameter Real VFE0(fixed=false);
- parameter Real Ifd0(fixed=false);
- parameter Real VE0(fixed=false);
- initial equation
- Ifd0 = XADIFD;
- // Finding initial value of excitation voltage, VE0, via going through conditions of FEX function
- VE0 = invFEX(
- K_C=K_C,
- Efd0=Efd0,
- Ifd0=Ifd0);
- // Case IN>0 not checked because it will be resolved in the next iteration
- VFE0 = VE0*(SE(
- VE0,
- S_EE_1,
- S_EE_2,
- E_1,
- E_2) + K_E) + Ifd0*K_D;
- VR0 = VFE0;
- VA0 = VR0/K_B + VFE0*K_H;
- V_REF = VA0/K_A + ECOMP0;
- equation
- connect(rectifierCommutationVoltageDrop.XADIFD, XADIFD) annotation (Line(
- points={{180,-11},{180,-30.5},{160,-30.5},{160,-48}}, color={0,0,127}));
- connect(rotatingExciterWithDemagnetizationLimited.XADIFD, XADIFD) annotation (
- Line(points={{140,-11.25},{140,-30},{160,-30},{160,-48}}, color={0,0,127}));
- connect(leadLag.y, imLimitedSimpleLag.u)
- annotation (Line(points={{-29,0},{-29,0},{-22,0}}, color={0,0,127}));
- connect(add3_1.y, leadLag.u)
- annotation (Line(points={{-59,0},{-52,0}}, color={0,0,127}));
- connect(rotatingExciterWithDemagnetizationLimited.EFD,
- rectifierCommutationVoltageDrop.V_EX)
- annotation (Line(points={{151.25,0},{151.25,0},{169,0}}, color={0,0,127}));
- connect(rectifierCommutationVoltageDrop.EFD, EFD)
- annotation (Line(points={{191,0},{192,0},{210,0}}, color={0,0,127}));
- connect(imDerivativeLag.u, rotatingExciterWithDemagnetizationLimited.V_FE)
- annotation (Line(points={{22,-90},{22,-90},{124,-90},{124,-6.25},{128.75,-6.25}},
- color={0,0,127}));
- connect(DiffV.y, add3_1.u2)
- annotation (Line(points={{-99,0},{-82,0}}, color={0,0,127}));
- connect(ECOMP, TransducerDelay.u)
- annotation (Line(points={{-200,0},{-172,0}}, color={0,0,127}));
- connect(TransducerDelay.y, DiffV.u2) annotation (Line(points={{-149,0},{-132,
- 0},{-132,-6},{-122,-6}}, color={0,0,127}));
- connect(VOEL, add3_2.u3) annotation (Line(points={{-70,-200},{-70,-114},{-92,
- -114},{-92,-102}}, color={0,0,127}));
- connect(VUEL, add3_2.u2) annotation (Line(points={{-130,-200},{-130,-114},{-100,
- -114},{-100,-102}}, color={0,0,127}));
- connect(VOTHSG, add3_2.u1) annotation (Line(points={{-200,90},{-178,90},{-178,
- -110},{-108,-110},{-108,-102}}, color={0,0,127}));
- connect(add3_2.y, add3_1.u1) annotation (Line(points={{-100,-79},{-98,-79},{-98,
- -20},{-90,-20},{-90,8},{-82,8}}, color={0,0,127}));
- connect(imDerivativeLag.y, add3_1.u3) annotation (Line(points={{-1,-90},{-1,-90},
- {-86,-90},{-86,-8},{-82,-8}}, color={0,0,127}));
- connect(imLimitedSimpleLag.y, DiffV1.u1)
- annotation (Line(points={{1,0},{18,0},{18,6}}, color={0,0,127}));
- connect(gain.y, DiffV1.u2) annotation (Line(points={{39,-70},{10,-70},{10,-6},
- {18,-6}}, color={0,0,127}));
- connect(gain.u, rotatingExciterWithDemagnetizationLimited.V_FE) annotation (
- Line(points={{62,-70},{124,-70},{124,-6.25},{128.75,-6.25}}, color={0,0,
- 127}));
- connect(limiter.y, rotatingExciterWithDemagnetizationLimited.I_C)
- annotation (Line(points={{121,0},{128.75,0},{128.75,0}}, color={0,0,127}));
- connect(add3.u1, rotatingExciterWithDemagnetizationLimited.V_FE) annotation (
- Line(points={{102,-36},{124,-36},{124,-6.25},{128.75,-6.25}}, color={0,0,
- 127}));
- connect(gain3.u, add3.y)
- annotation (Line(points={{74,-30},{79,-30}}, color={0,0,127}));
- connect(Vref1.y, add3.u2) annotation (Line(points={{139,-90},{130,-90},{130,-24},
- {102,-24}}, color={0,0,127}));
- connect(gain1.y, limiter.u)
- annotation (Line(points={{92.8,0},{94,0},{98,0}}, color={0,0,127}));
- connect(lV_GATE.p, gain1.u)
- annotation (Line(points={{66.625,0},{74.4,0}}, color={0,0,127}));
- connect(gain3.y, lV_GATE.n2) annotation (Line(points={{51,-30},{44.625,-30},{
- 44.625,-3}}, color={0,0,127}));
- connect(DiffV1.y, lV_GATE.n1)
- annotation (Line(points={{41,0},{44.625,0},{44.625,3}}, color={0,0,127}));
- annotation (
- Diagram(coordinateSystem(extent={{-200,-200},{200,160}}, initialScale=0.1)),
- Icon(coordinateSystem(extent={{-200,-200},{200,160}}, initialScale=0.1),
- graphics={Text(
- extent={{-184,-62},{-114,-82}},
- lineColor={28,108,200},
- textString="XADIFD"),Text(
- extent={{-120,158},{140,98}},
- lineColor={28,108,200},
- textString="EXAC2")}),
- Documentation(info="
-
-
-Reference |
-EXAC2, PSS/E Manual |
-
-
-Last update |
-2015-11-26 |
-
-
-Author |
-Tin Rabuzin, SmarTS Lab, KTH Royal Institute of Technology |
-
-
-Contact |
-luigiv@kth.se |
-
-
-"));
- end EXAC2;
-
- model SCRX "Bus Fed or Solid Fed Static Exciter"
- extends
- OpenIPSL.Electrical.Controls.PSSE.ES.BaseClasses.BaseExciter;
- parameter Real T_AT_B;
- parameter Real T_B;
- parameter Real K;
- parameter Real T_E;
- parameter Real E_MIN;
- parameter Real E_MAX;
- parameter Boolean C_SWITCH;
- parameter Real r_cr_fd;
- Modelica.Blocks.Math.Add3 V_erro
- annotation (Placement(transformation(extent={{-60,-10},{-40,10}})));
- OpenIPSL.NonElectrical.Continuous.LeadLag imLeadLag(
- K=1,
- y_start=VR0/K,
- T1=T_AT_B*T_B,
- T2=T_B) annotation (Placement(transformation(extent={{-20,-10},
- {0,10}})));
- OpenIPSL.NonElectrical.Logical.NegCurLogic negCurLogic(
- nstartvalue=Efd0, RC_rfd=r_cr_fd) annotation (Placement(
- transformation(extent={{150,-10},{180,10}})));
- NonElectrical.Continuous.SimpleLagLim simpleLagLim(
- K=K,
- T=T_E,
- y_start=VR0,
- outMax=E_MAX,
- outMin=E_MIN)
- annotation (Placement(transformation(extent={{10,-10},{30,10}})));
- Modelica.Blocks.Logical.Switch switch1
- annotation (Placement(transformation(extent={{72,18},{84,30}})));
- Modelica.Blocks.Sources.BooleanConstant booleanConstant(k=C_SWITCH)
- annotation (Placement(transformation(extent={{40,46},{52,58}})));
- Modelica.Blocks.Math.Product product
- annotation (Placement(transformation(extent={{42,14},{54,26}})));
- Modelica.Blocks.Math.Add DiffV1(k2=-1) annotation (Placement(transformation(
- extent={{-10,-10},{10,10}},
- rotation=90,
- origin={-100,-150})));
- protected
- parameter Real VR0(fixed=false);
- initial equation
- if not C_SWITCH then
- VR0 = Efd0/ECOMP0;
- V_REF = VR0/K + ECOMP0;
- else
- VR0 = Efd0;
- V_REF = VR0/K + ECOMP0;
- end if;
- equation
- connect(V_erro.y, imLeadLag.u)
- annotation (Line(points={{-39,0},{-39,0},{-22,0}}, color={0,0,127}));
- connect(imLeadLag.y, simpleLagLim.u)
- annotation (Line(points={{1,0},{8,0}}, color={0,0,127}));
- connect(booleanConstant.y, switch1.u2) annotation (Line(points={{52.6,52},{66,
- 52},{66,24},{70.8,24}}, color={255,0,255}));
- connect(product.u2, simpleLagLim.y) annotation (Line(points={{40.8,16.4},{36,
- 16.4},{36,0},{31,0}}, color={0,0,127}));
- connect(product.y, switch1.u3) annotation (Line(points={{54.6,20},{70.8,20},{
- 70.8,19.2}}, color={0,0,127}));
- connect(switch1.u1, simpleLagLim.y) annotation (Line(points={{70.8,28.8},{62,
- 28.8},{62,0},{31,0}}, color={0,0,127}));
- connect(ECOMP, DiffV.u2) annotation (Line(points={{-200,0},{-132,0},{-132,-6},
- {-122,-6}}, color={0,0,127}));
- connect(DiffV.y, V_erro.u2)
- annotation (Line(points={{-99,0},{-62,0}}, color={0,0,127}));
- connect(VOTHSG, V_erro.u1) annotation (Line(points={{-200,90},{-140,90},{-80,
- 90},{-80,8},{-62,8}}, color={0,0,127}));
- connect(DiffV1.u2, VOEL) annotation (Line(points={{-94,-162},{-94,-170},{-70,
- -170},{-70,-200}}, color={0,0,127}));
- connect(DiffV1.u1, VUEL) annotation (Line(points={{-106,-162},{-106,-170},{-130,
- -170},{-130,-200}}, color={0,0,127}));
- connect(DiffV1.y, V_erro.u3) annotation (Line(points={{-100,-139},{-100,-139},
- {-100,-20},{-80,-20},{-80,-8},{-62,-8}}, color={0,0,127}));
- connect(negCurLogic.Efd, EFD)
- annotation (Line(points={{182.5,0},{210,0},{210,0}}, color={0,0,127}));
- connect(product.u1, DiffV.u2) annotation (Line(points={{40.8,23.6},{-160,23.6},
- {-160,0},{-132,0},{-132,-6},{-122,-6}}, color={0,0,127}));
- connect(switch1.y, negCurLogic.Vd) annotation (Line(points={{84.6,24},{120,24},
- {120,5},{147.5,5}}, color={0,0,127}));
- connect(XADIFD, negCurLogic.XadIfd) annotation (Line(points={{80,-200},{80,-5},{147.5,-5}}, color={0,0,127}));
- annotation (
- Diagram(coordinateSystem(extent={{-200,-200},{200,160}}, initialScale=0.1)),
- Icon(coordinateSystem(
- preserveAspectRatio=true,
- extent={{-200,-200},{200,160}},
- initialScale=0.1), graphics={Text(
- extent={{-186,-62},{-116,-82}},
- lineColor={28,108,200},
- textString="XADIFD"),Text(
- extent={{-100,156},{100,96}},
- lineColor={28,108,200},
- textString="SCRX")}),
- Documentation(info="
-
-
-Reference |
-PSS/E Manual |
-
-
-Last update |
-Unknown |
-
-
-Author |
-Mengjia Zhang,SmarTS Lab, KTH Royal Institute of Technology |
-
-
-Contact |
-luigiv@kth.se |
-
-
-"));
- end SCRX;
-
- model IEEET1 "IEEE Type 1 excitation system"
- extends
- OpenIPSL.Electrical.Controls.PSSE.ES.BaseClasses.BaseExciter;
- import IslandedOperationControl.OpenIPSL.NonElectrical.Functions.SE;
- import
- IslandedOperationControl.OpenIPSL.Electrical.Controls.PSSE.ES.BaseClasses.calculate_dc_exciter_params;
- parameter Real T_R=1 "Voltage input time constant (s)";
- parameter Real K_A=40 "AVR gain";
- parameter Real T_A=0.04 "AVR time constant (s)";
- parameter Real V_RMAX=7.3 "Maximum AVR output (pu)";
- parameter Real V_RMIN=-7.3 "Minimum AVR output (pu)";
- parameter Real K_E=1 "Exciter field gain, s";
- parameter Real T_E=0.8 "Exciter time constant (s)";
- parameter Real K_F=0.03 "Rate feedback gain (pu)";
- parameter Real T_F=1 "Rate feedback time constant (s)";
- parameter Real E_1=2.400 "Exciter saturation point 1 (pu)";
- parameter Real S_EE_1=0.30000E-01 "Saturation at E1";
- parameter Real E_2=5.0000 "Exciter saturation point 2 (pu)";
- parameter Real S_EE_2=0.50000 "Saturation at E2";
- Modelica.Blocks.Math.Add3 sum2
- annotation (Placement(transformation(extent={{-60,-10},{-40,10}})));
- Modelica.Blocks.Math.Add sum3(k2=-1)
- annotation (Placement(transformation(extent={{-20,-10},{0,10}})));
- Modelica.Blocks.Continuous.Derivative derivativeLag(
- k=K_F,
- T=T_F,
- y_start=0,
- initType=Modelica.Blocks.Types.Init.InitialOutput,
- x_start=Efd0)
- annotation (Placement(transformation(extent={{80,-60},{60,-40}})));
- NonElectrical.Continuous.SimpleLagLim simpleLagLim(
- K=K_A,
- T=T_A,
- y_start=VR0,
- outMax=V_RMAX,
- outMin=V_RMIN)
- annotation (Placement(transformation(extent={{60,-10},{80,10}})));
- BaseClasses.RotatingExciter rotatingExciter(
- T_E=T_E,
- E_1=E_1,
- E_2=E_2,
- S_EE_1=S_EE_1,
- S_EE_2=S_EE_2,
- Efd0=Efd0,
- K_E=KE0) annotation (Placement(transformation(extent={{140,-10},{160,10}})));
- NonElectrical.Continuous.SimpleLag TransducerDelay(
- K=1,
- T=T_R,
- y_start=ECOMP0)
- annotation (Placement(transformation(extent={{-170,-10},{-150,10}})));
- Modelica.Blocks.Math.Add DiffV1 annotation (Placement(transformation(
- extent={{-10,-10},{10,10}},
- rotation=90,
- origin={-100,-130})));
- protected
- parameter Real VRMAX0(fixed=false) "Maximum AVR output (pu)";
- parameter Real VRMIN0(fixed=false) "Minimum AVR output (pu)";
- parameter Real KE0(fixed=false) "Exciter field gain, s";
- parameter Real SE_Efd0(fixed=false);
- parameter Real VR0(fixed=false);
- initial equation
- SE_Efd0 = SE(
- Efd0,
- S_EE_1,
- S_EE_2,
- E_1,
- E_2);
- (VRMAX0,VRMIN0,KE0) = calculate_dc_exciter_params(
- V_RMAX,
- V_RMIN,
- K_E,
- E_2,
- S_EE_2,
- Efd0,
- SE_Efd0);
- VR0 = Efd0*(KE0 + SE_Efd0);
- V_REF = VR0/K_A + ECOMP0;
- equation
- connect(sum3.u2, derivativeLag.y) annotation (Line(points={{-22,-6},{-34,-6},
- {-34,-28},{-34,-50},{59,-50}}, color={0,0,127}));
- connect(sum3.y, simpleLagLim.u)
- annotation (Line(points={{1,0},{58,0}}, color={0,0,127}));
- connect(rotatingExciter.EFD, EFD)
- annotation (Line(points={{161.25,0},{210,0}}, color={0,0,127}));
- connect(simpleLagLim.y, rotatingExciter.I_C)
- annotation (Line(points={{81,0},{138.75,0}}, color={0,0,127}));
- connect(derivativeLag.u, EFD) annotation (Line(points={{82,-50},{180,-50},{
- 180,0},{210,0}}, color={0,0,127}));
- connect(ECOMP, TransducerDelay.u)
- annotation (Line(points={{-200,0},{-172,0}}, color={0,0,127}));
- connect(TransducerDelay.y, DiffV.u2) annotation (Line(points={{-149,0},{-140,
- 0},{-132,0},{-132,-6},{-122,-6}}, color={0,0,127}));
- connect(sum2.y, sum3.u1) annotation (Line(points={{-39,0},{-34,0},{-34,6},{-22,
- 6}}, color={0,0,127}));
- connect(DiffV.y, sum2.u2)
- annotation (Line(points={{-99,0},{-62,0},{-62,0}}, color={0,0,127}));
- connect(VOTHSG, sum2.u1) annotation (Line(points={{-200,90},{-138,90},{-80,90},
- {-80,8},{-62,8}}, color={0,0,127}));
- connect(DiffV1.u1, VUEL) annotation (Line(points={{-106,-142},{-106,-142},{-106,
- -160},{-130,-160},{-130,-200}}, color={0,0,127}));
- connect(DiffV1.u2, VOEL) annotation (Line(points={{-94,-142},{-94,-160},{-70,
- -160},{-70,-200}}, color={0,0,127}));
- connect(DiffV1.y, sum2.u3) annotation (Line(points={{-100,-119},{-100,-20},{-80,
- -20},{-80,-8},{-62,-8}}, color={0,0,127}));
- annotation (
- Diagram(coordinateSystem(extent={{-200,-200},{200,160}}, initialScale=0.1)),
- Icon(coordinateSystem(extent={{-200,-200},{200,160}}, initialScale=0.1),
- graphics={Text(
- extent={{-100,154},{100,94}},
- lineColor={28,108,200},
- textString="IEEET1")}),
- Documentation(info="
-
-
-Reference |
-PSS/E Manual |
-
-
-Last update |
-2016-04-29 |
-
-
-Author |
-Tin Rabuzin,SmarTS Lab, KTH Royal Institute of Technology |
-
-
-Contact |
-luigiv@kth.se |
-
-
-"));
- end IEEET1;
-
- model IEEET2 "IEEE Type 2 excitation system"
- extends
- OpenIPSL.Electrical.Controls.PSSE.ES.BaseClasses.BaseExciter;
- import
- IslandedOperationControl.OpenIPSL.Electrical.Controls.PSSE.ES.BaseClasses.calculate_dc_exciter_params;
- parameter Real T_R=0.02 "Voltage input time constant (s)";
- parameter Real K_A=200.0 "AVR gain";
- parameter Real T_A=0.001 "AVR time constant (s)";
- parameter Real V_RMAX=6.08 "Maximum AVR output (pu)";
- parameter Real V_RMIN=-6.08 "Minimum AVR output (pu)";
- parameter Real K_E=1 "Exciter field gain";
- parameter Real T_E=0.55 "Exciter time constant s";
- parameter Real K_F=0.06 "Rate feedback gain (pu)";
- parameter Real T_F1=0.3 "Rate feedback time constant (s)";
- parameter Real T_F2=0.6 "Rate feedback time constant (s)";
- parameter Real E_1=2.85 "Exciter saturation point 1 (pu)";
- parameter Real S_EE_1=0.3 "Saturation at E_1";
- parameter Real E_2=3.8 "Exciter saturation point 2 (pu)";
- parameter Real S_EE_2=0.6 "Saturation at E_2";
- Modelica.Blocks.Math.Add3 add3_1
- annotation (Placement(transformation(extent={{-60,-10},{-40,10}})));
- Modelica.Blocks.Math.Add add(k2=-1)
- annotation (Placement(transformation(extent={{-20,-10},{0,10}})));
- NonElectrical.Continuous.SimpleLag simpleLag(
- K=1,
- T=T_F2,
- y_start=0) annotation (Placement(transformation(extent={{20,-60},{0,-40}})));
- Modelica.Blocks.Continuous.Derivative derivativeLag(
- k=K_F,
- y_start=0,
- T=T_F1,
- initType=Modelica.Blocks.Types.Init.InitialOutput,
- x_start=VR0)
- annotation (Placement(transformation(extent={{80,-60},{60,-40}})));
- NonElectrical.Continuous.SimpleLagLim simpleLagLim(
- K=K_A,
- T=T_A,
- y_start=VR0,
- outMax=V_RMAX0,
- outMin=V_RMIN0)
- annotation (Placement(transformation(extent={{60,-10},{80,10}})));
- BaseClasses.RotatingExciter rotatingExciter(
- T_E=T_E,
- K_E=K_E0,
- E_1=E_1,
- E_2=E_2,
- S_EE_1=S_EE_1,
- S_EE_2=S_EE_2,
- Efd0=Efd0)
- annotation (Placement(transformation(extent={{140,-10},{160,10}})));
- NonElectrical.Continuous.SimpleLag TransducerDelay(
- K=1,
- T=T_R,
- y_start=ECOMP0)
- annotation (Placement(transformation(extent={{-170,-10},{-150,10}})));
- Modelica.Blocks.Math.Add Limiters annotation (Placement(transformation(
- extent={{-10,-10},{10,10}},
- rotation=90,
- origin={-100,-150})));
- protected
- parameter Real V_RMAX0(fixed=false);
- parameter Real V_RMIN0(fixed=false);
- parameter Real K_E0(fixed=false);
- parameter Real Efd0(fixed=false);
- parameter Real SE_Efd0(fixed=false);
- parameter Real VR0(fixed=false);
- initial equation
- SE_Efd0 = OpenIPSL.NonElectrical.Functions.SE(
- EFD0,
- S_EE_1,
- S_EE_2,
- E_1,
- E_2);
- (V_RMAX0,V_RMIN0,K_E0) = calculate_dc_exciter_params(
- V_RMAX,
- V_RMIN,
- K_E,
- E_2,
- S_EE_2,
- Efd0,
- SE_Efd0);
- VR0 = Efd0*(K_E0 + SE_Efd0);
- V_REF = VR0/K_A + ECOMP0;
- equation
- connect(add3_1.y, add.u1) annotation (Line(points={{-39,0},{-33.65,0},{-33.65,
- 6},{-22,6}}, color={0,0,127}));
- connect(simpleLag.y, add.u2) annotation (Line(points={{-1,-50},{-34,-50},{-34,
- -6},{-22,-6}}, color={0,0,127}));
- connect(simpleLag.u, derivativeLag.y)
- annotation (Line(points={{22,-50},{59,-50}}, color={0,0,127}));
- connect(add.y, simpleLagLim.u)
- annotation (Line(points={{1,0},{58,0}}, color={0,0,127}));
- connect(rotatingExciter.EFD, EFD)
- annotation (Line(points={{161.25,0},{210,0}}, color={0,0,127}));
- connect(ECOMP, TransducerDelay.u)
- annotation (Line(points={{-200,0},{-172,0},{-172,0}}, color={0,0,127}));
- connect(TransducerDelay.y, DiffV.u2) annotation (Line(points={{-149,0},{-132,
- 0},{-132,-6},{-122,-6}}, color={0,0,127}));
- connect(simpleLagLim.y, rotatingExciter.I_C)
- annotation (Line(points={{81,0},{122,0},{138.75,0}}, color={0,0,127}));
- connect(DiffV.y, add3_1.u2)
- annotation (Line(points={{-99,0},{-62,0},{-62,0}}, color={0,0,127}));
- connect(VOTHSG, add3_1.u1) annotation (Line(points={{-200,90},{-80,90},{-80,8},
- {-62,8}}, color={0,0,127}));
- connect(VUEL, Limiters.u1) annotation (Line(points={{-130,-200},{-130,-172},{
- -106,-172},{-106,-162}}, color={0,0,127}));
- connect(Limiters.u2, VOEL) annotation (Line(points={{-94,-162},{-94,-172},{-70,
- -172},{-70,-200}}, color={0,0,127}));
- connect(Limiters.y, add3_1.u3) annotation (Line(points={{-100,-139},{-100,-139},
- {-100,-20},{-80,-20},{-80,-8},{-62,-8}}, color={0,0,127}));
- connect(derivativeLag.u, rotatingExciter.I_C) annotation (Line(points={{82,-50},
- {120,-50},{120,0},{138.75,0}}, color={0,0,127}));
- annotation (
- Diagram(coordinateSystem(extent={{-200,-200},{200,160}}, initialScale=0.1)),
- Icon(coordinateSystem(
- preserveAspectRatio=true,
- extent={{-200,-200},{200,160}},
- initialScale=0.1), graphics={Text(
- extent={{-100,152},{100,92}},
- lineColor={28,108,200},
- textString="IEEET2")}),
- Documentation(info="
-
-
-Reference |
-PSS/E Manual |
-
-
-Last update |
-2016-04-29 |
-
-
-Author |
-Tin Rabuzin,SmarTS Lab, KTH Royal Institute of Technology |
-
-
-Contact |
-luigiv@kth.se |
-
-
-"));
- end IEEET2;
-
- model EXST1 "IEEE Type AC2A Excitation System"
- extends
- OpenIPSL.Electrical.Controls.PSSE.ES.BaseClasses.BaseExciter;
- parameter Real T_R=0.02;
- parameter Real V_IMAX=0.2;
- parameter Real V_IMIN=0;
- parameter Real T_C=1;
- parameter Real T_B=1;
- parameter Real K_A=80;
- parameter Real T_A=0.05;
- parameter Real V_RMAX=8;
- parameter Real V_RMIN=-3;
- parameter Real K_C=0.2;
- parameter Real K_F=0.1;
- parameter Real T_F=1;
- OpenIPSL.NonElectrical.Continuous.LeadLag imLeadLag(
- K=1,
- T1=T_C,
- T2=T_B,
- y_start=Efd0/K_A,
- x_start=Efd0/K_A) annotation (Placement(transformation(extent={
- {40,-10},{60,10}})));
- Modelica.Blocks.Nonlinear.Limiter limiter(uMax=V_IMAX, uMin=V_IMIN)
- annotation (Placement(transformation(extent={{0,-10},{20,10}})));
- NonElectrical.Continuous.SimpleLag Vm1(
- y_start=Efd0,
- K=1,
- T=T_A) annotation (Placement(transformation(
- extent={{-10,-10},{10,10}},
- rotation=0,
- origin={130,0})));
- Modelica.Blocks.Math.Gain K_a(k=K_A) annotation (Placement(transformation(
- extent={{-10,-10},{10,10}},
- rotation=0,
- origin={90,0})));
- Modelica.Blocks.Continuous.Derivative imDerivativeLag(
- k=K_F,
- T=T_F,
- y_start=0,
- initType=Modelica.Blocks.Types.Init.InitialOutput)
- annotation (Placement(transformation(extent={{92,-70},{72,-50}})));
- NonElectrical.Continuous.SimpleLag TransducerDelay(
- K=1,
- T=T_R,
- y_start=ECOMP0)
- annotation (Placement(transformation(extent={{-170,-10},{-150,10}})));
- Modelica.Blocks.Math.Add3 add3_2
- annotation (Placement(transformation(extent={{-80,-10},{-60,10}})));
- Modelica.Blocks.Math.Add Limiters annotation (Placement(transformation(
- extent={{-10,-10},{10,10}},
- rotation=90,
- origin={-100,-150})));
- Modelica.Blocks.Math.Feedback feedback
- annotation (Placement(transformation(extent={{-40,-10},{-20,10}})));
- protected
- Modelica.Blocks.Interfaces.RealOutput EFD1 annotation (Placement(
- transformation(extent={{180,-10},{200,10}}), iconTransformation(extent=
- {{302,-64},{322,-44}})));
- initial equation
- V_REF = Efd0/K_A + ECOMP0;
- equation
- if EFD > ECOMP*V_RMAX - K_C*XADIFD then
- EFD = ECOMP*V_RMAX - K_C*XADIFD;
- elseif EFD < ECOMP*V_RMIN - K_C*XADIFD then
- EFD = ECOMP*V_RMIN - K_C*XADIFD;
- else
- EFD = EFD1;
- end if;
- connect(imLeadLag.y, K_a.u)
- annotation (Line(points={{61,0},{70,0},{78,0}}, color={0,0,127}));
- connect(imLeadLag.u, limiter.y)
- annotation (Line(points={{38,0},{30,0},{21,0}}, color={0,0,127}));
- connect(K_a.y, Vm1.u)
- annotation (Line(points={{101,0},{118,0}}, color={0,0,127}));
- connect(Vm1.y, EFD1)
- annotation (Line(points={{141,0},{170,0},{190,0}}, color={0,0,127}));
- connect(imDerivativeLag.u, EFD1) annotation (Line(points={{94,-60},{170,-60},
- {170,0},{190,0}}, color={0,0,127}));
- connect(ECOMP, TransducerDelay.u)
- annotation (Line(points={{-200,0},{-186,0},{-172,0}}, color={0,0,127}));
- connect(TransducerDelay.y, DiffV.u2) annotation (Line(points={{-149,0},{-132,
- 0},{-132,-6},{-122,-6}}, color={0,0,127}));
- connect(VOTHSG, add3_2.u1) annotation (Line(points={{-200,90},{-148,90},{-90,
- 90},{-90,8},{-82,8}}, color={0,0,127}));
- connect(DiffV.y, add3_2.u2)
- annotation (Line(points={{-99,0},{-90.5,0},{-82,0}}, color={0,0,127}));
- connect(VUEL, Limiters.u1) annotation (Line(points={{-130,-200},{-130,-172},{
- -106,-172},{-106,-162}}, color={0,0,127}));
- connect(Limiters.u2, VOEL) annotation (Line(points={{-94,-162},{-94,-174},{-70,
- -174},{-70,-200}}, color={0,0,127}));
- connect(Limiters.y, add3_2.u3) annotation (Line(points={{-100,-139},{-100,-139},
- {-100,-20},{-90,-20},{-90,-8},{-82,-8}}, color={0,0,127}));
- connect(feedback.y, limiter.u)
- annotation (Line(points={{-21,0},{-11.5,0},{-2,0}}, color={0,0,127}));
- connect(feedback.u1, add3_2.y)
- annotation (Line(points={{-38,0},{-59,0},{-59,0}}, color={0,0,127}));
- connect(feedback.u2, imDerivativeLag.y) annotation (Line(points={{-30,-8},{-30,
- -8},{-30,-60},{71,-60}}, color={0,0,127}));
- annotation (
- Diagram(coordinateSystem(extent={{-200,-200},{200,160}}, initialScale=0.1)),
- Icon(coordinateSystem(
- extent={{-200,-200},{200,160}},
- preserveAspectRatio=true,
- initialScale=0.1), graphics={Text(
- extent={{-186,-62},{-112,-82}},
- lineColor={28,108,200},
- textString="XADIFD")}),
- Documentation(info="
-
-
-Reference |
-PSS/E Manual |
-
-
-Last update |
-2016-04-29 |
-
-
-Author |
-Tin Rabuzin,SmarTS Lab, KTH Royal Institute of Technology |
-
-
-Contact |
-luigiv@kth.se |
-
-
-"));
- end EXST1;
-
- model ESAC1A
- import IslandedOperationControl.OpenIPSL.NonElectrical.Functions.SE;
- import IslandedOperationControl.OpenIPSL.Electrical.Controls.PSSE.ES.BaseClasses.invFEX;
- extends
- OpenIPSL.Electrical.Controls.PSSE.ES.BaseClasses.BaseExciter;
- parameter Real T_R=0 "Voltage input time constant (s)";
- parameter Real T_B=0 "AVR lead-lag time constant (s)";
- parameter Real T_C=0 "AVR lead-lag time constant (s)";
- parameter Real K_A=400 "AVR gain";
- parameter Real T_A=0.02 "AVR time constant (s)";
- parameter Real V_AMAX=9 "Maximum AVR output (pu)";
- parameter Real V_AMIN=-5.43 "Minimum AVR output (pu)";
- parameter Real T_E=0.8 "Exciter time constant (s)";
- parameter Real K_F=0.03 "Rate feedback gain (pu)";
- parameter Real T_F=1 "Rate feedback time const (s)";
- parameter Real K_C=0.2 "Rectifier load factor (pu)";
- parameter Real K_D=0.48 "Exciter demagnetizing factor (pu)";
- parameter Real K_E=1 "Exciter field factor (pu)";
- parameter Real E_1=5.25 "Exciter satutartion point 1 (pu)";
- parameter Real E_2=7 "Exciter saturation point 2 (pu)";
- parameter Real S_EE_1=0.03 "Saturation at E1";
- parameter Real S_EE_2=0.1 "Saturation at E2";
- parameter Real V_RMAX "Maximum AVR output (pu)";
- parameter Real V_RMIN "Minimum AVR output (pu)";
- NonElectrical.Logical.HV_GATE hV_GATE
- annotation (Placement(transformation(extent={{20,46},{44,34}})));
- NonElectrical.Logical.LV_GATE lV_GATE
- annotation (Placement(transformation(extent={{58,46},{82,34}})));
- NonElectrical.Continuous.LeadLag imLeadLag(
- K=1,
- T1=T_C,
- T2=T_B,
- y_start=VR0/K_A,
- x_start=VR0/K_A)
- annotation (Placement(transformation(extent={{-52,30},{-32,50}})));
- NonElectrical.Continuous.SimpleLag imSimpleLag(
- K=1,
- y_start=ECOMP0,
- T=T_R) annotation (Placement(transformation(extent={{-170,-10},{-150,10}})));
- Modelica.Blocks.Nonlinear.Limiter limiter1(uMax=V_RMAX, uMin=V_RMIN)
- annotation (Placement(transformation(extent={{94,30},{114,50}})));
- NonElectrical.Continuous.SimpleLagLim simpleLagLim(
- K=K_A,
- T=T_A,
- y_start=VR0,
- outMax=V_AMAX,
- outMin=V_AMIN)
- annotation (Placement(transformation(extent={{-16,30},{4,50}})));
- Modelica.Blocks.Continuous.Derivative derivative(
- k=K_F,
- T=T_F,
- initType=Modelica.Blocks.Types.Init.InitialOutput,
- y_start=0,
- x_start=VFE0)
- annotation (Placement(transformation(extent={{40,-10},{20,10}})));
- BaseClasses.RotatingExciterWithDemagnetizationLimited
- rotatingExciterWithDemagnetization(
- T_E=T_E,
- K_E=K_E,
- E_1=E_1,
- E_2=E_2,
- S_EE_1=S_EE_1,
- S_EE_2=S_EE_2,
- K_D=K_D,
- Efd0=VE0) annotation (Placement(transformation(extent={{124,30},{144,50}})));
- Modelica.Blocks.Math.Add3 add3_1(k3=-1)
- annotation (Placement(transformation(extent={{-88,30},{-68,50}})));
- BaseClasses.RectifierCommutationVoltageDrop rectifierCommutationVoltageDrop(
- K_C=K_C)
- annotation (Placement(transformation(extent={{160,30},{180,50}})));
- protected
- parameter Real VR0(fixed=false);
- parameter Real Efd0(fixed=false);
- parameter Real Ifd0(fixed=false);
- parameter Real VE0(fixed=false);
- parameter Real VFE0(fixed=false);
- initial equation
- Ifd0 = XADIFD;
- VE0 = invFEX(
- K_C=K_C,
- Efd0=Efd0,
- Ifd0=Ifd0);
- VFE0 = VE0*(SE(
- VE0,
- S_EE_1,
- S_EE_2,
- E_1,
- E_2) + K_E) + Ifd0*K_D;
- VR0 = VFE0;
- V_REF = VR0/K_A + ECOMP0;
- equation
- connect(imLeadLag.y, simpleLagLim.u)
- annotation (Line(points={{-31,40},{-18,40}}, color={0,0,127}));
- connect(limiter1.y, rotatingExciterWithDemagnetization.I_C)
- annotation (Line(points={{115,40},{122.75,40}}, color={0,0,127}));
- connect(ECOMP, imSimpleLag.u)
- annotation (Line(points={{-200,0},{-172,0}}, color={0,0,127}));
- connect(simpleLagLim.y, hV_GATE.n1) annotation (Line(points={{5,40},{12,40},{
- 12,37},{18.5,37}}, color={0,0,127}));
- connect(VUEL, hV_GATE.n2) annotation (Line(points={{-130,-200},{-130,-40},{14,
- -40},{14,43},{18.5,43}}, color={0,0,127}));
- connect(imSimpleLag.y, DiffV.u2) annotation (Line(points={{-149,0},{-132,0},{
- -132,-6},{-122,-6}}, color={0,0,127}));
- connect(add3_1.y, imLeadLag.u)
- annotation (Line(points={{-67,40},{-54,40}}, color={0,0,127}));
- connect(DiffV.y, add3_1.u2) annotation (Line(points={{-99,0},{-96,0},{-96,40},
- {-90,40}}, color={0,0,127}));
- connect(VOTHSG, add3_1.u1) annotation (Line(points={{-200,90},{-150,90},{-96,
- 90},{-96,48},{-90,48}}, color={0,0,127}));
- connect(derivative.y, add3_1.u3) annotation (Line(points={{19,0},{-94,0},{-94,
- 32},{-90,32}}, color={0,0,127}));
- connect(derivative.u, rotatingExciterWithDemagnetization.V_FE) annotation (
- Line(points={{42,0},{82,0},{120,0},{120,33.75},{122.75,33.75}}, color={0,
- 0,127}));
- connect(rotatingExciterWithDemagnetization.EFD,
- rectifierCommutationVoltageDrop.V_EX)
- annotation (Line(points={{145.25,40},{159,40}}, color={0,0,127}));
- connect(rectifierCommutationVoltageDrop.EFD, EFD) annotation (Line(points={{
- 181,40},{190,40},{190,0},{210,0}}, color={0,0,127}));
- connect(hV_GATE.p, lV_GATE.n2) annotation (Line(points={{42.5,40},{50,40},{50,
- 43},{56.5,43}}, color={0,0,127}));
- connect(VOEL, lV_GATE.n1) annotation (Line(points={{-70,-200},{-70,-200},{-70,
- -60},{50,-60},{50,37},{56.5,37}}, color={0,0,127}));
- connect(lV_GATE.p, limiter1.u)
- annotation (Line(points={{80.5,40},{92,40}}, color={0,0,127}));
- connect(XADIFD, rotatingExciterWithDemagnetization.XADIFD) annotation (Line(points={{80,-200},{80,-120},{134,-120},{134,28.75}}, color={0,0,127}));
- connect(XADIFD, rectifierCommutationVoltageDrop.XADIFD) annotation (Line(points={{80,-200},{80,-120},{170,-120},{170,29}}, color={0,0,127}));
- annotation (
- Diagram(coordinateSystem(extent={{-200,-200},{200,160}}, initialScale=0.1)),
- Icon(coordinateSystem(extent={{-200,-200},{200,160}}, initialScale=0.1),
- graphics={Text(
- extent={{-186,-60},{-116,-80}},
- lineColor={28,108,200},
- textString="XADIFD"),Text(
- extent={{-100,152},{100,92}},
- lineColor={28,108,200},
- textString="ESAC1A")}),
- Documentation(info="
-
-
-Reference |
-ESAC1A, PSS/E Manual |
-
-
-Last update |
-Major change - 2016-01-19 |
-
-
-Author |
-Tin Rabuzin, SmarTS Lab, KTH Royal Institute of Technology |
-
-
-Contact |
-luigiv@kth.se |
-
-
-"));
- end ESAC1A;
-
- model ESAC2A
- import IslandedOperationControl.OpenIPSL.NonElectrical.Functions.SE;
- import IslandedOperationControl.OpenIPSL.Electrical.Controls.PSSE.ES.BaseClasses.invFEX;
- extends
- OpenIPSL.Electrical.Controls.PSSE.ES.BaseClasses.BaseExciter;
- parameter Real T_R=0 "Voltage input time constant (s)";
- parameter Real T_B=0 "AVR lead-lag time constant (s)";
- parameter Real T_C=0 "AVR lead-lag time constant (s)";
- parameter Real K_A=400 "AVR gain";
- parameter Real T_A=0.02 "AVR time constant (s)";
- parameter Real V_AMAX=9 "Maximum AVR output (pu)";
- parameter Real V_AMIN=-5.43 "Minimum AVR output (pu)";
- parameter Real T_E=0.8 "Exciter time constant (s)";
- parameter Real V_FEMAX=-5.43 "Minimum AVR output (pu)";
- parameter Real K_F=0.03 "Rate feedback gain (pu)";
- parameter Real T_F=1 "Rate feedback time const (s)";
- parameter Real K_C=0.2 "Rectifier load factor (pu)";
- parameter Real K_D=0.48 "Exciter demagnetizing factor (pu)";
- parameter Real K_E=1 "Exciter field factor (pu)";
- parameter Real E_1=5.25 "Exciter satutartion point 1 (pu)";
- parameter Real E_2=7 "Exciter saturation point 2 (pu)";
- parameter Real S_EE_1=0.03 "Saturation at E1";
- parameter Real S_EE_2=0.1 "Saturation at E2";
- parameter Real V_RMAX "Maximum AVR output (pu)";
- parameter Real V_RMIN "Minimum AVR output (pu)";
- NonElectrical.Logical.HV_GATE hV_GATE
- annotation (Placement(transformation(extent={{20,46},{44,34}})));
- NonElectrical.Logical.LV_GATE lV_GATE
- annotation (Placement(transformation(extent={{58,46},{82,34}})));
- NonElectrical.Continuous.LeadLag imLeadLag(
- K=1,
- T1=T_C,
- T2=T_B,
- y_start=VR0/K_A,
- x_start=VR0/K_A)
- annotation (Placement(transformation(extent={{-52,30},{-32,50}})));
- NonElectrical.Continuous.SimpleLag imSimpleLag(
- K=1,
- y_start=ECOMP0,
- T=T_R) annotation (Placement(transformation(extent={{-170,-10},{-150,10}})));
- Modelica.Blocks.Nonlinear.Limiter limiter1(uMax=V_RMAX, uMin=V_RMIN)
- annotation (Placement(transformation(extent={{94,30},{114,50}})));
- NonElectrical.Continuous.SimpleLagLim simpleLagLim(
- K=K_A,
- T=T_A,
- y_start=VR0,
- outMax=V_AMAX,
- outMin=V_AMIN)
- annotation (Placement(transformation(extent={{-16,30},{4,50}})));
- Modelica.Blocks.Continuous.Derivative derivative(
- k=K_F,
- T=T_F,
- initType=Modelica.Blocks.Types.Init.InitialOutput,
- y_start=0,
- x_start=VFE0)
- annotation (Placement(transformation(extent={{40,-10},{20,10}})));
- BaseClasses.RotatingExciterWithDemagnetizationVarLim
- rotatingExciterWithDemagnetization(
- T_E=T_E,
- K_E=K_E,
- E_1=E_1,
- E_2=E_2,
- S_EE_1=S_EE_1,
- S_EE_2=S_EE_2,
- K_D=K_D,
- Efd0=VE0) annotation (Placement(transformation(extent={{124,30},{144,50}})));
- Modelica.Blocks.Math.Add3 add3_1(k3=-1)
- annotation (Placement(transformation(extent={{-88,30},{-68,50}})));
- BaseClasses.RectifierCommutationVoltageDrop rectifierCommutationVoltageDrop(
- K_C=K_C)
- annotation (Placement(transformation(extent={{160,30},{180,50}})));
- Modelica.Blocks.Sources.Constant lowLim(k=0)
- annotation (Placement(transformation(extent={{180,70},{160,90}})));
- Modelica.Blocks.Sources.Constant FEMAX(k=V_FEMAX)
- annotation (Placement(transformation(extent={{40,120},{60,140}})));
- Modelica.Blocks.Math.Add DiffV1(k2=-1)
- annotation (Placement(transformation(extent={{80,120},{100,140}})));
- NonElectrical.Functions.ImSE se1(
- SE1=S_EE_1,
- SE2=S_EE_2,
- E1=E_1,
- E2=E_2) annotation (Placement(transformation(
- extent={{-9,-6},{9,6}},
- rotation=180,
- origin={171,108})));
- Modelica.Blocks.Sources.Constant const(k=K_E)
- annotation (Placement(transformation(extent={{180,120},{160,140}})));
- Modelica.Blocks.Math.Add DiffV2
- annotation (Placement(transformation(extent={{150,108},{130,128}})));
- Modelica.Blocks.Math.Division division annotation (Placement(transformation(
- extent={{-10,-10},{10,10}},
- rotation=-90,
- origin={110,80})));
- protected
- parameter Real VR0(fixed=false);
- parameter Real Efd0(fixed=false);
- parameter Real Ifd0(fixed=false);
- parameter Real VE0(fixed=false);
- parameter Real VFE0(fixed=false);
- initial equation
- Ifd0 = XADIFD;
- // Finding initial value of excitation voltage, VE0, via going through conditions of FEX function
- VE0 = invFEX(
- K_C=K_C,
- Efd0=Efd0,
- Ifd0=Ifd0);
- // Case IN>0 not checked because it will be resolved in the next iteration
- VFE0 = VE0*(SE(
- VE0,
- S_EE_1,
- S_EE_2,
- E_1,
- E_2) + K_E) + Ifd0*K_D;
- VR0 = VFE0;
- V_REF = VR0/K_A + ECOMP0;
- equation
- connect(imLeadLag.y, simpleLagLim.u)
- annotation (Line(points={{-31,40},{-18,40}}, color={0,0,127}));
- connect(limiter1.y, rotatingExciterWithDemagnetization.I_C)
- annotation (Line(points={{115,40},{122.75,40}}, color={0,0,127}));
- connect(ECOMP, imSimpleLag.u)
- annotation (Line(points={{-200,0},{-172,0}}, color={0,0,127}));
- connect(simpleLagLim.y, hV_GATE.n1) annotation (Line(points={{5,40},{12,40},{
- 12,37},{18.5,37}}, color={0,0,127}));
- connect(VUEL, hV_GATE.n2) annotation (Line(points={{-130,-200},{-130,-40},{14,
- -40},{14,43},{18.5,43}}, color={0,0,127}));
- connect(imSimpleLag.y, DiffV.u2) annotation (Line(points={{-149,0},{-132,0},{
- -132,-6},{-122,-6}}, color={0,0,127}));
- connect(add3_1.y, imLeadLag.u)
- annotation (Line(points={{-67,40},{-54,40}}, color={0,0,127}));
- connect(DiffV.y, add3_1.u2) annotation (Line(points={{-99,0},{-96,0},{-96,40},
- {-90,40}}, color={0,0,127}));
- connect(VOTHSG, add3_1.u1) annotation (Line(points={{-200,90},{-150,90},{-96,
- 90},{-96,48},{-90,48}}, color={0,0,127}));
- connect(derivative.y, add3_1.u3) annotation (Line(points={{19,0},{-94,0},{-94,
- 32},{-90,32}}, color={0,0,127}));
- connect(derivative.u, rotatingExciterWithDemagnetization.V_FE) annotation (
- Line(points={{42,0},{82,0},{120,0},{120,33.75},{122.75,33.75}}, color={0,
- 0,127}));
- connect(rotatingExciterWithDemagnetization.EFD,
- rectifierCommutationVoltageDrop.V_EX)
- annotation (Line(points={{145.25,40},{159,40}}, color={0,0,127}));
- connect(rectifierCommutationVoltageDrop.XADIFD,
- rotatingExciterWithDemagnetization.XADIFD) annotation (Line(points={{170,29},{170,-20},{134,-20},{134,28.75}},
- color={0,0,127}));
- connect(rectifierCommutationVoltageDrop.EFD, EFD) annotation (Line(points={{
- 181,40},{190,40},{190,0},{210,0}}, color={0,0,127}));
- connect(hV_GATE.p, lV_GATE.n2) annotation (Line(points={{42.5,40},{50,40},{50,
- 43},{56.5,43}}, color={0,0,127}));
- connect(VOEL, lV_GATE.n1) annotation (Line(points={{-70,-200},{-70,-200},{-70,
- -60},{50,-60},{50,37},{56.5,37}}, color={0,0,127}));
- connect(lV_GATE.p, limiter1.u)
- annotation (Line(points={{80.5,40},{92,40},{92,40}}, color={0,0,127}));
- connect(lowLim.y, rotatingExciterWithDemagnetization.outMin) annotation (Line(
- points={{159,80},{150,80},{150,47.5},{145.25,47.5}}, color={0,0,127}));
- connect(FEMAX.y, DiffV1.u1) annotation (Line(points={{61,130},{68,130},{68,
- 136},{78,136}}, color={0,0,127}));
- connect(DiffV1.u2, rotatingExciterWithDemagnetization.XADIFD) annotation (
- Line(points={{78,124},{66,124},{66,100},{86,100},{86,-20},{134,-20},{134,
- 28.75}}, color={0,0,127}));
- connect(se1.VE_IN, EFD) annotation (Line(points={{180.9,108},{190,108},{190,0},
- {210,0}}, color={0,0,127}));
- connect(DiffV2.u1, const.y) annotation (Line(points={{152,124},{156,124},{156,
- 130},{159,130}}, color={0,0,127}));
- connect(DiffV2.u2, se1.VE_OUT) annotation (Line(points={{152,112},{156,112},{
- 156,108},{161.46,108}}, color={0,0,127}));
- connect(division.u1, DiffV1.y) annotation (Line(points={{116,92},{116,92},{
- 116,128},{116,130},{101,130}}, color={0,0,127}));
- connect(DiffV2.y, division.u2)
- annotation (Line(points={{129,118},{104,118},{104,92}}, color={0,0,127}));
- connect(division.y, rotatingExciterWithDemagnetization.outMax) annotation (
- Line(points={{110,69},{110,60},{118,60},{118,47.5},{122.75,47.5}}, color=
- {0,0,127}));
- connect(XADIFD, rotatingExciterWithDemagnetization.XADIFD) annotation (Line(points={{80,-200},{80,-140},{134,-140},{134,28.75}}, color={0,0,127}));
- annotation (
- Diagram(coordinateSystem(extent={{-200,-200},{200,160}}, initialScale=0.1)),
- Icon(coordinateSystem(extent={{-200,-200},{200,160}}, initialScale=0.1),
- graphics={Text(
- extent={{-186,-60},{-116,-80}},
- lineColor={28,108,200},
- textString="XADIFD"),Text(
- extent={{-100,152},{100,92}},
- lineColor={28,108,200},
- textString="ESAC1A")}),
- Documentation(info="
-
-
-Reference |
-ESAC1A, PSS/E Manual |
-
-
-Last update |
-Major change - 2016-01-19 |
-
-
-Author |
-Tin Rabuzin, SmarTS Lab, KTH Royal Institute of Technology |
-
-
-Contact |
-luigiv@kth.se |
-
-
-"));
- end ESAC2A;
-
- model ESST1A "IEEE Type ST1A Excitation System"
- extends
- OpenIPSL.Electrical.Controls.PSSE.ES.BaseClasses.BaseExciter;
- parameter Real T_R=0 "Voltage input time constant (s)"
- annotation (Dialog(group="Excitation system parameters"));
- parameter Real V_IMAX
- annotation (Dialog(group="Excitation system parameters"));
- parameter Real V_IMIN
- annotation (Dialog(group="Excitation system parameters"));
- parameter Real T_C=0 "AVR lead-lag time constant (s)"
- annotation (Dialog(group="Excitation system parameters"));
- parameter Real T_B=0 "AVR lead-lag time constant (s)"
- annotation (Dialog(group="Excitation system parameters"));
- parameter Real T_C1=0 "AVR lead-lag time constant (s)"
- annotation (Dialog(group="Excitation system parameters"));
- parameter Real T_B1=0 "AVR lead-lag time constant (s)"
- annotation (Dialog(group="Excitation system parameters"));
- parameter Real K_A=400 "AVR gain"
- annotation (Dialog(group="Excitation system parameters"));
- parameter Real T_A=0.02 "AVR time constant (s)"
- annotation (Dialog(group="Excitation system parameters"));
- parameter Real V_AMAX "Maximum AVR output (pu)"
- annotation (Dialog(group="Excitation system parameters"));
- parameter Real V_AMIN "Minimum AVR output (pu)"
- annotation (Dialog(group="Excitation system parameters"));
- parameter Real V_RMAX=9
- annotation (Dialog(group="Excitation system parameters"));
- parameter Real V_RMIN=-5.43
- annotation (Dialog(group="Excitation system parameters"));
- parameter Real K_C=0.2 "Rectifier load factor (pu)"
- annotation (Dialog(group="Excitation system parameters"));
- parameter Real K_F=0.03 "Rate feedback gain (pu)"
- annotation (Dialog(group="Excitation system parameters"));
- parameter Real T_F=1 "Rate feedback time constant (s)"
- annotation (Dialog(group="Excitation system parameters"));
- parameter Real K_LR annotation (Dialog(group="Excitation system parameters"));
- parameter Real I_LR annotation (Dialog(group="Excitation system parameters"));
- Modelica.Blocks.Continuous.Derivative imDerivativeLag(
- y_start=0,
- k=K_F,
- T=T_F,
- initType=Modelica.Blocks.Types.Init.InitialOutput,
- x_start=Efd0)
- annotation (Placement(transformation(extent={{20,60},{0,80}})));
- Modelica.Blocks.Interfaces.RealInput VOTHSG2 "VOS=2" annotation (Placement(
- transformation(extent={{-210,122},{-190,142}}), iconTransformation(
- extent={{-10,-10},{10,10}},
- rotation=0,
- origin={-200,130})));
- Modelica.Blocks.Interfaces.RealInput VUEL3 "UEL=3" annotation (Placement(
- transformation(
- extent={{-20,-20},{20,20}},
- rotation=90,
- origin={50,-200}), iconTransformation(
- extent={{9.95,-10.15},{-9.95,10.15}},
- rotation=270,
- origin={49.85,-199.95})));
- Modelica.Blocks.Nonlinear.Limiter imLimited(uMin=V_IMIN, uMax=V_IMAX)
- annotation (Placement(transformation(extent={{-64,-10},{-44,10}})));
- NonElectrical.Logical.HV_GATE hV_GATE
- annotation (Placement(transformation(extent={{-36.7,-5.5},{-14,6}})));
- Modelica.Blocks.Interfaces.RealInput VUEL2 "UEL=2" annotation (Placement(
- transformation(
- extent={{-20,-20},{20,20}},
- rotation=90,
- origin={-10,-200}), iconTransformation(
- extent={{9.9,-9.9},{-9.9,9.9}},
- rotation=270,
- origin={-9.9,-199.9})));
- Modelica.Blocks.Math.Gain imGain(k=K_LR) annotation (Placement(transformation(
- extent={{-10,-10},{10,10}},
- rotation=90,
- origin={40,-70})));
- NonElectrical.Logical.HV_GATE hV_GATE1
- annotation (Placement(transformation(extent={{105.3,-2.7},{126,8}})));
- NonElectrical.Logical.LV_GATE lV_GATE
- annotation (Placement(transformation(extent={{130.8,-6.7},{156,6}})));
- Modelica.Blocks.Interfaces.RealInput VT "sensed VT" annotation (Placement(
- transformation(
- extent={{10,-10},{-10,10}},
- rotation=270,
- origin={150,-140}), iconTransformation(
- extent={{-9.75,-10.25},{9.75,10.25}},
- rotation=0,
- origin={-199.75,49.75})));
- Modelica.Blocks.Sources.Constant Vref1(k=I_LR)
- annotation (Placement(transformation(extent={{0,-150},{20,-130}})));
- NonElectrical.Continuous.LeadLag imLeadLag(
- K=1,
- T1=T_C,
- T2=T_B,
- y_start=VA0/K_A,
- x_start=V_REF - ECOMP0)
- annotation (Placement(transformation(extent={{-8,-10},{12,10}})));
- NonElectrical.Continuous.LeadLag imLeadLag1(
- K=1,
- y_start=VA0/K_A,
- T1=T_C1,
- T2=T_B1,
- x_start=VA0/K_A)
- annotation (Placement(transformation(extent={{22,-9},{42,10}})));
- Modelica.Blocks.Math.Add3 add3_1(k1=-1)
- annotation (Placement(transformation(extent={{-92,-10},{-72,10}})));
- NonElectrical.Continuous.SimpleLagLim simpleLagLim(
- K=K_A,
- T=T_A,
- y_start=VA0,
- outMax=V_AMAX,
- outMin=V_AMIN)
- annotation (Placement(transformation(extent={{50,-10},{70,10}})));
- Modelica.Blocks.Math.Add add2(k1=-1) annotation (Placement(transformation(
- extent={{-10,-10},{10,10}},
- rotation=90,
- origin={40,-120})));
- Modelica.Blocks.Nonlinear.Limiter imLimited1(uMax=Modelica.Constants.inf,
- uMin=0) annotation (Placement(transformation(
- extent={{-10,-9.6},{10,9.6}},
- rotation=90,
- origin={40.4,-40})));
- Modelica.Blocks.Math.Add3 add3_2(k3=-1)
- annotation (Placement(transformation(extent={{78,-10},{98,10}})));
- Modelica.Blocks.Math.Gain imGain1(k=V_RMIN) annotation (Placement(
- transformation(
- extent={{-10,-10},{10,10}},
- rotation=90,
- origin={136,-30})));
- Modelica.Blocks.Math.Gain imGain2(k=V_RMAX) annotation (Placement(
- transformation(
- extent={{-10,-10},{10,10}},
- rotation=90,
- origin={150,-70})));
- Modelica.Blocks.Math.Add add3(k1=-1) annotation (Placement(transformation(
- extent={{10,-10},{-10,10}},
- rotation=270,
- origin={170,-30})));
- Modelica.Blocks.Math.Gain imGain3(k=K_C) annotation (Placement(transformation(
- extent={{-10,-10},{10,10}},
- rotation=90,
- origin={190,-70})));
- Modelica.Blocks.Nonlinear.VariableLimiter variableLimiter
- annotation (Placement(transformation(extent={{178,-10},{198,10}})));
- NonElectrical.Continuous.SimpleLag TransducerDelay(
- K=1,
- T=T_R,
- y_start=ECOMP0)
- annotation (Placement(transformation(extent={{-170,-10},{-150,10}})));
- Modelica.Blocks.Math.Add Limiters
- annotation (Placement(transformation(extent={{-120,-60},{-100,-40}})));
- protected
- parameter Real IFD0(fixed=false);
- parameter Real VA0(fixed=false);
- initial equation
- IFD0 = XADIFD;
- VA0 = Efd0 + K_LR*(IFD0 - I_LR);
- V_REF = VA0/K_A + ECOMP0;
- equation
- connect(add3_1.y, imLimited.u)
- annotation (Line(points={{-71,0},{-66,0}}, color={0,0,127}));
- connect(imLeadLag.y, imLeadLag1.u)
- annotation (Line(points={{13,0},{13,0.5},{20,0.5}}, color={0,0,127}));
- connect(simpleLagLim.u, imLeadLag1.y)
- annotation (Line(points={{48,0},{43,0},{43,0.5}}, color={0,0,127}));
- connect(Vref1.y, add2.u1)
- annotation (Line(points={{21,-140},{34,-140},{34,-132}}, color={0,0,127}));
- connect(imGain1.y, variableLimiter.limit2)
- annotation (Line(points={{136,-19},{136,-8},{176,-8}}, color={0,0,127}));
- connect(add3_1.u1, imDerivativeLag.y) annotation (Line(points={{-94,8},{-98,8},
- {-98,70},{-1,70}}, color={0,0,127}));
- connect(VUEL2, hV_GATE.n2) annotation (Line(points={{-10,-200},{-10,-174},{-42,-174},{-42,-2.625},{-38.1188,-2.625}},
- color={0,0,127}));
- connect(variableLimiter.y, EFD)
- annotation (Line(points={{199,0},{210,0}}, color={0,0,127}));
- connect(imGain3.y, add3.u1) annotation (Line(points={{190,-59},{190,-50},{176,
- -50},{176,-42}}, color={0,0,127}));
- connect(imGain2.y, add3.u2) annotation (Line(points={{150,-59},{150,-50},{164,
- -50},{164,-42}}, color={0,0,127}));
- connect(VT, imGain2.u) annotation (Line(points={{150,-140},{150,-111},{150,-82}},
- color={0,0,127}));
- connect(VOEL, lV_GATE.n2) annotation (Line(points={{-70,-200},{-70,-200},{-70,
- -100},{100,-100},{100,-3.525},{129.225,-3.525}}, color={0,0,127}));
- connect(imGain1.u, imGain2.u) annotation (Line(points={{136,-42},{136,-120},{
- 150,-120},{150,-82}}, color={0,0,127}));
- connect(ECOMP, TransducerDelay.u)
- annotation (Line(points={{-200,0},{-172,0}}, color={0,0,127}));
- connect(TransducerDelay.y, DiffV.u2) annotation (Line(points={{-149,0},{-132,
- 0},{-132,-6},{-122,-6}}, color={0,0,127}));
- connect(DiffV.y, add3_1.u2)
- annotation (Line(points={{-99,0},{-94,0}}, color={0,0,127}));
- connect(VUEL, Limiters.u2) annotation (Line(points={{-130,-200},{-130,-200},{
- -130,-56},{-122,-56}}, color={0,0,127}));
- connect(VOTHSG, Limiters.u1) annotation (Line(points={{-200,90},{-170,90},{-140,
- 90},{-140,-44},{-122,-44}}, color={0,0,127}));
- connect(Limiters.y, add3_1.u3) annotation (Line(points={{-99,-50},{-98,-50},{
- -98,-8},{-94,-8}}, color={0,0,127}));
- connect(imLimited.y, hV_GATE.n1) annotation (Line(points={{-43,0},{-42,0},{-42,3.125},{-38.1188,3.125}},
- color={0,0,127}));
- connect(VOTHSG2, add3_2.u1) annotation (Line(points={{-200,132},{70,132},{70,
- 8},{76,8}}, color={0,0,127}));
- connect(lV_GATE.p, variableLimiter.u) annotation (Line(points={{154.425,-0.35},
- {164.213,-0.35},{164.213,0},{176,0}}, color={0,0,127}));
- connect(hV_GATE1.p, lV_GATE.n1) annotation (Line(points={{124.706,2.65},{124.228,2.65},{124.228,2.825},{129.225,2.825}},
- color={0,0,127}));
- connect(add3_2.y, hV_GATE1.n1) annotation (Line(points={{99,0},{100,0},{100,5.325},{104.006,5.325}},
- color={0,0,127}));
- connect(imDerivativeLag.u, hV_GATE1.n1) annotation (Line(points={{22,70},{102,70},{102,5.325},{104.006,5.325}},
- color={0,0,127}));
- connect(imGain.u, add2.y)
- annotation (Line(points={{40,-82},{40,-109},{40,-109}}, color={0,0,127}));
- connect(imLimited1.u, imGain.y)
- annotation (Line(points={{40.4,-52},{40,-52},{40,-59}}, color={0,0,127}));
- connect(imLimited1.y, add3_2.u3) annotation (Line(points={{40.4,-29},{40.4,-20},
- {70,-20},{70,-8},{76,-8}}, color={0,0,127}));
- connect(add3.y, variableLimiter.limit1)
- annotation (Line(points={{170,-19},{170,8},{176,8}}, color={0,0,127}));
- connect(simpleLagLim.y, add3_2.u2)
- annotation (Line(points={{71,0},{76,0}}, color={0,0,127}));
- connect(hV_GATE.p, imLeadLag.u) annotation (Line(points={{-15.4187,0.25},{-12.7094,0.25},{-12.7094,0},{-10,0}},
- color={0,0,127}));
- connect(VUEL3, hV_GATE1.n2) annotation (Line(points={{50,-200},{50,-200},{50,-174},{110,-174},{110,-20},{104.006,-20},{104.006,-0.025}},
- color={0,
- 0,127}));
- connect(XADIFD, add2.u2) annotation (Line(points={{80,-200},{80,-160},{46,-160},{46,-132}}, color={0,0,127}));
- connect(XADIFD, imGain3.u) annotation (Line(points={{80,-200},{80,-160},{190,-160},{190,-82}}, color={0,0,127}));
- annotation (
- Diagram(coordinateSystem(
- extent={{-200,-200},{200,160}},
- grid={2,2},
- initialScale=0.1)),
- Icon(coordinateSystem(
- extent={{-200,-200},{200,160}},
- grid={2,2},
- initialScale=0.1), graphics={Text(
- extent={{-162,112},{-134,95}},
- lineColor={0,128,0},
- textString="(VOS=1)"),Text(
- extent={{-23,-160},{5,-174}},
- lineColor={0,128,0},
- textString="(UEL=2)"),Text(
- extent={{-144,-160},{-116,-174}},
- lineColor={0,128,0},
- textString="(UEL=1)"),Text(
- extent={{33,-160},{61,-174}},
- lineColor={0,128,0},
- textString="(UEL=3)"),Text(
- extent={{-190,140},{-108,120}},
- lineColor={28,108,200},
- textString="VOTHSG2"),Text(
- extent={{-162,152},{-134,135}},
- lineColor={0,128,0},
- textString="(VOS=2)"),Text(
- extent={{-184,60},{-156,40}},
- lineColor={28,108,200},
- textString="VT"),Text(
- extent={{-184,-62},{-114,-82}},
- lineColor={28,108,200},
- textString="XADIFD"),Text(
- extent={{-36,-170},{16,-190}},
- lineColor={28,108,200},
- textString="VUEL"),Text(
- extent={{24,-170},{76,-190}},
- lineColor={28,108,200},
- textString="VUEL")}),
- Documentation(info="
-
-
-Reference |
-PSS/E Manual |
-
-
-Last update |
-2016-04-29 |
-
-
-Author |
-Tin Rabuzin,SmarTS Lab, KTH Royal Institute of Technology |
-
-
-Contact |
-luigiv@kth.se |
-
-
-"));
- end ESST1A;
-
- model URST5T "IEEE Proposed Type ST5B Excitation System"
- extends
- OpenIPSL.Electrical.Controls.PSSE.ES.BaseClasses.BaseExciter;
- parameter Real T_R=0.025;
- parameter Real T_C1=0.1;
- parameter Real T_B1=0.2;
- parameter Real T_C2=1;
- parameter Real T_B2=1;
- parameter Real KR=1;
- parameter Real V_RMAX=10;
- parameter Real V_RMIN=-10;
- parameter Real T_1=0.58;
- parameter Real K_C=0.3;
- Modelica.Blocks.Math.Add VERR1 annotation (Placement(transformation(
- extent={{-10,10},{10,-10}},
- rotation=0,
- origin={-10,0})));
- NonElectrical.Logical.LV_GATE lV_Gate
- annotation (Placement(transformation(extent={{-56,-6},{-32,6}})));
- NonElectrical.Logical.HV_GATE hV_Gate
- annotation (Placement(transformation(extent={{-86,-6},{-64,6}})));
- NonElectrical.Continuous.LeadLagLim LL1(
- K=1,
- outMax=V_RMAX/KR,
- outMin=V_RMIN/KR,
- T1=T_C1,
- T2=T_B1,
- y_start=VR0/KR)
- annotation (Placement(transformation(extent={{10,-10},{30,10}})));
- NonElectrical.Continuous.LeadLagLim LL2(
- K=1,
- outMax=V_RMAX/KR,
- outMin=V_RMIN/KR,
- T1=T_C2,
- T2=T_B2,
- y_start=VR0/KR)
- annotation (Placement(transformation(extent={{40,-10},{60,10}})));
- Modelica.Blocks.Math.Gain K_R(k=KR) annotation (Placement(transformation(
- extent={{-10,-10},{10,10}},
- rotation=0,
- origin={80,0})));
- Modelica.Blocks.Nonlinear.Limiter limiter(uMax=V_RMAX, uMin=V_RMIN)
- annotation (Placement(transformation(extent={{100,-10},{120,10}})));
- Modelica.Blocks.Math.Add VERR2(k1=-1, k2=1) annotation (Placement(
- transformation(
- extent={{-10,10},{10,-10}},
- rotation=0,
- origin={178,0})));
- Modelica.Blocks.Math.Gain K_c(k=K_C) annotation (Placement(transformation(
- extent={{-10,-10},{10,10}},
- rotation=90,
- origin={160,-30})));
- Modelica.Blocks.Math.Gain Vmin(k=V_RMIN) annotation (Placement(transformation(
- extent={{10,-10},{-10,10}},
- rotation=0,
- origin={150,50})));
- Modelica.Blocks.Math.Gain Vmax(k=V_RMAX) annotation (Placement(transformation(
- extent={{10,-10},{-10,10}},
- rotation=0,
- origin={150,90})));
- NonElectrical.Continuous.SimpleLagLimVar simpleLagLimVar(
- K=1,
- T=T_1,
- y_start=VR0)
- annotation (Placement(transformation(extent={{130,-10},{150,10}})));
- NonElectrical.Continuous.SimpleLag TransducerDelay(
- K=1,
- T=T_R,
- y_start=ECOMP0)
- annotation (Placement(transformation(extent={{-170,-10},{-150,10}})));
- Modelica.Blocks.Interfaces.RealInput VT annotation (Placement(transformation(
- extent={{20,-20},{-20,20}},
- rotation=0,
- origin={200,70}), iconTransformation(extent={{-10,-10},{10,10}}, origin=
- {-200,50})));
- protected
- parameter Real VR0(fixed=false);
- initial equation
- VR0 = Efd0 + K_C*XADIFD;
- V_REF = VR0/KR + ECOMP;
- equation
- connect(LL1.u, VERR1.y)
- annotation (Line(points={{8,0},{8,0},{1,0}}, color={0,0,127}));
- connect(LL1.y, LL2.u)
- annotation (Line(points={{31,0},{31,0},{38,0}}, color={0,0,127}));
- connect(ECOMP, TransducerDelay.u)
- annotation (Line(points={{-200,0},{-186,0},{-172,0}}, color={0,0,127}));
- connect(TransducerDelay.y, DiffV.u2) annotation (Line(points={{-149,0},{-132,
- 0},{-132,-6},{-122,-6}}, color={0,0,127}));
- connect(VUEL, hV_Gate.n1) annotation (Line(points={{-130,-200},{-130,-200},{-130,
- -20},{-90,-20},{-90,3},{-87.375,3}}, color={0,0,127}));
- connect(DiffV.y, hV_Gate.n2) annotation (Line(points={{-99,0},{-92,0},{-92,-3},
- {-87.375,-3}}, color={0,0,127}));
- connect(VOEL, lV_Gate.n2) annotation (Line(points={{-70,-200},{-70,-200},{-70,
- -34},{-70,-20},{-60,-20},{-60,-3},{-57.5,-3}}, color={0,0,127}));
- connect(hV_Gate.p, lV_Gate.n1) annotation (Line(points={{-65.375,0},{-62,0},{
- -62,3},{-57.5,3}}, color={0,0,127}));
- connect(lV_Gate.p, VERR1.u1) annotation (Line(points={{-33.5,0},{-30,0},{-30,
- -6},{-22,-6}}, color={0,0,127}));
- connect(VOTHSG, VERR1.u2) annotation (Line(points={{-200,90},{-200,90},{-30,
- 90},{-30,6},{-22,6}}, color={0,0,127}));
- connect(LL2.y, K_R.u)
- annotation (Line(points={{61,0},{61,0},{68,0}}, color={0,0,127}));
- connect(K_R.y, limiter.u)
- annotation (Line(points={{91,0},{98,0}}, color={0,0,127}));
- connect(limiter.y, simpleLagLimVar.u)
- annotation (Line(points={{121,0},{124.5,0},{128,0}}, color={0,0,127}));
- connect(VERR2.y, EFD)
- annotation (Line(points={{189,0},{210,0}}, color={0,0,127}));
- connect(K_c.y, VERR2.u1) annotation (Line(points={{160,-19},{160,-19},{160,-6},
- {166,-6}}, color={0,0,127}));
- connect(simpleLagLimVar.y, VERR2.u2) annotation (Line(points={{151,0},{160,0},
- {160,6},{166,6}}, color={0,0,127}));
- connect(VT, Vmax.u) annotation (Line(points={{200,70},{172,70},{172,90},{162,
- 90}}, color={0,0,127}));
- connect(Vmin.u, Vmax.u) annotation (Line(points={{162,50},{172,50},{172,90},{
- 162,90}}, color={0,0,127}));
- connect(Vmin.y, simpleLagLimVar.outMin) annotation (Line(points={{139,50},{
- 124,50},{124,-20},{132,-20},{132,-14}}, color={0,0,127}));
- connect(Vmax.y, simpleLagLimVar.outMax) annotation (Line(points={{139,90},{
- 128,90},{128,20},{148,20},{148,14}}, color={0,0,127}));
- connect(K_c.u, XADIFD) annotation (Line(points={{160,-42},{160,-140},{80,-140},{80,-200}}, color={0,0,127}));
- annotation (
- Diagram(coordinateSystem(extent={{-200,-200},{200,160}}, initialScale=0.1)),
- Icon(coordinateSystem(
- extent={{-200,-200},{200,160}},
- preserveAspectRatio=true,
- initialScale=0.1), graphics={Text(
- extent={{-188,60},{-154,40}},
- lineColor={28,108,200},
- textString="VT"),Text(
- extent={{-178,-62},{-114,-82}},
- lineColor={28,108,200},
- textString="XADIFD")}),
- Documentation(info="
-
-
-Reference |
-PSS/E Manual |
-
-
-Last update |
-2016-04-29 |
-
-
-Author |
-Tin Rabuzin,SmarTS Lab, KTH Royal Institute of Technology |
-
-
-Contact |
-luigiv@kth.se |
-
-
-"));
- end URST5T;
-
- package BaseClasses
- model SelectLogic
- "Selection of voltage signal depending on the Excitation limiters"
- Modelica.Blocks.Interfaces.RealInput V1
- annotation (Placement(transformation(extent={{-138,40},{-98,80}})));
- Modelica.Blocks.Interfaces.RealInput V2
- annotation (Placement(transformation(extent={{-138,-20},{-98,20}})));
- Modelica.Blocks.Interfaces.RealInput V3
- annotation (Placement(transformation(extent={{-138,-80},{-98,-40}})));
- Modelica.Blocks.Interfaces.RealInput VOEL annotation (Placement(
- transformation(
- extent={{-20,-20},{20,20}},
- rotation=270,
- origin={-60,96}), iconTransformation(
- extent={{-20,-20},{20,20}},
- rotation=270,
- origin={-60,112})));
- Modelica.Blocks.Interfaces.RealInput VUEL annotation (Placement(
- transformation(
- extent={{-20,-20},{20,20}},
- rotation=270,
- origin={0,96}), iconTransformation(
- extent={{-20,-20},{20,20}},
- rotation=270,
- origin={0,112})));
- Modelica.Blocks.Interfaces.RealInput VERR annotation (Placement(
- transformation(
- extent={{-20,-20},{20,20}},
- rotation=270,
- origin={60,96}), iconTransformation(
- extent={{-20,-20},{20,20}},
- rotation=270,
- origin={60,112})));
- Modelica.Blocks.Interfaces.RealOutput Vout
- annotation (Placement(transformation(extent={{100,10},{120,30}})));
- equation
- Vout = if VOEL > 0 then V3 else if VUEL > 0 then V2 else V1;
- annotation (
- Diagram(coordinateSystem(preserveAspectRatio=true, extent={{-100,-100},{100,
- 100}}), graphics),
- Icon(coordinateSystem(preserveAspectRatio=true, extent={{-100,-100},{100,
- 100}}), graphics={Text(
- extent={{-42,54},{38,-48}},
- lineColor={0,0,255},
- textString="Select
-Logic"), Rectangle(extent={{-100,100},{100,-100}}, lineColor={0,0,255})}),
- Documentation);
- end SelectLogic;
-
- partial model BaseExciter
- Modelica.Blocks.Interfaces.RealInput VUEL annotation (Placement(
- transformation(
- extent={{-20,-20},{20,20}},
- rotation=90,
- origin={-130,-200}), iconTransformation(
- extent={{-10,-10},{10,10}},
- rotation=90,
- origin={-130,-200})));
- Modelica.Blocks.Interfaces.RealInput VOEL annotation (Placement(
- transformation(
- extent={{-20,-20},{20,20}},
- rotation=90,
- origin={-70,-200}), iconTransformation(
- extent={{-10,-10},{10,10}},
- rotation=90,
- origin={-70,-200})));
- Modelica.Blocks.Interfaces.RealOutput EFD "Excitation Voltage (pu)"
- annotation (Placement(transformation(extent={{200,-10},{220,10}})));
- Modelica.Blocks.Interfaces.RealInput EFD0 annotation (Placement(
- transformation(
- extent={{-20,-20},{20,20}},
- rotation=0,
- origin={-200,-130}), iconTransformation(extent={{-10,-10},{10,10}},
- origin={-200,-130})));
- Modelica.Blocks.Interfaces.RealInput VOTHSG annotation (Placement(
- transformation(
- extent={{-20,-20},{20,20}},
- rotation=0,
- origin={-200,90}), iconTransformation(extent={{-10,-10},{10,10}},
- origin={-200,90})));
- Modelica.Blocks.Interfaces.RealInput ECOMP annotation (Placement(
- transformation(
- extent={{-20,-20},{20,20}},
- rotation=0,
- origin={-200,0}), iconTransformation(extent={{-10,-10},{10,10}}, origin=
- {-200,0})));
- Modelica.Blocks.Sources.Constant VoltageReference(k=V_REF)
- annotation (Placement(transformation(extent={{-170,40},{-150,60}})));
- Modelica.Blocks.Math.Add DiffV(k2=-1)
- annotation (Placement(transformation(extent={{-120,-10},{-100,10}})));
- protected
- parameter Real Efd0(fixed=false);
- parameter Real V_REF(fixed=false);
- parameter Real ECOMP0(fixed=false);
- public
- Modelica.Blocks.Interfaces.RealInput XADIFD annotation (Placement(
- transformation(
- extent={{-20,-20},{20,20}},
- rotation=90,
- origin={80,-200}), iconTransformation(
- extent={{-10,-10},{10,10}},
- rotation=90,
- origin={90,-196})));
- initial equation
- Efd0 = EFD0;
- ECOMP0 = ECOMP;
- equation
- connect(VoltageReference.y, DiffV.u1) annotation (Line(points={{-149,50},{-132,
- 50},{-132,6},{-122,6}}, color={0,0,127}));
- annotation (
- Icon(coordinateSystem(extent={{-200,-200},{200,160}}, initialScale=0.1),
- graphics={Rectangle(
- extent={{-200,160},{200,-200}},
- lineColor={28,108,200},
- fillColor={255,255,255},
- fillPattern=FillPattern.Solid),Text(
- extent={{-154,-170},{-102,-190}},
- lineColor={28,108,200},
- textString="VUEL"),Text(
- extent={{-92,-170},{-40,-190}},
- lineColor={28,108,200},
- textString="VOEL"),Text(
- extent={{-184,8},{-114,-12}},
- lineColor={28,108,200},
- textString="ECOMP"),Text(
- extent={{-188,100},{-106,80}},
- lineColor={28,108,200},
- textString="VOTHSG"),Text(
- extent={{-182,-122},{-130,-142}},
- lineColor={28,108,200},
- textString="EFD0"),Text(
- extent={{152,12},{194,-8}},
- lineColor={28,108,200},
- textString="EFD")}),
- Diagram(coordinateSystem(extent={{-200,-200},{200,160}}, initialScale=0.1)),
- Documentation);
- end BaseExciter;
-
- model RotatingExciter
- extends
- OpenIPSL.Electrical.Controls.PSSE.ES.BaseClasses.RotatingExciterBase(
- redeclare replaceable Modelica.Blocks.Continuous.Integrator
- sISO(
- k=1/T_E,
- initType=Modelica.Blocks.Types.Init.InitialOutput,
- y_start=Efd0));
- annotation (
- Icon(coordinateSystem(initialScale=0.05, extent={{-80,-80},{80,80}}),
- graphics={Rectangle(
- extent={{-80,80},{80,-80}},
- lineColor={28,108,200},
- fillColor={255,255,255},
- fillPattern=FillPattern.Solid),Text(
- extent={{-52,70},{44,56}},
- lineColor={28,108,200},
- fillColor={255,255,255},
- fillPattern=FillPattern.Solid,
- textString="Rotating Exciter"),Text(
- extent={{-81,4},{-57,-6}},
- lineColor={28,108,200},
- textString="I_C"),Text(
- extent={{56,6},{77,-4}},
- lineColor={28,108,200},
- textString="V_E")}),
- Diagram(coordinateSystem(initialScale=0.05, extent={{-80,-80},{80,80}})),
- Documentation);
- end RotatingExciter;
-
- model RotatingExciterLimited
- extends RotatingExciterBase(redeclare replaceable
- Modelica.Blocks.Continuous.LimIntegrator sISO(
- k=1/T_E,
- y_start=Efd0,
- outMin=0,
- outMax=Modelica.Constants.inf,
- initType=Modelica.Blocks.Types.Init.InitialOutput));
- annotation (Icon(graphics={Text(
- extent={{-56,56},{52,44}},
- lineColor={255,0,0},
- fillColor={255,255,255},
- fillPattern=FillPattern.Solid,
- textString="Limited")}), Documentation);
- end RotatingExciterLimited;
-
- model RotatingExciterWithDemagnetization
- extends
- OpenIPSL.Electrical.Controls.PSSE.ES.BaseClasses.RotatingExciterBase(
- redeclare Modelica.Blocks.Math.Add3 Sum(k3=K_D), redeclare
- replaceable Modelica.Blocks.Continuous.Integrator sISO(
- k=1/T_E,
- initType=Modelica.Blocks.Types.Init.InitialOutput,
- y_start=Efd0));
- parameter Real K_D "Exciter demagnetizing factor (pu)";
- Modelica.Blocks.Interfaces.RealInput XADIFD annotation (Placement(
- transformation(
- extent={{-20,-20},{20,20}},
- rotation=90,
- origin={10,-100}), iconTransformation(
- extent={{-10,-10},{10,10}},
- rotation=90,
- origin={0,-90})));
- Modelica.Blocks.Interfaces.RealOutput V_FE annotation (Placement(
- transformation(
- extent={{-10,10},{10,-10}},
- rotation=180,
- origin={-90,-40}), iconTransformation(extent={{-80,-60},{-100,-40}})));
- equation
- connect(XADIFD, Sum.u3) annotation (Line(points={{10,-100},{0,-100},{0,-38},{
- -18,-38}}, color={0,0,127}));
- connect(V_FE, feedback.u2)
- annotation (Line(points={{-90,-40},{-50,-40},{-50,12}}, color={0,0,127}));
- annotation (
- Icon(coordinateSystem(initialScale=0.05, extent={{-80,-80},{80,80}}),
- graphics={Rectangle(
- extent={{-80,80},{80,-80}},
- lineColor={28,108,200},
- fillColor={255,255,255},
- fillPattern=FillPattern.Solid),Text(
- extent={{-50,70},{46,56}},
- lineColor={28,108,200},
- fillColor={255,255,255},
- fillPattern=FillPattern.Solid,
- textString="Rotating Exciter"),Text(
- extent={{-81,4},{-57,-6}},
- lineColor={28,108,200},
- textString="I_C"),Text(
- extent={{56,6},{77,-4}},
- lineColor={28,108,200},
- textString="V_E"),Text(
- extent={{-56,60},{52,44}},
- lineColor={255,0,0},
- fillColor={255,255,255},
- fillPattern=FillPattern.Solid,
- textString="with Demagnetization Effect"),Text(
- extent={{-19,-64},{18,-74}},
- lineColor={28,108,200},
- textString="XADIFD"),Text(
- extent={{-77,-44},{-53,-54}},
- lineColor={28,108,200},
- textString="V_FE")}),
- Diagram(coordinateSystem(initialScale=0.05, extent={{-80,-80},{80,80}})),
- Documentation);
- end RotatingExciterWithDemagnetization;
-
- model RotatingExciterWithDemagnetizationLimited
- extends RotatingExciterWithDemagnetization(redeclare replaceable
- Modelica.Blocks.Continuous.LimIntegrator sISO(
- outMin=0,
- k=1/T_E,
- initType=Modelica.Blocks.Types.Init.InitialOutput,
- y_start=Efd0,
- outMax=Modelica.Constants.inf));
- annotation (Icon(graphics={Text(
- extent={{-54,48},{52,36}},
- lineColor={255,0,0},
- fillColor={255,255,255},
- fillPattern=FillPattern.Solid,
- textString="Limited")}), Documentation);
- end RotatingExciterWithDemagnetizationLimited;
-
- model RotatingExciterWithDemagnetizationVarLim
- extends RotatingExciterBase(redeclare replaceable
- OpenIPSL.NonElectrical.Continuous.IntegratorLimVar sISO(K=1/T_E,
- y_start=Efd0),
- redeclare Modelica.Blocks.Math.Add3 Sum(k3=K_D));
- parameter Real K_D "Exciter demagnetizing factor (pu)";
- Modelica.Blocks.Interfaces.RealInput outMin annotation (Placement(
- transformation(extent={{-120,50},{-80,90}}), iconTransformation(extent=
- {{100,50},{80,70}})));
- Modelica.Blocks.Interfaces.RealInput outMax annotation (Placement(
- transformation(extent={{120,50},{80,90}}), iconTransformation(extent={{
- -100,50},{-80,70}})));
- Modelica.Blocks.Interfaces.RealInput XADIFD annotation (Placement(
- transformation(
- extent={{-20,-20},{20,20}},
- rotation=90,
- origin={20,-100}), iconTransformation(
- extent={{-10,-10},{10,10}},
- rotation=90,
- origin={0,-90})));
- Modelica.Blocks.Interfaces.RealOutput V_FE annotation (Placement(
- transformation(
- extent={{-10,10},{10,-10}},
- rotation=180,
- origin={-82,-32}), iconTransformation(extent={{-80,-60},{-100,-40}})));
- equation
- connect(outMax, sISO.outMax)
- annotation (Line(points={{100,70},{8,70},{8,34}}, color={0,0,127}));
- connect(outMin, sISO.outMin) annotation (Line(points={{-100,70},{-60,70},{-20,
- 70},{-20,0},{-8,0},{-8,6}}, color={0,0,127}));
- connect(XADIFD, Sum.u3) annotation (Line(points={{20,-100},{8,-100},{8,-38},{
- -18,-38}}, color={0,0,127}));
- connect(V_FE, feedback.u2)
- annotation (Line(points={{-82,-32},{-50,-32},{-50,12}}, color={0,0,127}));
- annotation (Icon(graphics={Text(
- extent={{-54,48},{52,36}},
- lineColor={255,0,0},
- fillColor={255,255,255},
- fillPattern=FillPattern.Solid,
- textString="Limited"),Text(
- extent={{-79,66},{-48,56}},
- lineColor={28,108,200},
- textString="outMax"),Text(
- extent={{47,66},{78,56}},
- lineColor={28,108,200},
- textString="outMin"),Text(
- extent={{-52,60},{56,44}},
- lineColor={255,0,0},
- fillColor={255,255,255},
- fillPattern=FillPattern.Solid,
- textString="with Demagnetization Effect")}), Documentation);
- end RotatingExciterWithDemagnetizationVarLim;
-
- model RectifierCommutationVoltageDrop
- parameter Real K_C "Rectifier load factor (pu)";
- Modelica.Blocks.Interfaces.RealInput V_EX annotation (Placement(
- transformation(extent={{-140,-20},{-100,20}}), iconTransformation(
- extent={{-120,-10},{-100,10}})));
- Modelica.Blocks.Interfaces.RealInput XADIFD annotation (Placement(
- transformation(
- extent={{-20,-20},{20,20}},
- rotation=0,
- origin={-120,50}), iconTransformation(
- extent={{-10,-10},{10,10}},
- rotation=90,
- origin={0,-110})));
- Modelica.Blocks.Interfaces.RealOutput EFD annotation (Placement(
- transformation(extent={{100,-10},{120,10}}), iconTransformation(extent=
- {{100,-10},{120,10}})));
- Modelica.Blocks.Math.Gain gain2(k=K_C) annotation (Placement(transformation(
- extent={{-10,-10},{10,10}},
- rotation=0,
- origin={-70,50})));
- NonElectrical.Nonlinear.FEX fEX annotation (Placement(transformation(
- extent={{-10,-10},{10,10}},
- rotation=0,
- origin={10,0})));
- Modelica.Blocks.Math.Product product1 annotation (Placement(transformation(
- extent={{-10,-10},{10,10}},
- rotation=0,
- origin={70,0})));
- Modelica.Blocks.Math.Division division
- annotation (Placement(transformation(extent={{-40,-10},{-20,10}})));
- equation
- connect(V_EX, division.u2) annotation (Line(points={{-120,0},{-80,0},{-80,-6},
- {-42,-6}}, color={0,0,127}));
- connect(XADIFD, gain2.u)
- annotation (Line(points={{-120,50},{-82,50},{-82,50}}, color={0,0,127}));
- connect(gain2.y, division.u1) annotation (Line(points={{-59,50},{-52,50},{-52,
- 6},{-42,6}}, color={0,0,127}));
- connect(division.y, fEX.u)
- annotation (Line(points={{-19,0},{-9.5,0},{0,0}}, color={0,0,127}));
- connect(product1.y, EFD)
- annotation (Line(points={{81,0},{110,0}}, color={0,0,127}));
- connect(fEX.y, product1.u2)
- annotation (Line(points={{21,0},{48,0},{48,-6},{58,-6}}, color={0,0,127}));
- connect(product1.u1, division.u2) annotation (Line(points={{58,6},{48,6},{48,
- 20},{-80,20},{-80,-6},{-42,-6}}, color={0,0,127}));
- annotation (
- Icon(coordinateSystem(initialScale=0.1), graphics={Rectangle(
- extent={{-100,100},{100,-100}},
- lineColor={28,108,200},
- fillColor={255,255,255},
- fillPattern=FillPattern.Solid),Text(
- extent={{-68,96},{70,60}},
- lineColor={28,108,200},
- fillColor={255,255,255},
- fillPattern=FillPattern.Solid,
- textString="Rectifier Commutation
-Voltage Drop"), Text(
- extent={{-99,4},{-70,-6}},
- lineColor={28,108,200},
- textString="V_EX"),Text(
- extent={{-19,-86},{18,-96}},
- lineColor={28,108,200},
- textString="XADIFD"),Text(
- extent={{76,6},{98,-4}},
- lineColor={28,108,200},
- textString="EFD")}),
- Diagram(coordinateSystem(initialScale=0.1)),
- Documentation);
- end RectifierCommutationVoltageDrop;
-
- function calculate_dc_exciter_params
- "Automatic Calculation of DC Exciter Parameters"
- input Real V_RMAX_init;
- input Real V_RMIN_init;
- input Real K_E_init;
- input Real E_2;
- input Real S_EE_2;
- input Real Efd0;
- input Real SE_Efd0;
- output Real V_RMAX;
- output Real V_RMIN;
- output Real K_E;
- algorithm
- if V_RMAX_init == 0 then
- if K_E_init <= 0 then
- V_RMAX := S_EE_2*E_2;
- else
- V_RMAX := S_EE_2 + K_E_init;
- end if;
- else
- V_RMAX := V_RMAX_init;
- end if;
- if K_E_init == 0 then
- K_E := V_RMAX/(10*Efd0) - SE_Efd0;
- else
- K_E := K_E_init;
- end if;
- if V_RMAX_init == 0 then
- V_RMIN := -V_RMAX;
- else
- V_RMIN := V_RMIN_init;
- end if;
- annotation (Documentation(info="
-
-
-Reference |
-PAGV2 - Section 15.2.4, PSS/E Manual |
-
-
-Last update |
-2016-04-19 |
-
-
-Author |
-Tin Rabuzin, SmarTS Lab, KTH Royal Institute of Technology |
-
-
-Contact |
-luigiv@kth.se |
-
-
-"));
- end calculate_dc_exciter_params;
-
- model RotatingExciterBase
- parameter Real T_E "Exciter time constant (s)";
- parameter Real K_E "Exciter field gain";
- parameter Real E_1 "Exciter saturation point 1 (pu)";
- parameter Real E_2 "Exciter saturation point 2 (pu)";
- parameter Real S_EE_1 "Saturation at E_1";
- parameter Real S_EE_2 "Saturation at E_2";
- parameter Real Efd0;
- Modelica.Blocks.Interfaces.RealInput I_C annotation (Placement(transformation(
- extent={{-120,-20},{-80,20}}), iconTransformation(extent={{-100,-10},
- {-80,10}})));
- Modelica.Blocks.Interfaces.RealOutput EFD annotation (Placement(
- transformation(extent={{80,-10},{100,10}}), iconTransformation(extent={
- {80,-10},{100,10}})));
- Modelica.Blocks.Math.Gain gain(k=K_E) annotation (Placement(transformation(
- extent={{-10,-10},{10,10}},
- rotation=180,
- origin={30,-50})));
- replaceable Modelica.Blocks.Math.Add Sum annotation (Placement(transformation(
- extent={{-10,10},{10,-10}},
- rotation=180,
- origin={-30,-30})));
- Modelica.Blocks.Math.Product VE annotation (Placement(transformation(
- extent={{-10,-10},{10,10}},
- rotation=180,
- origin={30,-10})));
- NonElectrical.Functions.ImSE se1(
- SE1=S_EE_1,
- SE2=S_EE_2,
- E1=E_1,
- E2=E_2) annotation (Placement(transformation(
- extent={{-9,-6},{9,6}},
- rotation=180,
- origin={61,-4})));
- Modelica.Blocks.Math.Feedback feedback
- annotation (Placement(transformation(extent={{-60,10},{-40,30}})));
- replaceable Modelica.Blocks.Interfaces.SISO sISO
- annotation (Placement(transformation(extent={{-10,10},{10,30}})));
- equation
- connect(Sum.y, feedback.u2) annotation (Line(points={{-41,-30},{-41,-30},{-50,
- -30},{-50,12}}, color={0,0,127}));
- connect(se1.VE_OUT, VE.u2)
- annotation (Line(points={{51.46,-4},{42,-4}}, color={0,0,127}));
- connect(se1.VE_IN, EFD) annotation (Line(points={{70.9,-4},{76,-4},{76,0},{90,
- 0}}, color={0,0,127}));
- connect(VE.u1, EFD) annotation (Line(points={{42,-16},{76,-16},{76,0},{90,0}},
- color={0,0,127}));
- connect(gain.u, EFD) annotation (Line(points={{42,-50},{76,-50},{76,0},{90,0}},
- color={0,0,127}));
- connect(gain.y, Sum.u2) annotation (Line(points={{19,-50},{-12,-50},{-12,-30},
- {-18,-30}}, color={0,0,127}));
- connect(VE.y, Sum.u1) annotation (Line(points={{19,-10},{-12,-10},{-12,-22},{
- -18,-22}}, color={0,0,127}));
- connect(I_C, feedback.u1) annotation (Line(points={{-100,0},{-68,0},{-68,20},
- {-58,20}}, color={0,0,127}));
- connect(feedback.y, sISO.u)
- annotation (Line(points={{-41,20},{-12,20},{-12,20}}, color={0,0,127}));
- connect(sISO.y, EFD)
- annotation (Line(points={{11,20},{76,20},{76,0},{90,0}}, color={0,0,127}));
- annotation (
- Icon(coordinateSystem(initialScale=0.05, extent={{-80,-80},{80,80}}),
- graphics={Rectangle(
- extent={{-80,80},{80,-80}},
- lineColor={28,108,200},
- fillColor={255,255,255},
- fillPattern=FillPattern.Solid),Text(
- extent={{-52,70},{44,56}},
- lineColor={28,108,200},
- fillColor={255,255,255},
- fillPattern=FillPattern.Solid,
- textString="Rotating Exciter"),Text(
- extent={{-81,4},{-57,-6}},
- lineColor={28,108,200},
- textString="I_C"),Text(
- extent={{56,6},{77,-4}},
- lineColor={28,108,200},
- textString="V_E")}),
- Diagram(coordinateSystem(initialScale=0.05, extent={{-80,-80},{80,80}})),
- Documentation);
- end RotatingExciterBase;
-
- function invFEX "Inverse F_EX function for initialization"
- input Real K_C=K_C;
- input Real Efd0;
- input Real Ifd0;
- output Real VE0;
- algorithm
- if Ifd0 <= 0 then
- VE0 := Efd0;
- elseif K_C*Ifd0/(Efd0 + 0.577*K_C*Ifd0) <= 0.433 then
- VE0 := Efd0 + 0.577*K_C*Ifd0;
- elseif K_C*Ifd0/sqrt((Efd0^2 + (K_C*Ifd0)^2)/0.75) > 0.433 and K_C*Ifd0/sqrt(
- (Efd0^2 + (K_C*Ifd0)^2)/0.75) < 0.75 then
- VE0 := sqrt((Efd0^2 + (K_C*Ifd0)^2)/0.75);
- else
- VE0 := (Efd0 + 1.732*K_C*Ifd0)/1.732;
- end if;
- annotation (Documentation(info="
-
-
-Reference |
-PAGV2 - Section 15.2.4, PSS/E Manual |
-
-
-Last update |
-2016-04-19 |
-
-
-Author |
-Tin Rabuzin, SmarTS Lab, KTH Royal Institute of Technology |
-
-
-Contact |
-luigiv@kth.se |
-
-
-"));
- end invFEX;
- annotation (Documentation);
- end BaseClasses;
- annotation (Documentation(info="
-"));
- end ES;
-
- package TG
- model ConstantPower
- extends BaseClasses.BaseGovernor;
- equation
- connect(PMECH0, PMECH) annotation (Line(points={{-100,-50},{0,-50},{0,0},{110,
- 0}}, color={0,0,127}));
- annotation (Icon(coordinateSystem(preserveAspectRatio=false)), Diagram(
- coordinateSystem(preserveAspectRatio=false)));
- end ConstantPower;
-
- model IEEEG1
- Modelica.Blocks.Interfaces.RealInput SPEED_HP "Machine speed deviation from nominal (pu)"
- annotation (Placement(transformation(extent={{-172,2},{-162,14}}), iconTransformation(extent={{-162,-16},{-132,16}})));
- OpenIPSL.NonElectrical.Continuous.LeadLag imLeadLag(
- K=K,
- T1=T_2,
- T2=T_1,
- y_start=0) annotation (Placement(transformation(extent={{-144,0},
- {-128,16}})));
- OpenIPSL.NonElectrical.Continuous.SimpleLag imSimpleLag(
- K=1,
- T=T_4,
- y_start=P0) annotation (Placement(transformation(extent={{-20,0},
- {-4,16}})));
- OpenIPSL.NonElectrical.Continuous.SimpleLag imSimpleLag1(
- K=1,
- T=T_5,
- y_start=P0)
- annotation (Placement(transformation(extent={{22,0},{38,16}})));
- OpenIPSL.NonElectrical.Continuous.SimpleLag imSimpleLag2(
- K=1,
- T=T_6,
- y_start=P0)
- annotation (Placement(transformation(extent={{62,0},{78,16}})));
- OpenIPSL.NonElectrical.Continuous.SimpleLag imSimpleLag3(
- K=1,
- T=T_7,
- y_start=P0) annotation (Placement(transformation(extent={{102,0},
- {118,16}})));
- Modelica.Blocks.Math.Gain imGain1(k=K_1) annotation (Placement(transformation(
- extent={{-6,-6},{6,6}},
- rotation=90,
- origin={10,32})));
- Modelica.Blocks.Math.Gain imGain2(k=K_2) annotation (Placement(transformation(
- extent={{-6,-6},{6,6}},
- rotation=-90,
- origin={10,-16})));
- Modelica.Blocks.Math.Gain imGain3(k=K_3) annotation (Placement(transformation(
- extent={{-6,-6},{6,6}},
- rotation=90,
- origin={50,32})));
- Modelica.Blocks.Math.Gain imGain4(k=K_4) annotation (Placement(transformation(
- extent={{-6,-6},{6,6}},
- rotation=-90,
- origin={50,-16})));
- Modelica.Blocks.Math.Gain imGain5(k=K_5) annotation (Placement(transformation(
- extent={{-6,-6},{6,6}},
- rotation=90,
- origin={90,32})));
- Modelica.Blocks.Math.Gain imGain6(k=K_6) annotation (Placement(transformation(
- extent={{-6,-6},{6,6}},
- rotation=-90,
- origin={90,-16})));
- Modelica.Blocks.Math.Gain imGain7(k=K_7) annotation (Placement(transformation(
- extent={{-6,-6},{6,6}},
- rotation=90,
- origin={130,32})));
- Modelica.Blocks.Math.Gain imGain8(k=K_8) annotation (Placement(transformation(
- extent={{-6,-6},{6,6}},
- rotation=-90,
- origin={130,-16})));
- Modelica.Blocks.Interfaces.RealOutput PMECH_HP
- "Turbine mechanical power (pu)" annotation (Placement(transformation(extent=
- {{170,52},{180,64}}), iconTransformation(extent={{160,26},{188,54}})));
- Modelica.Blocks.Interfaces.RealOutput PMECH_LP
- "Turbine mechanical power (pu)" annotation (Placement(transformation(extent=
- {{170,-48},{180,-36}}), iconTransformation(extent={{160,-56},{188,-24}})));
- parameter Real P0 "Power reference of the governor";
- parameter Real K=20 "Governor gain, 1/R (pu)";
- parameter Real T_1=1e-8 "Control time constant (s)";
- parameter Real T_2=1e-8 "Control time constant (s)";
- parameter Real T_3=0.1 "Control time constant (s)";
- parameter Real U_o=0.1 "Max. rate if valve opening (p.u./s)";
- parameter Real U_c=-0.1 "Max. rate if valve closing (p.u./s)";
- parameter Real P_MAX=0.903 "Max. valve position (pu)";
- parameter Real P_MIN=0 "Min. valve position (pu)";
- parameter Real T_4=0.4 "HP section time constant (s)";
- parameter Real K_1=0.3 "Fraction of power from HP (pu)";
- parameter Real K_2=0;
- parameter Real T_5=9 "Reheat+IP time constant (s)";
- parameter Real K_3=0.4 "Fraction of power from IP (pu)";
- parameter Real K_4=0;
- parameter Real T_6=0.5 "Reheat+IP time constant s";
- parameter Real K_5=0.3 "Fraction of power from LP (pu)";
- parameter Real K_6=0;
- parameter Real T_7=1e-8 "LP section time const s";
- parameter Real K_7=0 "Fraction of power from IP (pu)";
- parameter Real K_8=0;
- Modelica.Blocks.Sources.Constant Pref(k=P0) "Power reference "
- annotation (Placement(transformation(extent={{-144,34},{-128,50}})));
- Modelica.Blocks.Math.Add3 add3_1(k2=-1, k3=-1)
- annotation (Placement(transformation(extent={{-112,0},{-96,16}})));
- Modelica.Blocks.Math.Gain gain(k=1/T_3)
- annotation (Placement(transformation(extent={{-90,0},{-74,16}})));
- Modelica.Blocks.Nonlinear.Limiter limiter(uMax=U_o, uMin=U_c)
- annotation (Placement(transformation(extent={{-68,0},{-52,16}})));
- Modelica.Blocks.Continuous.LimIntegrator limIntegrator(
- k=1,
- outMax=P_MAX,
- outMin=P_MIN,
- initType=Modelica.Blocks.Types.Init.InitialOutput,
- y_start=P0)
- annotation (Placement(transformation(extent={{-46,0},{-30,16}})));
- Modelica.Blocks.Math.Add add
- annotation (Placement(transformation(extent={{58,52},{70,64}})));
- Modelica.Blocks.Math.Add add1
- annotation (Placement(transformation(extent={{58,-48},{70,-36}})));
- Modelica.Blocks.Math.Add add2
- annotation (Placement(transformation(extent={{98,-48},{110,-36}})));
- Modelica.Blocks.Math.Add add3
- annotation (Placement(transformation(extent={{98,52},{110,64}})));
- Modelica.Blocks.Math.Add add4
- annotation (Placement(transformation(extent={{138,-48},{150,-36}})));
- Modelica.Blocks.Math.Add add5
- annotation (Placement(transformation(extent={{138,52},{150,64}})));
- equation
- connect(SPEED_HP, imLeadLag.u) annotation (Line(points={{-167,8},{-145.6,8}}, color={0,0,127}));
- connect(Pref.y, add3_1.u1) annotation (Line(points={{-127.2,42},{-122,42},{-122,14.4},{-113.6,14.4}}, color={0,0,127}));
- connect(add3_1.u2, imLeadLag.y) annotation (Line(points={{-113.6,8},{-113.6,8},{-127.2,8}}, color={0,0,127}));
- connect(add3_1.y, gain.u) annotation (Line(points={{-95.2,8},{-91.6,8}}, color={0,0,127}));
- connect(gain.y, limiter.u) annotation (Line(points={{-73.2,8},{-69.6,8}}, color={0,0,127}));
- connect(limiter.y, limIntegrator.u) annotation (Line(points={{-51.2,8},{-47.6,8}}, color={0,0,127}));
- connect(imSimpleLag1.u, imSimpleLag.y) annotation (Line(points={{20.4,8},{20.4,8},{-3.2,8}}, color={0,0,127}));
- connect(limIntegrator.y, imSimpleLag.u) annotation (Line(points={{-29.2,8},{-21.6,8}}, color={0,0,127}));
- connect(add3_1.u3, imSimpleLag.u) annotation (Line(points={{-113.6,1.6},{-122,1.6},{-122,-22},{-26,-22},{-26,8},{-21.6,8}}, color={0,0,127}));
- connect(imGain1.u, imSimpleLag.y) annotation (Line(points={{10,24.8},{10,8},{-3.2,8}}, color={0,0,127}));
- connect(imGain2.u, imSimpleLag.y) annotation (Line(points={{10,-8.8},{10,8},{-3.2,8}}, color={0,0,127}));
- connect(imSimpleLag1.y, imSimpleLag2.u) annotation (Line(points={{38.8,8},{60.4,8}}, color={0,0,127}));
- connect(imGain3.u, imSimpleLag2.u) annotation (Line(points={{50,24.8},{50,8},{60.4,8}}, color={0,0,127}));
- connect(imGain4.u, imSimpleLag2.u) annotation (Line(points={{50,-8.8},{50,8},{60.4,8}}, color={0,0,127}));
- connect(add.u2, imGain3.y) annotation (Line(points={{56.8,54.4},{50,54.4},{50,38.6}}, color={0,0,127}));
- connect(imGain1.y, add.u1) annotation (Line(points={{10,38.6},{10,61.6},{56.8,61.6}}, color={0,0,127}));
- connect(add1.u1, imGain4.y) annotation (Line(points={{56.8,-38.4},{50,-38.4},{50,-22.6}}, color={0,0,127}));
- connect(imGain2.y, add1.u2) annotation (Line(points={{10,-22.6},{10,-45.6},{56.8,-45.6}}, color={0,0,127}));
- connect(imSimpleLag2.y, imSimpleLag3.u) annotation (Line(points={{78.8,8},{100.4,8}}, color={0,0,127}));
- connect(imGain5.u, imSimpleLag3.u) annotation (Line(points={{90,24.8},{90,8},{100.4,8}}, color={0,0,127}));
- connect(imGain6.u, imSimpleLag3.u) annotation (Line(points={{90,-8.8},{90,8},{100.4,8}}, color={0,0,127}));
- connect(imGain6.y, add2.u1) annotation (Line(points={{90,-22.6},{90,-38.4},{96.8,-38.4}}, color={0,0,127}));
- connect(add1.y, add2.u2) annotation (Line(points={{70.6,-42},{90,-42},{90,-45.6},{96.8,-45.6}}, color={0,0,127}));
- connect(add.y, add3.u1) annotation (Line(points={{70.6,58},{90,58},{90,61.6},{96.8,61.6}}, color={0,0,127}));
- connect(imGain5.y, add3.u2) annotation (Line(points={{90,38.6},{90,54.4},{96.8,54.4}}, color={0,0,127}));
- connect(imSimpleLag3.y, imGain7.u) annotation (Line(points={{118.8,8},{130,8},{130,24.8}}, color={0,0,127}));
- connect(imGain8.u, imGain7.u) annotation (Line(points={{130,-8.8},{130,24.8}}, color={0,0,127}));
- connect(add4.y, PMECH_LP) annotation (Line(points={{150.6,-42},{152,-42},{175,-42}}, color={0,0,127}));
- connect(imGain8.y, add4.u1) annotation (Line(points={{130,-22.6},{130,-38.4},{136.8,-38.4}}, color={0,0,127}));
- connect(add2.y, add4.u2) annotation (Line(points={{110.6,-42},{130,-42},{130,-45.6},{136.8,-45.6}}, color={0,0,127}));
- connect(add3.y, add5.u1) annotation (Line(points={{110.6,58},{130,58},{130,61.6},{136.8,61.6}}, color={0,0,127}));
- connect(imGain7.y, add5.u2) annotation (Line(points={{130,38.6},{130,54.4},{136.8,54.4}}, color={0,0,127}));
- connect(add5.y, PMECH_HP) annotation (Line(points={{150.6,58},{152,58},{175,58}}, color={0,0,127}));
- annotation (
- Diagram(coordinateSystem(extent={{-140,-80},{160,80}}, preserveAspectRatio=
- false)),
- Icon(coordinateSystem(extent={{-140,-80},{160,80}}, preserveAspectRatio=
- true), graphics={Rectangle(extent={{-140,80},{160,-80}}, lineColor=
- {0,0,255}),Text(
- extent={{-122,18},{-68,-18}},
- lineColor={0,0,255},
- fillPattern=FillPattern.Solid,
- textString="SPEED_HP"),Text(
- extent={{84,56},{158,26}},
- lineColor={0,0,255},
- fillPattern=FillPattern.Solid,
- textString="PMECH_HP"),Text(
- extent={{86,-10},{158,-48}},
- lineColor={0,0,255},
- fillPattern=FillPattern.Solid,
- textString="PMECH_LP"),Text(
- extent={{-68,40},{88,-46}},
- lineColor={0,0,255},
- fillPattern=FillPattern.Solid,
- textString="IEEEG1")}),
- Documentation(info="
-
-
-Reference |
-Turbine and Governor (IEEEG1), PSSE manual |
-
-
-Last update |
-2015-10-02 |
-
-
-Author |
-Le Qi, SmarTS Lab, KTH Royal Institute of Technology |
-
-
-Contact |
-luigi.vanfretti@gmail.com |
-
-
-"));
- end IEEEG1;
-
- model IEESGO "IEESGO - IEEE Standard Model for Turbine-Governor"
- extends BaseClasses.BaseGovernor;
- parameter Real T_1=0.2 "Controller lag (s)";
- parameter Real T_2=0 "Controller lead compensation (s)";
- parameter Real T_3=0.5 "Governor lag (s)";
- parameter Real T_4=0.12
- "Delay due to steam inlet volumes associated with steam chest and inlet piping (s)";
- parameter Real T_5=5 "Reheater delay including hot and cold leads (s)";
- parameter Real T_6=0.5
- "Delay due to IP-LP turbine, crossover pipes, and LP end hoods (s)";
- parameter Real K_1=20 "1/p.u. regulation ";
- parameter Real K_2=0.59 "Fraction ";
- parameter Real K_3=0.43 "Fraction ";
- parameter Real P_MAX=0.98 "Upper power limit";
- parameter Real P_MIN=0 "Lower power limit";
- OpenIPSL.NonElectrical.Continuous.SimpleLag imSimpleLag(
- K=K_1,
- T=T_1,
- y_start=0) annotation (Placement(transformation(extent={{-180,-130},
- {-160,-110}})));
- OpenIPSL.NonElectrical.Continuous.LeadLag imLeadLag(
- K=1,
- T1=T_2,
- T2=T_3,
- y_start=0) annotation (Placement(transformation(extent={{-140,-130},
- {-120,-110}})));
- OpenIPSL.NonElectrical.Continuous.SimpleLag imSimpleLag1(
- K=1,
- T=T_4,
- y_start=p0) annotation (Placement(transformation(extent={{20,-10},
- {40,10}})));
- OpenIPSL.NonElectrical.Continuous.SimpleLag imSimpleLag2(
- K=K_2,
- T=T_5,
- y_start=p0*K_2) annotation (Placement(transformation(extent={{
- 80,-80},{100,-60}})));
- OpenIPSL.NonElectrical.Continuous.SimpleLag imSimpleLag3(
- K=K_3,
- T=T_6,
- y_start=p0*K_2*K_3) annotation (Placement(transformation(extent
- ={{120,-80},{140,-60}})));
- Modelica.Blocks.Math.Add add(k2=-1) annotation (Placement(transformation(extent={{-60,-10},
- {-40,10}})));
- Modelica.Blocks.Nonlinear.Limiter limiter(uMax=P_MAX, uMin=P_MIN) annotation (Placement(transformation(extent={{-20,-10},
- {0,10}})));
- Modelica.Blocks.Math.Gain gain(k=1 - K_2) annotation (Placement(transformation(extent={{120,-10},
- {140,10}})));
- Modelica.Blocks.Math.Gain gain1(k=1 - K_3) annotation (Placement(transformation(extent={{120,-40},
- {140,-20}})));
- Modelica.Blocks.Math.Add3 add3_1 annotation (Placement(transformation(extent={{160,-18},
- {180,2}})));
- protected
- parameter Real p0(fixed=false);
- initial algorithm
- p0 := PMECH0;
-
- equation
- connect(imSimpleLag.y, imLeadLag.u) annotation (Line(points={{-159,-120},{-142,
- -120}}, color={0,0,127}));
- connect(imLeadLag.y, add.u2) annotation (Line(points={{-119,-120},{-80,-120},{
- -80,-6},{-62,-6}}, color={0,0,127}));
- connect(add.y, limiter.u) annotation (Line(points={{-39,0},{-22,0}}, color={0,0,127}));
- connect(limiter.y, imSimpleLag1.u) annotation (Line(points={{1,0},{1,0},{18,0}}, color={0,0,127}));
- connect(imSimpleLag2.y, imSimpleLag3.u) annotation (Line(points={{101,-70},{118,
- -70}}, color={0,0,127}));
- connect(gain1.u, imSimpleLag3.u) annotation (Line(points={{118,-30},{110,-30},
- {110,-70},{118,-70}}, color={0,0,127}));
- connect(PMECH0, add.u1) annotation (Line(points={{-240,80},{-80,80},{-80,6},{-62,
- 6}}, color={0,0,127}));
- connect(SPEED, imSimpleLag.u) annotation (Line(points={{-240,-120},{-212,-120},
- {-182,-120}}, color={0,0,127}));
- connect(imSimpleLag1.y, gain.u)
- annotation (Line(points={{41,0},{118,0}}, color={0,0,127}));
- connect(imSimpleLag2.u, gain.u) annotation (Line(points={{78,-70},{60,-70},{60,
- 0},{118,0}}, color={0,0,127}));
- connect(gain.y, add3_1.u1)
- annotation (Line(points={{141,0},{141,0},{158,0}}, color={0,0,127}));
- connect(gain1.y, add3_1.u2) annotation (Line(points={{141,-30},{148,-30},{148,
- -8},{158,-8}}, color={0,0,127}));
- connect(imSimpleLag3.y, add3_1.u3) annotation (Line(points={{141,-70},{152,-70},
- {152,-16},{158,-16}}, color={0,0,127}));
- connect(add3_1.y, PMECH) annotation (Line(points={{181,-8},{188,-8},{188,0},{250,
- 0}}, color={0,0,127}));
- annotation (
- Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-240,-200},{240,160}})),
- Icon(coordinateSystem(preserveAspectRatio=false, extent={{-240,-200},{240,160}}),
- graphics={Text(
- extent={{-52,20},{68,-20}},
- lineColor={28,108,200},
- textString="IEESGO")}));
- end IEESGO;
-
- model HYGOV
- extends BaseClasses.BaseGovernor;
- parameter Real R=0.05 "Permanent droop (pu)";
- parameter Real r=0.3 "Temporary droop (pu)";
- parameter Real T_r=5 "Governor time constant (s)";
- parameter Real T_f=0.05 "Filter time constant (s)";
- parameter Real T_g=0.5 "Servo time constant (s)";
- parameter Real VELM=0.2 "Gate open/close velocity limit";
- parameter Real G_MAX=0.9 "Maximum gate limit";
- parameter Real G_MIN=0 "Minimum gate limit";
- parameter Real T_w=1.25 "Water time constant (s)";
- parameter Real A_t=1.2 "Turbine gain";
- parameter Real D_turb=0.2 "Turbine damping";
- parameter Real q_NL=0.08 "Water flow at no load";
- Modelica.Blocks.Sources.Constant n_ref(k=nref) annotation (Placement(transformation(extent={{-178,14},{-166,26}})));
- OpenIPSL.NonElectrical.Continuous.SimpleLag SimpleLag1(
- K=1,
- T=T_f,
- y_start=0) annotation (Placement(transformation(extent={{-126,0},
- {-114,12}})));
- Modelica.Blocks.Math.Gain Gain3(k=R)
- annotation (Placement(transformation(extent={{-130,-22},{-142,-10}})));
- Modelica.Blocks.Math.Gain Gain4(k=D_turb)
- annotation (Placement(transformation(extent={{-62,-34},{-50,-22}})));
- Modelica.Blocks.Sources.Constant hs(k=1)
- annotation (Placement(transformation(extent={{20,-20},{32,-8}})));
- Modelica.Blocks.Continuous.Integrator q(
- y_start=q0,
- initType=Modelica.Blocks.Types.Init.InitialOutput,
- k=1/T_w) annotation (Placement(transformation(extent={{62,-4},{74,8}})));
- Modelica.Blocks.Sources.Constant qNL(k=q_NL) annotation (Placement(transformation(extent={{92,-18},{84,-10}})));
- Modelica.Blocks.Math.Gain Gain6(k=A_t) annotation (Placement(transformation(extent={{132,-2},{144,10}})));
- OpenIPSL.NonElectrical.Continuous.SimpleLag g(
- K=1,
- T=T_g,
- y_start=g0) "servo_motor" annotation (Placement(transformation(
- extent={{-40,0},{-28,12}})));
- Modelica.Blocks.Nonlinear.Limiter Velocity_Limiter(uMin=-VELM, uMax=VELM) annotation (Placement(transformation(extent={{-86,0},{-74,12}})));
- Modelica.Blocks.Continuous.LimIntegrator Position_Limiter(
- outMin=G_MIN,
- outMax=G_MAX,
- k=1,
- y_start=c0,
- initType=Modelica.Blocks.Types.Init.InitialOutput)
- annotation (Placement(transformation(extent={{-68,0},{-56,12}})));
- Real G "Gate opening (pu)";
- Real c "Desired gate opening (pu)";
- Real Q "Turbine flow (pu)";
- Real H "Turbine head (pu)";
- Modelica.Blocks.Math.Add add(k2=-1)
- annotation (Placement(transformation(extent={{-144,0},{-132,12}})));
- Modelica.Blocks.Math.Add add1
- annotation (Placement(transformation(extent={{-168,-12},{-156,0}})));
- Modelica.Blocks.Math.Division division
- annotation (Placement(transformation(extent={{0,-4},{12,8}})));
- Modelica.Blocks.Math.Product product
- annotation (Placement(transformation(extent={{20,-4},{32,8}})));
- Modelica.Blocks.Math.Add add2(k1=-1)
- annotation (Placement(transformation(extent={{42,-4},{54,8}})));
- Modelica.Blocks.Math.Add add3(k2=-1)
- annotation (Placement(transformation(extent={{82,-4},{94,8}})));
- Modelica.Blocks.Math.Add add4(k2=-1)
- annotation (Placement(transformation(extent={{152,-6},{164,6}})));
- Modelica.Blocks.Math.Product product1
- annotation (Placement(transformation(extent={{58,-30},{70,-18}})));
- Modelica.Blocks.Math.Product product2
- annotation (Placement(transformation(extent={{108,-2},{120,10}})));
- NonElectrical.Continuous.SimpleLead simpleLead(
- K=r*T_r,
- T=T_r,
- y_start=0)
- annotation (Placement(transformation(extent={{-106,0},{-94,12}})));
- protected
- parameter Real h0=1 "water head initial value";
- // Real T_w(start=T_w);//=1.25 "Water time constant, s";
- parameter Real q0(fixed=false);
- //=Pm0/(A_t*h0)+q_NL "water flow initial value";
- parameter Real g0(fixed=false);
- //=q0/sqrt(h0) "the gate opening initial value";
- parameter Real c0(fixed=false);
- //=g0 "desired gate position";
- parameter Real e0=0 "initial output for the filter";
- parameter Real nref(fixed=false);
- //=R*c0 "speed reference";
- parameter Real P_m0(fixed=false);
- initial algorithm
- P_m0 := PMECH0;
- q0 := P_m0/(A_t*h0) + q_NL;
- g0 := q0/sqrt(h0);
- //
- //
- c0 := g0;
- //c0_calculation(g0,G_MIN,G_MAX);
- nref := R*c0;
- //
- equation
- G = g.y;
- c = g.u;
- Q = q.y;
- H = product.y;
- connect(add.y, SimpleLag1.u) annotation (Line(points={{-131.4,6},{-127.2,6}}, color={0,0,127}));
- connect(n_ref.y, add.u1) annotation (Line(points={{-165.4,20},{-152,20},{-152,9.6},{-145.2,9.6}}, color={0,0,127}));
- connect(add1.y, add.u2) annotation (Line(points={{-155.4,-6},{-150,-6},{-150,2.4},{-145.2,2.4}}, color={0,0,127}));
- connect(Gain3.y, add1.u2) annotation (Line(points={{-142.6,-16},{-178,-16},{-178,-9.6},{-169.2,-9.6}}, color={0,0,127}));
- connect(Velocity_Limiter.y, Position_Limiter.u) annotation (Line(points={{-73.4,6},{-69.2,6}}, color={0,0,127}));
- connect(Position_Limiter.y, Gain3.u) annotation (Line(points={{-55.4,6},{-52,6},{-52,-16},{-128.8,-16}}, color={0,0,127}));
- connect(g.u, Gain3.u) annotation (Line(points={{-41.2,6},{-52,6},{-52,-16},{-128.8,-16}}, color={0,0,127}));
- connect(division.y, product.u1) annotation (Line(points={{12.6,2},{14,2},{14,5.6},{18.8,5.6}}, color={0,0,127}));
- connect(product.u2, product.u1) annotation (Line(points={{18.8,-1.6},{14,-1.6},{14,5.6},{18.8,5.6}}, color={0,0,127}));
- connect(product.y, add2.u1) annotation (Line(points={{32.6,2},{36,2},{36,5.6},{40.8,5.6}}, color={0,0,127}));
- connect(hs.y, add2.u2) annotation (Line(points={{32.6,-14},{36,-14},{36,-1.6},{40.8,-1.6}}, color={0,0,127}));
- connect(add2.y, q.u) annotation (Line(points={{54.6,2},{60.8,2}}, color={0,0,127}));
- connect(q.y, add3.u1) annotation (Line(points={{74.6,2},{76,2},{76,5.6},{80.8,5.6}}, color={0,0,127}));
- connect(qNL.y, add3.u2) annotation (Line(points={{83.6,-14},{76,-14},{76,-1.6},{80.8,-1.6}}, color={0,0,127}));
- connect(Gain4.y, product1.u2) annotation (Line(points={{-49.4,-28},{4,-28},{4,-27.6},{56.8,-27.6}}, color={0,0,127}));
- connect(product1.y, add4.u2) annotation (Line(points={{70.6,-24},{144,-24},{144,-3.6},{150.8,-3.6}}, color={0,0,127}));
- connect(product1.u1, g.y) annotation (Line(points={{56.8,-20.4},{-16,-20.4},{-16,6},{-27.4,6}}, color={0,0,127}));
- connect(division.u2, g.y) annotation (Line(points={{-1.2,-1.6},{-16,-1.6},{-16,6},{-27.4,6}}, color={0,0,127}));
- connect(division.u1, add3.u1) annotation (Line(points={{-1.2,5.6},{-6,5.6},{-6,20},{76,20},{76,5.6},{80.8,5.6}}, color={0,0,127}));
- connect(Gain6.y, add4.u1) annotation (Line(points={{144.6,4},{150.8,4},{150.8,3.6}}, color={0,0,127}));
- connect(product2.y, Gain6.u) annotation (Line(points={{120.6,4},{130.8,4},{130.8,4}}, color={0,0,127}));
- connect(add3.y, product2.u2) annotation (Line(points={{94.6,2},{100,2},{100,0.4},{106.8,0.4}}, color={0,0,127}));
- connect(product2.u1, add2.u1) annotation (Line(points={{106.8,7.6},{100,7.6},{100,16},{36,16},{36,5.6},{40.8,5.6}}, color={0,0,127}));
- connect(simpleLead.y, Velocity_Limiter.u) annotation (Line(points={{-93.4,6},{-87.2,6}}, color={0,0,127}));
- connect(simpleLead.u, SimpleLag1.y) annotation (Line(points={{-107.2,6},{-113.4,6}}, color={0,0,127}));
- connect(add4.y, PMECH)
- annotation (Line(points={{164.6,0},{250,0},{250,0}}, color={0,0,127}));
- connect(SPEED, add1.u1) annotation (Line(points={{-240,-120},{-200,-120},{
- -200,-2.4},{-169.2,-2.4}}, color={0,0,127}));
- connect(Gain4.u, add1.u1) annotation (Line(points={{-63.2,-28},{-200,-28},{
- -200,-2.4},{-169.2,-2.4}}, color={0,0,127}));
- annotation (
- Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-240,-200},{
- 240,160}}), graphics={Rectangle(
- extent={{-190,32},{-12,-38}},
- lineColor={255,128,0},
- pattern=LinePattern.Dash,
- lineThickness=1),Text(
- extent={{-126,40},{-82,34}},
- lineColor={255,128,0},
- textStyle={TextStyle.Bold},
- textString="Governor System"),Rectangle(
- extent={{-8,32},{166,-38}},
- lineColor={85,170,255},
- pattern=LinePattern.Dash,
- lineThickness=1),Text(
- extent={{38,42},{98,32}},
- lineColor={85,170,255},
- textStyle={TextStyle.Bold},
- textString="Hydrauli Turbine System")}),
- Icon(coordinateSystem(extent={{-240,-200},{240,160}},preserveAspectRatio=false),
- graphics={Text(
- extent={{-60,16},{64,-24}},
- lineColor={28,108,200},
- textString="HYGOV")}));
- end HYGOV;
-
- model TGOV1 "TGOV1 - Steam Turbine-Governor"
- extends BaseClasses.BaseGovernor;
- OpenIPSL.NonElectrical.Continuous.LeadLag imLeadLag(
- T1=T_2,
- T2=T_3,
- K=1,
- y_start=P0) annotation (Placement(transformation(extent={{80,-11},
- {100,10}})));
- parameter Real R "Governor gain, 1/R (pu)";
- parameter Real D_t "(pu)";
- parameter Real T_1 "Control time constant (s)";
- parameter Real T_2 "Control time constant (s)";
- parameter Real T_3 "Control time constant (s)";
- parameter Real V_MAX "Max. valve position (p.u. on M_b)";
- parameter Real V_MIN "min. valve position (p.u. on M_b)";
- Modelica.Blocks.Math.Gain imGain9(k=1/R) annotation (Placement(transformation(extent={{0,-10},
- {20,10}})));
- Modelica.Blocks.Math.Gain imGain1(k=D_t) annotation (Placement(transformation(extent={{40,-69},
- {60,-50}})));
- Modelica.Blocks.Math.Add add(k2=-1) annotation (Placement(transformation(extent={{-40,-11},
- {-20,10}})));
- Modelica.Blocks.Math.Add add1(k2=-1) annotation (Placement(transformation(extent={{180,-10},
- {200,10}})));
- Modelica.Blocks.Sources.Constant REF(k=P_REF) annotation (Placement(transformation(extent={{-140,40},
- {-120,60}})));
- NonElectrical.Continuous.SimpleLagLim simpleLagLim(
- K=1,
- T=T_1,
- y_start=P0,
- outMax=V_MAX,
- outMin=V_MIN) annotation (Placement(transformation(extent={{40,-9},{60,10}})));
- protected
- parameter Real P0(fixed=false) "Power reference of the governor";
- parameter Real P_REF(fixed=false);
- initial equation
- P0 = PMECH0;
- P_REF = P0*R;
-
- equation
- connect(REF.y, add.u1) annotation (Line(points={{-119,50},{-60,50},{-60,5.8},{
- -42,5.8}}, color={0,0,127}));
- connect(simpleLagLim.u, imGain9.y) annotation (Line(points={{38,0.5},{21,0.5},
- {21,0}}, color={0,0,127}));
- connect(add1.y, PMECH)
- annotation (Line(points={{201,0},{250,0},{250,0}}, color={0,0,127}));
- connect(simpleLagLim.y, imLeadLag.u) annotation (Line(points={{61,0.5},{69.5,0.5},
- {69.5,-0.5},{78,-0.5}}, color={0,0,127}));
- connect(add.y, imGain9.u) annotation (Line(points={{-19,-0.5},{-10.5,-0.5},{-10.5,
- 0},{-2,0}}, color={0,0,127}));
- connect(imLeadLag.y, add1.u1) annotation (Line(points={{101,-0.5},{160,-0.5},{
- 160,6},{178,6}}, color={0,0,127}));
- connect(imGain1.y, add1.u2) annotation (Line(points={{61,-59.5},{160,-59.5},{160,
- -6},{178,-6}}, color={0,0,127}));
- connect(SPEED, add.u2) annotation (Line(points={{-240,-120},{-150,-120},{-60,-120},
- {-60,-6.8},{-42,-6.8}}, color={0,0,127}));
- connect(imGain1.u, add.u2) annotation (Line(points={{38,-59.5},{-12,-59.5},{-12,
- -60},{-60,-60},{-60,-6.8},{-42,-6.8}}, color={0,0,127}));
- annotation (
- Diagram(coordinateSystem(
- extent={{-240,-200},{240,180}},
- preserveAspectRatio=false,
- grid={2,2},
- initialScale=0.1)),
- Icon(coordinateSystem(
- extent={{-240,-200},{240,180}},
- preserveAspectRatio=false,
- grid={2,2},
- initialScale=0.1),
- graphics={Text(
- extent={{-60,26},{58,-18}},
- lineColor={28,108,200},
- textString="TGOV1")}));
- end TGOV1;
-
- package GGOV1 "GE General Governor/Turbine Model"
- block Min_select
- "Output the minimum and the maximum element of the input vector"
- parameter Integer nu(min=0) = 0 "Number of input connections"
- annotation (Dialog(connectorSizing=true), HideResult=true);
- Modelica.Blocks.Interfaces.RealVectorInput u[nu]
- annotation (Placement(transformation(extent={{-120,70},{-80,-70}})));
- Modelica.Blocks.Interfaces.RealOutput yMin(start=frs0) annotation (Placement(
- transformation(extent={{100,-94},{120,-74}}, rotation=0)));
- parameter Real frs0;
- equation
- yMin = min(u);
- annotation (
- Icon(coordinateSystem(
- preserveAspectRatio=true,
- extent={{-100,-100},{100,100}},
- initialScale=0.1), graphics={Text(
- extent={{-50,46},{76,-46}},
- lineColor={0,0,255},
- textString="Low value
-select"), Rectangle(extent={{-100,98},{100,-98}}, lineColor={0,0,255})}),
- Documentation(info="
-
-Determines the minimum and maximum element of the input vector and
-provide both values as output.
-
-"), Diagram(coordinateSystem(preserveAspectRatio=true, extent={{-100,-100},{100,
- 100}}), graphics));
- end Min_select;
-
- block RSELECT "Output the minimum and the maximum element of the input vector"
- // extends Modelica.Blocks.Icons.Block;
- parameter Real Rselect;
- Modelica.Blocks.Interfaces.RealOutput y annotation (Placement(transformation(
- extent={{100,-12},{120,8}}, rotation=0)));
- Modelica.Blocks.Interfaces.RealInput Pelect annotation (Placement(
- transformation(extent={{-140,36},{-100,76}}), iconTransformation(extent=
- {{-140,36},{-100,76}})));
- Modelica.Blocks.Interfaces.RealInput ValveStroke annotation (Placement(
- transformation(extent={{4,-80},{44,-40}}), iconTransformation(
- extent={{-20,-20},{20,20}},
- rotation=90,
- origin={8,-120})));
- Modelica.Blocks.Interfaces.RealInput GovernorOutput annotation (Placement(
- transformation(extent={{6,-136},{46,-96}}), iconTransformation(
- extent={{-20,-20},{20,20}},
- rotation=90,
- origin={84,-120})));
- equation
- y = if Rselect == 1 then Pelect elseif Rselect == (-1) then ValveStroke
- elseif Rselect == (-2) then GovernorOutput else 0;
- annotation (
- Icon(coordinateSystem(
- preserveAspectRatio=true,
- extent={{-100,-100},{100,100}},
- initialScale=0.1), graphics={Text(
- extent={{-51,31},{51,-31}},
- lineColor={0,0,255},
- textString="Rselect
- 1 - electrical power
--1 - valve stroke
--2 - governor output
- 0 - isochronous", horizontalAlignment=TextAlignment.Left,
- origin={-11,-1},
- rotation=270),Rectangle(extent={{-100,100},{100,-100}}, lineColor={0,
- 0,255})}),
- Documentation(info="
-
-Determines the minimum and maximum element of the input vector and
-provide both values as output.
-
-"), Diagram(coordinateSystem(preserveAspectRatio=true, extent={{-100,-100},{100,
- 100}}), graphics={Rectangle(extent={{-100,100},{100,-100}},
- lineColor={0,0,255})}));
- end RSELECT;
-
- block flag "Output the minimum and the maximum element of the input vector"
- parameter Real flag;
- Modelica.Blocks.Interfaces.RealOutput y annotation (Placement(transformation(
- extent={{100,-12},{120,8}}, rotation=0)));
- Modelica.Blocks.Interfaces.RealInput speed annotation (Placement(
- transformation(extent={{6,-136},{46,-96}}), iconTransformation(
- extent={{-20,-20},{20,20}},
- rotation=0,
- origin={-120,-2})));
- equation
- y = if flag == 1 then speed + 1 else 1;
- annotation (
- Icon(coordinateSystem(
- preserveAspectRatio=true,
- extent={{-100,-100},{100,100}},
- initialScale=0.1), graphics={Text(
- extent={{-51,31},{51,-31}},
- lineColor={0,0,255},
- horizontalAlignment=TextAlignment.Left,
- origin={1,5},
- rotation=360,
- textString="Flag"),Rectangle(extent={{-98,90},{96,-92}}, lineColor={0,
- 0,255})}),
- Documentation(info="
-
-Determines the minimum and maximum element of the input vector and
-provide both values as output.
-
-"), Diagram(coordinateSystem(preserveAspectRatio=true, extent={{-100,-100},{100,
- 100}}), graphics));
- end flag;
-
- block Dm_select
- "Output the minimum and the maximum element of the input vector"
- parameter Real Dm;
- Modelica.Blocks.Interfaces.RealOutput y annotation (Placement(transformation(
- extent={{100,-12},{120,8}}, rotation=0)));
- Modelica.Blocks.Interfaces.RealInput speed annotation (Placement(
- transformation(extent={{6,-136},{46,-96}}), iconTransformation(
- extent={{-20,-20},{20,20}},
- rotation=0,
- origin={-120,-2})));
- equation
- y = if Dm >= 0 then speed + 1 else (speed + 1)^Dm;
- annotation (
- Icon(coordinateSystem(
- preserveAspectRatio=true,
- extent={{-100,-100},{100,100}},
- initialScale=0.1), graphics={Text(
- extent={{-51,31},{51,-31}},
- lineColor={0,0,255},
- horizontalAlignment=TextAlignment.Left,
- origin={1,5},
- rotation=360,
- textString="Dm_select"),Rectangle(extent={{-98,90},{96,-92}},
- lineColor={0,0,255})}),
- Documentation(info="
-
-Determines the minimum and maximum element of the input vector and
-provide both values as output.
-
-"), Diagram(coordinateSystem(preserveAspectRatio=true, extent={{-100,-100},{100,
- 100}}), graphics));
- end Dm_select;
-
- model GGOV1 "GE General Governor/Turbine Mode"
- parameter Integer Rselect=1 "Feedback signal for
- governor droop" annotation (Evaluate=true, choices(
- choice=1 "Electrical power",
- choice=0 "None (isochronous governor)",
- choice=-1 "Governor output (requested stroke)",
- choice=-2 "Fuel valve stroke (true stoke)"));
- parameter Integer Flag=1 "Switch for fuel source
- characteristic" annotation (Evaluate=true, choices(choice=0
- "Fuel flow independent of speed", choice=1
- "Fuel flow proportional to speed"));
- parameter Real R "Permanent droop (pu)";
- parameter Real T_pelec "Electrical power transducer time constant (s)";
- parameter Real maxerr "Maximum value for speed error signal";
- parameter Real minerr "Minimum value for speed error signal";
- parameter Real Kpgov "Governor proportional gain";
- parameter Real Kigov "Governor integral gain";
- parameter Real Kdgov "Governor derivative gain";
- parameter Real Tdgov "Governor derivative controller time constant (s)";
- parameter Real Vmax "Maximum valve position limit";
- parameter Real Vmin "Minimum valve position limit";
- parameter Real Tact "Actuator time constant (s)";
- parameter Real Kturb "Turbine gain";
- parameter Real Wfnl "No load fuel flow (pu)";
- parameter Real Tb "Turbine lag time constant (s)";
- parameter Real Tc "Turbine lead time constant (s)";
- parameter Real Teng "Transport lag time constant for diesel engine (s)";
- parameter Real Tfload "Load Limiter time constant (s)";
- parameter Real Kpload "Load limiter proportional gain for PI controller";
- parameter Real Kiload "Load limiter integral gain for PI controller";
- parameter Real Ldref "Load limiter reference value (pu)";
- parameter Real Dm "Mechanical damping coefficient (pu)";
- parameter Real Ropen "Maximum valve opening rate (p.u./s)";
- parameter Real Rclose "Maximum valve closing rate (p.u./s)";
- parameter Real Kimw "Power controller (reset) gain";
- parameter Real Aset "Acceleration limiter setpoint (p.u./s)";
- parameter Real Ka "Acceleration limiter gain";
- parameter Real Ta "Acceleration limiter time constant (s)";
- parameter Real Trate "Turbine rating (MW)";
- parameter Real db "Speed governor deadband";
- parameter Real Tsa "Temperature detection lead time constant (s)";
- parameter Real Tsb "Temperature detection lag time constant (s)";
- parameter Real Rup "Maximum rate of load limit increase";
- parameter Real Rdown "Maximum rate of load limit decrease";
- parameter Real DELT "PSSE time step";
- Modelica.Blocks.Math.Gain KPLOAD(k=Kpload)
- annotation (Placement(transformation(extent={{-196,52},{-182,66}})));
- Modelica.Blocks.Math.Gain KPGOV(k=Kpgov)
- annotation (Placement(transformation(extent={{-92,-82},{-76,-66}})));
- Modelica.Blocks.Continuous.Integrator s6(
- k=1,
- y_start=s60,
- initType=Modelica.Blocks.Types.Init.InitialState) annotation (Placement(
- transformation(
- extent={{-6,-6},{6,6}},
- rotation=180,
- origin={-158,90})));
- Modelica.Blocks.Continuous.Integrator s2(
- k=1,
- initType=Modelica.Blocks.Types.Init.InitialOutput,
- y_start=s20) annotation (Placement(transformation(
- extent={{-7,-7},{7,7}},
- rotation=180,
- origin={-51,-117})));
- Modelica.Blocks.Continuous.Derivative s1(
- k=Kdgov,
- T=Tdgov,
- y_start=0,
- initType=Modelica.Blocks.Types.Init.InitialOutput)
- annotation (Placement(transformation(extent={{-80,-40},{-60,-20}})));
- Modelica.Blocks.Math.Add3 GovernorPID
- annotation (Placement(transformation(extent={{-60,-88},{-38,-66}})));
- Modelica.Blocks.Math.Add LoadlimiterPI
- annotation (Placement(transformation(extent={{-168,56},{-152,72}})));
- Modelica.Blocks.Nonlinear.DeadZone deadZone(uMax=db, deadZoneAtInit=false)
- annotation (Placement(transformation(extent={{-168,-84},{-148,-64}})));
- Modelica.Blocks.Nonlinear.Limiter limiterSerror(uMax=maxerr, uMin=minerr)
- annotation (Placement(transformation(extent={{-138,-84},{-118,-64}})));
- Modelica.Blocks.Math.Add3 add3_2(k1=-1, k3=-1)
- annotation (Placement(transformation(extent={{-198,-80},{-186,-68}})));
- Modelica.Blocks.Math.Gain Acceleration(k=Ka*DELT)
- annotation (Placement(transformation(extent={{-116,0},{-92,24}})));
- Modelica.Blocks.Math.Add add
- annotation (Placement(transformation(extent={{-54,-2},{-36,16}})));
- Modelica.Blocks.Interfaces.RealInput SPEED
- "Machine speed deviation from nominal (pu)" annotation (Placement(
- transformation(extent={{-346,102},{-310,138}}), iconTransformation(
- extent={{-346,102},{-310,138}})));
- Modelica.Blocks.Interfaces.RealInput PELEC "Machine electrical power (pu)"
- annotation (Placement(transformation(extent={{-348,-118},{-310,-80}}),
- iconTransformation(extent={{-348,-118},{-310,-80}})));
- Modelica.Blocks.Continuous.Derivative s8(
- k=1,
- T=Ta,
- y_start=0,
- initType=Modelica.Blocks.Types.Init.InitialOutput)
- annotation (Placement(transformation(extent={{-196,-14},{-170,12}})));
- Modelica.Blocks.Math.Add add1(k2=-1)
- annotation (Placement(transformation(extent={{-146,2},{-126,22}})));
- Modelica.Blocks.Sources.Constant AccelerationSet(k=Aset)
- annotation (Placement(transformation(extent={{-180,22},{-164,38}})));
- Modelica.Blocks.Math.Gain r(k=R) "Permanent droop" annotation (Placement(
- transformation(
- extent={{-7,-7},{7,7}},
- rotation=90,
- origin={-207,-101})));
- Modelica.Blocks.Math.Add add2
- annotation (Placement(transformation(extent={{-238,-80},{-226,-68}})));
- Modelica.Blocks.Sources.Constant P_ref(k=Pref)
- annotation (Placement(transformation(extent={{-276,-78},{-260,-62}})));
- Modelica.Blocks.Continuous.LimIntegrator s7(
- k=Kimw,
- outMax=1.1*R,
- initType=Modelica.Blocks.Types.Init.InitialOutput,
- y_start=s70) "Power controller" annotation (Placement(transformation(
- extent={{-8,-8},{8,8}},
- rotation=90,
- origin={-246,-98})));
- Modelica.Blocks.Sources.Constant Pmw_set(k=Pmwset)
- "Supervisory Load Controller Setpoint,"
- annotation (Placement(transformation(extent={{-276,-148},{-260,-132}})));
- Modelica.Blocks.Math.Add add3(k2=-1) annotation (Placement(transformation(
- extent={{-6,-6},{6,6}},
- rotation=90,
- origin={-246,-122})));
- NonElectrical.Continuous.SimpleLag s0(
- T=T_pelec,
- y_start=s00,
- K=1) annotation (Placement(transformation(
- extent={{-10,-10},{10,10}},
- rotation=0,
- origin={-270,-170})));
- Modelica.Blocks.Math.Add add6(k1=-1) annotation (Placement(transformation(
- extent={{-8,-8},{8,8}},
- rotation=180,
- origin={-74,118})));
- NonElectrical.Continuous.SimpleLag s5(
- T=Tfload,
- y_start=s50,
- K=1) annotation (Placement(transformation(
- extent={{-10,10},{10,-10}},
- rotation=180,
- origin={-30,110})));
- Modelica.Blocks.Math.Gain gain(k=1/Kturb)
- annotation (Placement(transformation(extent={{-138,124},{-122,140}})));
- Modelica.Blocks.Sources.Constant set(k=Ldref) "load reference"
- annotation (Placement(transformation(extent={{-180,124},{-164,140}})));
- Modelica.Blocks.Nonlinear.Limiter maxLimiter(uMax=1, uMin=-Modelica.Constants.inf)
- annotation (Placement(transformation(extent={{-126,56},{-110,72}})));
- NonElectrical.Continuous.LeadLag s9(
- T1=Tsa,
- T2=Tsb,
- y_start=s90,
- K=1) annotation (Placement(transformation(extent={{20,100},{0,120}})));
- Min_select min_select(nu=3, frs0=fsr0)
- annotation (Placement(transformation(extent={{-18,-28},{-2,-12}})));
- Modelica.Blocks.Math.Product product
- annotation (Placement(transformation(extent={{130,-66},{142,-54}})));
- OpenIPSL.NonElectrical.Continuous.LeadLag s4(
- K=1,
- T1=Tc,
- T2=Tb,
- y_start=s40) annotation (Placement(transformation(
- extent={{-10,-10},{10,10}},
- rotation=90,
- origin={150,110})));
- Modelica.Blocks.Math.Gain gain1(k=Kturb) annotation (Placement(transformation(
- extent={{-8,-8},{8,8}},
- rotation=90,
- origin={150,60})));
- Modelica.Blocks.Nonlinear.FixedDelay delay(delayTime=Teng)
- "Transport lag time" annotation (Placement(transformation(
- extent={{-14,-14},{14,14}},
- rotation=90,
- origin={150,20})));
- Modelica.Blocks.Math.Add add4(k2=-1) annotation (Placement(transformation(
- extent={{-6,-6},{6,6}},
- rotation=90,
- origin={150,-24})));
- Modelica.Blocks.Math.Add add5(k1=-1) annotation (Placement(transformation(
- extent={{-10,-10},{10,10}},
- rotation=0,
- origin={176,158})));
- Modelica.Blocks.Sources.Constant set1(k=Wfnl) "full load flow" annotation (
- Placement(transformation(
- extent={{-8,-8},{8,8}},
- rotation=180,
- origin={196,-38})));
- Modelica.Blocks.Math.Gain gain2(k=Dm) annotation (Placement(transformation(
- extent={{-8,-8},{8,8}},
- rotation=0,
- origin={76,164})));
- flag flag10(flag=Flag) annotation (Placement(transformation(
- extent={{-10,-10},{10,10}},
- rotation=90,
- origin={128,-152})));
- Dm_select dm_select(Dm=Dm)
- annotation (Placement(transformation(extent={{2,154},{22,174}})));
- Modelica.Blocks.Interfaces.RealOutput PMECH "Turbine mechanical power (pu)"
- annotation (Placement(transformation(extent={{260,-10},{280,10}}),
- iconTransformation(extent={{260,-10},{280,10}})));
- Modelica.Blocks.Math.Product product1 annotation (Placement(transformation(
- extent={{-10,-10},{10,10}},
- rotation=180,
- origin={50,110})));
- Modelica.Blocks.Nonlinear.Limiter V(uMax=Vmax, uMin=Vmin)
- annotation (Placement(transformation(extent={{10,-62},{24,-48}})));
- Modelica.Blocks.Math.Add add7 annotation (Placement(transformation(
- extent={{-9,-9},{9,9}},
- rotation=0,
- origin={-85,137})));
- Modelica.Blocks.Sources.Constant set2(k=Wfnl) "full load flow" annotation (
- Placement(transformation(
- extent={{-8,-8},{8,8}},
- rotation=270,
- origin={-116,182})));
- Modelica.Blocks.Math.Gain Gain(k=Kiload/Kpload) annotation (Placement(
- transformation(
- extent={{-6,-6},{6,6}},
- rotation=180,
- origin={-138,90})));
- Modelica.Blocks.Math.Add LoadlimiterPI1(k2=-1) annotation (Placement(
- transformation(
- extent={{-6,6},{6,-6}},
- rotation=180,
- origin={-114,90})));
- Modelica.Blocks.Math.Gain KPGOV1(k=Kigov/Kpgov) annotation (Placement(
- transformation(
- extent={{-5,-5},{5,5}},
- rotation=180,
- origin={-31,-117})));
- Modelica.Blocks.Math.Add LoadlimiterPI2(k1=-1) annotation (Placement(
- transformation(
- extent={{-5,5},{5,-5}},
- rotation=180,
- origin={-11,-117})));
- Modelica.Blocks.Math.Gain Tactgain(k=1/Tact)
- annotation (Placement(transformation(extent={{60,-62},{70,-52}})));
- Modelica.Blocks.Nonlinear.Limiter V1(uMax=Ropen, uMin=Rclose)
- annotation (Placement(transformation(extent={{76,-64},{90,-50}})));
- Modelica.Blocks.Continuous.Integrator s3(
- k=1,
- initType=Modelica.Blocks.Types.Init.InitialOutput,
- y_start=s30) annotation (Placement(transformation(
- extent={{-7,-7},{7,7}},
- rotation=0,
- origin={107,-57})));
- Modelica.Blocks.Math.Add add8(k2=-1) annotation (Placement(transformation(
- extent={{-6,-6},{6,6}},
- rotation=0,
- origin={48,-58})));
- RSELECT rSELECT(Rselect=Rselect) annotation (Placement(transformation(
- extent={{-15,-22},{15,22}},
- rotation=90,
- origin={-206,-131})));
- protected
- parameter Real Pe0(fixed=false);
- parameter Real Pmech0(fixed=false);
- parameter Real Pref(fixed=false);
- parameter Real Pmwset(fixed=false);
- parameter Real s00(fixed=false);
- parameter Real s20(fixed=false);
- parameter Real s30(fixed=false);
- parameter Real s40(fixed=false);
- parameter Real s50(fixed=false);
- parameter Real s60(fixed=false);
- parameter Real s70(fixed=false);
- parameter Real s80(fixed=false);
- parameter Real s90(fixed=false);
- //parameter Real s10( fixed=false);
- parameter Real fsr0(fixed=false);
- initial equation
- Pe0 = PELEC;
- Pmech0 = PELEC;
- Pref = R*Pe0;
- Pmwset = s00;
- s00 = Pe0;
- s20 = fsr0;
- s30 = fsr0;
- s40 = Pmech0;
- s50 = s90;
- s60 = fsr0;
- s70 = 0;
- //assume s70=0
- s80 = 0;
- s90 = fsr0;
- fsr0 = (Pmech0 + Dm)/Kturb + Wfnl;
- equation
- connect(deadZone.y, limiterSerror.u) annotation (Line(
- points={{-147,-74},{-140,-74}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(KPGOV.u, limiterSerror.y) annotation (Line(
- points={{-93.6,-74},{-117,-74}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(Acceleration.y, add.u1) annotation (Line(
- points={{-90.8,12},{-86,12},{-86,12.4},{-55.8,12.4}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(s8.y, add1.u2) annotation (Line(
- points={{-168.7,-1},{-160,-1},{-160,6},{-148,6}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(AccelerationSet.y, add1.u1) annotation (Line(
- points={{-163.2,30},{-150,30},{-150,18},{-148,18}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(Acceleration.u, add1.y) annotation (Line(
- points={{-118.4,12},{-125,12}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(SPEED, s8.u) annotation (Line(
- points={{-328,120},{-262,120},{-262,-1},{-198.6,-1}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(add3_2.y, deadZone.u) annotation (Line(
- points={{-185.4,-74},{-170,-74}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(add3_2.u1, s8.u) annotation (Line(
- points={{-199.2,-69.2},{-212,-69.2},{-212,-1},{-198.6,-1}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(r.y, add3_2.u3) annotation (Line(
- points={{-207,-93.3},{-207,-78.8},{-199.2,-78.8}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(add2.y, add3_2.u2) annotation (Line(
- points={{-225.4,-74},{-199.2,-74}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(P_ref.y, add2.u1) annotation (Line(
- points={{-259.2,-70},{-250,-70},{-250,-70.4},{-239.2,-70.4}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(s7.y, add2.u2) annotation (Line(
- points={{-246,-89.2},{-246,-77.6},{-239.2,-77.6}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(Pmw_set.y, add3.u1) annotation (Line(
- points={{-259.2,-140},{-249.6,-140},{-249.6,-129.2}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(add3.y, s7.u) annotation (Line(
- points={{-246,-115.4},{-246,-107.6}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(s0.y, add3.u2) annotation (Line(
- points={{-259,-170},{-242,-170},{-242,-129.2},{-242.4,-129.2}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(s0.u, PELEC) annotation (Line(
- points={{-282,-170},{-300,-170},{-300,-99},{-329,-99}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(set.y, gain.u) annotation (Line(
- points={{-163.2,132},{-139.6,132}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(add6.u1, s5.y) annotation (Line(
- points={{-64.4,113.2},{-51.2,113.2},{-51.2,110},{-41,110}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(s5.u, s9.y) annotation (Line(
- points={{-18,110},{-1,110}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(maxLimiter.y, min_select.u[1]) annotation (Line(
- points={{-109.2,64},{-28,64},{-28,-16.2667},{-18,-16.2667}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(add.y, min_select.u[2]) annotation (Line(
- points={{-35.1,7},{-26,7},{-26,-4},{-18,-4},{-18,-20}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(s4.y, add5.u2) annotation (Line(
- points={{150,121},{150,152},{164,152}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(product.y, add4.u1) annotation (Line(
- points={{142.6,-60},{146,-60},{146,-31.2},{146.4,-31.2}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(set1.y, add4.u2) annotation (Line(
- points={{187.2,-38},{153.6,-38},{153.6,-31.2}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(gain2.y, add5.u1) annotation (Line(
- points={{84.8,164},{164,164}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(flag10.y, product.u2) annotation (Line(
- points={{128.2,-141},{128.2,-63.6},{128.8,-63.6}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(SPEED, flag10.speed) annotation (Line(
- points={{-328,120},{-258,120},{-258,-230},{128,-230},{128,-164},{128.2,-164}},
- color={0,0,127},
- smooth=Smooth.None));
-
- connect(SPEED, dm_select.speed) annotation (Line(
- points={{-328,120},{-328,163.8},{0,163.8}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(dm_select.y, gain2.u) annotation (Line(
- points={{23,163.8},{66.4,163.8},{66.4,164}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(add5.y, PMECH) annotation (Line(
- points={{187,158},{198,158},{198,0},{270,0}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(product1.u2, gain2.u) annotation (Line(
- points={{62,116},{66.4,116},{66.4,164}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(product1.u1, add4.u1) annotation (Line(
- points={{62,104},{126,104},{126,-30},{134,-30},{134,-31.2},{146.4,-31.2}},
- color={0,0,127},
- smooth=Smooth.None));
-
- connect(add.u2, V.y) annotation (Line(
- points={{-55.8,1.6},{-76,1.6},{-76,78},{34,78},{34,-55},{24.7,-55}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(V.u, min_select.yMin) annotation (Line(
- points={{8.6,-55},{3.3,-55},{3.3,-26.72},{-1.2,-26.72}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(gain.y, add7.u2) annotation (Line(
- points={{-121.2,132},{-106,132},{-106,131.6},{-95.8,131.6}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(add7.y, add6.u2) annotation (Line(
- points={{-75.1,137},{-48,137},{-48,122.8},{-64.4,122.8}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(set2.y, add7.u1) annotation (Line(
- points={{-116,173.2},{-116,142.4},{-95.8,142.4}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(add6.y, KPLOAD.u) annotation (Line(
- points={{-82.8,118},{-204,118},{-204,59},{-197.4,59}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(LoadlimiterPI1.y, Gain.u) annotation (Line(
- points={{-120.6,90},{-130.8,90}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(Gain.y, s6.u) annotation (Line(
- points={{-144.6,90},{-150.8,90}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(KPLOAD.y, LoadlimiterPI.u2) annotation (Line(
- points={{-181.3,59},{-178,59},{-178,59.2},{-169.6,59.2}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(s6.y, LoadlimiterPI.u1) annotation (Line(
- points={{-164.6,90},{-184,90},{-184,68.8},{-169.6,68.8}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(LoadlimiterPI.y, maxLimiter.u) annotation (Line(
- points={{-151.2,64},{-127.6,64}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(LoadlimiterPI1.u2, LoadlimiterPI.u1) annotation (Line(
- points={{-106.8,86.4},{-94,86.4},{-94,78},{-184,78},{-184,68.8},{-169.6,
- 68.8}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(LoadlimiterPI1.u1, V.y) annotation (Line(
- points={{-106.8,93.6},{34,93.6},{34,-56},{24.7,-55}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(s1.u, limiterSerror.y) annotation (Line(
- points={{-82,-30},{-108,-30},{-108,-74},{-117,-74}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(s1.y, GovernorPID.u1) annotation (Line(
- points={{-59,-30},{-34,-30},{-34,-68.2},{-62.2,-68.2}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(KPGOV.y, GovernorPID.u2) annotation (Line(
- points={{-75.2,-74},{-74,-74},{-74,-77},{-62.2,-77}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(s2.u, KPGOV1.y) annotation (Line(
- points={{-42.6,-117},{-36.5,-117}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(s2.y, GovernorPID.u3) annotation (Line(
- points={{-58.7,-117},{-98,-117},{-98,-85.8},{-62.2,-85.8}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(KPGOV1.u, LoadlimiterPI2.y) annotation (Line(
- points={{-25,-117},{-16.5,-117}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(LoadlimiterPI2.u1, GovernorPID.u3) annotation (Line(
- points={{-5,-114},{0,-114},{0,-104},{-98,-104},{-98,-85.8},{-62.2,-85.8}},
- color={0,0,127},
- smooth=Smooth.None));
-
- connect(LoadlimiterPI2.u2, V.y) annotation (Line(
- points={{-5,-120},{34,-120},{34,-55},{24.7,-55}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(GovernorPID.y, min_select.u[3]) annotation (Line(
- points={{-36.9,-77},{-36,-77},{-36,-23.7333},{-18,-23.7333}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(V1.y, s3.u) annotation (Line(
- points={{90.7,-57},{98.6,-57}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(Tactgain.y, V1.u) annotation (Line(
- points={{70.5,-57},{74.6,-57}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(add8.y, Tactgain.u) annotation (Line(
- points={{54.6,-58},{54.6,-57},{59,-57}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(s3.y, product.u1) annotation (Line(
- points={{114.7,-57},{119.35,-57},{119.35,-56.4},{128.8,-56.4}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(add8.u1, V.y) annotation (Line(
- points={{40.8,-54.4},{34,-54.4},{34,-55},{24.7,-55}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(add8.u2, product.u1) annotation (Line(
- points={{40.8,-61.6},{40,-61.6},{40,-90},{120,-90},{120,-56.4},{128.8,-56.4}},
- color={0,0,127},
- smooth=Smooth.None));
-
- connect(s4.u, gain1.y) annotation (Line(
- points={{150,98},{150,68.8}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(s0.y, rSELECT.Pelect) annotation (Line(
- points={{-259,-170},{-218.32,-170},{-218.32,-149}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(rSELECT.y, r.u) annotation (Line(
- points={{-205.56,-114.5},{-205.72,-114.5},{-205.72,-109.4},{-207,-109.4}},
- color={0,0,127},
- smooth=Smooth.None));
-
- connect(rSELECT.GovernorOutput, V.u) annotation (Line(
- points={{-179.6,-118.4},{2,-118.4},{2,-55},{8.6,-55}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(rSELECT.ValveStroke, product.u1) annotation (Line(
- points={{-179.6,-129.8},{120,-129.8},{120,-56.4},{128.8,-56.4}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(s9.u, product1.y)
- annotation (Line(points={{22,110},{39,110},{39,110}}, color={0,0,127}));
- connect(delay.y, gain1.u) annotation (Line(points={{150,35.4},{150,50.4},{150,
- 50.4}}, color={0,0,127}));
- connect(delay.u, add4.y) annotation (Line(points={{150,3.2},{150,-17.4},{150,
- -17.4}}, color={0,0,127}));
- annotation (
- Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-320,-240},{
- 260,220}}), graphics={Text(
- extent={{-272,-98},{-260,-106}},
- lineColor={255,0,0},
- textString="s7"),Text(
- extent={{-188,-8},{-178,-16}},
- lineColor={255,0,0},
- textString="s8"),Text(
- extent={{-72,136},{-58,126}},
- lineColor={255,0,0},
- textString="tlim"),Text(
- extent={{-62,110},{-46,102}},
- lineColor={255,0,0},
- textString="texm"),Text(
- extent={{-162,108},{-152,100}},
- lineColor={255,0,0},
- textString="s6"),Text(
- extent={{-88,-36},{-78,-44}},
- lineColor={255,0,0},
- textString="s1"),Text(
- extent={{-68,-122},{-58,-130}},
- lineColor={255,0,0},
- textString="s2"),Text(
- extent={{16,132},{26,124}},
- lineColor={255,0,0},
- textString="s9"),Text(
- extent={{-28,132},{-18,124}},
- lineColor={255,0,0},
- textString="s5"),Text(
- extent={{100,-76},{110,-84}},
- lineColor={255,0,0},
- textString="s3"),Text(
- extent={{168,98},{178,90}},
- lineColor={255,0,0},
- textString="s4"),Text(
- extent={{-254,-182},{-242,-190}},
- lineColor={255,0,0},
- textString="s0")}),
- Icon(coordinateSystem(extent={{-320,-240},{260,220}}, preserveAspectRatio=false), graphics={Rectangle(extent={{-320,220},{260,-240}}, lineColor={0,0,255}),Text(
- extent={{-306,146},{-216,92}},
- lineColor={0,0,255},
- textString="SPEED"),Text(
- extent={{-306,-74},{-222,-126}},
- lineColor={0,0,255},
- textString="PELEC"),Text(
- extent={{-114,64},{92,-64}},
- lineColor={0,0,255},
- textString="GGOV1"),Text(
- extent={{172,24},{256,-28}},
- lineColor={0,0,255},
- textString="PMECH")}),
- Documentation);
- end GGOV1;
- annotation (Documentation);
- end GGOV1;
-
- model GAST "Gas Turbine-Governor"
- parameter Real R "Speed droop";
- parameter Real T_1 "(s)";
- parameter Real T_2 "(s)";
- parameter Real T_3 "(s)";
- parameter Real AT "Ambient temperature load limit";
- parameter Real K_T "Gain value multiplied with input signal";
- parameter Real V_MAX "Upper limits of input signals";
- parameter Real V_MIN "Lower limits of input signals";
- parameter Real D_turb "Gain value multiplied with input signal";
- Modelica.Blocks.Interfaces.RealInput SPEED
- "Machine electrical power (pu on M_b)" annotation (Placement(transformation(
- extent={{-120,30},{-80,70}}), iconTransformation(extent={{-120,30},{-80,
- 70}})));
- Modelica.Blocks.Interfaces.RealOutput PMECH "Turbine mechanical power (pu)"
- annotation (Placement(transformation(extent={{100,-10},{120,10}})));
- Modelica.Blocks.Math.Add add(k1=-1)
- annotation (Placement(transformation(extent={{-78,-22},{-68,-12}})));
- Modelica.Blocks.Math.Add add1(k2=-1) annotation (Placement(transformation(
- extent={{-5,-5},{5,5}},
- rotation=180,
- origin={25,-47})));
- Modelica.Blocks.Math.Add add2(k2=+1) annotation (Placement(transformation(
- extent={{-5,-5},{5,5}},
- rotation=180,
- origin={-37,-47})));
- Modelica.Blocks.Math.Add add3(k1=-1)
- annotation (Placement(transformation(extent={{80,-5},{90,5}})));
- Modelica.Blocks.Math.Gain gDturb(k=D_turb)
- annotation (Placement(transformation(extent={{-54,55},{-44,65}})));
- Modelica.Blocks.Math.Gain gKt(k=K_T) annotation (Placement(transformation(
- extent={{-5,-5},{5,5}},
- rotation=180,
- origin={-11,-45})));
- Modelica.Blocks.Math.Gain g1_R(k=1/R) annotation (Placement(transformation(
- extent={{-5,-5},{5,5}},
- rotation=270,
- origin={-85,33})));
- Modelica.Blocks.Interfaces.RealInput Reference "Speed reference (pu)"
- annotation (Placement(transformation(extent={{-120,-70},{-80,-30}}),
- iconTransformation(extent={{-120,-70},{-80,-30}})));
- NonElectrical.Logical.LV_GATE lV_Gate
- annotation (Placement(transformation(extent={{-46,-10},{-26,10}})));
- Modelica.Blocks.Continuous.TransferFunction transferFunction1(a={T_2,1})
- annotation (Placement(transformation(extent={{48,-6},{60,6}})));
- Modelica.Blocks.Continuous.TransferFunction transferFunction2(a={T_3,1})
- annotation (Placement(transformation(
- extent={{-6,-6},{6,6}},
- rotation=180,
- origin={54,-40})));
- Modelica.Blocks.Sources.Constant const(k=AT)
- annotation (Placement(transformation(extent={{-48,-94},{-28,-74}})));
- NonElectrical.Continuous.SimpleLagLim simpleLagLim(
- outMax=V_MAX,
- outMin=V_MIN,
- K=1,
- T=T_1,
- y_start=0) annotation (Placement(transformation(extent={{-4,-4},{6,6}})));
- equation
- connect(SPEED, gDturb.u) annotation (Line(
- points={{-100,50},{-78,50},{-78,60},{-55,60}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(gDturb.y, add3.u1) annotation (Line(
- points={{-43.5,60},{72,60},{72,3},{79,3}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(add3.y, PMECH) annotation (Line(
- points={{90.5,0},{110,0}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(SPEED, g1_R.u) annotation (Line(
- points={{-100,50},{-85,50},{-85,39}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(g1_R.y, add.u1) annotation (Line(
- points={{-85,27.5},{-85,-14},{-79,-14}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(Reference, add.u2) annotation (Line(
- points={{-100,-50},{-90,-50},{-90,-20},{-79,-20}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(add1.y, gKt.u) annotation (Line(
- points={{19.5,-47},{-5,-47},{-5,-45}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(gKt.y, add2.u2) annotation (Line(
- points={{-16.5,-45},{-31,-45},{-31,-44}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(transferFunction2.y, add1.u2) annotation (Line(
- points={{47.4,-40},{40,-40},{40,-44},{31,-44}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(transferFunction1.y, add3.u2) annotation (Line(
- points={{60.6,0},{70,0},{70,-3},{79,-3}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(transferFunction1.y, transferFunction2.u) annotation (Line(
- points={{60.6,0},{68,0},{68,-40},{61.2,-40}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(add.y, lV_Gate.n1) annotation (Line(
- points={{-67.5,-17},{-55.75,-17},{-55.75,5},{-47.25,5}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(lV_Gate.n2, add2.y) annotation (Line(
- points={{-47.25,-5},{-47.25,-25.3},{-42.5,-25.3},{-42.5,-47}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(const.y, add2.u1) annotation (Line(points={{-27,-84},{-8,-84},{-8,-50},
- {-31,-50}}, color={0,0,127}));
- connect(add1.u1, add2.u1) annotation (Line(points={{31,-50},{38,-50},{38,-84},
- {-8,-84},{-8,-50},{-31,-50}}, color={0,0,127}));
- connect(simpleLagLim.u, lV_Gate.p) annotation (Line(points={{-5,1},{-17.5,1},
- {-17.5,0},{-27.25,0}}, color={0,0,127}));
- connect(simpleLagLim.y, transferFunction1.u) annotation (Line(points={{6.5,1},
- {26.25,1},{26.25,0},{46.8,0}}, color={0,0,127}));
- annotation (
- Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{
- 100,100}})),
- Icon(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{100,
- 100}}), graphics={Rectangle(extent={{-100,100},{100,-100}},
- lineColor={0,0,255}),Text(
- extent={{-90,56},{-30,44}},
- lineColor={0,0,255},
- textString="SPEED"),Text(
- extent={{-90,-44},{-32,-56}},
- lineColor={0,0,255},
- textString="VAR(L)"),Text(
- extent={{48,6},{108,-6}},
- lineColor={0,0,255},
- textString="PMECH"),Text(
- extent={{-40,18},{36,-18}},
- lineColor={0,0,255},
- textString="GAST")}),
- Documentation);
- end GAST;
-
- package BaseClasses
-
- partial model BaseGovernor
-
- Modelica.Blocks.Interfaces.RealInput SPEED annotation (Placement(
- transformation(extent={{-260,-140},{-220,-100}}), iconTransformation(
- extent={{-240,80},{-200,120}})));
- Modelica.Blocks.Interfaces.RealInput PMECH0 annotation (Placement(
- transformation(extent={{-260,60},{-220,100}}), iconTransformation(
- extent={{-240,-140},{-200,-100}})));
- Modelica.Blocks.Interfaces.RealOutput PMECH annotation (Placement(
- transformation(extent={{240,-10},{260,10}}), iconTransformation(extent=
- {{240,-10},{260,10}})));
- annotation (Icon(coordinateSystem(preserveAspectRatio=false, extent={{-240,
- -240},{240,200}}), graphics={
- Rectangle(
- extent={{-240,200},{240,-240}},
- lineColor={28,108,200},
- fillColor={255,255,255},
- fillPattern=FillPattern.Solid),
- Text(
- extent={{-186,122},{-110,80}},
- lineColor={28,108,200},
- fillColor={255,255,255},
- fillPattern=FillPattern.Solid,
- textString="SPEED"),
- Text(
- extent={{-188,-102},{-92,-142}},
- lineColor={28,108,200},
- fillColor={255,255,255},
- fillPattern=FillPattern.Solid,
- textString="PMECH0"),
- Text(
- extent={{144,24},{224,-16}},
- lineColor={28,108,200},
- fillColor={255,255,255},
- fillPattern=FillPattern.Solid,
- textString="PMECH")}), Diagram(
- coordinateSystem(preserveAspectRatio=false, extent={{-240,-240},{240,
- 200}})));
- end BaseGovernor;
- end BaseClasses;
- annotation (Documentation);
- end TG;
-
- package PSS "Power Systems Stabilizer"
- model DisabledPSS
- extends BaseClasses.BasePSS;
-
- Modelica.Blocks.Sources.Constant const
- annotation (Placement(transformation(extent={{100,-10},{120,10}})));
- equation
- connect(const.y, VOTHSG)
- annotation (Line(points={{121,0},{226,0},{226,0}}, color={0,0,127}));
- annotation (Icon(coordinateSystem(preserveAspectRatio=false)), Diagram(
- coordinateSystem(preserveAspectRatio=false)));
- end DisabledPSS;
-
- model PSS2A "PSS2A - IEEE Dual-Input Stabilizer Model"
- extends BaseClasses.BasePSS;
- parameter Real T_w1=10 "Washout 1 time constant";
- parameter Real T_w2=10 "Washout 2 time constant";
- parameter Real T_6=1e-9 "Lag 1 time constant";
- parameter Real T_w3=10 "Washout 3 time constant";
- parameter Real T_w4=1e-9 "Washout 4 time constant";
- parameter Real T_7=10 "Lag 2 time constant";
- parameter Real K_S2=0.99 "Lag 2 gain";
- parameter Real K_S3=1 "gain";
- parameter Real T_8=0.5 "Ramp-tracking filter time constant";
- parameter Real T_9=0.1 "Ramp-tracking filter time constant";
- parameter Real K_S1=20 "PSS gain";
- parameter Real T_1=0.15
- "Leadlag1 time constant (data from IEEE std, not representive, need to be tuned following system parameters)";
- parameter Real T_2=0.025 "Leadlag1 time constant";
- parameter Real T_3=0.15 "Leadlag2 time constant";
- parameter Real T_4=0.025 "Leadlag2 time constant";
- parameter Real V_STMAX=0.1 "PSS output limiation";
- parameter Real V_STMIN=-0.1 "PSS output limiation";
- parameter Real M "Ramp tracking filter coefficient";
- parameter Real N "Ramp tracking filter coefficient";
- OpenIPSL.NonElectrical.Continuous.LeadLag Leadlag1(
- K=1,
- T1=T_1,
- T2=T_2,
- y_start=0,
- x_start=0) annotation (Placement(transformation(extent={{120,-10},
- {140,10}})));
- OpenIPSL.NonElectrical.Continuous.LeadLag Leadlag2(
- K=1,
- T1=T_3,
- T2=T_4,
- y_start=0,
- x_start=0) annotation (Placement(transformation(extent={{150,-10},
- {170,10}})));
- OpenIPSL.NonElectrical.Continuous.SimpleLag SimpleLag1(
- K=1,
- T=T_6,
- y_start=0) annotation (Placement(transformation(extent={{-60,30},
- {-40,50}})));
- OpenIPSL.NonElectrical.Continuous.SimpleLag SimpleLag2(
- K=K_S2,
- T=T_7,
- y_start=0) annotation (Placement(transformation(extent={{-60,-50},
- {-40,-30}})));
- Modelica.Blocks.Math.Add add(k2=+K_S3) annotation (Placement(transformation(extent={{-20,24},
- {0,44}})));
- Modelica.Blocks.Math.Add add1(k2=-1) annotation (Placement(transformation(extent={{60,-10},
- {80,10}})));
- Modelica.Blocks.Math.Gain gain(k=K_S1) annotation (Placement(transformation(extent={{90,-10},
- {110,10}})));
- Modelica.Blocks.Nonlinear.Limiter limiter(uMax=V_STMAX, uMin=V_STMIN) annotation (Placement(transformation(extent={{180,-10},
- {200,10}})));
- NonElectrical.Continuous.RampTrackingFilter rampTrackingFilter(
- M=M,
- N=N,
- startValue=0,
- T_1=T_8,
- T_2=T_9) annotation (Placement(transformation(extent={{20,20},{40,40}})));
- NonElectrical.Continuous.DerivativeLag derivativeLag(
- K=T_w1,
- T=T_w1,
- y_start=0) annotation (Placement(transformation(extent={{-140,30},{-120,50}})));
- NonElectrical.Continuous.DerivativeLag derivativeLag1(
- y_start=0,
- K=T_w2,
- T=T_w2) annotation (Placement(transformation(extent={{-100,30},{-80,50}})));
- NonElectrical.Continuous.DerivativeLag derivativeLag2(
- y_start=0,
- K=T_w3,
- T=T_w3) annotation (Placement(transformation(extent={{-140,-50},{-120,-30}})));
- NonElectrical.Continuous.DerivativeLag derivativeLag3(
- y_start=0,
- K=T_w4,
- T=T_w4) annotation (Placement(transformation(extent={{-100,-50},{-80,-30}})));
- equation
- connect(SimpleLag1.y, add.u1) annotation (Line(points={{-39,40},{-30,40},{-22,
- 40}}, color={0,0,127}));
- connect(SimpleLag2.y, add.u2) annotation (Line(points={{-39,-40},{-30,-40},{-30,
- 28},{-22,28}}, color={0,0,127}));
- connect(add1.u2, add.u2) annotation (Line(points={{58,-6},{14,-6},{14,-20},{-30,
- -20},{-30,28},{-22,28}}, color={0,0,127}));
- connect(add1.y, gain.u) annotation (Line(points={{81,0},{81,0},{88,0}},
- color={0,0,127}));
- connect(gain.y, Leadlag1.u) annotation (Line(points={{111,0},{110,0},{118,0}},
- color={0,0,127}));
- connect(Leadlag1.y, Leadlag2.u) annotation (Line(points={{141,0},{148,0}}, color={0,0,127}));
- connect(Leadlag2.y, limiter.u) annotation (Line(points={{171,0},{178,0}}, color={0,0,127}));
- connect(rampTrackingFilter.y, add1.u1) annotation (Line(points={{41,30},{50,30},
- {50,6},{58,6}}, color={0,0,127}));
- connect(derivativeLag.y, derivativeLag1.u) annotation (Line(points={{-119,40},
- {-110.5,40},{-102,40}}, color={0,0,127}));
- connect(derivativeLag1.y, SimpleLag1.u) annotation (Line(points={{-79,40},{-62,
- 40}}, color={0,0,127}));
- connect(derivativeLag3.u, derivativeLag2.y) annotation (Line(points={{-102,-40},
- {-119,-40}}, color={0,0,127}));
- connect(derivativeLag3.y, SimpleLag2.u) annotation (Line(points={{-79,-40},{-62,
- -40}}, color={0,0,127}));
- connect(V_S1, derivativeLag.u)
- annotation (Line(points={{-160,40},{-160,40},{-142,40}}, color={0,0,127}));
- connect(V_S2, derivativeLag2.u) annotation (Line(points={{-160,-40},{-160,-30},
- {-160,-40},{-142,-40}}, color={0,0,127}));
- connect(limiter.y, VOTHSG)
- annotation (Line(points={{201,0},{226,0}}, color={0,0,127}));
- connect(add.y, rampTrackingFilter.u)
- annotation (Line(points={{1,34},{6,34},{6,30},{18,30}}, color={0,0,127}));
- annotation (
- Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-160,-80},{220,
- 80}})),
- Icon(coordinateSystem(preserveAspectRatio=false, extent={{-160,-80},{220,80}}), graphics={ Text(
- extent={{-34,16},{32,-14}},
- lineColor={28,108,200},
- textString="PSS2A"),Text(
- extent={{-140,50},{-112,30}},
- lineColor={28,108,200},
- textString="V_S1"),Text(
- extent={{-140,-30},{-112,-50}},
- lineColor={28,108,200},
- textString="V_S2"),Text(
- extent={{158,10},{214,-10}},
- lineColor={28,108,200},
- textString="VOTHSG")}),
- Documentation(info="
-
-Reference |
-PSS2A, PSS/E Manual |
-
-
-Last update |
-2015-08-03 |
-
-
-Author |
-Tin Rabuzin, SmarTS Lab, KTH Royal Institute of Technology |
-
-
-Contact |
-luigiv@kth.se |
-
-
-"));
- end PSS2A;
-
- model PSS2B
- extends BaseClasses.BasePSS;
- parameter Real T_w1=10 "Washout time constant 1";
- parameter Real T_w2=10 "Washout time constant 2";
- parameter Real T_6=1e-9 "Lag time constant 6";
- parameter Real T_w3=10 "Washout time constant 3";
- parameter Real T_w4=1e-9 "Washout time constant 4";
- parameter Real T_7=10 "Lag time constant 7";
- parameter Real K_S2=0.99 "Lag gain 2, T_7/H";
- parameter Real K_S3=1 "Lag gain 3";
- parameter Real T_8=0.5 "Ramp-tracking filter time constant";
- parameter Real T_9=0.1 "Ramp-tracking filter time constant";
- parameter Real K_S1=20 "PSS gain";
- parameter Real T_1=0.15 "Lead-lag time constant 1";
- parameter Real T_2=0.025 "Lead-lag time constant 2";
- parameter Real T_3=0.15 "Lead-lag time constant 3";
- parameter Real T_4=0.025 "Lead-lag time constant 4";
- parameter Real T_10=1e-9 "Lead-lag time constant 10";
- parameter Real T_11=0.033 "Lead-lag time constant 11";
- parameter Real V_S1MAX=0.08 "PSS input 1 max. limit";
- parameter Real V_S1MIN=-0.08 "PSS input 1 min. limit";
- parameter Real V_S2MAX=1.25 "PSS input 2 max. limit";
- parameter Real V_S2MIN=-1.25 "PSS input 2 min. limit";
- parameter Real V_STMAX=0.1 "PSS output max. limit, 0.1 ~ 0.2";
- parameter Real V_STMIN=-0.1 "PSS output min. limit, -0.05 ~ -0.1";
- parameter Real M "Ramp tracking filter coefficient";
- parameter Real N "Ramp tracking filter coefficient";
- OpenIPSL.NonElectrical.Continuous.LeadLag Leadlag1(
- K=1,
- T1=T_1,
- T2=T_2,
- y_start=0) annotation (Placement(transformation(extent={{106,-10},
- {126,10}})));
- OpenIPSL.NonElectrical.Continuous.LeadLag Leadlag2(
- K=1,
- T1=T_3,
- T2=T_4,
- y_start=0) annotation (Placement(transformation(extent={{134,-10},
- {154,10}})));
- OpenIPSL.NonElectrical.Continuous.SimpleLag SimpleLag1(
- K=1,
- T=T_6,
- y_start=0) annotation (Placement(transformation(extent={{-50,10},
- {-30,30}})));
- OpenIPSL.NonElectrical.Continuous.SimpleLag SimpleLag2(
- K=K_S2,
- T=T_7,
- y_start=0) annotation (Placement(transformation(extent={{-50,-30},
- {-30,-10}})));
- OpenIPSL.NonElectrical.Continuous.LeadLag Leadlag3(
- K=1,
- T1=T_10,
- T2=T_11,
- y_start=0) annotation (Placement(transformation(extent={{164,-10},
- {184,10}})));
- Modelica.Blocks.Nonlinear.Limiter limiter(uMax=V_STMAX, uMin=V_STMIN) annotation (Placement(transformation(extent={{194,-10},
- {214,10}})));
- Modelica.Blocks.Nonlinear.Limiter limiter1(uMax=V_S1MAX, uMin=V_S1MIN) annotation (Placement(transformation(extent={{-148,10},
- {-128,30}})));
- Modelica.Blocks.Nonlinear.Limiter limiter2(uMax=V_S2MAX, uMin=V_S2MIN) annotation (Placement(transformation(extent={{-148,
- -30},{-128,-10}})));
- Modelica.Blocks.Math.Add add(k2=+K_S3) annotation (Placement(transformation(extent={{-18,4},
- {2,24}})));
- Modelica.Blocks.Math.Add add1(k2=-1) annotation (Placement(transformation(extent={{48,-10},
- {68,10}})));
- Modelica.Blocks.Math.Gain gain(k=K_S1) annotation (Placement(transformation(extent={{76,-10},
- {96,10}})));
- NonElectrical.Continuous.DerivativeLag derivativeLag(
- K=T_w1,
- T=T_w1,
- y_start=0,
- x_start=V_S10) annotation (Placement(transformation(extent={{-114,10},{-94,
- 30}})));
- NonElectrical.Continuous.DerivativeLag derivativeLag1(
- y_start=0,
- K=T_w2,
- T=T_w2) annotation (Placement(transformation(extent={{-82,10},{-62,30}})));
- NonElectrical.Continuous.DerivativeLag derivativeLag2(
- y_start=0,
- K=T_w3,
- T=T_w3,
- x_start=V_S20) annotation (Placement(transformation(extent={{-114,-30},{-94,
- -10}})));
- NonElectrical.Continuous.DerivativeLag derivativeLag3(
- y_start=0,
- K=T_w4,
- T=T_w4) annotation (Placement(transformation(extent={{-82,-30},{-62,-10}})));
- NonElectrical.Continuous.RampTrackingFilter rampTrackingFilter(
- M=M,
- N=N,
- startValue=0,
- T_1=T_8,
- T_2=T_9) annotation (Placement(transformation(extent={{12,4},{32,24}})));
- protected
- parameter Real V_S10(fixed=false);
- parameter Real V_S20(fixed=false);
- initial equation
- V_S10 = V_S1;
- V_S20 = V_S2;
-
- equation
- connect(Leadlag3.y, limiter.u) annotation (Line(points={{185,0},{192,0}}, color={0,0,127}));
- connect(Leadlag2.y, Leadlag3.u) annotation (Line(points={{155,0},{162,0}}, color={0,0,127}));
- connect(Leadlag2.u, Leadlag1.y) annotation (Line(points={{132,0},{127,0}}, color={0,0,127}));
- connect(SimpleLag1.y, add.u1) annotation (Line(points={{-29,20},{-20,20}}, color={0,0,127}));
- connect(SimpleLag2.y, add.u2) annotation (Line(points={{-29,-20},{-26,-20},{
- -26,8},{-20,8}}, color={0,0,127}));
- connect(add1.y, gain.u) annotation (Line(points={{69,0},{69,0},{74,0}}, color={0,0,127}));
- connect(gain.y, Leadlag1.u) annotation (Line(points={{97,0},{100.5,0},{104,0}},
- color={0,0,127}));
- connect(derivativeLag.y, derivativeLag1.u) annotation (Line(points={{-93,20},
- {-84,20}}, color={0,0,127}));
- connect(derivativeLag3.u, derivativeLag2.y) annotation (Line(points={{-84,-20},
- {-93,-20}}, color={0,0,127}));
- connect(derivativeLag1.y, SimpleLag1.u) annotation (Line(points={{-61,20},{
- -61,20},{-52,20}}, color={0,0,127}));
- connect(derivativeLag3.y, SimpleLag2.u) annotation (Line(points={{-61,-20},{
- -52,-20}}, color={0,0,127}));
- connect(derivativeLag2.u, limiter2.y) annotation (Line(points={{-116,-20},{
- -127,-20}}, color={0,0,127}));
- connect(derivativeLag.u, limiter1.y) annotation (Line(points={{-116,20},{-127,
- 20}}, color={0,0,127}));
- connect(add.y, rampTrackingFilter.u) annotation (Line(points={{3,14},{10,14}}, color={0,0,127}));
- connect(rampTrackingFilter.y, add1.u1) annotation (Line(points={{33,14},{38,
- 14},{38,6},{46,6}}, color={0,0,127}));
- connect(add1.u2, add.u2) annotation (Line(points={{46,-6},{38,-6},{38,-20},{
- -26,-20},{-26,8},{-20,8}}, color={0,0,127}));
- connect(V_S1, limiter1.u)
- annotation (Line(points={{-160,40},{-150,40},{-150,20}}, color={0,0,127}));
- connect(V_S2, limiter2.u) annotation (Line(points={{-160,-40},{-150,-40},{
- -150,-20}}, color={0,0,127}));
- connect(limiter.y, VOTHSG)
- annotation (Line(points={{215,0},{226,0},{226,0}}, color={0,0,127}));
- annotation (
- Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-160,-80},{220,
- 80}})),
- Icon(coordinateSystem(preserveAspectRatio=false, extent={{-160,-80},{220,80}}), graphics={ Text(
- extent={{-34,14},{32,-16}},
- lineColor={28,108,200},
- textString="PSS2B"),Text(
- extent={{-146,46},{-106,32}},
- lineColor={28,108,200},
- textString="V_S1"),Text(
- extent={{164,16},{210,-14}},
- lineColor={28,108,200},
- textString="VOTHSG"),Text(
- extent={{-146,-34},{-106,-48}},
- lineColor={28,108,200},
- textString="V_S2")}),
- Documentation(info="
-
-
-Reference |
-IEEE Power System Stabilizer Type 2B (PSS2B), PSSE manual |
-
-
-Last update |
-2015-10-02 |
-
-
-Author |
-Le Qi, SmarTS Lab, KTH Royal Institute of Technology |
-
-
-Contact |
-luigiv@kth.se |
-
-
-"));
- end PSS2B;
-
- model STAB2A
-
- parameter Real K_2=1;
- parameter Real T_2=1;
- parameter Real K_3=1;
- parameter Real T_3=1;
- parameter Real K_4=1;
- parameter Real K_5=1;
- parameter Real T_5=1;
- parameter Real H_LIM=5;
- input Modelica.Blocks.Interfaces.RealInput PELEC
- "Machine electrical power (pu)" annotation (Placement(transformation(extent=
- {{-109,-6},{-98,10}}), iconTransformation(extent={{-107,-10},{-87,10}})));
- output Modelica.Blocks.Interfaces.RealOutput VOTHSG "PSS output signal"
- annotation (Placement(transformation(extent={{120,-10},{140,10}}),
- iconTransformation(extent={{120,-10},{140,10}})));
- Modelica.Blocks.Continuous.TransferFunction transferFunction(
- b={-K_2*T_2,0},
- a={T_2,1},
- initType=Modelica.Blocks.Types.Init.SteadyState)
- annotation (Placement(transformation(extent={{-90,-8},{-70,12}})));
- Modelica.Blocks.Continuous.TransferFunction transferFunction1(
- a={T_2,1},
- initType=Modelica.Blocks.Types.Init.SteadyState,
- b={K_2*T_2,0})
- annotation (Placement(transformation(extent={{-62,-8},{-42,12}})));
- Modelica.Blocks.Continuous.TransferFunction transferFunction2(
- a={T_2,1},
- initType=Modelica.Blocks.Types.Init.SteadyState,
- b={K_2*T_2,0})
- annotation (Placement(transformation(extent={{-34,-8},{-14,12}})));
- Modelica.Blocks.Continuous.TransferFunction transferFunction3(
- initType=Modelica.Blocks.Types.Init.SteadyState,
- b={K_3},
- a={T_3,1}) annotation (Placement(transformation(extent={{-4,-2},{16,18}})));
- Modelica.Blocks.Continuous.TransferFunction transferFunction4(
- initType=Modelica.Blocks.Types.Init.SteadyState,
- b={K_5},
- a={T_5,1}) annotation (Placement(transformation(extent={{42,-10},{62,10}})));
- Modelica.Blocks.Continuous.TransferFunction transferFunction5(
- initType=Modelica.Blocks.Types.Init.SteadyState,
- b={K_5},
- a={T_5,1}) annotation (Placement(transformation(extent={{70,-10},{90,10}})));
- Modelica.Blocks.Math.Gain K(k=K_4)
- annotation (Placement(transformation(extent={{0,-26},{14,-12}})));
- Modelica.Blocks.Math.Add add
- annotation (Placement(transformation(extent={{26,-4},{34,4}})));
- Modelica.Blocks.Nonlinear.Limiter limiter(uMax=H_LIM, uMin=-H_LIM)
- annotation (Placement(transformation(extent={{98,-10},{118,10}})));
- equation
- connect(PELEC, transferFunction.u) annotation (Line(
- points={{-103.5,2},{-103.5,1},{-92,1},{-92,2}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(transferFunction.y, transferFunction1.u) annotation (Line(
- points={{-69,2},{-64,2}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(transferFunction1.y, transferFunction2.u) annotation (Line(
- points={{-41,2},{-36,2}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(transferFunction2.y, transferFunction3.u) annotation (Line(
- points={{-13,2},{-10,2},{-10,8},{-6,8}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(transferFunction4.y, transferFunction5.u) annotation (Line(
- points={{63,0},{68,0}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(K.u, transferFunction2.y) annotation (Line(
- points={{-1.4,-19},{-10,-19},{-10,2},{-13,2}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(add.y, transferFunction4.u) annotation (Line(
- points={{34.4,0},{40,0}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(transferFunction3.y, add.u1) annotation (Line(
- points={{17,8},{20,8},{20,2.4},{25.2,2.4}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(K.y, add.u2) annotation (Line(
- points={{14.7,-19},{20,-19},{20,-2.4},{25.2,-2.4}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(transferFunction5.y, limiter.u)
- annotation (Line(points={{91,0},{96,0}}, color={0,0,127}));
- connect(VOTHSG, limiter.y)
- annotation (Line(points={{130,0},{119,0}}, color={0,0,127}));
- annotation (
- Diagram(coordinateSystem(
- preserveAspectRatio=false,
- extent={{-100,-40},{120,40}},
- grid={2,2})),
- Icon(coordinateSystem(
- preserveAspectRatio=false,
- extent={{-100,-40},{120,40}},
- grid={2,2}), graphics={Rectangle(extent={{-100,40},{120,-40}},
- lineColor={0,0,255}),Text(
- extent={{-34,24},{34,-24}},
- lineColor={0,0,255},
- textString="STAB2A"),Text(
- extent={{72,16},{116,-18}},
- lineColor={0,0,255},
- textString="VOTHSG"),Text(
- extent={{-86,16},{-48,-16}},
- lineColor={0,0,255},
- textString="PELEC")}),
- Documentation(info="
-Models STAB2A, STAB3, and STAB4 are special representations of specific types of supplementary stabilizing units.
-Both produce a supplementary signal by introducing phase-lead into a signalproportional to electrical power output measured at the generator terminals.
-
-Reference |
-PSS/E Manual |
-
-
-Last update |
-Unknown |
-
-
-Author |
-Mengjia Zhang,SmarTS Lab, KTH Royal Institute of Technology |
-
-
-Contact |
-luigiv@kth.se |
-
-
-"));
- end STAB2A;
-
- model STAB3
- parameter Real T_t "(s)";
- parameter Real T_X1 ">0 (s)";
- parameter Real T_X2 ">0 (s)";
- parameter Real K_X;
- parameter Real V_LIM;
- Modelica.Blocks.Interfaces.RealInput PELEC "Machine electrical power (pu)"
- annotation (Placement(transformation(extent={{-130,-20},{-90,20}}),
- iconTransformation(extent={{-130,-20},{-90,20}})));
- Modelica.Blocks.Interfaces.RealOutput VOTHSG "PSS output signal" annotation (
- Placement(transformation(extent={{100,-10},{120,10}}), iconTransformation(
- extent={{100,-10},{120,10}})));
- Modelica.Blocks.Nonlinear.Limiter limiter(uMax=V_LIM, uMin=-V_LIM)
- annotation (Placement(transformation(extent={{70,-10},{90,10}})));
- Modelica.Blocks.Sources.Constant const(k=P_REF)
- annotation (Placement(transformation(extent={{-60,-40},{-40,-20}})));
- protected
- parameter Real P_REF(fixed=false);
- parameter Real PELEC0(fixed=false);
- NonElectrical.Continuous.SimpleLag imSimpleLag(
- K=1,
- T=T_t,
- y_start=PELEC0)
- annotation (Placement(transformation(extent={{-76,-10},{-56,10}})));
- Modelica.Blocks.Math.Feedback feedback
- annotation (Placement(transformation(extent={{-40,-10},{-20,10}})));
- NonElectrical.Continuous.SimpleLag imSimpleLag1(
- K=1,
- T=T_X1,
- y_start=0) annotation (Placement(transformation(extent={{0,-10},{20,10}})));
- Modelica.Blocks.Continuous.Derivative imDerivativeLag(
- y_start=0,
- k=-K_X,
- T=T_X2,
- initType=Modelica.Blocks.Types.Init.InitialOutput)
- annotation (Placement(transformation(extent={{34,-10},{54,10}})));
- initial equation
- PELEC0 = PELEC;
- P_REF = PELEC0;
- equation
- connect(imSimpleLag1.y, imDerivativeLag.u)
- annotation (Line(points={{21,0},{32,0}}, color={0,0,127}));
- connect(imSimpleLag.y, feedback.u1)
- annotation (Line(points={{-55,0},{-46.5,0},{-38,0}}, color={0,0,127}));
- connect(imSimpleLag.u, PELEC)
- annotation (Line(points={{-78,0},{-110,0},{-110,0}}, color={0,0,127}));
- connect(feedback.y, imSimpleLag1.u)
- annotation (Line(points={{-21,0},{-11.5,0},{-2,0}}, color={0,0,127}));
- connect(imSimpleLag1.y, imDerivativeLag.u)
- annotation (Line(points={{21,0},{26.5,0},{32,0}}, color={0,0,127}));
- connect(imDerivativeLag.y, limiter.u)
- annotation (Line(points={{55,0},{68,0}}, color={0,0,127}));
- connect(limiter.y, VOTHSG)
- annotation (Line(points={{91,0},{110,0}}, color={0,0,127}));
- connect(const.y, feedback.u2)
- annotation (Line(points={{-39,-30},{-30,-30},{-30,-8}}, color={0,0,127}));
- annotation (
- Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,-40},{100,
- 40}})),
- Icon(coordinateSystem(extent={{-100,-40},{100,40}}, preserveAspectRatio=
- false), graphics={Rectangle(extent={{-100,40},{100,-40}}, lineColor=
- {28,108,200}),Text(
- extent={{-70,20},{70,-20}},
- lineColor={28,108,200},
- textString="STAB3"),Text(
- extent={{-88,10},{-58,-10}},
- lineColor={28,108,200},
- textString="PELEC"),Text(
- extent={{64,14},{98,-12}},
- lineColor={28,108,200},
- textString="VOTHSG")}),
- Documentation(info="
-
-Reference |
-STAB3, PSSE Manual |
-
-
-Last update |
-2015-08-03 |
-
-
-Author |
-Tin Rabuzin, SmarTS Lab, KTH Royal Institute of Technology |
-
-
-Contact |
-luigiv@kth.se |
-
-
-"));
- end STAB3;
-
- model STABNI
- parameter Real K ">= 0";
- parameter Real T_1 ">0 (s)";
- parameter Real T_2 ">=0 (S)";
- parameter Real T_0 ">0 (s)";
- parameter Real LIMIT "+- (pu)";
- Modelica.Blocks.Interfaces.RealInput PELEC annotation (Placement(
- transformation(extent={{-148,-20},{-108,20}}), iconTransformation(
- extent={{-148,-20},{-108,20}})));
- Modelica.Blocks.Interfaces.RealOutput VOTHSG annotation (Placement(
- transformation(extent={{120,-10},{140,10}}), iconTransformation(extent=
- {{120,-10},{140,10}})));
- Modelica.Blocks.Nonlinear.Limiter limiter(uMax=LIMIT, uMin=-LIMIT)
- annotation (Placement(transformation(extent={{60,-10},{80,10}})));
- protected
- parameter Real PELEC0(fixed=false);
- protected
- NonElectrical.Continuous.SimpleLag imSimpleLag(
- K=K,
- T=T_2,
- y_start=K*PELEC0)
- annotation (Placement(transformation(extent={{-100,-10},{-80,10}})));
- NonElectrical.Continuous.LeadLag imLeadLag(
- K=1,
- T1=T_1,
- T2=T_0,
- y_start=0)
- annotation (Placement(transformation(extent={{-10,-10},{10,10}})));
- Modelica.Blocks.Continuous.Derivative imDerivativeLag(
- T=T_0,
- k=T_0,
- y_start=0,
- initType=Modelica.Blocks.Types.Init.InitialOutput)
- annotation (Placement(transformation(extent={{-70,-10},{-50,10}})));
- Modelica.Blocks.Continuous.Derivative imDerivativeLag1(
- T=T_0,
- k=T_0,
- y_start=0,
- initType=Modelica.Blocks.Types.Init.InitialOutput)
- annotation (Placement(transformation(extent={{-40,-10},{-20,10}})));
- NonElectrical.Continuous.SimpleLag imSimpleLag1(
- K=1,
- T=T_0,
- y_start=0) annotation (Placement(transformation(extent={{20,-10},{40,10}})));
- Modelica.Blocks.Math.Gain gain(k=-1)
- annotation (Placement(transformation(extent={{96,-10},{116,10}})));
- initial equation
- PELEC0 = PELEC;
- equation
- connect(VOTHSG, gain.y)
- annotation (Line(points={{130,0},{124,0},{117,0}}, color={0,0,127}));
- connect(PELEC, imSimpleLag.u)
- annotation (Line(points={{-128,0},{-102,0}}, color={0,0,127}));
- connect(imSimpleLag.y, imDerivativeLag.u)
- annotation (Line(points={{-79,0},{-72,0}}, color={0,0,127}));
- connect(imDerivativeLag.y, imDerivativeLag1.u)
- annotation (Line(points={{-49,0},{-45.5,0},{-42,0}}, color={0,0,127}));
- connect(imDerivativeLag1.y, imLeadLag.u)
- annotation (Line(points={{-19,0},{-15.5,0},{-12,0}}, color={0,0,127}));
- connect(imLeadLag.y, imSimpleLag1.u)
- annotation (Line(points={{11,0},{14.5,0},{18,0}}, color={0,0,127}));
- connect(limiter.y, gain.u)
- annotation (Line(points={{81,0},{88,0},{94,0}}, color={0,0,127}));
- connect(limiter.u, imSimpleLag1.y)
- annotation (Line(points={{58,0},{41,0}}, color={0,0,127}));
- annotation (
- Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-120,-40},{120,
- 40}})),
- Icon(coordinateSystem(extent={{-120,-40},{120,40}}, preserveAspectRatio=
- false), graphics={Rectangle(extent={{-120,40},{120,-40}}, lineColor=
- {28,108,200}),Text(
- extent={{-64,20},{56,-20}},
- lineColor={28,108,200},
- textString="STABNI"),Text(
- extent={{-108,8},{-72,-10}},
- lineColor={28,108,200},
- textString="PELEC"),Text(
- extent={{82,10},{118,-8}},
- lineColor={28,108,200},
- textString="VOTHSG")}),
- Documentation(info="
-
-Reference |
-STABNI, PSSE Manual |
-
-
-Last update |
-2015-08-03 |
-
-
-Author |
-Tin Rabuzin, SmarTS Lab, KTH Royal Institute of Technology |
-
-
-Contact |
-luigiv@kth.se |
-
-
-"));
- end STABNI;
-
- model IEEEST "IEEE Stabilizing Model with single Input"
- parameter Real A_1=0 "Filter Coefficient";
- parameter Real A_2=0 "Filter Coefficient";
- parameter Real A_3=0 "Filter Coefficient";
- parameter Real A_4=0 "Filter Coefficient";
- parameter Real A_5=0 "Filter Coefficient";
- parameter Real A_6=0 "Filter Coefficient";
- parameter Real T_1=0 "Lead Time Constant";
- parameter Real T_2=0 "Lag Time Constant";
- parameter Real T_3=0 "Lead Time Constant";
- parameter Real T_4=0 "Lag Time Constant";
- parameter Real T_5=1.65 "Washout Time Constant";
- parameter Real T_6=1.65 "Washout Time Constant";
- parameter Real K_S=6.2 "Stabilizer Gain";
- parameter Real L_SMAX=0.26 "Output Limits";
- parameter Real L_SMIN=-0.1 "Output Limits";
- parameter Real V_CU=999 "Output Limits";
- parameter Real V_CL=-999 "Output Limits";
- Modelica.Blocks.Continuous.TransferFunction Filter1_1(
- initType=Modelica.Blocks.Types.Init.InitialOutput,
- y_start=V_S0,
- a=a1,
- b=b) annotation (Placement(transformation(extent={{-90,-30},{-80,-20}})));
- OpenIPSL.NonElectrical.Continuous.LeadLag T_1_T_2(
- K=1,
- T1=T_1,
- T2=T_2,
- x_start=V_S0,
- y_start=V_S0)
- annotation (Placement(transformation(extent={{40,-5},{50,5}})));
- OpenIPSL.NonElectrical.Continuous.LeadLag T_3_T_4(
- K=1,
- T1=T_3,
- T2=T_4,
- x_start=V_S0,
- y_start=V_S0)
- annotation (Placement(transformation(extent={{60,-5},{70,5}})));
- Modelica.Blocks.Interfaces.RealOutput VOTHSG(start=0) "PSS output signal"
- annotation (Placement(transformation(extent={{120,-5},{130,5}}, rotation=0),
- iconTransformation(extent={{120,-10},{140,10}})));
- Modelica.Blocks.Interfaces.RealInput V_S(start=0) "PSS input signal"
- annotation (Placement(transformation(extent={{-125,-5},{-115,5}}, rotation=
- 0), iconTransformation(extent={{-128,-30},{-108,-10}})));
- Modelica.Blocks.Nonlinear.Limiter VSS(uMax=L_SMAX, uMin=L_SMIN)
- annotation (Placement(transformation(extent={{100,-5},{110,5}})));
- Modelica.Blocks.Interfaces.RealInput V_CT
- "Compensated machine terminal voltage (pu)" annotation (Placement(
- transformation(extent={{-125,30},{-115,40}}, rotation=0),
- iconTransformation(extent={{-128,10},{-108,30}})));
- Modelica.Blocks.Continuous.Derivative imDerivativeLag(
- T=T_6,
- y_start=0,
- initType=Modelica.Blocks.Types.Init.InitialOutput,
- x_start=V_S0,
- k=K_S*T_5) annotation (Placement(transformation(extent={{80,-5},{90,5}})));
- protected
- Modelica.Blocks.Interfaces.RealOutput Vs "Connector of Real output signal"
- annotation (Placement(transformation(extent={{113,-5},{123,5}}, rotation=0),
- iconTransformation(extent={{32,-8},{36,-4}})));
- parameter Real V_S0(fixed=false);
- parameter Boolean bypass_filter2(fixed=false);
- parameter Boolean bypass_filter1(fixed=false);
- parameter Integer n1=if A_1 == 0 and A_2 == 0 then 4 elseif A_2 == 0 then 2
- else 3;
- parameter Integer n2=if A_3 == 0 and A_4 == 0 then 4 elseif A_4 == 0 then 2
- else 3;
- parameter Integer n3=if A_6 == 0 and A_5 == 0 then 1 elseif A_6 == 0 then 2
- else 3;
- parameter Real a1[n1](each fixed=false);
- parameter Real a2[n2](each fixed=false);
- parameter Real b[n3](each fixed=false);
- Modelica.Blocks.Continuous.TransferFunction Filter2_1(
- initType=Modelica.Blocks.Types.Init.InitialOutput,
- y_start=V_S0,
- b={1},
- a=a2) annotation (Placement(transformation(extent={{-60,-30},{-50,-20}})));
- Modelica.Blocks.Logical.Switch swith_filter2
- annotation (Placement(transformation(extent={{-30,-26},{-20,-16}})));
- Modelica.Blocks.Sources.BooleanConstant booleanConstant(k=bypass_filter2)
- annotation (Placement(transformation(extent={{-60,-50},{-50,-40}})));
- Modelica.Blocks.Continuous.TransferFunction Filter1_2(
- initType=Modelica.Blocks.Types.Init.InitialOutput,
- y_start=V_S0,
- a=a1,
- b={1}) annotation (Placement(transformation(extent={{-90,10},{-80,20}})));
- Modelica.Blocks.Continuous.TransferFunction Filter2_2(
- initType=Modelica.Blocks.Types.Init.InitialOutput,
- y_start=V_S0,
- a=a2,
- b=b) annotation (Placement(transformation(extent={{-60,10},{-50,20}})));
- Modelica.Blocks.Logical.Switch swith_filter1
- annotation (Placement(transformation(extent={{-75,-5},{-65,5}})));
- Modelica.Blocks.Sources.BooleanConstant booleanConstant1(k=bypass_filter1)
- annotation (Placement(transformation(extent={{-95,-15},{-85,-5}})));
- Modelica.Blocks.Logical.Switch swith_filter3
- annotation (Placement(transformation(extent={{20,-5},{30,5}})));
- Modelica.Blocks.MathBoolean.And and1(nu=2)
- annotation (Placement(transformation(extent={{-30,-13},{-20,-3}})));
- Modelica.Blocks.Logical.Switch swith_filter4
- annotation (Placement(transformation(extent={{-6,-5},{4,5}})));
- initial equation
- if n3 == 1 then
- b = {1};
- elseif n3 == 2 then
- b = {A_5,1};
- else
- b = {A_6,A_5,1};
- end if;
- if n1 == 4 then
- a1 = {1,1,1,1};
- bypass_filter1 = true;
- elseif n1 == 3 then
- a1 = {A_2,A_1,1};
- bypass_filter1 = false;
- else
- a1 = {A_1,1};
- bypass_filter1 = false;
- end if;
- if n2 == 4 then
- a2 = {1,1,1,1};
- bypass_filter2 = true;
- elseif n2 == 3 then
- a2 = {A_4,A_3,1};
- bypass_filter2 = false;
- else
- a2 = {A_3,1};
- bypass_filter2 = false;
- end if;
- V_S0 = V_S;
- equation
- if V_CU == 0 and not V_CL == 0 then
- if V_CT > V_CL then
- VOTHSG = Vs;
- else
- VOTHSG = 0;
- end if;
- elseif V_CL == 0 and not V_CU == 0 then
- if V_CT < V_CU then
- VOTHSG = Vs;
- else
- VOTHSG = 0;
- end if;
- elseif V_CU == 0 and V_CL == 0 then
- VOTHSG = Vs;
- elseif V_CT > V_CL and V_CT < V_CU then
- VOTHSG = Vs;
- else
- VOTHSG = 0;
- end if;
- connect(V_S, Filter1_1.u) annotation (Line(
- points={{-120,0},{-100,0},{-100,-25},{-91,-25}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(T_1_T_2.y, T_3_T_4.u)
- annotation (Line(points={{50.5,0},{59,0}}, color={0,0,127}));
- connect(imDerivativeLag.y, VSS.u)
- annotation (Line(points={{90.5,0},{99,0}}, color={0,0,127}));
- connect(T_3_T_4.y, imDerivativeLag.u)
- annotation (Line(points={{70.5,0},{74,0},{79,0}}, color={0,0,127}));
- connect(Filter1_1.y, Filter2_1.u) annotation (Line(points={{-79.5,-25},{-72,-25},
- {-61,-25}}, color={0,0,127}));
- connect(swith_filter2.u3, Filter2_1.y) annotation (Line(points={{-31,-25},{-31,
- -25},{-49.5,-25}}, color={0,0,127}));
- connect(swith_filter2.u1, Filter2_1.u) annotation (Line(points={{-31,-17},{-66,
- -17},{-66,-25},{-61,-25}}, color={0,0,127}));
- connect(booleanConstant.y, swith_filter2.u2) annotation (Line(points={{-49.5,
- -45},{-40,-45},{-40,-21},{-31,-21}}, color={255,0,255}));
- connect(Filter1_2.u, Filter1_1.u) annotation (Line(points={{-91,15},{-100,15},
- {-100,-25},{-91,-25}}, color={0,0,127}));
- connect(swith_filter1.y, Filter2_2.u) annotation (Line(points={{-64.5,0},{-63,
- 0},{-63,15},{-61,15}}, color={0,0,127}));
- connect(swith_filter1.u1, Filter1_1.u) annotation (Line(points={{-76,4},{-95,
- 4},{-95,15},{-100,15},{-100,-25},{-91,-25}}, color={0,0,127}));
- connect(swith_filter1.u3, Filter1_2.y) annotation (Line(points={{-76,-4},{-78,
- -4},{-78,15},{-79.5,15}}, color={0,0,127}));
- connect(booleanConstant1.y, swith_filter1.u2) annotation (Line(points={{-84.5,
- -10},{-80,-10},{-80,0},{-76,0}}, color={255,0,255}));
- connect(and1.y, swith_filter3.u2) annotation (Line(points={{-19.25,-8},{15,-8},
- {15,0},{19,0}}, color={255,0,255}));
- connect(and1.u[1], swith_filter2.u2) annotation (Line(points={{-30,-6.25},{-35,
- -6.25},{-40,-6.25},{-40,-6},{-40,-21},{-31,-21}}, color={255,0,255}));
- connect(and1.u[2], swith_filter1.u2) annotation (Line(points={{-30,-9.75},{-52,
- -9.75},{-52,-10},{-80,-10},{-80,0},{-76,0}}, color={255,0,255}));
- connect(swith_filter3.u1, Filter1_1.u) annotation (Line(points={{19,4},{15,4},
- {15,30},{-110,30},{-110,0},{-100,0},{-100,-25},{-91,-25}}, color={0,0,
- 127}));
- connect(swith_filter4.y, swith_filter3.u3) annotation (Line(points={{4.5,0},{
- 12,0},{12,-4},{19,-4}}, color={0,0,127}));
- connect(swith_filter4.u2, swith_filter1.u2) annotation (Line(points={{-7,0},{
- -52,0},{-52,-10},{-80,-10},{-80,0},{-76,0}}, color={255,0,255}));
- connect(Filter2_2.y, swith_filter4.u1) annotation (Line(points={{-49.5,15},{-20,
- 15},{-20,4},{-7,4}}, color={0,0,127}));
- connect(swith_filter2.y, swith_filter4.u3) annotation (Line(points={{-19.5,-21},
- {-12,-21},{-12,-4},{-7,-4}}, color={0,0,127}));
- connect(swith_filter3.y, T_1_T_2.u)
- annotation (Line(points={{30.5,0},{39,0}}, color={0,0,127}));
- connect(VSS.y, Vs)
- annotation (Line(points={{110.5,0},{118,0},{118,0}}, color={0,0,127}));
- annotation (
- Diagram(coordinateSystem(
- preserveAspectRatio=false,
- extent={{-120,-40},{120,40}},
- grid={1,1})),
- Icon(coordinateSystem(
- preserveAspectRatio=false,
- extent={{-120,-40},{120,40}},
- grid={1,1}), graphics={Rectangle(extent={{-120,40},{120,-40}},
- lineColor={0,0,255}),Text(
- extent={{-46,40},{54,-44}},
- lineColor={0,0,255},
- textString="IEEEST"),Text(
- extent={{-106,-10},{-84,-30}},
- lineColor={0,0,255},
- textString="V_S"),Text(
- extent={{84,14},{118,-16}},
- lineColor={0,0,255},
- textString="VOTHSG"),Text(
- extent={{-106,32},{-78,8}},
- lineColor={0,0,255},
- textString="V_CT")}),
- Documentation(info="
-
-
-Reference |
-PSS/E Manual |
-
-
-Last update |
-Unknown |
-
-
-Author |
-Mengjia Zhang,SmarTS Lab, KTH Royal Institute of Technology |
-
-
-Contact |
-luigiv@kth.se |
-
-
-"));
- end IEEEST;
-
- model IEE2ST "IEEE Stabilizing Model With Dual-Input Signals"
- parameter Real K_1;
- parameter Real K_2;
- parameter Real T_1 "(s)";
- parameter Real T_2 "(s)";
- parameter Real T_3 "(s), if T_3 equals 0, sT_3 will equal 1.0";
- parameter Real T_4 ">0 (s)";
- parameter Real T_5 "(s)";
- parameter Real T_6 "(s)";
- parameter Real T_7 "(s)";
- parameter Real T_8 "(s)";
- parameter Real T_9 "(s)";
- parameter Real T_10 "(s)";
- parameter Real L_SMAX;
- parameter Real L_SMIN;
- parameter Real V_CU "(pu)";
- parameter Real V_CL "(pu)";
- Modelica.Blocks.Interfaces.RealInput V_S1 "PSS input signal 1"
- annotation (Placement(transformation(extent={{-200,20},{-160,60}})));
- Modelica.Blocks.Interfaces.RealInput V_S2 "PSS input signal 2"
- annotation (Placement(transformation(extent={{-200,-60},{-160,-20}})));
- Modelica.Blocks.Math.Add add
- annotation (Placement(transformation(extent={{-100,-10},{-80,10}})));
- Modelica.Blocks.Nonlinear.Limiter limiter(uMax=L_SMAX, uMin=L_SMIN)
- annotation (Placement(transformation(extent={{96,-10},{116,10}})));
- Modelica.Blocks.Interfaces.RealOutput VOTHSG "PSS output signal"
- annotation (Placement(transformation(extent={{180,-10},{200,10}})));
- Modelica.Blocks.Continuous.Derivative imDerivativeLag(
- k=T_3,
- T=T_4,
- y_start=0,
- initType=Modelica.Blocks.Types.Init.InitialOutput)
- annotation (Placement(transformation(extent={{-60,-10},{-40,10}})));
- NonElectrical.Continuous.SimpleLag imSimpleLag(
- K=K_1,
- T=T_1,
- y_start=K_1*ICS10)
- annotation (Placement(transformation(extent={{-150,30},{-130,50}})));
- NonElectrical.Continuous.SimpleLag imSimpleLag1(
- K=K_2,
- T=T_2,
- y_start=ICS20)
- annotation (Placement(transformation(extent={{-150,-50},{-130,-30}})));
- NonElectrical.Continuous.LeadLag imLeadLag(
- K=1,
- T1=T_5,
- T2=T_6,
- y_start=0) annotation (Placement(transformation(extent={{-20,-10},{0,10}})));
- NonElectrical.Continuous.LeadLag imLeadLag1(
- K=1,
- T1=T_7,
- T2=T_8,
- y_start=0) annotation (Placement(transformation(extent={{20,-10},{40,10}})));
- NonElectrical.Continuous.LeadLag imLeadLag2(
- K=1,
- T1=T_9,
- T2=T_10,
- y_start=0) annotation (Placement(transformation(extent={{60,-10},{80,10}})));
- Modelica.Blocks.Interfaces.RealInput VCT
- "Compensated machine terminal voltage (pu)" annotation (Placement(
- transformation(
- extent={{-20,-20},{20,20}},
- rotation=90,
- origin={0,-60})));
- protected
- Modelica.Blocks.Interfaces.RealOutput VSS
- annotation (Placement(transformation(extent={{136,-10},{156,10}})));
- protected
- parameter Real ICS10(fixed=false);
- parameter Real ICS20(fixed=false);
- initial equation
- ICS10 = V_S1;
- ICS20 = V_S2;
- equation
- if V_CU == 0 and not V_CL == 0 then
- if VCT > V_CL then
- VOTHSG = VSS;
- else
- VOTHSG = 0;
- end if;
- elseif V_CL == 0 and not V_CU == 0 then
- if VCT < V_CU then
- VOTHSG = VSS;
- else
- VOTHSG = 0;
- end if;
- elseif V_CU == 0 and V_CL == 0 then
- VOTHSG = VSS;
- elseif VCT > V_CL and VCT < V_CU then
- VOTHSG = VSS;
- else
- VOTHSG = 0;
- end if;
- connect(limiter.y, VSS)
- annotation (Line(points={{117,0},{146,0}}, color={0,0,127}));
- connect(V_S2, imSimpleLag1.u)
- annotation (Line(points={{-180,-40},{-152,-40}}, color={0,0,127}));
- connect(imSimpleLag1.y, add.u2) annotation (Line(points={{-129,-40},{-120,-40},
- {-120,-6},{-102,-6}}, color={0,0,127}));
- connect(V_S1, imSimpleLag.u)
- annotation (Line(points={{-180,40},{-166,40},{-152,40}}, color={0,0,127}));
- connect(imSimpleLag.y, add.u1) annotation (Line(points={{-129,40},{-120,40},{
- -120,6},{-102,6}}, color={0,0,127}));
- connect(imLeadLag2.y, limiter.u)
- annotation (Line(points={{81,0},{94,0}}, color={0,0,127}));
- connect(imLeadLag1.y, imLeadLag2.u)
- annotation (Line(points={{41,0},{49.5,0},{58,0}}, color={0,0,127}));
- connect(imLeadLag.y, imLeadLag1.u)
- annotation (Line(points={{1,0},{9.5,0},{18,0}}, color={0,0,127}));
- connect(imLeadLag.u, imDerivativeLag.y)
- annotation (Line(points={{-22,0},{-39,0}}, color={0,0,127}));
- connect(add.y, imDerivativeLag.u)
- annotation (Line(points={{-79,0},{-62,0}}, color={0,0,127}));
- annotation (
- Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-180,-60},{180,
- 60}})),
- Icon(coordinateSystem(extent={{-180,-60},{180,60}}, preserveAspectRatio=
- false), graphics={Text(
- extent={{-156,52},{-114,28}},
- lineColor={28,108,200},
- textString="ICS1"),Text(
- extent={{-158,-28},{-114,-54}},
- lineColor={28,108,200},
- textString="ICS2"),Text(
- extent={{-20,-20},{22,-42}},
- lineColor={28,108,200},
- textString="VCT"),Text(
- extent={{106,12},{178,-14}},
- lineColor={28,108,200},
- textString="VOTHSG"),Text(
- extent={{-50,32},{58,-32}},
- lineColor={28,108,200},
- textString="IEE2ST"),Rectangle(extent={{-180,60},{180,-60}},
- lineColor={28,108,200})}),
- Documentation(info="
-
-
-Reference |
- |
-IEE2ST, PSSE Manual
-
-
-Last update |
- |
-2015-08-17
-
-
-Author |
-Tin Rabuzin, SmarTS Lab, KTH Royal Institute of Technology |
-
-
-Contact |
-luigiv@kth.se |
-
-
-"));
- end IEE2ST;
-
- model STBSVC "WECC Supplementary Signal for Static var Compensator"
- parameter Real K_S1 ">0";
- parameter Real T_S7 "(s)";
- parameter Real T_S8 "(s)";
- parameter Real T_S9 ">0 (s)";
- parameter Real T_S13 ">0 (s)";
- parameter Real T_S14 ">0 (s)";
- parameter Real K_S3 ">0";
- parameter Real V_SCS;
- parameter Real K_S2;
- parameter Real T_S10 "(s)";
- parameter Real T_S11 "(s)";
- parameter Real T_S12 ">0, if K_S2 != 0 (s)";
- NonElectrical.Continuous.SimpleLag imSimpleLag(
- K=K_S1,
- y_start=V_S10,
- T=T_S7) annotation (Placement(transformation(extent={{-100,40},{-80,60}})));
- NonElectrical.Continuous.SimpleLag imSimpleLag1(
- y_start=V_S10,
- K=K_S2,
- T=T_S10)
- annotation (Placement(transformation(extent={{-100,-60},{-80,-40}})));
- NonElectrical.Continuous.LeadLag imLeadLag(
- K=1,
- T1=T_S8,
- T2=T_S9,
- y_start=V_S10)
- annotation (Placement(transformation(extent={{-60,40},{-40,60}})));
- NonElectrical.Continuous.LeadLag imLeadLag1(
- K=1,
- T1=T_S11,
- T2=T_S12,
- y_start=V_S20)
- annotation (Placement(transformation(extent={{-60,-60},{-40,-40}})));
- Modelica.Blocks.Math.Add add
- annotation (Placement(transformation(extent={{-12,-10},{8,10}})));
- Modelica.Blocks.Continuous.Derivative imDerivativeLag(
- k=T_S13,
- T=T_S14,
- y_start=0,
- initType=Modelica.Blocks.Types.Init.InitialOutput)
- annotation (Placement(transformation(extent={{18,-10},{38,10}})));
- Modelica.Blocks.Math.Gain gain(k=K_S3)
- annotation (Placement(transformation(extent={{46,-10},{66,10}})));
- Modelica.Blocks.Nonlinear.Limiter limiter(uMax=V_SCS, uMin=-V_SCS)
- annotation (Placement(transformation(extent={{74,-10},{94,10}})));
- Modelica.Blocks.Interfaces.RealInput V_S1 "PSS input signal 1"
- annotation (Placement(transformation(extent={{-150,30},{-110,70}})));
- Modelica.Blocks.Interfaces.RealInput V_S2 "PSS input signal 2"
- annotation (Placement(transformation(extent={{-150,-70},{-110,-30}})));
- Modelica.Blocks.Interfaces.RealOutput VOTHSG "Stabilizer signal (pu)"
- annotation (Placement(transformation(extent={{120,-10},{140,10}})));
- protected
- parameter Real V_S10(fixed=false);
- parameter Real V_S20(fixed=false);
- initial equation
- V_S10 = V_S1;
- V_S20 = V_S2;
- equation
- connect(gain.y, limiter.u)
- annotation (Line(points={{67,0},{67,0},{72,0}}, color={0,0,127}));
- connect(limiter.y, VOTHSG)
- annotation (Line(points={{95,0},{130,0}}, color={0,0,127}));
- connect(V_S1, imSimpleLag.u)
- annotation (Line(points={{-130,50},{-116,50},{-102,50}}, color={0,0,127}));
- connect(imSimpleLag.y, imLeadLag.u)
- annotation (Line(points={{-79,50},{-70.5,50},{-62,50}}, color={0,0,127}));
- connect(imLeadLag.y, add.u1) annotation (Line(points={{-39,50},{-30,50},{-30,
- 6},{-14,6}}, color={0,0,127}));
- connect(V_S2, imSimpleLag1.u) annotation (Line(points={{-130,-50},{-116,-50},
- {-102,-50}}, color={0,0,127}));
- connect(imSimpleLag1.y, imLeadLag1.u) annotation (Line(points={{-79,-50},{-70.5,
- -50},{-62,-50}}, color={0,0,127}));
- connect(imLeadLag1.y, add.u2) annotation (Line(points={{-39,-50},{-30,-50},{-30,
- -6},{-14,-6}}, color={0,0,127}));
- connect(imDerivativeLag.y, gain.u)
- annotation (Line(points={{39,0},{41.5,0},{44,0}}, color={0,0,127}));
- connect(add.y, imDerivativeLag.u)
- annotation (Line(points={{9,0},{12.5,0},{16,0}}, color={0,0,127}));
- annotation (
- Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-120,-100},{
- 120,100}})),
- Icon(coordinateSystem(extent={{-120,-100},{120,100}}, preserveAspectRatio=
- true), graphics={Rectangle(extent={{-120,100},{120,-100}},
- lineColor={28,108,200}),Text(
- extent={{-112,58},{-66,44}},
- lineColor={28,108,200},
- textString="V_S1"),Text(
- extent={{-120,-42},{-58,-56}},
- lineColor={28,108,200},
- textString="V_S2"),Text(
- extent={{70,10},{118,-6}},
- lineColor={28,108,200},
- textString="VOTHSG"),Text(
- extent={{-62,30},{66,-32}},
- lineColor={28,108,200},
- textString="STBSVC")}),
- Documentation);
- end STBSVC;
-
- package BaseClasses
-
- partial model BasePSS
- Modelica.Blocks.Interfaces.RealInput V_S2 "PSS input signal 2" annotation (Placement(transformation(extent={{-166,
- -46},{-154,-34}}), iconTransformation(extent={{-160,
- -46},{-148,-34}})));
- Modelica.Blocks.Interfaces.RealInput V_S1 "PSS input signal 1" annotation (Placement(transformation(extent={{-166,34},
- {-154,46}}), iconTransformation(extent={{-160,34},
- {-148,46}})));
- Modelica.Blocks.Interfaces.RealOutput VOTHSG "PSS output" annotation (Placement(transformation(extent={{220,-6},
- {232,6}}), iconTransformation(extent={{220,-6},
- {232,6}})));
- annotation (Icon(coordinateSystem(preserveAspectRatio=false, extent={{-160,
- -80},{220,80}}), graphics={Rectangle(
- extent={{-160,80},{220,-80}},
- lineColor={28,108,200},
- fillColor={255,255,255},
- fillPattern=FillPattern.Solid)}),
- Diagram(coordinateSystem(preserveAspectRatio=
- false, extent={{-160,-80},{220,80}})));
- end BasePSS;
- end BaseClasses;
- annotation (Documentation);
- end PSS;
- annotation (Documentation(info="
-"));
- end PSSE;
-
- package CGMES
- package ES
- model ExcSEXS "Simplified Excitation System Model from CGMES definition"
- extends
- OpenIPSL.Electrical.Controls.PSSE.ES.BaseClasses.BaseExciter;
- parameter Real T_AT_B
- "Ta/Tb - gain reduction ratio of lag-lead element (TaTb). Typical Value = 0.1";
- parameter Real T_B
- "Denominator time constant of lag-lead block (Tb). Typical Value = 10";
- parameter Real K "Gain (K) (>0). Typical Value = 100";
- parameter Real T_E "Time constant of gain block (Te). Typical Value = 0.05";
- parameter Real K_C "PI controller gain (Kc). Typical Value = 0.08";
- parameter Real T_C
- "PI controller phase lead time constant (Tc). Typical Value = 0";
- parameter Real E_MIN
- "Minimum field voltage output (Emin). Typical Value = -5";
- parameter Real E_MAX
- "Maximum field voltage output (Emax). Typical Value = 5";
- parameter Real EFD_MAX
- "Field voltage clipping maximum limit (Efdmax). Typical Value = 5";
- parameter Real EFD_MIN
- "Field voltage clipping minimum limit (Efdmin). Typical Value = -5";
- Modelica.Blocks.Math.Add3 V_erro(
- k3=1,
- k1=1,
- k2=1) annotation (Placement(transformation(extent={{-40,-10},{-20,10}})));
- NonElectrical.Continuous.SimpleLagLim simpleLagLim(
- K=K,
- T=T_E,
- y_start=Efd0,
- outMax=E_MAX,
- outMin=E_MIN)
- annotation (Placement(transformation(extent={{120,-10},{140,10}})));
- Modelica.Blocks.Math.Add DiffV1 annotation (Placement(transformation(
- extent={{-10,-10},{10,10}},
- rotation=90,
- origin={-100,-50})));
- NonElectrical.Continuous.LeadLag leadLag(
- K=1,
- T1=T_AT_B*T_B,
- T2=T_B,
- y_start=0,
- x_start=0) annotation (Placement(transformation(extent={{10,-10},{30,10}})));
- Modelica.Blocks.Nonlinear.Limiter limiter(uMax=EFD_MAX, uMin=EFD_MIN)
- annotation (Placement(transformation(extent={{160,-10},{180,10}})));
- Modelica.Blocks.Continuous.TransferFunction transferFunction(
- initType=Modelica.Blocks.Types.Init.InitialOutput,
- y_start=Efd0/K,
- b={K_C*T_C,K_C},
- a={T_C,0}) annotation (Placement(transformation(extent={{58,-10},{78,10}})));
- initial equation
- V_REF = ECOMP0;
- equation
- connect(DiffV1.u1, VUEL) annotation (Line(points={{-106,-62},{-106,-80},{-130,
- -80},{-130,-200}}, color={0,0,127}));
- connect(DiffV1.u2, VOEL) annotation (Line(points={{-94,-62},{-94,-80},{-70,-80},
- {-70,-200}}, color={0,0,127}));
- connect(DiffV1.y, V_erro.u3) annotation (Line(points={{-100,-39},{-100,-20},{
- -52,-20},{-52,-8},{-42,-8}}, color={0,0,127}));
- connect(DiffV.y, V_erro.u2)
- annotation (Line(points={{-99,0},{-42,0}}, color={0,0,127}));
- connect(V_erro.u1, VOTHSG) annotation (Line(points={{-42,8},{-52,8},{-52,90},
- {-200,90}}, color={0,0,127}));
- connect(ECOMP, DiffV.u2) annotation (Line(points={{-200,0},{-166,0},{-132,0},
- {-132,-6},{-122,-6}}, color={0,0,127}));
- connect(leadLag.u, V_erro.y)
- annotation (Line(points={{8,0},{0,0},{-19,0}}, color={0,0,127}));
- connect(simpleLagLim.y, limiter.u)
- annotation (Line(points={{141,0},{149.5,0},{158,0}}, color={0,0,127}));
- connect(limiter.y, EFD)
- annotation (Line(points={{181,0},{210,0}}, color={0,0,127}));
- connect(leadLag.y, transferFunction.u)
- annotation (Line(points={{31,0},{56,0}}, color={0,0,127}));
- connect(transferFunction.y, simpleLagLim.u)
- annotation (Line(points={{79,0},{98.5,0},{118,0}}, color={0,0,127}));
- annotation (
- Diagram(coordinateSystem(
- extent={{-200,-200},{200,160}},
- initialScale=0.1,
- preserveAspectRatio=false)),
- Icon(coordinateSystem(extent={{-200,-200},{200,160}}, initialScale=0.1),
- graphics={Text(
- extent={{-100,160},{100,100}},
- lineColor={28,108,200},
- textString="ExcSEXS")}),
- Documentation(info="
-
-
-Reference |
-PSS/E Manual |
-
-
-Last update |
-Unknown |
-
-
-Author |
-Mengjia Zhang,SmarTS Lab, KTH Royal Institute of Technology |
-
-
-Contact |
-luigiv@kth.se |
-
-
-"));
- end ExcSEXS;
- annotation (Documentation);
- end ES;
- annotation (Documentation);
- end CGMES;
- annotation (Documentation);
- end Controls;
-
- package Loads
- package PSAT
- model ExponentialRecovery "Exponential Recovery Load"
- extends BaseClasses.baseLoad;
- parameter Real Tp=1 "Active power time constant (s)";
- parameter Real Tq=1 "Reactive power time constant (s)";
- parameter Real alpha_s=2 "Static active power exponent";
- parameter Real alpha_t=1.5 "Dynamic active power exponent";
- parameter Real beta_s=2 "Static reactive power exponent";
- parameter Real beta_t=1.5 "Dynamic reactive power exponent";
- Real ps "Static real power absorption (pu)";
- Real pt "Transient real power absorption (pu)";
- Real qs "Static imaginary power absorption (pu)";
- Real qt "Transient imaginary power absorption (pu)";
- protected
- Real xp(start=0);
- Real xq(start=0);
- equation
- der(xp) = (-xp/Tp) + ps - pt;
- P = xp/Tp + pt;
- ps = P_0/S_b*(V/V_0)^alpha_s;
- pt = P_0/S_b*(V/V_0)^alpha_t;
- der(xq) = (-xq/Tq) + qs - qt;
- Q = xq/Tq + qt;
- qs = Q_0/S_b*(V/V_0)^beta_s;
- qt = Q_0/S_b*(V/V_0)^beta_t;
- annotation (
- Icon(coordinateSystem(
- extent={{-100.0,-100.0},{100.0,100.0}},
- preserveAspectRatio=true,
- initialScale=0.1,
- grid={10,10})),
- Diagram(coordinateSystem(
- extent={{-148.5,-105.0},{148.5,105.0}},
- preserveAspectRatio=true,
- initialScale=0.1,
- grid={5,5}), graphics={Rectangle(
- visible=true,
- origin={10.0,-2.5},
- lineColor={0,0,128},
- fillColor={255,255,255},
- extent={{-90.0,-82.5},{90.0,82.5}})}),
- Documentation(info="
-
-
-Reference |
-Exponential Recovery Load, PSAT Manual 2.1.8 |
-
-
-Last update |
-September 2015 |
-
-
-Author |
-Joan Russinol, SmarTS Lab, KTH Royal Institute of Technology |
-
-
-Contact |
-luigiv@kth.se |
-
-
-"));
- end ExponentialRecovery;
-
- model FrequencyDependentLoad "Frequency Dependent Load"
- import Modelica.Constants.pi;
- extends BaseClasses.baseLoad;
- parameter Real alpha_p=0 "Active power voltage coefficient";
- parameter Real alpha_q=0 "Reactive power voltage coefficient";
- parameter Real beta_p=1.3 "Active power frequency coefficient";
- parameter Real beta_q=1.3 "Reactive power frequency coefficient";
- parameter Real Tf=0.1 "Filter time constant (s)";
- Real deltaw "Frequency deviation (pu)";
- protected
- Real a "Auxiliary variable, voltage division";
- Real x(start=0) "auxiliary variable";
- initial equation
- der(x) = 0;
- equation
- a = V/V_0;
- der(x) = -deltaw/Tf;
- 0 = x + 1/(2*pi*fn)*1/Tf*(Angle_V - angle_0) - deltaw;
- P = P_0/S_b*a^alpha_p*(1 + deltaw)^beta_p;
- Q = Q_0/S_b*a^alpha_q*(1 + deltaw)^beta_q;
- annotation (
- Icon(coordinateSystem(
- extent={{-100.0,-100.0},{100.0,100.0}},
- preserveAspectRatio=true,
- initialScale=0.1,
- grid={10,10})),
- Diagram(coordinateSystem(
- extent={{-148.5,-105.0},{148.5,105.0}},
- preserveAspectRatio=true,
- initialScale=0.1,
- grid={5,5}), graphics={Rectangle(
- visible=true,
- origin={10.0,-2.5},
- lineColor={0,0,128},
- fillColor={255,255,255},
- extent={{-90.0,-82.5},{90.0,82.5}})}),
- Documentation(info="
-
-
-Reference |
-Frequency Dependent Load, PSAT Manual 2.1.8 |
-
-
-Last update |
-September 2015 |
-
-
-Author |
-Joan Russinol, SmarTS Lab, KTH Royal Institute of Technology |
-
-
-Contact |
-luigiv@kth.se |
-
-
-"));
- end FrequencyDependentLoad;
-
- model Mixed_Load "Mixed Load"
- import Modelica.Constants.pi;
- extends BaseClasses.baseLoad;
- parameter Real Kpf=0 "Frequency coefficient for the active power (pu)";
- parameter Real alpha=0 "Voltage exponent for the active power";
- parameter Real Tpv=0.12 "Time constant of dV/dt for the active power (s)";
- parameter Real Kqf=0 "Frequency coefficient for the reactive power (pu)";
- parameter Real beta=0 "Voltage exponent for the reactive power";
- parameter Real Tqv=0.075 "Time constant of dV/dt for the reactive power (s)";
- parameter Real Tfv=0.005 "Time constant of voltage magnitude filter (s)";
- parameter Real Tft=0.007 "Time constant of voltage angle filter (s)";
- Real deltaw "Frequency deviation (pu)";
- protected
- Real a "Auxiliary variable, voltage division";
- Real b "Auxiliary variable, derivation";
- Real x(start=-V_0/Tfv);
- Real y(start=0);
- equation
- a = V/V_0;
- der(x) = ((-V/Tfv) - x)/Tfv;
- b = x + V/Tfv;
- der(y) = -1/Tft*(1/(2*pi*fn*Tft)*(Angle_V - angle_0) + y);
- deltaw = y + 1/(2*pi*fn*Tft)*(Angle_V - angle_0);
- P = Kpf*deltaw + P_0/S_b*(a^alpha + Tpv*b);
- Q = Kqf*deltaw + Q_0/S_b*(a^beta + Tqv*b);
- annotation (
- Icon(coordinateSystem(
- extent={{-100.0,-100.0},{100.0,100.0}},
- preserveAspectRatio=true,
- initialScale=0.1,
- grid={10,10})),
- Diagram(coordinateSystem(
- extent={{-148.5,-105.0},{148.5,105.0}},
- preserveAspectRatio=true,
- initialScale=0.1,
- grid={5,5})),
- Documentation(info="
-
-
-Reference |
-Mixed Load, PSAT Manual 2.1.8 |
-
-
-Last update |
-September 2015 |
-
-
-Author |
-Joan Russinol, SmarTS Lab, KTH Royal Institute of Technology |
-
-
-Contact |
-luigiv@kth.se |
-
-
-
-
-Remember: Pz+Pi+Pp=1 and Qz+Qi+Qp=1;
-"));
- end Mixed_Load;
-
- model VoltDependant "Voltage Dependent Load"
- extends BaseClasses.baseLoad;
- parameter Real alphap=2.0 "Active power exponent";
- parameter Real alphaq=2.0 "Reactive power exponent";
- protected
- Real a "Auxiliary variable, voltage division";
- equation
- a = V/V_0;
- P = P_0/S_b*a^alphap;
- Q = Q_0/S_b*a^alphaq;
- annotation (Icon(coordinateSystem(
- extent={{-100.0,-100.0},{100.0,100.0}},
- preserveAspectRatio=true,
- initialScale=0.1,
- grid={10,10})), Documentation(info="
-
-
-Reference |
-Voltage Dependent Load, PSAT Manual 2.1.8 |
-
-
-Last update |
-September 2015 |
-
-
-Author |
-Joan Russinol, SmarTS Lab, KTH Royal Institute of Technology |
-
-
-Contact |
-luigiv@kth.se |
-
-
-"));
- end VoltDependant;
-
- model ZIP "ZIP Load"
- extends BaseClasses.baseLoad;
- parameter Real Pz=0.33 "Conductance (pu)";
- parameter Real Pi=0.33 "Active current (pu)";
- parameter Real Pp=1 - Pz - Pi "Active power (pu)";
- parameter Real Qz=0.33 "Susceptance (pu)";
- parameter Real Qi=0.33 "Reactive current (pu)";
- parameter Real Qp=1 - Qz - Qi "Reactive power (pu)";
- protected
- Real a "Auxiliary variable, voltage division";
- equation
- a = V/V_0;
- P = P_0/S_b*(Pz*a^2 + Pi*a + Pp);
- Q = Q_0/S_b*(Qz*a^2 + Qi*a + Qp);
- annotation (
- Icon(coordinateSystem(
- extent={{-100.0,-100.0},{100.0,100.0}},
- preserveAspectRatio=true,
- initialScale=0.1,
- grid={10,10})),
- Diagram(coordinateSystem(
- extent={{-148.5,-105.0},{148.5,105.0}},
- preserveAspectRatio=true,
- initialScale=0.1,
- grid={5,5})),
- Documentation(info="
-
-
-Reference |
-ZIP Load, PSAT Manual 2.1.8 |
-
-
-Last update |
-September 2015 |
-
-
-Author |
-Joan Russinol, SmarTS Lab, KTH Royal Institute of Technology |
-
-
-Contact |
-luigiv@kth.se |
-
-
-"));
- end ZIP;
-
- model ZIP_Jimma "Jimma's Load"
- extends BaseClasses.baseLoad;
- parameter Real Tf=0.01 "Time constant of the high-pass filter (s)";
- parameter Real Pz=0.33 "Conductance";
- parameter Real Pi=0.33 "Active current";
- parameter Real Pp=1 - Pz - Pi "Active power";
- parameter Real Qz=0.33 "Susceptance";
- parameter Real Qi=0.33 "Reactive current";
- parameter Real Qp=1 - Qz - Qi "Reactive power";
- parameter Real Kv=100 "coefficient of the voltage time derivative (1/s)";
- protected
- Real a "Auxiliary variable, voltage division";
- Real b "Auxiliary variable, derivation";
- Real x(start=0);
- initial equation
- der(x) = 0;
- equation
- a = V/V_0;
- der(x) = ((-V/Tf) - x)/Tf;
- b = x + V/Tf;
- P = P_0/S_b*(Pz*a^2 + Pi*a + Pp);
- Q = Q_0/S_b*(Qz*a^2 + Qi*a + Qp + Kv*b);
- annotation (
- Icon(coordinateSystem(
- extent={{-100.0,-100.0},{100.0,100.0}},
- preserveAspectRatio=true,
- initialScale=0.1,
- grid={10,10})),
- Diagram(coordinateSystem(
- extent={{-148.5,-105.0},{148.5,105.0}},
- preserveAspectRatio=true,
- initialScale=0.1,
- grid={5,5})),
- Documentation(info="
-
-
-Reference |
-Jimma's Load, PSAT Manual 2.1.8 |
-
-
-Last update |
-September 2015 |
-
-
-Author |
-Joan Russinol, SmarTS Lab, KTH Royal Institute of Technology |
-
-
-Contact |
-luigiv@kth.se |
-
-
-
-
-Remember: Pz+Pi+Pp=1 and Qz+Qi+Qp=1
-"));
- end ZIP_Jimma;
-
- model ZIP_ExtInput "PSAT ZIP load with additionnal input"
- extends OpenIPSL.Electrical.Loads.PSAT.BaseClasses.baseLoad;
- parameter Real Pz=0.33 "Conductance (pu)";
- parameter Real Pi=0.33 "Active current (pu)";
- parameter Real Pp=1 - Pz - Pi "Active power (pu)";
- parameter Real Qz=0.33 "Susceptance (pu)";
- parameter Real Qi=0.33 "Reactive current (pu)";
- parameter Real Qp=1 - Qz - Qi "Reactive power (pu)";
- protected
- Real a "Auxiliary variable, voltage division";
- public
- Modelica.Blocks.Interfaces.RealInput u annotation (Placement(transformation(
- extent={{48,16},{88,56}}), iconTransformation(extent={{-100,36},{-62,
- 74}})));
-
- equation
- a = V/V_0;
- P = P_0/S_b*(Pz*a^2 + Pi*a + Pp) + u;
- Q = Q_0/S_b*(Qz*a^2 + Qi*a + Qp);
-
- annotation (
- Documentation(info="
-
-
-Reference |
-PSS/E Manual |
-
-
-Last update |
-Unknown |
-
-
-Author |
-Mengjia Zhang,SmarTS Lab, KTH Royal Institute of Technology |
-
-
-Contact |
-luigiv@kth.se |
-
-
-"));
- end ZIP_ExtInput;
-
- model LOADPQ "Constant PQ Load"
- extends BaseClasses.baseLoad;
- parameter Modelica.SIunits.PerUnit Vmax=1.2 "maximum voltage"
- annotation (Evaluate=true, Dialog(tab="To Be Implemented"));
- parameter Modelica.SIunits.PerUnit Vmin=0.8 "minimum voltage"
- annotation (Evaluate=true, Dialog(tab="To Be Implemented"));
- parameter Boolean forcePQ=true
- "force constant PQ-load, false may cause simulation problems" annotation (
- Evaluate=true,
- choices(checkBox=true),
- Dialog(tab="To Be Implemented"));
- equation
- if forcePQ or initial() then
- P = P_0/S_b;
- Q = Q_0/S_b;
- elseif (V > Vmax) then
- // needs a better implementation
- P = P_0*V^2/(Vmax^2)/S_b;
- Q = Q_0*V^2/(Vmax^2)/S_b;
- elseif (V < Vmin) then
- P = P_0*V^2/Vmin^2/S_b;
- Q = Q_0*V^2/(Vmin^2)/S_b;
- else
- P = P_0/S_b;
- Q = Q_0/S_b;
- end if;
-
- annotation (
- Icon(coordinateSystem(
- extent={{-100.0,-100.0},{100.0,100.0}},
- preserveAspectRatio=true,
- initialScale=0.1,
- grid={10,10})),
- Diagram(coordinateSystem(
- extent={{-148.5,-105.0},{148.5,105.0}},
- preserveAspectRatio=true,
- initialScale=0.1,
- grid={5,5})),
- Documentation(info="
-
-
-Reference |
-No Reference identified |
-
-
-Last update |
-September 2015 |
-
-
-Author |
-Joan Russinol, SmarTS Lab, KTH Royal Institute of Technology |
-
-
-Contact |
-luigiv@kth.se |
-
-
-
-
-Equations come from the mathematical separation in between reals and imaginary of S=P+jQ=UI*
-"));
- end LOADPQ;
-
- model LOADPQ_variation
- "Equations come from the mathematical separation in between reals and imaginary of S=P+jQ=UI*"
- extends BaseClasses.baseLoad;
- parameter Modelica.SIunits.Time t_start_1=1
- "Start time of first load variation (s)"
- annotation (Dialog(group="Variation 1"));
- parameter Modelica.SIunits.Time t_end_1=2
- "End time of first load variation (s)"
- annotation (Dialog(group="Variation 1"));
- parameter OpenIPSL.Types.ActivePowerMega dP1=0
- "First active load variation (MW)"
- annotation (Dialog(group="Variation 1"));
- parameter OpenIPSL.Types.ReactivePowerMega dQ1=0
- "First reactive load variation (Mvar)"
- annotation (Dialog(group="Variation 1"));
- parameter Modelica.SIunits.Time t_start_2=2
- "Start time of second Load variation (s)"
- annotation (Dialog(group="Variation 2"));
- parameter Modelica.SIunits.Time t_end_2=3
- "End time of second load variation (s)"
- annotation (Dialog(group="Variation 2"));
- parameter OpenIPSL.Types.ActivePowerMega dP2=0
- "Second active load variation (MW)"
- annotation (Dialog(group="Variation 2"));
- parameter OpenIPSL.Types.ReactivePowerMega dQ2=0
- "Second reactive load variation (Mvar)"
- annotation (Dialog(group="Variation 2"));
- parameter Modelica.SIunits.PerUnit Vmax=1.2 "maximum voltage (pu)"
- annotation (Evaluate=true, Dialog(tab="To Be Implemented"));
- parameter Modelica.SIunits.PerUnit Vmin=0.8 "minimum voltage (pu)"
- annotation (Evaluate=true, Dialog(tab="To Be Implemented"));
- parameter Boolean forcePQ=true
- "force ''constant'' PQ-load, false may cause simulation problems"
- annotation (
- Evaluate=true,
- choices(checkBox=true),
- Dialog(tab="To Be Implemented"));
- protected
- Modelica.SIunits.PerUnit Pd(start=P_0/S_b) "active
- power demand";
- Modelica.SIunits.PerUnit Qd(start=Q_0/S_b) "reactive power demand";
- equation
- // forcePQ=false needs better implementation
- if forcePQ or initial() then
- P = Pd;
- Q = Qd;
- elseif noEvent(V > Vmax) then
- P = Pd*V^2/(Vmax^2)/S_b;
- Q = Qd*V^2/(Vmax^2)/S_b;
- elseif noEvent(V < Vmin) then
- P = Pd*V^2/Vmin^2/S_b;
- Q = Qd*V^2/(Vmin^2)/S_b;
- else
- P = Pd;
- Q = Qd;
- end if;
- if time >= t_start_1 and time < t_end_1 then
- Pd = (P_0 + dP1)/S_b;
- Qd = (Q_0 + dQ1)/S_b;
- elseif time >= t_start_2 and time < t_end_2 then
- Pd = (P_0 + dP2)/S_b;
- Qd = (Q_0 + dQ2)/S_b;
- else
- Pd = P_0/S_b;
- Qd = Q_0/S_b;
- end if;
- annotation (
- Icon(coordinateSystem(
- extent={{-100.0,-100.0},{100.0,100.0}},
- preserveAspectRatio=true,
- initialScale=0.1,
- grid={10,10})),
- Diagram(coordinateSystem(
- extent={{-148.5,-105.0},{148.5,105.0}},
- preserveAspectRatio=true,
- initialScale=0.1,
- grid={5,5})),
- Documentation);
- end LOADPQ_variation;
-
- package BaseClasses
- partial model baseLoad
- import Modelica.Constants.pi;
- extends OpenIPSL.Electrical.Essentials.pfComponent;
- parameter OpenIPSL.Types.ApparentPowerMega Sn=S_b
- "Power rating (MVA)";
- Modelica.SIunits.PerUnit V(start=V_0) "Voltage magnitude (pu)";
- Modelica.SIunits.Angle Angle_V(start=Modelica.SIunits.Conversions.from_deg(
- angle_0)) "voltage angle (rad)";
- Modelica.SIunits.PerUnit P(start=P_0/S_b) "Active power (pu)";
- Modelica.SIunits.PerUnit Q(start=Q_0/S_b) "Reactive power (pu)";
- Interfaces.PwPin p(vr(start=V_0*cos(angle_0rad)),vi(start=V_0*sin(angle_0rad)))
- annotation (Placement(transformation(extent={{-10,90},{10,110}})));
- protected
- parameter Modelica.SIunits.Angle angle_0rad=
- Modelica.SIunits.Conversions.from_deg(angle_0);
- parameter Real CoB=Sn/S_b "Change of base between Machine and System";
- equation
- P = p.vr*p.ir + p.vi*p.ii;
- Q = p.vi*p.ir - p.vr*p.ii;
- V = sqrt(p.vr^2 + p.vi^2);
- Angle_V = atan2(p.vi, p.vr);
- annotation (Icon(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},
- {100,100}}), graphics={Line(points={{-100,100},{100,100},{0,-100},{
- -100,100}}, color={28,108,200}),Text(
- extent={{-60,80},{60,40}},
- lineColor={28,108,200},
- textString="%P_0+j%Q_0"),Text(
- extent={{-150,-110},{150,-150}},
- lineColor={0,0,255},
- textString="%name")}), Documentation);
- end baseLoad;
- annotation (Documentation);
- end BaseClasses;
- annotation (Documentation);
- end PSAT;
-
- package PSSE "Load models from PSSE components"
- model Load "PSS/E Load"
- extends BaseClasses.baseLoad;
- equation
- kI*S_I.re*v + S_Y.re*v^2 + kP*S_P.re = p.vr*p.ir + p.vi*p.ii;
- kI*S_I.im*v + S_Y.im*v^2 + kP*S_P.im = (-p.vr*p.ii) + p.vi*p.ir;
- annotation (Documentation(info="
-
-
-Reference |
-PSS/E Manual |
-
-
-Last update |
-Unknown |
-
-
-Author |
-Mengjia Zhang,SmarTS Lab, KTH Royal Institute of Technology |
-
-
-Contact |
-luigiv@kth.se |
-
-
-"));
- end Load;
-
- model Load_switch "PSS/E Load"
- extends OpenIPSL.Electrical.Loads.PSSE.BaseClasses.baseLoad;
- parameter Modelica.SIunits.Time t1 "Time of switching on";
- parameter Modelica.SIunits.Time t2 "Time of switching off";
- equation
- if time >= t1 and time < t2 then
- kI*S_I.re*v + S_Y.re*v^2 + kP*S_P.re = p.vr*p.ir + p.vi*p.ii;
- kI*S_I.im*v + S_Y.im*v^2 + kP*S_P.im = (-p.vr*p.ii) + p.vi*p.ir;
- else
- p.ir = 0;
- p.ii = 0;
- end if;
- annotation (Documentation(info="
-
-
-Reference |
-PSS/E Manual |
-
-
-Last update |
-Unknown |
-
-
-Author |
-Mengjia Zhang,SmarTS Lab, KTH Royal Institute of Technology |
-
-
-Contact |
-luigiv@kth.se |
-
-
-"));
- end Load_switch;
-
- model Load_variation "PSS/E Load with variation"
- extends BaseClasses.baseLoad;
- parameter Real d_P "Active Load Variation (pu)";
- parameter Modelica.SIunits.Time t1 "Time of Load Variation";
- parameter Modelica.SIunits.Time d_t "Time duration of load variation";
- protected
- parameter Real PF=if q0 == 0 then 1 else p0/q0;
- parameter Real d_Q=(p0 + d_P)/PF - q0;
- equation
- if time >= t1 and time <= t1 + d_t then
- kI*S_I.re*v + S_Y.re*v^2 + kP*(S_P.re + d_P) = p.vr*p.ir + p.vi*p.ii;
- kI*S_I.im*v + S_Y.im*v^2 + kP*(S_P.im + d_Q) = (-p.vr*p.ii) + p.vi*p.ir;
- else
- kI*S_I.re*v + S_Y.re*v^2 + kP*S_P.re = p.vr*p.ir + p.vi*p.ii;
- kI*S_I.im*v + S_Y.im*v^2 + kP*S_P.im = (-p.vr*p.ii) + p.vi*p.ir;
- end if;
- annotation (Documentation(info="
-
-
-Reference |
-PSS/E Manual |
-
-
-Last update |
-Unknown |
-
-
-Author |
-Mengjia Zhang,SmarTS Lab, KTH Royal Institute of Technology |
-
-
-Contact |
-luigiv@kth.se |
-
-
-"));
- end Load_variation;
-
- model Load_ExtInput "PSS/E Load with variation"
- extends OpenIPSL.Electrical.Loads.PSSE.BaseClasses.baseLoad;
- parameter Real d_P "Active Load Variation (pu)";
- parameter Modelica.SIunits.Time t1 "Time of Load Variation";
- parameter Modelica.SIunits.Time d_t "Time duration of load variation";
- protected
- parameter Real PF=if q0 == 0 then 1 else p0/q0;
- parameter Real d_Q=(p0 + d_P)/PF - q0;
- public
- Modelica.Blocks.Interfaces.RealInput u annotation (Placement(transformation(
- extent={{48,16},{88,56}}), iconTransformation(extent={{-100,36},{-62,
- 74}})));
- equation
- if time >= t1 and time <= t1 + d_t then
- kI*S_I.re*v + S_Y.re*v^2 + kP*(S_P.re + d_P) + u = p.vr*p.ir + p.vi*p.ii;
- kI*S_I.im*v + S_Y.im*v^2 + kP*(S_P.im + d_Q) = (-p.vr*p.ii) + p.vi*p.ir;
- else
- kI*S_I.re*v + S_Y.re*v^2 + kP*S_P.re + u = p.vr*p.ir + p.vi*p.ii;
- kI*S_I.im*v + S_Y.im*v^2 + kP*S_P.im = (-p.vr*p.ii) + p.vi*p.ir;
- end if;
- annotation (
- Documentation(info="
-
-
-Reference |
-PSS/E Manual |
-
-
-Last update |
-Unknown |
-
-
-Author |
-Mengjia Zhang,SmarTS Lab, KTH Royal Institute of Technology |
-
-
-Contact |
-luigi.vanfretti@gmail.com |
-
-
-"));
- end Load_ExtInput;
-
- package BaseClasses
- partial model baseLoad
- import Modelica.Constants.pi;
- import Modelica.ComplexMath.j;
- extends OpenIPSL.Electrical.Essentials.pfComponent;
- parameter Complex S_p=P_0 + j*Q_0
- "Consumption of original constant power load (MVA)";
- parameter Complex S_i=0 + j*0
- "Consumption of original constant current load (MVA)";
- parameter Complex S_y=0 + j*0
- "Consumption of original constant shunt admittance load (MVA)";
- parameter Complex a=1 + j*0
- "Load transfer fraction for constant current load";
- parameter Complex b=0 + j*1
- "Load transfer fraction for constant shunt admittance load";
- parameter Real PQBRAK=0.7 "Constant power characteristic threshold";
- parameter Integer characteristic=1 annotation (choices(choice=1, choice=2));
- OpenIPSL.Interfaces.PwPin p(
- vr(start=vr0),
- vi(start=vi0),
- ir(start=ir0),
- ii(start=ii0)) annotation (Placement(transformation(extent={{-10,
- 90},{10,110}})));
- Modelica.SIunits.Angle angle(start=anglev_rad) "Bus voltage angle";
- Real v(start=V_0) "Bus voltage magnitude (pu)";
- Real P "Active power consumption (pu)";
- Real Q "Reactive power consumption (pu)";
- protected
- parameter Modelica.SIunits.Angle anglev_rad=angle_0*pi/180;
- parameter Real p0=(S_i.re*V_0 + S_y.re*V_0^2 + S_p.re)/S_b "pu";
- parameter Real q0=(S_i.im*V_0 + S_y.im*V_0^2 + S_p.im)/S_b "pu";
- parameter Real vr0=V_0*cos(anglev_rad) "Initialitation";
- parameter Real vi0=V_0*sin(anglev_rad) "Initialitation";
- parameter Real ir0=(p0*vr0 + q0*vi0)/(vr0^2 + vi0^2) "Initialitation";
- parameter Real ii0=(p0*vi0 - q0*vr0)/(vr0^2 + vi0^2) "Initialitation";
- parameter Complex S_P=Complex((1 - a.re - b.re)*S_p.re, (1 - a.im - b.im)*S_p.im)
- /S_b "pu";
- parameter Complex S_I=(S_i + Complex(a.re*S_p.re/V_0, a.im*S_p.im/V_0))/S_b
- "pu";
- parameter Complex S_Y=(S_y + Complex(b.re*S_p.re/V_0^2, b.im*S_p.im/V_0^2))/
- S_b "pu";
- //Constant current load vary function when voltage is below 0.5
- parameter Real a2=1.502;
- parameter Real b2=1.769;
- //Constant Power load vary function when voltage is below 0.5
- parameter Real a0=0.4881;
- parameter Real a1=-0.4999;
- parameter Real b1=0.1389;
- parameter Real wp=3.964;
- protected
- Real kP(start=1);
- Real kI(start=1);
- equation
- P = p.vr*p.ir + p.vi*p.ii;
- Q = (-p.vr*p.ii) + p.vi*p.ir;
- angle = atan2(p.vi, p.vr);
- v = sqrt(p.vr^2 + p.vi^2);
- //Voltage dependancy characteristic
- if characteristic == 1 then
- if v < PQBRAK/2 and v > 0 then
- kP = 2*(v/PQBRAK)^2;
- kI = 1;
- elseif v > PQBRAK/2 and v < PQBRAK then
- kP = 1 - 2*((v - PQBRAK)/PQBRAK)^2;
- kI = 1;
- else
- kP = 1;
- kI = 1;
- end if;
- else
- if v < PQBRAK then
- kP = a0 + a1*cos(v*wp) + b1*sin(v*wp);
- else
- kP = 1;
- end if;
- if v < 0.5 then
- kI = a2*b2*v^(b2 - 1)*exp(-a2*v^b2);
- else
- kI = 1;
- end if;
- end if;
- annotation (Icon(coordinateSystem(
- preserveAspectRatio=false,
- extent={{-100,-100},{100,100}},
- initialScale=0.1), graphics={Line(points={{-100,100},{100,100},{0,-100},
- {-100,100}}, color={28,108,200}),Text(
- extent={{-60,80},{60,40}},
- lineColor={28,108,200},
- textString="%P_0+j%Q_0"),Text(
- extent={{-150,-110},{150,-150}},
- lineColor={0,0,255},
- textString="%name")}), Documentation);
- end baseLoad;
- annotation (Documentation);
- end BaseClasses;
- annotation (Documentation);
- end PSSE;
-
- package NoiseInjections "Noise injection models"
-
- partial model BaseClass
-
- // Parameters to be used by the nois generators
- parameter Real active_mu=0 "Expectation value active power noise";
- parameter Real active_sigma=0.01 "Standard deviation active power noise";
-
- parameter Real samplePeriod=0.02 "Sample period";
-
- Modelica.Blocks.Noise.NormalNoise noise_gen(
- mu=active_mu,
- samplePeriod=samplePeriod,
- sigma=active_sigma) annotation (Placement(visible=true, transformation(
- origin={20,62},
- extent={{-10,-10},{10,10}},
- rotation=0)));
- Modelica.Blocks.Interfaces.RealOutput y annotation (Placement(transformation(
- extent={{40,0},{64,24}}), iconTransformation(extent={{96,-14},{122,12}})));
- annotation (Icon(graphics={Ellipse(
- fillColor={255,255,255},
- fillPattern=FillPattern.Solid,
- extent={{-100,100},{100,-100}},
- endAngle=360),Line(
- origin={30,0},
- points={{-100,0},{-80,0},{-70,40},{-60,-20},{-50,20},{-28,-40},{-10,
- 40},{0,-20},{12,20},{20,0},{40,0},{40,0}},
- thickness=2)}));
- end BaseClass;
-
- model WhiteNoiseInjection
- extends BaseClass(noise_gen(startTime=0.1));
-
- equation
- y = noise_gen.y;
- annotation ();
- end WhiteNoiseInjection;
-
- model WienerProcessInjection
- extends BaseClass;
-
- initial equation
- y = 0;
-
- equation
- der(y) = noise_gen.y;
- end WienerProcessInjection;
-
- model SineNoiseInjection
- extends BaseClass;
- parameter Real amplitude=1 "Amplitude of sine wave";
- parameter Modelica.SIunits.Frequency freqHz(start=1) "Frequency of sine wave";
- parameter Modelica.SIunits.Angle phase=0 "Phase of sine wave";
- parameter Real offset=0 "Offset of output signal";
- parameter Modelica.SIunits.Time startTime=0
- "Output = offset for time < startTime";
-
- Modelica.Blocks.Sources.Sine sine(
- amplitude=amplitude,
- freqHz=freqHz,
- phase=phase,
- offset=offset,
- startTime=startTime)
- annotation (Placement(transformation(extent={{10,12},{30,32}})));
- equation
- y = noise_gen.y + sine.y;
- end SineNoiseInjection;
- annotation ();
- end NoiseInjections;
- annotation (Documentation);
- end Loads;
-
- package Banks
- model PwCapacitorBankWithModification "Capacitor Bank with Bank modification at time t1.
- 2014/03/10"
- OpenIPSL.Interfaces.PwPin p
- annotation (Placement(transformation(extent={{-10,90},{10,110}})));
- parameter Real nsteps "number of steps";
- parameter Real Go "active losses (pu) in each element";
- parameter Real Bo "reactive power (pu) in each element";
- parameter Real t1 "time for Bank Modification";
- parameter Real nmod "number of step to switch on/off (+/-)";
- Real G;
- Real B;
- Real nt;
- equation
- if time > t1 then
- nt = nsteps + nmod;
- else
- nt = nsteps;
- end if;
- G = nt*Go;
- B = nt*Bo;
- p.vr = (p.ir*G + p.ii*B)/(G*G + B*B);
- p.vi = ((-p.ir*B) + p.ii*G)/(G*G + B*B);
- annotation (Icon(graphics={Rectangle(extent={{-100,100},{100,-100}},
- lineColor={0,0,255}),Line(
- points={{0,90},{0,60}},
- color={0,0,255},
- smooth=Smooth.None),Line(
- points={{-60,60},{60,60}},
- color={0,0,255},
- smooth=Smooth.None),Line(
- points={{-60,40},{60,40}},
- color={0,0,255},
- smooth=Smooth.None),Line(
- points={{-60,-60},{60,-60}},
- color={0,0,255},
- smooth=Smooth.None),Line(
- points={{-68,-80},{-48,-60}},
- color={0,0,255},
- smooth=Smooth.None),Line(
- points={{-50,-80},{-30,-60}},
- color={0,0,255},
- smooth=Smooth.None),Line(
- points={{-30,-80},{-10,-60}},
- color={0,0,255},
- smooth=Smooth.None),Line(
- points={{-10,-80},{10,-60}},
- color={0,0,255},
- smooth=Smooth.None),Line(
- points={{12,-80},{32,-60}},
- color={0,0,255},
- smooth=Smooth.None),Line(
- points={{30,-80},{50,-60}},
- color={0,0,255},
- smooth=Smooth.None),Line(
- points={{-60,-20},{60,-20}},
- color={0,0,255},
- smooth=Smooth.None),Line(
- points={{-60,0},{60,0}},
- color={0,0,255},
- smooth=Smooth.None),Line(
- points={{0,40},{0,0}},
- color={0,0,255},
- smooth=Smooth.None),Line(
- points={{0,-20},{0,-60}},
- color={0,0,255},
- smooth=Smooth.None),Text(
- extent={{-100,-100},{100,-140}},
- lineColor={0,0,255},
- textString="%name")}), Documentation);
- end PwCapacitorBankWithModification;
-
- model PwCapacitorBank "Capacitor Bank with Bank.2013"
- OpenIPSL.Interfaces.PwPin p
- annotation (Placement(transformation(extent={{-10,90},{10,110}})));
- parameter Real nsteps "number of steps";
- parameter Real G=0;
- parameter Real B=0;
- equation
- p.vr = (p.ir*G + p.ii*B)/(G*G + B*B);
- p.vi = ((-p.ir*B) + p.ii*G)/(G*G + B*B);
- annotation (Icon(graphics={Rectangle(extent={{-100,100},{100,-100}},
- lineColor={0,0,255}),Line(
- points={{0,90},{0,60}},
- color={0,0,255},
- smooth=Smooth.None),Line(
- points={{-60,60},{60,60}},
- color={0,0,255},
- smooth=Smooth.None),Line(
- points={{-60,40},{60,40}},
- color={0,0,255},
- smooth=Smooth.None),Line(
- points={{-60,-60},{60,-60}},
- color={0,0,255},
- smooth=Smooth.None),Line(
- points={{-68,-80},{-48,-60}},
- color={0,0,255},
- smooth=Smooth.None),Line(
- points={{-50,-80},{-30,-60}},
- color={0,0,255},
- smooth=Smooth.None),Line(
- points={{-30,-80},{-10,-60}},
- color={0,0,255},
- smooth=Smooth.None),Line(
- points={{-10,-80},{10,-60}},
- color={0,0,255},
- smooth=Smooth.None),Line(
- points={{12,-80},{32,-60}},
- color={0,0,255},
- smooth=Smooth.None),Line(
- points={{30,-80},{50,-60}},
- color={0,0,255},
- smooth=Smooth.None),Line(
- points={{-60,-20},{60,-20}},
- color={0,0,255},
- smooth=Smooth.None),Line(
- points={{-60,0},{60,0}},
- color={0,0,255},
- smooth=Smooth.None),Line(
- points={{0,40},{0,0}},
- color={0,0,255},
- smooth=Smooth.None),Line(
- points={{0,-20},{0,-60}},
- color={0,0,255},
- smooth=Smooth.None),Text(
- extent={{-100,-100},{100,-140}},
- lineColor={0,0,255},
- textString="%name")}), Documentation);
- end PwCapacitorBank;
-
- model PwShuntC "Shunt capacitor"
- OpenIPSL.Interfaces.PwPin p
- annotation (Placement(transformation(extent={{-10,90},{10,110}})));
- constant Real pi=Modelica.Constants.pi;
- parameter Real Qnom
- "Reactive power produced by the shunt capacitor under 1 p.u voltage, Mvar";
- parameter Real Vbase "Base voltage of the bus, kV";
- parameter Real fn=50 "Frequency rating, Hz";
- Real Zbase;
- Real C "Capacitance in p.u";
- Real v;
- Real anglev;
- Real i;
- Real anglei;
- equation
- v = sqrt(p.vr^2 + p.vi^2);
- anglev = atan2(p.vi, p.vr);
- i = sqrt(p.ir^2 + p.ii^2);
- anglei = atan2(p.ii, p.ir);
- Zbase = Vbase^2/Qnom;
- C = Qnom/(Vbase^2*2*pi*fn*Zbase) "S=U*I";
- anglei = anglev + pi/2;
- i = v*2*pi*fn*C "I=U/Z";
- annotation (Icon(coordinateSystem(extent={{-100,-100},{100,100}},
- initialScale=0.1), graphics={Rectangle(extent={{-100,100},{100,-100}},
- lineColor={0,0,255}),Line(
- points={{0,90},{0,10}},
- color={0,0,255},
- smooth=Smooth.None),Line(
- points={{-60,10},{60,10}},
- color={0,0,255},
- smooth=Smooth.None),Line(
- points={{-60,-10},{60,-10}},
- color={0,0,255},
- smooth=Smooth.None),Line(
- points={{-60,-60},{60,-60}},
- color={0,0,255},
- smooth=Smooth.None),Line(
- points={{-68,-80},{-48,-60}},
- color={0,0,255},
- smooth=Smooth.None),Line(
- points={{-50,-80},{-30,-60}},
- color={0,0,255},
- smooth=Smooth.None),Line(
- points={{-30,-80},{-10,-60}},
- color={0,0,255},
- smooth=Smooth.None),Line(
- points={{-10,-80},{10,-60}},
- color={0,0,255},
- smooth=Smooth.None),Line(
- points={{12,-80},{32,-60}},
- color={0,0,255},
- smooth=Smooth.None),Line(
- points={{30,-80},{50,-60}},
- color={0,0,255},
- smooth=Smooth.None),Line(points={{0,-60},{0,-10}}, color={0,0,255}),
- Text(
- extent={{-100,-100},{100,-140}},
- lineColor={0,0,255},
- textString="%name")}), Documentation);
- end PwShuntC;
-
- model PwShuntR "Shunt inductor"
- OpenIPSL.Interfaces.PwPin p
- annotation (Placement(transformation(extent={{-10,90},{10,110}})));
- constant Real pi=Modelica.Constants.pi;
- parameter Real Qnom=75
- "Reactive power produced by the shunt inductor under 1 p.u voltage, -Mvar";
- parameter Real Vbase=138 "Base volatage of the bus, kV";
- parameter Real fn=50 "Frequency rating, Hz";
- Real Zbase;
- Real L "Inductance in p.u";
- Real v;
- Real anglev;
- Real i;
- Real anglei;
- equation
- v = sqrt(p.vr^2 + p.vi^2);
- anglev = atan2(p.vi, p.vr);
- i = sqrt(p.ir^2 + p.ii^2);
- anglei = atan2(p.ii, p.ir);
- Zbase = Vbase^2/(-Qnom);
- L = Vbase^2/(2*pi*fn*(-Qnom)*Zbase) "S=U*I";
- anglei = anglev - pi/2;
- i = v/(2*pi*fn*L) "I=U/Z";
- annotation (Icon(coordinateSystem(extent={{-100,-100},{100,100}},
- initialScale=0.1), graphics={Rectangle(extent={{-100,100},{100,-100}},
- lineColor={0,0,255}),Line(
- points={{-15.5,-9},{-15.5,-1},{-11.5,7},{-3.5,11},{6.5,9},{12.5,1},{
- 12.5,-9}},
- color={0,0,255},
- smooth=Smooth.Bezier,
- origin={-9,59.5},
- rotation=90),Line(
- points={{-15.5,-9},{-15.5,-1},{-11.5,7},{-3.5,11},{6.5,9},{12.5,1},{
- 12.5,-9}},
- color={0,0,255},
- smooth=Smooth.Bezier,
- origin={-9,31.5},
- rotation=90),Line(
- points={{-15.5,-9},{-15.5,-1},{-11.5,7},{-3.5,11},{6.5,9},{12.5,1},{
- 12.5,-9}},
- color={0,0,255},
- smooth=Smooth.Bezier,
- origin={-9,3.5},
- rotation=90),Line(
- points={{-15.5,-9},{-15.5,-1},{-11.5,7},{-3.5,11},{6.5,9},{12.5,1},{
- 12.5,-9}},
- color={0,0,255},
- smooth=Smooth.Bezier,
- origin={-9,-24.5},
- rotation=90),Line(
- points={{-60,-60},{60,-60}},
- color={0,0,255},
- smooth=Smooth.None),Line(
- points={{-68,-80},{-48,-60}},
- color={0,0,255},
- smooth=Smooth.None),Line(
- points={{-50,-80},{-30,-60}},
- color={0,0,255},
- smooth=Smooth.None),Line(
- points={{-30,-80},{-10,-60}},
- color={0,0,255},
- smooth=Smooth.None),Line(
- points={{-10,-80},{10,-60}},
- color={0,0,255},
- smooth=Smooth.None),Line(
- points={{12,-80},{32,-60}},
- color={0,0,255},
- smooth=Smooth.None),Line(
- points={{30,-80},{50,-60}},
- color={0,0,255},
- smooth=Smooth.None),Line(points={{0,72},{0,100}}, color={0,0,255}),
- Line(points={{0,-60},{0,-40}}, color={0,0,255}),Text(
- extent={{-100,-100},{100,-140}},
- lineColor={0,0,255},
- textString="%name")}), Documentation);
- end PwShuntR;
-
- model PwShunt "Thyristor controlled Shunt reactor/capacitor"
- OpenIPSL.Interfaces.PwPin p
- annotation (Placement(transformation(extent={{-10,90},{10,110}})));
- Modelica.Blocks.Interfaces.RealInput Q
- "Reactive power produced by the shunt (pu)"
- annotation (Placement(transformation(extent={{-120,-10},{-100,10}})));
- constant Real pi=Modelica.Constants.pi;
- parameter Real fn=50 "Frequency rating, Hz";
- Real C "Capacitance in p.u";
- Real L "Inductance in p.u";
- Real v;
- Real anglev;
- Real i;
- Real anglei;
- equation
- v = sqrt(p.vr^2 + p.vi^2);
- anglev = atan2(p.vi, p.vr);
- i = sqrt(p.ir^2 + p.ii^2);
- anglei = atan2(p.ii, p.ir);
- if Q >= 0 then
- C = Q/(v^2*2*pi*fn);
- L = 0;
- anglei = anglev + pi/2;
- i = v*2*pi*fn*C;
- else
- L = v^2/(2*pi*fn*(-Q));
- C = 0;
- anglei = anglev - pi/2;
- i = v/(2*pi*fn*L);
- end if;
- //p.u
- //p.u
- annotation (Icon(coordinateSystem(extent={{-100,-100},{100,100}},
- initialScale=0.1), graphics={Rectangle(extent={{-100,100},{100,-100}},
- lineColor={0,0,255}),Text(
- extent={{-94,8},{-84,-6}},
- lineColor={0,0,255},
- fillColor={255,255,255},
- fillPattern=FillPattern.Solid,
- textString="Q"),Line(
- points={{-15.5,-9},{-15.5,-1},{-11.5,7},{-3.5,11},{6.5,9},{12.5,1},{
- 12.5,-9}},
- color={0,0,255},
- smooth=Smooth.Bezier,
- origin={51,49.5},
- rotation=90),Line(
- points={{-15.5,-9},{-15.5,-1},{-11.5,7},{-3.5,11},{6.5,9},{12.5,1},{
- 12.5,-9}},
- color={0,0,255},
- smooth=Smooth.Bezier,
- origin={51,21.5},
- rotation=90),Line(
- points={{-15.5,-9},{-15.5,-1},{-11.5,7},{-3.5,11},{6.5,9},{12.5,1},{
- 12.5,-9}},
- color={0,0,255},
- smooth=Smooth.Bezier,
- origin={51,-6.5},
- rotation=90),Line(
- points={{-15.5,-9},{-15.5,-1},{-11.5,7},{-3.5,11},{6.5,9},{12.5,1},{
- 12.5,-9}},
- color={0,0,255},
- smooth=Smooth.Bezier,
- origin={51,-34.5},
- rotation=90),Line(points={{-80,-30},{-20,-30}}, color={0,0,255}),Line(
- points={{-70,-70},{-30,-70}}, color={0,0,255}),Line(points={{-60,-80},
- {-40,-80}}, color={0,0,255}),Line(points={{-80,-20},{-20,-20}}, color=
- {0,0,255}),Line(points={{-80,0},{-20,0}}, color={0,0,255}),Line(
- points={{-80,10},{-20,10}}, color={0,0,255}),Line(points={{-80,30},{-20,
- 30}}, color={0,0,255}),Line(points={{-80,40},{-20,40}}, color={0,0,
- 255}),Line(points={{40,-70},{80,-70}}, color={0,0,255}),Line(points={
- {50,-80},{70,-80}}, color={0,0,255}),Line(points={{-50,30},{-50,10}},
- color={0,0,255}),Line(points={{-50,0},{-50,-20}}, color={0,0,255}),
- Line(points={{-50,-30},{-50,-70}}, color={0,0,255}),Line(points={{60,
- -50},{60,-70}}, color={0,0,255}),Line(points={{-50,40},{-50,80},{0,80},
- {0,100}}, color={0,0,255}),Line(points={{60,62},{60,80},{0,80}},
- color={0,0,255}),Text(
- extent={{-100,-100},{100,-140}},
- lineColor={0,0,255},
- textString="%name")}), Documentation);
- end PwShunt;
-
- model PwShuntB
- parameter Real B "(pu) on system base";
- Complex I;
- Complex V;
- Real v;
- Complex S;
- OpenIPSL.Interfaces.PwPin p
- annotation (Placement(transformation(extent={{-10,88},{10,108}})));
- equation
- v = sqrt(p.vr^2 + p.vi^2);
- I = Complex(p.ir, p.ii);
- V = Complex(p.vr, p.vi);
- I = Complex(0, B)*V;
- S = Complex(p.vr, p.vi)*Complex(p.ir, -p.ii);
- annotation (
- Icon(graphics={Rectangle(extent={{-100,100},{100,-100}},
- lineColor={0,0,255}),Text(
- extent={{-60,60},{60,-60}},
- lineColor={0,0,255},
- textStyle={TextStyle.Bold},
- textString="jB")}));
- end PwShuntB;
-
- package PSSE
- package SVC
- model SVC "On bus 10106 & 10114"
- OpenIPSL.Interfaces.PwPin VIB
- "Voltage signal connected to stepdown transformer (pu)"
- annotation (Placement(transformation(extent={{-110,-10},{-90,10}})));
- Modelica.Blocks.Sources.Constant imSetPoint(k=Vref)
- annotation (Placement(transformation(extent={{-76,20},{-64,32}})));
- Modelica.Blocks.Sources.Constant imSetPoint1(k=Bref)
- annotation (Placement(transformation(extent={{-52,20},{-38,34}})));
- OpenIPSL.NonElectrical.Continuous.LeadLag imLeadLag(
- K=K,
- T1=T1,
- T2=T3,
- y_start=init_SVC_Leadlag)
- annotation (Placement(transformation(extent={{-6,0},{10,16}})));
- OpenIPSL.NonElectrical.Continuous.LeadLag imLeadLag1(
- K=1,
- T1=T2,
- T2=T4,
- y_start=init_SVC_Leadlag)
- annotation (Placement(transformation(extent={{18,0},{34,16}})));
- Modelica.Blocks.Nonlinear.Limiter imLimited(uMin=Vmin, uMax=Vmax)
- annotation (Placement(transformation(extent={{42,0},{58,16}})));
- NonElectrical.Continuous.SimpleLagLim imLimitedSimpleLag(
- K=1,
- T=T5,
- outMin=Mvar_C,
- y_start=init_SVC_Lag,
- outMax=Mvar_R)
- annotation (Placement(transformation(extent={{66,0},{82,16}})));
- OpenIPSL.Electrical.Banks.PwShunt shunt annotation (Placement(
- transformation(extent={{80,-40},{100,-20}})));
- OpenIPSL.NonElectrical.Logical.Relay3 imRelay annotation (
- Placement(transformation(extent={{30,-40},{50,-20}})));
- Modelica.Blocks.Sources.Constant Q_capacitors(k=Mvar_C) "If Verr>Vov"
- annotation (Placement(transformation(extent={{-20,-20},{-10,-10}})));
- Modelica.Blocks.Sources.Constant Q_Reactors(k=Mvar_R) "If Verr<-Vov"
- annotation (Placement(transformation(extent={{-20,-38},{-10,-28}})));
- Modelica.Blocks.Math.Gain imGain(k=1/Sbase)
- annotation (Placement(transformation(extent={{60,-36},{72,-24}})));
- parameter Real Vref "Reference voltage (pu)";
- parameter Real Bref "Reference susceptance (pu)";
- parameter Real K=150 "Steady-state gain";
- parameter Real T1 "Time constant (s)";
- parameter Real T2 "Time constant (s)";
- parameter Real T3 "Time constant (s)";
- parameter Real T4 "Time constant (s)";
- parameter Real T5=0.03 "Time constant of thyristor bridge (s)";
- parameter Real Vmax;
- parameter Real Vmin;
- parameter Real Vov=0.5 "Override voltage (pu)";
- parameter Real Sbase "Base power of the bus (MVA)";
- parameter Real init_SVC_Leadlag "Initial value";
- parameter Real init_SVC_Lag "Initial value";
- parameter Real OtherSignals;
- parameter Real Mvar_C=100
- "Total compensation capacity of shunt capacitor, 100(10106)/200(10114) MVar";
- parameter Real Mvar_R=-50
- "Total compensation capacity of shunt reactor, MVar";
- Modelica.Blocks.Sources.Constant imSetPoint2(k=OtherSignals)
- annotation (Placement(transformation(extent={{-52,-20},{-40,-8}})));
- OpenIPSL.Electrical.Sensors.PwVoltage absoluteVoltage annotation
- (Placement(transformation(extent={{-82,-8},{-66,8}})));
- Modelica.Blocks.Math.Add add(k1=1, k2=-1)
- annotation (Placement(transformation(extent={{-58,0},{-46,12}})));
- Modelica.Blocks.Math.Add3 add3_1(k1=-1, k3=-1)
- annotation (Placement(transformation(extent={{-24,2},{-12,14}})));
- equation
- connect(VIB, absoluteVoltage.p) annotation (Line(
- points={{-100,0},{-82,0}},
- color={0,0,255},
- smooth=Smooth.None));
- connect(shunt.p, VIB) annotation (Line(
- points={{90,-20},{90,50},{-94,50},{-94,0},{-100,0}},
- color={0,0,255},
- smooth=Smooth.None));
- connect(imRelay.y, imGain.u) annotation (Line(points={{51.5,-30},{51.5,-30},{
- 58.8,-30}}, color={0,0,127}));
- connect(shunt.Q, imGain.y)
- annotation (Line(points={{79,-30},{79,-30},{72.6,-30}}, color={0,0,127}));
- connect(imLimitedSimpleLag.y, imRelay.u2) annotation (Line(points={{82.8,8},{
- 86,8},{86,-16},{20,-16},{20,-22.5},{28,-22.5}}, color={0,0,127}));
- connect(imLimited.y, imLimitedSimpleLag.u)
- annotation (Line(points={{58.8,8},{60,8},{64.4,8}}, color={0,0,127}));
- connect(imLeadLag1.y, imLimited.u)
- annotation (Line(points={{34.8,8},{34.8,8},{40.4,8}}, color={0,0,127}));
- connect(imLeadLag.y, imLeadLag1.u)
- annotation (Line(points={{10.8,8},{16.4,8}}, color={0,0,127}));
- connect(Q_Reactors.y, imRelay.u4) annotation (Line(points={{-9.5,-33},{28,-33},
- {28,-32.5}}, color={0,0,127}));
- connect(Q_capacitors.y, imRelay.u3) annotation (Line(points={{-9.5,-15},{0,-15},
- {0,-27.5},{28,-27.5}}, color={0,0,127}));
- connect(add.u2, absoluteVoltage.v) annotation (Line(points={{-59.2,2.4},{-62,
- 2.4},{-62,-4.8},{-65.2,-4.8}}, color={0,0,127}));
- connect(imSetPoint.y, add.u1) annotation (Line(points={{-63.4,26},{-59.2,26},
- {-59.2,9.6}}, color={0,0,127}));
- connect(add3_1.y, imLeadLag.u)
- annotation (Line(points={{-11.4,8},{-10.65,8},{-7.6,8}}, color={0,0,127}));
- connect(imSetPoint2.y, add3_1.u3) annotation (Line(points={{-39.4,-14},{-34,-14},
- {-34,3.2},{-25.2,3.2}}, color={0,0,127}));
- connect(imSetPoint1.y, add3_1.u1) annotation (Line(points={{-37.3,27},{-34,27},
- {-34,12.8},{-25.2,12.8}}, color={0,0,127}));
- connect(add.y, add3_1.u2)
- annotation (Line(points={{-45.4,6},{-25.2,6},{-25.2,8}}, color={0,0,127}));
- connect(imRelay.u1, add3_1.u2) annotation (Line(points={{28,-37.5},{0,-37.5},
- {0,-46},{-36,-46},{-36,8},{-25.2,8}}, color={0,0,127}));
- annotation (
- Diagram(coordinateSystem(initialScale=0.1), graphics={Text(
- extent={{-44,16},{-34,12}},
- lineColor={255,0,0},
- textString="Verr"),Text(
- extent={{-82,28},{-58,24}},
- lineColor={255,0,0},
- textString="Vref"),Text(
- extent={{-50,38},{-42,42}},
- lineColor={255,0,0},
- textString="Bref"),Text(
- extent={{-80,-14},{-68,-20}},
- lineColor={255,0,0},
- textString="|VB|")}),
- Icon(coordinateSystem(initialScale=0.1), graphics={Rectangle(extent={{-100,
- 100},{100,-100}}, lineColor={0,0,255}),Text(
- extent={{-20,-60},{20,-100}},
- lineColor={0,0,255},
- fillColor={0,0,255},
- fillPattern=FillPattern.Solid,
- textString="SVC"),Line(
- points={{38,60},{18,40},{8,0},{18,-40},{40,-60}},
- color={0,0,255},
- smooth=Smooth.Bezier),Line(
- points={{-10,60},{-10,-60}},
- color={0,0,255},
- smooth=Smooth.Bezier),Line(
- points={{-100,0},{-10,0}},
- color={0,0,255},
- smooth=Smooth.Bezier),Line(points={{50,-40},{90,-40}}, color={0,0,255}),
- Line(points={{60,-50},{80,-50}}, color={0,0,255}),Line(points={{10,0},
- {70,0},{70,-40}}, color={0,0,255})}),
- Documentation);
- end SVC;
- annotation (Documentation);
- end SVC;
-
- model Shunt
- parameter Real G "(p.u.) on system base";
- parameter Real B "(p.u.) on system base";
- Complex I;
- Complex V;
- Real v;
- Complex S;
- OpenIPSL.Interfaces.PwPin p annotation (Placement(transformation(
- extent={{-10,90},{10,110}})));
- equation
- v = sqrt(p.vr^2 + p.vi^2);
- I = Complex(p.ir, p.ii);
- V = Complex(p.vr, p.vi);
- I = Complex(G, B)*V;
- S = Complex(p.vr, p.vi)*Complex(p.ir, -p.ii);
- annotation (Documentation(info="
-Shunt model from Nordic44 system developed by Giuseppe.
-"),Icon(graphics={Rectangle(extent={{-100,
- 100},{100,-100}}, lineColor={0,0,255}),Text(
- extent={{-60,60},{60,-80}},
- lineColor={0,0,255},
- textStyle={TextStyle.Bold},
- textString="Y")}));
- end Shunt;
-
- model CSVGN1 "STATC SHUNT COMPENSATOR MODEL"
- constant Real pi=Modelica.Constants.pi;
- parameter Real K;
- parameter Real T1;
- parameter Real T2;
- parameter Real T3;
- parameter Real T4;
- parameter Real T5;
- parameter Real RMIN=0 "Reactor minmum MVAr output";
- parameter Real VMAX;
- parameter Real VMIN;
- parameter Real CBASE=100 "Capacitor MVAr output";
- parameter Real MBASE=100 "MVAr range of SVC";
- parameter Real SBASE=100;
- parameter Real ra=0 "amature resistance";
- parameter Real x1d=1
- "d-axis transient reactance, p.u., should be set to 9999";
- parameter Real v0 "init. voltage at terminal bus";
- parameter Real anglev0 "init voltage angle in degree";
- parameter Real Vc0 "init. voltage at controlled bus";
- parameter Real Psh "Active power MW";
- parameter Real Qsh "Reactive power Mvar";
- Real v(start=v0) "Bus voltage magnitude";
- Real anglev(start=anglev_rad) " Bus voltage angle";
- //Real pe "electric power";
- Real P;
- Real Q;
- Real vd(start=vd0) "voltage direct axis";
- Real vq(start=vq0) "voltage quadrature axis";
- Real id(start=id0) "current direct axis";
- Real iq(start=iq0) "current quadrature axis";
- Modelica.Blocks.Math.Product product1
- annotation (Placement(transformation(extent={{36,-10},{56,10}})));
- Modelica.Blocks.Math.Add add(k2=-1)
- annotation (Placement(transformation(extent={{70,-10},{90,10}})));
- Modelica.Blocks.Interfaces.RealOutput Y(start=Y0)
- annotation (Placement(transformation(extent={{100,-10},{120,10}})));
- Modelica.Blocks.Interfaces.RealInput V
- annotation (Placement(transformation(extent={{-140,-20},{-100,20}})));
- Modelica.Blocks.Math.Add add1(k1=-1)
- annotation (Placement(transformation(extent={{-70,-10},{-50,10}})));
- Modelica.Blocks.Sources.Constant const(k=MBASE/SBASE)
- annotation (Placement(transformation(extent={{-40,30},{-20,50}})));
- Modelica.Blocks.Sources.Constant const1(k=CBASE/SBASE)
- annotation (Placement(transformation(extent={{30,30},{50,50}})));
- OpenIPSL.NonElectrical.Continuous.SimpleLagLim ImSimpleLagnonwinduplimit(
- outMin=VMIN,
- outMax=VMAX,
- T=T3,
- K=K,
- y_start=k30) annotation (Placement(transformation(extent={{-40,-10},
- {-20,10}})));
- Modelica.Blocks.Sources.Constant const2(k=Vref)
- annotation (Placement(transformation(extent={{-100,10},{-80,30}})));
- Modelica.Blocks.Nonlinear.Limiter imLimited(uMin=0, uMax=1)
- annotation (Placement(transformation(extent={{-10,-10},{10,10}})));
- OpenIPSL.Interfaces.PwPin p(
- vr(start=vr0),
- vi(start=vi0),
- ir(start=ir0),
- ii(start=ii0)) annotation (Placement(transformation(extent={{-10,
- 90},{10,110}})));
- protected
- parameter Real p0=Psh/SBASE "Active power p.u. on system base";
- parameter Real q0=Qsh/SBASE "Reactive power p.u. on system base";
- parameter Real anglev_rad=anglev0*pi/180;
- parameter Real Y0=q0/(v0*v0) "Capacitor output";
- parameter Real vr0=v0*cos(anglev_rad) "Initialitation";
- parameter Real vi0=v0*sin(anglev_rad) "Initialitation";
- parameter Real ir0=(p0*vr0 + q0*vi0)/(vr0^2 + vi0^2) "Initialitation";
- parameter Real ii0=(p0*vi0 - q0*vr0)/(vr0^2 + vi0^2) "Initialitation";
- parameter Real delta0=atan2(vi0 + ra*ii0 + x1d*ir0, vr0 + ra*ir0 - x1d*ii0)
- "Initialitation";
- parameter Real vd0=vr0*cos(pi/2 - delta0) - vi0*sin(pi/2 - delta0)
- "Initialitation";
- parameter Real vq0=vr0*sin(pi/2 - delta0) + vi0*cos(pi/2 - delta0)
- "Initialitation";
- parameter Real id0=ir0*cos(pi/2 - delta0) - ii0*sin(pi/2 - delta0)
- "Initialitation";
- parameter Real iq0=ir0*sin(pi/2 - delta0) + ii0*cos(pi/2 - delta0)
- "Initialitation";
- parameter Real k50(fixed=false);
- parameter Real k30(fixed=false);
- parameter Real k0(fixed=false);
- parameter Real Vref(fixed=false);
- initial equation
- k50 = (CBASE/SBASE - Y0)/(MBASE/SBASE);
- k30 = k50;
- k0 = k30/K;
- Vref = V - k0;
- equation
- v = sqrt(p.vr^2 + p.vi^2);
- anglev = atan2(p.vi, p.vr);
- [p.ir; p.ii] = -[sin(delta0), cos(delta0); -cos(delta0), sin(delta0)]*[id; iq];
- [p.vr; p.vi] = [sin(delta0), cos(delta0); -cos(delta0), sin(delta0)]*[vd; vq];
- vq = id/Y;
- vd = -iq/Y;
- -P = p.vr*p.ir + p.vi*p.ii;
- -Q = p.vi*p.ir - p.vr*p.ii;
- connect(const1.y, add.u1) annotation (Line(
- points={{51,40},{60,40},{60,6},{68,6}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(add.y, Y) annotation (Line(
- points={{91,0},{110,0}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(product1.y, add.u2) annotation (Line(
- points={{57,0},{60,0},{60,-6},{68,-6}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(V, add1.u2) annotation (Line(
- points={{-120,0},{-90,0},{-90,-6},{-72,-6}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(const.y, product1.u1) annotation (Line(
- points={{-19,40},{0,40},{0,28},{20,28},{20,6},{34,6}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(add1.y, ImSimpleLagnonwinduplimit.u)
- annotation (Line(points={{-49,0},{-49,0},{-42,0}}, color={0,0,127}));
- connect(ImSimpleLagnonwinduplimit.y, imLimited.u)
- annotation (Line(points={{-19,0},{-12,0}}, color={0,0,127}));
- connect(imLimited.y, product1.u2)
- annotation (Line(points={{11,0},{24,0},{24,-6},{34,-6}}, color={0,0,127}));
- connect(const2.y, add1.u1) annotation (Line(points={{-79,20},{-76,20},{-76,6},
- {-72,6}}, color={0,0,127}));
- annotation (
- Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{
- 100,100}})),
- Icon(coordinateSystem(preserveAspectRatio=true, extent={{-100,-100},{100,
- 100}}), graphics={Rectangle(extent={{-100,100},{100,-100}},
- lineColor={0,0,255}),Text(
- extent={{-46,20},{40,-26}},
- lineColor={0,0,255},
- textString="CSVGN1"),Text(
- extent={{-100,-100},{100,-140}},
- lineColor={0,0,255},
- textString="%name")}),
- Documentation);
- end CSVGN1;
- annotation (Documentation);
- end PSSE;
-
- package Simulink
- model Shunt "Shunt Inductor or Capacitor"
- OpenIPSL.Interfaces.PwPin p annotation (Placement(transformation(
- extent={{-10,90},{10,110}})));
- constant Real pi=Modelica.Constants.pi;
- parameter Real Qnom
- "Reactive power produced by the shunt under 1 p.u voltage, (negative for inductive charge, positive for capacitive charge) Mvar";
- parameter Real Sbase "Base power of the system, MVA";
- parameter Real X=Sbase/(-Qnom) "Reactance in p.u";
- Real Q "Consumed power";
- Real v;
- equation
- v = sqrt(p.vr*p.vr + p.vi*p.vi);
- 0 = p.vr*p.ir + p.vi*p.ii;
- Q = p.vi*p.ir - p.vr*p.ii;
- Q = 1/X*v*v;
- annotation (Icon(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},
- {100,100}}), graphics={Rectangle(extent={{-100,100},{100,-100}},
- lineColor={0,0,255}),Text(
- extent={{-40,40},{40,-40}},
- lineColor={0,0,255},
- textString="Y"),Line(
- points={{-1,14},{-1,-6}},
- color={0,0,255},
- origin={-4,-73},
- rotation=-90),Line(
- points={{-1,-6},{-1,-2}},
- color={0,0,255},
- origin={-4,-79},
- rotation=90),Line(
- points={{-1,12},{-1,-0.000000000000000183697}},
- color={0,0,255},
- origin={-6,-77},
- rotation=-90),Line(points={{0,100},{0,20}}, color={0,0,255}),Line(
- points={{0,-40},{0,-72}}, color={0,0,255})}), Documentation(info="
-
-
-Reference |
-Shunt Inductor or Capacitor |
-
-
-Last update |
-2015-10-02 |
-
-
-Author |
-Le Qi, SmarTS Lab, KTH Royal Institute of Technology |
-
-
-Contact |
-luigiv@kth.se |
-
-
-"));
- end Shunt;
- annotation (Documentation);
- end Simulink;
- annotation (Documentation);
- end Banks;
-
- package Solar
- package PSAT
- model ConstantPQPV
- model PQ1 "Constant PQ Generator, Solar Photo-Voltaic Generator"
- OpenIPSL.Interfaces.PwPin p annotation (Placement(
- visible=true,
- transformation(
- origin={55.0,22.7992},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0),
- iconTransformation(
- origin={-110.0,0.0},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- parameter Real S_b=100 "System base power (MVA)"
- annotation (Dialog(group="Power flow data"));
- parameter Real Sn=10 "Nominal power (MVA)";
- parameter Real V_0=1.00018548610126 "Voltage magnitude (pu)"
- annotation (Dialog(group="Power flow data"));
- parameter Real angle_0=-0.0000253046024029618 "Voltage angle (deg)"
- annotation (Dialog(group="Power flow data"));
- parameter Real P_0=0.4 "Active power (pu)"
- annotation (Dialog(group="Power flow data"));
- parameter Real Q_0=0.3 "Reactive power (pu)"
- annotation (Dialog(group="Power flow data"));
- parameter Real Td=15 "d-axis inverter time constant (s)";
- parameter Real Tq=15 "q-axis inverter time constant (s)";
- protected
- parameter Real CoB=Sn/S_b;
- parameter Real Pref=P_0*CoB "Initialitation";
- parameter Real Qref=Q_0*CoB "Initialitation";
- parameter Real vd0=-V_0*sin(angle_0) "Initialitation";
- parameter Real vq0=V_0*cos(angle_0) "Initialitation";
- parameter Real idref=(vq0*Qref + Pref*vd0)/(vq0^2 + vd0^2) "Initialitation";
- parameter Real iqref=((-vd0*Qref) + Pref*vq0)/(vq0^2 + vd0^2)
- "Initialitation";
- public
- Real v "Bus voltage magnitude (pu)";
- Real anglev "Bus voltage angle (deg)";
- Real id(start=idref) "d-axis current (pu)";
- Real iq(start=iqref) "q-axis current (pu)";
- Real vd(start=vd0) "d-axis voltage (pu)";
- Real vq(start=vq0) "q-axis voltage (pu)";
- Real P(start=Pref) "Active power (pu)";
- Real Q(start=Qref) "Reactive power (pu)";
- Real idref1(start=idref) "d-axis current setpoint";
- Real iqref1(start=iqref) "q-axis current setpoint";
- equation
- P = vd*id + vq*iq;
- Q = vq*id - vd*iq;
- idref1 = (vq*Qref + Pref*vd)/(vq^2 + vd^2);
- iqref1 = ((-vd*Qref) + Pref*vq)/(vq^2 + vd^2);
- der(id) = (idref1 - id)/Td;
- der(iq) = (iqref1 - iq)/Tq;
- v = sqrt(p.vr^2 + p.vi^2);
- anglev = atan2(p.vi, p.vr);
- p.ir = -iq
- "change of sign due to the fact than in modelica when entering is + and in this case is going out";
- p.ii = id
- "change of sign due to the fact than in modelica when entering is + and in this case is going out";
- p.vr = vq;
- p.vi = -vd;
- annotation (
- Icon(coordinateSystem(
- extent={{-100.0,-100.0},{100.0,100.0}},
- preserveAspectRatio=true,
- initialScale=0.1,
- grid={10,10}), graphics={Rectangle(
- visible=true,
- fillColor={255,255,255},
- extent={{-100.0,-100.0},{100.0,100.0}}),Text(
- visible=true,
- origin={0.0,15.3102},
- fillPattern=FillPattern.Solid,
- extent={{-31.415,-20.0667},{31.415,20.0667}},
- textString="%name",
- fontName="Arial")}),
- Diagram(coordinateSystem(
- extent={{-148.5,-105.0},{148.5,105.0}},
- preserveAspectRatio=true,
- initialScale=0.1,
- grid={5,5})),
- Documentation(info="
-
-
-Reference |
-Constant PQ Generator, Solar Photo-Voltaic Generator, PSAT Manual 2.1.8 |
-
-
-Last update |
-September 2015 |
-
-
-Author |
-Joan Russinol, SmarTS Lab, KTH Royal Institute of Technology |
-
-
-Contact |
-luigiv@kth.se |
-
-
-"));
- end PQ1;
-
- model PV1 "Constant PV Generator, Solar Photo-Voltaic Generator"
- OpenIPSL.Interfaces.PwPin p annotation (Placement(
- visible=true,
- transformation(
- origin={55.0,22.7992},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0),
- iconTransformation(
- origin={-110.0,0.0},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- parameter Real S_b=100 "System base power (MVA)"
- annotation (Dialog(group="Power flow data"));
- parameter Real Sn=10 "Nominal power (MVA)";
- parameter Real V_0=1.00018548610126 "Voltage magnitude (pu)"
- annotation (Dialog(group="Power flow data"));
- parameter Real angle_0=-0.0000253046024029618 "Voltage angle (deg)"
- annotation (Dialog(group="Power flow data"));
- parameter Real P_0=0.4 "Active power (pu)"
- annotation (Dialog(group="Power flow data"));
- parameter Real Q_0=0.3 "Reactive power (pu)"
- annotation (Dialog(group="Power flow data"));
- parameter Real vref=1.0002 "Voltage reference (pu)";
- parameter Real Td=0.15 "d-axis inverter time constant (s)";
- parameter Real Tq=0.15 "q-axis inverter time constant (s)";
- parameter Real Ki=50.9005 "Integral gain of the voltage controller";
- parameter Real Kp=0.0868 "Proportional gain of the voltage controller";
- protected
- parameter Real CoB=Sn/S_b;
- parameter Real Pref=P_0*CoB;
- parameter Real vd0=-V_0*sin(angle_0) "Initialitation";
- parameter Real vq0=V_0*cos(angle_0) "Initialitation";
- parameter Real idref=(vq0*Q_0*CoB + Pref*vd0)/(vq0^2 + vd0^2)
- "Initialitation";
- parameter Real iqref=((-vd0*Q_0*CoB) + Pref*vq0)/(vq0^2 + vd0^2)
- "Initialitation";
- Real x(start=Q_0*CoB);
- Real Qref(start=Q_0*CoB);
- public
- Real v "Bus voltage magnitude (pu)";
- Real anglev "Bus voltage angle (deg.)";
- Real idref1(start=idref) "d-axis current setpoint";
- Real iqref1(start=iqref) "q-axis current setpoint";
- Real id(start=idref) "d-axis current (pu)";
- Real iq(start=iqref) "q-axis current (pu)";
- Real vd(start=vd0) "d-axis voltage (pu)";
- Real vq(start=vq0) "q-axs voltage (pu)";
- Real P(start=Pref) "Active power (pu)";
- Real Q(start=Q_0*CoB) "Reactive power (pu)";
- equation
- der(x) = Ki*(vref - v);
- Qref = x + Kp*(vref - v);
- P = vd*id + vq*iq;
- Q = vq*id - vd*iq;
- idref1 = (vq*Qref + Pref*vd)/(vq^2 + vd^2);
- iqref1 = ((-vd*Qref) + Pref*vq)/(vq^2 + vd^2);
- der(id) = (idref1 - id)/Td;
- der(iq) = (iqref1 - iq)/Tq;
- v = sqrt(p.vr^2 + p.vi^2);
- anglev = atan2(p.vi, p.vr);
- p.ir = -iq
- "change of sign due to the fact than in modelica when entering is + and in this case is going out";
- p.ii = id
- "change of sign due to the fact than in modelica when entering is + and in this case is going out";
- p.vr = vq;
- p.vi = -vd;
- annotation (
- Icon(coordinateSystem(
- extent={{-100.0,-100.0},{100.0,100.0}},
- preserveAspectRatio=true,
- initialScale=0.1,
- grid={10,10}), graphics={Rectangle(
- visible=true,
- fillColor={255,255,255},
- extent={{-100.0,-100.0},{100.0,100.0}}),Text(
- visible=true,
- origin={0.0,15.3102},
- fillPattern=FillPattern.Solid,
- extent={{-31.415,-20.0667},{31.415,20.0667}},
- textString="%name",
- fontName="Arial")}),
- Diagram(coordinateSystem(
- extent={{-148.5,-105.0},{148.5,105.0}},
- preserveAspectRatio=true,
- initialScale=0.1,
- grid={5,5})),
- Documentation(info="
-
-
-Reference |
-Constant PV Generator, Solar Photo-Voltaic Generator, PSAT Manual 2.1.8 |
-
-
-Last update |
-September 2015 |
-
-
-Author |
-Joan Russinol, SmarTS Lab, KTH Royal Institute of Technology |
-
-
-Contact |
-luigiv@kth.se |
-
-
-"));
- end PV1;
- annotation (Diagram(coordinateSystem(
- extent={{-148.5,-105.0},{148.5,105.0}},
- preserveAspectRatio=true,
- initialScale=0.1,
- grid={5,5})), Documentation);
- end ConstantPQPV;
- annotation (Documentation);
- end PSAT;
-
- package KTH
- package PFblocks
- model Controller
- parameter Real v0=1;
- parameter Real ibase=1.02;
- parameter Real ibase_iq=1;
- parameter Real Kdc=-0.005 "DC voltage Controller Gain";
- parameter Real Tdc=0.0015 "DC controller time constant";
- parameter Real id_max=1;
- parameter Real id_min=0;
- parameter Real Kac=-2.346 "AC voltage Controller Gain";
- parameter Real Tac=-0.0002131 "AC controller time constant";
- parameter Real iq_max=3;
- parameter Real iq_min=-3;
- parameter Real xq=1 "Initialitation";
- parameter Real xd=1 "Initialitation";
- Modelica.Blocks.Interfaces.RealInput udc annotation (Placement(
- visible=true,
- transformation(
- origin={-168.0386,-48.3466},
- extent={{-20.0,-20.0},{20.0,20.0}},
- rotation=0),
- iconTransformation(
- origin={-120.0,-30.0},
- extent={{-20.0,-20.0},{20.0,20.0}},
- rotation=0)));
- Modelica.Blocks.Interfaces.RealOutput id_ref annotation (Placement(
- visible=true,
- transformation(
- origin={160.0,45.0},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0),
- iconTransformation(
- origin={110.0,40.0},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- Modelica.Blocks.Interfaces.RealInput Vdcref annotation (Placement(
- visible=true,
- transformation(
- origin={-168.3642,-81.5161},
- extent={{-20.0,-20.0},{20.0,20.0}},
- rotation=0),
- iconTransformation(
- origin={-120.0,-80.0},
- extent={{-20.0,-20.0},{20.0,20.0}},
- rotation=0)));
- Modelica.Blocks.Math.Add add1(k1=-1) annotation (Placement(visible=true,
- transformation(
- origin={-85.0,-65.0},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- Modelica.Blocks.Nonlinear.Limiter limiter1(uMax=id_max, uMin=id_min)
- annotation (Placement(visible=true, transformation(
- origin={-11.5403,-65.0},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- Modelica.Blocks.Math.Gain gain1(k=1/ibase) annotation (Placement(visible=true,
- transformation(
- origin={16.5869,-65.0},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- Modelica.Blocks.Interfaces.RealInput uac annotation (Placement(
- visible=true,
- transformation(
- origin={-168.3642,60.0},
- extent={{-20.0,-20.0},{20.0,20.0}},
- rotation=0),
- iconTransformation(
- origin={-120.0,70.0},
- extent={{-20.0,-20.0},{20.0,20.0}},
- rotation=0)));
- Modelica.Blocks.Interfaces.RealInput Vacref annotation (Placement(
- visible=true,
- transformation(
- origin={-168.1269,30.0},
- extent={{-20.0,-20.0},{20.0,20.0}},
- rotation=0),
- iconTransformation(
- origin={-120.0,20.0},
- extent={{-20.0,-20.0},{20.0,20.0}},
- rotation=0)));
- Modelica.Blocks.Math.Add add2(k1=-1) annotation (Placement(visible=true,
- transformation(
- origin={-95.0,48.1957},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- Modelica.Blocks.Nonlinear.Limiter limiter2(uMax=iq_max, uMin=iq_min)
- annotation (Placement(visible=true, transformation(
- origin={-26.5403,47.3513},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- Modelica.Blocks.Math.Gain gain2(k=1/ibase_iq) annotation (Placement(visible=
- true, transformation(
- origin={10.0,47.3513},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- Modelica.Blocks.Interfaces.RealOutput iq_ref annotation (Placement(
- visible=true,
- transformation(
- origin={160.0,-60.0},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0),
- iconTransformation(
- origin={110.0,-48.2723},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- OpenIPSL.Electrical.Solar.KTH.Auxiliary.PI PI2(
- K=Kdc,
- T=Tdc,
- xo=xd,
- Ymax=id_max,
- Ymin=id_min) annotation (Placement(visible=true, transformation(
- origin={-50.0,-65.0},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- OpenIPSL.Electrical.Solar.KTH.Auxiliary.PI PI3(
- K=Kac,
- T=0.0005,
- Ymax=iq_max,
- Ymin=iq_min,
- xo=xq) annotation (Placement(visible=true, transformation(
- origin={-65.0,47.5332},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- OpenIPSL.Electrical.Solar.KTH.Auxiliary.SimpleLagg simpleLagg1(xo=v0)
- annotation (Placement(visible=true, transformation(
- origin={-132.2917,60.0},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- equation
- connect(id_ref, gain1.y) annotation (Line(
- visible=true,
- origin={97.9312,-8.9184},
- points={{62.0688,53.9184},{27.0688,53.9184},{27.0688,2.1631},{-22.9312,
- 2.1631},{-22.9312,-56.0816},{-70.3443,-56.0816}},
- color={0,0,127}));
- connect(PI2.yo, limiter1.u) annotation (Line(
- visible=true,
- origin={-31.2702,-65.0},
- points={{-7.7298,0},{7.7299,0}},
- color={0,0,127}));
- connect(add1.y, PI2.yi) annotation (Line(
- visible=true,
- origin={-68.0,-65.0},
- points={{-6.0,0.0},{6.0,0.0}},
- color={0,0,127}));
- connect(simpleLagg1.yo, add2.u1) annotation (Line(
- visible=true,
- origin={-117.0729,57.0978},
- points={{-4.2188,2.9022},{-2.9271,2.9022},{-2.9271,-2.9021},{10.0729,-2.9021}},
- color={0,0,127}));
-
- connect(uac, simpleLagg1.yi) annotation (Line(
- visible=true,
- origin={-156.3279,60.0},
- points={{-12.0363,0.0},{12.0362,0.0}},
- color={0,0,127}));
- connect(PI3.yo, limiter2.u) annotation (Line(
- visible=true,
- origin={-43.9052,47.4423},
- points={{-10.0948,0.0909},{2.3649,0.0909},{2.3649,-0.091},{5.3649,-0.091}},
- color={0,0,127}));
-
- connect(add2.y, PI3.yi) annotation (Line(
- visible=true,
- origin={-80.25,47.8645},
- points={{-3.75,0.3312},{0.25,0.3312},{0.25,-0.3313},{3.25,-0.3313}},
- color={0,0,127}));
- connect(udc, add1.u1) annotation (Line(
- visible=true,
- origin={-116.2596,-53.6733},
- points={{-51.779,5.3267},{16.2596,5.3267},{16.2596,-5.3267},{19.2596,-5.3267}},
- color={0,0,127}));
-
- connect(gain2.y, iq_ref) annotation (Line(
- visible=true,
- origin={97.75,-6.3243},
- points={{-76.75,53.6756},{7.25,53.6757},{7.25,-53.6757},{62.25,-53.6757}},
- color={0,0,127}));
-
- connect(Vdcref, add1.u2) annotation (Line(
- visible=true,
- origin={-116.341,-76.258},
- points={{-52.0232,-5.2581},{16.341,-5.258},{16.341,5.258},{19.341,5.258}},
- color={0,0,127}));
-
- connect(add2.u2, Vacref) annotation (Line(
- visible=true,
- origin={-141.1202,36.0979},
- points={{34.1202,6.0978},{-3.5567,6.0979},{-3.5567,-6.0979},{-27.0067,-6.0979}},
- color={0,0,127}));
-
- connect(limiter2.y, gain2.u) annotation (Line(
- visible=true,
- origin={-8.7701,47.3513},
- points={{-6.7702,0},{6.7701,0}},
- color={0,0,127}));
- connect(limiter1.y, gain1.u) annotation (Line(
- visible=true,
- origin={2.0233,-65.0},
- points={{-2.5636,0},{2.5636,0}},
- color={0,0,127}));
- annotation (
- Icon(coordinateSystem(
- extent={{-100.0,-100.0},{100.0,100.0}},
- preserveAspectRatio=true,
- initialScale=0.1,
- grid={10,10}), graphics={Rectangle(
- visible=true,
- fillColor={255,255,255},
- extent={{-100.0,-100.0},{100.0,100.0}}),Text(
- visible=true,
- origin={2.9728,2.2168},
- fillPattern=FillPattern.Solid,
- extent={{-41.0253,-27.7832},{41.0253,27.7832}},
- textString="Controller",
- fontName="Arial"),Text(
- visible=true,
- origin={-70.0,72.8039},
- fillPattern=FillPattern.Solid,
- extent={{-25.3921,-17.1961},{25.3921,17.1961}},
- textString="vac",
- fontName="Arial"),Text(
- visible=true,
- origin={-71.5131,22.8039},
- fillPattern=FillPattern.Solid,
- extent={{-25.3921,-17.1961},{25.3921,17.1961}},
- textString="vacref",
- fontName="Arial"),Text(
- visible=true,
- origin={-70.0,-27.1961},
- fillPattern=FillPattern.Solid,
- extent={{-25.3921,-17.1961},{25.3921,17.1961}},
- textString="vdc",
- fontName="Arial"),Text(
- visible=true,
- origin={-71.8371,-80.0},
- fillPattern=FillPattern.Solid,
- extent={{-25.3921,-17.1961},{25.3921,17.1961}},
- textString="vdcref",
- fontName="Arial"),Text(
- visible=true,
- origin={67.86,42.8039},
- fillPattern=FillPattern.Solid,
- extent={{-25.3921,-17.1961},{25.3921,17.1961}},
- textString="id_ref",
- fontName="Arial"),Text(
- visible=true,
- origin={68.1306,-47.1961},
- fillPattern=FillPattern.Solid,
- extent={{-25.3921,-17.1961},{25.3921,17.1961}},
- textString="iq_ref",
- fontName="Arial")}),
- Diagram(coordinateSystem(
- extent={{-148.5,-105.0},{148.5,105.0}},
- preserveAspectRatio=true,
- initialScale=0.1,
- grid={5,5})),
- Documentation(info="
-
-
-Reference |
-TBD |
-
-
-Last update |
-TBD |
-
-
-Author |
-Joan Russinol, SmarTS Lab, KTH Royal Institute of Technology |
-
-
-Contact |
-luigiv@kth.se |
-
-
-"));
- end Controller;
-
- model DCBusBar
- parameter Real Pnen=0.5 "MW rated power";
- parameter Real UdcN=1 "kV Nominal DC voltage";
- parameter Real C=0.0172 "s of capacitor on DC busbar";
- parameter Real Udc0=700 "Initial dc voltage";
- Modelica.Blocks.Interfaces.RealInput Pac "voltage array" annotation (
- Placement(
- visible=true,
- transformation(
- origin={-168.2447,-30.0},
- extent={{-20.0,-20.0},{20.0,20.0}},
- rotation=0),
- iconTransformation(
- origin={-120.0,60.0},
- extent={{-20.0,-20.0},{20.0,20.0}},
- rotation=0)));
- Modelica.Blocks.Interfaces.RealInput Ipv "current array" annotation (
- Placement(
- visible=true,
- transformation(
- origin={-168.0962,67.0723},
- extent={{-20.0,-20.0},{20.0,20.0}},
- rotation=0),
- iconTransformation(
- origin={-120.0,-30.0},
- extent={{-20.0,-20.0},{20.0,20.0}},
- rotation=0)));
- Modelica.Blocks.Interfaces.RealOutput Vdc(start=Udc0) annotation (Placement(
- visible=true,
- transformation(
- origin={160.0,-0.0},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0),
- iconTransformation(
- origin={110.0,0.0},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- Modelica.Blocks.Math.Add add1(k2=-1) annotation (Placement(visible=true,
- transformation(
- origin={-50.0,0.0},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- Modelica.Blocks.Nonlinear.Limiter limiter1(uMax=876, uMin=0) annotation (
- Placement(visible=true, transformation(
- origin={100.0,0.0},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- OpenIPSL.Electrical.Solar.KTH.Auxiliary.Calcurrent calcurrent1(Udc0=Udc0)
- annotation (Placement(visible=true, transformation(
- origin={-108.3112,-33.4951},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- OpenIPSL.Electrical.Solar.KTH.Auxiliary.AtoPU atoPU1(Pnen=Pnen,
- UdcN=UdcN) annotation (Placement(visible=true, transformation(
- origin={-22.2363,0.0},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- OpenIPSL.Electrical.Solar.KTH.Auxiliary.Capacitor capacitor1(
- C=C,
- Udc0=Udc0,
- UdcN=UdcN) annotation (Placement(visible=true, transformation(
- origin={7.8812,0.0},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- OpenIPSL.Electrical.Solar.KTH.Auxiliary.pu_to_A pu_to_A1(Pnen=Pnen,
- UdcN=UdcN) annotation (Placement(visible=true, transformation(
- origin={40.0,0.0},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- equation
- connect(limiter1.y, Vdc) annotation (Line(
- visible=true,
- origin={135.5,0.0},
- points={{-24.5,0.0},{24.5,0.0}},
- color={0,0,127}));
- connect(pu_to_A1.y0, limiter1.u) annotation (Line(
- visible=true,
- origin={69.5,0.0},
- points={{-18.5,0.0},{18.5,-0.0}},
- color={0,0,127}));
- connect(capacitor1.y0, pu_to_A1.yi) annotation (Line(
- visible=true,
- origin={23.4406,0.0},
- points={{-4.5594,0.0},{4.5594,-0.0}},
- color={0,0,127}));
- connect(capacitor1.yi, atoPU1.y0) annotation (Line(
- visible=true,
- origin={-7.6775,0.0},
- points={{3.5587,0},{-3.5588,0}},
- color={0,0,127}));
- connect(add1.y, atoPU1.yi) annotation (Line(
- visible=true,
- origin={-36.6181,0.0},
- points={{-2.3819,0},{2.3818,0}},
- color={0,0,127}));
- connect(add1.u2, calcurrent1.yo) annotation (Line(
- visible=true,
- origin={-77.3245,-22.3845},
- points={{15.3245,16.3845},{12.3245,16.3845},{12.3245,-10.8292},{-19.9867,
- -10.8292},{-19.9867,-11.1106}},
- color={0,0,127}));
- connect(Ipv, add1.u1) annotation (Line(
- visible=true,
- origin={-90.0241,36.5361},
- points={{-78.0721,30.5362},{25.0241,30.5362},{25.0241,-30.5361},{28.0241,
- -30.5361}},
- color={0,0,127}));
- connect(calcurrent1.udc, Vdc) annotation (Line(
- visible=true,
- origin={-30.4173,-44.0824},
- points={{-89.8939,5.5873},{-106.096,5.5873},{-106.096,-23.7522},{-104.583,
- -23.7522},{-104.583,-25.9176},{160.417,-25.9176},{160.417,44.0824},{
- 190.417,44.0824}},
- color={0,0,127}));
- connect(Pac, calcurrent1.yi) annotation (Line(
- visible=true,
- origin={-133.7946,-29.7476},
- points={{-34.4501,-0.2524},{10.4834,-0.2524},{10.4834,0.2525},{13.4834,
- 0.2525}},
- color={0,0,127}));
- annotation (
- Icon(coordinateSystem(
- extent={{-100.0,-100.0},{100.0,100.0}},
- preserveAspectRatio=true,
- initialScale=0.1,
- grid={10,10}), graphics={Rectangle(
- visible=true,
- fillColor={255,255,255},
- extent={{-100.0,-100.0},{100.0,100.0}}),Text(
- visible=true,
- origin={-50.0,60.0},
- fillPattern=FillPattern.Solid,
- extent={{-47.2303,-30.0},{47.2303,30.0}},
- textString="Pac [MW]",
- fontName="Arial"),Text(
- visible=true,
- origin={-68.5241,-31.9581},
- fillPattern=FillPattern.Solid,
- extent={{-15.9047,-15.0129},{15.9047,15.0129}},
- textString="Ipv",
- fontName="Arial"),Text(
- visible=true,
- origin={70.0,0.0},
- fillPattern=FillPattern.Solid,
- extent={{-23.1601,-13.4726},{23.1601,13.4726}},
- textString="Vdc",
- fontName="Arial")}),
- Diagram(coordinateSystem(
- extent={{-148.5,-105.0},{148.5,105.0}},
- preserveAspectRatio=true,
- initialScale=0.1,
- grid={5,5})),
- Documentation(info="
-
-
-Reference |
-TBD |
-
-
-Last update |
-TBD |
-
-
-Author |
-Joan Russinol, SmarTS Lab, KTH Royal Institute of Technology |
-
-
-Contact |
-luigiv@kth.se |
-
-
-"));
- end DCBusBar;
-
- model MPPT
- Modelica.Blocks.Interfaces.RealOutput Vdref(start=700) annotation (Placement(
- visible=true,
- transformation(
- origin={187.3027,-0.0},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0),
- iconTransformation(
- origin={110.0,0.0},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- Modelica.Blocks.Interfaces.RealInput Varray(start=700) annotation (Placement(
- visible=true,
- transformation(
- origin={-168.4441,40.0},
- extent={{-20.0,-20.0},{20.0,20.0}},
- rotation=0),
- iconTransformation(
- origin={-120.0,40.0},
- extent={{-20.0,-20.0},{20.0,20.0}},
- rotation=0)));
- Modelica.Blocks.Interfaces.RealInput Iarray(start=641.2) annotation (
- Placement(
- visible=true,
- transformation(
- origin={-168.0142,-28.0297},
- extent={{-20.0,-20.0},{20.0,20.0}},
- rotation=0),
- iconTransformation(
- origin={-120.0,-50.0},
- extent={{-20.0,-20.0},{20.0,20.0}},
- rotation=0)));
- parameter Real Tdelay1=0.0045;
- parameter Real Tdelay=0.005;
- parameter Real Vbase=1;
- parameter Real Vmpp0_array=700;
- parameter Real Step=125;
- Modelica.Blocks.Math.Add add1(k2=-1) annotation (Placement(visible=true,
- transformation(
- origin={0.0,40.0},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- Modelica.Blocks.Math.Add add2(k2=-1) annotation (Placement(visible=true,
- transformation(
- origin={-1.9703,-25.0},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- OpenIPSL.Electrical.Solar.KTH.Auxiliary.InputSelectorEpsilon inputSelectorEpsilon1
- annotation (Placement(visible=true, transformation(
- origin={65.0,5.0},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- Modelica.Blocks.Math.Gain gain1(k=Vmpp0_array*Tdelay/Step) annotation (
- Placement(visible=true, transformation(
- origin={95.0,5.0},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- Modelica.Blocks.Math.Add add3(k2=+1) annotation (Placement(visible=true,
- transformation(
- origin={123.0297,35.0},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- Modelica.Blocks.Nonlinear.FixedDelay fixedDelay4(delayTime=Tdelay1)
- annotation (Placement(visible=true, transformation(
- origin={-45.0,-26.7774},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- Modelica.Blocks.Nonlinear.FixedDelay fixedDelay3(delayTime=Tdelay1)
- annotation (Placement(visible=true, transformation(
- origin={-52.3186,40.0},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- Modelica.Blocks.Nonlinear.FixedDelay fixedDelay2(delayTime=Tdelay)
- annotation (Placement(visible=true, transformation(
- origin={-106.6572,-25.0},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- Modelica.Blocks.Nonlinear.FixedDelay fixedDelay1(delayTime=Tdelay)
- annotation (Placement(visible=true, transformation(
- origin={-106.6255,40.0},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- equation
- connect(fixedDelay1.y, inputSelectorEpsilon1.vd) annotation (Line(
- visible=true,
- origin={-59.6663,23.3137},
- points={{-35.9592,16.6863},{-20.3337,16.6863},{-20.3337,-6.144},{-18.0199,
- -6.144},{-18.0199,-10.5423},{112.666,-10.5423}},
- color={0,0,127}));
- connect(fixedDelay2.y, inputSelectorEpsilon1.id) annotation (Line(
- visible=true,
- origin={-33.9199,-5.4748},
- points={{-61.7373,-19.5252},{-51.5513,-19.5252},{-51.5513,13.0745},{
- 86.9199,13.0745},{86.9199,12.9015}},
- color={0,0,127}));
- connect(add1.y, inputSelectorEpsilon1.dv) annotation (Line(
- visible=true,
- origin={34.4337,17.6894},
- points={{-23.4337,22.3106},{-6.8495,22.3106},{-6.8495,-14.5932},{18.5663,
- -14.5932},{18.5663,-15.4347}},
- color={0,0,127}));
- connect(inputSelectorEpsilon1.di, add2.y) annotation (Line(
- visible=true,
- origin={21.5223,-14.2005},
- points={{31.4777,10.7996},{-9.4926,10.7996},{-9.4926,-10.7995},{-12.4926,
- -10.7995}},
- color={0,0,127}));
- connect(fixedDelay1.y, add3.u1) annotation (Line(
- visible=true,
- origin={-12.7429,50.2},
- points={{-82.8826,-10.2},{-73.2868,-10.2},{-73.2868,14.8},{123.773,14.8},
- {123.773,-9.2}},
- color={0,0,127}));
- connect(fixedDelay1.y, add1.u1) annotation (Line(
- visible=true,
- origin={-55.9251,49.2},
- points={{-39.7004,-9.2},{-24.0749,-9.2},{-24.0749,10.8},{43.9251,10.8},{
- 43.9251,-3.2}},
- color={0,0,127}));
- connect(fixedDelay1.y, fixedDelay3.u) annotation (Line(
- visible=true,
- origin={-79.972,40.0},
- points={{-15.6535,0},{15.6534,0}},
- color={0,0,127}));
- connect(Varray, fixedDelay1.u) annotation (Line(
- visible=true,
- origin={-143.5348,40.0},
- points={{-24.9093,0},{24.9093,0}},
- color={0,0,127}));
- connect(fixedDelay2.y, add2.u1) annotation (Line(
- visible=true,
- origin={-57.5163,-14.6141},
- points={{-38.1409,-10.3859},{-24.4755,-10.3859},{-24.4755,12.5788},{
- 43.546,12.5788},{43.546,-4.3859}},
- color={0,0,127}));
- connect(fixedDelay2.y, fixedDelay4.u) annotation (Line(
- visible=true,
- origin={-68.1643,-25.8887},
- points={{-27.4929,0.8887},{8.1643,0.8887},{8.1643,-0.8887},{11.1643,-0.8887}},
- color={0,0,127}));
-
- connect(Iarray, fixedDelay2.u) annotation (Line(
- visible=true,
- origin={-132.4965,-26.5148},
- points={{-35.5177,-1.5149},{10.8392,-1.5148},{10.8392,1.5148},{13.8393,
- 1.5148}},
- color={0,0,127}));
- connect(fixedDelay3.y, add1.u2) annotation (Line(
- visible=true,
- origin={-20.8296,37.0},
- points={{-20.489,3.0},{5.8296,3.0},{5.8296,-3.0},{8.8296,-3.0}},
- color={0,0,127}));
- connect(fixedDelay4.y, add2.u2) annotation (Line(
- visible=true,
- origin={-20.4777,-28.8887},
- points={{-13.5223,2.1113},{3.5074,2.1113},{3.5074,-2.1113},{6.5074,-2.1113}},
- color={0,0,127}));
-
- connect(add3.y, Vdref) annotation (Line(
- visible=true,
- origin={162.8331,17.5},
- points={{-28.8034,17.5},{2.1669,17.5},{2.1669,-17.5},{24.4696,-17.5}},
- color={0,0,127}));
- connect(inputSelectorEpsilon1.k, gain1.u) annotation (Line(
- visible=true,
- origin={79.5,5.0},
- points={{-3.5,0.0},{3.5,0.0}},
- color={0,0,127}));
- connect(gain1.y, add3.u2) annotation (Line(
- visible=true,
- origin={108.5148,17.4083},
- points={{-2.5148,-12.4083},{0.4852,-12.4083},{0.4852,0.8167},{-0.4852,
- 0.8167},{-0.4852,11.5917},{2.5149,11.5917}},
- color={0,0,127}));
- annotation (
- Icon(coordinateSystem(
- extent={{-100.0,-100.0},{100.0,100.0}},
- preserveAspectRatio=true,
- initialScale=0.1,
- grid={10,10}), graphics={Rectangle(
- visible=true,
- fillColor={255,255,255},
- extent={{-100.0,-100.0},{100.0,100.0}}),Text(
- visible=true,
- origin={-2.5936,-0.1486},
- fillPattern=FillPattern.Solid,
- extent={{-42.5936,-24.8233},{42.5936,24.8233}},
- textString="%name",
- fontName="Arial"),Text(
- visible=true,
- origin={-76.6608,38.9853},
- fillPattern=FillPattern.Solid,
- extent={{-13.3392,-18.9853},{13.3392,18.9853}},
- textString="Varray",
- fontName="Arial"),Text(
- visible=true,
- origin={-73.5779,-52.1735},
- fillPattern=FillPattern.Solid,
- extent={{-18.8776,-14.7156},{18.8776,14.7156}},
- textString="Iarray",
- fontName="Arial"),Text(
- visible=true,
- origin={83.3883,-0.7022},
- fillPattern=FillPattern.Solid,
- extent={{-9.6618,-10.7022},{9.6618,10.7022}},
- textString="Vdref",
- fontName="Arial")}),
- Diagram(coordinateSystem(
- extent={{-148.5,-105.0},{148.5,105.0}},
- preserveAspectRatio=true,
- initialScale=0.1,
- grid={5,5})),
- Documentation(info="
-
-
-Reference |
-TBD |
-
-
-Last update |
-TBD |
-
-
-Author |
-Joan Russinol, SmarTS Lab, KTH Royal Institute of Technology |
-
-
-Contact |
-luigiv@kth.se |
-
-
-"));
- end MPPT;
-
- model PVnew
- OpenIPSL.Electrical.Solar.KTH.Auxiliary.PVarray PVarray1(
- Estc=Estc,
- Imp=Imp,
- Iscref=Iscref,
- Ki=Ki,
- Kv=Kv,
- Tstc=Tstc,
- Vmp=Vmp,
- Vocref=Vocref) annotation (Placement(visible=true,
- transformation(
- origin={-10.0,5.0},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- Modelica.Blocks.Interfaces.RealInput E annotation (Placement(
- visible=true,
- transformation(
- origin={-170.0,10.0},
- extent={{-20.0,-20.0},{20.0,20.0}},
- rotation=0),
- iconTransformation(
- origin={-120.0,0.0},
- extent={{-20.0,-20.0},{20.0,20.0}},
- rotation=0)));
- Modelica.Blocks.Interfaces.RealOutput Iarray annotation (Placement(
- visible=true,
- transformation(
- origin={141.6223,2.7793},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0),
- iconTransformation(
- origin={110.0,0.0},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- Modelica.Blocks.Interfaces.RealInput T annotation (Placement(
- visible=true,
- transformation(
- origin={-170.0,-27.9545},
- extent={{-20.0,-20.0},{20.0,20.0}},
- rotation=0),
- iconTransformation(
- origin={-120.0,-70.0},
- extent={{-20.0,-20.0},{20.0,20.0}},
- rotation=0)));
- Modelica.Blocks.Interfaces.RealOutput Varray annotation (Placement(
- visible=true,
- transformation(
- origin={141.8597,-20.0},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0),
- iconTransformation(
- origin={110.0,70.0},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- Modelica.Blocks.Interfaces.RealInput Udc annotation (Placement(
- visible=true,
- transformation(
- origin={-170.0,60.0},
- extent={{-20.0,-20.0},{20.0,20.0}},
- rotation=0),
- iconTransformation(
- origin={-120.0,70.0},
- extent={{-20.0,-20.0},{20.0,20.0}},
- rotation=0)));
- Modelica.Blocks.Interfaces.RealOutput PowerArray annotation (Placement(
- visible=true,
- transformation(
- origin={142.6599,-43.318},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0),
- iconTransformation(
- origin={110.0,-63.8978},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- Modelica.Blocks.Math.Gain gain1(k=1/nSerialModules) annotation (Placement(
- visible=true, transformation(
- origin={-70.0,60.0},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- Modelica.Blocks.Math.Gain gain2(k=nParallelModules) annotation (Placement(
- visible=true, transformation(
- origin={68.072,10.0},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- Modelica.Blocks.Math.Gain gain3(k=nSerialModules) annotation (Placement(
- visible=true, transformation(
- origin={70.0,-28.0297},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- Modelica.Blocks.Math.Product product1 annotation (Placement(visible=true,
- transformation(
- origin={60.0,60.0},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- parameter Real nSerialModules=20;
- parameter Real nParallelModules=140;
- parameter Real Tdelay=0.05;
- parameter Real Imp=4.58 "Current at maximum power";
- parameter Real Vmp=35 "Voltage at maximum power";
- parameter Real Iscref=5
- "Module short-circuit current reference at reference temp and irradiance";
- parameter Real Vocref=43.8
- "Module open-circuit voltage reference at reference temp and irradiance";
- parameter Real Kv=-0.0039 "temperature correction factor for the voltage";
- parameter Real Ki=0.0004 "temperature correction factor for the current";
- parameter Real Tstc=25 "Temperature at the standard test conditions";
- parameter Real Estc=1000 "Irradiance at the standard test conditions";
- equation
- connect(Udc, gain1.u) annotation (Line(
- visible=true,
- origin={-126.0,60.0},
- points={{-44.0,0.0},{44.0,0.0}},
- color={0,0,127}));
- connect(gain2.y, Iarray) annotation (Line(
- visible=true,
- origin={119.3722,6.3896},
- points={{-40.3002,3.6104},{9.0251,3.6104},{9.0251,-3.6103},{22.2501,-3.6103}},
- color={0,0,127}));
-
- connect(gain3.y, Varray) annotation (Line(
- visible=true,
- origin={120.0322,-24.0148},
- points={{-39.0322,-4.0149},{8.6024,-4.0148},{8.6024,4.0148},{21.8275,
- 4.0148}},
- color={0,0,127}));
- connect(product1.y, PowerArray) annotation (Line(
- visible=true,
- origin={115.264,-2.6636},
- points={{-44.264,62.6636},{-5.264,62.6636},{-5.264,-42.3364},{27.3959,-42.3364},
- {27.3959,-40.6544}},
- color={0,0,127}));
- connect(T, PVarray1.T) annotation (Line(
- visible=true,
- origin={-60.5,-14.9773},
- points={{-109.5,-12.9772},{35.5,-12.9773},{35.5,12.9773},{38.5,12.9773}},
- color={0,0,127}));
-
- connect(Udc, product1.u1) annotation (Line(
- visible=true,
- origin={-66.8,71.2},
- points={{-103.2,-11.2},{-63.2,-11.2},{-63.2,13.8},{114.8,13.8},{114.8,-5.2}},
- color={0,0,127}));
-
- connect(PVarray1.E, E) annotation (Line(
- visible=true,
- origin={-121.275,7.5},
- points={{99.275,-2.5},{-25.275,-2.5},{-25.275,2.5},{-48.725,2.5}},
- color={0,0,127}));
- connect(PVarray1.V, gain3.u) annotation (Line(
- visible=true,
- origin={42.25,-13.2285},
- points={{-41.25,14.8011},{12.75,14.8011},{12.75,-14.8012},{15.75,-14.8012}},
- color={0,0,127}));
-
- connect(gain2.y, product1.u2) annotation (Line(
- visible=true,
- origin={63.536,33.8119},
- points={{15.536,-23.8119},{18.536,-23.8119},{18.536,3.6238},{-18.536,
- 3.6238},{-18.536,20.1881},{-15.536,20.1881}},
- color={0,0,127}));
- connect(PVarray1.I, gain2.u) annotation (Line(
- visible=true,
- origin={40.804,9.5},
- points={{-39.804,-0.5},{12.268,-0.5},{12.268,0.5},{15.268,0.5}},
- color={0,0,127}));
- connect(gain1.y, PVarray1.V1) annotation (Line(
- visible=true,
- origin={-36.6,31.1287},
- points={{-22.4,28.8713},{-3.4,28.8713},{-3.4,-19.3069},{14.6,-19.3069},{
- 14.6,-19.1287}},
- color={0,0,127}));
- annotation (
- Icon(coordinateSystem(
- extent={{-100.0,-100.0},{100.0,100.0}},
- preserveAspectRatio=true,
- initialScale=0.1,
- grid={10,10}), graphics={Rectangle(
- visible=true,
- fillColor={255,255,255},
- extent={{-100.0,-100.0},{100.0,100.0}}),Text(
- visible=true,
- origin={0.8251,1.0405},
- fillPattern=FillPattern.Solid,
- extent={{-39.1749,-15.0129},{39.1749,15.0129}},
- textString="PVnew",
- fontName="Arial"),Text(
- visible=true,
- origin={-74.7566,70.0},
- fillPattern=FillPattern.Solid,
- extent={{-20.0,-13.9876},{20.0,13.9876}},
- textString="Vdc(700)",
- fontName="Arial"),Text(
- visible=true,
- origin={-75.6751,-0.0},
- fillPattern=FillPattern.Solid,
- extent={{-20.0,-13.9876},{20.0,13.9876}},
- textString="E(1000)",
- fontName="Arial"),Text(
- visible=true,
- origin={-74.8099,-67.7542},
- fillPattern=FillPattern.Solid,
- extent={{-20.0,-13.9876},{20.0,13.9876}},
- textString="Tref(25)",
- fontName="Arial"),Text(
- visible=true,
- origin={68.1573,71.699},
- fillPattern=FillPattern.Solid,
- extent={{-20.0,-13.9876},{20.0,13.9876}},
- textString="Varray",
- fontName="Arial"),Text(
- visible=true,
- origin={74.6709,-0.0},
- fillPattern=FillPattern.Solid,
- extent={{-20.0,-13.9876},{20.0,13.9876}},
- textString="Iarray",
- fontName="Arial"),Text(
- visible=true,
- origin={74.3469,-62.1058},
- fillPattern=FillPattern.Solid,
- extent={{-20.0,-13.9876},{20.0,13.9876}},
- textString="Parray",
- fontName="Arial")}),
- Diagram(coordinateSystem(
- extent={{-148.5,-105.0},{148.5,105.0}},
- preserveAspectRatio=true,
- initialScale=0.1,
- grid={5,5})),
- Documentation(info="
-
-
-Reference |
-TBD |
-
-
-Last update |
-TBD |
-
-
-Author |
-Joan Russinol, SmarTS Lab, KTH Royal Institute of Technology |
-
-
-Contact |
-luigiv@kth.se |
-
-
-"));
- end PVnew;
-
- model Staticgenerator
- parameter Real Pnen=0.5 "MW rated power";
- parameter Real v0=1 "Power flow, node voltage";
- parameter Real anglev0=1 "Power flow, node angle";
- parameter Real p0=1 "Power flow, node active power";
- parameter Real q0=1 "Power flow, node reactive power";
- parameter Real Td=0.00015 "d-axis inverter time constant";
- parameter Real Tq=0.00015 "q-axis inverter time constant";
- Modelica.Blocks.Interfaces.RealInput id_ref annotation (Placement(
- visible=true,
- transformation(
- origin={-175.0,55.0},
- extent={{-20.0,-20.0},{20.0,20.0}},
- rotation=0),
- iconTransformation(
- origin={-120.0,70.0},
- extent={{-20.0,-20.0},{20.0,20.0}},
- rotation=0)));
- Modelica.Blocks.Interfaces.RealInput iq_ref annotation (Placement(
- visible=true,
- transformation(
- origin={-181.6246,25.0},
- extent={{-20.0,-20.0},{20.0,20.0}},
- rotation=0),
- iconTransformation(
- origin={-120.0,20.0},
- extent={{-20.0,-20.0},{20.0,20.0}},
- rotation=0)));
- OpenIPSL.Interfaces.PwPin p(vr(start=v0*cos(anglev0)), vi(start=
- v0*sin(anglev0))) annotation (Placement(
- visible=true,
- transformation(
- origin={147.2097,10.0},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0),
- iconTransformation(
- origin={110.0,0.0},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- Real anglev;
- Real id;
- Real iq;
- Real Q;
- Modelica.Blocks.Interfaces.RealOutput P(start=p0) annotation (Placement(
- visible=true,
- transformation(
- origin={165.1089,-78.9737},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0),
- iconTransformation(
- origin={110.0,-75.213},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- Modelica.Blocks.Interfaces.RealOutput v(start=v0) annotation (Placement(
- visible=true,
- transformation(
- origin={165.1089,-78.9737},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0),
- iconTransformation(
- origin={110.0,70.0},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- initial equation
- der(iq) = 0;
- der(id) = 0;
- equation
- -P = p.vr*p.ir + p.vi*p.ii;
- -Q = p.vi*p.ir - p.vr*p.ii;
- v = sqrt(p.vr^2 + p.vi^2);
- anglev = atan2(p.vi, p.vr);
- der(id) = (id_ref - id)/Td;
- der(iq) = (iq_ref - iq)/Tq;
- p.ir = -(id*cos(anglev) - iq*sin(anglev))*Pnen;
- p.ii = -(id*sin(anglev) + iq*cos(anglev))*Pnen;
- annotation (
- Icon(coordinateSystem(
- extent={{-100.0,-100.0},{100.0,100.0}},
- preserveAspectRatio=true,
- initialScale=0.1,
- grid={10,10}), graphics={Text(
- visible=true,
- origin={-77.7013,70.0105},
- fillPattern=FillPattern.Solid,
- extent={{-12.2987,-8.1753},{12.2987,8.1753}},
- textString="idref",
- fontName="Arial"),Text(
- visible=true,
- origin={-77.7013,21.8247},
- fillPattern=FillPattern.Solid,
- extent={{-12.2987,-8.1753},{12.2987,8.1753}},
- textString="iqref",
- fontName="Arial"),Text(
- visible=true,
- origin={74.8853,-74.849},
- fillPattern=FillPattern.Solid,
- extent={{-12.2987,-8.1753},{12.2987,8.1753}},
- textString="P,pu",
- fontName="Arial"),Text(
- visible=true,
- origin={16.0747,3.9219},
- fillPattern=FillPattern.Solid,
- extent={{-66.0747,-43.9219},{66.0747,43.9219}},
- textString="StaticGen",
- fontName="Arial"),Rectangle(
- visible=true,
- fillColor={255,255,255},
- extent={{-100.0,-100.0},{100.0,100.0}}),Text(
- visible=true,
- origin={73.4293,69.8619},
- fillPattern=FillPattern.Solid,
- extent={{-19.0262,-13.6751},{19.0262,13.6751}},
- textString="Vac,pu",
- fontName="Arial")}),
- Diagram(coordinateSystem(
- extent={{-148.5,-105.0},{148.5,105.0}},
- preserveAspectRatio=true,
- initialScale=0.1,
- grid={5,5})),
- Documentation(info="
-
-
-Reference |
-TBD |
-
-
-Last update |
-TBD |
-
-
-Author |
-Joan Russinol, SmarTS Lab, KTH Royal Institute of Technology |
-
-
-Contact |
-luigiv@kth.se |
-
-
-"));
- end Staticgenerator;
- annotation (Diagram(coordinateSystem(
- extent={{-148.5,-105.0},{148.5,105.0}},
- preserveAspectRatio=true,
- initialScale=0.1,
- grid={5,5})), Documentation);
- end PFblocks;
-
- package Auxiliary
- model AtoPU
- Modelica.Blocks.Interfaces.RealOutput y0 annotation (Placement(
- visible=true,
- transformation(
- origin={155.0,-0.0},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0),
- iconTransformation(
- origin={110.0,0.0},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- Modelica.Blocks.Interfaces.RealInput yi annotation (Placement(
- visible=true,
- transformation(
- origin={-155.0,0.0},
- extent={{-20.0,-20.0},{20.0,20.0}},
- rotation=0),
- iconTransformation(
- origin={-120.0,-0.0},
- extent={{-20.0,-20.0},{20.0,20.0}},
- rotation=0)));
- parameter Real Pnen;
- parameter Real UdcN;
- equation
- y0 = yi/Pnen*1000/UdcN;
- annotation (
- Icon(coordinateSystem(
- extent={{-100.0,-100.0},{100.0,100.0}},
- preserveAspectRatio=true,
- initialScale=0.1,
- grid={10,10}), graphics={Text(
- visible=true,
- origin={1.9581,1.6889},
- fillPattern=FillPattern.Solid,
- extent={{-31.9581,-31.6889},{31.9581,31.6889}},
- textString="A_to_pu",
- fontName="Arial"),Rectangle(
- visible=true,
- fillColor={255,255,255},
- extent={{-100.0,-100.0},{100.0,100.0}})}),
- Diagram(coordinateSystem(
- extent={{-148.5,-105.0},{148.5,105.0}},
- preserveAspectRatio=true,
- initialScale=0.1,
- grid={5,5})),
- Documentation(info="
-
-
-Reference |
-TBD |
-
-
-Last update |
-TBD |
-
-
-Author |
-Joan Russinol, SmarTS Lab, KTH Royal Institute of Technology |
-
-
-Contact |
-luigiv@kth.se |
-
-
-"));
- end AtoPU;
-
- model Calcurrent
- parameter Real Udc0=700 "Initial dc voltage";
- Modelica.Blocks.Interfaces.RealInput yi annotation (Placement(
- visible=true,
- transformation(
- origin={-155.0,40.0},
- extent={{-20.0,-20.0},{20.0,20.0}},
- rotation=0),
- iconTransformation(
- origin={-120.0,40.0},
- extent={{-20.0,-20.0},{20.0,20.0}},
- rotation=0)));
- Modelica.Blocks.Interfaces.RealInput udc(start=Udc0) annotation (Placement(
- visible=true,
- transformation(
- origin={-150.0,-15.0},
- extent={{-20.0,-20.0},{20.0,20.0}},
- rotation=0),
- iconTransformation(
- origin={-120.0,-50.0},
- extent={{-20.0,-20.0},{20.0,20.0}},
- rotation=0)));
- Modelica.Blocks.Interfaces.RealOutput yo annotation (Placement(
- visible=true,
- transformation(
- origin={157.5089,7.3692},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0),
- iconTransformation(
- origin={110.0,0.0},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- equation
- yo = yi/udc*1000000;
- annotation (
- Icon(coordinateSystem(
- extent={{-100.0,-100.0},{100.0,100.0}},
- preserveAspectRatio=true,
- initialScale=0.1,
- grid={10,10}), graphics={Text(
- visible=true,
- origin={-80.1182,38.5265},
- fillPattern=FillPattern.Solid,
- extent={{-13.2292,-11.4735},{13.2292,11.4735}},
- textString="0",
- fontName="Arial"),Text(
- visible=true,
- origin={-80.0,-51.4735},
- fillPattern=FillPattern.Solid,
- extent={{-13.2292,-11.4735},{13.2292,11.4735}},
- textString="1",
- fontName="Arial"),Text(
- visible=true,
- origin={76.7708,-0.0},
- fillPattern=FillPattern.Solid,
- extent={{-13.2292,-11.4735},{13.2292,11.4735}},
- textString="out",
- fontName="Arial"),Rectangle(
- visible=true,
- fillColor={255,255,255},
- extent={{-100.0,-100.0},{100.0,100.0}}),Text(
- visible=true,
- origin={-2.514,58.5651},
- fillPattern=FillPattern.Solid,
- extent={{-27.486,-14.5669},{27.486,14.5669}},
- textString="Calc_current",
- fontName="Arial")}),
- Diagram(coordinateSystem(
- extent={{-148.5,-105.0},{148.5,105.0}},
- preserveAspectRatio=true,
- initialScale=0.1,
- grid={5,5})),
- Documentation(info="
-
-
-Reference |
-TBD |
-
-
-Last update |
-TBD |
-
-
-Author |
-Joan Russinol, SmarTS Lab, KTH Royal Institute of Technology |
-
-
-Contact |
-luigiv@kth.se |
-
-
-"));
- end Calcurrent;
-
- model Capacitor
- Modelica.Blocks.Interfaces.RealOutput y0 annotation (Placement(
- visible=true,
- transformation(
- origin={155.0,-0.0},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0),
- iconTransformation(
- origin={110.0,0.0},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- Modelica.Blocks.Interfaces.RealInput yi annotation (Placement(
- visible=true,
- transformation(
- origin={-155.0,0.0},
- extent={{-20.0,-20.0},{20.0,20.0}},
- rotation=0),
- iconTransformation(
- origin={-120.0,-0.0},
- extent={{-20.0,-20.0},{20.0,20.0}},
- rotation=0)));
- Real x(start=Udc0/(1000*UdcN));
- parameter Real C;
- parameter Real Udc0;
- parameter Real UdcN;
- equation
- y0 = x;
- der(x) = yi/C;
- annotation (
- Icon(coordinateSystem(
- extent={{-100.0,-100.0},{100.0,100.0}},
- preserveAspectRatio=true,
- initialScale=0.1,
- grid={10,10}), graphics={Rectangle(
- visible=true,
- fillColor={255,255,255},
- extent={{-100.0,-100.0},{100.0,100.0}}),Text(
- visible=true,
- origin={0.0,2.2296},
- fillPattern=FillPattern.Solid,
- extent={{-23.283,-44.4441},{23.283,44.4441}},
- textString="Capacitor",
- fontName="Arial")}),
- Diagram(coordinateSystem(
- extent={{-148.5,-105.0},{148.5,105.0}},
- preserveAspectRatio=true,
- initialScale=0.1,
- grid={5,5})),
- Documentation(info="
-
-
-Reference |
-TBD |
-
-
-Last update |
-TBD |
-
-
-Author |
-Joan Russinol, SmarTS Lab, KTH Royal Institute of Technology |
-
-
-Contact |
-luigiv@kth.se |
-
-
-"));
- end Capacitor;
-
- model InputSelectorEpsilon
- Modelica.Blocks.Interfaces.RealInput vd(start=700) annotation (Placement(
- visible=true,
- transformation(
- origin={-167.6662,80.0},
- extent={{-20.0,-20.0},{20.0,20.0}},
- rotation=0),
- iconTransformation(
- origin={-120.0,77.7142},
- extent={{-20.0,-20.0},{20.0,20.0}},
- rotation=0)));
- Modelica.Blocks.Interfaces.RealInput id(start=641.2) annotation (Placement(
- visible=true,
- transformation(
- origin={-168.2292,30.0},
- extent={{-20.0,-20.0},{20.0,20.0}},
- rotation=0),
- iconTransformation(
- origin={-120.0,24.2671},
- extent={{-20.0,-20.0},{20.0,20.0}},
- rotation=0)));
- Modelica.Blocks.Interfaces.RealInput dv(start=0) annotation (Placement(
- visible=true,
- transformation(
- origin={-167.9388,-21.6068},
- extent={{-20.0,-20.0},{20.0,20.0}},
- rotation=0),
- iconTransformation(
- origin={-120.0,-27.4532},
- extent={{-20.0,-20.0},{20.0,20.0}},
- rotation=0)));
- Modelica.Blocks.Interfaces.RealInput di(start=0) annotation (Placement(
- visible=true,
- transformation(
- origin={-170.0,-80.0},
- extent={{-20.0,-20.0},{20.0,20.0}},
- rotation=0),
- iconTransformation(
- origin={-120.0,-84.009},
- extent={{-20.0,-20.0},{20.0,20.0}},
- rotation=0)));
- Modelica.Blocks.Interfaces.RealOutput k(start=0) annotation (Placement(
- visible=true,
- transformation(
- origin={160.0,0.0},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0),
- iconTransformation(
- origin={110.0,0.0},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
-
- function Inputselectorfunction
- input Real vd;
- input Real id;
- input Real dv;
- input Real di;
- output Real k;
- parameter Real Epsilon=0.01;
- algorithm
- if dv == 0 then
- if di == 0 then
- k := 0;
- elseif di > 0 then
- k := 1;
- elseif di < 0 then
- k := -1;
- end if;
- else
- if abs(di/dv + id/vd) < Epsilon then
- k := 0;
- else
- if di/dv + id/vd > 0 then
- k := 1;
- else
- k := -1;
- end if;
- end if;
- end if;
- annotation (
- Diagram(coordinateSystem(
- extent={{-148.5,-105.0},{148.5,105.0}},
- preserveAspectRatio=true,
- initialScale=0.1,
- grid={5,5})),
- Diagram(coordinateSystem(
- extent={{-148.5,-105.0},{148.5,105.0}},
- preserveAspectRatio=true,
- initialScale=0.1,
- grid={5,5})),
- Documentation);
- end Inputselectorfunction;
- algorithm
- k := Inputselectorfunction(
- vd,
- id,
- dv,
- di);
- annotation (
- Icon(coordinateSystem(
- extent={{-100.0,-100.0},{100.0,100.0}},
- preserveAspectRatio=true,
- initialScale=0.1,
- grid={10,10}), graphics={Text(
- visible=true,
- origin={-85.4693,77.294},
- fillPattern=FillPattern.Solid,
- extent={{-8.7699,-10.7022},{8.7699,10.7022}},
- textString="0",
- fontName="Arial"),Text(
- visible=true,
- origin={-83.7123,27.3769},
- fillPattern=FillPattern.Solid,
- extent={{-8.7699,-10.7022},{8.7699,10.7022}},
- textString="1",
- fontName="Arial"),Text(
- visible=true,
- origin={-84.3336,-26.9995},
- fillPattern=FillPattern.Solid,
- extent={{-8.7699,-10.7022},{8.7699,10.7022}},
- textString="2",
- fontName="Arial"),Text(
- visible=true,
- origin={-83.4684,-82.2678},
- fillPattern=FillPattern.Solid,
- extent={{-8.7699,-10.7022},{8.7699,10.7022}},
- textString="3",
- fontName="Arial"),Text(
- visible=true,
- origin={75.8495,0.7022},
- fillPattern=FillPattern.Solid,
- extent={{-8.7699,-10.7022},{8.7699,10.7022}},
- textString="k",
- fontName="Arial"),Rectangle(
- visible=true,
- fillColor={255,255,255},
- extent={{-100.0,-100.0},{100.0,100.0}})}),
- Diagram(coordinateSystem(
- extent={{-148.5,-105.0},{148.5,105.0}},
- preserveAspectRatio=true,
- initialScale=0.1,
- grid={5,5})),
- Documentation(info="
-
-
-Reference |
-TBD |
-
-
-Last update |
-TBD |
-
-
-Author |
-Joan Russinol, SmarTS Lab, KTH Royal Institute of Technology |
-
-
-Contact |
-luigiv@kth.se |
-
-
-"));
- end InputSelectorEpsilon;
-
- model PI
- Modelica.Blocks.Interfaces.RealInput yi annotation (Placement(
- visible=true,
- transformation(
- origin={-137.6396,33.4951},
- extent={{-20.0,-20.0},{20.0,20.0}},
- rotation=0),
- iconTransformation(
- origin={-120.0,0.0},
- extent={{-20.0,-20.0},{20.0,20.0}},
- rotation=0)));
- Modelica.Blocks.Interfaces.RealOutput yo annotation (Placement(
- visible=true,
- transformation(
- origin={105.0,35.0},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0),
- iconTransformation(
- origin={110.0,0.0},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- parameter Real K;
- parameter Real T;
- parameter Real xo;
- parameter Real Ymax;
- parameter Real Ymin;
- Real x(start=xo);
- Real x1(start=xo);
- equation
- if x > Ymax then
- x1 = Ymax;
- elseif x < Ymin then
- x1 = Ymin;
- else
- x1 = x;
- end if;
- der(x) = K*yi/T;
- yo = K*yi + x1;
- annotation (
- Icon(coordinateSystem(
- extent={{-100.0,-100.0},{100.0,100.0}},
- preserveAspectRatio=true,
- initialScale=0.1,
- grid={10,10}), graphics={Text(
- visible=true,
- origin={-13.5393,7.4321},
- fillPattern=FillPattern.Solid,
- extent={{-43.5393,-25.2692},{43.5393,25.2692}},
- textString="PI",
- fontName="Arial"),Rectangle(
- visible=true,
- fillColor={255,255,255},
- extent={{-100.0,-100.0},{100.0,100.0}}),Rectangle(
- visible=true,
- origin={151.9125,3.2701},
- fillColor={255,255,255},
- extent={{-0.2973,-3.2701},{0.2973,3.2701}})}),
- Diagram(coordinateSystem(
- extent={{-148.5,-105.0},{148.5,105.0}},
- preserveAspectRatio=true,
- initialScale=0.1,
- grid={5,5})),
- Documentation(info="
-
-
-Reference |
-TBD |
-
-
-Last update |
-TBD |
-
-
-Author |
-Joan Russinol, SmarTS Lab, KTH Royal Institute of Technology |
-
-
-Contact |
-luigiv@kth.se |
-
-
-"));
- end PI;
-
- model PQ1
- OpenIPSL.Interfaces.PwPin p annotation (Placement(
- visible=true,
- transformation(
- origin={55.0,22.7992},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0),
- iconTransformation(
- origin={-110.0,0.0},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- parameter Real SystemBase=100;
- parameter Real Sn=10;
- parameter Real CoB=Sn/SystemBase;
- parameter Real v0=1.00018548610126 "voltage magnitude after power flow, pu";
- parameter Real anglev0=-0.0000253046024029618
- "voltage angle after power flow";
- parameter Real P0=0.4 "active power,pu";
- parameter Real Q0=0.3 "reactive power,pu";
- parameter Real Pref=P0*CoB;
- parameter Real Qref=Q0*CoB;
- parameter Real vd0=-v0*sin(anglev0) "Initialitation";
- parameter Real vq0=v0*cos(anglev0) "Initialitation";
- parameter Real Td=15 "d-axis inverter time constant";
- parameter Real Tq=15 "q-axis inverter time constant";
- parameter Real idref=(vq0*Qref + Pref*vd0)/(vq0^2 + vd0^2) "Initialitation";
- parameter Real iqref=((-vd0*Qref) + Pref*vq0)/(vq0^2 + vd0^2)
- "Initialitation";
- Real idref1(start=idref);
- Real iqref1(start=iqref);
- Real v;
- Real anglev;
- Real id(start=idref);
- Real iq(start=iqref);
- Real vd(start=vd0);
- Real vq(start=vq0);
- Real Pgen(start=Pref);
- Real Q(start=Qref);
- Modelica.Blocks.Interfaces.RealInput P(start=Pref) annotation (Placement(
- visible=true,
- transformation(
- origin={165.1089,40.5794},
- extent={{-20.0,-20.0},{20.0,20.0}},
- rotation=0),
- iconTransformation(
- origin={120.0,60.0},
- extent={{-20.0,-20.0},{20.0,20.0}},
- rotation=-180)));
- equation
- Pgen = vd*id + vq*iq;
- Q = vq*id - vd*iq;
- idref1 = (vq*Qref + P*vd)/(vq^2 + vd^2);
- iqref1 = ((-vd*Qref) + P*vq)/(vq^2 + vd^2);
- der(id) = (idref1 - id)/Td;
- der(iq) = (iqref1 - iq)/Tq;
- v = sqrt(p.vr^2 + p.vi^2);
- anglev = atan2(p.vi, p.vr);
- p.ir = -iq
- "change of sign due to the fact than in modelica when entering is + and in this case is going out";
- p.ii = id
- "change of sign due to the fact than in modelica when entering is + and in this case is going out";
- p.vr = vq;
- p.vi = -vd;
- annotation (
- Icon(coordinateSystem(
- extent={{-100.0,-100.0},{100.0,100.0}},
- preserveAspectRatio=true,
- initialScale=0.1,
- grid={10,10}), graphics={Rectangle(
- visible=true,
- fillColor={255,255,255},
- extent={{-100.0,-100.0},{100.0,100.0}}),Text(
- visible=true,
- origin={0.0,15.3102},
- fillPattern=FillPattern.Solid,
- extent={{-31.415,-20.0667},{31.415,20.0667}},
- textString="%name",
- fontName="Arial")}),
- Diagram(coordinateSystem(
- extent={{-148.5,-105.0},{148.5,105.0}},
- preserveAspectRatio=true,
- initialScale=0.1,
- grid={5,5})),
- Documentation(info="
-
-
-Reference |
-TBD |
-
-
-Last update |
-TBD |
-
-
-Author |
-Joan Russinol, SmarTS Lab, KTH Royal Institute of Technology |
-
-
-Contact |
-luigiv@kth.se |
-
-
-"));
- end PQ1;
-
- model pu_to_A
- Modelica.Blocks.Interfaces.RealOutput y0 annotation (Placement(
- visible=true,
- transformation(
- origin={160.0,0.0},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0),
- iconTransformation(
- origin={110.0,0.0},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- Modelica.Blocks.Interfaces.RealInput yi annotation (Placement(
- visible=true,
- transformation(
- origin={-155.0,0.0},
- extent={{-20.0,-20.0},{20.0,20.0}},
- rotation=0),
- iconTransformation(
- origin={-120.0,-0.0},
- extent={{-20.0,-20.0},{20.0,20.0}},
- rotation=0)));
- parameter Real Pnen;
- parameter Real UdcN;
- equation
- y0 = yi*UdcN*1000;
- annotation (
- Icon(coordinateSystem(
- extent={{-100.0,-100.0},{100.0,100.0}},
- preserveAspectRatio=true,
- initialScale=0.1,
- grid={10,10}), graphics={Text(
- visible=true,
- origin={1.9581,1.6889},
- fillPattern=FillPattern.Solid,
- extent={{-31.9581,-31.6889},{31.9581,31.6889}},
- textString="A_to_pu",
- fontName="Arial"),Rectangle(
- visible=true,
- fillColor={255,255,255},
- extent={{-100.0,-100.0},{100.0,100.0}})}),
- Diagram(coordinateSystem(
- extent={{-148.5,-105.0},{148.5,105.0}},
- preserveAspectRatio=true,
- initialScale=0.1,
- grid={5,5})),
- Documentation(info="
-
-
-Reference |
-TBD |
-
-
-Last update |
-TBD |
-
-
-Author |
-Joan Russinol, SmarTS Lab, KTH Royal Institute of Technology |
-
-
-Contact |
-luigiv@kth.se |
-
-
-"));
- end pu_to_A;
-
- model PVarray
- Modelica.Blocks.Interfaces.RealInput V1(start=Vmp) "Voltage" annotation (
- Placement(
- visible=true,
- transformation(
- origin={-168.2602,-0.0},
- extent={{-20.0,-20.0},{20.0,20.0}},
- rotation=0),
- iconTransformation(
- origin={-120.0,70.0},
- extent={{-20.0,-20.0},{20.0,20.0}},
- rotation=0)));
- parameter Real Vt=(2*Vmp - Vocref)*(Iscref - Imp)/(Imp + (Iscref - Imp)*log((
- Iscref - Imp)/Iscref));
- parameter Real Rs=(Vt*log((Iscref - Imp)/Iscref) + Vocref - Vmp)/Imp;
- Modelica.Blocks.Interfaces.RealInput E(start=Estc) "Irradiance" annotation (
- Placement(
- visible=true,
- transformation(
- origin={-170.0,80.0},
- extent={{-20.0,-20.0},{20.0,20.0}},
- rotation=0),
- iconTransformation(
- origin={-120.0,0.0},
- extent={{-20.0,-20.0},{20.0,20.0}},
- rotation=0)));
- Modelica.Blocks.Interfaces.RealInput T(start=Tstc) "Temperature" annotation (
- Placement(
- visible=true,
- transformation(
- origin={-168.0185,40.0},
- extent={{-20.0,-20.0},{20.0,20.0}},
- rotation=0),
- iconTransformation(
- origin={-120.0,-70.0},
- extent={{-20.0,-20.0},{20.0,20.0}},
- rotation=0)));
- parameter Real Imp=1;
- parameter Real Vmp=1;
- parameter Real Iscref=1
- "Module short-circuit current reference at reference temp and irradiance";
- parameter Real Vocref=1
- "Module open-circuit voltage reference at reference temp and irradiance";
- parameter Real Kv=1 "temperature correction factor for the voltage";
- parameter Real Ki=1 "temperature correction factor for the current";
- parameter Real Tstc=1 "Temperature at the standard test conditions";
- parameter Real Estc=1 "Irradiance at the standard test conditions";
- Real Voct;
- Real Voc;
- Real Isct;
- Real Isc;
- Real I0 "diode dark current";
- Real Iph;
- Real Id;
- Modelica.Blocks.Interfaces.RealOutput I(start=Imp) annotation (Placement(
- visible=true,
- transformation(
- origin={160.0,60.0},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0),
- iconTransformation(
- origin={110.0,40.0},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- Modelica.Blocks.Interfaces.RealOutput V(start=Vmp) annotation (Placement(
- visible=true,
- transformation(
- origin={160.0,21.9548},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0),
- iconTransformation(
- origin={110.0,-34.2738},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- equation
- Voct = Vocref + Kv*(T - Tstc);
- Voc = Voct*log(E)/log(Estc);
- Isct = Iscref*(1 + Ki/100*(T - Tstc));
- Isc = Isct*E/Estc;
- I0 = Isct/exp(Voct/Vt);
- Iph = Isc;
- Id = I0*exp((V + I*Rs)/Vt);
- I = Iph - Id;
- V = V1;
- annotation (
- Icon(coordinateSystem(
- extent={{-100.0,-100.0},{100.0,100.0}},
- preserveAspectRatio=true,
- initialScale=0.1,
- grid={10,10}), graphics={Rectangle(
- visible=true,
- fillColor={255,255,255},
- extent={{-100.0,-100.0},{100.0,100.0}}),Text(
- visible=true,
- origin={40.0,0.0},
- fillPattern=FillPattern.Solid,
- extent={{-45.9305,-23.3368},{45.9305,23.3368}},
- textString="%name",
- fontName="Arial"),Text(
- visible=true,
- origin={-46.5008,63.2046},
- fillPattern=FillPattern.Solid,
- extent={{-51.9003,-55.1779},{51.9003,55.1779}},
- textString="Vdc(ex=35)",
- fontName="Arial"),Text(
- visible=true,
- origin={-80.0,0.0},
- fillPattern=FillPattern.Solid,
- extent={{-12.8628,-13.6751},{12.8628,13.6751}},
- textString="E",
- fontName="Arial"),Text(
- visible=true,
- origin={-80.0,-70.0},
- fillPattern=FillPattern.Solid,
- extent={{-12.8628,-13.6751},{12.8628,13.6751}},
- textString="T",
- fontName="Arial"),Text(
- visible=true,
- origin={70.7131,40.0},
- fillPattern=FillPattern.Solid,
- extent={{-20.7131,-17.8652},{20.7131,17.8652}},
- textString="Ipv(4.58)",
- fontName="Arial"),Text(
- visible=true,
- origin={70.0,-37.1013},
- fillPattern=FillPattern.Solid,
- extent={{-25.1013,-17.1013},{25.1013,17.1013}},
- textString="Vpv(35)",
- fontName="Arial")}),
- Diagram(coordinateSystem(
- extent={{-148.5,-105.0},{148.5,105.0}},
- preserveAspectRatio=true,
- initialScale=0.1,
- grid={5,5})),
- Documentation(info="
-
-
-Reference |
-TBD |
-
-
-Last update |
-TBD |
-
-
-Author |
-Joan Russinol, SmarTS Lab, KTH Royal Institute of Technology |
-
-
-Contact |
-luigiv@kth.se |
-
-
-"));
- end PVarray;
-
- model SimpleLagg
- Modelica.Blocks.Interfaces.RealInput yi annotation (Placement(
- visible=true,
- transformation(
- origin={-137.6396,33.4951},
- extent={{-20.0,-20.0},{20.0,20.0}},
- rotation=0),
- iconTransformation(
- origin={-120.0,0.0},
- extent={{-20.0,-20.0},{20.0,20.0}},
- rotation=0)));
- Modelica.Blocks.Interfaces.RealOutput yo annotation (Placement(
- visible=true,
- transformation(
- origin={105.0,35.0},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0),
- iconTransformation(
- origin={110.0,0.0},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- parameter Real T=0.002;
- parameter Real xo;
- Real x(start=xo);
- equation
- der(x) = (yi - x)/T;
- yo = x;
- annotation (
- Icon(coordinateSystem(
- extent={{-100.0,-100.0},{100.0,100.0}},
- preserveAspectRatio=true,
- initialScale=0.1,
- grid={10,10}), graphics={Text(
- visible=true,
- origin={-13.5393,7.4321},
- fillPattern=FillPattern.Solid,
- extent={{-43.5393,-25.2692},{43.5393,25.2692}},
- textString="SimpleLagg",
- fontName="Arial"),Rectangle(
- visible=true,
- fillColor={255,255,255},
- extent={{-100.0,-100.0},{100.0,100.0}}),Rectangle(
- visible=true,
- origin={151.9125,3.2701},
- fillColor={255,255,255},
- extent={{-0.2973,-3.2701},{0.2973,3.2701}})}),
- Diagram(coordinateSystem(
- extent={{-148.5,-105.0},{148.5,105.0}},
- preserveAspectRatio=true,
- initialScale=0.1,
- grid={5,5})),
- Documentation(info="
-
-
-Reference |
-TBD |
-
-
-Last update |
-TBD |
-
-
-Author |
-Joan Russinol, SmarTS Lab, KTH Royal Institute of Technology |
-
-
-Contact |
-luigiv@kth.se |
-
-
-"));
- end SimpleLagg;
-
- model Terminator
- Modelica.Blocks.Interfaces.RealInput V annotation (Placement(
- visible=true,
- transformation(
- origin={-155.0,1.9703},
- extent={{-20.0,-20.0},{20.0,20.0}},
- rotation=0),
- iconTransformation(
- origin={-120.0,0.0},
- extent={{-20.0,-20.0},{20.0,20.0}},
- rotation=0)));
- parameter Real T1=0.1;
- parameter Real T2=0.05;
- parameter Real Step=0.001;
- parameter Real Iniv123;
- parameter Real Inidv;
- Real[:] Value;
- Real v123(start=Iniv123);
- Real dv(start=Inidv);
- Integer i(start=1);
- algorithm
- Value[i] := V;
- if time < T1 then
- v123 := Iniv123;
- dv := Inidv;
- else
- v123 := Value[i - 50];
- dv := Value[i - 100];
- end if;
- i := i + 1;
- annotation (
- Icon(coordinateSystem(
- extent={{-100.0,-100.0},{100.0,100.0}},
- preserveAspectRatio=true,
- initialScale=0.1,
- grid={10,10}), graphics={Rectangle(
- visible=true,
- fillColor={255,255,255},
- extent={{-100.0,-100.0},{100.0,100.0}})}),
- Diagram(coordinateSystem(
- extent={{-148.5,-105.0},{148.5,105.0}},
- preserveAspectRatio=true,
- initialScale=0.1,
- grid={5,5})),
- Documentation(info="
-
-
-Reference |
-TBD |
-
-
-Last update |
-TBD |
-
-
-Author |
-Joan Russinol, SmarTS Lab, KTH Royal Institute of Technology |
-
-
-Contact |
-luigiv@kth.se |
-
-
-"));
- end Terminator;
- annotation (Diagram(coordinateSystem(
- extent={{-148.5,-105.0},{148.5,105.0}},
- preserveAspectRatio=true,
- initialScale=0.1,
- grid={5,5})), Documentation);
- end Auxiliary;
-
- model PFmodelmpptCorrected05MW
- parameter Real SystemBase=100 "MVa";
- parameter Real v0=0.99422 "Power flow, node voltage";
- parameter Real anglev0=0.00158 "Power flow, node angle";
- parameter Real p0=0.44884 "Power flow, node active power";
- parameter Real q0=0 "Power flow, node reactive power";
- OpenIPSL.Electrical.Solar.KTH.PFblocks.PVnew PVnew1 annotation (
- Placement(visible=true, transformation(
- origin={-95.0,-5.0},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- OpenIPSL.Electrical.Solar.KTH.PFblocks.DCBusBar DCBusBar1
- annotation (Placement(visible=true, transformation(
- origin={-12.3692,15.0},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- Modelica.Blocks.Interfaces.RealInput E annotation (Placement(
- visible=true,
- transformation(
- origin={-170.0,-5.0},
- extent={{-20.0,-20.0},{20.0,20.0}},
- rotation=0),
- iconTransformation(
- origin={-120.0,50.0},
- extent={{-20.0,-20.0},{20.0,20.0}},
- rotation=0)));
- Modelica.Blocks.Interfaces.RealInput T annotation (Placement(
- visible=true,
- transformation(
- origin={-170.0,-41.9393},
- extent={{-20.0,-20.0},{20.0,20.0}},
- rotation=0),
- iconTransformation(
- origin={-120.0,-50.0},
- extent={{-20.0,-20.0},{20.0,20.0}},
- rotation=0)));
- Modelica.Blocks.Sources.Constant const3(k=v0) annotation (Placement(visible=
- true, transformation(
- origin={20.0,26.001},
- extent={{-3.999,-3.999},{3.999,3.999}},
- rotation=0)));
- OpenIPSL.Electrical.Solar.KTH.PFblocks.Controller controller1(
- xq=xq,
- xd=xd,
- v0=v0) annotation (Placement(visible=true, transformation(
- origin={67.0368,11.8218},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- OpenIPSL.Electrical.Solar.KTH.PFblocks.Staticgenerator staticgenerator1(
- v0=v0,
- anglev0=anglev0,
- p0=p0,
- q0=q0) annotation (Placement(visible=true, transformation(
- origin={110.0,5.0},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- OpenIPSL.Interfaces.PwPin pwPin1(vi(start=v0*sin(anglev0)), vr(
- start=v0*cos(anglev0))) annotation (Placement(
- visible=true,
- transformation(
- origin={145.0,3.4396},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0),
- iconTransformation(
- origin={110.0,0.0},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- Modelica.Blocks.Sources.Constant const5(k=700) annotation (Placement(visible=
- true, transformation(
- origin={33.999,-5.0},
- extent={{-3.999,-3.999},{3.999,3.999}},
- rotation=0)));
- Modelica.Blocks.Math.Gain gain1(k=1) annotation (Placement(visible=true,
- transformation(
- origin={35.0,-28.2447},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=-180)));
- protected
- parameter Real vr=v0*cos(anglev0);
- parameter Real vi=v0*sin(anglev0);
- parameter Real A=vi*cos(anglev0) - vr*sin(anglev0);
- parameter Real B=vr*cos(anglev0) + vi*sin(anglev0);
- parameter Real idref0=(p0*B + q0*A)/(A^2 + B^2);
- parameter Real iqref0=((-q0*B) + p0*A)/(A^2 + B^2) "
-
- parameter Real vd0=-v0*sin(anglev0) ;
- parameter Real vq0=v0*cos(anglev0) ;
- parameter Real iqref0=2*(vq0*q0 + p0*vd0)/(vq0^2 + vd0^2) ;
- parameter Real idref0=2*(-vd0*q0 + p0*vq0)/(vq0^2 + vd0^2) ";
- parameter Real xq=2*iqref0*1.02;
- parameter Real xd=2*idref0*1.02;
- equation
- connect(gain1.y, DCBusBar1.Pac) annotation (Line(
- visible=true,
- origin={-25.8892,0.9021},
- points={{49.8892,-29.1468},{-26.4646,-29.1468},{-26.4646,19.0979},{1.52,
- 19.0979},{1.52,20.0979}},
- color={0,0,127}));
- connect(DCBusBar1.Vdc, controller1.udc) annotation (Line(
- visible=true,
- origin={30.748,11.7644},
- points={{-32.1172,3.2356},{-8.2302,3.2356},{-8.2302,-1.7644},{24.2888,-1.7644},
- {24.2888,-2.9426}},
- color={0,0,127}));
- connect(staticgenerator1.iq_ref, controller1.iq_ref) annotation (Line(
- visible=true,
- origin={84.5276,6.9973},
- points={{13.4724,0.0027},{-3.4908,0.0027},{-3.4908,-0.00273},{-6.4908,-0.00273}},
- color={0,0,127}));
-
- connect(controller1.id_ref, staticgenerator1.id_ref) annotation (Line(
- visible=true,
- origin={91.5092,13.9109},
- points={{-13.4724,1.9109},{3.4908,1.9109},{3.4908,-1.9109},{6.4908,-1.9109}},
- color={0,0,127}));
-
- connect(staticgenerator1.v, controller1.uac) annotation (Line(
- visible=true,
- origin={96.2147,25.1802},
- points={{24.7853,-13.1802},{28.7853,-13.1802},{28.7853,16.3594},{-41.1779,
- 16.3594},{-41.1779,-6.3584}},
- color={0,0,127}));
- connect(controller1.Vdcref, const5.y) annotation (Line(
- visible=true,
- origin={44.0576,-0.5891},
- points={{10.9792,4.4109},{-2.6597,4.4109},{-2.6597,-4.4109},{-5.6597,-4.4109}},
- color={0,0,127}));
-
- connect(const3.y, controller1.Vacref) annotation (Line(
- visible=true,
- origin={45.8773,19.9114},
- points={{-21.4784,6.0896},{6.1595,6.0896},{6.1595,-6.0896},{9.1595,-6.0896}},
- color={0,0,127}));
-
- connect(staticgenerator1.P, gain1.u) annotation (Line(
- visible=true,
- origin={93.0,-18.6575},
- points={{28,16.1362},{32,16.1362},{32,-11.3425},{-46,-11.3425},{-46,-9.5872}},
- color={0,0,127}));
-
- connect(PVnew1.Udc, DCBusBar1.Vdc) annotation (Line(
- visible=true,
- origin={-53.6023,19.0},
- points={{-53.3977,-17.0},{-56.3977,-17.0},{-56.3977,21.0},{56.98,21.0},{
- 56.98,-4.0},{52.2331,-4.0}},
- color={0,0,127}));
- connect(staticgenerator1.p, pwPin1) annotation (Line(
- visible=true,
- origin={132.5,4.2198},
- points={{-11.5,0.7802},{-0.5,0.7802},{-0.5,-0.7802},{12.5,-0.7802}}));
- connect(T, PVnew1.T) annotation (Line(
- visible=true,
- origin={-124.25,-26.9696},
- points={{-45.75,-14.9697},{14.25,-14.9697},{14.25,14.9696},{17.25,14.9696}},
- color={0,0,127}));
-
- connect(E, PVnew1.E) annotation (Line(
- visible=true,
- origin={-138.5,-5.0},
- points={{-31.5,0.0},{31.5,0.0}},
- color={0,0,127}));
- connect(PVnew1.Iarray, DCBusBar1.Ipv) annotation (Line(
- visible=true,
- origin={-64.5923,3.5},
- points={{-19.4077,-8.5},{-10.4077,-8.5},{-10.4077,8.5},{40.2231,8.5}},
- color={0,0,127}));
- annotation (
- Icon(coordinateSystem(
- extent={{-100.0,-100.0},{100.0,100.0}},
- preserveAspectRatio=true,
- initialScale=0.1,
- grid={10,10}), graphics={Text(
- visible=true,
- origin={-72.3502,50.0},
- fillPattern=FillPattern.Solid,
- extent={{-17.6498,-10.0},{17.6498,10.0}},
- textString="E",
- fontName="Arial"),Text(
- visible=true,
- origin={-72.3502,-50.0},
- fillPattern=FillPattern.Solid,
- extent={{-17.6498,-10.0},{17.6498,10.0}},
- textString="T",
- fontName="Arial"),Rectangle(
- visible=true,
- fillColor={255,255,255},
- extent={{-100.0,-100.0},{100.0,100.0}})}),
- Diagram(coordinateSystem(
- extent={{-148.5,-105.0},{148.5,105.0}},
- preserveAspectRatio=true,
- initialScale=0.1,
- grid={5,5})),
- Documentation(info="
-
-
-Reference |
-TBD |
-
-
-Last update |
-TBD |
-
-
-Author |
-Joan Russinol, SmarTS Lab, KTH Royal Institute of Technology |
-
-
-Contact |
-luigiv@kth.se |
-
-
-"));
- end PFmodelmpptCorrected05MW;
- annotation (Documentation);
- end KTH;
- annotation (Documentation);
- end Solar;
-
- package Wind
- package PSAT
- package PSAT_Type_3
- model PSAT_WT "Wind Turbine Doubly Fed Induction Generator"
- import Modelica.Constants.pi;
- ElecDynBlk elecDyn(
- Sbase=S_b,
- Vbus0=V_0,
- angle0=angle_0,
- Pc=P_0,
- Qc=Q_0,
- omega_m0=omega_m0,
- Pnom=Pnom,
- Vbase=V_b,
- freq=fn,
- Rs=Rs,
- Xs=Xs,
- Rr=Rr,
- Xr=Xr,
- Xm=Xm,
- Hm=Hm,
- x1=x1,
- x2=x2,
- i2Hm=i2Hm,
- wbase=wbase,
- k=k,
- poles=poles,
- ids0=ids0,
- iqs0=iqs0,
- idr0=idr0,
- iqr0=iqr0,
- vds0=vds0,
- vqs0=vqs0,
- vdr0=vdr0,
- vqr0=vqr0,
- Kv=Kv,
- Te=Te,
- idr_max=idr_max,
- idr_min=idr_min,
- iqr_max=iqr_max,
- iqr_min=iqr_min) annotation (Placement(visible=true, transformation(
- origin={-46.9875,-45.0},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- ElecBlk elecCircuit(
- Sbase=S_b,
- Vbus0=V_0,
- angle0=angle_0,
- Pc=P_0,
- Qc=Q_0,
- omega_m0=omega_m0,
- Pnom=Pnom,
- Vbase=V_b,
- freq=fn,
- Rs=Rs,
- Xs=Xs,
- Rr=Rr,
- Xr=Xr,
- Xm=Xm,
- Hm=Hm,
- x1=x1,
- i2Hm=i2Hm,
- wbase=wbase,
- k=k,
- poles=poles,
- ids0=ids0,
- iqs0=iqs0,
- idr0=idr0,
- iqr0=iqr0,
- vds0=vds0,
- vqs0=vqs0,
- vdr0=vdr0,
- vqr0=vqr0) annotation (Placement(visible=true, transformation(
- origin={43.0125,-50.0},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- WindBlk windBlk1(
- vw_base=vw_base,
- rho=rho,
- Sbase=S_b,
- ngb=ngb,
- poles=poles,
- freq=fn,
- wbase=wbase,
- l=l) annotation (Placement(visible=true, transformation(
- origin={15.4451,-15.0},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- MechaBlk mechaBlk1(
- Sbase=S_b,
- Pnom=Pnom,
- Hm=Hm,
- Pc=P_0) annotation (Placement(visible=true, transformation(
- origin={70.3869,-20.0},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- PitchControl pitchControl1(
- Kp=Kp,
- Tp=Tp,
- theta_p0=theta_p0,
- theta_p_max=theta_max,
- theta_p_min=theta_min) annotation (Placement(visible=true, transformation(
- origin={-46.9875,-15.0},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- Modelica.Blocks.Interfaces.RealInput Wind_Speed annotation (Placement(
- visible=true,
- transformation(
- origin={-111.9875,-2.3928},
- extent={{-20.0,-20.0},{20.0,20.0}},
- rotation=0),
- iconTransformation(
- origin={0.0,77.9903},
- extent={{-20.0,-20.0},{20.0,20.0}},
- rotation=-90)));
- OpenIPSL.Interfaces.PwPin pin annotation (Placement(
- visible=true,
- transformation(
- origin={-101.9875,-70.0},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0),
- iconTransformation(
- origin={-110.0,0.0},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- parameter Real V_0=1 "Voltage magnitude (pu)"
- annotation (Dialog(group="Power flow data"));
- parameter Real angle_0=-0.00243 "Voltage angle (deg.)"
- annotation (Dialog(group="Power flow data"));
- parameter Real P_0=0.0160000000000082 "Active power (pu)"
- annotation (Dialog(group="Power flow data"));
- parameter Real Q_0=0.030527374471207 "Reactive power (pu)"
- annotation (Dialog(group="Power flow data"));
- parameter Real S_b=100 "System base power(MVA)"
- annotation (Dialog(group="Power flow data"));
- parameter Real V_b=400 "Voltage rating kV"
- annotation (Dialog(group="Power flow data"));
- parameter Real Pnom=10 "Nominal Power (MVA)";
- parameter Real fn=50 "Frequency rating (Hz)";
- parameter Real rho=1.225 "Air Density (kg/m^3)";
- parameter Real vw_base=15 "Nominal wind speed (m/s)";
- parameter Real Rs_machine=0.01 "Stator Resistance (pu)";
- parameter Real Xs_machine=0.1 "Stator Reactance (pu)";
- parameter Real Rr_machine=0.01 "Rotor Resitance (pu)";
- parameter Real Xr_machine=0.08 "Rotor Reactance (pu)";
- parameter Real Xm_machine=3 "Magnetisation reactance (pu)";
- parameter Real Hm_machine=3 "Inertia (pu)";
- parameter Real Kp=10 "Pitch control gain (pu)";
- parameter Real Tp=3 "Pitch control time constant (s)";
- parameter Real Kv=10 "Voltage control gain (kV)";
- parameter Real Te=0.01 "Power Control time constant (s)";
- parameter Real l=75 "Blade length (m)";
- parameter Real poles=2 "Number of poles-pair";
- parameter Real nblades=3 "Number of blades";
- parameter Real ngb=0.01123596 "Gear box ratio";
- Real Vbus=elecCircuit.Vbus "Bus voltage magnitude (pu)";
- Real Anglebus=elecCircuit.Anglebus "Bus voltage angle (deg)";
- Real P=elecCircuit.p "Active power (pu)";
- Real Q=elecCircuit.q "Reactive power (pu)";
- protected
- parameter Real Rs=Rs_machine*S_b/Pnom "stator Resistance (pu)";
- parameter Real Xs=Xs_machine*S_b/Pnom "stator Reactance (pu)";
- parameter Real Rr=Rr_machine*S_b/Pnom "Rotor Resitance (pu)";
- parameter Real Xr=Xr_machine*S_b/Pnom "rotor Reactance (pu)";
- parameter Real Xm=Xm_machine*S_b/Pnom "magnetisation reactance (pu)";
- parameter Real Hm=Hm_machine*Pnom/S_b "inertia (pu)";
- parameter Real Pmax_machine=1 "Pmax (pu)";
- parameter Real Pmin_machine=0 "Pmin (pu)";
- parameter Real Qmax_machine=0.7 "Qmax (pu)";
- parameter Real Qmin_machine=-0.7 "Qmin (pu)";
- parameter Real Pmax=Pmax_machine*Pnom/S_b "Pmax (pu)";
- parameter Real Pmin=Pmin_machine*Pnom/S_b "Pmin (pu)";
- parameter Real Qmax=Qmax_machine*Pnom/S_b "Qmax (pu)";
- parameter Real Qmin=Qmin_machine*Pnom/S_b "Qmin (pu)";
- parameter Real x1=Xs + Xm;
- parameter Real x2=Xr + Xm;
- parameter Real iqr_max=-x1*Pmin/Xm;
- parameter Real iqr_min=-Pmax*x1/Xm;
- parameter Real idr_min=(-Qmax*x1/Xm) - x1/Xm^2;
- parameter Real idr_max=(-Qmin*x1/Xm) - x1/Xm^2;
- parameter Real theta_max=45;
- parameter Real theta_min=0;
- parameter Real omega_m0=min(max(0.5*P_0*S_b/Pnom + 0.5, 0.5), 1);
- parameter Real i2Hm=1/(2*Hm);
- parameter Real wbase=2*Modelica.Constants.pi*fn/poles;
- parameter Real k=x1*Pnom/V_0/Xm/S_b "gain for iqr_off computation";
- parameter Real theta_p0=0;
- parameter Real ids0=((-vds0^2) + vds0*Xm*iqr0 - x1*Q_0)/(Rs*vds0 - x1*vqs0);
- parameter Real iqs0=((-vds0*vqs0) + vqs0*Xm*iqr0 - Rs*Q_0)/(Rs*vds0 - x1*vqs0);
- parameter Real idr0=-(vqs0 + Rs*iqs0 + x1*ids0)/Xm;
- parameter Real iqr0=-x1*Pnom*(2*omega_m0 - 1)/V_0/Xm/S_b/omega_m0;
- parameter Real vds0=-V_0*sin(angle_0);
- parameter Real vqs0=V_0*cos(angle_0);
- parameter Real vdr0=(-Rr*idr0) + (1 - omega_m0)*(x2*iqr0 + Xm*iqs0);
- parameter Real vqr0=(-Rr*iqr0) - (1 - omega_m0)*(x2*idr0 + Xm*ids0);
- equation
- connect(pin, elecCircuit.pin) annotation (Line(
- visible=true,
- origin={-5.4875,-55.7974},
- points={{-96.5,-14.2026},{48.5,-14.2026},{48.5,-5.2026}}));
- connect(mechaBlk1.omega_m, elecDyn.omega_m) annotation (Line(
- visible=true,
- origin={40.3844,-34.0062},
- points={{38.0025,14.0062},{42.6281,14.0062},{42.6281,0.9937},{44.6156,
- 0.9937},{37.6281,0.9937},{-100.3844,0.9937},{-100.3844,-15.9937},{-95.3719,
- -15.9938}},
- color={0,0,127}));
- connect(elecDyn.Vbus, elecCircuit.Vbus) annotation (Line(
- visible=true,
- origin={-2.65,-55.6607},
- points={{-52.3375,15.6607},{-59.3375,15.6607},{-59.3375,-16.3215},{58.675,
- -16.3215},{58.675,0.6607},{53.6625,0.6607}},
- color={0,0,127}));
- connect(elecDyn.idr, elecCircuit.idr) annotation (Line(
- visible=true,
- origin={14.0062,-41.6194},
- points={{-52.9937,1.6194},{15.9938,1.6194},{15.9938,-1.61938},{21.0063,-1.61938}},
- color={0,0,127}));
-
- connect(elecDyn.iqr, elecCircuit.iqr) annotation (Line(
- visible=true,
- origin={-1.9875,-50.0},
- points={{-37.0,0.0},{37.0,0.0}},
- color={0,0,127}));
- connect(mechaBlk1.omega_m, elecCircuit.omega_m) annotation (Line(
- visible=true,
- origin={59.8363,-27.8632},
- points={{18.5506,7.8632},{23.1762,7.8632},{23.1762,-5.2097},{-66.8238,-5.2097},
- {-66.8238,-29.1368},{-24.8238,-29.1368}},
- color={0,0,127}));
- connect(mechaBlk1.Tel, elecCircuit.Tel) annotation (Line(
- visible=true,
- origin={56.3623,-35.0},
- points={{6.0246,10},{-0.3373,10},{-0.3373,-10},{-5.3498,-10}},
- color={0,0,127}));
- connect(pitchControl1.theta_p, windBlk1.theta_p) annotation (Line(
- visible=true,
- origin={-6.6693,-15.1284},
- points={{-32.3182,0.1284},{9.1019,0.1284},{9.1019,-0.12848},{14.1144,-0.12848}},
- color={0,0,127}));
-
- connect(windBlk1.Tm, mechaBlk1.Tm) annotation (Line(
- visible=true,
- origin={50.1452,-14.8679},
- points={{-26.7001,0.13217},{7.2292,0.13217},{7.2292,-0.1321},{12.2417,-0.1321}},
- color={0,0,127}));
-
- connect(mechaBlk1.omega_m, windBlk1.omega_m) annotation (Line(
- visible=true,
- origin={42.916,-25.0816},
- points={{35.4709,5.0816},{40.4834,5.0816},{40.4834,-7.9309},{-40.4834,-7.9309},
- {-40.4834,2.84934},{-35.4709,2.84934}},
- color={0,0,127}));
- connect(Wind_Speed, windBlk1.vw) annotation (Line(
- visible=true,
- origin={-24.9193,-5.1166},
- points={{-87.0682,2.7238},{27.3519,2.7238},{27.3519,-2.72393},{32.3644,-2.72393}},
- color={0,0,127}));
-
- connect(pitchControl1.omega_m, mechaBlk1.omega_m) annotation (Line(
- visible=true,
- origin={25.5125,-22.0292},
- points={{-80.5,7.0292},{-85.5125,7.0292},{-85.5125,-11.0437},{57.5,-11.0437},
- {57.5,2.0292},{52.8744,2.0292}},
- color={0,0,127}));
- annotation (
- Icon(coordinateSystem(
- extent={{-100.0,-100.0},{100.0,100.0}},
- preserveAspectRatio=true,
- initialScale=0.1,
- grid={10,10}), graphics={Text(
- visible=true,
- fillPattern=FillPattern.Solid,
- extent={{-55.0,-28.0231},{55.0,28.0231}},
- textString="Dfig",
- fontName="Arial"),Ellipse(
- visible=true,
- fillColor={255,255,255},
- extent={{-100.0,-100.0},{100.0,100.0}})}),
- Diagram(coordinateSystem(
- extent={{-148.5,-105.0},{148.5,105.0}},
- preserveAspectRatio=true,
- initialScale=0.1,
- grid={5,5})),
- Documentation(info="
-
-Reference |
-WT Doubly Fed Induction Generator, PSAT Manual 2.1.8 |
-
-
-Last update |
-July 2015 |
-
-
-Author |
-Maxime Baudette, SmarTS Lab, KTH Royal Institute of Technology |
-
-
-Contact |
-luigiv@kth.se |
-
-
-"));
- end PSAT_WT;
-
- model ElecBlk
- import Modelica.Constants.pi;
- Modelica.Blocks.Interfaces.RealInput omega_m "Rotor Speed" annotation (
- Placement(
- transformation(
- extent={{-102.0,54.0},{-62.0,94.0}},
- origin={-46.1127,-159.0},
- rotation=0),
- visible=true,
- iconTransformation(
- origin={2.0,-144.0},
- extent={{-102.0,54.0},{-62.0,94.0}},
- rotation=0)));
- Modelica.Blocks.Interfaces.RealInput idr(start=idr0, fixed=false) "idr"
- annotation (Placement(
- transformation(
- extent={{-102.0,54.0},{-62.0,94.0}},
- origin={-45.2181,9.0065},
- rotation=0),
- visible=true,
- iconTransformation(
- origin={2.0,-6.3878},
- extent={{-102.0,54.0},{-62.0,94.0}},
- rotation=0)));
- Modelica.Blocks.Interfaces.RealInput iqr(start=iqr0, fixed=false) "iqr"
- annotation (Placement(
- transformation(
- extent={{-102.0,54.0},{-62.0,94.0}},
- origin={-44.5564,-24.0},
- rotation=0),
- visible=true,
- iconTransformation(
- origin={2.0,-74.0},
- extent={{-102.0,54.0},{-62.0,94.0}},
- rotation=0)));
- Modelica.Blocks.Interfaces.RealOutput Tel "Electrical Torque" annotation (
- Placement(
- transformation(
- extent={{102.0,54.0},{62.0,94.0}},
- origin={44.9293,3.7214},
- rotation=0),
- visible=true,
- iconTransformation(
- origin={-2.0,-24.0},
- extent={{102.0,54.0},{62.0,94.0}},
- rotation=0)));
- Modelica.Blocks.Interfaces.RealOutput Vbus "Bus Voltage Magnitude"
- annotation (Placement(
- transformation(
- extent={{102.0,54.0},{62.0,94.0}},
- origin={46.3073,-49.0},
- rotation=0),
- visible=true,
- iconTransformation(
- origin={-2.0,-124.0},
- extent={{102.0,54.0},{62.0,94.0}},
- rotation=0)));
- parameter Real Sbase=100 "Power Rating [Normalization Factor] (MVA)";
- parameter Real Vbus0=1 "p.u. Input PowerFlow";
- parameter Real angle0=-0.00243 "Angle PowerFlow";
- parameter Real Pc=0.0160000000000082 "Active Power (pu), PowerFlow";
- parameter Real Qc=0.030527374471207 "Reactive Power(pu), Power Flow";
- parameter Real omega_m0=0.58;
- parameter Real Pnom=10 "Nominal Power (MVA)";
- parameter Real Vbase=400 "Voltage rating kV";
- parameter Real freq=50 "frequency rating (Hz)";
- parameter Real Rs=0.1 "stator Resistance (pu)";
- parameter Real Xs=1 "stator Reactance (pu)";
- parameter Real Rr=0.1 "Rotor Resitance (pu)";
- parameter Real Xr=0.8 "rotor Reactance (pu)";
- parameter Real Xm=30 "magnetisation reactance (pu)";
- parameter Real Hm=0.3 "inertia (pu)";
- parameter Real x1=Xm + Xs "stator plus magnetisation impedances";
- parameter Real i2Hm=1.667 "inverse p.u.inertia";
- parameter Real wbase=2*pi*freq/poles "p.u. basis for angular speed";
- parameter Real k=x1*Pnom/Vbus0/Xm/Sbase "gain for iqr_off computation";
- parameter Real ids0=((-vds0^2) + vds0*Xm*iqr0 - x1*Qc)/(Rs*vds0 - x1*vqs0);
- parameter Real iqs0=((-vds0*vqs0) + vqs0*Xm*iqr0 - Rs*Qc)/(Rs*vds0 - x1*vqs0);
- parameter Real idr0=-(vqs0 + Rs*iqs0 + x1*ids0)/Xm;
- parameter Real iqr0=-x1*Pnom*(2*omega_m0 - 1)/Vbus0/Xm/Sbase/omega_m0;
- parameter Real vds0=-Vbus0*sin(angle0);
- parameter Real vqs0=Vbus0*cos(angle0);
- parameter Real vdr0=(-Rr*idr0) + (1 - omega_m0)*((Xm + Xr)*iqr0 + Xm*iqs0);
- parameter Real vqr0=(-Rr*iqr0) - (1 - omega_m0)*((Xm + Xr)*idr0 + Xm*ids0);
- parameter Real poles=2 "Number of poles-pair";
- Real vds(start=vds0, fixed=false) "stator tension, in dq";
- Real vqs(start=vqs0, fixed=false) "stator tension, in dq";
- Real p "Active power";
- Real q "Reactive Power";
- Real ids(start=ids0, fixed=false) "stator current, in dq";
- Real iqs(start=iqs0, fixed=false) "stator current, in dq";
- Real vdr(start=vdr0, fixed=false) "rotor voltage in dq";
- Real vqr(start=vqr0, fixed=false) "rotor voltage in dq";
- OpenIPSL.Interfaces.PwPin pin annotation (Placement(
- visible=true,
- transformation(
- origin={-158.3073,1.6927},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0),
- iconTransformation(
- origin={0.0,-110.0},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- Real slip;
- Real Anglebus=atan(pin.vi/pin.vr);
- equation
- Vbus = sqrt(vds^2 + vqs^2);
- vqs = pin.vr;
- vds = -pin.vi;
- -p = pin.vr*pin.ir + pin.vi*pin.ii;
- -q = pin.vi*pin.ir - pin.vr*pin.ii;
- p = vds*ids + vqs*iqs + vdr*idr + vqr*iqr;
- q = (-Xm*Vbus*idr/x1) - Vbus^2/Xm;
- vds = (-Rs*ids) + x1*iqs + Xm*iqr;
- vqs = (-Rs*iqs) - x1*ids - Xm*idr;
- slip = 1 - omega_m;
- vdr = (-Rr*idr) + slip*(x1*iqr + Xm*iqs);
- vqr = (-Rr*iqr) - slip*(x1*idr + Xm*ids);
- Tel = Xm*(iqr*ids - idr*iqs);
- annotation (
- Icon(coordinateSystem(
- extent={{-100.0,-100.0},{100.0,100.0}},
- preserveAspectRatio=true,
- initialScale=0.1,
- grid={10,10}), graphics={Rectangle(
- visible=true,
- fillColor={255,255,255},
- extent={{-100.0,-100.0},{100.0,100.0}}),Text(
- visible=true,
- origin={1.7639,5.0},
- fillPattern=FillPattern.Solid,
- extent={{-44.3912,-45.0},{44.3912,45.0}},
- textString="elec",
- fontName="Arial")}),
- Diagram(coordinateSystem(
- extent={{-148.5,-105.0},{148.5,105.0}},
- preserveAspectRatio=true,
- initialScale=0.1,
- grid={5,5})),
- Documentation);
- end ElecBlk;
-
- model ElecDynBlk
- Modelica.Blocks.Interfaces.RealInput omega_m "Rotor Speed" annotation (
- Placement(
- transformation(
- extent={{-102.0,54.0},{-62.0,94.0}},
- origin={-45.2439,-151.0508},
- rotation=0),
- visible=true,
- iconTransformation(
- origin={2.0,-124.0},
- extent={{-102.0,54.0},{-62.0,94.0}},
- rotation=0)));
- Modelica.Blocks.Interfaces.RealInput Vbus "Vbus" annotation (Placement(
- transformation(
- extent={{-102.0,54.0},{-62.0,94.0}},
- origin={-45.2049,-85.6189},
- rotation=0),
- visible=true,
- iconTransformation(
- origin={2.0,-24.0},
- extent={{-102.0,54.0},{-62.0,94.0}},
- rotation=0)));
- Modelica.Blocks.Interfaces.RealOutput idr(start=idr0, fixed=false)
- "saturated idr" annotation (Placement(
- transformation(
- extent={{102.0,54.0},{62.0,94.0}},
- origin={43.0,-29.0},
- rotation=0),
- visible=true,
- iconTransformation(
- origin={-2.0,-24.0},
- extent={{102.0,54.0},{62.0,94.0}},
- rotation=0)));
- Modelica.Blocks.Interfaces.RealOutput iqr(start=iqr0, fixed=false)
- "saturated iqr" annotation (Placement(
- transformation(
- extent={{102.0,54.0},{62.0,94.0}},
- origin={43.0,-94.0},
- rotation=0),
- visible=true,
- iconTransformation(
- origin={-2.0,-124.0},
- extent={{102.0,54.0},{62.0,94.0}},
- rotation=0)));
- constant Real pi=3.14159265358979;
- parameter Real Sbase=100 "Power Rating [Normalization Factor] (MVA)";
- parameter Real Vbus0=1 "p.u. Input PowerFlow";
- parameter Real angle0=-0.00243 "Angle PowerFlow";
- parameter Real Pc=0.0160000000000082 "Active Power (pu), PowerFlow";
- parameter Real Qc=0.030527374471207 "Reactive Power(pu), Power Flow";
- parameter Real omega_m0=min(max(0.5*Pc*Sbase/Pnom + 0.5, 0.5), 1);
- parameter Real Pnom=10 "Nominal Power (MVA)";
- parameter Real Vbase=400 "Voltage rating kV";
- parameter Real freq=50 "frequency rating (Hz)";
- parameter Real Rs=0.1 "stator Resistance (pu)";
- parameter Real Xs=1 "stator Reactance (pu)";
- parameter Real Rr=0.1 "Rotor Resitance (pu)";
- parameter Real Xr=0.8 "rotor Reactance (pu)";
- parameter Real Xm=30 "magnetisation reactance (pu)";
- parameter Real Hm=0.3 "inertia (pu)";
- parameter Real x1=Xm + Xs "stator plus magnetisation impedances";
- parameter Real x2=Xm + Xr "rotor plus magnetisation impedances";
- parameter Real i2Hm=1.667 "inverse p.u.inertia";
- parameter Real wbase=2*pi*freq/poles "p.u. basis for angular speed";
- parameter Real iqr_max;
- parameter Real idr_max;
- parameter Real iqr_min;
- parameter Real idr_min;
- parameter Real poles=2 "Number of poles-pair";
- parameter Real Kv=10 "Voltage control gain (kV)";
- parameter Real Te=0.01 "Power Control time constant (s)";
- parameter Real k=x1*Pnom/Vbus0/Xm/Sbase "gain for iqr_off computation";
- parameter Real ids0=((-vds0^2) + vds0*Xm*iqr0 - x1*Qc)/(Rs*vds0 - x1*vqs0);
- parameter Real iqs0=((-vds0*vqs0) + vqs0*Xm*iqr0 - Rs*Qc)/(Rs*vds0 - x1*vqs0);
- parameter Real idr0=-(vqs0 + Rs*iqs0 + x1*ids0)/Xm;
- parameter Real iqr0=-x1*Pnom*(2*omega_m0 - 1)/Vbus0/Xm/Sbase/omega_m0;
- parameter Real vds0=-Vbus0*sin(angle0);
- parameter Real vqs0=Vbus0*cos(angle0);
- parameter Real vdr0=(-Rr*idr0) + (1 - omega_m0)*(x2*iqr0 + Xm*iqs0);
- parameter Real vqr0=(-Rr*iqr0) - (1 - omega_m0)*(x2*idr0 + Xm*ids0);
- Real idrI "internal, non saturated idr";
- Real iqrI "internal, non saturated iqr";
- Real Vref;
- Real iqr_off;
- Real pwa;
- initial equation
- 0 = ((-(Xs + Xm)*pwa/Vbus/Xm/omega_m) - iqr - iqr_off)/Te;
- Vref = Vbus0 - (idrI + Vbus0/Xm)/Kv;
- iqr_off = (-k*max(min(2*omega_m0 - 1, 1), 0)/omega_m0) - iqrI;
- equation
- der(Vref) = 0;
- der(iqr_off) = 0;
- pwa = max(min(2*omega_m - 1, 1), 0)*Pnom/Sbase;
- der(iqrI) = ((-(Xs + Xm)*pwa/Vbus/Xm/omega_m) - iqr - iqr_off)/Te;
- der(idrI) = Kv*(Vbus - Vref) - Vbus/Xm - idr;
- iqr = min(max(iqrI, iqr_min), iqr_max);
- idr = min(max(idrI, idr_min), idr_max);
- when iqrI > iqr_max and der(iqrI) < 0 then
- reinit(iqrI, iqr_max);
- elsewhen iqrI < iqr_min and der(iqrI) > 0 then
- reinit(iqrI, iqr_min);
- end when;
- when idrI > idr_max and der(idrI) < 0 then
- reinit(idrI, idr_max);
- elsewhen idrI < idr_min and der(idrI) > 0 then
- reinit(idrI, idr_min);
- end when;
- annotation (
- Icon(coordinateSystem(
- extent={{-100.0,-100.0},{100.0,100.0}},
- preserveAspectRatio=true,
- initialScale=0.1,
- grid={10,10}), graphics={Rectangle(
- visible=true,
- fillColor={255,255,255},
- extent={{-100.0,-100.0},{100.0,100.0}}),Text(
- visible=true,
- origin={0.294,8.6655},
- fillPattern=FillPattern.Solid,
- extent={{-47.919,-38.6655},{47.919,38.6655}},
- textString="elecDyn",
- fontName="Arial")}),
- Diagram(coordinateSystem(
- extent={{-148.5,-105.0},{148.5,105.0}},
- preserveAspectRatio=true,
- initialScale=0.1,
- grid={5,5})),
- Documentation);
- end ElecDynBlk;
-
- model MechaBlk
- Modelica.Blocks.Interfaces.RealInput Tm "engine shaft torque" annotation (
- Placement(
- transformation(
- extent={{-102.0,54.0},{-62.0,94.0}},
- origin={-43.0,7.7602},
- rotation=0),
- visible=true,
- iconTransformation(
- origin={2.0,-24.0},
- extent={{-102.0,54.0},{-62.0,94.0}},
- rotation=0)));
- Modelica.Blocks.Interfaces.RealInput Tel "electromagnetical torque"
- annotation (Placement(
- transformation(
- extent={{-102.0,54.0},{-62.0,94.0}},
- origin={-43.0,-34.0},
- rotation=0),
- visible=true,
- iconTransformation(
- origin={2.0,-124.0},
- extent={{-102.0,54.0},{-62.0,94.0}},
- rotation=0)));
- Modelica.Blocks.Interfaces.RealOutput omega_m "engine shaft angular velocity"
- annotation (Placement(
- transformation(
- extent={{102.0,54.0},{62.0,94.0}},
- origin={43.0,-74.0},
- rotation=0),
- visible=true,
- iconTransformation(
- origin={-2.0,-74.0},
- extent={{102.0,54.0},{62.0,94.0}},
- rotation=0)));
- parameter Real Sbase=100 "Power Rating [Normalization Factor] (MVA)";
- parameter Real Pnom=10 "Nominal Power (MVA)";
- parameter Real Hm=0.3 "inertia (pu)";
- parameter Real Pc=0.016 "p.u. Input, PowerFlow";
- initial equation
- if Pc < Pnom/Sbase and Pc > 0 then
- omega_m = 0.5*Pc*Sbase/Pnom + 0.5;
- elseif Pc*Sbase >= Pnom then
- omega_m = 1;
- else
- omega_m = 0.5;
- end if;
- Tel = Tm;
- equation
- der(omega_m) = (Tm - Tel)/(2*Hm);
- annotation (
- Icon(coordinateSystem(
- extent={{-100.0,-100.0},{100.0,100.0}},
- preserveAspectRatio=true,
- initialScale=0.1,
- grid={10,10}), graphics={Rectangle(
- visible=true,
- fillColor={255,255,255},
- extent={{-100.0,-100.0},{100.0,100.0}}),Text(
- visible=true,
- origin={-1.9109,6.1667},
- fillPattern=FillPattern.Solid,
- extent={{-49.8299,-36.1667},{49.8299,36.1667}},
- textString="meca",
- fontName="Arial")}),
- Diagram(coordinateSystem(
- extent={{-148.5,-105.0},{148.5,105.0}},
- preserveAspectRatio=true,
- initialScale=0.1,
- grid={5,5})),
- Documentation);
- end MechaBlk;
-
- model PitchControl
- Modelica.Blocks.Interfaces.RealInput omega_m "Real voltage" annotation (
- Placement(
- transformation(
- extent={{-102.0,54.0},{-62.0,94.0}},
- origin={-43.0,-74.0},
- rotation=0),
- visible=true,
- iconTransformation(
- origin={2.0,-74.0},
- extent={{-102.0,54.0},{-62.0,94.0}},
- rotation=0)));
- Modelica.Blocks.Interfaces.RealOutput theta_p(start=theta_p0)
- "saturated theta_p" annotation (Placement(
- transformation(
- extent={{102.0,54.0},{62.0,94.0}},
- origin={46.3073,-74.0},
- rotation=0),
- visible=true,
- iconTransformation(
- origin={-2.0,-74.0},
- extent={{102.0,54.0},{62.0,94.0}},
- rotation=0)));
- parameter Real Kp=10 "Pitch control gain (pu)";
- parameter Real Tp=3 "Pitch control time constant (s)";
- parameter Real theta_p0=0;
- parameter Real theta_p_min;
- parameter Real theta_p_max;
- Real theta_pI "internal non-saturated theta_p";
- Real phi;
- initial equation
- (Kp*phi - theta_pI)/Tp = 0;
- equation
- theta_p = min(max(theta_pI, theta_p_min), theta_p_max);
- phi = ceil(0.5*floor(1000*(omega_m - 1)*2))/1000;
- der(theta_pI) = (Kp*phi - theta_p)/Tp;
- when theta_pI > theta_p_max and der(theta_pI) < 0 then
- reinit(theta_pI, theta_p_max);
- elsewhen theta_pI < theta_p_min and der(theta_pI) > 0 then
- reinit(theta_pI, theta_p_min);
- end when;
- annotation (
- Icon(coordinateSystem(
- extent={{-100.0,-100.0},{100.0,100.0}},
- preserveAspectRatio=true,
- initialScale=0.1,
- grid={10,10}), graphics={Rectangle(
- visible=true,
- fillColor={255,255,255},
- extent={{-100.0,-100.0},{100.0,100.0}}),Text(
- visible=true,
- origin={0.0,3.0984},
- fillPattern=FillPattern.Solid,
- extent={{-44.9792,-41.316},{44.9792,41.316}},
- textString="pitch",
- fontName="Arial")}),
- Diagram(coordinateSystem(
- extent={{-148.5,-105.0},{148.5,105.0}},
- preserveAspectRatio=true,
- initialScale=0.1,
- grid={5,5})),
- Documentation);
- end PitchControl;
-
- model WindBlk
- import Modelica.Constants.pi;
- Modelica.Blocks.Interfaces.RealInput vw "Real voltage" annotation (Placement(
- transformation(
- extent={{-102.0,54.0},{-62.0,94.0}},
- origin={-43.0,7.7602},
- rotation=0),
- visible=true,
- iconTransformation(
- origin={2.0,-2.4053},
- extent={{-102.0,54.0},{-62.0,94.0}},
- rotation=0)));
- Modelica.Blocks.Interfaces.RealInput theta_p "Real voltage" annotation (
- Placement(
- transformation(
- extent={{-102.0,54.0},{-62.0,94.0}},
- origin={-43.0,-34.0},
- rotation=0),
- visible=true,
- iconTransformation(
- origin={2.0,-76.5688},
- extent={{-102.0,54.0},{-62.0,94.0}},
- rotation=0)));
- Modelica.Blocks.Interfaces.RealInput omega_m "Real voltage" annotation (
- Placement(
- transformation(
- extent={{-102.0,54.0},{-62.0,94.0}},
- origin={-43.0,-74.0},
- rotation=0),
- visible=true,
- iconTransformation(
- origin={2.0,-146.3226},
- extent={{-102.0,54.0},{-62.0,94.0}},
- rotation=0)));
- Modelica.Blocks.Interfaces.RealOutput Tm "Real voltage" annotation (Placement(
- transformation(
- extent={{102.0,54.0},{62.0,94.0}},
- origin={43.0,-74.0},
- rotation=0),
- visible=true,
- iconTransformation(
- origin={-2.0,-71.3573},
- extent={{102.0,54.0},{62.0,94.0}},
- rotation=0)));
- parameter Real vw_base=15 "Vw Nominal (m/s)";
- parameter Real rho=1.225 "Air Density (kg/m^3)";
- parameter Real Sbase=100 "Power Rating [Normalization Factor] (MVA)";
- parameter Real l=75 "Blade length (m)";
- parameter Real ngb=0.01123596 "gear box ratio";
- parameter Real Radapt=ngb*l "r_{gearbox}*r";
- parameter Real poles=2 "Number of poles-pair";
- parameter Real freq=50 "frequency rating (Hz)";
- parameter Real wbase=2*pi*freq;
- parameter Real Ar=pi*l^2 "blades area";
- Real lambda "Tip speed Ratio";
- Real lambdai "Tip Speed Ratio optimal";
- Real cp "Capacity coefficient";
- Real Pw "Power in the Wind";
- equation
- lambda = omega_m*wbase*Radapt/(vw*vw_base);
- lambdai = 1/(1/(lambda + 0.08*theta_p) - 0.035/(theta_p^3 + 1));
- cp = 0.22*(116/lambdai - 0.4*theta_p - 5)*exp(-12.5/lambdai);
- Pw = 0.5*rho*cp*Ar*(vw*vw_base)^3/(Sbase*1000000.0);
- Tm = Pw/omega_m;
- annotation (
- Icon(coordinateSystem(
- extent={{-100.0,-100.0},{100.0,100.0}},
- preserveAspectRatio=true,
- initialScale=0.1,
- grid={10,10}), graphics={Rectangle(
- visible=true,
- fillColor={255,255,255},
- extent={{-100.0,-100.0},{100.0,100.0}}),Text(
- visible=true,
- origin={5.2917,-1.4606},
- fillPattern=FillPattern.Solid,
- extent={{-39.3935,-41.4606},{39.3935,41.4606}},
- textString="wind",
- fontName="Arial")}),
- Diagram(coordinateSystem(
- extent={{-148.5,-105.0},{148.5,105.0}},
- preserveAspectRatio=true,
- initialScale=0.1,
- grid={5,5})),
- Documentation);
- end WindBlk;
- annotation (Diagram(coordinateSystem(
- extent={{-148.5,-105.0},{148.5,105.0}},
- preserveAspectRatio=true,
- initialScale=0.1,
- grid={5,5})), Documentation);
- end PSAT_Type_3;
- annotation (Diagram(coordinateSystem(
- extent={{-148.5,-105.0},{148.5,105.0}},
- preserveAspectRatio=true,
- initialScale=0.1,
- grid={5,5})), Documentation);
- end PSAT;
-
- package PSSE
- package WT3G
- model WT3G1
- extends OpenIPSL.Electrical.Essentials.pfComponent;
- constant Real pi=Modelica.Constants.pi;
- parameter Real X_eq "Equivalent reactance for current injection (pu)";
- parameter Real K_pll "PLL first integrator gain";
- parameter Real K_ipll "PLL second integrator gain";
- parameter Real P_llmax "PLL maximum limit";
- parameter Real P_rated "Turbine MW rating, not used in the equation";
- parameter Complex Zs(re=0, im=X_eq) "Equivalent impedance (ZSORCE)"
- annotation (Dialog(group="Power flow data"));
- parameter Real M_b=100 "Machine base power (MVA)"
- annotation (Dialog(group="Power flow data"));
- Real VT(start=V_0) "Bus voltage magnitude";
- Real anglev(start=anglev_rad) "Bus voltage angle";
- Real VY(start=0) "y-axis terminal voltage";
- Real VX(start=V_0) "x-axis terminal voltage";
- Complex Is "Equivalent internal current source";
- OpenIPSL.Interfaces.PwPin p(
- vr(start=vr0),
- vi(start=vi0),
- ir(start=ir1),
- ii(start=ii1)) annotation (Placement(transformation(extent={{
- 100,-10},{120,10}}), iconTransformation(extent={{100,-10},
- {120,10}})));
- Modelica.Blocks.Continuous.Integrator imIntegrator(
- k=wbase,
- y_start=anglev_rad,
- initType=Modelica.Blocks.Types.Init.InitialOutput)
- annotation (Placement(transformation(extent={{50,-30},{70,-10}})));
- Modelica.Blocks.Continuous.LimIntegrator imIntegrator1(
- outMin=-P_llmax,
- outMax=P_llmax,
- y_start=0,
- initType=Modelica.Blocks.Types.Init.InitialOutput,
- k=K_ipll) annotation (Placement(transformation(extent={{-40,0},{-20,20}})));
- OpenIPSL.NonElectrical.Continuous.SimpleLag imSimpleLag(
- K=1,
- T=0.02,
- y_start=Eqcmd0) annotation (Placement(transformation(extent={{-60,
- 70},{-40,90}})));
- OpenIPSL.NonElectrical.Continuous.SimpleLag imSimpleLag1(
- K=1,
- T=0.02,
- y_start=Ix0) annotation (Placement(transformation(extent={{-60,
- 30},{-40,50}})));
- Modelica.Blocks.Math.Gain imGain(k=-1/X_eq)
- annotation (Placement(transformation(extent={{-20,70},{0,90}})));
- Modelica.Blocks.Interfaces.RealOutput Iy(start=Iy0) annotation (Placement(
- transformation(extent={{20,70},{40,90}}), iconTransformation(extent={{
- 100,-100},{120,-80}})));
- Modelica.Blocks.Interfaces.RealOutput Ix(start=Ix0) annotation (Placement(
- transformation(extent={{20,30},{40,50}}), iconTransformation(extent={{
- 100,-70},{120,-50}})));
- Modelica.Blocks.Interfaces.RealOutput Iterm(start=Iy0) annotation (Placement(
- transformation(extent={{98,60},{118,80}}), iconTransformation(extent={{
- -100,-40},{-120,-20}})));
- Modelica.Blocks.Interfaces.RealInput Eqcmd(start=Eqcmd0) annotation (
- Placement(transformation(extent={{-110,70},{-90,90}}), iconTransformation(
- extent={{-10,-10},{10,10}},
- rotation=0,
- origin={-90,70})));
- Modelica.Blocks.Interfaces.RealInput Ipcmd(start=Ipcmd0) annotation (
- Placement(transformation(extent={{-110,30},{-90,50}}), iconTransformation(
- extent={{-10,-10},{10,10}},
- rotation=0,
- origin={-90,30})));
- Modelica.Blocks.Math.Gain imGain1(k=K_pll/wbase)
- annotation (Placement(transformation(extent={{-80,-30},{-60,-10}})));
- Modelica.Blocks.Math.Add add
- annotation (Placement(transformation(extent={{-10,-30},{10,-10}})));
- Modelica.Blocks.Nonlinear.Limiter imLimited(uMin=-P_llmax, uMax=P_llmax)
- annotation (Placement(transformation(extent={{20,-30},{40,-10}})));
- Modelica.Blocks.Interfaces.RealOutput delta(start=anglev_rad) annotation (
- Placement(transformation(extent={{80,-30},{100,-10}}), iconTransformation(
- extent={{-10,-10},{10,10}},
- rotation=0,
- origin={110,-30})));
- Modelica.Blocks.Interfaces.RealOutput V=VT annotation (Placement(
- transformation(extent={{100,20},{120,40}}), iconTransformation(extent={
- {-100,-80},{-120,-60}})));
- Modelica.Blocks.Interfaces.RealOutput P "On machine base" annotation (
- Placement(transformation(extent={{100,-40},{120,-20}}),
- iconTransformation(
- extent={{-10,-10},{10,10}},
- rotation=0,
- origin={110,70})));
- Modelica.Blocks.Interfaces.RealOutput Q annotation (Placement(transformation(
- extent={{100,-80},{120,-60}}), iconTransformation(
- extent={{-10,-10},{10,10}},
- rotation=0,
- origin={110,30})));
- Modelica.Blocks.Interfaces.RealOutput ipcmd0=Ipcmd0 annotation (Placement(
- transformation(
- extent={{10,-10},{-10,10}},
- rotation=-90,
- origin={-50,110}), iconTransformation(
- extent={{-10,-10},{10,10}},
- rotation=90,
- origin={-10,110})));
- Modelica.Blocks.Interfaces.RealOutput eqcmd0=Eqcmd0 annotation (Placement(
- transformation(
- extent={{10,-10},{-10,10}},
- rotation=-90,
- origin={-70,108}), iconTransformation(
- extent={{-10,-10},{10,10}},
- rotation=90,
- origin={-50,110})));
- protected
- parameter Real wbase=2*pi*fn "System base speed";
- parameter Real p0=P_0/M_b
- "initial value of bus active power in p.u. machinebase";
- parameter Real q0=Q_0/M_b
- "initial value of bus reactive power in p.u. machinebase";
- parameter Real v0=V_0;
- parameter Real vr0=v0*cos(anglev_rad)
- "Real component of initial terminal voltage";
- parameter Real vi0=v0*sin(anglev_rad)
- "Imaginary component of intitial terminal voltage";
- parameter Real ir0=(p0*vr0 + q0*vi0)/(vr0^2 + vi0^2)
- "Real component of initial armature current, mbase";
- parameter Real ii0=(p0*vi0 - q0*vr0)/(vr0^2 + vi0^2)
- "Imaginary component of initial armature current, mbase";
- parameter Real Isr0=ir0 + vi0/X_eq "Sorce current re mbase";
- parameter Real Isi0=ii0 - vr0/X_eq "Sorce current im mbase";
- parameter Real CoB=M_b/S_b;
- parameter Real ir1=-CoB*(p0*vr0 + q0*vi0)/(vr0^2 + vi0^2)
- "Real component of initial armature current, sbase";
- parameter Real ii1=-CoB*(p0*vi0 - q0*vr0)/(vr0^2 + vi0^2)
- "Imaginary component of initial armature current, sbase";
- parameter Real Ix0=Isr0*cos(-anglev_rad) - Isi0*sin(-anglev_rad);
- parameter Real Iy0=Isr0*sin(-anglev_rad) + cos(-anglev_rad)*Isi0;
- parameter Real Eqcmd0=-Iy0*X_eq;
- parameter Real Ipcmd0=Ix0;
- parameter Real anglev_rad=angle_0*pi/180 "initial value of bus anglev in rad";
- parameter Real VX0=cos(anglev_rad)*vr0 + sin(anglev_rad)*vi0;
- parameter Real VY0=(-sin(anglev_rad)*vr0) + cos(anglev_rad)*vi0;
- protected
- Modelica.Blocks.Interfaces.RealInput Vy annotation (Placement(transformation(
- extent={{-110,-30},{-90,-10}}), iconTransformation(extent={{-118,-40},
- {-96,-18}})));
- initial equation
- delta = anglev_rad;
- equation
- anglev = atan2(p.vi, p.vr);
- VT = sqrt(p.vr*p.vr + p.vi*p.vi);
- Iterm = sqrt(p.ir*p.ir + p.ii*p.ii);
- Is.re = p.ir/CoB - p.vi/X_eq;
- //Note that, the positive direction for p.ir is the antidirection of ir0
- Is.im = p.ii/CoB + p.vr/X_eq;
- Vy = VY;
- [Ix; Iy] = -[cos(delta), sin(delta); -sin(delta), cos(delta)]*[Is.re; Is.im];
- [VX; VY] = [cos(delta), sin(delta); -sin(delta), cos(delta)]*[p.vr; p.vi];
- -P = p.vr*p.ir/CoB + p.vi*p.ii/CoB;
- -Q = p.vi*p.ir/CoB - p.vr*p.ii/CoB;
- connect(Eqcmd, imSimpleLag.u)
- annotation (Line(points={{-100,80},{-66.5,80},{-62,80}}, color={0,0,127}));
- connect(Ipcmd, imSimpleLag1.u)
- annotation (Line(points={{-100,40},{-82,40},{-62,40}}, color={0,0,127}));
- connect(add.y, imLimited.u)
- annotation (Line(points={{11,-20},{11,-20},{18,-20}}, color={0,0,127}));
- connect(imLimited.y, imIntegrator.u)
- annotation (Line(points={{41,-20},{48,-20}}, color={0,0,127}));
- connect(imIntegrator.y, delta)
- annotation (Line(points={{71,-20},{71,-20},{90,-20}}, color={0,0,127}));
- connect(Vy, imGain1.u) annotation (Line(points={{-100,-20},{-90,-20},{-82,-20}},
- color={0,0,127}));
- connect(imSimpleLag.y, imGain.u)
- annotation (Line(points={{-39,80},{-39,80},{-22,80}}, color={0,0,127}));
- connect(imGain.y, Iy)
- annotation (Line(points={{1,80},{30,80},{30,80}}, color={0,0,127}));
- connect(imSimpleLag1.y, Ix)
- annotation (Line(points={{-39,40},{30,40},{30,40}}, color={0,0,127}));
- connect(imGain1.y, add.u2) annotation (Line(points={{-59,-20},{-40,-20},{-20,
- -20},{-20,-26},{-12,-26}}, color={0,0,127}));
- connect(imIntegrator1.u, add.u2) annotation (Line(points={{-42,10},{-50,10},{
- -50,-20},{-20,-20},{-20,-26},{-12,-26}}, color={0,0,127}));
- connect(imIntegrator1.y, add.u1) annotation (Line(points={{-19,10},{-16,10},{
- -16,-14},{-12,-14}}, color={0,0,127}));
- annotation (
- Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{
- 100,100}})),
- Icon(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{100,
- 100}}), graphics={Rectangle(
- extent={{-100,100},{100,-100}},
- lineColor={28,108,200},
- fillColor={255,255,255},
- fillPattern=FillPattern.Solid),Text(
- extent={{-42,18},{48,-10}},
- lineColor={28,108,200},
- textString="WT3G1"),Text(
- extent={{-98,-24},{-84,-36}},
- lineColor={28,108,200},
- lineThickness=0.5,
- fillColor={255,255,255},
- fillPattern=FillPattern.Solid,
- textString="V"),Text(
- extent={{80,76},{94,64}},
- lineColor={28,108,200},
- lineThickness=0.5,
- fillColor={255,255,255},
- fillPattern=FillPattern.Solid,
- textString="P"),Text(
- extent={{80,36},{94,24}},
- lineColor={28,108,200},
- lineThickness=0.5,
- fillColor={255,255,255},
- fillPattern=FillPattern.Solid,
- textString="Q"),Text(
- extent={{-74,36},{-40,24}},
- lineColor={28,108,200},
- lineThickness=0.5,
- fillColor={255,255,255},
- fillPattern=FillPattern.Solid,
- textString="Ipcmd"),Text(
- extent={{-74,76},{-40,64}},
- lineColor={28,108,200},
- lineThickness=0.5,
- fillColor={255,255,255},
- fillPattern=FillPattern.Solid,
- textString="Eqcmd"),Text(
- extent={{72,-24},{98,-36}},
- lineColor={28,108,200},
- lineThickness=0.5,
- fillColor={255,255,255},
- fillPattern=FillPattern.Solid,
- textString="delta"),Text(
- extent={{-98,-64},{-72,-76}},
- lineColor={28,108,200},
- lineThickness=0.5,
- fillColor={255,255,255},
- fillPattern=FillPattern.Solid,
- textString="Iterm"),Text(
- extent={{74,-52},{98,-64}},
- lineColor={28,108,200},
- lineThickness=0.5,
- fillColor={255,255,255},
- fillPattern=FillPattern.Solid,
- textString="I_x"),Text(
- extent={{74,-84},{98,-96}},
- lineColor={28,108,200},
- lineThickness=0.5,
- fillColor={255,255,255},
- fillPattern=FillPattern.Solid,
- textString="I_y"),Text(
- extent={{-66,96},{-32,84}},
- lineColor={28,108,200},
- lineThickness=0.5,
- fillColor={255,255,255},
- fillPattern=FillPattern.Solid,
- textString="Eqcmd0"),Text(
- extent={{-26,96},{8,84}},
- lineColor={28,108,200},
- lineThickness=0.5,
- fillColor={255,255,255},
- fillPattern=FillPattern.Solid,
- textString="Ipcmd0")}),
- Documentation);
- end WT3G1;
-
- model WT3E1
- parameter Integer VARFLG
- "0 constant Q; 1 Reactive control; -1 Constant PF control" annotation (
- choices(
- choice=0 "Constant Q",
- choice=1 "Reactive power control",
- choice=-1 "Constant PF control"));
- parameter Integer VLRFLG
- "0 Bypass V control; 1 WT3G1 Eqcmd limits;2 WT3G2 Eqcmd limits" annotation (
- choices(
- choice=0 "Disable terminal voltage control",
- choice=1 "Enable terminal voltage control ",
- choice=2 "Fixed limits for Eqcmd"));
- parameter Real Tfv=0.15000 "Filter time constant in voltage regulator (sec)";
- parameter Real Kpv=18.000 " Proportional gain in voltage regulator (pu)";
- parameter Real KIV=5.0000 " Integrator gain in voltage regulator (pu)";
- parameter Real Xc=0.0000 " Line drop compensation reactance (pu)";
- parameter Real TFP=0.50000E-01 " Filter time constant in torque regulator";
- parameter Real Kpp=3.0000 " Proportional gain in torque regulator (pu) ";
- parameter Real KIP=0.60000 " Integrator gain in torque regulator (pu)";
- parameter Real PMX=1.1200 " Max limit in torque regulator (pu)";
- parameter Real PMN=0.10000 " Min limit in torque regulator (pu)";
- parameter Real QMX=0.29600 " Max limit in voltage regulator (pu)";
- parameter Real QMN=-0.43600 " Min limit in voltage regulator (pu)";
- parameter Real IPMAX=1.1000 " Max active current limit";
- parameter Real TRV=0.50000E-01 " Voltage sensor time constant";
- parameter Real RPMX=0.45000 " Max power order derivative";
- parameter Real RPMN=-0.45000 " Min power order derivative";
- parameter Real T_Power=5.0000 " Power filter time constant";
- parameter Real Kqi=0.50000E-01 " MVAR/Voltage gain";
- parameter Real VMINCL=0.90000 " Min voltage limit";
- parameter Real VMAXCL=1.2000 " Max voltage limit";
- parameter Real Kqv=40.000 " Voltage/MVAR gain";
- parameter Real XIQmin=-0.50000;
- parameter Real XIQmax=0.40000;
- parameter Real Tv=0.50000E-01 " Lag time constant in WindVar controller";
- parameter Real Tp=0.50000E-01 " Pelec filter in fast PF controller";
- parameter Real Fn=1.0000 " A portion of online wind turbines";
- parameter Real wPmin=0.69000 " Shaft speed at Pmin (pu)";
- parameter Real wP20=0.78000 " Shaft speed at 20% rated power (pu) ";
- parameter Real wP40=0.98000 " Shaft speed at 40% rated power (pu)";
- parameter Real wP60=1.1200 " Shaft speed at 60% rated power (pu)";
- parameter Real Pmin=0.74000
- " Minimum power for operating at P100 speed (pu)";
- parameter Real wP100=1.2000 " Shaft speed at 100% rated power (pu)";
- parameter Real Vref " Remote bus ref voltage";
- parameter Real v0;
- parameter Real p0;
- parameter Real q0;
- Modelica.Blocks.Interfaces.RealInput PELEC annotation (Placement(
- transformation(extent={{-210,30},{-190,50}}), iconTransformation(
- extent={{10,-10},{-10,10}},
- rotation=180,
- origin={-190,-120})));
- Modelica.Blocks.Interfaces.RealInput VTERM(start=v0) annotation (Placement(
- transformation(extent={{-210,-110},{-190,-90}}), iconTransformation(
- extent={{10,-10},{-10,10}},
- rotation=180,
- origin={-190,-40})));
- Modelica.Blocks.Interfaces.RealOutput WIPCMD annotation (Placement(
- transformation(extent={{180,-70},{200,-50}}), iconTransformation(extent=
- {{-200,40},{-220,60}})));
- Modelica.Blocks.Nonlinear.Limiter Qord(uMin=QMN, uMax=QMX)
- annotation (Placement(transformation(extent={{12,30},{32,50}})));
- Modelica.Blocks.Interfaces.RealInput Qelec annotation (Placement(
- transformation(
- extent={{-10,-10},{10,10}},
- rotation=270,
- origin={50,140}), iconTransformation(
- extent={{10,-10},{-10,10}},
- rotation=180,
- origin={-190,-80})));
- Modelica.Blocks.Math.Feedback feedback1
- annotation (Placement(transformation(extent={{40,50},{60,30}})));
- Modelica.Blocks.Continuous.LimIntegrator K6(
- outMin=VMINCL,
- outMax=VMAXCL,
- k=Kqi,
- y_start=k60,
- initType=Modelica.Blocks.Types.Init.InitialOutput)
- annotation (Placement(transformation(extent={{70,30},{90,50}})));
- Modelica.Blocks.Math.Feedback Vcl
- annotation (Placement(transformation(extent={{100,30},{120,50}})));
- Modelica.Blocks.Interfaces.RealOutput WEQCMD annotation (Placement(
- transformation(extent={{180,32},{198,50}}), iconTransformation(extent={
- {-200,80},{-220,100}})));
- Modelica.Blocks.Interfaces.RealOutput WPCMND annotation (Placement(
- transformation(extent={{180,-102},{200,-82}}), iconTransformation(
- extent={{-10,-10},{10,10}},
- rotation=270,
- origin={-150,-150})));
- Modelica.Blocks.Continuous.LimIntegrator K7(
- k=Kqv,
- y_start=k70,
- outMax=1 + XIQmax,
- outMin=XIQmin - 1)
- annotation (Placement(transformation(extent={{138,30},{158,50}})));
- Modelica.Blocks.Interfaces.RealInput ITERM "magenitute of terminal current"
- annotation (Placement(transformation(extent={{-210,88},{-190,108}}),
- iconTransformation(
- extent={{10,-10},{-10,10}},
- rotation=180,
- origin={-190,0})));
- Modelica.Blocks.Sources.Constant Qcmd0(k=Qref) annotation (Placement(
- transformation(
- extent={{-10,-10},{10,10}},
- rotation=90,
- origin={-10,-2})));
- Modelica.Blocks.Interfaces.RealInput WEQCMD0 annotation (Placement(
- transformation(extent={{-140,120},{-120,140}}), iconTransformation(
- extent={{-10,-10},{10,10}},
- rotation=270,
- origin={-110,130})));
- Modelica.Blocks.Interfaces.RealInput WIPCMD0 annotation (Placement(
- transformation(extent={{-180,120},{-160,140}}), iconTransformation(
- extent={{-10,-10},{10,10}},
- rotation=270,
- origin={-150,130})));
- pf_Controller pf_Controller1(
- Tp=Tp,
- p0=p0,
- PFA_ref=PFA_ref,
- q0=q0) annotation (Placement(transformation(rotation=0, extent={{-114,20},{
- -74,60}})));
- ActivePowerControl activePowerControl(
- TFP=TFP,
- Kpp=Kpp,
- KIP=KIP,
- PMX=PMX,
- PMN=PMN,
- IPMAX=IPMAX,
- RPMX=RPMX,
- RPMN=RPMN,
- T_Power=T_Power,
- k20=k20,
- k30=k30,
- k50=k50,
- wPmin=wPmin,
- wP20=wP20,
- wP40=wP40,
- wP60=wP60,
- Pmin=Pmin,
- wP100=wP100) annotation (Placement(transformation(rotation=0, extent={{-40,
- -80},{40,-40}})));
- ReactivePowerControl reactivePowerControl(
- Tfv=Tfv,
- Kpv=Kpv,
- KIV=KIV,
- Xc=Xc,
- QMX=QMX,
- QMN=QMN,
- TRV=TRV,
- Tv=Tv,
- Fn=Fn,
- Vref=Vref,
- k0=k0,
- k10=k10,
- k40=k40,
- k80=k80) annotation (Placement(transformation(rotation=0, extent={{-104,80},
- {-46,104}})));
- protected
- parameter Real PFA_ref(fixed=false) "PF angle reference if PFAFLG=1";
- //parameter Real Qord "MVAR order from MVAR emulator";
- parameter Real Qref=q0 "Q reference if PFAFLG=0 & VARFLG";
- parameter Real sp0=Speed(
- p0,
- PMN,
- wPmin,
- wP20,
- wP40,
- wP60,
- wP100,
- Pmin);
- parameter Real k0(fixed=false);
- parameter Real k10(fixed=false);
- parameter Real k20(fixed=false);
- parameter Real k30(fixed=false);
- parameter Real k40(fixed=false);
- parameter Real k50(fixed=false);
- parameter Real k60(fixed=false);
- parameter Real k70(fixed=false);
- parameter Real k80(fixed=false);
- parameter Real k90(fixed=false);
-
- function Speed
- extends Modelica.Icons.Function;
- input Real x;
- input Real PMN " Min limit in torque regulator (pu)";
- input Real wmin;
- input Real w20;
- input Real w40;
- input Real w60;
- input Real w100;
- input Real Pmin " Minimum power for operating at wP100 speed (pu)";
- output Real y;
- protected
- parameter Real K1=(w20 - wmin)/(0.2 - PMN);
- parameter Real K2=(w40 - w20)/(0.4 - 0.2);
- parameter Real K3=(w60 - w40)/(0.6 - 0.4);
- parameter Real K4=(w100 - w60)/(Pmin - 0.6);
- Real K, x0, y0;
- algorithm
- if x <= PMN then
- K := 0;
- y0 := wmin;
- x0 := PMN;
- elseif x > Pmin and x <= 0.2 then
- K := K1;
- y0 := wmin;
- x0 := PMN;
- elseif x > 0.2 and x <= 0.4 then
- K := K2;
- y0 := w20;
- x0 := 0.2;
- elseif x > 0.4 and x <= 0.6 then
- K := K3;
- y0 := w40;
- x0 := 0.4;
- elseif x > 0.6 and x <= Pmin then
- K := K4;
- y0 := w60;
- x0 := 0.6;
- else
- K := 0;
- y0 := w100;
- x0 := Pmin;
- end if;
- y := K*(x - x0) + y0 - 1;
- end Speed;
- protected
- Modelica.Blocks.Interfaces.RealInput SPEED=sp0 annotation (Placement(
- transformation(extent={{-210,-60},{-190,-40}}), iconTransformation(
- extent={{-12,-12},{12,12}},
- rotation=90,
- origin={80,-92})));
- initial equation
- PFA_ref = atan2(q0, p0);
- k40 = v0;
- k0 = q0;
- k10 = q0;
- k60 = v0;
- k70 = WEQCMD0;
- k20 = WIPCMD0*v0;
- k30 = k20/(sp0 + 1);
- k80 = 0;
- k90 = p0;
- k50 = sp0;
- equation
- if VLRFLG <> 0 then
- WEQCMD = K7.y;
- else
- WEQCMD = Vcl.y;
- end if;
- if VARFLG == 1 then
- Qord.u = reactivePowerControl.Q_ord;
- elseif VARFLG == (-1) then
- Qord.u = pf_Controller1.Q_REF_PF;
- else
- Qord.u = Qref;
- end if;
- connect(Qelec, feedback1.u2) annotation (Line(
- points={{50,140},{50,48}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(Vcl.u2, VTERM) annotation (Line(points={{110,32},{110,32},{110,-100},
- {-46,-100},{-46,-100},{-200,-100}}, color={0,0,127}));
- connect(feedback1.y, K6.u)
- annotation (Line(points={{59,40},{68,40}}, color={0,0,127}));
- connect(K6.y, Vcl.u1)
- annotation (Line(points={{91,40},{91,40},{102,40}}, color={0,0,127}));
- connect(Qord.y, feedback1.u1)
- annotation (Line(points={{33,40},{33,40},{42,40}}, color={0,0,127}));
- protected
- model pf_Controller
- Modelica.Blocks.Math.Tan tan1
- annotation (Placement(transformation(extent={{-120,40},{-100,60}})));
- Modelica.Blocks.Math.Product Qcmdn1
- annotation (Placement(transformation(extent={{-60,-10},{-40,10}})));
- Modelica.Blocks.Sources.Constant VAR2(k=PFA_ref)
- annotation (Placement(transformation(extent={{-160,40},{-140,60}})));
- NonElectrical.Continuous.SimpleLag K0(
- K=1,
- y_start=p0,
- T=Tp)
- annotation (Placement(transformation(extent={{-120,-10},{-100,10}})));
- parameter Real Tp=0.50000E-01 " Pelec filter in fast PF controller";
- parameter Real PFA_ref=atan2(q0, p0) "PF angle reference if PFAFLG=1";
- parameter Real p0;
- parameter Real q0;
- Modelica.Blocks.Interfaces.RealInput u annotation (Placement(transformation(
- rotation=0, extent={{-214,-10},{-194,10}})));
- Modelica.Blocks.Interfaces.RealOutput Q_REF_PF
- annotation (Placement(transformation(extent={{0,-10},{20,10}})));
- equation
- connect(tan1.y, Qcmdn1.u1) annotation (Line(points={{-99,50},{-78,50},{-78,
- 6},{-62,6}}, color={0,0,127}));
- connect(K0.y, Qcmdn1.u2) annotation (Line(points={{-99,0},{-78,0},{-78,-6},
- {-62,-6}}, color={0,0,127}));
- connect(VAR2.y, tan1.u) annotation (Line(points={{-139,50},{-139,50},{-122,
- 50}}, color={0,0,127}));
- connect(u, K0.u)
- annotation (Line(points={{-204,0},{-158,0},{-122,0}}, color={0,0,127}));
- connect(Qcmdn1.y, Q_REF_PF)
- annotation (Line(points={{-39,0},{10,0},{10,0}}, color={0,0,127}));
- annotation (Diagram(coordinateSystem(extent={{-200,-100},{0,100}},
- preserveAspectRatio=true), graphics={Text(
- extent={{-160,100},{-40,80}},
- lineColor={255,0,0},
- pattern=LinePattern.Dash,
- lineThickness=0.5,
- fillColor={0,0,255},
- fillPattern=FillPattern.Solid,
- textString="Power Factor Regulator")}), Icon(coordinateSystem(
- extent={{-200,-100},{0,100}}, preserveAspectRatio=true), graphics={
- Rectangle(
- extent={{-200,100},{0,-100}},
- lineColor={28,108,200},
- fillColor={255,255,255},
- fillPattern=FillPattern.Solid),Text(
- extent={{-188,6},{-148,-6}},
- lineColor={28,108,200},
- textString="P_FAREF"),Text(
- extent={{-60,6},{-2,-6}},
- lineColor={28,108,200},
- textString="Q_REF_PF"),Text(
- extent={{-160,80},{-40,40}},
- lineColor={238,46,47},
- textString="PF Controller")}));
- end pf_Controller;
- equation
- connect(PELEC, pf_Controller1.u) annotation (Line(points={{-200,40},{-140,40},
- {-114.8,40}}, color={0,0,127}));
- protected
- model ActivePowerControl
- NonElectrical.Continuous.SimpleLag K5(
- K=1,
- T=T_Power,
- y_start=k50)
- annotation (Placement(transformation(extent={{-180,-70},{-160,-50}})));
- Modelica.Blocks.Math.Add add(k2=-1)
- annotation (Placement(transformation(extent={{-140,-70},{-120,-50}})));
- Modelica.Blocks.Continuous.Integrator K3(
- y_start=k30,
- k=KIP,
- initType=Modelica.Blocks.Types.Init.InitialOutput)
- annotation (Placement(transformation(extent={{-100,-40},{-80,-20}})));
- Modelica.Blocks.Math.Gain imGain(k=Kpp)
- annotation (Placement(transformation(extent={{-100,-100},{-80,-80}})));
- Modelica.Blocks.Math.Add add1
- annotation (Placement(transformation(extent={{-60,-70},{-40,-50}})));
- Modelica.Blocks.Math.Feedback feedback
- annotation (Placement(transformation(extent={{20,-70},{40,-50}})));
- Modelica.Blocks.Nonlinear.Limiter imLimited(uMin=RPMN, uMax=RPMX)
- annotation (Placement(transformation(extent={{50,-70},{70,-50}})));
- Modelica.Blocks.Continuous.LimIntegrator K2(
- outMin=PMN,
- outMax=PMX,
- k=1/TFP,
- y_start=k20,
- initType=Modelica.Blocks.Types.Init.InitialOutput)
- annotation (Placement(transformation(extent={{80,-70},{100,-50}})));
- Modelica.Blocks.Nonlinear.Limiter imLimited_max(uMin=-Modelica.Constants.inf,
- uMax=IPMAX)
- annotation (Placement(transformation(extent={{160,-70},{180,-50}})));
- Modelica.Blocks.Math.Add add2
- annotation (Placement(transformation(extent={{-100,44},{-80,64}})));
- Modelica.Blocks.Sources.Constant const(k=1)
- annotation (Placement(transformation(extent={{-140,10},{-120,30}})));
- Modelica.Blocks.Math.Division division
- annotation (Placement(transformation(extent={{120,-70},{140,-50}})));
- Modelica.Blocks.Nonlinear.Limiter imLimited_min(uMin=0.01, uMax=Modelica.Constants.inf)
- annotation (Placement(transformation(extent={{80,-10},{100,10}})));
- Modelica.Blocks.Math.Product Qcmdn2
- annotation (Placement(transformation(extent={{-20,-70},{0,-50}})));
- Modelica.Blocks.Interfaces.RealOutput WPCMND annotation (Placement(
- transformation(extent={{200,-100},{220,-80}}), iconTransformation(
- extent={{-10,-10},{10,10}},
- rotation=270,
- origin={1.77636e-015,-110})));
- protected
- Modelica.Blocks.Interfaces.RealInput WNDSP_1
- annotation (Placement(transformation(extent={{-210,-70},{-190,-50}})));
- public
- parameter Real TFP=0.50000E-01 " Filter time constant in torque regulator";
- parameter Real Kpp=3.0000 " Proportional gain in torque regulator (pu) ";
- parameter Real KIP=0.60000 " Integrator gain in torque regulator (pu)";
- parameter Real PMX=1.1200 " Max limit in torque regulator (pu)";
- parameter Real PMN=0.10000 " Min limit in torque regulator (pu)";
- parameter Real IPMAX=1.1000 " Max active current limit";
- parameter Real RPMX=0.45000 " Max power order derivative";
- parameter Real RPMN=-0.45000 " Min power order derivative";
- parameter Real T_Power=5.0000 " Power filter time constant";
- parameter Real wPmin=0.69000 " Shaft speed at Pmin (pu)";
- parameter Real wP20=0.78000 " Shaft speed at 20% rated power (pu) ";
- parameter Real wP40=0.98000 " Shaft speed at 40% rated power (pu)";
- parameter Real wP60=1.1200 " Shaft speed at 60% rated power (pu)";
- parameter Real Pmin=0.74000
- " Minimum power for operating at P100 speed (pu)";
- parameter Real wP100=1.2000 " Shaft speed at 100% rated power (pu)";
- parameter Real k20;
- parameter Real k30;
- parameter Real k50;
- Modelica.Blocks.Interfaces.RealInput SPEED annotation (Placement(
- transformation(rotation=0, extent={{-210,50},{-190,70}}),
- iconTransformation(extent={{-200,40},{-180,60}})));
- Modelica.Blocks.Interfaces.RealOutput WIPCMD annotation (Placement(
- transformation(rotation=0, extent={{200,-70},{220,-50}}),
- iconTransformation(extent={{200,-10},{220,10}})));
- Modelica.Blocks.Interfaces.RealInput VTERM annotation (Placement(
- transformation(rotation=0, extent={{-210,-10},{-190,10}}),
- iconTransformation(extent={{-200,-60},{-180,-40}})));
- Modelica.Blocks.Interfaces.RealInput PELEC annotation (Placement(
- transformation(extent={{-210,80},{-190,100}}), iconTransformation(
- extent={{-200,-10},{-180,10}})));
- equation
- WNDSP_1 = Speed(
- PELEC,
- PMN,
- wPmin,
- wP20,
- wP40,
- wP60,
- wP100,
- Pmin);
- connect(imLimited_min.y, division.u2) annotation (Line(
- points={{101,0},{112,0},{112,-66},{118,-66}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(WNDSP_1, K5.u) annotation (Line(points={{-200,-60},{-200,-60},{-182,
- -60}}, color={0,0,127}));
- connect(K2.y, division.u1) annotation (Line(points={{101,-60},{114,-60},{
- 114,-54},{118,-54}}, color={0,0,127}));
- connect(division.y, imLimited_max.u) annotation (Line(points={{141,-60},{
- 141,-60},{158,-60}}, color={0,0,127}));
- connect(K5.y, add.u2) annotation (Line(points={{-159,-60},{-152,-60},{-152,
- -66},{-142,-66}}, color={0,0,127}));
- connect(add.y, K3.u) annotation (Line(points={{-119,-60},{-110,-60},{-110,-30},
- {-102,-30}}, color={0,0,127}));
- connect(imGain.u, K3.u) annotation (Line(points={{-102,-90},{-110,-90},{-110,
- -30},{-102,-30}}, color={0,0,127}));
- connect(K3.y, add1.u1) annotation (Line(points={{-79,-30},{-72,-30},{-72,-54},
- {-62,-54}}, color={0,0,127}));
- connect(imGain.y, add1.u2) annotation (Line(points={{-79,-90},{-72,-90},{-72,
- -66},{-62,-66}}, color={0,0,127}));
- connect(add1.y, Qcmdn2.u2) annotation (Line(points={{-39,-60},{-32,-60},{-32,
- -66},{-22,-66}}, color={0,0,127}));
- connect(const.y, add2.u2) annotation (Line(points={{-119,20},{-110,20},{-110,
- 48},{-102,48}}, color={0,0,127}));
- connect(SPEED, add2.u1)
- annotation (Line(points={{-200,60},{-102,60}}, color={0,0,127}));
- connect(add.u1, add2.u1) annotation (Line(points={{-142,-54},{-152,-54},{-152,
- 60},{-102,60}}, color={0,0,127}));
- connect(add2.y, Qcmdn2.u1) annotation (Line(points={{-79,54},{-32,54},{-32,
- -54},{-22,-54}}, color={0,0,127}));
- connect(Qcmdn2.y, feedback.u1)
- annotation (Line(points={{1,-60},{22,-60}}, color={0,0,127}));
- connect(feedback.y, imLimited.u)
- annotation (Line(points={{39,-60},{48,-60}}, color={0,0,127}));
- connect(imLimited.y, K2.u) annotation (Line(points={{71,-60},{74.5,-60},{78,
- -60}}, color={0,0,127}));
- connect(feedback.u2, division.u1) annotation (Line(points={{30,-68},{30,-90},
- {108,-90},{108,-60},{114,-60},{114,-54},{118,-54}}, color={0,0,127}));
- connect(VTERM, imLimited_min.u)
- annotation (Line(points={{-200,0},{-200,0},{78,0}}, color={0,0,127}));
- connect(WPCMND, division.u1) annotation (Line(points={{210,-90},{210,-90},{
- 108,-90},{108,-60},{114,-60},{114,-54},{118,-54}}, color={0,0,127}));
- connect(imLimited_max.y, WIPCMD)
- annotation (Line(points={{181,-60},{210,-60}}, color={0,0,127}));
- annotation (Diagram(coordinateSystem(extent={{-200,-100},{200,100}},
- preserveAspectRatio=true), graphics={Text(
- extent={{-60,100},{60,80}},
- lineColor={255,0,0},
- pattern=LinePattern.Dash,
- lineThickness=0.5,
- fillColor={0,0,255},
- fillPattern=FillPattern.Solid,
- textString="Active Power Control")}), Icon(coordinateSystem(
- extent={{-200,-100},{200,100}}, preserveAspectRatio=true), graphics=
- {Rectangle(
- extent={{-200,100},{200,-100}},
- lineColor={28,108,200},
- fillColor={255,255,255},
- fillPattern=FillPattern.Solid),Text(
- extent={{-64,72},{76,32}},
- lineColor={0,140,72},
- textString="Active Power
-PI")}));
- end ActivePowerControl;
- equation
- connect(SPEED, activePowerControl.SPEED) annotation (Line(points={{-200,-50},
- {-116,-50},{-38,-50}}, color={0,0,127}));
- connect(activePowerControl.VTERM, VTERM) annotation (Line(points={{-38,-70},{
- -60,-70},{-60,-100},{-200,-100}}, color={0,0,127}));
- connect(activePowerControl.WIPCMD, WIPCMD)
- annotation (Line(points={{42,-60},{42,-60},{190,-60}}, color={0,0,127}));
- connect(PELEC, activePowerControl.PELEC) annotation (Line(points={{-200,40},{
- -140,40},{-140,-60},{-38,-60}}, color={0,0,127}));
- protected
- model ReactivePowerControl
- NonElectrical.Continuous.SimpleLag K4(
- K=1,
- T=TRV,
- y_start=k40)
- annotation (Placement(transformation(extent={{-98,-10},{-78,10}})));
- NonElectrical.Continuous.SimpleLag K8(
- K=Kpv,
- T=Tv,
- y_start=k80)
- annotation (Placement(transformation(extent={{34,-40},{54,-20}})));
- NonElectrical.Continuous.SimpleLag K(
- K=1,
- T=Tfv,
- y_start=k0)
- annotation (Placement(transformation(extent={{160,-10},{180,10}})));
- Modelica.Blocks.Math.Gain XC(k=Xc) "Line drop compensation reactance (pu)"
- annotation (Placement(transformation(extent={{-180,-30},{-160,-10}})));
- Modelica.Blocks.Math.Add add3(k2=-1)
- annotation (Placement(transformation(extent={{-48,-10},{-28,10}})));
- Modelica.Blocks.Sources.Constant VARL(k=Vref)
- annotation (Placement(transformation(extent={{-98,40},{-78,60}})));
- Modelica.Blocks.Math.Gain portion(k=1/Fn)
- "Line drop compensation reactance (pu)"
- annotation (Placement(transformation(extent={{-18,-10},{2,10}})));
- NonElectrical.Continuous.SimpleLag K1(
- y_start=k10,
- K=KIV,
- T=Tv) annotation (Placement(transformation(extent={{54,20},{74,40}})));
- Modelica.Blocks.Math.Add add4
- annotation (Placement(transformation(extent={{94,-10},{114,10}})));
- Modelica.Blocks.Math.Add add5(k2=-1)
- annotation (Placement(transformation(extent={{-138,-10},{-118,10}})));
- Modelica.Blocks.Nonlinear.Limiter Qord1(uMin=QMN, uMax=QMX)
- annotation (Placement(transformation(extent={{128,-10},{148,10}})));
- NonElectrical.Continuous.SimpleLag K10(
- T=Tv,
- y_start=k80,
- K=1) annotation (Placement(transformation(extent={{22,20},{42,40}})));
- parameter Real Tfv=0.15000
- "Filter time constant in voltage regulator (sec)";
- parameter Real Kpv=18.000 " Proportional gain in voltage regulator (pu)";
- parameter Real KIV=5.0000 " Integrator gain in voltage regulator (pu)";
- parameter Real Xc=0.0000 " Line drop compensation reactance (pu)";
- parameter Real QMX=0.29600 " Max limit in voltage regulator (pu)";
- parameter Real QMN=-0.43600 " Min limit in voltage regulator (pu)";
- parameter Real TRV=0.50000E-01 " Voltage sensor time constant";
- parameter Real Tv=0.50000E-01 " Lag time constant in WindVar controller";
- parameter Real Fn=1.0000 " A portion of online wind turbines";
- parameter Real Vref " Remote bus ref voltage";
- parameter Real k0;
- parameter Real k10;
- parameter Real k40;
- parameter Real k80;
- Modelica.Blocks.Interfaces.RealInput ITERM annotation (Placement(
- transformation(rotation=0, extent={{-210.5,-30},{-189.5,-10}}),
- iconTransformation(extent={{-200,30},{-180,50}})));
- Modelica.Blocks.Interfaces.RealInput VTERM annotation (Placement(
- transformation(rotation=0, extent={{-210.5,-4},{-190,16}}),
- iconTransformation(extent={{-200,-50},{-180,-30}})));
- Modelica.Blocks.Interfaces.RealOutput Q_ord annotation (Placement(
- transformation(extent={{200,-10},{220,10}}), iconTransformation(
- extent={{200,-10},{220,10}})));
- equation
- connect(VARL.y, add3.u1) annotation (Line(
- points={{-77,50},{-54,50},{-54,6},{-50,6}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(XC.y, add5.u2) annotation (Line(
- points={{-159,-20},{-144,-20},{-144,-6},{-140,-6}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(add3.y, portion.u) annotation (Line(
- points={{-27,0},{-20,0}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(add5.y, K4.u)
- annotation (Line(points={{-117,0},{-100,0}}, color={0,0,127}));
- connect(K4.y, add3.u2) annotation (Line(points={{-77,0},{-54,0},{-54,-6},{-50,
- -6}}, color={0,0,127}));
- connect(Qord1.y, K.u)
- annotation (Line(points={{149,0},{158,0}}, color={0,0,127}));
- connect(VTERM, add5.u1) annotation (Line(points={{-200.25,6},{-200.25,6},{-140,
- 6}}, color={0,0,127}));
- connect(add4.y, Qord1.u)
- annotation (Line(points={{115,0},{120,0},{126,0}}, color={0,0,127}));
- connect(K1.y, add4.u1) annotation (Line(points={{75,30},{82,30},{82,6},{92,
- 6}}, color={0,0,127}));
- connect(K10.y, K1.u)
- annotation (Line(points={{43,30},{47.5,30},{52,30}}, color={0,0,127}));
- connect(K8.y, add4.u2) annotation (Line(points={{55,-30},{82,-30},{82,-6},{
- 92,-6}}, color={0,0,127}));
- connect(portion.y, K10.u) annotation (Line(points={{3,0},{12,0},{12,30},{20,
- 30}}, color={0,0,127}));
- connect(K8.u, K10.u) annotation (Line(points={{32,-30},{12,-30},{12,30},{20,
- 30}}, color={0,0,127}));
- connect(ITERM, XC.u)
- annotation (Line(points={{-200,-20},{-182,-20}}, color={0,0,127}));
- connect(K.y, Q_ord)
- annotation (Line(points={{181,0},{210,0}}, color={0,0,127}));
- annotation (Diagram(coordinateSystem(extent={{-200,-80},{200,80}},
- preserveAspectRatio=true), graphics={Text(
- extent={{136,8},{156,4}},
- lineColor={255,0,0},
- textString="K
- "), Text(extent={{-60,80},{60,60}},
- lineColor={255,0,0},
- pattern=LinePattern.Dash,
- lineThickness=0.5,
- fillColor={0,0,255},
- fillPattern=FillPattern.Solid,
- textString="Reactive Power Control"),Text(
- extent={{18,26},{38,22}},
- lineColor={255,0,0},
- textString="K+1
- ")}), Icon(coordinateSystem(extent={{-200,-80},{200,80}},
- preserveAspectRatio=true), graphics={Rectangle(
- extent={{-200,80},{200,-80}},
- lineColor={28,108,200},
- fillColor={255,255,255},
- fillPattern=FillPattern.Solid),Text(
- extent={{-120,80},{122,50}},
- lineColor={180,56,148},
- textString="Reactive Power Control"),Text(
- extent={{-176,50},{-116,30}},
- lineColor={28,108,200},
- textString="ITERM"),Text(
- extent={{130,10},{194,-10}},
- lineColor={28,108,200},
- textString="Q_ORD"),Text(
- extent={{-176,-32},{-116,-52}},
- lineColor={28,108,200},
- textString="VTERM")}));
- end ReactivePowerControl;
- equation
- connect(ITERM, reactivePowerControl.ITERM)
- annotation (Line(points={{-200,98},{-102.55,98}}, color={0,0,127}));
- connect(reactivePowerControl.VTERM, VTERM) annotation (Line(points={{-102.55,
- 86},{-116,86},{-130,86},{-130,-100},{-200,-100}}, color={0,0,127}));
- connect(activePowerControl.WPCMND, WPCMND) annotation (Line(points={{
- 4.44089e-016,-82},{0,-82},{0,-92},{96,-92},{190,-92}}, color={0,0,127}));
- connect(Vcl.y, K7.u)
- annotation (Line(points={{119,40},{119,40},{136,40}}, color={0,0,127}));
- annotation (
- choices(
- choice=0 "0 Bypass V control",
- choice=1 "1 WT3G1 Eqcmd limits",
- choice=-1 "-1 WT3G2 Eqcmd limits"),
- Diagram(coordinateSystem(
- preserveAspectRatio=true,
- extent={{-200,-140},{200,140}},
- initialScale=0.05), graphics={Line(
- points={{162,34},{172,40}},
- color={0,0,255},
- smooth=Smooth.None),Line(
- points={{130,12},{130,40}},
- color={0,0,255},
- smooth=Smooth.None),Line(
- points={{130,12},{162,12}},
- color={0,0,255},
- smooth=Smooth.None),Line(
- points={{162,12},{162,32}},
- color={0,0,255},
- smooth=Smooth.None),Text(
- extent={{160,66},{184,56}},
- lineColor={255,0,0},
- textString="VLTFLG"),Line(
- points={{172,40},{186,40}},
- color={0,0,255},
- smooth=Smooth.None),Text(
- extent={{160,32},{170,28}},
- lineColor={255,0,0},
- textString="0"),Text(
- extent={{70,32},{80,26}},
- lineColor={0,0,255},
- textString="Vterm"),Line(
- points={{-20,92},{-20,52}},
- color={0,0,255},
- smooth=Smooth.None,
- thickness=0.5),Line(
- points={{-32,54},{-20,46}},
- color={255,0,0},
- smooth=Smooth.None,
- pattern=LinePattern.Dot,
- thickness=0.5),Text(
- extent={{-30,36},{-20,32}},
- lineColor={255,0,0},
- textString="-1"),Text(
- extent={{-20,62},{-10,58}},
- lineColor={255,0,0},
- textString="1"),Text(
- extent={{2,34},{12,30}},
- lineColor={255,0,0},
- textString="0"),Line(
- points={{-10,36},{-10,12}},
- color={0,0,255},
- smooth=Smooth.None,
- thickness=0.5),Line(
- points={{-4,40},{4,40}},
- color={0,0,255},
- smooth=Smooth.None,
- thickness=0.5),Line(
- points={{-14,46},{-4,40}},
- color={0,0,255},
- smooth=Smooth.None,
- thickness=0.5),Text(
- extent={{-54,64},{-32,56}},
- lineColor={255,0,0},
- textString="VARFLG"),Line(
- points={{-44,92},{-20,92}},
- color={0,0,255},
- smooth=Smooth.None,
- thickness=0.5),Line(
- points={{-64,40},{-20,40}},
- color={0,0,255},
- smooth=Smooth.None,
- thickness=0.5),Line(
- points={{162,44},{168,56}},
- color={255,0,0},
- smooth=Smooth.None,
- pattern=LinePattern.Dot,
- thickness=0.5)}),
- Icon(coordinateSystem(
- extent={{-200,-140},{200,140}},
- preserveAspectRatio=true,
- initialScale=0.05), graphics={Rectangle(
- extent={{-200,140},{200,-140}},
- lineColor={28,108,200},
- fillColor={255,255,255},
- fillPattern=FillPattern.Solid),Text(
- extent={{-80,60},{80,-60}},
- lineColor={28,108,200},
- textString="WT3E1")}),
- Documentation);
- end WT3E1;
- annotation (Documentation);
- end WT3G;
-
- package WT4G
- model WT4G1 "Wind Generator Model with Power Converter (Type 4)"
- // Extending the PF component
- extends OpenIPSL.Electrical.Essentials.pfComponent;
- //Constants
- constant Real pi=Modelica.Constants.pi;
- // Model parameters
- parameter Real M_b "Machine base power (MVA)";
- parameter Real T_IQCmd "Converter time constant for I_Qcmd";
- parameter Real T_IPCmd "Converter time constant for I_Pcmd";
- parameter Real V_LVPL1 "LVPL voltage 1 (Low voltage power logic)";
- parameter Real V_LVPL2 "LVPL voltage 2";
- parameter Real G_LVPL "LVPL gain";
- parameter Real V_HVRCR
- "HVRCR voltage (High voltage reactive current limiter)";
- parameter Real CUR_HVRCR "HVRCR current (Max. reactive current at VHVRCR)";
- parameter Real RIp_LVPL "Rate of LVACR active current change";
- parameter Real T_LVPL "Voltage sensor for LVACR time constant";
- // Variables
- Complex Is "Equivalent internal current source";
- OpenIPSL.Interfaces.PwPin p(
- vr(start=vr0),
- vi(start=vi0),
- ir(start=ir1),
- ii(start=ii1)) annotation (Placement(transformation(extent={{
- 100,-10},{120,10}}), iconTransformation(extent={{100,-10},
- {120,10}})));
- OpenIPSL.NonElectrical.Continuous.SimpleLag K1(
- K=1,
- T=T_IQCmd,
- y_start=Iy0) annotation (Placement(transformation(extent={{-30,
- 70},{-20,80}})));
- Modelica.Blocks.Continuous.Integrator K(
- y_start=Ix0,
- k=1/T_IPCmd,
- initType=Modelica.Blocks.Types.Init.SteadyState)
- annotation (Placement(transformation(extent={{-30,35},{-20,45}})));
- Modelica.Blocks.Interfaces.RealOutput Iy(start=Iy0) annotation (Placement(
- transformation(extent={{100,80},{120,100}}), iconTransformation(extent=
- {{100,-70},{120,-50}})));
- Modelica.Blocks.Interfaces.RealOutput V=VT annotation (Placement(
- transformation(extent={{110,-60},{128,-42}}), iconTransformation(
- extent={{-10,-10},{10,10}},
- rotation=180,
- origin={-110,0})));
- Modelica.Blocks.Interfaces.RealOutput P(start=p0) annotation (Placement(
- transformation(extent={{110,-78},{128,-60}}), iconTransformation(
- extent={{-10,-10},{10,10}},
- rotation=180,
- origin={-110,-40})));
- Modelica.Blocks.Interfaces.RealOutput Q(start=q0) annotation (Placement(
- transformation(extent={{110,-100},{128,-82}}), iconTransformation(
- extent={{-10,-10},{10,10}},
- rotation=180,
- origin={-110,-80})));
- Modelica.Blocks.Math.Feedback Iperr(y(start=0, fixed=false))
- annotation (Placement(transformation(extent={{-80,35},{-70,45}})));
- OpenIPSL.Electrical.Wind.PSSE.Submodels.LVACL lVACL annotation (
- Placement(transformation(extent={{68,30},{88,50}})));
- OpenIPSL.Electrical.Wind.PSSE.Submodels.HVRCL hVRCL(VHVRCR=
- V_HVRCR, CurHVRCR=CUR_HVRCR) annotation (Placement(
- transformation(extent={{50,65},{70,85}})));
- Modelica.Blocks.Interfaces.RealOutput IyL(start=Iy0) annotation (Placement(
- transformation(extent={{100,65},{120,85}}), iconTransformation(extent={
- {100,70},{120,90}})));
- Modelica.Blocks.Interfaces.RealOutput IxL(start=Ix0) annotation (Placement(
- transformation(extent={{96,34},{114,52}}), iconTransformation(extent={{
- 100,30},{120,50}})));
- OpenIPSL.Electrical.Wind.PSSE.Submodels.LVPL lVPL(
- VLVPL1=V_LVPL1,
- VLVPL2=V_LVPL2,
- GLVPL=G_LVPL) annotation (Placement(transformation(extent={{40,
- -40},{20,-20}})));
- Modelica.Blocks.Nonlinear.Limiter imLimited_max(uMin=-Modelica.Constants.inf,
- uMax=RIp_LVPL)
- annotation (Placement(transformation(extent={{-50,35},{-40,45}})));
- Modelica.Blocks.Nonlinear.VariableLimiter variableLimiter(y(start=Ipcmd0))
- annotation (Placement(transformation(extent={{20,35},{30,45}})));
- Modelica.Blocks.Sources.Constant const(k=-Modelica.Constants.inf)
- annotation (Placement(transformation(extent={{-10,25},{0,35}})));
- //Initialization parameters
- Modelica.Blocks.Interfaces.RealInput I_qcmd(start=Iy0) annotation (Placement(
- transformation(extent={{-110,65},{-90,85}}), iconTransformation(extent=
- {{-100,70},{-80,90}})));
- Modelica.Blocks.Interfaces.RealInput I_pcmd(start=Ipcmd0) annotation (
- Placement(transformation(extent={{-110,30},{-90,50}}), iconTransformation(
- extent={{-100,30},{-80,50}})));
- Modelica.Blocks.Interfaces.RealOutput I_qcmd0 annotation (Placement(
- transformation(extent={{-50,85},{-30,105}}), iconTransformation(
- extent={{-10,-10},{10,10}},
- rotation=90,
- origin={-60,110})));
- Modelica.Blocks.Interfaces.RealOutput I_pcmd0 annotation (Placement(
- transformation(extent={{-78,85},{-58,105}}), iconTransformation(
- extent={{-10,-10},{10,10}},
- rotation=90,
- origin={-20,110})));
- protected
- Real delta(start=anglev_rad);
- Real VT(start=V_0) "Bus voltage magnitude (pu)";
- Real anglev(start=anglev_rad) "Bus voltage angle (rad)";
- protected
- parameter Real p0=P_0/M_b
- "initial value of bus active power in p.u. machinebase";
- parameter Real q0=Q_0/M_b
- "initial value of bus reactive power in p.u. machinebase";
- parameter Real v0=V_0;
- parameter Real vr0=v0*cos(anglev_rad)
- "Real component of initial terminal voltage";
- parameter Real vi0=v0*sin(anglev_rad)
- "Imaginary component of intitial terminal voltage";
- parameter Real ir0=(p0*vr0 + q0*vi0)/(vr0^2 + vi0^2)
- "Real component of initial armature current, M_b";
- parameter Real ii0=(p0*vi0 - q0*vr0)/(vr0^2 + vi0^2)
- "Imaginary component of initial armature current, M_b";
- parameter Real Isr0=ir0 "Sorce current re M_b";
- parameter Real Isi0=ii0 "Sorce current im M_b";
- parameter Real CoB=M_b/S_b;
- parameter Real ir1=-CoB*(p0*vr0 + q0*vi0)/(vr0^2 + vi0^2)
- "Real component of initial armature current, S_b";
- parameter Real ii1=-CoB*(p0*vi0 - q0*vr0)/(vr0^2 + vi0^2)
- "Imaginary component of initial armature current, S_b";
- parameter Real Ipcmd0=Ix0;
- parameter Real anglev_rad=angle_0*pi/180 "initial value of bus anglev in rad";
- parameter Real Ix0=Isr0*cos(-anglev_rad) - Isi0*sin(-anglev_rad);
- parameter Real Iy0=-(Isr0*sin(-anglev_rad) + cos(-anglev_rad)*Isi0);
- protected
- Modelica.Blocks.Interfaces.RealInput Vtt=VT annotation (Placement(
- transformation(
- extent={{-10,-10},{10,10}},
- rotation=90,
- origin={60,-100}), iconTransformation(extent={{-110,52},{-94,68}})));
- equation
- I_qcmd0 = Iy0;
- I_pcmd0 = Ix0;
- anglev = atan2(p.vi, p.vr);
- VT = sqrt(p.vr*p.vr + p.vi*p.vi);
- delta = anglev;
- Is.re = p.ir/CoB;
- Is.im = p.ii/CoB;
- [IxL; -IyL] = -[cos(delta), sin(delta); -sin(delta), cos(delta)]*[Is.re; Is.im];
- -P = p.vr*p.ir + p.vi*p.ii;
- -Q = p.vi*p.ir - p.vr*p.ii;
- connect(Iperr.u1, I_pcmd) annotation (Line(
- points={{-79,40},{-100,40}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(lVACL.Ip_LVACL, IxL) annotation (Line(
- points={{89,40},{93.745,40},{93.745,43},{105,43}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(hVRCL.Iq_HVRCL, IyL) annotation (Line(
- points={{72.5,75},{110,75}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(I_qcmd, K1.u)
- annotation (Line(points={{-100,75},{-67,75},{-31,75}}, color={0,0,127}));
- connect(Iperr.y, imLimited_max.u)
- annotation (Line(points={{-70.5,40},{-51,40}}, color={0,0,127}));
- connect(imLimited_max.y, K.u)
- annotation (Line(points={{-39.5,40},{-31,40}}, color={0,0,127}));
- connect(K.y, variableLimiter.u)
- annotation (Line(points={{-19.5,40},{-19.5,40},{19,40}}, color={0,0,127}));
- connect(variableLimiter.y, lVACL.Ip_LVPL)
- annotation (Line(points={{30.5,40},{69,40}}, color={0,0,127}));
- connect(Iperr.u2, lVACL.Ip_LVPL) annotation (Line(points={{-75,36},{-75,20},{
- 46,20},{46,40},{69,40}}, color={0,0,127}));
- connect(const.y, variableLimiter.limit2) annotation (Line(points={{0.5,30},{
- 10,30},{10,36},{19,36}}, color={0,0,127}));
- connect(K1.y, hVRCL.Iq)
- annotation (Line(points={{-19.5,75},{51.25,75}}, color={0,0,127}));
- connect(Iy, hVRCL.Iq) annotation (Line(points={{110,90},{0,90},{0,75},{51.25,
- 75}}, color={0,0,127}));
- connect(lVPL.LVPL, variableLimiter.limit1) annotation (Line(points={{19,-30},
- {14,-30},{14,44},{19,44}}, color={0,0,127}));
- connect(Vtt, hVRCL.Vt) annotation (Line(points={{60,-100},{60,66.25},{60,
- 66.25}}, color={0,0,127}));
- connect(lVPL.Vt, hVRCL.Vt)
- annotation (Line(points={{39,-30},{60,-30},{60,66.25}}, color={0,0,127}));
- connect(lVACL.Vt, hVRCL.Vt) annotation (Line(points={{78,31},{78,-30},{60,-30},
- {60,66.25}}, color={0,0,127}));
- annotation (
- Diagram(coordinateSystem(
- preserveAspectRatio=true,
- extent={{-100,-100},{100,100}},
- grid={2,2}), graphics={Text(
- extent={{-55,51},{-36,48}},
- lineColor={0,0,127},
- fillColor={0,0,255},
- fillPattern=FillPattern.Solid,
- textString="RIp_LVPL"),Text(
- extent={{12,62},{36,56}},
- lineColor={0,0,127},
- fillColor={0,0,255},
- fillPattern=FillPattern.Solid,
- textString="LVPL"),Text(
- extent={{-98,-78},{0,-100}},
- lineColor={255,0,0},
- textStyle={TextStyle.Bold},
- horizontalAlignment=TextAlignment.Left,
- textString="Source impedaance is not used for WT4G1.
-But some value other than zero should be
-specified at PSSE model dialog")}),
- Icon(coordinateSystem(
- preserveAspectRatio=true,
- extent={{-100,-100},{100,100}},
- grid={2,2}), graphics={Rectangle(
- extent={{-100,100},{100,-100}},
- lineColor={28,108,200},
- fillColor={255,255,255},
- fillPattern=FillPattern.Solid),Text(
- extent={{-34,18},{42,-14}},
- lineColor={28,108,200},
- textString="WT4G1"),Text(
- extent={{-76,86},{-42,74}},
- lineColor={28,108,200},
- lineThickness=0.5,
- fillColor={255,255,255},
- fillPattern=FillPattern.Solid,
- textString="I_qcmd"),Text(
- extent={{-76,46},{-42,34}},
- lineColor={28,108,200},
- lineThickness=0.5,
- fillColor={255,255,255},
- fillPattern=FillPattern.Solid,
- textString="I_pcmd"),Text(
- extent={{-94,6},{-80,-6}},
- lineColor={28,108,200},
- lineThickness=0.5,
- fillColor={255,255,255},
- fillPattern=FillPattern.Solid,
- textString="V"),Text(
- extent={{-94,-34},{-80,-46}},
- lineColor={28,108,200},
- lineThickness=0.5,
- fillColor={255,255,255},
- fillPattern=FillPattern.Solid,
- textString="P"),Text(
- extent={{-96,-74},{-82,-86}},
- lineColor={28,108,200},
- lineThickness=0.5,
- fillColor={255,255,255},
- fillPattern=FillPattern.Solid,
- textString="Q"),Text(
- extent={{-80,100},{-40,88}},
- lineColor={28,108,200},
- lineThickness=0.5,
- fillColor={255,255,255},
- fillPattern=FillPattern.Solid,
- textString="I_qcmd0"),Text(
- extent={{-36,100},{4,88}},
- lineColor={28,108,200},
- lineThickness=0.5,
- fillColor={255,255,255},
- fillPattern=FillPattern.Solid,
- textString="I_pcmd0"),Text(
- extent={{74,86},{98,74}},
- lineColor={28,108,200},
- lineThickness=0.5,
- fillColor={255,255,255},
- fillPattern=FillPattern.Solid,
- textString="I_yL"),Text(
- extent={{74,46},{98,34}},
- lineColor={28,108,200},
- lineThickness=0.5,
- fillColor={255,255,255},
- fillPattern=FillPattern.Solid,
- textString="I_xL"),Text(
- extent={{76,-54},{100,-66}},
- lineColor={28,108,200},
- lineThickness=0.5,
- fillColor={255,255,255},
- fillPattern=FillPattern.Solid,
- textString="I_y")}),
- Documentation);
- end WT4G1;
-
- model WT4E1 "Electrical Control for Type 4 Wind Generator"
- parameter Boolean PFAFLG "PF fast control"
- annotation (choices(choice=true "Enable", choice=false "Disable"));
- parameter Boolean VARFLG annotation (choices(choice=false
- " Qord is not provided by WindVar", choice=true
- " Qord is provided by WindVar"));
- parameter Boolean PQFLAG "P/Q priority flag"
- annotation (choices(choice=false "Q priority", choice=true "P priority"));
- parameter Real Tfv "Filter time constant in voltage regulator (sec)";
- parameter Real Kpv " Proportional gain in voltage regulator (pu)";
- parameter Real KIV " Integrator gain in voltage regulator (pu)";
- parameter Real Kpp " Proportional gain in torque regulator (pu)";
- parameter Real KIP " Integrator gain in torque regulator (pu)";
- //should be 0.1 in PSSE
- parameter Real Kf "Rate feedback gain (pu)";
- parameter Real Tf "Rate feedback time constant (sec.)";
- parameter Real QMX " Max limit in voltage regulator (pu)";
- parameter Real QMN " Min limit in voltage regulator (pu)";
- parameter Real IPMAX " Max active current limit";
- parameter Real TRV " Voltage sensor time constant";
- parameter Real dPMX " Max limit in power PI controller";
- parameter Real dPMN " Min limit in power PI controller";
- parameter Real T_Power " Power filter time constant";
- parameter Real KQI " MVAR/Voltage gain";
- //should be 0.1 in PSSE
- parameter Real VMINCL=0.9 " Min voltage limit";
- parameter Real VMAXCL=1.1 " Max voltage limit";
- parameter Real KVI=120 " Voltage/MVAR gain";
- parameter Real Tv=0.50000E-01 " Lag time constant in WindVar controller";
- parameter Real Tp=0.50000E-01 " Pelec filter in fast PF controller";
- parameter Real ImaxTD=1.7 "Converter current limit";
- parameter Real Iphl=1.11 "Hard active current limit";
- parameter Real Iqhl=1.11 "Hard reactive current limit";
- //parameter Real Qord "MVAR order from MVAR emulator";
- Modelica.Blocks.Interfaces.RealInput P(start=p0) annotation (Placement(
- transformation(extent={{-210,-10},{-190,10}}), iconTransformation(
- extent={{-20,-20},{20,20}},
- rotation=180,
- origin={180,40})));
- Modelica.Blocks.Interfaces.RealInput Q(start=q0) annotation (Placement(
- transformation(
- extent={{-10,-10},{10,10}},
- rotation=0,
- origin={-200,188}), iconTransformation(
- extent={{-20,-20},{20,20}},
- rotation=180,
- origin={180,100})));
- Modelica.Blocks.Interfaces.RealInput V(start=v0) annotation (Placement(
- transformation(extent={{-210,-170},{-190,-150}}), iconTransformation(
- extent={{-20,-20},{20,20}},
- rotation=180,
- origin={180,160})));
- Modelica.Blocks.Interfaces.RealOutput WIPCMD annotation (Placement(
- transformation(extent={{200,-90},{220,-70}}), iconTransformation(extent=
- {{200,-80},{240,-40}})));
- Modelica.Blocks.Nonlinear.Limiter Qord(uMin=QMN, uMax=QMX)
- annotation (Placement(transformation(extent={{20,50},{40,70}})));
- Modelica.Blocks.Math.Feedback feedback1
- annotation (Placement(transformation(extent={{50,70},{70,50}})));
- Modelica.Blocks.Continuous.LimIntegrator K6(
- outMin=VMINCL,
- outMax=VMAXCL,
- k=KQI,
- y_start=k60)
- annotation (Placement(transformation(extent={{80,50},{100,70}})));
- Modelica.Blocks.Math.Feedback Vcl
- annotation (Placement(transformation(extent={{108,50},{128,70}})));
- Modelica.Blocks.Interfaces.RealOutput WIQCMD annotation (Placement(
- transformation(extent={{200,50},{220,70}}), iconTransformation(extent={
- {200,-160},{240,-120}})));
- OpenIPSL.NonElectrical.Continuous.IntegratorLimVar K7(K=KVI,
- y_start=k70) annotation (Placement(transformation(extent={{
- 142,50},{162,70}})));
- OpenIPSL.Electrical.Wind.PSSE.Submodels.CCL cCL(
- Qmax=QMX,
- ImaxTD=ImaxTD,
- Iphl=Iphl,
- Iqhl=Iqhl,
- pqflag=PQFLAG) annotation (Placement(transformation(extent={{
- 150,-30},{190,10}})));
- Modelica.Blocks.Sources.Constant Qcmd0(k=Qref) annotation (Placement(
- transformation(
- extent={{-10,-10},{10,10}},
- rotation=0,
- origin={-100,0})));
- ActivePowerController activePowerController(
- Kpp=Kpp,
- KIP=KIP,
- Kf=Kf,
- Tf=Tf,
- dPMX=dPMX,
- dPMN=dPMN,
- T_Power=T_Power,
- Pref=Pref,
- k20=k20,
- k30=k30,
- k50=k50,
- p0=p0) annotation (Placement(transformation(rotation=0, extent={{40,-100},{
- 80,-60}})));
- pf_Controller PF_Controller(
- Tp=Tp,
- PFA_ref=PFA_ref,
- p0=p0,
- q0=q0) annotation (Placement(transformation(rotation=0, extent={{-120,28},{
- -80,68}})));
- windControlEmulator windControlEmulator1(
- Tfv=Tfv,
- Kpv=Kpv,
- KIV=KIV,
- QMX=QMX,
- QMN=QMN,
- Tv=Tv,
- Vref=Vref,
- k0=k0,
- k10=k10,
- k80=k80) annotation (Placement(transformation(rotation=0, extent={{-120,140},
- {-80,180}})));
- Modelica.Blocks.Logical.Switch switch_QREF
- annotation (Placement(transformation(extent={{-50,30},{-30,50}})));
- Modelica.Blocks.Sources.BooleanConstant ControlPF(k=PFAFLG)
- annotation (Placement(transformation(extent={{-110,80},{-90,100}})));
- Modelica.Blocks.Logical.Switch switch_WindVar
- annotation (Placement(transformation(extent={{-12,50},{8,70}})));
- Modelica.Blocks.Sources.BooleanConstant UseWindVar(k=VARFLG)
- annotation (Placement(transformation(extent={{-50,80},{-30,100}})));
- protected
- parameter Real Vref(fixed=false);
- parameter Real Pref=p0;
- parameter Real Qref=q0 "Q reference if PFAFLG=0 & VARFLG";
- parameter Real PFA_ref=atan2(q0, p0) "PF angle reference if PFAFLG=1";
- parameter Real p0(fixed=false);
- parameter Real q0(fixed=false);
- parameter Real v0(fixed=false);
- parameter Real Ip0(fixed=false);
- parameter Real Iq0(fixed=false);
- parameter Real Pord0(fixed=false);
- parameter Real k0(fixed=false) "Filter in voltage regulator";
- parameter Real k10(fixed=false) "Integrator in voltage regulator";
- parameter Real k20(fixed=false) "Integrator in active power regulator";
- parameter Real k30(fixed=false) "Active power regulator feedback";
- parameter Real k40(fixed=false) "Voltage sensor";
- parameter Real k50(fixed=false) "Power filter";
- parameter Real k60(fixed=false) "MVAR/Vref integrator";
- parameter Real k70(fixed=false) "Verror/Internal machine voltage integrator";
- parameter Real k80(fixed=false) "Lag of the WindVar controller";
- parameter Real k90(fixed=false)
- "Input filter of Pelec for PF fast controller";
- initial equation
- Vref = v0;
- p0 = P;
- q0 = Q;
- v0 = V;
- Ip0 = WIPCMD;
- Iq0 = WIQCMD;
- Pord0 = v0*Ip0;
- k0 = q0;
- k10 = q0;
- k80 = 0;
- k40 = v0;
- //may be incorrect !
- k50 = p0;
- k20 = 0;
- k30 = 0;
- k60 = v0;
- k70 = q0/v0;
- k90 = p0;
- equation
- connect(Q, feedback1.u2) annotation (Line(
- points={{-200,188},{60,188},{60,68}},
- color={0,0,150},
- smooth=Smooth.None));
- connect(V, Vcl.u2) annotation (Line(
- points={{-200,-160},{118,-160},{118,52}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(cCL.Vt, V) annotation (Line(
- points={{150,-10},{92,-10},{92,-160},{-200,-160}},
- color={255,0,0},
- smooth=Smooth.None));
- connect(Qord.y, feedback1.u1) annotation (Line(
- points={{41,60},{52,60}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(K7.y, WIQCMD) annotation (Line(
- points={{163,60},{210,60}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(K7.u, Vcl.y) annotation (Line(
- points={{140,60},{127,60}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(K6.u, feedback1.y) annotation (Line(
- points={{78,60},{69,60}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(cCL.IqCMD, WIQCMD)
- annotation (Line(points={{180,10},{180,60},{210,60}}, color={0,0,127}));
- protected
- model ActivePowerController
- Modelica.Blocks.Nonlinear.VariableLimiter imLimited_max
- annotation (Placement(transformation(extent={{130,0},{150,20}})));
- Modelica.Blocks.Math.Division division
- annotation (Placement(transformation(extent={{96,0},{116,20}})));
- Modelica.Blocks.Nonlinear.Limiter imLimited_min(uMin=0.0000001, uMax=
- Modelica.Constants.inf)
- annotation (Placement(transformation(extent={{36,-70},{56,-50}})));
- Modelica.Blocks.Math.Add3 add3_1(k1=-1, k3=-1)
- annotation (Placement(transformation(extent={{-52,4},{-40,16}})));
- Modelica.Blocks.Sources.Constant VAR3(k=Pref) annotation (Placement(
- transformation(
- extent={{-10,-10},{10,10}},
- rotation=0,
- origin={-94,40})));
- Modelica.Blocks.Math.Gain gain(k=Kpp)
- annotation (Placement(transformation(extent={{-12,0},{8,20}})));
- Modelica.Blocks.Continuous.LimIntegrator K2(
- y_start=k20,
- outMin=dPMN,
- outMax=dPMX,
- k=KIP) annotation (Placement(transformation(extent={{-14,30},{6,50}})));
- Modelica.Blocks.Math.Add Pord(k2=-1)
- annotation (Placement(transformation(extent={{56,0},{76,20}})));
- Modelica.Blocks.Math.Add Pord1
- annotation (Placement(transformation(extent={{26,0},{46,20}})));
- Modelica.Blocks.Continuous.Derivative K3(
- k=Kf,
- T=Tf,
- x_start=k30) annotation (Placement(transformation(
- extent={{10,-10},{-10,10}},
- rotation=0,
- origin={-4,-20})));
- NonElectrical.Continuous.SimpleLag K5(
- K=1,
- T=T_Power,
- y_start=k50)
- annotation (Placement(transformation(extent={{-104,-10},{-84,10}})));
- Modelica.Blocks.Sources.Constant NoLimiMin(k=-Modelica.Constants.inf)
- annotation (Placement(transformation(
- extent={{-10,-10},{10,10}},
- rotation=0,
- origin={106,-20})));
- parameter Real Kpp " Proportional gain in torque regulator (pu)";
- parameter Real KIP " Integrator gain in torque regulator (pu)";
- parameter Real Kf "Rate feedback gain (pu)";
- parameter Real Tf "Rate feedback time constant (sec.)";
- parameter Real dPMX " Max limit in power PI controller";
- parameter Real dPMN " Min limit in power PI controller";
- parameter Real T_Power " Power filter time constant";
- parameter Real Pref=p0;
- parameter Real k20 "Integrator in active power regulator";
- parameter Real k30 "Active power regulator feedback";
- parameter Real k50 "Power filter";
- parameter Real p0;
- Modelica.Blocks.Interfaces.RealInput PELEC annotation (Placement(
- transformation(rotation=0, extent={{-220,-20},{-180,20}})));
- Modelica.Blocks.Interfaces.RealInput I_PMAX annotation (Placement(
- transformation(
- rotation=270,
- extent={{-20,20},{20,-20}},
- origin={170,204}), iconTransformation(
- extent={{-20,20},{20,-20}},
- rotation=270,
- origin={0,200})));
- Modelica.Blocks.Interfaces.RealOutput ipcmd annotation (Placement(
- transformation(rotation=0, extent={{200,-20},{240,20}}),
- iconTransformation(extent={{200,-20},{240,20}})));
- Modelica.Blocks.Interfaces.RealInput VTERM annotation (Placement(
- transformation(
- rotation=90,
- extent={{-20,-20},{20,20}},
- origin={0,-200})));
- equation
- connect(VAR3.y, add3_1.u1) annotation (Line(
- points={{-83,40},{-60,40},{-60,14.8},{-53.2,14.8}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(gain.y, Pord1.u2) annotation (Line(
- points={{9,10},{16,10},{16,4},{24,4}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(K3.y, add3_1.u3) annotation (Line(
- points={{-15,-20},{-60,-20},{-60,5.2},{-53.2,5.2}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(add3_1.y, K2.u) annotation (Line(
- points={{-39.4,10},{-34,10},{-34,40},{-16,40}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(gain.u, add3_1.y) annotation (Line(
- points={{-14,10},{-39.4,10}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(K5.y, add3_1.u2) annotation (Line(points={{-83,0},{-64,0},{-64,10},
- {-53.2,10}}, color={0,0,127}));
- connect(K2.y, Pord1.u1) annotation (Line(points={{7,40},{16,40},{16,16},{24,
- 16}}, color={0,0,127}));
- connect(division.y, imLimited_max.u)
- annotation (Line(points={{117,10},{128,10}}, color={0,0,127}));
- connect(imLimited_min.y, division.u2) annotation (Line(points={{57,-60},{66,
- -60},{66,4},{94,4}}, color={0,0,127}));
- connect(NoLimiMin.y, imLimited_max.limit2) annotation (Line(points={{117,-20},
- {122,-20},{122,2},{128,2}}, color={0,0,127}));
- connect(Pord.y, division.u1) annotation (Line(points={{77,10},{84,10},{84,
- 16},{94,16}}, color={0,0,127}));
- connect(Pord1.y, Pord.u2) annotation (Line(points={{47,10},{50,10},{50,4},{
- 54,4}}, color={0,0,127}));
- connect(Pord.u1, add3_1.u1) annotation (Line(points={{54,16},{50,16},{50,58},
- {-60,58},{-60,14.8},{-53.2,14.8}}, color={0,0,127}));
- connect(K3.u, Pord.u2) annotation (Line(points={{8,-20},{50,-20},{50,4},{54,
- 4}}, color={0,0,127}));
- connect(PELEC, K5.u)
- annotation (Line(points={{-200,0},{-156,0},{-106,0}}, color={0,0,127}));
- connect(ipcmd, imLimited_max.y)
- annotation (Line(points={{220,0},{151,0},{151,10}}, color={0,0,127}));
- connect(VTERM, imLimited_min.u)
- annotation (Line(points={{0,-200},{0,-60},{34,-60}}, color={0,0,127}));
- connect(I_PMAX, imLimited_max.limit1) annotation (Line(points={{170,204},{
- 168,204},{168,86},{122,86},{122,18},{128,18}}, color={0,0,127}));
- annotation (Diagram(coordinateSystem(extent={{-200,-200},{200,200}},
- preserveAspectRatio=false), graphics={Text(
- extent={{-88,16},{-84,14}},
- lineColor={0,0,255},
- lineThickness=0.5,
- fillColor={0,0,255},
- fillPattern=FillPattern.Solid,
- textString="Speed"),Text(
- extent={{-80,200},{80,180}},
- lineColor={255,0,0},
- pattern=LinePattern.Dash,
- lineThickness=0.5,
- fillColor={0,0,255},
- fillPattern=FillPattern.Solid,
- textString="Active Power Control")}), Icon(coordinateSystem(
- extent={{-200,-200},{200,200}}, preserveAspectRatio=true), graphics=
- {Rectangle(
- extent={{-200,200},{200,-200}},
- lineColor={28,108,200},
- fillColor={255,255,255},
- fillPattern=FillPattern.Solid),Text(
- extent={{-100,160},{100,0}},
- lineColor={0,140,72},
- textString="Active Power
-PI"), Text( extent={{-40,180},{40,140}},
- lineColor={28,108,200},
- textString="I_PMAX"),Text(
- extent={{112,20},{192,-20}},
- lineColor={28,108,200},
- textString="I_PCMD"),Text(
- extent={{-40,-140},{40,-180}},
- lineColor={28,108,200},
- textString="VTERM"),Text(
- extent={{-174,20},{-94,-20}},
- lineColor={28,108,200},
- textString="PELEC")}));
- end ActivePowerController;
- equation
- connect(activePowerController.ipcmd, WIPCMD)
- annotation (Line(points={{82,-80},{82,-80},{210,-80}}, color={0,0,127}));
- connect(activePowerController.VTERM, Vcl.u2) annotation (Line(points={{60,-100},
- {60,-160},{118,-160},{118,52}}, color={255,0,0}));
- protected
- model pf_Controller
- Modelica.Blocks.Math.Tan tan1
- annotation (Placement(transformation(extent={{-120,40},{-100,60}})));
- Modelica.Blocks.Math.Product Qcmdn1
- annotation (Placement(transformation(extent={{-60,-10},{-40,10}})));
- Modelica.Blocks.Sources.Constant VAR2(k=PFA_ref)
- annotation (Placement(transformation(extent={{-160,40},{-140,60}})));
- NonElectrical.Continuous.SimpleLag K0(
- K=1,
- y_start=p0,
- T=Tp)
- annotation (Placement(transformation(extent={{-120,-10},{-100,10}})));
- parameter Real Tp=0.50000E-01 " Pelec filter in fast PF controller";
- parameter Real PFA_ref=atan2(q0, p0) "PF angle reference if PFAFLG=1";
- parameter Real p0;
- parameter Real q0;
- Modelica.Blocks.Interfaces.RealInput u annotation (Placement(transformation(
- rotation=0, extent={{-214,-10},{-194,10}})));
- Modelica.Blocks.Interfaces.RealOutput Q_REF_PF
- annotation (Placement(transformation(extent={{0,-10},{20,10}})));
- equation
- connect(tan1.y, Qcmdn1.u1) annotation (Line(points={{-99,50},{-78,50},{-78,
- 6},{-62,6}}, color={0,0,127}));
- connect(K0.y, Qcmdn1.u2) annotation (Line(points={{-99,0},{-78,0},{-78,-6},
- {-62,-6}}, color={0,0,127}));
- connect(VAR2.y, tan1.u) annotation (Line(points={{-139,50},{-139,50},{-122,
- 50}}, color={0,0,127}));
- connect(u, K0.u)
- annotation (Line(points={{-204,0},{-158,0},{-122,0}}, color={0,0,127}));
- connect(Qcmdn1.y, Q_REF_PF)
- annotation (Line(points={{-39,0},{10,0},{10,0}}, color={0,0,127}));
- annotation (Diagram(coordinateSystem(extent={{-200,-100},{0,100}},
- preserveAspectRatio=true), graphics={Text(
- extent={{-160,100},{-40,80}},
- lineColor={255,0,0},
- pattern=LinePattern.Dash,
- lineThickness=0.5,
- fillColor={0,0,255},
- fillPattern=FillPattern.Solid,
- textString="Power Factor Regulator")}), Icon(coordinateSystem(
- extent={{-200,-100},{0,100}}, preserveAspectRatio=true), graphics={
- Rectangle(
- extent={{-200,100},{0,-100}},
- lineColor={28,108,200},
- fillColor={255,255,255},
- fillPattern=FillPattern.Solid),Text(
- extent={{-188,6},{-148,-6}},
- lineColor={28,108,200},
- textString="P_FAREF"),Text(
- extent={{-60,6},{-2,-6}},
- lineColor={28,108,200},
- textString="Q_REF_PF"),Text(
- extent={{-160,80},{-40,40}},
- lineColor={238,46,47},
- textString="PF Controller")}));
- end pf_Controller;
- equation
- connect(P, PF_Controller.u) annotation (Line(points={{-200,0},{-170,0},{-140,
- 0},{-140,48},{-120.8,48}}, color={0,150,0}));
- connect(activePowerController.PELEC, PF_Controller.u) annotation (Line(points=
- {{40,-80},{-140,-80},{-140,48},{-120.8,48}}, color={0,150,0}));
- protected
- model windControlEmulator
- NonElectrical.Continuous.SimpleLag K(
- K=1,
- T=Tfv,
- y_start=k0)
- annotation (Placement(transformation(extent={{98,-10},{118,10}})));
- Modelica.Blocks.Math.Add add3(k2=-1)
- annotation (Placement(transformation(extent={{-60,-10},{-40,10}})));
- Modelica.Blocks.Sources.Constant VARL(k=Vref)
- annotation (Placement(transformation(extent={{-92,12},{-72,32}})));
- Modelica.Blocks.Math.Add add4
- annotation (Placement(transformation(extent={{38,-10},{58,10}})));
- Modelica.Blocks.Nonlinear.Limiter Qord1(uMin=QMN, uMax=QMX)
- annotation (Placement(transformation(extent={{68,-10},{88,10}})));
- Modelica.Blocks.Continuous.LimIntegrator K1(
- outMin=-100000,
- outMax=-0.051730465143919,
- y_start=k10,
- k=KIV,
- initType=Modelica.Blocks.Types.Init.InitialOutput)
- annotation (Placement(transformation(extent={{8,10},{28,30}})));
- NonElectrical.Continuous.SimpleLag K8(
- K=Kpv,
- y_start=k80,
- T=Tv) annotation (Placement(transformation(extent={{-22,-30},{-2,-10}})));
- NonElectrical.Continuous.SimpleLag K8_extra(
- y_start=k80,
- K=1,
- T=0.05) annotation (Placement(transformation(extent={{8,-30},{28,-10}})));
- NonElectrical.Continuous.LeadLag K11(
- y_start=0,
- T2=0.05,
- K=1.5,
- T1=0.025,
- x_start=0)
- annotation (Placement(transformation(extent={{-22,10},{-2,30}})));
- parameter Real Tfv "Filter time constant in voltage regulator (sec)";
- parameter Real Kpv " Proportional gain in voltage regulator (pu)";
- parameter Real KIV " Integrator gain in voltage regulator (pu)";
- parameter Real QMX " Max limit in voltage regulator (pu)";
- parameter Real QMN " Min limit in voltage regulator (pu)";
- parameter Real Tv=0.50000E-01 " Lag time constant in WindVar controller";
- parameter Real Vref;
- parameter Real k0 "Filter in voltage regulator";
- parameter Real k10 "Integrator in voltage regulator";
- parameter Real k80 "Lag of the WindVar controller";
- Modelica.Blocks.Interfaces.RealInput V_REG annotation (Placement(
- transformation(rotation=0, extent={{-214,-10},{-194,10}})));
- Modelica.Blocks.Interfaces.RealOutput Q_ord
- annotation (Placement(transformation(extent={{200,-10},{220,10}})));
- equation
- connect(add4.y, Qord1.u) annotation (Line(
- points={{59,0},{66,0}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(Qord1.y, K.u) annotation (Line(
- points={{89,0},{96,0}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(K8.y, K8_extra.u) annotation (Line(
- points={{-1,-20},{6,-20}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(K11.y, K1.u) annotation (Line(
- points={{-1,20},{6,20}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(add3.y, K11.u) annotation (Line(points={{-39,0},{-32,0},{-32,20},{-24,
- 20}}, color={0,0,127}));
- connect(K8.u, K11.u) annotation (Line(points={{-24,-20},{-32,-20},{-32,20},
- {-24,20}}, color={0,0,127}));
- connect(VARL.y, add3.u1) annotation (Line(points={{-71,22},{-68,22},{-68,6},
- {-62,6}}, color={0,0,127}));
- connect(K8_extra.y, add4.u2) annotation (Line(points={{29,-20},{32,-20},{32,
- -6},{36,-6}}, color={0,0,127}));
- connect(add4.u1, K1.y) annotation (Line(points={{36,6},{32,6},{32,20},{29,
- 20}}, color={0,0,127}));
- connect(V_REG, add3.u2) annotation (Line(points={{-204,0},{-80,0},{-80,-6},
- {-62,-6}}, color={0,0,127}));
- connect(K.y, Q_ord)
- annotation (Line(points={{119,0},{210,0}}, color={0,0,127}));
- annotation (Diagram(coordinateSystem(extent={{-200,-200},{200,200}},
- preserveAspectRatio=true), graphics={Rectangle(
- extent={{-94,48},{124,-42}},
- lineColor={255,0,0},
- lineThickness=0.5,
- pattern=LinePattern.Dash),Text(
- extent={{-16,46},{46,40}},
- lineColor={255,0,0},
- pattern=LinePattern.Dash,
- lineThickness=0.5,
- fillColor={0,0,255},
- fillPattern=FillPattern.Solid,
- textString="WindControl Emulator")}), Icon(coordinateSystem(
- extent={{-200,-200},{200,200}}, preserveAspectRatio=true), graphics=
- {Rectangle(
- extent={{-200,200},{200,-200}},
- lineColor={28,108,200},
- fillColor={255,255,255},
- fillPattern=FillPattern.Solid),Text(
- extent={{-196,14},{-76,-16}},
- lineColor={28,108,200},
- textString="V_REG"),Text(
- extent={{80,14},{200,-16}},
- lineColor={28,108,200},
- textString="Q_ORD"),Text(
- extent={{-172,162},{180,72}},
- lineColor={180,56,148},
- textString="WindCONTROL Emulator")}));
- end windControlEmulator;
- equation
- connect(windControlEmulator1.V_REG, Vcl.u2) annotation (Line(points={{-120.4,
- 160},{-160,160},{-160,-160},{118,-160},{118,52}}, color={255,0,0}));
- connect(ControlPF.y, switch_QREF.u2) annotation (Line(points={{-89,90},{-66,
- 90},{-66,40},{-52,40}}, color={255,0,255}));
- connect(PF_Controller.Q_REF_PF, switch_QREF.u1)
- annotation (Line(points={{-78,48},{-72,48},{-52,48}}, color={0,0,127}));
- connect(Qcmd0.y, switch_QREF.u3) annotation (Line(points={{-89,0},{-66,0},{-66,
- 0},{-66,32},{-52,32}}, color={0,0,127}));
- connect(switch_QREF.y, switch_WindVar.u3) annotation (Line(points={{-29,40},{
- -20,40},{-20,52},{-14,52}}, color={0,0,127}));
- connect(windControlEmulator1.Q_ord, switch_WindVar.u1) annotation (Line(
- points={{-79,160},{-20,160},{-20,68},{-14,68}}, color={0,0,127}));
- connect(UseWindVar.y, switch_WindVar.u2) annotation (Line(points={{-29,90},{-26,
- 90},{-26,60},{-14,60}}, color={255,0,255}));
- connect(switch_WindVar.y, Qord.u)
- annotation (Line(points={{9,60},{12,60},{18,60}}, color={0,0,127}));
- connect(K6.y, Vcl.u1)
- annotation (Line(points={{101,60},{106,60},{110,60}}, color={0,0,127}));
- connect(cCL.IpCMD, WIPCMD)
- annotation (Line(points={{180,-30},{180,-80},{210,-80}}, color={0,0,127}));
- connect(activePowerController.I_PMAX, cCL.IPmax) annotation (Line(points={{60,
- -60},{60,-40},{160,-40},{160,-32}}, color={0,0,127}));
- connect(cCL.IQmin, K7.outMin) annotation (Line(points={{160,12},{160,12},{160,
- 32},{144,32},{144,46}}, color={0,0,127}));
- connect(K7.outMax, cCL.IQmax) annotation (Line(points={{160,74},{160,80},{170,
- 80},{170,12}}, color={0,0,127}));
- annotation (
- Diagram(coordinateSystem(
- preserveAspectRatio=false,
- extent={{-200,-200},{200,200}},
- initialScale=0.05), graphics={Rectangle(
- extent={{46,118},{192,24}},
- lineColor={255,0,0},
- lineThickness=0.5,
- pattern=LinePattern.Dash),Text(
- extent={{64,116},{170,108}},
- lineColor={255,0,0},
- pattern=LinePattern.Dash,
- lineThickness=0.5,
- fillColor={0,0,255},
- fillPattern=FillPattern.Solid,
- textString="Reactive Power Control"),Rectangle(
- extent={{-134,130},{14,-20}},
- lineColor={0,140,72},
- lineThickness=0.5,
- pattern=LinePattern.Dash),Text(
- extent={{-130,128},{-24,120}},
- lineColor={0,140,72},
- pattern=LinePattern.Dash,
- lineThickness=0.5,
- fillColor={0,0,255},
- fillPattern=FillPattern.Solid,
- textString="Reactive Power Reference Switching"),Rectangle(
- extent={{104,104},{190,26}},
- lineColor={102,44,145},
- lineThickness=0.5,
- pattern=LinePattern.Dash),Text(
- extent={{92,104},{198,96}},
- lineColor={180,56,148},
- pattern=LinePattern.Dash,
- lineThickness=0.5,
- fillColor={0,0,255},
- fillPattern=FillPattern.Solid,
- textString="Terminal Voltage Control")}),
- Icon(coordinateSystem(
- extent={{-200,-200},{200,200}},
- preserveAspectRatio=false,
- initialScale=0.05), graphics={Rectangle(
- extent={{-200,200},{200,-200}},
- lineColor={28,108,200},
- fillColor={255,255,255},
- fillPattern=FillPattern.Solid),Text(
- extent={{-70,42},{82,-36}},
- lineColor={28,108,200},
- textString="WT4E1"),Text(
- extent={{110,172},{170,142}},
- lineColor={28,108,200},
- lineThickness=0.5,
- fillColor={255,255,255},
- fillPattern=FillPattern.Solid,
- textString="V"),Text(
- extent={{110,114},{170,84}},
- lineColor={28,108,200},
- lineThickness=0.5,
- fillColor={255,255,255},
- fillPattern=FillPattern.Solid,
- textString="Q"),Text(
- extent={{110,56},{170,26}},
- lineColor={28,108,200},
- lineThickness=0.5,
- fillColor={255,255,255},
- fillPattern=FillPattern.Solid,
- textString="P"),Text(
- extent={{82,-42},{194,-74}},
- lineColor={28,108,200},
- lineThickness=0.5,
- fillColor={255,255,255},
- fillPattern=FillPattern.Solid,
- textString="WIPCMD"),Text(
- extent={{82,-124},{194,-156}},
- lineColor={28,108,200},
- lineThickness=0.5,
- fillColor={255,255,255},
- fillPattern=FillPattern.Solid,
- textString="WIQCMD")}),
- Documentation);
- end WT4E1;
- annotation (Documentation);
- end WT4G;
-
- package Submodels
- model LVACL
- //The Low Voltage Active Current Management block is designed to capture the characteristic
- //of active power under very low voltage scenarios. This low voltage limit is designed to reduce active current in a linear fashion.
- // The protection function is activated when
- //the terminal voltage drops below 0.8 pu and strangling power completely if the terminal voltage is lower than
- //0.4 pu. For voltages between 0.8 pu and 0.4 pu to reduce the active power is linear according to equation
- Modelica.Blocks.Interfaces.RealOutput Ip_LVACL annotation (Placement(
- transformation(extent={{100,-8},{118,10}}), iconTransformation(extent={
- {100,-10},{120,10}})));
- Modelica.Blocks.Interfaces.RealInput Vt annotation (Placement(transformation(
- extent={{-9,-9},{9,9}},
- rotation=90,
- origin={-3,-29}), iconTransformation(
- extent={{-10,-10},{10,10}},
- rotation=90,
- origin={0,-90})));
- Modelica.Blocks.Interfaces.RealInput Ip_LVPL annotation (Placement(
- transformation(
- extent={{-9,-9},{9,9}},
- rotation=0,
- origin={-33,-3}), iconTransformation(extent={{-100,-10},{-80,10}})));
- equation
- if Vt < 0.4 then
- Ip_LVACL = 0;
- elseif Vt > 0.8 then
- Ip_LVACL = Ip_LVPL;
- else
- Ip_LVACL = Ip_LVPL*1.25*Vt;
- end if;
- annotation (
- Diagram(coordinateSystem(preserveAspectRatio=true, extent={{-100,-100},{100,
- 100}}), graphics={Rectangle(extent={{-26,18},{20,-22}}, lineColor={
- 0,0,255})}),
- Icon(coordinateSystem(preserveAspectRatio=true, extent={{-100,-100},{100,
- 100}}), graphics={Rectangle(
- extent={{-100,100},{100,-100}},
- lineColor={0,0,255},
- fillColor={255,255,255},
- fillPattern=FillPattern.Solid),Text(
- extent={{-44,114},{44,54}},
- lineColor={0,0,255},
- textString="LVACL"),Line(
- points={{-60,-60},{-42,-60},{0,20},{20,20}},
- color={0,128,255},
- thickness=0.5),Line(
- points={{0,20},{0,-4},{0,-60}},
- color={0,0,0},
- pattern=LinePattern.Dot),Line(
- points={{-60,20},{-30,20},{0,20}},
- color={0,0,0},
- pattern=LinePattern.Dot),Line(
- points={{-60,60},{-60,-60},{60,-60}},
- color={0,0,0},
- thickness=0.5,
- arrow={Arrow.Filled,Arrow.Filled}),Text(
- extent={{-98,-8},{-68,-22}},
- lineColor={0,0,255},
- textString="IP_LVLP"),Text(
- extent={{64,6},{98,-8}},
- lineColor={0,0,255},
- textString="IP_LVACL"),Text(
- extent={{4,-78},{22,-92}},
- lineColor={0,0,255},
- textString="V")}),
- Documentation);
- end LVACL;
-
- model HVRCL
- //The 'High Voltage Reactive Current Management' block limits the reactive current injected into the network equations such that the terminal voltage of the machine never exceeds Volim of nominal, as long as the converter is within current limits."
- parameter Real VHVRCR "Threthod voltage for HVRCL";
- parameter Real CurHVRCR "Max. reactive current at VHVRCR";
- Modelica.Blocks.Interfaces.RealInput Vt annotation (Placement(transformation(
- extent={{-9,-9},{9,9}},
- rotation=90,
- origin={15,-19}), iconTransformation(
- extent={{-5,-5},{5,5}},
- rotation=90,
- origin={0,-35})));
- Modelica.Blocks.Interfaces.RealOutput Iq_HVRCL annotation (Placement(
- transformation(extent={{42,4},{60,22}}), iconTransformation(extent={{40,
- -10},{60,10}})));
- Modelica.Blocks.Interfaces.RealInput Iq annotation (Placement(transformation(
- extent={{-9,-9},{9,9}},
- rotation=0,
- origin={-27,11}), iconTransformation(extent={{-40,-5},{-30,5}})));
- equation
- if Vt > VHVRCR then
- Iq_HVRCL = CurHVRCR;
- else
- Iq_HVRCL = Iq;
- end if;
- annotation (
- Diagram(coordinateSystem(
- preserveAspectRatio=true,
- extent={{-40,-40},{40,40}},
- grid={1,1}), graphics),
- Icon(coordinateSystem(
- preserveAspectRatio=true,
- extent={{-40,-40},{40,40}},
- grid={1,1}), graphics={Rectangle(
- extent={{-40,40},{40,-40}},
- lineColor={0,0,255},
- fillColor={255,255,255},
- fillPattern=FillPattern.Solid),Text(
- extent={{-20,40},{20,30}},
- lineColor={0,0,255},
- textString="HVRCL "),Line(
- points={{14,30},{-6,30},{-16,10},{-16,10}},
- color={0,0,255},
- thickness=0.5,
- smooth=Smooth.None),Text(
- extent={{-28,3},{-20,-3}},
- lineColor={0,0,255},
- textString="I_q"),Text(
- extent={{-5,-21},{5,-29}},
- lineColor={0,0,255},
- textString="V"),Text(
- extent={{19,4},{38,-4}},
- lineColor={0,0,255},
- textString="I_sorc")}),
- Documentation);
- end HVRCL;
-
- model LVPL "Low voltage power logic"
- parameter Real VLVPL1 "LVPL voltage 1 (Low voltage power logic)";
- parameter Real VLVPL2 "LVPL voltage 2";
- parameter Real GLVPL "LVPL gain";
- parameter Real K=GLVPL/(VLVPL2 - VLVPL1);
- Modelica.Blocks.Interfaces.RealInput Vt annotation (Placement(transformation(
- extent={{-112,-18},{-72,22}}), iconTransformation(extent={{-100,-10},
- {-80,10}})));
- Modelica.Blocks.Interfaces.RealOutput LVPL annotation (Placement(
- transformation(extent={{100,-10},{120,10}}), iconTransformation(extent=
- {{100,-10},{120,10}})));
- equation
- if Vt < VLVPL1 then
- LVPL = 0;
- elseif Vt > VLVPL2 then
- LVPL = 1e+6;
- else
- LVPL = K*(Vt - VLVPL1);
- end if;
- annotation (
- Diagram(coordinateSystem(preserveAspectRatio=true, extent={{-100,-100},{100,
- 100}}), graphics={Rectangle(extent={{-78,30},{92,-58}}, lineColor={
- 0,0,255})}),
- Icon(coordinateSystem(preserveAspectRatio=true, extent={{-100,-100},{100,
- 100}}), graphics={Rectangle(
- extent={{-100,100},{100,-100}},
- lineColor={0,0,255},
- fillColor={255,255,255},
- fillPattern=FillPattern.Solid),Text(
- extent={{44,-40},{74,-58}},
- lineColor={0,0,255},
- lineThickness=0.5,
- fillColor={0,0,255},
- fillPattern=FillPattern.Solid,
- textString="V"),Text(
- extent={{-54,68},{-24,50}},
- lineColor={0,0,255},
- lineThickness=0.5,
- fillColor={0,0,255},
- fillPattern=FillPattern.Solid,
- textString="LVPL"),Line(
- points={{-66,20},{-54,20},{-54,20}},
- color={0,0,255},
- thickness=0.5,
- smooth=Smooth.None),Line(
- points={{-60,60},{-60,-60},{60,-60}},
- color={0,0,255},
- thickness=0.5,
- arrow={Arrow.Filled,Arrow.Filled}),Line(
- points={{-42,-60}},
- color={0,0,255},
- thickness=0.5),Line(
- points={{-40,-60},{20,20},{20,40}},
- color={0,0,255},
- thickness=0.5),Text(
- extent={{-102,22},{-72,4}},
- lineColor={0,0,255},
- lineThickness=0.5,
- fillColor={0,0,255},
- fillPattern=FillPattern.Solid,
- textString="V"),Text(
- extent={{66,8},{96,-10}},
- lineColor={0,0,255},
- lineThickness=0.5,
- fillColor={0,0,255},
- fillPattern=FillPattern.Solid,
- textString="LVLP")}),
- Documentation);
- end LVPL;
-
- model CCL
- parameter Real Qmax;
- parameter Boolean pqflag;
- parameter Real ImaxTD "Converter current limit";
- parameter Real Iphl "Hard active current limit";
- parameter Real Iqhl "Hard reactive current limit";
- Modelica.Blocks.Interfaces.RealOutput IQmin annotation (Placement(
- transformation(
- extent={{-10,-10},{10,10}},
- rotation=90,
- origin={-12,96}), iconTransformation(
- extent={{-10,-10},{10,10}},
- rotation=90,
- origin={-50,110})));
- Modelica.Blocks.Interfaces.RealInput IpCMD annotation (Placement(
- transformation(
- extent={{-16,-16},{16,16}},
- rotation=180,
- origin={134,-20}), iconTransformation(
- extent={{-10,-10},{10,10}},
- rotation=90,
- origin={50,-100})));
- Modelica.Blocks.Interfaces.RealInput IqCMD annotation (Placement(
- transformation(extent={{-146,-30},{-120,-4}}), iconTransformation(
- extent={{-10,-10},{10,10}},
- rotation=270,
- origin={50,100})));
- Modelica.Blocks.Interfaces.RealOutput IQmax annotation (Placement(
- transformation(
- extent={{-10,-10},{10,10}},
- rotation=90,
- origin={16,96}), iconTransformation(
- extent={{-10,-10},{10,10}},
- rotation=90,
- origin={0,110})));
- Modelica.Blocks.Interfaces.RealOutput IPmax annotation (Placement(
- transformation(
- extent={{-10,-10},{10,10}},
- rotation=270,
- origin={-2,-84}), iconTransformation(
- extent={{-10,-10},{10,10}},
- rotation=270,
- origin={-50,-110})));
- Modelica.Blocks.Math.Min min1 annotation (Placement(transformation(
- extent={{-6,6},{6,-6}},
- rotation=270,
- origin={-52,-38})));
- Modelica.Blocks.Sources.Constant const1(k=Iphl) annotation (Placement(
- transformation(
- extent={{-7,-7},{7,7}},
- rotation=270,
- origin={-9,-19})));
- Modelica.Blocks.Sources.Constant const2(k=Iqhl) annotation (Placement(
- transformation(
- extent={{-7,-7},{7,7}},
- rotation=0,
- origin={-19,23})));
- Modelica.Blocks.Math.Min min2 annotation (Placement(transformation(
- extent={{-6,6},{6,-6}},
- rotation=90,
- origin={-54,8})));
- Modelica.Blocks.Math.Min min3 annotation (Placement(transformation(
- extent={{-6,6},{6,-6}},
- rotation=270,
- origin={44,-38})));
- Modelica.Blocks.Math.Min min4 annotation (Placement(transformation(
- extent={{-6,6},{6,-6}},
- rotation=90,
- origin={44,6})));
- Modelica.Blocks.Math.Min min5 annotation (Placement(transformation(
- extent={{-6,6},{6,-6}},
- rotation=270,
- origin={-4,8})));
- Modelica.Blocks.Math.Gain gain(k=-1) annotation (Placement(transformation(
- extent={{-5,-5},{5,5}},
- rotation=90,
- origin={-83,51})));
- Modelica.Blocks.Math.Gain gain1(k=-1) annotation (Placement(transformation(
- extent={{-5,-5},{5,5}},
- rotation=90,
- origin={75,47})));
- Modelica.Blocks.Interfaces.RealInput Vt annotation (Placement(transformation(
- extent={{-20,-20},{20,20}},
- rotation=270,
- origin={0,78}), iconTransformation(
- extent={{-10,-10},{10,10}},
- rotation=0,
- origin={-100,0})));
- protected
- Modelica.Blocks.Interfaces.RealInput Iqmax annotation (Placement(
- transformation(
- extent={{-20,-20},{20,20}},
- rotation=270,
- origin={0,40}), iconTransformation(
- extent={{-9,-9},{9,9}},
- rotation=0,
- origin={-101,5})));
- protected
- Modelica.Blocks.Interfaces.RealOutput IQmin1 annotation (Placement(
- transformation(
- extent={{-10,-10},{10,10}},
- rotation=90,
- origin={44,80}), iconTransformation(
- extent={{-10,-10},{10,10}},
- rotation=90,
- origin={-52,42})));
- Modelica.Blocks.Interfaces.RealOutput IQmax1 annotation (Placement(
- transformation(
- extent={{-10,-10},{10,10}},
- rotation=90,
- origin={74,80}), iconTransformation(
- extent={{-10,-10},{10,10}},
- rotation=90,
- origin={2,42})));
- Modelica.Blocks.Interfaces.RealOutput IQmin2 annotation (Placement(
- transformation(
- extent={{-10,-10},{10,10}},
- rotation=90,
- origin={-82,80}), iconTransformation(
- extent={{-10,-10},{10,10}},
- rotation=90,
- origin={-52,42})));
- Modelica.Blocks.Interfaces.RealOutput IQmax2 annotation (Placement(
- transformation(
- extent={{-10,-10},{10,10}},
- rotation=90,
- origin={-52,80}), iconTransformation(
- extent={{-10,-10},{10,10}},
- rotation=90,
- origin={2,42})));
- Modelica.Blocks.Interfaces.RealOutput IPmax1 annotation (Placement(
- transformation(
- extent={{-10,-10},{10,10}},
- rotation=270,
- origin={44,-68}), iconTransformation(
- extent={{-10,-10},{10,10}},
- rotation=270,
- origin={-50,-40})));
- Modelica.Blocks.Interfaces.RealOutput IPmax2 annotation (Placement(
- transformation(
- extent={{-10,-10},{10,10}},
- rotation=270,
- origin={-52,-68}), iconTransformation(
- extent={{-10,-10},{10,10}},
- rotation=270,
- origin={-50,-40})));
- Modelica.Blocks.Interfaces.RealInput Available_remain1
- "sqrt(ImaxTD^2 - IpCMD^2)" annotation (Placement(transformation(
- extent={{-16,-16},{16,16}},
- rotation=180,
- origin={76,-18}), iconTransformation(
- extent={{-9,-9},{9,9}},
- rotation=90,
- origin={55,-35})));
- Modelica.Blocks.Interfaces.RealInput Available_remain2
- "sqrt(ImaxTD^2 - IqCMD^2)" annotation (Placement(transformation(
- extent={{-16,-16},{16,16}},
- rotation=0,
- origin={-90,-20}), iconTransformation(
- extent={{-9,-9},{9,9}},
- rotation=90,
- origin={55,-35})));
- equation
- Available_remain1 = sqrt(ImaxTD^2 - IpCMD^2);
- Available_remain2 = sqrt(ImaxTD^2 - IqCMD^2);
- Iqmax = (Qmax - 1.6)*(Vt - 1) + Qmax;
- if pqflag then
- IQmin = IQmin1;
- IQmax = IQmax1;
- IPmax = IPmax1;
- else
- IQmin = IQmin2;
- IQmax = IQmax2;
- IPmax = IPmax2;
- end if;
- connect(const1.y, min1.u2) annotation (Line(
- points={{-9,-26.7},{-9,-30},{-48.4,-30},{-48.4,-30.8}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(const1.y, min3.u1) annotation (Line(
- points={{-9,-26.7},{-9,-30},{40.4,-30},{40.4,-30.8}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(const2.y, min5.u1) annotation (Line(
- points={{-11.3,23},{-7.6,23},{-7.6,15.2}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(min5.y, min4.u2) annotation (Line(
- points={{-4,1.4},{-4,-4},{40.4,-4},{40.4,-1.2}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(min2.u1, min5.y) annotation (Line(
- points={{-50.4,0.8},{-50.4,-4},{-4,-4},{-4,1.4}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(min2.y, IQmax2) annotation (Line(
- points={{-54,14.6},{-52,14.6},{-52,80}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(min1.y, IPmax2) annotation (Line(
- points={{-52,-44.6},{-52,-68}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(min3.y, IPmax1) annotation (Line(
- points={{44,-44.6},{44,-68}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(min4.y, IQmin1) annotation (Line(
- points={{44,12.6},{44,80}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(gain.u, min2.y) annotation (Line(
- points={{-83,45},{-83,14.6},{-54,14.6}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(gain.y, IQmin2) annotation (Line(
- points={{-83,56.5},{-83,65.25},{-82,65.25},{-82,80}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(gain1.y, IQmax1) annotation (Line(
- points={{75,52.5},{75,61.25},{74,61.25},{74,80}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(gain1.u, min4.y) annotation (Line(
- points={{75,41},{75,12.6},{44,12.6}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(Iqmax, min5.u2) annotation (Line(
- points={{0,40},{0,15.2},{-0.4,15.2}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(min4.u1, Available_remain1) annotation (Line(
- points={{47.6,-1.2},{47.6,-18},{76,-18}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(min3.u2, Available_remain1) annotation (Line(
- points={{47.6,-30.8},{47.6,-18},{76,-18}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(Available_remain2, min2.u2) annotation (Line(
- points={{-90,-20},{-57.6,-20},{-57.6,0.8}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(min1.u1, Available_remain2) annotation (Line(
- points={{-55.6,-30.8},{-55.6,-20},{-90,-20}},
- color={0,0,127},
- smooth=Smooth.None));
- annotation (
- Icon(coordinateSystem(preserveAspectRatio=true, extent={{-100,-100},{100,
- 100}}), graphics={Rectangle(
- extent={{-100,100},{100,-100}},
- lineColor={0,0,255},
- fillColor={255,255,255},
- fillPattern=FillPattern.Solid),Text(
- extent={{-76,58},{82,18}},
- lineColor={244,125,35},
- textString="Converter Current Limit
- "), Text(
- extent={{-86,6},{-46,-6}},
- lineColor={28,108,200},
- textString="VTERM"),Text(
- extent={{-70,96},{-30,84}},
- lineColor={28,108,200},
- textString="I_Qmin"),Text(
- extent={{-18,96},{22,84}},
- lineColor={28,108,200},
- textString="I_Qmax"),Text(
- extent={{32,88},{72,76}},
- lineColor={28,108,200},
- textString="I_Qcmd"),Text(
- extent={{26,-76},{66,-88}},
- lineColor={28,108,200},
- textString="I_Pcmd"),Text(
- extent={{-72,-76},{-32,-88}},
- lineColor={28,108,200},
- textString="I_Pmax")}),
- Diagram(coordinateSystem(preserveAspectRatio=true, extent={{-100,-100},{100,
- 100}}), graphics={Rectangle(
- extent={{-112,96},{-34,-86}},
- lineColor={255,0,0},
- pattern=LinePattern.Dot,
- lineThickness=0.5),Text(
- extent={{-52,90},{-40,80}},
- lineColor={255,0,0},
- pattern=LinePattern.Dot,
- lineThickness=0.5,
- fillColor={0,0,255},
- fillPattern=FillPattern.Solid,
- textString="Q"),Text(
- extent={{64,-38},{120,-62}},
- lineColor={0,0,255},
- textString="sqrt(ImaxTD^2 - IpCMD^2)"),Text(
- extent={{-112,-42},{-58,-58}},
- lineColor={0,0,255},
- textString="sqrt(ImaxTD^2 - IqCMD^2)")}),
- Documentation);
- end CCL;
- annotation (Documentation);
- end Submodels;
- annotation (Diagram(coordinateSystem(
- extent={{-148.5,-105.0},{148.5,105.0}},
- preserveAspectRatio=true,
- initialScale=0.1,
- grid={5,5})), Documentation);
- end PSSE;
-
- model WindGenerator
- import Modelica.Constants.pi;
- import Modelica.Constants.e;
- Modelica.Blocks.Interfaces.RealOutput Vw "Connector of Real output signal"
- annotation (Placement(
- transformation(
- extent={{100.0,-10.0},{120.0,10.0}},
- rotation=0,
- origin={0.0,0.0}),
- visible=true,
- iconTransformation(
- origin={0.0,0.0},
- extent={{100.0,-10.0},{120.0,10.0}},
- rotation=0)));
- parameter Real tstart=5 "Start time of the wind gust";
- parameter Real tstop=10 "Stop time of the wind gust";
- parameter Real v0=14 "steady state wind speed";
- parameter Real vmax=25 "peak wind speed for Mexican Hat";
- parameter Real wmag=-4 "magnitude of the gust of wind";
- parameter Real sigma=1 "Mexican hat wavelet shape factor";
- parameter Real typ=1 "1:constant 2:gust 3:mexican hat";
- protected
- parameter Real wgwidth=tstop - tstart;
- equation
- if typ == 1 then
- Vw = v0;
- elseif typ == 2 then
- if time > tstart and time < tstop then
- Vw = v0 + wmag*(1 - cos((time - tstart)*2*Modelica.Constants.pi/wgwidth))
- /2;
- else
- Vw = v0;
- end if;
- else
- Vw = v0 + (vmax - v0)*(1 - (time - (tstop + tstart)/2)^2/sigma^2)*Modelica.Constants.e
- ^(-(time - (tstop + tstart)/2)^2/(2*sigma^2))
- "2/(sqrt(3*sigma)*Modelica.Constants.pi^(1/4))*(1 - ((time - (tstop + tstart)/2)/sigma)^2)*Modelica.Constants.e^((-((time - (tstop + tstart)/2)/sigma)^2)/(2*sigma^2)) + v0";
- end if;
- annotation (
- Icon(coordinateSystem(
- extent={{-100.0,-100.0},{100.0,100.0}},
- preserveAspectRatio=true,
- initialScale=0.1,
- grid={10,10}), graphics={Rectangle(
- visible=true,
- fillColor={255,255,255},
- fillPattern=FillPattern.Solid,
- lineThickness=0.75,
- extent={{-100.0,-100.0},{100.0,100.0}}),Bitmap(
- visible=true,
- origin={-0.1255,0},
- extent={{-99.8745,-96.8769},{99.8745,96.877}},
- fileName="modelica://OpenIPSL/Resources/Images/WindGenerator.png")}),
- Diagram(coordinateSystem(
- extent={{-148.5,-105.0},{148.5,105.0}},
- preserveAspectRatio=true,
- initialScale=0.1,
- grid={5,5})),
- Documentation(info="
-
-Reference |
-Mexican Hat, PSAT Manual 2.1.8 |
-
-
-Last update |
-July 2015 |
-
-
-Author |
-Maxime Baudette, SmarTS Lab, KTH Royal Institute of Technology |
-
-
-Contact |
-luigiv@kth.se |
-
-
-"));
- end WindGenerator;
-
- package GE
- package Type_3
- package Turbine
- model Rotor_Model
- Modelica.Blocks.Interfaces.RealInput Pm "Mechanical Power Input" annotation (
- Placement(
- transformation(
- extent={{-102.0,54.0},{-62.0,94.0}},
- origin={-66.2513,-29.0},
- rotation=0),
- visible=true,
- iconTransformation(
- origin={2.0,-138.6259},
- extent={{-102.0,54.0},{-62.0,94.0}},
- rotation=0)));
- Modelica.Blocks.Interfaces.RealInput Pe "Electrical Power Input" annotation (
- Placement(
- transformation(
- extent={{-102.0,54.0},{-62.0,94.0}},
- origin={-65.7168,-104.0},
- rotation=0),
- visible=true,
- iconTransformation(
- origin={2.0,-1.6523},
- extent={{-102.0,54.0},{-62.0,94.0}},
- rotation=0)));
- Modelica.Blocks.Interfaces.RealOutput omega_gen
- "Engine shaft angular velocity" annotation (Placement(
- transformation(
- extent={{102.0,54.0},{62.0,94.0}},
- origin={-144.7168,-169.0},
- rotation=0),
- visible=true,
- iconTransformation(
- origin={-2.0,-4.0},
- extent={{102.0,54.0},{62.0,94.0}},
- rotation=0)));
- Modelica.Blocks.Interfaces.RealOutput omega_turb
- "engine shaft angular velocity" annotation (Placement(
- visible=true,
- transformation(
- origin={-142.0,21.0},
- extent={{102.0,54.0},{62.0,94.0}},
- rotation=0),
- iconTransformation(
- origin={-2.0,-140.0376},
- extent={{102.0,54.0},{62.0,94.0}},
- rotation=0)));
- parameter Real H=0.3 "inertia (pu)";
- parameter Real Hg=0.3;
- parameter Real wbase=1;
- parameter Real Dtg=1;
- parameter Real Ktg=1;
- parameter Real wt_x6_0=1;
- parameter Real wt_x7_0=1;
- parameter Real wt_x8_0=1;
- parameter Real wt_x9_0=1;
- parameter Real wndtge_ang0=1;
- parameter Real wndtge_spd0=1;
- protected
- Modelica.Blocks.Continuous.Integrator integrator1(y_start=wt_x6_0)
- annotation (Placement(visible=true, transformation(
- origin={-27.2938,51.715},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- Modelica.Blocks.Continuous.Integrator integrator2(y_start=wt_x8_0)
- annotation (Placement(visible=true, transformation(
- origin={-25.0,-38.4407},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- Modelica.Blocks.Continuous.Integrator integrator3(y_start=wt_x7_0)
- annotation (Placement(visible=true, transformation(
- origin={35.0,51.7151},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- Modelica.Blocks.Continuous.Integrator integrator4(y_start=wt_x9_0)
- annotation (Placement(visible=true, transformation(
- origin={35.0,-38.3965},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- Modelica.Blocks.Math.Add3 add31 annotation (Placement(visible=true,
- transformation(
- origin={-77.9503,51.6035},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- Modelica.Blocks.Math.Division division1 annotation (Placement(visible=true,
- transformation(
- origin={-105.0,51.7929},
- extent={{-10.0,10.0},{10.0,-10.0}},
- rotation=0)));
- Modelica.Blocks.Math.Division division2 annotation (Placement(visible=true,
- transformation(
- origin={-105.0,-37.9398},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- Modelica.Blocks.Math.Add3 add32(
- k1=-1,
- k2=-1,
- k3=-1) annotation (Placement(visible=true, transformation(
- origin={-75.0,-38.2071},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- Modelica.Blocks.Math.Gain i2H(k=1/(2*H)) annotation (Placement(visible=true,
- transformation(
- origin={-51.5025,51.5804},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- Modelica.Blocks.Math.Gain Gain_i2Hg(k=1/(2*Hg)) annotation (Placement(visible=
- true, transformation(
- origin={-52.0335,-38.3327},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- Modelica.Blocks.Math.Gain Gain1_wbase(k=wbase) annotation (Placement(visible=
- true, transformation(
- origin={7.1416,51.7326},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- Modelica.Blocks.Math.Gain Gain_wbase(k=wbase) annotation (Placement(visible=
- true, transformation(
- origin={6.8708,-38.4743},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- Modelica.Blocks.Math.Add add1(k1=-1) annotation (Placement(visible=true,
- transformation(
- origin={-30.0,8.0513},
- extent={{10.0,-10.0},{-10.0,10.0}},
- rotation=0)));
- Modelica.Blocks.Math.Gain Gain_Dtg(k=Dtg) annotation (Placement(visible=true,
- transformation(
- origin={-60.0,7.5203},
- extent={{10.0,-10.0},{-10.0,10.0}},
- rotation=0)));
- Modelica.Blocks.Math.Add add2(k1=-1) annotation (Placement(visible=true,
- transformation(
- origin={95.0,10.0},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- Modelica.Blocks.Math.Gain Gain_Ktg(k=Ktg) annotation (Placement(visible=true,
- transformation(
- origin={122.4495,10.0},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- Modelica.Blocks.Math.Add add3 annotation (Placement(visible=true,
- transformation(
- origin={67.5947,-20.0},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- Modelica.Blocks.Math.Add add4 annotation (Placement(visible=true,
- transformation(
- origin={-25.0,-80.0},
- extent={{10.0,-10.0},{-10.0,10.0}},
- rotation=0)));
- Modelica.Blocks.Math.Add add5 annotation (Placement(visible=true,
- transformation(
- origin={-25.0,80.0},
- extent={{10.0,-10.0},{-10.0,10.0}},
- rotation=0)));
- Modelica.Blocks.Sources.Constant Const1_wndtge_spd0(k=wndtge_spd0)
- annotation (Placement(visible=true, transformation(
- origin={22.1822,-90.0},
- extent={{10.0,-10.0},{-10.0,10.0}},
- rotation=0)));
- Modelica.Blocks.Sources.Constant Const_wndtge_spd0(k=wndtge_spd0) annotation (
- Placement(visible=true, transformation(
- origin={15.0,90.0},
- extent={{10.0,-10.0},{-10.0,10.0}},
- rotation=0)));
- Modelica.Blocks.Sources.Constant Const_wndtge_ang0(k=wndtge_ang0) annotation (
- Placement(visible=true, transformation(
- origin={25.0,-2.4551},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- equation
- connect(Const_wndtge_spd0.y, add5.u1) annotation (Line(
- visible=true,
- origin={-7.25,88.0},
- points={{11.25,2.0},{-2.75,2.0},{-2.75,-2.0},{-5.75,-2.0}},
- color={0,0,127}));
- connect(Const1_wndtge_spd0.y, add4.u2) annotation (Line(
- visible=true,
- origin={-5.4544,-88.0},
- points={{16.6366,-2},{-4.5456,-2},{-4.5456,2},{-7.5456,2}},
- color={0,0,127}));
- connect(omega_gen, add4.y) annotation (Line(
- visible=true,
- origin={-72.1792,-87.5},
- points={{9.4624,-7.5},{7.1792,-7.5},{7.1792,7.5},{36.1792,7.5}},
- color={0,0,127}));
- connect(omega_turb, add5.y) annotation (Line(
- visible=true,
- origin={-65.5,87.5},
- points={{5.5,7.5},{5.5,7.5},{5.5,-7.5},{29.5,-7.5}},
- color={0,0,127}));
- connect(Const_wndtge_ang0.y, add3.u1) annotation (Line(
- visible=true,
- origin={49.196,-8.2276},
- points={{-13.196,5.7725},{3.3987,5.7725},{3.3987,-5.7724},{6.3987,-5.7724}},
- color={0,0,127}));
-
- connect(Pe, division2.u1) annotation (Line(
- visible=true,
- origin={-126.1792,-30.9699},
- points={{-21.5376,0.9699},{6.1792,0.9699},{6.1792,-0.9699},{9.1792,-0.9699}},
- color={0,0,127}));
-
- connect(Pm, division1.u1) annotation (Line(
- visible=true,
- origin={-126.3128,45.3965},
- points={{-21.9385,-0.3965},{6.3128,-0.3965},{6.3128,0.3964},{9.3128,
- 0.3964}},
- color={0,0,127}));
- connect(integrator2.y, Gain_wbase.u) annotation (Line(
- visible=true,
- origin={-8.8469,-38.4575},
- points={{-5.1531,0.0168},{0.7177,0.0168},{0.7177,-0.0168},{3.7177,-0.0168}},
- color={0,0,127}));
-
- connect(Gain_wbase.y, integrator4.u) annotation (Line(
- visible=true,
- origin={21.2177,-38.4354},
- points={{-3.3469,-0.0389},{0.7823,-0.0389},{0.7823,0.0389},{1.7823,0.0389}},
- color={0,0,127}));
-
- connect(integrator1.y, Gain1_wbase.u) annotation (Line(
- visible=true,
- origin={-9.2172,51.7238},
- points={{-7.0766,-0.0088},{1.3589,-0.0088},{1.3589,0.0088},{4.3588,0.0088}},
- color={0,0,127}));
-
- connect(Gain1_wbase.y, integrator3.u) annotation (Line(
- visible=true,
- origin={21.2854,51.7238},
- points={{-3.1438,0.0088},{0.7146,0.0088},{0.7146,-0.0087},{1.7146,-0.0087}},
- color={0,0,127}));
-
- connect(Gain_Ktg.y, add31.u1) annotation (Line(
- visible=true,
- origin={21.7313,46.5345},
- points={{111.7182,-36.5345},{114.7181,-36.5345},{114.7181,23.4655},{-114.7364,
- 23.4655},{-114.7364,13.069},{-111.6816,13.069}},
- color={0,0,127}));
- connect(Gain_Ktg.y, add32.u3) annotation (Line(
- visible=true,
- origin={22.2231,-34.3404},
- points={{111.2264,44.3404},{114.2264,44.3404},{114.2264,-32.4736},{-115.2281,
- -32.4736},{-115.2281,-11.8667},{-109.2231,-11.8667}},
- color={0,0,127}));
- connect(add2.y, Gain_Ktg.u) annotation (Line(
- visible=true,
- origin={108.2248,10.0},
- points={{-2.2248,0},{2.2247,0}},
- color={0,0,127}));
- connect(add32.y, Gain_i2Hg.u) annotation (Line(
- visible=true,
- origin={-64.0112,-38.2908},
- points={{0.0112,0.0837},{0.0112,-0.0419},{-0.0223,-0.0419}},
- color={0,0,127}));
- connect(Gain_i2Hg.y, integrator2.u) annotation (Line(
- visible=true,
- origin={-38.5084,-38.3867},
- points={{-2.5251,0.054},{0.5084,0.054},{0.5084,-0.054},{1.5084,-0.054}},
- color={0,0,127}));
- connect(add1.y, Gain_Dtg.u) annotation (Line(
- visible=true,
- origin={-44.75,7.7858},
- points={{3.75,0.2655},{-0.25,0.2655},{-0.25,-0.2655},{-3.25,-0.2655}},
- color={0,0,127}));
- connect(Gain_Dtg.y, add32.u1) annotation (Line(
- visible=true,
- origin={-84.5,-11.3434},
- points={{13.5,18.8637},{-5.5,18.8637},{-5.5,-18.8637},{-2.5,-18.8637}},
- color={0,0,127}));
- connect(Gain_Dtg.y, add31.u3) annotation (Line(
- visible=true,
- origin={-80.1801,15.7288},
- points={{9.1801,-8.2085},{5.1801,-8.2085},{5.1801,-5.7288},{-9.7702,-5.7288},
- {-9.7702,27.8747}},
- color={0,0,127}));
- connect(i2H.y, integrator1.u) annotation (Line(
- visible=true,
- origin={-40.0996,51.6702},
- points={{-0.4029,-0.0898},{-0.4029,0.0448},{0.8058,0.0448}},
- color={0,0,127}));
- connect(add31.y, i2H.u) annotation (Line(
- visible=true,
- origin={-64.8645,51.5919},
- points={{-2.0858,0.0116},{0.362,0.0116},{0.362,-0.0115},{1.362,-0.0115}},
- color={0,0,127}));
-
- connect(integrator2.y, add4.u1) annotation (Line(
- visible=true,
- origin={-11.75,-56.2203},
- points={{-2.25,17.7796},{1.75,17.7796},{1.75,-17.7797},{-1.25,-17.7797}},
- color={0,0,127}));
-
- connect(add5.u2, integrator1.y) annotation (Line(
- visible=true,
- origin={-12.3235,62.8575},
- points={{-0.6765,11.1425},{2.3235,11.1425},{2.3235,-11.1425},{-3.9703,-11.1425}},
- color={0,0,127}));
-
- connect(add1.u1, integrator1.y) annotation (Line(
- visible=true,
- origin={-15.2204,32.8832},
- points={{-2.7796,-18.8319},{1.9265,-18.8319},{1.9265,18.8318},{-1.0734,
- 18.8318}},
- color={0,0,127}));
- connect(add1.u2, integrator2.y) annotation (Line(
- visible=true,
- origin={-13.5,-18.1947},
- points={{-4.5,20.246},{2.5,20.246},{2.5,-20.246},{-0.5,-20.246}},
- color={0,0,127}));
- connect(add3.u2, integrator4.y) annotation (Line(
- visible=true,
- origin={49.8987,-32.1982},
- points={{5.696,6.1982},{-0.8987,6.1982},{-0.8987,-6.1983},{-3.8987,-6.1983}},
- color={0,0,127}));
-
- connect(add3.y, add2.u2) annotation (Line(
- visible=true,
- origin={80.7973,-7.6625},
- points={{-2.2026,-12.3375},{0.7973,-12.3375},{0.7973,0.675},{-0.7973,
- 0.675},{-0.7973,11.6625},{2.2027,11.6625}},
- color={0,0,127}));
- connect(integrator3.y, add2.u1) annotation (Line(
- visible=true,
- origin={72.25,33.8575},
- points={{-26.25,17.8576},{7.75,17.8576},{7.75,-17.8575},{10.75,-17.8575}},
- color={0,0,127}));
-
- connect(division2.u2, add4.y) annotation (Line(
- visible=true,
- origin={-98.25,-61.9699},
- points={{-18.75,18.0301},{-21.75,18.0301},{-21.75,-18.0301},{62.25,-18.0301}},
- color={0,0,127}));
-
- connect(division1.u2, add5.y) annotation (Line(
- visible=true,
- origin={-98.25,68.8965},
- points={{-18.75,-11.1036},{-21.75,-11.1036},{-21.75,11.1035},{62.25,
- 11.1035}},
- color={0,0,127}));
- connect(division2.y, add32.u2) annotation (Line(
- visible=true,
- origin={-90.25,-38.0734},
- points={{-3.75,0.1336},{0.25,0.1336},{0.25,-0.1337},{3.25,-0.1337}},
- color={0,0,127}));
- connect(division1.y, add31.u2) annotation (Line(
- visible=true,
- origin={-91.4627,51.6982},
- points={{-2.5373,0.0947},{0.5124,0.0947},{0.5124,-0.0947},{1.5124,-0.0947}},
- color={0,0,127}));
-
- annotation (
- Icon(coordinateSystem(
- extent={{-100.0,-100.0},{100.0,100.0}},
- preserveAspectRatio=true,
- initialScale=0.1,
- grid={10,10}), graphics={Rectangle(
- visible=true,
- fillColor={255,255,255},
- extent={{-100.0,-100.0},{100.0,100.0}}),Text(
- visible=true,
- origin={-1.9109,6.1667},
- fillPattern=FillPattern.Solid,
- extent={{-49.8299,-36.1667},{49.8299,36.1667}},
- textString="Rotor",
- fontName="Arial")}),
- Diagram(coordinateSystem(
- extent={{-148.5,-105.0},{148.5,105.0}},
- preserveAspectRatio=true,
- initialScale=0.1,
- grid={5,5})),
- Documentation);
- end Rotor_Model;
-
- model Wind_Power_Model
- Modelica.Blocks.Interfaces.RealInput Wind_Speed "Wind speed" annotation (
- Placement(
- transformation(
- extent={{-102.0,54.0},{-62.0,94.0}},
- origin={-68.0,-46.4927},
- rotation=0),
- visible=true,
- iconTransformation(
- origin={2.0,-2.4053},
- extent={{-102.0,54.0},{-62.0,94.0}},
- rotation=0)));
- Modelica.Blocks.Interfaces.RealInput Theta "Pitch angle" annotation (
- Placement(
- transformation(
- extent={{-102.0,54.0},{-62.0,94.0}},
- origin={62.0,-34.0},
- rotation=0),
- visible=true,
- iconTransformation(
- origin={2.0,-76.5688},
- extent={{-102.0,54.0},{-62.0,94.0}},
- rotation=0)));
- Modelica.Blocks.Interfaces.RealInput omega "Turbine speed" annotation (
- Placement(
- transformation(
- extent={{-102.0,54.0},{-62.0,94.0}},
- origin={-68.0,21.0},
- rotation=0),
- visible=true,
- iconTransformation(
- origin={2.0,-146.3226},
- extent={{-102.0,54.0},{-62.0,94.0}},
- rotation=0)));
- Modelica.Blocks.Interfaces.RealOutput Pm "Mechanical power" annotation (
- Placement(
- transformation(
- extent={{102.0,54.0},{62.0,94.0}},
- origin={43.0,-74.0},
- rotation=0),
- visible=true,
- iconTransformation(
- origin={-2.0,-71.3573},
- extent={{102.0,54.0},{62.0,94.0}},
- rotation=0)));
- import Modelica.Constants.inf;
- parameter Real KI=1;
- parameter Real wndtge_kp=1;
- protected
- Modelica.Blocks.Nonlinear.Limiter limiter1(uMax=inf, uMin=0.1) annotation (
- Placement(visible=true, transformation(
- origin={-106.8708,27.782},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- Modelica.Blocks.Math.Division division1 annotation (Placement(visible=true,
- transformation(
- origin={-80.0,75.0},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- Modelica.Blocks.Math.Gain Gain_KI(k=KI) annotation (Placement(visible=true,
- transformation(
- origin={-55.0,75.0},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- Modelica.Blocks.Nonlinear.Limiter limiter2(uMax=inf, uMin=0.1) annotation (
- Placement(visible=true, transformation(
- origin={-23.2941,73.1292},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- Modelica.Blocks.Math.Gain Gain_wndtge_kp(k=wndtge_kp) annotation (Placement(
- visible=true, transformation(
- origin={107.9503,-0.0},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- Modelica.Blocks.Math.Product product2 annotation (Placement(visible=true,
- transformation(
- origin={-27.4053,-6.6035},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- Modelica.Blocks.Math.Product product3 annotation (Placement(visible=true,
- transformation(
- origin={-65.0,-20.0},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- Modelica.Blocks.Math.Product product4 annotation (Placement(visible=true,
- transformation(
- origin={80.0,-1.6035},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- Cp_function cp_function1 annotation (Placement(visible=true, transformation(
- origin={30.0,58.3965},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- equation
- connect(limiter1.y, division1.u2) annotation (Line(
- visible=true,
- origin={-93.9354,45.8588},
- points={{-1.9354,-18.0768},{1.0646,-18.0768},{1.0646,-5.0643},{-1.0646,-5.0643},
- {-1.0646,23.1412},{1.9354,23.1412}},
- color={0,0,127}));
- connect(Wind_Speed, limiter1.u) annotation (Line(
- visible=true,
- origin={-128.1531,27.6446},
- points={{-21.8469,-0.1373},{6.2823,-0.1373},{6.2823,0.1374},{9.2823,
- 0.1374}},
- color={0,0,127}));
- connect(omega, division1.u1) annotation (Line(
- visible=true,
- origin={-108.0,88.0},
- points={{-42.0,7.0},{13.0,7.0},{13.0,-7.0},{16.0,-7.0}},
- color={0,0,127}));
- connect(division1.y, Gain_KI.u) annotation (Line(
- visible=true,
- origin={-68.0,75.0},
- points={{-1.0,0.0},{1.0,0.0}},
- color={0,0,127}));
- connect(Wind_Speed, product2.u1) annotation (Line(
- visible=true,
- origin={-148.4635,14.0554},
- points={{-1.5365,13.4519},{26.1487,14.0554},{26.1487,-14.0554},{109.0582,
- -14.6589}},
- color={0,0,127}));
- connect(Wind_Speed, product3.u1) annotation (Line(
- visible=true,
- origin={-139.5109,5.7536},
- points={{-10.4891,21.7537},{16.75,21.7537},{16.75,-19.7536},{62.5109,-19.7536}},
- color={0,0,127}));
-
- connect(Wind_Speed, product3.u2) annotation (Line(
- visible=true,
- origin={-139.2437,-0.0},
- points={{-10.7563,27.5073},{16.75,26.7536},{16.75,-26.7536},{62.2437,-26.0}},
- color={0,0,127}));
-
- connect(Theta, cp_function1.Theta) annotation (Line(
- visible=true,
- origin={7.0,46.1983},
- points={{-27,-6.1983},{8,-6.1983},{8,6.1982},{11,6.1982}},
- color={0,0,127}));
- connect(product4.y, Gain_wndtge_kp.u) annotation (Line(
- visible=true,
- origin={94.2128,-0.8018},
- points={{-3.2128,-0.8017},{0.7376,-0.8017},{0.7376,0.8018},{1.7375,0.8018}},
- color={0,0,127}));
-
- connect(Gain_wndtge_kp.y, Pm) annotation (Line(
- visible=true,
- origin={122.1088,0.0},
- points={{-3.1585,-0.0},{2.8912,0.0}},
- color={0,0,127}));
- connect(product2.y, product4.u2) annotation (Line(
- visible=true,
- origin={8.5,-5.5},
- points={{-24.9053,-1.1035},{-18.5,0.5},{-18.5,-0.5},{59.5,-2.1035}},
- color={0,0,127}));
- connect(cp_function1.y, product4.u1) annotation (Line(
- visible=true,
- origin={59.75,31.3965},
- points={{-18.75,27.0},{5.25,27.0},{5.25,-27.0},{8.25,-27.0}},
- color={0,0,127}));
- connect(limiter2.y, cp_function1.Lambda) annotation (Line(
- visible=true,
- origin={8.9265,68.7628},
- points={{-21.2206,4.3664},{6.0735,4.3664},{6.0735,-4.3663},{9.0735,-4.3663}},
- color={0,0,127}));
-
- connect(Gain_KI.y, limiter2.u) annotation (Line(
- visible=true,
- origin={-38.9706,74.0646},
- points={{-5.0294,0.9354},{0.6765,0.9354},{0.6765,-0.9354},{3.6765,-0.9354}},
- color={0,0,127}));
-
- connect(product3.y, product2.u2) annotation (Line(
- visible=true,
- origin={-44.554,-16.3018},
- points={{-9.446,-3.6982},{2.1487,-3.6982},{2.1487,3.6983},{5.1487,3.6983}},
- color={0,0,127}));
-
- annotation (
- Icon(coordinateSystem(
- extent={{-100.0,-100.0},{100.0,100.0}},
- preserveAspectRatio=true,
- initialScale=0.1,
- grid={10,10}), graphics={Rectangle(
- visible=true,
- fillColor={255,255,255},
- extent={{-100.0,-100.0},{100.0,100.0}}),Text(
- visible=true,
- origin={5.2917,-1.4606},
- fillPattern=FillPattern.Solid,
- extent={{-39.3935,-41.4606},{39.3935,41.4606}},
- textString="wind",
- fontName="Arial")}),
- Diagram(coordinateSystem(
- extent={{-148.5,-105.0},{148.5,105.0}},
- preserveAspectRatio=true,
- initialScale=0.1,
- grid={5,5})),
- Documentation);
- end Wind_Power_Model;
-
- block Multi_Powers "Multiplexer block for four input connectors"
- extends Modelica.Blocks.Interfaces.BlockIcon;
- Modelica.Blocks.Interfaces.RealInput u1 "Input" annotation (Placement(
- transformation(extent={{-140,70},{-100,110}}, rotation=0)));
- Modelica.Blocks.Interfaces.RealOutput y[5] "Multiple powers of the input"
- annotation (Placement(transformation(extent={{100,-10},{120,10}}, rotation=
- 0)));
- protected
- Real u2;
- Real u3;
- Real u4;
- equation
- u2 = u1^2;
- u3 = u1^3;
- u4 = u1^4;
- [y] = [1; u1; u2; u3; u4];
- annotation (
- Documentation(info="
-
-The output connector is the concatenation of the four input connectors.
-Note, that the dimensions of the input connector signals have to be
-explicitly defined via parameters n1, n2, n3 and n4.
-
-
- "), Icon(coordinateSystem(
- preserveAspectRatio=true,
- extent={{-100,-100},{100,100}},
- grid={1,1}), graphics={Line(points={{8,0},{102,0}}, color={0,0,127}),
- Line(points={{-100,90},{-60,90},{-3,4}}, color={0,0,127}),Line(points=
- {{-100,30},{-60,30},{-9,0}}, color={0,0,127}),Line(points={{-99,-30},
- {-59,-30},{-10,-5}}, color={0,0,127}),Line(points={{-100,-90},{-60,-90},
- {-5,-6}}, color={0,0,127}),Ellipse(
- extent={{-15,15},{15,-15}},
- fillColor={0,0,127},
- fillPattern=FillPattern.Solid,
- lineColor={0,0,127})}),
- Diagram(coordinateSystem(
- preserveAspectRatio=true,
- extent={{-100,-100},{100,100}},
- grid={1,1}), graphics={Line(points={{-100,90},{-60,90},{-3,4}}, color={
- 0,0,255}),Line(points={{-100,-90},{-60,-90},{-5,-6}}, color={0,0,255}),
- Line(points={{8,0},{102,0}}, color={0,0,255}),Ellipse(
- extent={{-15,15},{15,-15}},
- fillColor={0,0,255},
- fillPattern=FillPattern.Solid,
- lineColor={0,0,255}),Line(points={{-100,30},{-60,30},{-9,0}}, color={
- 0,0,255}),Line(points={{-99,-30},{-59,-30},{-10,-5}}, color={0,0,255})}));
- end Multi_Powers;
-
- model Cp_function
- extends Modelica.Blocks.Interfaces.BlockIcon;
- Modelica.Blocks.Interfaces.RealInput Lambda "Lambda" annotation (Placement(
- transformation(
- extent={{-140.0,40.0},{-100.0,80.0}},
- rotation=0,
- origin={0.0,0.0}),
- visible=true,
- iconTransformation(
- origin={0.0,0.0},
- extent={{-140.0,40.0},{-100.0,80.0}},
- rotation=0)));
- Modelica.Blocks.Interfaces.RealInput Theta "Pitch angle" annotation (
- Placement(
- transformation(
- extent={{-140.0,-80.0},{-100.0,-40.0}},
- rotation=0,
- origin={0.0,0.0}),
- visible=true,
- iconTransformation(
- origin={0.0,0.0},
- extent={{-140.0,-80.0},{-100.0,-40.0}},
- rotation=0)));
- Modelica.Blocks.Interfaces.RealOutput y "Cp" annotation (Placement(
- transformation(extent={{100,-10},{120,10}}, rotation=0)));
- protected
- Modelica.Blocks.Math.MatrixGain matrixGain1(K=[-0.41909, 0.21808, -0.012406,
- -0.00013365, 0.000011524; -0.067606, 0.060405, -0.013934, 0.0010683, -0.000023895;
- 0.015727, -0.010996, 0.0021495, -0.00014855, 0.0000027937; -0.00086018,
- 0.00057051, -0.00010479, 0.0000059924, -0.000000089194; 0.000014788, -0.0000094839,
- 0.0000016167, -0.000000071535, 0.00000000049686]) annotation (Placement(
- visible=true, transformation(
- origin={-26.0,50.0},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- Multi_Powers multi_Powers1 annotation (Placement(visible=true, transformation(
- origin={-64.0,50.0},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- Multi_Powers multi_Powers2 annotation (Placement(visible=true, transformation(
- origin={-78.0,-70.0},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- equation
- connect(Theta, multi_Powers2.u1) annotation (Line(
- visible=true,
- origin={-99.0,-60.5},
- points={{-21.0,0.5},{6.0,0.5},{6.0,-0.5},{9.0,-0.5}},
- color={0,0,127}));
- connect(Lambda, multi_Powers1.u1) annotation (Line(
- visible=true,
- origin={-88.5,59.5},
- points={{-31.5,0.5},{9.5,0.5},{9.5,-0.5},{12.5,-0.5}},
- color={0,0,127}));
- connect(multi_Powers1.y[1], matrixGain1.u[1]) annotation (Line(
- visible=true,
- origin={-45.5,50.0},
- points={{-7.5,-0.8},{0,-0.8},{0,1.33227e-15},{7.5,1.33227e-15}},
- color={0,0,127}));
- connect(multi_Powers1.y[2], matrixGain1.u[2]);
- connect(multi_Powers1.y[3], matrixGain1.u[3]);
- connect(multi_Powers1.y[4], matrixGain1.u[4]);
- connect(multi_Powers1.y[5], matrixGain1.u[5]);
- y = matrixGain1.y[1]*multi_Powers2.y[1] + matrixGain1.y[2]*multi_Powers2.y[2]
- + matrixGain1.y[3]*multi_Powers2.y[3] + matrixGain1.y[4]*multi_Powers2.y[4]
- + matrixGain1.y[5]*multi_Powers2.y[5];
- annotation (
- Icon(graphics={Text(
- visible=true,
- origin={0,0},
- fillPattern=FillPattern.Solid,
- extent={{-40,-20},{40,20}},
- textString="CP")}),
- Documentation(info="
-
-Block has two continuous Real input vectors u1 and u2 and one
-continuous Real output vector y.
-All vectors have the same number of elements.
-
-"));
- end Cp_function;
-
- model Turbine_Model
- parameter Real GEN_base=1;
- parameter Real WT_base=1;
- parameter Real Kpp=1;
- parameter Real Kip=1;
- parameter Real pirat=1;
- parameter Real pimax=1;
- parameter Real pimin=1;
- parameter Real pwrat=1;
- parameter Real pwmax=1;
- parameter Real pwmin=1;
- parameter Real Kic=1;
- parameter Real Kpc=1;
- parameter Real Tp=1;
- parameter Real Tpc=1;
- parameter Real eps=1;
- parameter Real Kptrq=1;
- parameter Real Kitrq=1;
- parameter Real Dtg=1;
- parameter Real H=1;
- parameter Real Hg=1;
- parameter Real Ktg=1;
- parameter Real KI=1;
- parameter Real wndtge_kp=1;
- parameter Real wt_x0_0=1;
- parameter Real wt_x1_0=1;
- parameter Real wt_x2_0=1;
- parameter Real wt_x3_0=1;
- parameter Real wt_x4_0=1;
- parameter Real wt_x5_0=1;
- parameter Real wt_x6_0=1;
- parameter Real wt_x7_0=1;
- parameter Real wt_x8_0=1;
- parameter Real wt_x9_0=1;
- parameter Real wbase=1;
- parameter Real wndtge_ang0=1;
- parameter Real wndtge_spd0=1;
- Modelica.Blocks.Interfaces.RealInput Pelec "Electrical power" annotation (
- Placement(
- transformation(
- extent={{-102.0,54.0},{-62.0,94.0}},
- origin={-88.0,11.0},
- rotation=0),
- visible=true,
- iconTransformation(
- origin={2.0,-137.1586},
- extent={{-102.0,54.0},{-62.0,94.0}},
- rotation=0)));
- Modelica.Blocks.Interfaces.RealInput Wind_Speed "Wind speed" annotation (
- Placement(
- transformation(
- extent={{-102.0,54.0},{-62.0,94.0}},
- origin={-88.0,-29.0},
- rotation=0),
- visible=true,
- iconTransformation(
- origin={2.0,-7.5581},
- extent={{-102.0,54.0},{-62.0,94.0}},
- rotation=0)));
- Modelica.Blocks.Interfaces.RealOutput Pord "Active power command" annotation (
- Placement(
- transformation(
- extent={{102.0,54.0},{62.0,94.0}},
- origin={128.0,-75.6493},
- rotation=0),
- visible=true,
- iconTransformation(
- origin={-2.0,-7.6782},
- extent={{102.0,54.0},{62.0,94.0}},
- rotation=0)));
- Rotor_Model rotor_Model1(
- wt_x6_0=wt_x6_0,
- wt_x7_0=wt_x7_0,
- wt_x8_0=wt_x8_0,
- wt_x9_0=wt_x9_0,
- Dtg=Dtg,
- H=H,
- Hg=Hg,
- Ktg=Ktg,
- wbase=wbase,
- wndtge_ang0=wndtge_ang0,
- wndtge_spd0=wndtge_spd0) annotation (Placement(visible=true, transformation(
- origin={-100.5502,45.01},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- Wind_Power_Model wind_Power_Model1(KI=KI, wndtge_kp=wndtge_kp) annotation (
- Placement(visible=true, transformation(
- origin={-132.1327,37.6573},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- protected
- Boolean thlim1(start=true);
- Boolean pwlim2(start=true);
- Modelica.Blocks.Math.Gain Change_Base(k=GEN_base/WT_base) annotation (
- Placement(visible=true, transformation(
- origin={-130.0,85.0},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- Modelica.Blocks.Math.Add add1(k2=-1) annotation (Placement(visible=true,
- transformation(
- origin={-92.0602,80.0},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- Modelica.Blocks.Continuous.Integrator integrator1(k=1/5, y_start=wt_x5_0)
- annotation (Placement(visible=true, transformation(
- origin={-66.7293,85.0},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- Modelica.Blocks.Math.Add add2(k1=-1) annotation (Placement(visible=true,
- transformation(
- origin={-35.0,58.2372},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- Modelica.Blocks.Math.Gain Gain_Kpp(k=Kpp) annotation (Placement(visible=true,
- transformation(
- origin={-6.8708,73.0513},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- Modelica.Blocks.Continuous.Integrator integrator2(k=Kip, y_start=wt_x1_0)
- annotation (Placement(visible=true, transformation(
- origin={-1.8708,43.0036},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- Modelica.Blocks.Math.Add3 add31 annotation (Placement(visible=true,
- transformation(
- origin={23.3965,65.0},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- Modelica.Blocks.Continuous.Integrator integrator3(k=Kic, y_start=wt_x3_0)
- annotation (Placement(visible=true, transformation(
- origin={-35.0,-32.7609},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- Modelica.Blocks.Math.Add add3 annotation (Placement(visible=true,
- transformation(
- origin={-7.225,-25.0},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- Modelica.Blocks.Math.Gain Gain_Kpc(k=Kpc) annotation (Placement(visible=true,
- transformation(
- origin={-35.0,1.579},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- Modelica.Blocks.Math.Add add4(k1=-1) annotation (Placement(visible=true,
- transformation(
- origin={-105.0,-11.8301},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- Modelica.Blocks.Math.Add add5(k2=-1) annotation (Placement(visible=true,
- transformation(
- origin={52.373,60.0},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- Modelica.Blocks.Math.Gain Gain_iTP(k=1/Tp) annotation (Placement(visible=true,
- transformation(
- origin={80.0,60.0},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- Modelica.Blocks.Nonlinear.Limiter limiter1(uMax=pirat) annotation (Placement(
- visible=true, transformation(
- origin={107.1696,60.0},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- Modelica.Blocks.Continuous.LimIntegrator limIntegrator1(
- y_start=wt_x0_0,
- outMax=pimax,
- outMin=pimin,
- initType=Modelica.Blocks.Types.Init.InitialOutput) annotation (Placement(
- visible=true, transformation(
- origin={135.0,60.0},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- Modelica.Blocks.Math.Gain Gain_Kptrq(k=Kptrq) annotation (Placement(visible=
- true, transformation(
- origin={-35.0,-75.421},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- Modelica.Blocks.Math.Add add6 annotation (Placement(visible=true,
- transformation(
- origin={-7.225,-82.0},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- Modelica.Blocks.Continuous.Integrator integrator4(k=Kitrq, y_start=wt_x2_0)
- annotation (Placement(visible=true, transformation(
- origin={-35.0,-106.8211},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- Modelica.Blocks.Math.Product product1 annotation (Placement(visible=true,
- transformation(
- origin={22.2601,-70.0},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- Modelica.Blocks.Continuous.LimIntegrator limIntegrator2(
- outMax=pwmax,
- outMin=pwmin,
- y_start=wt_x4_0) annotation (Placement(visible=true, transformation(
- origin={139.1753,-76.2002},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- Modelica.Blocks.Nonlinear.Limiter limiter2(uMax=pwrat) annotation (Placement(
- visible=true, transformation(
- origin={111.3449,-76.2002},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- Modelica.Blocks.Math.Gain Gain_iTPc(k=1/Tpc) annotation (Placement(visible=
- true, transformation(
- origin={84.1753,-76.2002},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- Modelica.Blocks.Math.Add add8(k2=-1) annotation (Placement(visible=true,
- transformation(
- origin={56.5483,-76.2002},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- Modelica.Blocks.Math.Gain Change_Base1(k=WT_base/GEN_base) annotation (
- Placement(visible=true, transformation(
- origin={175.0,-1.9789},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- Modelica.Blocks.Sources.Constant const(k=1) annotation (Placement(visible=
- true, transformation(
- origin={-147.5253,-5.0},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- equation
- connect(Pelec, Change_Base.u) annotation (Line(
- visible=true,
- origin={-156.0,85.0},
- points={{-14.0,0.0},{14.0,0.0}},
- color={0,0,127}));
- connect(Wind_Speed, wind_Power_Model1.Wind_Speed) annotation (Line(
- visible=true,
- origin={-150.1058,44.9084},
- points={{-19.8942,0.0916},{4.9606,0.0916},{4.9606,-0.09163},{9.9731,-0.09163}},
- color={0,0,127}));
-
- connect(integrator1.y, add2.u1) annotation (Line(
- visible=true,
- origin={-50.6823,74.6186},
- points={{-5.047,10.3814},{0.6823,10.3814},{0.6823,-10.3814},{3.6823,-10.3814}},
- color={0,0,127}));
-
- connect(add1.u2, integrator1.y) annotation (Line(
- visible=true,
- origin={-79.8948,75.9958},
- points={{-24.1654,-1.9958},{-25.1654,-1.9958},{-25.1654,-7.0083},{25.1654,
- -7.0083},{25.1654,9.0042},{24.1655,9.0042}},
- color={0,0,127}));
- connect(add1.y, integrator1.u) annotation (Line(
- visible=true,
- origin={-79.812,82.5},
- points={{-1.2482,-2.5},{0.0827,-2.5},{0.0827,2.5},{1.0827,2.5}},
- color={0,0,127}));
- connect(Change_Base1.y, Pord) annotation (Line(
- visible=true,
- origin={193.5,-1.8141},
- points={{-7.5,-0.1648},{-4.5,-0.1648},{-4.5,0.1648},{16.5,0.1648}},
- color={0,0,127}));
- connect(const.y, add4.u1) annotation (Line(
- visible=true,
- origin={-128.3813,-14.5849},
- points={{-8.144,9.5849},{-1.6187,9.5849},{-1.6187,9.5849},{11.3813,8.7548}},
- color={0,0,127}));
-
- connect(add4.u2, limIntegrator2.y) annotation (Line(
- visible=true,
- origin={16.5876,-49.6768},
- points={{-133.588,31.8467},{-136.588,31.8467},{-136.588,-5.3232},{136.588,
- -5.3232},{136.588,-26.5234},{133.588,-26.5234}},
- color={0,0,127}));
- connect(limIntegrator2.y, Change_Base1.u) annotation (Line(
- visible=true,
- origin={158.2938,-39.0896},
- points={{-8.1185,-37.1106},{1.7062,-37.1106},{1.7062,37.1107},{4.7062,
- 37.1107}},
- color={0,0,127}));
- connect(add8.y, Gain_iTPc.u) annotation (Line(
- visible=true,
- origin={69.8618,-76.2002},
- points={{-2.3135,0.0},{2.3135,0.0}},
- color={0,0,127}));
- connect(add5.y, Gain_iTP.u) annotation (Line(
- visible=true,
- origin={65.6865,60.0},
- points={{-2.3135,0.0},{2.3135,0.0}},
- color={0,0,127}));
- connect(Gain_iTPc.y, limiter2.u) annotation (Line(
- visible=true,
- origin={97.2601,-76.2002},
- points={{-2.0848,0.0},{2.0848,0.0}},
- color={0,0,127}));
- connect(product1.y, add8.u1) annotation (Line(
- visible=true,
- origin={34.2519,-67.0},
- points={{-0.9918,-3.0},{7.2964,-3.2002},{7.2964,-3.2002},{10.2964,-3.2002}},
- color={0,0,127}));
-
- connect(limIntegrator2.y, add8.u2) annotation (Line(
- visible=true,
- origin={97.3618,-84.8669},
- points={{52.8135,8.6667},{55.8135,8.6667},{55.8135,-11.3333},{-55.8135,-11.3333},
- {-55.8135,2.6667},{-52.8135,2.6667}},
- color={0,0,127}));
- connect(limiter2.y, limIntegrator2.u) annotation (Line(
- visible=true,
- origin={124.7601,-76.2002},
- points={{-2.4152,0.0},{2.4152,0.0}},
- color={0,0,127}));
- connect(integrator4.y, add6.u2) annotation (Line(
- visible=true,
- origin={-20.9188,-97.4105},
- points={{-3.0812,-9.4106},{0.6938,-9.4106},{0.6938,9.4105},{1.6938,9.4105}},
- color={0,0,127}));
-
- connect(add31.u2, integrator2.y) annotation (Line(
- visible=true,
- origin={10.196,54.0018},
- points={{1.2005,10.9982},{-0.0668,10.9982},{-0.0668,-10.9982},{-1.0668,-10.9982}},
- color={0,0,127}));
-
- connect(add3.y, add31.u3) annotation (Line(
- visible=true,
- origin={11.1982,16.0},
- points={{-7.4232,-41.0},{0.4054,-41.0},{0.4054,41.0},{0.1983,41.0}},
- color={0,0,127}));
- connect(add2.y, Gain_Kptrq.u) annotation (Line(
- visible=true,
- origin={-40.3485,3.0264},
- points={{16.3485,55.2108},{17.0758,55.6318},{17.0758,22.3946},{-19.6515,
- 22.3946},{-19.6515,-78.0264},{-6.6515,-78.4474}},
- color={0,0,127}));
- connect(rotor_Model1.omega_gen, product1.u1) annotation (Line(
- visible=true,
- origin={-41.5592,-14.7662},
- points={{-50.991,66.7762},{-26.3238,66.7762},{-26.3238,-42.1593},{51.8193,
- -42.1593},{51.8193,-49.2338}},
- color={0,0,127}));
- connect(add6.y, product1.u2) annotation (Line(
- visible=true,
- origin={7.1388,-79.0},
- points={{-3.3638,-3.0},{0.1213,-3.0},{0.1213,3.0},{3.1213,3.0}},
- color={0,0,127}));
- connect(Gain_Kptrq.y, add6.u1) annotation (Line(
- visible=true,
- origin={-20.9188,-75.7105},
- points={{-3.0812,0.2895},{0.6938,0.2895},{0.6938,-0.2895},{1.6938,-0.2895}},
- color={0,0,127}));
-
- connect(wind_Power_Model1.Theta, limIntegrator1.y) annotation (Line(
- visible=true,
- origin={-28.0648,76.8501},
- points={{-112.068,-39.4497},{-117.08,-39.4497},{-117.08,28.1499},{-91.0554,
- 28.1499},{177.065,28.1499},{177.065,-16.8501},{174.065,-16.8501}},
- color={0,0,127}));
- connect(limIntegrator1.y, add5.u2) annotation (Line(
- visible=true,
- origin={93.1865,51.3333},
- points={{52.8135,8.6667},{55.8135,8.6667},{55.8135,-11.3333},{-55.8135,-11.3333},
- {-55.8135,2.6667},{-52.8135,2.6667}},
- color={0,0,127}));
- connect(limiter1.y, limIntegrator1.u) annotation (Line(
- visible=true,
- origin={120.5848,60.0},
- points={{-2.4152,0.0},{2.4152,0.0}},
- color={0,0,127}));
- connect(Gain_iTP.y, limiter1.u) annotation (Line(
- visible=true,
- origin={93.0848,60.0},
- points={{-2.0848,0.0},{2.0848,0.0}},
- color={0,0,127}));
- connect(add31.y, add5.u1) annotation (Line(
- visible=true,
- origin={38.3789,65.5},
- points={{-3.9824,-0.5},{0.9941,-0.5},{0.9941,0.5},{1.9941,0.5}},
- color={0,0,127}));
- connect(integrator3.y, add3.u2) annotation (Line(
- visible=true,
- origin={-20.9188,-31.8805},
- points={{-3.0812,-0.8804},{0.6937,-0.8804},{0.6937,0.8805},{1.6938,0.8805}},
- color={0,0,127}));
-
- connect(add4.y, Gain_Kpc.u) annotation (Line(
- visible=true,
- origin={-60.25,-5.1256},
- points={{-33.75,-6.7045},{10.25,-6.7045},{10.25,6.7046},{13.25,6.7046}},
- color={0,0,127}));
- connect(Gain_Kpc.y, add3.u1) annotation (Line(
- visible=true,
- origin={-21.6125,-9.689},
- points={{-2.3875,11.268},{0.6125,11.268},{0.6125,-1.957},{-0.6125,-1.957},
- {-0.6125,-9.311},{2.3875,-9.311}},
- color={0,0,127}));
- connect(Gain_Kpp.y, add31.u1) annotation (Line(
- visible=true,
- origin={8.0797,73.0257},
- points={{-3.9505,0.0256},{0.3168,0.0256},{0.3168,-0.0257},{3.3168,-0.0257}},
- color={0,0,127}));
-
- connect(add2.y, Gain_Kpp.u) annotation (Line(
- visible=true,
- origin={-20.6531,65.6443},
- points={{-3.3469,-7.4071},{0.7823,-7.4071},{0.7823,7.407},{1.7823,7.407}},
- color={0,0,127}));
-
- connect(Change_Base.y, rotor_Model1.Pe) annotation (Line(
- visible=true,
- origin={-111.2201,65.5087},
- points={{-7.7799,19.4913},{1.2201,19.4913},{1.2201,-12.8593},{2.6699,-12.8593},
- {2.6699,-13.2639}},
- color={0,0,127}));
- connect(rotor_Model1.omega_gen, add2.u2) annotation (Line(
- visible=true,
- origin={-64.1526,52.1236},
- points={{-28.3976,-0.1136},{14.1526,-0.1136},{14.1526,0.1136},{17.1526,
- 0.1136}},
- color={0,0,127}));
- connect(wind_Power_Model1.Pm, rotor_Model1.Pm) annotation (Line(
- visible=true,
- origin={-114.9521,38.2345},
- points={{-9.1806,-0.31293},{1.3894,-0.31293},{1.3894,0.31291},{6.4019,
- 0.31291}},
- color={0,0,127}));
- connect(rotor_Model1.omega_turb, wind_Power_Model1.omega) annotation (Line(
- visible=true,
- origin={-116.3415,31.1587},
- points={{23.7913,7.24754},{28.8037,7.24754},{28.8037,-6.5139},{-28.8037,-6.5139},
- {-28.8037,-0.73366},{-23.7912,-0.73366}},
- color={0,0,127}));
- add1.u1 = if Change_Base.y >= 0.75 then 1.2 else ((-0.67*Change_Base.y) +
- 1.42)*Change_Base.y + 0.51;
- integrator2.u = if thlim1 then add2.y else 0;
- integrator3.u = if thlim1 then add4.y else 0;
- integrator4.u = if pwlim2 then add2.y else 0;
- thlim1 = not (limIntegrator1.y <= pimin + eps and limiter1.y < 0);
- pwlim2 = not (limIntegrator2.y >= pwmax and limiter2.y > 0);
- annotation (
- Icon(coordinateSystem(
- extent={{-100.0,-100.0},{100.0,100.0}},
- preserveAspectRatio=true,
- initialScale=0.1,
- grid={10,10}), graphics={Rectangle(
- visible=true,
- fillColor={255,255,255},
- extent={{-100.0,-100.0},{100.0,100.0}}),Text(
- visible=true,
- fillPattern=FillPattern.Solid,
- extent={{-44.9792,-41.316},{44.9792,41.316}},
- textString="Turbine",
- fontName="Arial")}),
- Diagram(coordinateSystem(
- extent={{-210.0,-148.5},{210.0,148.5}},
- preserveAspectRatio=true,
- initialScale=0.1,
- grid={5,5})),
- Documentation);
- end Turbine_Model;
- annotation (Diagram(coordinateSystem(
- extent={{-148.5,-105.0},{148.5,105.0}},
- preserveAspectRatio=true,
- initialScale=0.1,
- grid={5,5})), Documentation);
- end Turbine;
-
- package Electrical_Control
- model Electrical_Control
- import Modelica.Constants.inf;
- parameter Real qmax=1;
- parameter Real qmin=0;
- parameter Real KQi=1;
- parameter Real ex_x0_0=1;
- parameter Real ex_x1_0=1;
- parameter Real KVi=1;
- parameter Real xiqmax=1;
- parameter Real xiqmin=1;
- Modelica.Blocks.Interfaces.RealInput Qgen
- "Reactive Power produced by the Generator" annotation (Placement(
- transformation(
- extent={{-102.0,54.0},{-62.0,94.0}},
- origin={-148.0,42.372},
- rotation=0),
- visible=true,
- iconTransformation(
- origin={2.0,-154.0},
- extent={{-102.0,54.0},{-62.0,94.0}},
- rotation=0)));
- Modelica.Blocks.Interfaces.RealInput Qord "Reactive power command"
- annotation (Placement(
- transformation(
- extent={{-102.0,54.0},{-62.0,94.0}},
- origin={-148.0,-25.5774},
- rotation=0),
- visible=true,
- iconTransformation(
- origin={2.0,6.0},
- extent={{-102.0,54.0},{-62.0,94.0}},
- rotation=0)));
- Modelica.Blocks.Interfaces.RealInput Pord "Active power command" annotation (
- Placement(
- visible=true,
- transformation(
- origin={-148.0,-136.6369},
- extent={{-102.0,54.0},{-62.0,94.0}},
- rotation=0),
- iconTransformation(
- origin={2.0,-47.414},
- extent={{-102.0,54.0},{-62.0,94.0}},
- rotation=0)));
- Modelica.Blocks.Interfaces.RealInput Vterm "Terminal voltage" annotation (
- Placement(
- visible=true,
- transformation(
- origin={-148.0,-174.0},
- extent={{-102.0,54.0},{-62.0,94.0}},
- rotation=0),
- iconTransformation(
- origin={2.0,-94.0},
- extent={{-102.0,54.0},{-62.0,94.0}},
- rotation=0)));
- Modelica.Blocks.Interfaces.RealOutput Ipcmd "Current command" annotation (
- Placement(
- visible=true,
- transformation(
- origin={128.0,-154.0},
- extent={{102.0,54.0},{62.0,94.0}},
- rotation=0),
- iconTransformation(
- origin={-2.0,1.3917},
- extent={{102.0,54.0},{62.0,94.0}},
- rotation=0)));
- Modelica.Blocks.Interfaces.RealOutput Efd "Excitation voltage" annotation (
- Placement(
- transformation(
- extent={{102.0,54.0},{62.0,94.0}},
- origin={128.0,-2.1101},
- rotation=0),
- visible=true,
- iconTransformation(
- origin={-2.0,-61.4483},
- extent={{102.0,54.0},{62.0,94.0}},
- rotation=0)));
- protected
- Modelica.Blocks.Math.Division division1 annotation (Placement(visible=true,
- transformation(
- origin={-166.6875,-80.0},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- Modelica.Blocks.Nonlinear.Limiter limiter1(uMax=1.1, uMin=-inf) annotation (
- Placement(visible=true, transformation(
- origin={-135.6935,-80.0},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- Modelica.Blocks.Nonlinear.Limiter limiter2(uMax=qmax, uMin=qmin) annotation (
- Placement(visible=true, transformation(
- origin={-186.1796,47.2887},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- Modelica.Blocks.Math.Add add1(k1=-1) annotation (Placement(visible=true,
- transformation(
- origin={-150.0,80.0},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- Modelica.Blocks.Continuous.LimIntegrator limIntegrator1(
- k=KQi,
- y_start=ex_x0_0,
- outMax=99999,
- outMin=-99999) annotation (Placement(visible=true, transformation(
- origin={-114.9137,80.0},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- Modelica.Blocks.Math.Add add2(k2=-1) annotation (Placement(visible=true,
- transformation(
- origin={-80.0,73.0337},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- Modelica.Blocks.Math.Gain gain1(k=KVi) annotation (Placement(visible=true,
- transformation(
- origin={-51.7827,73.3274},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- lim_exc_s1 lim_exc_s11(
- typpe=1,
- xiqmax=xiqmax,
- xiqmin=xiqmin) annotation (Placement(visible=true, transformation(
- origin={-14.0506,73.3274},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- lim_exc_s1 lim_exc_s12(
- typpe=2,
- xiqmax=xiqmax,
- xiqmin=xiqmin) annotation (Placement(visible=true, transformation(
- origin={61.5119,72.4087},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- Modelica.Blocks.Continuous.Integrator integrator1(y_start=ex_x1_0)
- annotation (Placement(visible=true, transformation(
- origin={15.875,72.9494},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- Modelica.Blocks.Sources.Constant const(k=0) annotation (Placement(visible=
- true, transformation(
- origin={19.4593,103.9435},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- equation
- connect(const.y, lim_exc_s12.Efd) annotation (Line(
- visible=true,
- origin={43.2488,91.1761},
- points={{-12.7895,12.7674},{3.2632,12.7674},{3.2632,-12.7674},{6.2631,-12.7674}},
- color={0,0,127}));
-
- connect(integrator1.y, lim_exc_s12.Vref) annotation (Line(
- visible=true,
- origin={42.3527,72.7755},
- points={{-15.4777,0.1739},{4.1592,0.1739},{4.1592,-0.17397},{7.1592,-0.17397}},
- color={0,0,127}));
-
- connect(lim_exc_s11.Efd, lim_exc_s12.y) annotation (Line(
- visible=true,
- origin={28.4241,91.1481},
- points={{-54.4747,-11.8207},{-58.9866,-12.1987},{-58.9866,31.3162},{
- 65.692,31.3162},{65.692,-19.1174},{44.0878,-18.7394}},
- color={0,0,127}));
- connect(lim_exc_s12.Vt, Vterm) annotation (Line(
- visible=true,
- origin={-86.5355,-18.5464},
- points={{136.0474,84.9551},{119.0414,84.5771},{119.0414,68.9244},{-10.9824,
- 68.9244},{-10.9824,-35.1262},{-108.1222,-35.1262},{-108.1222,-78.2155},
- {-143.4645,-78.2155},{-143.4645,-81.4536}},
- color={0,0,127}));
- connect(lim_exc_s12.y, Efd) annotation (Line(
- visible=true,
- origin={164.128,72.1493},
- points={{-91.6161,0.2594},{22.872,0.2594},{22.872,-0.2594},{45.872,-0.2594}},
- color={0,0,127}));
-
- connect(gain1.y, lim_exc_s11.Vref) annotation (Line(
- visible=true,
- origin={-31.2336,73.4238},
- points={{-9.5491,-0.0964},{2.183,-0.0964},{2.183,0.09643},{5.183,0.09643}},
- color={0,0,127}));
-
- connect(lim_exc_s11.y, integrator1.u) annotation (Line(
- visible=true,
- origin={0.6436,73.1384},
- points={{-3.6942,0.189},{0.2314,0.189},{0.2314,-0.189},{3.2314,-0.189}},
- color={0,0,127}));
- connect(lim_exc_s11.Vt, Vterm) annotation (Line(
- visible=true,
- origin={-127.081,-18.8882},
- points={{101.0304,86.2156},{91.9292,85.8376},{91.9292,68.8882},{29.1852,
- 68.8882},{29.1852,-35.5403},{-67.9547,-35.5403},{-67.9547,-78.6296},{
- -102.919,-78.6296},{-102.919,-81.1118}},
- color={0,0,127}));
- connect(Qgen, add1.u1) annotation (Line(
- visible=true,
- origin={-180.5,101.186},
- points={{-49.5,15.186},{15.5,15.186},{15.5,-15.186},{18.5,-15.186}},
- color={0,0,127}));
- connect(Qord, limiter2.u) annotation (Line(
- visible=true,
- origin={-207.6347,47.8557},
- points={{-22.3653,0.5669},{6.4551,0.567},{6.4551,-0.567},{9.4551,-0.567}},
- color={0,0,127}));
-
- connect(limiter1.y, Ipcmd) annotation (Line(
- visible=true,
- origin={42.6532,-80.0},
- points={{-167.3467,0.0},{167.3468,0.0}},
- color={0,0,127}));
- connect(Vterm, division1.u2) annotation (Line(
- visible=true,
- origin={-193.0156,-93.0},
- points={{-36.9844,-7.0},{11.3281,-7.0},{11.3281,7.0},{14.3281,7.0}},
- color={0,0,127}));
- connect(add2.u2, Vterm) annotation (Line(
- visible=true,
- origin={-162.3359,-38.3305},
- points={{70.3359,105.3642},{64.818,105.3642},{64.818,-15.7201},{-32.3219,
- -15.7201},{-32.3219,-58.8094},{-67.6641,-58.8094},{-67.6641,-61.6695}},
- color={0,0,127}));
-
- connect(Pord, division1.u1) annotation (Line(
- visible=true,
- origin={-193.0156,-68.3185},
- points={{-36.9844,5.6816},{11.3281,5.6815},{11.3281,-5.6815},{14.3281,-5.6815}},
- color={0,0,127}));
-
- connect(add2.y, gain1.u) annotation (Line(
- visible=true,
- origin={-65.5871,73.1805},
- points={{-3.4129,-0.1468},{0.8043,-0.1468},{0.8043,0.1469},{1.8044,0.1469}},
- color={0,0,127}));
-
- connect(limIntegrator1.y, add2.u1) annotation (Line(
- visible=true,
- origin={-96.4784,79.5168},
- points={{-7.4353,0.4832},{1.4784,0.4832},{1.4784,-0.4831},{4.4784,-0.4831}},
- color={0,0,127}));
-
- connect(add1.y, limIntegrator1.u) annotation (Line(
- visible=true,
- origin={-132.9568,80.0},
- points={{-6.0432,0},{6.0431,0}},
- color={0,0,127}));
- connect(limiter2.y, add1.u2) annotation (Line(
- visible=true,
- origin={-166.7949,60.6443},
- points={{-8.3847,-13.3556},{1.7949,-13.3556},{1.7949,13.3557},{4.7949,
- 13.3557}},
- color={0,0,127}));
- connect(division1.y, limiter1.u) annotation (Line(
- visible=true,
- origin={-151.6905,-80.0},
- points={{-3.997,0.0},{3.997,0.0}},
- color={0,0,127}));
- annotation (
- Diagram(coordinateSystem(
- extent={{-210.0,-148.5},{210.0,148.5}},
- preserveAspectRatio=true,
- initialScale=0.1,
- grid={10,10}), graphics),
- Icon(coordinateSystem(
- extent={{-100.0,-100.0},{100.0,100.0}},
- preserveAspectRatio=true,
- initialScale=0.1,
- grid={10,10}), graphics={Rectangle(
- visible=true,
- fillColor={255,255,255},
- fillPattern=FillPattern.Solid,
- extent={{-100.0,-100.0},{100.0,100.0}}),Text(
- visible=true,
- origin={-2.5076,2.901},
- fillPattern=FillPattern.Solid,
- extent={{-67.4924,-47.099},{67.4924,47.099}},
- textString="Electrical Control",
- fontName="Arial")}),
- Documentation);
- end Electrical_Control;
-
- model lim_exc_s1
- extends Modelica.Blocks.Interfaces.BlockIcon;
- parameter Real xiqmin=1;
- parameter Real xiqmax=1;
- parameter Real typpe=1;
- Modelica.Blocks.Interfaces.RealInput Efd "Input: Excitation voltage"
- annotation (Placement(
- transformation(
- extent={{-140.0,40.0},{-100.0,80.0}},
- rotation=0,
- origin={0.0,18.0}),
- visible=true,
- iconTransformation(
- origin={0.0,0.0},
- extent={{-140.0,40.0},{-100.0,80.0}},
- rotation=0)));
- Modelica.Blocks.Interfaces.RealInput Vt "Terminal Voltage" annotation (
- Placement(
- transformation(
- extent={{-140.0,-80.0},{-100.0,-40.0}},
- rotation=0,
- origin={0.0,-18.0}),
- visible=true,
- iconTransformation(
- origin={0.0,0.0},
- extent={{-140.0,-80.0},{-100.0,-40.0}},
- rotation=0)));
- Modelica.Blocks.Interfaces.RealOutput y
- "Output: saturated excitation voltage" annotation (Placement(transformation(
- extent={{100,-10},{120,10}}, rotation=0)));
- Modelica.Blocks.Interfaces.RealInput Vref "Reference Voltage " annotation (
- Placement(
- visible=true,
- transformation(
- origin={0.0,-58.0},
- extent={{-140.0,40.0},{-100.0,80.0}},
- rotation=0),
- iconTransformation(
- origin={0.0,-58.0717},
- extent={{-140.0,40.0},{-100.0,80.0}},
- rotation=0)));
- equation
- if typpe == 1 then
- if Efd >= Vt + xiqmax and Vref >= 0 or Efd <= Vt + xiqmin and Vref <= 0 then
- y = 0;
- else
- y = Vref;
- end if;
- elseif typpe == 2 then
- if Vref >= Vt + xiqmax then
- y = Vt + xiqmax;
- elseif Vref <= Vt + xiqmin then
- y = Vt + xiqmin;
- else
- y = Vref;
- end if;
- else
- y = 0;
- end if;
- annotation (
- Icon(coordinateSystem(
- extent={{-100.0,-100.0},{100.0,100.0}},
- preserveAspectRatio=true,
- initialScale=0.1,
- grid={10,10}), graphics={Text(
- visible=true,
- origin={-1.349,1.6286},
- fillPattern=FillPattern.Solid,
- extent={{-55.1519,-28.3714},{55.1519,28.3714}},
- textString="lim_exc_s1",
- fontName="Arial")}),
- Documentation(info="
-
-Block has two continuous Real input vectors u1 and u2 and one
-continuous Real output vector y.
-All vectors have the same number of elements.
-
-"), Diagram(coordinateSystem(
- preserveAspectRatio=true,
- extent={{-100,-100},{100,100}},
- grid={2,2}), graphics));
- end lim_exc_s1;
- annotation (Diagram(coordinateSystem(
- extent={{-148.5,-105.0},{148.5,105.0}},
- preserveAspectRatio=true,
- initialScale=0.1,
- grid={5,5})), Documentation);
- end Electrical_Control;
-
- package Generator
- model Generator
- import Modelica.Constants.pi;
- parameter Real freq=50;
- parameter Real omega_0=2*pi*freq;
- parameter Real Kpllp=1;
- parameter Real ge_x0_0=1;
- parameter Real ge_x1_0=1;
- parameter Real ge_x2_0=1;
- parameter Real GEN_base=1;
- parameter Real SYS_base=1;
- parameter Real Lpp=1;
- Modelica.Blocks.Interfaces.RealInput Efd "Excitation voltage" annotation (
- Placement(
- transformation(
- extent={{-102.0,54.0},{-62.0,94.0}},
- origin={-86.1542,14.0368},
- rotation=0),
- visible=true,
- iconTransformation(
- origin={2.0,-130.6017},
- extent={{-102.0,54.0},{-62.0,94.0}},
- rotation=0)));
- Modelica.Blocks.Interfaces.RealInput Ipcmd "Current command" annotation (
- Placement(
- transformation(
- extent={{-102.0,54.0},{-62.0,94.0}},
- origin={-86.1542,-12.4057},
- rotation=0),
- visible=true,
- iconTransformation(
- origin={2.0,-22.352},
- extent={{-102.0,54.0},{-62.0,94.0}},
- rotation=0)));
- Modelica.Blocks.Interfaces.RealOutput Vt "Terminal voltage" annotation (
- Placement(
- visible=true,
- transformation(
- origin={68.0,-29.8146},
- extent={{102.0,54.0},{62.0,94.0}},
- rotation=0),
- iconTransformation(
- origin={-2.0,0.2537},
- extent={{102.0,54.0},{62.0,94.0}},
- rotation=0)));
- Modelica.Blocks.Interfaces.RealOutput Pgen "Active power" annotation (
- Placement(
- visible=true,
- transformation(
- origin={68.0,-114.0},
- extent={{102.0,54.0},{62.0,94.0}},
- rotation=0),
- iconTransformation(
- origin={-2.0,-94.0},
- extent={{102.0,54.0},{62.0,94.0}},
- rotation=0)));
- Modelica.Blocks.Interfaces.RealOutput Qgen "Reactive power" annotation (
- Placement(
- visible=true,
- transformation(
- origin={68.0,-151.9188},
- extent={{102.0,54.0},{62.0,94.0}},
- rotation=0),
- iconTransformation(
- origin={-2.0,-134.0},
- extent={{102.0,54.0},{62.0,94.0}},
- rotation=0)));
- OpenIPSL.Interfaces.PwPin p annotation (Placement(
- visible=true,
- transformation(
- origin={-158.1542,-62.9104},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0),
- iconTransformation(
- origin={0.0,-110.0},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- Real Anglet;
- protected
- Real Vt_re;
- Real Vt_im;
- Modelica.Blocks.Continuous.Integrator integrator1(k=omega_0, y_start=ge_x2_0)
- annotation (Placement(visible=true, transformation(
- origin={-67.1876,-70.0},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- Modelica.Blocks.Nonlinear.Limiter limiter1(uMax=0.1, uMin=-0.1) annotation (
- Placement(visible=true, transformation(
- origin={-97.7647,-70.0},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- Modelica.Blocks.Math.Gain gain1(k=Kpllp/omega_0) annotation (Placement(
- visible=true, transformation(
- origin={-125.925,-70.0},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- Modelica.Blocks.Math.Cos cos1 annotation (Placement(visible=true,
- transformation(
- origin={-35.4375,-56.5604},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- Modelica.Blocks.Math.Sin sin1 annotation (Placement(visible=true,
- transformation(
- origin={-35.4375,-81.75},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- Modelica.Blocks.Math.Product product1 annotation (Placement(visible=true,
- transformation(
- origin={-1.5708,-57.7032},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- Modelica.Blocks.Math.Product product2 annotation (Placement(visible=true,
- transformation(
- origin={-1.3063,-82.2968},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- Modelica.Blocks.Math.Add add1(k2=-1) annotation (Placement(visible=true,
- transformation(
- origin={27.0042,-63.4938},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- Modelica.Blocks.Math.Gain gain2(k=1/Lpp) annotation (Placement(visible=true,
- transformation(
- origin={76.305,-30.0},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- Modelica.Blocks.Math.Gain gain3(k=1/Lpp) annotation (Placement(visible=true,
- transformation(
- origin={70.0,-3.3186},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- Modelica.Blocks.Continuous.Integrator integrator2(k=1/0.01, y_start=ge_x0_0)
- annotation (Placement(visible=true, transformation(
- origin={-87.6272,90.0},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- Modelica.Blocks.Continuous.Integrator integrator3(k=1/0.01, y_start=ge_x1_0)
- annotation (Placement(visible=true, transformation(
- origin={-90.2646,56.35},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- Modelica.Blocks.Math.Add add2(k2=-1) annotation (Placement(visible=true,
- transformation(
- origin={-120.0,90.0},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- Modelica.Blocks.Math.Add add3(k2=-1) annotation (Placement(visible=true,
- transformation(
- origin={-120.3313,55.9354},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- Modelica.Blocks.Math.Gain gain4(k=-1/Lpp) annotation (Placement(visible=true,
- transformation(
- origin={-54.097,90.0},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- Modelica.Blocks.Math.Add add4(k2=-1) annotation (Placement(visible=true,
- transformation(
- origin={28.575,84.2094},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- Modelica.Blocks.Math.Product product3 annotation (Placement(visible=true,
- transformation(
- origin={0.2646,65.4063},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- Modelica.Blocks.Math.Product product4 annotation (Placement(visible=true,
- transformation(
- origin={0.0,90.0},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- Modelica.Blocks.Math.Product product5 annotation (Placement(visible=true,
- transformation(
- origin={0.0,40.0},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- Modelica.Blocks.Math.Product product6 annotation (Placement(visible=true,
- transformation(
- origin={0.2646,15.4063},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- Modelica.Blocks.Math.Add add5 annotation (Placement(visible=true,
- transformation(
- origin={28.575,34.2094},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- Modelica.Blocks.Math.Add add6 annotation (Placement(visible=true,
- transformation(
- origin={105.9559,-23.9376},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- Modelica.Blocks.Math.Add add7(k2=-1) annotation (Placement(visible=true,
- transformation(
- origin={100.0,2.3228},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- equation
- connect(integrator2.y, gain4.u) annotation (Line(
- visible=true,
- origin={-71.3621,90.0},
- points={{-5.2651,0.0},{5.2651,0.0}},
- color={0,0,127}));
- connect(gain4.y, product5.u1) annotation (Line(
- visible=true,
- origin={-31.724,68.0},
- points={{-11.373,22.0},{6.1406,22.0},{6.1406,-22.0},{19.724,-22.0}},
- color={0,0,127}));
- connect(gain4.y, product3.u1) annotation (Line(
- visible=true,
- origin={-31.7901,80.7032},
- points={{-11.3069,9.2968},{6.2068,9.2968},{6.2068,-9.2968},{20.0547,-9.2969}},
- color={0,0,127}));
-
- connect(add3.u1, Ipcmd) annotation (Line(
- visible=true,
- origin={-147.4735,61.7648},
- points={{15.1422,0.1706},{2.7693,0.1706},{2.7693,-0.1705},{-20.6807,-0.1705}},
- color={0,0,127}));
-
- connect(Efd, add2.u1) annotation (Line(
- visible=true,
- origin={-142.5385,92.0184},
- points={{-25.6157,-3.9816},{7.5385,-3.9816},{7.5385,3.9816},{10.5385,
- 3.9816}},
- color={0,0,127}));
- connect(gain2.y, add6.u2) annotation (Line(
- visible=true,
- origin={90.7932,-29.9688},
- points={{-3.4882,-0.0312},{0.1627,-0.0312},{0.1627,0.0312},{3.1627,0.0312}},
- color={0,0,127}));
-
- connect(add7.u1, add4.y) annotation (Line(
- visible=true,
- origin={62.1454,46.0725},
- points={{25.8546,-37.7497},{-16.096,-37.676},{-16.096,37.676},{-22.5704,
- 38.1369}},
- color={0,0,127}));
- connect(gain3.y, add7.u2) annotation (Line(
- visible=true,
- origin={84.75,-3.4979},
- points={{-3.75,0.1793},{0.25,0.1793},{0.25,-0.1793},{3.25,-0.1793}},
- color={0,0,127}));
- connect(add6.u1, add5.y) annotation (Line(
- visible=true,
- origin={44.1804,8.1359},
- points={{49.7755,-26.0735},{-1.6054,-26.0735},{-1.6054,26.0735},{-4.6054,
- 26.0735}},
- color={0,0,127}));
- connect(integrator3.y, product6.u1) annotation (Line(
- visible=true,
- origin={-52.0781,40.0},
- points={{-27.1865,16.35},{15.3823,17.4718},{15.3823,-17.4718},{40.3427,-18.5937}},
- color={0,0,127}));
-
- connect(integrator3.y, product4.u1) annotation (Line(
- visible=true,
- origin={-51.7474,76.9688},
- points={{-27.5172,-20.6188},{15.3161,-20.6188},{15.3161,19.0312},{39.7474,
- 19.0312}},
- color={0,0,127}));
- connect(product3.u2, sin1.y) annotation (Line(
- visible=true,
- origin={-15.7932,-12.4948},
- points={{4.0578,71.9011},{-1.6755,70.5781},{-1.6755,-70.5781},{-8.6443,-69.2552}},
- color={0,0,127}));
-
- connect(product6.u2, sin1.y) annotation (Line(
- visible=true,
- origin={-15.5286,-35.5782},
- points={{3.7932,44.9845},{-1.6755,45.5782},{-1.6755,-45.5782},{-8.9089,-46.1718}},
- color={0,0,127}));
-
- connect(product1.y, add1.u1) annotation (Line(
- visible=true,
- origin={13.1104,-57.5985},
- points={{-3.6812,-0.1047},{0.8938,-0.1047},{0.8938,0.1047},{1.8938,0.1047}},
- color={0,0,127}));
-
- connect(product2.y, add1.u2) annotation (Line(
- visible=true,
- origin={13.1766,-75.8953},
- points={{-3.4829,-6.4015},{0.8276,-6.4015},{0.8276,6.4015},{1.8276,6.4015}},
- color={0,0,127}));
-
- connect(cos1.y, product1.u2) annotation (Line(
- visible=true,
- origin={-17.7875,-60.1318},
- points={{-6.65,3.5714},{1.2167,3.5714},{1.2167,-3.5714},{4.2167,-3.5714}},
- color={0,0,127}));
-
- connect(sin1.y, product2.u1) annotation (Line(
- visible=true,
- origin={-17.5891,-79.0234},
- points={{-6.8484,-2.7266},{1.2828,-2.7266},{1.2828,2.7266},{4.2828,2.7266}},
- color={0,0,127}));
-
- connect(add1.y, gain1.u) annotation (Line(
- visible=true,
- origin={-45.4625,-77.6549},
- points={{83.4667,14.1611},{85.4625,14.1611},{85.4625,-22.3451},{-95.4625,
- -22.3451},{-95.4625,7.6549},{-92.4625,7.6549}},
- color={0,0,127}));
- connect(cos1.y, product4.u2) annotation (Line(
- visible=true,
- origin={-23.7531,13.9844},
- points={{-0.6844,-70.5448},{1.6094,-70.2802},{1.6094,70.2802},{11.7531,
- 70.0156}},
- color={0,0,127}));
- connect(cos1.y, product5.u2) annotation (Line(
- visible=true,
- origin={-23.4885,-11.5448},
- points={{-0.949,-45.0156},{1.6094,-45.0156},{1.6094,45.5448},{11.4885,
- 45.5448}},
- color={0,0,127}));
- connect(product4.y, add4.u1) annotation (Line(
- visible=true,
- origin={14.6813,90.1047},
- points={{-3.6813,-0.1047},{0.8938,-0.1047},{0.8938,0.1047},{1.8937,0.1047}},
- color={0,0,127}));
-
- connect(product3.y, add4.u2) annotation (Line(
- visible=true,
- origin={14.7474,71.8078},
- points={{-3.4828,-6.4015},{0.8276,-6.4015},{0.8276,6.4016},{1.8276,6.4016}},
- color={0,0,127}));
-
- connect(product5.y, add5.u1) annotation (Line(
- visible=true,
- origin={14.6813,40.1047},
- points={{-3.6813,-0.1047},{0.8938,-0.1047},{0.8938,0.1047},{1.8937,0.1047}},
- color={0,0,127}));
-
- connect(product6.y, add5.u2) annotation (Line(
- visible=true,
- origin={14.7474,21.8078},
- points={{-3.4828,-6.4015},{0.8276,-6.4015},{0.8276,6.4016},{1.8276,6.4016}},
- color={0,0,127}));
-
- connect(integrator1.y, sin1.u) annotation (Line(
- visible=true,
- origin={-51.125,-75.875},
- points={{-5.0626,5.875},{0.6875,5.875},{0.6875,-5.875},{3.6875,-5.875}},
- color={0,0,127}));
- connect(integrator1.y, cos1.u) annotation (Line(
- visible=true,
- origin={-51.125,-63.2802},
- points={{-5.0626,-6.7198},{0.6875,-6.7198},{0.6875,6.7198},{3.6875,6.7198}},
- color={0,0,127}));
-
- connect(gain1.y, limiter1.u) annotation (Line(
- visible=true,
- origin={-112.3448,-70.0},
- points={{-2.5802,0.0},{2.5801,0.0}},
- color={0,0,127}));
- connect(limiter1.y, integrator1.u) annotation (Line(
- visible=true,
- origin={-82.9761,-70.0},
- points={{-3.7886,0.0},{3.7885,0.0}},
- color={0,0,127}));
- connect(integrator3.y, add3.u2) annotation (Line(
- visible=true,
- origin={-105.7979,48.7618},
- points={{26.5333,7.5882},{29.5333,7.5882},{29.5333,-8.7618},{-29.5333,-8.7618},
- {-29.5333,1.1736},{-26.5334,1.1736}},
- color={0,0,127}));
- connect(integrator2.y, add2.u2) annotation (Line(
- visible=true,
- origin={-108.1753,82.6179},
- points={{31.5481,7.3821},{34.5482,7.3821},{34.5482,-10.3866},{-26.4976,-10.3866},
- {-26.4976,2.3134},{-23.8247,2.3134},{-23.8247,1.3821}},
- color={0,0,127}));
- connect(add3.y, integrator3.u) annotation (Line(
- visible=true,
- origin={-105.5312,56.1427},
- points={{-3.8001,-0.2073},{0.2667,-0.2073},{0.2667,0.2073},{3.2666,0.2073}},
- color={0,0,127}));
-
- connect(add2.y, integrator2.u) annotation (Line(
- visible=true,
- origin={-104.3136,90.0},
- points={{-4.6864,0.0},{4.6864,0.0}},
- color={0,0,127}));
- Vt_re = p.vr;
- Vt_im = p.vi;
- add7.y*GEN_base/SYS_base = -p.ir;
- add6.y*GEN_base/SYS_base = -p.ii;
- Vt = sqrt(Vt_re^2 + Vt_im^2);
- Anglet = atan(Vt_im/Vt_re);
- product1.u1 = Vt_im;
- product2.u2 = Vt_re;
- gain2.u = Vt_re;
- gain3.u = Vt_im;
- Pgen = Vt_re*add7.y + Vt_im*add6.y;
- Qgen = Vt_im*add7.y - Vt_re*add6.y;
- annotation (
- Diagram(coordinateSystem(
- extent={{-148.5,-105.0},{148.5,105.0}},
- preserveAspectRatio=true,
- initialScale=0.1,
- grid={10,10}), graphics),
- Icon(coordinateSystem(
- extent={{-100.0,-100.0},{100.0,100.0}},
- preserveAspectRatio=true,
- initialScale=0.1,
- grid={10,10}), graphics={Rectangle(
- visible=true,
- fillColor={255,255,255},
- fillPattern=FillPattern.Solid,
- extent={{-100.0,-100.0},{100.0,100.0}}),Text(
- visible=true,
- origin={0.0,-3.1866},
- fillPattern=FillPattern.Solid,
- extent={{-64.7389,-33.1866},{64.7389,33.1866}},
- textString="Generator",
- fontName="Arial")}),
- Documentation);
- end Generator;
- annotation (Diagram(coordinateSystem(
- extent={{-148.5,-105.0},{148.5,105.0}},
- preserveAspectRatio=true,
- initialScale=0.1,
- grid={5,5})), Documentation);
- end Generator;
-
- model GE_WT
- import Modelica.Constants.pi;
- import Modelica.Constants.eps;
- parameter Real _V0=1.03 "Terminal Voltage from Power Flow";
- parameter Real _Ang0=0.421202138172605 "Terminal Angle from Power Flow";
- parameter Real _P0=1.62 "Active Power from Power Flow";
- parameter Real _Q0=-0.370492231185345 "Reactive Power from Power Flow";
- parameter Real GEN_base=180 "Base Power from the Electrical Generator";
- parameter Real WT_base=162 "Base Power from the Turbine";
- parameter Real SYS_base=100 "Base Power from the power system";
- parameter Real freq=60 "Steady state Frequency of the power system";
- parameter Real poles=3 "Number of pole pairs";
- parameter Real Tp=0.3 "Time Constant Pitch command";
- parameter Real Kpp=150.0 "Pitch Control gain";
- parameter Real Kip=25.0 "Gain of integrator of Pitch Control";
- parameter Real Kpc=3.0 "Pitch Compensation gain";
- parameter Real Kic=30.0 "Gain of integrator of Pitch Compensation";
- parameter Real pimax=27.0 "Maximum pitch angle";
- parameter Real pimin=0.0 "minimum pitch angle";
- parameter Real pirat=10.0 "maximum variation rate of pitch angle";
- parameter Real pwmax=1.12 "Maximal power taken from the wind";
- parameter Real pwmin=0.1 "Minimal power taken from the wind";
- parameter Real pwrat=0.45
- "maximum variation rate of power taken from the wind";
- parameter Real Kptrq=3.0 "Gain Torque Controller";
- parameter Real Kitrq=0.6 "Gain of integrator of Torque Controller";
- parameter Real Tpc=0.05 "Time Constant Torque controller";
- parameter Real KQi=0.1
- "Gain constant of first PI in DFIG electrical control model";
- parameter Real KVi=40
- "Gain constant of second PI in DFIG electrical control model";
- parameter Real xiqmax=0.4
- "Up saturation of second PI in DFIG electrical control model";
- parameter Real xiqmin=-0.5
- "Down saturation of second PI in DFIG electrical control model";
- parameter Real Kpllp=30;
- parameter Real Xpp=0.8;
- parameter Real qmax=0.312;
- parameter Real qmin=-0.436;
- parameter Real nmass=2 "Mono-mass or Two-mass model";
- parameter Real Hg=0.62 "Inertia 2";
- parameter Real H=4.33 "Inertia";
- parameter Real Ktg=1.11 "Gain for 2 mass model";
- parameter Real Dtg=1.5 "Damping";
- parameter Real Kl=56.6;
- Real P "Active Power produced in SYS_base";
- Real Q "Reactive Power produced in SYS_base";
- OpenIPSL.Interfaces.PwPin pwPin1 annotation (Placement(
- visible=true,
- transformation(
- origin={-77.9122,32.2584},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0),
- iconTransformation(
- origin={-110.0,0.0},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- Modelica.Blocks.Interfaces.RealInput Wind_Speed annotation (Placement(
- visible=true,
- transformation(
- origin={-80.0,60.0},
- extent={{-20.0,-20.0},{20.0,20.0}},
- rotation=0),
- iconTransformation(
- origin={0.0,77.9903},
- extent={{-20.0,-20.0},{20.0,20.0}},
- rotation=-90)));
- Turbine.Turbine_Model turbine_Model1(
- eps=Modelica.Constants.eps,
- GEN_base=GEN_base,
- Kic=Kic,
- Kip=Kip,
- Kitrq=Kitrq,
- Kpc=Kpc,
- Kpp=Kpp,
- Kptrq=Kptrq,
- pimax=pimax,
- pimin=pimin,
- pirat=pirat,
- pwmax=pwmax,
- pwmin=pwmin,
- pwrat=pwrat,
- Tp=Tp,
- Tpc=Tpc,
- wt_x0_0=wt_x0_0,
- wt_x1_0=wt_x1_0,
- wt_x2_0=wt_x2_0,
- wt_x3_0=wt_x3_0,
- wt_x4_0=wt_x4_0,
- wt_x5_0=wt_x5_0,
- wt_x6_0=wt_x6_0,
- wt_x7_0=wt_x7_0,
- wt_x8_0=wt_x8_0,
- wt_x9_0=wt_x9_0,
- WT_base=WT_base,
- Dtg=Dtg,
- H=H,
- Hg=Hg,
- KI=Kl,
- Ktg=Ktg,
- wndtge_kp=wndtge_kp,
- wbase=wbase,
- wndtge_ang0=wndtge_ang0,
- wndtge_spd0=wndtge_spd0) annotation (Placement(visible=true, transformation(
- origin={-46.6105,53.4541},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- Electrical_Control.Electrical_Control electrical_Control1(
- ex_x0_0=ex_x0_0,
- ex_x1_0=ex_x1_0,
- KQi=KQi,
- qmax=qmax,
- qmin=qmin,
- KVi=KVi,
- xiqmax=xiqmax,
- xiqmin=xiqmin) annotation (Placement(visible=true, transformation(
- origin={-10.0,57.46},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- Generator.Generator generator1(
- freq=freq,
- ge_x0_0=ge_x0_0,
- ge_x1_0=ge_x1_0,
- ge_x2_0=ge_x2_0,
- GEN_base=GEN_base,
- Kpllp=Kpllp,
- Lpp=Lpp,
- SYS_base=SYS_base) annotation (Placement(visible=true, transformation(
- origin={45.0,60.0},
- extent={{-10.0,-10.0},{10.0,10.0}},
- rotation=0)));
- protected
- function cp_init
- input Real lambda;
- input Real theta;
- output Real cp;
- protected
- Real[5, 1] lambda_vec;
- Real[5, 1] theta_vec;
- Real[5, 1] prod;
- parameter Real[5, 5] coeff=[-0.41909, 0.21808, -0.012406, -0.00013365,
- 0.000011524; -0.067606, 0.060405, -0.013934, 0.0010683, -0.000023895;
- 0.015727, -0.010996, 0.0021495, -0.00014855, 0.0000027937; -0.00086018,
- 0.00057051, -0.00010479, 0.0000059924, -0.000000089194; 0.000014788, -0.0000094839,
- 0.0000016167, -0.000000071535, 0.00000000049686];
- algorithm
- lambda_vec := [1; lambda; lambda^2; lambda^3; lambda^4];
- theta_vec := [1; theta; theta^2; theta^3; theta^4];
- prod := coeff*lambda_vec;
- cp := prod[1, 1]*theta_vec[1, 1] + prod[2, 1]*theta_vec[2, 1] + prod[3, 1]*
- theta_vec[3, 1] + prod[4, 1]*theta_vec[4, 1] + prod[5, 1]*theta_vec[5, 1];
- end cp_init;
-
- function get_Vw
- input Real pimin;
- input Real wndtge_kl;
- input Real wndtge_kp;
- input Real genbc_k_speed;
- input Real pmech;
- output Real lambdaOUT;
- protected
- Real cp;
- Real Vw;
- Real last_err;
- Real new_err;
- Real pwind;
- Real lambda_sav;
- Real lambda;
- Boolean stop;
- algorithm
- last_err := 99999.0;
- lambda := 15 + 0.001;
- stop := false;
- while lambda >= 2.001 and not stop loop
- lambda := lambda - 0.001;
- cp := cp_init(lambda, pimin);
- Vw := wndtge_kl*genbc_k_speed/lambda;
- pwind := wndtge_kp*cp*Vw^3;
- new_err := pwind - pmech;
- if abs(new_err) <= 0.01 then
- lambdaOUT := lambda;
- stop := true;
- else
- if abs(new_err - last_err) < abs(new_err + last_err) or last_err >
- 90000.0 then
- last_err := new_err;
- lambda_sav := lambda;
- else
- lambdaOUT := lambda_sav - last_err*(lambda - lambda_sav)/(new_err -
- last_err);
- cp := cp_init(lambdaOUT, 0.0);
- Vw := wndtge_kl*genbc_k_speed/lambdaOUT;
- stop := true;
- end if;
- end if;
- end while;
- end get_Vw;
-
- function get_theta
- input Real lambda;
- input Real Vw;
- input Real wndtge_kl;
- input Real wndtge_kp;
- input Real genbc_k_speed;
- input Real pmech;
- input Real pimin;
- input Real pimax;
- output Real thetaOUT;
- protected
- Real Vw1;
- Real cp;
- Real last_err;
- Real new_err;
- Real pwind;
- Real theta_sav;
- Boolean stop;
- Real theta;
- algorithm
- last_err := 99999.0;
- theta := pimin - 0.005;
- stop := false;
- Vw1 := Vw;
- while theta <= pimax - 0.005 and not stop loop
- theta := theta + 0.005;
- cp := cp_init(lambda, theta);
- pwind := wndtge_kp*cp*Vw1^3;
- new_err := pwind - pmech;
- if abs(new_err) <= 0.01 then
- thetaOUT := theta;
- stop := true;
- else
- if abs(new_err - last_err) < abs(new_err + last_err) or last_err >
- 90000 then
- last_err := new_err;
- theta_sav := theta;
- else
- thetaOUT := theta_sav - last_err*(theta - theta_sav)/(new_err -
- last_err);
- cp := cp_init(lambda, thetaOUT);
- Vw1 := wndtge_kl*genbc_k_speed/lambda;
- stop := true;
- end if;
- end if;
- end while;
- end get_theta;
-
- Modelica.Blocks.Sources.Constant const(k=qgen) annotation (Placement(visible=
- true, transformation(
- origin={-44.2929,70.7071},
- extent={{-4.2929,-4.2929},{4.2929,4.2929}},
- rotation=0)));
- parameter Real Lpp=Xpp;
- parameter Real wbase=2*Modelica.Constants.pi*freq/poles;
- parameter Real pelec=_P0/WT_base*SYS_base;
- parameter Real pmech=pelec;
- parameter Real wt_x0_0(fixed=false);
- parameter Real wt_x1_0(fixed=false);
- parameter Real wt_x2_0(fixed=false);
- parameter Real wt_x3_0(fixed=false);
- parameter Real wt_x4_0(fixed=false);
- parameter Real wt_x5_0(fixed=false);
- parameter Real wt_x6_0(fixed=false);
- parameter Real wt_x7_0(fixed=false);
- parameter Real wt_x8_0(fixed=false);
- parameter Real wt_x9_0(fixed=false);
- parameter Real ex_x0_0(fixed=false);
- parameter Real ex_x1_0(fixed=false);
- parameter Real ge_x0_0(fixed=false);
- parameter Real ge_x1_0(fixed=false);
- parameter Real ge_x2_0(fixed=false);
- parameter Real qgen(fixed=false);
- parameter Real wndtge_ang0(fixed=false);
- parameter Real wndtge_spd0(fixed=false);
- parameter Real wndtge_spdwmx(fixed=false);
- parameter Real wndtge_spdwmn(fixed=false);
- parameter Real wndtge_kp(fixed=false) "Power coefficient";
- parameter Real cp(fixed=false);
- parameter Real theta(fixed=false);
- parameter Real Vw(fixed=false);
- parameter Real genbc_k_speed(fixed=false);
- parameter Real wndtge_spdw1(fixed=false);
- parameter Real wndtge_wn=0;
- parameter Real wndtge_m1=0;
- parameter Real wndtge_q11=0;
- parameter Real wndtge_q21=0;
- parameter Real lambda(fixed=false);
- parameter Real masflg=1;
- initial algorithm
- wndtge_spdwmx := 25.0 "Max. wind speed";
- wndtge_spdwmn := 3.0 "Min. wind speed";
- wndtge_spdw1 := 14.0;
- genbc_k_speed := 1.2;
- wndtge_kp := 0.00159;
- qgen := _Q0*SYS_base/GEN_base;
- ge_x0_0 := _V0 + _Q0*SYS_base/GEN_base*Lpp/_V0;
- ge_x1_0 := _P0*SYS_base/GEN_base/_V0;
- ge_x2_0 := _Ang0;
- ex_x0_0 := _V0;
- ex_x1_0 := ge_x0_0;
- wndtge_spd0 := if pmech < 0.75 then ((-0.67*pmech) + 1.42)*pmech + 0.51 else
- genbc_k_speed;
- theta := pimin;
- lambda := get_Vw(
- pimin,
- Kl,
- wndtge_kp,
- genbc_k_speed,
- pmech);
- lambda := lambda + 0.01;
- cp := cp_init(lambda, 0.0);
- Vw := Kl*genbc_k_speed/lambda;
- if wndtge_spdw1 > wndtge_spdwmx then
- wndtge_spdw1 := wndtge_spdwmx;
- end if;
- if wndtge_spdw1 < wndtge_spdwmn then
- wndtge_spdw1 := wndtge_spdwmn;
- end if;
- if pmech >= 1.0 and wndtge_spdw1 > Vw then
- Vw := wndtge_spdw1;
- lambda := Kl*genbc_k_speed/Vw;
- theta := get_theta(
- lambda,
- Vw,
- Kl,
- wndtge_kp,
- genbc_k_speed,
- pmech,
- pimin,
- pimax);
- cp := cp_init(lambda, theta);
- Vw := Kl*genbc_k_speed/lambda;
- end if;
- wndtge_kp := pmech/(cp*Vw^3);
- wt_x0_0 := theta;
- wt_x1_0 := if Kip == 0 then 0.0 else theta - Kpc*(pelec - 1.0);
- wt_x4_0 := pelec;
- wt_x2_0 := if Kitrq == 0 then 0.0 else wt_x4_0/genbc_k_speed;
- wt_x3_0 := 0.0;
- wt_x5_0 := genbc_k_speed;
- wt_x6_0 := 0.0;
- wt_x7_0 := if masflg == 3 then pmech/genbc_k_speed/(wndtge_wn*wndtge_wn*
- wndtge_m1)*(wndtge_q11 - wndtge_q21) else 0.0;
- wt_x8_0 := 0.0;
- wt_x9_0 := 0.0;
- wndtge_ang0 := -pmech/(Ktg*genbc_k_speed);
- equation
- connect(pwPin1, generator1.p) annotation (Line(
- visible=true,
- origin={4.0293,37.8389},
- points={{-81.9415,-5.5805},{40.9707,-5.5805},{40.9707,11.1611}}));
- connect(generator1.Pgen, turbine_Model1.Pelec) annotation (Line(
- visible=true,
- origin={-0.1428,48.5266},
- points={{53.1428,9.4734},{60.1428,9.4734},{60.1428,-8.085},{-59.4803,-8.085},
- {-59.4803,-1.38836},{-54.4677,-1.38836}},
- color={0,0,127}));
- connect(Wind_Speed, turbine_Model1.Wind_Speed) annotation (Line(
- visible=true,
- origin={-62.4641,60.0491},
- points={{-17.5359,-0.0491},{4.8411,-0.0491},{4.8411,0.04919},{7.8536,
- 0.04919}},
- color={0,0,127}));
- connect(turbine_Model1.Pord, electrical_Control1.Pord) annotation (Line(
- visible=true,
- origin={-25.6589,60.1024},
- points={{-12.9516,-0.01612},{2.6464,-0.01612},{2.6464,0.0162},{7.6589,
- 0.0162}},
- color={0,0,127}));
- connect(const.y, electrical_Control1.Qord) annotation (Line(
- visible=true,
- origin={-25.1902,68.958},
- points={{-14.3805,1.7491},{7.1902,1.7491},{7.1902,-3.498}},
- color={0,0,127}));
- P = generator1.Pgen*GEN_base/SYS_base;
- Q = generator1.Qgen*GEN_base/SYS_base;
- connect(electrical_Control1.Ipcmd, generator1.Ipcmd) annotation (Line(
- visible=true,
- origin={24.7437,65.082},
- points={{-26.7437,-0.08283},{7.2437,-0.08283},{7.2437,0.0828},{12.2563,
- 0.0828}},
- color={0,0,127}));
- connect(electrical_Control1.Efd, generator1.Efd) annotation (Line(
- visible=true,
- origin={24.7437,56.5275},
- points={{-26.7437,2.18767},{7.2437,2.18767},{7.2437,-2.18767},{12.2563,-2.18767}},
- color={0,0,127}));
-
- connect(generator1.Qgen, electrical_Control1.Qgen) annotation (Line(
- visible=true,
- origin={26.605,49.271},
- points={{26.395,4.729},{31.4075,4.729},{31.4075,-4.8235},{-44.605,-4.8235},
- {-44.605,0.189}},
- color={0,0,127}));
- connect(generator1.Vt, electrical_Control1.Vterm) annotation (Line(
- visible=true,
- origin={17.5,65.2993},
- points={{35.5,2.12607},{40.5125,2.12607},{40.5125,7.7132},{-40.5125,
- 7.7132},{-40.5125,-9.8393},{-35.5,-9.8393}},
- color={0,0,127}));
- annotation (
- Icon(coordinateSystem(
- extent={{-100.0,-100.0},{100.0,100.0}},
- preserveAspectRatio=true,
- initialScale=0.1,
- grid={10,10}), graphics={Ellipse(
- visible=true,
- fillColor={255,255,255},
- extent={{-100.0,-100.0},{100.0,100.0}}),Text(
- visible=true,
- origin={0.0,16.6286},
- fillPattern=FillPattern.Solid,
- extent={{-44.8085,-23.3714},{44.8085,23.3714}},
- textString="DFIG",
- fontName="Arial"),Text(
- visible=true,
- origin={0.0,-17.9447},
- fillPattern=FillPattern.Solid,
- extent={{-25.6048,-15.9106},{25.6048,15.9106}},
- textString="GE",
- fontName="Arial")}),
- Diagram(coordinateSystem(
- extent={{-148.5,-105.0},{148.5,105.0}},
- preserveAspectRatio=true,
- initialScale=0.1,
- grid={5,5})),
- Documentation(info="
-
-"));
- end GE_WT;
- annotation (Diagram(coordinateSystem(
- extent={{-148.5,-105.0},{148.5,105.0}},
- preserveAspectRatio=true,
- initialScale=0.1,
- grid={5,5})), Documentation);
- end Type_3;
- annotation (Diagram(coordinateSystem(
- extent={{-148.5,-105.0},{148.5,105.0}},
- preserveAspectRatio=true,
- initialScale=0.1,
- grid={5,5})), Documentation);
- end GE;
- annotation (Diagram(coordinateSystem(
- extent={{-148.5,-105.0},{148.5,105.0}},
- preserveAspectRatio=true,
- initialScale=0.1,
- grid={5,5})), Documentation);
- end Wind;
-
- package Events
- model PwFault "Transitory short-circuit on a node. Shunt impedance connected only during a specified interval of time.
- Developed by AIA. 2014/12/16"
- OpenIPSL.Interfaces.PwPin p annotation (Placement(transformation(
- extent={{-80,-10},{-60,10}}), iconTransformation(extent={{-80,
- -10},{-60,10}})));
- parameter Real R "Resistance (pu)";
- parameter Real X "Reactance (pu)";
- parameter Real t1 "Start time of the fault (s)";
- parameter Real t2 "End time of the fault (s)";
- import Modelica.Constants.eps;
- protected
- parameter Boolean ground=abs(R) < eps and abs(X) < eps;
- equation
- if time < t1 then
- p.ii = 0;
- p.ir = 0;
- elseif time < t2 and ground then
- p.vr = 1E-10;
- // This is to avoid numerical problems
- p.vi = 0;
- elseif time < t2 then
- p.ii = (R*p.vi - X*p.vr)/(X*X + R*R);
- p.ir = (R*p.vr + X*p.vi)/(R*R + X*X);
- else
- p.ii = 0;
- p.ir = 0;
- end if;
- annotation (
- Icon(coordinateSystem(
- preserveAspectRatio=true,
- extent={{-60,-60},{60,60}},
- initialScale=0.1), graphics={Rectangle(extent={{-60,60},{60,-60}},
- lineColor={0,0,255}),Rectangle(
- extent={{-28,26},{12,6}},
- lineColor={0,0,0},
- fillColor={95,95,95},
- fillPattern=FillPattern.Solid),Line(
- points={{12,16},{26,16},{26,-24}},
- color={0,0,255},
- smooth=Smooth.None),Line(
- points={{14,-24},{38,-24}},
- color={0,0,255},
- smooth=Smooth.None),Line(
- points={{16,-28},{36,-28}},
- color={0,0,255},
- smooth=Smooth.None),Line(
- points={{20,-32},{34,-32}},
- color={0,0,255},
- smooth=Smooth.None),Line(
- points={{22,-36},{30,-36}},
- color={0,0,255},
- smooth=Smooth.None),Rectangle(
- extent={{-38,18},{-28,14}},
- lineColor={0,0,0},
- fillColor={0,0,0},
- fillPattern=FillPattern.Solid),Line(
- points={{-12,34},{-4,16},{-18,16},{-6,-6}},
- color={255,0,0},
- smooth=Smooth.None,
- thickness=0.5),Line(
- points={{-12,-4},{-6,-6},{-6,0}},
- color={255,0,0},
- smooth=Smooth.None),Text(
- extent={{-110,110},{110,70}},
- lineColor={0,0,255},
- textString="%name")}),
- Diagram(coordinateSystem(
- extent={{-60,-60},{60,60}},
- preserveAspectRatio=true,
- initialScale=0.1), graphics),
- Documentation);
- end PwFault;
-
- model PwFaultPQ
- OpenIPSL.Interfaces.PwPin p annotation (Placement(transformation(
- extent={{-40,-10},{-20,10}}), iconTransformation(extent={{-80,
- -10},{-60,10}})));
- parameter Real R "Resistance (pu)";
- parameter Real X "Reactance (pu)";
- parameter Real t1 "Start time of the fault (s)";
- parameter Real t2 "End time of the fault (s)";
- Real P "Active power supplied to the fault (pu)";
- Real Q "Reactive power supplied to the fault (pu)";
- equation
- p.ir = if time < t1 then 0 else if time < t2 then 1/X*(p.vi - R*p.ii) else 0;
- p.ii = if time < t1 then 0 else if time < t2 then (R*p.vi - X*p.vr)/(X*X + R*
- R) else 0;
- P = p.vr*p.ir + p.vi*p.ii;
- Q = (-p.vr*p.ii) + p.vi*p.ir;
- annotation (
- Icon(coordinateSystem(
- preserveAspectRatio=true,
- extent={{-60,-60},{60,60}},
- initialScale=0.1), graphics={Rectangle(extent={{-60,60},{60,-60}},
- lineColor={0,0,255}),Rectangle(
- extent={{-28,26},{12,6}},
- lineColor={0,0,0},
- fillColor={95,95,95},
- fillPattern=FillPattern.Solid),Line(
- points={{12,16},{26,16},{26,-24}},
- color={0,0,255},
- smooth=Smooth.None),Line(
- points={{14,-24},{38,-24}},
- color={0,0,255},
- smooth=Smooth.None),Line(
- points={{16,-28},{36,-28}},
- color={0,0,255},
- smooth=Smooth.None),Line(
- points={{20,-32},{34,-32}},
- color={0,0,255},
- smooth=Smooth.None),Line(
- points={{22,-36},{30,-36}},
- color={0,0,255},
- smooth=Smooth.None),Rectangle(
- extent={{-38,18},{-28,14}},
- lineColor={0,0,0},
- fillColor={0,0,0},
- fillPattern=FillPattern.Solid),Line(
- points={{-12,34},{-4,16},{-18,16},{-6,-6}},
- color={255,0,0},
- smooth=Smooth.None,
- thickness=0.5),Line(
- points={{-12,-4},{-6,-6},{-6,0}},
- color={255,0,0},
- smooth=Smooth.None)}),
- Diagram(coordinateSystem(
- extent={{-60,-60},{60,60}},
- preserveAspectRatio=true,
- initialScale=0.1), graphics),
- Documentation);
- end PwFaultPQ;
-
- model Breaker "Circuit breaker with time or signal control"
- parameter Boolean enableTrigger=false "=true, if external tigger signal is used"
- annotation (Evaluate=true, choices(checkBox=true));
- parameter Modelica.SIunits.Time t_o=Modelica.Constants.inf "Opening time"
- annotation (Dialog(enable=not enableTrigger));
- parameter Boolean rc_enabled=false "Enable reclosure" annotation (
- Evaluate=true,
- choices(checkBox=true),
- Dialog(enable=not enableTrigger));
- parameter Modelica.SIunits.Time t_rc=Modelica.Constants.inf "Reclosing time"
- annotation (Dialog(enable=not enableTrigger and rc_enabled));
- Interfaces.PwPin s "Sending pin"
- annotation (Placement(transformation(extent={{-110,-10},{-90,10}}),iconTransformation(extent={{-110,-10},{-90,10}})));
- Interfaces.PwPin r "Receiving pin"
- annotation (Placement(transformation(extent={{90,-10},{110,10}}),iconTransformation(extent={{90,-10},{110,10}})));
- Modelica.Blocks.Interfaces.BooleanInput Trigger if enableTrigger annotation (Placement(transformation(
- extent={{-20,-20},{20,20}},
- rotation=270,
- origin={0,120})));
- Complex vs(re=s.vr, im=s.vi);
- Complex vr(re=r.vr, im=r.vi);
- Complex is(re=s.ir, im=s.ii);
- Complex ir(re=r.ir, im=r.ii);
-
- protected
- Modelica.Blocks.Interfaces.BooleanOutput Open "Help variable to indicate open circuit breaker" annotation (Placement(transformation(extent={{-4,-10},{16,10}})));
- equation
- if not enableTrigger then
- if not rc_enabled and time >= t_o then
- Open = true;
- elseif rc_enabled and time >= t_o and time < t_rc then
- Open = true;
- else
- Open = false;
- end if;
- end if;
-
- if Open then
- is = Complex(0);
- ir = Complex(0);
- else
- vs = vr;
- is = -ir;
- end if;
-
- connect(Trigger, Open) annotation (Line(points={{0,120},{0,60},{0,0},{6,0}}, color={255,0,255}));
- annotation (
- Icon(graphics={Rectangle(
- extent={{-40,40},{40,-40}},
- lineThickness=0.5,
- fillColor={255,255,255},
- fillPattern=FillPattern.Solid,
- pattern=LinePattern.None), Ellipse(
- extent={{-100,100},{100,-100}},
- lineColor={28,108,200},
- fillColor={255,255,255},
- fillPattern=FillPattern.Solid),
- Line(points={{-90,2},{-44,2}}, color={0,0,255}),
- Ellipse(extent={{-44,6},{-36,-2}}, lineColor={0,0,255}),
- Line(points={{-37,4},{40,42}}, color={0,0,255}),
- Line(points={{40,2},{90,2}}, color={0,0,255}),
- Line(points={{40,22},{40,2}}, color={0,0,255}),
- Text(
- extent={{-150,90},{150,50}},
- textString="%name",
- lineColor={0,0,255})}),
- Documentation(info="
-This is an opening circuit breaker which can either be parametrised with an opening and closing time or controlled via an external trigger. If the external trigger is active (i.e., Trigger=true) then the circuit breaker is open.
-"));
- end Breaker;
- annotation (Documentation);
- end Events;
-
- package FACTS
- package PSAT
- model STATCOM "Static Synchronous Compensator model with equation"
- OpenIPSL.Interfaces.PwPin p(vr(start=vr0), vi(start=vi0))
- annotation (Placement(transformation(extent={{100,-10},{120,10}}),
- iconTransformation(extent={{100,-10},{120,10}})));
- constant Real pi=Modelica.Constants.pi;
- parameter Real Sb=100 "System base power (MVA)"
- annotation (Dialog(group="Power flow data"));
- parameter Real Vbus=400000 "Bus nominal voltage (V)"
- annotation (Dialog(group="Power flow data"));
- parameter Real Sn=100 "Power rating (MVA)"
- annotation (Dialog(group="Power flow data"));
- parameter Real Vn=400000 "Voltage rating (V)"
- annotation (Dialog(group="Power flow data"));
- parameter Real fn=50 "Frequency rating (Hz)"
- annotation (Dialog(group="Power flow data"));
- parameter Real V_0=1 "Voltage magnitude (pu)"
- annotation (Dialog(group="Power flow data"));
- parameter Real angle_0=-0.000213067852480 "Voltage angle (deg.)"
- annotation (Dialog(group="Power flow data"));
- parameter Real Qg=0.139557595258338 "Reactive power injection(p.u.)"
- annotation (Dialog(group="Power flow data"));
- //parameter Real v_ref=1.002791151905167 "Reference voltage of the STATCOM regulator (pu)" annotation(Dialog(group="Power flow data"));
- parameter Real Kr=50 "Regulator gain (p.u./p.u.)";
- parameter Real Tr=0.01 "Regulator time constant (s)";
- parameter Real i_Max=0.7 "Maximum current (pu)";
- parameter Real i_Min=-0.1 "Minimum current (pu)";
- parameter Real v_POD=0 "Power oscillation damper signal";
- Real i_SH "STATCOM current (pu)";
- Real v(start=V_0) "Bus voltage magnitude (pu)";
- Real Q(start=Qg) "Injected reactive power (pu)";
- protected
- parameter Real Iold=Sn/Vn;
- parameter Real Inew=Sb/Vbus;
- parameter Real i_max=i_Max*Iold/Inew;
- parameter Real i_min=i_Min*Iold/Inew;
- parameter Real vr0=V_0*cos(angle_0/180*pi) "Initialitation";
- parameter Real vi0=V_0*sin(angle_0/180*pi) "Initialitation";
- parameter Real uo=v_ref + v_POD - V_0 "Initialization";
- parameter Real io=Qg/V_0 "Initialization";
- parameter Real v_ref=io/Kr + V_0 - v_POD "Initialization";
- //parameter Real vmin=v_ref + v_POD - i_max/Kr;
- //parameter Real vmax=v_ref + v_POD - i_min/Kr;
- //parameter Real umax=i_max/Kr;
- //parameter Real umin=i_min/Kr;
- Real u(start=uo);
- NonElectrical.Continuous.SimpleLagLim simpleLagLim(
- K=Kr,
- T=Tr,
- y_start=io,
- outMax=i_Max,
- outMin=i_Min)
- annotation (Placement(transformation(extent={{-10,-8},{10,12}})));
- equation
- v = sqrt(p.vr^2 + p.vi^2);
- 0 = p.vr*p.ir + p.vi*p.ii;
- -Q = p.vi*p.ir - p.vr*p.ii;
- u = v_ref + v_POD - v;
- Q = i_SH*v;
- simpleLagLim.u = u;
- simpleLagLim.y = i_SH;
- annotation (
- Icon(coordinateSystem(preserveAspectRatio=true, extent={{-100,-100},{100,
- 100}}), graphics={Rectangle(extent={{-100,100},{100,-100}},
- lineColor={0,0,255}),Ellipse(
- extent={{-2,22},{48,-22}},
- lineColor={0,0,0},
- fillColor={215,215,215},
- fillPattern=FillPattern.Solid),Ellipse(
- extent={{34,24},{84,-20}},
- lineColor={0,0,0},
- fillPattern=FillPattern.Solid,
- fillColor={215,215,215}),Line(
- points={{-38,0},{-2,0},{-2,0}},
- color={0,0,255},
- smooth=Smooth.None),Line(
- points={{84,2},{100,2},{100,2}},
- color={0,0,255},
- smooth=Smooth.None),Line(
- points={{-90,6},{-82,6},{-76,6}},
- color={255,0,0},
- smooth=Smooth.None,
- thickness=0.5),Line(
- points={{-90,-6},{-82,-6},{-76,-6}},
- color={255,0,0},
- smooth=Smooth.None,
- thickness=0.5),Line(
- points={{-38,0},{-46,0},{-46,0}},
- color={0,0,255},
- smooth=Smooth.None),Line(
- points={{-84,6},{-84,26},{-46,26},{-46,-24},{-82,-24},{-84,-24},{-84,
- -6},{-84,-6}},
- color={255,0,0},
- thickness=0.5,
- smooth=Smooth.None),Text(
- extent={{-34,-38},{24,-68}},
- lineColor={0,0,0},
- lineThickness=0.5,
- fillColor={255,0,0},
- fillPattern=FillPattern.Solid,
- textString="%Name")}),
- Diagram(coordinateSystem(preserveAspectRatio=true, extent={{-100,-100},{100,
- 100}}), graphics),
- Documentation(info="
-
-Reference |
-PSAT Manual 2.1.8 |
-
-
-Last update |
-15/07/2015 |
-
-
-Author |
-MAA Murad, SmarTS Lab, KTH Royal Institute of Technology |
-
-
-Contact |
-luigiv@kth.se |
-
-
-"));
- end STATCOM;
-
- model TCSCAlpha
- OpenIPSL.Interfaces.PwPin p annotation (Placement(transformation(
- extent={{-119,-10},{-99,10}})));
- OpenIPSL.Interfaces.PwPin n annotation (Placement(transformation(
- extent={{100,-10},{120,10}})));
- constant Real pi=Modelica.Constants.pi;
- parameter Real SystemBase=100 "System base power (MVA)"
- annotation (Dialog(group="Power flow data"));
- parameter Real Vbus=400000 "Bus nominal voltage (V)"
- annotation (Dialog(group="Power flow data"));
- parameter Real Sn=100 "Power rating (MVA)"
- annotation (Dialog(group="Power flow data"));
- parameter Real Vn=400000 "Voltage rating (V)"
- annotation (Dialog(group="Power flow data"));
- parameter Real f=50 "Frequency rating (Hz)"
- annotation (Dialog(group="Power flow data"));
- parameter Real alpha_TCSCO=0.826168365308219 "Value of state variable x1"
- annotation (Dialog(group="Power flow data"));
- parameter Real x20=0.826168365308219 "Value of the state varible x2"
- annotation (Dialog(group="Power flow data"));
- parameter Real x0i=0.826168365308219 "Value of x0"
- annotation (Dialog(group="Power flow data"));
- parameter Real pref=0.080101913348342 "Reference power (pu)"
- annotation (Dialog(group="Power flow data"));
- parameter Real Cp=0.10 "Percentage of series compensation (%)";
- parameter Real Tr=0.5 "Regulator time constant (s)";
- parameter Real alpha_max=0.85 " Maximum firing angle (rad)";
- parameter Real alpha_min=0.72 "Minimum firing angle (rad)";
- parameter Real Kp=5 "Proportional gain of PI controller (p.u./p.u.)";
- parameter Real Ki=1 "Integral gain of PI controller (p.u./p.u.)";
- parameter Real Kr=10 "Gain of stabilizing signal (p.u./p.u.)";
- parameter Real Vs_POD=0 "Power oscillation damper signal";
- parameter Real x_L=0.2 "Reactance (inductive) (pu)";
- parameter Real x_C=0.1 "Reactance (capacitive) (pu)";
- parameter Real XL=0.1 "Line reactance (pu)";
- parameter Real G=0 "Shunt half conductance (pu)";
- parameter Real B=0 "Shunt half susceptance (pu)";
- parameter Real rL=0.01 "Line resistance, (pu)";
- Real vk "Bus voltage of bus k (pu)";
- Real vm "Bus voltage of bus m (pu)";
- Real pkm(start=pref) "Active power flow from bus k to m (pu)";
- Real b "TCSC series susceptance (pu)";
- Real alpha_TCSC "TCSC series reactance (pu)";
- protected
- Real x0(start=x0i);
- Real x2(start=x20);
- protected
- parameter Real Vb2new=Vbus*Vbus;
- parameter Real Vb2old=Vn*Vn;
- parameter Real xL=x_L*(Vb2old*SystemBase)/(Vb2new*Sn)
- "Reactance(inductive),p.u";
- parameter Real xC=x_C*(Vb2old*SystemBase)/(Vb2new*Sn)
- "Reactance(capacitive),p.u";
- parameter Real X=XL*(Vb2old*SystemBase)/(Vb2new*Sn) "Line Reactance,p.u";
- parameter Real kx=sqrt(xC/xL);
- parameter Real XL2=(1 - Cp)*XL;
- parameter Real y=1/X;
- initial equation
- alpha_TCSC = alpha_TCSCO;
- equation
- vk = sqrt(p.vr^2 + p.vi^2);
- vm = sqrt(n.vr^2 + n.vi^2);
- pkm = p.vr*p.ir + p.vi*p.ii;
- x0 = -(Kp*(pkm - pref) - x2);
- if alpha_TCSC > alpha_max and der(alpha_TCSC) > 0 and der(x2) > 0 then
- der(alpha_TCSC) = 0;
- der(x2) = -Ki*(pkm - pref);
- b = pi*(kx^4 - 2*kx^2 + 1)*cos(kx*(pi - alpha_max))/(xC*(pi*kx^4*cos(kx*(pi
- - alpha_max))) - pi*cos(kx*(pi - alpha_max)) - 2*kx^4*alpha_max*cos(kx*(
- pi - alpha_max)) + 2*kx^2*alpha_max*cos(kx*(pi - alpha_max)) - kx^4*sin(2
- *alpha_max)*cos(kx*(pi - alpha_max)) + kx^2*sin(2*alpha_max)*cos(kx*(pi
- - alpha_max)) - 4*kx^3*cos(alpha_max)^2*sin(kx*(pi - alpha_max)) - 4*kx^
- 2*cos(alpha_max)*sin(alpha_max)*cos(kx*(pi - alpha_max)));
- elseif alpha_TCSC < alpha_min and der(alpha_TCSC) < 0 and der(x2) < 0 then
- der(alpha_TCSC) = 0;
- der(x2) = -Ki*(pkm - pref);
- b = pi*(kx^4 - 2*kx^2 + 1)*cos(kx*(pi - alpha_min))/(xC*(pi*kx^4*cos(kx*(pi
- - alpha_min))) - pi*cos(kx*(pi - alpha_min)) - 2*kx^4*alpha_min*cos(kx*(
- pi - alpha_min)) + 2*kx^2*alpha_min*cos(kx*(pi - alpha_min)) - kx^4*sin(2
- *alpha_min)*cos(kx*(pi - alpha_min)) + kx^2*sin(2*alpha_min)*cos(kx*(pi
- - alpha_min)) - 4*kx^3*cos(alpha_min)^2*sin(kx*(pi - alpha_min)) - 4*kx^
- 2*cos(alpha_min)*sin(alpha_min)*cos(kx*(pi - alpha_min)));
- else
- der(alpha_TCSC) = (Kr*Vs_POD - Kp*(pkm - pref) + x2 - alpha_TCSC)/Tr;
- der(x2) = -Ki*(pkm - pref);
- b = pi*(kx^4 - 2*kx^2 + 1)*cos(kx*(pi - alpha_TCSC))/(xC*(pi*kx^4*cos(kx*(
- pi - alpha_TCSC))) - pi*cos(kx*(pi - alpha_TCSC)) - 2*kx^4*alpha_TCSC*cos(
- kx*(pi - alpha_TCSC)) + 2*kx^2*alpha_TCSC*cos(kx*(pi - alpha_TCSC)) - kx^
- 4*sin(2*alpha_TCSC)*cos(kx*(pi - alpha_TCSC)) + kx^2*sin(2*alpha_TCSC)*
- cos(kx*(pi - alpha_TCSC)) - 4*kx^3*cos(alpha_TCSC)^2*sin(kx*(pi -
- alpha_TCSC)) - 4*kx^2*cos(alpha_TCSC)*sin(alpha_TCSC)*cos(kx*(pi -
- alpha_TCSC)));
- end if;
- n.ii - B*n.vr - G*n.vi = (y + b)*(p.vr - n.vr);
- n.ir - G*n.vr + B*n.vi = (y + b)*(n.vi - p.vi);
- p.ii - B*p.vr - G*p.vi = (y + b)*(n.vr - p.vr);
- p.ir - G*p.vr + B*p.vi = (y + b)*(p.vi - n.vi);
- annotation (
- Diagram(coordinateSystem(preserveAspectRatio=true, extent={{-100,-100},{100,
- 100}}), graphics),
- Icon(coordinateSystem(preserveAspectRatio=true, extent={{-100,-100},{100,
- 100}}), graphics={Rectangle(
- extent={{-4,46},{-4,34}},
- lineColor={0,0,255},
- fillColor={175,175,175},
- fillPattern=FillPattern.Solid),Rectangle(
- extent={{6,46},{6,34}},
- lineColor={0,0,255},
- fillColor={175,175,175},
- fillPattern=FillPattern.Solid),Line(
- points={{-60,40},{-20,40},{-4,40}},
- color={0,0,255},
- smooth=Smooth.None),Line(
- points={{-60,40},{-60,-40},{-22,-40},{-22,-40}},
- color={0,0,255},
- smooth=Smooth.None),Polygon(
- points={{4,-16},{18,-20},{4,-24},{4,-24},{4,-16}},
- lineColor={0,0,255},
- smooth=Smooth.None,
- fillColor={175,175,175},
- fillPattern=FillPattern.Solid),Polygon(
- points={{-7,4},{7,0},{-7,-4},{-7,-4},{-7,4}},
- lineColor={0,0,255},
- smooth=Smooth.None,
- fillColor={175,175,175},
- fillPattern=FillPattern.Solid,
- origin={9,-58},
- rotation=180),Line(
- points={{18,-16},{18,-24}},
- color={0,0,255},
- smooth=Smooth.None),Line(
- points={{2,-54},{2,-62}},
- color={0,0,255},
- smooth=Smooth.None),Line(
- points={{-22,-20},{-22,-58},{-22,-56}},
- color={0,0,255},
- smooth=Smooth.None),Line(
- points={{-22,-58},{2,-58},{2,-58}},
- color={0,0,255},
- smooth=Smooth.None),Line(
- points={{-22,-20},{4,-20},{4,-20}},
- color={0,0,255},
- smooth=Smooth.None),Line(
- points={{18,-20},{40,-20},{40,-58},{16,-58},{16,-58}},
- color={0,0,255},
- smooth=Smooth.None),Line(
- points={{6,40},{60,40},{60,-40},{40,-40}},
- color={0,0,255},
- smooth=Smooth.None),Line(
- points={{-100,0},{-62,0},{-60,0},{-60,0}},
- color={0,0,255},
- smooth=Smooth.None),Line(
- points={{60,0},{100,0},{100,0}},
- color={0,0,255},
- smooth=Smooth.None),Text(
- extent={{-18,68},{16,60}},
- lineColor={0,0,255},
- fillColor={175,175,175},
- fillPattern=FillPattern.Solid,
- textString="%TCSC_Alpha%")}),
- Documentation(info="
-
-Reference |
-PSAT Manual 2.1.8 |
-
-
-Last update |
-15/07/2015 |
-
-
-Author |
-MAA Murad, SmarTS Lab, KTH Royal Institute of Technology |
-
-
-Contact |
-luigiv@kth.se |
-
-
-"));
- end TCSCAlpha;
-
- model TCSCReactance
- OpenIPSL.Interfaces.PwPin p annotation (Placement(transformation(
- extent={{-119,-8},{-99,12}})));
- OpenIPSL.Interfaces.PwPin n annotation (Placement(transformation(
- extent={{100,-10},{120,10}})));
- constant Real pi=Modelica.Constants.pi;
- parameter Real Sb=100 "System base power (MVA)"
- annotation (Dialog(group="Power flow data"));
- parameter Real Vbus=400000 "Bus nominal voltage (V)"
- annotation (Dialog(group="Power flow data"));
- parameter Real Sn=100 "Power rating (MVA)"
- annotation (Dialog(group="Power flow data"));
- parameter Real Vn=400000 "Voltage rating (V)"
- annotation (Dialog(group="Power flow data"));
- parameter Real f=50 "Frequency rating (Hz)"
- annotation (Dialog(group="Power flow data"));
- parameter Real x_TCSCO=0.01 "Value of the state varialbe x1"
- annotation (Dialog(group="Power flow data"));
- parameter Real x20=0.01 "Value of the state varible x2"
- annotation (Dialog(group="Power flow data"));
- parameter Real pref=0.080101913348342 "Reference power (pu)"
- annotation (Dialog(group="Power flow data"));
- parameter Real Cp=0.10 "Percentage of series compensation (%)";
- parameter Real Tr=0.5 "Regulator time constant (s)";
- parameter Real xTCSCmax=0.05 "Maximum reactance (pu)";
- parameter Real xTCSCmin=-0.05 "Minimum reactance (pu)";
- parameter Real Kp=5 "Proportional gain of PI controller (p.u./p.u.)";
- parameter Real Ki=1 "Integral gain of PI controller (p.u./p.u.)";
- parameter Real Vs_POD=0 "Power oscillation damper signal";
- parameter Real x_L=0.1 "Reactance (inductive) (pu)";
- parameter Real Kr=10 "Gain of the stabilizing signal (p.u./p.u.)";
- parameter Real G=0 "Shunt half conductance (pu)";
- parameter Real B=0 "Shunt half susceptance (pu)";
- parameter Real rL=0.01 "Line resistance (pu)";
- Real vk "Bus voltage of bus k (pu)";
- Real vm "Bus voltage of bus m (pu)";
- Real pkm "Active power flow from bus k to m (pu)";
- Real b "TCSC series susceptance (pu)";
- Real x_TCSC "TCSC series reactance (pu)";
- protected
- Real x2;
- Real x0;
- protected
- parameter Real Vb2new=Vbus*Vbus;
- parameter Real Vb2old=Vn*Vn;
- parameter Real R=rL*(Vb2old*Sb)/(Vb2new*Sn);
- parameter Real X=x_L*(Vb2old*Sb)/(Vb2new*Sn);
- parameter Real xTCSC_max=xTCSCmax*(Vb2old*Sb)/(Vb2new*Sn);
- parameter Real xTCSC_min=xTCSCmin*(Vb2old*Sb)/(Vb2new*Sn);
- parameter Real y=1/X;
- initial equation
- x_TCSC = x_TCSCO;
- x2 = x20;
- equation
- vk = sqrt(p.vr^2 + p.vi^2);
- vm = sqrt(n.vr^2 + n.vi^2);
- if x_TCSC > xTCSC_max and der(x_TCSC) > 0 and der(x2) > 0 then
- der(x_TCSC) = 0;
- der(x2) = -Ki*(pkm - pref);
- b = -xTCSC_max/X/(X*(1 - xTCSC_max/X));
- elseif x_TCSC < xTCSC_min and der(x_TCSC) < 0 and der(x2) < 0 then
- der(x_TCSC) = 0;
- der(x2) = -Ki*(pkm - pref);
- b = -xTCSC_min/X/(X*(1 - xTCSC_min/X));
- else
- der(x_TCSC) = (Kr*Vs_POD - Kp*(pkm - pref) + x2 - x_TCSC)/Tr;
- der(x2) = -Ki*(pkm - pref);
- b = -x_TCSC/X/(X*(1 - x_TCSC/X));
- end if;
- pkm = p.vr*p.ir + p.vi*p.ii;
- x0 = -(Kp*(pkm - pref) - x2);
- n.ii - B*n.vr - G*n.vi = (y - b)*(p.vr - n.vr);
- n.ir - G*n.vr + B*n.vi = (y - b)*(n.vi - p.vi);
- p.ii - B*p.vr - G*p.vi = (y - b)*(n.vr - p.vr);
- p.ir - G*p.vr + B*p.vi = (y - b)*(p.vi - n.vi);
- annotation (
- Diagram(coordinateSystem(preserveAspectRatio=true, extent={{-100,-100},{100,
- 100}}), graphics),
- Icon(coordinateSystem(preserveAspectRatio=true, extent={{-100,-100},{100,
- 100}}), graphics={Rectangle(
- extent={{-60,38},{60,-40}},
- lineColor={0,0,255},
- fillColor={175,175,175},
- fillPattern=FillPattern.Solid),Line(
- points={{-60,0},{-100,0},{-100,0}},
- color={0,0,255},
- smooth=Smooth.None),Line(
- points={{100,0},{60,0},{60,0}},
- color={0,0,255},
- smooth=Smooth.None),Line(
- points={{-58,-60},{-42,-60},{40,58},{60,58},{60,58}},
- smooth=Smooth.None,
- color={255,0,0},
- thickness=0.5),Text(
- extent={{-24,62},{20,52}},
- lineColor={0,0,255},
- fillColor={175,175,175},
- fillPattern=FillPattern.Solid,
- textString="%TCSC_XC%")}),
- Documentation(info="
-
-Reference |
-PSAT Manual 2.1.8 |
-
-
-Last update |
-15/07/2015 |
-
-
-Author |
-MAA Murad, SmarTS Lab, KTH Royal Institute of Technology |
-
-
-Contact |
-luigiv@kth.se |
-
-
-"));
- end TCSCReactance;
- annotation (Documentation);
- end PSAT;
- annotation (Documentation);
- end FACTS;
-
- package Essentials
- partial model pfComponent
- "Partial model containing all the Data for entering power flow data"
- outer OpenIPSL.Electrical.SystemBase SysData
- "Must add this line in all models";
- parameter OpenIPSL.Types.VoltageKilo V_b=400
- "Base voltage of the bus"
- annotation (Dialog(group="Power flow data"));
- parameter Modelica.SIunits.PerUnit V_0=1 "Voltage magnitude (pu)"
- annotation (Dialog(group="Power flow data"));
- parameter Modelica.SIunits.Conversions.NonSIunits.Angle_deg angle_0=0
- "Voltage angle" annotation (Dialog(group="Power flow data"));
- parameter OpenIPSL.Types.ActivePowerMega P_0=1 "Active power"
- annotation (Dialog(group="Power flow data"));
- parameter OpenIPSL.Types.ReactivePowerMega Q_0=0 "Reactive power"
- annotation (Dialog(group="Power flow data"));
- parameter OpenIPSL.Types.ApparentPowerMega S_b=SysData.S_b
- "System base power"
- annotation (Dialog(group="Power flow data", enable=false));
- parameter Modelica.SIunits.Frequency fn=SysData.fn "System Frequeny"
- annotation (Dialog(group="Power flow data", enable=false));
- annotation (Documentation);
- end pfComponent;
- annotation (Documentation);
- end Essentials;
-
- package Sensors
- class PwVoltage "Voltage sensor"
- OpenIPSL.Interfaces.PwPin p annotation (Placement(transformation(
- extent={{-110,-10},{-90,10}})));
- Modelica.Blocks.Interfaces.RealOutput vr
- annotation (Placement(transformation(extent={{100,50},{120,70}})));
- Modelica.Blocks.Interfaces.RealOutput vi
- annotation (Placement(transformation(extent={{100,-10},{120,10}})));
- Modelica.Blocks.Interfaces.RealOutput v
- annotation (Placement(transformation(extent={{100,-70},{120,-50}})));
- equation
- p.ir = 0;
- p.ii = 0;
- vr = p.vr;
- vi = p.vi;
- v = sqrt(p.vr*p.vr + p.vi*p.vi);
- annotation (Icon(graphics={Rectangle(extent={{-100,100},{100,-100}},
- lineColor={0,0,255}),Rectangle(extent={{-80,80},{80,-80}}, lineColor=
- {0,0,255}),Rectangle(extent={{-60,60},{60,0}}, lineColor={0,0,255}),
- Text(
- extent={{-20,-20},{20,-60}},
- lineColor={0,0,255},
- textStyle={TextStyle.Bold},
- textString="V"),Line(
- points={{0,0},{40,40}},
- color={0,0,255},
- smooth=Smooth.None),Text(
- extent={{80,70},{100,50}},
- lineColor={0,0,255},
- textString="vr"),Text(
- extent={{80,10},{100,-10}},
- lineColor={0,0,255},
- textString="vi"),Text(
- extent={{80,-50},{100,-70}},
- lineColor={0,0,255},
- textString="v"),Text(
- extent={{-100,-100},{100,-160}},
- lineColor={0,0,255},
- textString="%name")}), Documentation);
- end PwVoltage;
-
- model SoftPMU "model of a PMU measuring phasors on a line"
- outer OpenIPSL.Electrical.SystemBase SysData;
- import Modelica.ComplexMath.conj;
- import Modelica.ComplexMath.real;
- import Modelica.ComplexMath.imag;
- import Modelica.ComplexMath.j;
- import Modelica.Constants.pi;
- OpenIPSL.Interfaces.PwPin p
- "the positive direction of the current is from connector p ..."
- annotation (Placement(transformation(extent={{-80,-10},{-60,10}}),
- iconTransformation(extent={{-80,-10},{-60,10}})));
- OpenIPSL.Interfaces.PwPin n "... and to connector n" annotation (
- Placement(transformation(extent={{60,-10},{80,10}}),
- iconTransformation(extent={{60,-10},{80,10}})));
- parameter Real V_0 "initial guess"
- annotation (Dialog(group="Line parameters"));
- parameter Real angle_0 "Reactance (pu)"
- annotation (Dialog(group="Line parameters"));
- public
- Real Vr=p.vr "real part of the voltage phasor in pu";
- Real Vi=p.vi "imaginary part of the voltage phasor in pu";
- Real Ir=p.ir "real part of the current phasor in pu";
- Real Ii=p.ii "imaginary part of the current phasor in pu";
- Real freq "frequency in Hertz";
- protected
- parameter Real vr_0=V_0*cos(angle_0*pi/180);
- parameter Real vi_0=V_0*sin(angle_0*pi/180);
- public
- NonElectrical.Nonlinear.FrenquencyCalc fCalc(
- real_start=vr_0,
- imag_start=vi_0,
- start_guess=true)
- annotation (Placement(transformation(extent={{-10,-10},{10,10}})));
- equation
- connect(p, n);
- fCalc.real_part = p.vr;
- fCalc.imag_part = p.vi;
- freq = (fCalc.y*180/pi) + SysData.fn;
- annotation (Icon(coordinateSystem(
- preserveAspectRatio=false,
- initialScale=0.1,
- extent={{-100,-100},{100,100}}), graphics={Rectangle(
- extent={{-60,20},{60,-20}},
- lineColor={0,0,255},
- fillColor={95,95,95},
- fillPattern=FillPattern.Solid),Text(
- extent={{-60,20},{60,-20}},
- lineColor={255,255,0},
- textString="%name"),Polygon(
- points={{-42,34},{28,34},{28,24},{48,36},{28,48},{28,38},{-42,38},{-42,
- 34}},
- lineColor={28,108,200},
- fillPattern=FillPattern.Solid,
- fillColor={28,108,200}),Ellipse(extent={{-60,62},{62,-60}}, lineColor=
- {28,108,200}),Text(
- extent={{-36,-26},{44,-48}},
- lineColor={28,108,200},
- fillColor={85,170,255},
- fillPattern=FillPattern.Solid,
- textString="PMU")}), Diagram(coordinateSystem(preserveAspectRatio=
- false, extent={{-100,-100},{100,100}})));
- end SoftPMU;
- annotation (Documentation);
- end Sensors;
- annotation (Documentation);
- end Electrical;
-
- package NonElectrical
- package Logical
- model NegCurLogic
- Modelica.Blocks.Interfaces.RealInput Vd(start=nstartvalue) annotation (
- Placement(transformation(extent={{-76,10},{-56,30}}), iconTransformation(
- extent={{-80,10},{-60,30}})));
- Modelica.Blocks.Interfaces.RealOutput Efd(start=nstartvalue) annotation (
- Placement(transformation(extent={{62,-24},{82,-4}}), iconTransformation(
- extent={{60,-10},{80,10}})));
- Modelica.Blocks.Interfaces.RealInput XadIfd(start=nstartvalue) annotation (
- Placement(transformation(extent={{-76,-46},{-56,-26}}),
- iconTransformation(extent={{-80,-30},{-60,-10}})));
- parameter Real RC_rfd;
- parameter Real nstartvalue;
- Real Crowbar_V;
- equation
- Efd = if XadIfd < 0 then Crowbar_V else Vd;
- Crowbar_V = if RC_rfd == 0 then 0 else (-1)*RC_rfd*XadIfd;
- annotation (
- Diagram(coordinateSystem(preserveAspectRatio=true, extent={{-60,-40},{60,40}}),
- graphics),
- Icon(coordinateSystem(preserveAspectRatio=true, extent={{-60,-40},{60,40}}),
- graphics={Rectangle(
- extent={{-60,40},{60,-40}},
- lineColor={0,0,255},
- fillColor={255,255,255},
- fillPattern=FillPattern.Solid),Text(
- extent={{-52,46},{54,-42}},
- lineColor={0,0,255},
- textString="Negative Current Logic")}),
- Documentation);
- end NegCurLogic;
-
- model HV_GATE
- Modelica.Blocks.Interfaces.RealInput n1 annotation (Placement(transformation(
- extent={{-86,-2},{-46,38}}), iconTransformation(extent={{-100,10},{-80,
- 30}})));
- Modelica.Blocks.Interfaces.RealInput n2 annotation (Placement(transformation(
- extent={{-86,-50},{-46,-10}}), iconTransformation(extent={{-100,-30},
- {-80,-10}})));
- Modelica.Blocks.Interfaces.RealOutput p annotation (Placement(transformation(
- extent={{-208,54},{-188,74}}), iconTransformation(extent={{60,-10},{
- 80,10}})));
- equation
- p = if n1 < n2 then n2 else n1;
- annotation (
- Diagram(coordinateSystem(preserveAspectRatio=true, extent={{-80,-40},{80,40}}),
- graphics),
- Icon(coordinateSystem(preserveAspectRatio=true, extent={{-80,-40},{80,40}}),
- graphics={Polygon(
- points={{-80,40},{-80,-40},{0,-40},{80,0},{0,40},{-80,40}},
- lineColor={0,0,255},
- fillColor={255,255,255},
- fillPattern=FillPattern.Solid),Text(
- extent={{-64,14},{-2,-14}},
- lineColor={0,0,255},
- textString="HV
-Gate")}), Documentation);
- end HV_GATE;
-
- model LV_GATE
- Modelica.Blocks.Interfaces.RealInput n1 annotation (Placement(transformation(
- extent={{-86,-2},{-46,38}}), iconTransformation(extent={{-100,10},{-80,
- 30}})));
- Modelica.Blocks.Interfaces.RealInput n2 annotation (Placement(transformation(
- extent={{-86,-50},{-46,-10}}), iconTransformation(extent={{-100,-30},
- {-80,-10}})));
- Modelica.Blocks.Interfaces.RealOutput p annotation (Placement(transformation(
- extent={{-208,58},{-188,78}}), iconTransformation(extent={{60,-10},{
- 80,10}})));
- equation
- p = if n1 > n2 then n2 else n1;
- annotation (
- Diagram(coordinateSystem(preserveAspectRatio=true, extent={{-80,-40},{80,40}}),
- graphics),
- Icon(coordinateSystem(preserveAspectRatio=true, extent={{-80,-40},{80,40}}),
- graphics={Polygon(
- points={{-80,40},{-80,-40},{0,-40},{80,0},{0,40},{-80,40}},
- lineColor={0,0,255},
- fillColor={255,255,255},
- fillPattern=FillPattern.Solid),Text(
- extent={{-60,20},{0,-20}},
- lineColor={0,0,255},
- textString="LV
-Gate")}), Documentation);
- end LV_GATE;
-
- model Relay "Relay"
- Modelica.Blocks.Interfaces.RealInput u1 annotation (Placement(transformation(
- extent={{-61,20},{-41,40}}), iconTransformation(extent={{-60,20},{-40,
- 40}})));
- Modelica.Blocks.Interfaces.RealInput u2 annotation (Placement(transformation(
- extent={{-61,-10},{-41,10}}), iconTransformation(extent={{-60,-10},{-40,
- 10}})));
- Modelica.Blocks.Interfaces.RealInput u3 annotation (Placement(transformation(
- extent={{-61,-40},{-41,-20}}), iconTransformation(extent={{-60,-40},{
- -40,-20}})));
- Modelica.Blocks.Interfaces.RealOutput y annotation (Placement(transformation(
- extent={{39,-10},{59,10}}), iconTransformation(extent={{40,-8},{56,8}})));
- equation
- y = if u1 > 0 then u2 else u3;
- annotation (
- Icon(coordinateSystem(extent={{-40,-40},{40,40}}, preserveAspectRatio=true),
- graphics={Rectangle(
- extent={{-40,40},{40,-40}},
- lineColor={0,0,0},
- fillColor={255,255,255},
- fillPattern=FillPattern.Solid),Line(
- points={{-28,0},{-8,0}},
- color={0,0,255},
- smooth=Smooth.None),Line(
- points={{-28,-20},{-8,-20}},
- color={0,0,255},
- smooth=Smooth.None),Line(
- points={{-12,-2},{4,-12},{24,-12}},
- color={0,0,255},
- smooth=Smooth.None),Ellipse(extent={{-8,2},{-4,-2}}, lineColor={0,0,
- 255}),Ellipse(extent={{-8,-18},{-4,-22}}, lineColor={0,0,255}),
- Rectangle(
- extent={{-12,36},{12,24}},
- lineColor={0,0,255},
- fillColor={255,255,255},
- fillPattern=FillPattern.Solid),Line(points={{-12,30},{-28,30}}, color=
- {0,0,255}),Line(points={{28,30},{12,30}}, color={0,0,255}),Line(
- points={{0,24},{0,-10}},
- color={0,0,255},
- pattern=LinePattern.Dash),Text(
- extent={{-110,58},{110,42}},
- lineColor={0,0,255},
- textString="%name")}),
- Diagram(coordinateSystem(extent={{-40,-40},{40,40}}, preserveAspectRatio=
- true)),
- Documentation);
- end Relay;
-
- model Relay3 "input dependent output"
- input Modelica.Blocks.Interfaces.RealInput u1 annotation (Placement(
- transformation(extent={{-54,-40},{-41,-26}}), iconTransformation(extent=
- {{-56,-38},{-40,-22}})));
- input Modelica.Blocks.Interfaces.RealInput u2 annotation (Placement(
- transformation(extent={{-54,26},{-41,40}}), iconTransformation(extent={
- {-56,22},{-40,38}})));
- input Modelica.Blocks.Interfaces.RealInput u3 annotation (Placement(
- transformation(extent={{-54,4},{-41,18}}), iconTransformation(extent={{
- -56,2},{-40,18}})));
- output Modelica.Blocks.Interfaces.RealOutput y annotation (Placement(
- transformation(extent={{41,-8},{61,12}}), iconTransformation(extent={{
- 40,-6},{52,6}})));
- parameter Real Vov=0.5;
- input Modelica.Blocks.Interfaces.RealInput u4 annotation (Placement(
- transformation(extent={{-54,-16},{-40,-2}}), iconTransformation(extent=
- {{-56,-18},{-40,-2}})));
- equation
- y = if u1 > Vov then u3 elseif u1 < (-Vov) then u4 else u2;
- annotation (
- Icon(coordinateSystem(preserveAspectRatio=false, extent={{-40,-40},{40,40}}),
- graphics={Rectangle(extent={{-40,40},{40,-40}}, lineColor={0,0,255}),
- Line(
- points={{-34,30},{-14,30}},
- color={0,0,255},
- smooth=Smooth.None),Line(
- points={{-34,10},{-14,10}},
- color={0,0,255},
- smooth=Smooth.None),Line(
- points={{-12,14},{14,10},{34,10}},
- color={0,0,255},
- smooth=Smooth.None),Ellipse(extent={{-14,32},{-10,28}}, lineColor={0,
- 0,255}),Ellipse(extent={{-14,12},{-10,8}}, lineColor={0,0,255}),Line(
- points={{-34,-10},{-14,-10}},
- color={0,0,255},
- smooth=Smooth.None),Ellipse(extent={{-14,-8},{-10,-12}}, lineColor={0,
- 0,255}),Rectangle(
- extent={{-12,-24},{12,-36}},
- lineColor={0,0,255},
- fillColor={255,255,255},
- fillPattern=FillPattern.Solid),Line(points={{-12,-30},{-28,-30}},
- color={0,0,255}),Line(points={{28,-30},{12,-30}}, color={0,0,255}),
- Line(
- points={{0,12},{0,-24}},
- color={0,0,255},
- pattern=LinePattern.Dash)}),
- Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-40,-40},{40,
- 40}}), graphics),
- Documentation);
- end Relay3;
-
- model Relay4
- Modelica.Blocks.Interfaces.RealInput in1 annotation (Placement(transformation(
- extent={{-5,-6},{5,6}},
- rotation=-90,
- origin={-40,46}), iconTransformation(
- extent={{-5.5,-6},{5.5,6}},
- rotation=-90,
- origin={-30,45.5})));
- Modelica.Blocks.Interfaces.RealInput in2 annotation (Placement(transformation(
- extent={{-5,-6},{5,6}},
- rotation=-90,
- origin={-14,46}), iconTransformation(
- extent={{-5.5,-6},{5.5,6}},
- rotation=-90,
- origin={-12,45.5})));
- Modelica.Blocks.Interfaces.RealInput in3 annotation (Placement(transformation(
- extent={{-5,-6},{5,6}},
- rotation=-90,
- origin={14,46}), iconTransformation(
- extent={{-5.5,-6},{5.5,6}},
- rotation=-90,
- origin={10,45.5})));
- Modelica.Blocks.Interfaces.RealInput in4 annotation (Placement(transformation(
- extent={{-5,-6},{5,6}},
- rotation=-90,
- origin={38,46}), iconTransformation(
- extent={{-5.5,-6},{5.5,6}},
- rotation=-90,
- origin={30,45.5})));
- Modelica.Blocks.Interfaces.RealInput p1
- annotation (Placement(transformation(extent={{-50,14},{-40,26}})));
- Modelica.Blocks.Interfaces.RealInput p2
- annotation (Placement(transformation(extent={{-50,-26},{-40,-14}})));
- Modelica.Blocks.Interfaces.RealOutput n annotation (Placement(transformation(
- extent={{41,-6},{51,6}}), iconTransformation(extent={{40,-4},{48,4}})));
- equation
- n = if in1 == 0 and in2 == 1 and in3 == 0 and in4 == 0 then p1 else p2;
- annotation (
- Diagram(coordinateSystem(preserveAspectRatio=true, extent={{-40,-40},{40,40}}),
- graphics),
- Icon(coordinateSystem(preserveAspectRatio=true, extent={{-40,-40},{40,40}}),
- graphics={Rectangle(
- extent={{-40,40},{40,-40}},
- lineColor={0,0,255},
- fillColor={255,255,255},
- fillPattern=FillPattern.Solid),Line(
- points={{-34,20},{-6,20}},
- color={0,0,255},
- smooth=Smooth.None,
- thickness=0.5),Line(
- points={{-34,-20},{-6,-20}},
- color={0,0,255},
- smooth=Smooth.None,
- thickness=0.5),Ellipse(
- extent={{-6,23},{0,17}},
- lineColor={0,0,255},
- lineThickness=0.5),Ellipse(
- extent={{-6,-17},{0,-23}},
- lineColor={0,0,255},
- lineThickness=0.5),Line(
- points={{0,16},{12,0},{40,0}},
- color={0,0,255},
- smooth=Smooth.None,
- thickness=0.5)}),
- Documentation);
- end Relay4;
- annotation (Documentation);
- end Logical;
-
- package Continuous
- block IntegratorLimVar
- "Integrator with a non windup limiter and variable limits"
- extends Modelica.Blocks.Interfaces.SISO;
- parameter Real K "Gain" annotation (Evaluate=false);
- parameter Real y_start "Output start value"
- annotation (Dialog(group="Initialization"));
- Modelica.Blocks.Interfaces.RealInput outMax annotation (Placement(
- transformation(extent={{98,106},{138,146}}), iconTransformation(
- extent={{-20,-20},{20,20}},
- rotation=-90,
- origin={80,140})));
- Modelica.Blocks.Interfaces.RealInput outMin annotation (Placement(
- transformation(extent={{-90,-6},{-50,34}}), iconTransformation(
- extent={{-20,-20},{20,20}},
- rotation=90,
- origin={-80,-140})));
- initial equation
- y = y_start;
- equation
- assert(
- outMax > outMin,
- "Upper limit must be greater than lower limit",
- AssertionLevel.error);
- if y >= outMax and u > 0 then
- der(y) = 0;
- elseif y <= outMin and u < 0 then
- der(y) = 0;
- else
- der(y) = K*u;
- end if;
- annotation (
- Icon(graphics={Line(points={{40,100},{60,140},{100,140}}, color={0,0,0}),
- Text(
- extent={{-20,68},{20,8}},
- lineColor={0,0,255},
- textString="K"),Line(
- points={{-80,0},{78,0}},
- color={0,0,255},
- smooth=Smooth.Bezier,
- thickness=0.5),Text(
- extent={{-70,-20},{70,-80}},
- lineColor={0,0,255},
- textString="s"),Line(points={{-100,-140},{-60,-140},{-40,-100}},
- color={0,0,0})}),
- Diagram,
- Documentation);
- end IntegratorLimVar;
-
- block DerivativeLag "Derivative lag transfer function block"
- extends Modelica.Blocks.Interfaces.SISO;
- parameter Real K "Gain";
- parameter Modelica.SIunits.Time T "Time constant";
- parameter Real y_start "Output start value"
- annotation (Dialog(group="Initialization"));
- parameter Real x_start=0 "Start value of state variable"
- annotation (Dialog(group="Initialization"));
- Modelica.Blocks.Sources.RealExpression par1(y=T)
- annotation (Placement(transformation(extent={{-80,54},{-60,74}})));
- Modelica.Blocks.Continuous.TransferFunction TF(
- initType=Modelica.Blocks.Types.Init.InitialOutput,
- x_start={x_start},
- b={K_dummy,0},
- y_start=y_start,
- a={T_dummy,1})
- annotation (Placement(transformation(extent={{-8,-10},{12,10}})));
- protected
- parameter Modelica.SIunits.Time T_dummy=if abs(T) < Modelica.Constants.eps
- then 1000 else T "Lead time constant";
- parameter Modelica.SIunits.Time K_dummy=if abs(K) < Modelica.Constants.eps
- then 1 else K "Lead time constant";
- equation
- if abs(par1.y) < Modelica.Constants.eps then
- y = u;
- else
- y = TF.y;
- end if;
- connect(TF.u, u)
- annotation (Line(points={{-10,0},{-120,0}}, color={0,0,127}));
- annotation (
- Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{
- 100,100}})),
- Documentation,
- Icon(graphics={Text(
- extent={{-60,82},{60,22}},
- lineColor={0,0,255},
- textString="Ks"),Line(
- points={{-62,0},{66,0}},
- color={0,0,255},
- smooth=Smooth.Bezier,
- thickness=0.5),Text(
- extent={{-60,-20},{60,-80}},
- lineColor={0,0,255},
- textString="1+sT")}));
- end DerivativeLag;
-
- block SimpleLag "First order lag transfer function block"
- extends Modelica.Blocks.Interfaces.SISO(y(start=y_start));
- Modelica.Blocks.Sources.RealExpression const(y=T)
- annotation (Placement(transformation(extent={{-58,32},{-38,52}})));
- Real state(start=y_start);
- parameter Real K "Gain";
- parameter Modelica.SIunits.Time T "Lag time constant";
- parameter Real y_start "Output start value";
- protected
- parameter Real T_mod=if T < Modelica.Constants.eps then 1000 else T;
- initial equation
- state = y_start;
- equation
- T_mod*der(state) = K*u - state;
- if abs(const.y) <= Modelica.Constants.eps then
- y = u*K;
- else
- y = state;
- end if;
- annotation (
- Icon(coordinateSystem(preserveAspectRatio=true, extent={{-100,-100},{100,
- 100}}), graphics={Text(
- extent={{-18,68},{22,8}},
- lineColor={0,0,255},
- textString="K"),Text(
- extent={{-68,-20},{72,-80}},
- lineColor={0,0,255},
- textString="1 + Ts"),Line(
- points={{-78,0},{80,0}},
- color={0,0,255},
- smooth=Smooth.Bezier,
- thickness=0.5)}),
- Diagram(graphics),
- Documentation(info="
-
-
-Reference |
- |
-
-
-Last update |
-2015-11-24 |
-
-
-Author |
-Tin Rabuzin, SmarTS Lab, KTH Royal Institute of Technology |
-
-
-Contact |
-luigiv@kth.se |
-
-
-"));
- end SimpleLag;
-
- block SimpleLagLim
- "First order lag transfer function block with a non windup limiter"
- extends Modelica.Blocks.Interfaces.SISO(y(start=y_start));
- Modelica.Blocks.Sources.RealExpression const(y=T)
- annotation (Placement(transformation(extent={{-58,32},{-38,52}})));
- Real state;
- parameter Real K "Gain";
- parameter Modelica.SIunits.Time T "Lag time constant";
- parameter Real y_start "Output start value";
- parameter Real outMax "Maximum output value";
- parameter Real outMin "Minimum output value";
- protected
- parameter Real T_mod=if T < Modelica.Constants.eps then 1000 else T;
- initial equation
- state = y_start;
- equation
- T_mod*der(state) = K*u - state;
- when state > outMax and K*u - state < 0 then
- reinit(state, outMax);
- elsewhen state < outMin and K*u - state > 0 then
- reinit(state, outMin);
- end when;
- if abs(const.y) <= Modelica.Constants.eps then
- y = max(min(u*K, outMax), outMin);
- else
- y = max(min(state, outMax), outMin);
- end if;
- annotation (Documentation(info="
-
-
-Reference |
-IEEE Std. 421.5-2005, Annex E |
-
-
-Last update |
-2015-11-25 |
-
-
-Author |
-Tin Rabuzin,SmarTS Lab, KTH Royal Institute of Technology |
-
-
-Contact |
-luigiv@kth.se |
-
-
-"), Icon(graphics={Line(points={{40,100},{60,140},{100,140}}, color={0,0,
- 0}),Text(
- extent={{-20,68},{20,8}},
- lineColor={0,0,255},
- textString="K"),Line(
- points={{-80,0},{78,0}},
- color={0,0,255},
- smooth=Smooth.Bezier,
- thickness=0.5),Text(
- extent={{-70,-20},{70,-80}},
- lineColor={0,0,255},
- textString="1 + Ts"),Line(points={{-100,-140},{-60,-140},{-40,-100}},
- color={0,0,0})}));
- end SimpleLagLim;
-
- block SimpleLagLimVar
- "First order lag transfer function block with a non windup limiter and variable limits"
- extends Modelica.Blocks.Interfaces.SISO(y(start=y_start));
- Modelica.Blocks.Interfaces.RealInput outMax annotation (Placement(
- transformation(extent={{98,106},{138,146}}), iconTransformation(
- extent={{-20,-20},{20,20}},
- rotation=-90,
- origin={80,140})));
- Modelica.Blocks.Interfaces.RealInput outMin annotation (Placement(
- transformation(extent={{-90,-6},{-50,34}}), iconTransformation(
- extent={{-20,-20},{20,20}},
- rotation=90,
- origin={-80,-140})));
- Modelica.Blocks.Sources.RealExpression const(y=T)
- annotation (Placement(transformation(extent={{-58,32},{-38,52}})));
- parameter Real K "Gain";
- parameter Modelica.SIunits.Time T "Lag time constant";
- parameter Real y_start "Output start value";
- parameter Real T_mod=if T < Modelica.Constants.eps then 1000 else T;
- Real state;
- initial equation
- state = y_start;
- equation
- T_mod*der(state) = u - y;
- when abs(y - outMax) <= Modelica.Constants.eps and u - y < 0 or abs(y -
- outMin) <= Modelica.Constants.eps and u - y > 0 then
- reinit(state, y);
- end when;
- if abs(const.y) <= Modelica.Constants.eps then
- y = max(min(u*K, outMax), outMin);
- else
- y = max(min(state, outMax), outMin);
- end if;
- annotation (
- Documentation(info="
-
-
-Reference |
-IEEE Std. 421.5-2005, Annex E |
-
-
-Last update |
-2015-11-25 |
-
-
-Author |
-Tin Rabuzin,SmarTS Lab, KTH Royal Institute of Technology |
-
-
-Contact |
-luigiv@kth.se |
-
-
-"), Icon(coordinateSystem(preserveAspectRatio=true, extent={{-100,-100},{100,
- 100}}), graphics={Line(points={{40,100},{60,140},{100,140}}, color=
- {0,0,0}),Text(
- extent={{-20,68},{20,8}},
- lineColor={0,0,255},
- textString="K"),Line(
- points={{-80,0},{78,0}},
- color={0,0,255},
- smooth=Smooth.Bezier,
- thickness=0.5),Text(
- extent={{-70,-20},{70,-80}},
- lineColor={0,0,255},
- textString="1 + Ts"),Line(points={{-100,-140},{-60,-140},{-40,-100}},
- color={0,0,0})}),
- Diagram);
- end SimpleLagLimVar;
-
- block SimpleLagRateLimBlock
- "First order lag transfer function block with a non windup limiter, rate limits and blocking input"
- extends Modelica.Blocks.Interfaces.SISO(y(start=y_start));
- parameter Real K "Gain" annotation (Evaluate=false);
- parameter Modelica.SIunits.Time T "Lag time constant"
- annotation (Evaluate=false);
- parameter Real y_start "Output start value"
- annotation (Dialog(group="Initialization"));
- parameter Real outMax "Maximum output value" annotation (Evaluate=false);
- parameter Real outMin "Minimum output value" annotation (Evaluate=false);
- parameter Real rmin "Minimum rate limit" annotation (Evaluate=false);
- parameter Real rmax "Maximum rate limit" annotation (Evaluate=false);
- Real x;
- Real rate;
- Modelica.Blocks.Interfaces.RealInput Block annotation (Placement(
- transformation(extent={{-140,60},{-100,100}}), iconTransformation(
- extent={{-140,60},{-100,100}})));
- initial equation
- y = y_start;
- equation
- assert(
- T >= 1e-10,
- "Time constant must be greater than 0",
- AssertionLevel.error);
- assert(
- outMax > outMin,
- "Upper limit must be greater than lower limit",
- AssertionLevel.error);
- rate = if u > outMax then (outMax - x)/T elseif u < outMin then (outMin - x)/
- T else (u - x)/T;
- if Block > 0 then
- der(x) = 0;
- else
- der(x) = if rate > rmax then rmax elseif rate < rmin then rmin else rate;
- end if;
- y = if x > outMax then outMax elseif x < outMin then outMin else x;
- annotation (
- Documentation(info="
-
-
-Reference |
-IEEE Std. 421.5-2005, Annex E |
-
-
-Last update |
-2015-11-25 |
-
-
-Author |
-Tin Rabuzin,SmarTS Lab, KTH Royal Institute of Technology |
-
-
-Contact |
-luigiv@kth.se |
-
-
-
-"), Icon(coordinateSystem(preserveAspectRatio=true, extent={{-100,-100},{100,
- 100}}), graphics={Line(points={{40,100},{60,140},{100,140}}, color=
- {0,0,0}),Text(
- extent={{-20,68},{20,8}},
- lineColor={0,0,255},
- textString="K"),Line(
- points={{-80,0},{78,0}},
- color={0,0,255},
- smooth=Smooth.Bezier,
- thickness=0.5),Text(
- extent={{-70,-20},{70,-80}},
- lineColor={0,0,255},
- textString="1 + Ts"),Line(points={{-100,-140},{-60,-140},{-40,-100}},
- color={0,0,0}),Ellipse(
- extent={{-82,86},{-96,72}},
- lineColor={255,0,0},
- fillColor={255,0,0},
- fillPattern=FillPattern.Solid),Rectangle(
- extent={{-94,80},{-84,78}},
- lineColor={255,0,0},
- fillColor={255,255,255},
- fillPattern=FillPattern.Solid)}),
- Diagram);
- end SimpleLagRateLimBlock;
-
- block SimpleLagRateLimVar
- "First order lag transfer function block with a non windup limiter, rate limits, variable output limits and blocking input"
- extends Modelica.Blocks.Interfaces.SISO;
- parameter Modelica.SIunits.Time T "Lag time constant"
- annotation (Evaluate=false);
- parameter Real y_start "Output start value"
- annotation (Dialog(group="Initialization"));
- parameter Real rmin "Minimum rate limit";
- parameter Real rmax "Maximum rate limit";
- Real rate "Rate";
- Real x;
- Modelica.Blocks.Interfaces.RealInput outMin annotation (Placement(
- transformation(extent={{-90,-6},{-50,34}}), iconTransformation(
- extent={{-20,-20},{20,20}},
- rotation=90,
- origin={-80,-140})));
- Modelica.Blocks.Interfaces.RealInput outMax annotation (Placement(
- transformation(extent={{98,106},{138,146}}), iconTransformation(
- extent={{-20,-20},{20,20}},
- rotation=-90,
- origin={80,140})));
- initial equation
- x = y_start;
- y = y_start;
- equation
- assert(
- T >= 1e-10,
- "Time constant must be greater than 0",
- AssertionLevel.error);
- rate = if u > outMax then (outMax - x)/T elseif u < outMin then (outMin - x)/
- T else (u - x)/T;
- der(x) = if rate > rmax then rmax elseif rate < rmin then rmin else rate;
- y = if x > outMax then outMax elseif x < outMin then outMin else x;
- annotation (
- Diagram(coordinateSystem(preserveAspectRatio=true, extent={{-100,-100},{100,
- 100}}), graphics),
- Icon(coordinateSystem(preserveAspectRatio=true, extent={{-100,-100},{100,
- 100}}), graphics={Line(points={{-100,-140},{-60,-140},{-40,-100}},
- color={0,0,0}),Line(points={{40,100},{60,140},{100,140}}, color={0,0,
- 0}),Text(
- extent={{-20,68},{20,8}},
- lineColor={0,0,255},
- textString="K"),Line(
- points={{-80,0},{78,0}},
- color={0,0,255},
- smooth=Smooth.Bezier,
- thickness=0.5),Text(
- extent={{-70,-20},{70,-80}},
- lineColor={0,0,255},
- textString="1 + Ts"),Line(points={{-60,100},{-80,140},{-120,140}},
- color={255,0,0}),Line(points={{120,-140},{80,-140},{60,-100}}, color=
- {255,0,0})}),
- Documentation);
- end SimpleLagRateLimVar;
-
- block SimpleLead "First order lead transfer function block"
- extends Modelica.Blocks.Interfaces.SISO;
- parameter Real K "Gain" annotation (Evaluate=false);
- parameter Modelica.SIunits.Time T "Lead time constant"
- annotation (Evaluate=false);
- parameter Real y_start "Output start value"
- annotation (Dialog(group="Initialization"));
- equation
- assert(
- T >= 1e-10,
- "Time constant must be greater than 0",
- AssertionLevel.error);
- T*der(u) = K*y - u;
- annotation (
- Icon(coordinateSystem(preserveAspectRatio=true, extent={{-100,-100},{100,
- 100}}), graphics={Text(
- extent={{-56,68},{58,8}},
- lineColor={0,0,255},
- textString="1+Ts"),Line(
- points={{-76,0},{82,0}},
- color={0,0,255},
- smooth=Smooth.Bezier,
- thickness=0.5),Text(
- extent={{-66,-20},{74,-80}},
- lineColor={0,0,255},
- textString="K")}),
- Diagram(coordinateSystem(preserveAspectRatio=true, extent={{-100,-100},{100,
- 100}}), graphics),
- Documentation);
- end SimpleLead;
-
- block LeadLag "Lead-Lag filter"
- extends Modelica.Blocks.Interfaces.SISO;
- parameter Real K "Gain";
- parameter Modelica.SIunits.Time T1 "Lead time constant";
- parameter Modelica.SIunits.Time T2 "Lag time constant";
- parameter Real y_start "Output start value"
- annotation (Dialog(group="Initialization"));
- parameter Real x_start=0 "Start value of state variable"
- annotation (Dialog(group="Initialization"));
- Modelica.Blocks.Sources.RealExpression par1(y=T1)
- annotation (Placement(transformation(extent={{-80,54},{-60,74}})));
- Modelica.Blocks.Sources.RealExpression par2(y=T2)
- annotation (Placement(transformation(extent={{-80,34},{-60,54}})));
- Modelica.Blocks.Continuous.TransferFunction TF(
- b={K*T1,K},
- a={T2_dummy,1},
- y_start=y_start,
- initType=Modelica.Blocks.Types.Init.InitialOutput,
- x_start={x_start})
- annotation (Placement(transformation(extent={{-8,-10},{12,10}})));
- protected
- parameter Modelica.SIunits.Time T2_dummy=if abs(T1 - T2) < Modelica.Constants.eps
- then 1000 else T2 "Lead time constant";
- equation
- if abs(par1.y - par2.y) < Modelica.Constants.eps then
- y = K*u;
- else
- y = TF.y;
- end if;
- connect(TF.u, u)
- annotation (Line(points={{-10,0},{-120,0}}, color={0,0,127}));
- annotation (
- Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{
- 100,100}})),
- Documentation,
- Icon(graphics={Text(
- extent={{-44,82},{76,22}},
- lineColor={0,0,255},
- textString="1+sT"),Line(
- points={{-46,0},{82,0}},
- color={0,0,255},
- smooth=Smooth.Bezier,
- thickness=0.5),Text(
- extent={{-44,-20},{76,-80}},
- lineColor={0,0,255},
- textString="1+sT"),Text(
- extent={{-100,28},{-40,-32}},
- lineColor={0,0,255},
- textString="K"),Text(
- extent={{62,44},{82,24}},
- lineColor={0,0,255},
- textString="1"),Text(
- extent={{64,-58},{84,-78}},
- lineColor={0,0,255},
- textString="2")}));
- end LeadLag;
-
- block LeadLagLim "Lead-Lag filter with a non-windup limiter"
- extends Modelica.Blocks.Interfaces.SISO;
- parameter Real K "Gain";
- parameter Modelica.SIunits.Time T1 "Lead time constant";
- parameter Modelica.SIunits.Time T2 "Lag time constant";
- parameter Real outMax "Maximum output value";
- parameter Real outMin "Minimum output value";
- parameter Real y_start "Output start value"
- annotation (Dialog(group="Initialization"));
- Modelica.Blocks.Math.Add add2(k2=1)
- annotation (Placement(transformation(extent={{-40,-16},{-20,4}})));
- Modelica.Blocks.Math.Gain gain(k=T1/T2)
- annotation (Placement(transformation(extent={{0,-16},{20,4}})));
- Modelica.Blocks.Math.Add add3(k2=-1)
- annotation (Placement(transformation(extent={{40,-66},{20,-46}})));
- Modelica.Blocks.Continuous.Integrator integrator(
- y_start=y_start,
- k=1/T1,
- initType=Modelica.Blocks.Types.Init.SteadyState)
- annotation (Placement(transformation(extent={{0,-66},{-20,-46}})));
- Modelica.Blocks.Math.Gain gain1(k=T2/T1 - 1)
- annotation (Placement(transformation(extent={{-50,-66},{-70,-46}})));
- Modelica.Blocks.Nonlinear.Limiter limiter(uMax=outMax, uMin=outMin)
- annotation (Placement(transformation(extent={{42,-16},{62,4}})));
- equation
- connect(add2.y, gain.u)
- annotation (Line(points={{-19,-6},{-10.5,-6},{-2,-6}}, color={0,0,127}));
- connect(integrator.u, add3.y)
- annotation (Line(points={{2,-56},{19,-56}}, color={0,0,127}));
- connect(integrator.y, add3.u2) annotation (Line(points={{-21,-56},{-40,-56},{
- -40,-86},{66,-86},{66,-62},{42,-62}}, color={0,0,127}));
- connect(gain1.u, add3.u2) annotation (Line(points={{-48,-56},{-40,-56},{-40,-86},
- {66,-86},{66,-62},{42,-62}}, color={0,0,127}));
- connect(gain1.y, add2.u2) annotation (Line(points={{-71,-56},{-80,-56},{-80,-12},
- {-42,-12}}, color={0,0,127}));
- connect(u, add2.u1)
- annotation (Line(points={{-120,0},{-42,0}}, color={0,0,127}));
- connect(gain.y, limiter.u)
- annotation (Line(points={{21,-6},{30.5,-6},{40,-6}}, color={0,0,127}));
- connect(limiter.y, y) annotation (Line(points={{63,-6},{82,-6},{82,0},{110,0}},
- color={0,0,127}));
- connect(add3.u1, y) annotation (Line(points={{42,-50},{72,-50},{72,-6},{82,-6},
- {82,0},{110,0}}, color={0,0,127}));
- annotation (
- Icon(graphics={Line(points={{38,100},{58,140},{98,140}}, color={0,0,0}),
- Line(points={{-102,-140},{-62,-140},{-42,-100}}, color={0,0,0}),Text(
- extent={{-50,82},{70,22}},
- lineColor={0,0,255},
- textString="1+sT"),Text(
- extent={{56,44},{76,24}},
- lineColor={0,0,255},
- textString="1"),Line(
- points={{-52,0},{76,0}},
- color={0,0,255},
- smooth=Smooth.Bezier,
- thickness=0.5),Text(
- extent={{-50,-20},{70,-80}},
- lineColor={0,0,255},
- textString="1+sT"),Text(
- extent={{58,-58},{78,-78}},
- lineColor={0,0,255},
- textString="2"),Text(
- extent={{-106,28},{-46,-32}},
- lineColor={0,0,255},
- textString="K")}),
- Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{
- 100,100}})),
- Documentation(info="
-
-"));
- end LeadLagLim;
-
- model RampTrackingFilter "Ramp-tracking filter"
- extends Modelica.Blocks.Interfaces.SISO;
- parameter Real T_1;
- parameter Real T_2;
- parameter Real M;
- parameter Real N;
- parameter Real startValue;
- LeadLag LL_1(
- K=1,
- T1=T_1,
- T2=T_2,
- y_start=startValue,
- x_start=startValue)
- annotation (Placement(transformation(extent={{-80,70},{-60,90}})));
- LeadLag LL_2(
- K=1,
- T1=T_1,
- T2=T_2,
- y_start=startValue,
- x_start=startValue)
- annotation (Placement(transformation(extent={{-40,70},{-20,90}})));
- LeadLag LL_3(
- K=1,
- T1=T_1,
- T2=T_2,
- y_start=startValue,
- x_start=startValue)
- annotation (Placement(transformation(extent={{-80,10},{-60,30}})));
- LeadLag LL_4(
- K=1,
- T1=T_1,
- T2=T_2,
- y_start=startValue,
- x_start=startValue)
- annotation (Placement(transformation(extent={{-40,10},{-20,30}})));
- LeadLag LL_5(
- K=1,
- T1=T_1,
- T2=T_2,
- y_start=startValue,
- x_start=startValue)
- annotation (Placement(transformation(extent={{20,70},{40,90}})));
- LeadLag LL_6(
- K=1,
- T1=T_1,
- T2=T_2,
- y_start=startValue,
- x_start=startValue)
- annotation (Placement(transformation(extent={{60,70},{80,90}})));
- LeadLag LL_7(
- K=1,
- T1=T_1,
- T2=T_2,
- y_start=startValue,
- x_start=startValue)
- annotation (Placement(transformation(extent={{20,10},{40,30}})));
- LeadLag LL_8(
- K=1,
- T1=T_1,
- T2=T_2,
- y_start=startValue,
- x_start=startValue)
- annotation (Placement(transformation(extent={{60,10},{80,30}})));
- SimpleLag SL_1(
- K=1,
- T=T_2,
- y_start=startValue)
- annotation (Placement(transformation(extent={{-80,-90},{-60,-70}})));
- SimpleLag SL_2(
- K=1,
- T=T_2,
- y_start=startValue)
- annotation (Placement(transformation(extent={{-40,-90},{-20,-70}})));
- SimpleLag SL_3(
- K=1,
- T=T_2,
- y_start=startValue)
- annotation (Placement(transformation(extent={{-80,-30},{-60,-10}})));
- SimpleLag SL_4(
- K=1,
- T=T_2,
- y_start=startValue)
- annotation (Placement(transformation(extent={{-40,-30},{-20,-10}})));
- SimpleLag SL_5(
- K=1,
- T=T_2,
- y_start=startValue)
- annotation (Placement(transformation(extent={{20,-90},{40,-70}})));
- SimpleLag SL_6(
- K=1,
- T=T_2,
- y_start=startValue)
- annotation (Placement(transformation(extent={{60,-90},{80,-70}})));
- SimpleLag SL_7(
- K=1,
- T=T_2,
- y_start=startValue)
- annotation (Placement(transformation(extent={{20,-30},{40,-10}})));
- SimpleLag SL_8(
- K=1,
- T=T_2,
- y_start=startValue)
- annotation (Placement(transformation(extent={{60,-30},{80,-10}})));
- protected
- Modelica.Blocks.Interfaces.RealInput LL_out
- annotation (Placement(transformation(extent={{-126,-100},{-86,-60}})));
- protected
- Modelica.Blocks.Interfaces.RealInput SL_out
- annotation (Placement(transformation(extent={{-22,-18},{10,14}})));
- initial equation
-
- equation
- if N == 1 then
- LL_1.y = LL_out;
- elseif N == 2 then
- LL_2.y = LL_out;
- elseif N == 3 then
- LL_3.y = LL_out;
- elseif N == 4 then
- LL_4.y = LL_out;
- elseif N == 5 then
- LL_5.y = LL_out;
- elseif N == 6 then
- LL_6.y = LL_out;
- elseif N == 7 then
- LL_7.y = LL_out;
- else
- LL_8.y = LL_out;
- end if;
- if not M == 0 then
- SL_out = y;
- else
- u = y;
- end if;
- if M == 1 then
- SL_1.y = SL_out;
- elseif M == 2 then
- SL_2.y = SL_out;
- elseif M == 3 then
- SL_3.y = SL_out;
- elseif M == 4 then
- SL_4.y = SL_out;
- elseif M == 5 then
- SL_5.y = SL_out;
- elseif M == 6 then
- SL_6.y = SL_out;
- elseif M == 7 then
- SL_7.y = SL_out;
- else
- SL_8.y = SL_out;
- end if;
- connect(u, LL_1.u) annotation (Line(points={{-120,0},{-92,0},{-92,80},{-82,80}},
- color={0,0,127}));
- connect(LL_1.y, LL_2.u)
- annotation (Line(points={{-59,80},{-42,80}}, color={0,0,127}));
- connect(LL_2.y, LL_3.u) annotation (Line(points={{-19,80},{-14,80},{-14,60},{
- -88,60},{-88,20},{-82,20}}, color={0,0,127}));
- connect(LL_3.y, LL_4.u)
- annotation (Line(points={{-59,20},{-59,20},{-42,20}}, color={0,0,127}));
- connect(LL_4.y, LL_5.u) annotation (Line(points={{-19,20},{2,20},{2,80},{18,
- 80}}, color={0,0,127}));
- connect(LL_5.y, LL_6.u)
- annotation (Line(points={{41,80},{58,80}}, color={0,0,127}));
- connect(LL_6.y, LL_7.u) annotation (Line(points={{81,80},{86,80},{86,58},{10,
- 58},{10,20},{18,20}}, color={0,0,127}));
- connect(LL_7.y, LL_8.u)
- annotation (Line(points={{41,20},{41,20},{58,20}}, color={0,0,127}));
- connect(LL_out, SL_1.u)
- annotation (Line(points={{-106,-80},{-82,-80}}, color={0,0,127}));
- connect(SL_1.y, SL_2.u)
- annotation (Line(points={{-59,-80},{-59,-80},{-42,-80}}, color={0,0,127}));
- connect(SL_2.y, SL_3.u) annotation (Line(points={{-19,-80},{-10,-80},{-10,-60},
- {-88,-60},{-88,-20},{-82,-20}}, color={0,0,127}));
- connect(SL_3.y, SL_4.u)
- annotation (Line(points={{-59,-20},{-42,-20}}, color={0,0,127}));
- connect(SL_4.y, SL_5.u) annotation (Line(points={{-19,-20},{0,-20},{0,-80},{
- 18,-80}}, color={0,0,127}));
- connect(SL_5.y, SL_6.u)
- annotation (Line(points={{41,-80},{56,-80},{58,-80}}, color={0,0,127}));
- connect(SL_6.y, SL_7.u) annotation (Line(points={{81,-80},{90,-80},{90,-60},{
- 10,-60},{10,-20},{18,-20}}, color={0,0,127}));
- connect(SL_7.y, SL_8.u)
- annotation (Line(points={{41,-20},{41,-20},{58,-20}}, color={0,0,127}));
- annotation (
- Icon(coordinateSystem(
- preserveAspectRatio=true,
- extent={{-100,-100},{100,100}},
- initialScale=0.05), graphics={Rectangle(extent={{-100,100},{100,-100}},
- lineColor={0,0,0}),Text(
- extent={{-58,40},{40,-4}},
- lineColor={0,0,255},
- textString="1+sT"),Text(
- extent={{-64,20},{56,-58}},
- lineColor={0,0,255},
- textString="(1+sT )"),Text(
- extent={{22,28},{44,-4}},
- lineColor={0,0,255},
- textString="1"),Text(
- extent={{24,-10},{46,-42}},
- lineColor={0,0,255},
- textString="2"),Text(
- extent={{54,2},{66,-16}},
- lineColor={0,0,255},
- textString="M"),Line(
- points={{-60,40},{-74,40},{-74,-40},{-60,-40}},
- color={0,0,255},
- thickness=1),Line(
- points={{60,40},{76,40},{76,-40},{60,-40}},
- color={0,0,255},
- thickness=1),Text(
- extent={{76,48},{94,28}},
- lineColor={0,0,255},
- textString="N"),Line(
- points={{-68,0},{70,0}},
- color={0,0,255},
- thickness=1)}),
- Documentation(info="
-
-Reference |
-Ramp-tracking filter up to M*N <=8 |
-
-
-Last update |
-2015-08-03 |
-
-
-Author |
-Tin Rabuzin, SmarTS Lab, KTH Royal Institute of Technology |
-
-
-Contact |
-luigiv@kth.se |
-
-
-"));
- end RampTrackingFilter;
- annotation (Documentation(info="
-
-All of the transfer functions found in this package are also available in the Modelica Standard Library (MSL). However, some of the models require the time constants of the functions in this package to be set to zero. This is not supported by MSL and, thus, this is supported by functions in this package.
-
-"));
- end Continuous;
-
- package Nonlinear
- model FEX "FEX=f(IN)"
- Modelica.Blocks.Interfaces.RealInput u annotation (Placement(transformation(
- extent={{-70,-10},{-50,10}}), iconTransformation(extent={{-110,-10},{
- -90,10}})));
- Modelica.Blocks.Interfaces.RealOutput y annotation (Placement(transformation(
- extent={{58,-10},{78,10}}), iconTransformation(extent={{100,-10},{120,
- 10}})));
- equation
- if u <= 0 then
- y = 1;
- elseif u > 0 and u <= 0.433 then
- y = 1 - 0.577*u;
- elseif u > 0.433 and u < 0.75 then
- y = sqrt(0.75 - u^2);
- elseif u >= 0.75 and u <= 1 then
- y = 1.732*(1 - u);
- else
- y = 0;
- end if;
- annotation (
- Diagram(coordinateSystem(preserveAspectRatio=true, extent={{-100,-100},{100,
- 100}}), graphics),
- Icon(coordinateSystem(preserveAspectRatio=true, extent={{-100,-100},{100,
- 100}}), graphics={Rectangle(
- extent={{-100,100},{100,-100}},
- lineColor={0,0,255},
- fillColor={255,255,255},
- fillPattern=FillPattern.Solid),Text(
- extent={{-62,28},{64,-30}},
- lineColor={0,0,255},
- textString="FEX=f(IN)")}),
- Documentation);
- end FEX;
-
- model SaturationBlockTan
- "Block 1 in the OEL to decide the input signal of MIN Gate"
- parameter Real r "Exiciter parameter";
- parameter Real f "Exiciter parameter";
- Modelica.Blocks.Interfaces.RealInput p1 annotation (Placement(transformation(
- extent={{-86,-10},{-66,10}}), iconTransformation(extent={{-80,-10},{-60,
- 10}})));
- Modelica.Blocks.Interfaces.RealOutput n1 annotation (Placement(transformation(
- extent={{46,-10},{66,10}}), iconTransformation(extent={{60,-6},{72,6}})));
- equation
- if p1 <= (-0.1) then
- n1 = -1;
- elseif p1 > (-0.1) and p1 < 0 then
- n1 = 0;
- else
- n1 = tan(r)*p1 + f;
- end if;
- annotation (
- Diagram(coordinateSystem(preserveAspectRatio=true, extent={{-60,-60},{60,60}}),
- graphics),
- Icon(coordinateSystem(preserveAspectRatio=true, extent={{-60,-60},{60,60}}),
- graphics={Rectangle(
- extent={{-60,60},{60,-60}},
- lineColor={0,0,255},
- fillColor={255,255,255},
- fillPattern=FillPattern.Solid),Line(
- points={{-42,0},{36,0},{38,0},{40,0}},
- color={0,0,255},
- thickness=0.5,
- smooth=Smooth.None,
- arrow={Arrow.None,Arrow.Open}),Line(
- points={{0,-30},{0,36}},
- color={0,0,255},
- thickness=0.5,
- smooth=Smooth.None,
- arrow={Arrow.None,Arrow.Open}),Line(
- points={{0,12},{34,12}},
- color={0,0,255},
- smooth=Smooth.None),Text(
- extent={{22,22},{38,12}},
- lineColor={0,0,0},
- fillColor={0,0,255},
- fillPattern=FillPattern.Solid,
- textStyle={TextStyle.Italic},
- textString="r"),Text(
- extent={{-12,16},{4,6}},
- lineColor={0,0,0},
- fillColor={0,0,255},
- fillPattern=FillPattern.Solid,
- textString="f",
- textStyle={TextStyle.Italic}),Text(
- extent={{-2,0},{12,-8}},
- lineColor={0,0,0},
- fillColor={0,0,255},
- fillPattern=FillPattern.Solid,
- textString="0"),Text(
- extent={{-26,8},{-12,0}},
- lineColor={0,0,0},
- fillColor={0,0,255},
- fillPattern=FillPattern.Solid,
- textString="-0.1"),Line(
- points={{-20,-20},{-2,-20},{0,-20}},
- color={0,0,255},
- pattern=LinePattern.Dot,
- smooth=Smooth.None),Text(
- extent={{-2,-16},{12,-24}},
- lineColor={0,0,0},
- fillColor={0,0,255},
- fillPattern=FillPattern.Solid,
- textString="-1"),Line(
- points={{-34,-20},{-20,-20},{-20,0},{0,0},{0,12},{32,22}},
- color={0,0,0},
- thickness=0.5,
- smooth=Smooth.None)}),
- Documentation(info="
-"));
- end SaturationBlockTan;
-
- model FrenquencyCalc
- "frequency calculation of a rotating phasor, if the phasor is w.r.t a rotating coordinate system then it is the frequency difference to that system."
- parameter Boolean start_guess=false;
- protected
- parameter Modelica.Blocks.Types.Init init_type=if start_guess == true then
- Modelica.Blocks.Types.Init.InitialState else Modelica.Blocks.Types.Init.NoInit;
- public
- parameter Real real_start=1;
- parameter Real imag_start=0;
- public
- Modelica.Blocks.Interfaces.RealInput real_part
- annotation (Placement(transformation(extent={{-120,44},{-80,84}})));
- Modelica.Blocks.Interfaces.RealOutput y "O/P is in rad/sec" annotation (
- Placement(transformation(extent={{94,-8},{114,12}}), iconTransformation(
- extent={{94,-8},{114,12}})));
- Modelica.Blocks.Continuous.Derivative derOfReal(
- initType=init_type,
- x_start=real_start,
- y_start=0)
- annotation (Placement(transformation(extent={{-58,34},{-38,54}})));
- Modelica.Blocks.Math.Product product
- annotation (Placement(transformation(extent={{-18,16},{4,36}})));
- Modelica.Blocks.Math.Add add(k2=-1)
- annotation (Placement(transformation(extent={{26,6},{46,26}})));
- Modelica.Blocks.Math.Division division
- annotation (Placement(transformation(extent={{58,-22},{78,-2}})));
- Modelica.Blocks.Interfaces.RealInput imag_part
- annotation (Placement(transformation(extent={{-120,-92},{-80,-52}})));
- Modelica.Blocks.Math.Product product1
- annotation (Placement(transformation(extent={{-16,-16},{6,4}})));
- Modelica.Blocks.Math.Product product2
- annotation (Placement(transformation(extent={{-22,-90},{0,-70}})));
- Modelica.Blocks.Math.Product product3
- annotation (Placement(transformation(extent={{-14,-54},{8,-34}})));
- Modelica.Blocks.Math.Add add1
- annotation (Placement(transformation(extent={{26,-66},{46,-46}})));
- Modelica.Blocks.Continuous.Derivative derOfImag(
- initType=init_type,
- x_start=imag_start,
- y_start=0)
- annotation (Placement(transformation(extent={{-54,-26},{-34,-6}})));
- equation
- connect(add.y, division.u1) annotation (Line(points={{47,16},{52,16},{52,-6},
- {56,-6}}, color={0,0,127}));
- connect(add1.y, division.u2) annotation (Line(points={{47,-56},{52,-56},{52,-18},
- {56,-18}}, color={0,0,127}));
- connect(division.y, y) annotation (Line(points={{79,-12},{86,-12},{86,2},{104,
- 2}}, color={0,0,127}));
- connect(product.y, add.u1) annotation (Line(points={{5.1,26},{16,26},{16,22},
- {24,22}}, color={0,0,127}));
- connect(product1.y, add.u2) annotation (Line(points={{7.1,-6},{16,-6},{16,10},
- {24,10}}, color={0,0,127}));
- connect(product3.y, add1.u1) annotation (Line(points={{9.1,-44},{17.55,-44},{
- 17.55,-50},{24,-50}}, color={0,0,127}));
- connect(product2.y, add1.u2) annotation (Line(points={{1.1,-80},{1.1,-80},{24,
- -80},{24,-62}}, color={0,0,127}));
- connect(real_part, derOfReal.u) annotation (Line(points={{-100,64},{-84,64},{
- -70,64},{-70,44},{-60,44}}, color={0,0,127}));
- connect(derOfReal.y, product.u1) annotation (Line(points={{-37,44},{-30,44},{
- -30,32},{-20.2,32}}, color={0,0,127}));
- connect(product.u2, imag_part) annotation (Line(points={{-20.2,20},{-44,20},{
- -44,22},{-64,22},{-64,-72},{-100,-72}}, color={0,0,127}));
- connect(product2.u1, imag_part) annotation (Line(points={{-24.2,-74},{-46,-74},
- {-46,-72},{-100,-72}}, color={0,0,127}));
- connect(product2.u2, imag_part) annotation (Line(points={{-24.2,-86},{-38,-86},
- {-38,-88},{-46,-88},{-46,-72},{-100,-72}}, color={0,0,127}));
- connect(derOfImag.y, product1.u2) annotation (Line(points={{-33,-16},{-26,-16},
- {-26,-12},{-18.2,-12}}, color={0,0,127}));
- connect(product3.u1, derOfReal.u) annotation (Line(points={{-16.2,-38},{-70,-38},
- {-70,44},{-60,44}}, color={0,0,127}));
- connect(product1.u1, derOfReal.u) annotation (Line(points={{-18.2,0},{-36,0},
- {-36,6},{-70,6},{-70,44},{-60,44}}, color={0,0,127}));
- connect(derOfImag.u, imag_part) annotation (Line(points={{-56,-16},{-64,-16},
- {-64,-72},{-100,-72}}, color={0,0,127}));
- connect(product3.u2, derOfReal.u) annotation (Line(points={{-16.2,-50},{-34,-50},
- {-34,-38},{-70,-38},{-70,44},{-60,44}}, color={0,0,127}));
- annotation (Icon(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},
- {100,100}}), graphics={Rectangle(
- extent={{-100,100},{100,-100}},
- lineColor={28,108,200},
- fillColor={85,170,255},
- fillPattern=FillPattern.Solid),Text(
- extent={{-80,88},{-14,62}},
- lineColor={28,108,200},
- fillColor={28,108,200},
- fillPattern=FillPattern.Solid,
- textString="real part"),Text(
- extent={{-82,-44},{-16,-70}},
- lineColor={28,108,200},
- fillColor={28,108,200},
- fillPattern=FillPattern.Solid,
- textString="imag part"),Text(
- extent={{32,4},{110,-20}},
- lineColor={28,108,200},
- fillColor={28,108,200},
- fillPattern=FillPattern.Solid,
- textString="freq.
-")}), Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{
- 100,100}})));
- end FrenquencyCalc;
-
- block CeilingBlock
- "Implements the ceiling function primarily found inside AVRs."
- extends Modelica.Blocks.Interfaces.SISO;
- parameter Real Ae=0 "First ceiling coefficient";
- parameter Real Be=1 "Second ceiling coefficient";
-
- equation
- y = (Ae*Modelica.Math.exp(Be*abs(u)))*u;
-
- annotation (Icon(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},
- {100,100}}), graphics={Text(
- extent={{-78,42},{72,-30}},
- lineColor={28,108,200},
- textString="y=Ae*u*exp(Be|u|)")}));
- end CeilingBlock;
- annotation (Documentation);
- end Nonlinear;
-
- package Functions
- function SE "Scaled Quadratic Saturation Function (PTI PSS/E) "
- extends Modelica.Icons.Function;
- input Real u "Unsaturated Input";
- input Real SE1;
- input Real SE2;
- input Real E1;
- input Real E2;
- output Real sys "Saturated Output";
- protected
- parameter Real a=if SE2 <> 0 then sqrt(SE1*E1/(SE2*E2)) else 0;
- parameter Real A=E2 - (E1 - E2)/(a - 1);
- parameter Real B=if abs(E1 - E2) < Modelica.Constants.eps then 0 else SE2*E2*
- (a - 1)^2/(E1 - E2)^2;
- algorithm
- if SE1 == 0.0 or u <= 0.0 then
- sys := 0.0;
- else
- if u <= A then
- sys := 0.0;
- else
- sys := B*(u - A)^2/u;
- end if;
- end if;
- annotation (Documentation(info="
-"));
- end SE;
-
- function SE_exp "Exponential Saturation Function (PTI PSS/E) "
- extends Modelica.Icons.Function;
- input Real u "Unsaturated Input";
- input Real S_EE_1 "Saturation factor at point E_1";
- input Real S_EE_2 "Saturation factor at point E_2";
- input Real E_1 "First saturation point";
- input Real E_2 "Second saturation point";
- output Real sys "Saturated Output";
- protected
- parameter Real X=log(S_EE_2/S_EE_1)/log(E_2);
- algorithm
- sys := S_EE_1*u^X;
- annotation (Documentation);
- end SE_exp;
-
- block ImSE "Block for Saturation function of Exc "
- input Modelica.Blocks.Interfaces.RealInput VE_IN "Unsaturated Input"
- annotation (Placement(transformation(extent={{-120,-20},{-110,-10}}),
- iconTransformation(extent={{-120,-10},{-100,10}})));
- output Modelica.Blocks.Interfaces.RealOutput VE_OUT "Saturated Output"
- annotation (Placement(transformation(extent={{100,-2},{110,8}}),
- iconTransformation(extent={{100,-6},{112,6}})));
- parameter Real SE1 "Saturation at E1";
- parameter Real SE2 "Saturation at E2";
- parameter Real E1;
- parameter Real E2;
- equation
- VE_OUT = OpenIPSL.NonElectrical.Functions.SE(
- VE_IN,
- SE1,
- SE2,
- E1,
- E2);
- annotation (
- Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,-60},{100,
- 60}}), graphics),
- Icon(coordinateSystem(preserveAspectRatio=false, extent={{-100,-60},{100,60}}),
- graphics={Ellipse(
- extent={{-100,60},{100,-60}},
- lineColor={0,0,255},
- fillColor={255,255,255},
- fillPattern=FillPattern.Solid),Text(
- extent={{-88,40},{82,-40}},
- lineColor={0,0,255},
- textString="SE(Efd)")}),
- Documentation);
- end ImSE;
-
- model ImSE_exp "Block for Saturation function of Exc "
- Modelica.Blocks.Interfaces.RealInput VE_IN "Unsaturated Input" annotation (
- Placement(transformation(extent={{-140,-20},{-130,-10}}),
- iconTransformation(extent={{-120,-10},{-100,10}})));
- Modelica.Blocks.Interfaces.RealOutput VE_OUT "Saturated Output" annotation (
- Placement(transformation(extent={{100,-2},{110,8}}), iconTransformation(
- extent={{100,-6},{112,6}})));
- parameter Real SE1 "Saturation at E1";
- parameter Real SE2 "Saturation at E2";
- parameter Real E1;
- parameter Real E2;
- equation
- VE_OUT = OpenIPSL.NonElectrical.Functions.SE_exp(
- VE_IN,
- SE1,
- SE2,
- E1,
- E2);
- annotation (
- Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,-60},{100,
- 60}}), graphics),
- Icon(coordinateSystem(preserveAspectRatio=false, extent={{-100,-60},{100,60}}),
- graphics={Ellipse(
- extent={{-100,60},{100,-60}},
- lineColor={0,0,255},
- fillColor={255,255,255},
- fillPattern=FillPattern.Solid),Text(
- extent={{-88,38},{82,-42}},
- lineColor={0,0,255},
- textString="SE(Efd)")}),
- Documentation);
- end ImSE_exp;
-
- function displayPower
- "A function to generate a nice string of a power variable with unit attached."
- extends Modelica.Icons.Function;
- input Real pwrVar "Variabe to be converted into a string";
- input String unitStr "Unit string to be appended";
- output String pwrDsp "Resultant display string";
- algorithm
- pwrDsp := String(abs(pwrVar), format=".1f") + unitStr;
- annotation (Documentation);
- end displayPower;
- annotation (Documentation);
- end Functions;
- annotation (Documentation);
- end NonElectrical;
-
- package Interfaces "Package for interface models used in this library. "
- extends Modelica.Icons.InterfacesPackage;
-
- connector PwPin
- "Connector for electrical blocks treating voltage and current as complex variables"
- Real vr "Real part of the voltage";
- Real vi "Imaginary part of the voltage";
- flow Real ir "Real part of the current";
- flow Real ii "Imaginary part of the current";
- annotation (
- Icon(graphics={Rectangle(
- extent={{-100,100},{100,-100}},
- lineColor={0,0,255},
- fillColor={0,0,255},
- fillPattern=FillPattern.Solid)}),
- Diagram(graphics={Text(
- extent={{-100,160},{100,120}},
- lineColor={0,0,255},
- textString="%name"),Rectangle(
- extent={{-100,100},{100,-100}},
- lineColor={0,0,255},
- fillColor={0,0,255},
- fillPattern=FillPattern.Solid)}),
- Documentation);
- end PwPin;
-
- partial model Generator "Interface for a generator which provides the PwPin"
- extends OpenIPSL.Electrical.Essentials.pfComponent;
- parameter Boolean displayPF=false "Display power flow results:" annotation (
- Dialog(
- group="Visualisation",
- __Dymola_compact=true,
- __Dymola_descriptionLabel=true), choices(checkBox=true));
- OpenIPSL.Interfaces.PwPin pwPin annotation (Placement(transformation(
- extent={{100,-10},{120,10}}), iconTransformation(extent={{100,-10},
- {120,10}})));
- OpenIPSL.Types.ActivePowerMega P "Active power";
- OpenIPSL.Types.ReactivePowerMega Q "Reactive power";
- equation
- -P = (pwPin.vr*pwPin.ir + pwPin.vi*pwPin.ii)*S_b "Active power";
- -Q = (pwPin.vi*pwPin.ir - pwPin.vr*pwPin.ii)*S_b "Reactive power";
- annotation (Icon(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},
- {100,100}}), graphics={Ellipse(
- extent={{-100,100},{100,-100}},
- lineColor={0,0,0},
- fillColor={215,215,215},
- fillPattern=FillPattern.Solid),Line(
- points={{20,-20},{50,-40},{80,0}},
- color={0,0,0},
- thickness=0.5),Text(
- extent={{-40,20},{40,-20}},
- lineColor={0,0,0},
- textString="%name"),Text(
- visible=displayPF,
- extent={{-80,160},{80,80}},
- lineColor={255,0,0},
- textString=DynamicSelect("0.0 MW",
- OpenIPSL.NonElectrical.Functions.displayPower(P, " MW"))),Polygon(
- visible=displayPF,
- points=DynamicSelect({{-20,80},{-20,60},{20,70},{-20,80}}, if P >= 0
- then {{-20,80},{-20,60},{20,70},{-20,80}} else {{20,80},{20,60},{-20,
- 70},{20,80}}),
- lineColor={255,0,0},
- fillColor={255,0,0},
- fillPattern=FillPattern.Solid),Text(
- visible=displayPF,
- extent={{-80,-80},{80,-160}},
- lineColor={0,255,0},
- textString=DynamicSelect("0.0 Mvar",
- OpenIPSL.NonElectrical.Functions.displayPower(Q, " Mvar"))),Polygon(
- visible=displayPF,
- points=DynamicSelect({{-20,-80},{-20,-60},{20,-70},{-20,-80}}, if Q
- >= 0 then {{-20,-80},{-20,-60},{20,-70},{-20,-80}} else {{20,-80},
- {20,-60},{-20,-70},{20,-80}}),
- lineColor={0,255,0},
- fillColor={0,255,0},
- fillPattern=FillPattern.Solid),Line(
- points={{-20,20},{-50,40},{-80,0}},
- color={0,0,0},
- thickness=0.5)}), Documentation);
- end Generator;
- annotation (Documentation);
- end Interfaces;
-
- package Types "Collection of special types used in OpenIPSL"
- extends Modelica.Icons.TypesPackage;
-
- type ActivePowerMega = Real (final quantity="Power", final unit="MW")
- annotation (Documentation);
- type ApparentPowerMega = Real (final quantity="Power", final unit="MVA")
- annotation (Documentation);
- type ReactivePowerMega = Real (final quantity="Power", final unit="Mvar")
- annotation (Documentation);
- type VoltageKilo = Real (final quantity="ElectricPotential", final unit="kV")
- annotation (Documentation);
- annotation (Documentation);
- end Types;
- annotation (
- Protection(access = Access.packageDuplicate),
- conversion(
- from(version={"0.8","0.8.1","1.0.0","1.5.0"}, script="modelica://OpenIPSL/Resources/Scripts/ConvertOpenIPSL_from_1.5.0_to_2.0.0.mos")),
- Icon(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{100,100}}),
- graphics={Bitmap(extent={{-100,-100},{100,100}}, fileName=
- "modelica://OpenIPSL/Resources/Images/OpenIPSL_Logo.png")}));
- end OpenIPSL;
- annotation (
- uses(Modelica(version = "3.2.3"), OpenIPSL(version = "2.0.0-dev"), Modelica2018US_IslandedOperationControl(version = "1"), Complex(version = "3.2.3")));
-end IslandedOperationControl;
diff --git a/Modeling_Of_An_Islanded_Operation_Controller_For_Power_Systems_Study._By_Mr_Biswarup_Mukherjee_And_Prof._Luigi_Vanfretti/project_files/Modeling_of_an_islanded_operation_controller_for_power_systems_study.pdf b/Modeling_Of_An_Islanded_Operation_Controller_For_Power_Systems_Study._By_Mr_Biswarup_Mukherjee_And_Prof._Luigi_Vanfretti/project_files/Modeling_of_an_islanded_operation_controller_for_power_systems_study.pdf
deleted file mode 100644
index 1474590..0000000
Binary files a/Modeling_Of_An_Islanded_Operation_Controller_For_Power_Systems_Study._By_Mr_Biswarup_Mukherjee_And_Prof._Luigi_Vanfretti/project_files/Modeling_of_an_islanded_operation_controller_for_power_systems_study.pdf and /dev/null differ
diff --git a/Modeling_Of_Fault_Analysis_Of_6-Bus_System_By_Mr_Mohd_Ayaz/Modeling_of_fault_analysis_of_6_bus_system.pdf b/Modeling_Of_Fault_Analysis_Of_6-Bus_System_By_Mr_Mohd_Ayaz/Modeling_of_fault_analysis_of_6_bus_system.pdf
deleted file mode 100644
index ca3588c..0000000
Binary files a/Modeling_Of_Fault_Analysis_Of_6-Bus_System_By_Mr_Mohd_Ayaz/Modeling_of_fault_analysis_of_6_bus_system.pdf and /dev/null differ
diff --git a/Modeling_Of_Fault_Analysis_Of_6-Bus_System_By_Mr_Mohd_Ayaz/README.txt b/Modeling_Of_Fault_Analysis_Of_6-Bus_System_By_Mr_Mohd_Ayaz/README.txt
deleted file mode 100644
index d7297bd..0000000
--- a/Modeling_Of_Fault_Analysis_Of_6-Bus_System_By_Mr_Mohd_Ayaz/README.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-About the Power System Simulation
-
-Title Of The Power System Simulation Project: Modeling of Fault Analysis of 6-bus System
-Proposar Name: Mr Mohd Ayaz
-University: Kamla Nehru Institute Of Technology Sultanpur
-
-
-OM PSSP Project By FOSSEE, IIT Bombay
diff --git a/Modeling_Of_Fault_Analysis_Of_6-Bus_System_By_Mr_Mohd_Ayaz/project_files/Modeling_of_Fault_Analysis_of_six_Bus_System.pdf b/Modeling_Of_Fault_Analysis_Of_6-Bus_System_By_Mr_Mohd_Ayaz/project_files/Modeling_of_Fault_Analysis_of_six_Bus_System.pdf
deleted file mode 100644
index 0df591f..0000000
Binary files a/Modeling_Of_Fault_Analysis_Of_6-Bus_System_By_Mr_Mohd_Ayaz/project_files/Modeling_of_Fault_Analysis_of_six_Bus_System.pdf and /dev/null differ
diff --git a/Modeling_Of_Fault_Analysis_Of_6-Bus_System_By_Mr_Mohd_Ayaz/project_files/Modeling_of_fault_analysis_of_6_bus_system.zip b/Modeling_Of_Fault_Analysis_Of_6-Bus_System_By_Mr_Mohd_Ayaz/project_files/Modeling_of_fault_analysis_of_6_bus_system.zip
deleted file mode 100644
index 6325f4f..0000000
Binary files a/Modeling_Of_Fault_Analysis_Of_6-Bus_System_By_Mr_Mohd_Ayaz/project_files/Modeling_of_fault_analysis_of_6_bus_system.zip and /dev/null differ
diff --git "a/Modeling_Of_Ieee_9-Bus_Modified_Test_System_Using\r\nOpenipsl_By_Mrs_K.jeevitha/abstractalfc1.pdf" "b/Modeling_Of_Ieee_9-Bus_Modified_Test_System_Using\r\nOpenipsl_By_Mrs_K.jeevitha/abstractalfc1.pdf"
deleted file mode 100644
index 70fcb08..0000000
Binary files "a/Modeling_Of_Ieee_9-Bus_Modified_Test_System_Using\r\nOpenipsl_By_Mrs_K.jeevitha/abstractalfc1.pdf" and /dev/null differ
diff --git a/Modeling_Of_Rbts_System_Along_With_Generation_Expansion_Planning_By_Mr_Gandra_Mahesh/Modeling_of_RBTS_system_along_with_Generation_Expansion_Planning.pdf b/Modeling_Of_Rbts_System_Along_With_Generation_Expansion_Planning_By_Mr_Gandra_Mahesh/Modeling_of_RBTS_system_along_with_Generation_Expansion_Planning.pdf
deleted file mode 100644
index 9163827..0000000
Binary files a/Modeling_Of_Rbts_System_Along_With_Generation_Expansion_Planning_By_Mr_Gandra_Mahesh/Modeling_of_RBTS_system_along_with_Generation_Expansion_Planning.pdf and /dev/null differ
diff --git a/Modeling_Of_Rbts_System_Along_With_Generation_Expansion_Planning_By_Mr_Gandra_Mahesh/README.txt b/Modeling_Of_Rbts_System_Along_With_Generation_Expansion_Planning_By_Mr_Gandra_Mahesh/README.txt
deleted file mode 100644
index 0e50f8a..0000000
--- a/Modeling_Of_Rbts_System_Along_With_Generation_Expansion_Planning_By_Mr_Gandra_Mahesh/README.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-About the Power System Simulation
-
-Title Of The Power System Simulation Project: Modeling of RBTS system along with Generation Expansion Planning
-Proposar Name: Mr Gandra Mahesh
-University: Sir C R Reddy College Of Engineering
-
-
-OM PSSP Project By FOSSEE, IIT Bombay
diff --git a/Modeling_Of_Rbts_System_Along_With_Generation_Expansion_Planning_By_Mr_Gandra_Mahesh/project_files/Modeling_of_RBTS_system_along_with_Generation_Expansion_Planning.pdf b/Modeling_Of_Rbts_System_Along_With_Generation_Expansion_Planning_By_Mr_Gandra_Mahesh/project_files/Modeling_of_RBTS_system_along_with_Generation_Expansion_Planning.pdf
deleted file mode 100644
index 9163827..0000000
Binary files a/Modeling_Of_Rbts_System_Along_With_Generation_Expansion_Planning_By_Mr_Gandra_Mahesh/project_files/Modeling_of_RBTS_system_along_with_Generation_Expansion_Planning.pdf and /dev/null differ
diff --git a/Modeling_Of_Rbts_System_Along_With_Generation_Expansion_Planning_By_Mr_Gandra_Mahesh/project_files/Modeling_of_RBTS_system_along_with_Generation_Expansion_Planning.zip b/Modeling_Of_Rbts_System_Along_With_Generation_Expansion_Planning_By_Mr_Gandra_Mahesh/project_files/Modeling_of_RBTS_system_along_with_Generation_Expansion_Planning.zip
deleted file mode 100644
index 0373a0b..0000000
Binary files a/Modeling_Of_Rbts_System_Along_With_Generation_Expansion_Planning_By_Mr_Gandra_Mahesh/project_files/Modeling_of_RBTS_system_along_with_Generation_Expansion_Planning.zip and /dev/null differ
diff --git a/Modeling_Of_Single_Machine_Distribution_Network_Using_Modelica_And_Openipsl_By_Mr_Syed_Yasser_Ali/Modeling_of_proposed_Single_Machine_distribution_network_using_Modelica_and_OpenIPSL.pdf b/Modeling_Of_Single_Machine_Distribution_Network_Using_Modelica_And_Openipsl_By_Mr_Syed_Yasser_Ali/Modeling_of_proposed_Single_Machine_distribution_network_using_Modelica_and_OpenIPSL.pdf
deleted file mode 100644
index ed664d9..0000000
Binary files a/Modeling_Of_Single_Machine_Distribution_Network_Using_Modelica_And_Openipsl_By_Mr_Syed_Yasser_Ali/Modeling_of_proposed_Single_Machine_distribution_network_using_Modelica_and_OpenIPSL.pdf and /dev/null differ
diff --git a/Modeling_Of_Single_Machine_Distribution_Network_Using_Modelica_And_Openipsl_By_Mr_Syed_Yasser_Ali/README.txt b/Modeling_Of_Single_Machine_Distribution_Network_Using_Modelica_And_Openipsl_By_Mr_Syed_Yasser_Ali/README.txt
deleted file mode 100644
index 09dba83..0000000
--- a/Modeling_Of_Single_Machine_Distribution_Network_Using_Modelica_And_Openipsl_By_Mr_Syed_Yasser_Ali/README.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-About the Power System Simulation
-
-Title Of The Power System Simulation Project: Modeling of single machine distribution network using Modelica and OpenIPSL
-Proposar Name: Mr Syed Yasser Ali
-University: Jawaharlal Nehru Technological University Hyderabad
-
-
-OM PSSP Project By FOSSEE, IIT Bombay
diff --git a/Modeling_Of_Single_Machine_Distribution_Network_Using_Modelica_And_Openipsl_By_Mr_Syed_Yasser_Ali/project_files/Modeling_of_proposed_Single_Machine_distribution_network_using_Modelica_and_OpenIPSL.pdf b/Modeling_Of_Single_Machine_Distribution_Network_Using_Modelica_And_Openipsl_By_Mr_Syed_Yasser_Ali/project_files/Modeling_of_proposed_Single_Machine_distribution_network_using_Modelica_and_OpenIPSL.pdf
deleted file mode 100644
index ed664d9..0000000
Binary files a/Modeling_Of_Single_Machine_Distribution_Network_Using_Modelica_And_Openipsl_By_Mr_Syed_Yasser_Ali/project_files/Modeling_of_proposed_Single_Machine_distribution_network_using_Modelica_and_OpenIPSL.pdf and /dev/null differ
diff --git a/Modeling_Of_Single_Machine_Distribution_Network_Using_Modelica_And_Openipsl_By_Mr_Syed_Yasser_Ali/project_files/Modeling_of_proposed_Single_Machine_distribution_network_using_Modelica_and_OpenIPSL.zip b/Modeling_Of_Single_Machine_Distribution_Network_Using_Modelica_And_Openipsl_By_Mr_Syed_Yasser_Ali/project_files/Modeling_of_proposed_Single_Machine_distribution_network_using_Modelica_and_OpenIPSL.zip
deleted file mode 100644
index 9d0b7b0..0000000
Binary files a/Modeling_Of_Single_Machine_Distribution_Network_Using_Modelica_And_Openipsl_By_Mr_Syed_Yasser_Ali/project_files/Modeling_of_proposed_Single_Machine_distribution_network_using_Modelica_and_OpenIPSL.zip and /dev/null differ
diff --git a/Modeling_Of_Single_Machine_Infinite_Bus_(smib)_Using_Modelica_And_The_Openipsl_By_Mr_Biswarup_Mukherjee_And_Prof._Luigi_Vanfretti/A2_final.pdf b/Modeling_Of_Single_Machine_Infinite_Bus_(smib)_Using_Modelica_And_The_Openipsl_By_Mr_Biswarup_Mukherjee_And_Prof._Luigi_Vanfretti/A2_final.pdf
deleted file mode 100644
index 469316c..0000000
Binary files a/Modeling_Of_Single_Machine_Infinite_Bus_(smib)_Using_Modelica_And_The_Openipsl_By_Mr_Biswarup_Mukherjee_And_Prof._Luigi_Vanfretti/A2_final.pdf and /dev/null differ
diff --git a/Modeling_Of_Single_Machine_Infinite_Bus_(smib)_Using_Modelica_And_The_Openipsl_By_Mr_Biswarup_Mukherjee_And_Prof._Luigi_Vanfretti/README.txt b/Modeling_Of_Single_Machine_Infinite_Bus_(smib)_Using_Modelica_And_The_Openipsl_By_Mr_Biswarup_Mukherjee_And_Prof._Luigi_Vanfretti/README.txt
deleted file mode 100644
index 80e40a4..0000000
--- a/Modeling_Of_Single_Machine_Infinite_Bus_(smib)_Using_Modelica_And_The_Openipsl_By_Mr_Biswarup_Mukherjee_And_Prof._Luigi_Vanfretti/README.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-About the Power System Simulation
-
-Title Of The Power System Simulation Project: Modeling of single machine infinite bus (SMIB) using Modelica and the OpenIPSL
-Proposar Name: Mr B. Mukherjee & L. Vanfretti
-University: Iit Bombay And Kth Sweden
-
-
-OM PSSP Project By FOSSEE, IIT Bombay
diff --git a/Modeling_Of_Single_Machine_Infinite_Bus_(smib)_Using_Modelica_And_The_Openipsl_By_Mr_Biswarup_Mukherjee_And_Prof._Luigi_Vanfretti/project_files/A2_final.pdf b/Modeling_Of_Single_Machine_Infinite_Bus_(smib)_Using_Modelica_And_The_Openipsl_By_Mr_Biswarup_Mukherjee_And_Prof._Luigi_Vanfretti/project_files/A2_final.pdf
deleted file mode 100644
index 469316c..0000000
Binary files a/Modeling_Of_Single_Machine_Infinite_Bus_(smib)_Using_Modelica_And_The_Openipsl_By_Mr_Biswarup_Mukherjee_And_Prof._Luigi_Vanfretti/project_files/A2_final.pdf and /dev/null differ
diff --git a/Modeling_Of_Single_Machine_Infinite_Bus_(smib)_Using_Modelica_And_The_Openipsl_By_Mr_Biswarup_Mukherjee_And_Prof._Luigi_Vanfretti/project_files/SMIB_Simple.mo b/Modeling_Of_Single_Machine_Infinite_Bus_(smib)_Using_Modelica_And_The_Openipsl_By_Mr_Biswarup_Mukherjee_And_Prof._Luigi_Vanfretti/project_files/SMIB_Simple.mo
deleted file mode 100644
index 8f108bc..0000000
--- a/Modeling_Of_Single_Machine_Infinite_Bus_(smib)_Using_Modelica_And_The_Openipsl_By_Mr_Biswarup_Mukherjee_And_Prof._Luigi_Vanfretti/project_files/SMIB_Simple.mo
+++ /dev/null
@@ -1,63 +0,0 @@
-model SMIB_Simple
- extends Modelica.Icons.Example;
- import Modelica.Constants.pi;
- OpenIPSL.Electrical.Buses.Bus B1(displayPF = false) annotation(
- Placement(visible = true, transformation(extent = {{-26, -10}, {-6, 10}}, rotation = 0)));
- OpenIPSL.Electrical.Buses.Bus B2(displayPF = false) annotation(
- Placement(visible = true, transformation(extent = {{4, -10}, {24, 10}}, rotation = 0)));
- OpenIPSL.Electrical.Buses.Bus B3(displayPF = false) annotation(
- Placement(visible = true, transformation(extent = {{72, -10}, {92, 10}}, rotation = 0)));
- OpenIPSL.Electrical.Branches.PSAT.TwoWindingTransformer Transformer(Sn = 2220, x = 0.15, r = 0, V_b = 400, Vn = 400) annotation(
- Placement(visible = true, transformation(extent = {{-12, -10}, {8, 10}}, rotation = 0)));
- OpenIPSL.Electrical.Branches.PwLine line_1(R = 0, G = 0, B = 0, X = 0.022522522522523, S_b = 100) annotation(
- Placement(visible = true, transformation(extent = {{38, 10}, {58, 30}}, rotation = 0)));
- OpenIPSL.Electrical.Buses.InfiniteBus infinite_bus(V_0 = 0.90081, P_0 = -1998, Q_0 = 87.066) annotation(
- Placement(visible = true, transformation(origin = {112, 0}, extent = {{-10, 10}, {10, -10}}, rotation = 180)));
- OpenIPSL.Electrical.Events.PwFault fault(R = 0, t1 = 0.5, t2 = 0.57, X = 0.0004504504504504504) annotation(
- Placement(visible = true, transformation(extent = {{34, -60}, {54, -40}}, rotation = 0)));
- OpenIPSL.Electrical.Branches.PwLine line_2(R = 0, G = 0, B = 0, S_b = 100, X = 0.041891891891892) annotation(
- Placement(visible = true, transformation(extent = {{38, -30}, {58, -10}}, rotation = 0)));
- inner OpenIPSL.Electrical.SystemBase SysData(S_b = 100, fn = 50) annotation(
- Placement(visible = true, transformation(origin = {95, 90}, extent = {{-23, -8}, {23, 8}}, rotation = 0)));
- OpenIPSL.Electrical.Controls.PSAT.AVR.AVRtypeIII aVRtypeIII1(K0 = 200, T1 = 1, T2 = 1, Te = 0.0001, Tr = 0.015, vfmax = 7, vfmin = -6.40) annotation(
- Placement(visible = true, transformation(origin = {-90, 7}, extent = {{-12, -13}, {12, 13}}, rotation = 0)));
- OpenIPSL.Electrical.Machines.PSAT.Order6 order61(D = 0, M = 7, P_0 = 1997.9999999936396, Q_0 = 967.9249699065775, Sn = 2220, Vn = 400, angle_0 = 0.494677176989154 * 180 / pi, ra = 0.003, x1d = 0.3) annotation(
- Placement(visible = true, transformation(origin = {-50, -2.22045e-15}, extent = {{-14, -14}, {14, 14}}, rotation = 0)));
- Modelica.Blocks.Sources.Constant const(k = 0) annotation(
- Placement(visible = true, transformation(origin = {-88, -34}, extent = {{10, -10}, {-10, 10}}, rotation = 0)));
-equation
- connect(const.y, aVRtypeIII1.vs) annotation(
- Line(points = {{-100, -34}, {-110, -34}, {-110, 0}, {-102, 0}, {-102, 0}, {-100, 0}}, color = {0, 0, 127}));
- connect(B1.p, Transformer.p) annotation(
- Line(points = {{-16, 0}, {-13, 0}}, color = {0, 0, 255}));
- connect(Transformer.n, B2.p) annotation(
- Line(points = {{9, 0}, {14, 0}}, color = {0, 0, 255}));
- connect(fault.p, line_2.p) annotation(
- Line(points = {{32, -50}, {22, -50}, {22, -20}, {40, -20}}, color = {0, 0, 255}));
- connect(B2.p, line_2.p) annotation(
- Line(points = {{14, 0}, {22, 0}, {22, -20}, {39, -20}}, color = {0, 0, 255}));
- connect(B2.p, line_1.p) annotation(
- Line(points = {{14, 0}, {22, 0}, {22, 20}, {39, 20}}, color = {0, 0, 255}));
- connect(order61.p, B1.p) annotation(
- Line(points = {{-36, 0}, {-16, 0}}, color = {0, 0, 255}));
- connect(line_2.n, line_1.n) annotation(
- Line(points = {{57, -20}, {72, -20}, {72, 20}, {57, 20}}, color = {0, 0, 255}));
- connect(B3.p, line_1.n) annotation(
- Line(points = {{82, 0}, {72, 0}, {72, 20}, {57, 20}}, color = {0, 0, 255}));
- connect(aVRtypeIII1.v, order61.v) annotation(
- Line(points = {{-102, 14}, {-110, 14}, {-110, 42}, {-26, 42}, {-26, 4}, {-34, 4}}, color = {0, 0, 127}));
- connect(aVRtypeIII1.vf, order61.vf) annotation(
- Line(points = {{-77, 7}, {-67, 7}}, color = {0, 0, 127}));
- connect(order61.vf0, aVRtypeIII1.vf0) annotation(
- Line(points = {{-61, 15}, {-61, 36}, {-90, 36}, {-90, 19}}, color = {0, 0, 127}));
- connect(order61.pm0, order61.pm) annotation(
- Line(points = {{-62, -16}, {-62, -16}, {-62, -22}, {-74, -22}, {-74, -6}, {-68, -6}, {-68, -8}, {-66, -8}}, color = {0, 0, 127}));
- connect(B3.p, infinite_bus.p) annotation(
- Line(points = {{82, 0}, {82, 0}, {102, 0}, {102, 1.33227e-15}}, color = {0, 0, 255}));
- annotation(
- Icon(coordinateSystem(extent = {{-120, -100}, {120, 100}})),
- Diagram(coordinateSystem(extent = {{-120, -100}, {120, 100}}, preserveAspectRatio = false, initialScale = 0.1)),
- experiment(StartTime = 0, StopTime = 10, Tolerance = 1e-6, Interval = 1e-4),
- Documentation,
- uses(OpenIPSL(version = "1.5.0"), Modelica(version = "3.2.2")));
-end SMIB_Simple;
diff --git a/Modeling_Of_Single_Machine_Infinite_Bus_(smib_Controlled)_Using_The_Openipsl_By_Mr_Biswarup_Mukherjee_And_Prof._Luigi_Vanfretti/A3_final.pdf b/Modeling_Of_Single_Machine_Infinite_Bus_(smib_Controlled)_Using_The_Openipsl_By_Mr_Biswarup_Mukherjee_And_Prof._Luigi_Vanfretti/A3_final.pdf
deleted file mode 100644
index a38eeb9..0000000
Binary files a/Modeling_Of_Single_Machine_Infinite_Bus_(smib_Controlled)_Using_The_Openipsl_By_Mr_Biswarup_Mukherjee_And_Prof._Luigi_Vanfretti/A3_final.pdf and /dev/null differ
diff --git a/Modeling_Of_Single_Machine_Infinite_Bus_(smib_Controlled)_Using_The_Openipsl_By_Mr_Biswarup_Mukherjee_And_Prof._Luigi_Vanfretti/README.txt b/Modeling_Of_Single_Machine_Infinite_Bus_(smib_Controlled)_Using_The_Openipsl_By_Mr_Biswarup_Mukherjee_And_Prof._Luigi_Vanfretti/README.txt
deleted file mode 100644
index 4eedfc5..0000000
--- a/Modeling_Of_Single_Machine_Infinite_Bus_(smib_Controlled)_Using_The_Openipsl_By_Mr_Biswarup_Mukherjee_And_Prof._Luigi_Vanfretti/README.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-About the Power System Simulation
-
-Title Of The Power System Simulation Project: Modeling of single machine infinite bus (SMIB)(Controlled) using the OpenIPSL
-Proposar Name: Mr B. Mukherjee & L. Vanfretti
-University: Iit Bombay And Kth Sweden
-
-
-OM PSSP Project By FOSSEE, IIT Bombay
diff --git a/Modeling_Of_Single_Machine_Infinite_Bus_(smib_Controlled)_Using_The_Openipsl_By_Mr_Biswarup_Mukherjee_And_Prof._Luigi_Vanfretti/project_files/A3_final.pdf b/Modeling_Of_Single_Machine_Infinite_Bus_(smib_Controlled)_Using_The_Openipsl_By_Mr_Biswarup_Mukherjee_And_Prof._Luigi_Vanfretti/project_files/A3_final.pdf
deleted file mode 100644
index a38eeb9..0000000
Binary files a/Modeling_Of_Single_Machine_Infinite_Bus_(smib_Controlled)_Using_The_Openipsl_By_Mr_Biswarup_Mukherjee_And_Prof._Luigi_Vanfretti/project_files/A3_final.pdf and /dev/null differ
diff --git a/Modeling_Of_Single_Machine_Infinite_Bus_(smib_Controlled)_Using_The_Openipsl_By_Mr_Biswarup_Mukherjee_And_Prof._Luigi_Vanfretti/project_files/SMIB_Control.mo b/Modeling_Of_Single_Machine_Infinite_Bus_(smib_Controlled)_Using_The_Openipsl_By_Mr_Biswarup_Mukherjee_And_Prof._Luigi_Vanfretti/project_files/SMIB_Control.mo
deleted file mode 100644
index faa722b..0000000
--- a/Modeling_Of_Single_Machine_Infinite_Bus_(smib_Controlled)_Using_The_Openipsl_By_Mr_Biswarup_Mukherjee_And_Prof._Luigi_Vanfretti/project_files/SMIB_Control.mo
+++ /dev/null
@@ -1,65 +0,0 @@
-model SMIB_Control
- extends Modelica.Icons.Example;
- import Modelica.Constants.pi;
- OpenIPSL.Electrical.Buses.Bus B1(displayPF = false) annotation(
- Placement(visible = true, transformation(extent = {{-26, -10}, {-6, 10}}, rotation = 0)));
- OpenIPSL.Electrical.Buses.Bus B2(displayPF = false) annotation(
- Placement(visible = true, transformation(extent = {{4, -10}, {24, 10}}, rotation = 0)));
- OpenIPSL.Electrical.Buses.Bus B3(displayPF = false) annotation(
- Placement(visible = true, transformation(extent = {{72, -10}, {92, 10}}, rotation = 0)));
- OpenIPSL.Electrical.Branches.PSAT.TwoWindingTransformer Transformer(Sn = 2220, x = 0.15, r = 0, V_b = 400, Vn = 400) annotation(
- Placement(visible = true, transformation(extent = {{-12, -10}, {8, 10}}, rotation = 0)));
- OpenIPSL.Electrical.Branches.PwLine line_1(R = 0, G = 0, B = 0, X = 0.022522522522523, S_b = 100) annotation(
- Placement(visible = true, transformation(extent = {{38, 10}, {58, 30}}, rotation = 0)));
- OpenIPSL.Electrical.Buses.InfiniteBus infinite_bus(V_0 = 0.90081, P_0 = -1998, Q_0 = 87.066) annotation(
- Placement(visible = true, transformation(origin = {112, 0}, extent = {{-10, 10}, {10, -10}}, rotation = 180)));
- OpenIPSL.Electrical.Events.PwFault fault(R = 0, t1 = 0.5, t2 = 0.57, X = 0.0004504504504504504) annotation(
- Placement(visible = true, transformation(extent = {{34, -60}, {54, -40}}, rotation = 0)));
- OpenIPSL.Electrical.Branches.PwLine line_2(R = 0, G = 0, B = 0, S_b = 100, X = 0.041891891891892) annotation(
- Placement(visible = true, transformation(extent = {{38, -30}, {58, -10}}, rotation = 0)));
- inner OpenIPSL.Electrical.SystemBase SysData(S_b = 100, fn = 50) annotation(
- Placement(visible = true, transformation(origin = {89, 83}, extent = {{-27, -11}, {27, 11}}, rotation = 0)));
- OpenIPSL.Electrical.Controls.PSAT.PSS.PSSTypeII pSSTypeII1(Kw = 9.5, T1 = 0.154, T2 = 0.033, T3 = 1, T4 = 1, Tw = 1.41, vsmax = 0.2, vsmin = -0.2) annotation(
- Placement(visible = true, transformation(origin = {-106, -30}, extent = {{-10, -10}, {10, 10}}, rotation = 90)));
- OpenIPSL.Electrical.Controls.PSAT.AVR.AVRtypeIII aVRtypeIII1(K0 = 200, T1 = 1, T2 = 1, Te = 0.0001, Tr = 0.015, vfmax = 7, vfmin = -6.40) annotation(
- Placement(visible = true, transformation(origin = {-90, 7}, extent = {{-12, -13}, {12, 13}}, rotation = 0)));
- OpenIPSL.Electrical.Machines.PSAT.Order6 order61(D = 0, M = 7,P_0 = 1997.9999999936396, Q_0 = 967.9249699065775, Sn = 2220, Vn = 400, angle_0 = 0.494677176989154 * 180 / pi, ra = 0.003, x1d = 0.3) annotation(
- Placement(visible = true, transformation(origin = {-50, -2.22045e-15}, extent = {{-14, -14}, {14, 14}}, rotation = 0)));
-equation
- connect(fault.p, line_2.p) annotation(
- Line(points = {{32, -50}, {22, -50}, {22, -20}, {40, -20}}, color = {0, 0, 255}));
- connect(B2.p, line_2.p) annotation(
- Line(points = {{14, 0}, {22, 0}, {22, -20}, {39, -20}}, color = {0, 0, 255}));
- connect(B2.p, line_1.p) annotation(
- Line(points = {{14, 0}, {22, 0}, {22, 20}, {39, 20}}, color = {0, 0, 255}));
- connect(Transformer.n, B2.p) annotation(
- Line(points = {{9, 0}, {14, 0}}, color = {0, 0, 255}));
- connect(B1.p, Transformer.p) annotation(
- Line(points = {{-16, 0}, {-13, 0}}, color = {0, 0, 255}));
- connect(order61.p, B1.p) annotation(
- Line(points = {{-36, 0}, {-16, 0}}, color = {0, 0, 255}));
- connect(line_2.n, line_1.n) annotation(
- Line(points = {{57, -20}, {72, -20}, {72, 20}, {57, 20}}, color = {0, 0, 255}));
- connect(B3.p, line_1.n) annotation(
- Line(points = {{82, 0}, {72, 0}, {72, 20}, {57, 20}}, color = {0, 0, 255}));
- connect(aVRtypeIII1.v, order61.v) annotation(
- Line(points = {{-102, 14}, {-110, 14}, {-110, 42}, {-26, 42}, {-26, 4}, {-34, 4}}, color = {0, 0, 127}));
- connect(pSSTypeII1.vs, aVRtypeIII1.vs) annotation(
- Line(points = {{-106, -18}, {-106, 0}, {-101, 0}}, color = {0, 0, 127}));
- connect(aVRtypeIII1.vf, order61.vf) annotation(
- Line(points = {{-77, 7}, {-67, 7}}, color = {0, 0, 127}));
- connect(order61.vf0, aVRtypeIII1.vf0) annotation(
- Line(points = {{-61, 15}, {-61, 36}, {-90, 36}, {-90, 19}}, color = {0, 0, 127}));
- connect(order61.pm0, order61.pm) annotation(
- Line(points = {{-62, -16}, {-62, -16}, {-62, -22}, {-74, -22}, {-74, -6}, {-68, -6}, {-68, -8}, {-66, -8}}, color = {0, 0, 127}));
- connect(order61.w, pSSTypeII1.vSI) annotation(
- Line(points = {{-35, 13}, {-30, 13}, {-30, -56}, {-106, -56}, {-106, -41}}, color = {0, 0, 127}));
- connect(B3.p, infinite_bus.p) annotation(
- Line(points = {{82, 0}, {82, 0}, {102, 0}, {102, 1.33227e-15}}, color = {0, 0, 255}));
- annotation(
- Icon(coordinateSystem(extent = {{-120, -100}, {120, 100}})),
- Diagram(coordinateSystem(extent = {{-120, -100}, {120, 100}}, preserveAspectRatio = false, initialScale = 0.1)),
- experiment(StartTime = 0, StopTime = 10, Tolerance = 1e-6, Interval = 1e-4),
- Documentation,
- uses(OpenIPSL(version = "1.5.0")));
-end SMIB_Control;
diff --git a/Modelling_And_Simulation_Od_51-Bus_System_Using_Openipsl_By_Mr_R._Asick/Abstract.pdf b/Modelling_And_Simulation_Od_51-Bus_System_Using_Openipsl_By_Mr_R._Asick/Abstract.pdf
new file mode 100644
index 0000000..9bac049
Binary files /dev/null and b/Modelling_And_Simulation_Od_51-Bus_System_Using_Openipsl_By_Mr_R._Asick/Abstract.pdf differ
diff --git a/Modelling_And_Simulation_Od_51-Bus_System_Using_Openipsl_By_Mr_R._Asick/README.txt b/Modelling_And_Simulation_Od_51-Bus_System_Using_Openipsl_By_Mr_R._Asick/README.txt
new file mode 100644
index 0000000..9d17218
--- /dev/null
+++ b/Modelling_And_Simulation_Od_51-Bus_System_Using_Openipsl_By_Mr_R._Asick/README.txt
@@ -0,0 +1,8 @@
+About the Power System Simulation
+
+Title Of The Power System Simulation Project: Modelling and Simulation od 51-bus System using OpenModelica and OpenIPSL
+Proposar Name: Mr R. Asick
+University: St Xavier'S Catholic College Of Engineering
+
+
+OM PSSP Project By FOSSEE, IIT Bombay
diff --git a/Modelling_And_Simulation_Od_51-Bus_System_Using_Openipsl_By_Mr_R._Asick/project_files/Modelling_of_51_bus_system.mo b/Modelling_And_Simulation_Od_51-Bus_System_Using_Openipsl_By_Mr_R._Asick/project_files/Modelling_of_51_bus_system.mo
new file mode 100644
index 0000000..2d14c48
--- /dev/null
+++ b/Modelling_And_Simulation_Od_51-Bus_System_Using_Openipsl_By_Mr_R._Asick/project_files/Modelling_of_51_bus_system.mo
@@ -0,0 +1,2144 @@
+package Modelling_of_51_bus_system
+ package Modelling_of_51_bus_system_case1
+ model Network
+ OpenIPSL.Electrical.Buses.Bus B1(P_0 = 45.70, Q_0 = 366.71, V_0 = 1.080, V_b = 11, angle_0 = 0, displayPF = true) annotation(
+ Placement(visible = true, transformation(origin = {-170, 194}, extent = {{-18, -18}, {18, 18}}, rotation = -90)));
+ OpenIPSL.Electrical.Buses.Bus B49(P_0 = 350, Q_0 = 0, V_0 = 1, V_b = 11, angle_0 = 8.095, displayPF = true) annotation(
+ Placement(visible = true, transformation(origin = {-50, 194}, extent = {{-16, -16}, {16, 16}}, rotation = -90)));
+ OpenIPSL.Electrical.Buses.Bus B50(P_0 = 120, Q_0 = 22.41, V_0 = 1, V_b = 11, angle_0 = 8.022, displayPF = true) annotation(
+ Placement(visible = true, transformation(origin = {64, 194}, extent = {{-14, -14}, {14, 14}}, rotation = -90)));
+ OpenIPSL.Electrical.Buses.Bus B35(P_0 = 0, Q_0 = 0, V_0 = 0.946, V_b = 11.459, angle_0 = -1.496, displayPF = true) annotation(
+ Placement(visible = true, transformation(origin = {173, 195}, extent = {{-15, -15}, {15, 15}}, rotation = -90)));
+ OpenIPSL.Electrical.Buses.Bus B3(P_0 = 90, Q_0 = 50, V_0 = 0.974, V_b = 11, angle_0 = -4.817, displayPF = true) annotation(
+ Placement(visible = true, transformation(origin = {259, 211}, extent = {{-17, -17}, {17, 17}}, rotation = -90)));
+ OpenIPSL.Electrical.Buses.Bus B2(P_0 = 50, Q_0 = 20, V_0 = 0.967, V_b = 11, angle_0 = -4.478, displayPF = true) annotation(
+ Placement(visible = true, transformation(origin = {119, 261}, extent = {{-13, -13}, {13, 13}}, rotation = -90)));
+ OpenIPSL.Electrical.Buses.Bus B48(P_0 = 55, Q_0 = 7.55, V_0 = 1, V_b = 11, angle_0 = -1.141, displayPF = true) annotation(
+ Placement(visible = true, transformation(origin = {81, 311}, extent = {{-15, -15}, {15, 15}}, rotation = -90)));
+ OpenIPSL.Electrical.Buses.Bus B4(P_0 = 0, Q_0 = 0, V_0 = 0.974, V_b = 11, angle_0 = -4.843, displayPF = true) annotation(
+ Placement(visible = true, transformation(origin = {268, 264}, extent = {{-16, -16}, {16, 16}}, rotation = -90)));
+ OpenIPSL.Electrical.Buses.Bus B5(P_0 = 11.90, Q_0 = 0, V_0 = 0.901, V_b = 248.4, angle_0 = -6.593, displayPF = true) annotation(
+ Placement(visible = true, transformation(origin = {272, 320}, extent = {{-14, -14}, {14, 14}}, rotation = -90)));
+ OpenIPSL.Electrical.Buses.Bus B34(P_0 = 58, Q_0 = 26, V_0 = 0.986, V_b = 11.9625, angle_0 = -4.330, displayPF = true) annotation(
+ Placement(visible = true, transformation(origin = {-257, 213}, extent = {{-15, -15}, {15, 15}}, rotation = -90)));
+ OpenIPSL.Electrical.Buses.Bus B32(P_0 = 30, Q_0 = 17, V_0 = 0.986, V_b = 11, angle_0 = -10.058, displayPF = true) annotation(
+ Placement(visible = true, transformation(origin = {-338, 210}, extent = {{-14, -14}, {14, 14}}, rotation = -90)));
+ OpenIPSL.Electrical.Buses.Bus B51(P_0 = 50, Q_0 = 30, V_0 = 0.979, V_b = 11, angle_0 = -12.199, displayPF = true) annotation(
+ Placement(visible = true, transformation(origin = {-398, 250}, extent = {{-16, -16}, {16, 16}}, rotation = -90)));
+ OpenIPSL.Electrical.Buses.Bus B33(P_0 = 50, Q_0 = 25.97, V_0 = 1, V_b = 11, angle_0 = -10.479, displayPF = true) annotation(
+ Placement(visible = true, transformation(origin = {-349, 313}, extent = {{-15, -15}, {15, 15}}, rotation = -90)));
+ OpenIPSL.Electrical.Buses.Bus B30(P_0 = 47, Q_0 = 66.16, V_0 = 1, V_b = 11, angle_0 = -12.890, displayPF = true) annotation(
+ Placement(visible = true, transformation(origin = {-333, 123}, extent = {{-17, -17}, {17, 17}}, rotation = -90)));
+ OpenIPSL.Electrical.Buses.Bus B46(P_0 = 0, Q_0 = 0, V_0 = 0.944, V_b = 11.825, angle_0 = -10.375, displayPF = true) annotation(
+ Placement(visible = true, transformation(origin = {-239, 145}, extent = {{-17, -17}, {17, 17}}, rotation = -90)));
+ OpenIPSL.Electrical.Buses.Bus B6(P_0 = 19, Q_0 = 10, V_0 = 0.950, V_b = 11, angle_0 = -6.180, displayPF = true) annotation(
+ Placement(visible = true, transformation(origin = {267, 149}, extent = {{-15, -15}, {15, 15}}, rotation = -90)));
+ OpenIPSL.Electrical.Buses.Bus B7(P_0 = 33, Q_0 = 62.54, V_0 = 1, V_b = 11, angle_0 = -4.872, displayPF = true) annotation(
+ Placement(visible = true, transformation(origin = {267, 97}, extent = {{-15, -15}, {15, 15}}, rotation = -90)));
+ OpenIPSL.Electrical.Buses.Bus B8(P_0 = 44, Q_0 = 24, V_0 = 0.992, V_b = 11, angle_0 = -5.311, displayPF = true) annotation(
+ Placement(visible = true, transformation(origin = {272, 46}, extent = {{-14, -14}, {14, 14}}, rotation = -90)));
+ OpenIPSL.Electrical.Buses.Bus B9(P_0 = 22, Q_0 = 12, V_0 = 0.994, V_b = 11, angle_0 = -5.307, displayPF = true) annotation(
+ Placement(visible = true, transformation(origin = {273, -7}, extent = {{-15, -15}, {15, 15}}, rotation = -90)));
+ OpenIPSL.Electrical.Buses.Bus B10(P_0 = 21, Q_0 = 12, V_0 = 1.004, V_b = 11, angle_0 = -4.889, displayPF = true) annotation(
+ Placement(visible = true, transformation(origin = {276, -60}, extent = {{-16, -16}, {16, 16}}, rotation = -90)));
+ OpenIPSL.Electrical.Buses.Bus B11(P_0 = 34, Q_0 = 5, V_0 = 1.025, V_b = 11, angle_0 = -3.998, displayPF = true) annotation(
+ Placement(visible = true, transformation(origin = {280, -118}, extent = {{-16, -16}, {16, 16}}, rotation = -90)));
+ OpenIPSL.Electrical.Buses.Bus B12(P_0 = 24, Q_0 = 13.60, V_0 = 1.002, V_b = 11, angle_0 = -4.124, displayPF = true) annotation(
+ Placement(visible = true, transformation(origin = {280, -164}, extent = {{-16, -16}, {16, 16}}, rotation = -90)));
+ OpenIPSL.Electrical.Buses.Bus B13(P_0 = 19, Q_0 = 11, V_0 = 0.995, V_b = 11, angle_0 = -4.224, displayPF = true) annotation(
+ Placement(visible = true, transformation(origin = {283, -213}, extent = {{-15, -15}, {15, 15}}, rotation = -90)));
+ OpenIPSL.Electrical.Buses.Bus B14(P_0 = 19, Q_0 = 4, V_0 = 1.016, V_b = 11, angle_0 = -2.856, displayPF = true) annotation(
+ Placement(visible = true, transformation(origin = {288, -264}, extent = {{-14, -14}, {14, 14}}, rotation = -90)));
+ OpenIPSL.Electrical.Buses.Bus B15(P_0 = 24, Q_0 = -16.23, V_0 = 1, V_b = 11, angle_0 = -1.049, displayPF = true) annotation(
+ Placement(visible = true, transformation(origin = {286, -330}, extent = {{-16, -16}, {16, 16}}, rotation = -90)));
+ OpenIPSL.Electrical.Buses.Bus B16(P_0 = 54, Q_0 = 30, V_0 = 0.987, V_b = 11, angle_0 = -2.053, displayPF = true) annotation(
+ Placement(visible = true, transformation(origin = {160, -300}, extent = {{-14, -14}, {14, 14}}, rotation = -90)));
+ OpenIPSL.Electrical.Buses.Bus B17(P_0 = 46, Q_0 = 4.20, V_0 = 1, V_b = 11, angle_0 = -7.675, displayPF = true) annotation(
+ Placement(visible = true, transformation(origin = {52, -336}, extent = {{-14, -14}, {14, 14}}, rotation = -90)));
+ OpenIPSL.Electrical.Buses.Bus B18(P_0 = 37, Q_0 = 22, V_0 = 0.971, V_b = 11, angle_0 = -10.625, displayPF = true) annotation(
+ Placement(visible = true, transformation(origin = {-32, -330}, extent = {{-14, -14}, {14, 14}}, rotation = -90)));
+ OpenIPSL.Electrical.Buses.Bus B40(P_0 = 0, Q_0 = 0, V_0 = 0.901, V_b = 11.99, angle_0 = -10.349, displayPF = true) annotation(
+ Placement(visible = true, transformation(origin = {-36, -278}, extent = {{-14, -14}, {14, 14}}, rotation = -90)));
+ OpenIPSL.Electrical.Buses.Bus B19(P_0 = 31, Q_0 = 14.77, V_0 = 1, V_b = 11, angle_0 = -10.672, displayPF = true) annotation(
+ Placement(visible = true, transformation(origin = {-137, -181}, extent = {{-15, -15}, {15, 15}}, rotation = -90)));
+ OpenIPSL.Electrical.Buses.Bus B44(P_0 = 175, Q_0 = 50.26, V_0 = 1, V_b = 11, angle_0 = -2.273, displayPF = true) annotation(
+ Placement(visible = true, transformation(origin = {-131, 101}, extent = {{-15, -15}, {15, 15}}, rotation = -90)));
+ OpenIPSL.Electrical.Buses.Bus B29(P_0 = 25, Q_0 = 13, V_0 = 0.977, V_b = 11, angle_0 = -14.103, displayPF = true) annotation(
+ Placement(visible = true, transformation(origin = {-394, 86}, extent = {{-14, -14}, {14, 14}}, rotation = -90)));
+ OpenIPSL.Electrical.Buses.Bus B28(P_0 = 80, Q_0 = 36, V_0 = 0.961, V_b = 11, angle_0 = -14.919, displayPF = true) annotation(
+ Placement(visible = true, transformation(origin = {-434, 36}, extent = {{-14, -14}, {14, 14}}, rotation = -90)));
+ OpenIPSL.Electrical.Buses.Bus B31(P_0 = 42, Q_0 = 18, V_0 = 0.980, V_b = 11, angle(fixed = false), angle_0 = -13.859, displayPF = true) annotation(
+ Placement(visible = true, transformation(origin = {-334, 34}, extent = {{-14, -14}, {14, 14}}, rotation = -90)));
+ OpenIPSL.Electrical.Buses.Bus B45(P_0 = 0, Q_0 = 0, V_0 = 0.938, V_b = 11.66, angle_0 = -10.481, displayPF = true) annotation(
+ Placement(visible = true, transformation(origin = {-240, -1.42109e-14}, extent = {{-14, -14}, {14, 14}}, rotation = -90)));
+ OpenIPSL.Electrical.Buses.Bus B26(P_0 = 28, Q_0 = 14, V_0 = 1.049, V_b = 247.25, angle_0 = -5.080, displayPF = true) annotation(
+ Placement(visible = true, transformation(origin = {-130, 44}, extent = {{-16, -16}, {16, 16}}, rotation = -90)));
+ OpenIPSL.Electrical.Buses.Bus B43(P_0 = 0, Q_0 = 0, V_0 = 0.955, V_b = 11.825, angle_0 = -6.627, displayPF = true) annotation(
+ Placement(visible = true, transformation(origin = {-122, -38}, extent = {{-16, -16}, {16, 16}}, rotation = 90)));
+ OpenIPSL.Electrical.Buses.Bus B24(P_0 = 8, Q_0 = 2, V_0 = 1.006, V_b = 11, angle_0 = -9.213, displayPF = true) annotation(
+ Placement(visible = true, transformation(origin = {-117, -91}, extent = {{-15, -15}, {15, 15}}, rotation = -90)));
+ OpenIPSL.Electrical.Buses.Bus B23(P_0 = 42, Q_0 = 23, V_0 = 0.922, V_b = 11, angle_0 = -13.936, displayPF = true) annotation(
+ Placement(visible = true, transformation(origin = {-224, -118}, extent = {{-14, -14}, {14, 14}}, rotation = -90)));
+ OpenIPSL.Electrical.Buses.Bus B22(P_0 = 17, Q_0 = 8, V_0 = 0.814, V_b = 11.66, angle_0 = -19.831, displayPF = true) annotation(
+ Placement(visible = true, transformation(origin = {-316, -184}, extent = {{-14, -14}, {14, 14}}, rotation = -90)));
+ OpenIPSL.Electrical.Buses.Bus B20(P_0 = 34, Q_0 = 16, V_0 = 0.942, V_b = 11, angle_0 = -13.346, displayPF = true) annotation(
+ Placement(visible = true, transformation(origin = {-232, -268}, extent = {{-14, -14}, {14, 14}}, rotation = -90)));
+ OpenIPSL.Electrical.Buses.Bus B27(P_0 = 76, Q_0 = 25, V_0 = 0.973, V_b = 11, angle_0 = -13.898, displayPF = true) annotation(
+ Placement(visible = true, transformation(origin = {-343, -31}, extent = {{-15, -15}, {15, 15}}, rotation = -90)));
+ OpenIPSL.Electrical.Buses.Bus B41(P_0 = 0, Q_0 = 0, V_0 = 0.930, V_b = 11.99, angle_0 = -9.717, displayPF = true) annotation(
+ Placement(visible = true, transformation(origin = {-136, -238}, extent = {{-14, -14}, {14, 14}}, rotation = -90)));
+ OpenIPSL.Electrical.Buses.Bus B21(P_0 = 0, Q_0 = 0, V_0 = 0.891, V_b = 11, angle_0 = -16.269, displayPF = true) annotation(
+ Placement(visible = true, transformation(origin = {-313, -239}, extent = {{-15, -15}, {15, 15}}, rotation = -90)));
+ OpenIPSL.Electrical.Buses.Bus B42(P_0 = 0, Q_0 = 0, V_0 = 0.908, V_b = 11.66, angle_0 = -10.861, displayPF = true) annotation(
+ Placement(visible = true, transformation(origin = {-234, -308}, extent = {{-16, -16}, {16, 16}}, rotation = -90)));
+ OpenIPSL.Electrical.Buses.Bus B25(P_0 = 11, Q_0 = 6, V_0 = 1.039, V_b = 11, angle_0 = -5.159, displayPF = true) annotation(
+ Placement(visible = true, transformation(origin = {-8, 10}, extent = {{-14, -14}, {14, 14}}, rotation = -90)));
+ OpenIPSL.Electrical.Buses.Bus B37(P_0 = 0, Q_0 = 0, V_0 = 0.995, V_b = 11.55, angle_0 = -0.633, displayPF = true) annotation(
+ Placement(visible = true, transformation(origin = {166, -74}, extent = {{-16, -16}, {16, 16}}, rotation = -90)));
+ OpenIPSL.Electrical.Buses.Bus B38(P_0 = 170, Q_0 = 0, V_0 = 1, V_b = 11, angle_0 = -0.160, displayPF = true) annotation(
+ Placement(visible = true, transformation(origin = {82, -70}, extent = {{-14, -14}, {14, 14}}, rotation = -90)));
+ OpenIPSL.Electrical.Buses.Bus B47(P_0 = 0, Q_0 = 0, V_0 = 0.971, V_b = 11.66, angle_0 = -1.755, displayPF = true) annotation(
+ Placement(visible = true, transformation(origin = {199, -245}, extent = {{-15, -15}, {15, 15}}, rotation = -90)));
+ OpenIPSL.Electrical.Buses.Bus B36(P_0 = 0, Q_0 = 0, V_0 = 0.963, V_b = 11.495, angle_0 = -3.246, displayPF = true) annotation(
+ Placement(visible = true, transformation(origin = {181, 73}, extent = {{-15, -15}, {15, 15}}, rotation = -90)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine2_3_1(B = 0.0322, G = 0, R = 0.0287, X = 0.0747) annotation(
+ Placement(visible = true, transformation(origin = {172, 236}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine2_3_2(B = 0.0322, G = 0, R = 0.0287, X = 0.0747, displayPF = false) annotation(
+ Placement(visible = true, transformation(origin = {172, 250}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine3_4_1(B = 0.0015, G = 0, R = 0.0028, X = 0.0036) annotation(
+ Placement(visible = true, transformation(origin = {262, 238}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine3_4_2(B = 0.0015, G = 0, R = 0.0028, X = 0.0036) annotation(
+ Placement(visible = true, transformation(origin = {276, 238}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine3_6(B = 0.0558, G = 0, R = 0.0614, X = 0.1400) annotation(
+ Placement(visible = true, transformation(origin = {270, 180}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine3_7(B = 0.0397, G = 0, R = 0.0247, X = 0.0560) annotation(
+ Placement(visible = true, transformation(origin = {238, 152}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine7_8_1(B = 0.0091, G = 0, R = 0.0098, X = 0.0224) annotation(
+ Placement(visible = true, transformation(origin = {280, 72}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine7_8_2(B = 0.0091, G = 0, R = 0.0098, X = 0.0224) annotation(
+ Placement(visible = true, transformation(origin = {264, 72}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine8_9_1(B = 0.0174, G = 0, R = 0.0190, X = 0.0431) annotation(
+ Placement(visible = true, transformation(origin = {280, 18}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine8_9_2(B = 0.0174, G = 0, R = 0.0190, X = 0.0431) annotation(
+ Placement(visible = true, transformation(origin = {262, 18}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine9_10_1(B = 0.0167, G = 0, R = 0.0182, X = 0.0413) annotation(
+ Placement(visible = true, transformation(origin = {286, -34}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine9_10_2(B = 0.0167, G = 0, R = 0.0182, X = 0.0413) annotation(
+ Placement(visible = true, transformation(origin = {270, -34}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine10_11_1(B = 0.0190, G = 0, R = 0.0205, X = 0.0468) annotation(
+ Placement(visible = true, transformation(origin = {284, -86}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine10_11_2(B = 0.0190, G = 0, R = 0.0205, X = 0.0468) annotation(
+ Placement(visible = true, transformation(origin = {268, -88}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine11_12_1(B = 0.0060, G = 0, R = 0.0660, X = 0.0150) annotation(
+ Placement(visible = true, transformation(origin = {288, -138}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine11_12_2(B = 0.0060, G = 0, R = 0.0660, X = 0.0150) annotation(
+ Placement(visible = true, transformation(origin = {272, -138}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine12_13_1(B = 0.0088, G = 0, R = 0.0455, X = 0.0642) annotation(
+ Placement(visible = true, transformation(origin = {280, -192}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine13_14_1(B = 0.0213, G = 0, R = 0.1182, X = 0.2360) annotation(
+ Placement(visible = true, transformation(origin = {282, -232}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine14_15_1(B = 0.0267, G = 0, R = 0.0214, X = 0.2743) annotation(
+ Placement(visible = true, transformation(origin = {288, -300}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine15_16(B = 0.0059, G = 0, R = 0.1336, X = 0.0525) annotation(
+ Placement(visible = true, transformation(origin = {224, -306}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine16_17(B = 0.0367, G = 0, R = 0.0580, X = 0.3532) annotation(
+ Placement(visible = true, transformation(origin = {112, -334}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine17_18(B = 0.0168, G = 0, R = 0.1550, X = 0.1532) annotation(
+ Placement(visible = true, transformation(origin = {8, -358}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine18_19(B = 0.0350, G = 0, R = 0.1550, X = 0.3639) annotation(
+ Placement(visible = true, transformation(origin = {-82, -282}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine19_20(B = 0.0371, G = 0, R = 0.1640, X = 0.3815) annotation(
+ Placement(visible = true, transformation(origin = {-196, -216}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine20_21(B = 0.0300, G = 0, R = 0.1136, X = 0.3060) annotation(
+ Placement(visible = true, transformation(origin = {-270, -256}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine20_23(B = 0.0210, G = 0, R = 0.0781, X = 0.2000) annotation(
+ Placement(visible = true, transformation(origin = {-232, -200}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine23_24(B = 0.0282, G = 0, R = 0.1033, X = 0.2606) annotation(
+ Placement(visible = true, transformation(origin = {-170, -100}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine12_25(B = 0.0283, G = 0, R = 0.0866, X = 0.2847) annotation(
+ Placement(visible = true, transformation(origin = {46, -126}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine25_26(B = 0.0060, G = 0, R = 0.0159, X = 0.0508) annotation(
+ Placement(visible = true, transformation(origin = {-68, 22}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine26_27(B = 0.0296, G = 0, R = 0.0872, X = 0.2870) annotation(
+ Placement(visible = true, transformation(origin = {-252, -52}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine27_28(B = 0.0045, G = 0, R = 0.0136, X = 0.0436) annotation(
+ Placement(visible = true, transformation(origin = {-400, -2}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine28_29(B = 0.0045, G = 0, R = 0.0136, X = 0.0436) annotation(
+ Placement(visible = true, transformation(origin = {-414, 64}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine29_30(B = 0.0041, G = 0, R = 0.0125, X = 0.0400) annotation(
+ Placement(visible = true, transformation(origin = {-366, 108}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine30_31(B = 0.0045, G = 0, R = 0.0136, X = 0.0436) annotation(
+ Placement(visible = true, transformation(origin = {-328, 80}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine27_31(B = 0.0045, G = 0, R = 0.0136, X = 0.0436) annotation(
+ Placement(visible = true, transformation(origin = {-340, 6}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine30_32(B = 0.0712, G = 0, R = 0.0533, X = 0.1636) annotation(
+ Placement(visible = true, transformation(origin = {-338, 164}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine32_33(B = 0.0420, G = 0, R = 0.0311, X = 0.1000) annotation(
+ Placement(visible = true, transformation(origin = {-344, 264}, extent = {{-10, -10}, {10, 10}}, rotation = 90)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine32_34_1(B = 0.0650, G = 0, R = 0.0471, X = 0.1511) annotation(
+ Placement(visible = true, transformation(origin = {-298, 242}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine32_34_2(B = 0.0650, G = 0, R = 0.0471, X = 0.1511) annotation(
+ Placement(visible = true, transformation(origin = {-296, 260}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine30_51(B = 0.0734, G = 0, R = 0.0667, X = 0.1765) annotation(
+ Placement(visible = true, transformation(origin = {-398, 188}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine51_33(B = 0.0256, G = 0, R = 0.011, X = 0.0622) annotation(
+ Placement(visible = true, transformation(origin = {-376, 282}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine35_50(B = 0.0954, G = 0, R = 0.0240, X = 0.1326) annotation(
+ Placement(visible = true, transformation(origin = {120, 168}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine35_36(B = 0.1146, G = 0, R = 0.0266, X = 0.1418) annotation(
+ Placement(visible = true, transformation(origin = {182, 136}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine36_38(B = 0.1078, G = 0, R = 0.0252, X = 0.1366) annotation(
+ Placement(visible = true, transformation(origin = {100, 24}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine38_1(B = 0.0794, G = 0, R = 0.0200, X = 0.1107) annotation(
+ Placement(visible = true, transformation(origin = {8, 98}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine38_47(B = 0.0869, G = 0, R = 0.0202, X = 0.1076) annotation(
+ Placement(visible = true, transformation(origin = {148, -160}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine47_43(B = 0.1078, G = 0, R = 0.0250, X = 0.1336) annotation(
+ Placement(visible = true, transformation(origin = {124, -202}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine42_43(B = 0.1281, G = 0, R = 0.0298, X = 0.1584) annotation(
+ Placement(visible = true, transformation(origin = {-380, -208}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine40_41(B = 0.1008, G = 0, R = 0.0254, X = 0.1400) annotation(
+ Placement(visible = true, transformation(origin = {-64, -254}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine41_43(B = 0.1297, G = 0, R = 0.0326, X = 0.1807) annotation(
+ Placement(visible = true, transformation(origin = {-60, -114}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine43_45(B = 0.1011, G = 0, R = 0.0236, X = 0.1252) annotation(
+ Placement(visible = true, transformation(origin = {-196, -20}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine43_44(B = 0.0513, G = 0, R = 0.0129, X = 0.0715) annotation(
+ Placement(visible = true, transformation(origin = {-88, 52}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine45_46(B = 0.0236, G = 0, R = 0.0054, X = 0.0292) annotation(
+ Placement(visible = true, transformation(origin = {-236, 74}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine44_1(B = 0.1306, G = 0, R = 0.0330, X = 0.1818) annotation(
+ Placement(visible = true, transformation(origin = {-170, 130}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine46_1(B = 0.1686, G = 0, R = 0.0343, X = 0.2087) annotation(
+ Placement(visible = true, transformation(origin = {-214, 176}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine1_49(B = 0.1752, G = 0, R = 0.0110, X = 0.0597) annotation(
+ Placement(visible = true, transformation(origin = {-106, 174}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine49_50(B = 0.0272, G = 0, R = 0.0071, X = 0.0400) annotation(
+ Placement(visible = true, transformation(origin = {10, 170}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine37_38(B = 0.0246, G = 0, R = 0.0014, X = 0.0077) annotation(
+ Placement(visible = true, transformation(origin = {132, -94}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine47_39(B = 0.0879, G = 0, R = 0.0203, X = 0.1093) annotation(
+ Placement(visible = true, transformation(origin = {200, -312}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine48_2_1(B = 0.0460, G = 0, R = 0.0426, X = 0.1100) annotation(
+ Placement(visible = true, transformation(origin = {98, 276}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine48_2_2(B = 0.0460, G = 0, R = 0.0426, X = 0.1100) annotation(
+ Placement(visible = true, transformation(origin = {100, 288}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
+ OpenIPSL.Electrical.Branches.PSAT.TwoWindingTransformer T_27_45(Sn = 100, V_b = 11, Vn = 11, kT = 1.0600, r = 0, x = 0.0900) annotation(
+ Placement(visible = true, transformation(origin = {-302, -10}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
+ OpenIPSL.Electrical.Loads.PSAT.LOADPQ LD1(Angle_V(displayUnit = "rad"), P_0 = 50, Q_0 = 20, V_0 = 0.967, V_b = 11, angle_0 = -4.478, forcePQ = true) annotation(
+ Placement(visible = true, transformation(origin = {90, 238}, extent = {{-8, -8}, {8, 8}}, rotation = 0)));
+ OpenIPSL.Electrical.Loads.PSAT.LOADPQ LD2(Angle_V(displayUnit = "rad"), P_0 = 90, Q_0 = 50, V_0 = 0.974, V_b = 11, angle_0 = -4.817, forcePQ = true) annotation(
+ Placement(visible = true, transformation(origin = {306, 182}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
+ OpenIPSL.Electrical.Loads.PSAT.LOADPQ LD3(Angle_V(displayUnit = "rad"), P_0 = 11.90, Q_0 = 0, V_0 = 0.901, V_b = 248.4, angle_0 = -6.593, forcePQ = true) annotation(
+ Placement(visible = true, transformation(origin = {272, 352}, extent = {{-10, -10}, {10, 10}}, rotation = 180)));
+ OpenIPSL.Electrical.Loads.PSAT.LOADPQ LD4(Angle_V(displayUnit = "rad"), P_0 = 19, Q_0 = 10, V_0 = 0.950, V_b = 11, angle_0 = -6.180, forcePQ = true) annotation(
+ Placement(visible = true, transformation(origin = {320, 124}, extent = {{-8, -8}, {8, 8}}, rotation = 0)));
+ OpenIPSL.Electrical.Loads.PSAT.LOADPQ LD5(Angle_V(displayUnit = "rad"), P_0 = 33, Q_0 = 18, V_0 = 1, V_b = 11, angle_0 = -4.872, forcePQ = true) annotation(
+ Placement(visible = true, transformation(origin = {320, 72}, extent = {{-8, -8}, {8, 8}}, rotation = 0)));
+ OpenIPSL.Electrical.Loads.PSAT.LOADPQ LD6(Angle_V(displayUnit = "rad"), P_0 = 44, Q_0 = 24, V_0 = 0.992, V_b = 11, angle_0 = -5.311, forcePQ = true) annotation(
+ Placement(visible = true, transformation(origin = {312, 18}, extent = {{-8, -8}, {8, 8}}, rotation = 0)));
+ OpenIPSL.Electrical.Loads.PSAT.LOADPQ LD7(Angle_V(displayUnit = "rad"), P_0 = 22, Q_0 = 12, V_0 = 0.994, V_b = 11, angle_0 = -5.307, forcePQ = true) annotation(
+ Placement(visible = true, transformation(origin = {322, -34}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
+ OpenIPSL.Electrical.Loads.PSAT.LOADPQ LD8(Angle_V(displayUnit = "rad"), P_0 = 21, Q_0 = 12, V_0 = 1.004, V_b = 11, angle_0 = -4.889, forcePQ = true) annotation(
+ Placement(visible = true, transformation(origin = {326, -86}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
+ OpenIPSL.Electrical.Loads.PSAT.LOADPQ LD9(Angle_V(displayUnit = "rad"), P_0 = 34, Q_0 = 5, V_0 = 1.025, V_b = 11, angle_0 = -3.998, forcePQ = true) annotation(
+ Placement(visible = true, transformation(origin = {327, -143}, extent = {{-11, -11}, {11, 11}}, rotation = 0)));
+ OpenIPSL.Electrical.Loads.PSAT.LOADPQ LD10(Angle_V(displayUnit = "rad"), P_0 = 24, Q_0 = 13.60, V_0 = 1.002, V_b = 11, angle_0 = -4.124, forcePQ = true) annotation(
+ Placement(visible = true, transformation(origin = {322, -192}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
+ OpenIPSL.Electrical.Loads.PSAT.LOADPQ LD11(Angle_V(displayUnit = "rad"), P_0 = 19, Q_0 = 11, V_0 = 0.995, V_b = 11, angle_0 = -4.224, forcePQ = true) annotation(
+ Placement(visible = true, transformation(origin = {336, -244}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
+ OpenIPSL.Electrical.Loads.PSAT.LOADPQ LD12(Angle_V(displayUnit = "rad"), P_0 = 19, Q_0 = 4, V_0 = 1.016, V_b = 11, angle_0 = -2.856, forcePQ = true) annotation(
+ Placement(visible = true, transformation(origin = {325, -295}, extent = {{-11, -11}, {11, 11}}, rotation = 0)));
+ OpenIPSL.Electrical.Loads.PSAT.LOADPQ LD13(Angle_V(displayUnit = "rad"), P_0 = 54, Q_0 = 30, V_0 = 0.987, V_b = 11, angle_0 = -2.053, forcePQ = true) annotation(
+ Placement(visible = true, transformation(origin = {142, -264}, extent = {{-10, -10}, {10, 10}}, rotation = 180)));
+ OpenIPSL.Electrical.Loads.PSAT.LOADPQ LD14(Angle_V(displayUnit = "rad"), P_0 = 46, Q_0 = 21, V_0 = 1, V_b = 11, angle_0 = -7.675, forcePQ = true) annotation(
+ Placement(visible = true, transformation(origin = {52, -376}, extent = {{-14, -14}, {14, 14}}, rotation = 0)));
+ OpenIPSL.Electrical.Loads.PSAT.LOADPQ LD15(Angle_V(displayUnit = "rad"), P_0 = 37, Q_0 = 22, V_0 = 0.971, V_b = 11, angle_0 = -10.625, forcePQ = true) annotation(
+ Placement(visible = true, transformation(origin = {-32, -376}, extent = {{-12, -12}, {12, 12}}, rotation = 0)));
+ OpenIPSL.Electrical.Loads.PSAT.LOADPQ LD16(Angle_V(displayUnit = "rad"), P_0 = 31, Q_0 = 2, V_0 = 1, V_b = 11, angle_0 = -10.672, forcePQ = true) annotation(
+ Placement(visible = true, transformation(origin = {-166, -228}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
+ OpenIPSL.Electrical.Loads.PSAT.LOADPQ LD17(Angle_V(displayUnit = "rad"), P_0 = 34, Q_0 = 16, V_0 = 0.942, V_b = 11, angle_0 = -13.346, forcePQ = true) annotation(
+ Placement(visible = true, transformation(origin = {-190, -306}, extent = {{-12, -12}, {12, 12}}, rotation = 0)));
+ OpenIPSL.Electrical.Loads.PSAT.LOADPQ LD18(Angle_V(displayUnit = "rad"), P_0 = 17, Q_0 = 8, V_0 = 0.814, V_b = 11.66, angle_0 = -19.831, forcePQ = true) annotation(
+ Placement(visible = true, transformation(origin = {-310, -146}, extent = {{-10, -10}, {10, 10}}, rotation = 180)));
+ OpenIPSL.Electrical.Loads.PSAT.LOADPQ LD19(Angle_V(displayUnit = "rad"), P_0 = 42, Q_0 = 23, V_0 = 0.922, V_b = 11, angle_0 = -13.936, forcePQ = true) annotation(
+ Placement(visible = true, transformation(origin = {-200, -160}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
+ OpenIPSL.Electrical.Loads.PSAT.LOADPQ LD20(Angle_V(displayUnit = "rad"), P_0 = 8, Q_0 = 2, V_0 = 1.006, V_b = 11, angle_0 = -9.213, forcePQ = true) annotation(
+ Placement(visible = true, transformation(origin = {-104, -124}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
+ OpenIPSL.Electrical.Loads.PSAT.LOADPQ LD21(Angle_V(displayUnit = "rad"), P_0 = 11, Q_0 = 6, V_0 = 1.039, V_b = 11, angle_0 = -5.159, forcePQ = true) annotation(
+ Placement(visible = true, transformation(origin = {18, -30}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
+ OpenIPSL.Electrical.Loads.PSAT.LOADPQ LD22(Angle_V(displayUnit = "rad"), P_0 = 28, Q_0 = 14, V_0 = 1.049, V_b = 247.25, angle_0 = -5.080, forcePQ = true) annotation(
+ Placement(visible = true, transformation(origin = {-127, 3}, extent = {{-11, -11}, {11, 11}}, rotation = 0)));
+ OpenIPSL.Electrical.Loads.PSAT.LOADPQ LD23(Angle_V(displayUnit = "rad"), P_0 = 76, Q_0 = 25, V_0 = 0.973, V_b = 11, angle_0 = -13.898, forcePQ = true) annotation(
+ Placement(visible = true, transformation(origin = {-412, -64}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
+ OpenIPSL.Electrical.Loads.PSAT.LOADPQ LD24(Angle_V(displayUnit = "rad"), P_0 = 80, Q_0 = 36, V_0 = 0.961, V_b = 11, angle_0 = -14.919, forcePQ = true) annotation(
+ Placement(visible = true, transformation(origin = {-457, -7}, extent = {{-13, -13}, {13, 13}}, rotation = 0)));
+ OpenIPSL.Electrical.Loads.PSAT.LOADPQ LD25(Angle_V(displayUnit = "rad"), P_0 = 25, Q_0 = 13, V_0 = 0.977, V_b = 11, angle_0 = -14.103, forcePQ = true) annotation(
+ Placement(visible = true, transformation(origin = {-459, 59}, extent = {{-11, -11}, {11, 11}}, rotation = 0)));
+ OpenIPSL.Electrical.Loads.PSAT.LOADPQ LD26(Angle_V(displayUnit = "rad"), P(fixed = false), P_0 = 47, Q(fixed = false), Q_0 = 0, V_0 = 1, V_b = 11, angle_0 = -12.890, forcePQ = true) annotation(
+ Placement(visible = true, transformation(origin = {-285, 85}, extent = {{11, 11}, {-11, -11}}, rotation = -90)));
+ OpenIPSL.Electrical.Loads.PSAT.LOADPQ LD27(Angle_V(displayUnit = "rad"), P_0 = 42, Q_0 = 18, V_0 = 0.980, V_b = 11, angle_0 = -13.859, forcePQ = true) annotation(
+ Placement(visible = true, transformation(origin = {-285, 37}, extent = {{-11, -11}, {11, 11}}, rotation = 180)));
+ OpenIPSL.Electrical.Loads.PSAT.LOADPQ LD28(Angle_V(displayUnit = "rad"), P_0 = 30, Q_0 = 17, V_0 = 0.986, V_b = 11, angle_0 = -10.058, forcePQ = true) annotation(
+ Placement(visible = true, transformation(origin = {-365, 175}, extent = {{-9, -9}, {9, 9}}, rotation = 0)));
+ OpenIPSL.Electrical.Loads.PSAT.LOADPQ LD29(Angle_V(displayUnit = "rad"), P_0 = 58, Q_0 = 26, V_0 = 0.986, V_b = 250.125, angle_0 = -4.330, forcePQ = true) annotation(
+ Placement(visible = true, transformation(origin = {-232, 248}, extent = {{-12, -12}, {12, 12}}, rotation = 180)));
+ OpenIPSL.Electrical.Loads.PSAT.LOADPQ LD30(Angle_V(displayUnit = "rad"), P_0 = 50, Q_0 = 30, V_0 = 0.979, V_b = 11, angle_0 = -12.199, forcePQ = true) annotation(
+ Placement(visible = true, transformation(origin = {-422, 216}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine39_49(B = 0.0726, G = 0, R = 0.0168, X = 0.0899) annotation(
+ Placement(visible = true, transformation(origin = {-34, 56}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
+ OpenIPSL.Electrical.Buses.Bus B39(P_0 = 0, Q_0 = 0, V_0 = 0.962, V_b = 11.66, angle_0 = 1.851, displayPF = true) annotation(
+ Placement(visible = true, transformation(origin = {165, -345}, extent = {{-15, -15}, {15, 15}}, rotation = -90)));
+ Modelling_of_51_bus_system_case1.GenBus.GenBus7 genBus7(P_0 = 33, Q_0 = 62.54, V_0 = 1, V_b = 11, angle_0 = -4.872) annotation(
+ Placement(visible = true, transformation(origin = {210, 146}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
+ Modelling_of_51_bus_system_case1.GenBus.GenBus15 genBus15(P_0 = 24, Q_0 = -16.23, V_0 = 1, V_b = 11, angle_0 = -1.049) annotation(
+ Placement(visible = true, transformation(origin = {286, -364}, extent = {{10, 10}, {-10, -10}}, rotation = -90)));
+ Modelling_of_51_bus_system_case1.GenBus.GenBus17 genBus17(P_0 = 46, Q_0 = 20.51, V_0 = 1, V_b = 11, angle_0 = -7.675) annotation(
+ Placement(visible = true, transformation(origin = {52, -300}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
+ Modelling_of_51_bus_system_case1.GenBus.GenBus19 genBus19(P_0 = 31, Q_0 = 14.77, V_0 = 1, V_b = 11, angle_0 = -10.672) annotation(
+ Placement(visible = true, transformation(origin = {-138, -152}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
+ Modelling_of_51_bus_system_case1.GenBus.GenBus30 genBus30(P_0 = 47, Q_0 = 66.16, V_0 = 1, V_b = 11, angle_0 = -12.890) annotation(
+ Placement(visible = true, transformation(origin = {-302, 176}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
+ Modelling_of_51_bus_system_case1.GenBus.GenBus33 genBus33(P_0 = 50, Q_0 = 25.97, V_0 = 1, V_b = 11, angle_0 = -10.479) annotation(
+ Placement(visible = true, transformation(origin = {-344, 344}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
+ Modelling_of_51_bus_system.Modelling_of_51_bus_system_case1.GenBus.GenBus38 genBus38(P_0 = 170, Q_0 = -0.21, V_0 = 1, V_b = 11, angle_0 = -0.160) annotation(
+ Placement(visible = true, transformation(origin = {106, -34}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
+ Modelling_of_51_bus_system_case1.GenBus.GenBus44 genBus44(P_0 = 175, Q_0 = 50.26, V_0 = 1, V_b = 11, angle_0 = -2.273) annotation(
+ Placement(visible = true, transformation(origin = {-196, 120}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
+ Modelling_of_51_bus_system_case1.GenBus.GenBus48 genBus48(P_0 = 55, Q_0 = 7.55, V_0 = 1, V_b = 11, angle_0 = -1.141) annotation(
+ Placement(visible = true, transformation(origin = {80, 338}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
+ Modelling_of_51_bus_system_case1.GenBus.GenBus49 genBus49(P_0 = 350, Q_0 = 0, V_0 = 1, V_b = 11, angle_0 = 8.095) annotation(
+ Placement(visible = true, transformation(origin = {-50, 224}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
+ Modelling_of_51_bus_system_case1.GenBus.GenBus50 genBus50(P_0 = 120, Q_0 = 22.41, V_0 = 1, V_b = 11, angle_0 = 8.022) annotation(
+ Placement(visible = true, transformation(origin = {66, 220}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
+ OpenIPSL.Electrical.Branches.PSAT.TwoWindingTransformer T_1_34( Sn = 100, V_b = 11, Vn = 11, kT = 1.0875, r = 0, x = 0.0630) annotation(
+ Placement(visible = true, transformation(origin = {-228, 198}, extent = {{-16, -16}, {16, 16}}, rotation = 0)));
+ OpenIPSL.Electrical.Branches.PSAT.TwoWindingTransformer T_3_35( Sn = 100, V_b = 11, Vn = 11, kT = 1.0450, r = 0, x = 0.0500) annotation(
+ Placement(visible = true, transformation(origin = {204, 212}, extent = {{-16, -16}, {16, 16}}, rotation = 0)));
+ OpenIPSL.Electrical.Branches.PSAT.TwoWindingTransformer T_4_5( Sn = 100, V_b = 11, Vn = 11, kT = 1.0800, r = 0, x = 0.02085) annotation(
+ Placement(visible = true, transformation(origin = {270, 292}, extent = {{-16, -16}, {16, 16}}, rotation = -90)));
+ OpenIPSL.Electrical.Branches.PSAT.TwoWindingTransformer T_7_36( Sn = 100, V_b = 11, Vn = 11, kT = 1.0450, r = 0, x = 0.0450) annotation(
+ Placement(visible = true, transformation(origin = {224, 90}, extent = {{-14, -14}, {14, 14}}, rotation = 0)));
+ OpenIPSL.Electrical.Branches.PSAT.TwoWindingTransformer T_11_37( Sn = 100, V_b = 11, Vn = 11, kT = 1.0500, r = 0, x = 0.0500) annotation(
+ Placement(visible = true, transformation(origin = {217, -101}, extent = {{-17, -17}, {17, 17}}, rotation = 0)));
+ OpenIPSL.Electrical.Branches.PSAT.TwoWindingTransformer T_16_39( Sn = 100, V_b = 11, Vn = 11, kT = 1.0600, r = 0, x = 0.0900) annotation(
+ Placement(visible = true, transformation(origin = {163, -321}, extent = {{-13, -13}, {13, 13}}, rotation = -90)));
+ OpenIPSL.Electrical.Branches.PSAT.TwoWindingTransformer T_18_40( Sn = 100, V_b = 11, Vn = 11, kT = 1.0900, r = 0, x = 0.0400) annotation(
+ Placement(visible = true, transformation(origin = {-36, -302}, extent = {{-14, -14}, {14, 14}}, rotation = -90)));
+ OpenIPSL.Electrical.Branches.PSAT.TwoWindingTransformer T_14_47( Sn = 100, V_b = 11, Vn = 11, kT = 1.0600, r = 0, x = 0.0900) annotation(
+ Placement(visible = true, transformation(origin = {240, -258}, extent = {{-14, -14}, {14, 14}}, rotation = 0)));
+ OpenIPSL.Electrical.Branches.PSAT.TwoWindingTransformer T_19_41( Sn = 100, V_b = 11, Vn = 11, kT = 1.0750, r = 0, x = 0.0800) annotation(
+ Placement(visible = true, transformation(origin = {-137, -211}, extent = {{-15, -15}, {15, 15}}, rotation = -90)));
+ OpenIPSL.Electrical.Branches.PSAT.TwoWindingTransformer T_21_22( Sn = 100, V_b = 11, Vn = 11, kT = 1.0600, r = 0, x = 0.02500) annotation(
+ Placement(visible = true, transformation(origin = {-318, -212}, extent = {{-14, -14}, {14, 14}}, rotation = -90)));
+ OpenIPSL.Electrical.Branches.PSAT.TwoWindingTransformer T_24_43( Sn = 100, V_b = 11, Vn = 11, kT = 1.0750, r = 0, x = 0.0900) annotation(
+ Placement(visible = true, transformation(origin = {-124, -72}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
+ OpenIPSL.Electrical.Branches.PSAT.TwoWindingTransformer T_44_26( Sn = 100, V_b = 11, Vn = 11, kT = 1.0750, r = 0, x = 0.0500) annotation(
+ Placement(visible = true, transformation(origin = {-134, 74}, extent = {{-16, -16}, {16, 16}}, rotation = -90)));
+ Modelling_of_51_bus_system_case1.GenBus.GenBus1 genBus11(P_0 = 45.70, Q_0 = 366.71, V_0 = 1.08, V_b = 11) annotation(
+ Placement(visible = true, transformation(origin = {-168, 238}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
+ OpenIPSL.Electrical.Events.PwFault pwFault(R = 0, X = 0.1, t1 = 4, t2 = 4.4) annotation(
+ Placement(visible = true, transformation(origin = {-381, 25}, extent = {{-9, -9}, {9, 9}}, rotation = 0)));
+ inner OpenIPSL.Electrical.SystemBase SysData annotation(
+ Placement(visible = true, transformation(origin = {444, 313}, extent = {{-90, -37}, {90, 37}}, rotation = 0)));
+ OpenIPSL.Electrical.Branches.PSAT.TwoWindingTransformer T_30_46( Sn = 100, V_b = 11, Vn = 11, kT = 1.0750, r = 0, x = 0.0450) annotation(
+ Placement(visible = true, transformation(origin = {-287, 135}, extent = {{-15, -15}, {15, 15}}, rotation = 0)));
+ OpenIPSL.Electrical.Branches.PSAT.TwoWindingTransformer T_20_42( Sn = 100, V_b = 11, Vn = 11, kT = 1.0600, r = 0, x = 0.0800) annotation(
+ Placement(visible = true, transformation(origin = {-236, -288}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
+ equation
+ connect(B2.p, pwLine2_3_2.p) annotation(
+ Line(points = {{120, 262}, {124, 262}, {124, 250}, {162, 250}, {162, 250}}, color = {0, 0, 255}));
+ connect(B2.p, pwLine2_3_1.p) annotation(
+ Line(points = {{120, 262}, {118, 262}, {118, 236}, {162, 236}, {162, 236}}, color = {0, 0, 255}));
+ connect(pwLine2_3_1.n, B3.p) annotation(
+ Line(points = {{182, 236}, {232, 236}, {232, 212}, {260, 212}, {260, 212}, {260, 212}}, color = {0, 0, 255}));
+ connect(pwLine2_3_2.n, B3.p) annotation(
+ Line(points = {{182, 250}, {238, 250}, {238, 220}, {248, 220}, {248, 210}, {260, 210}, {260, 212}}, color = {0, 0, 255}));
+ connect(pwLine3_4_1.n, B3.p) annotation(
+ Line(points = {{262, 228}, {262, 228}, {262, 212}, {260, 212}, {260, 212}}, color = {0, 0, 255}));
+ connect(pwLine3_4_2.n, B3.p) annotation(
+ Line(points = {{276, 229}, {276, 226}, {268, 226}, {268, 214}, {260, 214}, {260, 212}}, color = {0, 0, 255}));
+ connect(pwLine3_4_1.p, B4.p) annotation(
+ Line(points = {{262, 248}, {258, 248}, {258, 266}, {268, 266}, {268, 264}}, color = {0, 0, 255}));
+ connect(pwLine3_4_2.p, B4.p) annotation(
+ Line(points = {{276, 247}, {276, 262}, {268, 262}, {268, 264}}, color = {0, 0, 255}));
+ connect(pwLine3_6.n, B6.p) annotation(
+ Line(points = {{270, 170}, {270, 148}, {267, 148}, {267, 149}}, color = {0, 0, 255}));
+ connect(pwLine3_6.p, B3.p) annotation(
+ Line(points = {{270, 190}, {270, 190}, {270, 210}, {260, 210}, {260, 212}}, color = {0, 0, 255}));
+ connect(pwLine3_7.n, B7.p) annotation(
+ Line(points = {{238, 142}, {238, 130}, {274, 130}, {274, 100}, {268, 100}, {268, 97}, {267, 97}}, color = {0, 0, 255}));
+ connect(pwLine3_7.p, B3.p) annotation(
+ Line(points = {{238, 162}, {238, 162}, {238, 200}, {256, 200}, {256, 212}, {260, 212}}, color = {0, 0, 255}));
+ connect(pwLine7_8_1.n, B8.p) annotation(
+ Line(points = {{280, 62}, {280, 62}, {280, 48}, {272, 48}, {272, 46}}, color = {0, 0, 255}));
+ connect(pwLine7_8_1.p, B7.p) annotation(
+ Line(points = {{280, 82}, {280, 97}, {267, 97}}, color = {0, 0, 255}));
+ connect(pwLine7_8_2.p, B7.p) annotation(
+ Line(points = {{264, 82}, {266, 82}, {266, 96}, {267, 96}, {267, 97}}, color = {0, 0, 255}));
+ connect(pwLine7_8_2.n, B8.p) annotation(
+ Line(points = {{264, 62}, {264, 62}, {264, 48}, {272, 48}, {272, 46}}, color = {0, 0, 255}));
+ connect(pwLine8_9_1.p, B8.p) annotation(
+ Line(points = {{280, 27}, {280, 46}, {272, 46}}, color = {0, 0, 255}));
+ connect(pwLine8_9_1.n, B9.p) annotation(
+ Line(points = {{280, 9}, {280, -8}, {274, -8}, {274, -6}}, color = {0, 0, 255}));
+ connect(pwLine8_9_2.n, B9.p) annotation(
+ Line(points = {{262, 9}, {262, -6}, {274, -6}}, color = {0, 0, 255}));
+ connect(pwLine8_9_2.p, B8.p) annotation(
+ Line(points = {{262, 27}, {262, 46}, {272, 46}}, color = {0, 0, 255}));
+ connect(pwLine9_10_1.n, B10.p) annotation(
+ Line(points = {{286, -44}, {286, -60}, {276, -60}}, color = {0, 0, 255}));
+ connect(pwLine9_10_2.n, B10.p) annotation(
+ Line(points = {{270, -44}, {270, -60}, {276, -60}}, color = {0, 0, 255}));
+ connect(pwLine9_10_2.p, B9.p) annotation(
+ Line(points = {{270, -24}, {268, -24}, {268, -8}, {274, -8}, {274, -6}}, color = {0, 0, 255}));
+ connect(B9.p, pwLine9_10_1.p) annotation(
+ Line(points = {{274, -6}, {286, -6}, {286, -26}, {286, -26}, {286, -24}}, color = {0, 0, 255}));
+ connect(pwLine10_11_1.p, B10.p) annotation(
+ Line(points = {{284, -76}, {284, -58}, {276, -58}, {276, -60}}, color = {0, 0, 255}));
+ connect(pwLine10_11_1.n, B11.p) annotation(
+ Line(points = {{284, -96}, {284, -96}, {284, -118}, {280, -118}, {280, -118}}, color = {0, 0, 255}));
+ connect(pwLine10_11_2.p, B10.p) annotation(
+ Line(points = {{268, -78}, {268, -58}, {276, -58}, {276, -60}}, color = {0, 0, 255}));
+ connect(pwLine10_11_2.n, B11.p) annotation(
+ Line(points = {{268, -98}, {268, -98}, {268, -118}, {280, -118}, {280, -118}}, color = {0, 0, 255}));
+ connect(pwLine11_12_1.p, B11.p) annotation(
+ Line(points = {{288, -128}, {288, -128}, {288, -116}, {280, -116}, {280, -118}}, color = {0, 0, 255}));
+ connect(pwLine11_12_1.n, B12.p) annotation(
+ Line(points = {{288, -148}, {288, -148}, {288, -164}, {280, -164}, {280, -164}}, color = {0, 0, 255}));
+ connect(pwLine11_12_2.n, B12.p) annotation(
+ Line(points = {{272, -148}, {272, -148}, {272, -164}, {280, -164}, {280, -164}}, color = {0, 0, 255}));
+ connect(pwLine11_12_2.p, B11.p) annotation(
+ Line(points = {{272, -128}, {272, -128}, {272, -116}, {280, -116}, {280, -118}}, color = {0, 0, 255}));
+ connect(pwLine12_13_1.p, B12.p) annotation(
+ Line(points = {{280, -183}, {280, -164}}, color = {0, 0, 255}));
+ connect(pwLine12_13_1.n, B13.p) annotation(
+ Line(points = {{280, -201}, {280, -213}, {283, -213}}, color = {0, 0, 255}));
+ connect(pwLine13_14_1.n, B14.p) annotation(
+ Line(points = {{282, -241}, {282, -264}, {288, -264}}, color = {0, 0, 255}));
+ connect(pwLine13_14_1.p, B13.p) annotation(
+ Line(points = {{282, -223}, {282, -213}, {283, -213}}, color = {0, 0, 255}));
+ connect(pwLine14_15_1.n, B15.p) annotation(
+ Line(points = {{288, -309}, {288, -319.5}, {286, -319.5}, {286, -330}}, color = {0, 0, 255}));
+ connect(pwLine14_15_1.p, B14.p) annotation(
+ Line(points = {{288, -291}, {288, -264}}, color = {0, 0, 255}));
+ connect(B16.p, pwLine15_16.p) annotation(
+ Line(points = {{160, -300}, {160, -276}, {224, -276}, {224, -297}}, color = {0, 0, 255}));
+ connect(pwLine15_16.n, B15.p) annotation(
+ Line(points = {{224, -316}, {224, -324}, {286, -324}, {286, -330}}, color = {0, 0, 255}));
+ connect(pwLine16_17.p, B16.p) annotation(
+ Line(points = {{112, -324}, {112, -324}, {112, -310}, {158, -310}, {158, -300}, {160, -300}}, color = {0, 0, 255}));
+ connect(B17.p, pwLine16_17.n) annotation(
+ Line(points = {{52, -336}, {58, -336}, {58, -354}, {112, -354}, {112, -342}, {112, -342}, {112, -344}}, color = {0, 0, 255}));
+ connect(pwLine17_18.n, B17.p) annotation(
+ Line(points = {{18, -358}, {40, -358}, {40, -336}, {52, -336}, {52, -336}}, color = {0, 0, 255}));
+ connect(pwLine17_18.p, B18.p) annotation(
+ Line(points = {{-2, -358}, {-24, -358}, {-24, -328}, {-32, -328}, {-32, -330}, {-32, -330}}, color = {0, 0, 255}));
+ connect(pwLine18_19.n, B18.p) annotation(
+ Line(points = {{-82, -292}, {-82, -292}, {-82, -320}, {-44, -320}, {-44, -328}, {-32, -328}, {-32, -330}}, color = {0, 0, 255}));
+ connect(B19.p, pwLine18_19.p) annotation(
+ Line(points = {{-137, -181}, {-130, -181}, {-130, -200}, {-82, -200}, {-82, -272}}, color = {0, 0, 255}));
+ connect(pwLine19_20.p, B19.p) annotation(
+ Line(points = {{-196, -206}, {-196, -192}, {-152, -192}, {-152, -181}, {-137, -181}}, color = {0, 0, 255}));
+ connect(pwLine19_20.n, B20.p) annotation(
+ Line(points = {{-196, -226}, {-196, -226}, {-196, -244}, {-224, -244}, {-224, -268}, {-232, -268}, {-232, -268}}, color = {0, 0, 255}));
+ connect(B21.p, pwLine20_21.p) annotation(
+ Line(points = {{-312, -238}, {-314, -238}, {-314, -256}, {-280, -256}, {-280, -256}}, color = {0, 0, 255}));
+ connect(pwLine20_21.n, B20.p) annotation(
+ Line(points = {{-260, -256}, {-244, -256}, {-244, -268}, {-232, -268}, {-232, -268}, {-232, -268}}, color = {0, 0, 255}));
+ connect(pwLine20_23.n, B20.p) annotation(
+ Line(points = {{-232, -210}, {-232, -210}, {-232, -268}, {-232, -268}}, color = {0, 0, 255}));
+ connect(pwLine20_23.p, B23.p) annotation(
+ Line(points = {{-232, -190}, {-232, -190}, {-232, -118}, {-224, -118}, {-224, -118}}, color = {0, 0, 255}));
+ connect(B23.p, pwLine23_24.p) annotation(
+ Line(points = {{-224, -118}, {-222, -118}, {-222, -100}, {-180, -100}, {-180, -100}, {-180, -100}}, color = {0, 0, 255}));
+ connect(pwLine23_24.n, B24.p) annotation(
+ Line(points = {{-160, -100}, {-128, -100}, {-128, -88}, {-118, -88}, {-118, -90}, {-116, -90}}, color = {0, 0, 255}));
+ connect(B25.p, pwLine12_25.p) annotation(
+ Line(points = {{-8, 10}, {-8, 10}, {-8, -126}, {36, -126}, {36, -126}}, color = {0, 0, 255}));
+ connect(pwLine12_25.n, B12.p) annotation(
+ Line(points = {{56, -126}, {264, -126}, {264, -164}, {280, -164}, {280, -164}}, color = {0, 0, 255}));
+ connect(B26.p, pwLine25_26.p) annotation(
+ Line(points = {{-130, 44}, {-122, 44}, {-122, 22}, {-77, 22}}, color = {0, 0, 255}));
+ connect(pwLine25_26.n, B25.p) annotation(
+ Line(points = {{-58, 22}, {-18, 22}, {-18, 12}, {-8, 12}, {-8, 10}, {-8, 10}}, color = {0, 0, 255}));
+ connect(B27.p, pwLine26_27.p) annotation(
+ Line(points = {{-343, -31}, {-342, -31}, {-342, -52}, {-262, -52}}, color = {0, 0, 255}));
+ connect(pwLine26_27.n, B26.p) annotation(
+ Line(points = {{-242, -52}, {-172, -52}, {-172, 26}, {-144, 26}, {-144, 42}, {-130, 42}, {-130, 44}}, color = {0, 0, 255}));
+ connect(B28.p, pwLine27_28.p) annotation(
+ Line(points = {{-434, 36}, {-432, 36}, {-432, 0}, {-410, 0}, {-410, -2}}, color = {0, 0, 255}));
+ connect(pwLine27_28.n, B27.p) annotation(
+ Line(points = {{-390, -2}, {-358, -2}, {-358, -31}, {-343, -31}}, color = {0, 0, 255}));
+ connect(pwLine28_29.p, B28.p) annotation(
+ Line(points = {{-424, 64}, {-434, 64}, {-434, 36}, {-434, 36}}, color = {0, 0, 255}));
+ connect(pwLine28_29.n, B29.p) annotation(
+ Line(points = {{-404, 64}, {-398, 64}, {-398, 88}, {-396, 88}, {-396, 86}, {-394, 86}}, color = {0, 0, 255}));
+ connect(B29.p, pwLine29_30.p) annotation(
+ Line(points = {{-394, 86}, {-388, 86}, {-388, 108}, {-376, 108}, {-376, 108}}, color = {0, 0, 255}));
+ connect(pwLine29_30.n, B30.p) annotation(
+ Line(points = {{-356, 108}, {-344, 108}, {-344, 123}, {-333, 123}}, color = {0, 0, 255}));
+ connect(pwLine30_31.p, B30.p) annotation(
+ Line(points = {{-328, 90}, {-328, 122}, {-333, 122}, {-333, 123}}, color = {0, 0, 255}));
+ connect(pwLine30_31.n, B31.p) annotation(
+ Line(points = {{-328, 70}, {-328, 70}, {-328, 34}, {-334, 34}, {-334, 34}}, color = {0, 0, 255}));
+ connect(pwLine27_31.n, B27.p) annotation(
+ Line(points = {{-340, -3}, {-340, -31}, {-343, -31}}, color = {0, 0, 255}));
+ connect(pwLine30_32.n, B30.p) annotation(
+ Line(points = {{-338, 155}, {-338, 123}, {-333, 123}}, color = {0, 0, 255}));
+ connect(pwLine30_32.p, B32.p) annotation(
+ Line(points = {{-338, 173}, {-338, 210}}, color = {0, 0, 255}));
+ connect(pwLine32_33.p, B32.p) annotation(
+ Line(points = {{-344, 254}, {-346, 254}, {-346, 212}, {-338, 212}, {-338, 210}}, color = {0, 0, 255}));
+ connect(pwLine32_33.n, B33.p) annotation(
+ Line(points = {{-344, 274}, {-344, 313}, {-349, 313}}, color = {0, 0, 255}));
+ connect(pwLine32_34_1.p, B32.p) annotation(
+ Line(points = {{-308, 242}, {-330, 242}, {-330, 210}, {-338, 210}, {-338, 210}}, color = {0, 0, 255}));
+ connect(pwLine32_34_2.p, B32.p) annotation(
+ Line(points = {{-306, 260}, {-336, 260}, {-336, 212}, {-338, 212}, {-338, 210}}, color = {0, 0, 255}));
+ connect(pwLine32_34_1.n, B34.p) annotation(
+ Line(points = {{-288, 242}, {-268, 242}, {-268, 212}, {-257, 212}, {-257, 213}}, color = {0, 0, 255}));
+ connect(pwLine32_34_2.n, B34.p) annotation(
+ Line(points = {{-286, 260}, {-258, 260}, {-258, 213}, {-257, 213}}, color = {0, 0, 255}));
+ connect(pwLine30_51.p, B51.p) annotation(
+ Line(points = {{-398, 198}, {-398, 250}}, color = {0, 0, 255}));
+ connect(pwLine30_51.n, B30.p) annotation(
+ Line(points = {{-398, 178}, {-398, 178}, {-398, 140}, {-344, 140}, {-344, 122}, {-332, 122}, {-332, 124}}, color = {0, 0, 255}));
+ connect(pwLine51_33.n, B33.p) annotation(
+ Line(points = {{-366, 282}, {-356, 282}, {-356, 313}, {-349, 313}}, color = {0, 0, 255}));
+ connect(pwLine51_33.p, B51.p) annotation(
+ Line(points = {{-386, 282}, {-394, 282}, {-394, 252}, {-398, 252}, {-398, 250}}, color = {0, 0, 255}));
+ connect(pwLine35_50.n, B35.p) annotation(
+ Line(points = {{130, 168}, {164, 168}, {164, 196}, {172, 196}, {172, 196}, {174, 196}}, color = {0, 0, 255}));
+ connect(pwLine35_50.p, B50.p) annotation(
+ Line(points = {{110, 168}, {76, 168}, {76, 194}, {64, 194}}, color = {0, 0, 255}));
+ connect(pwLine35_36.p, B35.p) annotation(
+ Line(points = {{182, 145}, {182, 194}, {174, 194}, {174, 196}}, color = {0, 0, 255}));
+ connect(pwLine35_36.n, B36.p) annotation(
+ Line(points = {{182, 126}, {182, 73}, {181, 73}}, color = {0, 0, 255}));
+ connect(pwLine36_38.p, B38.p) annotation(
+ Line(points = {{90, 24}, {82, 24}, {82, -70}}, color = {0, 0, 255}));
+ connect(pwLine36_38.n, B36.p) annotation(
+ Line(points = {{110, 24}, {168, 24}, {168, 24}, {178, 24}, {178, 76}, {182, 76}, {182, 74}, {182, 74}}, color = {0, 0, 255}));
+ connect(B1.p, pwLine38_1.p) annotation(
+ Line(points = {{-170, 194}, {-156, 194}, {-156, 140}, {-28, 140}, {-28, 98}, {-1, 98}}, color = {0, 0, 255}));
+ connect(pwLine38_1.n, B38.p) annotation(
+ Line(points = {{18, 98}, {56, 98}, {56, -70}, {82, -70}, {82, -70}}, color = {0, 0, 255}));
+ connect(pwLine38_47.n, B47.p) annotation(
+ Line(points = {{158, -160}, {194, -160}, {194, -245}, {199, -245}}, color = {0, 0, 255}));
+ connect(pwLine47_43.n, B47.p) annotation(
+ Line(points = {{134, -202}, {184, -202}, {184, -245}, {199, -245}}, color = {0, 0, 255}));
+ connect(pwLine42_43.n, B42.p) annotation(
+ Line(points = {{-380, -218}, {-380, -302}, {-244, -302}, {-244, -308}, {-234, -308}}, color = {0, 0, 255}));
+ connect(pwLine42_43.p, B43.p) annotation(
+ Line(points = {{-380, -198}, {-380, -60}, {-132, -60}, {-132, -38}, {-122, -38}}, color = {0, 0, 255}));
+ connect(pwLine40_41.n, B40.p) annotation(
+ Line(points = {{-54, -254}, {-46, -254}, {-46, -278}, {-36, -278}}, color = {0, 0, 255}));
+ connect(pwLine40_41.p, B41.p) annotation(
+ Line(points = {{-74, -254}, {-134, -254}, {-134, -238}, {-136, -238}}, color = {0, 0, 255}));
+ connect(B41.p, pwLine41_43.n) annotation(
+ Line(points = {{-136, -238}, {-128, -238}, {-128, -216}, {-60, -216}, {-60, -123}}, color = {0, 0, 255}));
+ connect(B43.p, pwLine41_43.p) annotation(
+ Line(points = {{-122, -38}, {-118, -38}, {-118, -62}, {-60, -62}, {-60, -104}}, color = {0, 0, 255}));
+ connect(B43.p, pwLine47_43.p) annotation(
+ Line(points = {{-122, -38}, {-110, -38}, {-110, -48}, {-20, -48}, {-20, -202}, {114, -202}}, color = {0, 0, 255}));
+ connect(pwLine43_45.n, B43.p) annotation(
+ Line(points = {{-187, -20}, {-128, -20}, {-128, -38}, {-122, -38}}, color = {0, 0, 255}));
+ connect(B45.p, pwLine43_45.p) annotation(
+ Line(points = {{-240, 0}, {-234, 0}, {-234, -20}, {-205, -20}}, color = {0, 0, 255}));
+ connect(pwLine43_44.n, B43.p) annotation(
+ Line(points = {{-88, 42}, {-88, -8}, {-110, -8}, {-110, -38}, {-122, -38}}, color = {0, 0, 255}));
+ connect(B44.p, pwLine43_44.p) annotation(
+ Line(points = {{-130, 102}, {-120, 102}, {-120, 80}, {-88, 80}, {-88, 62}, {-88, 62}}, color = {0, 0, 255}));
+ connect(pwLine45_46.n, B45.p) annotation(
+ Line(points = {{-236, 65}, {-236, 0}, {-240, 0}}, color = {0, 0, 255}));
+ connect(pwLine45_46.p, B46.p) annotation(
+ Line(points = {{-236, 83}, {-236, 146}, {-238, 146}}, color = {0, 0, 255}));
+ connect(pwLine44_1.p, B1.p) annotation(
+ Line(points = {{-170, 139}, {-170, 194}}, color = {0, 0, 255}));
+ connect(pwLine44_1.n, B44.p) annotation(
+ Line(points = {{-170, 121}, {-170, 110}, {-140, 110}, {-140, 102}, {-130, 102}}, color = {0, 0, 255}));
+ connect(pwLine46_1.n, B1.p) annotation(
+ Line(points = {{-204, 176}, {-182, 176}, {-182, 194}, {-170, 194}}, color = {0, 0, 255}));
+ connect(pwLine46_1.p, B46.p) annotation(
+ Line(points = {{-224, 176}, {-232, 176}, {-232, 144}, {-238, 144}, {-238, 146}}, color = {0, 0, 255}));
+ connect(pwLine1_49.p, B1.p) annotation(
+ Line(points = {{-116, 174}, {-152, 174}, {-152, 194}, {-170, 194}}, color = {0, 0, 255}));
+ connect(pwLine1_49.n, B49.p) annotation(
+ Line(points = {{-96, 174}, {-58, 174}, {-58, 194}, {-50, 194}}, color = {0, 0, 255}));
+ connect(B49.p, pwLine49_50.p) annotation(
+ Line(points = {{-50, 194}, {-40, 194}, {-40, 170}, {1, 170}}, color = {0, 0, 255}));
+ connect(pwLine49_50.n, B50.p) annotation(
+ Line(points = {{20, 170}, {56, 170}, {56, 194}, {64, 194}}, color = {0, 0, 255}));
+ connect(B38.p, pwLine38_47.p) annotation(
+ Line(points = {{82, -70}, {80, -70}, {80, -160}, {138, -160}, {138, -160}}, color = {0, 0, 255}));
+ connect(pwLine37_38.p, B38.p) annotation(
+ Line(points = {{122, -94}, {90, -94}, {90, -68}, {80, -68}, {80, -70}, {82, -70}}, color = {0, 0, 255}));
+ connect(pwLine37_38.n, B37.p) annotation(
+ Line(points = {{142, -94}, {158, -94}, {158, -74}, {166, -74}, {166, -74}}, color = {0, 0, 255}));
+ connect(pwLine47_39.p, B47.p) annotation(
+ Line(points = {{200, -303}, {200, -272.5}, {199, -272.5}, {199, -245}}, color = {0, 0, 255}));
+ connect(pwLine48_2_1.n, B2.p) annotation(
+ Line(points = {{108, 276}, {112, 276}, {112, 262}, {120, 262}, {120, 262}}, color = {0, 0, 255}));
+ connect(pwLine48_2_1.p, B48.p) annotation(
+ Line(points = {{88, 276}, {78, 276}, {78, 310}, {83, 310}, {83, 311}}, color = {0, 0, 255}));
+ connect(pwLine48_2_2.p, B48.p) annotation(
+ Line(points = {{90, 288}, {84, 288}, {84, 311}, {83, 311}}, color = {0, 0, 255}));
+ connect(pwLine48_2_2.n, B2.p) annotation(
+ Line(points = {{110, 288}, {118, 288}, {118, 260}, {120, 260}, {120, 262}}, color = {0, 0, 255}));
+ connect(pwLine27_31.p, B31.p) annotation(
+ Line(points = {{-340, 16}, {-340, 16}, {-340, 32}, {-334, 32}, {-334, 34}}, color = {0, 0, 255}));
+ connect(T_27_45.p, B27.p) annotation(
+ Line(points = {{-314, -10}, {-336, -10}, {-336, -30}, {-342, -30}, {-342, -30}}, color = {0, 0, 255}));
+ connect(T_27_45.n, B45.p) annotation(
+ Line(points = {{-290, -10}, {-250, -10}, {-250, 0}, {-240, 0}, {-240, 0}}, color = {0, 0, 255}));
+ connect(LD1.p, B2.p) annotation(
+ Line(points = {{90, 246}, {88, 246}, {88, 254}, {112, 254}, {112, 262}, {120, 262}}, color = {0, 0, 255}));
+ connect(B3.p, LD2.p) annotation(
+ Line(points = {{260, 212}, {272, 212}, {272, 198}, {304, 198}, {304, 192}, {306, 192}}, color = {0, 0, 255}));
+ connect(LD3.p, B5.p) annotation(
+ Line(points = {{272, 342}, {272, 320}}, color = {0, 0, 255}));
+ connect(B6.p, LD4.p) annotation(
+ Line(points = {{267, 149}, {267, 136}, {320, 136}, {320, 132}}, color = {0, 0, 255}));
+ connect(B7.p, LD5.p) annotation(
+ Line(points = {{267, 97}, {284, 97}, {284, 84}, {320, 84}, {320, 80}}, color = {0, 0, 255}));
+ connect(B8.p, LD6.p) annotation(
+ Line(points = {{272, 46}, {282, 46}, {282, 34}, {312, 34}, {312, 26}}, color = {0, 0, 255}));
+ connect(B9.p, LD7.p) annotation(
+ Line(points = {{274, -6}, {280, -6}, {280, -18}, {322, -18}, {322, -24}}, color = {0, 0, 255}));
+ connect(B10.p, LD8.p) annotation(
+ Line(points = {{276, -60}, {288, -60}, {288, -74}, {322, -74}, {322, -76}, {326, -76}}, color = {0, 0, 255}));
+ connect(B11.p, LD9.p) annotation(
+ Line(points = {{280, -118}, {290, -118}, {290, -120}, {327, -120}, {327, -132}}, color = {0, 0, 255}));
+ connect(B12.p, LD10.p) annotation(
+ Line(points = {{280, -164}, {290, -164}, {290, -176}, {322, -176}, {322, -182}}, color = {0, 0, 255}));
+ connect(B13.p, LD11.p) annotation(
+ Line(points = {{283, -213}, {290, -213}, {290, -228}, {336, -228}, {336, -234}}, color = {0, 0, 255}));
+ connect(B14.p, LD12.p) annotation(
+ Line(points = {{288, -264}, {296, -264}, {296, -278}, {320, -278}, {320, -284}, {325, -284}}, color = {0, 0, 255}));
+ connect(LD13.p, B16.p) annotation(
+ Line(points = {{142, -274}, {142, -274}, {142, -286}, {152, -286}, {152, -300}, {160, -300}, {160, -300}}, color = {0, 0, 255}));
+ connect(LD14.p, B17.p) annotation(
+ Line(points = {{52, -362}, {52, -336}}, color = {0, 0, 255}));
+ connect(LD15.p, B18.p) annotation(
+ Line(points = {{-32, -364}, {-32, -330}}, color = {0, 0, 255}));
+ connect(LD16.p, B19.p) annotation(
+ Line(points = {{-166, -218}, {-166, -200}, {-150, -200}, {-150, -182}, {-137, -182}, {-137, -181}}, color = {0, 0, 255}));
+ connect(B20.p, LD17.p) annotation(
+ Line(points = {{-232, -268}, {-224, -268}, {-224, -284}, {-190, -284}, {-190, -294}}, color = {0, 0, 255}));
+ connect(LD18.p, B22.p) annotation(
+ Line(points = {{-310, -156}, {-310, -156}, {-310, -184}, {-316, -184}, {-316, -184}}, color = {0, 0, 255}));
+ connect(B23.p, LD19.p) annotation(
+ Line(points = {{-224, -118}, {-222, -118}, {-222, -136}, {-200, -136}, {-200, -150}}, color = {0, 0, 255}));
+ connect(B24.p, LD20.p) annotation(
+ Line(points = {{-116, -90}, {-118, -90}, {-118, -106}, {-104, -106}, {-104, -114}, {-104, -114}}, color = {0, 0, 255}));
+ connect(B25.p, LD21.p) annotation(
+ Line(points = {{-8, 10}, {-2, 10}, {-2, -8}, {16, -8}, {16, -20}, {18, -20}}, color = {0, 0, 255}));
+ connect(LD22.p, B26.p) annotation(
+ Line(points = {{-127, 14}, {-132, 14}, {-132, 44}, {-130, 44}}, color = {0, 0, 255}));
+ connect(LD23.p, B27.p) annotation(
+ Line(points = {{-412, -54}, {-412, -46}, {-352, -46}, {-352, -30}, {-342, -30}}, color = {0, 0, 255}));
+ connect(LD24.p, B28.p) annotation(
+ Line(points = {{-457, 6}, {-457, 24}, {-442, 24}, {-442, 38}, {-434, 38}, {-434, 36}}, color = {0, 0, 255}));
+ connect(LD25.p, B29.p) annotation(
+ Line(points = {{-459, 70}, {-459, 78}, {-404, 78}, {-404, 88}, {-394, 88}, {-394, 86}}, color = {0, 0, 255}));
+ connect(B30.p, LD26.p) annotation(
+ Line(points = {{-332, 124}, {-320, 124}, {-320, 102}, {-296, 102}, {-296, 85}}, color = {0, 0, 255}));
+ connect(B31.p, LD27.p) annotation(
+ Line(points = {{-334, 34}, {-330, 34}, {-330, 18}, {-285, 18}, {-285, 26}}, color = {0, 0, 255}));
+ connect(B32.p, LD28.p) annotation(
+ Line(points = {{-338, 210}, {-346, 210}, {-346, 198}, {-366, 198}, {-366, 184}, {-364, 184}}, color = {0, 0, 255}));
+ connect(B34.p, LD29.p) annotation(
+ Line(points = {{-257, 213}, {-250, 213}, {-250, 230}, {-232, 230}, {-232, 236}}, color = {0, 0, 255}));
+ connect(LD30.p, B51.p) annotation(
+ Line(points = {{-422, 226}, {-424, 226}, {-424, 236}, {-406, 236}, {-406, 250}, {-398, 250}}, color = {0, 0, 255}));
+ connect(B49.p, pwLine39_49.p) annotation(
+ Line(points = {{-50, 194}, {-46, 194}, {-46, 82}, {-36, 82}, {-36, 66}, {-34, 66}}, color = {0, 0, 255}));
+ connect(pwLine47_39.n, B39.p) annotation(
+ Line(points = {{200, -320}, {198, -320}, {198, -324}, {170, -324}, {170, -346}, {166, -346}, {166, -344}}, color = {0, 0, 255}));
+ connect(B39.p, pwLine39_49.n) annotation(
+ Line(points = {{166, -344}, {150, -344}, {150, -316}, {72, -316}, {72, -160}, {-34, -160}, {-34, 48}, {-34, 48}}, color = {0, 0, 255}));
+ connect(genBus7.pwPin, B7.p) annotation(
+ Line(points = {{210, 136}, {210, 114}, {260, 114}, {260, 98}, {268, 98}}, color = {0, 0, 255}));
+ connect(genBus15.pwPin, B15.p) annotation(
+ Line(points = {{286, -354}, {286, -354}, {286, -330}, {286, -330}}, color = {0, 0, 255}));
+ connect(genBus17.pwPin, B17.p) annotation(
+ Line(points = {{52, -310}, {52, -310}, {52, -336}, {52, -336}}, color = {0, 0, 255}));
+ connect(genBus19.pwPin, B19.p) annotation(
+ Line(points = {{-138, -162}, {-138, -162}, {-138, -180}, {-136, -180}, {-136, -180}}, color = {0, 0, 255}));
+ connect(genBus30.pwPin, B30.p) annotation(
+ Line(points = {{-302, 166}, {-302, 166}, {-302, 150}, {-332, 150}, {-332, 124}, {-332, 124}, {-332, 124}}, color = {0, 0, 255}));
+ connect(genBus33.pwPin, B33.p) annotation(
+ Line(points = {{-344, 334}, {-344, 334}, {-344, 312}, {-348, 312}, {-348, 314}}, color = {0, 0, 255}));
+ connect(genBus38.pwPin, B38.p) annotation(
+ Line(points = {{106, -44}, {106, -52}, {90, -52}, {90, -68}, {82, -68}, {82, -70}}, color = {0, 0, 255}));
+ connect(genBus44.pwPin, B44.p) annotation(
+ Line(points = {{-196, 110}, {-196, 110}, {-196, 100}, {-130, 100}, {-130, 102}}, color = {0, 0, 255}));
+ connect(genBus48.pwPin, B48.p) annotation(
+ Line(points = {{80, 328}, {80, 312}, {82, 312}}, color = {0, 0, 255}));
+ connect(genBus49.pwPin, B49.p) annotation(
+ Line(points = {{-50, 214}, {-50, 194}}, color = {0, 0, 255}));
+ connect(genBus50.pwPin, B50.p) annotation(
+ Line(points = {{66, 210}, {66, 210}, {66, 194}, {64, 194}}, color = {0, 0, 255}));
+ connect(T_1_34.n, B1.p) annotation(
+ Line(points = {{-210, 198}, {-182, 198}, {-182, 194}, {-170, 194}}, color = {0, 0, 255}));
+ connect(T_1_34.p, B34.p) annotation(
+ Line(points = {{-246, 198}, {-258, 198}, {-258, 214}, {-256, 214}}, color = {0, 0, 255}));
+ connect(T_3_35.p, B35.p) annotation(
+ Line(points = {{186, 212}, {174, 212}, {174, 196}, {174, 196}}, color = {0, 0, 255}));
+ connect(T_3_35.n, B3.p) annotation(
+ Line(points = {{222, 212}, {260, 212}, {260, 212}, {260, 212}}, color = {0, 0, 255}));
+ connect(T_4_5.n, B4.p) annotation(
+ Line(points = {{270, 274}, {270, 274}, {270, 264}, {268, 264}, {268, 264}}, color = {0, 0, 255}));
+ connect(T_4_5.p, B5.p) annotation(
+ Line(points = {{270, 310}, {270, 310}, {270, 320}, {272, 320}}, color = {0, 0, 255}));
+ connect(T_7_36.p, B36.p) annotation(
+ Line(points = {{209, 90}, {190, 90}, {190, 74}, {182, 74}}, color = {0, 0, 255}));
+ connect(T_7_36.n, B7.p) annotation(
+ Line(points = {{240, 90}, {256, 90}, {256, 96}, {266, 96}, {266, 98}, {268, 98}}, color = {0, 0, 255}));
+ connect(T_11_37.p, B37.p) annotation(
+ Line(points = {{198, -100}, {172, -100}, {172, -74}, {164, -74}, {164, -74}, {166, -74}}, color = {0, 0, 255}));
+ connect(T_11_37.n, B11.p) annotation(
+ Line(points = {{236, -100}, {256, -100}, {256, -118}, {280, -118}, {280, -118}}, color = {0, 0, 255}));
+ connect(T_16_39.n, B39.p) annotation(
+ Line(points = {{164, -336}, {164, -336}, {164, -344}, {166, -344}}, color = {0, 0, 255}));
+ connect(T_16_39.p, B16.p) annotation(
+ Line(points = {{164, -306}, {162, -306}, {162, -298}, {160, -298}, {160, -300}, {160, -300}}, color = {0, 0, 255}));
+ connect(T_18_40.n, B18.p) annotation(
+ Line(points = {{-36, -317}, {-36, -330}, {-32, -330}}, color = {0, 0, 255}));
+ connect(T_18_40.p, B40.p) annotation(
+ Line(points = {{-36, -287}, {-36, -278}}, color = {0, 0, 255}));
+ connect(T_14_47.p, B47.p) annotation(
+ Line(points = {{224, -258}, {206, -258}, {206, -246}, {200, -246}, {200, -244}}, color = {0, 0, 255}));
+ connect(T_14_47.n, B14.p) annotation(
+ Line(points = {{256, -258}, {274, -258}, {274, -262}, {288, -262}, {288, -264}}, color = {0, 0, 255}));
+ connect(T_19_41.n, B41.p) annotation(
+ Line(points = {{-136, -228}, {-138, -228}, {-138, -238}, {-136, -238}}, color = {0, 0, 255}));
+ connect(T_19_41.p, B19.p) annotation(
+ Line(points = {{-136, -194}, {-138, -194}, {-138, -180}, {-136, -180}}, color = {0, 0, 255}));
+ connect(T_21_22.n, B21.p) annotation(
+ Line(points = {{-318, -228}, {-318, -228}, {-318, -240}, {-312, -240}, {-312, -238}}, color = {0, 0, 255}));
+ connect(T_21_22.p, B22.p) annotation(
+ Line(points = {{-318, -196}, {-318, -196}, {-318, -184}, {-316, -184}, {-316, -184}, {-316, -184}}, color = {0, 0, 255}));
+ connect(T_24_43.n, B24.p) annotation(
+ Line(points = {{-124, -83}, {-124, -90}, {-116, -90}}, color = {0, 0, 255}));
+ connect(T_24_43.p, B43.p) annotation(
+ Line(points = {{-124, -61}, {-124, -49.5}, {-122, -49.5}, {-122, -38}}, color = {0, 0, 255}));
+ connect(T_44_26.n, B26.p) annotation(
+ Line(points = {{-134, 56}, {-134, 56}, {-134, 44}, {-132, 44}, {-132, 44}, {-130, 44}}, color = {0, 0, 255}));
+ connect(T_44_26.p, B44.p) annotation(
+ Line(points = {{-134, 92}, {-134, 92}, {-134, 102}, {-130, 102}}, color = {0, 0, 255}));
+ connect(genBus11.pwPin, B1.p) annotation(
+ Line(points = {{-168, 228}, {-170, 228}, {-170, 194}}, color = {0, 0, 255}));
+ connect(pwFault.p, B28.p) annotation(
+ Line(points = {{-392, 25}, {-426, 25}, {-426, 38}, {-434, 38}, {-434, 36}}, color = {0, 0, 255}));
+ connect(T_30_46.p, B30.p) annotation(
+ Line(points = {{-304, 136}, {-324, 136}, {-324, 124}, {-332, 124}, {-332, 124}, {-332, 124}}, color = {0, 0, 255}));
+ connect(T_30_46.n, B46.p) annotation(
+ Line(points = {{-270, 136}, {-240, 136}, {-240, 146}, {-238, 146}}, color = {0, 0, 255}));
+ connect(T_20_42.n, B42.p) annotation(
+ Line(points = {{-236, -299}, {-236, -308}, {-234, -308}}, color = {0, 0, 255}));
+ connect(T_20_42.p, B20.p) annotation(
+ Line(points = {{-236, -276}, {-236, -276}, {-236, -268}, {-232, -268}, {-232, -268}}, color = {0, 0, 255}));
+ annotation(
+ Diagram(coordinateSystem(extent = {{-600, -400}, {600, 400}})),
+ Icon(coordinateSystem(extent = {{-600, -400}, {600, 400}})),
+ uses(OpenIPSL(version = "1.5.0")));
+ end Network;
+
+ package GenBus
+ model GenBus1
+ extends OpenIPSL.Electrical.Essentials.pfComponent;
+ OpenIPSL.Interfaces.PwPin pwPin annotation(
+ Placement(visible = true, transformation(origin = {102, 2}, extent = {{-10, -10}, {10, 10}}, rotation = 0), iconTransformation(origin = {102, 2}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
+ OpenIPSL.Electrical.Machines.PSAT.Order6 order6(D = 0.1, M = 3.59 * 2, P_0 = P_0, Q_0 = Q_0, Sn = 9950, T1d0 = 4.30, T1q0 = 0.85, T2d0 = 0.032, T2q0 = 0.05, Taa = 0.01, V_0 = V_0, V_b = V_b, Vn = 11, angle_0 = angle_0, e1q(fixed = true), ra = 0, v(fixed = true), x1d = 0.169, x1q = 0.228, x2d = 0.135, x2q = 0.2, xd = 1.79, xq = 1.71) annotation(
+ Placement(visible = true, transformation(origin = {32, 0}, extent = {{-12, -12}, {12, 12}}, rotation = 0)));
+ OpenIPSL.Electrical.Controls.PSAT.AVR.AVRTypeII AVR(Ae = 0.0039, Be = 1.555, Ka = 20, Ke = 1, Kf = 0.063, Ta = 0.2, Te = 0.314, Tf = 0.35, Tr = 0.001, v0 = V_0, vrmax = 5, vrmin = -5) annotation(
+ Placement(visible = true, transformation(origin = {-23, -4}, extent = {{-13, -12}, {13, 12}}, rotation = 0)));
+ equation
+ connect(order6.p, pwPin) annotation(
+ Line(points = {{44, 0}, {98, 0}, {98, 2}, {102, 2}}, color = {0, 0, 255}));
+ connect(order6.pm, order6.pm0) annotation(
+ Line(points = {{18, -6}, {10, -6}, {10, -16}, {22, -16}, {22, -12}, {22, -12}, {22, -14}}, color = {0, 0, 127}));
+ connect(AVR.vf, order6.vf) annotation(
+ Line(points = {{-7, -4}, {0, -4}, {0, 6}, {18, 6}}, color = {0, 0, 127}));
+ connect(AVR.v, order6.v) annotation(
+ Line(points = {{-38, -12}, {-48, -12}, {-48, -38}, {62, -38}, {62, 4}, {46, 4}, {46, 4}}, color = {0, 0, 127}));
+ connect(AVR.vf0, order6.vf0) annotation(
+ Line(points = {{-22, -18}, {-24, -18}, {-24, -44}, {84, -44}, {84, 20}, {22, 20}, {22, 14}, {22, 14}}, color = {0, 0, 127}));
+ connect(AVR.vref, AVR.vref0) annotation(
+ Line(points = {{-38, 4}, {-48, 4}, {-48, 18}, {-22, 18}, {-22, 10}, {-22, 10}}, color = {0, 0, 127}));
+ annotation(
+ Icon(graphics = {Ellipse(origin = {13, 7}, extent = {{-83, 67}, {83, -67}}, endAngle = 360), Line(origin = {10.7956, 12.6842}, points = {{-60.7956, -20.6842}, {-10.7956, 21.3158}, {31.2044, -12.6842}, {61.2044, 17.3158}, {61.2044, 19.3158}})}, coordinateSystem(initialScale = 0.1)),
+ Diagram);
+ end GenBus1;
+
+ model GenBus7
+ extends OpenIPSL.Electrical.Essentials.pfComponent;
+ OpenIPSL.Interfaces.PwPin pwPin annotation(
+ Placement(visible = true, transformation(origin = {102, 2}, extent = {{-10, -10}, {10, 10}}, rotation = 0), iconTransformation(origin = {102, 2}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
+ OpenIPSL.Electrical.Machines.PSAT.Order6 order6(D = 0.1, M = 3.59 * 2, P_0 = P_0, Q_0 = Q_0, Sn = 9950, T1d0 = 4.30, T1q0 = 0.85, T2d0 = 0.032, T2q0 = 0.05, Taa = 0.01, V_0 = V_0, V_b = V_b, Vn = 11, angle_0 = angle_0, e1q(fixed = true), ra = 0, v(fixed = true), x1d = 0.169, x1q = 0.228, x2d = 0.135, x2q = 0.2, xd = 1.79, xq = 1.71) annotation(
+ Placement(visible = true, transformation(origin = {32, 0}, extent = {{-12, -12}, {12, 12}}, rotation = 0)));
+ OpenIPSL.Electrical.Controls.PSAT.AVR.AVRTypeII AVR(Ae = 0.0039, Be = 1.555, Ka = 20, Ke = 1, Kf = 0.063, Ta = 0.2, Te = 0.314, Tf = 0.35, Tr = 0.001, v0 = V_0, vrmax = 5, vrmin = -5) annotation(
+ Placement(visible = true, transformation(origin = {-23, -4}, extent = {{-13, -12}, {13, 12}}, rotation = 0)));
+ equation
+ connect(order6.p, pwPin) annotation(
+ Line(points = {{44, 0}, {98, 0}, {98, 2}, {102, 2}}, color = {0, 0, 255}));
+ connect(order6.pm, order6.pm0) annotation(
+ Line(points = {{18, -6}, {10, -6}, {10, -16}, {22, -16}, {22, -12}, {22, -12}, {22, -14}}, color = {0, 0, 127}));
+ connect(AVR.vf, order6.vf) annotation(
+ Line(points = {{-7, -4}, {0, -4}, {0, 6}, {18, 6}}, color = {0, 0, 127}));
+ connect(AVR.v, order6.v) annotation(
+ Line(points = {{-38, -12}, {-48, -12}, {-48, -38}, {62, -38}, {62, 4}, {46, 4}, {46, 4}}, color = {0, 0, 127}));
+ connect(AVR.vf0, order6.vf0) annotation(
+ Line(points = {{-22, -18}, {-24, -18}, {-24, -44}, {84, -44}, {84, 20}, {22, 20}, {22, 14}, {22, 14}}, color = {0, 0, 127}));
+ connect(AVR.vref, AVR.vref0) annotation(
+ Line(points = {{-38, 4}, {-48, 4}, {-48, 18}, {-22, 18}, {-22, 10}, {-22, 10}}, color = {0, 0, 127}));
+ annotation(
+ Icon(graphics = {Ellipse(origin = {13, 7}, extent = {{-83, 67}, {83, -67}}, endAngle = 360), Line(origin = {10.7956, 12.6842}, points = {{-60.7956, -20.6842}, {-10.7956, 21.3158}, {31.2044, -12.6842}, {61.2044, 17.3158}, {61.2044, 19.3158}})}, coordinateSystem(initialScale = 0.1)),
+ Diagram);
+ end GenBus7;
+
+ model GenBus15
+ extends OpenIPSL.Electrical.Essentials.pfComponent;
+ OpenIPSL.Interfaces.PwPin pwPin annotation(
+ Placement(visible = true, transformation(origin = {102, 2}, extent = {{-10, -10}, {10, 10}}, rotation = 0), iconTransformation(origin = {102, 2}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
+ OpenIPSL.Electrical.Machines.PSAT.Order6 order6(D = 0.1, M = 3.59 * 2, P_0 = P_0, Q_0 = Q_0, Sn = 9950, T1d0 = 4.30, T1q0 = 0.85, T2d0 = 0.032, T2q0 = 0.05, Taa = 0.01, V_0 = V_0, V_b = V_b, Vn = 11, angle_0 = angle_0, e1q(fixed = true), ra = 0, v(fixed = true), x1d = 0.169, x1q = 0.228, x2d = 0.135, x2q = 0.2, xd = 1.79, xq = 1.71) annotation(
+ Placement(visible = true, transformation(origin = {32, 0}, extent = {{-12, -12}, {12, 12}}, rotation = 0)));
+ OpenIPSL.Electrical.Controls.PSAT.AVR.AVRTypeII AVR(Ae = 0.0039, Be = 1.555, Ka = 20, Ke = 1, Kf = 0.063, Ta = 0.2, Te = 0.314, Tf = 0.35, Tr = 0.001, v0 = V_0, vrmax = 5, vrmin = -5) annotation(
+ Placement(visible = true, transformation(origin = {-23, -4}, extent = {{-13, -12}, {13, 12}}, rotation = 0)));
+ equation
+ connect(order6.p, pwPin) annotation(
+ Line(points = {{44, 0}, {98, 0}, {98, 2}, {102, 2}}, color = {0, 0, 255}));
+ connect(order6.pm, order6.pm0) annotation(
+ Line(points = {{18, -6}, {10, -6}, {10, -16}, {22, -16}, {22, -12}, {22, -12}, {22, -14}}, color = {0, 0, 127}));
+ connect(AVR.vf, order6.vf) annotation(
+ Line(points = {{-7, -4}, {0, -4}, {0, 6}, {18, 6}}, color = {0, 0, 127}));
+ connect(AVR.v, order6.v) annotation(
+ Line(points = {{-38, -12}, {-48, -12}, {-48, -38}, {62, -38}, {62, 4}, {46, 4}, {46, 4}}, color = {0, 0, 127}));
+ connect(AVR.vf0, order6.vf0) annotation(
+ Line(points = {{-22, -18}, {-24, -18}, {-24, -44}, {84, -44}, {84, 20}, {22, 20}, {22, 14}, {22, 14}}, color = {0, 0, 127}));
+ connect(AVR.vref, AVR.vref0) annotation(
+ Line(points = {{-38, 4}, {-48, 4}, {-48, 18}, {-22, 18}, {-22, 10}, {-22, 10}}, color = {0, 0, 127}));
+ annotation(
+ Icon(graphics = {Ellipse(origin = {13, 7}, extent = {{-83, 67}, {83, -67}}, endAngle = 360), Line(origin = {10.7956, 12.6842}, points = {{-60.7956, -20.6842}, {-10.7956, 21.3158}, {31.2044, -12.6842}, {61.2044, 17.3158}, {61.2044, 19.3158}})}, coordinateSystem(initialScale = 0.1)),
+ Diagram);
+ end GenBus15;
+
+ model GenBus17
+ extends OpenIPSL.Electrical.Essentials.pfComponent;
+ OpenIPSL.Interfaces.PwPin pwPin annotation(
+ Placement(visible = true, transformation(origin = {102, 2}, extent = {{-10, -10}, {10, 10}}, rotation = 0), iconTransformation(origin = {102, 2}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
+ OpenIPSL.Electrical.Machines.PSAT.Order6 order6(D = 0.1, M = 3.59 * 2, P_0 = P_0, Q_0 = Q_0, Sn = 9950, T1d0 = 4.30, T1q0 = 0.85, T2d0 = 0.032, T2q0 = 0.05, Taa = 0.01, V_0 = V_0, V_b = V_b, Vn = 11, angle_0 = angle_0, e1q(fixed = true), ra = 0, v(fixed = true), x1d = 0.169, x1q = 0.228, x2d = 0.135, x2q = 0.2, xd = 1.79, xq = 1.71) annotation(
+ Placement(visible = true, transformation(origin = {32, 0}, extent = {{-12, -12}, {12, 12}}, rotation = 0)));
+ OpenIPSL.Electrical.Controls.PSAT.AVR.AVRTypeII AVR(Ae = 0.0039, Be = 1.555, Ka = 20, Ke = 1, Kf = 0.063, Ta = 0.2, Te = 0.314, Tf = 0.35, Tr = 0.001, v0 = V_0, vrmax = 5, vrmin = -5) annotation(
+ Placement(visible = true, transformation(origin = {-23, -4}, extent = {{-13, -12}, {13, 12}}, rotation = 0)));
+ equation
+ connect(order6.p, pwPin) annotation(
+ Line(points = {{44, 0}, {98, 0}, {98, 2}, {102, 2}}, color = {0, 0, 255}));
+ connect(order6.pm, order6.pm0) annotation(
+ Line(points = {{18, -6}, {10, -6}, {10, -16}, {22, -16}, {22, -12}, {22, -12}, {22, -14}}, color = {0, 0, 127}));
+ connect(AVR.vf, order6.vf) annotation(
+ Line(points = {{-7, -4}, {0, -4}, {0, 6}, {18, 6}}, color = {0, 0, 127}));
+ connect(AVR.v, order6.v) annotation(
+ Line(points = {{-38, -12}, {-48, -12}, {-48, -38}, {62, -38}, {62, 4}, {46, 4}, {46, 4}}, color = {0, 0, 127}));
+ connect(AVR.vf0, order6.vf0) annotation(
+ Line(points = {{-22, -18}, {-24, -18}, {-24, -44}, {84, -44}, {84, 20}, {22, 20}, {22, 14}, {22, 14}}, color = {0, 0, 127}));
+ connect(AVR.vref, AVR.vref0) annotation(
+ Line(points = {{-38, 4}, {-48, 4}, {-48, 18}, {-22, 18}, {-22, 10}, {-22, 10}}, color = {0, 0, 127}));
+ annotation(
+ Icon(graphics = {Ellipse(origin = {13, 7}, extent = {{-83, 67}, {83, -67}}, endAngle = 360), Line(origin = {10.7956, 12.6842}, points = {{-60.7956, -20.6842}, {-10.7956, 21.3158}, {31.2044, -12.6842}, {61.2044, 17.3158}, {61.2044, 19.3158}})}, coordinateSystem(initialScale = 0.1)),
+ Diagram);
+ end GenBus17;
+
+ model GenBus19
+ extends OpenIPSL.Electrical.Essentials.pfComponent;
+ OpenIPSL.Interfaces.PwPin pwPin annotation(
+ Placement(visible = true, transformation(origin = {102, 2}, extent = {{-10, -10}, {10, 10}}, rotation = 0), iconTransformation(origin = {102, 2}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
+ OpenIPSL.Electrical.Machines.PSAT.Order6 order6(D = 0.1, M = 3.59 * 2, P_0 = P_0, Q_0 = Q_0, Sn = 2000, T1d0 = 4.30, T1q0 = 0.85, T2d0 = 0.032, T2q0 = 0.05, Taa = 0.01, V_0 = V_0, V_b = V_b, Vn = 11, angle_0 = angle_0, e1q(fixed = true), ra = 0, v(fixed = true), x1d = 0.169, x1q = 0.228, x2d = 0.135, x2q = 0.2, xd = 1.79, xq = 1.71) annotation(
+ Placement(visible = true, transformation(origin = {32, 0}, extent = {{-12, -12}, {12, 12}}, rotation = 0)));
+ OpenIPSL.Electrical.Controls.PSAT.AVR.AVRTypeII AVR(Ae = 0.0039, Be = 1.555, Ka = 20, Ke = 1, Kf = 0.063, Ta = 0.2, Te = 0.314, Tf = 0.35, Tr = 0.001, v0 = V_0, vrmax = 5, vrmin = -5) annotation(
+ Placement(visible = true, transformation(origin = {-23, -4}, extent = {{-13, -12}, {13, 12}}, rotation = 0)));
+ equation
+ connect(order6.p, pwPin) annotation(
+ Line(points = {{44, 0}, {98, 0}, {98, 2}, {102, 2}}, color = {0, 0, 255}));
+ connect(order6.pm, order6.pm0) annotation(
+ Line(points = {{18, -6}, {10, -6}, {10, -16}, {22, -16}, {22, -12}, {22, -12}, {22, -14}}, color = {0, 0, 127}));
+ connect(AVR.vf, order6.vf) annotation(
+ Line(points = {{-7, -4}, {0, -4}, {0, 6}, {18, 6}}, color = {0, 0, 127}));
+ connect(AVR.v, order6.v) annotation(
+ Line(points = {{-38, -12}, {-48, -12}, {-48, -38}, {62, -38}, {62, 4}, {46, 4}, {46, 4}}, color = {0, 0, 127}));
+ connect(AVR.vf0, order6.vf0) annotation(
+ Line(points = {{-22, -18}, {-24, -18}, {-24, -44}, {84, -44}, {84, 20}, {22, 20}, {22, 14}, {22, 14}}, color = {0, 0, 127}));
+ connect(AVR.vref, AVR.vref0) annotation(
+ Line(points = {{-38, 4}, {-48, 4}, {-48, 18}, {-22, 18}, {-22, 10}, {-22, 10}}, color = {0, 0, 127}));
+ annotation(
+ Icon(graphics = {Ellipse(origin = {13, 7}, extent = {{-83, 67}, {83, -67}}, endAngle = 360), Line(origin = {10.7956, 12.6842}, points = {{-60.7956, -20.6842}, {-10.7956, 21.3158}, {31.2044, -12.6842}, {61.2044, 17.3158}, {61.2044, 19.3158}})}, coordinateSystem(initialScale = 0.1)),
+ Diagram);
+ end GenBus19;
+
+ model GenBus30
+ extends OpenIPSL.Electrical.Essentials.pfComponent;
+ OpenIPSL.Interfaces.PwPin pwPin annotation(
+ Placement(visible = true, transformation(origin = {102, 2}, extent = {{-10, -10}, {10, 10}}, rotation = 0), iconTransformation(origin = {102, 2}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
+ OpenIPSL.Electrical.Machines.PSAT.Order6 order6(D = 0.1, M = 3.59 * 2, P_0 = P_0, Q_0 = Q_0, Sn = 9950, T1d0 = 4.30, T1q0 = 0.85, T2d0 = 0.032, T2q0 = 0.05, Taa = 0.01, V_0 = V_0, V_b = V_b, Vn = 11, angle_0 = angle_0, e1q(fixed = true), ra = 0, v(fixed = true), x1d = 0.169, x1q = 0.228, x2d = 0.135, x2q = 0.2, xd = 1.79, xq = 1.71) annotation(
+ Placement(visible = true, transformation(origin = {32, 0}, extent = {{-12, -12}, {12, 12}}, rotation = 0)));
+ OpenIPSL.Electrical.Controls.PSAT.AVR.AVRTypeII AVR(Ae = 0.0039, Be = 1.555, Ka = 20, Ke = 1, Kf = 0.063, Ta = 0.2, Te = 0.314, Tf = 0.35, Tr = 0.001, v0 = V_0, vrmax = 5, vrmin = -5) annotation(
+ Placement(visible = true, transformation(origin = {-23, -4}, extent = {{-13, -12}, {13, 12}}, rotation = 0)));
+ equation
+ connect(order6.p, pwPin) annotation(
+ Line(points = {{44, 0}, {98, 0}, {98, 2}, {102, 2}}, color = {0, 0, 255}));
+ connect(order6.pm, order6.pm0) annotation(
+ Line(points = {{18, -6}, {10, -6}, {10, -16}, {22, -16}, {22, -12}, {22, -12}, {22, -14}}, color = {0, 0, 127}));
+ connect(AVR.vf, order6.vf) annotation(
+ Line(points = {{-7, -4}, {0, -4}, {0, 6}, {18, 6}}, color = {0, 0, 127}));
+ connect(AVR.v, order6.v) annotation(
+ Line(points = {{-38, -12}, {-48, -12}, {-48, -38}, {62, -38}, {62, 4}, {46, 4}, {46, 4}}, color = {0, 0, 127}));
+ connect(AVR.vf0, order6.vf0) annotation(
+ Line(points = {{-22, -18}, {-24, -18}, {-24, -44}, {84, -44}, {84, 20}, {22, 20}, {22, 14}, {22, 14}}, color = {0, 0, 127}));
+ connect(AVR.vref, AVR.vref0) annotation(
+ Line(points = {{-38, 4}, {-48, 4}, {-48, 18}, {-22, 18}, {-22, 10}, {-22, 10}}, color = {0, 0, 127}));
+ annotation(
+ Icon(graphics = {Ellipse(origin = {13, 7}, extent = {{-83, 67}, {83, -67}}, endAngle = 360), Line(origin = {10.7956, 12.6842}, points = {{-60.7956, -20.6842}, {-10.7956, 21.3158}, {31.2044, -12.6842}, {61.2044, 17.3158}, {61.2044, 19.3158}})}, coordinateSystem(initialScale = 0.1)),
+ Diagram);
+ end GenBus30;
+
+ model GenBus33
+ extends OpenIPSL.Electrical.Essentials.pfComponent;
+ OpenIPSL.Interfaces.PwPin pwPin annotation(
+ Placement(visible = true, transformation(origin = {102, 2}, extent = {{-10, -10}, {10, 10}}, rotation = 0), iconTransformation(origin = {102, 2}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
+ OpenIPSL.Electrical.Machines.PSAT.Order6 order6(D = 0.1, M = 3.59 * 2, P_0 = P_0, Q_0 = Q_0, Sn = 9950, T1d0 = 4.30, T1q0 = 0.85, T2d0 = 0.032, T2q0 = 0.05, Taa = 0.01, V_0 = V_0, V_b = V_b, Vn = 11, angle_0 = angle_0, e1q(fixed = true), ra = 0, v(fixed = true), x1d = 0.169, x1q = 0.228, x2d = 0.135, x2q = 0.2, xd = 1.79, xq = 1.71) annotation(
+ Placement(visible = true, transformation(origin = {32, 0}, extent = {{-12, -12}, {12, 12}}, rotation = 0)));
+ OpenIPSL.Electrical.Controls.PSAT.AVR.AVRTypeII AVR(Ae = 0.0039, Be = 1.555, Ka = 20, Ke = 1, Kf = 0.063, Ta = 0.2, Te = 0.314, Tf = 0.35, Tr = 0.001, v0 = V_0, vrmax = 5, vrmin = -5) annotation(
+ Placement(visible = true, transformation(origin = {-23, -4}, extent = {{-13, -12}, {13, 12}}, rotation = 0)));
+ equation
+ connect(order6.p, pwPin) annotation(
+ Line(points = {{44, 0}, {98, 0}, {98, 2}, {102, 2}}, color = {0, 0, 255}));
+ connect(order6.pm, order6.pm0) annotation(
+ Line(points = {{18, -6}, {10, -6}, {10, -16}, {22, -16}, {22, -12}, {22, -12}, {22, -14}}, color = {0, 0, 127}));
+ connect(AVR.vf, order6.vf) annotation(
+ Line(points = {{-7, -4}, {0, -4}, {0, 6}, {18, 6}}, color = {0, 0, 127}));
+ connect(AVR.v, order6.v) annotation(
+ Line(points = {{-38, -12}, {-48, -12}, {-48, -38}, {62, -38}, {62, 4}, {46, 4}, {46, 4}}, color = {0, 0, 127}));
+ connect(AVR.vf0, order6.vf0) annotation(
+ Line(points = {{-22, -18}, {-24, -18}, {-24, -44}, {84, -44}, {84, 20}, {22, 20}, {22, 14}, {22, 14}}, color = {0, 0, 127}));
+ connect(AVR.vref, AVR.vref0) annotation(
+ Line(points = {{-38, 4}, {-48, 4}, {-48, 18}, {-22, 18}, {-22, 10}, {-22, 10}}, color = {0, 0, 127}));
+ annotation(
+ Icon(graphics = {Ellipse(origin = {13, 7}, extent = {{-83, 67}, {83, -67}}, endAngle = 360), Line(origin = {10.7956, 12.6842}, points = {{-60.7956, -20.6842}, {-10.7956, 21.3158}, {31.2044, -12.6842}, {61.2044, 17.3158}, {61.2044, 19.3158}})}, coordinateSystem(initialScale = 0.1)),
+ Diagram);
+ end GenBus33;
+
+ model GenBus44
+ extends OpenIPSL.Electrical.Essentials.pfComponent;
+ OpenIPSL.Interfaces.PwPin pwPin annotation(
+ Placement(visible = true, transformation(origin = {102, 2}, extent = {{-10, -10}, {10, 10}}, rotation = 0), iconTransformation(origin = {102, 2}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
+ OpenIPSL.Electrical.Machines.PSAT.Order6 order6(D = 0.1, M = 3.59 * 2, P_0 = P_0, Q_0 = Q_0, Sn = 9950, T1d0 = 4.30, T1q0 = 0.85, T2d0 = 0.032, T2q0 = 0.05, Taa = 0.01, V_0 = V_0, V_b = V_b, Vn = 11, angle_0 = angle_0, e1q(fixed = true), ra = 0, v(fixed = true), x1d = 0.169, x1q = 0.228, x2d = 0.135, x2q = 0.2, xd = 1.79, xq = 1.71) annotation(
+ Placement(visible = true, transformation(origin = {32, 0}, extent = {{-12, -12}, {12, 12}}, rotation = 0)));
+ OpenIPSL.Electrical.Controls.PSAT.AVR.AVRTypeII AVR(Ae = 0.0039, Be = 1.555, Ka = 20, Ke = 1, Kf = 0.063, Ta = 0.2, Te = 0.314, Tf = 0.35, Tr = 0.001, v0 = V_0, vrmax = 5, vrmin = -5) annotation(
+ Placement(visible = true, transformation(origin = {-23, -4}, extent = {{-13, -12}, {13, 12}}, rotation = 0)));
+ equation
+ connect(order6.p, pwPin) annotation(
+ Line(points = {{44, 0}, {98, 0}, {98, 2}, {102, 2}}, color = {0, 0, 255}));
+ connect(order6.pm, order6.pm0) annotation(
+ Line(points = {{18, -6}, {10, -6}, {10, -16}, {22, -16}, {22, -12}, {22, -12}, {22, -14}}, color = {0, 0, 127}));
+ connect(AVR.vf, order6.vf) annotation(
+ Line(points = {{-7, -4}, {0, -4}, {0, 6}, {18, 6}}, color = {0, 0, 127}));
+ connect(AVR.v, order6.v) annotation(
+ Line(points = {{-38, -12}, {-48, -12}, {-48, -38}, {62, -38}, {62, 4}, {46, 4}, {46, 4}}, color = {0, 0, 127}));
+ connect(AVR.vf0, order6.vf0) annotation(
+ Line(points = {{-22, -18}, {-24, -18}, {-24, -44}, {84, -44}, {84, 20}, {22, 20}, {22, 14}, {22, 14}}, color = {0, 0, 127}));
+ connect(AVR.vref, AVR.vref0) annotation(
+ Line(points = {{-38, 4}, {-48, 4}, {-48, 18}, {-22, 18}, {-22, 10}, {-22, 10}}, color = {0, 0, 127}));
+ annotation(
+ Icon(graphics = {Ellipse(origin = {13, 7}, extent = {{-83, 67}, {83, -67}}, endAngle = 360), Line(origin = {10.7956, 12.6842}, points = {{-60.7956, -20.6842}, {-10.7956, 21.3158}, {31.2044, -12.6842}, {61.2044, 17.3158}, {61.2044, 19.3158}})}, coordinateSystem(initialScale = 0.1)),
+ Diagram);
+ end GenBus44;
+
+ model GenBus48
+ extends OpenIPSL.Electrical.Essentials.pfComponent;
+ OpenIPSL.Interfaces.PwPin pwPin annotation(
+ Placement(visible = true, transformation(origin = {102, 2}, extent = {{-10, -10}, {10, 10}}, rotation = 0), iconTransformation(origin = {102, 2}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
+ OpenIPSL.Electrical.Machines.PSAT.Order6 order6(D = 0.1, M = 3.59 * 2, P_0 = P_0, Q_0 = Q_0, Sn = 9950, T1d0 = 4.30, T1q0 = 0.85, T2d0 = 0.032, T2q0 = 0.05, Taa = 0.01, V_0 = V_0, V_b = V_b, Vn = 11, angle_0 = angle_0, e1q(fixed = true), ra = 0, v(fixed = true), x1d = 0.169, x1q = 0.228, x2d = 0.135, x2q = 0.2, xd = 1.79, xq = 1.71) annotation(
+ Placement(visible = true, transformation(origin = {32, 0}, extent = {{-12, -12}, {12, 12}}, rotation = 0)));
+ OpenIPSL.Electrical.Controls.PSAT.AVR.AVRTypeII AVR(Ae = 0.0039, Be = 1.555, Ka = 20, Ke = 1, Kf = 0.063, Ta = 0.2, Te = 0.314, Tf = 0.35, Tr = 0.001, v0 = V_0, vrmax = 5, vrmin = -5) annotation(
+ Placement(visible = true, transformation(origin = {-23, -4}, extent = {{-13, -12}, {13, 12}}, rotation = 0)));
+ equation
+ connect(order6.p, pwPin) annotation(
+ Line(points = {{44, 0}, {98, 0}, {98, 2}, {102, 2}}, color = {0, 0, 255}));
+ connect(order6.pm, order6.pm0) annotation(
+ Line(points = {{18, -6}, {10, -6}, {10, -16}, {22, -16}, {22, -12}, {22, -12}, {22, -14}}, color = {0, 0, 127}));
+ connect(AVR.vf, order6.vf) annotation(
+ Line(points = {{-7, -4}, {0, -4}, {0, 6}, {18, 6}}, color = {0, 0, 127}));
+ connect(AVR.v, order6.v) annotation(
+ Line(points = {{-38, -12}, {-48, -12}, {-48, -38}, {62, -38}, {62, 4}, {46, 4}, {46, 4}}, color = {0, 0, 127}));
+ connect(AVR.vf0, order6.vf0) annotation(
+ Line(points = {{-22, -18}, {-24, -18}, {-24, -44}, {84, -44}, {84, 20}, {22, 20}, {22, 14}, {22, 14}}, color = {0, 0, 127}));
+ connect(AVR.vref, AVR.vref0) annotation(
+ Line(points = {{-38, 4}, {-48, 4}, {-48, 18}, {-22, 18}, {-22, 10}, {-22, 10}}, color = {0, 0, 127}));
+ annotation(
+ Icon(graphics = {Ellipse(origin = {13, 7}, extent = {{-83, 67}, {83, -67}}, endAngle = 360), Line(origin = {10.7956, 12.6842}, points = {{-60.7956, -20.6842}, {-10.7956, 21.3158}, {31.2044, -12.6842}, {61.2044, 17.3158}, {61.2044, 19.3158}})}, coordinateSystem(initialScale = 0.1)),
+ Diagram);
+ end GenBus48;
+
+ model GenBus49
+ extends OpenIPSL.Electrical.Essentials.pfComponent;
+ OpenIPSL.Interfaces.PwPin pwPin annotation(
+ Placement(visible = true, transformation(origin = {102, 2}, extent = {{-10, -10}, {10, 10}}, rotation = 0), iconTransformation(origin = {102, 2}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
+ OpenIPSL.Electrical.Machines.PSAT.Order6 order6(D = 0.1, M = 3.59 * 2, P_0 = P_0, Q_0 = Q_0, Sn = 9950, T1d0 = 4.30, T1q0 = 0.85, T2d0 = 0.032, T2q0 = 0.05, Taa = 0.01, V_0 = V_0, V_b = V_b, Vn = 11, angle_0 = angle_0, e1q(fixed = true), ra = 0, v(fixed = true), x1d = 0.169, x1q = 0.228, x2d = 0.135, x2q = 0.2, xd = 1.79, xq = 1.71) annotation(
+ Placement(visible = true, transformation(origin = {32, 0}, extent = {{-12, -12}, {12, 12}}, rotation = 0)));
+ OpenIPSL.Electrical.Controls.PSAT.AVR.AVRTypeII AVR(Ae = 0.0039, Be = 1.555, Ka = 20, Ke = 1, Kf = 0.063, Ta = 0.2, Te = 0.314, Tf = 0.35, Tr = 0.001, v0 = V_0, vrmax = 5, vrmin = -5) annotation(
+ Placement(visible = true, transformation(origin = {-23, -4}, extent = {{-13, -12}, {13, 12}}, rotation = 0)));
+ equation
+ connect(order6.p, pwPin) annotation(
+ Line(points = {{44, 0}, {98, 0}, {98, 2}, {102, 2}}, color = {0, 0, 255}));
+ connect(order6.pm, order6.pm0) annotation(
+ Line(points = {{18, -6}, {10, -6}, {10, -16}, {22, -16}, {22, -12}, {22, -12}, {22, -14}}, color = {0, 0, 127}));
+ connect(AVR.vf, order6.vf) annotation(
+ Line(points = {{-7, -4}, {0, -4}, {0, 6}, {18, 6}}, color = {0, 0, 127}));
+ connect(AVR.v, order6.v) annotation(
+ Line(points = {{-38, -12}, {-48, -12}, {-48, -38}, {62, -38}, {62, 4}, {46, 4}, {46, 4}}, color = {0, 0, 127}));
+ connect(AVR.vf0, order6.vf0) annotation(
+ Line(points = {{-22, -18}, {-24, -18}, {-24, -44}, {84, -44}, {84, 20}, {22, 20}, {22, 14}, {22, 14}}, color = {0, 0, 127}));
+ connect(AVR.vref, AVR.vref0) annotation(
+ Line(points = {{-38, 4}, {-48, 4}, {-48, 18}, {-22, 18}, {-22, 10}, {-22, 10}}, color = {0, 0, 127}));
+ annotation(
+ Icon(graphics = {Ellipse(origin = {13, 7}, extent = {{-83, 67}, {83, -67}}, endAngle = 360), Line(origin = {10.7956, 12.6842}, points = {{-60.7956, -20.6842}, {-10.7956, 21.3158}, {31.2044, -12.6842}, {61.2044, 17.3158}, {61.2044, 19.3158}})}, coordinateSystem(initialScale = 0.1)),
+ Diagram);
+ end GenBus49;
+
+ model GenBus50
+ extends OpenIPSL.Electrical.Essentials.pfComponent;
+ OpenIPSL.Interfaces.PwPin pwPin annotation(
+ Placement(visible = true, transformation(origin = {102, 2}, extent = {{-10, -10}, {10, 10}}, rotation = 0), iconTransformation(origin = {102, 2}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
+ OpenIPSL.Electrical.Machines.PSAT.Order6 order6(D = 0.1, M = 3.59 * 2, P_0 = P_0, Q_0 = Q_0, Sn = 9950, T1d0 = 4.30, T1q0 = 0.85, T2d0 = 0.032, T2q0 = 0.05, Taa = 0.01, V_0 = V_0, V_b = V_b, Vn = 11, angle_0 = angle_0, e1q(fixed = true), ra = 0, v(fixed = true), x1d = 0.169, x1q = 0.228, x2d = 0.135, x2q = 0.2, xd = 1.79, xq = 1.71) annotation(
+ Placement(visible = true, transformation(origin = {32, 0}, extent = {{-12, -12}, {12, 12}}, rotation = 0)));
+ OpenIPSL.Electrical.Controls.PSAT.AVR.AVRTypeII AVR(Ae = 0.0039, Be = 1.555, Ka = 20, Ke = 1, Kf = 0.063, Ta = 0.2, Te = 0.314, Tf = 0.35, Tr = 0.001, v0 = V_0, vrmax = 5, vrmin = -5) annotation(
+ Placement(visible = true, transformation(origin = {-23, -4}, extent = {{-13, -12}, {13, 12}}, rotation = 0)));
+ equation
+ connect(order6.p, pwPin) annotation(
+ Line(points = {{44, 0}, {98, 0}, {98, 2}, {102, 2}}, color = {0, 0, 255}));
+ connect(order6.pm, order6.pm0) annotation(
+ Line(points = {{18, -6}, {10, -6}, {10, -16}, {22, -16}, {22, -12}, {22, -12}, {22, -14}}, color = {0, 0, 127}));
+ connect(AVR.vf, order6.vf) annotation(
+ Line(points = {{-7, -4}, {0, -4}, {0, 6}, {18, 6}}, color = {0, 0, 127}));
+ connect(AVR.v, order6.v) annotation(
+ Line(points = {{-38, -12}, {-48, -12}, {-48, -38}, {62, -38}, {62, 4}, {46, 4}, {46, 4}}, color = {0, 0, 127}));
+ connect(AVR.vf0, order6.vf0) annotation(
+ Line(points = {{-22, -18}, {-24, -18}, {-24, -44}, {84, -44}, {84, 20}, {22, 20}, {22, 14}, {22, 14}}, color = {0, 0, 127}));
+ connect(AVR.vref, AVR.vref0) annotation(
+ Line(points = {{-38, 4}, {-48, 4}, {-48, 18}, {-22, 18}, {-22, 10}, {-22, 10}}, color = {0, 0, 127}));
+ annotation(
+ Icon(graphics = {Ellipse(origin = {13, 7}, extent = {{-83, 67}, {83, -67}}, endAngle = 360), Line(origin = {10.7956, 12.6842}, points = {{-60.7956, -20.6842}, {-10.7956, 21.3158}, {31.2044, -12.6842}, {61.2044, 17.3158}, {61.2044, 19.3158}})}, coordinateSystem(initialScale = 0.1)),
+ Diagram);
+ end GenBus50;
+
+ model GenBus38
+ extends OpenIPSL.Electrical.Essentials.pfComponent;
+ OpenIPSL.Interfaces.PwPin pwPin annotation(
+ Placement(visible = true, transformation(origin = {102, 2}, extent = {{-10, -10}, {10, 10}}, rotation = 0), iconTransformation(origin = {102, 2}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
+ OpenIPSL.Electrical.Machines.PSAT.Order6 order6(D = 0.1, M = 3.59 * 2, P_0 = P_0, Q_0 = Q_0, Sn = 9950, T1d0 = 4.30, T1q0 = 0.85, T2d0 = 0.032, T2q0 = 0.05, Taa = 0.01, V_0 = V_0, V_b = V_b, Vn = 11, angle_0 = angle_0, e1q(fixed = true), ra = 0, v(fixed = true), x1d = 0.169, x1q = 0.228, x2d = 0.135, x2q = 0.2, xd = 1.79, xq = 1.71) annotation(
+ Placement(visible = true, transformation(origin = {32, 0}, extent = {{-12, -12}, {12, 12}}, rotation = 0)));
+ OpenIPSL.Electrical.Controls.PSAT.AVR.AVRTypeII AVR(Ae = 0.0039, Be = 1.555, Ka = 20, Ke = 1, Kf = 0.063, Ta = 0.2, Te = 0.314, Tf = 0.35, Tr = 0.001, v0 = V_0, vrmax = 5, vrmin = -5) annotation(
+ Placement(visible = true, transformation(origin = {-23, -4}, extent = {{-13, -12}, {13, 12}}, rotation = 0)));
+ equation
+ connect(order6.p, pwPin) annotation(
+ Line(points = {{44, 0}, {98, 0}, {98, 2}, {102, 2}}, color = {0, 0, 255}));
+ connect(order6.pm, order6.pm0) annotation(
+ Line(points = {{18, -6}, {10, -6}, {10, -16}, {22, -16}, {22, -12}, {22, -12}, {22, -14}}, color = {0, 0, 127}));
+ connect(AVR.vf, order6.vf) annotation(
+ Line(points = {{-7, -4}, {0, -4}, {0, 6}, {18, 6}}, color = {0, 0, 127}));
+ connect(AVR.v, order6.v) annotation(
+ Line(points = {{-38, -12}, {-48, -12}, {-48, -38}, {62, -38}, {62, 4}, {46, 4}, {46, 4}}, color = {0, 0, 127}));
+ connect(AVR.vf0, order6.vf0) annotation(
+ Line(points = {{-22, -18}, {-24, -18}, {-24, -44}, {84, -44}, {84, 20}, {22, 20}, {22, 14}, {22, 14}}, color = {0, 0, 127}));
+ connect(AVR.vref, AVR.vref0) annotation(
+ Line(points = {{-38, 4}, {-48, 4}, {-48, 18}, {-22, 18}, {-22, 10}, {-22, 10}}, color = {0, 0, 127}));
+ annotation(
+ Icon(graphics = {Ellipse(origin = {13, 7}, extent = {{-83, 67}, {83, -67}}, endAngle = 360), Line(origin = {10.7956, 12.6842}, points = {{-60.7956, -20.6842}, {-10.7956, 21.3158}, {31.2044, -12.6842}, {61.2044, 17.3158}, {61.2044, 19.3158}})}, coordinateSystem(initialScale = 0.1)),
+ Diagram);
+ end GenBus38;
+ end GenBus;
+ annotation(
+ uses(OpenIPSL(version = "1.5.0"), Modelica(version = "3.2.3")));
+ end Modelling_of_51_bus_system_case1;
+
+ package Modelling_of_51_bus_system_case2
+ model Network
+ OpenIPSL.Electrical.Buses.Bus B1(P_0 = 45.70, Q_0 = 366.30, V_0 = 1.080, V_b =11, angle_0 = 0, displayPF = true) annotation(
+ Placement(visible = true, transformation(origin = {-170, 194}, extent = {{-18, -18}, {18, 18}}, rotation = -90)));
+ OpenIPSL.Electrical.Buses.Bus B49(P_0 = 350, Q_0 = -145.71, V_0 = 1, V_b = 11, angle_0 = 8.095, displayPF = true) annotation(
+ Placement(visible = true, transformation(origin = {-50, 194}, extent = {{-16, -16}, {16, 16}}, rotation = -90)));
+ OpenIPSL.Electrical.Buses.Bus B50(P_0 = 120, Q_0 = 22.41, V_0 = 1, V_b = 11, angle_0 = 8.022, displayPF = true) annotation(
+ Placement(visible = true, transformation(origin = {64, 194}, extent = {{-14, -14}, {14, 14}}, rotation = -90)));
+ OpenIPSL.Electrical.Buses.Bus B35(P_0 = 0, Q_0 = 0, V_0 = 0.946, V_b = 11.459, angle_0 = -1.496, displayPF = true) annotation(
+ Placement(visible = true, transformation(origin = {173, 195}, extent = {{-15, -15}, {15, 15}}, rotation = -90)));
+ OpenIPSL.Electrical.Buses.Bus B3(P_0 = 90, Q_0 = 50, V_0 = 0.974, V_b = 11, angle_0 = -4.817, displayPF = true) annotation(
+ Placement(visible = true, transformation(origin = {259, 211}, extent = {{-17, -17}, {17, 17}}, rotation = -90)));
+ OpenIPSL.Electrical.Buses.Bus B2(P_0 = 50, Q_0 = 20, V_0 = 0.967, V_b = 11, angle_0 = -4.478, displayPF = true) annotation(
+ Placement(visible = true, transformation(origin = {119, 261}, extent = {{-13, -13}, {13, 13}}, rotation = -90)));
+ OpenIPSL.Electrical.Buses.Bus B48(P_0 = 55, Q_0 = 7.55, V_0 = 1, V_b = 11, angle_0 = -1.141, displayPF = true) annotation(
+ Placement(visible = true, transformation(origin = {81, 311}, extent = {{-15, -15}, {15, 15}}, rotation = -90)));
+ OpenIPSL.Electrical.Buses.Bus B4(P_0 = 0, Q_0 = 0, V_0 = 0.974, V_b = 11, angle_0 = -4.843, displayPF = true) annotation(
+ Placement(visible = true, transformation(origin = {268, 264}, extent = {{-16, -16}, {16, 16}}, rotation = -90)));
+ OpenIPSL.Electrical.Buses.Bus B5(P_0 = 11.90, Q_0 = 0, V_0 = 0.901, V_b = 248.4, angle_0 = -6.593, displayPF = true) annotation(
+ Placement(visible = true, transformation(origin = {272, 320}, extent = {{-14, -14}, {14, 14}}, rotation = -90)));
+ OpenIPSL.Electrical.Buses.Bus B34(P_0 = 58, Q_0 = 26, V_0 = 0.986, V_b = 11.9625, angle_0 = -4.330, displayPF = true) annotation(
+ Placement(visible = true, transformation(origin = {-257, 213}, extent = {{-15, -15}, {15, 15}}, rotation = -90)));
+ OpenIPSL.Electrical.Buses.Bus B32(P_0 = 30, Q_0 = 17, V_0 = 0.986, V_b = 11, angle_0 = -10.058, displayPF = true) annotation(
+ Placement(visible = true, transformation(origin = {-338, 210}, extent = {{-14, -14}, {14, 14}}, rotation = -90)));
+ OpenIPSL.Electrical.Buses.Bus B51(P_0 = 50, Q_0 = 30, V_0 = 0.979, V_b = 11, angle_0 = -12.199, displayPF = true) annotation(
+ Placement(visible = true, transformation(origin = {-398, 250}, extent = {{-16, -16}, {16, 16}}, rotation = -90)));
+ OpenIPSL.Electrical.Buses.Bus B33(P_0 = 50, Q_0 = 25.97, V_0 = 1, V_b = 11, angle_0 = -10.479, displayPF = true) annotation(
+ Placement(visible = true, transformation(origin = {-349, 313}, extent = {{-15, -15}, {15, 15}}, rotation = -90)));
+ OpenIPSL.Electrical.Buses.Bus B30(P_0 = 47, Q_0 = 66.16, V_0 = 1, V_b = 11, angle_0 = -12.890, displayPF = true) annotation(
+ Placement(visible = true, transformation(origin = {-333, 123}, extent = {{-17, -17}, {17, 17}}, rotation = -90)));
+ OpenIPSL.Electrical.Buses.Bus B46(P_0 = 0, Q_0 = 0, V_0 = 0.944, V_b = 11.825, angle_0 = -10.375, displayPF = true) annotation(
+ Placement(visible = true, transformation(origin = {-239, 145}, extent = {{-17, -17}, {17, 17}}, rotation = -90)));
+ OpenIPSL.Electrical.Buses.Bus B6(P_0 = 19, Q_0 = 10, V_0 = 0.950, V_b = 11, angle_0 = -6.180, displayPF = true) annotation(
+ Placement(visible = true, transformation(origin = {267, 149}, extent = {{-15, -15}, {15, 15}}, rotation = -90)));
+ OpenIPSL.Electrical.Buses.Bus B7(P_0 = 33, Q_0 = 62.54, V_0 = 1, V_b = 11, angle_0 = -4.872, displayPF = true) annotation(
+ Placement(visible = true, transformation(origin = {267, 97}, extent = {{-15, -15}, {15, 15}}, rotation = -90)));
+ OpenIPSL.Electrical.Buses.Bus B8(P_0 = 44, Q_0 = 24, V_0 = 0.992, V_b = 11, angle_0 = -5.311, displayPF = true) annotation(
+ Placement(visible = true, transformation(origin = {272, 46}, extent = {{-14, -14}, {14, 14}}, rotation = -90)));
+ OpenIPSL.Electrical.Buses.Bus B9(P_0 = 22, Q_0 = 12, V_0 = 0.994, V_b = 11, angle_0 = -5.307, displayPF = true) annotation(
+ Placement(visible = true, transformation(origin = {273, -7}, extent = {{-15, -15}, {15, 15}}, rotation = -90)));
+ OpenIPSL.Electrical.Buses.Bus B10(P_0 = 21, Q_0 = 12, V_0 = 1.004, V_b = 11, angle_0 = -4.889, displayPF = true) annotation(
+ Placement(visible = true, transformation(origin = {276, -60}, extent = {{-16, -16}, {16, 16}}, rotation = -90)));
+ OpenIPSL.Electrical.Buses.Bus B11(P_0 = 34, Q_0 = 5, V_0 = 1.025, V_b = 11, angle_0 = -3.998, displayPF = true) annotation(
+ Placement(visible = true, transformation(origin = {280, -118}, extent = {{-16, -16}, {16, 16}}, rotation = -90)));
+ OpenIPSL.Electrical.Buses.Bus B12(P_0 = 24, Q_0 = 13.60, V_0 = 1.002, V_b = 11, angle_0 = -4.124, displayPF = true) annotation(
+ Placement(visible = true, transformation(origin = {280, -164}, extent = {{-16, -16}, {16, 16}}, rotation = -90)));
+ OpenIPSL.Electrical.Buses.Bus B13(P_0 = 19, Q_0 = 11, V_0 = 0.995, V_b = 11, angle_0 = -4.224, displayPF = true) annotation(
+ Placement(visible = true, transformation(origin = {283, -213}, extent = {{-15, -15}, {15, 15}}, rotation = -90)));
+ OpenIPSL.Electrical.Buses.Bus B14(P_0 = 19, Q_0 = 4, V_0 = 1.016, V_b = 11, angle_0 = -2.856, displayPF = true) annotation(
+ Placement(visible = true, transformation(origin = {288, -264}, extent = {{-14, -14}, {14, 14}}, rotation = -90)));
+ OpenIPSL.Electrical.Buses.Bus B15(P_0 = 24, Q_0 = 0, V_0 = 1, V_b = 11, angle_0 = -1.049, displayPF = true) annotation(
+ Placement(visible = true, transformation(origin = {286, -330}, extent = {{-16, -16}, {16, 16}}, rotation = -90)));
+ OpenIPSL.Electrical.Buses.Bus B16(P_0 = 54, Q_0 = 30, V_0 = 0.987, V_b = 11, angle_0 = -2.053, displayPF = true) annotation(
+ Placement(visible = true, transformation(origin = {160, -300}, extent = {{-14, -14}, {14, 14}}, rotation = -90)));
+ OpenIPSL.Electrical.Buses.Bus B17(P_0 = 46, Q_0 = 4.63, V_0 = 1, V_b = 11, angle_0 = -7.675, displayPF = true) annotation(
+ Placement(visible = true, transformation(origin = {52, -336}, extent = {{-14, -14}, {14, 14}}, rotation = -90)));
+ OpenIPSL.Electrical.Buses.Bus B18(P_0 = 37, Q_0 = 22, V_0 = 0.971, V_b = 11, angle_0 = -10.625, displayPF = true) annotation(
+ Placement(visible = true, transformation(origin = {-32, -330}, extent = {{-14, -14}, {14, 14}}, rotation = -90)));
+ OpenIPSL.Electrical.Buses.Bus B40(P_0 = 0, Q_0 = 0, V_0 = 0.901, V_b = 11.99, angle_0 = -10.349, displayPF = true) annotation(
+ Placement(visible = true, transformation(origin = {-36, -278}, extent = {{-14, -14}, {14, 14}}, rotation = -90)));
+ OpenIPSL.Electrical.Buses.Bus B19(P_0 = 31, Q_0 = 14.77, V_0 = 1, V_b = 11, angle_0 = -10.672, displayPF = true) annotation(
+ Placement(visible = true, transformation(origin = {-137, -181}, extent = {{-15, -15}, {15, 15}}, rotation = -90)));
+ OpenIPSL.Electrical.Buses.Bus B44(P_0 = 175, Q_0 = 50.26, V_0 = 1, V_b = 11, angle_0 = -2.273, displayPF = true) annotation(
+ Placement(visible = true, transformation(origin = {-131, 101}, extent = {{-15, -15}, {15, 15}}, rotation = -90)));
+ OpenIPSL.Electrical.Buses.Bus B29(P_0 = 25, Q_0 = 13, V_0 = 0.977, V_b = 11, angle_0 = -14.103, displayPF = true) annotation(
+ Placement(visible = true, transformation(origin = {-394, 86}, extent = {{-14, -14}, {14, 14}}, rotation = -90)));
+ OpenIPSL.Electrical.Buses.Bus B28(P_0 = 80, Q_0 = 36, V_0 = 0.961, V_b = 11, angle_0 = -14.919, displayPF = true) annotation(
+ Placement(visible = true, transformation(origin = {-434, 36}, extent = {{-14, -14}, {14, 14}}, rotation = -90)));
+ OpenIPSL.Electrical.Buses.Bus B31(P_0 = 42, Q_0 = 18, V_0 = 0.980, V_b = 11, angle(fixed = false), angle_0 = -13.859, displayPF = true) annotation(
+ Placement(visible = true, transformation(origin = {-334, 34}, extent = {{-14, -14}, {14, 14}}, rotation = -90)));
+ OpenIPSL.Electrical.Buses.Bus B45(P_0 = 0, Q_0 = 0, V_0 = 0.938, V_b = 11.66, angle_0 = -10.481, displayPF = true) annotation(
+ Placement(visible = true, transformation(origin = {-240, -1.42109e-14}, extent = {{-14, -14}, {14, 14}}, rotation = -90)));
+ OpenIPSL.Electrical.Buses.Bus B26(P_0 = 28, Q_0 = 14, V_0 = 1.049, V_b = 247.25, angle_0 = -5.080, displayPF = true) annotation(
+ Placement(visible = true, transformation(origin = {-130, 44}, extent = {{-16, -16}, {16, 16}}, rotation = -90)));
+ OpenIPSL.Electrical.Buses.Bus B43(P_0 = 0, Q_0 = 0, V_0 = 0.955, V_b = 11.825, angle_0 = -6.627, displayPF = true) annotation(
+ Placement(visible = true, transformation(origin = {-122, -38}, extent = {{-16, -16}, {16, 16}}, rotation = 90)));
+ OpenIPSL.Electrical.Buses.Bus B24(P_0 = 8, Q_0 = 2, V_0 = 1.006, V_b = 11, angle_0 = -9.213, displayPF = true) annotation(
+ Placement(visible = true, transformation(origin = {-117, -91}, extent = {{-15, -15}, {15, 15}}, rotation = -90)));
+ OpenIPSL.Electrical.Buses.Bus B23(P_0 = 42, Q_0 = 23, V_0 = 0.922, V_b = 11, angle_0 = -13.936, displayPF = true) annotation(
+ Placement(visible = true, transformation(origin = {-224, -118}, extent = {{-14, -14}, {14, 14}}, rotation = -90)));
+ OpenIPSL.Electrical.Buses.Bus B22(P_0 = 17, Q_0 = 8, V_0 = 0.814, V_b = 11.66, angle_0 = -19.831, displayPF = true) annotation(
+ Placement(visible = true, transformation(origin = {-316, -184}, extent = {{-14, -14}, {14, 14}}, rotation = -90)));
+ OpenIPSL.Electrical.Buses.Bus B20(P_0 = 34, Q_0 = 16, V_0 = 0.942, V_b = 11, angle_0 = -13.346, displayPF = true) annotation(
+ Placement(visible = true, transformation(origin = {-232, -268}, extent = {{-14, -14}, {14, 14}}, rotation = -90)));
+ OpenIPSL.Electrical.Buses.Bus B27(P_0 = 76, Q_0 = 25, V_0 = 0.973, V_b = 11, angle_0 = -13.898, displayPF = true) annotation(
+ Placement(visible = true, transformation(origin = {-343, -31}, extent = {{-15, -15}, {15, 15}}, rotation = -90)));
+ OpenIPSL.Electrical.Buses.Bus B41(P_0 = 0, Q_0 = 0, V_0 = 0.930, V_b = 11.99, angle_0 = -9.717, displayPF = true) annotation(
+ Placement(visible = true, transformation(origin = {-136, -238}, extent = {{-14, -14}, {14, 14}}, rotation = -90)));
+ OpenIPSL.Electrical.Buses.Bus B21(P_0 = 0, Q_0 = 0, V_0 = 0.891, V_b = 11, angle_0 = -16.269, displayPF = true) annotation(
+ Placement(visible = true, transformation(origin = {-313, -239}, extent = {{-15, -15}, {15, 15}}, rotation = -90)));
+ OpenIPSL.Electrical.Buses.Bus B42(P_0 = 0, Q_0 = 0, V_0 = 0.908, V_b = 11.66, angle_0 = -10.861, displayPF = true) annotation(
+ Placement(visible = true, transformation(origin = {-234, -308}, extent = {{-16, -16}, {16, 16}}, rotation = -90)));
+ OpenIPSL.Electrical.Buses.Bus B25(P_0 = 11, Q_0 = 6, V_0 = 1.039, V_b = 11, angle_0 = -5.159, displayPF = true) annotation(
+ Placement(visible = true, transformation(origin = {-8, 10}, extent = {{-14, -14}, {14, 14}}, rotation = -90)));
+ OpenIPSL.Electrical.Buses.Bus B37(P_0 = 0, Q_0 = 0, V_0 = 0.995, V_b = 11.55, angle_0 = -0.633, displayPF = true) annotation(
+ Placement(visible = true, transformation(origin = {166, -74}, extent = {{-16, -16}, {16, 16}}, rotation = -90)));
+ OpenIPSL.Electrical.Buses.Bus B38(P_0 = 170, Q_0 = 0, V_0 = 1, V_b = 11, angle_0 = -0.160, displayPF = true) annotation(
+ Placement(visible = true, transformation(origin = {82, -70}, extent = {{-14, -14}, {14, 14}}, rotation = -90)));
+ OpenIPSL.Electrical.Buses.Bus B47(P_0 = 0, Q_0 = 0, V_0 = 0.971, V_b = 11.66, angle_0 = -1.755, displayPF = true) annotation(
+ Placement(visible = true, transformation(origin = {199, -245}, extent = {{-15, -15}, {15, 15}}, rotation = -90)));
+ OpenIPSL.Electrical.Buses.Bus B36(P_0 = 0, Q_0 = 0, V_0 = 0.963, V_b = 11.495, angle_0 = -3.246, displayPF = true) annotation(
+ Placement(visible = true, transformation(origin = {181, 73}, extent = {{-15, -15}, {15, 15}}, rotation = -90)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine2_3_1(B = 0.0322, G = 0, R = 0.0287, X = 0.0747) annotation(
+ Placement(visible = true, transformation(origin = {172, 236}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine2_3_2(B = 0.0322, G = 0, R = 0.0287, X = 0.0747, displayPF = false) annotation(
+ Placement(visible = true, transformation(origin = {172, 250}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine3_4_1(B = 0.0015, G = 0, R = 0.0028, X = 0.0036) annotation(
+ Placement(visible = true, transformation(origin = {262, 238}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine3_4_2(B = 0.0015, G = 0, R = 0.0028, X = 0.0036) annotation(
+ Placement(visible = true, transformation(origin = {276, 238}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine3_6(B = 0.0558, G = 0, R = 0.0614, X = 0.1400) annotation(
+ Placement(visible = true, transformation(origin = {270, 180}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine3_7(B = 0.0397, G = 0, R = 0.0247, X = 0.0560) annotation(
+ Placement(visible = true, transformation(origin = {238, 152}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine7_8_1(B = 0.0091, G = 0, R = 0.0098, X = 0.0224) annotation(
+ Placement(visible = true, transformation(origin = {280, 72}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine7_8_2(B = 0.0091, G = 0, R = 0.0098, X = 0.0224) annotation(
+ Placement(visible = true, transformation(origin = {264, 72}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine8_9_1(B = 0.0174, G = 0, R = 0.0190, X = 0.0431) annotation(
+ Placement(visible = true, transformation(origin = {280, 18}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine8_9_2(B = 0.0174, G = 0, R = 0.0190, X = 0.0431) annotation(
+ Placement(visible = true, transformation(origin = {262, 18}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine9_10_1(B = 0.0167, G = 0, R = 0.0182, X = 0.0413) annotation(
+ Placement(visible = true, transformation(origin = {286, -34}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine9_10_2(B = 0.0167, G = 0, R = 0.0182, X = 0.0413) annotation(
+ Placement(visible = true, transformation(origin = {270, -34}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine10_11_1(B = 0.0190, G = 0, R = 0.0205, X = 0.0468) annotation(
+ Placement(visible = true, transformation(origin = {284, -86}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine10_11_2(B = 0.0190, G = 0, R = 0.0205, X = 0.0468) annotation(
+ Placement(visible = true, transformation(origin = {268, -88}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine11_12_1(B = 0.0060, G = 0, R = 0.0660, X = 0.0150) annotation(
+ Placement(visible = true, transformation(origin = {288, -138}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine11_12_2(B = 0.0060, G = 0, R = 0.0660, X = 0.0150) annotation(
+ Placement(visible = true, transformation(origin = {272, -138}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine12_13(B = 0.0088, G = 0, R = 0.0455, X = 0.0642) annotation(
+ Placement(visible = true, transformation(origin = {282, -192}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine13_14(B = 0.0213, G = 0, R = 0.1182, X = 0.2360) annotation(
+ Placement(visible = true, transformation(origin = {286, -238}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine14_15(B = 0.0267, G = 0, R = 0.0214, X = 0.2743) annotation(
+ Placement(visible = true, transformation(origin = {290, -294}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine15_16(B = 0.0059, G = 0, R = 0.1336, X = 0.0525) annotation(
+ Placement(visible = true, transformation(origin = {224, -306}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine16_17(B = 0.0367, G = 0, R = 0.0580, X = 0.3532) annotation(
+ Placement(visible = true, transformation(origin = {112, -334}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine17_18(B = 0.0168, G = 0, R = 0.1550, X = 0.1532) annotation(
+ Placement(visible = true, transformation(origin = {8, -358}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine18_19(B = 0.0350, G = 0, R = 0.1550, X = 0.3639) annotation(
+ Placement(visible = true, transformation(origin = {-82, -282}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine19_20(B = 0.0371, G = 0, R = 0.1640, X = 0.3815) annotation(
+ Placement(visible = true, transformation(origin = {-196, -216}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine20_21(B = 0.0300, G = 0, R = 0.1136, X = 0.3060) annotation(
+ Placement(visible = true, transformation(origin = {-270, -256}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine20_23(B = 0.0210, G = 0, R = 0.0781, X = 0.2000) annotation(
+ Placement(visible = true, transformation(origin = {-232, -200}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine23_24(B = 0.0282, G = 0, R = 0.1033, X = 0.2606) annotation(
+ Placement(visible = true, transformation(origin = {-170, -100}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine12_25(B = 0.0283, G = 0, R = 0.0866, X = 0.2847) annotation(
+ Placement(visible = true, transformation(origin = {46, -126}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine25_26(B = 0.0060, G = 0, R = 0.0159, X = 0.0508) annotation(
+ Placement(visible = true, transformation(origin = {-68, 22}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine26_27(B = 0.0296, G = 0, R = 0.0872, X = 0.2870) annotation(
+ Placement(visible = true, transformation(origin = {-252, -52}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine27_28(B = 0.0045, G = 0, R = 0.0136, X = 0.0436) annotation(
+ Placement(visible = true, transformation(origin = {-400, -2}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine28_29(B = 0.0045, G = 0, R = 0.0136, X = 0.0436) annotation(
+ Placement(visible = true, transformation(origin = {-414, 64}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine29_30(B = 0.0041, G = 0, R = 0.0125, X = 0.0400) annotation(
+ Placement(visible = true, transformation(origin = {-366, 108}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine30_31(B = 0.0045, G = 0, R = 0.0136, X = 0.0436) annotation(
+ Placement(visible = true, transformation(origin = {-328, 80}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine27_31(B = 0.0045, G = 0, R = 0.0136, X = 0.0436) annotation(
+ Placement(visible = true, transformation(origin = {-340, 6}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine30_32(B = 0.0712, G = 0, R = 0.0533, X = 0.1636) annotation(
+ Placement(visible = true, transformation(origin = {-338, 164}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine32_33(B = 0.0420, G = 0, R = 0.0311, X = 0.1000) annotation(
+ Placement(visible = true, transformation(origin = {-344, 264}, extent = {{-10, -10}, {10, 10}}, rotation = 90)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine32_34_1(B = 0.0650, G = 0, R = 0.0471, X = 0.1511) annotation(
+ Placement(visible = true, transformation(origin = {-298, 242}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine32_34_2(B = 0.0650, G = 0, R = 0.0471, X = 0.1511) annotation(
+ Placement(visible = true, transformation(origin = {-296, 260}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine30_51(B = 0.0734, G = 0, R = 0.0667, X = 0.1765) annotation(
+ Placement(visible = true, transformation(origin = {-398, 188}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine51_33(B = 0.0256, G = 0, R = 0.011, X = 0.0622) annotation(
+ Placement(visible = true, transformation(origin = {-376, 282}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine35_50(B = 0.0954, G = 0, R = 0.0240, X = 0.1326) annotation(
+ Placement(visible = true, transformation(origin = {120, 168}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine35_36(B = 0.1146, G = 0, R = 0.0266, X = 0.1418) annotation(
+ Placement(visible = true, transformation(origin = {182, 136}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine36_38(B = 0.1078, G = 0, R = 0.0252, X = 0.1366) annotation(
+ Placement(visible = true, transformation(origin = {100, 24}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine38_1(B = 0.0794, G = 0, R = 0.0200, X = 0.1107) annotation(
+ Placement(visible = true, transformation(origin = {8, 98}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine38_47(B = 0.0869, G = 0, R = 0.0202, X = 0.1076) annotation(
+ Placement(visible = true, transformation(origin = {148, -160}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine47_43(B = 0.1078, G = 0, R = 0.0250, X = 0.1336) annotation(
+ Placement(visible = true, transformation(origin = {124, -202}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine42_43(B = 0.1281, G = 0, R = 0.0298, X = 0.1584) annotation(
+ Placement(visible = true, transformation(origin = {-380, -208}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine40_41(B = 0.1008, G = 0, R = 0.0254, X = 0.1400) annotation(
+ Placement(visible = true, transformation(origin = {-64, -254}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine41_43(B = 0.1297, G = 0, R = 0.0326, X = 0.1807) annotation(
+ Placement(visible = true, transformation(origin = {-60, -114}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine43_45(B = 0.1011, G = 0, R = 0.0236, X = 0.1252) annotation(
+ Placement(visible = true, transformation(origin = {-196, -20}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine43_44(B = 0.0513, G = 0, R = 0.0129, X = 0.0715) annotation(
+ Placement(visible = true, transformation(origin = {-88, 52}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine45_46(B = 0.0236, G = 0, R = 0.0054, X = 0.0292) annotation(
+ Placement(visible = true, transformation(origin = {-236, 74}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine44_1(B = 0.1306, G = 0, R = 0.0330, X = 0.1818) annotation(
+ Placement(visible = true, transformation(origin = {-170, 130}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine46_1(B = 0.1686, G = 0, R = 0.0343, X = 0.2087) annotation(
+ Placement(visible = true, transformation(origin = {-214, 176}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine1_49(B = 0.1752, G = 0, R = 0.0110, X = 0.0597) annotation(
+ Placement(visible = true, transformation(origin = {-106, 174}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine49_50(B = 0.0272, G = 0, R = 0.0071, X = 0.0400) annotation(
+ Placement(visible = true, transformation(origin = {10, 170}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine37_38(B = 0.0246, G = 0, R = 0.0014, X = 0.0077) annotation(
+ Placement(visible = true, transformation(origin = {132, -94}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine47_39(B = 0.0879, G = 0, R = 0.0203, X = 0.1093) annotation(
+ Placement(visible = true, transformation(origin = {200, -312}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine48_2_1(B = 0.0460, G = 0, R = 0.0426, X = 0.1100) annotation(
+ Placement(visible = true, transformation(origin = {98, 276}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine48_2_2(B = 0.0460, G = 0, R = 0.0426, X = 0.1100) annotation(
+ Placement(visible = true, transformation(origin = {100, 288}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
+ OpenIPSL.Electrical.Branches.PSAT.TwoWindingTransformer T_27_45(Sn = 100, V_b = 11, Vn = 11, kT = 1.0600, r = 0, x = 0.0900) annotation(
+ Placement(visible = true, transformation(origin = {-302, -10}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
+ OpenIPSL.Electrical.Loads.PSAT.LOADPQ LD1(Angle_V(displayUnit = "rad"), P_0 = 50, Q_0 = 20, V_0 = 0.967, V_b = 11, angle_0 = -4.478, forcePQ = true) annotation(
+ Placement(visible = true, transformation(origin = {90, 238}, extent = {{-8, -8}, {8, 8}}, rotation = 0)));
+ OpenIPSL.Electrical.Loads.PSAT.LOADPQ LD2(Angle_V(displayUnit = "rad"), P_0 = 90, Q_0 = 50, V_0 = 0.974, V_b = 11, angle_0 = -4.817, forcePQ = true) annotation(
+ Placement(visible = true, transformation(origin = {306, 182}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
+ OpenIPSL.Electrical.Loads.PSAT.LOADPQ LD3(Angle_V(displayUnit = "rad"), P_0 = 11.90, Q_0 = 0, V_0 = 0.901, V_b = 248.4, angle_0 = -6.593, forcePQ = true) annotation(
+ Placement(visible = true, transformation(origin = {272, 352}, extent = {{-10, -10}, {10, 10}}, rotation = 180)));
+ OpenIPSL.Electrical.Loads.PSAT.LOADPQ LD4(Angle_V(displayUnit = "rad"), P_0 = 19, Q_0 = 10, V_0 = 0.950, V_b = 11, angle_0 = -6.180, forcePQ = true) annotation(
+ Placement(visible = true, transformation(origin = {320, 124}, extent = {{-8, -8}, {8, 8}}, rotation = 0)));
+ OpenIPSL.Electrical.Loads.PSAT.LOADPQ LD5(Angle_V(displayUnit = "rad"), P_0 = 33, Q_0 = 18, V_0 = 1, V_b = 11, angle_0 = -4.872, forcePQ = true) annotation(
+ Placement(visible = true, transformation(origin = {320, 72}, extent = {{-8, -8}, {8, 8}}, rotation = 0)));
+ OpenIPSL.Electrical.Loads.PSAT.LOADPQ LD6(Angle_V(displayUnit = "rad"), P_0 = 44, Q_0 = 24, V_0 = 0.992, V_b = 11, angle_0 = -5.311, forcePQ = true) annotation(
+ Placement(visible = true, transformation(origin = {312, 18}, extent = {{-8, -8}, {8, 8}}, rotation = 0)));
+ OpenIPSL.Electrical.Loads.PSAT.LOADPQ LD7(Angle_V(displayUnit = "rad"), P_0 = 22, Q_0 = 12, V_0 = 0.994, V_b = 11, angle_0 = -5.307, forcePQ = true) annotation(
+ Placement(visible = true, transformation(origin = {322, -34}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
+ OpenIPSL.Electrical.Loads.PSAT.LOADPQ LD8(Angle_V(displayUnit = "rad"), P_0 = 21, Q_0 = 12, V_0 = 1.004, V_b = 11, angle_0 = -4.889, forcePQ = true) annotation(
+ Placement(visible = true, transformation(origin = {326, -86}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
+ OpenIPSL.Electrical.Loads.PSAT.LOADPQ LD9(Angle_V(displayUnit = "rad"), P_0 = 34, Q_0 = 5, V_0 = 1.025, V_b = 11, angle_0 = -3.998, forcePQ = true) annotation(
+ Placement(visible = true, transformation(origin = {327, -143}, extent = {{-11, -11}, {11, 11}}, rotation = 0)));
+ OpenIPSL.Electrical.Loads.PSAT.LOADPQ LD10(Angle_V(displayUnit = "rad"), P_0 = 24, Q_0 = 13.60, V_0 = 1.002, V_b = 11, angle_0 = -4.124, forcePQ = true) annotation(
+ Placement(visible = true, transformation(origin = {322, -192}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
+ OpenIPSL.Electrical.Loads.PSAT.LOADPQ LD11(Angle_V(displayUnit = "rad"), P_0 = 19, Q_0 = 11, V_0 = 0.995, V_b = 11, angle_0 = -4.224, forcePQ = true) annotation(
+ Placement(visible = true, transformation(origin = {336, -244}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
+ OpenIPSL.Electrical.Loads.PSAT.LOADPQ LD12(Angle_V(displayUnit = "rad"), P_0 = 19, Q_0 = 4, V_0 = 1.016, V_b = 11, angle_0 = -2.856, forcePQ = true) annotation(
+ Placement(visible = true, transformation(origin = {325, -295}, extent = {{-11, -11}, {11, 11}}, rotation = 0)));
+ OpenIPSL.Electrical.Loads.PSAT.LOADPQ LD13(Angle_V(displayUnit = "rad"), P_0 = 54, Q_0 = 30, V_0 = 0.987, V_b = 11, angle_0 = -2.053, forcePQ = true) annotation(
+ Placement(visible = true, transformation(origin = {142, -264}, extent = {{-10, -10}, {10, 10}}, rotation = 180)));
+ OpenIPSL.Electrical.Loads.PSAT.LOADPQ LD14(Angle_V(displayUnit = "rad"), P_0 = 46, Q_0 = 21, V_0 = 1, V_b = 11, angle_0 = -7.675, forcePQ = true) annotation(
+ Placement(visible = true, transformation(origin = {52, -376}, extent = {{-14, -14}, {14, 14}}, rotation = 0)));
+ OpenIPSL.Electrical.Loads.PSAT.LOADPQ LD15(Angle_V(displayUnit = "rad"), P_0 = 37, Q_0 = 22, V_0 = 0.971, V_b = 11, angle_0 = -10.625, forcePQ = true) annotation(
+ Placement(visible = true, transformation(origin = {-32, -376}, extent = {{-12, -12}, {12, 12}}, rotation = 0)));
+ OpenIPSL.Electrical.Loads.PSAT.LOADPQ LD16(Angle_V(displayUnit = "rad"), P_0 = 31, Q_0 = 2, V_0 = 1, V_b = 11, angle_0 = -10.672, forcePQ = true) annotation(
+ Placement(visible = true, transformation(origin = {-166, -228}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
+ OpenIPSL.Electrical.Loads.PSAT.LOADPQ LD17(Angle_V(displayUnit = "rad"), P_0 = 34, Q_0 = 16, V_0 = 0.942, V_b = 11, angle_0 = -13.346, forcePQ = true) annotation(
+ Placement(visible = true, transformation(origin = {-190, -306}, extent = {{-12, -12}, {12, 12}}, rotation = 0)));
+ OpenIPSL.Electrical.Loads.PSAT.LOADPQ LD18(Angle_V(displayUnit = "rad"), P_0 = 17, Q_0 = 8, V_0 = 0.814, V_b = 11.66, angle_0 = -19.831, forcePQ = true) annotation(
+ Placement(visible = true, transformation(origin = {-310, -146}, extent = {{-10, -10}, {10, 10}}, rotation = 180)));
+ OpenIPSL.Electrical.Loads.PSAT.LOADPQ LD19(Angle_V(displayUnit = "rad"), P_0 = 42, Q_0 = 23, V_0 = 0.922, V_b = 11, angle_0 = -13.936, forcePQ = true) annotation(
+ Placement(visible = true, transformation(origin = {-200, -160}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
+ OpenIPSL.Electrical.Loads.PSAT.LOADPQ LD20(Angle_V(displayUnit = "rad"), P_0 = 8, Q_0 = 2, V_0 = 1.006, V_b = 11, angle_0 = -9.213, forcePQ = true) annotation(
+ Placement(visible = true, transformation(origin = {-104, -124}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
+ OpenIPSL.Electrical.Loads.PSAT.LOADPQ LD21(Angle_V(displayUnit = "rad"), P_0 = 11, Q_0 = 6, V_0 = 1.039, V_b = 11, angle_0 = -5.159, forcePQ = true) annotation(
+ Placement(visible = true, transformation(origin = {18, -30}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
+ OpenIPSL.Electrical.Loads.PSAT.LOADPQ LD22(Angle_V(displayUnit = "rad"), P_0 = 28, Q_0 = 14, V_0 = 1.049, V_b = 247.25, angle_0 = -5.080, forcePQ = true) annotation(
+ Placement(visible = true, transformation(origin = {-127, 3}, extent = {{-11, -11}, {11, 11}}, rotation = 0)));
+ OpenIPSL.Electrical.Loads.PSAT.LOADPQ LD23(Angle_V(displayUnit = "rad"), P_0 = 76, Q_0 = 25, V_0 = 0.973, V_b = 11, angle_0 = -13.898, forcePQ = true) annotation(
+ Placement(visible = true, transformation(origin = {-412, -64}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
+ OpenIPSL.Electrical.Loads.PSAT.LOADPQ LD24(Angle_V(displayUnit = "rad"), P_0 = 80, Q_0 = 36, V_0 = 0.961, V_b = 11, angle_0 = -14.919, forcePQ = true) annotation(
+ Placement(visible = true, transformation(origin = {-457, -7}, extent = {{-13, -13}, {13, 13}}, rotation = 0)));
+ OpenIPSL.Electrical.Loads.PSAT.LOADPQ LD25(Angle_V(displayUnit = "rad"), P_0 = 25, Q_0 = 13, V_0 = 0.977, V_b = 11, angle_0 = -14.103, forcePQ = true) annotation(
+ Placement(visible = true, transformation(origin = {-459, 59}, extent = {{-11, -11}, {11, 11}}, rotation = 0)));
+ OpenIPSL.Electrical.Loads.PSAT.LOADPQ LD26(Angle_V(displayUnit = "rad"), P(fixed = false), P_0 = 47, Q(fixed = false), Q_0 = 0, V_0 = 1, V_b = 11, angle_0 = -12.890, forcePQ = true) annotation(
+ Placement(visible = true, transformation(origin = {-285, 85}, extent = {{11, 11}, {-11, -11}}, rotation = -90)));
+ OpenIPSL.Electrical.Loads.PSAT.LOADPQ LD27(Angle_V(displayUnit = "rad"), P_0 = 42, Q_0 = 18, V_0 = 0.980, V_b = 11, angle_0 = -13.859, forcePQ = true) annotation(
+ Placement(visible = true, transformation(origin = {-285, 37}, extent = {{-11, -11}, {11, 11}}, rotation = 180)));
+ OpenIPSL.Electrical.Loads.PSAT.LOADPQ LD28(Angle_V(displayUnit = "rad"), P_0 = 30, Q_0 = 17, V_0 = 0.986, V_b = 11, angle_0 = -10.058, forcePQ = true) annotation(
+ Placement(visible = true, transformation(origin = {-363, 173}, extent = {{-11, -11}, {11, 11}}, rotation = 0)));
+ OpenIPSL.Electrical.Loads.PSAT.LOADPQ LD29(Angle_V(displayUnit = "rad"), P_0 = 58, Q_0 = 26, V_0 = 0.986, V_b = 250.125, angle_0 = -4.330, forcePQ = true) annotation(
+ Placement(visible = true, transformation(origin = {-232, 248}, extent = {{-12, -12}, {12, 12}}, rotation = 180)));
+ OpenIPSL.Electrical.Loads.PSAT.LOADPQ LD30(Angle_V(displayUnit = "rad"), P_0 = 50, Q_0 = 30, V_0 = 0.979, V_b = 11, angle_0 = -12.199, forcePQ = true) annotation(
+ Placement(visible = true, transformation(origin = {-422, 216}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
+ inner OpenIPSL.Electrical.SystemBase SysData(S_b = 100, fn = 50) annotation(
+ Placement(visible = true, transformation(origin = {428, 336}, extent = {{-54, -36}, {54, 36}}, rotation = 0)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine39_49(B = 0.0726, G = 0, R = 0.0168, X = 0.0899) annotation(
+ Placement(visible = true, transformation(origin = {-34, 56}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
+ OpenIPSL.Electrical.Buses.Bus B39(P_0 = 0, Q_0 = 0, V_0 = 0.962, V_b = 11.66, angle_0 = 1.851, displayPF = true) annotation(
+ Placement(visible = true, transformation(origin = {165, -345}, extent = {{-15, -15}, {15, 15}}, rotation = -90)));
+ Modelling_of_51_bus_system_case2.GenBus.GenBus7 genBus7(P_0 = 33, Q_0 = 62.33, V_0 = 1, V_b = 11, angle_0 = -4.872) annotation(
+ Placement(visible = true, transformation(origin = {210, 146}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
+ Modelling_of_51_bus_system_case2.GenBus.GenBus15 genBus15(P_0 = 24, Q_0 = -16.23, V_0 = 1, V_b = 11, angle_0 = -1.049) annotation(
+ Placement(visible = true, transformation(origin = {286, -364}, extent = {{10, 10}, {-10, -10}}, rotation = -90)));
+ Modelling_of_51_bus_system_case2.GenBus.GenBus17 genBus17(P_0 = 46, Q_0 = 20.23, V_0 = 1, V_b = 11, angle_0 = -7.675) annotation(
+ Placement(visible = true, transformation(origin = {52, -300}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
+ Modelling_of_51_bus_system_case2.GenBus.GenBus19 genBus19(P_0 = 31, Q_0 = 14.77, V_0 = 1, V_b = 11, angle_0 = -10.672) annotation(
+ Placement(visible = true, transformation(origin = {-138, -152}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
+ Modelling_of_51_bus_system_case2.GenBus.GenBus30 genBus30(P_0 = 47, Q_0 = 66.16, V_0 = 1, V_b = 11, angle_0 = -12.890) annotation(
+ Placement(visible = true, transformation(origin = {-302, 176}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
+ Modelling_of_51_bus_system_case2.GenBus.GenBus33 genBus33(P_0 = 50, Q_0 = 25.97, V_0 = 1, V_b = 11, angle_0 = -10.479) annotation(
+ Placement(visible = true, transformation(origin = {-344, 344}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
+ Modelling_of_51_bus_system_case2.GenBus.GenBus38 genBus38(P_0 = 170, Q_0 = -0.21, V_0 = 1, V_b = 11, angle_0 = -0.160) annotation(
+ Placement(visible = true, transformation(origin = {106, -34}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
+ Modelling_of_51_bus_system_case2.GenBus.GenBus44 genBus44(P_0 = 175, Q_0 = 50.26, V_0 = 1, V_b = 11, angle_0 = -2.273) annotation(
+ Placement(visible = true, transformation(origin = {-196, 120}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
+ Modelling_of_51_bus_system_case2.GenBus.GenBus48 genBus48(P_0 = 55, Q_0 = 7.55, V_0 = 1, V_b = 11, angle_0 = -1.141) annotation(
+ Placement(visible = true, transformation(origin = {80, 338}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
+ Modelling_of_51_bus_system_case2.GenBus.GenBus49 genBus49(P_0 = 350, Q_0 = -145.71, V_0 = 1, V_b = 11, angle_0 = 8.095) annotation(
+ Placement(visible = true, transformation(origin = {-50, 224}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
+ Modelling_of_51_bus_system_case2.GenBus.GenBus50 genBus50(P_0 = 120, Q_0 = 22.41, V_0 = 1, V_b = 11, angle_0 = 8.022) annotation(
+ Placement(visible = true, transformation(origin = {66, 220}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
+ OpenIPSL.Electrical.Branches.PSAT.TwoWindingTransformer T_1_34(Sb = 100, Sn = 100, V_b = 11, Vn = 11, fn = 50, kT = 1.0875, r = 0, x = 0.0630) annotation(
+ Placement(visible = true, transformation(origin = {-228, 198}, extent = {{-16, -16}, {16, 16}}, rotation = 0)));
+ OpenIPSL.Electrical.Branches.PSAT.TwoWindingTransformer T_3_35(Sb = 100, Sn = 100, V_b = 11, Vn = 11, fn = 50, kT = 1.0450, r = 0, x = 0.0500) annotation(
+ Placement(visible = true, transformation(origin = {204, 212}, extent = {{-16, -16}, {16, 16}}, rotation = 0)));
+ OpenIPSL.Electrical.Branches.PSAT.TwoWindingTransformer T_4_5(Sb = 100, Sn = 100, V_b = 11, Vn = 11, fn = 50, kT = 1.0800, r = 0, x = 0.02085) annotation(
+ Placement(visible = true, transformation(origin = {270, 292}, extent = {{-16, -16}, {16, 16}}, rotation = -90)));
+ OpenIPSL.Electrical.Branches.PSAT.TwoWindingTransformer T_7_36(Sb = 100, Sn = 100, V_b = 11, Vn = 11, fn = 50, kT = 1.0450, r = 0, x = 0.0450) annotation(
+ Placement(visible = true, transformation(origin = {224, 90}, extent = {{-14, -14}, {14, 14}}, rotation = 0)));
+ OpenIPSL.Electrical.Branches.PSAT.TwoWindingTransformer T_11_37(Sb = 100, Sn = 100, V_b = 11, Vn = 11, fn = 50, kT = 1.0500, r = 0, x = 0.0500) annotation(
+ Placement(visible = true, transformation(origin = {217, -101}, extent = {{-17, -17}, {17, 17}}, rotation = 0)));
+ OpenIPSL.Electrical.Branches.PSAT.TwoWindingTransformer T_16_39(Sb = 100, Sn = 100, V_b = 11, Vn = 11, fn = 50, kT = 1.0600, r = 0, x = 0.0900) annotation(
+ Placement(visible = true, transformation(origin = {163, -321}, extent = {{-13, -13}, {13, 13}}, rotation = -90)));
+ OpenIPSL.Electrical.Branches.PSAT.TwoWindingTransformer T_18_40(Sb = 100, Sn = 100, V_b = 11, Vn = 11, fn = 50, kT = 1.0900, r = 0, x = 0.0400) annotation(
+ Placement(visible = true, transformation(origin = {-36, -302}, extent = {{-14, -14}, {14, 14}}, rotation = -90)));
+ OpenIPSL.Electrical.Branches.PSAT.TwoWindingTransformer T_14_47(Sb = 100, Sn = 100, V_b = 11, Vn = 11, fn = 50, kT = 1.0600, r = 0, x = 0.0900) annotation(
+ Placement(visible = true, transformation(origin = {240, -258}, extent = {{-14, -14}, {14, 14}}, rotation = 0)));
+ OpenIPSL.Electrical.Branches.PSAT.TwoWindingTransformer T_19_41(Sb = 100, Sn = 100, V_b = 11, Vn = 11, fn = 50, kT = 1.0750, r = 0, x = 0.0800) annotation(
+ Placement(visible = true, transformation(origin = {-137, -211}, extent = {{-15, -15}, {15, 15}}, rotation = -90)));
+ OpenIPSL.Electrical.Branches.PSAT.TwoWindingTransformer T_21_22(Sb = 100, Sn = 100, V_b = 11, Vn = 11, fn = 50, kT = 1.0600, r = 0, x = 0.02500) annotation(
+ Placement(visible = true, transformation(origin = {-318, -212}, extent = {{-14, -14}, {14, 14}}, rotation = -90)));
+ OpenIPSL.Electrical.Branches.PSAT.TwoWindingTransformer T_24_43(Sb = 100, Sn = 100, V_b = 11, Vn = 11, fn = 50, kT = 1.0750, r = 0, x = 0.0900) annotation(
+ Placement(visible = true, transformation(origin = {-124, -72}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
+ OpenIPSL.Electrical.Branches.PSAT.TwoWindingTransformer T_44_26(Sb = 100, Sn = 100, V_b = 11, Vn = 11, fn = 50, kT = 1.0750, r = 0, x = 0.0500) annotation(
+ Placement(visible = true, transformation(origin = {-134, 74}, extent = {{-16, -16}, {16, 16}}, rotation = -90)));
+ Modelling_of_51_bus_system_case2.GenBus.GenBus1 genBus11(P_0 = 45.70, Q_0 = 366.30, V_0 = 1.08, V_b = 11, refdisturb_1 = false) annotation(
+ Placement(visible = true, transformation(origin = {-168, 238}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
+ OpenIPSL.Electrical.Branches.PSAT.TwoWindingTransformer T_30_46(Sn = 100, V_b = 11, Vn = 11, kT = 1.0750, r = 0, x = 0.0450) annotation(
+ Placement(visible = true, transformation(origin = {-283, 133}, extent = {{-15, -15}, {15, 15}}, rotation = 0)));
+ OpenIPSL.Electrical.Branches.PSAT.TwoWindingTransformer T_20_42(Sn = 100, V_b = 11, Vn = 11, kT = 1.0600, r = 0, x = 0.0800) annotation(
+ Placement(visible = true, transformation(origin = {-234, -288}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
+ equation
+ connect(B2.p, pwLine2_3_2.p) annotation(
+ Line(points = {{120, 262}, {124, 262}, {124, 250}, {162, 250}, {162, 250}}, color = {0, 0, 255}));
+ connect(B2.p, pwLine2_3_1.p) annotation(
+ Line(points = {{120, 262}, {118, 262}, {118, 236}, {162, 236}, {162, 236}}, color = {0, 0, 255}));
+ connect(pwLine2_3_1.n, B3.p) annotation(
+ Line(points = {{182, 236}, {232, 236}, {232, 212}, {260, 212}, {260, 212}, {260, 212}}, color = {0, 0, 255}));
+ connect(pwLine2_3_2.n, B3.p) annotation(
+ Line(points = {{182, 250}, {238, 250}, {238, 220}, {248, 220}, {248, 210}, {260, 210}, {260, 212}}, color = {0, 0, 255}));
+ connect(pwLine3_4_1.n, B3.p) annotation(
+ Line(points = {{262, 228}, {262, 228}, {262, 212}, {260, 212}, {260, 212}}, color = {0, 0, 255}));
+ connect(pwLine3_4_2.n, B3.p) annotation(
+ Line(points = {{276, 229}, {276, 226}, {268, 226}, {268, 214}, {260, 214}, {260, 212}}, color = {0, 0, 255}));
+ connect(pwLine3_4_1.p, B4.p) annotation(
+ Line(points = {{262, 248}, {258, 248}, {258, 266}, {268, 266}, {268, 264}}, color = {0, 0, 255}));
+ connect(pwLine3_4_2.p, B4.p) annotation(
+ Line(points = {{276, 247}, {276, 262}, {268, 262}, {268, 264}}, color = {0, 0, 255}));
+ connect(pwLine3_6.n, B6.p) annotation(
+ Line(points = {{270, 170}, {270, 148}, {267, 148}, {267, 149}}, color = {0, 0, 255}));
+ connect(pwLine3_6.p, B3.p) annotation(
+ Line(points = {{270, 190}, {270, 190}, {270, 210}, {260, 210}, {260, 212}}, color = {0, 0, 255}));
+ connect(pwLine3_7.n, B7.p) annotation(
+ Line(points = {{238, 142}, {238, 130}, {274, 130}, {274, 100}, {268, 100}, {268, 97}, {267, 97}}, color = {0, 0, 255}));
+ connect(pwLine3_7.p, B3.p) annotation(
+ Line(points = {{238, 162}, {238, 162}, {238, 200}, {256, 200}, {256, 212}, {260, 212}}, color = {0, 0, 255}));
+ connect(pwLine7_8_1.n, B8.p) annotation(
+ Line(points = {{280, 62}, {280, 62}, {280, 48}, {272, 48}, {272, 46}}, color = {0, 0, 255}));
+ connect(pwLine7_8_1.p, B7.p) annotation(
+ Line(points = {{280, 82}, {280, 97}, {267, 97}}, color = {0, 0, 255}));
+ connect(pwLine7_8_2.p, B7.p) annotation(
+ Line(points = {{264, 82}, {266, 82}, {266, 96}, {267, 96}, {267, 97}}, color = {0, 0, 255}));
+ connect(pwLine7_8_2.n, B8.p) annotation(
+ Line(points = {{264, 62}, {264, 62}, {264, 48}, {272, 48}, {272, 46}}, color = {0, 0, 255}));
+ connect(pwLine8_9_1.p, B8.p) annotation(
+ Line(points = {{280, 27}, {280, 46}, {272, 46}}, color = {0, 0, 255}));
+ connect(pwLine8_9_1.n, B9.p) annotation(
+ Line(points = {{280, 9}, {280, -8}, {274, -8}, {274, -6}}, color = {0, 0, 255}));
+ connect(pwLine8_9_2.n, B9.p) annotation(
+ Line(points = {{262, 9}, {262, -6}, {274, -6}}, color = {0, 0, 255}));
+ connect(pwLine8_9_2.p, B8.p) annotation(
+ Line(points = {{262, 27}, {262, 46}, {272, 46}}, color = {0, 0, 255}));
+ connect(pwLine9_10_1.n, B10.p) annotation(
+ Line(points = {{286, -44}, {286, -60}, {276, -60}}, color = {0, 0, 255}));
+ connect(pwLine9_10_2.n, B10.p) annotation(
+ Line(points = {{270, -44}, {270, -60}, {276, -60}}, color = {0, 0, 255}));
+ connect(pwLine9_10_2.p, B9.p) annotation(
+ Line(points = {{270, -24}, {268, -24}, {268, -8}, {274, -8}, {274, -6}}, color = {0, 0, 255}));
+ connect(B9.p, pwLine9_10_1.p) annotation(
+ Line(points = {{274, -6}, {286, -6}, {286, -26}, {286, -26}, {286, -24}}, color = {0, 0, 255}));
+ connect(pwLine10_11_1.p, B10.p) annotation(
+ Line(points = {{284, -76}, {284, -58}, {276, -58}, {276, -60}}, color = {0, 0, 255}));
+ connect(pwLine10_11_1.n, B11.p) annotation(
+ Line(points = {{284, -96}, {284, -96}, {284, -118}, {280, -118}, {280, -118}}, color = {0, 0, 255}));
+ connect(pwLine10_11_2.p, B10.p) annotation(
+ Line(points = {{268, -78}, {268, -58}, {276, -58}, {276, -60}}, color = {0, 0, 255}));
+ connect(pwLine10_11_2.n, B11.p) annotation(
+ Line(points = {{268, -98}, {268, -98}, {268, -118}, {280, -118}, {280, -118}}, color = {0, 0, 255}));
+ connect(pwLine11_12_1.p, B11.p) annotation(
+ Line(points = {{288, -128}, {288, -128}, {288, -116}, {280, -116}, {280, -118}}, color = {0, 0, 255}));
+ connect(pwLine11_12_1.n, B12.p) annotation(
+ Line(points = {{288, -148}, {288, -148}, {288, -164}, {280, -164}, {280, -164}}, color = {0, 0, 255}));
+ connect(pwLine11_12_2.n, B12.p) annotation(
+ Line(points = {{272, -148}, {272, -148}, {272, -164}, {280, -164}, {280, -164}}, color = {0, 0, 255}));
+ connect(pwLine11_12_2.p, B11.p) annotation(
+ Line(points = {{272, -128}, {272, -128}, {272, -116}, {280, -116}, {280, -118}}, color = {0, 0, 255}));
+ connect(pwLine12_13.p, B12.p) annotation(
+ Line(points = {{282, -183}, {282, -164}, {280, -164}}, color = {0, 0, 255}));
+ connect(pwLine12_13.n, B13.p) annotation(
+ Line(points = {{282, -201}, {282, -213}, {283, -213}}, color = {0, 0, 255}));
+ connect(pwLine13_14.n, B14.p) annotation(
+ Line(points = {{286, -248}, {286, -248}, {286, -264}, {288, -264}}, color = {0, 0, 255}));
+ connect(pwLine13_14.p, B13.p) annotation(
+ Line(points = {{286, -228}, {286, -213}, {283, -213}}, color = {0, 0, 255}));
+ connect(pwLine14_15.n, B15.p) annotation(
+ Line(points = {{290, -304}, {290, -330}, {286, -330}}, color = {0, 0, 255}));
+ connect(pwLine14_15.p, B14.p) annotation(
+ Line(points = {{290, -284}, {290, -284}, {290, -264}, {288, -264}}, color = {0, 0, 255}));
+ connect(B16.p, pwLine15_16.p) annotation(
+ Line(points = {{160, -300}, {160, -276}, {224, -276}, {224, -297}}, color = {0, 0, 255}));
+ connect(pwLine15_16.n, B15.p) annotation(
+ Line(points = {{224, -316}, {224, -324}, {286, -324}, {286, -330}}, color = {0, 0, 255}));
+ connect(pwLine16_17.p, B16.p) annotation(
+ Line(points = {{112, -324}, {112, -324}, {112, -310}, {158, -310}, {158, -300}, {160, -300}}, color = {0, 0, 255}));
+ connect(B17.p, pwLine16_17.n) annotation(
+ Line(points = {{52, -336}, {58, -336}, {58, -354}, {112, -354}, {112, -342}, {112, -342}, {112, -344}}, color = {0, 0, 255}));
+ connect(pwLine17_18.n, B17.p) annotation(
+ Line(points = {{18, -358}, {40, -358}, {40, -336}, {52, -336}, {52, -336}}, color = {0, 0, 255}));
+ connect(pwLine17_18.p, B18.p) annotation(
+ Line(points = {{-2, -358}, {-24, -358}, {-24, -328}, {-32, -328}, {-32, -330}, {-32, -330}}, color = {0, 0, 255}));
+ connect(pwLine18_19.n, B18.p) annotation(
+ Line(points = {{-82, -292}, {-82, -292}, {-82, -320}, {-44, -320}, {-44, -328}, {-32, -328}, {-32, -330}}, color = {0, 0, 255}));
+ connect(B19.p, pwLine18_19.p) annotation(
+ Line(points = {{-137, -181}, {-130, -181}, {-130, -200}, {-82, -200}, {-82, -272}}, color = {0, 0, 255}));
+ connect(pwLine19_20.p, B19.p) annotation(
+ Line(points = {{-196, -206}, {-196, -192}, {-152, -192}, {-152, -181}, {-137, -181}}, color = {0, 0, 255}));
+ connect(pwLine19_20.n, B20.p) annotation(
+ Line(points = {{-196, -226}, {-196, -226}, {-196, -244}, {-224, -244}, {-224, -268}, {-232, -268}, {-232, -268}}, color = {0, 0, 255}));
+ connect(B21.p, pwLine20_21.p) annotation(
+ Line(points = {{-312, -238}, {-314, -238}, {-314, -256}, {-280, -256}, {-280, -256}}, color = {0, 0, 255}));
+ connect(pwLine20_21.n, B20.p) annotation(
+ Line(points = {{-260, -256}, {-244, -256}, {-244, -268}, {-232, -268}, {-232, -268}, {-232, -268}}, color = {0, 0, 255}));
+ connect(pwLine20_23.n, B20.p) annotation(
+ Line(points = {{-232, -210}, {-232, -210}, {-232, -268}, {-232, -268}}, color = {0, 0, 255}));
+ connect(pwLine20_23.p, B23.p) annotation(
+ Line(points = {{-232, -190}, {-232, -190}, {-232, -118}, {-224, -118}, {-224, -118}}, color = {0, 0, 255}));
+ connect(B23.p, pwLine23_24.p) annotation(
+ Line(points = {{-224, -118}, {-222, -118}, {-222, -100}, {-180, -100}, {-180, -100}, {-180, -100}}, color = {0, 0, 255}));
+ connect(pwLine23_24.n, B24.p) annotation(
+ Line(points = {{-160, -100}, {-128, -100}, {-128, -88}, {-118, -88}, {-118, -90}, {-116, -90}}, color = {0, 0, 255}));
+ connect(B25.p, pwLine12_25.p) annotation(
+ Line(points = {{-8, 10}, {-8, 10}, {-8, -126}, {36, -126}, {36, -126}}, color = {0, 0, 255}));
+ connect(pwLine12_25.n, B12.p) annotation(
+ Line(points = {{56, -126}, {264, -126}, {264, -164}, {280, -164}, {280, -164}}, color = {0, 0, 255}));
+ connect(B26.p, pwLine25_26.p) annotation(
+ Line(points = {{-130, 44}, {-122, 44}, {-122, 22}, {-77, 22}}, color = {0, 0, 255}));
+ connect(pwLine25_26.n, B25.p) annotation(
+ Line(points = {{-58, 22}, {-18, 22}, {-18, 12}, {-8, 12}, {-8, 10}, {-8, 10}}, color = {0, 0, 255}));
+ connect(B27.p, pwLine26_27.p) annotation(
+ Line(points = {{-343, -31}, {-342, -31}, {-342, -52}, {-262, -52}}, color = {0, 0, 255}));
+ connect(pwLine26_27.n, B26.p) annotation(
+ Line(points = {{-242, -52}, {-172, -52}, {-172, 26}, {-144, 26}, {-144, 42}, {-130, 42}, {-130, 44}}, color = {0, 0, 255}));
+ connect(B28.p, pwLine27_28.p) annotation(
+ Line(points = {{-434, 36}, {-432, 36}, {-432, 0}, {-410, 0}, {-410, -2}}, color = {0, 0, 255}));
+ connect(pwLine27_28.n, B27.p) annotation(
+ Line(points = {{-390, -2}, {-358, -2}, {-358, -31}, {-343, -31}}, color = {0, 0, 255}));
+ connect(pwLine28_29.p, B28.p) annotation(
+ Line(points = {{-424, 64}, {-434, 64}, {-434, 36}, {-434, 36}}, color = {0, 0, 255}));
+ connect(pwLine28_29.n, B29.p) annotation(
+ Line(points = {{-404, 64}, {-398, 64}, {-398, 88}, {-396, 88}, {-396, 86}, {-394, 86}}, color = {0, 0, 255}));
+ connect(B29.p, pwLine29_30.p) annotation(
+ Line(points = {{-394, 86}, {-388, 86}, {-388, 108}, {-376, 108}, {-376, 108}}, color = {0, 0, 255}));
+ connect(pwLine29_30.n, B30.p) annotation(
+ Line(points = {{-356, 108}, {-344, 108}, {-344, 123}, {-333, 123}}, color = {0, 0, 255}));
+ connect(pwLine30_31.p, B30.p) annotation(
+ Line(points = {{-328, 90}, {-328, 122}, {-333, 122}, {-333, 123}}, color = {0, 0, 255}));
+ connect(pwLine30_31.n, B31.p) annotation(
+ Line(points = {{-328, 70}, {-328, 70}, {-328, 34}, {-334, 34}, {-334, 34}}, color = {0, 0, 255}));
+ connect(pwLine27_31.n, B27.p) annotation(
+ Line(points = {{-340, -3}, {-340, -31}, {-343, -31}}, color = {0, 0, 255}));
+ connect(pwLine30_32.n, B30.p) annotation(
+ Line(points = {{-338, 155}, {-338, 123}, {-333, 123}}, color = {0, 0, 255}));
+ connect(pwLine30_32.p, B32.p) annotation(
+ Line(points = {{-338, 173}, {-338, 210}}, color = {0, 0, 255}));
+ connect(pwLine32_33.p, B32.p) annotation(
+ Line(points = {{-344, 254}, {-346, 254}, {-346, 212}, {-338, 212}, {-338, 210}}, color = {0, 0, 255}));
+ connect(pwLine32_33.n, B33.p) annotation(
+ Line(points = {{-344, 274}, {-344, 313}, {-349, 313}}, color = {0, 0, 255}));
+ connect(pwLine32_34_1.p, B32.p) annotation(
+ Line(points = {{-308, 242}, {-330, 242}, {-330, 210}, {-338, 210}, {-338, 210}}, color = {0, 0, 255}));
+ connect(pwLine32_34_2.p, B32.p) annotation(
+ Line(points = {{-306, 260}, {-336, 260}, {-336, 212}, {-338, 212}, {-338, 210}}, color = {0, 0, 255}));
+ connect(pwLine32_34_1.n, B34.p) annotation(
+ Line(points = {{-288, 242}, {-268, 242}, {-268, 212}, {-257, 212}, {-257, 213}}, color = {0, 0, 255}));
+ connect(pwLine32_34_2.n, B34.p) annotation(
+ Line(points = {{-286, 260}, {-258, 260}, {-258, 213}, {-257, 213}}, color = {0, 0, 255}));
+ connect(pwLine30_51.p, B51.p) annotation(
+ Line(points = {{-398, 198}, {-398, 250}}, color = {0, 0, 255}));
+ connect(pwLine30_51.n, B30.p) annotation(
+ Line(points = {{-398, 178}, {-398, 178}, {-398, 140}, {-344, 140}, {-344, 122}, {-332, 122}, {-332, 124}}, color = {0, 0, 255}));
+ connect(pwLine51_33.n, B33.p) annotation(
+ Line(points = {{-366, 282}, {-356, 282}, {-356, 313}, {-349, 313}}, color = {0, 0, 255}));
+ connect(pwLine51_33.p, B51.p) annotation(
+ Line(points = {{-386, 282}, {-394, 282}, {-394, 252}, {-398, 252}, {-398, 250}}, color = {0, 0, 255}));
+ connect(pwLine35_50.n, B35.p) annotation(
+ Line(points = {{130, 168}, {164, 168}, {164, 196}, {172, 196}, {172, 196}, {174, 196}}, color = {0, 0, 255}));
+ connect(pwLine35_50.p, B50.p) annotation(
+ Line(points = {{110, 168}, {76, 168}, {76, 194}, {64, 194}}, color = {0, 0, 255}));
+ connect(pwLine35_36.p, B35.p) annotation(
+ Line(points = {{182, 145}, {182, 194}, {174, 194}, {174, 196}}, color = {0, 0, 255}));
+ connect(pwLine35_36.n, B36.p) annotation(
+ Line(points = {{182, 126}, {182, 73}, {181, 73}}, color = {0, 0, 255}));
+ connect(pwLine36_38.p, B38.p) annotation(
+ Line(points = {{90, 24}, {82, 24}, {82, -70}}, color = {0, 0, 255}));
+ connect(pwLine36_38.n, B36.p) annotation(
+ Line(points = {{110, 24}, {168, 24}, {168, 24}, {178, 24}, {178, 76}, {182, 76}, {182, 74}, {182, 74}}, color = {0, 0, 255}));
+ connect(B1.p, pwLine38_1.p) annotation(
+ Line(points = {{-170, 194}, {-156, 194}, {-156, 140}, {-28, 140}, {-28, 98}, {-1, 98}}, color = {0, 0, 255}));
+ connect(pwLine38_1.n, B38.p) annotation(
+ Line(points = {{18, 98}, {56, 98}, {56, -70}, {82, -70}, {82, -70}}, color = {0, 0, 255}));
+ connect(pwLine38_47.n, B47.p) annotation(
+ Line(points = {{158, -160}, {194, -160}, {194, -245}, {199, -245}}, color = {0, 0, 255}));
+ connect(pwLine47_43.n, B47.p) annotation(
+ Line(points = {{134, -202}, {184, -202}, {184, -245}, {199, -245}}, color = {0, 0, 255}));
+ connect(pwLine42_43.n, B42.p) annotation(
+ Line(points = {{-380, -218}, {-380, -302}, {-244, -302}, {-244, -308}, {-234, -308}}, color = {0, 0, 255}));
+ connect(pwLine42_43.p, B43.p) annotation(
+ Line(points = {{-380, -198}, {-380, -60}, {-132, -60}, {-132, -38}, {-122, -38}}, color = {0, 0, 255}));
+ connect(pwLine40_41.n, B40.p) annotation(
+ Line(points = {{-54, -254}, {-46, -254}, {-46, -278}, {-36, -278}}, color = {0, 0, 255}));
+ connect(pwLine40_41.p, B41.p) annotation(
+ Line(points = {{-74, -254}, {-134, -254}, {-134, -238}, {-136, -238}}, color = {0, 0, 255}));
+ connect(B41.p, pwLine41_43.n) annotation(
+ Line(points = {{-136, -238}, {-128, -238}, {-128, -216}, {-60, -216}, {-60, -123}}, color = {0, 0, 255}));
+ connect(B43.p, pwLine41_43.p) annotation(
+ Line(points = {{-122, -38}, {-118, -38}, {-118, -62}, {-60, -62}, {-60, -104}}, color = {0, 0, 255}));
+ connect(B43.p, pwLine47_43.p) annotation(
+ Line(points = {{-122, -38}, {-110, -38}, {-110, -48}, {-20, -48}, {-20, -202}, {114, -202}}, color = {0, 0, 255}));
+ connect(pwLine43_45.n, B43.p) annotation(
+ Line(points = {{-187, -20}, {-128, -20}, {-128, -38}, {-122, -38}}, color = {0, 0, 255}));
+ connect(B45.p, pwLine43_45.p) annotation(
+ Line(points = {{-240, 0}, {-234, 0}, {-234, -20}, {-205, -20}}, color = {0, 0, 255}));
+ connect(pwLine43_44.n, B43.p) annotation(
+ Line(points = {{-88, 42}, {-88, -8}, {-110, -8}, {-110, -38}, {-122, -38}}, color = {0, 0, 255}));
+ connect(B44.p, pwLine43_44.p) annotation(
+ Line(points = {{-130, 102}, {-120, 102}, {-120, 80}, {-88, 80}, {-88, 62}, {-88, 62}}, color = {0, 0, 255}));
+ connect(pwLine45_46.n, B45.p) annotation(
+ Line(points = {{-236, 65}, {-236, 0}, {-240, 0}}, color = {0, 0, 255}));
+ connect(pwLine45_46.p, B46.p) annotation(
+ Line(points = {{-236, 83}, {-236, 146}, {-238, 146}}, color = {0, 0, 255}));
+ connect(pwLine44_1.p, B1.p) annotation(
+ Line(points = {{-170, 139}, {-170, 194}}, color = {0, 0, 255}));
+ connect(pwLine44_1.n, B44.p) annotation(
+ Line(points = {{-170, 121}, {-170, 110}, {-140, 110}, {-140, 102}, {-130, 102}}, color = {0, 0, 255}));
+ connect(pwLine46_1.n, B1.p) annotation(
+ Line(points = {{-204, 176}, {-182, 176}, {-182, 194}, {-170, 194}}, color = {0, 0, 255}));
+ connect(pwLine46_1.p, B46.p) annotation(
+ Line(points = {{-224, 176}, {-232, 176}, {-232, 144}, {-238, 144}, {-238, 146}}, color = {0, 0, 255}));
+ connect(pwLine1_49.p, B1.p) annotation(
+ Line(points = {{-116, 174}, {-152, 174}, {-152, 194}, {-170, 194}}, color = {0, 0, 255}));
+ connect(pwLine1_49.n, B49.p) annotation(
+ Line(points = {{-96, 174}, {-58, 174}, {-58, 194}, {-50, 194}}, color = {0, 0, 255}));
+ connect(B49.p, pwLine49_50.p) annotation(
+ Line(points = {{-50, 194}, {-40, 194}, {-40, 170}, {1, 170}}, color = {0, 0, 255}));
+ connect(pwLine49_50.n, B50.p) annotation(
+ Line(points = {{20, 170}, {56, 170}, {56, 194}, {64, 194}}, color = {0, 0, 255}));
+ connect(B38.p, pwLine38_47.p) annotation(
+ Line(points = {{82, -70}, {80, -70}, {80, -160}, {138, -160}, {138, -160}}, color = {0, 0, 255}));
+ connect(pwLine37_38.p, B38.p) annotation(
+ Line(points = {{122, -94}, {90, -94}, {90, -68}, {80, -68}, {80, -70}, {82, -70}}, color = {0, 0, 255}));
+ connect(pwLine37_38.n, B37.p) annotation(
+ Line(points = {{142, -94}, {158, -94}, {158, -74}, {166, -74}, {166, -74}}, color = {0, 0, 255}));
+ connect(pwLine47_39.p, B47.p) annotation(
+ Line(points = {{200, -303}, {200, -272.5}, {199, -272.5}, {199, -245}}, color = {0, 0, 255}));
+ connect(pwLine48_2_1.n, B2.p) annotation(
+ Line(points = {{108, 276}, {112, 276}, {112, 262}, {120, 262}, {120, 262}}, color = {0, 0, 255}));
+ connect(pwLine48_2_1.p, B48.p) annotation(
+ Line(points = {{88, 276}, {78, 276}, {78, 310}, {83, 310}, {83, 311}}, color = {0, 0, 255}));
+ connect(pwLine48_2_2.p, B48.p) annotation(
+ Line(points = {{90, 288}, {84, 288}, {84, 311}, {83, 311}}, color = {0, 0, 255}));
+ connect(pwLine48_2_2.n, B2.p) annotation(
+ Line(points = {{110, 288}, {118, 288}, {118, 260}, {120, 260}, {120, 262}}, color = {0, 0, 255}));
+ connect(pwLine27_31.p, B31.p) annotation(
+ Line(points = {{-340, 16}, {-340, 16}, {-340, 32}, {-334, 32}, {-334, 34}}, color = {0, 0, 255}));
+ connect(T_27_45.p, B27.p) annotation(
+ Line(points = {{-314, -10}, {-336, -10}, {-336, -30}, {-342, -30}, {-342, -30}}, color = {0, 0, 255}));
+ connect(T_27_45.n, B45.p) annotation(
+ Line(points = {{-290, -10}, {-250, -10}, {-250, 0}, {-240, 0}, {-240, 0}}, color = {0, 0, 255}));
+ connect(LD1.p, B2.p) annotation(
+ Line(points = {{90, 246}, {88, 246}, {88, 254}, {112, 254}, {112, 262}, {120, 262}}, color = {0, 0, 255}));
+ connect(B3.p, LD2.p) annotation(
+ Line(points = {{260, 212}, {272, 212}, {272, 198}, {304, 198}, {304, 192}, {306, 192}}, color = {0, 0, 255}));
+ connect(LD3.p, B5.p) annotation(
+ Line(points = {{272, 342}, {272, 320}}, color = {0, 0, 255}));
+ connect(B6.p, LD4.p) annotation(
+ Line(points = {{267, 149}, {267, 136}, {320, 136}, {320, 132}}, color = {0, 0, 255}));
+ connect(B7.p, LD5.p) annotation(
+ Line(points = {{267, 97}, {284, 97}, {284, 84}, {320, 84}, {320, 80}}, color = {0, 0, 255}));
+ connect(B8.p, LD6.p) annotation(
+ Line(points = {{272, 46}, {282, 46}, {282, 34}, {312, 34}, {312, 26}}, color = {0, 0, 255}));
+ connect(B9.p, LD7.p) annotation(
+ Line(points = {{274, -6}, {280, -6}, {280, -18}, {322, -18}, {322, -24}}, color = {0, 0, 255}));
+ connect(B10.p, LD8.p) annotation(
+ Line(points = {{276, -60}, {288, -60}, {288, -74}, {322, -74}, {322, -76}, {326, -76}}, color = {0, 0, 255}));
+ connect(B11.p, LD9.p) annotation(
+ Line(points = {{280, -118}, {290, -118}, {290, -120}, {327, -120}, {327, -132}}, color = {0, 0, 255}));
+ connect(B12.p, LD10.p) annotation(
+ Line(points = {{280, -164}, {290, -164}, {290, -176}, {322, -176}, {322, -182}}, color = {0, 0, 255}));
+ connect(B13.p, LD11.p) annotation(
+ Line(points = {{283, -213}, {290, -213}, {290, -228}, {336, -228}, {336, -234}}, color = {0, 0, 255}));
+ connect(B14.p, LD12.p) annotation(
+ Line(points = {{288, -264}, {296, -264}, {296, -278}, {320, -278}, {320, -284}, {325, -284}}, color = {0, 0, 255}));
+ connect(LD13.p, B16.p) annotation(
+ Line(points = {{142, -274}, {142, -274}, {142, -286}, {152, -286}, {152, -300}, {160, -300}, {160, -300}}, color = {0, 0, 255}));
+ connect(LD14.p, B17.p) annotation(
+ Line(points = {{52, -362}, {52, -336}}, color = {0, 0, 255}));
+ connect(LD15.p, B18.p) annotation(
+ Line(points = {{-32, -364}, {-32, -330}}, color = {0, 0, 255}));
+ connect(LD16.p, B19.p) annotation(
+ Line(points = {{-166, -218}, {-166, -200}, {-150, -200}, {-150, -182}, {-137, -182}, {-137, -181}}, color = {0, 0, 255}));
+ connect(B20.p, LD17.p) annotation(
+ Line(points = {{-232, -268}, {-224, -268}, {-224, -284}, {-190, -284}, {-190, -294}}, color = {0, 0, 255}));
+ connect(LD18.p, B22.p) annotation(
+ Line(points = {{-310, -156}, {-310, -156}, {-310, -184}, {-316, -184}, {-316, -184}}, color = {0, 0, 255}));
+ connect(B23.p, LD19.p) annotation(
+ Line(points = {{-224, -118}, {-222, -118}, {-222, -136}, {-200, -136}, {-200, -150}}, color = {0, 0, 255}));
+ connect(B24.p, LD20.p) annotation(
+ Line(points = {{-116, -90}, {-118, -90}, {-118, -106}, {-104, -106}, {-104, -114}, {-104, -114}}, color = {0, 0, 255}));
+ connect(B25.p, LD21.p) annotation(
+ Line(points = {{-8, 10}, {-2, 10}, {-2, -8}, {16, -8}, {16, -20}, {18, -20}}, color = {0, 0, 255}));
+ connect(LD22.p, B26.p) annotation(
+ Line(points = {{-127, 14}, {-132, 14}, {-132, 44}, {-130, 44}}, color = {0, 0, 255}));
+ connect(LD23.p, B27.p) annotation(
+ Line(points = {{-412, -54}, {-412, -46}, {-352, -46}, {-352, -30}, {-342, -30}}, color = {0, 0, 255}));
+ connect(LD24.p, B28.p) annotation(
+ Line(points = {{-457, 6}, {-457, 24}, {-442, 24}, {-442, 38}, {-434, 38}, {-434, 36}}, color = {0, 0, 255}));
+ connect(LD25.p, B29.p) annotation(
+ Line(points = {{-459, 70}, {-459, 78}, {-404, 78}, {-404, 88}, {-394, 88}, {-394, 86}}, color = {0, 0, 255}));
+ connect(B30.p, LD26.p) annotation(
+ Line(points = {{-332, 124}, {-320, 124}, {-320, 102}, {-296, 102}, {-296, 85}}, color = {0, 0, 255}));
+ connect(B31.p, LD27.p) annotation(
+ Line(points = {{-334, 34}, {-330, 34}, {-330, 18}, {-285, 18}, {-285, 26}}, color = {0, 0, 255}));
+ connect(B32.p, LD28.p) annotation(
+ Line(points = {{-338, 210}, {-346, 210}, {-346, 198}, {-366, 198}, {-366, 184}, {-363, 184}}, color = {0, 0, 255}));
+ connect(B34.p, LD29.p) annotation(
+ Line(points = {{-257, 213}, {-250, 213}, {-250, 230}, {-232, 230}, {-232, 236}}, color = {0, 0, 255}));
+ connect(LD30.p, B51.p) annotation(
+ Line(points = {{-422, 226}, {-424, 226}, {-424, 236}, {-406, 236}, {-406, 250}, {-398, 250}}, color = {0, 0, 255}));
+ connect(B49.p, pwLine39_49.p) annotation(
+ Line(points = {{-50, 194}, {-46, 194}, {-46, 82}, {-36, 82}, {-36, 66}, {-34, 66}}, color = {0, 0, 255}));
+ connect(pwLine47_39.n, B39.p) annotation(
+ Line(points = {{200, -320}, {198, -320}, {198, -324}, {170, -324}, {170, -346}, {166, -346}, {166, -344}}, color = {0, 0, 255}));
+ connect(B39.p, pwLine39_49.n) annotation(
+ Line(points = {{166, -344}, {150, -344}, {150, -316}, {72, -316}, {72, -160}, {-34, -160}, {-34, 48}, {-34, 48}}, color = {0, 0, 255}));
+ connect(genBus7.pwPin, B7.p) annotation(
+ Line(points = {{210, 136}, {210, 114}, {260, 114}, {260, 98}, {268, 98}}, color = {0, 0, 255}));
+ connect(genBus15.pwPin, B15.p) annotation(
+ Line(points = {{286, -354}, {286, -354}, {286, -330}, {286, -330}}, color = {0, 0, 255}));
+ connect(genBus17.pwPin, B17.p) annotation(
+ Line(points = {{52, -310}, {52, -310}, {52, -336}, {52, -336}}, color = {0, 0, 255}));
+ connect(genBus19.pwPin, B19.p) annotation(
+ Line(points = {{-138, -162}, {-138, -162}, {-138, -180}, {-136, -180}, {-136, -180}}, color = {0, 0, 255}));
+ connect(genBus30.pwPin, B30.p) annotation(
+ Line(points = {{-302, 166}, {-302, 166}, {-302, 150}, {-332, 150}, {-332, 124}, {-332, 124}, {-332, 124}}, color = {0, 0, 255}));
+ connect(genBus33.pwPin, B33.p) annotation(
+ Line(points = {{-344, 334}, {-344, 334}, {-344, 312}, {-348, 312}, {-348, 314}}, color = {0, 0, 255}));
+ connect(genBus38.pwPin, B38.p) annotation(
+ Line(points = {{106, -44}, {106, -44}, {106, -52}, {90, -52}, {90, -68}, {82, -68}, {82, -70}}, color = {0, 0, 255}));
+ connect(genBus44.pwPin, B44.p) annotation(
+ Line(points = {{-196, 110}, {-196, 110}, {-196, 100}, {-130, 100}, {-130, 102}}, color = {0, 0, 255}));
+ connect(genBus48.pwPin, B48.p) annotation(
+ Line(points = {{80, 328}, {80, 312}, {82, 312}}, color = {0, 0, 255}));
+ connect(genBus49.pwPin, B49.p) annotation(
+ Line(points = {{-50, 214}, {-50, 194}}, color = {0, 0, 255}));
+ connect(genBus50.pwPin, B50.p) annotation(
+ Line(points = {{66, 210}, {66, 210}, {66, 194}, {64, 194}}, color = {0, 0, 255}));
+ connect(T_1_34.n, B1.p) annotation(
+ Line(points = {{-210, 198}, {-182, 198}, {-182, 194}, {-170, 194}}, color = {0, 0, 255}));
+ connect(T_1_34.p, B34.p) annotation(
+ Line(points = {{-246, 198}, {-258, 198}, {-258, 214}, {-256, 214}}, color = {0, 0, 255}));
+ connect(T_3_35.p, B35.p) annotation(
+ Line(points = {{186, 212}, {174, 212}, {174, 196}, {174, 196}}, color = {0, 0, 255}));
+ connect(T_3_35.n, B3.p) annotation(
+ Line(points = {{222, 212}, {260, 212}, {260, 212}, {260, 212}}, color = {0, 0, 255}));
+ connect(T_4_5.n, B4.p) annotation(
+ Line(points = {{270, 274}, {270, 274}, {270, 264}, {268, 264}, {268, 264}}, color = {0, 0, 255}));
+ connect(T_4_5.p, B5.p) annotation(
+ Line(points = {{270, 310}, {270, 310}, {270, 320}, {272, 320}}, color = {0, 0, 255}));
+ connect(T_7_36.p, B36.p) annotation(
+ Line(points = {{209, 90}, {190, 90}, {190, 74}, {182, 74}}, color = {0, 0, 255}));
+ connect(T_7_36.n, B7.p) annotation(
+ Line(points = {{240, 90}, {256, 90}, {256, 96}, {266, 96}, {266, 98}, {268, 98}}, color = {0, 0, 255}));
+ connect(T_11_37.p, B37.p) annotation(
+ Line(points = {{198, -100}, {172, -100}, {172, -74}, {164, -74}, {164, -74}, {166, -74}}, color = {0, 0, 255}));
+ connect(T_11_37.n, B11.p) annotation(
+ Line(points = {{236, -100}, {256, -100}, {256, -118}, {280, -118}, {280, -118}}, color = {0, 0, 255}));
+ connect(T_16_39.n, B39.p) annotation(
+ Line(points = {{164, -336}, {164, -336}, {164, -344}, {166, -344}}, color = {0, 0, 255}));
+ connect(T_16_39.p, B16.p) annotation(
+ Line(points = {{164, -306}, {162, -306}, {162, -298}, {160, -298}, {160, -300}, {160, -300}}, color = {0, 0, 255}));
+ connect(T_18_40.n, B18.p) annotation(
+ Line(points = {{-36, -317}, {-36, -330}, {-32, -330}}, color = {0, 0, 255}));
+ connect(T_18_40.p, B40.p) annotation(
+ Line(points = {{-36, -287}, {-36, -278}}, color = {0, 0, 255}));
+ connect(T_14_47.p, B47.p) annotation(
+ Line(points = {{224, -258}, {206, -258}, {206, -246}, {200, -246}, {200, -244}}, color = {0, 0, 255}));
+ connect(T_14_47.n, B14.p) annotation(
+ Line(points = {{256, -258}, {274, -258}, {274, -262}, {288, -262}, {288, -264}}, color = {0, 0, 255}));
+ connect(T_19_41.n, B41.p) annotation(
+ Line(points = {{-136, -228}, {-138, -228}, {-138, -238}, {-136, -238}}, color = {0, 0, 255}));
+ connect(T_19_41.p, B19.p) annotation(
+ Line(points = {{-136, -194}, {-138, -194}, {-138, -180}, {-136, -180}}, color = {0, 0, 255}));
+ connect(T_21_22.n, B21.p) annotation(
+ Line(points = {{-318, -228}, {-318, -228}, {-318, -240}, {-312, -240}, {-312, -238}}, color = {0, 0, 255}));
+ connect(T_21_22.p, B22.p) annotation(
+ Line(points = {{-318, -196}, {-318, -196}, {-318, -184}, {-316, -184}, {-316, -184}, {-316, -184}}, color = {0, 0, 255}));
+ connect(T_24_43.n, B24.p) annotation(
+ Line(points = {{-124, -83}, {-124, -90}, {-116, -90}}, color = {0, 0, 255}));
+ connect(T_24_43.p, B43.p) annotation(
+ Line(points = {{-124, -61}, {-124, -49.5}, {-122, -49.5}, {-122, -38}}, color = {0, 0, 255}));
+ connect(T_44_26.n, B26.p) annotation(
+ Line(points = {{-134, 56}, {-134, 56}, {-134, 44}, {-132, 44}, {-132, 44}, {-130, 44}}, color = {0, 0, 255}));
+ connect(T_44_26.p, B44.p) annotation(
+ Line(points = {{-134, 92}, {-134, 92}, {-134, 102}, {-130, 102}}, color = {0, 0, 255}));
+ connect(genBus11.pwPin, B1.p) annotation(
+ Line(points = {{-168, 228}, {-170, 228}, {-170, 194}}, color = {0, 0, 255}));
+ connect(T_30_46.p, B30.p) annotation(
+ Line(points = {{-300, 134}, {-326, 134}, {-326, 126}, {-326, 126}, {-326, 124}, {-332, 124}, {-332, 124}}, color = {0, 0, 255}));
+ connect(T_30_46.n, B46.p) annotation(
+ Line(points = {{-266, 134}, {-246, 134}, {-246, 146}, {-238, 146}, {-238, 146}}, color = {0, 0, 255}));
+ connect(T_20_42.n, B42.p) annotation(
+ Line(points = {{-234, -300}, {-234, -300}, {-234, -308}, {-234, -308}, {-234, -308}}, color = {0, 0, 255}));
+ connect(T_20_42.p, B20.p) annotation(
+ Line(points = {{-234, -276}, {-234, -276}, {-234, -268}, {-232, -268}, {-232, -268}}, color = {0, 0, 255}));
+ protected
+ annotation(
+ Diagram(coordinateSystem(extent = {{-500, -400}, {500, 400}})),
+ Icon(coordinateSystem(extent = {{-500, -400}, {500, 400}})),
+ uses(OpenIPSL(version = "1.5.0")));
+ end Network;
+
+ package GenBus
+ model GenBus1
+ extends OpenIPSL.Electrical.Essentials.pfComponent;
+ parameter Real Vref0=1.141"Reference voltage AVR";
+ parameter Boolean refdisturb_1 annotation(
+ Dialog(group = "AVR Disturbance"));
+ OpenIPSL.Interfaces.PwPin pwPin annotation(
+ Placement(visible = true, transformation(origin = {102, 2}, extent = {{-10, -10}, {10, 10}}, rotation = 0), iconTransformation(origin = {102, 2}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
+ OpenIPSL.Electrical.Machines.PSAT.Order6 order6(D = 0, M = 7, P_0 = P_0, Q_0 = Q_0, Sn = 9950, T1d0 = 5.6, T1q0 = 1.1, T2d0 = 0.035, T2q0 = 0.035, Taa = 0.1, V_0 = V_0, V_b = V_b, Vn = 11, angle_0 = angle_0, e1q(fixed = true), ra = 0, v(fixed = true), x1d = 0.23, x1q = 0.23, x2d = 0.12, x2q = 0.15, xd = 1.1, xq = 1.08) annotation(
+ Placement(visible = true, transformation(origin = {32, 0}, extent = {{-12, -12}, {12, 12}}, rotation = 0)));
+ OpenIPSL.Electrical.Controls.PSAT.AVR.AVRTypeII AVR(Ae = 0.0039, Be = 1.555, Ka = 20, Ke = 1, Kf = 0.063, Ta = 0.2, Te = 0.314, Tf = 0.35, Tr = 0.001, v0 = V_0, vrmax = 5, vrmin = -5) annotation(
+ Placement(visible = true, transformation(origin = {-23, -4}, extent = {{-13, -12}, {13, 12}}, rotation = 0)));
+ Modelica.Blocks.Logical.Switch switch1 annotation(
+ Placement(visible = true, transformation(extent = {{-66, -6}, {-56, 4}}, rotation = 0)));
+ Modelica.Blocks.Sources.BooleanConstant booleanConstant(k = false) annotation(
+ Placement(visible = true, transformation(extent = {{-86, -8}, {-76, 2}}, rotation = 0)));
+ Modelica.Blocks.Sources.Pulse pulse(amplitude = 2, nperiod = 1, offset = Vref0, period = 20, startTime = 7, width = 10) annotation(
+ Placement(visible = true, transformation(origin = {-85, -21}, extent = {{-5, -5}, {5, 5}}, rotation = 0)));
+ equation
+ connect(order6.p, pwPin) annotation(
+ Line(points = {{44, 0}, {98, 0}, {98, 2}, {102, 2}}, color = {0, 0, 255}));
+ connect(order6.pm, order6.pm0) annotation(
+ Line(points = {{18, -6}, {10, -6}, {10, -16}, {22, -16}, {22, -12}, {22, -12}, {22, -14}}, color = {0, 0, 127}));
+ connect(AVR.vf, order6.vf) annotation(
+ Line(points = {{-7, -4}, {0, -4}, {0, 6}, {18, 6}}, color = {0, 0, 127}));
+ connect(AVR.v, order6.v) annotation(
+ Line(points = {{-38, -12}, {-48, -12}, {-48, -38}, {62, -38}, {62, 4}, {46, 4}, {46, 4}}, color = {0, 0, 127}));
+ connect(AVR.vf0, order6.vf0) annotation(
+ Line(points = {{-22, -18}, {-24, -18}, {-24, -44}, {84, -44}, {84, 20}, {22, 20}, {22, 14}, {22, 14}}, color = {0, 0, 127}));
+ connect(switch1.u1, AVR.vref0) annotation(
+ Line(points = {{-66, 4}, {-72, 4}, {-72, 24}, {-22, 24}, {-22, 10}, {-22, 10}}, color = {0, 0, 127}));
+ connect(switch1.y, AVR.vref) annotation(
+ Line(points = {{-56, 0}, {-46, 0}, {-46, 4}, {-38, 4}, {-38, 4}}, color = {0, 0, 127}));
+ connect(booleanConstant.y, switch1.u2) annotation(
+ Line(points = {{-75.5, -3}, {-68, -3}, {-68, 0}, {-66, 0}}, color = {255, 0, 255}));
+ connect(pulse.y, switch1.u3) annotation(
+ Line(points = {{-80, -20}, {-72, -20}, {-72, -4}, {-66, -4}, {-66, -4}}, color = {0, 0, 127}));
+ annotation(
+ Icon(graphics = {Ellipse(origin = {13, 7}, extent = {{-83, 67}, {83, -67}}, endAngle = 360), Line(origin = {10.7956, 12.6842}, points = {{-60.7956, -20.6842}, {-10.7956, 21.3158}, {31.2044, -12.6842}, {61.2044, 17.3158}, {61.2044, 19.3158}})}, coordinateSystem(initialScale = 0.1)),
+ Diagram);
+ end GenBus1;
+
+ model GenBus7
+ extends OpenIPSL.Electrical.Essentials.pfComponent;
+ OpenIPSL.Interfaces.PwPin pwPin annotation(
+ Placement(visible = true, transformation(origin = {102, 2}, extent = {{-10, -10}, {10, 10}}, rotation = 0), iconTransformation(origin = {102, 2}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
+ OpenIPSL.Electrical.Machines.PSAT.Order6 order6(D = 0, M = 7, P_0 = P_0, Q_0 = Q_0, Sn = 9950, T1d0 = 5.6, T1q0 = 1.1, T2d0 = 0.035, T2q0 = 0.035, Taa = 0.1, V_0 = V_0, V_b = V_b, Vn = 11, angle_0 = angle_0, e1q(fixed = true), ra = 0, v(fixed = true), x1d = 0.23, x1q = 0.23, x2d = 0.12, x2q = 0.15, xd = 1.1, xq = 1.08) annotation(
+ Placement(visible = true, transformation(origin = {32, 0}, extent = {{-12, -12}, {12, 12}}, rotation = 0)));
+ OpenIPSL.Electrical.Controls.PSAT.AVR.AVRTypeII AVR(Ae = 0.0039, Be = 1.555, Ka = 20, Ke = 1, Kf = 0.063, Ta = 0.2, Te = 0.314, Tf = 0.35, Tr = 0.001, v0 = V_0, vrmax = 5, vrmin = -5) annotation(
+ Placement(visible = true, transformation(origin = {-23, -4}, extent = {{-13, -12}, {13, 12}}, rotation = 0)));
+ equation
+ connect(order6.p, pwPin) annotation(
+ Line(points = {{44, 0}, {98, 0}, {98, 2}, {102, 2}}, color = {0, 0, 255}));
+ connect(order6.pm, order6.pm0) annotation(
+ Line(points = {{18, -6}, {10, -6}, {10, -16}, {22, -16}, {22, -12}, {22, -12}, {22, -14}}, color = {0, 0, 127}));
+ connect(AVR.vf, order6.vf) annotation(
+ Line(points = {{-7, -4}, {0, -4}, {0, 6}, {18, 6}}, color = {0, 0, 127}));
+ connect(AVR.v, order6.v) annotation(
+ Line(points = {{-38, -12}, {-48, -12}, {-48, -38}, {62, -38}, {62, 4}, {46, 4}, {46, 4}}, color = {0, 0, 127}));
+ connect(AVR.vf0, order6.vf0) annotation(
+ Line(points = {{-22, -18}, {-24, -18}, {-24, -44}, {84, -44}, {84, 20}, {22, 20}, {22, 14}, {22, 14}}, color = {0, 0, 127}));
+ connect(AVR.vref, AVR.vref0) annotation(
+ Line(points = {{-38, 4}, {-48, 4}, {-48, 18}, {-24, 18}, {-24, 10}, {-22, 10}}, color = {0, 0, 127}));
+ annotation(
+ Icon(graphics = {Ellipse(origin = {13, 7}, extent = {{-83, 67}, {83, -67}}, endAngle = 360), Line(origin = {10.7956, 12.6842}, points = {{-60.7956, -20.6842}, {-10.7956, 21.3158}, {31.2044, -12.6842}, {61.2044, 17.3158}, {61.2044, 19.3158}})}, coordinateSystem(initialScale = 0.1)),
+ Diagram);
+ end GenBus7;
+
+ model GenBus15
+ extends OpenIPSL.Electrical.Essentials.pfComponent;
+ OpenIPSL.Interfaces.PwPin pwPin annotation(
+ Placement(visible = true, transformation(origin = {102, 2}, extent = {{-10, -10}, {10, 10}}, rotation = 0), iconTransformation(origin = {102, 2}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
+ OpenIPSL.Electrical.Machines.PSAT.Order6 order6(D = 0, M = 7, P_0 = P_0, Q_0 = Q_0, Sn = 9950, T1d0 = 5.6, T1q0 = 1.1, T2d0 = 0.035, T2q0 = 0.035, Taa = 0.1, V_0 = V_0, V_b = V_b, Vn = 11, angle_0 = angle_0, e1q(fixed = true), ra = 0, v(fixed = true), x1d = 0.23, x1q = 0.23, x2d = 0.12, x2q = 0.15, xd = 1.1, xq = 1.08) annotation(
+ Placement(visible = true, transformation(origin = {32, 0}, extent = {{-12, -12}, {12, 12}}, rotation = 0)));
+ OpenIPSL.Electrical.Controls.PSAT.AVR.AVRTypeII AVR(Ae = 0.0039, Be = 1.555, Ka = 20, Ke = 1, Kf = 0.063, Ta = 0.2, Te = 0.314, Tf = 0.35, Tr = 0.001, v0 = V_0, vrmax = 5, vrmin = -5) annotation(
+ Placement(visible = true, transformation(origin = {-23, -4}, extent = {{-13, -12}, {13, 12}}, rotation = 0)));
+ equation
+ connect(order6.p, pwPin) annotation(
+ Line(points = {{44, 0}, {98, 0}, {98, 2}, {102, 2}}, color = {0, 0, 255}));
+ connect(order6.pm, order6.pm0) annotation(
+ Line(points = {{18, -6}, {10, -6}, {10, -16}, {22, -16}, {22, -12}, {22, -12}, {22, -14}}, color = {0, 0, 127}));
+ connect(AVR.vf, order6.vf) annotation(
+ Line(points = {{-7, -4}, {0, -4}, {0, 6}, {18, 6}}, color = {0, 0, 127}));
+ connect(AVR.v, order6.v) annotation(
+ Line(points = {{-38, -12}, {-48, -12}, {-48, -38}, {62, -38}, {62, 4}, {46, 4}, {46, 4}}, color = {0, 0, 127}));
+ connect(AVR.vf0, order6.vf0) annotation(
+ Line(points = {{-22, -18}, {-24, -18}, {-24, -44}, {84, -44}, {84, 20}, {22, 20}, {22, 14}, {22, 14}}, color = {0, 0, 127}));
+ connect(AVR.vref, AVR.vref0) annotation(
+ Line(points = {{-38, 4}, {-48, 4}, {-48, 18}, {-24, 18}, {-24, 10}, {-22, 10}}, color = {0, 0, 127}));
+ annotation(
+ Icon(graphics = {Ellipse(origin = {13, 7}, extent = {{-83, 67}, {83, -67}}, endAngle = 360), Line(origin = {10.7956, 12.6842}, points = {{-60.7956, -20.6842}, {-10.7956, 21.3158}, {31.2044, -12.6842}, {61.2044, 17.3158}, {61.2044, 19.3158}})}, coordinateSystem(initialScale = 0.1)),
+ Diagram);
+ end GenBus15;
+
+ model GenBus17
+ extends OpenIPSL.Electrical.Essentials.pfComponent;
+ OpenIPSL.Interfaces.PwPin pwPin annotation(
+ Placement(visible = true, transformation(origin = {102, 2}, extent = {{-10, -10}, {10, 10}}, rotation = 0), iconTransformation(origin = {102, 2}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
+ OpenIPSL.Electrical.Machines.PSAT.Order6 order6(D = 0, M = 7, P_0 = P_0, Q_0 = Q_0, Sn = 9950, T1d0 = 5.6, T1q0 = 1.1, T2d0 = 0.035, T2q0 = 0.035, Taa = 0.1, V_0 = V_0, V_b = V_b, Vn = 11, angle_0 = angle_0, e1q(fixed = true), ra = 0, v(fixed = true), x1d = 0.23, x1q = 0.23, x2d = 0.12, x2q = 0.15, xd = 1.1, xq = 1.08) annotation(
+ Placement(visible = true, transformation(origin = {32, 0}, extent = {{-12, -12}, {12, 12}}, rotation = 0)));
+ OpenIPSL.Electrical.Controls.PSAT.AVR.AVRTypeII AVR(Ae = 0.0039, Be = 1.555, Ka = 20, Ke = 1, Kf = 0.063, Ta = 0.2, Te = 0.314, Tf = 0.35, Tr = 0.001, v0 = V_0, vrmax = 5, vrmin = -5) annotation(
+ Placement(visible = true, transformation(origin = {-23, -4}, extent = {{-13, -12}, {13, 12}}, rotation = 0)));
+ equation
+ connect(order6.p, pwPin) annotation(
+ Line(points = {{44, 0}, {98, 0}, {98, 2}, {102, 2}}, color = {0, 0, 255}));
+ connect(order6.pm, order6.pm0) annotation(
+ Line(points = {{18, -6}, {10, -6}, {10, -16}, {22, -16}, {22, -12}, {22, -12}, {22, -14}}, color = {0, 0, 127}));
+ connect(AVR.vf, order6.vf) annotation(
+ Line(points = {{-7, -4}, {0, -4}, {0, 6}, {18, 6}}, color = {0, 0, 127}));
+ connect(AVR.v, order6.v) annotation(
+ Line(points = {{-38, -12}, {-48, -12}, {-48, -38}, {62, -38}, {62, 4}, {46, 4}, {46, 4}}, color = {0, 0, 127}));
+ connect(AVR.vf0, order6.vf0) annotation(
+ Line(points = {{-22, -18}, {-24, -18}, {-24, -44}, {84, -44}, {84, 20}, {22, 20}, {22, 14}, {22, 14}}, color = {0, 0, 127}));
+ connect(AVR.vref, AVR.vref0) annotation(
+ Line(points = {{-38, 4}, {-48, 4}, {-48, 18}, {-24, 18}, {-24, 10}, {-22, 10}}, color = {0, 0, 127}));
+ annotation(
+ Icon(graphics = {Ellipse(origin = {13, 7}, extent = {{-83, 67}, {83, -67}}, endAngle = 360), Line(origin = {10.7956, 12.6842}, points = {{-60.7956, -20.6842}, {-10.7956, 21.3158}, {31.2044, -12.6842}, {61.2044, 17.3158}, {61.2044, 19.3158}})}, coordinateSystem(initialScale = 0.1)),
+ Diagram);
+ end GenBus17;
+
+ model GenBus19
+ extends OpenIPSL.Electrical.Essentials.pfComponent;
+ OpenIPSL.Interfaces.PwPin pwPin annotation(
+ Placement(visible = true, transformation(origin = {102, 2}, extent = {{-10, -10}, {10, 10}}, rotation = 0), iconTransformation(origin = {102, 2}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
+ OpenIPSL.Electrical.Machines.PSAT.Order6 order6(D = 0, M = 7, P_0 = P_0, Q_0 = Q_0, Sn = 9950, T1d0 = 5.6, T1q0 = 1.1, T2d0 = 0.035, T2q0 = 0.035, Taa = 0.1, V_0 = V_0, V_b = V_b, Vn = 11, angle_0 = angle_0, e1q(fixed = true), ra = 0, v(fixed = true), x1d = 0.23, x1q = 0.23, x2d = 0.12, x2q = 0.15, xd = 1.1, xq = 1.08) annotation(
+ Placement(visible = true, transformation(origin = {32, 0}, extent = {{-12, -12}, {12, 12}}, rotation = 0)));
+ OpenIPSL.Electrical.Controls.PSAT.AVR.AVRTypeII AVR(Ae = 0.0039, Be = 1.555, Ka = 20, Ke = 1, Kf = 0.063, Ta = 0.2, Te = 0.314, Tf = 0.35, Tr = 0.001, v0 = V_0, vrmax = 5, vrmin = -5) annotation(
+ Placement(visible = true, transformation(origin = {-23, -4}, extent = {{-13, -12}, {13, 12}}, rotation = 0)));
+ equation
+ connect(order6.p, pwPin) annotation(
+ Line(points = {{44, 0}, {98, 0}, {98, 2}, {102, 2}}, color = {0, 0, 255}));
+ connect(order6.pm, order6.pm0) annotation(
+ Line(points = {{18, -6}, {10, -6}, {10, -16}, {22, -16}, {22, -12}, {22, -12}, {22, -14}}, color = {0, 0, 127}));
+ connect(AVR.vf, order6.vf) annotation(
+ Line(points = {{-7, -4}, {0, -4}, {0, 6}, {18, 6}}, color = {0, 0, 127}));
+ connect(AVR.v, order6.v) annotation(
+ Line(points = {{-38, -12}, {-48, -12}, {-48, -38}, {62, -38}, {62, 4}, {46, 4}, {46, 4}}, color = {0, 0, 127}));
+ connect(AVR.vf0, order6.vf0) annotation(
+ Line(points = {{-22, -18}, {-24, -18}, {-24, -44}, {84, -44}, {84, 20}, {22, 20}, {22, 14}, {22, 14}}, color = {0, 0, 127}));
+ connect(AVR.vref, AVR.vref0) annotation(
+ Line(points = {{-38, 4}, {-48, 4}, {-48, 18}, {-24, 18}, {-24, 10}, {-22, 10}}, color = {0, 0, 127}));
+ annotation(
+ Icon(graphics = {Ellipse(origin = {13, 7}, extent = {{-83, 67}, {83, -67}}, endAngle = 360), Line(origin = {10.7956, 12.6842}, points = {{-60.7956, -20.6842}, {-10.7956, 21.3158}, {31.2044, -12.6842}, {61.2044, 17.3158}, {61.2044, 19.3158}})}, coordinateSystem(initialScale = 0.1)),
+ Diagram);
+ end GenBus19;
+
+ model GenBus30
+ extends OpenIPSL.Electrical.Essentials.pfComponent;
+ OpenIPSL.Interfaces.PwPin pwPin annotation(
+ Placement(visible = true, transformation(origin = {102, 2}, extent = {{-10, -10}, {10, 10}}, rotation = 0), iconTransformation(origin = {102, 2}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
+ OpenIPSL.Electrical.Machines.PSAT.Order6 order6(D = 0, M = 7, P_0 = P_0, Q_0 = Q_0, Sn = 9950, T1d0 = 5.6, T1q0 = 1.1, T2d0 = 0.035, T2q0 = 0.035, Taa = 0.1, V_0 = V_0, V_b = V_b, Vn = 11, angle_0 = angle_0, e1q(fixed = true), ra = 0, v(fixed = true), x1d = 0.23, x1q = 0.23, x2d = 0.12, x2q = 0.15, xd = 1.1, xq = 1.08) annotation(
+ Placement(visible = true, transformation(origin = {32, 0}, extent = {{-12, -12}, {12, 12}}, rotation = 0)));
+ OpenIPSL.Electrical.Controls.PSAT.AVR.AVRTypeII AVR(Ae = 0.0039, Be = 1.555, Ka = 20, Ke = 1, Kf = 0.063, Ta = 0.2, Te = 0.314, Tf = 0.35, Tr = 0.001, v0 = V_0, vrmax = 5, vrmin = -5) annotation(
+ Placement(visible = true, transformation(origin = {-23, -4}, extent = {{-13, -12}, {13, 12}}, rotation = 0)));
+ equation
+ connect(order6.p, pwPin) annotation(
+ Line(points = {{44, 0}, {98, 0}, {98, 2}, {102, 2}}, color = {0, 0, 255}));
+ connect(order6.pm, order6.pm0) annotation(
+ Line(points = {{18, -6}, {10, -6}, {10, -16}, {22, -16}, {22, -12}, {22, -12}, {22, -14}}, color = {0, 0, 127}));
+ connect(AVR.vf, order6.vf) annotation(
+ Line(points = {{-7, -4}, {0, -4}, {0, 6}, {18, 6}}, color = {0, 0, 127}));
+ connect(AVR.v, order6.v) annotation(
+ Line(points = {{-38, -12}, {-48, -12}, {-48, -38}, {62, -38}, {62, 4}, {46, 4}, {46, 4}}, color = {0, 0, 127}));
+ connect(AVR.vf0, order6.vf0) annotation(
+ Line(points = {{-22, -18}, {-24, -18}, {-24, -44}, {84, -44}, {84, 20}, {22, 20}, {22, 14}, {22, 14}}, color = {0, 0, 127}));
+ connect(AVR.vref, AVR.vref0) annotation(
+ Line(points = {{-38, 4}, {-48, 4}, {-48, 18}, {-24, 18}, {-24, 10}, {-22, 10}}, color = {0, 0, 127}));
+ annotation(
+ Icon(graphics = {Ellipse(origin = {13, 7}, extent = {{-83, 67}, {83, -67}}, endAngle = 360), Line(origin = {10.7956, 12.6842}, points = {{-60.7956, -20.6842}, {-10.7956, 21.3158}, {31.2044, -12.6842}, {61.2044, 17.3158}, {61.2044, 19.3158}})}, coordinateSystem(initialScale = 0.1)),
+ Diagram);
+ end GenBus30;
+
+ model GenBus33
+ extends OpenIPSL.Electrical.Essentials.pfComponent;
+ OpenIPSL.Interfaces.PwPin pwPin annotation(
+ Placement(visible = true, transformation(origin = {102, 2}, extent = {{-10, -10}, {10, 10}}, rotation = 0), iconTransformation(origin = {102, 2}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
+ OpenIPSL.Electrical.Machines.PSAT.Order6 order6(D = 0, M = 7, P_0 = P_0, Q_0 = Q_0, Sn = 9950, T1d0 = 5.6, T1q0 = 1.1, T2d0 = 0.035, T2q0 = 0.035, Taa = 0.1, V_0 = V_0, V_b = V_b, Vn = 11, angle_0 = angle_0, e1q(fixed = true), ra = 0, v(fixed = true), x1d = 0.23, x1q = 0.23, x2d = 0.12, x2q = 0.15, xd = 1.1, xq = 1.08) annotation(
+ Placement(visible = true, transformation(origin = {32, 0}, extent = {{-12, -12}, {12, 12}}, rotation = 0)));
+ OpenIPSL.Electrical.Controls.PSAT.AVR.AVRTypeII AVR(Ae = 0.0039, Be = 1.555, Ka = 20, Ke = 1, Kf = 0.063, Ta = 0.2, Te = 0.314, Tf = 0.35, Tr = 0.001, v0 = V_0, vrmax = 5, vrmin = -5) annotation(
+ Placement(visible = true, transformation(origin = {-23, -4}, extent = {{-13, -12}, {13, 12}}, rotation = 0)));
+ equation
+ connect(order6.p, pwPin) annotation(
+ Line(points = {{44, 0}, {98, 0}, {98, 2}, {102, 2}}, color = {0, 0, 255}));
+ connect(order6.pm, order6.pm0) annotation(
+ Line(points = {{18, -6}, {10, -6}, {10, -16}, {22, -16}, {22, -12}, {22, -12}, {22, -14}}, color = {0, 0, 127}));
+ connect(AVR.vf, order6.vf) annotation(
+ Line(points = {{-7, -4}, {0, -4}, {0, 6}, {18, 6}}, color = {0, 0, 127}));
+ connect(AVR.v, order6.v) annotation(
+ Line(points = {{-38, -12}, {-48, -12}, {-48, -38}, {62, -38}, {62, 4}, {46, 4}, {46, 4}}, color = {0, 0, 127}));
+ connect(AVR.vf0, order6.vf0) annotation(
+ Line(points = {{-22, -18}, {-24, -18}, {-24, -44}, {84, -44}, {84, 20}, {22, 20}, {22, 14}, {22, 14}}, color = {0, 0, 127}));
+ connect(AVR.vref, AVR.vref0) annotation(
+ Line(points = {{-38, 4}, {-48, 4}, {-48, 18}, {-24, 18}, {-24, 10}, {-22, 10}}, color = {0, 0, 127}));
+ annotation(
+ Icon(graphics = {Ellipse(origin = {13, 7}, extent = {{-83, 67}, {83, -67}}, endAngle = 360), Line(origin = {10.7956, 12.6842}, points = {{-60.7956, -20.6842}, {-10.7956, 21.3158}, {31.2044, -12.6842}, {61.2044, 17.3158}, {61.2044, 19.3158}})}, coordinateSystem(initialScale = 0.1)),
+ Diagram);
+ end GenBus33;
+
+ model GenBus44
+ extends OpenIPSL.Electrical.Essentials.pfComponent;
+ OpenIPSL.Interfaces.PwPin pwPin annotation(
+ Placement(visible = true, transformation(origin = {102, 2}, extent = {{-10, -10}, {10, 10}}, rotation = 0), iconTransformation(origin = {102, 2}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
+ OpenIPSL.Electrical.Machines.PSAT.Order6 order6(D = 0, M = 7, P_0 = P_0, Q_0 = Q_0, Sn = 9950, T1d0 = 5.6, T1q0 = 1.1, T2d0 = 0.035, T2q0 = 0.035, Taa = 0.1, V_0 = V_0, V_b = V_b, Vn = 11, angle_0 = angle_0, e1q(fixed = true), ra = 0, v(fixed = true), x1d = 0.23, x1q = 0.23, x2d = 0.12, x2q = 0.15, xd = 1.1, xq = 1.08) annotation(
+ Placement(visible = true, transformation(origin = {32, 0}, extent = {{-12, -12}, {12, 12}}, rotation = 0)));
+ OpenIPSL.Electrical.Controls.PSAT.AVR.AVRTypeII AVR(Ae = 0.0039, Be = 1.555, Ka = 20, Ke = 1, Kf = 0.063, Ta = 0.2, Te = 0.314, Tf = 0.35, Tr = 0.001, v0 = V_0, vrmax = 5, vrmin = -5) annotation(
+ Placement(visible = true, transformation(origin = {-23, -4}, extent = {{-13, -12}, {13, 12}}, rotation = 0)));
+ equation
+ connect(order6.p, pwPin) annotation(
+ Line(points = {{44, 0}, {98, 0}, {98, 2}, {102, 2}}, color = {0, 0, 255}));
+ connect(order6.pm, order6.pm0) annotation(
+ Line(points = {{18, -6}, {10, -6}, {10, -16}, {22, -16}, {22, -12}, {22, -12}, {22, -14}}, color = {0, 0, 127}));
+ connect(AVR.vf, order6.vf) annotation(
+ Line(points = {{-7, -4}, {0, -4}, {0, 6}, {18, 6}}, color = {0, 0, 127}));
+ connect(AVR.v, order6.v) annotation(
+ Line(points = {{-38, -12}, {-48, -12}, {-48, -38}, {62, -38}, {62, 4}, {46, 4}, {46, 4}}, color = {0, 0, 127}));
+ connect(AVR.vf0, order6.vf0) annotation(
+ Line(points = {{-22, -18}, {-24, -18}, {-24, -44}, {84, -44}, {84, 20}, {22, 20}, {22, 14}, {22, 14}}, color = {0, 0, 127}));
+ connect(AVR.vref, AVR.vref0) annotation(
+ Line(points = {{-38, 4}, {-48, 4}, {-48, 18}, {-24, 18}, {-24, 10}, {-22, 10}}, color = {0, 0, 127}));
+ annotation(
+ Icon(graphics = {Ellipse(origin = {13, 7}, extent = {{-83, 67}, {83, -67}}, endAngle = 360), Line(origin = {10.7956, 12.6842}, points = {{-60.7956, -20.6842}, {-10.7956, 21.3158}, {31.2044, -12.6842}, {61.2044, 17.3158}, {61.2044, 19.3158}})}, coordinateSystem(initialScale = 0.1)),
+ Diagram);
+ end GenBus44;
+
+ model GenBus48
+ extends OpenIPSL.Electrical.Essentials.pfComponent;
+ OpenIPSL.Interfaces.PwPin pwPin annotation(
+ Placement(visible = true, transformation(origin = {102, 2}, extent = {{-10, -10}, {10, 10}}, rotation = 0), iconTransformation(origin = {102, 2}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
+ OpenIPSL.Electrical.Machines.PSAT.Order6 order6(D = 0, M = 7, P_0 = P_0, Q_0 = Q_0, Sn = 9950, T1d0 = 5.6, T1q0 = 1.1, T2d0 = 0.035, T2q0 = 0.035, Taa = 0.1, V_0 = V_0, V_b = V_b, Vn = 11, angle_0 = angle_0, e1q(fixed = true), ra = 0, v(fixed = true), x1d = 0.23, x1q = 0.23, x2d = 0.12, x2q = 0.15, xd = 1.1, xq = 1.08) annotation(
+ Placement(visible = true, transformation(origin = {32, 0}, extent = {{-12, -12}, {12, 12}}, rotation = 0)));
+ OpenIPSL.Electrical.Controls.PSAT.AVR.AVRTypeII AVR(Ae = 0.0039, Be = 1.555, Ka = 20, Ke = 1, Kf = 0.063, Ta = 0.2, Te = 0.314, Tf = 0.35, Tr = 0.001, v0 = V_0, vrmax = 5, vrmin = -5) annotation(
+ Placement(visible = true, transformation(origin = {-23, -4}, extent = {{-13, -12}, {13, 12}}, rotation = 0)));
+ equation
+ connect(order6.p, pwPin) annotation(
+ Line(points = {{44, 0}, {98, 0}, {98, 2}, {102, 2}}, color = {0, 0, 255}));
+ connect(order6.pm, order6.pm0) annotation(
+ Line(points = {{18, -6}, {10, -6}, {10, -16}, {22, -16}, {22, -12}, {22, -12}, {22, -14}}, color = {0, 0, 127}));
+ connect(AVR.vf, order6.vf) annotation(
+ Line(points = {{-7, -4}, {0, -4}, {0, 6}, {18, 6}}, color = {0, 0, 127}));
+ connect(AVR.v, order6.v) annotation(
+ Line(points = {{-38, -12}, {-48, -12}, {-48, -38}, {62, -38}, {62, 4}, {46, 4}, {46, 4}}, color = {0, 0, 127}));
+ connect(AVR.vf0, order6.vf0) annotation(
+ Line(points = {{-22, -18}, {-24, -18}, {-24, -44}, {84, -44}, {84, 20}, {22, 20}, {22, 14}, {22, 14}}, color = {0, 0, 127}));
+ connect(AVR.vref, AVR.vref0) annotation(
+ Line(points = {{-38, 4}, {-48, 4}, {-48, 18}, {-24, 18}, {-24, 10}, {-22, 10}}, color = {0, 0, 127}));
+ annotation(
+ Icon(graphics = {Ellipse(origin = {13, 7}, extent = {{-83, 67}, {83, -67}}, endAngle = 360), Line(origin = {10.7956, 12.6842}, points = {{-60.7956, -20.6842}, {-10.7956, 21.3158}, {31.2044, -12.6842}, {61.2044, 17.3158}, {61.2044, 19.3158}})}, coordinateSystem(initialScale = 0.1)),
+ Diagram);
+ end GenBus48;
+
+ model GenBus49
+ extends OpenIPSL.Electrical.Essentials.pfComponent;
+ OpenIPSL.Interfaces.PwPin pwPin annotation(
+ Placement(visible = true, transformation(origin = {102, 2}, extent = {{-10, -10}, {10, 10}}, rotation = 0), iconTransformation(origin = {102, 2}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
+ OpenIPSL.Electrical.Machines.PSAT.Order6 order6(D = 0, M = 7, P_0 = P_0, Q_0 = Q_0, Sn = 9950, T1d0 = 5.6, T1q0 = 1.1, T2d0 = 0.035, T2q0 = 0.035, Taa = 0.1, V_0 = V_0, V_b = V_b, Vn = 11, angle_0 = angle_0, e1q(fixed = true), ra = 0, v(fixed = true), x1d = 0.23, x1q = 0.23, x2d = 0.12, x2q = 0.15, xd = 1.1, xq = 1.08) annotation(
+ Placement(visible = true, transformation(origin = {32, 0}, extent = {{-12, -12}, {12, 12}}, rotation = 0)));
+ OpenIPSL.Electrical.Controls.PSAT.AVR.AVRTypeII AVR(Ae = 0.0039, Be = 1.555, Ka = 20, Ke = 1, Kf = 0.063, Ta = 0.2, Te = 0.314, Tf = 0.35, Tr = 0.001, v0 = V_0, vrmax = 5, vrmin = -5) annotation(
+ Placement(visible = true, transformation(origin = {-23, -4}, extent = {{-13, -12}, {13, 12}}, rotation = 0)));
+ equation
+ connect(order6.p, pwPin) annotation(
+ Line(points = {{44, 0}, {98, 0}, {98, 2}, {102, 2}}, color = {0, 0, 255}));
+ connect(order6.pm, order6.pm0) annotation(
+ Line(points = {{18, -6}, {10, -6}, {10, -16}, {22, -16}, {22, -12}, {22, -12}, {22, -14}}, color = {0, 0, 127}));
+ connect(AVR.vf, order6.vf) annotation(
+ Line(points = {{-7, -4}, {0, -4}, {0, 6}, {18, 6}}, color = {0, 0, 127}));
+ connect(AVR.v, order6.v) annotation(
+ Line(points = {{-38, -12}, {-48, -12}, {-48, -38}, {62, -38}, {62, 4}, {46, 4}, {46, 4}}, color = {0, 0, 127}));
+ connect(AVR.vf0, order6.vf0) annotation(
+ Line(points = {{-22, -18}, {-24, -18}, {-24, -44}, {84, -44}, {84, 20}, {22, 20}, {22, 14}, {22, 14}}, color = {0, 0, 127}));
+ connect(AVR.vref, AVR.vref0) annotation(
+ Line(points = {{-38, 4}, {-48, 4}, {-48, 18}, {-24, 18}, {-24, 10}, {-22, 10}}, color = {0, 0, 127}));
+ annotation(
+ Icon(graphics = {Ellipse(origin = {13, 7}, extent = {{-83, 67}, {83, -67}}, endAngle = 360), Line(origin = {10.7956, 12.6842}, points = {{-60.7956, -20.6842}, {-10.7956, 21.3158}, {31.2044, -12.6842}, {61.2044, 17.3158}, {61.2044, 19.3158}})}, coordinateSystem(initialScale = 0.1)),
+ Diagram);
+ end GenBus49;
+
+ model GenBus50
+ extends OpenIPSL.Electrical.Essentials.pfComponent;
+ OpenIPSL.Interfaces.PwPin pwPin annotation(
+ Placement(visible = true, transformation(origin = {102, 2}, extent = {{-10, -10}, {10, 10}}, rotation = 0), iconTransformation(origin = {102, 2}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
+ OpenIPSL.Electrical.Machines.PSAT.Order6 order6(D = 0, M = 7, P_0 = P_0, Q_0 = Q_0, Sn = 9950, T1d0 = 5.6, T1q0 = 1.1, T2d0 = 0.035, T2q0 = 0.035, Taa = 0.1, V_0 = V_0, V_b = V_b, Vn = 11, angle_0 = angle_0, e1q(fixed = true), ra = 0, v(fixed = true), x1d = 0.23, x1q = 0.23, x2d = 0.12, x2q = 0.15, xd = 1.1, xq = 1.08) annotation(
+ Placement(visible = true, transformation(origin = {32, 0}, extent = {{-12, -12}, {12, 12}}, rotation = 0)));
+ OpenIPSL.Electrical.Controls.PSAT.AVR.AVRTypeII AVR(Ae = 0.0039, Be = 1.555, Ka = 20, Ke = 1, Kf = 0.063, Ta = 0.2, Te = 0.314, Tf = 0.35, Tr = 0.001, v0 = V_0, vrmax = 5, vrmin = -5) annotation(
+ Placement(visible = true, transformation(origin = {-23, -4}, extent = {{-13, -12}, {13, 12}}, rotation = 0)));
+ equation
+ connect(order6.p, pwPin) annotation(
+ Line(points = {{44, 0}, {98, 0}, {98, 2}, {102, 2}}, color = {0, 0, 255}));
+ connect(order6.pm, order6.pm0) annotation(
+ Line(points = {{18, -6}, {10, -6}, {10, -16}, {22, -16}, {22, -12}, {22, -12}, {22, -14}}, color = {0, 0, 127}));
+ connect(AVR.vf, order6.vf) annotation(
+ Line(points = {{-7, -4}, {0, -4}, {0, 6}, {18, 6}}, color = {0, 0, 127}));
+ connect(AVR.v, order6.v) annotation(
+ Line(points = {{-38, -12}, {-48, -12}, {-48, -38}, {62, -38}, {62, 4}, {46, 4}, {46, 4}}, color = {0, 0, 127}));
+ connect(AVR.vf0, order6.vf0) annotation(
+ Line(points = {{-22, -18}, {-24, -18}, {-24, -44}, {84, -44}, {84, 20}, {22, 20}, {22, 14}, {22, 14}}, color = {0, 0, 127}));
+ connect(AVR.vref, AVR.vref0) annotation(
+ Line(points = {{-38, 4}, {-48, 4}, {-48, 18}, {-24, 18}, {-24, 10}, {-22, 10}}, color = {0, 0, 127}));
+ annotation(
+ Icon(graphics = {Ellipse(origin = {13, 7}, extent = {{-83, 67}, {83, -67}}, endAngle = 360), Line(origin = {10.7956, 12.6842}, points = {{-60.7956, -20.6842}, {-10.7956, 21.3158}, {31.2044, -12.6842}, {61.2044, 17.3158}, {61.2044, 19.3158}})}, coordinateSystem(initialScale = 0.1)),
+ Diagram);
+ end GenBus50;
+
+ model GenBus38
+ extends OpenIPSL.Electrical.Essentials.pfComponent;
+ OpenIPSL.Interfaces.PwPin pwPin annotation(
+ Placement(visible = true, transformation(origin = {102, 2}, extent = {{-10, -10}, {10, 10}}, rotation = 0), iconTransformation(origin = {102, 2}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
+ OpenIPSL.Electrical.Machines.PSAT.Order6 order6(D = 0, M = 7, P_0 = P_0, Q_0 = Q_0, Sn = 9950, T1d0 = 5.6, T1q0 = 1.1, T2d0 = 0.035, T2q0 = 0.035, Taa = 0.1, V_0 = V_0, V_b = V_b, Vn = 11, angle_0 = angle_0, e1q(fixed = true), ra = 0, v(fixed = true), x1d = 0.23, x1q = 0.23, x2d = 0.12, x2q = 0.15, xd = 1.1, xq = 1.08) annotation(
+ Placement(visible = true, transformation(origin = {32, 0}, extent = {{-12, -12}, {12, 12}}, rotation = 0)));
+ OpenIPSL.Electrical.Controls.PSAT.AVR.AVRTypeII AVR(Ae = 0.0039, Be = 1.555, Ka = 20, Ke = 1, Kf = 0.063, Ta = 0.2, Te = 0.314, Tf = 0.35, Tr = 0.001, v0 = V_0, vrmax = 5, vrmin = -5) annotation(
+ Placement(visible = true, transformation(origin = {-23, -4}, extent = {{-13, -12}, {13, 12}}, rotation = 0)));
+ equation
+ connect(order6.p, pwPin) annotation(
+ Line(points = {{44, 0}, {98, 0}, {98, 2}, {102, 2}}, color = {0, 0, 255}));
+ connect(order6.pm, order6.pm0) annotation(
+ Line(points = {{18, -6}, {10, -6}, {10, -16}, {22, -16}, {22, -12}, {22, -12}, {22, -14}}, color = {0, 0, 127}));
+ connect(AVR.vf, order6.vf) annotation(
+ Line(points = {{-7, -4}, {0, -4}, {0, 6}, {18, 6}}, color = {0, 0, 127}));
+ connect(AVR.v, order6.v) annotation(
+ Line(points = {{-38, -12}, {-48, -12}, {-48, -38}, {62, -38}, {62, 4}, {46, 4}, {46, 4}}, color = {0, 0, 127}));
+ connect(AVR.vf0, order6.vf0) annotation(
+ Line(points = {{-22, -18}, {-24, -18}, {-24, -44}, {84, -44}, {84, 20}, {22, 20}, {22, 14}, {22, 14}}, color = {0, 0, 127}));
+ connect(AVR.vref, AVR.vref0) annotation(
+ Line(points = {{-38, 4}, {-48, 4}, {-48, 18}, {-24, 18}, {-24, 10}, {-22, 10}}, color = {0, 0, 127}));
+ annotation(
+ Icon(graphics = {Ellipse(origin = {13, 7}, extent = {{-83, 67}, {83, -67}}, endAngle = 360), Line(origin = {10.7956, 12.6842}, points = {{-60.7956, -20.6842}, {-10.7956, 21.3158}, {31.2044, -12.6842}, {61.2044, 17.3158}, {61.2044, 19.3158}})}, coordinateSystem(initialScale = 0.1)),
+ Diagram);
+ end GenBus38;
+ end GenBus;
+ annotation(
+ uses(OpenIPSL(version = "1.5.0"), Modelica(version = "3.2.3")));
+
+ end Modelling_of_51_bus_system_case2;
+ annotation(
+ uses(OpenIPSL(version = "1.5.0")));
+end Modelling_of_51_bus_system;
diff --git a/Modelling_And_Simulation_Od_51-Bus_System_Using_Openipsl_By_Mr_R._Asick/project_files/REPORT.pdf b/Modelling_And_Simulation_Od_51-Bus_System_Using_Openipsl_By_Mr_R._Asick/project_files/REPORT.pdf
new file mode 100644
index 0000000..dfe0b06
Binary files /dev/null and b/Modelling_And_Simulation_Od_51-Bus_System_Using_Openipsl_By_Mr_R._Asick/project_files/REPORT.pdf differ
diff --git a/Modelling_And_Simulation_Od_51-Bus_System_Using_Openmodelica_And_Openipsl_By_Mr_R._Asick/Abstract.pdf b/Modelling_And_Simulation_Od_51-Bus_System_Using_Openmodelica_And_Openipsl_By_Mr_R._Asick/Abstract.pdf
deleted file mode 100644
index 9bac049..0000000
Binary files a/Modelling_And_Simulation_Od_51-Bus_System_Using_Openmodelica_And_Openipsl_By_Mr_R._Asick/Abstract.pdf and /dev/null differ
diff --git a/Modelling_And_Simulation_Od_51-Bus_System_Using_Openmodelica_And_Openipsl_By_Mr_R._Asick/README.txt b/Modelling_And_Simulation_Od_51-Bus_System_Using_Openmodelica_And_Openipsl_By_Mr_R._Asick/README.txt
deleted file mode 100644
index 9d17218..0000000
--- a/Modelling_And_Simulation_Od_51-Bus_System_Using_Openmodelica_And_Openipsl_By_Mr_R._Asick/README.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-About the Power System Simulation
-
-Title Of The Power System Simulation Project: Modelling and Simulation od 51-bus System using OpenModelica and OpenIPSL
-Proposar Name: Mr R. Asick
-University: St Xavier'S Catholic College Of Engineering
-
-
-OM PSSP Project By FOSSEE, IIT Bombay
diff --git a/Modelling_And_Simulation_Od_51-Bus_System_Using_Openmodelica_And_Openipsl_By_Mr_R._Asick/project_files/Modelling_of_51_bus_system.mo b/Modelling_And_Simulation_Od_51-Bus_System_Using_Openmodelica_And_Openipsl_By_Mr_R._Asick/project_files/Modelling_of_51_bus_system.mo
deleted file mode 100644
index 2d14c48..0000000
--- a/Modelling_And_Simulation_Od_51-Bus_System_Using_Openmodelica_And_Openipsl_By_Mr_R._Asick/project_files/Modelling_of_51_bus_system.mo
+++ /dev/null
@@ -1,2144 +0,0 @@
-package Modelling_of_51_bus_system
- package Modelling_of_51_bus_system_case1
- model Network
- OpenIPSL.Electrical.Buses.Bus B1(P_0 = 45.70, Q_0 = 366.71, V_0 = 1.080, V_b = 11, angle_0 = 0, displayPF = true) annotation(
- Placement(visible = true, transformation(origin = {-170, 194}, extent = {{-18, -18}, {18, 18}}, rotation = -90)));
- OpenIPSL.Electrical.Buses.Bus B49(P_0 = 350, Q_0 = 0, V_0 = 1, V_b = 11, angle_0 = 8.095, displayPF = true) annotation(
- Placement(visible = true, transformation(origin = {-50, 194}, extent = {{-16, -16}, {16, 16}}, rotation = -90)));
- OpenIPSL.Electrical.Buses.Bus B50(P_0 = 120, Q_0 = 22.41, V_0 = 1, V_b = 11, angle_0 = 8.022, displayPF = true) annotation(
- Placement(visible = true, transformation(origin = {64, 194}, extent = {{-14, -14}, {14, 14}}, rotation = -90)));
- OpenIPSL.Electrical.Buses.Bus B35(P_0 = 0, Q_0 = 0, V_0 = 0.946, V_b = 11.459, angle_0 = -1.496, displayPF = true) annotation(
- Placement(visible = true, transformation(origin = {173, 195}, extent = {{-15, -15}, {15, 15}}, rotation = -90)));
- OpenIPSL.Electrical.Buses.Bus B3(P_0 = 90, Q_0 = 50, V_0 = 0.974, V_b = 11, angle_0 = -4.817, displayPF = true) annotation(
- Placement(visible = true, transformation(origin = {259, 211}, extent = {{-17, -17}, {17, 17}}, rotation = -90)));
- OpenIPSL.Electrical.Buses.Bus B2(P_0 = 50, Q_0 = 20, V_0 = 0.967, V_b = 11, angle_0 = -4.478, displayPF = true) annotation(
- Placement(visible = true, transformation(origin = {119, 261}, extent = {{-13, -13}, {13, 13}}, rotation = -90)));
- OpenIPSL.Electrical.Buses.Bus B48(P_0 = 55, Q_0 = 7.55, V_0 = 1, V_b = 11, angle_0 = -1.141, displayPF = true) annotation(
- Placement(visible = true, transformation(origin = {81, 311}, extent = {{-15, -15}, {15, 15}}, rotation = -90)));
- OpenIPSL.Electrical.Buses.Bus B4(P_0 = 0, Q_0 = 0, V_0 = 0.974, V_b = 11, angle_0 = -4.843, displayPF = true) annotation(
- Placement(visible = true, transformation(origin = {268, 264}, extent = {{-16, -16}, {16, 16}}, rotation = -90)));
- OpenIPSL.Electrical.Buses.Bus B5(P_0 = 11.90, Q_0 = 0, V_0 = 0.901, V_b = 248.4, angle_0 = -6.593, displayPF = true) annotation(
- Placement(visible = true, transformation(origin = {272, 320}, extent = {{-14, -14}, {14, 14}}, rotation = -90)));
- OpenIPSL.Electrical.Buses.Bus B34(P_0 = 58, Q_0 = 26, V_0 = 0.986, V_b = 11.9625, angle_0 = -4.330, displayPF = true) annotation(
- Placement(visible = true, transformation(origin = {-257, 213}, extent = {{-15, -15}, {15, 15}}, rotation = -90)));
- OpenIPSL.Electrical.Buses.Bus B32(P_0 = 30, Q_0 = 17, V_0 = 0.986, V_b = 11, angle_0 = -10.058, displayPF = true) annotation(
- Placement(visible = true, transformation(origin = {-338, 210}, extent = {{-14, -14}, {14, 14}}, rotation = -90)));
- OpenIPSL.Electrical.Buses.Bus B51(P_0 = 50, Q_0 = 30, V_0 = 0.979, V_b = 11, angle_0 = -12.199, displayPF = true) annotation(
- Placement(visible = true, transformation(origin = {-398, 250}, extent = {{-16, -16}, {16, 16}}, rotation = -90)));
- OpenIPSL.Electrical.Buses.Bus B33(P_0 = 50, Q_0 = 25.97, V_0 = 1, V_b = 11, angle_0 = -10.479, displayPF = true) annotation(
- Placement(visible = true, transformation(origin = {-349, 313}, extent = {{-15, -15}, {15, 15}}, rotation = -90)));
- OpenIPSL.Electrical.Buses.Bus B30(P_0 = 47, Q_0 = 66.16, V_0 = 1, V_b = 11, angle_0 = -12.890, displayPF = true) annotation(
- Placement(visible = true, transformation(origin = {-333, 123}, extent = {{-17, -17}, {17, 17}}, rotation = -90)));
- OpenIPSL.Electrical.Buses.Bus B46(P_0 = 0, Q_0 = 0, V_0 = 0.944, V_b = 11.825, angle_0 = -10.375, displayPF = true) annotation(
- Placement(visible = true, transformation(origin = {-239, 145}, extent = {{-17, -17}, {17, 17}}, rotation = -90)));
- OpenIPSL.Electrical.Buses.Bus B6(P_0 = 19, Q_0 = 10, V_0 = 0.950, V_b = 11, angle_0 = -6.180, displayPF = true) annotation(
- Placement(visible = true, transformation(origin = {267, 149}, extent = {{-15, -15}, {15, 15}}, rotation = -90)));
- OpenIPSL.Electrical.Buses.Bus B7(P_0 = 33, Q_0 = 62.54, V_0 = 1, V_b = 11, angle_0 = -4.872, displayPF = true) annotation(
- Placement(visible = true, transformation(origin = {267, 97}, extent = {{-15, -15}, {15, 15}}, rotation = -90)));
- OpenIPSL.Electrical.Buses.Bus B8(P_0 = 44, Q_0 = 24, V_0 = 0.992, V_b = 11, angle_0 = -5.311, displayPF = true) annotation(
- Placement(visible = true, transformation(origin = {272, 46}, extent = {{-14, -14}, {14, 14}}, rotation = -90)));
- OpenIPSL.Electrical.Buses.Bus B9(P_0 = 22, Q_0 = 12, V_0 = 0.994, V_b = 11, angle_0 = -5.307, displayPF = true) annotation(
- Placement(visible = true, transformation(origin = {273, -7}, extent = {{-15, -15}, {15, 15}}, rotation = -90)));
- OpenIPSL.Electrical.Buses.Bus B10(P_0 = 21, Q_0 = 12, V_0 = 1.004, V_b = 11, angle_0 = -4.889, displayPF = true) annotation(
- Placement(visible = true, transformation(origin = {276, -60}, extent = {{-16, -16}, {16, 16}}, rotation = -90)));
- OpenIPSL.Electrical.Buses.Bus B11(P_0 = 34, Q_0 = 5, V_0 = 1.025, V_b = 11, angle_0 = -3.998, displayPF = true) annotation(
- Placement(visible = true, transformation(origin = {280, -118}, extent = {{-16, -16}, {16, 16}}, rotation = -90)));
- OpenIPSL.Electrical.Buses.Bus B12(P_0 = 24, Q_0 = 13.60, V_0 = 1.002, V_b = 11, angle_0 = -4.124, displayPF = true) annotation(
- Placement(visible = true, transformation(origin = {280, -164}, extent = {{-16, -16}, {16, 16}}, rotation = -90)));
- OpenIPSL.Electrical.Buses.Bus B13(P_0 = 19, Q_0 = 11, V_0 = 0.995, V_b = 11, angle_0 = -4.224, displayPF = true) annotation(
- Placement(visible = true, transformation(origin = {283, -213}, extent = {{-15, -15}, {15, 15}}, rotation = -90)));
- OpenIPSL.Electrical.Buses.Bus B14(P_0 = 19, Q_0 = 4, V_0 = 1.016, V_b = 11, angle_0 = -2.856, displayPF = true) annotation(
- Placement(visible = true, transformation(origin = {288, -264}, extent = {{-14, -14}, {14, 14}}, rotation = -90)));
- OpenIPSL.Electrical.Buses.Bus B15(P_0 = 24, Q_0 = -16.23, V_0 = 1, V_b = 11, angle_0 = -1.049, displayPF = true) annotation(
- Placement(visible = true, transformation(origin = {286, -330}, extent = {{-16, -16}, {16, 16}}, rotation = -90)));
- OpenIPSL.Electrical.Buses.Bus B16(P_0 = 54, Q_0 = 30, V_0 = 0.987, V_b = 11, angle_0 = -2.053, displayPF = true) annotation(
- Placement(visible = true, transformation(origin = {160, -300}, extent = {{-14, -14}, {14, 14}}, rotation = -90)));
- OpenIPSL.Electrical.Buses.Bus B17(P_0 = 46, Q_0 = 4.20, V_0 = 1, V_b = 11, angle_0 = -7.675, displayPF = true) annotation(
- Placement(visible = true, transformation(origin = {52, -336}, extent = {{-14, -14}, {14, 14}}, rotation = -90)));
- OpenIPSL.Electrical.Buses.Bus B18(P_0 = 37, Q_0 = 22, V_0 = 0.971, V_b = 11, angle_0 = -10.625, displayPF = true) annotation(
- Placement(visible = true, transformation(origin = {-32, -330}, extent = {{-14, -14}, {14, 14}}, rotation = -90)));
- OpenIPSL.Electrical.Buses.Bus B40(P_0 = 0, Q_0 = 0, V_0 = 0.901, V_b = 11.99, angle_0 = -10.349, displayPF = true) annotation(
- Placement(visible = true, transformation(origin = {-36, -278}, extent = {{-14, -14}, {14, 14}}, rotation = -90)));
- OpenIPSL.Electrical.Buses.Bus B19(P_0 = 31, Q_0 = 14.77, V_0 = 1, V_b = 11, angle_0 = -10.672, displayPF = true) annotation(
- Placement(visible = true, transformation(origin = {-137, -181}, extent = {{-15, -15}, {15, 15}}, rotation = -90)));
- OpenIPSL.Electrical.Buses.Bus B44(P_0 = 175, Q_0 = 50.26, V_0 = 1, V_b = 11, angle_0 = -2.273, displayPF = true) annotation(
- Placement(visible = true, transformation(origin = {-131, 101}, extent = {{-15, -15}, {15, 15}}, rotation = -90)));
- OpenIPSL.Electrical.Buses.Bus B29(P_0 = 25, Q_0 = 13, V_0 = 0.977, V_b = 11, angle_0 = -14.103, displayPF = true) annotation(
- Placement(visible = true, transformation(origin = {-394, 86}, extent = {{-14, -14}, {14, 14}}, rotation = -90)));
- OpenIPSL.Electrical.Buses.Bus B28(P_0 = 80, Q_0 = 36, V_0 = 0.961, V_b = 11, angle_0 = -14.919, displayPF = true) annotation(
- Placement(visible = true, transformation(origin = {-434, 36}, extent = {{-14, -14}, {14, 14}}, rotation = -90)));
- OpenIPSL.Electrical.Buses.Bus B31(P_0 = 42, Q_0 = 18, V_0 = 0.980, V_b = 11, angle(fixed = false), angle_0 = -13.859, displayPF = true) annotation(
- Placement(visible = true, transformation(origin = {-334, 34}, extent = {{-14, -14}, {14, 14}}, rotation = -90)));
- OpenIPSL.Electrical.Buses.Bus B45(P_0 = 0, Q_0 = 0, V_0 = 0.938, V_b = 11.66, angle_0 = -10.481, displayPF = true) annotation(
- Placement(visible = true, transformation(origin = {-240, -1.42109e-14}, extent = {{-14, -14}, {14, 14}}, rotation = -90)));
- OpenIPSL.Electrical.Buses.Bus B26(P_0 = 28, Q_0 = 14, V_0 = 1.049, V_b = 247.25, angle_0 = -5.080, displayPF = true) annotation(
- Placement(visible = true, transformation(origin = {-130, 44}, extent = {{-16, -16}, {16, 16}}, rotation = -90)));
- OpenIPSL.Electrical.Buses.Bus B43(P_0 = 0, Q_0 = 0, V_0 = 0.955, V_b = 11.825, angle_0 = -6.627, displayPF = true) annotation(
- Placement(visible = true, transformation(origin = {-122, -38}, extent = {{-16, -16}, {16, 16}}, rotation = 90)));
- OpenIPSL.Electrical.Buses.Bus B24(P_0 = 8, Q_0 = 2, V_0 = 1.006, V_b = 11, angle_0 = -9.213, displayPF = true) annotation(
- Placement(visible = true, transformation(origin = {-117, -91}, extent = {{-15, -15}, {15, 15}}, rotation = -90)));
- OpenIPSL.Electrical.Buses.Bus B23(P_0 = 42, Q_0 = 23, V_0 = 0.922, V_b = 11, angle_0 = -13.936, displayPF = true) annotation(
- Placement(visible = true, transformation(origin = {-224, -118}, extent = {{-14, -14}, {14, 14}}, rotation = -90)));
- OpenIPSL.Electrical.Buses.Bus B22(P_0 = 17, Q_0 = 8, V_0 = 0.814, V_b = 11.66, angle_0 = -19.831, displayPF = true) annotation(
- Placement(visible = true, transformation(origin = {-316, -184}, extent = {{-14, -14}, {14, 14}}, rotation = -90)));
- OpenIPSL.Electrical.Buses.Bus B20(P_0 = 34, Q_0 = 16, V_0 = 0.942, V_b = 11, angle_0 = -13.346, displayPF = true) annotation(
- Placement(visible = true, transformation(origin = {-232, -268}, extent = {{-14, -14}, {14, 14}}, rotation = -90)));
- OpenIPSL.Electrical.Buses.Bus B27(P_0 = 76, Q_0 = 25, V_0 = 0.973, V_b = 11, angle_0 = -13.898, displayPF = true) annotation(
- Placement(visible = true, transformation(origin = {-343, -31}, extent = {{-15, -15}, {15, 15}}, rotation = -90)));
- OpenIPSL.Electrical.Buses.Bus B41(P_0 = 0, Q_0 = 0, V_0 = 0.930, V_b = 11.99, angle_0 = -9.717, displayPF = true) annotation(
- Placement(visible = true, transformation(origin = {-136, -238}, extent = {{-14, -14}, {14, 14}}, rotation = -90)));
- OpenIPSL.Electrical.Buses.Bus B21(P_0 = 0, Q_0 = 0, V_0 = 0.891, V_b = 11, angle_0 = -16.269, displayPF = true) annotation(
- Placement(visible = true, transformation(origin = {-313, -239}, extent = {{-15, -15}, {15, 15}}, rotation = -90)));
- OpenIPSL.Electrical.Buses.Bus B42(P_0 = 0, Q_0 = 0, V_0 = 0.908, V_b = 11.66, angle_0 = -10.861, displayPF = true) annotation(
- Placement(visible = true, transformation(origin = {-234, -308}, extent = {{-16, -16}, {16, 16}}, rotation = -90)));
- OpenIPSL.Electrical.Buses.Bus B25(P_0 = 11, Q_0 = 6, V_0 = 1.039, V_b = 11, angle_0 = -5.159, displayPF = true) annotation(
- Placement(visible = true, transformation(origin = {-8, 10}, extent = {{-14, -14}, {14, 14}}, rotation = -90)));
- OpenIPSL.Electrical.Buses.Bus B37(P_0 = 0, Q_0 = 0, V_0 = 0.995, V_b = 11.55, angle_0 = -0.633, displayPF = true) annotation(
- Placement(visible = true, transformation(origin = {166, -74}, extent = {{-16, -16}, {16, 16}}, rotation = -90)));
- OpenIPSL.Electrical.Buses.Bus B38(P_0 = 170, Q_0 = 0, V_0 = 1, V_b = 11, angle_0 = -0.160, displayPF = true) annotation(
- Placement(visible = true, transformation(origin = {82, -70}, extent = {{-14, -14}, {14, 14}}, rotation = -90)));
- OpenIPSL.Electrical.Buses.Bus B47(P_0 = 0, Q_0 = 0, V_0 = 0.971, V_b = 11.66, angle_0 = -1.755, displayPF = true) annotation(
- Placement(visible = true, transformation(origin = {199, -245}, extent = {{-15, -15}, {15, 15}}, rotation = -90)));
- OpenIPSL.Electrical.Buses.Bus B36(P_0 = 0, Q_0 = 0, V_0 = 0.963, V_b = 11.495, angle_0 = -3.246, displayPF = true) annotation(
- Placement(visible = true, transformation(origin = {181, 73}, extent = {{-15, -15}, {15, 15}}, rotation = -90)));
- OpenIPSL.Electrical.Branches.PwLine pwLine2_3_1(B = 0.0322, G = 0, R = 0.0287, X = 0.0747) annotation(
- Placement(visible = true, transformation(origin = {172, 236}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- OpenIPSL.Electrical.Branches.PwLine pwLine2_3_2(B = 0.0322, G = 0, R = 0.0287, X = 0.0747, displayPF = false) annotation(
- Placement(visible = true, transformation(origin = {172, 250}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- OpenIPSL.Electrical.Branches.PwLine pwLine3_4_1(B = 0.0015, G = 0, R = 0.0028, X = 0.0036) annotation(
- Placement(visible = true, transformation(origin = {262, 238}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
- OpenIPSL.Electrical.Branches.PwLine pwLine3_4_2(B = 0.0015, G = 0, R = 0.0028, X = 0.0036) annotation(
- Placement(visible = true, transformation(origin = {276, 238}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
- OpenIPSL.Electrical.Branches.PwLine pwLine3_6(B = 0.0558, G = 0, R = 0.0614, X = 0.1400) annotation(
- Placement(visible = true, transformation(origin = {270, 180}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
- OpenIPSL.Electrical.Branches.PwLine pwLine3_7(B = 0.0397, G = 0, R = 0.0247, X = 0.0560) annotation(
- Placement(visible = true, transformation(origin = {238, 152}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
- OpenIPSL.Electrical.Branches.PwLine pwLine7_8_1(B = 0.0091, G = 0, R = 0.0098, X = 0.0224) annotation(
- Placement(visible = true, transformation(origin = {280, 72}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
- OpenIPSL.Electrical.Branches.PwLine pwLine7_8_2(B = 0.0091, G = 0, R = 0.0098, X = 0.0224) annotation(
- Placement(visible = true, transformation(origin = {264, 72}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
- OpenIPSL.Electrical.Branches.PwLine pwLine8_9_1(B = 0.0174, G = 0, R = 0.0190, X = 0.0431) annotation(
- Placement(visible = true, transformation(origin = {280, 18}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
- OpenIPSL.Electrical.Branches.PwLine pwLine8_9_2(B = 0.0174, G = 0, R = 0.0190, X = 0.0431) annotation(
- Placement(visible = true, transformation(origin = {262, 18}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
- OpenIPSL.Electrical.Branches.PwLine pwLine9_10_1(B = 0.0167, G = 0, R = 0.0182, X = 0.0413) annotation(
- Placement(visible = true, transformation(origin = {286, -34}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
- OpenIPSL.Electrical.Branches.PwLine pwLine9_10_2(B = 0.0167, G = 0, R = 0.0182, X = 0.0413) annotation(
- Placement(visible = true, transformation(origin = {270, -34}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
- OpenIPSL.Electrical.Branches.PwLine pwLine10_11_1(B = 0.0190, G = 0, R = 0.0205, X = 0.0468) annotation(
- Placement(visible = true, transformation(origin = {284, -86}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
- OpenIPSL.Electrical.Branches.PwLine pwLine10_11_2(B = 0.0190, G = 0, R = 0.0205, X = 0.0468) annotation(
- Placement(visible = true, transformation(origin = {268, -88}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
- OpenIPSL.Electrical.Branches.PwLine pwLine11_12_1(B = 0.0060, G = 0, R = 0.0660, X = 0.0150) annotation(
- Placement(visible = true, transformation(origin = {288, -138}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
- OpenIPSL.Electrical.Branches.PwLine pwLine11_12_2(B = 0.0060, G = 0, R = 0.0660, X = 0.0150) annotation(
- Placement(visible = true, transformation(origin = {272, -138}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
- OpenIPSL.Electrical.Branches.PwLine pwLine12_13_1(B = 0.0088, G = 0, R = 0.0455, X = 0.0642) annotation(
- Placement(visible = true, transformation(origin = {280, -192}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
- OpenIPSL.Electrical.Branches.PwLine pwLine13_14_1(B = 0.0213, G = 0, R = 0.1182, X = 0.2360) annotation(
- Placement(visible = true, transformation(origin = {282, -232}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
- OpenIPSL.Electrical.Branches.PwLine pwLine14_15_1(B = 0.0267, G = 0, R = 0.0214, X = 0.2743) annotation(
- Placement(visible = true, transformation(origin = {288, -300}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
- OpenIPSL.Electrical.Branches.PwLine pwLine15_16(B = 0.0059, G = 0, R = 0.1336, X = 0.0525) annotation(
- Placement(visible = true, transformation(origin = {224, -306}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
- OpenIPSL.Electrical.Branches.PwLine pwLine16_17(B = 0.0367, G = 0, R = 0.0580, X = 0.3532) annotation(
- Placement(visible = true, transformation(origin = {112, -334}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
- OpenIPSL.Electrical.Branches.PwLine pwLine17_18(B = 0.0168, G = 0, R = 0.1550, X = 0.1532) annotation(
- Placement(visible = true, transformation(origin = {8, -358}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- OpenIPSL.Electrical.Branches.PwLine pwLine18_19(B = 0.0350, G = 0, R = 0.1550, X = 0.3639) annotation(
- Placement(visible = true, transformation(origin = {-82, -282}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
- OpenIPSL.Electrical.Branches.PwLine pwLine19_20(B = 0.0371, G = 0, R = 0.1640, X = 0.3815) annotation(
- Placement(visible = true, transformation(origin = {-196, -216}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
- OpenIPSL.Electrical.Branches.PwLine pwLine20_21(B = 0.0300, G = 0, R = 0.1136, X = 0.3060) annotation(
- Placement(visible = true, transformation(origin = {-270, -256}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- OpenIPSL.Electrical.Branches.PwLine pwLine20_23(B = 0.0210, G = 0, R = 0.0781, X = 0.2000) annotation(
- Placement(visible = true, transformation(origin = {-232, -200}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
- OpenIPSL.Electrical.Branches.PwLine pwLine23_24(B = 0.0282, G = 0, R = 0.1033, X = 0.2606) annotation(
- Placement(visible = true, transformation(origin = {-170, -100}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- OpenIPSL.Electrical.Branches.PwLine pwLine12_25(B = 0.0283, G = 0, R = 0.0866, X = 0.2847) annotation(
- Placement(visible = true, transformation(origin = {46, -126}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- OpenIPSL.Electrical.Branches.PwLine pwLine25_26(B = 0.0060, G = 0, R = 0.0159, X = 0.0508) annotation(
- Placement(visible = true, transformation(origin = {-68, 22}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- OpenIPSL.Electrical.Branches.PwLine pwLine26_27(B = 0.0296, G = 0, R = 0.0872, X = 0.2870) annotation(
- Placement(visible = true, transformation(origin = {-252, -52}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- OpenIPSL.Electrical.Branches.PwLine pwLine27_28(B = 0.0045, G = 0, R = 0.0136, X = 0.0436) annotation(
- Placement(visible = true, transformation(origin = {-400, -2}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- OpenIPSL.Electrical.Branches.PwLine pwLine28_29(B = 0.0045, G = 0, R = 0.0136, X = 0.0436) annotation(
- Placement(visible = true, transformation(origin = {-414, 64}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- OpenIPSL.Electrical.Branches.PwLine pwLine29_30(B = 0.0041, G = 0, R = 0.0125, X = 0.0400) annotation(
- Placement(visible = true, transformation(origin = {-366, 108}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- OpenIPSL.Electrical.Branches.PwLine pwLine30_31(B = 0.0045, G = 0, R = 0.0136, X = 0.0436) annotation(
- Placement(visible = true, transformation(origin = {-328, 80}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
- OpenIPSL.Electrical.Branches.PwLine pwLine27_31(B = 0.0045, G = 0, R = 0.0136, X = 0.0436) annotation(
- Placement(visible = true, transformation(origin = {-340, 6}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
- OpenIPSL.Electrical.Branches.PwLine pwLine30_32(B = 0.0712, G = 0, R = 0.0533, X = 0.1636) annotation(
- Placement(visible = true, transformation(origin = {-338, 164}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
- OpenIPSL.Electrical.Branches.PwLine pwLine32_33(B = 0.0420, G = 0, R = 0.0311, X = 0.1000) annotation(
- Placement(visible = true, transformation(origin = {-344, 264}, extent = {{-10, -10}, {10, 10}}, rotation = 90)));
- OpenIPSL.Electrical.Branches.PwLine pwLine32_34_1(B = 0.0650, G = 0, R = 0.0471, X = 0.1511) annotation(
- Placement(visible = true, transformation(origin = {-298, 242}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- OpenIPSL.Electrical.Branches.PwLine pwLine32_34_2(B = 0.0650, G = 0, R = 0.0471, X = 0.1511) annotation(
- Placement(visible = true, transformation(origin = {-296, 260}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- OpenIPSL.Electrical.Branches.PwLine pwLine30_51(B = 0.0734, G = 0, R = 0.0667, X = 0.1765) annotation(
- Placement(visible = true, transformation(origin = {-398, 188}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
- OpenIPSL.Electrical.Branches.PwLine pwLine51_33(B = 0.0256, G = 0, R = 0.011, X = 0.0622) annotation(
- Placement(visible = true, transformation(origin = {-376, 282}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- OpenIPSL.Electrical.Branches.PwLine pwLine35_50(B = 0.0954, G = 0, R = 0.0240, X = 0.1326) annotation(
- Placement(visible = true, transformation(origin = {120, 168}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- OpenIPSL.Electrical.Branches.PwLine pwLine35_36(B = 0.1146, G = 0, R = 0.0266, X = 0.1418) annotation(
- Placement(visible = true, transformation(origin = {182, 136}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
- OpenIPSL.Electrical.Branches.PwLine pwLine36_38(B = 0.1078, G = 0, R = 0.0252, X = 0.1366) annotation(
- Placement(visible = true, transformation(origin = {100, 24}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- OpenIPSL.Electrical.Branches.PwLine pwLine38_1(B = 0.0794, G = 0, R = 0.0200, X = 0.1107) annotation(
- Placement(visible = true, transformation(origin = {8, 98}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- OpenIPSL.Electrical.Branches.PwLine pwLine38_47(B = 0.0869, G = 0, R = 0.0202, X = 0.1076) annotation(
- Placement(visible = true, transformation(origin = {148, -160}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- OpenIPSL.Electrical.Branches.PwLine pwLine47_43(B = 0.1078, G = 0, R = 0.0250, X = 0.1336) annotation(
- Placement(visible = true, transformation(origin = {124, -202}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- OpenIPSL.Electrical.Branches.PwLine pwLine42_43(B = 0.1281, G = 0, R = 0.0298, X = 0.1584) annotation(
- Placement(visible = true, transformation(origin = {-380, -208}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
- OpenIPSL.Electrical.Branches.PwLine pwLine40_41(B = 0.1008, G = 0, R = 0.0254, X = 0.1400) annotation(
- Placement(visible = true, transformation(origin = {-64, -254}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- OpenIPSL.Electrical.Branches.PwLine pwLine41_43(B = 0.1297, G = 0, R = 0.0326, X = 0.1807) annotation(
- Placement(visible = true, transformation(origin = {-60, -114}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
- OpenIPSL.Electrical.Branches.PwLine pwLine43_45(B = 0.1011, G = 0, R = 0.0236, X = 0.1252) annotation(
- Placement(visible = true, transformation(origin = {-196, -20}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- OpenIPSL.Electrical.Branches.PwLine pwLine43_44(B = 0.0513, G = 0, R = 0.0129, X = 0.0715) annotation(
- Placement(visible = true, transformation(origin = {-88, 52}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
- OpenIPSL.Electrical.Branches.PwLine pwLine45_46(B = 0.0236, G = 0, R = 0.0054, X = 0.0292) annotation(
- Placement(visible = true, transformation(origin = {-236, 74}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
- OpenIPSL.Electrical.Branches.PwLine pwLine44_1(B = 0.1306, G = 0, R = 0.0330, X = 0.1818) annotation(
- Placement(visible = true, transformation(origin = {-170, 130}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
- OpenIPSL.Electrical.Branches.PwLine pwLine46_1(B = 0.1686, G = 0, R = 0.0343, X = 0.2087) annotation(
- Placement(visible = true, transformation(origin = {-214, 176}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- OpenIPSL.Electrical.Branches.PwLine pwLine1_49(B = 0.1752, G = 0, R = 0.0110, X = 0.0597) annotation(
- Placement(visible = true, transformation(origin = {-106, 174}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- OpenIPSL.Electrical.Branches.PwLine pwLine49_50(B = 0.0272, G = 0, R = 0.0071, X = 0.0400) annotation(
- Placement(visible = true, transformation(origin = {10, 170}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- OpenIPSL.Electrical.Branches.PwLine pwLine37_38(B = 0.0246, G = 0, R = 0.0014, X = 0.0077) annotation(
- Placement(visible = true, transformation(origin = {132, -94}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- OpenIPSL.Electrical.Branches.PwLine pwLine47_39(B = 0.0879, G = 0, R = 0.0203, X = 0.1093) annotation(
- Placement(visible = true, transformation(origin = {200, -312}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
- OpenIPSL.Electrical.Branches.PwLine pwLine48_2_1(B = 0.0460, G = 0, R = 0.0426, X = 0.1100) annotation(
- Placement(visible = true, transformation(origin = {98, 276}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- OpenIPSL.Electrical.Branches.PwLine pwLine48_2_2(B = 0.0460, G = 0, R = 0.0426, X = 0.1100) annotation(
- Placement(visible = true, transformation(origin = {100, 288}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- OpenIPSL.Electrical.Branches.PSAT.TwoWindingTransformer T_27_45(Sn = 100, V_b = 11, Vn = 11, kT = 1.0600, r = 0, x = 0.0900) annotation(
- Placement(visible = true, transformation(origin = {-302, -10}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- OpenIPSL.Electrical.Loads.PSAT.LOADPQ LD1(Angle_V(displayUnit = "rad"), P_0 = 50, Q_0 = 20, V_0 = 0.967, V_b = 11, angle_0 = -4.478, forcePQ = true) annotation(
- Placement(visible = true, transformation(origin = {90, 238}, extent = {{-8, -8}, {8, 8}}, rotation = 0)));
- OpenIPSL.Electrical.Loads.PSAT.LOADPQ LD2(Angle_V(displayUnit = "rad"), P_0 = 90, Q_0 = 50, V_0 = 0.974, V_b = 11, angle_0 = -4.817, forcePQ = true) annotation(
- Placement(visible = true, transformation(origin = {306, 182}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- OpenIPSL.Electrical.Loads.PSAT.LOADPQ LD3(Angle_V(displayUnit = "rad"), P_0 = 11.90, Q_0 = 0, V_0 = 0.901, V_b = 248.4, angle_0 = -6.593, forcePQ = true) annotation(
- Placement(visible = true, transformation(origin = {272, 352}, extent = {{-10, -10}, {10, 10}}, rotation = 180)));
- OpenIPSL.Electrical.Loads.PSAT.LOADPQ LD4(Angle_V(displayUnit = "rad"), P_0 = 19, Q_0 = 10, V_0 = 0.950, V_b = 11, angle_0 = -6.180, forcePQ = true) annotation(
- Placement(visible = true, transformation(origin = {320, 124}, extent = {{-8, -8}, {8, 8}}, rotation = 0)));
- OpenIPSL.Electrical.Loads.PSAT.LOADPQ LD5(Angle_V(displayUnit = "rad"), P_0 = 33, Q_0 = 18, V_0 = 1, V_b = 11, angle_0 = -4.872, forcePQ = true) annotation(
- Placement(visible = true, transformation(origin = {320, 72}, extent = {{-8, -8}, {8, 8}}, rotation = 0)));
- OpenIPSL.Electrical.Loads.PSAT.LOADPQ LD6(Angle_V(displayUnit = "rad"), P_0 = 44, Q_0 = 24, V_0 = 0.992, V_b = 11, angle_0 = -5.311, forcePQ = true) annotation(
- Placement(visible = true, transformation(origin = {312, 18}, extent = {{-8, -8}, {8, 8}}, rotation = 0)));
- OpenIPSL.Electrical.Loads.PSAT.LOADPQ LD7(Angle_V(displayUnit = "rad"), P_0 = 22, Q_0 = 12, V_0 = 0.994, V_b = 11, angle_0 = -5.307, forcePQ = true) annotation(
- Placement(visible = true, transformation(origin = {322, -34}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- OpenIPSL.Electrical.Loads.PSAT.LOADPQ LD8(Angle_V(displayUnit = "rad"), P_0 = 21, Q_0 = 12, V_0 = 1.004, V_b = 11, angle_0 = -4.889, forcePQ = true) annotation(
- Placement(visible = true, transformation(origin = {326, -86}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- OpenIPSL.Electrical.Loads.PSAT.LOADPQ LD9(Angle_V(displayUnit = "rad"), P_0 = 34, Q_0 = 5, V_0 = 1.025, V_b = 11, angle_0 = -3.998, forcePQ = true) annotation(
- Placement(visible = true, transformation(origin = {327, -143}, extent = {{-11, -11}, {11, 11}}, rotation = 0)));
- OpenIPSL.Electrical.Loads.PSAT.LOADPQ LD10(Angle_V(displayUnit = "rad"), P_0 = 24, Q_0 = 13.60, V_0 = 1.002, V_b = 11, angle_0 = -4.124, forcePQ = true) annotation(
- Placement(visible = true, transformation(origin = {322, -192}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- OpenIPSL.Electrical.Loads.PSAT.LOADPQ LD11(Angle_V(displayUnit = "rad"), P_0 = 19, Q_0 = 11, V_0 = 0.995, V_b = 11, angle_0 = -4.224, forcePQ = true) annotation(
- Placement(visible = true, transformation(origin = {336, -244}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- OpenIPSL.Electrical.Loads.PSAT.LOADPQ LD12(Angle_V(displayUnit = "rad"), P_0 = 19, Q_0 = 4, V_0 = 1.016, V_b = 11, angle_0 = -2.856, forcePQ = true) annotation(
- Placement(visible = true, transformation(origin = {325, -295}, extent = {{-11, -11}, {11, 11}}, rotation = 0)));
- OpenIPSL.Electrical.Loads.PSAT.LOADPQ LD13(Angle_V(displayUnit = "rad"), P_0 = 54, Q_0 = 30, V_0 = 0.987, V_b = 11, angle_0 = -2.053, forcePQ = true) annotation(
- Placement(visible = true, transformation(origin = {142, -264}, extent = {{-10, -10}, {10, 10}}, rotation = 180)));
- OpenIPSL.Electrical.Loads.PSAT.LOADPQ LD14(Angle_V(displayUnit = "rad"), P_0 = 46, Q_0 = 21, V_0 = 1, V_b = 11, angle_0 = -7.675, forcePQ = true) annotation(
- Placement(visible = true, transformation(origin = {52, -376}, extent = {{-14, -14}, {14, 14}}, rotation = 0)));
- OpenIPSL.Electrical.Loads.PSAT.LOADPQ LD15(Angle_V(displayUnit = "rad"), P_0 = 37, Q_0 = 22, V_0 = 0.971, V_b = 11, angle_0 = -10.625, forcePQ = true) annotation(
- Placement(visible = true, transformation(origin = {-32, -376}, extent = {{-12, -12}, {12, 12}}, rotation = 0)));
- OpenIPSL.Electrical.Loads.PSAT.LOADPQ LD16(Angle_V(displayUnit = "rad"), P_0 = 31, Q_0 = 2, V_0 = 1, V_b = 11, angle_0 = -10.672, forcePQ = true) annotation(
- Placement(visible = true, transformation(origin = {-166, -228}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- OpenIPSL.Electrical.Loads.PSAT.LOADPQ LD17(Angle_V(displayUnit = "rad"), P_0 = 34, Q_0 = 16, V_0 = 0.942, V_b = 11, angle_0 = -13.346, forcePQ = true) annotation(
- Placement(visible = true, transformation(origin = {-190, -306}, extent = {{-12, -12}, {12, 12}}, rotation = 0)));
- OpenIPSL.Electrical.Loads.PSAT.LOADPQ LD18(Angle_V(displayUnit = "rad"), P_0 = 17, Q_0 = 8, V_0 = 0.814, V_b = 11.66, angle_0 = -19.831, forcePQ = true) annotation(
- Placement(visible = true, transformation(origin = {-310, -146}, extent = {{-10, -10}, {10, 10}}, rotation = 180)));
- OpenIPSL.Electrical.Loads.PSAT.LOADPQ LD19(Angle_V(displayUnit = "rad"), P_0 = 42, Q_0 = 23, V_0 = 0.922, V_b = 11, angle_0 = -13.936, forcePQ = true) annotation(
- Placement(visible = true, transformation(origin = {-200, -160}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- OpenIPSL.Electrical.Loads.PSAT.LOADPQ LD20(Angle_V(displayUnit = "rad"), P_0 = 8, Q_0 = 2, V_0 = 1.006, V_b = 11, angle_0 = -9.213, forcePQ = true) annotation(
- Placement(visible = true, transformation(origin = {-104, -124}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- OpenIPSL.Electrical.Loads.PSAT.LOADPQ LD21(Angle_V(displayUnit = "rad"), P_0 = 11, Q_0 = 6, V_0 = 1.039, V_b = 11, angle_0 = -5.159, forcePQ = true) annotation(
- Placement(visible = true, transformation(origin = {18, -30}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- OpenIPSL.Electrical.Loads.PSAT.LOADPQ LD22(Angle_V(displayUnit = "rad"), P_0 = 28, Q_0 = 14, V_0 = 1.049, V_b = 247.25, angle_0 = -5.080, forcePQ = true) annotation(
- Placement(visible = true, transformation(origin = {-127, 3}, extent = {{-11, -11}, {11, 11}}, rotation = 0)));
- OpenIPSL.Electrical.Loads.PSAT.LOADPQ LD23(Angle_V(displayUnit = "rad"), P_0 = 76, Q_0 = 25, V_0 = 0.973, V_b = 11, angle_0 = -13.898, forcePQ = true) annotation(
- Placement(visible = true, transformation(origin = {-412, -64}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- OpenIPSL.Electrical.Loads.PSAT.LOADPQ LD24(Angle_V(displayUnit = "rad"), P_0 = 80, Q_0 = 36, V_0 = 0.961, V_b = 11, angle_0 = -14.919, forcePQ = true) annotation(
- Placement(visible = true, transformation(origin = {-457, -7}, extent = {{-13, -13}, {13, 13}}, rotation = 0)));
- OpenIPSL.Electrical.Loads.PSAT.LOADPQ LD25(Angle_V(displayUnit = "rad"), P_0 = 25, Q_0 = 13, V_0 = 0.977, V_b = 11, angle_0 = -14.103, forcePQ = true) annotation(
- Placement(visible = true, transformation(origin = {-459, 59}, extent = {{-11, -11}, {11, 11}}, rotation = 0)));
- OpenIPSL.Electrical.Loads.PSAT.LOADPQ LD26(Angle_V(displayUnit = "rad"), P(fixed = false), P_0 = 47, Q(fixed = false), Q_0 = 0, V_0 = 1, V_b = 11, angle_0 = -12.890, forcePQ = true) annotation(
- Placement(visible = true, transformation(origin = {-285, 85}, extent = {{11, 11}, {-11, -11}}, rotation = -90)));
- OpenIPSL.Electrical.Loads.PSAT.LOADPQ LD27(Angle_V(displayUnit = "rad"), P_0 = 42, Q_0 = 18, V_0 = 0.980, V_b = 11, angle_0 = -13.859, forcePQ = true) annotation(
- Placement(visible = true, transformation(origin = {-285, 37}, extent = {{-11, -11}, {11, 11}}, rotation = 180)));
- OpenIPSL.Electrical.Loads.PSAT.LOADPQ LD28(Angle_V(displayUnit = "rad"), P_0 = 30, Q_0 = 17, V_0 = 0.986, V_b = 11, angle_0 = -10.058, forcePQ = true) annotation(
- Placement(visible = true, transformation(origin = {-365, 175}, extent = {{-9, -9}, {9, 9}}, rotation = 0)));
- OpenIPSL.Electrical.Loads.PSAT.LOADPQ LD29(Angle_V(displayUnit = "rad"), P_0 = 58, Q_0 = 26, V_0 = 0.986, V_b = 250.125, angle_0 = -4.330, forcePQ = true) annotation(
- Placement(visible = true, transformation(origin = {-232, 248}, extent = {{-12, -12}, {12, 12}}, rotation = 180)));
- OpenIPSL.Electrical.Loads.PSAT.LOADPQ LD30(Angle_V(displayUnit = "rad"), P_0 = 50, Q_0 = 30, V_0 = 0.979, V_b = 11, angle_0 = -12.199, forcePQ = true) annotation(
- Placement(visible = true, transformation(origin = {-422, 216}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- OpenIPSL.Electrical.Branches.PwLine pwLine39_49(B = 0.0726, G = 0, R = 0.0168, X = 0.0899) annotation(
- Placement(visible = true, transformation(origin = {-34, 56}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
- OpenIPSL.Electrical.Buses.Bus B39(P_0 = 0, Q_0 = 0, V_0 = 0.962, V_b = 11.66, angle_0 = 1.851, displayPF = true) annotation(
- Placement(visible = true, transformation(origin = {165, -345}, extent = {{-15, -15}, {15, 15}}, rotation = -90)));
- Modelling_of_51_bus_system_case1.GenBus.GenBus7 genBus7(P_0 = 33, Q_0 = 62.54, V_0 = 1, V_b = 11, angle_0 = -4.872) annotation(
- Placement(visible = true, transformation(origin = {210, 146}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
- Modelling_of_51_bus_system_case1.GenBus.GenBus15 genBus15(P_0 = 24, Q_0 = -16.23, V_0 = 1, V_b = 11, angle_0 = -1.049) annotation(
- Placement(visible = true, transformation(origin = {286, -364}, extent = {{10, 10}, {-10, -10}}, rotation = -90)));
- Modelling_of_51_bus_system_case1.GenBus.GenBus17 genBus17(P_0 = 46, Q_0 = 20.51, V_0 = 1, V_b = 11, angle_0 = -7.675) annotation(
- Placement(visible = true, transformation(origin = {52, -300}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
- Modelling_of_51_bus_system_case1.GenBus.GenBus19 genBus19(P_0 = 31, Q_0 = 14.77, V_0 = 1, V_b = 11, angle_0 = -10.672) annotation(
- Placement(visible = true, transformation(origin = {-138, -152}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
- Modelling_of_51_bus_system_case1.GenBus.GenBus30 genBus30(P_0 = 47, Q_0 = 66.16, V_0 = 1, V_b = 11, angle_0 = -12.890) annotation(
- Placement(visible = true, transformation(origin = {-302, 176}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
- Modelling_of_51_bus_system_case1.GenBus.GenBus33 genBus33(P_0 = 50, Q_0 = 25.97, V_0 = 1, V_b = 11, angle_0 = -10.479) annotation(
- Placement(visible = true, transformation(origin = {-344, 344}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
- Modelling_of_51_bus_system.Modelling_of_51_bus_system_case1.GenBus.GenBus38 genBus38(P_0 = 170, Q_0 = -0.21, V_0 = 1, V_b = 11, angle_0 = -0.160) annotation(
- Placement(visible = true, transformation(origin = {106, -34}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
- Modelling_of_51_bus_system_case1.GenBus.GenBus44 genBus44(P_0 = 175, Q_0 = 50.26, V_0 = 1, V_b = 11, angle_0 = -2.273) annotation(
- Placement(visible = true, transformation(origin = {-196, 120}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
- Modelling_of_51_bus_system_case1.GenBus.GenBus48 genBus48(P_0 = 55, Q_0 = 7.55, V_0 = 1, V_b = 11, angle_0 = -1.141) annotation(
- Placement(visible = true, transformation(origin = {80, 338}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
- Modelling_of_51_bus_system_case1.GenBus.GenBus49 genBus49(P_0 = 350, Q_0 = 0, V_0 = 1, V_b = 11, angle_0 = 8.095) annotation(
- Placement(visible = true, transformation(origin = {-50, 224}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
- Modelling_of_51_bus_system_case1.GenBus.GenBus50 genBus50(P_0 = 120, Q_0 = 22.41, V_0 = 1, V_b = 11, angle_0 = 8.022) annotation(
- Placement(visible = true, transformation(origin = {66, 220}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
- OpenIPSL.Electrical.Branches.PSAT.TwoWindingTransformer T_1_34( Sn = 100, V_b = 11, Vn = 11, kT = 1.0875, r = 0, x = 0.0630) annotation(
- Placement(visible = true, transformation(origin = {-228, 198}, extent = {{-16, -16}, {16, 16}}, rotation = 0)));
- OpenIPSL.Electrical.Branches.PSAT.TwoWindingTransformer T_3_35( Sn = 100, V_b = 11, Vn = 11, kT = 1.0450, r = 0, x = 0.0500) annotation(
- Placement(visible = true, transformation(origin = {204, 212}, extent = {{-16, -16}, {16, 16}}, rotation = 0)));
- OpenIPSL.Electrical.Branches.PSAT.TwoWindingTransformer T_4_5( Sn = 100, V_b = 11, Vn = 11, kT = 1.0800, r = 0, x = 0.02085) annotation(
- Placement(visible = true, transformation(origin = {270, 292}, extent = {{-16, -16}, {16, 16}}, rotation = -90)));
- OpenIPSL.Electrical.Branches.PSAT.TwoWindingTransformer T_7_36( Sn = 100, V_b = 11, Vn = 11, kT = 1.0450, r = 0, x = 0.0450) annotation(
- Placement(visible = true, transformation(origin = {224, 90}, extent = {{-14, -14}, {14, 14}}, rotation = 0)));
- OpenIPSL.Electrical.Branches.PSAT.TwoWindingTransformer T_11_37( Sn = 100, V_b = 11, Vn = 11, kT = 1.0500, r = 0, x = 0.0500) annotation(
- Placement(visible = true, transformation(origin = {217, -101}, extent = {{-17, -17}, {17, 17}}, rotation = 0)));
- OpenIPSL.Electrical.Branches.PSAT.TwoWindingTransformer T_16_39( Sn = 100, V_b = 11, Vn = 11, kT = 1.0600, r = 0, x = 0.0900) annotation(
- Placement(visible = true, transformation(origin = {163, -321}, extent = {{-13, -13}, {13, 13}}, rotation = -90)));
- OpenIPSL.Electrical.Branches.PSAT.TwoWindingTransformer T_18_40( Sn = 100, V_b = 11, Vn = 11, kT = 1.0900, r = 0, x = 0.0400) annotation(
- Placement(visible = true, transformation(origin = {-36, -302}, extent = {{-14, -14}, {14, 14}}, rotation = -90)));
- OpenIPSL.Electrical.Branches.PSAT.TwoWindingTransformer T_14_47( Sn = 100, V_b = 11, Vn = 11, kT = 1.0600, r = 0, x = 0.0900) annotation(
- Placement(visible = true, transformation(origin = {240, -258}, extent = {{-14, -14}, {14, 14}}, rotation = 0)));
- OpenIPSL.Electrical.Branches.PSAT.TwoWindingTransformer T_19_41( Sn = 100, V_b = 11, Vn = 11, kT = 1.0750, r = 0, x = 0.0800) annotation(
- Placement(visible = true, transformation(origin = {-137, -211}, extent = {{-15, -15}, {15, 15}}, rotation = -90)));
- OpenIPSL.Electrical.Branches.PSAT.TwoWindingTransformer T_21_22( Sn = 100, V_b = 11, Vn = 11, kT = 1.0600, r = 0, x = 0.02500) annotation(
- Placement(visible = true, transformation(origin = {-318, -212}, extent = {{-14, -14}, {14, 14}}, rotation = -90)));
- OpenIPSL.Electrical.Branches.PSAT.TwoWindingTransformer T_24_43( Sn = 100, V_b = 11, Vn = 11, kT = 1.0750, r = 0, x = 0.0900) annotation(
- Placement(visible = true, transformation(origin = {-124, -72}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
- OpenIPSL.Electrical.Branches.PSAT.TwoWindingTransformer T_44_26( Sn = 100, V_b = 11, Vn = 11, kT = 1.0750, r = 0, x = 0.0500) annotation(
- Placement(visible = true, transformation(origin = {-134, 74}, extent = {{-16, -16}, {16, 16}}, rotation = -90)));
- Modelling_of_51_bus_system_case1.GenBus.GenBus1 genBus11(P_0 = 45.70, Q_0 = 366.71, V_0 = 1.08, V_b = 11) annotation(
- Placement(visible = true, transformation(origin = {-168, 238}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
- OpenIPSL.Electrical.Events.PwFault pwFault(R = 0, X = 0.1, t1 = 4, t2 = 4.4) annotation(
- Placement(visible = true, transformation(origin = {-381, 25}, extent = {{-9, -9}, {9, 9}}, rotation = 0)));
- inner OpenIPSL.Electrical.SystemBase SysData annotation(
- Placement(visible = true, transformation(origin = {444, 313}, extent = {{-90, -37}, {90, 37}}, rotation = 0)));
- OpenIPSL.Electrical.Branches.PSAT.TwoWindingTransformer T_30_46( Sn = 100, V_b = 11, Vn = 11, kT = 1.0750, r = 0, x = 0.0450) annotation(
- Placement(visible = true, transformation(origin = {-287, 135}, extent = {{-15, -15}, {15, 15}}, rotation = 0)));
- OpenIPSL.Electrical.Branches.PSAT.TwoWindingTransformer T_20_42( Sn = 100, V_b = 11, Vn = 11, kT = 1.0600, r = 0, x = 0.0800) annotation(
- Placement(visible = true, transformation(origin = {-236, -288}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
- equation
- connect(B2.p, pwLine2_3_2.p) annotation(
- Line(points = {{120, 262}, {124, 262}, {124, 250}, {162, 250}, {162, 250}}, color = {0, 0, 255}));
- connect(B2.p, pwLine2_3_1.p) annotation(
- Line(points = {{120, 262}, {118, 262}, {118, 236}, {162, 236}, {162, 236}}, color = {0, 0, 255}));
- connect(pwLine2_3_1.n, B3.p) annotation(
- Line(points = {{182, 236}, {232, 236}, {232, 212}, {260, 212}, {260, 212}, {260, 212}}, color = {0, 0, 255}));
- connect(pwLine2_3_2.n, B3.p) annotation(
- Line(points = {{182, 250}, {238, 250}, {238, 220}, {248, 220}, {248, 210}, {260, 210}, {260, 212}}, color = {0, 0, 255}));
- connect(pwLine3_4_1.n, B3.p) annotation(
- Line(points = {{262, 228}, {262, 228}, {262, 212}, {260, 212}, {260, 212}}, color = {0, 0, 255}));
- connect(pwLine3_4_2.n, B3.p) annotation(
- Line(points = {{276, 229}, {276, 226}, {268, 226}, {268, 214}, {260, 214}, {260, 212}}, color = {0, 0, 255}));
- connect(pwLine3_4_1.p, B4.p) annotation(
- Line(points = {{262, 248}, {258, 248}, {258, 266}, {268, 266}, {268, 264}}, color = {0, 0, 255}));
- connect(pwLine3_4_2.p, B4.p) annotation(
- Line(points = {{276, 247}, {276, 262}, {268, 262}, {268, 264}}, color = {0, 0, 255}));
- connect(pwLine3_6.n, B6.p) annotation(
- Line(points = {{270, 170}, {270, 148}, {267, 148}, {267, 149}}, color = {0, 0, 255}));
- connect(pwLine3_6.p, B3.p) annotation(
- Line(points = {{270, 190}, {270, 190}, {270, 210}, {260, 210}, {260, 212}}, color = {0, 0, 255}));
- connect(pwLine3_7.n, B7.p) annotation(
- Line(points = {{238, 142}, {238, 130}, {274, 130}, {274, 100}, {268, 100}, {268, 97}, {267, 97}}, color = {0, 0, 255}));
- connect(pwLine3_7.p, B3.p) annotation(
- Line(points = {{238, 162}, {238, 162}, {238, 200}, {256, 200}, {256, 212}, {260, 212}}, color = {0, 0, 255}));
- connect(pwLine7_8_1.n, B8.p) annotation(
- Line(points = {{280, 62}, {280, 62}, {280, 48}, {272, 48}, {272, 46}}, color = {0, 0, 255}));
- connect(pwLine7_8_1.p, B7.p) annotation(
- Line(points = {{280, 82}, {280, 97}, {267, 97}}, color = {0, 0, 255}));
- connect(pwLine7_8_2.p, B7.p) annotation(
- Line(points = {{264, 82}, {266, 82}, {266, 96}, {267, 96}, {267, 97}}, color = {0, 0, 255}));
- connect(pwLine7_8_2.n, B8.p) annotation(
- Line(points = {{264, 62}, {264, 62}, {264, 48}, {272, 48}, {272, 46}}, color = {0, 0, 255}));
- connect(pwLine8_9_1.p, B8.p) annotation(
- Line(points = {{280, 27}, {280, 46}, {272, 46}}, color = {0, 0, 255}));
- connect(pwLine8_9_1.n, B9.p) annotation(
- Line(points = {{280, 9}, {280, -8}, {274, -8}, {274, -6}}, color = {0, 0, 255}));
- connect(pwLine8_9_2.n, B9.p) annotation(
- Line(points = {{262, 9}, {262, -6}, {274, -6}}, color = {0, 0, 255}));
- connect(pwLine8_9_2.p, B8.p) annotation(
- Line(points = {{262, 27}, {262, 46}, {272, 46}}, color = {0, 0, 255}));
- connect(pwLine9_10_1.n, B10.p) annotation(
- Line(points = {{286, -44}, {286, -60}, {276, -60}}, color = {0, 0, 255}));
- connect(pwLine9_10_2.n, B10.p) annotation(
- Line(points = {{270, -44}, {270, -60}, {276, -60}}, color = {0, 0, 255}));
- connect(pwLine9_10_2.p, B9.p) annotation(
- Line(points = {{270, -24}, {268, -24}, {268, -8}, {274, -8}, {274, -6}}, color = {0, 0, 255}));
- connect(B9.p, pwLine9_10_1.p) annotation(
- Line(points = {{274, -6}, {286, -6}, {286, -26}, {286, -26}, {286, -24}}, color = {0, 0, 255}));
- connect(pwLine10_11_1.p, B10.p) annotation(
- Line(points = {{284, -76}, {284, -58}, {276, -58}, {276, -60}}, color = {0, 0, 255}));
- connect(pwLine10_11_1.n, B11.p) annotation(
- Line(points = {{284, -96}, {284, -96}, {284, -118}, {280, -118}, {280, -118}}, color = {0, 0, 255}));
- connect(pwLine10_11_2.p, B10.p) annotation(
- Line(points = {{268, -78}, {268, -58}, {276, -58}, {276, -60}}, color = {0, 0, 255}));
- connect(pwLine10_11_2.n, B11.p) annotation(
- Line(points = {{268, -98}, {268, -98}, {268, -118}, {280, -118}, {280, -118}}, color = {0, 0, 255}));
- connect(pwLine11_12_1.p, B11.p) annotation(
- Line(points = {{288, -128}, {288, -128}, {288, -116}, {280, -116}, {280, -118}}, color = {0, 0, 255}));
- connect(pwLine11_12_1.n, B12.p) annotation(
- Line(points = {{288, -148}, {288, -148}, {288, -164}, {280, -164}, {280, -164}}, color = {0, 0, 255}));
- connect(pwLine11_12_2.n, B12.p) annotation(
- Line(points = {{272, -148}, {272, -148}, {272, -164}, {280, -164}, {280, -164}}, color = {0, 0, 255}));
- connect(pwLine11_12_2.p, B11.p) annotation(
- Line(points = {{272, -128}, {272, -128}, {272, -116}, {280, -116}, {280, -118}}, color = {0, 0, 255}));
- connect(pwLine12_13_1.p, B12.p) annotation(
- Line(points = {{280, -183}, {280, -164}}, color = {0, 0, 255}));
- connect(pwLine12_13_1.n, B13.p) annotation(
- Line(points = {{280, -201}, {280, -213}, {283, -213}}, color = {0, 0, 255}));
- connect(pwLine13_14_1.n, B14.p) annotation(
- Line(points = {{282, -241}, {282, -264}, {288, -264}}, color = {0, 0, 255}));
- connect(pwLine13_14_1.p, B13.p) annotation(
- Line(points = {{282, -223}, {282, -213}, {283, -213}}, color = {0, 0, 255}));
- connect(pwLine14_15_1.n, B15.p) annotation(
- Line(points = {{288, -309}, {288, -319.5}, {286, -319.5}, {286, -330}}, color = {0, 0, 255}));
- connect(pwLine14_15_1.p, B14.p) annotation(
- Line(points = {{288, -291}, {288, -264}}, color = {0, 0, 255}));
- connect(B16.p, pwLine15_16.p) annotation(
- Line(points = {{160, -300}, {160, -276}, {224, -276}, {224, -297}}, color = {0, 0, 255}));
- connect(pwLine15_16.n, B15.p) annotation(
- Line(points = {{224, -316}, {224, -324}, {286, -324}, {286, -330}}, color = {0, 0, 255}));
- connect(pwLine16_17.p, B16.p) annotation(
- Line(points = {{112, -324}, {112, -324}, {112, -310}, {158, -310}, {158, -300}, {160, -300}}, color = {0, 0, 255}));
- connect(B17.p, pwLine16_17.n) annotation(
- Line(points = {{52, -336}, {58, -336}, {58, -354}, {112, -354}, {112, -342}, {112, -342}, {112, -344}}, color = {0, 0, 255}));
- connect(pwLine17_18.n, B17.p) annotation(
- Line(points = {{18, -358}, {40, -358}, {40, -336}, {52, -336}, {52, -336}}, color = {0, 0, 255}));
- connect(pwLine17_18.p, B18.p) annotation(
- Line(points = {{-2, -358}, {-24, -358}, {-24, -328}, {-32, -328}, {-32, -330}, {-32, -330}}, color = {0, 0, 255}));
- connect(pwLine18_19.n, B18.p) annotation(
- Line(points = {{-82, -292}, {-82, -292}, {-82, -320}, {-44, -320}, {-44, -328}, {-32, -328}, {-32, -330}}, color = {0, 0, 255}));
- connect(B19.p, pwLine18_19.p) annotation(
- Line(points = {{-137, -181}, {-130, -181}, {-130, -200}, {-82, -200}, {-82, -272}}, color = {0, 0, 255}));
- connect(pwLine19_20.p, B19.p) annotation(
- Line(points = {{-196, -206}, {-196, -192}, {-152, -192}, {-152, -181}, {-137, -181}}, color = {0, 0, 255}));
- connect(pwLine19_20.n, B20.p) annotation(
- Line(points = {{-196, -226}, {-196, -226}, {-196, -244}, {-224, -244}, {-224, -268}, {-232, -268}, {-232, -268}}, color = {0, 0, 255}));
- connect(B21.p, pwLine20_21.p) annotation(
- Line(points = {{-312, -238}, {-314, -238}, {-314, -256}, {-280, -256}, {-280, -256}}, color = {0, 0, 255}));
- connect(pwLine20_21.n, B20.p) annotation(
- Line(points = {{-260, -256}, {-244, -256}, {-244, -268}, {-232, -268}, {-232, -268}, {-232, -268}}, color = {0, 0, 255}));
- connect(pwLine20_23.n, B20.p) annotation(
- Line(points = {{-232, -210}, {-232, -210}, {-232, -268}, {-232, -268}}, color = {0, 0, 255}));
- connect(pwLine20_23.p, B23.p) annotation(
- Line(points = {{-232, -190}, {-232, -190}, {-232, -118}, {-224, -118}, {-224, -118}}, color = {0, 0, 255}));
- connect(B23.p, pwLine23_24.p) annotation(
- Line(points = {{-224, -118}, {-222, -118}, {-222, -100}, {-180, -100}, {-180, -100}, {-180, -100}}, color = {0, 0, 255}));
- connect(pwLine23_24.n, B24.p) annotation(
- Line(points = {{-160, -100}, {-128, -100}, {-128, -88}, {-118, -88}, {-118, -90}, {-116, -90}}, color = {0, 0, 255}));
- connect(B25.p, pwLine12_25.p) annotation(
- Line(points = {{-8, 10}, {-8, 10}, {-8, -126}, {36, -126}, {36, -126}}, color = {0, 0, 255}));
- connect(pwLine12_25.n, B12.p) annotation(
- Line(points = {{56, -126}, {264, -126}, {264, -164}, {280, -164}, {280, -164}}, color = {0, 0, 255}));
- connect(B26.p, pwLine25_26.p) annotation(
- Line(points = {{-130, 44}, {-122, 44}, {-122, 22}, {-77, 22}}, color = {0, 0, 255}));
- connect(pwLine25_26.n, B25.p) annotation(
- Line(points = {{-58, 22}, {-18, 22}, {-18, 12}, {-8, 12}, {-8, 10}, {-8, 10}}, color = {0, 0, 255}));
- connect(B27.p, pwLine26_27.p) annotation(
- Line(points = {{-343, -31}, {-342, -31}, {-342, -52}, {-262, -52}}, color = {0, 0, 255}));
- connect(pwLine26_27.n, B26.p) annotation(
- Line(points = {{-242, -52}, {-172, -52}, {-172, 26}, {-144, 26}, {-144, 42}, {-130, 42}, {-130, 44}}, color = {0, 0, 255}));
- connect(B28.p, pwLine27_28.p) annotation(
- Line(points = {{-434, 36}, {-432, 36}, {-432, 0}, {-410, 0}, {-410, -2}}, color = {0, 0, 255}));
- connect(pwLine27_28.n, B27.p) annotation(
- Line(points = {{-390, -2}, {-358, -2}, {-358, -31}, {-343, -31}}, color = {0, 0, 255}));
- connect(pwLine28_29.p, B28.p) annotation(
- Line(points = {{-424, 64}, {-434, 64}, {-434, 36}, {-434, 36}}, color = {0, 0, 255}));
- connect(pwLine28_29.n, B29.p) annotation(
- Line(points = {{-404, 64}, {-398, 64}, {-398, 88}, {-396, 88}, {-396, 86}, {-394, 86}}, color = {0, 0, 255}));
- connect(B29.p, pwLine29_30.p) annotation(
- Line(points = {{-394, 86}, {-388, 86}, {-388, 108}, {-376, 108}, {-376, 108}}, color = {0, 0, 255}));
- connect(pwLine29_30.n, B30.p) annotation(
- Line(points = {{-356, 108}, {-344, 108}, {-344, 123}, {-333, 123}}, color = {0, 0, 255}));
- connect(pwLine30_31.p, B30.p) annotation(
- Line(points = {{-328, 90}, {-328, 122}, {-333, 122}, {-333, 123}}, color = {0, 0, 255}));
- connect(pwLine30_31.n, B31.p) annotation(
- Line(points = {{-328, 70}, {-328, 70}, {-328, 34}, {-334, 34}, {-334, 34}}, color = {0, 0, 255}));
- connect(pwLine27_31.n, B27.p) annotation(
- Line(points = {{-340, -3}, {-340, -31}, {-343, -31}}, color = {0, 0, 255}));
- connect(pwLine30_32.n, B30.p) annotation(
- Line(points = {{-338, 155}, {-338, 123}, {-333, 123}}, color = {0, 0, 255}));
- connect(pwLine30_32.p, B32.p) annotation(
- Line(points = {{-338, 173}, {-338, 210}}, color = {0, 0, 255}));
- connect(pwLine32_33.p, B32.p) annotation(
- Line(points = {{-344, 254}, {-346, 254}, {-346, 212}, {-338, 212}, {-338, 210}}, color = {0, 0, 255}));
- connect(pwLine32_33.n, B33.p) annotation(
- Line(points = {{-344, 274}, {-344, 313}, {-349, 313}}, color = {0, 0, 255}));
- connect(pwLine32_34_1.p, B32.p) annotation(
- Line(points = {{-308, 242}, {-330, 242}, {-330, 210}, {-338, 210}, {-338, 210}}, color = {0, 0, 255}));
- connect(pwLine32_34_2.p, B32.p) annotation(
- Line(points = {{-306, 260}, {-336, 260}, {-336, 212}, {-338, 212}, {-338, 210}}, color = {0, 0, 255}));
- connect(pwLine32_34_1.n, B34.p) annotation(
- Line(points = {{-288, 242}, {-268, 242}, {-268, 212}, {-257, 212}, {-257, 213}}, color = {0, 0, 255}));
- connect(pwLine32_34_2.n, B34.p) annotation(
- Line(points = {{-286, 260}, {-258, 260}, {-258, 213}, {-257, 213}}, color = {0, 0, 255}));
- connect(pwLine30_51.p, B51.p) annotation(
- Line(points = {{-398, 198}, {-398, 250}}, color = {0, 0, 255}));
- connect(pwLine30_51.n, B30.p) annotation(
- Line(points = {{-398, 178}, {-398, 178}, {-398, 140}, {-344, 140}, {-344, 122}, {-332, 122}, {-332, 124}}, color = {0, 0, 255}));
- connect(pwLine51_33.n, B33.p) annotation(
- Line(points = {{-366, 282}, {-356, 282}, {-356, 313}, {-349, 313}}, color = {0, 0, 255}));
- connect(pwLine51_33.p, B51.p) annotation(
- Line(points = {{-386, 282}, {-394, 282}, {-394, 252}, {-398, 252}, {-398, 250}}, color = {0, 0, 255}));
- connect(pwLine35_50.n, B35.p) annotation(
- Line(points = {{130, 168}, {164, 168}, {164, 196}, {172, 196}, {172, 196}, {174, 196}}, color = {0, 0, 255}));
- connect(pwLine35_50.p, B50.p) annotation(
- Line(points = {{110, 168}, {76, 168}, {76, 194}, {64, 194}}, color = {0, 0, 255}));
- connect(pwLine35_36.p, B35.p) annotation(
- Line(points = {{182, 145}, {182, 194}, {174, 194}, {174, 196}}, color = {0, 0, 255}));
- connect(pwLine35_36.n, B36.p) annotation(
- Line(points = {{182, 126}, {182, 73}, {181, 73}}, color = {0, 0, 255}));
- connect(pwLine36_38.p, B38.p) annotation(
- Line(points = {{90, 24}, {82, 24}, {82, -70}}, color = {0, 0, 255}));
- connect(pwLine36_38.n, B36.p) annotation(
- Line(points = {{110, 24}, {168, 24}, {168, 24}, {178, 24}, {178, 76}, {182, 76}, {182, 74}, {182, 74}}, color = {0, 0, 255}));
- connect(B1.p, pwLine38_1.p) annotation(
- Line(points = {{-170, 194}, {-156, 194}, {-156, 140}, {-28, 140}, {-28, 98}, {-1, 98}}, color = {0, 0, 255}));
- connect(pwLine38_1.n, B38.p) annotation(
- Line(points = {{18, 98}, {56, 98}, {56, -70}, {82, -70}, {82, -70}}, color = {0, 0, 255}));
- connect(pwLine38_47.n, B47.p) annotation(
- Line(points = {{158, -160}, {194, -160}, {194, -245}, {199, -245}}, color = {0, 0, 255}));
- connect(pwLine47_43.n, B47.p) annotation(
- Line(points = {{134, -202}, {184, -202}, {184, -245}, {199, -245}}, color = {0, 0, 255}));
- connect(pwLine42_43.n, B42.p) annotation(
- Line(points = {{-380, -218}, {-380, -302}, {-244, -302}, {-244, -308}, {-234, -308}}, color = {0, 0, 255}));
- connect(pwLine42_43.p, B43.p) annotation(
- Line(points = {{-380, -198}, {-380, -60}, {-132, -60}, {-132, -38}, {-122, -38}}, color = {0, 0, 255}));
- connect(pwLine40_41.n, B40.p) annotation(
- Line(points = {{-54, -254}, {-46, -254}, {-46, -278}, {-36, -278}}, color = {0, 0, 255}));
- connect(pwLine40_41.p, B41.p) annotation(
- Line(points = {{-74, -254}, {-134, -254}, {-134, -238}, {-136, -238}}, color = {0, 0, 255}));
- connect(B41.p, pwLine41_43.n) annotation(
- Line(points = {{-136, -238}, {-128, -238}, {-128, -216}, {-60, -216}, {-60, -123}}, color = {0, 0, 255}));
- connect(B43.p, pwLine41_43.p) annotation(
- Line(points = {{-122, -38}, {-118, -38}, {-118, -62}, {-60, -62}, {-60, -104}}, color = {0, 0, 255}));
- connect(B43.p, pwLine47_43.p) annotation(
- Line(points = {{-122, -38}, {-110, -38}, {-110, -48}, {-20, -48}, {-20, -202}, {114, -202}}, color = {0, 0, 255}));
- connect(pwLine43_45.n, B43.p) annotation(
- Line(points = {{-187, -20}, {-128, -20}, {-128, -38}, {-122, -38}}, color = {0, 0, 255}));
- connect(B45.p, pwLine43_45.p) annotation(
- Line(points = {{-240, 0}, {-234, 0}, {-234, -20}, {-205, -20}}, color = {0, 0, 255}));
- connect(pwLine43_44.n, B43.p) annotation(
- Line(points = {{-88, 42}, {-88, -8}, {-110, -8}, {-110, -38}, {-122, -38}}, color = {0, 0, 255}));
- connect(B44.p, pwLine43_44.p) annotation(
- Line(points = {{-130, 102}, {-120, 102}, {-120, 80}, {-88, 80}, {-88, 62}, {-88, 62}}, color = {0, 0, 255}));
- connect(pwLine45_46.n, B45.p) annotation(
- Line(points = {{-236, 65}, {-236, 0}, {-240, 0}}, color = {0, 0, 255}));
- connect(pwLine45_46.p, B46.p) annotation(
- Line(points = {{-236, 83}, {-236, 146}, {-238, 146}}, color = {0, 0, 255}));
- connect(pwLine44_1.p, B1.p) annotation(
- Line(points = {{-170, 139}, {-170, 194}}, color = {0, 0, 255}));
- connect(pwLine44_1.n, B44.p) annotation(
- Line(points = {{-170, 121}, {-170, 110}, {-140, 110}, {-140, 102}, {-130, 102}}, color = {0, 0, 255}));
- connect(pwLine46_1.n, B1.p) annotation(
- Line(points = {{-204, 176}, {-182, 176}, {-182, 194}, {-170, 194}}, color = {0, 0, 255}));
- connect(pwLine46_1.p, B46.p) annotation(
- Line(points = {{-224, 176}, {-232, 176}, {-232, 144}, {-238, 144}, {-238, 146}}, color = {0, 0, 255}));
- connect(pwLine1_49.p, B1.p) annotation(
- Line(points = {{-116, 174}, {-152, 174}, {-152, 194}, {-170, 194}}, color = {0, 0, 255}));
- connect(pwLine1_49.n, B49.p) annotation(
- Line(points = {{-96, 174}, {-58, 174}, {-58, 194}, {-50, 194}}, color = {0, 0, 255}));
- connect(B49.p, pwLine49_50.p) annotation(
- Line(points = {{-50, 194}, {-40, 194}, {-40, 170}, {1, 170}}, color = {0, 0, 255}));
- connect(pwLine49_50.n, B50.p) annotation(
- Line(points = {{20, 170}, {56, 170}, {56, 194}, {64, 194}}, color = {0, 0, 255}));
- connect(B38.p, pwLine38_47.p) annotation(
- Line(points = {{82, -70}, {80, -70}, {80, -160}, {138, -160}, {138, -160}}, color = {0, 0, 255}));
- connect(pwLine37_38.p, B38.p) annotation(
- Line(points = {{122, -94}, {90, -94}, {90, -68}, {80, -68}, {80, -70}, {82, -70}}, color = {0, 0, 255}));
- connect(pwLine37_38.n, B37.p) annotation(
- Line(points = {{142, -94}, {158, -94}, {158, -74}, {166, -74}, {166, -74}}, color = {0, 0, 255}));
- connect(pwLine47_39.p, B47.p) annotation(
- Line(points = {{200, -303}, {200, -272.5}, {199, -272.5}, {199, -245}}, color = {0, 0, 255}));
- connect(pwLine48_2_1.n, B2.p) annotation(
- Line(points = {{108, 276}, {112, 276}, {112, 262}, {120, 262}, {120, 262}}, color = {0, 0, 255}));
- connect(pwLine48_2_1.p, B48.p) annotation(
- Line(points = {{88, 276}, {78, 276}, {78, 310}, {83, 310}, {83, 311}}, color = {0, 0, 255}));
- connect(pwLine48_2_2.p, B48.p) annotation(
- Line(points = {{90, 288}, {84, 288}, {84, 311}, {83, 311}}, color = {0, 0, 255}));
- connect(pwLine48_2_2.n, B2.p) annotation(
- Line(points = {{110, 288}, {118, 288}, {118, 260}, {120, 260}, {120, 262}}, color = {0, 0, 255}));
- connect(pwLine27_31.p, B31.p) annotation(
- Line(points = {{-340, 16}, {-340, 16}, {-340, 32}, {-334, 32}, {-334, 34}}, color = {0, 0, 255}));
- connect(T_27_45.p, B27.p) annotation(
- Line(points = {{-314, -10}, {-336, -10}, {-336, -30}, {-342, -30}, {-342, -30}}, color = {0, 0, 255}));
- connect(T_27_45.n, B45.p) annotation(
- Line(points = {{-290, -10}, {-250, -10}, {-250, 0}, {-240, 0}, {-240, 0}}, color = {0, 0, 255}));
- connect(LD1.p, B2.p) annotation(
- Line(points = {{90, 246}, {88, 246}, {88, 254}, {112, 254}, {112, 262}, {120, 262}}, color = {0, 0, 255}));
- connect(B3.p, LD2.p) annotation(
- Line(points = {{260, 212}, {272, 212}, {272, 198}, {304, 198}, {304, 192}, {306, 192}}, color = {0, 0, 255}));
- connect(LD3.p, B5.p) annotation(
- Line(points = {{272, 342}, {272, 320}}, color = {0, 0, 255}));
- connect(B6.p, LD4.p) annotation(
- Line(points = {{267, 149}, {267, 136}, {320, 136}, {320, 132}}, color = {0, 0, 255}));
- connect(B7.p, LD5.p) annotation(
- Line(points = {{267, 97}, {284, 97}, {284, 84}, {320, 84}, {320, 80}}, color = {0, 0, 255}));
- connect(B8.p, LD6.p) annotation(
- Line(points = {{272, 46}, {282, 46}, {282, 34}, {312, 34}, {312, 26}}, color = {0, 0, 255}));
- connect(B9.p, LD7.p) annotation(
- Line(points = {{274, -6}, {280, -6}, {280, -18}, {322, -18}, {322, -24}}, color = {0, 0, 255}));
- connect(B10.p, LD8.p) annotation(
- Line(points = {{276, -60}, {288, -60}, {288, -74}, {322, -74}, {322, -76}, {326, -76}}, color = {0, 0, 255}));
- connect(B11.p, LD9.p) annotation(
- Line(points = {{280, -118}, {290, -118}, {290, -120}, {327, -120}, {327, -132}}, color = {0, 0, 255}));
- connect(B12.p, LD10.p) annotation(
- Line(points = {{280, -164}, {290, -164}, {290, -176}, {322, -176}, {322, -182}}, color = {0, 0, 255}));
- connect(B13.p, LD11.p) annotation(
- Line(points = {{283, -213}, {290, -213}, {290, -228}, {336, -228}, {336, -234}}, color = {0, 0, 255}));
- connect(B14.p, LD12.p) annotation(
- Line(points = {{288, -264}, {296, -264}, {296, -278}, {320, -278}, {320, -284}, {325, -284}}, color = {0, 0, 255}));
- connect(LD13.p, B16.p) annotation(
- Line(points = {{142, -274}, {142, -274}, {142, -286}, {152, -286}, {152, -300}, {160, -300}, {160, -300}}, color = {0, 0, 255}));
- connect(LD14.p, B17.p) annotation(
- Line(points = {{52, -362}, {52, -336}}, color = {0, 0, 255}));
- connect(LD15.p, B18.p) annotation(
- Line(points = {{-32, -364}, {-32, -330}}, color = {0, 0, 255}));
- connect(LD16.p, B19.p) annotation(
- Line(points = {{-166, -218}, {-166, -200}, {-150, -200}, {-150, -182}, {-137, -182}, {-137, -181}}, color = {0, 0, 255}));
- connect(B20.p, LD17.p) annotation(
- Line(points = {{-232, -268}, {-224, -268}, {-224, -284}, {-190, -284}, {-190, -294}}, color = {0, 0, 255}));
- connect(LD18.p, B22.p) annotation(
- Line(points = {{-310, -156}, {-310, -156}, {-310, -184}, {-316, -184}, {-316, -184}}, color = {0, 0, 255}));
- connect(B23.p, LD19.p) annotation(
- Line(points = {{-224, -118}, {-222, -118}, {-222, -136}, {-200, -136}, {-200, -150}}, color = {0, 0, 255}));
- connect(B24.p, LD20.p) annotation(
- Line(points = {{-116, -90}, {-118, -90}, {-118, -106}, {-104, -106}, {-104, -114}, {-104, -114}}, color = {0, 0, 255}));
- connect(B25.p, LD21.p) annotation(
- Line(points = {{-8, 10}, {-2, 10}, {-2, -8}, {16, -8}, {16, -20}, {18, -20}}, color = {0, 0, 255}));
- connect(LD22.p, B26.p) annotation(
- Line(points = {{-127, 14}, {-132, 14}, {-132, 44}, {-130, 44}}, color = {0, 0, 255}));
- connect(LD23.p, B27.p) annotation(
- Line(points = {{-412, -54}, {-412, -46}, {-352, -46}, {-352, -30}, {-342, -30}}, color = {0, 0, 255}));
- connect(LD24.p, B28.p) annotation(
- Line(points = {{-457, 6}, {-457, 24}, {-442, 24}, {-442, 38}, {-434, 38}, {-434, 36}}, color = {0, 0, 255}));
- connect(LD25.p, B29.p) annotation(
- Line(points = {{-459, 70}, {-459, 78}, {-404, 78}, {-404, 88}, {-394, 88}, {-394, 86}}, color = {0, 0, 255}));
- connect(B30.p, LD26.p) annotation(
- Line(points = {{-332, 124}, {-320, 124}, {-320, 102}, {-296, 102}, {-296, 85}}, color = {0, 0, 255}));
- connect(B31.p, LD27.p) annotation(
- Line(points = {{-334, 34}, {-330, 34}, {-330, 18}, {-285, 18}, {-285, 26}}, color = {0, 0, 255}));
- connect(B32.p, LD28.p) annotation(
- Line(points = {{-338, 210}, {-346, 210}, {-346, 198}, {-366, 198}, {-366, 184}, {-364, 184}}, color = {0, 0, 255}));
- connect(B34.p, LD29.p) annotation(
- Line(points = {{-257, 213}, {-250, 213}, {-250, 230}, {-232, 230}, {-232, 236}}, color = {0, 0, 255}));
- connect(LD30.p, B51.p) annotation(
- Line(points = {{-422, 226}, {-424, 226}, {-424, 236}, {-406, 236}, {-406, 250}, {-398, 250}}, color = {0, 0, 255}));
- connect(B49.p, pwLine39_49.p) annotation(
- Line(points = {{-50, 194}, {-46, 194}, {-46, 82}, {-36, 82}, {-36, 66}, {-34, 66}}, color = {0, 0, 255}));
- connect(pwLine47_39.n, B39.p) annotation(
- Line(points = {{200, -320}, {198, -320}, {198, -324}, {170, -324}, {170, -346}, {166, -346}, {166, -344}}, color = {0, 0, 255}));
- connect(B39.p, pwLine39_49.n) annotation(
- Line(points = {{166, -344}, {150, -344}, {150, -316}, {72, -316}, {72, -160}, {-34, -160}, {-34, 48}, {-34, 48}}, color = {0, 0, 255}));
- connect(genBus7.pwPin, B7.p) annotation(
- Line(points = {{210, 136}, {210, 114}, {260, 114}, {260, 98}, {268, 98}}, color = {0, 0, 255}));
- connect(genBus15.pwPin, B15.p) annotation(
- Line(points = {{286, -354}, {286, -354}, {286, -330}, {286, -330}}, color = {0, 0, 255}));
- connect(genBus17.pwPin, B17.p) annotation(
- Line(points = {{52, -310}, {52, -310}, {52, -336}, {52, -336}}, color = {0, 0, 255}));
- connect(genBus19.pwPin, B19.p) annotation(
- Line(points = {{-138, -162}, {-138, -162}, {-138, -180}, {-136, -180}, {-136, -180}}, color = {0, 0, 255}));
- connect(genBus30.pwPin, B30.p) annotation(
- Line(points = {{-302, 166}, {-302, 166}, {-302, 150}, {-332, 150}, {-332, 124}, {-332, 124}, {-332, 124}}, color = {0, 0, 255}));
- connect(genBus33.pwPin, B33.p) annotation(
- Line(points = {{-344, 334}, {-344, 334}, {-344, 312}, {-348, 312}, {-348, 314}}, color = {0, 0, 255}));
- connect(genBus38.pwPin, B38.p) annotation(
- Line(points = {{106, -44}, {106, -52}, {90, -52}, {90, -68}, {82, -68}, {82, -70}}, color = {0, 0, 255}));
- connect(genBus44.pwPin, B44.p) annotation(
- Line(points = {{-196, 110}, {-196, 110}, {-196, 100}, {-130, 100}, {-130, 102}}, color = {0, 0, 255}));
- connect(genBus48.pwPin, B48.p) annotation(
- Line(points = {{80, 328}, {80, 312}, {82, 312}}, color = {0, 0, 255}));
- connect(genBus49.pwPin, B49.p) annotation(
- Line(points = {{-50, 214}, {-50, 194}}, color = {0, 0, 255}));
- connect(genBus50.pwPin, B50.p) annotation(
- Line(points = {{66, 210}, {66, 210}, {66, 194}, {64, 194}}, color = {0, 0, 255}));
- connect(T_1_34.n, B1.p) annotation(
- Line(points = {{-210, 198}, {-182, 198}, {-182, 194}, {-170, 194}}, color = {0, 0, 255}));
- connect(T_1_34.p, B34.p) annotation(
- Line(points = {{-246, 198}, {-258, 198}, {-258, 214}, {-256, 214}}, color = {0, 0, 255}));
- connect(T_3_35.p, B35.p) annotation(
- Line(points = {{186, 212}, {174, 212}, {174, 196}, {174, 196}}, color = {0, 0, 255}));
- connect(T_3_35.n, B3.p) annotation(
- Line(points = {{222, 212}, {260, 212}, {260, 212}, {260, 212}}, color = {0, 0, 255}));
- connect(T_4_5.n, B4.p) annotation(
- Line(points = {{270, 274}, {270, 274}, {270, 264}, {268, 264}, {268, 264}}, color = {0, 0, 255}));
- connect(T_4_5.p, B5.p) annotation(
- Line(points = {{270, 310}, {270, 310}, {270, 320}, {272, 320}}, color = {0, 0, 255}));
- connect(T_7_36.p, B36.p) annotation(
- Line(points = {{209, 90}, {190, 90}, {190, 74}, {182, 74}}, color = {0, 0, 255}));
- connect(T_7_36.n, B7.p) annotation(
- Line(points = {{240, 90}, {256, 90}, {256, 96}, {266, 96}, {266, 98}, {268, 98}}, color = {0, 0, 255}));
- connect(T_11_37.p, B37.p) annotation(
- Line(points = {{198, -100}, {172, -100}, {172, -74}, {164, -74}, {164, -74}, {166, -74}}, color = {0, 0, 255}));
- connect(T_11_37.n, B11.p) annotation(
- Line(points = {{236, -100}, {256, -100}, {256, -118}, {280, -118}, {280, -118}}, color = {0, 0, 255}));
- connect(T_16_39.n, B39.p) annotation(
- Line(points = {{164, -336}, {164, -336}, {164, -344}, {166, -344}}, color = {0, 0, 255}));
- connect(T_16_39.p, B16.p) annotation(
- Line(points = {{164, -306}, {162, -306}, {162, -298}, {160, -298}, {160, -300}, {160, -300}}, color = {0, 0, 255}));
- connect(T_18_40.n, B18.p) annotation(
- Line(points = {{-36, -317}, {-36, -330}, {-32, -330}}, color = {0, 0, 255}));
- connect(T_18_40.p, B40.p) annotation(
- Line(points = {{-36, -287}, {-36, -278}}, color = {0, 0, 255}));
- connect(T_14_47.p, B47.p) annotation(
- Line(points = {{224, -258}, {206, -258}, {206, -246}, {200, -246}, {200, -244}}, color = {0, 0, 255}));
- connect(T_14_47.n, B14.p) annotation(
- Line(points = {{256, -258}, {274, -258}, {274, -262}, {288, -262}, {288, -264}}, color = {0, 0, 255}));
- connect(T_19_41.n, B41.p) annotation(
- Line(points = {{-136, -228}, {-138, -228}, {-138, -238}, {-136, -238}}, color = {0, 0, 255}));
- connect(T_19_41.p, B19.p) annotation(
- Line(points = {{-136, -194}, {-138, -194}, {-138, -180}, {-136, -180}}, color = {0, 0, 255}));
- connect(T_21_22.n, B21.p) annotation(
- Line(points = {{-318, -228}, {-318, -228}, {-318, -240}, {-312, -240}, {-312, -238}}, color = {0, 0, 255}));
- connect(T_21_22.p, B22.p) annotation(
- Line(points = {{-318, -196}, {-318, -196}, {-318, -184}, {-316, -184}, {-316, -184}, {-316, -184}}, color = {0, 0, 255}));
- connect(T_24_43.n, B24.p) annotation(
- Line(points = {{-124, -83}, {-124, -90}, {-116, -90}}, color = {0, 0, 255}));
- connect(T_24_43.p, B43.p) annotation(
- Line(points = {{-124, -61}, {-124, -49.5}, {-122, -49.5}, {-122, -38}}, color = {0, 0, 255}));
- connect(T_44_26.n, B26.p) annotation(
- Line(points = {{-134, 56}, {-134, 56}, {-134, 44}, {-132, 44}, {-132, 44}, {-130, 44}}, color = {0, 0, 255}));
- connect(T_44_26.p, B44.p) annotation(
- Line(points = {{-134, 92}, {-134, 92}, {-134, 102}, {-130, 102}}, color = {0, 0, 255}));
- connect(genBus11.pwPin, B1.p) annotation(
- Line(points = {{-168, 228}, {-170, 228}, {-170, 194}}, color = {0, 0, 255}));
- connect(pwFault.p, B28.p) annotation(
- Line(points = {{-392, 25}, {-426, 25}, {-426, 38}, {-434, 38}, {-434, 36}}, color = {0, 0, 255}));
- connect(T_30_46.p, B30.p) annotation(
- Line(points = {{-304, 136}, {-324, 136}, {-324, 124}, {-332, 124}, {-332, 124}, {-332, 124}}, color = {0, 0, 255}));
- connect(T_30_46.n, B46.p) annotation(
- Line(points = {{-270, 136}, {-240, 136}, {-240, 146}, {-238, 146}}, color = {0, 0, 255}));
- connect(T_20_42.n, B42.p) annotation(
- Line(points = {{-236, -299}, {-236, -308}, {-234, -308}}, color = {0, 0, 255}));
- connect(T_20_42.p, B20.p) annotation(
- Line(points = {{-236, -276}, {-236, -276}, {-236, -268}, {-232, -268}, {-232, -268}}, color = {0, 0, 255}));
- annotation(
- Diagram(coordinateSystem(extent = {{-600, -400}, {600, 400}})),
- Icon(coordinateSystem(extent = {{-600, -400}, {600, 400}})),
- uses(OpenIPSL(version = "1.5.0")));
- end Network;
-
- package GenBus
- model GenBus1
- extends OpenIPSL.Electrical.Essentials.pfComponent;
- OpenIPSL.Interfaces.PwPin pwPin annotation(
- Placement(visible = true, transformation(origin = {102, 2}, extent = {{-10, -10}, {10, 10}}, rotation = 0), iconTransformation(origin = {102, 2}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- OpenIPSL.Electrical.Machines.PSAT.Order6 order6(D = 0.1, M = 3.59 * 2, P_0 = P_0, Q_0 = Q_0, Sn = 9950, T1d0 = 4.30, T1q0 = 0.85, T2d0 = 0.032, T2q0 = 0.05, Taa = 0.01, V_0 = V_0, V_b = V_b, Vn = 11, angle_0 = angle_0, e1q(fixed = true), ra = 0, v(fixed = true), x1d = 0.169, x1q = 0.228, x2d = 0.135, x2q = 0.2, xd = 1.79, xq = 1.71) annotation(
- Placement(visible = true, transformation(origin = {32, 0}, extent = {{-12, -12}, {12, 12}}, rotation = 0)));
- OpenIPSL.Electrical.Controls.PSAT.AVR.AVRTypeII AVR(Ae = 0.0039, Be = 1.555, Ka = 20, Ke = 1, Kf = 0.063, Ta = 0.2, Te = 0.314, Tf = 0.35, Tr = 0.001, v0 = V_0, vrmax = 5, vrmin = -5) annotation(
- Placement(visible = true, transformation(origin = {-23, -4}, extent = {{-13, -12}, {13, 12}}, rotation = 0)));
- equation
- connect(order6.p, pwPin) annotation(
- Line(points = {{44, 0}, {98, 0}, {98, 2}, {102, 2}}, color = {0, 0, 255}));
- connect(order6.pm, order6.pm0) annotation(
- Line(points = {{18, -6}, {10, -6}, {10, -16}, {22, -16}, {22, -12}, {22, -12}, {22, -14}}, color = {0, 0, 127}));
- connect(AVR.vf, order6.vf) annotation(
- Line(points = {{-7, -4}, {0, -4}, {0, 6}, {18, 6}}, color = {0, 0, 127}));
- connect(AVR.v, order6.v) annotation(
- Line(points = {{-38, -12}, {-48, -12}, {-48, -38}, {62, -38}, {62, 4}, {46, 4}, {46, 4}}, color = {0, 0, 127}));
- connect(AVR.vf0, order6.vf0) annotation(
- Line(points = {{-22, -18}, {-24, -18}, {-24, -44}, {84, -44}, {84, 20}, {22, 20}, {22, 14}, {22, 14}}, color = {0, 0, 127}));
- connect(AVR.vref, AVR.vref0) annotation(
- Line(points = {{-38, 4}, {-48, 4}, {-48, 18}, {-22, 18}, {-22, 10}, {-22, 10}}, color = {0, 0, 127}));
- annotation(
- Icon(graphics = {Ellipse(origin = {13, 7}, extent = {{-83, 67}, {83, -67}}, endAngle = 360), Line(origin = {10.7956, 12.6842}, points = {{-60.7956, -20.6842}, {-10.7956, 21.3158}, {31.2044, -12.6842}, {61.2044, 17.3158}, {61.2044, 19.3158}})}, coordinateSystem(initialScale = 0.1)),
- Diagram);
- end GenBus1;
-
- model GenBus7
- extends OpenIPSL.Electrical.Essentials.pfComponent;
- OpenIPSL.Interfaces.PwPin pwPin annotation(
- Placement(visible = true, transformation(origin = {102, 2}, extent = {{-10, -10}, {10, 10}}, rotation = 0), iconTransformation(origin = {102, 2}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- OpenIPSL.Electrical.Machines.PSAT.Order6 order6(D = 0.1, M = 3.59 * 2, P_0 = P_0, Q_0 = Q_0, Sn = 9950, T1d0 = 4.30, T1q0 = 0.85, T2d0 = 0.032, T2q0 = 0.05, Taa = 0.01, V_0 = V_0, V_b = V_b, Vn = 11, angle_0 = angle_0, e1q(fixed = true), ra = 0, v(fixed = true), x1d = 0.169, x1q = 0.228, x2d = 0.135, x2q = 0.2, xd = 1.79, xq = 1.71) annotation(
- Placement(visible = true, transformation(origin = {32, 0}, extent = {{-12, -12}, {12, 12}}, rotation = 0)));
- OpenIPSL.Electrical.Controls.PSAT.AVR.AVRTypeII AVR(Ae = 0.0039, Be = 1.555, Ka = 20, Ke = 1, Kf = 0.063, Ta = 0.2, Te = 0.314, Tf = 0.35, Tr = 0.001, v0 = V_0, vrmax = 5, vrmin = -5) annotation(
- Placement(visible = true, transformation(origin = {-23, -4}, extent = {{-13, -12}, {13, 12}}, rotation = 0)));
- equation
- connect(order6.p, pwPin) annotation(
- Line(points = {{44, 0}, {98, 0}, {98, 2}, {102, 2}}, color = {0, 0, 255}));
- connect(order6.pm, order6.pm0) annotation(
- Line(points = {{18, -6}, {10, -6}, {10, -16}, {22, -16}, {22, -12}, {22, -12}, {22, -14}}, color = {0, 0, 127}));
- connect(AVR.vf, order6.vf) annotation(
- Line(points = {{-7, -4}, {0, -4}, {0, 6}, {18, 6}}, color = {0, 0, 127}));
- connect(AVR.v, order6.v) annotation(
- Line(points = {{-38, -12}, {-48, -12}, {-48, -38}, {62, -38}, {62, 4}, {46, 4}, {46, 4}}, color = {0, 0, 127}));
- connect(AVR.vf0, order6.vf0) annotation(
- Line(points = {{-22, -18}, {-24, -18}, {-24, -44}, {84, -44}, {84, 20}, {22, 20}, {22, 14}, {22, 14}}, color = {0, 0, 127}));
- connect(AVR.vref, AVR.vref0) annotation(
- Line(points = {{-38, 4}, {-48, 4}, {-48, 18}, {-22, 18}, {-22, 10}, {-22, 10}}, color = {0, 0, 127}));
- annotation(
- Icon(graphics = {Ellipse(origin = {13, 7}, extent = {{-83, 67}, {83, -67}}, endAngle = 360), Line(origin = {10.7956, 12.6842}, points = {{-60.7956, -20.6842}, {-10.7956, 21.3158}, {31.2044, -12.6842}, {61.2044, 17.3158}, {61.2044, 19.3158}})}, coordinateSystem(initialScale = 0.1)),
- Diagram);
- end GenBus7;
-
- model GenBus15
- extends OpenIPSL.Electrical.Essentials.pfComponent;
- OpenIPSL.Interfaces.PwPin pwPin annotation(
- Placement(visible = true, transformation(origin = {102, 2}, extent = {{-10, -10}, {10, 10}}, rotation = 0), iconTransformation(origin = {102, 2}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- OpenIPSL.Electrical.Machines.PSAT.Order6 order6(D = 0.1, M = 3.59 * 2, P_0 = P_0, Q_0 = Q_0, Sn = 9950, T1d0 = 4.30, T1q0 = 0.85, T2d0 = 0.032, T2q0 = 0.05, Taa = 0.01, V_0 = V_0, V_b = V_b, Vn = 11, angle_0 = angle_0, e1q(fixed = true), ra = 0, v(fixed = true), x1d = 0.169, x1q = 0.228, x2d = 0.135, x2q = 0.2, xd = 1.79, xq = 1.71) annotation(
- Placement(visible = true, transformation(origin = {32, 0}, extent = {{-12, -12}, {12, 12}}, rotation = 0)));
- OpenIPSL.Electrical.Controls.PSAT.AVR.AVRTypeII AVR(Ae = 0.0039, Be = 1.555, Ka = 20, Ke = 1, Kf = 0.063, Ta = 0.2, Te = 0.314, Tf = 0.35, Tr = 0.001, v0 = V_0, vrmax = 5, vrmin = -5) annotation(
- Placement(visible = true, transformation(origin = {-23, -4}, extent = {{-13, -12}, {13, 12}}, rotation = 0)));
- equation
- connect(order6.p, pwPin) annotation(
- Line(points = {{44, 0}, {98, 0}, {98, 2}, {102, 2}}, color = {0, 0, 255}));
- connect(order6.pm, order6.pm0) annotation(
- Line(points = {{18, -6}, {10, -6}, {10, -16}, {22, -16}, {22, -12}, {22, -12}, {22, -14}}, color = {0, 0, 127}));
- connect(AVR.vf, order6.vf) annotation(
- Line(points = {{-7, -4}, {0, -4}, {0, 6}, {18, 6}}, color = {0, 0, 127}));
- connect(AVR.v, order6.v) annotation(
- Line(points = {{-38, -12}, {-48, -12}, {-48, -38}, {62, -38}, {62, 4}, {46, 4}, {46, 4}}, color = {0, 0, 127}));
- connect(AVR.vf0, order6.vf0) annotation(
- Line(points = {{-22, -18}, {-24, -18}, {-24, -44}, {84, -44}, {84, 20}, {22, 20}, {22, 14}, {22, 14}}, color = {0, 0, 127}));
- connect(AVR.vref, AVR.vref0) annotation(
- Line(points = {{-38, 4}, {-48, 4}, {-48, 18}, {-22, 18}, {-22, 10}, {-22, 10}}, color = {0, 0, 127}));
- annotation(
- Icon(graphics = {Ellipse(origin = {13, 7}, extent = {{-83, 67}, {83, -67}}, endAngle = 360), Line(origin = {10.7956, 12.6842}, points = {{-60.7956, -20.6842}, {-10.7956, 21.3158}, {31.2044, -12.6842}, {61.2044, 17.3158}, {61.2044, 19.3158}})}, coordinateSystem(initialScale = 0.1)),
- Diagram);
- end GenBus15;
-
- model GenBus17
- extends OpenIPSL.Electrical.Essentials.pfComponent;
- OpenIPSL.Interfaces.PwPin pwPin annotation(
- Placement(visible = true, transformation(origin = {102, 2}, extent = {{-10, -10}, {10, 10}}, rotation = 0), iconTransformation(origin = {102, 2}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- OpenIPSL.Electrical.Machines.PSAT.Order6 order6(D = 0.1, M = 3.59 * 2, P_0 = P_0, Q_0 = Q_0, Sn = 9950, T1d0 = 4.30, T1q0 = 0.85, T2d0 = 0.032, T2q0 = 0.05, Taa = 0.01, V_0 = V_0, V_b = V_b, Vn = 11, angle_0 = angle_0, e1q(fixed = true), ra = 0, v(fixed = true), x1d = 0.169, x1q = 0.228, x2d = 0.135, x2q = 0.2, xd = 1.79, xq = 1.71) annotation(
- Placement(visible = true, transformation(origin = {32, 0}, extent = {{-12, -12}, {12, 12}}, rotation = 0)));
- OpenIPSL.Electrical.Controls.PSAT.AVR.AVRTypeII AVR(Ae = 0.0039, Be = 1.555, Ka = 20, Ke = 1, Kf = 0.063, Ta = 0.2, Te = 0.314, Tf = 0.35, Tr = 0.001, v0 = V_0, vrmax = 5, vrmin = -5) annotation(
- Placement(visible = true, transformation(origin = {-23, -4}, extent = {{-13, -12}, {13, 12}}, rotation = 0)));
- equation
- connect(order6.p, pwPin) annotation(
- Line(points = {{44, 0}, {98, 0}, {98, 2}, {102, 2}}, color = {0, 0, 255}));
- connect(order6.pm, order6.pm0) annotation(
- Line(points = {{18, -6}, {10, -6}, {10, -16}, {22, -16}, {22, -12}, {22, -12}, {22, -14}}, color = {0, 0, 127}));
- connect(AVR.vf, order6.vf) annotation(
- Line(points = {{-7, -4}, {0, -4}, {0, 6}, {18, 6}}, color = {0, 0, 127}));
- connect(AVR.v, order6.v) annotation(
- Line(points = {{-38, -12}, {-48, -12}, {-48, -38}, {62, -38}, {62, 4}, {46, 4}, {46, 4}}, color = {0, 0, 127}));
- connect(AVR.vf0, order6.vf0) annotation(
- Line(points = {{-22, -18}, {-24, -18}, {-24, -44}, {84, -44}, {84, 20}, {22, 20}, {22, 14}, {22, 14}}, color = {0, 0, 127}));
- connect(AVR.vref, AVR.vref0) annotation(
- Line(points = {{-38, 4}, {-48, 4}, {-48, 18}, {-22, 18}, {-22, 10}, {-22, 10}}, color = {0, 0, 127}));
- annotation(
- Icon(graphics = {Ellipse(origin = {13, 7}, extent = {{-83, 67}, {83, -67}}, endAngle = 360), Line(origin = {10.7956, 12.6842}, points = {{-60.7956, -20.6842}, {-10.7956, 21.3158}, {31.2044, -12.6842}, {61.2044, 17.3158}, {61.2044, 19.3158}})}, coordinateSystem(initialScale = 0.1)),
- Diagram);
- end GenBus17;
-
- model GenBus19
- extends OpenIPSL.Electrical.Essentials.pfComponent;
- OpenIPSL.Interfaces.PwPin pwPin annotation(
- Placement(visible = true, transformation(origin = {102, 2}, extent = {{-10, -10}, {10, 10}}, rotation = 0), iconTransformation(origin = {102, 2}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- OpenIPSL.Electrical.Machines.PSAT.Order6 order6(D = 0.1, M = 3.59 * 2, P_0 = P_0, Q_0 = Q_0, Sn = 2000, T1d0 = 4.30, T1q0 = 0.85, T2d0 = 0.032, T2q0 = 0.05, Taa = 0.01, V_0 = V_0, V_b = V_b, Vn = 11, angle_0 = angle_0, e1q(fixed = true), ra = 0, v(fixed = true), x1d = 0.169, x1q = 0.228, x2d = 0.135, x2q = 0.2, xd = 1.79, xq = 1.71) annotation(
- Placement(visible = true, transformation(origin = {32, 0}, extent = {{-12, -12}, {12, 12}}, rotation = 0)));
- OpenIPSL.Electrical.Controls.PSAT.AVR.AVRTypeII AVR(Ae = 0.0039, Be = 1.555, Ka = 20, Ke = 1, Kf = 0.063, Ta = 0.2, Te = 0.314, Tf = 0.35, Tr = 0.001, v0 = V_0, vrmax = 5, vrmin = -5) annotation(
- Placement(visible = true, transformation(origin = {-23, -4}, extent = {{-13, -12}, {13, 12}}, rotation = 0)));
- equation
- connect(order6.p, pwPin) annotation(
- Line(points = {{44, 0}, {98, 0}, {98, 2}, {102, 2}}, color = {0, 0, 255}));
- connect(order6.pm, order6.pm0) annotation(
- Line(points = {{18, -6}, {10, -6}, {10, -16}, {22, -16}, {22, -12}, {22, -12}, {22, -14}}, color = {0, 0, 127}));
- connect(AVR.vf, order6.vf) annotation(
- Line(points = {{-7, -4}, {0, -4}, {0, 6}, {18, 6}}, color = {0, 0, 127}));
- connect(AVR.v, order6.v) annotation(
- Line(points = {{-38, -12}, {-48, -12}, {-48, -38}, {62, -38}, {62, 4}, {46, 4}, {46, 4}}, color = {0, 0, 127}));
- connect(AVR.vf0, order6.vf0) annotation(
- Line(points = {{-22, -18}, {-24, -18}, {-24, -44}, {84, -44}, {84, 20}, {22, 20}, {22, 14}, {22, 14}}, color = {0, 0, 127}));
- connect(AVR.vref, AVR.vref0) annotation(
- Line(points = {{-38, 4}, {-48, 4}, {-48, 18}, {-22, 18}, {-22, 10}, {-22, 10}}, color = {0, 0, 127}));
- annotation(
- Icon(graphics = {Ellipse(origin = {13, 7}, extent = {{-83, 67}, {83, -67}}, endAngle = 360), Line(origin = {10.7956, 12.6842}, points = {{-60.7956, -20.6842}, {-10.7956, 21.3158}, {31.2044, -12.6842}, {61.2044, 17.3158}, {61.2044, 19.3158}})}, coordinateSystem(initialScale = 0.1)),
- Diagram);
- end GenBus19;
-
- model GenBus30
- extends OpenIPSL.Electrical.Essentials.pfComponent;
- OpenIPSL.Interfaces.PwPin pwPin annotation(
- Placement(visible = true, transformation(origin = {102, 2}, extent = {{-10, -10}, {10, 10}}, rotation = 0), iconTransformation(origin = {102, 2}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- OpenIPSL.Electrical.Machines.PSAT.Order6 order6(D = 0.1, M = 3.59 * 2, P_0 = P_0, Q_0 = Q_0, Sn = 9950, T1d0 = 4.30, T1q0 = 0.85, T2d0 = 0.032, T2q0 = 0.05, Taa = 0.01, V_0 = V_0, V_b = V_b, Vn = 11, angle_0 = angle_0, e1q(fixed = true), ra = 0, v(fixed = true), x1d = 0.169, x1q = 0.228, x2d = 0.135, x2q = 0.2, xd = 1.79, xq = 1.71) annotation(
- Placement(visible = true, transformation(origin = {32, 0}, extent = {{-12, -12}, {12, 12}}, rotation = 0)));
- OpenIPSL.Electrical.Controls.PSAT.AVR.AVRTypeII AVR(Ae = 0.0039, Be = 1.555, Ka = 20, Ke = 1, Kf = 0.063, Ta = 0.2, Te = 0.314, Tf = 0.35, Tr = 0.001, v0 = V_0, vrmax = 5, vrmin = -5) annotation(
- Placement(visible = true, transformation(origin = {-23, -4}, extent = {{-13, -12}, {13, 12}}, rotation = 0)));
- equation
- connect(order6.p, pwPin) annotation(
- Line(points = {{44, 0}, {98, 0}, {98, 2}, {102, 2}}, color = {0, 0, 255}));
- connect(order6.pm, order6.pm0) annotation(
- Line(points = {{18, -6}, {10, -6}, {10, -16}, {22, -16}, {22, -12}, {22, -12}, {22, -14}}, color = {0, 0, 127}));
- connect(AVR.vf, order6.vf) annotation(
- Line(points = {{-7, -4}, {0, -4}, {0, 6}, {18, 6}}, color = {0, 0, 127}));
- connect(AVR.v, order6.v) annotation(
- Line(points = {{-38, -12}, {-48, -12}, {-48, -38}, {62, -38}, {62, 4}, {46, 4}, {46, 4}}, color = {0, 0, 127}));
- connect(AVR.vf0, order6.vf0) annotation(
- Line(points = {{-22, -18}, {-24, -18}, {-24, -44}, {84, -44}, {84, 20}, {22, 20}, {22, 14}, {22, 14}}, color = {0, 0, 127}));
- connect(AVR.vref, AVR.vref0) annotation(
- Line(points = {{-38, 4}, {-48, 4}, {-48, 18}, {-22, 18}, {-22, 10}, {-22, 10}}, color = {0, 0, 127}));
- annotation(
- Icon(graphics = {Ellipse(origin = {13, 7}, extent = {{-83, 67}, {83, -67}}, endAngle = 360), Line(origin = {10.7956, 12.6842}, points = {{-60.7956, -20.6842}, {-10.7956, 21.3158}, {31.2044, -12.6842}, {61.2044, 17.3158}, {61.2044, 19.3158}})}, coordinateSystem(initialScale = 0.1)),
- Diagram);
- end GenBus30;
-
- model GenBus33
- extends OpenIPSL.Electrical.Essentials.pfComponent;
- OpenIPSL.Interfaces.PwPin pwPin annotation(
- Placement(visible = true, transformation(origin = {102, 2}, extent = {{-10, -10}, {10, 10}}, rotation = 0), iconTransformation(origin = {102, 2}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- OpenIPSL.Electrical.Machines.PSAT.Order6 order6(D = 0.1, M = 3.59 * 2, P_0 = P_0, Q_0 = Q_0, Sn = 9950, T1d0 = 4.30, T1q0 = 0.85, T2d0 = 0.032, T2q0 = 0.05, Taa = 0.01, V_0 = V_0, V_b = V_b, Vn = 11, angle_0 = angle_0, e1q(fixed = true), ra = 0, v(fixed = true), x1d = 0.169, x1q = 0.228, x2d = 0.135, x2q = 0.2, xd = 1.79, xq = 1.71) annotation(
- Placement(visible = true, transformation(origin = {32, 0}, extent = {{-12, -12}, {12, 12}}, rotation = 0)));
- OpenIPSL.Electrical.Controls.PSAT.AVR.AVRTypeII AVR(Ae = 0.0039, Be = 1.555, Ka = 20, Ke = 1, Kf = 0.063, Ta = 0.2, Te = 0.314, Tf = 0.35, Tr = 0.001, v0 = V_0, vrmax = 5, vrmin = -5) annotation(
- Placement(visible = true, transformation(origin = {-23, -4}, extent = {{-13, -12}, {13, 12}}, rotation = 0)));
- equation
- connect(order6.p, pwPin) annotation(
- Line(points = {{44, 0}, {98, 0}, {98, 2}, {102, 2}}, color = {0, 0, 255}));
- connect(order6.pm, order6.pm0) annotation(
- Line(points = {{18, -6}, {10, -6}, {10, -16}, {22, -16}, {22, -12}, {22, -12}, {22, -14}}, color = {0, 0, 127}));
- connect(AVR.vf, order6.vf) annotation(
- Line(points = {{-7, -4}, {0, -4}, {0, 6}, {18, 6}}, color = {0, 0, 127}));
- connect(AVR.v, order6.v) annotation(
- Line(points = {{-38, -12}, {-48, -12}, {-48, -38}, {62, -38}, {62, 4}, {46, 4}, {46, 4}}, color = {0, 0, 127}));
- connect(AVR.vf0, order6.vf0) annotation(
- Line(points = {{-22, -18}, {-24, -18}, {-24, -44}, {84, -44}, {84, 20}, {22, 20}, {22, 14}, {22, 14}}, color = {0, 0, 127}));
- connect(AVR.vref, AVR.vref0) annotation(
- Line(points = {{-38, 4}, {-48, 4}, {-48, 18}, {-22, 18}, {-22, 10}, {-22, 10}}, color = {0, 0, 127}));
- annotation(
- Icon(graphics = {Ellipse(origin = {13, 7}, extent = {{-83, 67}, {83, -67}}, endAngle = 360), Line(origin = {10.7956, 12.6842}, points = {{-60.7956, -20.6842}, {-10.7956, 21.3158}, {31.2044, -12.6842}, {61.2044, 17.3158}, {61.2044, 19.3158}})}, coordinateSystem(initialScale = 0.1)),
- Diagram);
- end GenBus33;
-
- model GenBus44
- extends OpenIPSL.Electrical.Essentials.pfComponent;
- OpenIPSL.Interfaces.PwPin pwPin annotation(
- Placement(visible = true, transformation(origin = {102, 2}, extent = {{-10, -10}, {10, 10}}, rotation = 0), iconTransformation(origin = {102, 2}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- OpenIPSL.Electrical.Machines.PSAT.Order6 order6(D = 0.1, M = 3.59 * 2, P_0 = P_0, Q_0 = Q_0, Sn = 9950, T1d0 = 4.30, T1q0 = 0.85, T2d0 = 0.032, T2q0 = 0.05, Taa = 0.01, V_0 = V_0, V_b = V_b, Vn = 11, angle_0 = angle_0, e1q(fixed = true), ra = 0, v(fixed = true), x1d = 0.169, x1q = 0.228, x2d = 0.135, x2q = 0.2, xd = 1.79, xq = 1.71) annotation(
- Placement(visible = true, transformation(origin = {32, 0}, extent = {{-12, -12}, {12, 12}}, rotation = 0)));
- OpenIPSL.Electrical.Controls.PSAT.AVR.AVRTypeII AVR(Ae = 0.0039, Be = 1.555, Ka = 20, Ke = 1, Kf = 0.063, Ta = 0.2, Te = 0.314, Tf = 0.35, Tr = 0.001, v0 = V_0, vrmax = 5, vrmin = -5) annotation(
- Placement(visible = true, transformation(origin = {-23, -4}, extent = {{-13, -12}, {13, 12}}, rotation = 0)));
- equation
- connect(order6.p, pwPin) annotation(
- Line(points = {{44, 0}, {98, 0}, {98, 2}, {102, 2}}, color = {0, 0, 255}));
- connect(order6.pm, order6.pm0) annotation(
- Line(points = {{18, -6}, {10, -6}, {10, -16}, {22, -16}, {22, -12}, {22, -12}, {22, -14}}, color = {0, 0, 127}));
- connect(AVR.vf, order6.vf) annotation(
- Line(points = {{-7, -4}, {0, -4}, {0, 6}, {18, 6}}, color = {0, 0, 127}));
- connect(AVR.v, order6.v) annotation(
- Line(points = {{-38, -12}, {-48, -12}, {-48, -38}, {62, -38}, {62, 4}, {46, 4}, {46, 4}}, color = {0, 0, 127}));
- connect(AVR.vf0, order6.vf0) annotation(
- Line(points = {{-22, -18}, {-24, -18}, {-24, -44}, {84, -44}, {84, 20}, {22, 20}, {22, 14}, {22, 14}}, color = {0, 0, 127}));
- connect(AVR.vref, AVR.vref0) annotation(
- Line(points = {{-38, 4}, {-48, 4}, {-48, 18}, {-22, 18}, {-22, 10}, {-22, 10}}, color = {0, 0, 127}));
- annotation(
- Icon(graphics = {Ellipse(origin = {13, 7}, extent = {{-83, 67}, {83, -67}}, endAngle = 360), Line(origin = {10.7956, 12.6842}, points = {{-60.7956, -20.6842}, {-10.7956, 21.3158}, {31.2044, -12.6842}, {61.2044, 17.3158}, {61.2044, 19.3158}})}, coordinateSystem(initialScale = 0.1)),
- Diagram);
- end GenBus44;
-
- model GenBus48
- extends OpenIPSL.Electrical.Essentials.pfComponent;
- OpenIPSL.Interfaces.PwPin pwPin annotation(
- Placement(visible = true, transformation(origin = {102, 2}, extent = {{-10, -10}, {10, 10}}, rotation = 0), iconTransformation(origin = {102, 2}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- OpenIPSL.Electrical.Machines.PSAT.Order6 order6(D = 0.1, M = 3.59 * 2, P_0 = P_0, Q_0 = Q_0, Sn = 9950, T1d0 = 4.30, T1q0 = 0.85, T2d0 = 0.032, T2q0 = 0.05, Taa = 0.01, V_0 = V_0, V_b = V_b, Vn = 11, angle_0 = angle_0, e1q(fixed = true), ra = 0, v(fixed = true), x1d = 0.169, x1q = 0.228, x2d = 0.135, x2q = 0.2, xd = 1.79, xq = 1.71) annotation(
- Placement(visible = true, transformation(origin = {32, 0}, extent = {{-12, -12}, {12, 12}}, rotation = 0)));
- OpenIPSL.Electrical.Controls.PSAT.AVR.AVRTypeII AVR(Ae = 0.0039, Be = 1.555, Ka = 20, Ke = 1, Kf = 0.063, Ta = 0.2, Te = 0.314, Tf = 0.35, Tr = 0.001, v0 = V_0, vrmax = 5, vrmin = -5) annotation(
- Placement(visible = true, transformation(origin = {-23, -4}, extent = {{-13, -12}, {13, 12}}, rotation = 0)));
- equation
- connect(order6.p, pwPin) annotation(
- Line(points = {{44, 0}, {98, 0}, {98, 2}, {102, 2}}, color = {0, 0, 255}));
- connect(order6.pm, order6.pm0) annotation(
- Line(points = {{18, -6}, {10, -6}, {10, -16}, {22, -16}, {22, -12}, {22, -12}, {22, -14}}, color = {0, 0, 127}));
- connect(AVR.vf, order6.vf) annotation(
- Line(points = {{-7, -4}, {0, -4}, {0, 6}, {18, 6}}, color = {0, 0, 127}));
- connect(AVR.v, order6.v) annotation(
- Line(points = {{-38, -12}, {-48, -12}, {-48, -38}, {62, -38}, {62, 4}, {46, 4}, {46, 4}}, color = {0, 0, 127}));
- connect(AVR.vf0, order6.vf0) annotation(
- Line(points = {{-22, -18}, {-24, -18}, {-24, -44}, {84, -44}, {84, 20}, {22, 20}, {22, 14}, {22, 14}}, color = {0, 0, 127}));
- connect(AVR.vref, AVR.vref0) annotation(
- Line(points = {{-38, 4}, {-48, 4}, {-48, 18}, {-22, 18}, {-22, 10}, {-22, 10}}, color = {0, 0, 127}));
- annotation(
- Icon(graphics = {Ellipse(origin = {13, 7}, extent = {{-83, 67}, {83, -67}}, endAngle = 360), Line(origin = {10.7956, 12.6842}, points = {{-60.7956, -20.6842}, {-10.7956, 21.3158}, {31.2044, -12.6842}, {61.2044, 17.3158}, {61.2044, 19.3158}})}, coordinateSystem(initialScale = 0.1)),
- Diagram);
- end GenBus48;
-
- model GenBus49
- extends OpenIPSL.Electrical.Essentials.pfComponent;
- OpenIPSL.Interfaces.PwPin pwPin annotation(
- Placement(visible = true, transformation(origin = {102, 2}, extent = {{-10, -10}, {10, 10}}, rotation = 0), iconTransformation(origin = {102, 2}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- OpenIPSL.Electrical.Machines.PSAT.Order6 order6(D = 0.1, M = 3.59 * 2, P_0 = P_0, Q_0 = Q_0, Sn = 9950, T1d0 = 4.30, T1q0 = 0.85, T2d0 = 0.032, T2q0 = 0.05, Taa = 0.01, V_0 = V_0, V_b = V_b, Vn = 11, angle_0 = angle_0, e1q(fixed = true), ra = 0, v(fixed = true), x1d = 0.169, x1q = 0.228, x2d = 0.135, x2q = 0.2, xd = 1.79, xq = 1.71) annotation(
- Placement(visible = true, transformation(origin = {32, 0}, extent = {{-12, -12}, {12, 12}}, rotation = 0)));
- OpenIPSL.Electrical.Controls.PSAT.AVR.AVRTypeII AVR(Ae = 0.0039, Be = 1.555, Ka = 20, Ke = 1, Kf = 0.063, Ta = 0.2, Te = 0.314, Tf = 0.35, Tr = 0.001, v0 = V_0, vrmax = 5, vrmin = -5) annotation(
- Placement(visible = true, transformation(origin = {-23, -4}, extent = {{-13, -12}, {13, 12}}, rotation = 0)));
- equation
- connect(order6.p, pwPin) annotation(
- Line(points = {{44, 0}, {98, 0}, {98, 2}, {102, 2}}, color = {0, 0, 255}));
- connect(order6.pm, order6.pm0) annotation(
- Line(points = {{18, -6}, {10, -6}, {10, -16}, {22, -16}, {22, -12}, {22, -12}, {22, -14}}, color = {0, 0, 127}));
- connect(AVR.vf, order6.vf) annotation(
- Line(points = {{-7, -4}, {0, -4}, {0, 6}, {18, 6}}, color = {0, 0, 127}));
- connect(AVR.v, order6.v) annotation(
- Line(points = {{-38, -12}, {-48, -12}, {-48, -38}, {62, -38}, {62, 4}, {46, 4}, {46, 4}}, color = {0, 0, 127}));
- connect(AVR.vf0, order6.vf0) annotation(
- Line(points = {{-22, -18}, {-24, -18}, {-24, -44}, {84, -44}, {84, 20}, {22, 20}, {22, 14}, {22, 14}}, color = {0, 0, 127}));
- connect(AVR.vref, AVR.vref0) annotation(
- Line(points = {{-38, 4}, {-48, 4}, {-48, 18}, {-22, 18}, {-22, 10}, {-22, 10}}, color = {0, 0, 127}));
- annotation(
- Icon(graphics = {Ellipse(origin = {13, 7}, extent = {{-83, 67}, {83, -67}}, endAngle = 360), Line(origin = {10.7956, 12.6842}, points = {{-60.7956, -20.6842}, {-10.7956, 21.3158}, {31.2044, -12.6842}, {61.2044, 17.3158}, {61.2044, 19.3158}})}, coordinateSystem(initialScale = 0.1)),
- Diagram);
- end GenBus49;
-
- model GenBus50
- extends OpenIPSL.Electrical.Essentials.pfComponent;
- OpenIPSL.Interfaces.PwPin pwPin annotation(
- Placement(visible = true, transformation(origin = {102, 2}, extent = {{-10, -10}, {10, 10}}, rotation = 0), iconTransformation(origin = {102, 2}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- OpenIPSL.Electrical.Machines.PSAT.Order6 order6(D = 0.1, M = 3.59 * 2, P_0 = P_0, Q_0 = Q_0, Sn = 9950, T1d0 = 4.30, T1q0 = 0.85, T2d0 = 0.032, T2q0 = 0.05, Taa = 0.01, V_0 = V_0, V_b = V_b, Vn = 11, angle_0 = angle_0, e1q(fixed = true), ra = 0, v(fixed = true), x1d = 0.169, x1q = 0.228, x2d = 0.135, x2q = 0.2, xd = 1.79, xq = 1.71) annotation(
- Placement(visible = true, transformation(origin = {32, 0}, extent = {{-12, -12}, {12, 12}}, rotation = 0)));
- OpenIPSL.Electrical.Controls.PSAT.AVR.AVRTypeII AVR(Ae = 0.0039, Be = 1.555, Ka = 20, Ke = 1, Kf = 0.063, Ta = 0.2, Te = 0.314, Tf = 0.35, Tr = 0.001, v0 = V_0, vrmax = 5, vrmin = -5) annotation(
- Placement(visible = true, transformation(origin = {-23, -4}, extent = {{-13, -12}, {13, 12}}, rotation = 0)));
- equation
- connect(order6.p, pwPin) annotation(
- Line(points = {{44, 0}, {98, 0}, {98, 2}, {102, 2}}, color = {0, 0, 255}));
- connect(order6.pm, order6.pm0) annotation(
- Line(points = {{18, -6}, {10, -6}, {10, -16}, {22, -16}, {22, -12}, {22, -12}, {22, -14}}, color = {0, 0, 127}));
- connect(AVR.vf, order6.vf) annotation(
- Line(points = {{-7, -4}, {0, -4}, {0, 6}, {18, 6}}, color = {0, 0, 127}));
- connect(AVR.v, order6.v) annotation(
- Line(points = {{-38, -12}, {-48, -12}, {-48, -38}, {62, -38}, {62, 4}, {46, 4}, {46, 4}}, color = {0, 0, 127}));
- connect(AVR.vf0, order6.vf0) annotation(
- Line(points = {{-22, -18}, {-24, -18}, {-24, -44}, {84, -44}, {84, 20}, {22, 20}, {22, 14}, {22, 14}}, color = {0, 0, 127}));
- connect(AVR.vref, AVR.vref0) annotation(
- Line(points = {{-38, 4}, {-48, 4}, {-48, 18}, {-22, 18}, {-22, 10}, {-22, 10}}, color = {0, 0, 127}));
- annotation(
- Icon(graphics = {Ellipse(origin = {13, 7}, extent = {{-83, 67}, {83, -67}}, endAngle = 360), Line(origin = {10.7956, 12.6842}, points = {{-60.7956, -20.6842}, {-10.7956, 21.3158}, {31.2044, -12.6842}, {61.2044, 17.3158}, {61.2044, 19.3158}})}, coordinateSystem(initialScale = 0.1)),
- Diagram);
- end GenBus50;
-
- model GenBus38
- extends OpenIPSL.Electrical.Essentials.pfComponent;
- OpenIPSL.Interfaces.PwPin pwPin annotation(
- Placement(visible = true, transformation(origin = {102, 2}, extent = {{-10, -10}, {10, 10}}, rotation = 0), iconTransformation(origin = {102, 2}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- OpenIPSL.Electrical.Machines.PSAT.Order6 order6(D = 0.1, M = 3.59 * 2, P_0 = P_0, Q_0 = Q_0, Sn = 9950, T1d0 = 4.30, T1q0 = 0.85, T2d0 = 0.032, T2q0 = 0.05, Taa = 0.01, V_0 = V_0, V_b = V_b, Vn = 11, angle_0 = angle_0, e1q(fixed = true), ra = 0, v(fixed = true), x1d = 0.169, x1q = 0.228, x2d = 0.135, x2q = 0.2, xd = 1.79, xq = 1.71) annotation(
- Placement(visible = true, transformation(origin = {32, 0}, extent = {{-12, -12}, {12, 12}}, rotation = 0)));
- OpenIPSL.Electrical.Controls.PSAT.AVR.AVRTypeII AVR(Ae = 0.0039, Be = 1.555, Ka = 20, Ke = 1, Kf = 0.063, Ta = 0.2, Te = 0.314, Tf = 0.35, Tr = 0.001, v0 = V_0, vrmax = 5, vrmin = -5) annotation(
- Placement(visible = true, transformation(origin = {-23, -4}, extent = {{-13, -12}, {13, 12}}, rotation = 0)));
- equation
- connect(order6.p, pwPin) annotation(
- Line(points = {{44, 0}, {98, 0}, {98, 2}, {102, 2}}, color = {0, 0, 255}));
- connect(order6.pm, order6.pm0) annotation(
- Line(points = {{18, -6}, {10, -6}, {10, -16}, {22, -16}, {22, -12}, {22, -12}, {22, -14}}, color = {0, 0, 127}));
- connect(AVR.vf, order6.vf) annotation(
- Line(points = {{-7, -4}, {0, -4}, {0, 6}, {18, 6}}, color = {0, 0, 127}));
- connect(AVR.v, order6.v) annotation(
- Line(points = {{-38, -12}, {-48, -12}, {-48, -38}, {62, -38}, {62, 4}, {46, 4}, {46, 4}}, color = {0, 0, 127}));
- connect(AVR.vf0, order6.vf0) annotation(
- Line(points = {{-22, -18}, {-24, -18}, {-24, -44}, {84, -44}, {84, 20}, {22, 20}, {22, 14}, {22, 14}}, color = {0, 0, 127}));
- connect(AVR.vref, AVR.vref0) annotation(
- Line(points = {{-38, 4}, {-48, 4}, {-48, 18}, {-22, 18}, {-22, 10}, {-22, 10}}, color = {0, 0, 127}));
- annotation(
- Icon(graphics = {Ellipse(origin = {13, 7}, extent = {{-83, 67}, {83, -67}}, endAngle = 360), Line(origin = {10.7956, 12.6842}, points = {{-60.7956, -20.6842}, {-10.7956, 21.3158}, {31.2044, -12.6842}, {61.2044, 17.3158}, {61.2044, 19.3158}})}, coordinateSystem(initialScale = 0.1)),
- Diagram);
- end GenBus38;
- end GenBus;
- annotation(
- uses(OpenIPSL(version = "1.5.0"), Modelica(version = "3.2.3")));
- end Modelling_of_51_bus_system_case1;
-
- package Modelling_of_51_bus_system_case2
- model Network
- OpenIPSL.Electrical.Buses.Bus B1(P_0 = 45.70, Q_0 = 366.30, V_0 = 1.080, V_b =11, angle_0 = 0, displayPF = true) annotation(
- Placement(visible = true, transformation(origin = {-170, 194}, extent = {{-18, -18}, {18, 18}}, rotation = -90)));
- OpenIPSL.Electrical.Buses.Bus B49(P_0 = 350, Q_0 = -145.71, V_0 = 1, V_b = 11, angle_0 = 8.095, displayPF = true) annotation(
- Placement(visible = true, transformation(origin = {-50, 194}, extent = {{-16, -16}, {16, 16}}, rotation = -90)));
- OpenIPSL.Electrical.Buses.Bus B50(P_0 = 120, Q_0 = 22.41, V_0 = 1, V_b = 11, angle_0 = 8.022, displayPF = true) annotation(
- Placement(visible = true, transformation(origin = {64, 194}, extent = {{-14, -14}, {14, 14}}, rotation = -90)));
- OpenIPSL.Electrical.Buses.Bus B35(P_0 = 0, Q_0 = 0, V_0 = 0.946, V_b = 11.459, angle_0 = -1.496, displayPF = true) annotation(
- Placement(visible = true, transformation(origin = {173, 195}, extent = {{-15, -15}, {15, 15}}, rotation = -90)));
- OpenIPSL.Electrical.Buses.Bus B3(P_0 = 90, Q_0 = 50, V_0 = 0.974, V_b = 11, angle_0 = -4.817, displayPF = true) annotation(
- Placement(visible = true, transformation(origin = {259, 211}, extent = {{-17, -17}, {17, 17}}, rotation = -90)));
- OpenIPSL.Electrical.Buses.Bus B2(P_0 = 50, Q_0 = 20, V_0 = 0.967, V_b = 11, angle_0 = -4.478, displayPF = true) annotation(
- Placement(visible = true, transformation(origin = {119, 261}, extent = {{-13, -13}, {13, 13}}, rotation = -90)));
- OpenIPSL.Electrical.Buses.Bus B48(P_0 = 55, Q_0 = 7.55, V_0 = 1, V_b = 11, angle_0 = -1.141, displayPF = true) annotation(
- Placement(visible = true, transformation(origin = {81, 311}, extent = {{-15, -15}, {15, 15}}, rotation = -90)));
- OpenIPSL.Electrical.Buses.Bus B4(P_0 = 0, Q_0 = 0, V_0 = 0.974, V_b = 11, angle_0 = -4.843, displayPF = true) annotation(
- Placement(visible = true, transformation(origin = {268, 264}, extent = {{-16, -16}, {16, 16}}, rotation = -90)));
- OpenIPSL.Electrical.Buses.Bus B5(P_0 = 11.90, Q_0 = 0, V_0 = 0.901, V_b = 248.4, angle_0 = -6.593, displayPF = true) annotation(
- Placement(visible = true, transformation(origin = {272, 320}, extent = {{-14, -14}, {14, 14}}, rotation = -90)));
- OpenIPSL.Electrical.Buses.Bus B34(P_0 = 58, Q_0 = 26, V_0 = 0.986, V_b = 11.9625, angle_0 = -4.330, displayPF = true) annotation(
- Placement(visible = true, transformation(origin = {-257, 213}, extent = {{-15, -15}, {15, 15}}, rotation = -90)));
- OpenIPSL.Electrical.Buses.Bus B32(P_0 = 30, Q_0 = 17, V_0 = 0.986, V_b = 11, angle_0 = -10.058, displayPF = true) annotation(
- Placement(visible = true, transformation(origin = {-338, 210}, extent = {{-14, -14}, {14, 14}}, rotation = -90)));
- OpenIPSL.Electrical.Buses.Bus B51(P_0 = 50, Q_0 = 30, V_0 = 0.979, V_b = 11, angle_0 = -12.199, displayPF = true) annotation(
- Placement(visible = true, transformation(origin = {-398, 250}, extent = {{-16, -16}, {16, 16}}, rotation = -90)));
- OpenIPSL.Electrical.Buses.Bus B33(P_0 = 50, Q_0 = 25.97, V_0 = 1, V_b = 11, angle_0 = -10.479, displayPF = true) annotation(
- Placement(visible = true, transformation(origin = {-349, 313}, extent = {{-15, -15}, {15, 15}}, rotation = -90)));
- OpenIPSL.Electrical.Buses.Bus B30(P_0 = 47, Q_0 = 66.16, V_0 = 1, V_b = 11, angle_0 = -12.890, displayPF = true) annotation(
- Placement(visible = true, transformation(origin = {-333, 123}, extent = {{-17, -17}, {17, 17}}, rotation = -90)));
- OpenIPSL.Electrical.Buses.Bus B46(P_0 = 0, Q_0 = 0, V_0 = 0.944, V_b = 11.825, angle_0 = -10.375, displayPF = true) annotation(
- Placement(visible = true, transformation(origin = {-239, 145}, extent = {{-17, -17}, {17, 17}}, rotation = -90)));
- OpenIPSL.Electrical.Buses.Bus B6(P_0 = 19, Q_0 = 10, V_0 = 0.950, V_b = 11, angle_0 = -6.180, displayPF = true) annotation(
- Placement(visible = true, transformation(origin = {267, 149}, extent = {{-15, -15}, {15, 15}}, rotation = -90)));
- OpenIPSL.Electrical.Buses.Bus B7(P_0 = 33, Q_0 = 62.54, V_0 = 1, V_b = 11, angle_0 = -4.872, displayPF = true) annotation(
- Placement(visible = true, transformation(origin = {267, 97}, extent = {{-15, -15}, {15, 15}}, rotation = -90)));
- OpenIPSL.Electrical.Buses.Bus B8(P_0 = 44, Q_0 = 24, V_0 = 0.992, V_b = 11, angle_0 = -5.311, displayPF = true) annotation(
- Placement(visible = true, transformation(origin = {272, 46}, extent = {{-14, -14}, {14, 14}}, rotation = -90)));
- OpenIPSL.Electrical.Buses.Bus B9(P_0 = 22, Q_0 = 12, V_0 = 0.994, V_b = 11, angle_0 = -5.307, displayPF = true) annotation(
- Placement(visible = true, transformation(origin = {273, -7}, extent = {{-15, -15}, {15, 15}}, rotation = -90)));
- OpenIPSL.Electrical.Buses.Bus B10(P_0 = 21, Q_0 = 12, V_0 = 1.004, V_b = 11, angle_0 = -4.889, displayPF = true) annotation(
- Placement(visible = true, transformation(origin = {276, -60}, extent = {{-16, -16}, {16, 16}}, rotation = -90)));
- OpenIPSL.Electrical.Buses.Bus B11(P_0 = 34, Q_0 = 5, V_0 = 1.025, V_b = 11, angle_0 = -3.998, displayPF = true) annotation(
- Placement(visible = true, transformation(origin = {280, -118}, extent = {{-16, -16}, {16, 16}}, rotation = -90)));
- OpenIPSL.Electrical.Buses.Bus B12(P_0 = 24, Q_0 = 13.60, V_0 = 1.002, V_b = 11, angle_0 = -4.124, displayPF = true) annotation(
- Placement(visible = true, transformation(origin = {280, -164}, extent = {{-16, -16}, {16, 16}}, rotation = -90)));
- OpenIPSL.Electrical.Buses.Bus B13(P_0 = 19, Q_0 = 11, V_0 = 0.995, V_b = 11, angle_0 = -4.224, displayPF = true) annotation(
- Placement(visible = true, transformation(origin = {283, -213}, extent = {{-15, -15}, {15, 15}}, rotation = -90)));
- OpenIPSL.Electrical.Buses.Bus B14(P_0 = 19, Q_0 = 4, V_0 = 1.016, V_b = 11, angle_0 = -2.856, displayPF = true) annotation(
- Placement(visible = true, transformation(origin = {288, -264}, extent = {{-14, -14}, {14, 14}}, rotation = -90)));
- OpenIPSL.Electrical.Buses.Bus B15(P_0 = 24, Q_0 = 0, V_0 = 1, V_b = 11, angle_0 = -1.049, displayPF = true) annotation(
- Placement(visible = true, transformation(origin = {286, -330}, extent = {{-16, -16}, {16, 16}}, rotation = -90)));
- OpenIPSL.Electrical.Buses.Bus B16(P_0 = 54, Q_0 = 30, V_0 = 0.987, V_b = 11, angle_0 = -2.053, displayPF = true) annotation(
- Placement(visible = true, transformation(origin = {160, -300}, extent = {{-14, -14}, {14, 14}}, rotation = -90)));
- OpenIPSL.Electrical.Buses.Bus B17(P_0 = 46, Q_0 = 4.63, V_0 = 1, V_b = 11, angle_0 = -7.675, displayPF = true) annotation(
- Placement(visible = true, transformation(origin = {52, -336}, extent = {{-14, -14}, {14, 14}}, rotation = -90)));
- OpenIPSL.Electrical.Buses.Bus B18(P_0 = 37, Q_0 = 22, V_0 = 0.971, V_b = 11, angle_0 = -10.625, displayPF = true) annotation(
- Placement(visible = true, transformation(origin = {-32, -330}, extent = {{-14, -14}, {14, 14}}, rotation = -90)));
- OpenIPSL.Electrical.Buses.Bus B40(P_0 = 0, Q_0 = 0, V_0 = 0.901, V_b = 11.99, angle_0 = -10.349, displayPF = true) annotation(
- Placement(visible = true, transformation(origin = {-36, -278}, extent = {{-14, -14}, {14, 14}}, rotation = -90)));
- OpenIPSL.Electrical.Buses.Bus B19(P_0 = 31, Q_0 = 14.77, V_0 = 1, V_b = 11, angle_0 = -10.672, displayPF = true) annotation(
- Placement(visible = true, transformation(origin = {-137, -181}, extent = {{-15, -15}, {15, 15}}, rotation = -90)));
- OpenIPSL.Electrical.Buses.Bus B44(P_0 = 175, Q_0 = 50.26, V_0 = 1, V_b = 11, angle_0 = -2.273, displayPF = true) annotation(
- Placement(visible = true, transformation(origin = {-131, 101}, extent = {{-15, -15}, {15, 15}}, rotation = -90)));
- OpenIPSL.Electrical.Buses.Bus B29(P_0 = 25, Q_0 = 13, V_0 = 0.977, V_b = 11, angle_0 = -14.103, displayPF = true) annotation(
- Placement(visible = true, transformation(origin = {-394, 86}, extent = {{-14, -14}, {14, 14}}, rotation = -90)));
- OpenIPSL.Electrical.Buses.Bus B28(P_0 = 80, Q_0 = 36, V_0 = 0.961, V_b = 11, angle_0 = -14.919, displayPF = true) annotation(
- Placement(visible = true, transformation(origin = {-434, 36}, extent = {{-14, -14}, {14, 14}}, rotation = -90)));
- OpenIPSL.Electrical.Buses.Bus B31(P_0 = 42, Q_0 = 18, V_0 = 0.980, V_b = 11, angle(fixed = false), angle_0 = -13.859, displayPF = true) annotation(
- Placement(visible = true, transformation(origin = {-334, 34}, extent = {{-14, -14}, {14, 14}}, rotation = -90)));
- OpenIPSL.Electrical.Buses.Bus B45(P_0 = 0, Q_0 = 0, V_0 = 0.938, V_b = 11.66, angle_0 = -10.481, displayPF = true) annotation(
- Placement(visible = true, transformation(origin = {-240, -1.42109e-14}, extent = {{-14, -14}, {14, 14}}, rotation = -90)));
- OpenIPSL.Electrical.Buses.Bus B26(P_0 = 28, Q_0 = 14, V_0 = 1.049, V_b = 247.25, angle_0 = -5.080, displayPF = true) annotation(
- Placement(visible = true, transformation(origin = {-130, 44}, extent = {{-16, -16}, {16, 16}}, rotation = -90)));
- OpenIPSL.Electrical.Buses.Bus B43(P_0 = 0, Q_0 = 0, V_0 = 0.955, V_b = 11.825, angle_0 = -6.627, displayPF = true) annotation(
- Placement(visible = true, transformation(origin = {-122, -38}, extent = {{-16, -16}, {16, 16}}, rotation = 90)));
- OpenIPSL.Electrical.Buses.Bus B24(P_0 = 8, Q_0 = 2, V_0 = 1.006, V_b = 11, angle_0 = -9.213, displayPF = true) annotation(
- Placement(visible = true, transformation(origin = {-117, -91}, extent = {{-15, -15}, {15, 15}}, rotation = -90)));
- OpenIPSL.Electrical.Buses.Bus B23(P_0 = 42, Q_0 = 23, V_0 = 0.922, V_b = 11, angle_0 = -13.936, displayPF = true) annotation(
- Placement(visible = true, transformation(origin = {-224, -118}, extent = {{-14, -14}, {14, 14}}, rotation = -90)));
- OpenIPSL.Electrical.Buses.Bus B22(P_0 = 17, Q_0 = 8, V_0 = 0.814, V_b = 11.66, angle_0 = -19.831, displayPF = true) annotation(
- Placement(visible = true, transformation(origin = {-316, -184}, extent = {{-14, -14}, {14, 14}}, rotation = -90)));
- OpenIPSL.Electrical.Buses.Bus B20(P_0 = 34, Q_0 = 16, V_0 = 0.942, V_b = 11, angle_0 = -13.346, displayPF = true) annotation(
- Placement(visible = true, transformation(origin = {-232, -268}, extent = {{-14, -14}, {14, 14}}, rotation = -90)));
- OpenIPSL.Electrical.Buses.Bus B27(P_0 = 76, Q_0 = 25, V_0 = 0.973, V_b = 11, angle_0 = -13.898, displayPF = true) annotation(
- Placement(visible = true, transformation(origin = {-343, -31}, extent = {{-15, -15}, {15, 15}}, rotation = -90)));
- OpenIPSL.Electrical.Buses.Bus B41(P_0 = 0, Q_0 = 0, V_0 = 0.930, V_b = 11.99, angle_0 = -9.717, displayPF = true) annotation(
- Placement(visible = true, transformation(origin = {-136, -238}, extent = {{-14, -14}, {14, 14}}, rotation = -90)));
- OpenIPSL.Electrical.Buses.Bus B21(P_0 = 0, Q_0 = 0, V_0 = 0.891, V_b = 11, angle_0 = -16.269, displayPF = true) annotation(
- Placement(visible = true, transformation(origin = {-313, -239}, extent = {{-15, -15}, {15, 15}}, rotation = -90)));
- OpenIPSL.Electrical.Buses.Bus B42(P_0 = 0, Q_0 = 0, V_0 = 0.908, V_b = 11.66, angle_0 = -10.861, displayPF = true) annotation(
- Placement(visible = true, transformation(origin = {-234, -308}, extent = {{-16, -16}, {16, 16}}, rotation = -90)));
- OpenIPSL.Electrical.Buses.Bus B25(P_0 = 11, Q_0 = 6, V_0 = 1.039, V_b = 11, angle_0 = -5.159, displayPF = true) annotation(
- Placement(visible = true, transformation(origin = {-8, 10}, extent = {{-14, -14}, {14, 14}}, rotation = -90)));
- OpenIPSL.Electrical.Buses.Bus B37(P_0 = 0, Q_0 = 0, V_0 = 0.995, V_b = 11.55, angle_0 = -0.633, displayPF = true) annotation(
- Placement(visible = true, transformation(origin = {166, -74}, extent = {{-16, -16}, {16, 16}}, rotation = -90)));
- OpenIPSL.Electrical.Buses.Bus B38(P_0 = 170, Q_0 = 0, V_0 = 1, V_b = 11, angle_0 = -0.160, displayPF = true) annotation(
- Placement(visible = true, transformation(origin = {82, -70}, extent = {{-14, -14}, {14, 14}}, rotation = -90)));
- OpenIPSL.Electrical.Buses.Bus B47(P_0 = 0, Q_0 = 0, V_0 = 0.971, V_b = 11.66, angle_0 = -1.755, displayPF = true) annotation(
- Placement(visible = true, transformation(origin = {199, -245}, extent = {{-15, -15}, {15, 15}}, rotation = -90)));
- OpenIPSL.Electrical.Buses.Bus B36(P_0 = 0, Q_0 = 0, V_0 = 0.963, V_b = 11.495, angle_0 = -3.246, displayPF = true) annotation(
- Placement(visible = true, transformation(origin = {181, 73}, extent = {{-15, -15}, {15, 15}}, rotation = -90)));
- OpenIPSL.Electrical.Branches.PwLine pwLine2_3_1(B = 0.0322, G = 0, R = 0.0287, X = 0.0747) annotation(
- Placement(visible = true, transformation(origin = {172, 236}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- OpenIPSL.Electrical.Branches.PwLine pwLine2_3_2(B = 0.0322, G = 0, R = 0.0287, X = 0.0747, displayPF = false) annotation(
- Placement(visible = true, transformation(origin = {172, 250}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- OpenIPSL.Electrical.Branches.PwLine pwLine3_4_1(B = 0.0015, G = 0, R = 0.0028, X = 0.0036) annotation(
- Placement(visible = true, transformation(origin = {262, 238}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
- OpenIPSL.Electrical.Branches.PwLine pwLine3_4_2(B = 0.0015, G = 0, R = 0.0028, X = 0.0036) annotation(
- Placement(visible = true, transformation(origin = {276, 238}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
- OpenIPSL.Electrical.Branches.PwLine pwLine3_6(B = 0.0558, G = 0, R = 0.0614, X = 0.1400) annotation(
- Placement(visible = true, transformation(origin = {270, 180}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
- OpenIPSL.Electrical.Branches.PwLine pwLine3_7(B = 0.0397, G = 0, R = 0.0247, X = 0.0560) annotation(
- Placement(visible = true, transformation(origin = {238, 152}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
- OpenIPSL.Electrical.Branches.PwLine pwLine7_8_1(B = 0.0091, G = 0, R = 0.0098, X = 0.0224) annotation(
- Placement(visible = true, transformation(origin = {280, 72}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
- OpenIPSL.Electrical.Branches.PwLine pwLine7_8_2(B = 0.0091, G = 0, R = 0.0098, X = 0.0224) annotation(
- Placement(visible = true, transformation(origin = {264, 72}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
- OpenIPSL.Electrical.Branches.PwLine pwLine8_9_1(B = 0.0174, G = 0, R = 0.0190, X = 0.0431) annotation(
- Placement(visible = true, transformation(origin = {280, 18}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
- OpenIPSL.Electrical.Branches.PwLine pwLine8_9_2(B = 0.0174, G = 0, R = 0.0190, X = 0.0431) annotation(
- Placement(visible = true, transformation(origin = {262, 18}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
- OpenIPSL.Electrical.Branches.PwLine pwLine9_10_1(B = 0.0167, G = 0, R = 0.0182, X = 0.0413) annotation(
- Placement(visible = true, transformation(origin = {286, -34}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
- OpenIPSL.Electrical.Branches.PwLine pwLine9_10_2(B = 0.0167, G = 0, R = 0.0182, X = 0.0413) annotation(
- Placement(visible = true, transformation(origin = {270, -34}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
- OpenIPSL.Electrical.Branches.PwLine pwLine10_11_1(B = 0.0190, G = 0, R = 0.0205, X = 0.0468) annotation(
- Placement(visible = true, transformation(origin = {284, -86}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
- OpenIPSL.Electrical.Branches.PwLine pwLine10_11_2(B = 0.0190, G = 0, R = 0.0205, X = 0.0468) annotation(
- Placement(visible = true, transformation(origin = {268, -88}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
- OpenIPSL.Electrical.Branches.PwLine pwLine11_12_1(B = 0.0060, G = 0, R = 0.0660, X = 0.0150) annotation(
- Placement(visible = true, transformation(origin = {288, -138}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
- OpenIPSL.Electrical.Branches.PwLine pwLine11_12_2(B = 0.0060, G = 0, R = 0.0660, X = 0.0150) annotation(
- Placement(visible = true, transformation(origin = {272, -138}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
- OpenIPSL.Electrical.Branches.PwLine pwLine12_13(B = 0.0088, G = 0, R = 0.0455, X = 0.0642) annotation(
- Placement(visible = true, transformation(origin = {282, -192}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
- OpenIPSL.Electrical.Branches.PwLine pwLine13_14(B = 0.0213, G = 0, R = 0.1182, X = 0.2360) annotation(
- Placement(visible = true, transformation(origin = {286, -238}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
- OpenIPSL.Electrical.Branches.PwLine pwLine14_15(B = 0.0267, G = 0, R = 0.0214, X = 0.2743) annotation(
- Placement(visible = true, transformation(origin = {290, -294}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
- OpenIPSL.Electrical.Branches.PwLine pwLine15_16(B = 0.0059, G = 0, R = 0.1336, X = 0.0525) annotation(
- Placement(visible = true, transformation(origin = {224, -306}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
- OpenIPSL.Electrical.Branches.PwLine pwLine16_17(B = 0.0367, G = 0, R = 0.0580, X = 0.3532) annotation(
- Placement(visible = true, transformation(origin = {112, -334}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
- OpenIPSL.Electrical.Branches.PwLine pwLine17_18(B = 0.0168, G = 0, R = 0.1550, X = 0.1532) annotation(
- Placement(visible = true, transformation(origin = {8, -358}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- OpenIPSL.Electrical.Branches.PwLine pwLine18_19(B = 0.0350, G = 0, R = 0.1550, X = 0.3639) annotation(
- Placement(visible = true, transformation(origin = {-82, -282}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
- OpenIPSL.Electrical.Branches.PwLine pwLine19_20(B = 0.0371, G = 0, R = 0.1640, X = 0.3815) annotation(
- Placement(visible = true, transformation(origin = {-196, -216}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
- OpenIPSL.Electrical.Branches.PwLine pwLine20_21(B = 0.0300, G = 0, R = 0.1136, X = 0.3060) annotation(
- Placement(visible = true, transformation(origin = {-270, -256}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- OpenIPSL.Electrical.Branches.PwLine pwLine20_23(B = 0.0210, G = 0, R = 0.0781, X = 0.2000) annotation(
- Placement(visible = true, transformation(origin = {-232, -200}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
- OpenIPSL.Electrical.Branches.PwLine pwLine23_24(B = 0.0282, G = 0, R = 0.1033, X = 0.2606) annotation(
- Placement(visible = true, transformation(origin = {-170, -100}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- OpenIPSL.Electrical.Branches.PwLine pwLine12_25(B = 0.0283, G = 0, R = 0.0866, X = 0.2847) annotation(
- Placement(visible = true, transformation(origin = {46, -126}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- OpenIPSL.Electrical.Branches.PwLine pwLine25_26(B = 0.0060, G = 0, R = 0.0159, X = 0.0508) annotation(
- Placement(visible = true, transformation(origin = {-68, 22}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- OpenIPSL.Electrical.Branches.PwLine pwLine26_27(B = 0.0296, G = 0, R = 0.0872, X = 0.2870) annotation(
- Placement(visible = true, transformation(origin = {-252, -52}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- OpenIPSL.Electrical.Branches.PwLine pwLine27_28(B = 0.0045, G = 0, R = 0.0136, X = 0.0436) annotation(
- Placement(visible = true, transformation(origin = {-400, -2}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- OpenIPSL.Electrical.Branches.PwLine pwLine28_29(B = 0.0045, G = 0, R = 0.0136, X = 0.0436) annotation(
- Placement(visible = true, transformation(origin = {-414, 64}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- OpenIPSL.Electrical.Branches.PwLine pwLine29_30(B = 0.0041, G = 0, R = 0.0125, X = 0.0400) annotation(
- Placement(visible = true, transformation(origin = {-366, 108}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- OpenIPSL.Electrical.Branches.PwLine pwLine30_31(B = 0.0045, G = 0, R = 0.0136, X = 0.0436) annotation(
- Placement(visible = true, transformation(origin = {-328, 80}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
- OpenIPSL.Electrical.Branches.PwLine pwLine27_31(B = 0.0045, G = 0, R = 0.0136, X = 0.0436) annotation(
- Placement(visible = true, transformation(origin = {-340, 6}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
- OpenIPSL.Electrical.Branches.PwLine pwLine30_32(B = 0.0712, G = 0, R = 0.0533, X = 0.1636) annotation(
- Placement(visible = true, transformation(origin = {-338, 164}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
- OpenIPSL.Electrical.Branches.PwLine pwLine32_33(B = 0.0420, G = 0, R = 0.0311, X = 0.1000) annotation(
- Placement(visible = true, transformation(origin = {-344, 264}, extent = {{-10, -10}, {10, 10}}, rotation = 90)));
- OpenIPSL.Electrical.Branches.PwLine pwLine32_34_1(B = 0.0650, G = 0, R = 0.0471, X = 0.1511) annotation(
- Placement(visible = true, transformation(origin = {-298, 242}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- OpenIPSL.Electrical.Branches.PwLine pwLine32_34_2(B = 0.0650, G = 0, R = 0.0471, X = 0.1511) annotation(
- Placement(visible = true, transformation(origin = {-296, 260}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- OpenIPSL.Electrical.Branches.PwLine pwLine30_51(B = 0.0734, G = 0, R = 0.0667, X = 0.1765) annotation(
- Placement(visible = true, transformation(origin = {-398, 188}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
- OpenIPSL.Electrical.Branches.PwLine pwLine51_33(B = 0.0256, G = 0, R = 0.011, X = 0.0622) annotation(
- Placement(visible = true, transformation(origin = {-376, 282}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- OpenIPSL.Electrical.Branches.PwLine pwLine35_50(B = 0.0954, G = 0, R = 0.0240, X = 0.1326) annotation(
- Placement(visible = true, transformation(origin = {120, 168}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- OpenIPSL.Electrical.Branches.PwLine pwLine35_36(B = 0.1146, G = 0, R = 0.0266, X = 0.1418) annotation(
- Placement(visible = true, transformation(origin = {182, 136}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
- OpenIPSL.Electrical.Branches.PwLine pwLine36_38(B = 0.1078, G = 0, R = 0.0252, X = 0.1366) annotation(
- Placement(visible = true, transformation(origin = {100, 24}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- OpenIPSL.Electrical.Branches.PwLine pwLine38_1(B = 0.0794, G = 0, R = 0.0200, X = 0.1107) annotation(
- Placement(visible = true, transformation(origin = {8, 98}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- OpenIPSL.Electrical.Branches.PwLine pwLine38_47(B = 0.0869, G = 0, R = 0.0202, X = 0.1076) annotation(
- Placement(visible = true, transformation(origin = {148, -160}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- OpenIPSL.Electrical.Branches.PwLine pwLine47_43(B = 0.1078, G = 0, R = 0.0250, X = 0.1336) annotation(
- Placement(visible = true, transformation(origin = {124, -202}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- OpenIPSL.Electrical.Branches.PwLine pwLine42_43(B = 0.1281, G = 0, R = 0.0298, X = 0.1584) annotation(
- Placement(visible = true, transformation(origin = {-380, -208}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
- OpenIPSL.Electrical.Branches.PwLine pwLine40_41(B = 0.1008, G = 0, R = 0.0254, X = 0.1400) annotation(
- Placement(visible = true, transformation(origin = {-64, -254}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- OpenIPSL.Electrical.Branches.PwLine pwLine41_43(B = 0.1297, G = 0, R = 0.0326, X = 0.1807) annotation(
- Placement(visible = true, transformation(origin = {-60, -114}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
- OpenIPSL.Electrical.Branches.PwLine pwLine43_45(B = 0.1011, G = 0, R = 0.0236, X = 0.1252) annotation(
- Placement(visible = true, transformation(origin = {-196, -20}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- OpenIPSL.Electrical.Branches.PwLine pwLine43_44(B = 0.0513, G = 0, R = 0.0129, X = 0.0715) annotation(
- Placement(visible = true, transformation(origin = {-88, 52}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
- OpenIPSL.Electrical.Branches.PwLine pwLine45_46(B = 0.0236, G = 0, R = 0.0054, X = 0.0292) annotation(
- Placement(visible = true, transformation(origin = {-236, 74}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
- OpenIPSL.Electrical.Branches.PwLine pwLine44_1(B = 0.1306, G = 0, R = 0.0330, X = 0.1818) annotation(
- Placement(visible = true, transformation(origin = {-170, 130}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
- OpenIPSL.Electrical.Branches.PwLine pwLine46_1(B = 0.1686, G = 0, R = 0.0343, X = 0.2087) annotation(
- Placement(visible = true, transformation(origin = {-214, 176}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- OpenIPSL.Electrical.Branches.PwLine pwLine1_49(B = 0.1752, G = 0, R = 0.0110, X = 0.0597) annotation(
- Placement(visible = true, transformation(origin = {-106, 174}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- OpenIPSL.Electrical.Branches.PwLine pwLine49_50(B = 0.0272, G = 0, R = 0.0071, X = 0.0400) annotation(
- Placement(visible = true, transformation(origin = {10, 170}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- OpenIPSL.Electrical.Branches.PwLine pwLine37_38(B = 0.0246, G = 0, R = 0.0014, X = 0.0077) annotation(
- Placement(visible = true, transformation(origin = {132, -94}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- OpenIPSL.Electrical.Branches.PwLine pwLine47_39(B = 0.0879, G = 0, R = 0.0203, X = 0.1093) annotation(
- Placement(visible = true, transformation(origin = {200, -312}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
- OpenIPSL.Electrical.Branches.PwLine pwLine48_2_1(B = 0.0460, G = 0, R = 0.0426, X = 0.1100) annotation(
- Placement(visible = true, transformation(origin = {98, 276}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- OpenIPSL.Electrical.Branches.PwLine pwLine48_2_2(B = 0.0460, G = 0, R = 0.0426, X = 0.1100) annotation(
- Placement(visible = true, transformation(origin = {100, 288}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- OpenIPSL.Electrical.Branches.PSAT.TwoWindingTransformer T_27_45(Sn = 100, V_b = 11, Vn = 11, kT = 1.0600, r = 0, x = 0.0900) annotation(
- Placement(visible = true, transformation(origin = {-302, -10}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- OpenIPSL.Electrical.Loads.PSAT.LOADPQ LD1(Angle_V(displayUnit = "rad"), P_0 = 50, Q_0 = 20, V_0 = 0.967, V_b = 11, angle_0 = -4.478, forcePQ = true) annotation(
- Placement(visible = true, transformation(origin = {90, 238}, extent = {{-8, -8}, {8, 8}}, rotation = 0)));
- OpenIPSL.Electrical.Loads.PSAT.LOADPQ LD2(Angle_V(displayUnit = "rad"), P_0 = 90, Q_0 = 50, V_0 = 0.974, V_b = 11, angle_0 = -4.817, forcePQ = true) annotation(
- Placement(visible = true, transformation(origin = {306, 182}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- OpenIPSL.Electrical.Loads.PSAT.LOADPQ LD3(Angle_V(displayUnit = "rad"), P_0 = 11.90, Q_0 = 0, V_0 = 0.901, V_b = 248.4, angle_0 = -6.593, forcePQ = true) annotation(
- Placement(visible = true, transformation(origin = {272, 352}, extent = {{-10, -10}, {10, 10}}, rotation = 180)));
- OpenIPSL.Electrical.Loads.PSAT.LOADPQ LD4(Angle_V(displayUnit = "rad"), P_0 = 19, Q_0 = 10, V_0 = 0.950, V_b = 11, angle_0 = -6.180, forcePQ = true) annotation(
- Placement(visible = true, transformation(origin = {320, 124}, extent = {{-8, -8}, {8, 8}}, rotation = 0)));
- OpenIPSL.Electrical.Loads.PSAT.LOADPQ LD5(Angle_V(displayUnit = "rad"), P_0 = 33, Q_0 = 18, V_0 = 1, V_b = 11, angle_0 = -4.872, forcePQ = true) annotation(
- Placement(visible = true, transformation(origin = {320, 72}, extent = {{-8, -8}, {8, 8}}, rotation = 0)));
- OpenIPSL.Electrical.Loads.PSAT.LOADPQ LD6(Angle_V(displayUnit = "rad"), P_0 = 44, Q_0 = 24, V_0 = 0.992, V_b = 11, angle_0 = -5.311, forcePQ = true) annotation(
- Placement(visible = true, transformation(origin = {312, 18}, extent = {{-8, -8}, {8, 8}}, rotation = 0)));
- OpenIPSL.Electrical.Loads.PSAT.LOADPQ LD7(Angle_V(displayUnit = "rad"), P_0 = 22, Q_0 = 12, V_0 = 0.994, V_b = 11, angle_0 = -5.307, forcePQ = true) annotation(
- Placement(visible = true, transformation(origin = {322, -34}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- OpenIPSL.Electrical.Loads.PSAT.LOADPQ LD8(Angle_V(displayUnit = "rad"), P_0 = 21, Q_0 = 12, V_0 = 1.004, V_b = 11, angle_0 = -4.889, forcePQ = true) annotation(
- Placement(visible = true, transformation(origin = {326, -86}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- OpenIPSL.Electrical.Loads.PSAT.LOADPQ LD9(Angle_V(displayUnit = "rad"), P_0 = 34, Q_0 = 5, V_0 = 1.025, V_b = 11, angle_0 = -3.998, forcePQ = true) annotation(
- Placement(visible = true, transformation(origin = {327, -143}, extent = {{-11, -11}, {11, 11}}, rotation = 0)));
- OpenIPSL.Electrical.Loads.PSAT.LOADPQ LD10(Angle_V(displayUnit = "rad"), P_0 = 24, Q_0 = 13.60, V_0 = 1.002, V_b = 11, angle_0 = -4.124, forcePQ = true) annotation(
- Placement(visible = true, transformation(origin = {322, -192}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- OpenIPSL.Electrical.Loads.PSAT.LOADPQ LD11(Angle_V(displayUnit = "rad"), P_0 = 19, Q_0 = 11, V_0 = 0.995, V_b = 11, angle_0 = -4.224, forcePQ = true) annotation(
- Placement(visible = true, transformation(origin = {336, -244}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- OpenIPSL.Electrical.Loads.PSAT.LOADPQ LD12(Angle_V(displayUnit = "rad"), P_0 = 19, Q_0 = 4, V_0 = 1.016, V_b = 11, angle_0 = -2.856, forcePQ = true) annotation(
- Placement(visible = true, transformation(origin = {325, -295}, extent = {{-11, -11}, {11, 11}}, rotation = 0)));
- OpenIPSL.Electrical.Loads.PSAT.LOADPQ LD13(Angle_V(displayUnit = "rad"), P_0 = 54, Q_0 = 30, V_0 = 0.987, V_b = 11, angle_0 = -2.053, forcePQ = true) annotation(
- Placement(visible = true, transformation(origin = {142, -264}, extent = {{-10, -10}, {10, 10}}, rotation = 180)));
- OpenIPSL.Electrical.Loads.PSAT.LOADPQ LD14(Angle_V(displayUnit = "rad"), P_0 = 46, Q_0 = 21, V_0 = 1, V_b = 11, angle_0 = -7.675, forcePQ = true) annotation(
- Placement(visible = true, transformation(origin = {52, -376}, extent = {{-14, -14}, {14, 14}}, rotation = 0)));
- OpenIPSL.Electrical.Loads.PSAT.LOADPQ LD15(Angle_V(displayUnit = "rad"), P_0 = 37, Q_0 = 22, V_0 = 0.971, V_b = 11, angle_0 = -10.625, forcePQ = true) annotation(
- Placement(visible = true, transformation(origin = {-32, -376}, extent = {{-12, -12}, {12, 12}}, rotation = 0)));
- OpenIPSL.Electrical.Loads.PSAT.LOADPQ LD16(Angle_V(displayUnit = "rad"), P_0 = 31, Q_0 = 2, V_0 = 1, V_b = 11, angle_0 = -10.672, forcePQ = true) annotation(
- Placement(visible = true, transformation(origin = {-166, -228}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- OpenIPSL.Electrical.Loads.PSAT.LOADPQ LD17(Angle_V(displayUnit = "rad"), P_0 = 34, Q_0 = 16, V_0 = 0.942, V_b = 11, angle_0 = -13.346, forcePQ = true) annotation(
- Placement(visible = true, transformation(origin = {-190, -306}, extent = {{-12, -12}, {12, 12}}, rotation = 0)));
- OpenIPSL.Electrical.Loads.PSAT.LOADPQ LD18(Angle_V(displayUnit = "rad"), P_0 = 17, Q_0 = 8, V_0 = 0.814, V_b = 11.66, angle_0 = -19.831, forcePQ = true) annotation(
- Placement(visible = true, transformation(origin = {-310, -146}, extent = {{-10, -10}, {10, 10}}, rotation = 180)));
- OpenIPSL.Electrical.Loads.PSAT.LOADPQ LD19(Angle_V(displayUnit = "rad"), P_0 = 42, Q_0 = 23, V_0 = 0.922, V_b = 11, angle_0 = -13.936, forcePQ = true) annotation(
- Placement(visible = true, transformation(origin = {-200, -160}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- OpenIPSL.Electrical.Loads.PSAT.LOADPQ LD20(Angle_V(displayUnit = "rad"), P_0 = 8, Q_0 = 2, V_0 = 1.006, V_b = 11, angle_0 = -9.213, forcePQ = true) annotation(
- Placement(visible = true, transformation(origin = {-104, -124}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- OpenIPSL.Electrical.Loads.PSAT.LOADPQ LD21(Angle_V(displayUnit = "rad"), P_0 = 11, Q_0 = 6, V_0 = 1.039, V_b = 11, angle_0 = -5.159, forcePQ = true) annotation(
- Placement(visible = true, transformation(origin = {18, -30}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- OpenIPSL.Electrical.Loads.PSAT.LOADPQ LD22(Angle_V(displayUnit = "rad"), P_0 = 28, Q_0 = 14, V_0 = 1.049, V_b = 247.25, angle_0 = -5.080, forcePQ = true) annotation(
- Placement(visible = true, transformation(origin = {-127, 3}, extent = {{-11, -11}, {11, 11}}, rotation = 0)));
- OpenIPSL.Electrical.Loads.PSAT.LOADPQ LD23(Angle_V(displayUnit = "rad"), P_0 = 76, Q_0 = 25, V_0 = 0.973, V_b = 11, angle_0 = -13.898, forcePQ = true) annotation(
- Placement(visible = true, transformation(origin = {-412, -64}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- OpenIPSL.Electrical.Loads.PSAT.LOADPQ LD24(Angle_V(displayUnit = "rad"), P_0 = 80, Q_0 = 36, V_0 = 0.961, V_b = 11, angle_0 = -14.919, forcePQ = true) annotation(
- Placement(visible = true, transformation(origin = {-457, -7}, extent = {{-13, -13}, {13, 13}}, rotation = 0)));
- OpenIPSL.Electrical.Loads.PSAT.LOADPQ LD25(Angle_V(displayUnit = "rad"), P_0 = 25, Q_0 = 13, V_0 = 0.977, V_b = 11, angle_0 = -14.103, forcePQ = true) annotation(
- Placement(visible = true, transformation(origin = {-459, 59}, extent = {{-11, -11}, {11, 11}}, rotation = 0)));
- OpenIPSL.Electrical.Loads.PSAT.LOADPQ LD26(Angle_V(displayUnit = "rad"), P(fixed = false), P_0 = 47, Q(fixed = false), Q_0 = 0, V_0 = 1, V_b = 11, angle_0 = -12.890, forcePQ = true) annotation(
- Placement(visible = true, transformation(origin = {-285, 85}, extent = {{11, 11}, {-11, -11}}, rotation = -90)));
- OpenIPSL.Electrical.Loads.PSAT.LOADPQ LD27(Angle_V(displayUnit = "rad"), P_0 = 42, Q_0 = 18, V_0 = 0.980, V_b = 11, angle_0 = -13.859, forcePQ = true) annotation(
- Placement(visible = true, transformation(origin = {-285, 37}, extent = {{-11, -11}, {11, 11}}, rotation = 180)));
- OpenIPSL.Electrical.Loads.PSAT.LOADPQ LD28(Angle_V(displayUnit = "rad"), P_0 = 30, Q_0 = 17, V_0 = 0.986, V_b = 11, angle_0 = -10.058, forcePQ = true) annotation(
- Placement(visible = true, transformation(origin = {-363, 173}, extent = {{-11, -11}, {11, 11}}, rotation = 0)));
- OpenIPSL.Electrical.Loads.PSAT.LOADPQ LD29(Angle_V(displayUnit = "rad"), P_0 = 58, Q_0 = 26, V_0 = 0.986, V_b = 250.125, angle_0 = -4.330, forcePQ = true) annotation(
- Placement(visible = true, transformation(origin = {-232, 248}, extent = {{-12, -12}, {12, 12}}, rotation = 180)));
- OpenIPSL.Electrical.Loads.PSAT.LOADPQ LD30(Angle_V(displayUnit = "rad"), P_0 = 50, Q_0 = 30, V_0 = 0.979, V_b = 11, angle_0 = -12.199, forcePQ = true) annotation(
- Placement(visible = true, transformation(origin = {-422, 216}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- inner OpenIPSL.Electrical.SystemBase SysData(S_b = 100, fn = 50) annotation(
- Placement(visible = true, transformation(origin = {428, 336}, extent = {{-54, -36}, {54, 36}}, rotation = 0)));
- OpenIPSL.Electrical.Branches.PwLine pwLine39_49(B = 0.0726, G = 0, R = 0.0168, X = 0.0899) annotation(
- Placement(visible = true, transformation(origin = {-34, 56}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
- OpenIPSL.Electrical.Buses.Bus B39(P_0 = 0, Q_0 = 0, V_0 = 0.962, V_b = 11.66, angle_0 = 1.851, displayPF = true) annotation(
- Placement(visible = true, transformation(origin = {165, -345}, extent = {{-15, -15}, {15, 15}}, rotation = -90)));
- Modelling_of_51_bus_system_case2.GenBus.GenBus7 genBus7(P_0 = 33, Q_0 = 62.33, V_0 = 1, V_b = 11, angle_0 = -4.872) annotation(
- Placement(visible = true, transformation(origin = {210, 146}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
- Modelling_of_51_bus_system_case2.GenBus.GenBus15 genBus15(P_0 = 24, Q_0 = -16.23, V_0 = 1, V_b = 11, angle_0 = -1.049) annotation(
- Placement(visible = true, transformation(origin = {286, -364}, extent = {{10, 10}, {-10, -10}}, rotation = -90)));
- Modelling_of_51_bus_system_case2.GenBus.GenBus17 genBus17(P_0 = 46, Q_0 = 20.23, V_0 = 1, V_b = 11, angle_0 = -7.675) annotation(
- Placement(visible = true, transformation(origin = {52, -300}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
- Modelling_of_51_bus_system_case2.GenBus.GenBus19 genBus19(P_0 = 31, Q_0 = 14.77, V_0 = 1, V_b = 11, angle_0 = -10.672) annotation(
- Placement(visible = true, transformation(origin = {-138, -152}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
- Modelling_of_51_bus_system_case2.GenBus.GenBus30 genBus30(P_0 = 47, Q_0 = 66.16, V_0 = 1, V_b = 11, angle_0 = -12.890) annotation(
- Placement(visible = true, transformation(origin = {-302, 176}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
- Modelling_of_51_bus_system_case2.GenBus.GenBus33 genBus33(P_0 = 50, Q_0 = 25.97, V_0 = 1, V_b = 11, angle_0 = -10.479) annotation(
- Placement(visible = true, transformation(origin = {-344, 344}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
- Modelling_of_51_bus_system_case2.GenBus.GenBus38 genBus38(P_0 = 170, Q_0 = -0.21, V_0 = 1, V_b = 11, angle_0 = -0.160) annotation(
- Placement(visible = true, transformation(origin = {106, -34}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
- Modelling_of_51_bus_system_case2.GenBus.GenBus44 genBus44(P_0 = 175, Q_0 = 50.26, V_0 = 1, V_b = 11, angle_0 = -2.273) annotation(
- Placement(visible = true, transformation(origin = {-196, 120}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
- Modelling_of_51_bus_system_case2.GenBus.GenBus48 genBus48(P_0 = 55, Q_0 = 7.55, V_0 = 1, V_b = 11, angle_0 = -1.141) annotation(
- Placement(visible = true, transformation(origin = {80, 338}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
- Modelling_of_51_bus_system_case2.GenBus.GenBus49 genBus49(P_0 = 350, Q_0 = -145.71, V_0 = 1, V_b = 11, angle_0 = 8.095) annotation(
- Placement(visible = true, transformation(origin = {-50, 224}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
- Modelling_of_51_bus_system_case2.GenBus.GenBus50 genBus50(P_0 = 120, Q_0 = 22.41, V_0 = 1, V_b = 11, angle_0 = 8.022) annotation(
- Placement(visible = true, transformation(origin = {66, 220}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
- OpenIPSL.Electrical.Branches.PSAT.TwoWindingTransformer T_1_34(Sb = 100, Sn = 100, V_b = 11, Vn = 11, fn = 50, kT = 1.0875, r = 0, x = 0.0630) annotation(
- Placement(visible = true, transformation(origin = {-228, 198}, extent = {{-16, -16}, {16, 16}}, rotation = 0)));
- OpenIPSL.Electrical.Branches.PSAT.TwoWindingTransformer T_3_35(Sb = 100, Sn = 100, V_b = 11, Vn = 11, fn = 50, kT = 1.0450, r = 0, x = 0.0500) annotation(
- Placement(visible = true, transformation(origin = {204, 212}, extent = {{-16, -16}, {16, 16}}, rotation = 0)));
- OpenIPSL.Electrical.Branches.PSAT.TwoWindingTransformer T_4_5(Sb = 100, Sn = 100, V_b = 11, Vn = 11, fn = 50, kT = 1.0800, r = 0, x = 0.02085) annotation(
- Placement(visible = true, transformation(origin = {270, 292}, extent = {{-16, -16}, {16, 16}}, rotation = -90)));
- OpenIPSL.Electrical.Branches.PSAT.TwoWindingTransformer T_7_36(Sb = 100, Sn = 100, V_b = 11, Vn = 11, fn = 50, kT = 1.0450, r = 0, x = 0.0450) annotation(
- Placement(visible = true, transformation(origin = {224, 90}, extent = {{-14, -14}, {14, 14}}, rotation = 0)));
- OpenIPSL.Electrical.Branches.PSAT.TwoWindingTransformer T_11_37(Sb = 100, Sn = 100, V_b = 11, Vn = 11, fn = 50, kT = 1.0500, r = 0, x = 0.0500) annotation(
- Placement(visible = true, transformation(origin = {217, -101}, extent = {{-17, -17}, {17, 17}}, rotation = 0)));
- OpenIPSL.Electrical.Branches.PSAT.TwoWindingTransformer T_16_39(Sb = 100, Sn = 100, V_b = 11, Vn = 11, fn = 50, kT = 1.0600, r = 0, x = 0.0900) annotation(
- Placement(visible = true, transformation(origin = {163, -321}, extent = {{-13, -13}, {13, 13}}, rotation = -90)));
- OpenIPSL.Electrical.Branches.PSAT.TwoWindingTransformer T_18_40(Sb = 100, Sn = 100, V_b = 11, Vn = 11, fn = 50, kT = 1.0900, r = 0, x = 0.0400) annotation(
- Placement(visible = true, transformation(origin = {-36, -302}, extent = {{-14, -14}, {14, 14}}, rotation = -90)));
- OpenIPSL.Electrical.Branches.PSAT.TwoWindingTransformer T_14_47(Sb = 100, Sn = 100, V_b = 11, Vn = 11, fn = 50, kT = 1.0600, r = 0, x = 0.0900) annotation(
- Placement(visible = true, transformation(origin = {240, -258}, extent = {{-14, -14}, {14, 14}}, rotation = 0)));
- OpenIPSL.Electrical.Branches.PSAT.TwoWindingTransformer T_19_41(Sb = 100, Sn = 100, V_b = 11, Vn = 11, fn = 50, kT = 1.0750, r = 0, x = 0.0800) annotation(
- Placement(visible = true, transformation(origin = {-137, -211}, extent = {{-15, -15}, {15, 15}}, rotation = -90)));
- OpenIPSL.Electrical.Branches.PSAT.TwoWindingTransformer T_21_22(Sb = 100, Sn = 100, V_b = 11, Vn = 11, fn = 50, kT = 1.0600, r = 0, x = 0.02500) annotation(
- Placement(visible = true, transformation(origin = {-318, -212}, extent = {{-14, -14}, {14, 14}}, rotation = -90)));
- OpenIPSL.Electrical.Branches.PSAT.TwoWindingTransformer T_24_43(Sb = 100, Sn = 100, V_b = 11, Vn = 11, fn = 50, kT = 1.0750, r = 0, x = 0.0900) annotation(
- Placement(visible = true, transformation(origin = {-124, -72}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
- OpenIPSL.Electrical.Branches.PSAT.TwoWindingTransformer T_44_26(Sb = 100, Sn = 100, V_b = 11, Vn = 11, fn = 50, kT = 1.0750, r = 0, x = 0.0500) annotation(
- Placement(visible = true, transformation(origin = {-134, 74}, extent = {{-16, -16}, {16, 16}}, rotation = -90)));
- Modelling_of_51_bus_system_case2.GenBus.GenBus1 genBus11(P_0 = 45.70, Q_0 = 366.30, V_0 = 1.08, V_b = 11, refdisturb_1 = false) annotation(
- Placement(visible = true, transformation(origin = {-168, 238}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
- OpenIPSL.Electrical.Branches.PSAT.TwoWindingTransformer T_30_46(Sn = 100, V_b = 11, Vn = 11, kT = 1.0750, r = 0, x = 0.0450) annotation(
- Placement(visible = true, transformation(origin = {-283, 133}, extent = {{-15, -15}, {15, 15}}, rotation = 0)));
- OpenIPSL.Electrical.Branches.PSAT.TwoWindingTransformer T_20_42(Sn = 100, V_b = 11, Vn = 11, kT = 1.0600, r = 0, x = 0.0800) annotation(
- Placement(visible = true, transformation(origin = {-234, -288}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
- equation
- connect(B2.p, pwLine2_3_2.p) annotation(
- Line(points = {{120, 262}, {124, 262}, {124, 250}, {162, 250}, {162, 250}}, color = {0, 0, 255}));
- connect(B2.p, pwLine2_3_1.p) annotation(
- Line(points = {{120, 262}, {118, 262}, {118, 236}, {162, 236}, {162, 236}}, color = {0, 0, 255}));
- connect(pwLine2_3_1.n, B3.p) annotation(
- Line(points = {{182, 236}, {232, 236}, {232, 212}, {260, 212}, {260, 212}, {260, 212}}, color = {0, 0, 255}));
- connect(pwLine2_3_2.n, B3.p) annotation(
- Line(points = {{182, 250}, {238, 250}, {238, 220}, {248, 220}, {248, 210}, {260, 210}, {260, 212}}, color = {0, 0, 255}));
- connect(pwLine3_4_1.n, B3.p) annotation(
- Line(points = {{262, 228}, {262, 228}, {262, 212}, {260, 212}, {260, 212}}, color = {0, 0, 255}));
- connect(pwLine3_4_2.n, B3.p) annotation(
- Line(points = {{276, 229}, {276, 226}, {268, 226}, {268, 214}, {260, 214}, {260, 212}}, color = {0, 0, 255}));
- connect(pwLine3_4_1.p, B4.p) annotation(
- Line(points = {{262, 248}, {258, 248}, {258, 266}, {268, 266}, {268, 264}}, color = {0, 0, 255}));
- connect(pwLine3_4_2.p, B4.p) annotation(
- Line(points = {{276, 247}, {276, 262}, {268, 262}, {268, 264}}, color = {0, 0, 255}));
- connect(pwLine3_6.n, B6.p) annotation(
- Line(points = {{270, 170}, {270, 148}, {267, 148}, {267, 149}}, color = {0, 0, 255}));
- connect(pwLine3_6.p, B3.p) annotation(
- Line(points = {{270, 190}, {270, 190}, {270, 210}, {260, 210}, {260, 212}}, color = {0, 0, 255}));
- connect(pwLine3_7.n, B7.p) annotation(
- Line(points = {{238, 142}, {238, 130}, {274, 130}, {274, 100}, {268, 100}, {268, 97}, {267, 97}}, color = {0, 0, 255}));
- connect(pwLine3_7.p, B3.p) annotation(
- Line(points = {{238, 162}, {238, 162}, {238, 200}, {256, 200}, {256, 212}, {260, 212}}, color = {0, 0, 255}));
- connect(pwLine7_8_1.n, B8.p) annotation(
- Line(points = {{280, 62}, {280, 62}, {280, 48}, {272, 48}, {272, 46}}, color = {0, 0, 255}));
- connect(pwLine7_8_1.p, B7.p) annotation(
- Line(points = {{280, 82}, {280, 97}, {267, 97}}, color = {0, 0, 255}));
- connect(pwLine7_8_2.p, B7.p) annotation(
- Line(points = {{264, 82}, {266, 82}, {266, 96}, {267, 96}, {267, 97}}, color = {0, 0, 255}));
- connect(pwLine7_8_2.n, B8.p) annotation(
- Line(points = {{264, 62}, {264, 62}, {264, 48}, {272, 48}, {272, 46}}, color = {0, 0, 255}));
- connect(pwLine8_9_1.p, B8.p) annotation(
- Line(points = {{280, 27}, {280, 46}, {272, 46}}, color = {0, 0, 255}));
- connect(pwLine8_9_1.n, B9.p) annotation(
- Line(points = {{280, 9}, {280, -8}, {274, -8}, {274, -6}}, color = {0, 0, 255}));
- connect(pwLine8_9_2.n, B9.p) annotation(
- Line(points = {{262, 9}, {262, -6}, {274, -6}}, color = {0, 0, 255}));
- connect(pwLine8_9_2.p, B8.p) annotation(
- Line(points = {{262, 27}, {262, 46}, {272, 46}}, color = {0, 0, 255}));
- connect(pwLine9_10_1.n, B10.p) annotation(
- Line(points = {{286, -44}, {286, -60}, {276, -60}}, color = {0, 0, 255}));
- connect(pwLine9_10_2.n, B10.p) annotation(
- Line(points = {{270, -44}, {270, -60}, {276, -60}}, color = {0, 0, 255}));
- connect(pwLine9_10_2.p, B9.p) annotation(
- Line(points = {{270, -24}, {268, -24}, {268, -8}, {274, -8}, {274, -6}}, color = {0, 0, 255}));
- connect(B9.p, pwLine9_10_1.p) annotation(
- Line(points = {{274, -6}, {286, -6}, {286, -26}, {286, -26}, {286, -24}}, color = {0, 0, 255}));
- connect(pwLine10_11_1.p, B10.p) annotation(
- Line(points = {{284, -76}, {284, -58}, {276, -58}, {276, -60}}, color = {0, 0, 255}));
- connect(pwLine10_11_1.n, B11.p) annotation(
- Line(points = {{284, -96}, {284, -96}, {284, -118}, {280, -118}, {280, -118}}, color = {0, 0, 255}));
- connect(pwLine10_11_2.p, B10.p) annotation(
- Line(points = {{268, -78}, {268, -58}, {276, -58}, {276, -60}}, color = {0, 0, 255}));
- connect(pwLine10_11_2.n, B11.p) annotation(
- Line(points = {{268, -98}, {268, -98}, {268, -118}, {280, -118}, {280, -118}}, color = {0, 0, 255}));
- connect(pwLine11_12_1.p, B11.p) annotation(
- Line(points = {{288, -128}, {288, -128}, {288, -116}, {280, -116}, {280, -118}}, color = {0, 0, 255}));
- connect(pwLine11_12_1.n, B12.p) annotation(
- Line(points = {{288, -148}, {288, -148}, {288, -164}, {280, -164}, {280, -164}}, color = {0, 0, 255}));
- connect(pwLine11_12_2.n, B12.p) annotation(
- Line(points = {{272, -148}, {272, -148}, {272, -164}, {280, -164}, {280, -164}}, color = {0, 0, 255}));
- connect(pwLine11_12_2.p, B11.p) annotation(
- Line(points = {{272, -128}, {272, -128}, {272, -116}, {280, -116}, {280, -118}}, color = {0, 0, 255}));
- connect(pwLine12_13.p, B12.p) annotation(
- Line(points = {{282, -183}, {282, -164}, {280, -164}}, color = {0, 0, 255}));
- connect(pwLine12_13.n, B13.p) annotation(
- Line(points = {{282, -201}, {282, -213}, {283, -213}}, color = {0, 0, 255}));
- connect(pwLine13_14.n, B14.p) annotation(
- Line(points = {{286, -248}, {286, -248}, {286, -264}, {288, -264}}, color = {0, 0, 255}));
- connect(pwLine13_14.p, B13.p) annotation(
- Line(points = {{286, -228}, {286, -213}, {283, -213}}, color = {0, 0, 255}));
- connect(pwLine14_15.n, B15.p) annotation(
- Line(points = {{290, -304}, {290, -330}, {286, -330}}, color = {0, 0, 255}));
- connect(pwLine14_15.p, B14.p) annotation(
- Line(points = {{290, -284}, {290, -284}, {290, -264}, {288, -264}}, color = {0, 0, 255}));
- connect(B16.p, pwLine15_16.p) annotation(
- Line(points = {{160, -300}, {160, -276}, {224, -276}, {224, -297}}, color = {0, 0, 255}));
- connect(pwLine15_16.n, B15.p) annotation(
- Line(points = {{224, -316}, {224, -324}, {286, -324}, {286, -330}}, color = {0, 0, 255}));
- connect(pwLine16_17.p, B16.p) annotation(
- Line(points = {{112, -324}, {112, -324}, {112, -310}, {158, -310}, {158, -300}, {160, -300}}, color = {0, 0, 255}));
- connect(B17.p, pwLine16_17.n) annotation(
- Line(points = {{52, -336}, {58, -336}, {58, -354}, {112, -354}, {112, -342}, {112, -342}, {112, -344}}, color = {0, 0, 255}));
- connect(pwLine17_18.n, B17.p) annotation(
- Line(points = {{18, -358}, {40, -358}, {40, -336}, {52, -336}, {52, -336}}, color = {0, 0, 255}));
- connect(pwLine17_18.p, B18.p) annotation(
- Line(points = {{-2, -358}, {-24, -358}, {-24, -328}, {-32, -328}, {-32, -330}, {-32, -330}}, color = {0, 0, 255}));
- connect(pwLine18_19.n, B18.p) annotation(
- Line(points = {{-82, -292}, {-82, -292}, {-82, -320}, {-44, -320}, {-44, -328}, {-32, -328}, {-32, -330}}, color = {0, 0, 255}));
- connect(B19.p, pwLine18_19.p) annotation(
- Line(points = {{-137, -181}, {-130, -181}, {-130, -200}, {-82, -200}, {-82, -272}}, color = {0, 0, 255}));
- connect(pwLine19_20.p, B19.p) annotation(
- Line(points = {{-196, -206}, {-196, -192}, {-152, -192}, {-152, -181}, {-137, -181}}, color = {0, 0, 255}));
- connect(pwLine19_20.n, B20.p) annotation(
- Line(points = {{-196, -226}, {-196, -226}, {-196, -244}, {-224, -244}, {-224, -268}, {-232, -268}, {-232, -268}}, color = {0, 0, 255}));
- connect(B21.p, pwLine20_21.p) annotation(
- Line(points = {{-312, -238}, {-314, -238}, {-314, -256}, {-280, -256}, {-280, -256}}, color = {0, 0, 255}));
- connect(pwLine20_21.n, B20.p) annotation(
- Line(points = {{-260, -256}, {-244, -256}, {-244, -268}, {-232, -268}, {-232, -268}, {-232, -268}}, color = {0, 0, 255}));
- connect(pwLine20_23.n, B20.p) annotation(
- Line(points = {{-232, -210}, {-232, -210}, {-232, -268}, {-232, -268}}, color = {0, 0, 255}));
- connect(pwLine20_23.p, B23.p) annotation(
- Line(points = {{-232, -190}, {-232, -190}, {-232, -118}, {-224, -118}, {-224, -118}}, color = {0, 0, 255}));
- connect(B23.p, pwLine23_24.p) annotation(
- Line(points = {{-224, -118}, {-222, -118}, {-222, -100}, {-180, -100}, {-180, -100}, {-180, -100}}, color = {0, 0, 255}));
- connect(pwLine23_24.n, B24.p) annotation(
- Line(points = {{-160, -100}, {-128, -100}, {-128, -88}, {-118, -88}, {-118, -90}, {-116, -90}}, color = {0, 0, 255}));
- connect(B25.p, pwLine12_25.p) annotation(
- Line(points = {{-8, 10}, {-8, 10}, {-8, -126}, {36, -126}, {36, -126}}, color = {0, 0, 255}));
- connect(pwLine12_25.n, B12.p) annotation(
- Line(points = {{56, -126}, {264, -126}, {264, -164}, {280, -164}, {280, -164}}, color = {0, 0, 255}));
- connect(B26.p, pwLine25_26.p) annotation(
- Line(points = {{-130, 44}, {-122, 44}, {-122, 22}, {-77, 22}}, color = {0, 0, 255}));
- connect(pwLine25_26.n, B25.p) annotation(
- Line(points = {{-58, 22}, {-18, 22}, {-18, 12}, {-8, 12}, {-8, 10}, {-8, 10}}, color = {0, 0, 255}));
- connect(B27.p, pwLine26_27.p) annotation(
- Line(points = {{-343, -31}, {-342, -31}, {-342, -52}, {-262, -52}}, color = {0, 0, 255}));
- connect(pwLine26_27.n, B26.p) annotation(
- Line(points = {{-242, -52}, {-172, -52}, {-172, 26}, {-144, 26}, {-144, 42}, {-130, 42}, {-130, 44}}, color = {0, 0, 255}));
- connect(B28.p, pwLine27_28.p) annotation(
- Line(points = {{-434, 36}, {-432, 36}, {-432, 0}, {-410, 0}, {-410, -2}}, color = {0, 0, 255}));
- connect(pwLine27_28.n, B27.p) annotation(
- Line(points = {{-390, -2}, {-358, -2}, {-358, -31}, {-343, -31}}, color = {0, 0, 255}));
- connect(pwLine28_29.p, B28.p) annotation(
- Line(points = {{-424, 64}, {-434, 64}, {-434, 36}, {-434, 36}}, color = {0, 0, 255}));
- connect(pwLine28_29.n, B29.p) annotation(
- Line(points = {{-404, 64}, {-398, 64}, {-398, 88}, {-396, 88}, {-396, 86}, {-394, 86}}, color = {0, 0, 255}));
- connect(B29.p, pwLine29_30.p) annotation(
- Line(points = {{-394, 86}, {-388, 86}, {-388, 108}, {-376, 108}, {-376, 108}}, color = {0, 0, 255}));
- connect(pwLine29_30.n, B30.p) annotation(
- Line(points = {{-356, 108}, {-344, 108}, {-344, 123}, {-333, 123}}, color = {0, 0, 255}));
- connect(pwLine30_31.p, B30.p) annotation(
- Line(points = {{-328, 90}, {-328, 122}, {-333, 122}, {-333, 123}}, color = {0, 0, 255}));
- connect(pwLine30_31.n, B31.p) annotation(
- Line(points = {{-328, 70}, {-328, 70}, {-328, 34}, {-334, 34}, {-334, 34}}, color = {0, 0, 255}));
- connect(pwLine27_31.n, B27.p) annotation(
- Line(points = {{-340, -3}, {-340, -31}, {-343, -31}}, color = {0, 0, 255}));
- connect(pwLine30_32.n, B30.p) annotation(
- Line(points = {{-338, 155}, {-338, 123}, {-333, 123}}, color = {0, 0, 255}));
- connect(pwLine30_32.p, B32.p) annotation(
- Line(points = {{-338, 173}, {-338, 210}}, color = {0, 0, 255}));
- connect(pwLine32_33.p, B32.p) annotation(
- Line(points = {{-344, 254}, {-346, 254}, {-346, 212}, {-338, 212}, {-338, 210}}, color = {0, 0, 255}));
- connect(pwLine32_33.n, B33.p) annotation(
- Line(points = {{-344, 274}, {-344, 313}, {-349, 313}}, color = {0, 0, 255}));
- connect(pwLine32_34_1.p, B32.p) annotation(
- Line(points = {{-308, 242}, {-330, 242}, {-330, 210}, {-338, 210}, {-338, 210}}, color = {0, 0, 255}));
- connect(pwLine32_34_2.p, B32.p) annotation(
- Line(points = {{-306, 260}, {-336, 260}, {-336, 212}, {-338, 212}, {-338, 210}}, color = {0, 0, 255}));
- connect(pwLine32_34_1.n, B34.p) annotation(
- Line(points = {{-288, 242}, {-268, 242}, {-268, 212}, {-257, 212}, {-257, 213}}, color = {0, 0, 255}));
- connect(pwLine32_34_2.n, B34.p) annotation(
- Line(points = {{-286, 260}, {-258, 260}, {-258, 213}, {-257, 213}}, color = {0, 0, 255}));
- connect(pwLine30_51.p, B51.p) annotation(
- Line(points = {{-398, 198}, {-398, 250}}, color = {0, 0, 255}));
- connect(pwLine30_51.n, B30.p) annotation(
- Line(points = {{-398, 178}, {-398, 178}, {-398, 140}, {-344, 140}, {-344, 122}, {-332, 122}, {-332, 124}}, color = {0, 0, 255}));
- connect(pwLine51_33.n, B33.p) annotation(
- Line(points = {{-366, 282}, {-356, 282}, {-356, 313}, {-349, 313}}, color = {0, 0, 255}));
- connect(pwLine51_33.p, B51.p) annotation(
- Line(points = {{-386, 282}, {-394, 282}, {-394, 252}, {-398, 252}, {-398, 250}}, color = {0, 0, 255}));
- connect(pwLine35_50.n, B35.p) annotation(
- Line(points = {{130, 168}, {164, 168}, {164, 196}, {172, 196}, {172, 196}, {174, 196}}, color = {0, 0, 255}));
- connect(pwLine35_50.p, B50.p) annotation(
- Line(points = {{110, 168}, {76, 168}, {76, 194}, {64, 194}}, color = {0, 0, 255}));
- connect(pwLine35_36.p, B35.p) annotation(
- Line(points = {{182, 145}, {182, 194}, {174, 194}, {174, 196}}, color = {0, 0, 255}));
- connect(pwLine35_36.n, B36.p) annotation(
- Line(points = {{182, 126}, {182, 73}, {181, 73}}, color = {0, 0, 255}));
- connect(pwLine36_38.p, B38.p) annotation(
- Line(points = {{90, 24}, {82, 24}, {82, -70}}, color = {0, 0, 255}));
- connect(pwLine36_38.n, B36.p) annotation(
- Line(points = {{110, 24}, {168, 24}, {168, 24}, {178, 24}, {178, 76}, {182, 76}, {182, 74}, {182, 74}}, color = {0, 0, 255}));
- connect(B1.p, pwLine38_1.p) annotation(
- Line(points = {{-170, 194}, {-156, 194}, {-156, 140}, {-28, 140}, {-28, 98}, {-1, 98}}, color = {0, 0, 255}));
- connect(pwLine38_1.n, B38.p) annotation(
- Line(points = {{18, 98}, {56, 98}, {56, -70}, {82, -70}, {82, -70}}, color = {0, 0, 255}));
- connect(pwLine38_47.n, B47.p) annotation(
- Line(points = {{158, -160}, {194, -160}, {194, -245}, {199, -245}}, color = {0, 0, 255}));
- connect(pwLine47_43.n, B47.p) annotation(
- Line(points = {{134, -202}, {184, -202}, {184, -245}, {199, -245}}, color = {0, 0, 255}));
- connect(pwLine42_43.n, B42.p) annotation(
- Line(points = {{-380, -218}, {-380, -302}, {-244, -302}, {-244, -308}, {-234, -308}}, color = {0, 0, 255}));
- connect(pwLine42_43.p, B43.p) annotation(
- Line(points = {{-380, -198}, {-380, -60}, {-132, -60}, {-132, -38}, {-122, -38}}, color = {0, 0, 255}));
- connect(pwLine40_41.n, B40.p) annotation(
- Line(points = {{-54, -254}, {-46, -254}, {-46, -278}, {-36, -278}}, color = {0, 0, 255}));
- connect(pwLine40_41.p, B41.p) annotation(
- Line(points = {{-74, -254}, {-134, -254}, {-134, -238}, {-136, -238}}, color = {0, 0, 255}));
- connect(B41.p, pwLine41_43.n) annotation(
- Line(points = {{-136, -238}, {-128, -238}, {-128, -216}, {-60, -216}, {-60, -123}}, color = {0, 0, 255}));
- connect(B43.p, pwLine41_43.p) annotation(
- Line(points = {{-122, -38}, {-118, -38}, {-118, -62}, {-60, -62}, {-60, -104}}, color = {0, 0, 255}));
- connect(B43.p, pwLine47_43.p) annotation(
- Line(points = {{-122, -38}, {-110, -38}, {-110, -48}, {-20, -48}, {-20, -202}, {114, -202}}, color = {0, 0, 255}));
- connect(pwLine43_45.n, B43.p) annotation(
- Line(points = {{-187, -20}, {-128, -20}, {-128, -38}, {-122, -38}}, color = {0, 0, 255}));
- connect(B45.p, pwLine43_45.p) annotation(
- Line(points = {{-240, 0}, {-234, 0}, {-234, -20}, {-205, -20}}, color = {0, 0, 255}));
- connect(pwLine43_44.n, B43.p) annotation(
- Line(points = {{-88, 42}, {-88, -8}, {-110, -8}, {-110, -38}, {-122, -38}}, color = {0, 0, 255}));
- connect(B44.p, pwLine43_44.p) annotation(
- Line(points = {{-130, 102}, {-120, 102}, {-120, 80}, {-88, 80}, {-88, 62}, {-88, 62}}, color = {0, 0, 255}));
- connect(pwLine45_46.n, B45.p) annotation(
- Line(points = {{-236, 65}, {-236, 0}, {-240, 0}}, color = {0, 0, 255}));
- connect(pwLine45_46.p, B46.p) annotation(
- Line(points = {{-236, 83}, {-236, 146}, {-238, 146}}, color = {0, 0, 255}));
- connect(pwLine44_1.p, B1.p) annotation(
- Line(points = {{-170, 139}, {-170, 194}}, color = {0, 0, 255}));
- connect(pwLine44_1.n, B44.p) annotation(
- Line(points = {{-170, 121}, {-170, 110}, {-140, 110}, {-140, 102}, {-130, 102}}, color = {0, 0, 255}));
- connect(pwLine46_1.n, B1.p) annotation(
- Line(points = {{-204, 176}, {-182, 176}, {-182, 194}, {-170, 194}}, color = {0, 0, 255}));
- connect(pwLine46_1.p, B46.p) annotation(
- Line(points = {{-224, 176}, {-232, 176}, {-232, 144}, {-238, 144}, {-238, 146}}, color = {0, 0, 255}));
- connect(pwLine1_49.p, B1.p) annotation(
- Line(points = {{-116, 174}, {-152, 174}, {-152, 194}, {-170, 194}}, color = {0, 0, 255}));
- connect(pwLine1_49.n, B49.p) annotation(
- Line(points = {{-96, 174}, {-58, 174}, {-58, 194}, {-50, 194}}, color = {0, 0, 255}));
- connect(B49.p, pwLine49_50.p) annotation(
- Line(points = {{-50, 194}, {-40, 194}, {-40, 170}, {1, 170}}, color = {0, 0, 255}));
- connect(pwLine49_50.n, B50.p) annotation(
- Line(points = {{20, 170}, {56, 170}, {56, 194}, {64, 194}}, color = {0, 0, 255}));
- connect(B38.p, pwLine38_47.p) annotation(
- Line(points = {{82, -70}, {80, -70}, {80, -160}, {138, -160}, {138, -160}}, color = {0, 0, 255}));
- connect(pwLine37_38.p, B38.p) annotation(
- Line(points = {{122, -94}, {90, -94}, {90, -68}, {80, -68}, {80, -70}, {82, -70}}, color = {0, 0, 255}));
- connect(pwLine37_38.n, B37.p) annotation(
- Line(points = {{142, -94}, {158, -94}, {158, -74}, {166, -74}, {166, -74}}, color = {0, 0, 255}));
- connect(pwLine47_39.p, B47.p) annotation(
- Line(points = {{200, -303}, {200, -272.5}, {199, -272.5}, {199, -245}}, color = {0, 0, 255}));
- connect(pwLine48_2_1.n, B2.p) annotation(
- Line(points = {{108, 276}, {112, 276}, {112, 262}, {120, 262}, {120, 262}}, color = {0, 0, 255}));
- connect(pwLine48_2_1.p, B48.p) annotation(
- Line(points = {{88, 276}, {78, 276}, {78, 310}, {83, 310}, {83, 311}}, color = {0, 0, 255}));
- connect(pwLine48_2_2.p, B48.p) annotation(
- Line(points = {{90, 288}, {84, 288}, {84, 311}, {83, 311}}, color = {0, 0, 255}));
- connect(pwLine48_2_2.n, B2.p) annotation(
- Line(points = {{110, 288}, {118, 288}, {118, 260}, {120, 260}, {120, 262}}, color = {0, 0, 255}));
- connect(pwLine27_31.p, B31.p) annotation(
- Line(points = {{-340, 16}, {-340, 16}, {-340, 32}, {-334, 32}, {-334, 34}}, color = {0, 0, 255}));
- connect(T_27_45.p, B27.p) annotation(
- Line(points = {{-314, -10}, {-336, -10}, {-336, -30}, {-342, -30}, {-342, -30}}, color = {0, 0, 255}));
- connect(T_27_45.n, B45.p) annotation(
- Line(points = {{-290, -10}, {-250, -10}, {-250, 0}, {-240, 0}, {-240, 0}}, color = {0, 0, 255}));
- connect(LD1.p, B2.p) annotation(
- Line(points = {{90, 246}, {88, 246}, {88, 254}, {112, 254}, {112, 262}, {120, 262}}, color = {0, 0, 255}));
- connect(B3.p, LD2.p) annotation(
- Line(points = {{260, 212}, {272, 212}, {272, 198}, {304, 198}, {304, 192}, {306, 192}}, color = {0, 0, 255}));
- connect(LD3.p, B5.p) annotation(
- Line(points = {{272, 342}, {272, 320}}, color = {0, 0, 255}));
- connect(B6.p, LD4.p) annotation(
- Line(points = {{267, 149}, {267, 136}, {320, 136}, {320, 132}}, color = {0, 0, 255}));
- connect(B7.p, LD5.p) annotation(
- Line(points = {{267, 97}, {284, 97}, {284, 84}, {320, 84}, {320, 80}}, color = {0, 0, 255}));
- connect(B8.p, LD6.p) annotation(
- Line(points = {{272, 46}, {282, 46}, {282, 34}, {312, 34}, {312, 26}}, color = {0, 0, 255}));
- connect(B9.p, LD7.p) annotation(
- Line(points = {{274, -6}, {280, -6}, {280, -18}, {322, -18}, {322, -24}}, color = {0, 0, 255}));
- connect(B10.p, LD8.p) annotation(
- Line(points = {{276, -60}, {288, -60}, {288, -74}, {322, -74}, {322, -76}, {326, -76}}, color = {0, 0, 255}));
- connect(B11.p, LD9.p) annotation(
- Line(points = {{280, -118}, {290, -118}, {290, -120}, {327, -120}, {327, -132}}, color = {0, 0, 255}));
- connect(B12.p, LD10.p) annotation(
- Line(points = {{280, -164}, {290, -164}, {290, -176}, {322, -176}, {322, -182}}, color = {0, 0, 255}));
- connect(B13.p, LD11.p) annotation(
- Line(points = {{283, -213}, {290, -213}, {290, -228}, {336, -228}, {336, -234}}, color = {0, 0, 255}));
- connect(B14.p, LD12.p) annotation(
- Line(points = {{288, -264}, {296, -264}, {296, -278}, {320, -278}, {320, -284}, {325, -284}}, color = {0, 0, 255}));
- connect(LD13.p, B16.p) annotation(
- Line(points = {{142, -274}, {142, -274}, {142, -286}, {152, -286}, {152, -300}, {160, -300}, {160, -300}}, color = {0, 0, 255}));
- connect(LD14.p, B17.p) annotation(
- Line(points = {{52, -362}, {52, -336}}, color = {0, 0, 255}));
- connect(LD15.p, B18.p) annotation(
- Line(points = {{-32, -364}, {-32, -330}}, color = {0, 0, 255}));
- connect(LD16.p, B19.p) annotation(
- Line(points = {{-166, -218}, {-166, -200}, {-150, -200}, {-150, -182}, {-137, -182}, {-137, -181}}, color = {0, 0, 255}));
- connect(B20.p, LD17.p) annotation(
- Line(points = {{-232, -268}, {-224, -268}, {-224, -284}, {-190, -284}, {-190, -294}}, color = {0, 0, 255}));
- connect(LD18.p, B22.p) annotation(
- Line(points = {{-310, -156}, {-310, -156}, {-310, -184}, {-316, -184}, {-316, -184}}, color = {0, 0, 255}));
- connect(B23.p, LD19.p) annotation(
- Line(points = {{-224, -118}, {-222, -118}, {-222, -136}, {-200, -136}, {-200, -150}}, color = {0, 0, 255}));
- connect(B24.p, LD20.p) annotation(
- Line(points = {{-116, -90}, {-118, -90}, {-118, -106}, {-104, -106}, {-104, -114}, {-104, -114}}, color = {0, 0, 255}));
- connect(B25.p, LD21.p) annotation(
- Line(points = {{-8, 10}, {-2, 10}, {-2, -8}, {16, -8}, {16, -20}, {18, -20}}, color = {0, 0, 255}));
- connect(LD22.p, B26.p) annotation(
- Line(points = {{-127, 14}, {-132, 14}, {-132, 44}, {-130, 44}}, color = {0, 0, 255}));
- connect(LD23.p, B27.p) annotation(
- Line(points = {{-412, -54}, {-412, -46}, {-352, -46}, {-352, -30}, {-342, -30}}, color = {0, 0, 255}));
- connect(LD24.p, B28.p) annotation(
- Line(points = {{-457, 6}, {-457, 24}, {-442, 24}, {-442, 38}, {-434, 38}, {-434, 36}}, color = {0, 0, 255}));
- connect(LD25.p, B29.p) annotation(
- Line(points = {{-459, 70}, {-459, 78}, {-404, 78}, {-404, 88}, {-394, 88}, {-394, 86}}, color = {0, 0, 255}));
- connect(B30.p, LD26.p) annotation(
- Line(points = {{-332, 124}, {-320, 124}, {-320, 102}, {-296, 102}, {-296, 85}}, color = {0, 0, 255}));
- connect(B31.p, LD27.p) annotation(
- Line(points = {{-334, 34}, {-330, 34}, {-330, 18}, {-285, 18}, {-285, 26}}, color = {0, 0, 255}));
- connect(B32.p, LD28.p) annotation(
- Line(points = {{-338, 210}, {-346, 210}, {-346, 198}, {-366, 198}, {-366, 184}, {-363, 184}}, color = {0, 0, 255}));
- connect(B34.p, LD29.p) annotation(
- Line(points = {{-257, 213}, {-250, 213}, {-250, 230}, {-232, 230}, {-232, 236}}, color = {0, 0, 255}));
- connect(LD30.p, B51.p) annotation(
- Line(points = {{-422, 226}, {-424, 226}, {-424, 236}, {-406, 236}, {-406, 250}, {-398, 250}}, color = {0, 0, 255}));
- connect(B49.p, pwLine39_49.p) annotation(
- Line(points = {{-50, 194}, {-46, 194}, {-46, 82}, {-36, 82}, {-36, 66}, {-34, 66}}, color = {0, 0, 255}));
- connect(pwLine47_39.n, B39.p) annotation(
- Line(points = {{200, -320}, {198, -320}, {198, -324}, {170, -324}, {170, -346}, {166, -346}, {166, -344}}, color = {0, 0, 255}));
- connect(B39.p, pwLine39_49.n) annotation(
- Line(points = {{166, -344}, {150, -344}, {150, -316}, {72, -316}, {72, -160}, {-34, -160}, {-34, 48}, {-34, 48}}, color = {0, 0, 255}));
- connect(genBus7.pwPin, B7.p) annotation(
- Line(points = {{210, 136}, {210, 114}, {260, 114}, {260, 98}, {268, 98}}, color = {0, 0, 255}));
- connect(genBus15.pwPin, B15.p) annotation(
- Line(points = {{286, -354}, {286, -354}, {286, -330}, {286, -330}}, color = {0, 0, 255}));
- connect(genBus17.pwPin, B17.p) annotation(
- Line(points = {{52, -310}, {52, -310}, {52, -336}, {52, -336}}, color = {0, 0, 255}));
- connect(genBus19.pwPin, B19.p) annotation(
- Line(points = {{-138, -162}, {-138, -162}, {-138, -180}, {-136, -180}, {-136, -180}}, color = {0, 0, 255}));
- connect(genBus30.pwPin, B30.p) annotation(
- Line(points = {{-302, 166}, {-302, 166}, {-302, 150}, {-332, 150}, {-332, 124}, {-332, 124}, {-332, 124}}, color = {0, 0, 255}));
- connect(genBus33.pwPin, B33.p) annotation(
- Line(points = {{-344, 334}, {-344, 334}, {-344, 312}, {-348, 312}, {-348, 314}}, color = {0, 0, 255}));
- connect(genBus38.pwPin, B38.p) annotation(
- Line(points = {{106, -44}, {106, -44}, {106, -52}, {90, -52}, {90, -68}, {82, -68}, {82, -70}}, color = {0, 0, 255}));
- connect(genBus44.pwPin, B44.p) annotation(
- Line(points = {{-196, 110}, {-196, 110}, {-196, 100}, {-130, 100}, {-130, 102}}, color = {0, 0, 255}));
- connect(genBus48.pwPin, B48.p) annotation(
- Line(points = {{80, 328}, {80, 312}, {82, 312}}, color = {0, 0, 255}));
- connect(genBus49.pwPin, B49.p) annotation(
- Line(points = {{-50, 214}, {-50, 194}}, color = {0, 0, 255}));
- connect(genBus50.pwPin, B50.p) annotation(
- Line(points = {{66, 210}, {66, 210}, {66, 194}, {64, 194}}, color = {0, 0, 255}));
- connect(T_1_34.n, B1.p) annotation(
- Line(points = {{-210, 198}, {-182, 198}, {-182, 194}, {-170, 194}}, color = {0, 0, 255}));
- connect(T_1_34.p, B34.p) annotation(
- Line(points = {{-246, 198}, {-258, 198}, {-258, 214}, {-256, 214}}, color = {0, 0, 255}));
- connect(T_3_35.p, B35.p) annotation(
- Line(points = {{186, 212}, {174, 212}, {174, 196}, {174, 196}}, color = {0, 0, 255}));
- connect(T_3_35.n, B3.p) annotation(
- Line(points = {{222, 212}, {260, 212}, {260, 212}, {260, 212}}, color = {0, 0, 255}));
- connect(T_4_5.n, B4.p) annotation(
- Line(points = {{270, 274}, {270, 274}, {270, 264}, {268, 264}, {268, 264}}, color = {0, 0, 255}));
- connect(T_4_5.p, B5.p) annotation(
- Line(points = {{270, 310}, {270, 310}, {270, 320}, {272, 320}}, color = {0, 0, 255}));
- connect(T_7_36.p, B36.p) annotation(
- Line(points = {{209, 90}, {190, 90}, {190, 74}, {182, 74}}, color = {0, 0, 255}));
- connect(T_7_36.n, B7.p) annotation(
- Line(points = {{240, 90}, {256, 90}, {256, 96}, {266, 96}, {266, 98}, {268, 98}}, color = {0, 0, 255}));
- connect(T_11_37.p, B37.p) annotation(
- Line(points = {{198, -100}, {172, -100}, {172, -74}, {164, -74}, {164, -74}, {166, -74}}, color = {0, 0, 255}));
- connect(T_11_37.n, B11.p) annotation(
- Line(points = {{236, -100}, {256, -100}, {256, -118}, {280, -118}, {280, -118}}, color = {0, 0, 255}));
- connect(T_16_39.n, B39.p) annotation(
- Line(points = {{164, -336}, {164, -336}, {164, -344}, {166, -344}}, color = {0, 0, 255}));
- connect(T_16_39.p, B16.p) annotation(
- Line(points = {{164, -306}, {162, -306}, {162, -298}, {160, -298}, {160, -300}, {160, -300}}, color = {0, 0, 255}));
- connect(T_18_40.n, B18.p) annotation(
- Line(points = {{-36, -317}, {-36, -330}, {-32, -330}}, color = {0, 0, 255}));
- connect(T_18_40.p, B40.p) annotation(
- Line(points = {{-36, -287}, {-36, -278}}, color = {0, 0, 255}));
- connect(T_14_47.p, B47.p) annotation(
- Line(points = {{224, -258}, {206, -258}, {206, -246}, {200, -246}, {200, -244}}, color = {0, 0, 255}));
- connect(T_14_47.n, B14.p) annotation(
- Line(points = {{256, -258}, {274, -258}, {274, -262}, {288, -262}, {288, -264}}, color = {0, 0, 255}));
- connect(T_19_41.n, B41.p) annotation(
- Line(points = {{-136, -228}, {-138, -228}, {-138, -238}, {-136, -238}}, color = {0, 0, 255}));
- connect(T_19_41.p, B19.p) annotation(
- Line(points = {{-136, -194}, {-138, -194}, {-138, -180}, {-136, -180}}, color = {0, 0, 255}));
- connect(T_21_22.n, B21.p) annotation(
- Line(points = {{-318, -228}, {-318, -228}, {-318, -240}, {-312, -240}, {-312, -238}}, color = {0, 0, 255}));
- connect(T_21_22.p, B22.p) annotation(
- Line(points = {{-318, -196}, {-318, -196}, {-318, -184}, {-316, -184}, {-316, -184}, {-316, -184}}, color = {0, 0, 255}));
- connect(T_24_43.n, B24.p) annotation(
- Line(points = {{-124, -83}, {-124, -90}, {-116, -90}}, color = {0, 0, 255}));
- connect(T_24_43.p, B43.p) annotation(
- Line(points = {{-124, -61}, {-124, -49.5}, {-122, -49.5}, {-122, -38}}, color = {0, 0, 255}));
- connect(T_44_26.n, B26.p) annotation(
- Line(points = {{-134, 56}, {-134, 56}, {-134, 44}, {-132, 44}, {-132, 44}, {-130, 44}}, color = {0, 0, 255}));
- connect(T_44_26.p, B44.p) annotation(
- Line(points = {{-134, 92}, {-134, 92}, {-134, 102}, {-130, 102}}, color = {0, 0, 255}));
- connect(genBus11.pwPin, B1.p) annotation(
- Line(points = {{-168, 228}, {-170, 228}, {-170, 194}}, color = {0, 0, 255}));
- connect(T_30_46.p, B30.p) annotation(
- Line(points = {{-300, 134}, {-326, 134}, {-326, 126}, {-326, 126}, {-326, 124}, {-332, 124}, {-332, 124}}, color = {0, 0, 255}));
- connect(T_30_46.n, B46.p) annotation(
- Line(points = {{-266, 134}, {-246, 134}, {-246, 146}, {-238, 146}, {-238, 146}}, color = {0, 0, 255}));
- connect(T_20_42.n, B42.p) annotation(
- Line(points = {{-234, -300}, {-234, -300}, {-234, -308}, {-234, -308}, {-234, -308}}, color = {0, 0, 255}));
- connect(T_20_42.p, B20.p) annotation(
- Line(points = {{-234, -276}, {-234, -276}, {-234, -268}, {-232, -268}, {-232, -268}}, color = {0, 0, 255}));
- protected
- annotation(
- Diagram(coordinateSystem(extent = {{-500, -400}, {500, 400}})),
- Icon(coordinateSystem(extent = {{-500, -400}, {500, 400}})),
- uses(OpenIPSL(version = "1.5.0")));
- end Network;
-
- package GenBus
- model GenBus1
- extends OpenIPSL.Electrical.Essentials.pfComponent;
- parameter Real Vref0=1.141"Reference voltage AVR";
- parameter Boolean refdisturb_1 annotation(
- Dialog(group = "AVR Disturbance"));
- OpenIPSL.Interfaces.PwPin pwPin annotation(
- Placement(visible = true, transformation(origin = {102, 2}, extent = {{-10, -10}, {10, 10}}, rotation = 0), iconTransformation(origin = {102, 2}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- OpenIPSL.Electrical.Machines.PSAT.Order6 order6(D = 0, M = 7, P_0 = P_0, Q_0 = Q_0, Sn = 9950, T1d0 = 5.6, T1q0 = 1.1, T2d0 = 0.035, T2q0 = 0.035, Taa = 0.1, V_0 = V_0, V_b = V_b, Vn = 11, angle_0 = angle_0, e1q(fixed = true), ra = 0, v(fixed = true), x1d = 0.23, x1q = 0.23, x2d = 0.12, x2q = 0.15, xd = 1.1, xq = 1.08) annotation(
- Placement(visible = true, transformation(origin = {32, 0}, extent = {{-12, -12}, {12, 12}}, rotation = 0)));
- OpenIPSL.Electrical.Controls.PSAT.AVR.AVRTypeII AVR(Ae = 0.0039, Be = 1.555, Ka = 20, Ke = 1, Kf = 0.063, Ta = 0.2, Te = 0.314, Tf = 0.35, Tr = 0.001, v0 = V_0, vrmax = 5, vrmin = -5) annotation(
- Placement(visible = true, transformation(origin = {-23, -4}, extent = {{-13, -12}, {13, 12}}, rotation = 0)));
- Modelica.Blocks.Logical.Switch switch1 annotation(
- Placement(visible = true, transformation(extent = {{-66, -6}, {-56, 4}}, rotation = 0)));
- Modelica.Blocks.Sources.BooleanConstant booleanConstant(k = false) annotation(
- Placement(visible = true, transformation(extent = {{-86, -8}, {-76, 2}}, rotation = 0)));
- Modelica.Blocks.Sources.Pulse pulse(amplitude = 2, nperiod = 1, offset = Vref0, period = 20, startTime = 7, width = 10) annotation(
- Placement(visible = true, transformation(origin = {-85, -21}, extent = {{-5, -5}, {5, 5}}, rotation = 0)));
- equation
- connect(order6.p, pwPin) annotation(
- Line(points = {{44, 0}, {98, 0}, {98, 2}, {102, 2}}, color = {0, 0, 255}));
- connect(order6.pm, order6.pm0) annotation(
- Line(points = {{18, -6}, {10, -6}, {10, -16}, {22, -16}, {22, -12}, {22, -12}, {22, -14}}, color = {0, 0, 127}));
- connect(AVR.vf, order6.vf) annotation(
- Line(points = {{-7, -4}, {0, -4}, {0, 6}, {18, 6}}, color = {0, 0, 127}));
- connect(AVR.v, order6.v) annotation(
- Line(points = {{-38, -12}, {-48, -12}, {-48, -38}, {62, -38}, {62, 4}, {46, 4}, {46, 4}}, color = {0, 0, 127}));
- connect(AVR.vf0, order6.vf0) annotation(
- Line(points = {{-22, -18}, {-24, -18}, {-24, -44}, {84, -44}, {84, 20}, {22, 20}, {22, 14}, {22, 14}}, color = {0, 0, 127}));
- connect(switch1.u1, AVR.vref0) annotation(
- Line(points = {{-66, 4}, {-72, 4}, {-72, 24}, {-22, 24}, {-22, 10}, {-22, 10}}, color = {0, 0, 127}));
- connect(switch1.y, AVR.vref) annotation(
- Line(points = {{-56, 0}, {-46, 0}, {-46, 4}, {-38, 4}, {-38, 4}}, color = {0, 0, 127}));
- connect(booleanConstant.y, switch1.u2) annotation(
- Line(points = {{-75.5, -3}, {-68, -3}, {-68, 0}, {-66, 0}}, color = {255, 0, 255}));
- connect(pulse.y, switch1.u3) annotation(
- Line(points = {{-80, -20}, {-72, -20}, {-72, -4}, {-66, -4}, {-66, -4}}, color = {0, 0, 127}));
- annotation(
- Icon(graphics = {Ellipse(origin = {13, 7}, extent = {{-83, 67}, {83, -67}}, endAngle = 360), Line(origin = {10.7956, 12.6842}, points = {{-60.7956, -20.6842}, {-10.7956, 21.3158}, {31.2044, -12.6842}, {61.2044, 17.3158}, {61.2044, 19.3158}})}, coordinateSystem(initialScale = 0.1)),
- Diagram);
- end GenBus1;
-
- model GenBus7
- extends OpenIPSL.Electrical.Essentials.pfComponent;
- OpenIPSL.Interfaces.PwPin pwPin annotation(
- Placement(visible = true, transformation(origin = {102, 2}, extent = {{-10, -10}, {10, 10}}, rotation = 0), iconTransformation(origin = {102, 2}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- OpenIPSL.Electrical.Machines.PSAT.Order6 order6(D = 0, M = 7, P_0 = P_0, Q_0 = Q_0, Sn = 9950, T1d0 = 5.6, T1q0 = 1.1, T2d0 = 0.035, T2q0 = 0.035, Taa = 0.1, V_0 = V_0, V_b = V_b, Vn = 11, angle_0 = angle_0, e1q(fixed = true), ra = 0, v(fixed = true), x1d = 0.23, x1q = 0.23, x2d = 0.12, x2q = 0.15, xd = 1.1, xq = 1.08) annotation(
- Placement(visible = true, transformation(origin = {32, 0}, extent = {{-12, -12}, {12, 12}}, rotation = 0)));
- OpenIPSL.Electrical.Controls.PSAT.AVR.AVRTypeII AVR(Ae = 0.0039, Be = 1.555, Ka = 20, Ke = 1, Kf = 0.063, Ta = 0.2, Te = 0.314, Tf = 0.35, Tr = 0.001, v0 = V_0, vrmax = 5, vrmin = -5) annotation(
- Placement(visible = true, transformation(origin = {-23, -4}, extent = {{-13, -12}, {13, 12}}, rotation = 0)));
- equation
- connect(order6.p, pwPin) annotation(
- Line(points = {{44, 0}, {98, 0}, {98, 2}, {102, 2}}, color = {0, 0, 255}));
- connect(order6.pm, order6.pm0) annotation(
- Line(points = {{18, -6}, {10, -6}, {10, -16}, {22, -16}, {22, -12}, {22, -12}, {22, -14}}, color = {0, 0, 127}));
- connect(AVR.vf, order6.vf) annotation(
- Line(points = {{-7, -4}, {0, -4}, {0, 6}, {18, 6}}, color = {0, 0, 127}));
- connect(AVR.v, order6.v) annotation(
- Line(points = {{-38, -12}, {-48, -12}, {-48, -38}, {62, -38}, {62, 4}, {46, 4}, {46, 4}}, color = {0, 0, 127}));
- connect(AVR.vf0, order6.vf0) annotation(
- Line(points = {{-22, -18}, {-24, -18}, {-24, -44}, {84, -44}, {84, 20}, {22, 20}, {22, 14}, {22, 14}}, color = {0, 0, 127}));
- connect(AVR.vref, AVR.vref0) annotation(
- Line(points = {{-38, 4}, {-48, 4}, {-48, 18}, {-24, 18}, {-24, 10}, {-22, 10}}, color = {0, 0, 127}));
- annotation(
- Icon(graphics = {Ellipse(origin = {13, 7}, extent = {{-83, 67}, {83, -67}}, endAngle = 360), Line(origin = {10.7956, 12.6842}, points = {{-60.7956, -20.6842}, {-10.7956, 21.3158}, {31.2044, -12.6842}, {61.2044, 17.3158}, {61.2044, 19.3158}})}, coordinateSystem(initialScale = 0.1)),
- Diagram);
- end GenBus7;
-
- model GenBus15
- extends OpenIPSL.Electrical.Essentials.pfComponent;
- OpenIPSL.Interfaces.PwPin pwPin annotation(
- Placement(visible = true, transformation(origin = {102, 2}, extent = {{-10, -10}, {10, 10}}, rotation = 0), iconTransformation(origin = {102, 2}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- OpenIPSL.Electrical.Machines.PSAT.Order6 order6(D = 0, M = 7, P_0 = P_0, Q_0 = Q_0, Sn = 9950, T1d0 = 5.6, T1q0 = 1.1, T2d0 = 0.035, T2q0 = 0.035, Taa = 0.1, V_0 = V_0, V_b = V_b, Vn = 11, angle_0 = angle_0, e1q(fixed = true), ra = 0, v(fixed = true), x1d = 0.23, x1q = 0.23, x2d = 0.12, x2q = 0.15, xd = 1.1, xq = 1.08) annotation(
- Placement(visible = true, transformation(origin = {32, 0}, extent = {{-12, -12}, {12, 12}}, rotation = 0)));
- OpenIPSL.Electrical.Controls.PSAT.AVR.AVRTypeII AVR(Ae = 0.0039, Be = 1.555, Ka = 20, Ke = 1, Kf = 0.063, Ta = 0.2, Te = 0.314, Tf = 0.35, Tr = 0.001, v0 = V_0, vrmax = 5, vrmin = -5) annotation(
- Placement(visible = true, transformation(origin = {-23, -4}, extent = {{-13, -12}, {13, 12}}, rotation = 0)));
- equation
- connect(order6.p, pwPin) annotation(
- Line(points = {{44, 0}, {98, 0}, {98, 2}, {102, 2}}, color = {0, 0, 255}));
- connect(order6.pm, order6.pm0) annotation(
- Line(points = {{18, -6}, {10, -6}, {10, -16}, {22, -16}, {22, -12}, {22, -12}, {22, -14}}, color = {0, 0, 127}));
- connect(AVR.vf, order6.vf) annotation(
- Line(points = {{-7, -4}, {0, -4}, {0, 6}, {18, 6}}, color = {0, 0, 127}));
- connect(AVR.v, order6.v) annotation(
- Line(points = {{-38, -12}, {-48, -12}, {-48, -38}, {62, -38}, {62, 4}, {46, 4}, {46, 4}}, color = {0, 0, 127}));
- connect(AVR.vf0, order6.vf0) annotation(
- Line(points = {{-22, -18}, {-24, -18}, {-24, -44}, {84, -44}, {84, 20}, {22, 20}, {22, 14}, {22, 14}}, color = {0, 0, 127}));
- connect(AVR.vref, AVR.vref0) annotation(
- Line(points = {{-38, 4}, {-48, 4}, {-48, 18}, {-24, 18}, {-24, 10}, {-22, 10}}, color = {0, 0, 127}));
- annotation(
- Icon(graphics = {Ellipse(origin = {13, 7}, extent = {{-83, 67}, {83, -67}}, endAngle = 360), Line(origin = {10.7956, 12.6842}, points = {{-60.7956, -20.6842}, {-10.7956, 21.3158}, {31.2044, -12.6842}, {61.2044, 17.3158}, {61.2044, 19.3158}})}, coordinateSystem(initialScale = 0.1)),
- Diagram);
- end GenBus15;
-
- model GenBus17
- extends OpenIPSL.Electrical.Essentials.pfComponent;
- OpenIPSL.Interfaces.PwPin pwPin annotation(
- Placement(visible = true, transformation(origin = {102, 2}, extent = {{-10, -10}, {10, 10}}, rotation = 0), iconTransformation(origin = {102, 2}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- OpenIPSL.Electrical.Machines.PSAT.Order6 order6(D = 0, M = 7, P_0 = P_0, Q_0 = Q_0, Sn = 9950, T1d0 = 5.6, T1q0 = 1.1, T2d0 = 0.035, T2q0 = 0.035, Taa = 0.1, V_0 = V_0, V_b = V_b, Vn = 11, angle_0 = angle_0, e1q(fixed = true), ra = 0, v(fixed = true), x1d = 0.23, x1q = 0.23, x2d = 0.12, x2q = 0.15, xd = 1.1, xq = 1.08) annotation(
- Placement(visible = true, transformation(origin = {32, 0}, extent = {{-12, -12}, {12, 12}}, rotation = 0)));
- OpenIPSL.Electrical.Controls.PSAT.AVR.AVRTypeII AVR(Ae = 0.0039, Be = 1.555, Ka = 20, Ke = 1, Kf = 0.063, Ta = 0.2, Te = 0.314, Tf = 0.35, Tr = 0.001, v0 = V_0, vrmax = 5, vrmin = -5) annotation(
- Placement(visible = true, transformation(origin = {-23, -4}, extent = {{-13, -12}, {13, 12}}, rotation = 0)));
- equation
- connect(order6.p, pwPin) annotation(
- Line(points = {{44, 0}, {98, 0}, {98, 2}, {102, 2}}, color = {0, 0, 255}));
- connect(order6.pm, order6.pm0) annotation(
- Line(points = {{18, -6}, {10, -6}, {10, -16}, {22, -16}, {22, -12}, {22, -12}, {22, -14}}, color = {0, 0, 127}));
- connect(AVR.vf, order6.vf) annotation(
- Line(points = {{-7, -4}, {0, -4}, {0, 6}, {18, 6}}, color = {0, 0, 127}));
- connect(AVR.v, order6.v) annotation(
- Line(points = {{-38, -12}, {-48, -12}, {-48, -38}, {62, -38}, {62, 4}, {46, 4}, {46, 4}}, color = {0, 0, 127}));
- connect(AVR.vf0, order6.vf0) annotation(
- Line(points = {{-22, -18}, {-24, -18}, {-24, -44}, {84, -44}, {84, 20}, {22, 20}, {22, 14}, {22, 14}}, color = {0, 0, 127}));
- connect(AVR.vref, AVR.vref0) annotation(
- Line(points = {{-38, 4}, {-48, 4}, {-48, 18}, {-24, 18}, {-24, 10}, {-22, 10}}, color = {0, 0, 127}));
- annotation(
- Icon(graphics = {Ellipse(origin = {13, 7}, extent = {{-83, 67}, {83, -67}}, endAngle = 360), Line(origin = {10.7956, 12.6842}, points = {{-60.7956, -20.6842}, {-10.7956, 21.3158}, {31.2044, -12.6842}, {61.2044, 17.3158}, {61.2044, 19.3158}})}, coordinateSystem(initialScale = 0.1)),
- Diagram);
- end GenBus17;
-
- model GenBus19
- extends OpenIPSL.Electrical.Essentials.pfComponent;
- OpenIPSL.Interfaces.PwPin pwPin annotation(
- Placement(visible = true, transformation(origin = {102, 2}, extent = {{-10, -10}, {10, 10}}, rotation = 0), iconTransformation(origin = {102, 2}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- OpenIPSL.Electrical.Machines.PSAT.Order6 order6(D = 0, M = 7, P_0 = P_0, Q_0 = Q_0, Sn = 9950, T1d0 = 5.6, T1q0 = 1.1, T2d0 = 0.035, T2q0 = 0.035, Taa = 0.1, V_0 = V_0, V_b = V_b, Vn = 11, angle_0 = angle_0, e1q(fixed = true), ra = 0, v(fixed = true), x1d = 0.23, x1q = 0.23, x2d = 0.12, x2q = 0.15, xd = 1.1, xq = 1.08) annotation(
- Placement(visible = true, transformation(origin = {32, 0}, extent = {{-12, -12}, {12, 12}}, rotation = 0)));
- OpenIPSL.Electrical.Controls.PSAT.AVR.AVRTypeII AVR(Ae = 0.0039, Be = 1.555, Ka = 20, Ke = 1, Kf = 0.063, Ta = 0.2, Te = 0.314, Tf = 0.35, Tr = 0.001, v0 = V_0, vrmax = 5, vrmin = -5) annotation(
- Placement(visible = true, transformation(origin = {-23, -4}, extent = {{-13, -12}, {13, 12}}, rotation = 0)));
- equation
- connect(order6.p, pwPin) annotation(
- Line(points = {{44, 0}, {98, 0}, {98, 2}, {102, 2}}, color = {0, 0, 255}));
- connect(order6.pm, order6.pm0) annotation(
- Line(points = {{18, -6}, {10, -6}, {10, -16}, {22, -16}, {22, -12}, {22, -12}, {22, -14}}, color = {0, 0, 127}));
- connect(AVR.vf, order6.vf) annotation(
- Line(points = {{-7, -4}, {0, -4}, {0, 6}, {18, 6}}, color = {0, 0, 127}));
- connect(AVR.v, order6.v) annotation(
- Line(points = {{-38, -12}, {-48, -12}, {-48, -38}, {62, -38}, {62, 4}, {46, 4}, {46, 4}}, color = {0, 0, 127}));
- connect(AVR.vf0, order6.vf0) annotation(
- Line(points = {{-22, -18}, {-24, -18}, {-24, -44}, {84, -44}, {84, 20}, {22, 20}, {22, 14}, {22, 14}}, color = {0, 0, 127}));
- connect(AVR.vref, AVR.vref0) annotation(
- Line(points = {{-38, 4}, {-48, 4}, {-48, 18}, {-24, 18}, {-24, 10}, {-22, 10}}, color = {0, 0, 127}));
- annotation(
- Icon(graphics = {Ellipse(origin = {13, 7}, extent = {{-83, 67}, {83, -67}}, endAngle = 360), Line(origin = {10.7956, 12.6842}, points = {{-60.7956, -20.6842}, {-10.7956, 21.3158}, {31.2044, -12.6842}, {61.2044, 17.3158}, {61.2044, 19.3158}})}, coordinateSystem(initialScale = 0.1)),
- Diagram);
- end GenBus19;
-
- model GenBus30
- extends OpenIPSL.Electrical.Essentials.pfComponent;
- OpenIPSL.Interfaces.PwPin pwPin annotation(
- Placement(visible = true, transformation(origin = {102, 2}, extent = {{-10, -10}, {10, 10}}, rotation = 0), iconTransformation(origin = {102, 2}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- OpenIPSL.Electrical.Machines.PSAT.Order6 order6(D = 0, M = 7, P_0 = P_0, Q_0 = Q_0, Sn = 9950, T1d0 = 5.6, T1q0 = 1.1, T2d0 = 0.035, T2q0 = 0.035, Taa = 0.1, V_0 = V_0, V_b = V_b, Vn = 11, angle_0 = angle_0, e1q(fixed = true), ra = 0, v(fixed = true), x1d = 0.23, x1q = 0.23, x2d = 0.12, x2q = 0.15, xd = 1.1, xq = 1.08) annotation(
- Placement(visible = true, transformation(origin = {32, 0}, extent = {{-12, -12}, {12, 12}}, rotation = 0)));
- OpenIPSL.Electrical.Controls.PSAT.AVR.AVRTypeII AVR(Ae = 0.0039, Be = 1.555, Ka = 20, Ke = 1, Kf = 0.063, Ta = 0.2, Te = 0.314, Tf = 0.35, Tr = 0.001, v0 = V_0, vrmax = 5, vrmin = -5) annotation(
- Placement(visible = true, transformation(origin = {-23, -4}, extent = {{-13, -12}, {13, 12}}, rotation = 0)));
- equation
- connect(order6.p, pwPin) annotation(
- Line(points = {{44, 0}, {98, 0}, {98, 2}, {102, 2}}, color = {0, 0, 255}));
- connect(order6.pm, order6.pm0) annotation(
- Line(points = {{18, -6}, {10, -6}, {10, -16}, {22, -16}, {22, -12}, {22, -12}, {22, -14}}, color = {0, 0, 127}));
- connect(AVR.vf, order6.vf) annotation(
- Line(points = {{-7, -4}, {0, -4}, {0, 6}, {18, 6}}, color = {0, 0, 127}));
- connect(AVR.v, order6.v) annotation(
- Line(points = {{-38, -12}, {-48, -12}, {-48, -38}, {62, -38}, {62, 4}, {46, 4}, {46, 4}}, color = {0, 0, 127}));
- connect(AVR.vf0, order6.vf0) annotation(
- Line(points = {{-22, -18}, {-24, -18}, {-24, -44}, {84, -44}, {84, 20}, {22, 20}, {22, 14}, {22, 14}}, color = {0, 0, 127}));
- connect(AVR.vref, AVR.vref0) annotation(
- Line(points = {{-38, 4}, {-48, 4}, {-48, 18}, {-24, 18}, {-24, 10}, {-22, 10}}, color = {0, 0, 127}));
- annotation(
- Icon(graphics = {Ellipse(origin = {13, 7}, extent = {{-83, 67}, {83, -67}}, endAngle = 360), Line(origin = {10.7956, 12.6842}, points = {{-60.7956, -20.6842}, {-10.7956, 21.3158}, {31.2044, -12.6842}, {61.2044, 17.3158}, {61.2044, 19.3158}})}, coordinateSystem(initialScale = 0.1)),
- Diagram);
- end GenBus30;
-
- model GenBus33
- extends OpenIPSL.Electrical.Essentials.pfComponent;
- OpenIPSL.Interfaces.PwPin pwPin annotation(
- Placement(visible = true, transformation(origin = {102, 2}, extent = {{-10, -10}, {10, 10}}, rotation = 0), iconTransformation(origin = {102, 2}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- OpenIPSL.Electrical.Machines.PSAT.Order6 order6(D = 0, M = 7, P_0 = P_0, Q_0 = Q_0, Sn = 9950, T1d0 = 5.6, T1q0 = 1.1, T2d0 = 0.035, T2q0 = 0.035, Taa = 0.1, V_0 = V_0, V_b = V_b, Vn = 11, angle_0 = angle_0, e1q(fixed = true), ra = 0, v(fixed = true), x1d = 0.23, x1q = 0.23, x2d = 0.12, x2q = 0.15, xd = 1.1, xq = 1.08) annotation(
- Placement(visible = true, transformation(origin = {32, 0}, extent = {{-12, -12}, {12, 12}}, rotation = 0)));
- OpenIPSL.Electrical.Controls.PSAT.AVR.AVRTypeII AVR(Ae = 0.0039, Be = 1.555, Ka = 20, Ke = 1, Kf = 0.063, Ta = 0.2, Te = 0.314, Tf = 0.35, Tr = 0.001, v0 = V_0, vrmax = 5, vrmin = -5) annotation(
- Placement(visible = true, transformation(origin = {-23, -4}, extent = {{-13, -12}, {13, 12}}, rotation = 0)));
- equation
- connect(order6.p, pwPin) annotation(
- Line(points = {{44, 0}, {98, 0}, {98, 2}, {102, 2}}, color = {0, 0, 255}));
- connect(order6.pm, order6.pm0) annotation(
- Line(points = {{18, -6}, {10, -6}, {10, -16}, {22, -16}, {22, -12}, {22, -12}, {22, -14}}, color = {0, 0, 127}));
- connect(AVR.vf, order6.vf) annotation(
- Line(points = {{-7, -4}, {0, -4}, {0, 6}, {18, 6}}, color = {0, 0, 127}));
- connect(AVR.v, order6.v) annotation(
- Line(points = {{-38, -12}, {-48, -12}, {-48, -38}, {62, -38}, {62, 4}, {46, 4}, {46, 4}}, color = {0, 0, 127}));
- connect(AVR.vf0, order6.vf0) annotation(
- Line(points = {{-22, -18}, {-24, -18}, {-24, -44}, {84, -44}, {84, 20}, {22, 20}, {22, 14}, {22, 14}}, color = {0, 0, 127}));
- connect(AVR.vref, AVR.vref0) annotation(
- Line(points = {{-38, 4}, {-48, 4}, {-48, 18}, {-24, 18}, {-24, 10}, {-22, 10}}, color = {0, 0, 127}));
- annotation(
- Icon(graphics = {Ellipse(origin = {13, 7}, extent = {{-83, 67}, {83, -67}}, endAngle = 360), Line(origin = {10.7956, 12.6842}, points = {{-60.7956, -20.6842}, {-10.7956, 21.3158}, {31.2044, -12.6842}, {61.2044, 17.3158}, {61.2044, 19.3158}})}, coordinateSystem(initialScale = 0.1)),
- Diagram);
- end GenBus33;
-
- model GenBus44
- extends OpenIPSL.Electrical.Essentials.pfComponent;
- OpenIPSL.Interfaces.PwPin pwPin annotation(
- Placement(visible = true, transformation(origin = {102, 2}, extent = {{-10, -10}, {10, 10}}, rotation = 0), iconTransformation(origin = {102, 2}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- OpenIPSL.Electrical.Machines.PSAT.Order6 order6(D = 0, M = 7, P_0 = P_0, Q_0 = Q_0, Sn = 9950, T1d0 = 5.6, T1q0 = 1.1, T2d0 = 0.035, T2q0 = 0.035, Taa = 0.1, V_0 = V_0, V_b = V_b, Vn = 11, angle_0 = angle_0, e1q(fixed = true), ra = 0, v(fixed = true), x1d = 0.23, x1q = 0.23, x2d = 0.12, x2q = 0.15, xd = 1.1, xq = 1.08) annotation(
- Placement(visible = true, transformation(origin = {32, 0}, extent = {{-12, -12}, {12, 12}}, rotation = 0)));
- OpenIPSL.Electrical.Controls.PSAT.AVR.AVRTypeII AVR(Ae = 0.0039, Be = 1.555, Ka = 20, Ke = 1, Kf = 0.063, Ta = 0.2, Te = 0.314, Tf = 0.35, Tr = 0.001, v0 = V_0, vrmax = 5, vrmin = -5) annotation(
- Placement(visible = true, transformation(origin = {-23, -4}, extent = {{-13, -12}, {13, 12}}, rotation = 0)));
- equation
- connect(order6.p, pwPin) annotation(
- Line(points = {{44, 0}, {98, 0}, {98, 2}, {102, 2}}, color = {0, 0, 255}));
- connect(order6.pm, order6.pm0) annotation(
- Line(points = {{18, -6}, {10, -6}, {10, -16}, {22, -16}, {22, -12}, {22, -12}, {22, -14}}, color = {0, 0, 127}));
- connect(AVR.vf, order6.vf) annotation(
- Line(points = {{-7, -4}, {0, -4}, {0, 6}, {18, 6}}, color = {0, 0, 127}));
- connect(AVR.v, order6.v) annotation(
- Line(points = {{-38, -12}, {-48, -12}, {-48, -38}, {62, -38}, {62, 4}, {46, 4}, {46, 4}}, color = {0, 0, 127}));
- connect(AVR.vf0, order6.vf0) annotation(
- Line(points = {{-22, -18}, {-24, -18}, {-24, -44}, {84, -44}, {84, 20}, {22, 20}, {22, 14}, {22, 14}}, color = {0, 0, 127}));
- connect(AVR.vref, AVR.vref0) annotation(
- Line(points = {{-38, 4}, {-48, 4}, {-48, 18}, {-24, 18}, {-24, 10}, {-22, 10}}, color = {0, 0, 127}));
- annotation(
- Icon(graphics = {Ellipse(origin = {13, 7}, extent = {{-83, 67}, {83, -67}}, endAngle = 360), Line(origin = {10.7956, 12.6842}, points = {{-60.7956, -20.6842}, {-10.7956, 21.3158}, {31.2044, -12.6842}, {61.2044, 17.3158}, {61.2044, 19.3158}})}, coordinateSystem(initialScale = 0.1)),
- Diagram);
- end GenBus44;
-
- model GenBus48
- extends OpenIPSL.Electrical.Essentials.pfComponent;
- OpenIPSL.Interfaces.PwPin pwPin annotation(
- Placement(visible = true, transformation(origin = {102, 2}, extent = {{-10, -10}, {10, 10}}, rotation = 0), iconTransformation(origin = {102, 2}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- OpenIPSL.Electrical.Machines.PSAT.Order6 order6(D = 0, M = 7, P_0 = P_0, Q_0 = Q_0, Sn = 9950, T1d0 = 5.6, T1q0 = 1.1, T2d0 = 0.035, T2q0 = 0.035, Taa = 0.1, V_0 = V_0, V_b = V_b, Vn = 11, angle_0 = angle_0, e1q(fixed = true), ra = 0, v(fixed = true), x1d = 0.23, x1q = 0.23, x2d = 0.12, x2q = 0.15, xd = 1.1, xq = 1.08) annotation(
- Placement(visible = true, transformation(origin = {32, 0}, extent = {{-12, -12}, {12, 12}}, rotation = 0)));
- OpenIPSL.Electrical.Controls.PSAT.AVR.AVRTypeII AVR(Ae = 0.0039, Be = 1.555, Ka = 20, Ke = 1, Kf = 0.063, Ta = 0.2, Te = 0.314, Tf = 0.35, Tr = 0.001, v0 = V_0, vrmax = 5, vrmin = -5) annotation(
- Placement(visible = true, transformation(origin = {-23, -4}, extent = {{-13, -12}, {13, 12}}, rotation = 0)));
- equation
- connect(order6.p, pwPin) annotation(
- Line(points = {{44, 0}, {98, 0}, {98, 2}, {102, 2}}, color = {0, 0, 255}));
- connect(order6.pm, order6.pm0) annotation(
- Line(points = {{18, -6}, {10, -6}, {10, -16}, {22, -16}, {22, -12}, {22, -12}, {22, -14}}, color = {0, 0, 127}));
- connect(AVR.vf, order6.vf) annotation(
- Line(points = {{-7, -4}, {0, -4}, {0, 6}, {18, 6}}, color = {0, 0, 127}));
- connect(AVR.v, order6.v) annotation(
- Line(points = {{-38, -12}, {-48, -12}, {-48, -38}, {62, -38}, {62, 4}, {46, 4}, {46, 4}}, color = {0, 0, 127}));
- connect(AVR.vf0, order6.vf0) annotation(
- Line(points = {{-22, -18}, {-24, -18}, {-24, -44}, {84, -44}, {84, 20}, {22, 20}, {22, 14}, {22, 14}}, color = {0, 0, 127}));
- connect(AVR.vref, AVR.vref0) annotation(
- Line(points = {{-38, 4}, {-48, 4}, {-48, 18}, {-24, 18}, {-24, 10}, {-22, 10}}, color = {0, 0, 127}));
- annotation(
- Icon(graphics = {Ellipse(origin = {13, 7}, extent = {{-83, 67}, {83, -67}}, endAngle = 360), Line(origin = {10.7956, 12.6842}, points = {{-60.7956, -20.6842}, {-10.7956, 21.3158}, {31.2044, -12.6842}, {61.2044, 17.3158}, {61.2044, 19.3158}})}, coordinateSystem(initialScale = 0.1)),
- Diagram);
- end GenBus48;
-
- model GenBus49
- extends OpenIPSL.Electrical.Essentials.pfComponent;
- OpenIPSL.Interfaces.PwPin pwPin annotation(
- Placement(visible = true, transformation(origin = {102, 2}, extent = {{-10, -10}, {10, 10}}, rotation = 0), iconTransformation(origin = {102, 2}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- OpenIPSL.Electrical.Machines.PSAT.Order6 order6(D = 0, M = 7, P_0 = P_0, Q_0 = Q_0, Sn = 9950, T1d0 = 5.6, T1q0 = 1.1, T2d0 = 0.035, T2q0 = 0.035, Taa = 0.1, V_0 = V_0, V_b = V_b, Vn = 11, angle_0 = angle_0, e1q(fixed = true), ra = 0, v(fixed = true), x1d = 0.23, x1q = 0.23, x2d = 0.12, x2q = 0.15, xd = 1.1, xq = 1.08) annotation(
- Placement(visible = true, transformation(origin = {32, 0}, extent = {{-12, -12}, {12, 12}}, rotation = 0)));
- OpenIPSL.Electrical.Controls.PSAT.AVR.AVRTypeII AVR(Ae = 0.0039, Be = 1.555, Ka = 20, Ke = 1, Kf = 0.063, Ta = 0.2, Te = 0.314, Tf = 0.35, Tr = 0.001, v0 = V_0, vrmax = 5, vrmin = -5) annotation(
- Placement(visible = true, transformation(origin = {-23, -4}, extent = {{-13, -12}, {13, 12}}, rotation = 0)));
- equation
- connect(order6.p, pwPin) annotation(
- Line(points = {{44, 0}, {98, 0}, {98, 2}, {102, 2}}, color = {0, 0, 255}));
- connect(order6.pm, order6.pm0) annotation(
- Line(points = {{18, -6}, {10, -6}, {10, -16}, {22, -16}, {22, -12}, {22, -12}, {22, -14}}, color = {0, 0, 127}));
- connect(AVR.vf, order6.vf) annotation(
- Line(points = {{-7, -4}, {0, -4}, {0, 6}, {18, 6}}, color = {0, 0, 127}));
- connect(AVR.v, order6.v) annotation(
- Line(points = {{-38, -12}, {-48, -12}, {-48, -38}, {62, -38}, {62, 4}, {46, 4}, {46, 4}}, color = {0, 0, 127}));
- connect(AVR.vf0, order6.vf0) annotation(
- Line(points = {{-22, -18}, {-24, -18}, {-24, -44}, {84, -44}, {84, 20}, {22, 20}, {22, 14}, {22, 14}}, color = {0, 0, 127}));
- connect(AVR.vref, AVR.vref0) annotation(
- Line(points = {{-38, 4}, {-48, 4}, {-48, 18}, {-24, 18}, {-24, 10}, {-22, 10}}, color = {0, 0, 127}));
- annotation(
- Icon(graphics = {Ellipse(origin = {13, 7}, extent = {{-83, 67}, {83, -67}}, endAngle = 360), Line(origin = {10.7956, 12.6842}, points = {{-60.7956, -20.6842}, {-10.7956, 21.3158}, {31.2044, -12.6842}, {61.2044, 17.3158}, {61.2044, 19.3158}})}, coordinateSystem(initialScale = 0.1)),
- Diagram);
- end GenBus49;
-
- model GenBus50
- extends OpenIPSL.Electrical.Essentials.pfComponent;
- OpenIPSL.Interfaces.PwPin pwPin annotation(
- Placement(visible = true, transformation(origin = {102, 2}, extent = {{-10, -10}, {10, 10}}, rotation = 0), iconTransformation(origin = {102, 2}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- OpenIPSL.Electrical.Machines.PSAT.Order6 order6(D = 0, M = 7, P_0 = P_0, Q_0 = Q_0, Sn = 9950, T1d0 = 5.6, T1q0 = 1.1, T2d0 = 0.035, T2q0 = 0.035, Taa = 0.1, V_0 = V_0, V_b = V_b, Vn = 11, angle_0 = angle_0, e1q(fixed = true), ra = 0, v(fixed = true), x1d = 0.23, x1q = 0.23, x2d = 0.12, x2q = 0.15, xd = 1.1, xq = 1.08) annotation(
- Placement(visible = true, transformation(origin = {32, 0}, extent = {{-12, -12}, {12, 12}}, rotation = 0)));
- OpenIPSL.Electrical.Controls.PSAT.AVR.AVRTypeII AVR(Ae = 0.0039, Be = 1.555, Ka = 20, Ke = 1, Kf = 0.063, Ta = 0.2, Te = 0.314, Tf = 0.35, Tr = 0.001, v0 = V_0, vrmax = 5, vrmin = -5) annotation(
- Placement(visible = true, transformation(origin = {-23, -4}, extent = {{-13, -12}, {13, 12}}, rotation = 0)));
- equation
- connect(order6.p, pwPin) annotation(
- Line(points = {{44, 0}, {98, 0}, {98, 2}, {102, 2}}, color = {0, 0, 255}));
- connect(order6.pm, order6.pm0) annotation(
- Line(points = {{18, -6}, {10, -6}, {10, -16}, {22, -16}, {22, -12}, {22, -12}, {22, -14}}, color = {0, 0, 127}));
- connect(AVR.vf, order6.vf) annotation(
- Line(points = {{-7, -4}, {0, -4}, {0, 6}, {18, 6}}, color = {0, 0, 127}));
- connect(AVR.v, order6.v) annotation(
- Line(points = {{-38, -12}, {-48, -12}, {-48, -38}, {62, -38}, {62, 4}, {46, 4}, {46, 4}}, color = {0, 0, 127}));
- connect(AVR.vf0, order6.vf0) annotation(
- Line(points = {{-22, -18}, {-24, -18}, {-24, -44}, {84, -44}, {84, 20}, {22, 20}, {22, 14}, {22, 14}}, color = {0, 0, 127}));
- connect(AVR.vref, AVR.vref0) annotation(
- Line(points = {{-38, 4}, {-48, 4}, {-48, 18}, {-24, 18}, {-24, 10}, {-22, 10}}, color = {0, 0, 127}));
- annotation(
- Icon(graphics = {Ellipse(origin = {13, 7}, extent = {{-83, 67}, {83, -67}}, endAngle = 360), Line(origin = {10.7956, 12.6842}, points = {{-60.7956, -20.6842}, {-10.7956, 21.3158}, {31.2044, -12.6842}, {61.2044, 17.3158}, {61.2044, 19.3158}})}, coordinateSystem(initialScale = 0.1)),
- Diagram);
- end GenBus50;
-
- model GenBus38
- extends OpenIPSL.Electrical.Essentials.pfComponent;
- OpenIPSL.Interfaces.PwPin pwPin annotation(
- Placement(visible = true, transformation(origin = {102, 2}, extent = {{-10, -10}, {10, 10}}, rotation = 0), iconTransformation(origin = {102, 2}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- OpenIPSL.Electrical.Machines.PSAT.Order6 order6(D = 0, M = 7, P_0 = P_0, Q_0 = Q_0, Sn = 9950, T1d0 = 5.6, T1q0 = 1.1, T2d0 = 0.035, T2q0 = 0.035, Taa = 0.1, V_0 = V_0, V_b = V_b, Vn = 11, angle_0 = angle_0, e1q(fixed = true), ra = 0, v(fixed = true), x1d = 0.23, x1q = 0.23, x2d = 0.12, x2q = 0.15, xd = 1.1, xq = 1.08) annotation(
- Placement(visible = true, transformation(origin = {32, 0}, extent = {{-12, -12}, {12, 12}}, rotation = 0)));
- OpenIPSL.Electrical.Controls.PSAT.AVR.AVRTypeII AVR(Ae = 0.0039, Be = 1.555, Ka = 20, Ke = 1, Kf = 0.063, Ta = 0.2, Te = 0.314, Tf = 0.35, Tr = 0.001, v0 = V_0, vrmax = 5, vrmin = -5) annotation(
- Placement(visible = true, transformation(origin = {-23, -4}, extent = {{-13, -12}, {13, 12}}, rotation = 0)));
- equation
- connect(order6.p, pwPin) annotation(
- Line(points = {{44, 0}, {98, 0}, {98, 2}, {102, 2}}, color = {0, 0, 255}));
- connect(order6.pm, order6.pm0) annotation(
- Line(points = {{18, -6}, {10, -6}, {10, -16}, {22, -16}, {22, -12}, {22, -12}, {22, -14}}, color = {0, 0, 127}));
- connect(AVR.vf, order6.vf) annotation(
- Line(points = {{-7, -4}, {0, -4}, {0, 6}, {18, 6}}, color = {0, 0, 127}));
- connect(AVR.v, order6.v) annotation(
- Line(points = {{-38, -12}, {-48, -12}, {-48, -38}, {62, -38}, {62, 4}, {46, 4}, {46, 4}}, color = {0, 0, 127}));
- connect(AVR.vf0, order6.vf0) annotation(
- Line(points = {{-22, -18}, {-24, -18}, {-24, -44}, {84, -44}, {84, 20}, {22, 20}, {22, 14}, {22, 14}}, color = {0, 0, 127}));
- connect(AVR.vref, AVR.vref0) annotation(
- Line(points = {{-38, 4}, {-48, 4}, {-48, 18}, {-24, 18}, {-24, 10}, {-22, 10}}, color = {0, 0, 127}));
- annotation(
- Icon(graphics = {Ellipse(origin = {13, 7}, extent = {{-83, 67}, {83, -67}}, endAngle = 360), Line(origin = {10.7956, 12.6842}, points = {{-60.7956, -20.6842}, {-10.7956, 21.3158}, {31.2044, -12.6842}, {61.2044, 17.3158}, {61.2044, 19.3158}})}, coordinateSystem(initialScale = 0.1)),
- Diagram);
- end GenBus38;
- end GenBus;
- annotation(
- uses(OpenIPSL(version = "1.5.0"), Modelica(version = "3.2.3")));
-
- end Modelling_of_51_bus_system_case2;
- annotation(
- uses(OpenIPSL(version = "1.5.0")));
-end Modelling_of_51_bus_system;
diff --git a/Modelling_And_Simulation_Od_51-Bus_System_Using_Openmodelica_And_Openipsl_By_Mr_R._Asick/project_files/REPORT.pdf b/Modelling_And_Simulation_Od_51-Bus_System_Using_Openmodelica_And_Openipsl_By_Mr_R._Asick/project_files/REPORT.pdf
deleted file mode 100644
index dfe0b06..0000000
Binary files a/Modelling_And_Simulation_Od_51-Bus_System_Using_Openmodelica_And_Openipsl_By_Mr_R._Asick/project_files/REPORT.pdf and /dev/null differ
diff --git a/Modelling_And_Simulation_Of_181_Bus_Tneb_Power_System_Using_Openipsl_By_Ms_J._Abinaya,_H._Dhinisha,_P._Pavithra_And_P._Tharshana_Priya/LoadFlowAnalysis.pdf b/Modelling_And_Simulation_Of_181_Bus_Tneb_Power_System_Using_Openipsl_By_Ms_J._Abinaya,_H._Dhinisha,_P._Pavithra_And_P._Tharshana_Priya/LoadFlowAnalysis.pdf
new file mode 100644
index 0000000..529ad36
Binary files /dev/null and b/Modelling_And_Simulation_Of_181_Bus_Tneb_Power_System_Using_Openipsl_By_Ms_J._Abinaya,_H._Dhinisha,_P._Pavithra_And_P._Tharshana_Priya/LoadFlowAnalysis.pdf differ
diff --git a/Modelling_And_Simulation_Of_181_Bus_Tneb_Power_System_Using_Openmodelica_And_Openipsl_By_Ms_J._Abinaya,_H._Dhinisha,_P._Pavithra_And_P._Tharshana_Priya/LoadFlowAnalysis.pdf b/Modelling_And_Simulation_Of_181_Bus_Tneb_Power_System_Using_Openmodelica_And_Openipsl_By_Ms_J._Abinaya,_H._Dhinisha,_P._Pavithra_And_P._Tharshana_Priya/LoadFlowAnalysis.pdf
deleted file mode 100644
index 529ad36..0000000
Binary files a/Modelling_And_Simulation_Of_181_Bus_Tneb_Power_System_Using_Openmodelica_And_Openipsl_By_Ms_J._Abinaya,_H._Dhinisha,_P._Pavithra_And_P._Tharshana_Priya/LoadFlowAnalysis.pdf and /dev/null differ
diff --git a/Modelling_And_Simulation_Of_1_Generator_And_9_Bus_Using_The_Openipsl_By_Mr_Aritra_Banerjee/README.txt b/Modelling_And_Simulation_Of_1_Generator_And_9_Bus_Using_The_Openipsl_By_Mr_Aritra_Banerjee/README.txt
new file mode 100644
index 0000000..ad6f443
--- /dev/null
+++ b/Modelling_And_Simulation_Of_1_Generator_And_9_Bus_Using_The_Openipsl_By_Mr_Aritra_Banerjee/README.txt
@@ -0,0 +1,8 @@
+About the Power System Simulation
+
+Title Of The Power System Simulation Project: Modeling and simulation of 1 generator and 9 bus using the OpenIPSL
+Proposar Name: Mr Aritra Banerjee
+University: Meghnad Saha Institute Of Technology
+
+
+OM PSSP Project By FOSSEE, IIT Bombay
diff --git a/Modelling_And_Simulation_Of_1_Generator_And_9_Bus_Using_The_Openipsl_By_Mr_Aritra_Banerjee/abstract.pdf b/Modelling_And_Simulation_Of_1_Generator_And_9_Bus_Using_The_Openipsl_By_Mr_Aritra_Banerjee/abstract.pdf
new file mode 100644
index 0000000..6296c34
Binary files /dev/null and b/Modelling_And_Simulation_Of_1_Generator_And_9_Bus_Using_The_Openipsl_By_Mr_Aritra_Banerjee/abstract.pdf differ
diff --git a/Modelling_And_Simulation_Of_1_Generator_And_9_Bus_Using_The_Openipsl_By_Mr_Aritra_Banerjee/project_files/modelabstract.pdf b/Modelling_And_Simulation_Of_1_Generator_And_9_Bus_Using_The_Openipsl_By_Mr_Aritra_Banerjee/project_files/modelabstract.pdf
new file mode 100644
index 0000000..f627104
Binary files /dev/null and b/Modelling_And_Simulation_Of_1_Generator_And_9_Bus_Using_The_Openipsl_By_Mr_Aritra_Banerjee/project_files/modelabstract.pdf differ
diff --git a/Modelling_And_Simulation_Of_1_Generator_And_9_Bus_Using_The_Openipsl_By_Mr_Aritra_Banerjee/project_files/modelingandsimulationfile.zip b/Modelling_And_Simulation_Of_1_Generator_And_9_Bus_Using_The_Openipsl_By_Mr_Aritra_Banerjee/project_files/modelingandsimulationfile.zip
new file mode 100644
index 0000000..a98173b
Binary files /dev/null and b/Modelling_And_Simulation_Of_1_Generator_And_9_Bus_Using_The_Openipsl_By_Mr_Aritra_Banerjee/project_files/modelingandsimulationfile.zip differ
diff --git a/Modelling_And_Simulation_Of_4_Machine_10_Bus_System_Using_Openipsl_By_Mr_Syed_Yasser_Ali/A99.pdf b/Modelling_And_Simulation_Of_4_Machine_10_Bus_System_Using_Openipsl_By_Mr_Syed_Yasser_Ali/A99.pdf
new file mode 100644
index 0000000..87d2851
Binary files /dev/null and b/Modelling_And_Simulation_Of_4_Machine_10_Bus_System_Using_Openipsl_By_Mr_Syed_Yasser_Ali/A99.pdf differ
diff --git a/Modelling_And_Simulation_Of_4_Machine_10_Bus_System_Using_Openipsl_By_Mr_Syed_Yasser_Ali/README.txt b/Modelling_And_Simulation_Of_4_Machine_10_Bus_System_Using_Openipsl_By_Mr_Syed_Yasser_Ali/README.txt
new file mode 100644
index 0000000..7c8552c
--- /dev/null
+++ b/Modelling_And_Simulation_Of_4_Machine_10_Bus_System_Using_Openipsl_By_Mr_Syed_Yasser_Ali/README.txt
@@ -0,0 +1,8 @@
+About the Power System Simulation
+
+Title Of The Power System Simulation Project: Modelling and Simulation of 4 Machine 10 bus system using Modelica and OpenIPSL
+Proposar Name: Mr Syed Yasser Ali
+University: Indian Institute Of Technology Bombay
+
+
+OM PSSP Project By FOSSEE, IIT Bombay
diff --git a/Modelling_And_Simulation_Of_4_Machine_10_Bus_System_Using_Openipsl_By_Mr_Syed_Yasser_Ali/project_files/four_machine_10_bus.pdf b/Modelling_And_Simulation_Of_4_Machine_10_Bus_System_Using_Openipsl_By_Mr_Syed_Yasser_Ali/project_files/four_machine_10_bus.pdf
new file mode 100644
index 0000000..cba528b
Binary files /dev/null and b/Modelling_And_Simulation_Of_4_Machine_10_Bus_System_Using_Openipsl_By_Mr_Syed_Yasser_Ali/project_files/four_machine_10_bus.pdf differ
diff --git a/Modelling_And_Simulation_Of_4_Machine_10_Bus_System_Using_Openipsl_By_Mr_Syed_Yasser_Ali/project_files/four_machine_10_bus.zip b/Modelling_And_Simulation_Of_4_Machine_10_Bus_System_Using_Openipsl_By_Mr_Syed_Yasser_Ali/project_files/four_machine_10_bus.zip
new file mode 100644
index 0000000..dd796fc
Binary files /dev/null and b/Modelling_And_Simulation_Of_4_Machine_10_Bus_System_Using_Openipsl_By_Mr_Syed_Yasser_Ali/project_files/four_machine_10_bus.zip differ
diff --git a/Modelling_And_Simulation_Of_4_Machine_10_Bus_System_Using_Openmodelica_And_Openipsl_By_Mr_Syed_Yasser_Ali/A99.pdf b/Modelling_And_Simulation_Of_4_Machine_10_Bus_System_Using_Openmodelica_And_Openipsl_By_Mr_Syed_Yasser_Ali/A99.pdf
deleted file mode 100644
index 87d2851..0000000
Binary files a/Modelling_And_Simulation_Of_4_Machine_10_Bus_System_Using_Openmodelica_And_Openipsl_By_Mr_Syed_Yasser_Ali/A99.pdf and /dev/null differ
diff --git a/Modelling_And_Simulation_Of_4_Machine_10_Bus_System_Using_Openmodelica_And_Openipsl_By_Mr_Syed_Yasser_Ali/README.txt b/Modelling_And_Simulation_Of_4_Machine_10_Bus_System_Using_Openmodelica_And_Openipsl_By_Mr_Syed_Yasser_Ali/README.txt
deleted file mode 100644
index 7c8552c..0000000
--- a/Modelling_And_Simulation_Of_4_Machine_10_Bus_System_Using_Openmodelica_And_Openipsl_By_Mr_Syed_Yasser_Ali/README.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-About the Power System Simulation
-
-Title Of The Power System Simulation Project: Modelling and Simulation of 4 Machine 10 bus system using Modelica and OpenIPSL
-Proposar Name: Mr Syed Yasser Ali
-University: Indian Institute Of Technology Bombay
-
-
-OM PSSP Project By FOSSEE, IIT Bombay
diff --git a/Modelling_And_Simulation_Of_4_Machine_10_Bus_System_Using_Openmodelica_And_Openipsl_By_Mr_Syed_Yasser_Ali/project_files/four_machine_10_bus.pdf b/Modelling_And_Simulation_Of_4_Machine_10_Bus_System_Using_Openmodelica_And_Openipsl_By_Mr_Syed_Yasser_Ali/project_files/four_machine_10_bus.pdf
deleted file mode 100644
index cba528b..0000000
Binary files a/Modelling_And_Simulation_Of_4_Machine_10_Bus_System_Using_Openmodelica_And_Openipsl_By_Mr_Syed_Yasser_Ali/project_files/four_machine_10_bus.pdf and /dev/null differ
diff --git a/Modelling_And_Simulation_Of_4_Machine_10_Bus_System_Using_Openmodelica_And_Openipsl_By_Mr_Syed_Yasser_Ali/project_files/four_machine_10_bus.zip b/Modelling_And_Simulation_Of_4_Machine_10_Bus_System_Using_Openmodelica_And_Openipsl_By_Mr_Syed_Yasser_Ali/project_files/four_machine_10_bus.zip
deleted file mode 100644
index dd796fc..0000000
Binary files a/Modelling_And_Simulation_Of_4_Machine_10_Bus_System_Using_Openmodelica_And_Openipsl_By_Mr_Syed_Yasser_Ali/project_files/four_machine_10_bus.zip and /dev/null differ
diff --git a/Modelling_And_Simulation_Of_Ieee_118_Bus_System_Using_Openipsl_By_Mr_R._Asick/Abstract.pdf b/Modelling_And_Simulation_Of_Ieee_118_Bus_System_Using_Openipsl_By_Mr_R._Asick/Abstract.pdf
new file mode 100644
index 0000000..45e2f67
Binary files /dev/null and b/Modelling_And_Simulation_Of_Ieee_118_Bus_System_Using_Openipsl_By_Mr_R._Asick/Abstract.pdf differ
diff --git a/Modelling_And_Simulation_Of_Ieee_118_Bus_System_Using_Openmodelica_And_Openipsl_By_Mr_R._Asick/Abstract.pdf b/Modelling_And_Simulation_Of_Ieee_118_Bus_System_Using_Openmodelica_And_Openipsl_By_Mr_R._Asick/Abstract.pdf
deleted file mode 100644
index 45e2f67..0000000
Binary files a/Modelling_And_Simulation_Of_Ieee_118_Bus_System_Using_Openmodelica_And_Openipsl_By_Mr_R._Asick/Abstract.pdf and /dev/null differ
diff --git a/Modelling_And_Simulation_Of_Ieee_24_Bus_System_Using_Openipsl_By_Mr_Syed_Yasser_Ali/ABSRACT_IEEE24.pdf b/Modelling_And_Simulation_Of_Ieee_24_Bus_System_Using_Openipsl_By_Mr_Syed_Yasser_Ali/ABSRACT_IEEE24.pdf
new file mode 100644
index 0000000..849e96b
Binary files /dev/null and b/Modelling_And_Simulation_Of_Ieee_24_Bus_System_Using_Openipsl_By_Mr_Syed_Yasser_Ali/ABSRACT_IEEE24.pdf differ
diff --git a/Modelling_And_Simulation_Of_Ieee_24_Bus_System_Using_Openipsl_By_Mr_Syed_Yasser_Ali/README.txt b/Modelling_And_Simulation_Of_Ieee_24_Bus_System_Using_Openipsl_By_Mr_Syed_Yasser_Ali/README.txt
new file mode 100644
index 0000000..d3bc06b
--- /dev/null
+++ b/Modelling_And_Simulation_Of_Ieee_24_Bus_System_Using_Openipsl_By_Mr_Syed_Yasser_Ali/README.txt
@@ -0,0 +1,8 @@
+About the Power System Simulation
+
+Title Of The Power System Simulation Project: Modelling and Simulation of IEEE 24 Bus system using Modelica and OpenIPSL
+Proposar Name: Mr Syed Yasser Ali
+University: Indian Institute Of Technology Bombay
+
+
+OM PSSP Project By FOSSEE, IIT Bombay
diff --git a/Modelling_And_Simulation_Of_Ieee_24_Bus_System_Using_Openipsl_By_Mr_Syed_Yasser_Ali/project_files/IEEE_24_bus.pdf b/Modelling_And_Simulation_Of_Ieee_24_Bus_System_Using_Openipsl_By_Mr_Syed_Yasser_Ali/project_files/IEEE_24_bus.pdf
new file mode 100644
index 0000000..0c11189
Binary files /dev/null and b/Modelling_And_Simulation_Of_Ieee_24_Bus_System_Using_Openipsl_By_Mr_Syed_Yasser_Ali/project_files/IEEE_24_bus.pdf differ
diff --git a/Modelling_And_Simulation_Of_Ieee_24_Bus_System_Using_Openipsl_By_Mr_Syed_Yasser_Ali/project_files/IEEE_24_bus.zip b/Modelling_And_Simulation_Of_Ieee_24_Bus_System_Using_Openipsl_By_Mr_Syed_Yasser_Ali/project_files/IEEE_24_bus.zip
new file mode 100644
index 0000000..d3cebda
Binary files /dev/null and b/Modelling_And_Simulation_Of_Ieee_24_Bus_System_Using_Openipsl_By_Mr_Syed_Yasser_Ali/project_files/IEEE_24_bus.zip differ
diff --git a/Modelling_And_Simulation_Of_Ieee_24_Bus_System_Using_Openmodelica_And_Openipsl_By_Mr_Syed_Yasser_Ali/ABSRACT_IEEE24.pdf b/Modelling_And_Simulation_Of_Ieee_24_Bus_System_Using_Openmodelica_And_Openipsl_By_Mr_Syed_Yasser_Ali/ABSRACT_IEEE24.pdf
deleted file mode 100644
index 849e96b..0000000
Binary files a/Modelling_And_Simulation_Of_Ieee_24_Bus_System_Using_Openmodelica_And_Openipsl_By_Mr_Syed_Yasser_Ali/ABSRACT_IEEE24.pdf and /dev/null differ
diff --git a/Modelling_And_Simulation_Of_Ieee_24_Bus_System_Using_Openmodelica_And_Openipsl_By_Mr_Syed_Yasser_Ali/README.txt b/Modelling_And_Simulation_Of_Ieee_24_Bus_System_Using_Openmodelica_And_Openipsl_By_Mr_Syed_Yasser_Ali/README.txt
deleted file mode 100644
index d3bc06b..0000000
--- a/Modelling_And_Simulation_Of_Ieee_24_Bus_System_Using_Openmodelica_And_Openipsl_By_Mr_Syed_Yasser_Ali/README.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-About the Power System Simulation
-
-Title Of The Power System Simulation Project: Modelling and Simulation of IEEE 24 Bus system using Modelica and OpenIPSL
-Proposar Name: Mr Syed Yasser Ali
-University: Indian Institute Of Technology Bombay
-
-
-OM PSSP Project By FOSSEE, IIT Bombay
diff --git a/Modelling_And_Simulation_Of_Ieee_24_Bus_System_Using_Openmodelica_And_Openipsl_By_Mr_Syed_Yasser_Ali/project_files/IEEE_24_bus.pdf b/Modelling_And_Simulation_Of_Ieee_24_Bus_System_Using_Openmodelica_And_Openipsl_By_Mr_Syed_Yasser_Ali/project_files/IEEE_24_bus.pdf
deleted file mode 100644
index 0c11189..0000000
Binary files a/Modelling_And_Simulation_Of_Ieee_24_Bus_System_Using_Openmodelica_And_Openipsl_By_Mr_Syed_Yasser_Ali/project_files/IEEE_24_bus.pdf and /dev/null differ
diff --git a/Modelling_And_Simulation_Of_Ieee_24_Bus_System_Using_Openmodelica_And_Openipsl_By_Mr_Syed_Yasser_Ali/project_files/IEEE_24_bus.zip b/Modelling_And_Simulation_Of_Ieee_24_Bus_System_Using_Openmodelica_And_Openipsl_By_Mr_Syed_Yasser_Ali/project_files/IEEE_24_bus.zip
deleted file mode 100644
index d3cebda..0000000
Binary files a/Modelling_And_Simulation_Of_Ieee_24_Bus_System_Using_Openmodelica_And_Openipsl_By_Mr_Syed_Yasser_Ali/project_files/IEEE_24_bus.zip and /dev/null differ
diff --git a/Modelling_And_Simulation_Of_Illini_42_Bus_System_Using_Openipsl_By_Mr_Syed_Yasser_Ali/Illini_42_bus_system.pdf b/Modelling_And_Simulation_Of_Illini_42_Bus_System_Using_Openipsl_By_Mr_Syed_Yasser_Ali/Illini_42_bus_system.pdf
new file mode 100644
index 0000000..3674504
Binary files /dev/null and b/Modelling_And_Simulation_Of_Illini_42_Bus_System_Using_Openipsl_By_Mr_Syed_Yasser_Ali/Illini_42_bus_system.pdf differ
diff --git a/Modelling_And_Simulation_Of_Illini_42_Bus_System_Using_Openmodelica_And_Openipsl_By_Mr_Syed_Yasser_Ali/Illini_42_bus_system.pdf b/Modelling_And_Simulation_Of_Illini_42_Bus_System_Using_Openmodelica_And_Openipsl_By_Mr_Syed_Yasser_Ali/Illini_42_bus_system.pdf
deleted file mode 100644
index 3674504..0000000
Binary files a/Modelling_And_Simulation_Of_Illini_42_Bus_System_Using_Openmodelica_And_Openipsl_By_Mr_Syed_Yasser_Ali/Illini_42_bus_system.pdf and /dev/null differ
diff --git a/Modelling_Of_10_Bus_System_Using_Modelica_And_Openipsl._By_Mr_Arumilli_Hemanth/Abstract.pdf b/Modelling_Of_10_Bus_System_Using_Modelica_And_Openipsl._By_Mr_Arumilli_Hemanth/Abstract.pdf
deleted file mode 100644
index a3913de..0000000
Binary files a/Modelling_Of_10_Bus_System_Using_Modelica_And_Openipsl._By_Mr_Arumilli_Hemanth/Abstract.pdf and /dev/null differ
diff --git a/Modelling_Of_10_Bus_System_Using_Modelica_And_Openipsl._By_Mr_Arumilli_Hemanth/README.txt b/Modelling_Of_10_Bus_System_Using_Modelica_And_Openipsl._By_Mr_Arumilli_Hemanth/README.txt
deleted file mode 100644
index 878b497..0000000
--- a/Modelling_Of_10_Bus_System_Using_Modelica_And_Openipsl._By_Mr_Arumilli_Hemanth/README.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-About the Power System Simulation
-
-Title Of The Power System Simulation Project: Modelling of 10 bus system using Modelica and OpenIPSL.
-Proposar Name: Mr Arumilli Hemanth
-University: J B Institute Of Engineering And Technology Hyderabad (india)
-
-
-OM PSSP Project By FOSSEE, IIT Bombay
diff --git a/Modelling_Of_10_Bus_System_Using_Modelica_And_Openipsl._By_Mr_Arumilli_Hemanth/project_files/10bussystem.zip b/Modelling_Of_10_Bus_System_Using_Modelica_And_Openipsl._By_Mr_Arumilli_Hemanth/project_files/10bussystem.zip
deleted file mode 100644
index 3b2f334..0000000
Binary files a/Modelling_Of_10_Bus_System_Using_Modelica_And_Openipsl._By_Mr_Arumilli_Hemanth/project_files/10bussystem.zip and /dev/null differ
diff --git a/Modelling_Of_10_Bus_System_Using_Modelica_And_Openipsl._By_Mr_Arumilli_Hemanth/project_files/DOCUMENTATION.pdf b/Modelling_Of_10_Bus_System_Using_Modelica_And_Openipsl._By_Mr_Arumilli_Hemanth/project_files/DOCUMENTATION.pdf
deleted file mode 100644
index 8941d73..0000000
Binary files a/Modelling_Of_10_Bus_System_Using_Modelica_And_Openipsl._By_Mr_Arumilli_Hemanth/project_files/DOCUMENTATION.pdf and /dev/null differ
diff --git a/Modelling_Of_10_Bus_System_Using_Openipsl._By_Mr_Arumilli_Hemanth/Abstract.pdf b/Modelling_Of_10_Bus_System_Using_Openipsl._By_Mr_Arumilli_Hemanth/Abstract.pdf
new file mode 100644
index 0000000..a3913de
Binary files /dev/null and b/Modelling_Of_10_Bus_System_Using_Openipsl._By_Mr_Arumilli_Hemanth/Abstract.pdf differ
diff --git a/Modelling_Of_10_Bus_System_Using_Openipsl._By_Mr_Arumilli_Hemanth/README.txt b/Modelling_Of_10_Bus_System_Using_Openipsl._By_Mr_Arumilli_Hemanth/README.txt
new file mode 100644
index 0000000..878b497
--- /dev/null
+++ b/Modelling_Of_10_Bus_System_Using_Openipsl._By_Mr_Arumilli_Hemanth/README.txt
@@ -0,0 +1,8 @@
+About the Power System Simulation
+
+Title Of The Power System Simulation Project: Modelling of 10 bus system using Modelica and OpenIPSL.
+Proposar Name: Mr Arumilli Hemanth
+University: J B Institute Of Engineering And Technology Hyderabad (india)
+
+
+OM PSSP Project By FOSSEE, IIT Bombay
diff --git a/Modelling_Of_10_Bus_System_Using_Openipsl._By_Mr_Arumilli_Hemanth/project_files/10bussystem.zip b/Modelling_Of_10_Bus_System_Using_Openipsl._By_Mr_Arumilli_Hemanth/project_files/10bussystem.zip
new file mode 100644
index 0000000..3b2f334
Binary files /dev/null and b/Modelling_Of_10_Bus_System_Using_Openipsl._By_Mr_Arumilli_Hemanth/project_files/10bussystem.zip differ
diff --git a/Modelling_Of_10_Bus_System_Using_Openipsl._By_Mr_Arumilli_Hemanth/project_files/DOCUMENTATION.pdf b/Modelling_Of_10_Bus_System_Using_Openipsl._By_Mr_Arumilli_Hemanth/project_files/DOCUMENTATION.pdf
new file mode 100644
index 0000000..8941d73
Binary files /dev/null and b/Modelling_Of_10_Bus_System_Using_Openipsl._By_Mr_Arumilli_Hemanth/project_files/DOCUMENTATION.pdf differ
diff --git a/Modelling_Of_A_Five_Bus_Power_System_Under_Three_Phase_Fault_Using_The_Openipsl_By_Ms_Sai_Suma_Yallapragada/README.txt b/Modelling_Of_A_Five_Bus_Power_System_Under_Three_Phase_Fault_Using_The_Openipsl_By_Ms_Sai_Suma_Yallapragada/README.txt
new file mode 100644
index 0000000..b7bbdda
--- /dev/null
+++ b/Modelling_Of_A_Five_Bus_Power_System_Under_Three_Phase_Fault_Using_The_Openipsl_By_Ms_Sai_Suma_Yallapragada/README.txt
@@ -0,0 +1,8 @@
+About the Power System Simulation
+
+Title Of The Power System Simulation Project: Modeling of a five bus power system under three phase fault using the OpenIPSL
+Proposar Name: Ms Sai Suma Yallapragada
+University: Visvesvaraya National Institute Of Technology, Nagpur
+
+
+OM PSSP Project By FOSSEE, IIT Bombay
diff --git a/Modelling_Of_A_Five_Bus_Power_System_Under_Three_Phase_Fault_Using_The_Openipsl_By_Ms_Sai_Suma_Yallapragada/abstract1.pdf b/Modelling_Of_A_Five_Bus_Power_System_Under_Three_Phase_Fault_Using_The_Openipsl_By_Ms_Sai_Suma_Yallapragada/abstract1.pdf
new file mode 100644
index 0000000..da9ae57
Binary files /dev/null and b/Modelling_Of_A_Five_Bus_Power_System_Under_Three_Phase_Fault_Using_The_Openipsl_By_Ms_Sai_Suma_Yallapragada/abstract1.pdf differ
diff --git a/Modelling_Of_A_Five_Bus_Power_System_Under_Three_Phase_Fault_Using_The_Openipsl_By_Ms_Sai_Suma_Yallapragada/project_files/Modelling_of_5_bus_system_under_3phase_fault_using_OpenIPSL.pdf b/Modelling_Of_A_Five_Bus_Power_System_Under_Three_Phase_Fault_Using_The_Openipsl_By_Ms_Sai_Suma_Yallapragada/project_files/Modelling_of_5_bus_system_under_3phase_fault_using_OpenIPSL.pdf
new file mode 100644
index 0000000..c242b03
Binary files /dev/null and b/Modelling_Of_A_Five_Bus_Power_System_Under_Three_Phase_Fault_Using_The_Openipsl_By_Ms_Sai_Suma_Yallapragada/project_files/Modelling_of_5_bus_system_under_3phase_fault_using_OpenIPSL.pdf differ
diff --git a/Modelling_Of_A_Five_Bus_Power_System_Under_Three_Phase_Fault_Using_The_Openipsl_By_Ms_Sai_Suma_Yallapragada/project_files/modelling_of_5bus_system_under_3phase_fault.mo b/Modelling_Of_A_Five_Bus_Power_System_Under_Three_Phase_Fault_Using_The_Openipsl_By_Ms_Sai_Suma_Yallapragada/project_files/modelling_of_5bus_system_under_3phase_fault.mo
new file mode 100644
index 0000000..d32ce4a
--- /dev/null
+++ b/Modelling_Of_A_Five_Bus_Power_System_Under_Three_Phase_Fault_Using_The_Openipsl_By_Ms_Sai_Suma_Yallapragada/project_files/modelling_of_5bus_system_under_3phase_fault.mo
@@ -0,0 +1,90 @@
+model modelling_of_5bus_system_under_3phase_fault
+ OpenIPSL.Electrical.Buses.Bus bus1(P_0 = 131.43, Q_0 = 90.89,V_0 = 1.06, V_b = 230, angle_0 = 0, displayPF = true) annotation(
+ Placement(visible = true, transformation(origin = {-64, 34}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
+ OpenIPSL.Electrical.Buses.Bus bus2( P_0 = 45, Q_0 = 15,V_0 = 0.99, V_b = 230, angle_0 = -4.64, displayPF = true) annotation(
+ Placement(visible = true, transformation(origin = {-10, 34}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
+ OpenIPSL.Electrical.Buses.Bus bus3( P_0 = 40, Q_0 = 5,V_0 = 0.98, V_b = 230, angle_0 = -4.96, displayPF = true) annotation(
+ Placement(visible = true, transformation(origin = {46, 34}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
+ OpenIPSL.Electrical.Buses.Bus bus4( P_0 = 40, Q_0 = -61.64,V_0 = 1, V_b = 230, angle_0 = -2.07, displayPF = true) annotation(
+ Placement(visible = true, transformation(origin = {-36, -28}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
+ OpenIPSL.Electrical.Buses.Bus bus5( P_0 = 60, Q_0 = 10,V_0 = 0.97, V_b = 230, angle_0 = -5.77, displayPF = true) annotation(
+ Placement(visible = true, transformation(origin = {38, -28}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine1(B = 0.05, G = 0, R = 0.08, X = 0.24) annotation(
+ Placement(visible = true, transformation(origin = {-38, 20}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine2(B = 0.01, G = 0, R = 0.01, X = 0.03) annotation(
+ Placement(visible = true, transformation(origin = {18, 18}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine3(B = 0.03, G = 0, R = 0.04, X = 0.12) annotation(
+ Placement(visible = true, transformation(origin = {-8, -18}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine4(B = 0.01, G = 0, R = 0.06, X = 0.18) annotation(
+ Placement(visible = true, transformation(origin = {18, 2}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine5(B = 0.04, G = 0, R = 0.06, X = 0.18, opening = 1, t1 = 20, t2 = 25) annotation(
+ Placement(visible = true, transformation(origin = {-20, 2}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine6(B = 0.05, G = 0, R = 0.08, X = 0.24, t1 = 20, t2 = 25) annotation(
+ Placement(visible = true, transformation(origin = {46, 0}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine7(B = 0.06, G = 0, R = 0.02, X = 0.06) annotation(
+ Placement(visible = true, transformation(origin = {-66, 2}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
+ OpenIPSL.Electrical.Loads.PSAT.LOADPQ loadpq1(P_0 = 45, Q_0 = 15, V_0 = 0.99, V_b = 230, angle_0 = -4.64, forcePQ = true) annotation(
+ Placement(visible = true, transformation(origin = {-28, 60}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
+ OpenIPSL.Electrical.Loads.PSAT.LOADPQ loadpq2(Angle_V(fixed = false),P(fixed = false),P_0 = 40, Q(fixed = false), Q_0 = -61.64, V(fixed = false), V_0 = 1, V_b = 230, angle_0 = -2.07, forcePQ = true) annotation(
+ Placement(visible = true, transformation(origin = {-28, -58}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
+ inner OpenIPSL.Electrical.SystemBase SysData annotation(
+ Placement(visible = true, transformation(origin = {76, -74}, extent = {{-12, -10}, {12, 10}}, rotation = 0)));
+ OpenIPSL.Electrical.Machines.PSAT.Order3 order32(D = 0, M = 10, P_0 = 40, Q_0 = -61.64, Sn = 100, T1d0 = 8, V_0 = 1, V_b = 230, Vn = 230, angle_0 = -2.07, ra = 0.01, x1d = 0.302, xd = 1.9, xq = 1.7) annotation(
+ Placement(visible = true, transformation(origin = {-66, -50}, extent = {{-12, -12}, {12, 12}}, rotation = 0)));
+ OpenIPSL.Electrical.Loads.PSAT.LOADPQ loadpq3(P_0 = 60, Q_0 = 10, V_0 = 0.97, V_b = 230, angle_0 = -5.77, forcePQ = true) annotation(
+ Placement(visible = true, transformation(origin = {36, -54}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
+ OpenIPSL.Electrical.Loads.PSAT.LOADPQ loadpq4(P_0 = 40, Q_0 = 5, V_0 = 0.98, V_b = 230, angle_0 = -4.96, forcePQ = true) annotation(
+ Placement(visible = true, transformation(origin = {36, 62}, extent = {{-10, -10}, {10, 10}}, rotation = 180)));
+ OpenIPSL.Electrical.Events.PwFault pwFault1(R = 0.05, X = 0.5, t1 = 1.5, t2 = 2) annotation(
+ Placement(visible = true, transformation(origin = {74, -16}, extent = {{-6, -6}, {6, 6}}, rotation = 0)));
+ OpenIPSL.Electrical.Buses.InfiniteBus infiniteBus1(P_0 = 131.43, Q_0 = 90.89, V_0 = 1.06, V_b = 230, angle_0 = 0) annotation(
+ Placement(visible = true, transformation(origin = {-76, 62}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
+equation
+ connect(order32.vf0, order32.vf) annotation(
+ Line(points = {{-76, -36}, {-76, -36}, {-76, -32}, {-88, -32}, {-88, -42}, {-80, -42}, {-80, -44}}, color = {0, 0, 127}));
+ connect(infiniteBus1.p, bus1.p) annotation(
+ Line(points = {{-66, 62}, {-66, 62}, {-66, 34}, {-64, 34}}, color = {0, 0, 255}));
+ connect(pwFault1.p, pwLine6.n) annotation(
+ Line(points = {{68, -16}, {46, -16}, {46, -8}, {46, -8}}, color = {0, 0, 255}));
+ connect(pwLine3.p, bus4.p) annotation(
+ Line(points = {{-17, -18}, {-30, -18}, {-30, -28}, {-36, -28}}, color = {0, 0, 255}));
+ connect(pwLine3.n, bus5.p) annotation(
+ Line(points = {{1, -18}, {36, -18}, {36, -28}, {38, -28}}, color = {0, 0, 255}));
+ connect(loadpq4.p, bus3.p) annotation(
+ Line(points = {{36, 52}, {46, 52}, {46, 34}, {46, 34}}, color = {0, 0, 255}));
+ connect(bus5.p, loadpq3.p) annotation(
+ Line(points = {{38, -28}, {36, -28}, {36, -44}, {36, -44}}, color = {0, 0, 255}));
+ connect(order32.pm0, order32.pm) annotation(
+ Line(points = {{-75.6, -63.2}, {-91.6, -63.2}, {-91.6, -56.2}, {-79.6, -56.2}}, color = {0, 0, 127}));
+ connect(order32.p, bus4.p) annotation(
+ Line(points = {{-54, -50}, {-36, -50}, {-36, -28}}, color = {0, 0, 255}));
+ connect(loadpq1.p, bus2.p) annotation(
+ Line(points = {{-18, 60}, {-10, 60}, {-10, 34}, {-10, 34}}, color = {0, 0, 255}));
+ connect(bus4.p, loadpq2.p) annotation(
+ Line(points = {{-36, -28}, {-28, -28}, {-28, -48}, {-28, -48}}, color = {0, 0, 255}));
+ connect(pwLine4.n, bus3.p) annotation(
+ Line(points = {{28, 2}, {42, 2}, {42, 34}, {46, 34}, {46, 34}}, color = {0, 0, 255}));
+ connect(pwLine4.p, bus4.p) annotation(
+ Line(points = {{10, 2}, {-32, 2}, {-32, -28}, {-36, -28}, {-36, -28}}, color = {0, 0, 255}));
+ connect(pwLine7.n, bus4.p) annotation(
+ Line(points = {{-66, -6}, {-36, -6}, {-36, -28}, {-36, -28}}, color = {0, 0, 255}));
+ connect(pwLine7.p, bus1.p) annotation(
+ Line(points = {{-66, 12}, {-64, 12}, {-64, 34}, {-64, 34}}, color = {0, 0, 255}));
+ connect(pwLine2.n, bus3.p) annotation(
+ Line(points = {{28, 18}, {40, 18}, {40, 34}, {46, 34}, {46, 34}}, color = {0, 0, 255}));
+ connect(pwLine2.p, bus2.p) annotation(
+ Line(points = {{10, 18}, {-4, 18}, {-4, 34}, {-10, 34}, {-10, 34}}, color = {0, 0, 255}));
+ connect(pwLine6.n, bus5.p) annotation(
+ Line(points = {{46, -8}, {44, -8}, {44, -26}, {38, -26}, {38, -28}}, color = {0, 0, 255}));
+ connect(pwLine6.p, bus3.p) annotation(
+ Line(points = {{46, 9}, {46, 34}}, color = {0, 0, 255}));
+ connect(pwLine1.n, bus2.p) annotation(
+ Line(points = {{-28, 20}, {-10, 20}, {-10, 34}, {-10, 34}}, color = {0, 0, 255}));
+ connect(pwLine1.p, bus1.p) annotation(
+ Line(points = {{-48, 20}, {-64, 20}, {-64, 34}, {-64, 34}}, color = {0, 0, 255}));
+ connect(pwLine5.p, bus2.p) annotation(
+ Line(points = {{-20, 12}, {-20, 12}, {-20, 34}, {-10, 34}, {-10, 34}}, color = {0, 0, 255}));
+ connect(pwLine5.n, bus4.p) annotation(
+ Line(points = {{-20, -6}, {-30, -6}, {-30, -28}, {-36, -28}, {-36, -28}}, color = {0, 0, 255}));
+ annotation(
+ uses(OpenIPSL(version = "1.5.0"), Modelica(version = "3.2.3")));end modelling_of_5bus_system_under_3phase_fault;
diff --git a/Modelling_Of_An_Islanded_Operation_Controller_For_Power_Systems_Study_By_Mr_Biswarup_Mukherjee_And_Prof._Luigi_Vanfretti/Modeling_of_an_islanded_operation_controller_for_power_systems_study.pdf b/Modelling_Of_An_Islanded_Operation_Controller_For_Power_Systems_Study_By_Mr_Biswarup_Mukherjee_And_Prof._Luigi_Vanfretti/Modeling_of_an_islanded_operation_controller_for_power_systems_study.pdf
new file mode 100644
index 0000000..569035c
Binary files /dev/null and b/Modelling_Of_An_Islanded_Operation_Controller_For_Power_Systems_Study_By_Mr_Biswarup_Mukherjee_And_Prof._Luigi_Vanfretti/Modeling_of_an_islanded_operation_controller_for_power_systems_study.pdf differ
diff --git a/Modelling_Of_An_Islanded_Operation_Controller_For_Power_Systems_Study_By_Mr_Biswarup_Mukherjee_And_Prof._Luigi_Vanfretti/README.txt b/Modelling_Of_An_Islanded_Operation_Controller_For_Power_Systems_Study_By_Mr_Biswarup_Mukherjee_And_Prof._Luigi_Vanfretti/README.txt
new file mode 100644
index 0000000..05eca0a
--- /dev/null
+++ b/Modelling_Of_An_Islanded_Operation_Controller_For_Power_Systems_Study_By_Mr_Biswarup_Mukherjee_And_Prof._Luigi_Vanfretti/README.txt
@@ -0,0 +1,8 @@
+About the Power System Simulation
+
+Title Of The Power System Simulation Project: Modeling of an Islanded Operation Controller for Power Systems Study.
+Proposar Name: Mr Biswarup Mukherjee and Prof. Luigi Vanfretti
+University: Indian Institute Of Technology Bombay and Rensselaer Polytechnic Institute
+
+
+OM PSSP Project By FOSSEE, IIT Bombay
diff --git a/Modelling_Of_An_Islanded_Operation_Controller_For_Power_Systems_Study_By_Mr_Biswarup_Mukherjee_And_Prof._Luigi_Vanfretti/project_files/IslandedOperationControl.mo b/Modelling_Of_An_Islanded_Operation_Controller_For_Power_Systems_Study_By_Mr_Biswarup_Mukherjee_And_Prof._Luigi_Vanfretti/project_files/IslandedOperationControl.mo
new file mode 100644
index 0000000..43208fb
--- /dev/null
+++ b/Modelling_Of_An_Islanded_Operation_Controller_For_Power_Systems_Study_By_Mr_Biswarup_Mukherjee_And_Prof._Luigi_Vanfretti/project_files/IslandedOperationControl.mo
@@ -0,0 +1,33782 @@
+package IslandedOperationControl
+ class Copyright "Disclaimer
+ The package 'IslandedOperationControl.mo' is a copy of the modified package 'Modelica2018US_paper_15.mo', that includes the models presented in the conference paper 'Modeling of PMU-Based Islanded Operation Controls for
+ Power Distribution Networks using Modelica and OpenIPSL' at American Modelica Conference 2018.
+Copyright July 2018 - Biswarup Mukherjee, IIT Bombay, India & Prof. Luigi Vanfretti, Rensselaer Polytechnic Institute, Troy, NY.
+
+
+OpenIPSL:
+Copyright August 2017 - Prof. Luigi Vanfretti, Rensselaer Polytechnic Institute, Troy, NY.
+Copyright April 2016 - July 2017 SmarTS Lab (Sweden)
+
+The authors can be contacted by email: luigi.vanfretti@gmail.com
+This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0.
+If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0.
+
+iPSL:
+Copyright 2015-2016 RTE (France), SmarTS Lab (Sweden), AIA (Spain) and DTU (Denmark)
+
+The authors can be contacted by email: info@itesla-ipsl.org
+
+This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0.
+If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0.
+"
+
+ annotation (
+ preferredView="info",
+ DocumentationClass=false,
+ Icon(graphics={
+ Text(
+ extent={{-100,140},{100,100}},
+ lineColor={0,127,0},
+ textString="%name%"),
+ Ellipse(
+ extent={{-100,100},{100,-100}},
+ lineColor={0,127,0},
+ fillColor={255,255,255},
+ fillPattern=FillPattern.Solid),
+ Ellipse(
+ extent={{-60,60},{60,-60}},
+ lineColor={0,127,72},
+ fillColor={0,127,0},
+ fillPattern=FillPattern.Solid),
+ Ellipse(
+ extent={{-40,40},{40,-40}},
+ lineColor={255,255,255},
+ fillColor={255,255,255},
+ fillPattern=FillPattern.Solid),
+ Rectangle(
+ extent={{28,22},{64,-20}},
+ lineColor={255,255,255},
+ fillColor={255,255,255},
+ fillPattern=FillPattern.Solid)}),
+ Documentation(info="
+"));
+ end Copyright;
+
+ package Network
+ model Network_DL
+ extends Modelica.Icons.Example;
+ OpenIPSL.Electrical.Buses.Bus B1(displayPF = false, V_0 = network_10_0_MW_voltages_WL.V1, angle_0 = network_10_0_MW_voltages_WL.A1) annotation (
+ Placement(transformation(extent = {{-90, 30}, {-70, 50}})));
+ OpenIPSL.Electrical.Buses.Bus B2(displayPF = false, V_0 = network_10_0_MW_voltages_WL.V2, angle_0 = network_10_0_MW_voltages_WL.A2) annotation (
+ Placement(transformation(extent = {{-50, 30}, {-30, 50}})));
+ OpenIPSL.Electrical.Branches.PSSE.TwoWindingTransformer T1(R = 0.001, X = 0.2, G = 0, B = 0, VNOM1 = 220, VB1 = 220, VNOM2 = 24, VB2 = 24) annotation (
+ Placement(transformation(extent = {{-6, -4}, {6, 4}}, rotation = 180, origin = {-60, 40})));
+ Generators.G1 G1(V_b = 24, V_0 = network_10_0_MW_voltages_WL.V1, angle_0 = network_10_0_MW_voltages_WL.A1, P_0 = network_10_0_MW_machines_WL.P1_1, Q_0 = network_10_0_MW_machines_WL.Q1_1) annotation (
+ Placement(transformation(extent = {{-110, 30}, {-90, 50}})));
+ OpenIPSL.Electrical.Branches.PwLine L1(G = 0, B = 0, R = 0.001, X = 0.2, displayPF = false) annotation (
+ Placement(transformation(extent = {{-30, 36}, {-18, 44}})));
+ OpenIPSL.Electrical.Buses.Bus B3(displayPF = false, V_0 = network_10_0_MW_voltages_WL.V3, angle_0 = network_10_0_MW_voltages_WL.A3) annotation (
+ Placement(transformation(extent = {{-12, 30}, {8, 50}})));
+ OpenIPSL.Electrical.Buses.Bus B4(displayPF = false, V_0 = network_10_0_MW_voltages_WL.V4, angle_0 = network_10_0_MW_voltages_WL.A4) annotation (
+ Placement(transformation(extent = {{54, 30}, {74, 50}})));
+ OpenIPSL.Electrical.Branches.PwLine L2_1(G = 0, B = 0, R = 0.0005, X = 0.1, displayPF = false) annotation (
+ Placement(transformation(extent = {{24, 56}, {36, 64}})));
+ OpenIPSL.Electrical.Branches.PwLine L2_2(G = 0, B = 0, R = 0.0005, X = 0.1, displayPF = false) annotation (
+ Placement(transformation(extent = {{24, 16}, {36, 24}})));
+ OpenIPSL.Electrical.Buses.Bus B6(displayPF = false, V_0 = network_10_0_MW_voltages_WL.V6, angle_0 = network_10_0_MW_voltages_WL.A6) annotation (
+ Placement(transformation(extent = {{-10, -10}, {10, 10}}, rotation = 90, origin = {80, -24})));
+ OpenIPSL.Electrical.Branches.PwLine L3(X = 0.2, G = 0, B = 0, R = 0.01, displayPF = false) annotation (
+ Placement(transformation(extent = {{-7.99999, -5.00005}, {7.99999, 5}}, rotation = -90, origin = {81, 9.99999})));
+ OpenIPSL.Electrical.Buses.Bus B7(displayPF = false, V_0 = network_10_0_MW_voltages_WL.V7, angle_0 = network_10_0_MW_voltages_WL.A7) annotation (
+ Placement(transformation(extent = {{-10, -10}, {10, 10}}, rotation = 90, origin = {60, -60})));
+ OpenIPSL.Electrical.Branches.PSSE.TwoWindingTransformer T2(G = 0, B = 0, VNOM1 = 220, VB1 = 220, VNOM2 = 24, VB2 = 24, R = 0.005, X = 0.1) annotation (
+ Placement(transformation(extent = {{-6, -4}, {6, 4}}, rotation = 270, origin = {60, -40})));
+ inner OpenIPSL.Electrical.SystemBase SysData(S_b = 100, fn = 50) annotation (
+ Placement(transformation(extent = {{-140, 100}, {-80, 120}})));
+ OpenIPSL.Electrical.Loads.PSSE.Load LD1(V_b = 220, V_0 = network_10_0_MW_voltages_WL.V3, angle_0 = network_10_0_MW_voltages_WL.A3, P_0 = network_10_0_MW_loads_WL.PL3_1, Q_0 = network_10_0_MW_loads_WL.QL3_1) annotation (
+ Placement(transformation(extent = {{-16, -14}, {-4, -2}})));
+ Essentials.Breaker breaker1 annotation (
+ Placement(transformation(extent = {{-4, -4}, {4, 4}}, rotation = 90, origin = {80, -16})));
+ public
+ OpenIPSL.Electrical.Branches.PwLine L2(G = 0, B = 0, R = 0.05, X = 0.5, displayPF = false) annotation (
+ Placement(transformation(extent = {{-8.00001, -5.00001}, {8, 5.00001}}, rotation = 0, origin = {96, 41})));
+ Essentials.Breaker breaker2 annotation (
+ Placement(transformation(extent = {{-4, -4}, {4, 4}}, rotation = 90, origin = {80, 28})));
+ OpenIPSL.Electrical.Buses.Bus B8(displayPF = false, V_0 = network_10_0_MW_voltages_WL.V8, angle_0 = network_10_0_MW_voltages_WL.A8) annotation (
+ Placement(transformation(extent = {{-10, -10}, {10, 10}}, rotation = 90, origin = {100, -58})));
+ OpenIPSL.Electrical.Branches.PwLine L4(G = 0, B = 0, R = 0.05, X = 0.5) annotation (
+ Placement(transformation(extent = {{-6, -4}, {6, 4}}, rotation = -90, origin = {100, -42})));
+ OpenIPSL.Electrical.Buses.Bus B5(displayPF = false, V_0 = network_10_0_MW_voltages_WL.V5, angle_0 = network_10_0_MW_voltages_WL.A5) annotation (
+ Placement(transformation(extent = {{110, 30}, {130, 50}})));
+ OpenIPSL.Electrical.Loads.PSSE.Load load(V_b = 220, V_0 = network_10_0_MW_voltages_WL.V5, angle_0 = network_10_0_MW_voltages_WL.A5, P_0 = network_10_0_MW_loads_WL.PL5_1, Q_0 = network_10_0_MW_loads_WL.QL5_1) annotation (
+ Placement(transformation(extent = {{122, -2}, {132, 8}})));
+ Generators.G22 g22_IslandedControl(V_0 = network_10_0_MW_voltages_WL.V7, angle_0 = network_10_0_MW_voltages_WL.A7, P_0 = network_10_0_MW_machines_WL.P7_1, Q_0 = network_10_0_MW_machines_WL.Q7_1) annotation (
+ Placement(transformation(extent = {{28, -92}, {52, -70}})));
+ OpenIPSL.Electrical.Loads.PSSE.Load LD2(V_b = 220, V_0 = network_10_0_MW_voltages_WL.V8, angle_0 = network_10_0_MW_voltages_WL.A8, P_0 = network_10_0_MW_loads_WL.PL8_1, Q_0 = network_10_0_MW_loads_WL.QL8_1) annotation (
+ Placement(transformation(extent = {{94, -100}, {106, -88}})));
+ Essentials.Event_Islanding event_Islanding(f_DN(u = B6.p.vi, u1 = B6.p.vr)) annotation (
+ Placement(transformation(extent = {{-4, -50}, {22, -28}})));
+ PowerFlowData.case10_0MW.Network_10_0_MW_loads_WL network_10_0_MW_loads_WL annotation (
+ Placement(transformation(extent = {{-72, 92}, {-52, 112}})));
+ PowerFlowData.case10_0MW.Network_10_0_MW_machines_WL network_10_0_MW_machines_WL annotation (
+ Placement(transformation(extent = {{-38, 92}, {-18, 112}})));
+ PowerFlowData.case10_0MW.Network_10_0_MW_voltages_WL network_10_0_MW_voltages_WL annotation (
+ Placement(transformation(extent = {{-4, 92}, {16, 112}})));
+ equation
+ connect(T1.p, B2.p) annotation (
+ Line(points = {{-53, 40}, {-40, 40}}, color = {0, 0, 255}));
+ connect(B1.p, T1.n) annotation (
+ Line(points = {{-80, 40}, {-67, 40}}, color = {0, 0, 255}));
+ connect(G1.conn, B1.p) annotation (
+ Line(points = {{-89, 40}, {-89, 40}, {-80, 40}}, color = {0, 0, 255}));
+ connect(L1.n, B3.p) annotation (
+ Line(points = {{-18.6, 40}, {-2, 40}}, color = {0, 0, 255}));
+ connect(L1.p, B2.p) annotation (
+ Line(points = {{-29.4, 40}, {-40, 40}}, color = {0, 0, 255}));
+ connect(L2_2.n, B4.p) annotation (
+ Line(points = {{35.4, 20}, {56, 20}, {56, 40}, {64, 40}}, color = {0, 0, 255}));
+ connect(L2_1.n, B4.p) annotation (
+ Line(points = {{35.4, 60}, {56, 60}, {56, 40}, {64, 40}}, color = {0, 0, 255}));
+ connect(L2_1.p, B3.p) annotation (
+ Line(points = {{24.6, 60}, {24.6, 60}, {4, 60}, {4, 40}, {-2, 40}}, color = {0, 0, 255}));
+ connect(L2_2.p, B3.p) annotation (
+ Line(points = {{24.6, 20}, {4, 20}, {4, 40}, {-2, 40}}, color = {0, 0, 255}));
+ connect(T2.p, B6.p) annotation (
+ Line(points = {{60, -33}, {60, -28}, {80, -28}, {80, -24}}, color = {0, 0, 255}));
+ connect(T2.n, B7.p) annotation (
+ Line(points = {{60, -47}, {60, -60}}, color = {0, 0, 255}));
+ connect(LD1.p, B3.p) annotation (
+ Line(points = {{-10, -2}, {-10, 40}, {-2, 40}}, color = {0, 0, 255}));
+ connect(B6.p, breaker1.p) annotation (
+ Line(points = {{80, -24}, {80, -20.5}}, color = {0, 0, 255}));
+ connect(L2.p, B4.p) annotation (
+ Line(points = {{88.8, 41}, {88.8, 40}, {64, 40}}, color = {0, 0, 255}));
+ connect(breaker2.n, B4.p) annotation (
+ Line(points = {{80, 32.5}, {80, 40}, {64, 40}}, color = {0, 0, 255}));
+ connect(L3.p, breaker2.p) annotation (
+ Line(points={{81,17.2},{80,17.2},{80,23.5}}, color = {0, 0, 255}));
+ connect(breaker1.n, L3.n) annotation (
+ Line(points={{80,-11.5},{80,2.8},{81,2.8}}, color = {0, 0, 255}));
+ connect(L4.p, B6.p) annotation (
+ Line(points = {{100, -36.6}, {100, -28}, {80, -28}, {80, -24}}, color = {0, 0, 255}));
+ connect(B5.p, L2.n) annotation (
+ Line(points = {{120, 40}, {112, 40}, {112, 41}, {103.2, 41}}, color = {0, 0, 255}));
+ connect(L4.n, B8.p) annotation (
+ Line(points = {{100, -47.4}, {100, -47.4}, {100, -58}}, color = {0, 0, 255}));
+ connect(B5.p, load.p) annotation (
+ Line(points = {{120, 40}, {128, 40}, {128, 8}, {127, 8}}, color = {0, 0, 255}));
+ connect(g22_IslandedControl.conn, B7.p) annotation (
+ Line(points = {{53.2, -81}, {53.2, -82.27}, {60, -82.27}, {60, -60}}, color = {0, 0, 255}));
+ connect(B8.p, LD2.p) annotation (
+ Line(points = {{100, -58}, {100, -58}, {100, -88}}, color = {0, 0, 255}));
+ connect(event_Islanding.startIslanding, g22_IslandedControl.start_islanding) annotation (
+ Line(points = {{9, -50.6}, {9, -98}, {39.76, -98}, {39.76, -92.44}}, color = {255, 0, 255}));
+ connect(event_Islanding.y1, g22_IslandedControl.f_DN) annotation (
+ Line(points = {{20.4, -41.8}, {26, -41.8}, {26, -74.18}, {28, -74.18}}, color = {0, 0, 127}));
+ connect(event_Islanding.Trip_Breaker_To_Island, breaker1.TRIGGER) annotation (
+ Line(points = {{20.2, -35.6}, {26, -35.6}, {26, -16}, {75.5, -16}}, color = {255, 0, 255}));
+ connect(event_Islanding.y, breaker2.TRIGGER) annotation (
+ Line(points = {{8.8, -27.6}, {8.8, -6}, {72, -6}, {72, 28}, {75.5, 28}}, color = {255, 0, 255}));
+ annotation (
+ Icon(coordinateSystem(preserveAspectRatio = false, extent = {{-140, -120}, {140, 120}})),
+ Diagram(coordinateSystem(preserveAspectRatio = false, extent = {{-140, -120}, {140, 120}})),
+ experiment(StopTime = 70, Interval = 0.02, __Dymola_fixedstepsize = 0.02, __Dymola_Algorithm = "Rkfix4"),
+ __Dymola_experimentFlags(Advanced(GenerateVariableDependencies = false, OutputModelicaCode = false), Evaluate = true, OutputCPUtime = false, OutputFlatModelica = false));
+ end Network_DL;
+
+ model Network_CD "islanded operation controller disabled"
+ extends Modelica.Icons.Example;
+ OpenIPSL.Electrical.Buses.Bus B1(displayPF = false, V_0 = network_10_0_MW_voltages_WL.V1, angle_0 = network_10_0_MW_voltages_WL.A1) annotation (
+ Placement(transformation(extent = {{-90, 30}, {-70, 50}})));
+ OpenIPSL.Electrical.Buses.Bus B2(displayPF = false, V_0 = network_10_0_MW_voltages_WL.V2, angle_0 = network_10_0_MW_voltages_WL.A2) annotation (
+ Placement(transformation(extent = {{-50, 30}, {-30, 50}})));
+ OpenIPSL.Electrical.Branches.PSSE.TwoWindingTransformer T1(R = 0.001, X = 0.2, G = 0, B = 0, VNOM1 = 220, VB1 = 220, VNOM2 = 24, VB2 = 24) annotation (
+ Placement(transformation(extent = {{-6, -4}, {6, 4}}, rotation = 180, origin = {-60, 40})));
+ Generators.G1 G1(V_b = 24, V_0 = network_10_0_MW_voltages_WL.V1, angle_0 = network_10_0_MW_voltages_WL.A1, P_0 = network_10_0_MW_machines_WL.P1_1, Q_0 = network_10_0_MW_machines_WL.Q1_1) annotation (
+ Placement(transformation(extent = {{-110, 30}, {-90, 50}})));
+ OpenIPSL.Electrical.Branches.PwLine L1(G = 0, B = 0, R = 0.001, X = 0.2, displayPF = false) annotation (
+ Placement(transformation(extent = {{-30, 36}, {-18, 44}})));
+ OpenIPSL.Electrical.Buses.Bus B3(displayPF = false, V_0 = network_10_0_MW_voltages_WL.V3, angle_0 = network_10_0_MW_voltages_WL.A3) annotation (
+ Placement(transformation(extent = {{-12, 30}, {8, 50}})));
+ OpenIPSL.Electrical.Buses.Bus B4(displayPF = false, V_0 = network_10_0_MW_voltages_WL.V4, angle_0 = network_10_0_MW_voltages_WL.A4) annotation (
+ Placement(transformation(extent = {{54, 30}, {74, 50}})));
+ OpenIPSL.Electrical.Branches.PwLine L2_1(G = 0, B = 0, R = 0.0005, X = 0.1, displayPF = false) annotation (
+ Placement(transformation(extent = {{24, 56}, {36, 64}})));
+ OpenIPSL.Electrical.Branches.PwLine L2_2(G = 0, B = 0, R = 0.0005, X = 0.1, displayPF = false) annotation (
+ Placement(transformation(extent = {{24, 16}, {36, 24}})));
+ OpenIPSL.Electrical.Buses.Bus B6(displayPF = false, V_0 = network_10_0_MW_voltages_WL.V6, angle_0 = network_10_0_MW_voltages_WL.A6) annotation (
+ Placement(transformation(extent = {{-10, -10}, {10, 10}}, rotation = 90, origin = {80, -24})));
+ OpenIPSL.Electrical.Branches.PwLine L3(X = 0.2, G = 0, B = 0, R = 0.01, displayPF = false) annotation (
+ Placement(transformation(extent = {{-7.99999, -5.00005}, {7.99999, 5}}, rotation = -90, origin = {81, 9.99999})));
+ OpenIPSL.Electrical.Buses.Bus B7(displayPF = false, V_0 = network_10_0_MW_voltages_WL.V7, angle_0 = network_10_0_MW_voltages_WL.A7) annotation (
+ Placement(transformation(extent = {{-10, -10}, {10, 10}}, rotation = 90, origin = {60, -60})));
+ OpenIPSL.Electrical.Branches.PSSE.TwoWindingTransformer T2(G = 0, B = 0, VNOM1 = 220, VB1 = 220, VNOM2 = 24, VB2 = 24, R = 0.005, X = 0.1) annotation (
+ Placement(transformation(extent = {{-6, -4}, {6, 4}}, rotation = 270, origin = {60, -40})));
+ inner OpenIPSL.Electrical.SystemBase SysData(S_b = 100, fn = 50) annotation (
+ Placement(transformation(extent = {{-140, 100}, {-80, 120}})));
+ OpenIPSL.Electrical.Loads.PSSE.Load LD1(V_b = 220, V_0 = network_10_0_MW_voltages_WL.V3, angle_0 = network_10_0_MW_voltages_WL.A3, P_0 = network_10_0_MW_loads_WL.PL3_1, Q_0 = network_10_0_MW_loads_WL.QL3_1) annotation (
+ Placement(transformation(extent = {{-16, -14}, {-4, -2}})));
+ Essentials.Breaker breaker1 annotation (
+ Placement(transformation(extent = {{-4, -4}, {4, 4}}, rotation = 90, origin = {80, -16})));
+ public
+ OpenIPSL.Electrical.Branches.PwLine L2(G = 0, B = 0, R = 0.05, X = 0.5, displayPF = false) annotation (
+ Placement(transformation(extent = {{-8.00001, -5.00001}, {8, 5.00001}}, rotation = 0, origin = {96, 41})));
+ Essentials.Breaker breaker2 annotation (
+ Placement(transformation(extent = {{-4, -4}, {4, 4}}, rotation = 90, origin = {80, 28})));
+ OpenIPSL.Electrical.Buses.Bus B8(displayPF = false, V_0 = network_10_0_MW_voltages_WL.V8, angle_0 = network_10_0_MW_voltages_WL.A8) annotation (
+ Placement(transformation(extent = {{-10, -10}, {10, 10}}, rotation = 90, origin = {100, -58})));
+ OpenIPSL.Electrical.Branches.PwLine L4(G = 0, B = 0, R = 0.05, X = 0.5) annotation (
+ Placement(transformation(extent = {{-6, -4}, {6, 4}}, rotation = -90, origin = {100, -42})));
+ OpenIPSL.Electrical.Buses.Bus B5(displayPF = false, V_0 = network_10_0_MW_voltages_WL.V5, angle_0 = network_10_0_MW_voltages_WL.A5) annotation (
+ Placement(transformation(extent = {{110, 30}, {130, 50}})));
+ OpenIPSL.Electrical.Loads.PSSE.Load load(V_b = 220, V_0 = network_10_0_MW_voltages_WL.V5, angle_0 = network_10_0_MW_voltages_WL.A5, P_0 = network_10_0_MW_loads_WL.PL5_1, Q_0 = network_10_0_MW_loads_WL.QL5_1) annotation (
+ Placement(transformation(extent = {{122, -2}, {132, 8}})));
+ Generators.G22_CD g22_IslandedControl(V_0 = network_10_0_MW_voltages_WL.V7, angle_0 = network_10_0_MW_voltages_WL.A7, P_0 = network_10_0_MW_machines_WL.P7_1, Q_0 = network_10_0_MW_machines_WL.Q7_1) annotation (
+ Placement(transformation(extent = {{28, -92}, {52, -70}})));
+ OpenIPSL.Electrical.Loads.PSSE.Load LD2(V_b = 220, V_0 = network_10_0_MW_voltages_WL.V8, angle_0 = network_10_0_MW_voltages_WL.A8, P_0 = network_10_0_MW_loads_WL.PL8_1, Q_0 = network_10_0_MW_loads_WL.QL8_1) annotation (
+ Placement(transformation(extent = {{94, -100}, {106, -88}})));
+ Essentials.Event_Islanding event_Islanding(f_DN(u = B6.p.vi, u1 = B6.p.vr)) annotation (
+ Placement(transformation(extent = {{-4, -50}, {22, -28}})));
+ PowerFlowData.case10_0MW.Network_10_0_MW_loads_WL network_10_0_MW_loads_WL annotation (
+ Placement(transformation(extent = {{-72, 92}, {-52, 112}})));
+ PowerFlowData.case10_0MW.Network_10_0_MW_machines_WL network_10_0_MW_machines_WL annotation (
+ Placement(transformation(extent = {{-38, 92}, {-18, 112}})));
+ PowerFlowData.case10_0MW.Network_10_0_MW_voltages_WL network_10_0_MW_voltages_WL annotation (
+ Placement(transformation(extent = {{-4, 92}, {16, 112}})));
+ equation
+ connect(T1.p, B2.p) annotation (
+ Line(points = {{-53, 40}, {-40, 40}}, color = {0, 0, 255}));
+ connect(B1.p, T1.n) annotation (
+ Line(points = {{-80, 40}, {-67, 40}}, color = {0, 0, 255}));
+ connect(G1.conn, B1.p) annotation (
+ Line(points = {{-89, 40}, {-89, 40}, {-80, 40}}, color = {0, 0, 255}));
+ connect(L1.n, B3.p) annotation (
+ Line(points = {{-18.6, 40}, {-2, 40}}, color = {0, 0, 255}));
+ connect(L1.p, B2.p) annotation (
+ Line(points = {{-29.4, 40}, {-40, 40}}, color = {0, 0, 255}));
+ connect(L2_2.n, B4.p) annotation (
+ Line(points = {{35.4, 20}, {56, 20}, {56, 40}, {64, 40}}, color = {0, 0, 255}));
+ connect(L2_1.n, B4.p) annotation (
+ Line(points = {{35.4, 60}, {56, 60}, {56, 40}, {64, 40}}, color = {0, 0, 255}));
+ connect(L2_1.p, B3.p) annotation (
+ Line(points = {{24.6, 60}, {24.6, 60}, {4, 60}, {4, 40}, {-2, 40}}, color = {0, 0, 255}));
+ connect(L2_2.p, B3.p) annotation (
+ Line(points = {{24.6, 20}, {4, 20}, {4, 40}, {-2, 40}}, color = {0, 0, 255}));
+ connect(T2.p, B6.p) annotation (
+ Line(points = {{60, -33}, {60, -28}, {80, -28}, {80, -24}}, color = {0, 0, 255}));
+ connect(T2.n, B7.p) annotation (
+ Line(points = {{60, -47}, {60, -60}}, color = {0, 0, 255}));
+ connect(LD1.p, B3.p) annotation (
+ Line(points = {{-10, -2}, {-10, 40}, {-2, 40}}, color = {0, 0, 255}));
+ connect(B6.p, breaker1.p) annotation (
+ Line(points = {{80, -24}, {80, -20.5}}, color = {0, 0, 255}));
+ connect(L2.p, B4.p) annotation (
+ Line(points = {{88.8, 41}, {88.8, 40}, {64, 40}}, color = {0, 0, 255}));
+ connect(breaker2.n, B4.p) annotation (
+ Line(points = {{80, 32.5}, {80, 40}, {64, 40}}, color = {0, 0, 255}));
+ connect(L3.p, breaker2.p) annotation (
+ Line(points = {{81, 17.2}, {80, 17.2}, {80, 23.5}}, color = {0, 0, 255}));
+ connect(breaker1.n, L3.n) annotation (
+ Line(points = {{80, -11.5}, {80, 2.8}, {81, 2.8}}, color = {0, 0, 255}));
+ connect(L4.p, B6.p) annotation (
+ Line(points = {{100, -36.6}, {100, -28}, {80, -28}, {80, -24}}, color = {0, 0, 255}));
+ connect(B5.p, L2.n) annotation (
+ Line(points = {{120, 40}, {112, 40}, {112, 41}, {103.2, 41}}, color = {0, 0, 255}));
+ connect(L4.n, B8.p) annotation (
+ Line(points = {{100, -47.4}, {100, -47.4}, {100, -58}}, color = {0, 0, 255}));
+ connect(B5.p, load.p) annotation (
+ Line(points = {{120, 40}, {128, 40}, {128, 8}, {127, 8}}, color = {0, 0, 255}));
+ connect(g22_IslandedControl.conn, B7.p) annotation (
+ Line(points = {{53.2, -81}, {53.2, -82.27}, {60, -82.27}, {60, -60}}, color = {0, 0, 255}));
+ connect(B8.p, LD2.p) annotation (
+ Line(points = {{100, -58}, {100, -58}, {100, -88}}, color = {0, 0, 255}));
+ connect(event_Islanding.startIslanding, g22_IslandedControl.start_islanding) annotation (
+ Line(points = {{9, -50.6}, {9, -98}, {39.76, -98}, {39.76, -92.44}}, color = {255, 0, 255}));
+ connect(event_Islanding.y1, g22_IslandedControl.f_DN) annotation (
+ Line(points = {{20.4, -41.8}, {26, -41.8}, {26, -74.18}, {28, -74.18}}, color = {0, 0, 127}));
+ connect(event_Islanding.Trip_Breaker_To_Island, breaker1.TRIGGER) annotation (
+ Line(points = {{20.2, -35.6}, {26, -35.6}, {26, -16}, {75.5, -16}}, color = {255, 0, 255}));
+ connect(event_Islanding.y, breaker2.TRIGGER) annotation (
+ Line(points = {{8.8, -27.6}, {8.8, -6}, {72, -6}, {72, 28}, {75.5, 28}}, color = {255, 0, 255}));
+ annotation (
+ Icon(coordinateSystem(preserveAspectRatio = false, extent = {{-140, -120}, {140, 120}})),
+ Diagram(coordinateSystem(preserveAspectRatio = false, extent = {{-140, -120}, {140, 120}})),
+ experiment(StopTime = 70, Interval = 0.02, __Dymola_fixedstepsize = 0.02, __Dymola_Algorithm = "Rkfix4"),
+ __Dymola_experimentFlags(Advanced(GenerateVariableDependencies = false, OutputModelicaCode = false), Evaluate = true, OutputCPUtime = false, OutputFlatModelica = false));
+ end Network_CD;
+ end Network;
+
+ package Essentials
+ model Event_Islanding
+ parameter Real L1 = 0.5 "frequency upper limit";
+ parameter Real L2 = -3 "frequency lower limit";
+ parameter Real dt = 2 "time interval";
+ Modelica.Blocks.Sources.BooleanConstant booleanConstant(k = true) annotation (
+ Placement(transformation(extent = {{-64, 18}, {-44, 38}})));
+ FrequencyCalculationBlock f_DN annotation (
+ Placement(transformation(extent = {{-64, -54}, {-42, -32}})));
+ Modelica.Blocks.Interfaces.BooleanOutput y annotation (
+ Placement(transformation(rotation = 0, extent = {{-14, -12}, {14, 12}}, origin = {14, 34}), iconTransformation(extent = {{-14, -12}, {14, 12}}, rotation = 90, origin = {8, 104})));
+ Modelica.Blocks.Interfaces.RealOutput y1 annotation (
+ Placement(transformation(rotation = 0, extent = {{110, -50}, {138, -26}}), iconTransformation(extent = {{110, -50}, {138, -26}})));
+ Modelica.Blocks.Interfaces.BooleanOutput startIslanding annotation (
+ Placement(transformation(rotation = 180, extent = {{14, -12}, {-14, 12}}, origin = {14, -80}), iconTransformation(extent = {{-14, -12}, {14, 12}}, rotation = 270, origin = {10, -126})));
+ Modelica.Blocks.Interfaces.BooleanOutput Trip_Breaker_To_Island annotation (
+ Placement(transformation(rotation = 0, extent = {{108, 12}, {136, 36}}), iconTransformation(extent = {{108, 12}, {136, 36}})));
+ Modelica.Blocks.Sources.BooleanStep booleanStep(startTime = 6.01, startValue = true) annotation (
+ Placement(transformation(extent = {{-64, -18}, {-42, 4}})));
+ Modelica.Blocks.Sources.BooleanStep booleanStep1(startTime = 7) annotation (
+ Placement(transformation(extent = {{-62, -94}, {-40, -72}})));
+ equation
+ connect(f_DN.y, y1) annotation (
+ Line(points = {{-40.9, -43.44}, {-21.45, -43.44}, {-21.45, -38}, {124, -38}}, color = {0, 0, 127}));
+ connect(booleanConstant.y, y) annotation (
+ Line(points = {{-43, 28}, {-28, 28}, {-28, 34}, {14, 34}}, color = {255, 0, 255}));
+ connect(booleanStep1.y, startIslanding) annotation (
+ Line(points = {{-38.9, -83}, {-19.45, -83}, {-19.45, -80}, {14, -80}}, color = {255, 0, 255}));
+ connect(booleanStep.y, Trip_Breaker_To_Island) annotation (
+ Line(points = {{-40.9, -7}, {26, -7}, {26, 24}, {122, 24}}, color = {255, 0, 255}));
+ annotation (
+ Diagram(coordinateSystem(extent = {{-120, -120}, {140, 100}})),
+ Icon(coordinateSystem(extent = {{-120, -120}, {140, 100}}), graphics={ Ellipse(extent = {{-106, 100}, {124, -120}}, lineColor = {28, 108, 200}, fillColor = {85, 170, 255},
+ fillPattern = FillPattern.Solid)}));
+ end Event_Islanding;
+
+ model FrequencyCalculationBlock "frequency calculation for the DN"
+ Modelica.Blocks.Interfaces.RealInput u annotation (
+ Placement(transformation(extent = {{-120, 34}, {-80, 74}})));
+ Modelica.Blocks.Interfaces.RealOutput y "O/P is in rad/sec" annotation (
+ Placement(transformation(extent = {{100, -14}, {120, 6}})));
+ Modelica.Blocks.Continuous.Derivative derivative annotation (
+ Placement(transformation(extent = {{-56, 34}, {-36, 54}})));
+ Modelica.Blocks.Math.Product product annotation (
+ Placement(transformation(extent = {{-12, 16}, {10, 36}})));
+ Modelica.Blocks.Math.Add add(k2 = -1) annotation (
+ Placement(transformation(extent = {{30, 0}, {50, 20}})));
+ Modelica.Blocks.Math.Division division annotation (
+ Placement(transformation(extent = {{70, -14}, {90, 6}})));
+ Modelica.Blocks.Interfaces.RealInput u1 annotation (
+ Placement(transformation(extent = {{-120, -92}, {-80, -52}})));
+ Modelica.Blocks.Math.Product product1 annotation (
+ Placement(transformation(extent = {{-12, -10}, {10, 10}})));
+ Modelica.Blocks.Math.Product product2 annotation (
+ Placement(transformation(extent = {{-10, -88}, {12, -68}})));
+ Modelica.Blocks.Math.Product product3 annotation (
+ Placement(transformation(extent = {{-10, -54}, {12, -34}})));
+ Modelica.Blocks.Math.Add add1(k1 = +1, k2 = +1) annotation (
+ Placement(transformation(extent = {{30, -26}, {50, -6}})));
+ Modelica.Blocks.Continuous.Derivative derivative1 annotation (
+ Placement(transformation(extent = {{-54, -28}, {-34, -8}})));
+ equation
+ connect(division.y, y) annotation (
+ Line(points = {{91, -4}, {91, -4}, {110, -4}}, color = {0, 0, 127}));
+ connect(product.y, add.u1) annotation (
+ Line(points = {{11.1, 26}, {16, 26}, {16, 16}, {28, 16}}, color = {0, 0, 127}));
+ connect(product1.y, add.u2) annotation (
+ Line(points = {{11.1, 0}, {16, 0}, {16, 4}, {28, 4}}, color = {0, 0, 127}));
+ connect(product3.y, add1.u1) annotation (
+ Line(points = {{13.1, -44}, {17.55, -44}, {17.55, -10}, {28, -10}}, color = {0, 0, 127}));
+ connect(u, derivative.u) annotation (
+ Line(points = {{-100, 54}, {-100, 54}, {-70, 54}, {-70, 44}, {-58, 44}}, color = {0, 0, 127}));
+ connect(derivative.y, product.u1) annotation (
+ Line(points = {{-35, 44}, {-30, 44}, {-30, 32}, {-14.2, 32}}, color = {0, 0, 127}));
+ connect(product.u2, u1) annotation (
+ Line(points = {{-14.2, 20}, {-14.2, 20}, {-64, 20}, {-64, -72}, {-100, -72}}, color = {0, 0, 127}));
+ connect(product2.u1, u1) annotation (
+ Line(points = {{-12.2, -72}, {-46, -72}, {-100, -72}}, color = {0, 0, 127}));
+ connect(product2.u2, u1) annotation (
+ Line(points = {{-12.2, -84}, {-12.2, -84}, {-34, -84}, {-34, -72}, {-100, -72}}, color = {0, 0, 127}));
+ connect(derivative1.y, product1.u2) annotation (
+ Line(points = {{-33, -18}, {-26, -18}, {-26, -6}, {-14.2, -6}}, color = {0, 0, 127}));
+ connect(product3.u1, derivative.u) annotation (
+ Line(points = {{-12.2, -38}, {-70, -38}, {-70, 44}, {-58, 44}}, color = {0, 0, 127}));
+ connect(product1.u1, derivative.u) annotation (
+ Line(points = {{-14.2, 6}, {-36, 6}, {-70, 6}, {-70, 44}, {-58, 44}}, color = {0, 0, 127}));
+ connect(derivative1.u, u1) annotation (
+ Line(points = {{-56, -18}, {-64, -18}, {-64, -72}, {-100, -72}}, color = {0, 0, 127}));
+ connect(product3.u2, derivative.u) annotation (
+ Line(points = {{-12.2, -50}, {-34, -50}, {-34, -38}, {-70, -38}, {-70, 44}, {-58, 44}}, color = {0, 0, 127}));
+ connect(add1.u2, product2.y) annotation (
+ Line(points = {{28, -22}, {22, -22}, {22, -78}, {13.1, -78}}, color = {0, 0, 127}));
+ connect(division.u2, add1.y) annotation (
+ Line(points = {{68, -10}, {60, -10}, {60, -16}, {51, -16}}, color = {0, 0, 127}));
+ connect(division.u1, add.y) annotation (
+ Line(points = {{68, 2}, {60, 2}, {60, 10}, {51, 10}}, color = {0, 0, 127}));
+ annotation (
+ Icon(coordinateSystem(preserveAspectRatio = false), graphics = {Rectangle(extent = {{-100, 100}, {100, -100}}, lineColor = {28, 108, 200}, fillColor = {255, 255, 255}, fillPattern = FillPattern.Solid), Text(extent = {{-70, 64}, {50, -24}}, lineColor = {28, 108, 200}, textString = "FrequencyCalculationBlock")}),
+ Diagram(coordinateSystem(preserveAspectRatio = false)));
+ end FrequencyCalculationBlock;
+
+ model Breaker
+ import Modelica.ComplexMath.j;
+ OpenIPSL.Interfaces.PwPin p annotation (
+ Placement(transformation(extent = {{-100, -10}, {-80, 10}}), iconTransformation(extent = {{-100, -10}, {-80, 10}})));
+ OpenIPSL.Interfaces.PwPin n annotation (
+ Placement(transformation(extent = {{80, -10}, {100, 10}}), iconTransformation(extent = {{80, -10}, {100, 10}})));
+ Complex vs(re = p.vr, im = p.vi);
+ Complex vr(re = n.vr, im = n.vi);
+ Complex is(re = p.ir, im = p.ii);
+ Complex ir(re = n.ir, im = n.ii);
+ Modelica.Blocks.Interfaces.BooleanInput TRIGGER annotation (
+ Placement(transformation(extent = {{-32, 80}, {-12, 100}}), iconTransformation(extent = {{-10, -10}, {10, 10}}, rotation = -90, origin = {0, 90})));
+ equation
+ if not TRIGGER then
+ is = 0 + j * 0;
+ ir = 0 + j * 0;
+ else
+ ir = -is;
+ vs = vr;
+ end if;
+ annotation (
+ Icon(coordinateSystem(preserveAspectRatio = false, extent = {{-80, -80}, {80, 80}}), graphics={ Ellipse(extent = {{-80, 80}, {80, -80}}, lineColor = {0, 0, 255},
+ lineThickness = 0.5, fillColor = {255, 255, 255},
+ fillPattern = FillPattern.Solid)}),
+ Diagram(coordinateSystem(preserveAspectRatio = false, extent = {{-80, -80}, {80, 80}})));
+ end Breaker;
+ end Essentials;
+
+ package Generators
+ model G1
+ outer OpenIPSL.Electrical.SystemBase SysData;
+ extends OpenIPSL.Electrical.Essentials.pfComponent;
+ OpenIPSL.Interfaces.PwPin conn annotation (
+ Placement(transformation(extent = {{100, -10}, {120, 10}}), iconTransformation(extent = {{100, -10}, {120, 10}})));
+ OpenIPSL.Electrical.Machines.PSSE.GENSAL gENROE(M_b = 100, Tpd0 = 5, Tppd0 = 0.07, Tppq0 = 0.09, H = 4.28, D = 0, Xd = 1.84, Xq = 1.75, Xpd = 0.41, Xppd = 0.2, Xl = 0.12, S10 = 0.11, S12 = 0.39, Xppq = 0.2, R_a = 0, V_b = V_b, V_0 = V_0, angle_0 = angle_0, P_0 = P_0, Q_0 = Q_0, SPEED(fixed = true, start = 0), w(fixed = true, start = 0)) annotation (
+ Placement(transformation(extent = {{-18, -20}, {22, 20}})));
+ OpenIPSL.Electrical.Controls.PSSE.ES.SEXS sEXS(T_AT_B = 0.1, T_B = 1, K = 100, T_E = 0.1, E_MIN = -10, E_MAX = 10) annotation (
+ Placement(transformation(extent = {{-60, -28}, {-34, -4}})));
+ OpenIPSL.Electrical.Controls.PSSE.TG.HYGOV hYGOV annotation (
+ Placement(transformation(extent = {{-62, 0}, {-34, 20}})));
+ Modelica.Blocks.Sources.Constant const(k = 0) annotation (
+ Placement(transformation(extent = {{-90, -62}, {-76, -48}})));
+ Modelica.Blocks.Math.Add add(k2 = +1) annotation (
+ Placement(transformation(extent = {{-90, 14}, {-76, 28}})));
+ Modelica.Blocks.Sources.Ramp ramp(startTime = 6, duration = 5, height = 0.0101) annotation (
+ Placement(transformation(extent = {{-76, -6}, {-90, 8}})));
+ equation
+ connect(gENROE.p, conn) annotation (
+ Line(points = {{22, 0}, {22, 0}, {110, 0}}, color = {0, 0, 255}));
+ connect(hYGOV.PMECH0, gENROE.PMECH0) annotation (
+ Line(points = {{-60.8333, 4.44444}, {-72, 4.44444}, {-72, 28}, {40, 28}, {40, 10}, {24, 10}}, color = {0, 0, 127}));
+ connect(hYGOV.PMECH, gENROE.PMECH) annotation (
+ Line(points = {{-33.4167, 11.1111}, {-28, 11.1111}, {-28, 10}, {-22, 10}}, color = {0, 0, 127}));
+ connect(sEXS.EFD, gENROE.EFD) annotation (
+ Line(points = {{-33.35, -14.6667}, {-30, -14.6667}, {-30, -10}, {-22, -10}}, color = {0, 0, 127}));
+ connect(add.u2, ramp.y) annotation (
+ Line(points = {{-91.4, 16.8}, {-96, 16.8}, {-96, 1}, {-90.7, 1}}, color = {0, 0, 127}));
+ connect(const.y, sEXS.VOTHSG) annotation (
+ Line(points = {{-75.3, -55}, {-75.3, -55}, {-68, -55}, {-68, -8.66667}, {-60, -8.66667}}, color = {0, 0, 127}));
+ connect(gENROE.ETERM, sEXS.ECOMP) annotation (
+ Line(points = {{24, -6}, {38, -6}, {38, -32}, {-82, -32}, {-82, -14.6667}, {-60, -14.6667}}, color = {0, 0, 127}));
+ connect(sEXS.EFD0, gENROE.EFD0) annotation (
+ Line(points = {{-60, -23.3333}, {-86, -23.3333}, {-86, -40}, {30, -40}, {30, -10}, {24, -10}}, color = {0, 0, 127}));
+ connect(add.y, hYGOV.SPEED) annotation (
+ Line(points = {{-75.3, 21}, {-66, 21}, {-66, 16.6667}, {-60.8333, 16.6667}}, color = {0, 0, 127}));
+ connect(add.u1, gENROE.SPEED) annotation (
+ Line(points = {{-91.4, 25.2}, {-96, 25.2}, {-96, 36}, {48, 36}, {48, 14}, {24, 14}}, color = {0, 0, 127}));
+ connect(sEXS.VUEL, sEXS.VOTHSG) annotation (
+ Line(points = {{-55.45, -28}, {-56, -28}, {-56, -56}, {-68, -56}, {-68, -8.66667}, {-60, -8.66667}}, color = {0, 0, 127}));
+ connect(sEXS.VOEL, sEXS.VOTHSG) annotation (
+ Line(points = {{-51.55, -28}, {-52, -28}, {-52, -56}, {-68, -56}, {-68, -8.66667}, {-60, -8.66667}}, color = {0, 0, 127}));
+ connect(conn, conn) annotation (
+ Line(points = {{110, 0}, {110, 0}}, color = {0, 0, 255}));
+ connect(sEXS.XADIFD, sEXS.VOTHSG) annotation (
+ Line(points = {{-41.15, -27.7333}, {-41.15, -58}, {-52, -58}, {-52, -56}, {-68, -56}, {-68, -8.66667}, {-60, -8.66667}}, color = {0, 0, 127}));
+ annotation (
+ Icon(coordinateSystem(preserveAspectRatio = false), graphics={ Ellipse(extent = {{-100, 100}, {100, -100}}, lineColor = {0, 0, 0}, fillColor = {255, 255, 255},
+ fillPattern = FillPattern.Solid), Line(points = {{-48, 2}, {-20, 56}, {2, 4}, {24, -28}, {48, 22}}, color = {0, 0, 0}, smooth = Smooth.Bezier), Text(extent = {{-52, -18}, {56, -66}}, lineColor = {0, 0, 0}, fillColor = {255, 255, 255},
+ fillPattern = FillPattern.Solid, textString = "%name")}),
+ Diagram(coordinateSystem(preserveAspectRatio = false, extent = {{-100, -100}, {100, 100}})));
+ end G1;
+
+ model G22
+ outer OpenIPSL.Electrical.SystemBase SysData;
+ extends OpenIPSL.Electrical.Essentials.pfComponent;
+ OpenIPSL.Interfaces.PwPin conn annotation (
+ Placement(transformation(extent = {{100, -10}, {120, 10}}), iconTransformation(extent = {{100, -10}, {120, 10}})));
+ OpenIPSL.Electrical.Machines.PSSE.GENSAL gENROE(M_b = 100, Tpd0 = 5, Tppd0 = 0.07, Tppq0 = 0.09, H = 4.28, D = 0, Xd = 1.84, Xq = 1.75, Xpd = 0.41, Xppd = 0.2, Xl = 0.12, S10 = 0.11, S12 = 0.39, Xppq = 0.2, R_a = 0, V_b = V_b, V_0 = V_0, angle_0 = angle_0, P_0 = P_0, Q_0 = Q_0) annotation (
+ Placement(transformation(extent = {{30, -28}, {70, 12}})));
+ OpenIPSL.Electrical.Controls.PSSE.TG.IEESGO iEESGO(P_MAX = 1.5, P_MIN = 0) annotation (
+ Placement(transformation(extent = {{-22, -4}, {10, 10}})));
+ OpenIPSL.Electrical.Controls.PSSE.ES.SEXS sEXS(T_AT_B = 0.2, K = 50, E_MIN = 0, E_MAX = 5, T_E = 0.01, T_B = 10) annotation (
+ Placement(transformation(extent = {{-26, -34}, {-4, -14}})));
+ Modelica.Blocks.Interfaces.RealInput f_DN annotation (
+ Placement(transformation(extent = {{-110, 52}, {-90, 72}}), iconTransformation(extent = {{-110, 52}, {-90, 72}})));
+ Modelica.Blocks.Sources.Constant const1(k = 0) annotation (
+ Placement(transformation(extent = {{7, -7}, {-7, 7}}, rotation = 180, origin = {-77, -17})));
+ Modelica.Blocks.Logical.Switch switch1 annotation (
+ Placement(transformation(extent = {{0, 46}, {18, 64}})));
+ Modelica.Blocks.Interfaces.BooleanInput start_islanding annotation (
+ Placement(transformation(extent = {{-12, -12}, {12, 12}}, rotation = 0, origin = {-100, 20}), iconTransformation(extent = {{-12, -12}, {12, 12}}, rotation = 90, origin = {-2, -104})));
+ Modelica.Blocks.Math.Add add2(k1 = +1) annotation (
+ Placement(transformation(extent = {{-6, 28}, {-18, 40}})));
+ Modelica.Blocks.Continuous.PI PI(T = 0.00025, k = 0.0000001) annotation (
+ Placement(transformation(extent = {{32, 48}, {46, 62}})));
+ equation
+ connect(add2.u2, gENROE.SPEED) annotation (
+ Line(points = {{-4.8, 30.4}, {86, 30.4}, {86, 6}, {72, 6}}, color = {0, 0, 127}));
+ connect(iEESGO.PMECH, gENROE.PMECH) annotation (
+ Line(points = {{10.6667, 3.77778}, {26, 3.77778}, {26, 2}}, color = {0, 0, 127}));
+ connect(sEXS.EFD, gENROE.EFD) annotation (
+ Line(points = {{-3.45, -22.8889}, {12.275, -22.8889}, {12.275, -18}, {26, -18}}, color = {0, 0, 127}));
+ connect(gENROE.ETERM, sEXS.ECOMP) annotation (
+ Line(points = {{72, -14}, {88, -14}, {88, -58}, {-44, -58}, {-44, -22.8889}, {-26, -22.8889}}, color = {0, 0, 127}));
+ connect(gENROE.p, conn) annotation (
+ Line(points = {{70, -8}, {88, -8}, {88, 0}, {110, 0}}, color = {0, 0, 255}));
+ connect(switch1.y, PI.u) annotation (
+ Line(points = {{18.9, 55}, {24, 55}, {30.6, 55}}, color = {0, 0, 127}));
+ connect(add2.u1, PI.y) annotation (
+ Line(points = {{-4.8, 37.6}, {56, 37.6}, {56, 55}, {46.7, 55}}, color = {0, 0, 127}));
+ connect(const1.y, switch1.u3) annotation (
+ Line(points = {{-69.3, -17}, {-51.75, -17}, {-51.75, 47.8}, {-1.8, 47.8}}, color = {0, 0, 127}));
+ connect(f_DN, switch1.u1) annotation (
+ Line(points = {{-100, 62}, {-52, 62}, {-52, 62.2}, {-1.8, 62.2}}, color = {0, 0, 127}));
+ connect(iEESGO.SPEED, add2.y) annotation (
+ Line(points = {{-20.6667, 7.66667}, {-42, 7.66667}, {-42, 34}, {-18.6, 34}}, color = {0, 0, 127}));
+ connect(gENROE.PMECH0, iEESGO.PMECH0) annotation (
+ Line(points = {{72, 2}, {78, 2}, {78, 20}, {-32, 20}, {-32, -0.888889}, {-20.6667, -0.888889}}, color = {0, 0, 127}));
+ connect(gENROE.EFD0, sEXS.EFD0) annotation (
+ Line(points = {{72, -18}, {76, -18}, {76, -48}, {-36, -48}, {-36, -30.1111}, {-26, -30.1111}}, color = {0, 0, 127}));
+ connect(sEXS.VOTHSG, switch1.u3) annotation (
+ Line(points = {{-26, -17.8889}, {-52, -17.8889}, {-52, 47.8}, {-1.8, 47.8}}, color = {0, 0, 127}));
+ connect(sEXS.VUEL, switch1.u3) annotation (
+ Line(points = {{-22.15, -34}, {-22, -34}, {-22, -70}, {-52, -70}, {-52, -18}, {-51.75, -17}, {-51.75, 47.8}, {-1.8, 47.8}}, color = {0, 0, 127}));
+ connect(sEXS.VOEL, switch1.u3) annotation (
+ Line(points = {{-18.85, -34}, {-18, -34}, {-18, -70}, {-52, -70}, {-52, -18}, {-51.75, -17}, {-51.75, 47.8}, {-1.8, 47.8}}, color = {0, 0, 127}));
+ connect(start_islanding, switch1.u2) annotation (
+ Line(points = {{-100, 20}, {-88, 20}, {-78, 20}, {-78, 55}, {-1.8, 55}}, color = {255, 0, 255}));
+ connect(sEXS.XADIFD, switch1.u3) annotation (
+ Line(points = {{-10.05, -33.7778}, {-10.05, -70}, {-52, -70}, {-52, -18}, {-52, -17}, {-52, 47.8}, {-1.8, 47.8}}, color = {0, 0, 127}));
+ annotation (
+ Icon(coordinateSystem(preserveAspectRatio = false, extent = {{-100, -100}, {100, 100}}), graphics={ Ellipse(extent = {{-100, 100}, {100, -100}}, lineColor = {0, 0, 0}, fillColor = {255, 255, 255},
+ fillPattern = FillPattern.Solid), Line(points = {{-48, 2}, {-20, 56}, {2, 4}, {24, -28}, {48, 22}}, color = {0, 0, 0}, smooth = Smooth.Bezier), Text(extent = {{-52, -18}, {56, -66}}, lineColor = {0, 0, 0}, fillColor = {255, 255, 255},
+ fillPattern = FillPattern.Solid, textString = "%name")}),
+ Diagram(coordinateSystem(preserveAspectRatio = false, extent = {{-100, -100}, {100, 100}})));
+ end G22;
+
+ model G22_CD
+ outer OpenIPSL.Electrical.SystemBase SysData;
+ extends OpenIPSL.Electrical.Essentials.pfComponent;
+ OpenIPSL.Interfaces.PwPin conn annotation (
+ Placement(transformation(extent = {{100, -10}, {120, 10}}), iconTransformation(extent = {{100, -10}, {120, 10}})));
+ OpenIPSL.Electrical.Machines.PSSE.GENSAL gENROE(M_b = 100, Tpd0 = 5, Tppd0 = 0.07, Tppq0 = 0.09, H = 4.28, D = 0, Xd = 1.84, Xq = 1.75, Xpd = 0.41, Xppd = 0.2, Xl = 0.12, S10 = 0.11, S12 = 0.39, Xppq = 0.2, R_a = 0, V_b = V_b, V_0 = V_0, angle_0 = angle_0, P_0 = P_0, Q_0 = Q_0) annotation (
+ Placement(transformation(extent = {{30, -28}, {70, 12}})));
+ OpenIPSL.Electrical.Controls.PSSE.TG.IEESGO iEESGO(P_MAX = 1.5, P_MIN = 0) annotation (
+ Placement(transformation(extent = {{-22, -4}, {10, 10}})));
+ OpenIPSL.Electrical.Controls.PSSE.ES.SEXS sEXS(T_AT_B = 0.2, K = 50, E_MIN = 0, E_MAX = 5, T_E = 0.01, T_B = 10) annotation (
+ Placement(transformation(extent = {{-26, -34}, {-4, -14}})));
+ Modelica.Blocks.Interfaces.RealInput f_DN annotation (
+ Placement(transformation(extent = {{-110, 52}, {-90, 72}}), iconTransformation(extent = {{-110, 52}, {-90, 72}})));
+ Modelica.Blocks.Sources.Constant const1(k = 0) annotation (
+ Placement(transformation(extent = {{7, -7}, {-7, 7}}, rotation = 180, origin = {-77, -17})));
+ Modelica.Blocks.Logical.Switch switch1 annotation (
+ Placement(transformation(extent = {{0, 46}, {18, 64}})));
+ Modelica.Blocks.Interfaces.BooleanInput start_islanding annotation (
+ Placement(transformation(extent = {{-12, -12}, {12, 12}}, rotation = 0, origin = {-100, 20}), iconTransformation(extent = {{-12, -12}, {12, 12}}, rotation = 90, origin = {-2, -104})));
+ Modelica.Blocks.Math.Add add2(k1 = +1) annotation (
+ Placement(transformation(extent = {{-6, 28}, {-18, 40}})));
+ Modelica.Blocks.Continuous.PI PI(T = 0.00025, k = 0.0000001) annotation (
+ Placement(transformation(extent = {{32, 48}, {46, 62}})));
+ Modelica.Blocks.Math.Gain gain(k = 0) annotation (
+ Placement(transformation(extent = {{56, 50}, {66, 60}})));
+ equation
+ connect(add2.u2, gENROE.SPEED) annotation (
+ Line(points = {{-4.8, 30.4}, {86, 30.4}, {86, 6}, {72, 6}}, color = {0, 0, 127}));
+ connect(iEESGO.PMECH, gENROE.PMECH) annotation (
+ Line(points = {{10.6667, 3.77778}, {26, 3.77778}, {26, 2}}, color = {0, 0, 127}));
+ connect(sEXS.EFD, gENROE.EFD) annotation (
+ Line(points = {{-3.45, -22.8889}, {12.275, -22.8889}, {12.275, -18}, {26, -18}}, color = {0, 0, 127}));
+ connect(gENROE.ETERM, sEXS.ECOMP) annotation (
+ Line(points = {{72, -14}, {88, -14}, {88, -58}, {-44, -58}, {-44, -22.8889}, {-26, -22.8889}}, color = {0, 0, 127}));
+ connect(gENROE.p, conn) annotation (
+ Line(points = {{70, -8}, {88, -8}, {88, 0}, {110, 0}}, color = {0, 0, 255}));
+ connect(switch1.y, PI.u) annotation (
+ Line(points = {{18.9, 55}, {24, 55}, {30.6, 55}}, color = {0, 0, 127}));
+ connect(const1.y, switch1.u3) annotation (
+ Line(points = {{-69.3, -17}, {-51.75, -17}, {-51.75, 47.8}, {-1.8, 47.8}}, color = {0, 0, 127}));
+ connect(f_DN, switch1.u1) annotation (
+ Line(points = {{-100, 62}, {-52, 62}, {-52, 62.2}, {-1.8, 62.2}}, color = {0, 0, 127}));
+ connect(iEESGO.SPEED, add2.y) annotation (
+ Line(points = {{-20.6667, 7.66667}, {-42, 7.66667}, {-42, 34}, {-18.6, 34}}, color = {0, 0, 127}));
+ connect(gENROE.PMECH0, iEESGO.PMECH0) annotation (
+ Line(points = {{72, 2}, {78, 2}, {78, 20}, {-32, 20}, {-32, -0.888889}, {-20.6667, -0.888889}}, color = {0, 0, 127}));
+ connect(gENROE.EFD0, sEXS.EFD0) annotation (
+ Line(points = {{72, -18}, {76, -18}, {76, -48}, {-36, -48}, {-36, -30.1111}, {-26, -30.1111}}, color = {0, 0, 127}));
+ connect(sEXS.VOTHSG, switch1.u3) annotation (
+ Line(points = {{-26, -17.8889}, {-52, -17.8889}, {-52, 47.8}, {-1.8, 47.8}}, color = {0, 0, 127}));
+ connect(sEXS.VUEL, switch1.u3) annotation (
+ Line(points = {{-22.15, -34}, {-22, -34}, {-22, -70}, {-52, -70}, {-52, -18}, {-51.75, -17}, {-51.75, 47.8}, {-1.8, 47.8}}, color = {0, 0, 127}));
+ connect(sEXS.VOEL, switch1.u3) annotation (
+ Line(points = {{-18.85, -34}, {-18, -34}, {-18, -70}, {-52, -70}, {-52, -18}, {-51.75, -17}, {-51.75, 47.8}, {-1.8, 47.8}}, color = {0, 0, 127}));
+ connect(start_islanding, switch1.u2) annotation (
+ Line(points = {{-100, 20}, {-88, 20}, {-78, 20}, {-78, 55}, {-1.8, 55}}, color = {255, 0, 255}));
+ connect(PI.y, gain.u) annotation (
+ Line(points = {{46.7, 55}, {49.35, 55}, {55, 55}}, color = {0, 0, 127}));
+ connect(add2.u1, gain.y) annotation (
+ Line(points = {{-4.8, 37.6}, {76, 37.6}, {76, 55}, {66.5, 55}}, color = {0, 0, 127}));
+ connect(sEXS.XADIFD, switch1.u3) annotation (
+ Line(points = {{-10.05, -33.7778}, {-10.05, -70}, {-52, -70}, {-52, -18}, {-52, -17}, {-52, 47.8}, {-1.8, 47.8}}, color = {0, 0, 127}));
+ annotation (
+ Icon(coordinateSystem(preserveAspectRatio = false, extent = {{-100, -100}, {100, 100}}), graphics = {Ellipse(extent = {{-100, 100}, {100, -100}}, lineColor = {0, 0, 0}, fillColor = {255, 255, 255}, fillPattern = FillPattern.Solid), Line(points = {{-48, 2}, {-20, 56}, {2, 4}, {24, -28}, {48, 22}}, color = {0, 0, 0}, smooth = Smooth.Bezier), Text(extent = {{-52, -18}, {56, -66}}, lineColor = {0, 0, 0}, fillColor = {255, 255, 255}, fillPattern = FillPattern.Solid, textString = "%name")}),
+ Diagram(coordinateSystem(preserveAspectRatio = false, extent = {{-100, -100}, {100, 100}})));
+ end G22_CD;
+ end Generators;
+
+ package PowerFlowData
+ package case10_0MW
+ record Network_10_0_MW_loads_WL
+ extends Modelica.Icons.Record;
+ // Load 3_1
+ parameter Real PL3_1 = 50.000000;
+ parameter Real QL3_1 = 10.000000;
+ // Load 5_1
+ parameter Real PL5_1 = 10.000000;
+ parameter Real QL5_1 = 10.000000;
+ // Load 8_1
+ parameter Real PL8_1 = 10.000000;
+ parameter Real QL8_1 = 10.000000;
+ annotation ();
+ end Network_10_0_MW_loads_WL;
+
+ record Network_10_0_MW_machines_WL
+ extends Modelica.Icons.Record;
+ // Machine 7_1
+ parameter Real P7_1 = 10.000000;
+ parameter Real Q7_1 = 27.599998;
+ // Machine 1_1
+ parameter Real P1_1 = 60.381001;
+ parameter Real Q1_1 = 23.062000;
+ annotation ();
+ end Network_10_0_MW_machines_WL;
+
+ record Network_10_0_MW_trafos_WL
+ extends Modelica.Icons.Record;
+ // 2WindingTrafo 6_7
+ parameter Real t1_6_7 = 1.000000;
+ parameter Real t2_6_7 = 1.000000;
+ // 2WindingTrafo 1_2
+ parameter Real t1_1_2 = 1.000000;
+ parameter Real t2_1_2 = 1.000000;
+ annotation ();
+ end Network_10_0_MW_trafos_WL;
+
+ record Network_10_0_MW_voltages_WL
+ extends Modelica.Icons.Record;
+ // Bus number 1
+ parameter Real V1 = 1.000000;
+ parameter Real A1 = 0.000000;
+ // Bus number 2
+ parameter Real V2 = 0.960860;
+ parameter Real A2 = -7.206201;
+ // Bus number 3
+ parameter Real V3 = 0.938050;
+ parameter Real A3 = -14.891100;
+ // Bus number 4
+ parameter Real V4 = 0.939980;
+ parameter Real A4 = -15.226201;
+ // Bus number 5
+ parameter Real V5 = 0.875770;
+ parameter Real A5 = -18.359800;
+ // Bus number 6
+ parameter Real V6 = 0.971940;
+ parameter Real A6 = -15.256498;
+ // Bus number 7
+ parameter Real V7 = 1.000000;
+ parameter Real A7 = -14.748300;
+ // Bus number 8
+ parameter Real V8 = 0.910260;
+ parameter Real A8 = -18.172001;
+ annotation ();
+ end Network_10_0_MW_voltages_WL;
+ end case10_0MW;
+ end PowerFlowData;
+
+ package OpenIPSL "Open-Instance Power System Library"
+ class Copyright "Disclaimer
+OpenIPSL:
+Copyright August 2017 - Prof. Luigi Vanfretti, Rensselaer Polytechnic Institute, Troy, NY.
+Copyright April 2016 - July 2017 SmarTS Lab (Sweden)
+
+The authors can be contacted by email: luigi.vanfretti@gmail.com
+This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0.
+If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0.
+
+iPSL:
+Copyright 2015-2016 RTE (France), SmarTS Lab (Sweden), AIA (Spain) and DTU (Denmark)
+
+The authors can be contacted by email: info@itesla-ipsl.org
+
+This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0.
+If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0.
+"
+
+ annotation (
+ preferredView="info",
+ DocumentationClass=false,
+ Icon(graphics={
+ Text(
+ extent={{-100,140},{100,100}},
+ lineColor={0,127,0},
+ textString="%name%"),
+ Ellipse(
+ extent={{-100,100},{100,-100}},
+ lineColor={0,127,0},
+ fillColor={255,255,255},
+ fillPattern=FillPattern.Solid),
+ Ellipse(
+ extent={{-60,60},{60,-60}},
+ lineColor={0,127,72},
+ fillColor={0,127,0},
+ fillPattern=FillPattern.Solid),
+ Ellipse(
+ extent={{-40,40},{40,-40}},
+ lineColor={255,255,255},
+ fillColor={255,255,255},
+ fillPattern=FillPattern.Solid),
+ Rectangle(
+ extent={{28,22},{64,-20}},
+ lineColor={255,255,255},
+ fillColor={255,255,255},
+ fillPattern=FillPattern.Solid)}),
+ Documentation);
+ end Copyright;
+
+ package Examples
+ extends Modelica.Icons.ExamplesPackage;
+
+ package Machines
+ extends Modelica.Icons.ExamplesPackage;
+
+ package PSSE
+ extends Modelica.Icons.ExamplesPackage;
+
+ model GEN "SMIB system with one load and flexible GEN model (needs replaceable support)"
+ extends OpenIPSL.Examples.SMIBpartial;
+ Electrical.Machines.PSSE.Plant G1(
+ redeclare Electrical.Machines.PSSE.GENROE machine(
+ M_b=100,
+ Tpd0=5,
+ Tppd0=0.07,
+ Tppq0=0.09,
+ H=4.28,
+ D=0,
+ Xd=1.84,
+ Xq=1.75,
+ Xpd=0.41,
+ Xppd=0.2,
+ Xl=0.12,
+ S10=0.11,
+ S12=0.39,
+ V_0=1,
+ P_0=40,
+ angle_0=4.046276,
+ Q_0=5.416582,
+ Xppq=0.2,
+ R_a=0,
+ Xpq=2,
+ Tpq0=2),
+ redeclare OpenIPSL.Electrical.Controls.PSSE.TG.ConstantPower governor,
+ redeclare OpenIPSL.Electrical.Controls.PSSE.ES.ConstantExcitation exciter,
+ redeclare OpenIPSL.Electrical.Controls.PSSE.PSS.DisabledPSS pss)
+ annotation (Placement(transformation(extent={{-80,-10},{-60,10}})));
+ equation
+ connect(G1.pwPin, GEN1.p)
+ annotation (Line(points={{-59,0},{-49.5,0},{-40,0}}, color={0,0,255}));
+
+ end GEN;
+
+ model GENSAL "SMIB system with one load and GENSAL model"
+ extends OpenIPSL.Examples.SMIBpartial;
+ OpenIPSL.Electrical.Machines.PSSE.GENSAL gENSAL(
+ M_b=100,
+ Tpd0=5,
+ Tppd0=0.07,
+ Tppq0=0.09,
+ H=4.28,
+ D=0,
+ Xd=1.84,
+ Xq=1.75,
+ Xpd=0.41,
+ Xppd=0.2,
+ Xl=0.12,
+ S10=0.11,
+ S12=0.39,
+ V_0=1,
+ P_0=40,
+ angle_0=4.046276,
+ Q_0=5.416582,
+ Xppq=0.2,
+ R_a=0) annotation (Placement(transformation(extent={{-100,-20},{-60,
+ 20}})));
+ equation
+ connect(gENSAL.PMECH, gENSAL.PMECH0) annotation (Line(points={{-104,10},{-112,
+ 10},{-112,26},{-54,26},{-54,10},{-58,10}}, color={0,0,127}));
+ connect(gENSAL.EFD, gENSAL.EFD0) annotation (Line(points={{-104,-10},{-112,-10},
+ {-112,-30},{-54,-30},{-54,-10},{-58,-10}}, color={0,0,127}));
+ connect(gENSAL.p, GEN1.p)
+ annotation (Line(points={{-60,0},{-60,0},{-40,0}}, color={0,0,255}));
+ annotation (Documentation, experiment(StopTime=10));
+ end GENSAL;
+
+ model GENSAE "SMIB system with one load and GENSAE model"
+ extends OpenIPSL.Examples.SMIBpartial;
+ OpenIPSL.Electrical.Machines.PSSE.GENSAE gENSAE(
+ M_b=100,
+ Tpd0=5,
+ Tppd0=0.07,
+ Tppq0=0.09,
+ H=4.28,
+ D=0,
+ Xd=1.84,
+ Xq=1.75,
+ Xpd=0.41,
+ Xppd=0.2,
+ Xl=0.12,
+ S10=0.11,
+ S12=0.39,
+ V_0=1,
+ P_0=40,
+ angle_0=4.046276,
+ Q_0=5.416582,
+ Xppq=0.2,
+ R_a=0) annotation (Placement(transformation(extent={{-100,-20},{-60,
+ 20}})));
+ equation
+ connect(gENSAE.PMECH, gENSAE.PMECH0) annotation (Line(points={{-104,10},{-112,
+ 10},{-112,26},{-54,26},{-54,10},{-58,10}}, color={0,0,127}));
+ connect(gENSAE.EFD, gENSAE.EFD0) annotation (Line(points={{-104,-10},{-112,-10},
+ {-112,-30},{-54,-30},{-54,-10},{-58,-10}}, color={0,0,127}));
+ connect(gENSAE.p, GEN1.p)
+ annotation (Line(points={{-60,0},{-60,0},{-40,0}}, color={0,0,255}));
+ annotation (Documentation, experiment(StopTime=10));
+ end GENSAE;
+
+ model GENROU
+ extends OpenIPSL.Examples.SMIBpartial;
+ OpenIPSL.Electrical.Machines.PSSE.GENROU gENROU(
+ M_b=100,
+ Tpd0=5,
+ Tppd0=0.07,
+ Tpq0=0.9,
+ Tppq0=0.09,
+ D=0,
+ Xd=1.84,
+ Xq=1.75,
+ Xpd=0.41,
+ Xpq=0.6,
+ Xppd=0.2,
+ Xl=0.12,
+ S10=0.11,
+ S12=0.39,
+ V_0=1,
+ P_0=40,
+ angle_0=4.046276,
+ Q_0=5.416582,
+ Xppq=0.2,
+ R_a=0,
+ Xpp=0.2,
+ H=4.28) annotation (Placement(transformation(extent={{-100,-20},{
+ -60,20}})));
+ equation
+ connect(gENROU.PMECH, gENROU.PMECH0) annotation (Line(points={{-104,10},{-112,
+ 10},{-112,26},{-54,26},{-54,10},{-58,10}}, color={0,0,127}));
+ connect(gENROU.EFD, gENROU.EFD0) annotation (Line(points={{-104,-10},{-112,-10},
+ {-112,-30},{-54,-30},{-54,-10},{-58,-10}}, color={0,0,127}));
+ connect(gENROU.p, GEN1.p)
+ annotation (Line(points={{-60,0},{-60,0},{-40,0}}, color={0,0,255}));
+ annotation (Documentation, experiment(StopTime=10));
+ end GENROU;
+
+ model GENROE
+ extends OpenIPSL.Examples.SMIBpartial;
+ OpenIPSL.Electrical.Machines.PSSE.GENROE gENROE(
+ M_b=100,
+ Tpd0=5,
+ Tppd0=0.07,
+ Tpq0=0.9,
+ Tppq0=0.09,
+ H=4.28,
+ D=0,
+ Xd=1.84,
+ Xq=1.75,
+ Xpd=0.41,
+ Xpq=0.6,
+ Xppd=0.2,
+ Xl=0.12,
+ S10=0.11,
+ S12=0.39,
+ V_0=1,
+ P_0=40,
+ angle_0=4.046276,
+ Q_0=5.416582,
+ Xppq=0.2,
+ R_a=0,
+ Xpp=0.2) annotation (Placement(transformation(extent={{-100,-20},
+ {-60,20}})));
+ equation
+ connect(gENROE.PMECH, gENROE.PMECH0) annotation (Line(points={{-104,10},{-112,
+ 10},{-112,26},{-54,26},{-54,10},{-58,10}}, color={0,0,127}));
+ connect(gENROE.EFD, gENROE.EFD0) annotation (Line(points={{-104,-10},{-112,-10},
+ {-112,-30},{-54,-30},{-54,-10},{-58,-10}}, color={0,0,127}));
+ connect(gENROE.p, GEN1.p)
+ annotation (Line(points={{-60,0},{-60,0},{-40,0}}, color={0,0,255}));
+ annotation (Documentation, experiment(StopTime=10));
+ end GENROE;
+ annotation (Documentation);
+ end PSSE;
+
+ package PSAT
+ extends Modelica.Icons.ExamplesPackage;
+
+ model Order2test2
+ extends OpenIPSL.Examples.BaseTest;
+ extends Modelica.Icons.Example;
+ OpenIPSL.Electrical.Machines.PSAT.Order2 order21(
+ Sn=20,
+ V_b=400,
+ V_0=1,
+ angle_0=0,
+ Vn=400,
+ ra=0.001,
+ x1d=0.302,
+ M=10,
+ D=0,
+ P_0=16.0352698692006,
+ Q_0=11.859436505981) annotation (Placement(visible=true,
+ transformation(
+ origin={-29.946,0},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ equation
+ connect(order21.vf, order21.vf0) annotation (Line(points={{-41.946,5},{-46,5},
+ {-46,14},{-37.946,14},{-37.946,11}}, color={0,0,127}));
+ connect(order21.pm, order21.pm0) annotation (Line(points={{-41.946,-5},{-46,-5},
+ {-46,-14},{-37.946,-14},{-37.946,-11}}, color={0,0,127}));
+ connect(order21.p, bus.p) annotation (Line(points={{-19.946,0},{-9.473,0},{-9.473,
+ 0},{0,0}}, color={0,0,255}));
+ annotation (Documentation,experiment(StopTime=20));
+ end Order2test2;
+
+ model Order2test2_perturbation
+ extends OpenIPSL.Examples.BaseTest;
+ extends Modelica.Icons.Example;
+ Modelica.Blocks.Math.Add3 add31 annotation (Placement(visible=true,
+ transformation(
+ origin={-45,25},
+ extent={{-5,-5},{5,5}},
+ rotation=0)));
+ Modelica.Blocks.Math.Add add1 annotation (Placement(visible=true,
+ transformation(
+ origin={-74.9999,35},
+ extent={{-4.99992,-5.00001},{4.99991,5.00002}},
+ rotation=0)));
+ Modelica.Blocks.Sources.Step step1(height=0.0005, startTime=2) annotation (
+ Placement(visible=true, transformation(
+ origin={-95,55},
+ extent={{-5,-5},{5,5}},
+ rotation=0)));
+ Modelica.Blocks.Sources.Step step2(height=-0.0005, startTime=2.1) annotation (
+ Placement(visible=true, transformation(
+ origin={-95,35},
+ extent={{-5,-5},{5,5}},
+ rotation=0)));
+ Modelica.Blocks.Sources.Sine sine1(amplitude=0.001, freqHz=0.2) annotation (
+ Placement(visible=true, transformation(
+ origin={-95,20},
+ extent={{-5,-5},{5,5}},
+ rotation=0)));
+ Modelica.Blocks.Math.Add add2(k2=-1) annotation (Placement(visible=true,
+ transformation(
+ origin={-75,15},
+ extent={{-5,-5},{5,5}},
+ rotation=0)));
+ Modelica.Blocks.Sources.Sine sine2(
+ amplitude=0.001,
+ freqHz=0.2,
+ startTime=5) annotation (Placement(visible=true, transformation(
+ origin={-95,5},
+ extent={{-5,-5},{5,5}},
+ rotation=0)));
+ Modelica.Blocks.Sources.Sine sine3(
+ amplitude=0.001,
+ freqHz=0.2,
+ startTime=10) annotation (Placement(visible=true, transformation(
+ origin={-95,-75},
+ extent={{-5,-5},{5,5}},
+ rotation=0)));
+ Modelica.Blocks.Math.Add add3(k2=-1) annotation (Placement(visible=true,
+ transformation(
+ origin={-75,-65},
+ extent={{-4.99999,-4.99999},{4.99999,4.99999}},
+ rotation=0)));
+ Modelica.Blocks.Sources.Sine sine4(
+ amplitude=0.001,
+ freqHz=0.2,
+ startTime=5) annotation (Placement(visible=true, transformation(
+ origin={-95,-55},
+ extent={{-5,-5},{5,5}},
+ rotation=0)));
+ Modelica.Blocks.Sources.Step step3(height=-0.0005, startTime=7.1) annotation (
+ Placement(visible=true, transformation(
+ origin={-95,-35},
+ extent={{-5,-5},{5,5}},
+ rotation=0)));
+ Modelica.Blocks.Sources.Step step4(height=0.0005, startTime=7) annotation (
+ Placement(visible=true, transformation(
+ origin={-95,-15},
+ extent={{-5,-5},{5,5}},
+ rotation=0)));
+ Modelica.Blocks.Math.Add add4 annotation (Placement(visible=true,
+ transformation(
+ origin={-75,-25},
+ extent={{-5,-5},{5,5}},
+ rotation=0)));
+ Modelica.Blocks.Math.Add3 add32 annotation (Placement(visible=true,
+ transformation(
+ origin={-45,-25},
+ extent={{-5.00007,-5.00012},{5.00001,4.99999}},
+ rotation=0)));
+ OpenIPSL.Electrical.Machines.PSAT.Order2 order2_Inputs_Outputs1(
+ D=0,
+ V_b=400,
+ V_0=1,
+ angle_0=0,
+ Sn=20,
+ Vn=400,
+ ra=0.001,
+ x1d=0.302,
+ M=10,
+ P_0=16.0352698692006,
+ Q_0=11.859436505981) annotation (Placement(visible=true,
+ transformation(
+ origin={-20.1083,0.1663},
+ extent={{-8.8917,-9.1663},{8.8916,9.1663}},
+ rotation=0)));
+ equation
+ connect(step3.y, add4.u2) annotation (Line(
+ visible=true,
+ origin={-86.308,-30.9083},
+ points={{-3.192,-4.0917},{2.3974,-4.0917},{2.3974,2.9083},{5.308,2.9083}},
+ color={0,0,127}));
+
+ connect(step4.y, add4.u1) annotation (Line(
+ visible=true,
+ origin={-86.308,-19.6146},
+ points={{-3.192,4.6146},{2.3974,4.6146},{2.3974,-2.3854},{5.308,-2.3854}},
+ color={0,0,127}));
+
+ connect(order2_Inputs_Outputs1.p, bus.p) annotation (Line(points={{-11.2167,
+ 0.1663},{-5.66375,0.1663},{-5.66375,0},{0,0}}, color={0,0,255}));
+ connect(add31.y, order2_Inputs_Outputs1.vf) annotation (Line(points={{-39.5,
+ 25},{-35,25},{-35,4.74945},{-30.7783,4.74945}}, color={0,0,127}));
+ connect(order2_Inputs_Outputs1.vf0, add31.u3) annotation (Line(points={{-27.2217,
+ 10.2492},{-27.2217,14},{-55,14},{-55,21},{-51,21}}, color={0,0,127}));
+ connect(add32.y, order2_Inputs_Outputs1.pm) annotation (Line(points={{-39.5,-25.0001},
+ {-35,-25.0001},{-35,-4.41685},{-30.7783,-4.41685}}, color={0,0,127}));
+ connect(add1.y, add31.u1) annotation (Line(points={{-69.5,35},{-60,35},{-60,
+ 29},{-51,29}}, color={0,0,127}));
+ connect(add2.y, add31.u2) annotation (Line(points={{-69.5,15},{-60,15},{-60,
+ 25},{-51,25}}, color={0,0,127}));
+ connect(step2.y, add1.u2) annotation (Line(points={{-89.5,35},{-87,35},{-87,
+ 32},{-80.9998,32}}, color={0,0,127}));
+ connect(step1.y, add1.u1) annotation (Line(points={{-89.5,55},{-87,55},{-87,
+ 38},{-80.9998,38}}, color={0,0,127}));
+ connect(sine2.y, add2.u2) annotation (Line(points={{-89.5,5},{-86,5},{-86,12},
+ {-81,12}}, color={0,0,127}));
+ connect(sine1.y, add2.u1) annotation (Line(points={{-89.5,20},{-86,20},{-86,
+ 18},{-81,18}}, color={0,0,127}));
+ connect(order2_Inputs_Outputs1.pm0, add32.u1) annotation (Line(points={{-27.2217,
+ -9.91663},{-27.2217,-13},{-54,-13},{-54,-21},{-51.0001,-21}}, color={
+ 0,0,127}));
+ connect(add4.y, add32.u2) annotation (Line(points={{-69.5,-25},{-60,-25},{-60,
+ -25.0001},{-51.0001,-25.0001}}, color={0,0,127}));
+ connect(sine4.y, add3.u1) annotation (Line(points={{-89.5,-55},{-85,-55},{-85,
+ -62},{-81,-62}}, color={0,0,127}));
+ connect(sine3.y, add3.u2) annotation (Line(points={{-89.5,-75},{-85,-75},{-85,
+ -68},{-81,-68}}, color={0,0,127}));
+ connect(add3.y, add32.u3) annotation (Line(points={{-69.5,-65},{-60,-65},{-60,
+ -29.0001},{-51.0001,-29.0001}}, color={0,0,127}));
+ annotation (Documentation,experiment(StopTime=20));
+ end Order2test2_perturbation;
+
+ model Order3test2
+ extends OpenIPSL.Examples.BaseTest;
+ extends Modelica.Icons.Example;
+ OpenIPSL.Electrical.Machines.PSAT.Order3 order31(
+ V_b=400,
+ V_0=1,
+ angle_0=0,
+ Sn=20,
+ Vn=400,
+ ra=0.01,
+ x1d=0.302,
+ M=10,
+ D=0,
+ xd=1.9,
+ T1d0=8,
+ xq=1.7,
+ P_0=16.0352698692006,
+ Q_0=11.859436505981) annotation (Placement(visible=true,
+ transformation(
+ origin={-25,0},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ equation
+ connect(order31.vf, order31.vf0) annotation (Line(points={{-37,5},{-40,5},{-40,
+ 15},{-33,15},{-33,11}}, color={0,0,127}));
+ connect(order31.pm, order31.pm0) annotation (Line(points={{-37,-5},{-40,-5},{
+ -40,-15},{-33,-15},{-33,-11}}, color={0,0,127}));
+ connect(order31.p, bus.p)
+ annotation (Line(points={{-15,0},{-7,0},{-7,0},{0,0}}, color={0,0,255}));
+ annotation (Documentation,experiment(StopTime=20));
+ end Order3test2;
+
+ model Order3test2_perturbation
+ extends OpenIPSL.Examples.BaseTest;
+ extends Modelica.Icons.Example;
+ OpenIPSL.Electrical.Machines.PSAT.Order3 order3_Inputs_Outputs1(
+ V_b=400,
+ V_0=1,
+ angle_0=0,
+ Sn=20,
+ Vn=400,
+ ra=0.01,
+ x1d=0.302,
+ M=10,
+ D=0,
+ xd=1.9,
+ T1d0=8,
+ xq=1.7,
+ P_0=16.0352698692006,
+ Q_0=11.859436505981) annotation (Placement(visible=true,
+ transformation(
+ origin={-18.3443,-0.375609},
+ extent={{-9.6557,-9.62439},{9.6557,9.62439}},
+ rotation=0)));
+ Modelica.Blocks.Math.Add3 add31 annotation (Placement(visible=true,
+ transformation(
+ origin={-45,25},
+ extent={{-5,-5},{5,5}},
+ rotation=0)));
+ Modelica.Blocks.Math.Add add1 annotation (Placement(visible=true,
+ transformation(
+ origin={-74.9999,35},
+ extent={{-4.99992,-5.00001},{4.99991,5.00002}},
+ rotation=0)));
+ Modelica.Blocks.Sources.Step step1(height=0.0005, startTime=2) annotation (
+ Placement(visible=true, transformation(
+ origin={-95,55},
+ extent={{-5,-5},{5,5}},
+ rotation=0)));
+ Modelica.Blocks.Sources.Step step2(height=-0.0005, startTime=2.1) annotation (
+ Placement(visible=true, transformation(
+ origin={-95,35},
+ extent={{-5,-5},{5,5}},
+ rotation=0)));
+ Modelica.Blocks.Sources.Sine sine1(amplitude=0.001, freqHz=0.2) annotation (
+ Placement(visible=true, transformation(
+ origin={-95,20},
+ extent={{-5,-5},{5,5}},
+ rotation=0)));
+ Modelica.Blocks.Math.Add add2(k2=-1) annotation (Placement(visible=true,
+ transformation(
+ origin={-75,15},
+ extent={{-5,-5},{5,5}},
+ rotation=0)));
+ Modelica.Blocks.Sources.Sine sine2(
+ amplitude=0.001,
+ freqHz=0.2,
+ startTime=5) annotation (Placement(visible=true, transformation(
+ origin={-95,5},
+ extent={{-5,-5},{5,5}},
+ rotation=0)));
+ Modelica.Blocks.Sources.Sine sine3(
+ amplitude=0.001,
+ freqHz=0.2,
+ startTime=10) annotation (Placement(visible=true, transformation(
+ origin={-95,-75},
+ extent={{-5,-5},{5,5}},
+ rotation=0)));
+ Modelica.Blocks.Math.Add add3(k2=-1) annotation (Placement(visible=true,
+ transformation(
+ origin={-75,-65},
+ extent={{-4.99999,-4.99999},{4.99999,4.99999}},
+ rotation=0)));
+ Modelica.Blocks.Sources.Sine sine4(
+ amplitude=0.001,
+ freqHz=0.2,
+ startTime=5) annotation (Placement(visible=true, transformation(
+ origin={-95,-55},
+ extent={{-5,-5},{5,5}},
+ rotation=0)));
+ Modelica.Blocks.Sources.Step step3(height=-0.0005, startTime=7.1) annotation (
+ Placement(visible=true, transformation(
+ origin={-95,-35},
+ extent={{-5,-5},{5,5}},
+ rotation=0)));
+ Modelica.Blocks.Sources.Step step4(height=0.0005, startTime=7) annotation (
+ Placement(visible=true, transformation(
+ origin={-95,-15},
+ extent={{-5,-5},{5,5}},
+ rotation=0)));
+ Modelica.Blocks.Math.Add add4 annotation (Placement(visible=true,
+ transformation(
+ origin={-75,-25},
+ extent={{-5,-5},{5,5}},
+ rotation=0)));
+ Modelica.Blocks.Math.Add3 add32 annotation (Placement(visible=true,
+ transformation(
+ origin={-45,-25},
+ extent={{-5.00007,-5.00012},{5.00001,4.99999}},
+ rotation=0)));
+ equation
+ connect(step3.y, add4.u2) annotation (Line(
+ visible=true,
+ origin={-86.308,-30.9083},
+ points={{-3.192,-4.0917},{2.3974,-4.0917},{2.3974,2.9083},{5.308,2.9083}},
+ color={0,0,127}));
+
+ connect(step4.y, add4.u1) annotation (Line(
+ visible=true,
+ origin={-86.308,-19.6146},
+ points={{-3.192,4.6146},{2.3974,4.6146},{2.3974,-2.3854},{5.308,-2.3854}},
+ color={0,0,127}));
+
+ connect(add1.y, add31.u1) annotation (Line(points={{-69.5,35},{-60,35},{-60,
+ 29},{-51,29}}, color={0,0,127}));
+ connect(add2.y, add31.u2) annotation (Line(points={{-69.5,15},{-60,15},{-60,
+ 25},{-51,25}}, color={0,0,127}));
+ connect(step2.y, add1.u2) annotation (Line(points={{-89.5,35},{-87,35},{-87,
+ 32},{-80.9998,32}}, color={0,0,127}));
+ connect(step1.y, add1.u1) annotation (Line(points={{-89.5,55},{-87,55},{-87,
+ 38},{-80.9998,38}}, color={0,0,127}));
+ connect(sine2.y, add2.u2) annotation (Line(points={{-89.5,5},{-86,5},{-86,12},
+ {-81,12}}, color={0,0,127}));
+ connect(sine1.y, add2.u1) annotation (Line(points={{-89.5,20},{-86,20},{-86,
+ 18},{-81,18}}, color={0,0,127}));
+ connect(add4.y, add32.u2) annotation (Line(points={{-69.5,-25},{-60,-25},{-60,
+ -25.0001},{-51.0001,-25.0001}}, color={0,0,127}));
+ connect(sine4.y, add3.u1) annotation (Line(points={{-89.5,-55},{-85,-55},{-85,
+ -62},{-81,-62}}, color={0,0,127}));
+ connect(sine3.y, add3.u2) annotation (Line(points={{-89.5,-75},{-85,-75},{-85,
+ -68},{-81,-68}}, color={0,0,127}));
+ connect(add3.y, add32.u3) annotation (Line(points={{-69.5,-65},{-60,-65},{-60,
+ -29.0001},{-51.0001,-29.0001}}, color={0,0,127}));
+ connect(order3_Inputs_Outputs1.p, bus.p) annotation (Line(points={{-8.6886,-0.375609},
+ {-3.86151,-0.375609},{-3.86151,0},{0,0}}, color={0,0,255}));
+ connect(add31.y, order3_Inputs_Outputs1.vf) annotation (Line(points={{-39.5,
+ 25},{-34,25},{-34,4.43659},{-29.9311,4.43659}}, color={0,0,127}));
+ connect(add32.y, order3_Inputs_Outputs1.pm) annotation (Line(points={{-39.5,-25.0001},
+ {-34,-25.0001},{-34,-5.1878},{-29.9311,-5.1878}}, color={0,0,127}));
+ connect(order3_Inputs_Outputs1.vf0, add31.u3) annotation (Line(points={{-26.0689,
+ 10.2112},{-26.0689,14},{-56,14},{-56,21},{-51,21}}, color={0,0,127}));
+ connect(order3_Inputs_Outputs1.pm0, add32.u1) annotation (Line(points={{-26.0689,
+ -10.9624},{-26.0689,-16},{-56,-16},{-56,-21},{-51.0001,-21}}, color={
+ 0,0,127}));
+ annotation (Documentation,experiment(StopTime=20));
+ end Order3test2_perturbation;
+
+ model Order3test2_TG
+ extends OpenIPSL.Examples.BaseTest;
+ extends Modelica.Icons.Example;
+ OpenIPSL.Electrical.Machines.PSAT.Order3 order3_Inputs_Outputs1(
+ V_b=400,
+ V_0=1,
+ angle_0=0,
+ Sn=20,
+ Vn=400,
+ ra=0.01,
+ x1d=0.302,
+ M=10,
+ D=0,
+ xd=1.9,
+ T1d0=8,
+ xq=1.7,
+ P_0=16.0352698692006,
+ Q_0=11.859436505981) annotation (Placement(visible=true,
+ transformation(
+ origin={-29.9999,0},
+ extent={{-10.0001,-10},{9.99991,10}},
+ rotation=0)));
+ OpenIPSL.Electrical.Controls.PSAT.TG.TGtypeII TGtypeII1 annotation
+ (Placement(visible=true, transformation(
+ origin={-63,-5},
+ extent={{-9,-9},{9,9}},
+ rotation=0)));
+ equation
+ connect(TGtypeII1.pm, order3_Inputs_Outputs1.pm) annotation (Line(points={{-53.1,-5},{-42,-5}},
+ color={0,0,127}));
+ connect(order3_Inputs_Outputs1.vf0, order3_Inputs_Outputs1.vf) annotation (
+ Line(points={{-38,11},{-38,16},{-48,16},{-48,6},{-48,5},{-42,5}}, color={
+ 0,0,127}));
+ connect(order3_Inputs_Outputs1.pm0, TGtypeII1.pm0) annotation (Line(points={{-38,-11},{-38,-28},{-86,-28},{-86,10},{-63,10},{-63,5.8}},
+ color={0,0,127}));
+ connect(order3_Inputs_Outputs1.p, bus.p)
+ annotation (Line(points={{-20,0},{-20,0},{0,0}}, color={0,0,255}));
+ connect(order3_Inputs_Outputs1.w, TGtypeII1.w) annotation (Line(points={{-19,9},{-16,9},{-16,22},{-80,22},{-80,-5},{-73.8,-5}}, color={0,0,127}));
+ annotation (Documentation,experiment(StopTime=20));
+ end Order3test2_TG;
+
+ model Order3test2_AVR
+ extends Modelica.Icons.Example;
+ extends OpenIPSL.Examples.BaseTest;
+ OpenIPSL.Electrical.Machines.PSAT.Order3 order3_Inputs_Outputs1(
+ V_b=400,
+ V_0=1,
+ angle_0=0,
+ Sn=20,
+ Vn=400,
+ ra=0.01,
+ x1d=0.302,
+ M=10,
+ D=0,
+ xd=1.9,
+ T1d0=8,
+ xq=1.7,
+ P_0=16.0352698692006,
+ Q_0=11.859436505981) annotation (Placement(visible=true,
+ transformation(
+ origin={-30,0},
+ extent={{-9.99992,-10},{10,10}},
+ rotation=0)));
+ OpenIPSL.Electrical.Controls.PSAT.AVR.AVRtypeIII AVRtypeIII1
+ annotation (Placement(visible=true, transformation(
+ origin={-68,0},
+ extent={{-10,-10},{10,10}},
+ rotation=0)));
+ Modelica.Blocks.Sources.Constant const(k=0)
+ annotation (Placement(transformation(extent={{-98,-4},{-90,4}})));
+ equation
+ connect(order3_Inputs_Outputs1.p, bus.p)
+ annotation (Line(points={{-20,0},{-20,0},{0,0}}, color={0,0,255}));
+ connect(AVRtypeIII1.vf, order3_Inputs_Outputs1.vf) annotation (Line(points={{
+ -57.1667,0},{-50.5,0},{-50.5,5},{-41.9999,5}}, color={0,0,127}));
+ connect(AVRtypeIII1.v, order3_Inputs_Outputs1.v) annotation (Line(points={{-77.1667,
+ 5},{-88,5},{-88,22},{-15,22},{-15,3},{-19,3}}, color={0,0,127}));
+ connect(order3_Inputs_Outputs1.pm0, order3_Inputs_Outputs1.pm) annotation (
+ Line(points={{-37.9999,-11},{-37.9999,-14},{-47,-14},{-47,-5},{-41.9999,-5}},
+ color={0,0,127}));
+ connect(AVRtypeIII1.vf0, order3_Inputs_Outputs1.vf0) annotation (Line(points=
+ {{-68,9.16667},{-68,16},{-37.9999,16},{-37.9999,11}},color={0,0,127}));
+ connect(AVRtypeIII1.vs, const.y) annotation (Line(points={{-77.1667,-5},{-86,
+ -5},{-86,0},{-89.6,0}}, color={0,0,127}));
+ annotation (Documentation,experiment(StopTime=20));
+ end Order3test2_AVR;
+
+ model Order4test2
+ extends OpenIPSL.Examples.BaseTest;
+ extends Modelica.Icons.Example;
+ OpenIPSL.Electrical.Machines.PSAT.Order4 Generator(
+ Sn=100,
+ Vn=20,
+ V_b=400,
+ V_0=1,
+ angle_0=0,
+ ra=0.001,
+ M=10,
+ D=0,
+ x1d=0.302,
+ P_0=16.0352698692006,
+ Q_0=11.859436505981) annotation (Placement(transformation(extent=
+ {{-60,-20},{-20,20}})));
+ equation
+ connect(Generator.vf0, Generator.vf) annotation (Line(points={{-56,22},{-56,
+ 28},{-76,28},{-76,10},{-64,10}}, color={0,0,127}));
+ connect(Generator.pm, Generator.pm0) annotation (Line(points={{-64,-10},{-72,
+ -10},{-72,-18},{-72,-28},{-56,-28},{-56,-22}}, color={0,0,127}));
+ connect(Generator.p, bus.p)
+ annotation (Line(points={{-20,0},{-20,0},{0,0}}, color={0,0,255}));
+ annotation (experiment(StopTime=20), Documentation);
+ end Order4test2;
+
+ model Order4test2_perturbation
+ extends OpenIPSL.Examples.BaseTest;
+ extends Modelica.Icons.Example;
+ OpenIPSL.Electrical.Machines.PSAT.Order4 Generator(
+ Sn=100,
+ Vn=20,
+ V_b=400,
+ V_0=1,
+ angle_0=0,
+ ra=0.001,
+ M=10,
+ D=0,
+ x1d=0.302,
+ P_0=16.0352698692006,
+ Q_0=11.859436505981) annotation (Placement(transformation(extent=
+ {{-26,-10},{-6,10}})));
+ Modelica.Blocks.Math.Add3 add31 annotation (Placement(visible=true,
+ transformation(
+ origin={-45,25},
+ extent={{-5,-5},{5,5}},
+ rotation=0)));
+ Modelica.Blocks.Math.Add add1 annotation (Placement(visible=true,
+ transformation(
+ origin={-74.9999,35},
+ extent={{-4.99992,-5.00001},{4.99991,5.00002}},
+ rotation=0)));
+ Modelica.Blocks.Sources.Step step1(height=0.0005, startTime=2) annotation (
+ Placement(visible=true, transformation(
+ origin={-95,55},
+ extent={{-5,-5},{5,5}},
+ rotation=0)));
+ Modelica.Blocks.Sources.Step step2(height=-0.0005, startTime=2.1) annotation (
+ Placement(visible=true, transformation(
+ origin={-95,35},
+ extent={{-5,-5},{5,5}},
+ rotation=0)));
+ Modelica.Blocks.Sources.Sine sine1(amplitude=0.001, freqHz=0.2) annotation (
+ Placement(visible=true, transformation(
+ origin={-95,20},
+ extent={{-5,-5},{5,5}},
+ rotation=0)));
+ Modelica.Blocks.Math.Add add2(k2=-1) annotation (Placement(visible=true,
+ transformation(
+ origin={-75,15},
+ extent={{-5,-5},{5,5}},
+ rotation=0)));
+ Modelica.Blocks.Sources.Sine sine2(
+ amplitude=0.001,
+ freqHz=0.2,
+ startTime=5) annotation (Placement(visible=true, transformation(
+ origin={-95,5},
+ extent={{-5,-5},{5,5}},
+ rotation=0)));
+ Modelica.Blocks.Sources.Sine sine3(
+ amplitude=0.001,
+ freqHz=0.2,
+ startTime=10) annotation (Placement(visible=true, transformation(
+ origin={-95,-75},
+ extent={{-5,-5},{5,5}},
+ rotation=0)));
+ Modelica.Blocks.Math.Add add3(k2=-1) annotation (Placement(visible=true,
+ transformation(
+ origin={-75,-65},
+ extent={{-4.99999,-4.99999},{4.99999,4.99999}},
+ rotation=0)));
+ Modelica.Blocks.Sources.Sine sine4(
+ amplitude=0.001,
+ freqHz=0.2,
+ startTime=5) annotation (Placement(visible=true, transformation(
+ origin={-95,-55},
+ extent={{-5,-5},{5,5}},
+ rotation=0)));
+ Modelica.Blocks.Sources.Step step3(height=-0.0005, startTime=7.1) annotation (
+ Placement(visible=true, transformation(
+ origin={-95,-35},
+ extent={{-5,-5},{5,5}},
+ rotation=0)));
+ Modelica.Blocks.Sources.Step step4(height=0.0005, startTime=7) annotation (
+ Placement(visible=true, transformation(
+ origin={-95,-15},
+ extent={{-5,-5},{5,5}},
+ rotation=0)));
+ Modelica.Blocks.Math.Add add4 annotation (Placement(visible=true,
+ transformation(
+ origin={-75,-25},
+ extent={{-5,-5},{5,5}},
+ rotation=0)));
+ Modelica.Blocks.Math.Add3 add32 annotation (Placement(visible=true,
+ transformation(
+ origin={-45,-25},
+ extent={{-5.00007,-5.00012},{5.00001,4.99999}},
+ rotation=0)));
+ equation
+ connect(Generator.p, bus.p) annotation (Line(points={{-6,0},{-4.25,0},{-4.25,
+ 0},{0,0}}, color={0,0,255}));
+ connect(step3.y, add4.u2) annotation (Line(
+ visible=true,
+ origin={-86.308,-30.9083},
+ points={{-3.192,-4.0917},{2.3974,-4.0917},{2.3974,2.9083},{5.308,2.9083}},
+ color={0,0,127}));
+
+ connect(step4.y, add4.u1) annotation (Line(
+ visible=true,
+ origin={-86.308,-19.6146},
+ points={{-3.192,4.6146},{2.3974,4.6146},{2.3974,-2.3854},{5.308,-2.3854}},
+ color={0,0,127}));
+
+ connect(add1.y, add31.u1) annotation (Line(points={{-69.5,35},{-60,35},{-60,
+ 29},{-51,29}}, color={0,0,127}));
+ connect(add2.y, add31.u2) annotation (Line(points={{-69.5,15},{-60,15},{-60,
+ 25},{-51,25}}, color={0,0,127}));
+ connect(step2.y, add1.u2) annotation (Line(points={{-89.5,35},{-87,35},{-87,
+ 32},{-80.9998,32}}, color={0,0,127}));
+ connect(step1.y, add1.u1) annotation (Line(points={{-89.5,55},{-87,55},{-87,
+ 38},{-80.9998,38}}, color={0,0,127}));
+ connect(sine2.y, add2.u2) annotation (Line(points={{-89.5,5},{-86,5},{-86,12},
+ {-81,12}}, color={0,0,127}));
+ connect(sine1.y, add2.u1) annotation (Line(points={{-89.5,20},{-86,20},{-86,
+ 18},{-81,18}}, color={0,0,127}));
+ connect(add4.y, add32.u2) annotation (Line(points={{-69.5,-25},{-60,-25},{-60,
+ -25.0001},{-51.0001,-25.0001}}, color={0,0,127}));
+ connect(sine4.y, add3.u1) annotation (Line(points={{-89.5,-55},{-85,-55},{-85,
+ -62},{-81,-62}}, color={0,0,127}));
+ connect(sine3.y, add3.u2) annotation (Line(points={{-89.5,-75},{-85,-75},{-85,
+ -68},{-81,-68}}, color={0,0,127}));
+ connect(add3.y, add32.u3) annotation (Line(points={{-69.5,-65},{-60,-65},{-60,
+ -29.0001},{-51.0001,-29.0001}}, color={0,0,127}));
+ connect(add31.y, Generator.vf) annotation (Line(points={{-39.5,25},{-35,25},{
+ -35,5},{-28,5}}, color={0,0,127}));
+ connect(add32.y, Generator.pm) annotation (Line(points={{-39.5,-25.0001},{-35,
+ -25.0001},{-35,-5},{-28,-5}}, color={0,0,127}));
+ connect(Generator.vf0, add31.u3) annotation (Line(points={{-24,11},{-24,14},{
+ -55,14},{-55,21},{-51,21}}, color={0,0,127}));
+ connect(Generator.pm0, add32.u1) annotation (Line(points={{-24,-11},{-24,-16},
+ {-54,-16},{-54,-21},{-51.0001,-21}}, color={0,0,127}));
+ annotation (
+ Diagram(coordinateSystem(
+ extent={{-100,-100},{100,100}},
+ preserveAspectRatio=false,
+ initialScale=0.1,
+ grid={1,1})),
+ experiment(StopTime=20),
+ Documentation);
+ end Order4test2_perturbation;
+
+ model Order4test2_TG
+ extends OpenIPSL.Examples.BaseTest;
+ extends Modelica.Icons.Example;
+ OpenIPSL.Electrical.Controls.PSAT.TG.TGtypeII TGtypeII1 annotation
+ (Placement(visible=true, transformation(
+ origin={-72.5,-7.5},
+ extent={{-12.5,-12.5},{12.5,12.5}},
+ rotation=0)));
+ OpenIPSL.Electrical.Machines.PSAT.Order4 Generator(
+ V_b=200,
+ V_0=1,
+ angle_0=0,
+ ra=0.001,
+ x1d=0.302,
+ M=10,
+ D=0,
+ Sn=370,
+ Vn=200,
+ P_0=16.0352698692006,
+ Q_0=11.859436505981) annotation (Placement(transformation(extent=
+ {{-40,-15},{-10,15}})));
+ equation
+ connect(Generator.p, bus.p) annotation (Line(points={{-10,0},{-4.25,0},{-4.25,
+ 0},{0,0}}, color={0,0,255}));
+ connect(TGtypeII1.pm, Generator.pm) annotation (Line(points={{-58.75,-7.5},{-43,-7.5}},
+ color={0,0,127}));
+ connect(Generator.pm0, TGtypeII1.pm0) annotation (Line(points={{-37,-16.5},{-37,-25},{-50,-25},{-50,15},{-72.5,15},{-72.5,7.5}},
+ color={0,0,127}));
+ connect(Generator.vf0, Generator.vf) annotation (Line(points={{-37,16.5},{-37,
+ 20},{-45,20},{-45,7.5},{-43,7.5}}, color={0,0,127}));
+ connect(Generator.w, TGtypeII1.w) annotation (Line(points={{-8.5,13.5},{-4,13.5},{-4,26},{-92,26},{-92,-7.5},{-87.5,-7.5}}, color={0,0,127}));
+ annotation (Documentation,experiment(StopTime=20));
+ end Order4test2_TG;
+
+ model Order4test2_AVR
+ extends OpenIPSL.Examples.BaseTest;
+ extends Modelica.Icons.Example;
+ OpenIPSL.Electrical.Controls.PSAT.AVR.AVRtypeIII AVRtypeIII1
+ annotation (Placement(visible=true, transformation(
+ origin={-67,5},
+ extent={{-10,-10},{10,10}},
+ rotation=0)));
+ OpenIPSL.Electrical.Machines.PSAT.Order4 order4_Inputs_Outputs(
+ V_b=200,
+ V_0=1,
+ angle_0=0,
+ Sn=370,
+ Vn=200,
+ ra=0.001,
+ x1d=0.302,
+ M=10,
+ D=0,
+ P_0=16.0352698692006,
+ Q_0=11.859436505981) annotation (Placement(transformation(extent=
+ {{-37,-10},{-17,10}})));
+ Modelica.Blocks.Sources.Constant const(k=0)
+ annotation (Placement(transformation(extent={{-97,-4},{-87,6}})));
+ equation
+ connect(AVRtypeIII1.vf, order4_Inputs_Outputs.vf) annotation (Line(
+ points={{-56.1667,5},{-47,5},{-47,5},{-39,5}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(const.y, AVRtypeIII1.vs) annotation (Line(points={{-86.5,1},{-81,1},{
+ -81,0},{-76.1667,0}}, color={0,0,127}));
+ connect(AVRtypeIII1.v, order4_Inputs_Outputs.v) annotation (Line(points={{-76.1667,
+ 10},{-87,10},{-87,20},{-10,20},{-10,3},{-16,3}}, color={0,0,127}));
+ connect(order4_Inputs_Outputs.pm0, order4_Inputs_Outputs.pm) annotation (Line(
+ points={{-35,-11},{-35,-13},{-41,-13},{-41,-5},{-39,-5}}, color={0,0,
+ 127}));
+ connect(order4_Inputs_Outputs.p, bus.p)
+ annotation (Line(points={{-17,0},{-8,0},{-8,0},{0,0}}, color={0,0,255}));
+ connect(AVRtypeIII1.vf0, order4_Inputs_Outputs.vf0) annotation (Line(points={
+ {-67,14.1667},{-67,23},{-35,23},{-35,11}},color={0,0,127}));
+ annotation (Documentation,experiment(StopTime=20));
+ end Order4test2_AVR;
+
+ model Order5test2
+ extends OpenIPSL.Examples.BaseTest;
+ extends Modelica.Icons.Example;
+ OpenIPSL.Electrical.Machines.PSAT.Order5_Type1 order5Type1_Inputs_Outputs(
+ Sn=370,
+ Vn=200,
+ ra=0.001,
+ x1d=0.302,
+ M=10,
+ D=0,
+ V_b=400,
+ V_0=1,
+ angle_0=0,
+ P_0=16.0352698692006,
+ Q_0=11.859436505981,
+ xd=1.9,
+ xq=1.7,
+ x1q=0.5,
+ T1d0=8,
+ T1q0=0.8,
+ T2q0=0.02) annotation (Placement(transformation(extent={{-32,-10},
+ {-12,10}})));
+ equation
+ connect(order5Type1_Inputs_Outputs.vf, order5Type1_Inputs_Outputs.vf0)
+ annotation (Line(points={{-34,5},{-37,5},{-37,15},{-30,15},{-30,11}},color=
+ {0,0,127}));
+ connect(order5Type1_Inputs_Outputs.pm, order5Type1_Inputs_Outputs.pm0)
+ annotation (Line(points={{-34,-5},{-37,-5},{-37,-15},{-30,-15},{-30,-11}},
+ color={0,0,127}));
+ connect(order5Type1_Inputs_Outputs.p, bus.p)
+ annotation (Line(points={{-12,0},{-6,0},{-6,0},{0,0}}, color={0,0,255}));
+ annotation (
+ Diagram(coordinateSystem(
+ extent={{-100,-100},{100,100}},
+ preserveAspectRatio=false,
+ initialScale=0.1,
+ grid={1,1})),
+ experiment(StopTime=20),
+ Documentation);
+ end Order5test2;
+
+ model Order6test2
+ extends OpenIPSL.Examples.BaseTest;
+ extends Modelica.Icons.Example;
+ OpenIPSL.Electrical.Machines.PSAT.Order6 order6Type2_1(
+ Sn=100,
+ V_0=1,
+ angle_0=0,
+ ra=0.001,
+ x1d=0.302,
+ M=10,
+ D=0,
+ V_b=400,
+ Vn=20,
+ xd=1.9,
+ xq=1.7,
+ x1q=0.5,
+ x2d=0.204,
+ x2q=0.3,
+ T1d0=8,
+ T1q0=0.8,
+ T2d0=0.04,
+ T2q0=0.02,
+ Taa=2e-3,
+ P_0=16.0352698692006,
+ Q_0=11.859436505981) annotation (Placement(transformation(extent=
+ {{-61,-20},{-21,20}})));
+ equation
+ connect(order6Type2_1.vf0, order6Type2_1.vf) annotation (Line(points={{-57,22},
+ {-57,25},{-71,25},{-71,10},{-65,10}}, color={0,0,127}));
+ connect(order6Type2_1.pm, order6Type2_1.pm0) annotation (Line(points={{-65,-10},
+ {-71,-10},{-71,-25},{-57,-25},{-57,-22}}, color={0,0,127}));
+ connect(order6Type2_1.p, bus.p)
+ annotation (Line(points={{-21,0},{-10,0},{-10,0},{0,0}}, color={0,0,255}));
+ annotation (
+ Diagram(coordinateSystem(
+ extent={{-100,-100},{100,100}},
+ preserveAspectRatio=false,
+ initialScale=0.1,
+ grid={1,1})),
+ experiment(StopTime=20),
+ Documentation);
+ end Order6test2;
+
+ model InductiveMotorI_SIMBOpenline_Test
+ "Order 1 inductive machine from PSAT, line opened at 2 s for 1 s"
+ extends Modelica.Icons.Example;
+ OpenIPSL.Electrical.Machines.PSAT.MotorTypeI motorTypeI(
+ Sup=0,
+ V_0=1.0336,
+ angle_0=-0.02173,
+ P_0=0.5,
+ Q_0=0.286) annotation (Placement(transformation(
+ extent={{-10,-10},{10,10}},
+ rotation=180,
+ origin={70,0})));
+ OpenIPSL.Electrical.Branches.PwLine pwLine1(
+ G=0,
+ B=0,
+ R=0.01,
+ X=0.1) annotation (Placement(transformation(
+ extent={{-10,-10},{10,9.99999}},
+ rotation=180,
+ origin={0,-20})));
+ OpenIPSL.Electrical.Branches.PwLine pwLine2(
+ G=0,
+ B=0,
+ R=0.01,
+ X=0.1,
+ t1=2,
+ t2=3,
+ opening=1) annotation (Placement(transformation(
+ extent={{-10,-10},{10,10}},
+ rotation=180,
+ origin={0,20})));
+ OpenIPSL.Electrical.Buses.InfiniteBus infiniteBus(V_0=1.05, angle_0
+ =0) annotation (Placement(transformation(
+ extent={{-10,-10},{10,10}},
+ rotation=0,
+ origin={-70,0})));
+ inner OpenIPSL.Electrical.SystemBase SysData annotation (Placement(
+ transformation(extent={{-100,80},{-40,100}})));
+ equation
+ connect(infiniteBus.p, pwLine2.n) annotation (Line(
+ points={{-60,0},{-40.175,0},{-40.175,20},{-9,20}},
+ color={0,0,255},
+ smooth=Smooth.None));
+ connect(pwLine1.n, infiniteBus.p) annotation (Line(
+ points={{-9,-20},{-40,-20},{-40,0},{-60,0}},
+ color={0,0,255},
+ smooth=Smooth.None));
+ connect(pwLine2.p, motorTypeI.p) annotation (Line(
+ points={{9,20},{40,20},{40,0},{60,0}},
+ color={0,0,255},
+ smooth=Smooth.None));
+ connect(pwLine1.p, motorTypeI.p) annotation (Line(
+ points={{9,-20},{40,-20},{40,1.33227e-15},{60,1.33227e-15}},
+ color={0,0,255},
+ smooth=Smooth.None));
+ annotation (Documentation,experiment(StopTime=20));
+ end InductiveMotorI_SIMBOpenline_Test;
+
+ model InductiveMotorIII_SIMBOpenline_Test
+ extends Modelica.Icons.Example;
+ OpenIPSL.Electrical.Machines.PSAT.MotorTypeIII motorTypeI(
+ Sup=0,
+ V_0=1.0336,
+ angle_0=-0.02173,
+ P_0=0.251061717038311,
+ Q_0=0.226568616630697) annotation (Placement(transformation(
+ extent={{-10,-10},{10,10}},
+ rotation=180,
+ origin={70,0})));
+ OpenIPSL.Electrical.Branches.PwLine pwLine1(
+ G=0,
+ R=0.01,
+ X=0.1,
+ B=1e-3) annotation (Placement(transformation(
+ extent={{-10,-10},{10,9.99999}},
+ rotation=180,
+ origin={0,-20})));
+ OpenIPSL.Electrical.Branches.PwLine pwLine2(
+ G=0,
+ R=0.01,
+ X=0.1,
+ t1=2,
+ t2=3,
+ B=1e-3,
+ opening=1) annotation (Placement(transformation(
+ extent={{-10,-9.99992},{10,10.0001}},
+ rotation=180,
+ origin={0,20.0001})));
+ OpenIPSL.Electrical.Buses.InfiniteBus infiniteBus(V_0=1.05, angle_0
+ =0) annotation (Placement(transformation(
+ extent={{-10,-10},{10,10}},
+ rotation=0,
+ origin={-70,0})));
+ inner OpenIPSL.Electrical.SystemBase SysData(fn=60) annotation (
+ Placement(transformation(extent={{-100,80},{-40,100}})));
+ equation
+ connect(infiniteBus.p, pwLine2.n) annotation (Line(
+ points={{-60,0},{-40.175,0},{-40.175,20},{-9,20}},
+ color={0,0,255},
+ smooth=Smooth.None));
+ connect(pwLine2.p, motorTypeI.p)
+ annotation (Line(points={{9,20},{40,20},{40,0},{60,0}}, color={0,0,255}));
+ connect(pwLine1.p, motorTypeI.p) annotation (Line(points={{9,-20},{40,-20},{
+ 40,0},{60,0}}, color={0,0,255}));
+ connect(pwLine1.n, pwLine2.n) annotation (Line(points={{-9,-20},{-40,-20},{-40,
+ 0},{-40.175,0},{-40.175,20},{-9,20}}, color={0,0,255}));
+ annotation (Documentation,experiment(StopTime=20));
+ end InductiveMotorIII_SIMBOpenline_Test;
+
+ model InductiveMotorV_SIMBOpenline_Test
+ extends Modelica.Icons.Example;
+ OpenIPSL.Electrical.Machines.PSAT.MotorTypeV motorTypeI(
+ Sup=0,
+ V_0=1.0336,
+ angle_0=-0.02173,
+ P_0=0.251061717038311,
+ Q_0=0.226568616630697) annotation (Placement(transformation(
+ extent={{-10,-10},{10,10}},
+ rotation=180,
+ origin={70,0})));
+ OpenIPSL.Electrical.Branches.PwLine pwLine1(
+ G=0,
+ B=0,
+ R=0.01,
+ X=0.1) annotation (Placement(transformation(
+ extent={{-10,-10},{10,10}},
+ rotation=180,
+ origin={0,-20})));
+ OpenIPSL.Electrical.Branches.PwLine pwLine2(
+ G=0,
+ B=0,
+ R=0.01,
+ X=0.1,
+ t1=2,
+ t2=3,
+ opening=1) annotation (Placement(transformation(
+ extent={{-10,-10},{10,10}},
+ rotation=180,
+ origin={0,20})));
+ OpenIPSL.Electrical.Buses.InfiniteBus infiniteBus(V_0=1.05, angle_0
+ =0) annotation (Placement(transformation(
+ extent={{-10,-10},{10,10}},
+ rotation=0,
+ origin={-70,0})));
+ inner OpenIPSL.Electrical.SystemBase SysData(fn=60) annotation (
+ Placement(transformation(extent={{-100,80},{-40,100}})));
+ equation
+ connect(pwLine1.n, infiniteBus.p) annotation (Line(
+ points={{-9,-20},{-40,-20},{-40,0},{-60,0}},
+ color={0,0,255},
+ smooth=Smooth.None));
+ connect(pwLine2.n, infiniteBus.p) annotation (Line(points={{-9,20},{-40,20},{
+ -40,0},{-60,0},{-60,0}}, color={0,0,255}));
+ connect(pwLine2.p, motorTypeI.p) annotation (Line(points={{9,20},{40,20},{40,
+ 0},{60,0},{60,1.33227e-15}}, color={0,0,255}));
+ connect(pwLine1.p, motorTypeI.p) annotation (Line(points={{9,-20},{40,-20},{
+ 40,0},{60,0},{60,1.22125e-15}}, color={0,0,255}));
+ annotation (Documentation,experiment(StopTime=20));
+ end InductiveMotorV_SIMBOpenline_Test;
+ annotation (Documentation);
+ end PSAT;
+ annotation (Documentation);
+ end Machines;
+
+ package Controls
+ extends Modelica.Icons.ExamplesPackage;
+
+ package PSSE
+ extends Modelica.Icons.ExamplesPackage;
+
+ package ES
+ extends Modelica.Icons.ExamplesPackage;
+
+ model EXAC2 "SMIB system with one load and GENROE model"
+ extends OpenIPSL.Examples.SMIBpartial;
+ OpenIPSL.Electrical.Machines.PSSE.GENROE gENROE(
+ M_b=100,
+ Tpd0=5,
+ Tppd0=0.07,
+ Tpq0=0.9,
+ Tppq0=0.09,
+ H=4.28,
+ D=0,
+ Xd=1.84,
+ Xq=1.75,
+ Xpd=0.41,
+ Xpq=0.6,
+ Xppd=0.2,
+ Xl=0.12,
+ S10=0.11,
+ S12=0.39,
+ V_0=1,
+ P_0=40,
+ angle_0=4.046276,
+ Q_0=5.416582,
+ Xppq=0.2) annotation (Placement(transformation(extent={{-100,-20},
+ {-60,20}})));
+ OpenIPSL.Electrical.Controls.PSSE.ES.EXAC2 eXAC2_1(
+ K_B=2,
+ K_H=2,
+ K_A=400,
+ T_A=0.02,
+ V_AMAX=9,
+ V_AMIN=-5.34,
+ T_E=0.8,
+ K_F=0.03,
+ T_F=1,
+ K_C=0.2,
+ K_D=0.48,
+ K_E=1,
+ E_1=5.25,
+ E_2=7,
+ S_EE_1=0.03,
+ S_EE_2=0.1,
+ T_R=0.005,
+ T_B=0.005,
+ T_C=0.005,
+ V_RMAX=4,
+ V_RMIN=-4,
+ K_L=1,
+ V_LR=10) annotation (Placement(transformation(extent={{-54,-52},
+ {-100,-30}})));
+ Modelica.Blocks.Sources.Constant const(k=0) annotation (Placement(
+ transformation(
+ extent={{-4,-4},{4,4}},
+ rotation=180,
+ origin={-44,-44})));
+ equation
+ connect(gENROE.PMECH, gENROE.PMECH0) annotation (Line(points={{-104,10},{-110,
+ 10},{-110,26},{-48,26},{-48,10},{-58,10}}, color={0,0,127}));
+ connect(gENROE.EFD0, eXAC2_1.EFD0) annotation (Line(points={{-58,-10},{-48,-10},
+ {-48,-47.7222},{-54,-47.7222}}, color={0,0,127}));
+ connect(gENROE.XADIFD, eXAC2_1.XADIFD) annotation (Line(points={{-58.4,-18},{
+ -50,-18},{-50,-44.0556},{-54.23,-44.0556}}, color={0,0,127}));
+ connect(gENROE.ETERM, eXAC2_1.ECOMP) annotation (Line(points={{-58,-6},{-46,-6},
+ {-46,-39.7778},{-54,-39.7778}}, color={0,0,127}));
+ connect(eXAC2_1.EFD, gENROE.EFD) annotation (Line(points={{-101.15,-39.7778},
+ {-110,-39.7778},{-110,-10},{-104,-10}},color={0,0,127}));
+ connect(gENROE.p, GEN1.p)
+ annotation (Line(points={{-60,0},{-60,0},{-40,0}}, color={0,0,255}));
+ connect(eXAC2_1.VOTHSG, const.y) annotation (Line(points={{-54,-34.2778},{-51.1437,
+ -34.2778},{-51.1437,-44},{-48.4,-44}}, color={0,0,127}));
+ connect(eXAC2_1.VUEL, const.y) annotation (Line(points={{-62.05,-52},{-50,-52},
+ {-50,-44},{-48.4,-44}}, color={0,0,127}));
+ connect(eXAC2_1.VOEL, const.y) annotation (Line(points={{-68.95,-52},{-50,-52},
+ {-50,-44},{-48.4,-44}}, color={0,0,127}));
+ annotation (
+ Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{
+ 100,100}})),
+ Documentation,
+ experiment(StopTime=10));
+ end EXAC2;
+
+ model ESAC2A "SMIB model example of GENROU with Excitation System ESAC2A"
+ extends OpenIPSL.Examples.SMIBpartial;
+ OpenIPSL.Electrical.Machines.PSSE.GENROU generator(
+ Xppd=0.2,
+ Xppq=0.2,
+ Xpp=0.2,
+ Xl=0.12,
+ V_0=1,
+ P_0=100*0.399999529123306,
+ angle_0=4.04626655578613,
+ Q_0=100*0.0541657134890556,
+ M_b=100,
+ Tpd0=5,
+ Tppd0=0.50000E-01,
+ Tppq0=0.1,
+ H=4.0000,
+ D=0,
+ Xd=1.41,
+ Xq=1.3500,
+ Xpd=0.3,
+ S10=0.1,
+ S12=0.5,
+ Xpq=0.6,
+ Tpq0=0.7) annotation (Placement(transformation(extent={{-108,-14},
+ {-80,16}})));
+ Modelica.Blocks.Sources.Constant const(k=0) annotation (Placement(
+ transformation(
+ extent={{-4,-4},{4,4}},
+ rotation=180,
+ origin={-42,-26})));
+ Modelica.Blocks.Sources.Constant const2(k=0)
+ annotation (Placement(transformation(extent={{-110,166},{-94,182}})));
+ Modelica.Blocks.Sources.Constant const4(k=1000) annotation (Placement(
+ transformation(
+ extent={{-5,-5},{5,5}},
+ rotation=180,
+ origin={-41,-45})));
+ Modelica.Blocks.Sources.Constant const5(k=-1000) annotation (Placement(
+ transformation(
+ extent={{-5,-5},{5,5}},
+ rotation=180,
+ origin={-41,-61})));
+ OpenIPSL.Electrical.Controls.PSSE.ES.ESAC2A eSAC2A(
+ V_RMAX=4,
+ V_RMIN=-4,
+ V_FEMAX=10) annotation (Placement(transformation(extent={{-74,-70},
+ {-144,-24}})));
+ equation
+ connect(eSAC2A.EFD0, generator.EFD0) annotation (Line(
+ points={{-74,-61.0556},{-60,-61.0556},{-60,-6.5},{-78.6,-6.5}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(const.y, eSAC2A.VOTHSG) annotation (Line(
+ points={{-46.4,-26},{-63.25,-26},{-63.25,-32.9444},{-74,-32.9444}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(generator.XADIFD, eSAC2A.XADIFD) annotation (Line(
+ points={{-78.88,-12.5},{-56,-12.5},{-56,-53.3889},{-74,-53.3889}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(eSAC2A.VOEL, const4.y) annotation (Line(
+ points={{-96.75,-70},{-58.6875,-70},{-58.6875,-45},{-46.5,-45}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(const5.y, eSAC2A.VUEL) annotation (Line(
+ points={{-46.5,-61},{-54,-61},{-54,-70},{-86.25,-70}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(generator.PELEC, eSAC2A.ECOMP) annotation (Line(
+ points={{-78.6,5.5},{-64,5.5},{-64,-44.4444},{-74,-44.4444}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(generator.PMECH0, generator.PMECH) annotation (Line(
+ points={{-78.6,8.5},{-74,8.5},{-74,20},{-110,20},{-110,8.5},{-110.8,8.5}},
+ color={0,0,127},
+ smooth=Smooth.None));
+
+ connect(eSAC2A.EFD, generator.EFD) annotation (Line(points={{-145.75,-44.4444},
+ {-150,-44.4444},{-150,-6.5},{-110.8,-6.5}}, color={0,0,127}));
+ connect(generator.p, GEN1.p) annotation (Line(points={{-80,1},{-58.3,1},{-58.3,
+ 0},{-40,0}}, color={0,0,255}));
+ annotation (
+ Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{
+ 100,100}})),
+ Documentation,
+ experiment(StopTime=10));
+ end ESAC2A;
+
+ model ESST4B "SMIB model example of GENROU with Excitation System ESST4B"
+ extends OpenIPSL.Examples.SMIBpartial;
+ OpenIPSL.Electrical.Machines.PSSE.GENROU generator(
+ Xppd=0.2,
+ Xppq=0.2,
+ Xpp=0.2,
+ Xl=0.12,
+ V_0=1,
+ P_0=100*0.399999529123306,
+ angle_0=4.04626655578613,
+ Q_0=100*0.0541657134890556,
+ M_b=100,
+ Tpd0=5,
+ Tppd0=0.50000E-01,
+ Tppq0=0.1,
+ H=4.0000,
+ D=0,
+ Xd=1.41,
+ Xq=1.3500,
+ Xpd=0.3,
+ S10=0.1,
+ S12=0.5,
+ Xpq=0.6,
+ Tpq0=0.7) annotation (Placement(transformation(extent={{-120,-16},
+ {-92,18}})));
+ Modelica.Blocks.Sources.Constant const(k=0) annotation (Placement(
+ transformation(
+ extent={{-4,-4},{4,4}},
+ rotation=0,
+ origin={-98,-52})));
+ Modelica.Blocks.Sources.Constant const2(k=0)
+ annotation (Placement(transformation(extent={{-110,166},{-94,182}})));
+ Modelica.Blocks.Sources.Constant const5(k=0) annotation (Placement(
+ transformation(
+ extent={{-5,-5},{5,5}},
+ rotation=0,
+ origin={-97,-37})));
+ OpenIPSL.Electrical.Controls.PSSE.ES.ESST4B eSST4B annotation (
+ Placement(transformation(
+ extent={{-14,-10},{14,10}},
+ rotation=0,
+ origin={-64,-4})));
+ inner Electrical.SystemBase SysData
+ annotation (Placement(transformation(extent={{-100,80},{-40,100}})));
+ Modelica.Blocks.Sources.Constant const1(k=Modelica.Constants.inf)
+ annotation (Placement(transformation(extent={{-40,-48},{-56,-32}})));
+ equation
+ connect(generator.p, eSST4B.Gen_terminal) annotation (Line(
+ points={{-92,1},{-66.7,1},{-66.7,4.33333},{-75.9,4.33333}},
+ color={0,0,255},
+ smooth=Smooth.None));
+ connect(const.y, eSST4B.VOTHSG) annotation (Line(
+ points={{-93.6,-52},{-86,-52},{-86,2.11111},{-78,2.11111}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(generator.EFD0, eSST4B.EFD0) annotation (Line(
+ points={{-90.6,-7.5},{-90,-7.5},{-90,-10.1111},{-78,-10.1111}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(const5.y, eSST4B.VUEL) annotation (Line(
+ points={{-91.5,-37},{-84,-37},{-84,-14},{-73.1,-14}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(generator.PMECH0, generator.PMECH) annotation (Line(
+ points={{-90.6,9.5},{-70,9.5},{-70,22},{-102,22},{-102,9.5},{-122.8,9.5}},
+ color={0,0,127},
+ smooth=Smooth.None));
+
+ connect(eSST4B.EFD, generator.EFD) annotation (Line(
+ points={{-49.3,-2.88889},{-48,-2.88889},{-48,-24},{-124,-24},{-124,-7.5},
+ {-122.8,-7.5}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(generator.XADIFD, eSST4B.XADIFD) annotation (Line(
+ points={{-90.88,-14.3},{-90.88,-20},{-94,-20},{-94,-6.77778},{-78,-6.77778}},
+ color={0,0,127},
+ smooth=Smooth.None));
+
+ connect(generator.PELEC, eSST4B.ECOMP) annotation (Line(
+ points={{-90.6,6.1},{-68,6.1},{-68,-2.88889},{-78,-2.88889}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(eSST4B.Bus, GEN1.p) annotation (Line(points={{-52.1,4.33333},{-47.5818,
+ 4.33333},{-47.5818,0},{-40,0}}, color={0,0,255}));
+ connect(const1.y, eSST4B.VOEL) annotation (Line(points={{-56.8,-40},{-68.9,-40},
+ {-68.9,-14}}, color={0,0,127}));
+ annotation (
+ Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{
+ 100,100}})),
+ Documentation,
+ experiment(StopTime=10));
+ end ESST4B;
+
+ model URST5T "SMIB model example of GENROU with Excitation System URST5T"
+ extends OpenIPSL.Examples.SMIBpartial;
+ OpenIPSL.Electrical.Machines.PSSE.GENROU generator(
+ Xppd=0.2,
+ Xppq=0.2,
+ Xpp=0.2,
+ Xl=0.12,
+ V_0=1,
+ P_0=100*0.399999529123306,
+ angle_0=4.04626655578613,
+ Q_0=100*0.0541657134890556,
+ M_b=100,
+ Tpd0=5,
+ Tppd0=0.50000E-01,
+ Tppq0=0.1,
+ H=4.0000,
+ D=0,
+ Xd=1.41,
+ Xq=1.3500,
+ Xpd=0.3,
+ S10=0.1,
+ S12=0.5,
+ Xpq=0.6,
+ Tpq0=0.7) annotation (Placement(transformation(extent={{-104,-16},
+ {-76,18}})));
+ Modelica.Blocks.Sources.Constant const2(k=0)
+ annotation (Placement(transformation(extent={{-110,166},{-94,182}})));
+ Modelica.Blocks.Sources.Constant VOEL(k=1000) annotation (Placement(
+ transformation(
+ extent={{-5,-5},{5,5}},
+ rotation=0,
+ origin={-87,-67})));
+ OpenIPSL.Electrical.Controls.PSSE.ES.URST5T uRST5T annotation (
+ Placement(transformation(extent={{-56,-40},{-34,-20}})));
+ Modelica.Blocks.Sources.Constant VUEL(k=-1000) annotation (Placement(
+ transformation(
+ extent={{-5,-5},{5,5}},
+ rotation=0,
+ origin={-73,-81})));
+ Modelica.Blocks.Sources.Constant VOTHSG(k=0) annotation (Placement(
+ transformation(
+ extent={{-5,-5},{5,5}},
+ rotation=0,
+ origin={-73,-55})));
+ inner Electrical.SystemBase SysData
+ annotation (Placement(transformation(extent={{-100,80},{-40,100}})));
+ equation
+ connect(VUEL.y, uRST5T.VUEL) annotation (Line(
+ points={{-67.5,-81},{-58.25,-81},{-58.25,-40},{-52.15,-40}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(VOEL.y, uRST5T.VOEL) annotation (Line(
+ points={{-81.5,-67},{-60,-67},{-60,-40},{-48.85,-40}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(VOTHSG.y, uRST5T.VOTHSG) annotation (Line(
+ points={{-67.5,-55},{-62,-55},{-62,-23.8889},{-56,-23.8889}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(generator.XADIFD, uRST5T.XADIFD) annotation (Line(
+ points={{-74.88,-14.3},{-74.88,-32.7778},{-56,-32.7778}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(generator.EFD0, uRST5T.EFD0) annotation (Line(
+ points={{-74.6,-7.5},{-64,-7.5},{-64,-36.1111},{-56,-36.1111}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(generator.PMECH0, generator.PMECH) annotation (Line(
+ points={{-74.6,9.5},{-70,9.5},{-70,22},{-104,22},{-104,9.5},{-106.8,9.5}},
+ color={0,0,127},
+ smooth=Smooth.None));
+
+ connect(generator.PELEC, uRST5T.ECOMP) annotation (Line(
+ points={{-74.6,6.1},{-66,6.1},{-66,-28.8889},{-56,-28.8889}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(uRST5T.EFD, generator.EFD) annotation (Line(
+ points={{-33.45,-28.8889},{-14,-28.8889},{-14,-44},{-104,-44},{-104,-7.5},
+ {-106.8,-7.5}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(generator.p, GEN1.p) annotation (Line(points={{-76,1},{-57.3,1},{-57.3,
+ 0},{-40,0}}, color={0,0,255}));
+ connect(uRST5T.VT, uRST5T.ECOMP) annotation (Line(points={{-56,-26.1111},{-58,
+ -26.1111},{-58,-26},{-60,-26},{-60,-28.8889},{-56,-28.8889}}, color={
+ 0,0,127}));
+ annotation (
+ Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{
+ 100,100}})),
+ Documentation,
+ experiment(StopTime=10));
+ end URST5T;
+
+ model SEXS "SMIB model example of GENROU with Excitation System EXST1"
+ extends OpenIPSL.Examples.SMIBpartial;
+ Modelica.Blocks.Sources.Constant const2(k=0)
+ annotation (Placement(transformation(extent={{-110,166},{-94,182}})));
+ OpenIPSL.Electrical.Machines.PSSE.GENROU gENROE(
+ M_b=100,
+ Tpd0=5,
+ Tppd0=0.07,
+ Tpq0=0.9,
+ Tppq0=0.09,
+ D=0,
+ Xd=1.84,
+ Xq=1.75,
+ Xpd=0.41,
+ Xpq=0.6,
+ Xppd=0.2,
+ Xl=0.12,
+ S10=0.11,
+ S12=0.39,
+ V_0=1,
+ P_0=40,
+ angle_0=4.046276,
+ Q_0=5.416582,
+ Xppq=0.2,
+ R_a=0,
+ Xpp=0.2,
+ H=4.28) annotation (Placement(transformation(extent={{-110,-20},
+ {-70,20}})));
+ OpenIPSL.Electrical.Controls.PSSE.ES.SEXS sEXS(
+ T_AT_B=0.1,
+ T_B=1,
+ K=100,
+ T_E=0.1,
+ E_MIN=-10,
+ E_MAX=10) annotation (Placement(transformation(extent={{-70,-54},
+ {-108,-26}})));
+ Modelica.Blocks.Sources.Constant const(k=0) annotation (Placement(
+ transformation(
+ extent={{4,-4},{-4,4}},
+ rotation=0,
+ origin={-50,-40})));
+ equation
+ connect(gENROE.PMECH, gENROE.PMECH0) annotation (Line(points={{-114,10},{-114,
+ 10},{-114,26},{-60,26},{-60,10},{-68,10}}, color={0,0,127}));
+ connect(gENROE.EFD0, sEXS.EFD0) annotation (Line(points={{-68,-10},{-60,-10},{-60,-48.5556},{-70,-48.5556}},
+ color={0,0,127}));
+ connect(gENROE.ETERM, sEXS.ECOMP) annotation (Line(points={{-68,-6},{-64,-6},{-64,-38.4444},{-70,-38.4444}},
+ color={0,0,127}));
+ connect(sEXS.VOEL, const.y) annotation (Line(points={{-82.35,-54},{-68,-54},{
+ -68,-40},{-54.4,-40}}, color={0,0,127}));
+ connect(sEXS.VOTHSG, const.y) annotation (Line(points={{-70,-31.4444},{-64,-31.4444},{-64,-40},{-54.4,-40}},
+ color={0,0,127}));
+ connect(sEXS.VUEL, const.y) annotation (Line(points={{-76.65,-54},{-64,-54},{
+ -64,-40},{-54.4,-40}}, color={0,0,127}));
+ connect(sEXS.EFD, gENROE.EFD) annotation (Line(points={{-108.95,-38.4444},{-114,-38.4444},{-114,-10},{-114,-10}},
+ color={0,0,127}));
+ connect(gENROE.p, GEN1.p)
+ annotation (Line(points={{-70,0},{-40,0},{-40,0}}, color={0,0,255}));
+ connect(gENROE.XADIFD, sEXS.XADIFD) annotation (Line(points={{-68.4,-18},{-62,-18},{-62,-60},{-97.55,-60},{-97.55,-53.6889}}, color={0,0,127}));
+ annotation (
+ Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-120,-100},{
+ 120,100}})),
+ Documentation,
+ Icon(coordinateSystem(extent={{-120,-100},{120,100}})),
+ experiment(StopTime=10));
+ end SEXS;
+
+ model SCRX "SMIB model example of GENROU with Excitation System EXST1"
+ extends OpenIPSL.Examples.SMIBpartial;
+ Modelica.Blocks.Sources.Constant const2(k=0)
+ annotation (Placement(transformation(extent={{-110,166},{-94,182}})));
+ OpenIPSL.Electrical.Machines.PSSE.GENROU gENROE(
+ M_b=100,
+ Tpd0=5,
+ Tppd0=0.07,
+ Tpq0=0.9,
+ Tppq0=0.09,
+ D=0,
+ Xd=1.84,
+ Xq=1.75,
+ Xpd=0.41,
+ Xpq=0.6,
+ Xppd=0.2,
+ Xl=0.12,
+ S10=0.11,
+ S12=0.39,
+ V_0=1,
+ P_0=40,
+ angle_0=4.046276,
+ Q_0=5.416582,
+ Xppq=0.2,
+ R_a=0,
+ Xpp=0.2,
+ H=4.28) annotation (Placement(transformation(extent={{-112,-20},
+ {-72,20}})));
+ Modelica.Blocks.Sources.Constant const(k=0) annotation (Placement(
+ transformation(
+ extent={{4,-4},{-4,4}},
+ rotation=0,
+ origin={-52,-36})));
+ OpenIPSL.Electrical.Controls.PSSE.ES.SCRX sCRX(
+ T_AT_B=0.1,
+ T_B=1,
+ K=100,
+ E_MIN=-10,
+ E_MAX=10,
+ C_SWITCH=false,
+ r_cr_fd=0,
+ T_E=0.005) annotation (Placement(transformation(extent={{-74,-58},
+ {-108,-30}})));
+ equation
+ connect(gENROE.PMECH, gENROE.PMECH0) annotation (Line(points={{-116,10},{-116,
+ 10},{-116,26},{-62,26},{-62,10},{-70,10}}, color={0,0,127}));
+ connect(sCRX.EFD, gENROE.EFD) annotation (Line(points={{-108.85,-42.4444},{-116,-42.4444},{-116,-10},{-116,-10}},
+ color={0,0,127}));
+ connect(gENROE.ETERM, sCRX.ECOMP) annotation (Line(points={{-70,-6},{-66,-6},{-66,-42.4444},{-74,-42.4444}},
+ color={0,0,127}));
+ connect(const.y, sCRX.VOTHSG) annotation (Line(points={{-56.4,-36},{-74,-36},{-74,-35.4444}},
+ color={0,0,127}));
+ connect(sCRX.VOEL, sCRX.VOTHSG) annotation (Line(points={{-85.05,-58},{-70,-58},{-70,-36},{-74,-36},{-74,-35.4444}},
+ color={0,0,127}));
+ connect(sCRX.VUEL, sCRX.VOTHSG) annotation (Line(points={{-79.95,-58},{-70,-58},{-70,-36},{-74,-36},{-74,-35.4444}},
+ color={0,0,127}));
+ connect(sCRX.XADIFD, gENROE.XADIFD) annotation (Line(points={{-98.65,-57.6889},{-64,-57.6889},{-64,-18},{-70.4,-18}},
+ color={0,0,127}));
+ connect(sCRX.EFD0, gENROE.EFD0) annotation (Line(points={{-74,-52.5556},{-62,-52.5556},{-62,-10},{-70,-10}},
+ color={0,0,127}));
+ connect(gENROE.p, GEN1.p)
+ annotation (Line(points={{-72,0},{-72,0},{-40,0}}, color={0,0,255}));
+ annotation (
+ Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-120,-100},{
+ 120,100}})),
+ Documentation,
+ Icon(coordinateSystem(extent={{-120,-100},{120,100}})),
+ experiment(StopTime=10));
+ end SCRX;
+
+ model EXAC1 "SMIB system with one load and GENROE model"
+ extends OpenIPSL.Examples.SMIBpartial;
+ OpenIPSL.Electrical.Machines.PSSE.GENROE gENROE(
+ M_b=100,
+ Tpd0=5,
+ Tppd0=0.07,
+ Tpq0=0.9,
+ Tppq0=0.09,
+ H=4.28,
+ D=0,
+ Xd=1.84,
+ Xq=1.75,
+ Xpd=0.41,
+ Xpq=0.6,
+ Xppd=0.2,
+ Xl=0.12,
+ S10=0.11,
+ S12=0.39,
+ V_0=1,
+ P_0=40,
+ angle_0=4.046276,
+ Q_0=5.416582,
+ Xppq=0.2) annotation (Placement(transformation(extent={{-100,-20},
+ {-60,20}})));
+ Modelica.Blocks.Sources.Constant const(k=0)
+ annotation (Placement(transformation(extent={{-20,-56},{-40,-36}})));
+ OpenIPSL.Electrical.Controls.PSSE.ES.EXAC1 eXAC1_1(
+ K_A=400,
+ T_A=0.02,
+ V_RMAX=9,
+ V_RMIN=-5.43,
+ T_E=0.8,
+ K_F=0.03,
+ T_F=1,
+ K_C=0.2,
+ K_D=0.48,
+ K_E=1,
+ E_1=5.25,
+ E_2=7,
+ S_EE_1=0.03,
+ S_EE_2=0.1,
+ T_R=0.004,
+ T_B=0.004,
+ T_C=0.004) annotation (Placement(transformation(extent={{-60,-50},
+ {-98,-24}})));
+ equation
+ connect(gENROE.PMECH, gENROE.PMECH0) annotation (Line(points={{-104,10},{-110,
+ 10},{-110,26},{-48,26},{-48,10},{-58,10}}, color={0,0,127}));
+ connect(eXAC1_1.EFD, gENROE.EFD) annotation (Line(points={{-98.95,-35.5556},{
+ -110,-35.5556},{-110,-10},{-104,-10}}, color={0,0,127}));
+ connect(eXAC1_1.XADIFD, gENROE.XADIFD) annotation (Line(points={{-60,-40.6111},
+ {-56,-40.6111},{-56,-18},{-58.4,-18}}, color={0,0,127}));
+ connect(eXAC1_1.VOTHSG, const.y) annotation (Line(points={{-60,-29.0556},{-48,
+ -29.0556},{-48,-46},{-41,-46}}, color={0,0,127}));
+ connect(eXAC1_1.VUEL, const.y) annotation (Line(points={{-66.65,-50},{-48,-50},
+ {-48,-46},{-41,-46}}, color={0,0,127}));
+ connect(eXAC1_1.VOEL, const.y) annotation (Line(points={{-72.35,-50},{-48,-50},
+ {-48,-46},{-41,-46}}, color={0,0,127}));
+ connect(eXAC1_1.ECOMP, gENROE.ETERM) annotation (Line(points={{-60,-35.5556},
+ {-52,-35.5556},{-52,-6},{-58,-6}},color={0,0,127}));
+ connect(eXAC1_1.EFD0, gENROE.EFD0) annotation (Line(points={{-60,-44.9444},{-54,
+ -44.9444},{-54,-10},{-58,-10}}, color={0,0,127}));
+ connect(gENROE.p, GEN1.p)
+ annotation (Line(points={{-60,0},{-60,0},{-40,0}}, color={0,0,255}));
+ annotation (
+ Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{
+ 100,100}})),
+ Documentation,
+ experiment(StopTime=10));
+ end EXAC1;
+
+ model EXST1 "SMIB system with one load and GENROE model"
+ extends OpenIPSL.Examples.SMIBpartial;
+ OpenIPSL.Electrical.Machines.PSSE.GENROE gENROE(
+ M_b=100,
+ Tpd0=5,
+ Tppd0=0.07,
+ Tpq0=0.9,
+ Tppq0=0.09,
+ H=4.28,
+ D=0,
+ Xd=1.84,
+ Xq=1.75,
+ Xpd=0.41,
+ Xpq=0.6,
+ Xppd=0.2,
+ Xl=0.12,
+ S10=0.11,
+ S12=0.39,
+ V_0=1,
+ P_0=40,
+ angle_0=4.046276,
+ Q_0=5.416582,
+ Xppq=0.2) annotation (Placement(transformation(extent={{-100,-20},
+ {-60,20}})));
+ Modelica.Blocks.Sources.Constant const(k=0)
+ annotation (Placement(transformation(extent={{-20,-56},{-40,-36}})));
+ OpenIPSL.Electrical.Controls.PSSE.ES.EXST1 eXST1_1(
+ V_IMAX=10,
+ V_IMIN=-10,
+ T_R=0.02,
+ T_B=1,
+ K_A=80,
+ T_A=0.05,
+ V_RMAX=8,
+ V_RMIN=-3,
+ K_C=0.2,
+ K_F=0.1,
+ T_F=1,
+ T_C=0.1) annotation (Placement(transformation(extent={{-58,-58},
+ {-100,-28}})));
+ equation
+ connect(gENROE.PMECH, gENROE.PMECH0) annotation (Line(points={{-104,10},{-110,
+ 10},{-110,26},{-48,26},{-48,10},{-58,10}}, color={0,0,127}));
+ connect(eXST1_1.EFD, gENROE.EFD) annotation (Line(points={{-101.05,-41.3333},
+ {-110,-41.3333},{-110,-10},{-104,-10}},color={0,0,127}));
+ connect(eXST1_1.ECOMP, gENROE.ETERM) annotation (Line(points={{-58,-41.3333},
+ {-50,-41.3333},{-50,-6},{-58,-6}},color={0,0,127}));
+ connect(const.y, eXST1_1.VOEL) annotation (Line(points={{-41,-46},{-71.65,-46},
+ {-71.65,-58}}, color={0,0,127}));
+ connect(eXST1_1.VOTHSG, eXST1_1.VOEL) annotation (Line(points={{-58,-33.8333},
+ {-50,-33.8333},{-50,-46},{-71.65,-46},{-71.65,-58}}, color={0,0,127}));
+ connect(eXST1_1.VUEL, eXST1_1.VOEL) annotation (Line(points={{-65.35,-58},{-50,
+ -58},{-50,-46},{-71.65,-46},{-71.65,-58}}, color={0,0,127}));
+ connect(eXST1_1.XADIFD, gENROE.XADIFD) annotation (Line(points={{-58,-47.1667},
+ {-54,-47.1667},{-54,-18},{-58.4,-18}}, color={0,0,127}));
+ connect(eXST1_1.EFD0, gENROE.EFD0) annotation (Line(points={{-58,-52.1667},{-58,
+ -60},{-48,-60},{-48,-10},{-58,-10}}, color={0,0,127}));
+ connect(gENROE.p, GEN1.p)
+ annotation (Line(points={{-60,0},{-60,0},{-40,0}}, color={0,0,255}));
+ annotation (
+ Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{
+ 100,100}})),
+ Documentation,
+ experiment(StopTime=10));
+ end EXST1;
+
+ model ESST1A "SMIB system with one load and GENROE model"
+ extends OpenIPSL.Examples.SMIBpartial;
+ OpenIPSL.Electrical.Machines.PSSE.GENROE gENROE(
+ M_b=100,
+ Tpd0=5,
+ Tppd0=0.07,
+ Tpq0=0.9,
+ Tppq0=0.09,
+ H=4.28,
+ D=0,
+ Xd=1.84,
+ Xq=1.75,
+ Xpd=0.41,
+ Xpq=0.6,
+ Xppd=0.2,
+ Xl=0.12,
+ S10=0.11,
+ S12=0.39,
+ V_0=1,
+ P_0=40,
+ angle_0=4.046276,
+ Q_0=5.416582,
+ Xppq=0.2) annotation (Placement(transformation(extent={{-100,-20},
+ {-60,20}})));
+ Modelica.Blocks.Sources.Constant const(k=0)
+ annotation (Placement(transformation(extent={{-20,-56},{-40,-36}})));
+ OpenIPSL.Electrical.Controls.PSSE.ES.ESST1A eSST1A(
+ V_IMAX=0.3,
+ V_IMIN=-0.3,
+ T_C=2,
+ T_B=10,
+ T_C1=0.08,
+ T_B1=0.083,
+ K_A=300,
+ V_AMAX=7,
+ V_AMIN=-7,
+ V_RMAX=5.2,
+ V_RMIN=-5.2,
+ K_C=0.38,
+ K_F=1,
+ T_F=1,
+ K_LR=1,
+ I_LR=0,
+ T_A=0.1,
+ T_R=0.1) annotation (Placement(transformation(extent={{-58,-60},
+ {-86,-34}})));
+ Modelica.Blocks.Sources.Constant const1(k=-Modelica.Constants.inf)
+ annotation (Placement(transformation(extent={{-20,-90},{-40,-70}})));
+ Modelica.Blocks.Sources.Constant const2(k=Modelica.Constants.inf)
+ annotation (Placement(transformation(extent={{-18,-120},{-38,-100}})));
+ equation
+ connect(gENROE.PMECH, gENROE.PMECH0) annotation (Line(points={{-104,10},{-110,
+ 10},{-110,26},{-48,26},{-48,10},{-58,10}}, color={0,0,127}));
+ connect(const1.y, eSST1A.VUEL2) annotation (Line(points={{-41,-80},{-71.307,-80},
+ {-71.307,-59.9928}}, color={0,0,127}));
+ connect(eSST1A.VUEL3, eSST1A.VUEL2) annotation (Line(points={{-75.4895,-59.9964},
+ {-75.4895,-80},{-71.307,-80},{-71.307,-59.9928}}, color={0,0,127}));
+ connect(const2.y, eSST1A.VOEL) annotation (Line(points={{-39,-110},{-67.1,-110},
+ {-67.1,-60}}, color={0,0,127}));
+ connect(eSST1A.EFD, gENROE.EFD) annotation (Line(points={{-86.7,-45.5556},{-112,
+ -45.5556},{-112,-10},{-104,-10}}, color={0,0,127}));
+ connect(gENROE.ETERM, eSST1A.ECOMP) annotation (Line(points={{-58,-6},{-52,-6},
+ {-52,-45.5556},{-58,-45.5556}}, color={0,0,127}));
+ connect(eSST1A.VT, eSST1A.ECOMP) annotation (Line(points={{-58.0175,-41.9625},
+ {-52,-41.9625},{-52,-45.5556},{-58,-45.5556}}, color={0,0,127}));
+ connect(eSST1A.EFD0, gENROE.EFD0) annotation (Line(points={{-58,-54.9444},{-50,
+ -54.9444},{-50,-10},{-58,-10}}, color={0,0,127}));
+ connect(eSST1A.XADIFD, gENROE.XADIFD) annotation (Line(points={{-58,-50.6111},
+ {-48,-50.6111},{-48,-18},{-58.4,-18}}, color={0,0,127}));
+ connect(gENROE.p, GEN1.p)
+ annotation (Line(points={{-60,0},{-60,0},{-40,0}}, color={0,0,255}));
+ connect(eSST1A.VOTHSG2, const.y) annotation (Line(points={{-58,-36.1667},{-52,
+ -36.1667},{-52,-36},{-44,-36},{-44,-46},{-41,-46}}, color={0,0,127}));
+ connect(eSST1A.VOTHSG, const.y) annotation (Line(points={{-58,-39.0556},{-56,
+ -39.0556},{-56,-36},{-52,-36},{-44,-36},{-44,-46},{-41,-46}}, color={
+ 0,0,127}));
+ connect(eSST1A.VUEL, const.y) annotation (Line(points={{-62.9,-60},{-62,-60},
+ {-62,-64},{-44,-64},{-44,-46},{-41,-46}},color={0,0,127}));
+ annotation (
+ Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{
+ 100,100}})),
+ Documentation,
+ experiment(StopTime=10));
+ end ESST1A;
+
+ model IEEEX1 "SMIB system with one load and GENROE model"
+ extends OpenIPSL.Examples.SMIBpartial;
+ OpenIPSL.Electrical.Machines.PSSE.GENROE gENROE(
+ M_b=100,
+ Tpd0=5,
+ Tppd0=0.07,
+ Tpq0=0.9,
+ Tppq0=0.09,
+ H=4.28,
+ D=0,
+ Xd=1.84,
+ Xq=1.75,
+ Xpd=0.41,
+ Xpq=0.6,
+ Xppd=0.2,
+ Xl=0.12,
+ S10=0.11,
+ S12=0.39,
+ V_0=1,
+ P_0=40,
+ angle_0=4.046276,
+ Q_0=5.416582,
+ Xppq=0.2) annotation (Placement(transformation(extent={{-100,-20},
+ {-60,20}})));
+ Modelica.Blocks.Sources.Constant const(k=0)
+ annotation (Placement(transformation(extent={{-20,-52},{-40,-32}})));
+ OpenIPSL.Electrical.Controls.PSSE.ES.IEEEX1 iEEEX1_1(
+ T_R=0.04,
+ K_A=75,
+ T_A=0.05,
+ T_B=1,
+ T_C=1,
+ V_RMAX=3.9,
+ V_RMIN=-3.9,
+ T_E=0.5,
+ K_F=0.07,
+ T_F1=1,
+ E_1=2.47,
+ S_EE_1=0.035,
+ E_2=4.5,
+ S_EE_2=0.47,
+ K_E=0) annotation (Placement(transformation(extent={{-68,-60},{
+ -92,-38}})));
+ equation
+ connect(gENROE.PMECH, gENROE.PMECH0) annotation (Line(points={{-104,10},{-110,
+ 10},{-110,26},{-48,26},{-48,10},{-58,10}}, color={0,0,127}));
+ connect(iEEEX1_1.EFD, gENROE.EFD) annotation (Line(points={{-92.6,-47.7778},{-102,-47.7778},{-102,-48},{-110,-48},{-110,-10},{-104,-10}},
+ color={0,
+ 0,127}));
+ connect(iEEEX1_1.VOTHSG, const.y) annotation (Line(points={{-68,-42.2778},{-48.1116,-42.2778},{-48.1116,-42},{-41,-42}},
+ color={0,0,127}));
+ connect(iEEEX1_1.EFD0, gENROE.EFD0) annotation (Line(points={{-68,-55.7222},{-54,-55.7222},{-54,-10},{-58,-10}},
+ color={0,0,127}));
+ connect(iEEEX1_1.ECOMP, gENROE.ETERM) annotation (Line(points={{-68,-47.7778},{-52,-47.7778},{-52,-6},{-58,-6}},
+ color={0,0,127}));
+ connect(iEEEX1_1.VOEL, const.y) annotation (Line(points={{-75.8,-60},{-48,-60},
+ {-48,-42},{-41,-42}}, color={0,0,127}));
+ connect(iEEEX1_1.VUEL, const.y) annotation (Line(points={{-72.2,-60},{-48,-60},
+ {-48,-42},{-41,-42}}, color={0,0,127}));
+ connect(gENROE.p, GEN1.p)
+ annotation (Line(points={{-60,0},{-60,0},{-40,0}}, color={0,0,255}));
+ connect(gENROE.XADIFD, iEEEX1_1.XADIFD) annotation (Line(points={{-58.4,-18},{-56,-18},{-56,-66},{-85.4,-66},{-85.4,-59.7556}}, color={0,0,127}));
+ annotation (
+ Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{
+ 100,100}})),
+ Documentation,
+ experiment(StopTime=10));
+ end IEEEX1;
+
+ model ESAC1A "SMIB system with one load and GENROE model"
+ extends OpenIPSL.Examples.SMIBpartial;
+ OpenIPSL.Electrical.Machines.PSSE.GENROE gENROE(
+ M_b=100,
+ Tpd0=5,
+ Tppd0=0.07,
+ Tpq0=0.9,
+ Tppq0=0.09,
+ H=4.28,
+ D=0,
+ Xd=1.84,
+ Xq=1.75,
+ Xpd=0.41,
+ Xpq=0.6,
+ Xppd=0.2,
+ Xl=0.12,
+ S10=0.11,
+ S12=0.39,
+ V_0=1,
+ P_0=40,
+ angle_0=4.046276,
+ Q_0=5.416582,
+ Xppq=0.2) annotation (Placement(transformation(extent={{-100,-20},
+ {-60,20}})));
+ Modelica.Blocks.Sources.Constant const(k=0)
+ annotation (Placement(transformation(extent={{-28,-58},{-38,-48}})));
+ Modelica.Blocks.Sources.Constant const1(k=-Modelica.Constants.inf)
+ annotation (Placement(transformation(extent={{-28,-80},{-38,-70}})));
+ Modelica.Blocks.Sources.Constant const2(k=Modelica.Constants.inf)
+ annotation (Placement(transformation(extent={{-28,-100},{-38,-90}})));
+ OpenIPSL.Electrical.Controls.PSSE.ES.ESAC1A eSAC1A(
+ T_R=0.04,
+ T_B=2,
+ T_C=10,
+ K_A=400,
+ T_A=0.02,
+ V_AMAX=9,
+ V_AMIN=-5.34,
+ T_E=0.8,
+ K_F=0.03,
+ T_F=1,
+ K_C=0.2,
+ K_D=0.48,
+ K_E=1,
+ E_1=5.25,
+ E_2=7,
+ S_EE_1=0.03,
+ S_EE_2=0.1,
+ V_RMAX=3,
+ V_RMIN=-3) annotation (Placement(transformation(extent={{-52,-58},
+ {-106,-38}})));
+ inner OpenIPSL.Electrical.SystemBase SysData annotation (
+ Placement(transformation(extent={{-100,80},{-40,100}})));
+ equation
+ connect(gENROE.PMECH, gENROE.PMECH0) annotation (Line(points={{-104,10},{-110,
+ 10},{-110,26},{-48,26},{-48,10},{-58,10}}, color={0,0,127}));
+ connect(eSAC1A.VOTHSG, const.y) annotation (Line(points={{-52,-41.8889},{-52,
+ -53},{-38.5,-53}}, color={0,0,127}));
+ connect(gENROE.ETERM, eSAC1A.ECOMP) annotation (Line(points={{-58,-6},{-32,-6},
+ {-32,-46.8889},{-52,-46.8889}}, color={0,0,127}));
+ connect(eSAC1A.EFD0, gENROE.EFD0) annotation (Line(points={{-52,-54.1111},{-52,
+ -62},{-46,-62},{-46,-10},{-58,-10}}, color={0,0,127}));
+ connect(gENROE.XADIFD, eSAC1A.XADIFD) annotation (Line(points={{-58.4,-18},{-44,
+ -18},{-44,-64},{-52,-64},{-52,-50.7778}}, color={0,0,127}));
+ connect(eSAC1A.EFD, gENROE.EFD) annotation (Line(points={{-107.35,-46.8889},{
+ -110,-46.8889},{-110,-10},{-104,-10}}, color={0,0,127}));
+ connect(const1.y, eSAC1A.VUEL) annotation (Line(points={{-38.5,-75},{-61.45,-75},
+ {-61.45,-58}}, color={0,0,127}));
+ connect(const2.y, eSAC1A.VOEL) annotation (Line(points={{-38.5,-95},{-38.5,-95},
+ {-69.55,-95},{-69.55,-58}}, color={0,0,127}));
+ connect(gENROE.p, GEN1.p)
+ annotation (Line(points={{-60,0},{-60,0},{-40,0}}, color={0,0,255}));
+ annotation (
+ Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{
+ 100,100}})),
+ Documentation,
+ experiment(StopTime=10));
+ end ESAC1A;
+
+ model ESDC1A "SMIB system with one load and GENROE model"
+ extends OpenIPSL.Examples.SMIBpartial;
+ OpenIPSL.Electrical.Machines.PSSE.GENROE gENROE(
+ M_b=100,
+ Tpd0=5,
+ Tppd0=0.07,
+ Tpq0=0.9,
+ Tppq0=0.09,
+ H=4.28,
+ D=0,
+ Xd=1.84,
+ Xq=1.75,
+ Xpd=0.41,
+ Xpq=0.6,
+ Xppd=0.2,
+ Xl=0.12,
+ S10=0.11,
+ S12=0.39,
+ V_0=1,
+ P_0=40,
+ angle_0=4.046276,
+ Q_0=5.416582,
+ Xppq=0.2) annotation (Placement(transformation(extent={{-100,-20},
+ {-60,20}})));
+ Modelica.Blocks.Sources.Constant const(k=0)
+ annotation (Placement(transformation(extent={{-28,-46},{-38,-36}})));
+ Modelica.Blocks.Sources.Constant const1(k=-Modelica.Constants.inf)
+ annotation (Placement(transformation(extent={{-28,-60},{-38,-50}})));
+ OpenIPSL.Electrical.Controls.PSSE.ES.ESDC1A eSDC1A(
+ T_R=0.04,
+ T_F1=1,
+ E_1=2.47,
+ S_EE_1=0.035,
+ E_2=4.5,
+ S_EE_2=0.47,
+ K_A=75,
+ T_A=0.05,
+ T_B=1,
+ T_C=1,
+ V_RMIN=-3.9,
+ K_E=0,
+ T_E=0.5,
+ K_F=0.07,
+ V_RMAX=0) annotation (Placement(transformation(extent={{-60,-50},
+ {-100,-36}})));
+ equation
+ connect(gENROE.PMECH, gENROE.PMECH0) annotation (Line(points={{-104,10},{-110,
+ 10},{-110,26},{-48,26},{-48,10},{-58,10}}, color={0,0,127}));
+ connect(eSDC1A.EFD, gENROE.EFD) annotation (Line(points={{-101,-42.2222},{-106,-42.2222},{-106,-10},{-104,-10}},
+ color={0,0,127}));
+ connect(eSDC1A.EFD0, gENROE.EFD0) annotation (Line(points={{-60,-47.2778},{-60,-58},{-48,-58},{-48,-10},{-58,-10}},
+ color={0,0,127}));
+ connect(gENROE.ETERM, eSDC1A.ECOMP) annotation (Line(points={{-58,-6},{-54,-6},{-54,-38},{-58,-38},{-58,-42.2222},{-60,-42.2222}},
+ color={0,0,127}));
+ connect(eSDC1A.VOTHSG, const.y) annotation (Line(points={{-60,-38.7222},{-49.5556,-38.7222},{-49.5556,-41},{-38.5,-41}},
+ color={0,0,127}));
+ connect(eSDC1A.VOEL, const.y) annotation (Line(points={{-73,-50},{-42,-50},{-42,
+ -41},{-38.5,-41}}, color={0,0,127}));
+ connect(eSDC1A.VUEL, const1.y) annotation (Line(points={{-67,-50},{-54,-50},{
+ -54,-55},{-38.5,-55}}, color={0,0,127}));
+ connect(gENROE.p, GEN1.p)
+ annotation (Line(points={{-60,0},{-60,0},{-40,0}}, color={0,0,255}));
+ connect(gENROE.XADIFD, eSDC1A.XADIFD) annotation (Line(points={{-58.4,-18},{-56,-18},{-56,-62},{-89,-62},{-89,-49.8444}}, color={0,0,127}));
+ annotation (
+ Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{
+ 100,100}})),
+ Documentation,
+ experiment(StopTime=10));
+ end ESDC1A;
+
+ model ESDC2A "SMIB system with one load and GENROE model"
+ extends OpenIPSL.Examples.SMIBpartial;
+ OpenIPSL.Electrical.Machines.PSSE.GENROE gENROE(
+ M_b=100,
+ Tpd0=5,
+ Tppd0=0.07,
+ Tpq0=0.9,
+ Tppq0=0.09,
+ H=4.28,
+ D=0,
+ Xd=1.84,
+ Xq=1.75,
+ Xpd=0.41,
+ Xpq=0.6,
+ Xppd=0.2,
+ Xl=0.12,
+ S10=0.11,
+ S12=0.39,
+ V_0=1,
+ P_0=40,
+ angle_0=4.046276,
+ Q_0=5.416582,
+ Xppq=0.2) annotation (Placement(transformation(extent={{-104,-20},
+ {-64,20}})));
+ Modelica.Blocks.Sources.Constant const(k=0)
+ annotation (Placement(transformation(extent={{-32,-46},{-42,-36}})));
+ Modelica.Blocks.Sources.Constant const1(k=-Modelica.Constants.inf)
+ annotation (Placement(transformation(extent={{-32,-60},{-42,-50}})));
+ OpenIPSL.Electrical.Controls.PSSE.ES.ESDC2A eSDC2A(
+ T_R=0.04,
+ T_F1=1,
+ E_1=2.47,
+ S_EE_1=0.035,
+ E_2=4.5,
+ S_EE_2=0.47,
+ K_A=75,
+ T_A=0.05,
+ T_B=1,
+ T_C=1,
+ V_RMIN=-3.9,
+ T_E=0.5,
+ K_F=0.07,
+ V_RMAX=0,
+ K_E=0) annotation (Placement(transformation(extent={{-62,-50},{
+ -104,-32}})));
+ equation
+ connect(gENROE.PMECH, gENROE.PMECH0) annotation (Line(points={{-108,10},{-114,
+ 10},{-114,26},{-52,26},{-52,10},{-62,10}}, color={0,0,127}));
+ connect(eSDC2A.EFD, gENROE.EFD) annotation (Line(points={{-105.05,-40},{-112,
+ -40},{-112,-10},{-108,-10}}, color={0,0,127}));
+ connect(gENROE.ETERM, eSDC2A.ECOMP) annotation (Line(points={{-62,-6},{-56,-6},
+ {-56,-40},{-62,-40}}, color={0,0,127}));
+ connect(eSDC2A.VOTHSG, const.y) annotation (Line(points={{-62,-35.5},{-46,-35.5},
+ {-46,-41},{-42.5,-41}}, color={0,0,127}));
+ connect(eSDC2A.VT, eSDC2A.ECOMP) annotation (Line(points={{-62,-43.5},{-62,-56},
+ {-56,-56},{-56,-40},{-62,-40}}, color={0,0,127}));
+ connect(eSDC2A.EFD0, gENROE.EFD0) annotation (Line(points={{-62,-46.5},{-62,-54},
+ {-58,-54},{-58,-10},{-62,-10}}, color={0,0,127}));
+ connect(eSDC2A.VOEL, const.y) annotation (Line(points={{-75.65,-50},{-46,-50},
+ {-46,-41},{-42.5,-41}}, color={0,0,127}));
+ connect(const1.y, eSDC2A.VUEL) annotation (Line(points={{-42.5,-55},{-50,-55},
+ {-50,-50},{-69.35,-50}}, color={0,0,127}));
+ connect(gENROE.p, GEN1.p)
+ annotation (Line(points={{-64,0},{-64,0},{-40,0}}, color={0,0,255}));
+ connect(gENROE.XADIFD, eSDC2A.XADIFD) annotation (Line(points={{-62.4,-18},{-54,-18},{-54,-60},{-92.45,-60},{-92.45,-49.8}}, color={0,0,127}));
+ annotation (
+ Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{
+ 100,100}})),
+ Documentation,
+ experiment(StopTime=10));
+ end ESDC2A;
+
+ model IEEET2 "SMIB system with one load and GENROE model"
+ extends OpenIPSL.Examples.SMIBpartial;
+ OpenIPSL.Electrical.Machines.PSSE.GENROE gENROE(
+ M_b=100,
+ Tpd0=5,
+ Tppd0=0.07,
+ Tpq0=0.9,
+ Tppq0=0.09,
+ H=4.28,
+ D=0,
+ Xd=1.84,
+ Xq=1.75,
+ Xpd=0.41,
+ Xpq=0.6,
+ Xppd=0.2,
+ Xl=0.12,
+ S10=0.11,
+ S12=0.39,
+ V_0=1,
+ P_0=40,
+ angle_0=4.046276,
+ Q_0=5.416582,
+ Xppq=0.2) annotation (Placement(transformation(extent={{-108,-20},
+ {-68,20}})));
+ Modelica.Blocks.Sources.Constant const(k=0)
+ annotation (Placement(transformation(extent={{-28,-50},{-48,-30}})));
+ OpenIPSL.Electrical.Controls.PSSE.ES.IEEET2 iEEET2_1(
+ T_R=0.02,
+ K_A=200,
+ T_A=0.001,
+ T_E=0.55,
+ K_F=0.06,
+ T_F1=0.3,
+ T_F2=0.6,
+ E_1=2.85,
+ S_EE_1=0.3,
+ E_2=3.8,
+ S_EE_2=0.6,
+ V_RMAX=2,
+ V_RMIN=-2,
+ K_E=0.1) annotation (Placement(transformation(extent={{-74,-58},
+ {-106,-32}})));
+ inner OpenIPSL.Electrical.SystemBase SysData annotation (
+ Placement(transformation(extent={{-100,80},{-40,100}})));
+ equation
+ connect(gENROE.PMECH, gENROE.PMECH0) annotation (Line(points={{-112,10},{-118,
+ 10},{-118,26},{-56,26},{-56,10},{-66,10}}, color={0,0,127}));
+ connect(iEEET2_1.EFD, gENROE.EFD) annotation (Line(points={{-106.8,-43.5556},{-118,-43.5556},{-118,-10},{-112,-10}},
+ color={0,0,127}));
+ connect(iEEET2_1.ECOMP, gENROE.ETERM) annotation (Line(points={{-74,-43.5556},{-58,-43.5556},{-58,-6},{-66,-6}},
+ color={0,0,127}));
+ connect(iEEET2_1.EFD0, gENROE.EFD0) annotation (Line(points={{-74,-52.9444},{-56,-52.9444},{-56,-10},{-66,-10}},
+ color={0,0,127}));
+ connect(iEEET2_1.VOTHSG, const.y) annotation (Line(points={{-74,-37.0556},{-55.3333,-37.0556},{-55.3333,-40},{-49,-40}},
+ color={0,0,127}));
+ connect(iEEET2_1.VOEL, const.y) annotation (Line(points={{-84.4,-58},{-50,-58},
+ {-50,-40},{-49,-40}}, color={0,0,127}));
+ connect(iEEET2_1.VUEL, const.y) annotation (Line(points={{-79.6,-58},{-50,-58},
+ {-50,-40},{-49,-40}}, color={0,0,127}));
+ connect(gENROE.p, GEN1.p)
+ annotation (Line(points={{-68,0},{-68,0},{-40,0}}, color={0,0,255}));
+ connect(gENROE.XADIFD, iEEET2_1.XADIFD) annotation (Line(points={{-66.4,-18},{-62,-18},{-62,-64},{-97.2,-64},{-97.2,-57.7111}}, color={0,0,127}));
+ annotation (
+ Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{
+ 100,100}})),
+ Documentation,
+ experiment(StopTime=10));
+ end IEEET2;
+
+ model ST5B "SMIB system with one load and GENROE model"
+ extends OpenIPSL.Examples.SMIBpartial;
+ OpenIPSL.Electrical.Controls.PSSE.ES.ST5B sT5B(
+ T_R=0,
+ T_C1=0.8,
+ T_B1=6,
+ T_C2=0.08,
+ T_B2=0.01,
+ T_UC1=2,
+ T_UB1=10,
+ T_UC2=0.1,
+ T_UB2=0.05,
+ T_OC1=0.1,
+ T_OB1=2,
+ T_OC2=0.08,
+ T_OB2=0.08,
+ K_C=0.004,
+ T_1=0.001,
+ K_R=200,
+ V_RMAX=5,
+ V_RMIN=-4) annotation (Placement(transformation(extent={{-64,-76},
+ {-124,-44}})));
+ Modelica.Blocks.Sources.Constant PSS_off(k=0)
+ annotation (Placement(transformation(extent={{-140,-102},{-128,-90}})));
+ Modelica.Blocks.Sources.Constant VOEL(k=100)
+ annotation (Placement(transformation(extent={{-140,-122},{-128,-110}})));
+ Modelica.Blocks.Sources.Constant VUEL(k=-100)
+ annotation (Placement(transformation(extent={{-140,-142},{-128,-130}})));
+ OpenIPSL.Electrical.Machines.PSSE.GENROE gENROE(
+ M_b=100,
+ Tpd0=5,
+ Tppd0=0.07,
+ Tpq0=0.9,
+ Tppq0=0.09,
+ H=4.28,
+ D=0,
+ Xd=1.84,
+ Xq=1.75,
+ Xpd=0.41,
+ Xpq=0.6,
+ Xppd=0.2,
+ Xl=0.12,
+ S10=0.11,
+ S12=0.39,
+ V_0=1,
+ P_0=40,
+ angle_0=4.046276,
+ Q_0=5.416582,
+ Xppq=0.2) annotation (Placement(transformation(extent={{-112,-20},
+ {-72,20}})));
+ equation
+ connect(PSS_off.y, sT5B.VOTHSG) annotation (Line(points={{-127.4,-96},{-64,-96},
+ {-64,-50.2222}}, color={0,0,127}));
+ connect(VOEL.y, sT5B.VOEL) annotation (Line(points={{-127.4,-116},{-83.5,-116},
+ {-83.5,-76}}, color={0,0,127}));
+ connect(VUEL.y, sT5B.VUEL) annotation (Line(points={{-127.4,-136},{-74.5,-136},
+ {-74.5,-76}}, color={0,0,127}));
+ connect(gENROE.ETERM, sT5B.ECOMP) annotation (Line(points={{-70,-6},{-50,-6},
+ {-50,-58.2222},{-64,-58.2222}},color={0,0,127}));
+ connect(sT5B.XADIFD, gENROE.XADIFD) annotation (Line(points={{-64,-63.5556},{
+ -60,-63.5556},{-60,-18},{-70.4,-18}}, color={0,0,127}));
+ connect(sT5B.EFD0, gENROE.EFD0) annotation (Line(points={{-64,-69.7778},{-56,
+ -69.7778},{-56,-10},{-70,-10}}, color={0,0,127}));
+ connect(sT5B.EFD, gENROE.EFD) annotation (Line(points={{-125.5,-58.2222},{-128,
+ -58.2222},{-128,-10},{-116,-10}}, color={0,0,127}));
+ connect(gENROE.PMECH, gENROE.PMECH0) annotation (Line(points={{-116,10},{-128,
+ 10},{-128,30},{-60,30},{-60,10},{-70,10}}, color={0,0,127}));
+ connect(gENROE.p, GEN1.p)
+ annotation (Line(points={{-72,0},{-72,0},{-40,0}}, color={0,0,255}));
+ annotation (
+ Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{
+ 100,100}})),
+ Documentation,
+ experiment(StopTime=10));
+ end ST5B;
+
+ model IEEET1 "SMIB system with one load and GENROE model"
+ import iPSL = IslandedOperationControl.OpenIPSL;
+ extends iPSL.Examples.SMIBpartial;
+ iPSL.Electrical.Machines.PSSE.GENROE gENROE(
+ M_b=100,
+ Tpd0=5,
+ Tppd0=0.07,
+ Tpq0=0.9,
+ Tppq0=0.09,
+ H=4.28,
+ D=0,
+ Xd=1.84,
+ Xq=1.75,
+ Xpd=0.41,
+ Xpq=0.6,
+ Xppd=0.2,
+ Xl=0.12,
+ S10=0.11,
+ S12=0.39,
+ V_0=1,
+ P_0=40,
+ angle_0=4.046276,
+ Q_0=5.416582,
+ Xppq=0.2)
+ annotation (Placement(transformation(extent={{-108,-20},{-68,20}})));
+ Modelica.Blocks.Sources.Constant const(k=0)
+ annotation (Placement(transformation(extent={{-28,-50},{-48,-30}})));
+ iPSL.Electrical.Controls.PSSE.ES.IEEET1 iEEET2_1(
+ T_R=0.02,
+ K_A=200,
+ T_A=0.001,
+ T_E=0.55,
+ K_F=0.06,
+ E_1=2.85,
+ S_EE_1=0.3,
+ E_2=3.8,
+ S_EE_2=0.6,
+ V_RMAX=2,
+ V_RMIN=-2,
+ K_E=0.1)
+ annotation (Placement(transformation(extent={{-74,-58},{-106,-32}})));
+ inner iPSL.Electrical.SystemBase SysData
+ annotation (Placement(transformation(extent={{-100,80},{-40,100}})));
+ equation
+ connect(gENROE.PMECH, gENROE.PMECH0) annotation (Line(points={{-112,10},{-118,
+ 10},{-118,26},{-56,26},{-56,10},{-66,10}}, color={0,0,127}));
+ connect(iEEET2_1.EFD, gENROE.EFD) annotation (Line(points={{-106.8,-43.5556},{-118,-43.5556},{-118,-10},{-112,-10}},
+ color={0,0,127}));
+ connect(iEEET2_1.ECOMP, gENROE.ETERM) annotation (Line(points={{-74,-43.5556},{-58,-43.5556},{-58,-6},{-66,-6}},
+ color={0,0,127}));
+ connect(iEEET2_1.EFD0, gENROE.EFD0) annotation (Line(points={{-74,-52.9444},{-56,-52.9444},{-56,-10},{-66,-10}},
+ color={0,0,127}));
+ connect(iEEET2_1.VOTHSG, const.y) annotation (Line(points={{-74,-37.0556},{-55.3333,-37.0556},{-55.3333,-40},{-49,-40}},
+ color={0,0,127}));
+ connect(iEEET2_1.VOEL, const.y) annotation (Line(points={{-84.4,-58},{-50,-58},
+ {-50,-40},{-49,-40}}, color={0,0,127}));
+ connect(iEEET2_1.VUEL, const.y) annotation (Line(points={{-79.6,-58},{-50,-58},
+ {-50,-40},{-49,-40}}, color={0,0,127}));
+ connect(gENROE.p, GEN1.p)
+ annotation (Line(points={{-68,0},{-68,0},{-40,0}}, color={0,0,255}));
+ connect(gENROE.XADIFD, iEEET2_1.XADIFD) annotation (Line(points={{-66.4,-18},{-62,-18},{-62,-66},{-97.2,-66},{-97.2,-57.7111}}, color={0,0,127}));
+ annotation (
+ Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{
+ 100,100}})),
+ Documentation,
+ experiment(StopTime=10));
+ end IEEET1;
+
+ model EXNI "SMIB system with one load and GENROE model"
+ extends OpenIPSL.Examples.SMIBpartial;
+ OpenIPSL.Electrical.Machines.PSSE.GENROE gENROE(
+ M_b=100,
+ Tpd0=5,
+ Tppd0=0.07,
+ Tpq0=0.9,
+ Tppq0=0.09,
+ H=4.28,
+ D=0,
+ Xd=1.84,
+ Xq=1.75,
+ Xpd=0.41,
+ Xpq=0.6,
+ Xppd=0.2,
+ Xl=0.12,
+ S10=0.11,
+ S12=0.39,
+ V_0=1,
+ P_0=40,
+ angle_0=4.046276,
+ Q_0=5.416582,
+ Xppq=0.2) annotation (Placement(transformation(extent={{-100,-20},
+ {-60,20}})));
+ Modelica.Blocks.Sources.Constant const(k=0)
+ annotation (Placement(transformation(extent={{-20,-56},{-40,-36}})));
+ Electrical.Controls.PSSE.ES.EXNI eXNI
+ annotation (Placement(transformation(extent={{-64,-54},{-94,-26}})));
+ equation
+ connect(gENROE.PMECH, gENROE.PMECH0) annotation (Line(points={{-104,10},{-110,
+ 10},{-110,26},{-48,26},{-48,10},{-58,10}}, color={0,0,127}));
+ connect(gENROE.p, GEN1.p)
+ annotation (Line(points={{-60,0},{-60,0},{-40,0}}, color={0,0,255}));
+ connect(eXNI.VOTHSG, const.y) annotation (Line(points={{-64,-31.4444},{-60,-31.4444},
+ {-60,-32},{-41,-32},{-41,-46}}, color={0,0,127}));
+ connect(eXNI.ECOMP, gENROE.ETERM) annotation (Line(points={{-64,-38.4444},{-60,
+ -38.4444},{-60,-38},{-52,-38},{-52,-6},{-58,-6}}, color={0,0,127}));
+ connect(eXNI.XADIFD, gENROE.XADIFD) annotation (Line(points={{-64,-43.8889},{
+ -60,-43.8889},{-60,-44},{-60,-18},{-58.4,-18}}, color={0,0,127}));
+ connect(eXNI.EFD0, gENROE.EFD0) annotation (Line(points={{-64,-48.5556},{-60,
+ -48.5556},{-60,-48},{-56,-48},{-56,-10},{-58,-10}}, color={0,0,127}));
+ connect(eXNI.VUEL, const.y) annotation (Line(points={{-69.25,-54},{-70,-54},{
+ -70,-60},{-46,-60},{-46,-46},{-41,-46}}, color={0,0,127}));
+ connect(eXNI.VOEL, const.y) annotation (Line(points={{-73.75,-54},{-74,-54},{
+ -74,-60},{-46,-60},{-46,-46},{-41,-46}}, color={0,0,127}));
+ connect(eXNI.EFD, gENROE.EFD) annotation (Line(points={{-94.75,-38.4444},{-110,
+ -38.4444},{-110,-10},{-104,-10}}, color={0,0,127}));
+ annotation (
+ Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{
+ 100,100}})),
+ Documentation,
+ experiment(StopTime=10));
+ end EXNI;
+ annotation (Documentation);
+ end ES;
+
+ package TG
+ extends Modelica.Icons.ExamplesPackage;
+
+ model IEESGO
+ "Simple Machine Infinite Bus with Machine, Governor and Excitation system"
+ extends OpenIPSL.Examples.SMIBpartial;
+ OpenIPSL.Electrical.Machines.PSSE.GENSAL generator(
+ Xppd=0.2,
+ Xppq=0.2,
+ Xl=0.12,
+ V_0=1,
+ angle_0=4.05,
+ P_0=39.99995,
+ Q_0=5.416571,
+ M_b=100,
+ Tpd0=6.7000,
+ Tppd0=0.028,
+ Tppq0=0.0358,
+ H=4.4100,
+ D=0,
+ Xd=1.2200,
+ Xq=0.76000,
+ Xpd=0.29700,
+ S10=0.18600,
+ S12=0.802) annotation (Placement(transformation(extent={{-90,-10},
+ {-70,10}})));
+ OpenIPSL.Electrical.Controls.PSSE.ES.SCRX SCRX(
+ T_B=10,
+ K=100,
+ T_E=0.05,
+ E_MIN=0,
+ E_MAX=5,
+ r_cr_fd=0,
+ C_SWITCH=false,
+ T_AT_B=0.1) annotation (Placement(transformation(
+ extent={{-18,-16},{18,16}},
+ rotation=180,
+ origin={-80,-34})));
+ Modelica.Blocks.Sources.Constant const(k=0) annotation (Placement(
+ transformation(
+ extent={{-2,-2},{2,2}},
+ rotation=180,
+ origin={-50,-34})));
+ OpenIPSL.Electrical.Controls.PSSE.TG.IEESGO iEESGO(
+ T_1=0.01,
+ T_2=0.0,
+ T_3=0.15,
+ T_4=0.3,
+ T_5=8.0,
+ T_6=0.4,
+ K_2=0.7,
+ K_3=0.43,
+ P_MAX=1.0,
+ P_MIN=0.0,
+ K_1=0.1) annotation (Placement(transformation(extent={{-64,24},
+ {-96,38}})));
+ equation
+ connect(SCRX.VUEL, const.y) annotation (Line(
+ points={{-68.3,-18},{-53.67,-18},{-53.67,-34},{-52.2,-34}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(SCRX.VOEL, const.y) annotation (Line(
+ points={{-73.7,-18},{-53.67,-18},{-53.67,-34},{-52.2,-34}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(SCRX.VOTHSG, const.y) annotation (Line(
+ points={{-62,-43.7778},{-53.67,-43.7778},{-53.67,-34},{-52.2,-34}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(generator.EFD0, SCRX.EFD0) annotation (Line(
+ points={{-69,-5},{-69,-24.2222},{-62,-24.2222}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(SCRX.EFD, generator.EFD) annotation (Line(points={{-98.9,-35.7778},{-104,
+ -35.7778},{-104,-5},{-92,-5}}, color={0,0,127}));
+ connect(generator.ETERM, SCRX.ECOMP) annotation (Line(points={{-69,-3},{-44,-3},
+ {-44,-35.7778},{-62,-35.7778}}, color={0,0,127}));
+ connect(generator.XADIFD, SCRX.XADIFD) annotation (Line(points={{-69.2,-9},{-52,
+ -9},{-52,-29.5556},{-62,-29.5556}}, color={0,0,127}));
+ connect(iEESGO.SPEED, generator.SPEED) annotation (Line(points={{-64.8,35},{-62,
+ 35},{-62,7},{-69,7}}, color={0,0,127}));
+ connect(iEESGO.PMECH, generator.PMECH) annotation (Line(points={{-97,32},{-104,
+ 32},{-104,5},{-92,5}}, color={0,0,127}));
+ connect(iEESGO.PMECH0, generator.PMECH0) annotation (Line(points={{-64.8,28},
+ {-62,28},{-62,5},{-69,5}},color={0,0,127}));
+ connect(generator.p, GEN1.p)
+ annotation (Line(points={{-70,0},{-70,0},{-40,0}}, color={0,0,255}));
+ annotation (
+ Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,-120},{
+ 100,80}})),
+ Icon(coordinateSystem(extent={{-100,-120},{100,80}})),
+ Documentation,
+ experiment(StopTime=10));
+ end IEESGO;
+
+ model HYGOV
+ "Simple Machine Infinite Bus with Machine, Governor and Excitation system"
+ extends OpenIPSL.Examples.SMIBpartial;
+ OpenIPSL.Electrical.Machines.PSSE.GENSAL generator(
+ Xppd=0.2,
+ Xppq=0.2,
+ Xl=0.12,
+ V_0=1,
+ angle_0=4.05,
+ P_0=39.99995,
+ Q_0=5.416571,
+ M_b=100,
+ Tpd0=6.7000,
+ Tppd0=0.028,
+ Tppq0=0.0358,
+ H=4.4100,
+ D=0,
+ Xd=1.2200,
+ Xq=0.76000,
+ Xpd=0.29700,
+ S10=0.18600,
+ S12=0.802) annotation (Placement(transformation(extent={{-96,-10},
+ {-76,10}})));
+ OpenIPSL.Electrical.Controls.PSSE.TG.HYGOV HYGOV(
+ VELM=0.02,
+ G_MAX=0.415,
+ R=0.05,
+ r=0.3,
+ T_r=5,
+ T_f=0.05,
+ T_g=0.5,
+ G_MIN=0,
+ T_w=1.25,
+ A_t=1.2,
+ D_turb=0.2,
+ q_NL=0.08) annotation (Placement(transformation(
+ extent={{-19,-14},{19,14}},
+ rotation=180,
+ origin={-81,38})));
+ OpenIPSL.Electrical.Controls.PSSE.ES.SCRX SCRX(
+ T_B=10,
+ K=100,
+ T_E=0.05,
+ E_MIN=0,
+ E_MAX=5,
+ r_cr_fd=0,
+ C_SWITCH=false,
+ T_AT_B=0.1) annotation (Placement(transformation(
+ extent={{-18,-16},{18,16}},
+ rotation=180,
+ origin={-86,-34})));
+ Modelica.Blocks.Sources.Constant const(k=0) annotation (Placement(
+ transformation(
+ extent={{-2,-2},{2,2}},
+ rotation=180,
+ origin={-56,-34})));
+ equation
+ connect(SCRX.VUEL, const.y) annotation (Line(
+ points={{-74.3,-18},{-59.67,-18},{-59.67,-34},{-58.2,-34}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(SCRX.VOEL, const.y) annotation (Line(
+ points={{-79.7,-18},{-59.67,-18},{-59.67,-34},{-58.2,-34}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(SCRX.VOTHSG, const.y) annotation (Line(
+ points={{-68,-43.7778},{-59.67,-43.7778},{-59.67,-34},{-58.2,-34}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(generator.EFD0, SCRX.EFD0) annotation (Line(
+ points={{-75,-5},{-75,-24.2222},{-68,-24.2222}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(generator.PMECH0, HYGOV.PMECH0) annotation (Line(points={{-75,5},{-52,
+ 5},{-52,45},{-62.475,45}}, color={0,0,127}));
+ connect(generator.SPEED, HYGOV.SPEED) annotation (Line(points={{-75,7},{-58,7},
+ {-58,31},{-62.475,31}}, color={0,0,127}));
+ connect(HYGOV.PMECH, generator.PMECH) annotation (Line(points={{-100.95,38},{
+ -110,38},{-110,5},{-98,5}}, color={0,0,127}));
+ connect(SCRX.EFD, generator.EFD) annotation (Line(points={{-104.9,-35.7778},{
+ -110,-35.7778},{-110,-5},{-98,-5}}, color={0,0,127}));
+ connect(generator.ETERM, SCRX.ECOMP) annotation (Line(points={{-75,-3},{-50,-3},
+ {-50,-35.7778},{-68,-35.7778}}, color={0,0,127}));
+ connect(generator.XADIFD, SCRX.XADIFD) annotation (Line(points={{-75.2,-9},{-58,
+ -9},{-58,-29.5556},{-68,-29.5556}}, color={0,0,127}));
+ connect(generator.p, GEN1.p)
+ annotation (Line(points={{-76,0},{-76,0},{-40,0}}, color={0,0,255}));
+ annotation (
+ Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,-120},{
+ 100,80}})),
+ Icon(coordinateSystem(extent={{-100,-120},{100,80}})),
+ Documentation,
+ experiment(StopTime=10));
+ end HYGOV;
+
+ model GGOV "three phase to ground fault test of GGOV"
+ extends OpenIPSL.Examples.SMIBpartial;
+ OpenIPSL.Electrical.Machines.PSSE.GENROU generator(
+ Xppd=0.2,
+ Xppq=0.2,
+ Xpp=0.2,
+ Xl=0.12,
+ M_b=100,
+ Tpd0=5,
+ Tppd0=0.50000E-01,
+ Tppq0=0.1,
+ H=4.0000,
+ D=0,
+ Xd=1.41,
+ Xq=1.3500,
+ Xpd=0.3,
+ S10=0.1,
+ S12=0.5,
+ Xpq=0.6,
+ Tpq0=0.7,
+ V_0=1,
+ angle_0=4.05,
+ P_0=39.99995,
+ Q_0=5.416571) annotation (Placement(transformation(extent={{-100,
+ -16},{-60,18}})));
+ OpenIPSL.Electrical.Controls.PSSE.TG.GGOV1.GGOV1 gGOV1pele(
+ R=0.04,
+ T_pelec=1,
+ maxerr=0.05,
+ minerr=-0.05,
+ Kpgov=10,
+ Kigov=2,
+ Kdgov=0,
+ Tdgov=1,
+ Vmax=1,
+ Vmin=0.15,
+ Tact=0.5,
+ Kturb=1.5,
+ Wfnl=0.2,
+ Tb=0.1,
+ Tc=0,
+ Teng=0,
+ Tfload=3,
+ Kpload=2,
+ Kiload=0.67,
+ Ldref=1,
+ Dm=0,
+ Ropen=0.1,
+ Rclose=-0.1,
+ Kimw=0,
+ Aset=0.1,
+ Ka=10,
+ Ta=0.1,
+ Trate=0,
+ db=0,
+ Tsa=4,
+ Tsb=5,
+ Rup=99,
+ Rdown=-99,
+ DELT=0.005,
+ Flag=0) annotation (Placement(transformation(
+ extent={{-20,-18},{20,18}},
+ rotation=180,
+ origin={-68,40})));
+ equation
+ connect(gGOV1pele.PELEC, generator.PELEC) annotation (Line(
+ points={{-47.3793,46.9652},{-34,46.9652},{-34,6.1},{-58,6.1}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(generator.EFD0, generator.EFD) annotation (Line(
+ points={{-58,-7.5},{-52,-7.5},{-52,-30},{-102,-30},{-102,-7.5},{-104,-7.5}},
+ color={0,0,127},
+ smooth=Smooth.None));
+
+ connect(gGOV1pele.PMECH, generator.PMECH) annotation (Line(points={{-88.6897,
+ 39.2174},{-106,39.2174},{-106,9.5},{-104,9.5}}, color={0,0,127}));
+ connect(generator.SPEED, gGOV1pele.SPEED) annotation (Line(points={{-58,12.9},
+ {-40,12.9},{-40,29.8261},{-47.4483,29.8261}}, color={0,0,127}));
+ connect(generator.p, GEN1.p) annotation (Line(points={{-60,1},{-50,1},{-50,0},
+ {-40,0}}, color={0,0,255}));
+ annotation (
+ Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{
+ 100,100}})),
+ Documentation,
+ experiment(StopTime=10));
+ end GGOV;
+
+ model TGOV1 "SMIB system with one load and GENROE model"
+ extends OpenIPSL.Examples.SMIBpartial;
+ OpenIPSL.Electrical.Machines.PSSE.GENROE gENROE(
+ M_b=100,
+ Tpd0=5,
+ Tppd0=0.07,
+ Tpq0=0.9,
+ Tppq0=0.09,
+ H=4.28,
+ D=0,
+ Xd=1.84,
+ Xq=1.75,
+ Xpd=0.41,
+ Xpq=0.6,
+ Xppd=0.2,
+ Xl=0.12,
+ S10=0.11,
+ S12=0.39,
+ V_0=1,
+ P_0=40,
+ angle_0=4.046276,
+ Q_0=5.416582,
+ Xppq=0.2) annotation (Placement(transformation(extent={{-100,-20},
+ {-60,20}})));
+ OpenIPSL.Electrical.Controls.PSSE.TG.TGOV1 tGOV1_1(
+ R=0.04,
+ D_t=0,
+ T_1=0.4,
+ T_2=2,
+ T_3=6,
+ V_MAX=0.86,
+ V_MIN=0.3) annotation (Placement(transformation(extent={{-72,32},
+ {-88,44}})));
+ equation
+ connect(gENROE.EFD, gENROE.EFD0) annotation (Line(points={{-104,-10},{-110,-10},
+ {-110,-30},{-48,-30},{-48,-10},{-58,-10}}, color={0,0,127}));
+ connect(tGOV1_1.SPEED, gENROE.SPEED) annotation (Line(points={{-73,41},{-52,
+ 41},{-52,14},{-58,14}}, color={0,0,127}));
+ connect(tGOV1_1.PMECH0, gENROE.PMECH0) annotation (Line(points={{-73,35},{-48,
+ 35},{-48,10},{-58,10}}, color={0,0,127}));
+ connect(tGOV1_1.PMECH, gENROE.PMECH) annotation (Line(points={{-89,38},{-110,
+ 38},{-110,10},{-104,10}}, color={0,0,127}));
+ connect(gENROE.p, GEN1.p)
+ annotation (Line(points={{-60,0},{-60,0},{-40,0}}, color={0,0,255}));
+ annotation (
+ Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{
+ 100,100}})),
+ Documentation,
+ experiment(StopTime=10));
+ end TGOV1;
+ annotation (Documentation);
+ end TG;
+
+ package PSS
+ extends Modelica.Icons.ExamplesPackage;
+
+ model STAB3
+ "Simple Machine Infinite Bus with Machine, Governor and Excitation system"
+ extends OpenIPSL.Examples.SMIBpartial;
+ OpenIPSL.Electrical.Machines.PSSE.GENSAL generator(
+ Xppd=0.2,
+ Xppq=0.2,
+ Xl=0.12,
+ V_0=1,
+ angle_0=4.05,
+ P_0=39.99995,
+ Q_0=5.416571,
+ M_b=100,
+ Tpd0=6.7000,
+ Tppd0=0.28000E-01,
+ Tppq0=0.35000E-01,
+ H=4.4100,
+ D=0,
+ Xd=1.2200,
+ Xq=0.76000,
+ Xpd=0.29700,
+ S10=0.18600,
+ S12=0.802) annotation (Placement(transformation(extent={{-106,-12},
+ {-78,14}})));
+ OpenIPSL.Electrical.Controls.PSSE.TG.HYGOV HYGOV(VELM=0.02, G_MAX
+ =0.415) annotation (Placement(transformation(
+ extent={{-19,-14},{19,14}},
+ rotation=180,
+ origin={-83,30})));
+ OpenIPSL.Electrical.Controls.PSSE.ES.SCRX SCRX(
+ T_AT_B=0.01,
+ T_B=10,
+ K=100,
+ T_E=0.05,
+ E_MIN=0,
+ E_MAX=5,
+ r_cr_fd=0,
+ C_SWITCH=false) annotation (Placement(transformation(
+ extent={{-18,-16},{18,16}},
+ rotation=180,
+ origin={-94,-36})));
+ Modelica.Blocks.Sources.Constant const(k=0) annotation (Placement(
+ transformation(
+ extent={{-2,-2},{2,2}},
+ rotation=180,
+ origin={-68,-34})));
+ equation
+ connect(SCRX.VUEL, const.y) annotation (Line(
+ points={{-82.3,-20},{-71.67,-20},{-71.67,-34},{-70.2,-34}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(SCRX.VOEL, const.y) annotation (Line(
+ points={{-87.7,-20},{-71.67,-20},{-71.67,-34},{-70.2,-34}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(generator.EFD0, SCRX.EFD0) annotation (Line(
+ points={{-76.6,-5.5},{-74,-5.5},{-74,-26.2222},{-76,-26.2222}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(generator.XADIFD, SCRX.XADIFD) annotation (Line(points={{-76.88,-10.7},
+ {-70,-10.7},{-70,-31.5556},{-76,-31.5556}}, color={0,0,127}));
+ connect(SCRX.ECOMP, generator.ETERM) annotation (Line(points={{-76,-37.7778},
+ {-66,-37.7778},{-66,-2.9},{-76.6,-2.9}},color={0,0,127}));
+ connect(generator.SPEED, HYGOV.SPEED) annotation (Line(points={{-76.6,10.1},{
+ -58,10.1},{-58,23},{-64.475,23}}, color={0,0,127}));
+ connect(generator.PMECH0, HYGOV.PMECH0) annotation (Line(points={{-76.6,7.5},
+ {-64,7.5},{-64,10},{-48,10},{-48,37},{-64.475,37}},color={0,0,127}));
+ connect(HYGOV.PMECH, generator.PMECH) annotation (Line(points={{-102.95,30},{
+ -112,30},{-112,7.5},{-108.8,7.5}}, color={0,0,127}));
+ connect(generator.EFD, SCRX.EFD) annotation (Line(points={{-108.8,-5.5},{-116,
+ -5.5},{-116,-37.7778},{-112.9,-37.7778}}, color={0,0,127}));
+ connect(SCRX.VOTHSG, const.y) annotation (Line(points={{-76,-45.7778},{-74,-45.7778},
+ {-74,-36},{-71.67,-36},{-71.67,-34},{-70.2,-34}}, color={0,0,127}));
+ connect(generator.p, GEN1.p) annotation (Line(points={{-78,1},{-58.3,1},{-58.3,
+ 0},{-40,0}}, color={0,0,255}));
+ annotation (
+ Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,-120},{
+ 100,80}})),
+ Icon(coordinateSystem(extent={{-100,-120},{100,80}})),
+ Documentation,
+ experiment(StopTime=10));
+ end STAB3;
+
+ model STABNI
+ "Simple Machine Infinite Bus with Machine, Governor and Excitation system"
+ extends OpenIPSL.Examples.SMIBpartial;
+ OpenIPSL.Electrical.Machines.PSSE.GENSAL generator(
+ Xppd=0.2,
+ Xppq=0.2,
+ Xl=0.12,
+ V_0=1,
+ angle_0=4.05,
+ P_0=39.99995,
+ Q_0=5.416571,
+ M_b=100,
+ Tpd0=6.7000,
+ Tppd0=0.28000E-01,
+ Tppq0=0.35000E-01,
+ H=4.4100,
+ D=0,
+ Xd=1.2200,
+ Xq=0.76000,
+ Xpd=0.29700,
+ S10=0.18600,
+ S12=0.802) annotation (Placement(transformation(extent={{-98,-14},
+ {-70,12}})));
+ OpenIPSL.Electrical.Controls.PSSE.TG.HYGOV HYGOV(VELM=0.02, G_MAX
+ =0.415) annotation (Placement(transformation(
+ extent={{-19,-14},{19,14}},
+ rotation=180,
+ origin={-75,28})));
+ OpenIPSL.Electrical.Controls.PSSE.ES.SCRX SCRX(
+ T_AT_B=0.01,
+ T_B=10,
+ K=100,
+ T_E=0.05,
+ E_MIN=0,
+ E_MAX=5,
+ r_cr_fd=0,
+ C_SWITCH=false) annotation (Placement(transformation(
+ extent={{-18,-16},{18,16}},
+ rotation=180,
+ origin={-86,-38})));
+ Modelica.Blocks.Sources.Constant const(k=0) annotation (Placement(
+ transformation(
+ extent={{-2,-2},{2,2}},
+ rotation=180,
+ origin={-60,-36})));
+ equation
+ connect(SCRX.VUEL, const.y) annotation (Line(
+ points={{-74.3,-22},{-63.67,-22},{-63.67,-36},{-62.2,-36}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(SCRX.VOEL, const.y) annotation (Line(
+ points={{-79.7,-22},{-63.67,-22},{-63.67,-36},{-62.2,-36}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(generator.EFD0, SCRX.EFD0) annotation (Line(
+ points={{-68.6,-7.5},{-66,-7.5},{-66,-28.2222},{-68,-28.2222}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(generator.PMECH0, HYGOV.PMECH0) annotation (Line(points={{-68.6,5.5},
+ {-58,5.5},{-58,8},{-48,8},{-48,35},{-56.475,35}},color={0,0,127}));
+ connect(generator.SPEED, HYGOV.SPEED) annotation (Line(points={{-68.6,8.1},{-56,
+ 8.1},{-52,8.1},{-52,22},{-52,21},{-56.475,21}}, color={0,0,127}));
+ connect(generator.XADIFD, SCRX.XADIFD) annotation (Line(points={{-68.88,-12.7},
+ {-62,-12.7},{-62,-33.5556},{-68,-33.5556}}, color={0,0,127}));
+ connect(SCRX.VOTHSG, const.y) annotation (Line(points={{-68,-47.7778},{-64,-47.7778},
+ {-64,-38},{-64,-37.2},{-64,-36},{-62.2,-36}}, color={0,0,127}));
+ connect(generator.PMECH, HYGOV.PMECH0) annotation (Line(points={{-100.8,5.5},
+ {-110,5.5},{-110,14},{-48,14},{-48,35},{-56.475,35}},color={0,0,127}));
+ connect(SCRX.EFD, generator.EFD) annotation (Line(points={{-104.9,-39.7778},{
+ -110,-39.7778},{-110,-7.5},{-100.8,-7.5}}, color={0,0,127}));
+ connect(generator.p, GEN1.p) annotation (Line(points={{-70,-1},{-53.3,-1},{-53.3,
+ 0},{-40,0}}, color={0,0,255}));
+ connect(SCRX.ECOMP, generator.ETERM) annotation (Line(points={{-68,-39.7778},
+ {-66,-39.7778},{-66,-4.9},{-68.6,-4.9}},color={0,0,127}));
+ annotation (
+ Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,-120},{
+ 100,80}})),
+ Icon(coordinateSystem(extent={{-100,-120},{100,80}})),
+ Documentation,
+ experiment(StopTime=10));
+ end STABNI;
+
+ model PSS2A "SMIB system with one load and GENROE model"
+ extends OpenIPSL.Examples.SMIBpartial;
+ OpenIPSL.Electrical.Machines.PSSE.GENROE gENROE(
+ M_b=100,
+ Tpd0=5,
+ Tppd0=0.07,
+ Tpq0=0.9,
+ Tppq0=0.09,
+ H=4.28,
+ D=0,
+ Xd=1.84,
+ Xq=1.75,
+ Xpd=0.41,
+ Xpq=0.6,
+ Xppd=0.2,
+ Xl=0.12,
+ S10=0.11,
+ S12=0.39,
+ V_0=1,
+ P_0=40,
+ angle_0=4.046276,
+ Q_0=5.416582,
+ Xppq=0.2) annotation (Placement(transformation(extent={{-100,-20},
+ {-60,20}})));
+ Modelica.Blocks.Sources.Constant const(k=0)
+ annotation (Placement(transformation(extent={{-20,-86},{-40,-66}})));
+ OpenIPSL.Electrical.Controls.PSSE.ES.ESST1A eSST1A(
+ V_IMAX=0.3,
+ V_IMIN=-0.3,
+ T_C=2,
+ T_B=10,
+ T_C1=0.08,
+ T_B1=0.083,
+ K_A=300,
+ V_AMAX=7,
+ V_AMIN=-7,
+ V_RMAX=5.2,
+ V_RMIN=-5.2,
+ K_C=0.38,
+ K_F=1,
+ T_F=1,
+ K_LR=1,
+ I_LR=0,
+ T_A=0.1,
+ T_R=0.1) annotation (Placement(transformation(extent={{-56,-90},
+ {-108,-60}})));
+ Modelica.Blocks.Sources.Constant const1(k=-Modelica.Constants.inf)
+ annotation (Placement(transformation(extent={{-20,-120},{-40,-100}})));
+ Modelica.Blocks.Sources.Constant const2(k=Modelica.Constants.inf)
+ annotation (Placement(transformation(extent={{-18,-150},{-38,-130}})));
+ OpenIPSL.Electrical.Controls.PSSE.PSS.PSS2A pSS2A(
+ T_w2=5,
+ T_6=0,
+ T_w3=5,
+ T_w4=5,
+ T_7=5,
+ K_S2=0.758,
+ K_S3=1,
+ T_8=0.12,
+ T_9=0.1,
+ K_S1=2,
+ T_1=0.47,
+ T_2=0.07,
+ T_3=0.47,
+ T_4=0.07,
+ V_STMAX=0.1,
+ V_STMIN=-0.1,
+ M=5,
+ N=1,
+ T_w1=0) annotation (Placement(transformation(extent={{-156,-40},
+ {-118,-32}})));
+ equation
+ connect(gENROE.PMECH, gENROE.PMECH0) annotation (Line(points={{-104,10},{-110,
+ 10},{-110,26},{-48,26},{-48,10},{-58,10}}, color={0,0,127}));
+ connect(eSST1A.ECOMP, gENROE.ETERM) annotation (Line(points={{-56,-73.3333},{
+ -52,-73.3333},{-52,-6},{-58,-6}}, color={0,0,127}));
+ connect(const1.y, eSST1A.VUEL2) annotation (Line(points={{-41,-110},{-80.713,
+ -110},{-80.713,-89.9917}}, color={0,0,127}));
+ connect(eSST1A.VUEL, const.y) annotation (Line(points={{-65.1,-90},{-65.1,-94},
+ {-46,-94},{-46,-76},{-41,-76}}, color={0,0,127}));
+ connect(eSST1A.VUEL3, eSST1A.VUEL2) annotation (Line(points={{-88.4805,-89.9958},
+ {-88.4805,-110},{-80.713,-110},{-80.713,-89.9917}}, color={0,0,127}));
+ connect(const2.y, eSST1A.VOEL) annotation (Line(points={{-39,-140},{-72.9,-140},
+ {-72.9,-90}}, color={0,0,127}));
+ connect(pSS2A.V_S2, gENROE.PELEC) annotation (Line(points={{-156,-38},{-158,-38},
+ {-158,-48},{-46,-48},{-46,6},{-58,6}}, color={0,0,127}));
+ connect(pSS2A.V_S1, gENROE.SPEED) annotation (Line(points={{-156,-34},{-158,-34},
+ {-158,30},{-44,30},{-44,14},{-58,14}}, color={0,0,127}));
+ connect(eSST1A.EFD, gENROE.EFD) annotation (Line(points={{-109.3,-73.3333},{-114,
+ -73.3333},{-114,-10},{-104,-10}}, color={0,0,127}));
+ connect(eSST1A.VT, gENROE.ETERM) annotation (Line(points={{-56.0325,-69.1875},
+ {-52,-69.1875},{-52,-6},{-58,-6}}, color={0,0,127}));
+ connect(eSST1A.EFD0, gENROE.EFD0) annotation (Line(points={{-56,-84.1667},{-50,
+ -84.1667},{-50,-10},{-58,-10}}, color={0,0,127}));
+ connect(eSST1A.XADIFD, gENROE.XADIFD) annotation (Line(points={{-56,-79.1667},
+ {-48,-79.1667},{-48,-18},{-58.4,-18}}, color={0,0,127}));
+ connect(eSST1A.VOTHSG2, pSS2A.VOTHSG) annotation (Line(points={{-56,-62.5},{-44,
+ -62.5},{-44,-36},{-117.4,-36}}, color={0,0,127}));
+ connect(eSST1A.VOTHSG, const.y) annotation (Line(points={{-56,-65.8333},{-46,
+ -65.8333},{-46,-76},{-41,-76}}, color={0,0,127}));
+ connect(gENROE.p, GEN1.p)
+ annotation (Line(points={{-60,0},{-60,0},{-40,0}}, color={0,0,255}));
+ annotation (
+ Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{
+ 100,100}})),
+ Documentation,
+ experiment(StopTime=10));
+ end PSS2A;
+
+ model IEEEST "SMIB system with one load and GENROE model"
+ extends OpenIPSL.Examples.SMIBpartial;
+ OpenIPSL.Electrical.Machines.PSSE.GENROE gENROE(
+ M_b=100,
+ Tpd0=5,
+ Tppd0=0.07,
+ Tpq0=0.9,
+ Tppq0=0.09,
+ H=4.28,
+ D=0,
+ Xd=1.84,
+ Xq=1.75,
+ Xpd=0.41,
+ Xpq=0.6,
+ Xppd=0.2,
+ Xl=0.12,
+ S10=0.11,
+ S12=0.39,
+ V_0=1,
+ P_0=40,
+ angle_0=4.046276,
+ Q_0=5.416582,
+ Xppq=0.2) annotation (Placement(transformation(extent={{-102,-20},
+ {-62,20}})));
+ Modelica.Blocks.Sources.Constant const(k=0)
+ annotation (Placement(transformation(extent={{-22,-86},{-42,-66}})));
+ OpenIPSL.Electrical.Controls.PSSE.ES.ESST1A eSST1A(
+ V_IMAX=0.3,
+ V_IMIN=-0.3,
+ T_C=2,
+ T_B=10,
+ T_C1=0.08,
+ T_B1=0.083,
+ K_A=300,
+ V_AMAX=7,
+ V_AMIN=-7,
+ V_RMAX=5.2,
+ V_RMIN=-5.2,
+ K_C=0.38,
+ K_F=1,
+ T_F=1,
+ K_LR=1,
+ I_LR=0,
+ T_A=0.1,
+ T_R=0.1) annotation (Placement(transformation(extent={{-58,-90},
+ {-110,-60}})));
+ Modelica.Blocks.Sources.Constant const1(k=-Modelica.Constants.inf)
+ annotation (Placement(transformation(extent={{-22,-120},{-42,-100}})));
+ Modelica.Blocks.Sources.Constant const2(k=Modelica.Constants.inf)
+ annotation (Placement(transformation(extent={{-20,-150},{-40,-130}})));
+ OpenIPSL.Electrical.Controls.PSSE.PSS.IEEEST iEEEST(
+ A_1=48.7435,
+ A_2=4.7488,
+ A_3=0.0,
+ A_4=0.0,
+ A_5=-85.7761,
+ A_6=0.0459,
+ T_1=0.7361,
+ T_2=1.5868,
+ T_3=0.0,
+ T_4=0.02,
+ T_5=13.8921,
+ T_6=0.1057,
+ K_S=0.0099,
+ L_SMAX=0.1,
+ L_SMIN=-0.1,
+ V_CU=0.0,
+ V_CL=0.0) annotation (Placement(transformation(extent={{-96,-44},
+ {-68,-32}})));
+ equation
+ connect(gENROE.PMECH, gENROE.PMECH0) annotation (Line(points={{-106,10},{-112,
+ 10},{-112,26},{-50,26},{-50,10},{-60,10}}, color={0,0,127}));
+ connect(eSST1A.ECOMP, gENROE.ETERM) annotation (Line(points={{-58,-73.3333},{
+ -54,-73.3333},{-54,-6},{-60,-6}}, color={0,0,127}));
+ connect(const1.y, eSST1A.VUEL2) annotation (Line(points={{-43,-110},{-82.713,
+ -110},{-82.713,-89.9917}}, color={0,0,127}));
+ connect(eSST1A.VUEL, const.y) annotation (Line(points={{-67.1,-90},{-67.1,-94},
+ {-48,-94},{-48,-76},{-43,-76}}, color={0,0,127}));
+ connect(eSST1A.VUEL3, eSST1A.VUEL2) annotation (Line(points={{-90.4805,-89.9958},
+ {-90.4805,-110},{-82.713,-110},{-82.713,-89.9917}}, color={0,0,127}));
+ connect(const2.y, eSST1A.VOEL) annotation (Line(points={{-41,-140},{-74.9,-140},
+ {-74.9,-90}}, color={0,0,127}));
+ connect(eSST1A.EFD, gENROE.EFD) annotation (Line(points={{-111.3,-73.3333},{-116,
+ -73.3333},{-116,-10},{-106,-10}}, color={0,0,127}));
+ connect(eSST1A.VT, gENROE.ETERM) annotation (Line(points={{-58.0325,-69.1875},
+ {-54,-69.1875},{-54,-6},{-60,-6}}, color={0,0,127}));
+ connect(eSST1A.EFD0, gENROE.EFD0) annotation (Line(points={{-58,-84.1667},{-52,
+ -84.1667},{-52,-10},{-60,-10}}, color={0,0,127}));
+ connect(eSST1A.XADIFD, gENROE.XADIFD) annotation (Line(points={{-58,-79.1667},
+ {-50,-79.1667},{-50,-18},{-60.4,-18}}, color={0,0,127}));
+ connect(iEEEST.V_CT, gENROE.ETERM) annotation (Line(points={{-95.7667,-35},{-102,
+ -35},{-102,-28},{-54,-28},{-54,-6},{-60,-6}}, color={0,0,127}));
+ connect(iEEEST.V_S, gENROE.PELEC) annotation (Line(points={{-95.7667,-41},{-102,
+ -41},{-102,-52},{-56,-52},{-56,6},{-60,6}}, color={0,0,127}));
+ connect(eSST1A.VOTHSG2, const.y) annotation (Line(points={{-58,-62.5},{-46,-62.5},
+ {-46,-76},{-43,-76}}, color={0,0,127}));
+ connect(iEEEST.VOTHSG, eSST1A.VOTHSG) annotation (Line(points={{-66.8333,-38},
+ {-48,-38},{-48,-65.8333},{-58,-65.8333}}, color={0,0,127}));
+ connect(gENROE.p, GEN1.p)
+ annotation (Line(points={{-62,0},{-62,0},{-40,0}}, color={0,0,255}));
+ annotation (
+ Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{
+ 100,100}})),
+ Documentation,
+ experiment(StopTime=10));
+ end IEEEST;
+
+ model PSS2B "SMIB system with one load and GENROE model"
+ extends OpenIPSL.Examples.SMIBpartial;
+ OpenIPSL.Electrical.Machines.PSSE.GENROE gENROE(
+ M_b=100,
+ Tpd0=5,
+ Tppd0=0.07,
+ Tpq0=0.9,
+ Tppq0=0.09,
+ H=4.28,
+ D=0,
+ Xd=1.84,
+ Xq=1.75,
+ Xpd=0.41,
+ Xpq=0.6,
+ Xppd=0.2,
+ Xl=0.12,
+ S10=0.11,
+ S12=0.39,
+ V_0=1,
+ P_0=40,
+ angle_0=4.046276,
+ Q_0=5.416582,
+ Xppq=0.2) annotation (Placement(transformation(extent={{-100,-20},
+ {-60,20}})));
+ Modelica.Blocks.Sources.Constant const(k=0)
+ annotation (Placement(transformation(extent={{-20,-86},{-40,-66}})));
+ OpenIPSL.Electrical.Controls.PSSE.ES.ESST1A eSST1A(
+ V_IMAX=0.3,
+ V_IMIN=-0.3,
+ T_C=2,
+ T_B=10,
+ T_C1=0.08,
+ T_B1=0.083,
+ K_A=300,
+ V_AMAX=7,
+ V_AMIN=-7,
+ V_RMAX=5.2,
+ V_RMIN=-5.2,
+ K_C=0.38,
+ K_F=1,
+ T_F=1,
+ K_LR=1,
+ I_LR=0,
+ T_A=0.1,
+ T_R=0.1) annotation (Placement(transformation(extent={{-56,-90},
+ {-108,-60}})));
+ Modelica.Blocks.Sources.Constant const1(k=-Modelica.Constants.inf)
+ annotation (Placement(transformation(extent={{-20,-120},{-40,-100}})));
+ Modelica.Blocks.Sources.Constant const2(k=Modelica.Constants.inf)
+ annotation (Placement(transformation(extent={{-18,-150},{-38,-130}})));
+ OpenIPSL.Electrical.Controls.PSSE.PSS.PSS2B pSS2B(
+ T_w1=2,
+ T_w2=2,
+ T_6=0,
+ T_w3=2,
+ T_w4=0,
+ T_7=2,
+ K_S2=0.1564,
+ K_S3=1,
+ T_8=0,
+ T_9=0,
+ K_S1=10,
+ T_1=0.25,
+ T_2=0.03,
+ T_3=0.15,
+ T_4=0.015,
+ T_10=0,
+ T_11=0,
+ V_S1MAX=999,
+ V_S1MIN=-999,
+ V_S2MAX=999,
+ V_S2MIN=-999,
+ V_STMAX=0.1,
+ V_STMIN=-0.1,
+ M=0,
+ N=0) annotation (Placement(transformation(extent={{-156,-28},{-120,
+ -20}})));
+ equation
+ connect(gENROE.PMECH, gENROE.PMECH0) annotation (Line(points={{-104,10},{-110,
+ 10},{-110,26},{-48,26},{-48,10},{-58,10}}, color={0,0,127}));
+ connect(eSST1A.ECOMP, gENROE.ETERM) annotation (Line(points={{-56,-73.3333},{
+ -52,-73.3333},{-52,-6},{-58,-6}}, color={0,0,127}));
+ connect(const1.y, eSST1A.VUEL2) annotation (Line(points={{-41,-110},{-80.713,
+ -110},{-80.713,-89.9917}}, color={0,0,127}));
+ connect(eSST1A.VUEL, const.y) annotation (Line(points={{-65.1,-90},{-65.1,-94},
+ {-46,-94},{-46,-76},{-41,-76}}, color={0,0,127}));
+ connect(eSST1A.VUEL3, eSST1A.VUEL2) annotation (Line(points={{-88.4805,-89.9958},
+ {-88.4805,-110},{-80.713,-110},{-80.713,-89.9917}}, color={0,0,127}));
+ connect(const2.y, eSST1A.VOEL) annotation (Line(points={{-39,-140},{-72.9,-140},
+ {-72.9,-90}}, color={0,0,127}));
+ connect(eSST1A.EFD, gENROE.EFD) annotation (Line(points={{-109.3,-73.3333},{-114,
+ -73.3333},{-114,-10},{-104,-10}}, color={0,0,127}));
+ connect(eSST1A.VT, gENROE.ETERM) annotation (Line(points={{-56.0325,-69.1875},
+ {-52,-69.1875},{-52,-6},{-58,-6}}, color={0,0,127}));
+ connect(eSST1A.EFD0, gENROE.EFD0) annotation (Line(points={{-56,-84.1667},{-50,
+ -84.1667},{-50,-10},{-58,-10}}, color={0,0,127}));
+ connect(eSST1A.XADIFD, gENROE.XADIFD) annotation (Line(points={{-56,-79.1667},
+ {-48,-79.1667},{-48,-18},{-58.4,-18}}, color={0,0,127}));
+ connect(eSST1A.VOTHSG, const.y) annotation (Line(points={{-56,-65.8333},{-46,
+ -65.8333},{-46,-76},{-41,-76}}, color={0,0,127}));
+ connect(gENROE.p, GEN1.p)
+ annotation (Line(points={{-60,0},{-60,0},{-40,0}}, color={0,0,255}));
+ connect(gENROE.SPEED, pSS2B.V_S1) annotation (Line(points={{-58,14},{-44,14},
+ {-44,30},{-158,30},{-158,-22},{-156,-22}},color={0,0,127}));
+ connect(gENROE.PELEC, pSS2B.V_S2) annotation (Line(points={{-58,6},{-46,6},{-46,
+ -30},{-158,-30},{-158,-26},{-156,-26}}, color={0,0,127}));
+ connect(pSS2B.VOTHSG, eSST1A.VOTHSG2) annotation (Line(points={{-119.4,-24},{
+ -82,-24},{-44,-24},{-44,-62.5},{-56,-62.5}}, color={0,0,127}));
+ annotation (
+ Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{
+ 100,100}})),
+ Documentation,
+ experiment(StopTime=10));
+ end PSS2B;
+ annotation (Documentation);
+ end PSS;
+ annotation (Documentation);
+ end PSSE;
+
+ package PSAT
+ extends Modelica.Icons.ExamplesPackage;
+
+ package AVR
+ extends Modelica.Icons.ExamplesPackage;
+
+ model AVRTypeI_Test
+ extends Modelica.Icons.Example;
+ OpenIPSL.Electrical.Machines.PSAT.Order6 order6Type2_Inputs_Outputs(
+ V_0=1,
+ angle_0=0,
+ V_b=200,
+ Sn=370,
+ Vn=200,
+ ra=0.001,
+ x1d=0.302,
+ M=10,
+ D=0,
+ P_0=16.0352698692006,
+ Q_0=11.859436505981) annotation (Placement(transformation(
+ extent={{-86,-10},{-50,26}})));
+ inner OpenIPSL.Electrical.SystemBase SysData annotation (
+ Placement(transformation(extent={{58,78},{82,98}})));
+ Electrical.Branches.PwLine pwLine1(
+ X=0.1,
+ R=0.01,
+ G=0,
+ B=0.0005) annotation (Placement(visible=true, transformation(
+ origin={0,2},
+ extent={{-6,-6},{6,6}},
+ rotation=0)));
+ Electrical.Branches.PwLine pwLinewithOpening1(
+ G=0,
+ R=0.01,
+ X=0.1,
+ opening=1,
+ B=0.0005,
+ t1=2,
+ t2=2.15) annotation (Placement(visible=true, transformation(
+ origin={40,22},
+ extent={{-6,-6},{6,6}},
+ rotation=0)));
+ Electrical.Branches.PwLine pwLine2(
+ G=0,
+ R=0.01,
+ X=0.1,
+ B=0.0005) annotation (Placement(visible=true, transformation(
+ origin={0,16},
+ extent={{-6,-6},{6,6}},
+ rotation=0)));
+ Electrical.Branches.PwLine pwLine3(
+ G=0,
+ R=0.01,
+ X=0.1,
+ B=0.0005) annotation (Placement(visible=true, transformation(
+ origin={42,-6},
+ extent={{-6,-6},{6,6}},
+ rotation=0)));
+ Electrical.Branches.PwLine pwLine4(
+ G=0,
+ R=0.01,
+ X=0.1,
+ B=0.0005) annotation (Placement(visible=true, transformation(
+ origin={40,40},
+ extent={{-5.99999,-5.99998},{5.99999,6}},
+ rotation=0)));
+ Electrical.Loads.PSAT.LOADPQ pwLoadPQ1(
+ P_0=8,
+ Q_0=6,
+ V_0=1,
+ angle_0=0) annotation (Placement(visible=true, transformation(
+ origin={74,32},
+ extent={{-6,-6},{6,6}},
+ rotation=90)));
+ Electrical.Loads.PSAT.LOADPQ pwLoadPQ2(
+ P_0=8,
+ Q_0=6,
+ V_0=1,
+ angle_0=0) annotation (Placement(visible=true, transformation(
+ origin={74.034,-6.2889},
+ extent={{-6.2889,-6.0335},{6.2889,6.0335}},
+ rotation=90)));
+ Electrical.Buses.Bus bus
+ annotation (Placement(transformation(extent={{-30,-2},{-10,18}})));
+ Electrical.Buses.Bus bus1
+ annotation (Placement(transformation(extent={{10,-2},{30,18}})));
+ Electrical.Buses.Bus bus2
+ annotation (Placement(transformation(extent={{50,22},{70,42}})));
+ Electrical.Buses.Bus bus3
+ annotation (Placement(transformation(extent={{50,-16},{70,4}})));
+ Electrical.Controls.PSAT.AVR.AVRTypeI aVRI
+ annotation (Placement(transformation(extent={{-72,36},{-92,54}})));
+ Modelica.Blocks.Sources.Ramp ramp(
+ duration=20,
+ startTime=1,
+ height=-0.1) annotation (Placement(transformation(
+ extent={{6,-6},{-6,6}},
+ rotation=0,
+ origin={-34,48})));
+ Modelica.Blocks.Math.Add add
+ annotation (Placement(transformation(extent={{-50,46},{-60,56}})));
+ equation
+
+ connect(pwLine2.p, pwLine1.p) annotation (Line(points={{-5.4,16},{-14,16},{-14,
+ 2},{-5.4,2}}, color={0,0,255}));
+ connect(pwLine2.n, pwLine1.n) annotation (Line(points={{5.4,16},{14,16},{14,2},
+ {5.4,2}}, color={0,0,255}));
+ connect(pwLine4.p, pwLinewithOpening1.p) annotation (Line(points={{34.6,40},{
+ 28,40},{28,22},{34.6,22}}, color={0,0,255}));
+ connect(pwLine4.n, pwLinewithOpening1.n) annotation (Line(points={{45.4,40},{
+ 52,40},{52,22},{45.4,22}}, color={0,0,255}));
+ connect(bus.p, pwLine1.p) annotation (Line(points={{-20,8},{-14,8},{-14,2},{-5.4,
+ 2}}, color={0,0,255}));
+ connect(bus1.p, pwLine1.n)
+ annotation (Line(points={{20,8},{14,8},{14,2},{5.4,2}}, color={0,0,255}));
+ connect(bus1.p, pwLinewithOpening1.p) annotation (Line(points={{20,8},{24,8},
+ {24,28},{28,28},{28,22},{34.6,22}},color={0,0,255}));
+ connect(pwLine3.p, pwLinewithOpening1.p) annotation (Line(points={{36.6,-6},{
+ 24,-6},{24,28},{28,28},{28,22},{34.6,22}}, color={0,0,255}));
+ connect(bus2.p, pwLoadPQ1.p)
+ annotation (Line(points={{60,32},{68,32}}, color={0,0,255}));
+ connect(bus2.p, pwLinewithOpening1.n) annotation (Line(points={{60,32},{52,32},
+ {52,22},{45.4,22}}, color={0,0,255}));
+ connect(bus3.p, pwLoadPQ2.p) annotation (Line(points={{60,-6},{68.0005,-6},{
+ 68.0005,-6.2889}}, color={0,0,255}));
+ connect(pwLine3.n, bus3.p)
+ annotation (Line(points={{47.4,-6},{60,-6}}, color={0,0,255}));
+ connect(bus.p, order6Type2_Inputs_Outputs.p)
+ annotation (Line(points={{-20,8},{-50,8}}, color={0,0,255}));
+ connect(aVRI.vf, order6Type2_Inputs_Outputs.vf) annotation (Line(points={{-94,
+ 45},{-96,45},{-96,17},{-89.6,17}}, color={0,0,127}));
+ connect(aVRI.v, order6Type2_Inputs_Outputs.v) annotation (Line(points={{-70,
+ 39.6},{-44,39.6},{-44,13.4},{-48.2,13.4}}, color={0,0,127}));
+ connect(aVRI.vf0, order6Type2_Inputs_Outputs.vf0) annotation (Line(points={{-82,
+ 34.2},{-82,27.8},{-82.4,27.8}}, color={0,0,127}));
+ connect(aVRI.vref0, add.u1) annotation (Line(points={{-82,55.8},{-82,62},{-49,
+ 62},{-49,54}}, color={0,0,127}));
+ connect(ramp.y, add.u2) annotation (Line(points={{-40.6,48},{-43.25,48},{-49,
+ 48}}, color={0,0,127}));
+ connect(add.y, aVRI.vref) annotation (Line(points={{-60.5,51},{-65.25,51},{-65.25,
+ 50.4},{-70,50.4}}, color={0,0,127}));
+ connect(order6Type2_Inputs_Outputs.pm, order6Type2_Inputs_Outputs.pm0)
+ annotation (Line(points={{-89.6,-1},{-96,-1},{-96,-16},{-82.4,-16},{-82.4,-11.8}},
+ color={0,0,127}));
+ annotation (
+ Diagram(coordinateSystem(extent={{-100,-100},{100,100}},
+ preserveAspectRatio=false)),
+ Icon(coordinateSystem(extent={{-100,-100},{100,100}})),
+ Documentation,
+ experiment(StopTime=60),
+ __Dymola_experimentSetupOutput);
+ end AVRTypeI_Test;
+
+ model AVRTypeII_Test
+ extends Modelica.Icons.Example;
+ OpenIPSL.Electrical.Machines.PSAT.Order6 order6Type2_Inputs_Outputs(
+ V_0=1,
+ angle_0=0,
+ V_b=200,
+ Sn=370,
+ Vn=200,
+ ra=0.001,
+ x1d=0.302,
+ M=10,
+ D=0,
+ P_0=16.0352698692006,
+ Q_0=11.859436505981) annotation (Placement(transformation(
+ extent={{-86,-10},{-50,26}})));
+ inner OpenIPSL.Electrical.SystemBase SysData annotation (
+ Placement(transformation(extent={{58,78},{82,98}})));
+ Electrical.Branches.PwLine pwLine1(
+ X=0.1,
+ R=0.01,
+ G=0,
+ B=0.0005) annotation (Placement(visible=true, transformation(
+ origin={0,2},
+ extent={{-6,-6},{6,6}},
+ rotation=0)));
+ Electrical.Branches.PwLine pwLinewithOpening1(
+ G=0,
+ R=0.01,
+ X=0.1,
+ opening=1,
+ B=0.0005,
+ t1=2,
+ t2=2.15) annotation (Placement(visible=true, transformation(
+ origin={40,22},
+ extent={{-6,-6},{6,6}},
+ rotation=0)));
+ Electrical.Branches.PwLine pwLine2(
+ G=0,
+ R=0.01,
+ X=0.1,
+ B=0.0005) annotation (Placement(visible=true, transformation(
+ origin={0,16},
+ extent={{-6,-6},{6,6}},
+ rotation=0)));
+ Electrical.Branches.PwLine pwLine3(
+ G=0,
+ R=0.01,
+ X=0.1,
+ B=0.0005) annotation (Placement(visible=true, transformation(
+ origin={42,-6},
+ extent={{-6,-6},{6,6}},
+ rotation=0)));
+ Electrical.Branches.PwLine pwLine4(
+ G=0,
+ R=0.01,
+ X=0.1,
+ B=0.0005) annotation (Placement(visible=true, transformation(
+ origin={40,40},
+ extent={{-5.99999,-5.99998},{5.99999,6}},
+ rotation=0)));
+ Electrical.Loads.PSAT.LOADPQ pwLoadPQ1(
+ P_0=8,
+ Q_0=6,
+ V_0=1,
+ angle_0=0) annotation (Placement(visible=true, transformation(
+ origin={74,32},
+ extent={{-6,-6},{6,6}},
+ rotation=90)));
+ Electrical.Loads.PSAT.LOADPQ pwLoadPQ2(
+ P_0=8,
+ Q_0=6,
+ V_0=1,
+ angle_0=0) annotation (Placement(visible=true, transformation(
+ origin={74.034,-6.2889},
+ extent={{-6.2889,-6.0335},{6.2889,6.0335}},
+ rotation=90)));
+ Electrical.Buses.Bus bus
+ annotation (Placement(transformation(extent={{-30,-2},{-10,18}})));
+ Electrical.Buses.Bus bus1
+ annotation (Placement(transformation(extent={{10,-2},{30,18}})));
+ Electrical.Buses.Bus bus2
+ annotation (Placement(transformation(extent={{50,22},{70,42}})));
+ Electrical.Buses.Bus bus3
+ annotation (Placement(transformation(extent={{50,-16},{70,4}})));
+ Electrical.Controls.PSAT.AVR.AVRTypeII aVRI
+ annotation (Placement(transformation(extent={{-72,36},{-92,54}})));
+ Modelica.Blocks.Sources.Ramp ramp(
+ duration=20,
+ startTime=1,
+ height=-0.1) annotation (Placement(transformation(
+ extent={{6,-6},{-6,6}},
+ rotation=0,
+ origin={-34,48})));
+ Modelica.Blocks.Math.Add add
+ annotation (Placement(transformation(extent={{-50,46},{-60,56}})));
+ equation
+
+ connect(pwLine2.p, pwLine1.p) annotation (Line(points={{-5.4,16},{-14,16},{-14,
+ 2},{-5.4,2}}, color={0,0,255}));
+ connect(pwLine2.n, pwLine1.n) annotation (Line(points={{5.4,16},{14,16},{14,2},
+ {5.4,2}}, color={0,0,255}));
+ connect(pwLine4.p, pwLinewithOpening1.p) annotation (Line(points={{34.6,40},{
+ 28,40},{28,22},{34.6,22}}, color={0,0,255}));
+ connect(pwLine4.n, pwLinewithOpening1.n) annotation (Line(points={{45.4,40},{
+ 52,40},{52,22},{45.4,22}}, color={0,0,255}));
+ connect(bus.p, pwLine1.p) annotation (Line(points={{-20,8},{-14,8},{-14,2},{-5.4,
+ 2}}, color={0,0,255}));
+ connect(bus1.p, pwLine1.n)
+ annotation (Line(points={{20,8},{14,8},{14,2},{5.4,2}}, color={0,0,255}));
+ connect(bus1.p, pwLinewithOpening1.p) annotation (Line(points={{20,8},{24,8},
+ {24,28},{28,28},{28,22},{34.6,22}},color={0,0,255}));
+ connect(pwLine3.p, pwLinewithOpening1.p) annotation (Line(points={{36.6,-6},{
+ 24,-6},{24,28},{28,28},{28,22},{34.6,22}}, color={0,0,255}));
+ connect(bus2.p, pwLoadPQ1.p)
+ annotation (Line(points={{60,32},{68,32}}, color={0,0,255}));
+ connect(bus2.p, pwLinewithOpening1.n) annotation (Line(points={{60,32},{52,32},
+ {52,22},{45.4,22}}, color={0,0,255}));
+ connect(bus3.p, pwLoadPQ2.p) annotation (Line(points={{60,-6},{68.0005,-6},{
+ 68.0005,-6.2889}}, color={0,0,255}));
+ connect(pwLine3.n, bus3.p)
+ annotation (Line(points={{47.4,-6},{60,-6}}, color={0,0,255}));
+ connect(bus.p, order6Type2_Inputs_Outputs.p)
+ annotation (Line(points={{-20,8},{-50,8}}, color={0,0,255}));
+ connect(aVRI.vf, order6Type2_Inputs_Outputs.vf) annotation (Line(points={{-94,
+ 45},{-96,45},{-96,17},{-89.6,17}}, color={0,0,127}));
+ connect(aVRI.v, order6Type2_Inputs_Outputs.v) annotation (Line(points={{-70,
+ 39.6},{-44,39.6},{-44,13.4},{-48.2,13.4}}, color={0,0,127}));
+ connect(aVRI.vf0, order6Type2_Inputs_Outputs.vf0) annotation (Line(points={{-82,
+ 34.2},{-82,27.8},{-82.4,27.8}}, color={0,0,127}));
+ connect(aVRI.vref0, add.u1) annotation (Line(points={{-82,55.8},{-82,62},{-49,
+ 62},{-49,54}}, color={0,0,127}));
+ connect(ramp.y, add.u2) annotation (Line(points={{-40.6,48},{-40.6,48},{-49,
+ 48}}, color={0,0,127}));
+ connect(add.y, aVRI.vref) annotation (Line(points={{-60.5,51},{-65.25,51},{-65.25,
+ 50.4},{-70,50.4}}, color={0,0,127}));
+ connect(order6Type2_Inputs_Outputs.pm, order6Type2_Inputs_Outputs.pm0)
+ annotation (Line(points={{-89.6,-1},{-96,-1},{-96,-16},{-82.4,-16},{-82.4,-11.8}},
+ color={0,0,127}));
+ annotation (
+ Diagram(coordinateSystem(extent={{-100,-100},{100,100}},
+ preserveAspectRatio=false)),
+ Icon(coordinateSystem(extent={{-100,-100},{100,100}})),
+ Documentation,
+ experiment(StopTime=60),
+ __Dymola_experimentSetupOutput);
+ end AVRTypeII_Test;
+ annotation (Documentation);
+ end AVR;
+
+ package OEL
+ extends Modelica.Icons.ExamplesPackage;
+
+ model AVRTypeII_OEL_Test
+ extends OpenIPSL.Examples.BaseTest(
+ pwLoadPQ2(
+ t_start_1=1,
+ t_end_1=21,
+ dQ1=3.2,
+ forcePQ=true),
+ pwLinewithOpening1(t1=100, t2=100),
+ pwLoadPQ1(forcePQ=false));
+ extends Modelica.Icons.Example;
+ Electrical.Machines.PSAT.Order4 order4(
+ V_0=1,
+ angle_0=0,
+ ra=0.001,
+ x1d=0.302,
+ M=10,
+ D=0,
+ P_0=16.0352698692006,
+ Q_0=11.859436505981,
+ Sn=20,
+ Vn=370,
+ V_b=400) annotation (Placement(transformation(extent={{-45,-10},{-25,10}})));
+ Electrical.Controls.PSAT.AVR.AVRTypeII exciter_Type_II(
+ vrmin=-5,
+ vrmax=5,
+ Ta=0.1,
+ Te=1,
+ Tr=0.001,
+ Ae=0.0006,
+ Be=0.9,
+ Kf=0.45,
+ Tf=1,
+ Ka=400,
+ Ke=0.01) annotation (Placement(transformation(extent={{-70,18},{-90,38}})));
+ Electrical.Controls.PSAT.OEL.OEL oXL(
+ vOEL_max=0.05,
+ T0=5,
+ xd=order4.xd,
+ xq=order4.xq,
+ Sn=order4.Sn,
+ Vn=order4.Vn,
+ if_lim=3.07)
+ annotation (Placement(transformation(extent={{-18,24},{-38,44}})));
+ equation
+ connect(order4.pm0, order4.pm) annotation (Line(points={{-43,-11},{-43,-16},{
+ -60,-16},{-60,-5},{-47,-5}}, color={0,0,127}));
+ connect(order4.p, bus.p)
+ annotation (Line(points={{-25,0},{-25,0},{0,0}}, color={0,0,255}));
+ connect(order4.vf, exciter_Type_II.vf) annotation (Line(points={{-47,5},{-96.75,
+ 5},{-96.75,28},{-92,28}}, color={0,0,127}));
+ connect(exciter_Type_II.vf0, order4.vf0) annotation (Line(points={{-80,16},{-80,
+ 16},{-80,11},{-43,11}}, color={0,0,127}));
+ connect(exciter_Type_II.vref0, oXL.v_ref0) annotation (Line(points={{-80,40},
+ {-80,40},{-80,72},{-27.8,72},{-27.8,45.2}},color={0,0,127}));
+ connect(oXL.v, order4.v) annotation (Line(points={{-18.8,40},{-12,40},{-12,3},
+ {-24,3}}, color={0,0,127}));
+ connect(order4.P, oXL.p) annotation (Line(points={{-24,-3},{-14,-3},{-14,36},
+ {-18.8,36}},color={0,0,127}));
+ connect(order4.Q, oXL.q) annotation (Line(points={{-24,-7},{-16,-7},{-16,32},
+ {-18.8,32}},color={0,0,127}));
+ connect(exciter_Type_II.v, order4.v) annotation (Line(points={{-68,22},{-20,
+ 22},{-20,3},{-24,3}}, color={0,0,127}));
+ connect(oXL.v_ref, exciter_Type_II.vref)
+ annotation (Line(points={{-38.4,34},{-54,34},{-68,34}}, color={0,0,127}));
+ annotation (
+ Documentation,
+ Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{
+ 100,100}})),
+ experiment(StopTime=50),
+ __Dymola_experimentSetupOutput);
+ end AVRTypeII_OEL_Test;
+ annotation (Documentation);
+ end OEL;
+
+ package TG
+ extends Modelica.Icons.ExamplesPackage;
+
+ model TGTypeI_test
+ extends TGTestBase;
+ extends Modelica.Icons.Example;
+ parameter Real p0=0.160352698692006 "Power flow, node active power";
+ OpenIPSL.Electrical.Controls.PSAT.TG.TGTypeI tGTypeI(
+ wref=1,
+ pref=p0,
+ R=0.2,
+ pmax=1,
+ pmin=0,
+ Ts=0.1,
+ Tc=1,
+ T3=0.04,
+ T4=5,
+ T5=0.04) annotation (Placement(transformation(extent={{-68,-24},
+ {-40,4}})));
+ equation
+
+ connect(tGTypeI.pm, gen.pm) annotation (Line(points={{-38.6,-10},{-24,-10}}, color={0,0,127}));
+ connect(tGTypeI.w, gen.w) annotation (Line(points={{-70.8,-10},{-80,-10},{-80,40},{30,40},{30,18},{22,18}}, color={0,0,127}));
+ annotation (experiment(StopTime=10));
+ end TGTypeI_test;
+
+ model TGTypeII_test
+ extends TGTestBase;
+ extends Modelica.Icons.Example;
+ Electrical.Controls.PSAT.TG.TGtypeII tGtypeII(S_b=SysData.S_b)
+ annotation (Placement(transformation(extent={{-68,-24},{-40,4}})));
+ equation
+ connect(tGtypeII.pm, gen.pm) annotation (Line(points={{-38.6,-10},{-24,-10}}, color={0,0,127}));
+ connect(tGtypeII.w, gen.w) annotation (Line(points={{-70.8,-10},{-80,-10},{-80,40},{30,40},{30,18},{22,18}}, color={0,0,127}));
+ connect(tGtypeII.pm0, gen.pm0) annotation (Line(points={{-54,6.8},{-54,20},{-90,20},{-90,-32},{-16,-32},{-16,-22}}, color={0,0,127}));
+ annotation (experiment(StopTime=10));
+ end TGTypeII_test;
+
+ model TGTypeIII_test
+ extends Modelica.Icons.Example;
+ extends TGTestBase;
+ OpenIPSL.Electrical.Controls.PSAT.TG.TGTypeIII tGTypeIII(
+ Tg=0.2,
+ Tp=0.04,
+ delta=0.3,
+ sigma=0.04,
+ Tr=5,
+ vmin=-0.1,
+ vmax=0.1,
+ gmax=1,
+ gmin=0,
+ Tw=1,
+ a11=0.5,
+ a13=1,
+ a21=1.5,
+ a23=1,
+ int3=2.712336,
+ P_0=0.1) annotation (Placement(transformation(extent={{-68,-24},
+ {-40,4}})));
+ equation
+
+ connect(tGTypeIII.pm, gen.pm) annotation (Line(points={{-38.6,-10},{-24,-10}}, color={0,0,127}));
+ connect(tGTypeIII.w, gen.w) annotation (Line(points={{-70.8,-10},{-80,-10},{-80,40},{30,40},{30,18},{22,18}}, color={0,0,127}));
+ annotation (Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,
+ -100},{100,100}})), Documentation,
+ experiment(StopTime=10));
+ end TGTypeIII_test;
+
+ model TGTypeIV_test
+ extends TGTestBase;
+ extends Modelica.Icons.Example;
+ OpenIPSL.Electrical.Controls.PSAT.TG.TGTypeIV tGTypeIV(
+ Ki=0.105,
+ Tg=0.2,
+ Tp=0.04,
+ delta=0.3,
+ sigma=0.05,
+ Tr=5,
+ vmin=-0.1,
+ vmax=0.1,
+ gmax=1,
+ gmin=0,
+ Tw=1,
+ a11=0.5,
+ a13=1,
+ a21=1.5,
+ a23=1,
+ Kp=1.163,
+ Pref=0.080199,
+ wref=1) annotation (Placement(transformation(extent={{-68,-24},
+ {-40,4}})));
+ equation
+
+ connect(tGTypeIV.Pm, gen.pm) annotation (Line(points={{-38.6,-10},{-24,-10}}, color={0,0,127}));
+ connect(tGTypeIV.w, gen.w) annotation (Line(points={{-70.8,-10},{-80,-10},{-80,40},{30,40},{30,18},{22,18}}, color={0,0,127}));
+ annotation (Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,
+ -100},{100,100}})), Documentation,
+ experiment(StopTime=10));
+ end TGTypeIV_test;
+
+ model TGTypeV_test
+ extends TGTestBase;
+ extends Modelica.Icons.Example;
+ OpenIPSL.Electrical.Controls.PSAT.TG.TGTypeV tGTypeV(
+ Ki=0.5,
+ Kp=3.0,
+ Tg=0.2,
+ Tp=0.05,
+ sigma=0.04,
+ vmin=-0.1,
+ vmax=0.1,
+ gmax=1,
+ gmin=0,
+ Tw=1,
+ Pref=0.160552) annotation (Placement(transformation(extent={{-68,
+ -24},{-40,4}})));
+ Modelica.Blocks.Sources.Sine sine2(
+ amplitude=0.001,
+ freqHz=0.2,
+ offset=1,
+ startTime=5) annotation (Placement(transformation(
+ extent={{-6,6},{6,-6}},
+ rotation=180,
+ origin={-26,-60})));
+ Modelica.Blocks.Sources.Sine sine1(
+ amplitude=-0.001,
+ freqHz=0.2,
+ startTime=10,
+ offset=0) annotation (Placement(transformation(
+ extent={{6,-6},{-6,6}},
+ rotation=0,
+ origin={-26,-40})));
+ Modelica.Blocks.Math.Add pertubation annotation (Placement(transformation(
+ extent={{-10,10},{10,-10}},
+ rotation=180,
+ origin={-60,-50})));
+ equation
+
+ connect(sine2.y, pertubation.u1) annotation (Line(
+ points={{-32.6,-60},{-40,-60},{-40,-44},{-48,-44}},
+ color={0,0,127},
+ smooth=Smooth.None));
+
+ connect(sine1.y, pertubation.u2) annotation (Line(
+ points={{-32.6,-40},{-40,-40},{-40,-56},{-48,-56}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(pertubation.y, tGTypeV.wref) annotation (Line(
+ points={{-71,-50},{-80,-50},{-80,-18.4},{-70.8,-18.4}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(tGTypeV.Pm, gen.pm) annotation (Line(points={{-38.6,-10},{-24,-10}}, color={0,0,127}));
+ connect(tGTypeV.pref, gen.pm0) annotation (Line(points={{-70.8,-1.6},{-90,-1.6},{-90,-30},{-16,-30},{-16,-22}}, color={0,0,127}));
+ connect(tGTypeV.w, gen.w) annotation (Line(points={{-70.8,-10},{-80,-10},{-80,40},{30,40},{30,18},{22,18}}, color={0,0,127}));
+ annotation (Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,
+ -100},{100,100}}), graphics={Text(
+ extent={{-14,-46},{60,-58}},
+ lineColor={0,0,255},
+ textString="Wref perturbation with sine signal 5-10s")}),
+ Documentation);
+ end TGTypeV_test;
+
+ model TGTypeVI_test
+ extends TGTestBase;
+ extends Modelica.Icons.Example;
+ OpenIPSL.Electrical.Controls.PSAT.TG.TGTypeVI tGTypeVI(
+ Ka=3.33333,
+ Ta=0.07,
+ vmin=-0.1,
+ vmax=0.1,
+ gmax=0.97518,
+ gmin=0.01,
+ Rp=0.05,
+ Kp=1.163,
+ Ki=0.105,
+ Kd=0,
+ Td=0.01,
+ beta=0.1,
+ Tw=2.67,
+ dref=0,
+ po=0.16074) annotation (Placement(transformation(extent={{-68,-24},
+ {-40,4}})));
+ Modelica.Blocks.Sources.Sine sine2(
+ freqHz=0.2,
+ startTime=10,
+ amplitude=-0.001,
+ offset=0) annotation (Placement(visible=true, transformation(
+ origin={-26,-60},
+ extent={{6,-6},{-6,6}},
+ rotation=0)));
+ Modelica.Blocks.Math.Add Perturbation(k2=+1) annotation (Placement(visible=
+ true, transformation(
+ origin={-60,-50},
+ extent={{9.99996,-9.99996},{-10,10}},
+ rotation=0)));
+ Modelica.Blocks.Sources.Sine sine1(
+ freqHz=0.2,
+ startTime=5,
+ amplitude=0.001,
+ offset=1) annotation (Placement(visible=true, transformation(
+ origin={-26,-40},
+ extent={{6.00002,-6.00001},{-6,6.00001}},
+ rotation=0)));
+ equation
+
+ connect(sine1.y, Perturbation.u1) annotation (Line(
+ points={{-32.6,-40},{-39.6999,-40},{-39.6999,-44},{-48,-44}},
+ color={0,0,127},
+ smooth=Smooth.None));
+
+ connect(tGTypeVI.Pm, gen.pm) annotation (Line(points={{-38.6,-10},{-24,-10}}, color={0,0,127}));
+ connect(Perturbation.u2,sine2. y) annotation (Line(points={{-48,-56},{-40,-56},{-40,-60},{-32.6,-60}}, color={0,0,127}));
+ connect(Perturbation.y, tGTypeVI.wref) annotation (Line(points={{-71,-50},{-88,-50},{-88,1.2},{-70.8,1.2}}, color={0,0,127}));
+ connect(gen.pm0, tGTypeVI.pref) annotation (Line(points={{-16,-22},{-16,-28},{-80,-28},{-80,-21.2},{-70.8,-21.2}}, color={0,0,127}));
+ connect(gen.P, tGTypeVI.pe) annotation (Line(points={{22,-6},{32,-6},{32,-30},{-84,-30},{-84,-14.2},{-70.8,-14.2}}, color={0,0,127}));
+ connect(gen.w, tGTypeVI.we) annotation (Line(points={{22,18},{30,18},{30,40},{-80,40},{-80,-5.8},{-70.8,-5.8}}, color={0,0,127}));
+ annotation (
+ Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{
+ 100,100}}), graphics={ Text(
+ extent={{-14,-46},{60,-58}},
+ lineColor={0,0,255},
+ textString="Wref perturbation with sine signal 5-10s")}),
+ Icon(coordinateSystem(extent={{-100,-100},{100,100}})),
+ Documentation,
+ experiment(StopTime=10));
+ end TGTypeVI_test;
+
+ partial model TGTestBase
+ OpenIPSL.Electrical.Loads.PSAT.LOADPQ pwLoadPQ1(
+ P_0=0.08,
+ Q_0=0.06,
+ V_0=1,
+ angle_0=0) annotation (Placement(visible=true, transformation(
+ origin={90.0709,0},
+ extent={{-5.92912,-6.00002},{5.92911,6.00001}},
+ rotation=0)));
+ OpenIPSL.Electrical.Branches.PwLine pwLineFault(
+ B=0.001/2,
+ G=0,
+ R=0.01,
+ X=0.1,
+ t1=8,
+ t2=8.1) annotation (Placement(visible=true, transformation(
+ origin={70,30},
+ extent={{-10,-10},{10,10}},
+ rotation=0)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine3(
+ B=0.001/2,
+ G=0,
+ R=0.01,
+ X=0.1) annotation (Placement(visible=true, transformation(
+ origin={70,10},
+ extent={{-10,-10},{10,10}},
+ rotation=0)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine4(
+ B=0.001/2,
+ G=0,
+ R=0.01,
+ X=0.1) annotation (Placement(visible=true, transformation(
+ origin={70,-10},
+ extent={{-10,-10},{10,10}},
+ rotation=0)));
+ OpenIPSL.Electrical.Loads.PSAT.LOADPQ pwLoadPQ2(
+ P_0=0.08,
+ Q_0=0.06,
+ V_0=1,
+ angle_0=0) annotation (Placement(visible=true, transformation(
+ origin={90,-26},
+ extent={{-6,-6},{6,6}},
+ rotation=0)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine1(
+ B=0.001/2,
+ G=0,
+ R=0.01,
+ X=0.1,
+ displayPF=false) annotation (Placement(visible=true,
+ transformation(
+ origin={46,10},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine2(
+ B=0.001/2,
+ G=0,
+ R=0.01,
+ X=0.1) annotation (Placement(visible=true, transformation(
+ origin={46,-10},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ OpenIPSL.Electrical.Events.PwFaultPQ pwFault(
+ X=0.001,
+ t1=3,
+ t2=3.1,
+ R=10) annotation (Placement(transformation(extent={{76,-36},{64,
+ -24}})));
+ parameter Real p0=0.160352698692006 "Power flow, node active power";
+ inner OpenIPSL.Electrical.SystemBase SysData annotation (
+ Placement(transformation(extent={{-100,80},{-60,100}})));
+ Electrical.Machines.PSAT.Order3 gen(
+ P_0=0.16041,
+ Q_0=0.12012,
+ V_b=400,
+ V_0=1,
+ angle_0=0,
+ Sn=20,
+ Vn=400,
+ ra=0.001,
+ x1d=0.302,
+ M=10,
+ D=0,
+ xd=1.9,
+ T1d0=8,
+ xq=1.7) annotation (Placement(visible=true, transformation(
+ origin={0,0},
+ extent={{-20,-20},{20,20}},
+ rotation=0)));
+ equation
+ connect(pwLine1.n, pwLine3.p) annotation (Line(
+ points={{55,10},{61,10}},
+ color={0,0,255},
+ smooth=Smooth.None));
+ connect(pwLine2.n,pwLine4. p) annotation (Line(
+ points={{55,-10},{61,-10}},
+ color={0,0,255},
+ smooth=Smooth.None));
+
+ connect(pwLine3.p, pwLineFault.p) annotation (Line(points={{61,10},{61,30}}, color={0,0,255}));
+ connect(pwLineFault.n, pwLine3.n) annotation (Line(points={{79,30},{79,10}}, color={0,0,255}));
+ connect(pwFault.p, pwLine4.n) annotation (Line(points={{77,-30},{79,-30},{79,-10}}, color={0,0,255}));
+ connect(pwLoadPQ2.p, pwLine4.n) annotation (Line(points={{90,-20},{90,-10},{79,-10}}, color={0,0,255}));
+ connect(pwLoadPQ1.p, pwLine3.n) annotation (Line(points={{90.0709,6},{90,6},{90,10},{79,10}}, color={0,0,255}));
+ connect(pwLine1.n, pwLine2.n) annotation (Line(points={{55,10},{55,10},{55,-10}}, color={0,0,255}));
+ connect(gen.vf0, gen.vf) annotation (Line(points={{-16,22},{-16,28},{-32,28},{-32,10},{-24,10}}, color={0,0,127}));
+ connect(gen.p, pwLine1.p) annotation (Line(points={{20,0},{37,0},{37,10}}, color={0,0,255}));
+ connect(gen.p, pwLine2.p) annotation (Line(points={{20,0},{37,0},{37,-10}}, color={0,0,255}));
+ annotation (
+ Diagram(coordinateSystem(extent={{-100,-100},{100,100}},
+ preserveAspectRatio=false)),
+ Icon(coordinateSystem(extent={{-100,-100},{100,100}})),
+ Documentation);
+ end TGTestBase;
+ annotation (Documentation);
+ end TG;
+ annotation (Documentation);
+ end PSAT;
+
+ package CGMES
+ package ES
+ model ExcSEXS "SMIB model example of GENROU with Excitation System ExcSEXS"
+ extends OpenIPSL.Examples.SMIBpartial;
+ Modelica.Blocks.Sources.Constant const2(k=0)
+ annotation (Placement(transformation(extent={{-110,166},{-94,182}})));
+ OpenIPSL.Electrical.Machines.PSSE.GENROU gENROE(
+ M_b=100,
+ Tpd0=5,
+ Tppd0=0.07,
+ Tpq0=0.9,
+ Tppq0=0.09,
+ D=0,
+ Xd=1.84,
+ Xq=1.75,
+ Xpd=0.41,
+ Xpq=0.6,
+ Xppd=0.2,
+ Xl=0.12,
+ S10=0.11,
+ S12=0.39,
+ V_0=1,
+ P_0=40,
+ angle_0=4.046276,
+ Q_0=5.416582,
+ Xppq=0.2,
+ R_a=0,
+ Xpp=0.2,
+ H=4.28) annotation (Placement(transformation(extent={{-110,-20},
+ {-70,20}})));
+ Electrical.Controls.CGMES.ES.ExcSEXS sEXS(
+ T_AT_B=0.1,
+ T_B=1,
+ K=100,
+ T_E=0.1,
+ E_MIN=-10,
+ E_MAX=10,
+ K_C=0.08,
+ EFD_MAX=5,
+ EFD_MIN=-5,
+ T_C=1) annotation (Placement(transformation(extent={{-70,-54},{-108,-26}})));
+ Modelica.Blocks.Sources.Constant const(k=0) annotation (Placement(
+ transformation(
+ extent={{4,-4},{-4,4}},
+ rotation=0,
+ origin={-50,-40})));
+ equation
+ connect(gENROE.PMECH, gENROE.PMECH0) annotation (Line(points={{-114,10},{-114,
+ 10},{-114,26},{-60,26},{-60,10},{-68,10}}, color={0,0,127}));
+ connect(gENROE.EFD0, sEXS.EFD0) annotation (Line(points={{-68,-10},{-60,-10},{-60,-48.5556},{-70,-48.5556}},
+ color={0,0,127}));
+ connect(gENROE.ETERM, sEXS.ECOMP) annotation (Line(points={{-68,-6},{-64,-6},{-64,-38.4444},{-70,-38.4444}},
+ color={0,0,127}));
+ connect(sEXS.VOEL, const.y) annotation (Line(points={{-82.35,-54},{-68,-54},{
+ -68,-40},{-54.4,-40}}, color={0,0,127}));
+ connect(sEXS.VOTHSG, const.y) annotation (Line(points={{-70,-31.4444},{-64,-31.4444},{-64,-40},{-54.4,-40}},
+ color={0,0,127}));
+ connect(sEXS.VUEL, const.y) annotation (Line(points={{-76.65,-54},{-64,-54},{
+ -64,-40},{-54.4,-40}}, color={0,0,127}));
+ connect(sEXS.EFD, gENROE.EFD) annotation (Line(points={{-108.95,-38.4444},{-114,-38.4444},{-114,-10},{-114,-10}},
+ color={0,0,127}));
+ connect(gENROE.p, GEN1.p)
+ annotation (Line(points={{-70,0},{-40,0},{-40,0}}, color={0,0,255}));
+ connect(gENROE.XADIFD, sEXS.XADIFD) annotation (Line(points={{-68.4,-18},{-62,-18},{-62,-60},{-97.55,-60},{-97.55,-53.6889}}, color={0,0,127}));
+ annotation (
+ Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-120,-100},{
+ 120,100}})),
+ Documentation,
+ Icon(coordinateSystem(extent={{-120,-100},{120,100}})),
+ experiment(StopTime=10));
+ end ExcSEXS;
+ annotation (Icon(graphics={Rectangle(
+ lineColor={200,200,200},
+ fillColor={248,248,248},
+ fillPattern=FillPattern.HorizontalCylinder,
+ extent={{-100,-100},{100,100}},
+ radius=25.0),Polygon(
+ origin={18,24},
+ lineColor={78,138,73},
+ fillColor={78,138,73},
+ pattern=LinePattern.None,
+ fillPattern=FillPattern.Solid,
+ points={{-58.0,46.0},{42.0,-14.0},{-58.0,-74.0},{-58.0,46.0}})}),
+ Documentation);
+ end ES;
+ annotation (Icon(graphics={Rectangle(
+ lineColor={200,200,200},
+ fillColor={248,248,248},
+ fillPattern=FillPattern.HorizontalCylinder,
+ extent={{-100,-100},{100,100}},
+ radius=25.0),Polygon(
+ origin={18,24},
+ lineColor={78,138,73},
+ fillColor={78,138,73},
+ pattern=LinePattern.None,
+ fillPattern=FillPattern.Solid,
+ points={{-58.0,46.0},{42.0,-14.0},{-58.0,-74.0},{-58.0,46.0}})}),
+ Documentation);
+ end CGMES;
+ annotation (Documentation);
+ end Controls;
+
+ package Events
+ extends Modelica.Icons.ExamplesPackage;
+
+ model TestBreaker "Example model to test the breaker model"
+ extends Modelica.Icons.Example;
+
+ inner Electrical.SystemBase SysData annotation (Placement(transformation(extent={{-100,80},{-76,100}})));
+ Electrical.Buses.InfiniteBus infiniteBusExt(displayPF=true) annotation (Placement(transformation(extent={{-80,20},{-60,40}})));
+ Electrical.Loads.PSAT.LOADPQ lOADPQExt annotation (Placement(transformation(
+ extent={{-10,-10},{10,10}},
+ rotation=90,
+ origin={50,30})));
+ Electrical.Events.Breaker breakerExt(t_o=0.5, enableTrigger=true) annotation (Placement(transformation(extent={{-10,20},{10,40}})));
+ Electrical.Buses.InfiniteBus infiniteBusPara(displayPF=true) annotation (Placement(transformation(extent={{-80,-40},{-60,-20}})));
+ Electrical.Loads.PSAT.LOADPQ lOADPQPara annotation (Placement(transformation(
+ extent={{-10,-10},{10,10}},
+ rotation=90,
+ origin={50,-30})));
+ Electrical.Events.Breaker breakerPara(
+ t_o=0.5,
+ rc_enabled=true,
+ t_rc=0.7) annotation (Placement(transformation(extent={{-10,-40},{10,-20}})));
+ Modelica.Blocks.Sources.BooleanPulse booleanPulse(period=0.1, startTime=0.1) annotation (Placement(transformation(extent={{-40,60},{-20,80}})));
+ Electrical.Branches.PwLine pwLineExt(
+ R=1,
+ X=1,
+ G=1,
+ B=1,
+ displayPF=true)
+ annotation (Placement(transformation(extent={{-40,20},{-20,40}})));
+ Electrical.Branches.PwLine pwLinePara(
+ R=1,
+ X=1,
+ G=1,
+ B=1,
+ displayPF=true)
+ annotation (Placement(transformation(extent={{-40,-40},{-20,-20}})));
+ equation
+ connect(lOADPQExt.p, breakerExt.r) annotation (Line(points={{40,30},{10,30}}, color={0,0,255}));
+ connect(lOADPQPara.p, breakerPara.r) annotation (Line(points={{40,-30},{10,-30}}, color={0,0,255}));
+ connect(booleanPulse.y, breakerExt.Trigger) annotation (Line(points={{-19,70},{0,70},{0,42}}, color={255,0,255}));
+ connect(breakerExt.s, pwLineExt.n) annotation (Line(points={{-10,30},{-21,30}}, color={0,0,255}));
+ connect(pwLineExt.p, infiniteBusExt.p) annotation (Line(points={{-39,30},{-60,30}}, color={0,0,255}));
+ connect(breakerPara.s, pwLinePara.n) annotation (Line(points={{-10,-30},{-21,-30}}, color={0,0,255}));
+ connect(pwLinePara.p, infiniteBusPara.p) annotation (Line(points={{-39,-30},{-60,-30}}, color={0,0,255}));
+ annotation (experiment(StopTime=1.0));
+ end TestBreaker;
+ end Events;
+
+ package Loads
+ extends Modelica.Icons.ExamplesPackage;
+
+ package PSAT
+ extends Modelica.Icons.ExamplesPackage;
+
+ model Loadtestpq
+ extends Modelica.Icons.Example;
+ OpenIPSL.Electrical.Branches.PwLine pwLine1(
+ X=0.1,
+ R=0.01,
+ G=0,
+ B=0.001/2) annotation (Placement(visible=true, transformation(
+ origin={39.8634,-35.6714},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine2(
+ B=0.001/2,
+ G=0,
+ R=0.01,
+ X=0.1) annotation (Placement(visible=true, transformation(
+ origin={39.8634,-15.6714},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine3(
+ B=0.001/2,
+ G=0,
+ R=0.01,
+ X=0.1) annotation (Placement(visible=true, transformation(
+ origin={85.0,-35.0},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine4(
+ B=0.001/2,
+ G=0,
+ R=0.01,
+ X=0.1) annotation (Placement(visible=true, transformation(
+ origin={85.0,-15.0},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ Modelica.Blocks.Math.Add3 add31 annotation (Placement(visible=true,
+ transformation(
+ origin={-45.0,13.9829},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ Modelica.Blocks.Math.Add add1 annotation (Placement(visible=true,
+ transformation(
+ origin={-79.1062,34.6621},
+ extent={{-6.3229,-6.3229},{6.3229,6.3229}},
+ rotation=0)));
+ Modelica.Blocks.Sources.Step step1(height=0.0005, startTime=2) annotation (
+ Placement(visible=true, transformation(
+ origin={-107.7833,40.985},
+ extent={{-5.0,-5.0},{5.0,5.0}},
+ rotation=0)));
+ Modelica.Blocks.Sources.Step step2(height=-0.0005, startTime=2.1) annotation (
+ Placement(visible=true, transformation(
+ origin={-107.7833,25.985},
+ extent={{-5.0,-5.0},{5.0,5.0}},
+ rotation=0)));
+ Modelica.Blocks.Sources.Sine sine1(amplitude=0.001, freqHz=0.2) annotation (
+ Placement(visible=true, transformation(
+ origin={-107.7833,10.4652},
+ extent={{-4.4802,-4.4802},{4.4802,4.4802}},
+ rotation=0)));
+ Modelica.Blocks.Math.Add add2(k2=-1) annotation (Placement(visible=true,
+ transformation(
+ origin={-79.1062,14.6621},
+ extent={{-6.3229,-6.3229},{6.3229,6.3229}},
+ rotation=0)));
+ Modelica.Blocks.Sources.Sine sine2(
+ amplitude=0.001,
+ freqHz=0.2,
+ startTime=5) annotation (Placement(visible=true, transformation(
+ origin={-107.3823,-5.5198},
+ extent={{-4.4802,-4.4802},{4.4802,4.4802}},
+ rotation=0)));
+ Modelica.Blocks.Sources.Sine sine3(
+ amplitude=0.001,
+ freqHz=0.2,
+ startTime=10) annotation (Placement(visible=true, transformation(
+ origin={-107.3823,-76.5048},
+ extent={{-4.4802,-4.4802},{4.4802,4.4802}},
+ rotation=0)));
+ Modelica.Blocks.Math.Add add3(k2=-1) annotation (Placement(visible=true,
+ transformation(
+ origin={-79.1062,-56.3229},
+ extent={{-6.3229,-6.3229},{6.3229,6.3229}},
+ rotation=0)));
+ Modelica.Blocks.Sources.Sine sine4(
+ amplitude=0.001,
+ freqHz=0.2,
+ startTime=5) annotation (Placement(visible=true, transformation(
+ origin={-107.7833,-60.5198},
+ extent={{-4.4802,-4.4802},{4.4802,4.4802}},
+ rotation=0)));
+ Modelica.Blocks.Sources.Step step3(height=-0.0005, startTime=7.1) annotation (
+ Placement(visible=true, transformation(
+ origin={-107.7833,-45.0},
+ extent={{-5.0,-5.0},{5.0,5.0}},
+ rotation=0)));
+ Modelica.Blocks.Sources.Step step4(height=0.0005, startTime=7) annotation (
+ Placement(visible=true, transformation(
+ origin={-107.7833,-30.0},
+ extent={{-5.0,-5.0},{5.0,5.0}},
+ rotation=0)));
+ Modelica.Blocks.Math.Add add4 annotation (Placement(visible=true,
+ transformation(
+ origin={-79.1062,-36.3229},
+ extent={{-6.3229,-6.3229},{6.3229,6.3229}},
+ rotation=0)));
+ Modelica.Blocks.Math.Add3 add32 annotation (Placement(visible=true,
+ transformation(
+ origin={-45.0,-57.0021},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ OpenIPSL.Electrical.Machines.PSAT.Order3 order3_Inputs_Outputs1(
+ P_0=0.0800989878477798,
+ Q_0=0.0570163388727956,
+ Sn=20,
+ V_b=400,
+ V_0=1,
+ angle_0=0,
+ Vn=400,
+ ra=0.001,
+ x1d=0.302,
+ M=10,
+ D=0,
+ xd=1.9,
+ T1d0=8,
+ xq=1.7) annotation (Placement(visible=true, transformation(
+ origin={3.3113,-20.7513},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ OpenIPSL.Electrical.Loads.PSAT.LOADPQ LOADPQ1(
+ Sn=10,
+ P_0=0.8,
+ Q_0=0.6) annotation (Placement(visible=true, transformation(
+ origin={122.1536,-15.0},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ inner OpenIPSL.Electrical.SystemBase SysData
+ annotation (Placement(transformation(extent={{50,80},{75,100}})));
+ equation
+ connect(pwLine4.n, LOADPQ1.p) annotation (Line(
+ visible=true,
+ origin={101.5768,-15.0},
+ points={{-7.5768,0},{20.5768,0},{20.5768,10}}));
+ connect(pwLine4.n, pwLine3.n) annotation (Line(
+ visible=true,
+ origin={92.0,-25.0},
+ points={{2,10},{2,5},{5,5},{5,0},{2,0},{2,-10}}));
+ connect(pwLine3.p, pwLine4.p) annotation (Line(
+ visible=true,
+ origin={78.0,-25.0},
+ points={{-2,-10},{-2,-5},{-5,-5},{-5,0},{-2,0},{-2,10}}));
+ connect(pwLine1.n, pwLine3.p) annotation (Line(
+ visible=true,
+ origin={67.2159,-35.3357},
+ points={{-18.3525,-0.3357},{4.7841,-0.3357},{4.7841,0.3357},{8.7841,0.3357}}));
+ connect(pwLine2.n, pwLine4.p) annotation (Line(
+ visible=true,
+ origin={67.2159,-15.3357},
+ points={{-18.3525,-0.3357},{4.7841,-0.3357},{4.7841,0.3357},{8.7841,0.3357}}));
+ connect(order3_Inputs_Outputs1.pm0, add32.u3) annotation (Line(
+ visible=true,
+ origin={-19.0108,-51.4898},
+ points={{14.3221,19.7385},{41.1619,19.7385},{41.1619,-23.5102},{-38.8284,
+ -23.5102},{-38.8284,-13.5123},{-37.9892,-13.5123}},
+ color={0,0,127}));
+ connect(order3_Inputs_Outputs1.vf0, add31.u3) annotation (Line(
+ visible=true,
+ origin={-21.3443,-2.9483},
+ points={{16.6556,-6.803},{38.6557,-6.803},{38.6557,-0.1282},{-38.6557,-0.1282},
+ {-38.6557,8.9312},{-35.6557,8.9312}},
+ color={0,0,127}));
+ connect(add31.y, order3_Inputs_Outputs1.vf) annotation (Line(
+ visible=true,
+ origin={-28.1135,-5.371},
+ points={{-5.8865,19.3539},{-2.8865,19.3539},{-2.8865,-9.629},{-3.8826,-9.629},{-3.8826,-10.3803},{19.4248,-10.3803}},
+ color={0,0,127}));
+ connect(add32.y, order3_Inputs_Outputs1.pm) annotation (Line(
+ visible=true,
+ origin={-28.216,-45.5845},
+ points={{-5.784,-11.4176},{-2.784,-11.4176},{-2.784,-9.4155},{-4.0877,-9.4155},{-4.0877,19.8332},{19.5273,19.8332}},
+ color={0,0,127}));
+ connect(step3.y, add4.u2) annotation (Line(
+ visible=true,
+ origin={-92.0911,-42.5583},
+ points={{-10.1922,-2.4417},{2.3974,-2.4417},{2.3974,2.44166},{5.39742,
+ 2.44166}},
+ color={0,0,127}));
+ connect(add3.y, add32.u2) annotation (Line(
+ visible=true,
+ origin={-62.2878,-56.6625},
+ points={{-9.86321,0.3396},{2.2878,0.3396},{2.2878,-0.3396},{5.2878,-0.3396}},
+ color={0,0,127}));
+
+ connect(step4.y, add4.u1) annotation (Line(
+ visible=true,
+ origin={-92.0911,-31.2646},
+ points={{-10.1922,1.2646},{2.3974,1.2646},{2.3974,-1.26456},{5.39742,-1.26456}},
+ color={0,0,127}));
+
+ connect(add4.y, add32.u1) annotation (Line(
+ visible=true,
+ origin={-62.2878,-42.6625},
+ points={{-9.86321,6.3396},{2.2878,6.3396},{2.2878,-6.3396},{5.2878,-6.3396}},
+ color={0,0,127}));
+
+ connect(add3.u2, sine3.y) annotation (Line(
+ visible=true,
+ origin={-95.6692,-69.1821},
+ points={{8.97552,9.06546},{2.2971,9.06546},{2.2971,-5.4041},{-6.78488,-5.4041},
+ {-6.78488,-7.3227}},
+ color={0,0,127}));
+ connect(sine4.y, add3.u1) annotation (Line(
+ visible=true,
+ origin={-93.5606,-55.5207},
+ points={{-9.29448,-4.9991},{-1.4394,-0.9841},{3.8669,2.9916},{6.86692,
+ 2.99154}},
+ color={0,0,127}));
+ connect(sine1.y, add2.u1) annotation (Line(
+ visible=true,
+ origin={-93.5606,15.4643},
+ points={{-9.29448,-4.9991},{-1.4394,-0.9841},{3.8669,2.9916},{6.86692,
+ 2.99154}},
+ color={0,0,127}));
+ connect(add2.u2, sine2.y) annotation (Line(
+ visible=true,
+ origin={-95.6692,1.8029},
+ points={{8.97552,9.06546},{2.2971,9.06546},{2.2971,-5.4041},{-6.78488,-5.4041},
+ {-6.78488,-7.3227}},
+ color={0,0,127}));
+ connect(step2.y, add1.u2) annotation (Line(
+ visible=true,
+ origin={-92.0911,28.4267},
+ points={{-10.1922,-2.4417},{2.3974,-2.4417},{2.3974,2.44166},{5.39742,
+ 2.44166}},
+ color={0,0,127}));
+ connect(step1.y, add1.u1) annotation (Line(
+ visible=true,
+ origin={-92.0911,39.7204},
+ points={{-10.1922,1.2646},{2.3974,1.2646},{2.3974,-1.26456},{5.39742,-1.26456}},
+ color={0,0,127}));
+
+ connect(add1.y, add31.u1) annotation (Line(
+ visible=true,
+ origin={-62.2878,28.3225},
+ points={{-9.86321,6.3396},{2.2878,6.3396},{2.2878,-6.3396},{5.2878,-6.3396}},
+ color={0,0,127}));
+
+ connect(add2.y, add31.u2) annotation (Line(
+ visible=true,
+ origin={-62.2878,14.3225},
+ points={{-9.86321,0.3396},{2.2878,0.3396},{2.2878,-0.3396},{5.2878,-0.3396}},
+ color={0,0,127}));
+
+ connect(order3_Inputs_Outputs1.p, pwLine2.p) annotation (Line(
+ visible=true,
+ origin={25.2254,-18.2865},
+ points={{-11.9141,-2.4648},{1.638,-2.4648},{1.638,2.6151},{5.638,2.6151}}));
+ connect(pwLine2.p, pwLine1.p) annotation (Line(
+ visible=true,
+ origin={32.8634,-25.6714},
+ points={{-2,10},{-2,5},{-5,5},{-5,0},{-2,0},{-2,-10}}));
+ annotation (Diagram(coordinateSystem(
+ extent={{-148.5,-105.0},{148.5,105.0}},
+ preserveAspectRatio=true,
+ initialScale=0.1,
+ grid={5,5}), graphics={Text(
+ visible=true,
+ origin={39.8634,3.4703},
+ fillPattern=FillPattern.Solid,
+ extent={{-35.0,-5.8583},{35.0,5.8583}},
+ textString="SystemSbase=100 MVA",
+ fontName="Arial")}), Documentation);
+ end Loadtestpq;
+
+ model Loadtestexponentialrecovery
+ extends Modelica.Icons.Example;
+ OpenIPSL.Electrical.Branches.PwLine pwLine1(
+ X=0.1,
+ R=0.01,
+ G=0,
+ B=0.001/2) annotation (Placement(visible=true, transformation(
+ origin={39.8634,-35.6714},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine2(
+ B=0.001/2,
+ G=0,
+ R=0.01,
+ X=0.1) annotation (Placement(visible=true, transformation(
+ origin={39.8634,-15.6714},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine3(
+ B=0.001/2,
+ G=0,
+ R=0.01,
+ X=0.1) annotation (Placement(visible=true, transformation(
+ origin={85.0,-35.0},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine4(
+ B=0.001/2,
+ G=0,
+ R=0.01,
+ X=0.1) annotation (Placement(visible=true, transformation(
+ origin={85.0,-15.0},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ Modelica.Blocks.Math.Add3 add31 annotation (Placement(visible=true,
+ transformation(
+ origin={-45.0,13.9829},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ Modelica.Blocks.Math.Add add1 annotation (Placement(visible=true,
+ transformation(
+ origin={-79.1062,34.6621},
+ extent={{-6.3229,-6.3229},{6.3229,6.3229}},
+ rotation=0)));
+ Modelica.Blocks.Sources.Step step1(height=0.0005, startTime=2) annotation (
+ Placement(visible=true, transformation(
+ origin={-107.7833,40.985},
+ extent={{-5.0,-5.0},{5.0,5.0}},
+ rotation=0)));
+ Modelica.Blocks.Sources.Step step2(height=-0.0005, startTime=2.1) annotation (
+ Placement(visible=true, transformation(
+ origin={-107.7833,25.985},
+ extent={{-5.0,-5.0},{5.0,5.0}},
+ rotation=0)));
+ Modelica.Blocks.Sources.Sine sine1(amplitude=0.001, freqHz=0.2) annotation (
+ Placement(visible=true, transformation(
+ origin={-107.7833,10.4652},
+ extent={{-4.4802,-4.4802},{4.4802,4.4802}},
+ rotation=0)));
+ Modelica.Blocks.Math.Add add2(k2=-1) annotation (Placement(visible=true,
+ transformation(
+ origin={-79.1062,14.6621},
+ extent={{-6.3229,-6.3229},{6.3229,6.3229}},
+ rotation=0)));
+ Modelica.Blocks.Sources.Sine sine2(
+ amplitude=0.001,
+ freqHz=0.2,
+ startTime=5) annotation (Placement(visible=true, transformation(
+ origin={-107.3823,-5.5198},
+ extent={{-4.4802,-4.4802},{4.4802,4.4802}},
+ rotation=0)));
+ Modelica.Blocks.Sources.Sine sine3(
+ amplitude=0.001,
+ freqHz=0.2,
+ startTime=10) annotation (Placement(visible=true, transformation(
+ origin={-107.3823,-76.5048},
+ extent={{-4.4802,-4.4802},{4.4802,4.4802}},
+ rotation=0)));
+ Modelica.Blocks.Math.Add add3(k2=-1) annotation (Placement(visible=true,
+ transformation(
+ origin={-79.1062,-56.3229},
+ extent={{-6.3229,-6.3229},{6.3229,6.3229}},
+ rotation=0)));
+ Modelica.Blocks.Sources.Sine sine4(
+ amplitude=0.001,
+ freqHz=0.2,
+ startTime=5) annotation (Placement(visible=true, transformation(
+ origin={-107.7833,-60.5198},
+ extent={{-4.4802,-4.4802},{4.4802,4.4802}},
+ rotation=0)));
+ Modelica.Blocks.Sources.Step step3(height=-0.0005, startTime=7.1) annotation (
+ Placement(visible=true, transformation(
+ origin={-107.7833,-45.0},
+ extent={{-5.0,-5.0},{5.0,5.0}},
+ rotation=0)));
+ Modelica.Blocks.Sources.Step step4(height=0.0005, startTime=7) annotation (
+ Placement(visible=true, transformation(
+ origin={-107.7833,-30.0},
+ extent={{-5.0,-5.0},{5.0,5.0}},
+ rotation=0)));
+ Modelica.Blocks.Math.Add add4 annotation (Placement(visible=true,
+ transformation(
+ origin={-79.1062,-36.3229},
+ extent={{-6.3229,-6.3229},{6.3229,6.3229}},
+ rotation=0)));
+ Modelica.Blocks.Math.Add3 add32 annotation (Placement(visible=true,
+ transformation(
+ origin={-45.0,-57.0021},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ OpenIPSL.Electrical.Machines.PSAT.Order3 order3_Inputs_Outputs1(
+ P_0=0.0800989878477798,
+ Q_0=0.0570163388727956,
+ Sn=20,
+ V_b=400,
+ V_0=1,
+ angle_0=0,
+ Vn=400,
+ ra=0.001,
+ x1d=0.302,
+ M=10,
+ D=0,
+ xd=1.9,
+ T1d0=8,
+ xq=1.7) annotation (Placement(visible=true, transformation(
+ origin={3.3113,-20.7513},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ OpenIPSL.Electrical.Loads.PSAT.ExponentialRecovery exponentialRecovery1(
+ V_0=0.993325452568749,
+ alpha_t=1.5,
+ beta_t=1.5,
+ Sn=10,
+ P_0=0.8,
+ Q_0=0.6) annotation (Placement(visible=true, transformation(
+ origin={125.0,-17.844},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ inner OpenIPSL.Electrical.SystemBase SysData annotation (Placement(
+ transformation(extent={{100,80},{125,100}})));
+ equation
+ connect(pwLine4.n, exponentialRecovery1.p) annotation (Line(
+ visible=true,
+ origin={107.0,-16.422},
+ points={{-13,1.422},{4,1.422},{4,8.578},{18,8.578}}));
+ connect(pwLine4.n, pwLine3.n) annotation (Line(
+ visible=true,
+ origin={92.0,-25.0},
+ points={{2,10},{2,5},{5,5},{5,0},{2,0},{2,-10}}));
+ connect(pwLine3.p, pwLine4.p) annotation (Line(
+ visible=true,
+ origin={78.0,-25.0},
+ points={{-2,-10},{-2,-5},{-5,-5},{-5,0},{-2,0},{-2,10}}));
+ connect(pwLine1.n, pwLine3.p) annotation (Line(
+ visible=true,
+ origin={67.2159,-35.3357},
+ points={{-18.3525,-0.3357},{4.7841,-0.3357},{4.7841,0.3357},{8.7841,0.3357}}));
+ connect(pwLine2.n, pwLine4.p) annotation (Line(
+ visible=true,
+ origin={67.2159,-15.3357},
+ points={{-18.3525,-0.3357},{4.7841,-0.3357},{4.7841,0.3357},{8.7841,0.3357}}));
+ connect(order3_Inputs_Outputs1.pm0, add32.u3) annotation (Line(
+ visible=true,
+ origin={-19.0108,-51.4898},
+ points={{14.3221,19.7385},{41.1619,19.7385},{41.1619,-23.5102},{-38.8284,
+ -23.5102},{-38.8284,-13.5123},{-37.9892,-13.5123}},
+ color={0,0,127}));
+ connect(order3_Inputs_Outputs1.vf0, add31.u3) annotation (Line(
+ visible=true,
+ origin={-21.3443,-2.9483},
+ points={{16.6556,-6.803},{38.6557,-6.803},{38.6557,-0.1282},{-38.6557,-0.1282},
+ {-38.6557,8.9312},{-35.6557,8.9312}},
+ color={0,0,127}));
+ connect(add31.y, order3_Inputs_Outputs1.vf) annotation (Line(
+ visible=true,
+ origin={-28.1135,-5.371},
+ points={{-5.8865,19.3539},{-2.8865,19.3539},{-2.8865,-9.629},{-3.8826,-9.629},{-3.8826,-10.3803},{19.4248,-10.3803}},
+ color={0,0,127}));
+ connect(add32.y, order3_Inputs_Outputs1.pm) annotation (Line(
+ visible=true,
+ origin={-28.216,-45.5845},
+ points={{-5.784,-11.4176},{-2.784,-11.4176},{-2.784,-9.4155},{-4.0877,-9.4155},{-4.0877,19.8332},{19.5273,19.8332}},
+ color={0,0,127}));
+ connect(step3.y, add4.u2) annotation (Line(
+ visible=true,
+ origin={-92.0911,-42.5583},
+ points={{-10.1922,-2.4417},{2.3974,-2.4417},{2.3974,2.44166},{5.39742,
+ 2.44166}},
+ color={0,0,127}));
+ connect(add3.y, add32.u2) annotation (Line(
+ visible=true,
+ origin={-62.2878,-56.6625},
+ points={{-9.86321,0.3396},{2.2878,0.3396},{2.2878,-0.3396},{5.2878,-0.3396}},
+ color={0,0,127}));
+
+ connect(step4.y, add4.u1) annotation (Line(
+ visible=true,
+ origin={-92.0911,-31.2646},
+ points={{-10.1922,1.2646},{2.3974,1.2646},{2.3974,-1.26456},{5.39742,-1.26456}},
+ color={0,0,127}));
+
+ connect(add4.y, add32.u1) annotation (Line(
+ visible=true,
+ origin={-62.2878,-42.6625},
+ points={{-9.86321,6.3396},{2.2878,6.3396},{2.2878,-6.3396},{5.2878,-6.3396}},
+ color={0,0,127}));
+
+ connect(add3.u2, sine3.y) annotation (Line(
+ visible=true,
+ origin={-95.6692,-69.1821},
+ points={{8.97552,9.06546},{2.2971,9.06546},{2.2971,-5.4041},{-6.78488,-5.4041},
+ {-6.78488,-7.3227}},
+ color={0,0,127}));
+ connect(sine4.y, add3.u1) annotation (Line(
+ visible=true,
+ origin={-93.5606,-55.5207},
+ points={{-9.29448,-4.9991},{-1.4394,-0.9841},{3.8669,2.9916},{6.86692,
+ 2.99154}},
+ color={0,0,127}));
+ connect(sine1.y, add2.u1) annotation (Line(
+ visible=true,
+ origin={-93.5606,15.4643},
+ points={{-9.29448,-4.9991},{-1.4394,-0.9841},{3.8669,2.9916},{6.86692,
+ 2.99154}},
+ color={0,0,127}));
+ connect(add2.u2, sine2.y) annotation (Line(
+ visible=true,
+ origin={-95.6692,1.8029},
+ points={{8.97552,9.06546},{2.2971,9.06546},{2.2971,-5.4041},{-6.78488,-5.4041},
+ {-6.78488,-7.3227}},
+ color={0,0,127}));
+ connect(step2.y, add1.u2) annotation (Line(
+ visible=true,
+ origin={-92.0911,28.4267},
+ points={{-10.1922,-2.4417},{2.3974,-2.4417},{2.3974,2.44166},{5.39742,
+ 2.44166}},
+ color={0,0,127}));
+ connect(step1.y, add1.u1) annotation (Line(
+ visible=true,
+ origin={-92.0911,39.7204},
+ points={{-10.1922,1.2646},{2.3974,1.2646},{2.3974,-1.26456},{5.39742,-1.26456}},
+ color={0,0,127}));
+
+ connect(add1.y, add31.u1) annotation (Line(
+ visible=true,
+ origin={-62.2878,28.3225},
+ points={{-9.86321,6.3396},{2.2878,6.3396},{2.2878,-6.3396},{5.2878,-6.3396}},
+ color={0,0,127}));
+
+ connect(add2.y, add31.u2) annotation (Line(
+ visible=true,
+ origin={-62.2878,14.3225},
+ points={{-9.86321,0.3396},{2.2878,0.3396},{2.2878,-0.3396},{5.2878,-0.3396}},
+ color={0,0,127}));
+
+ connect(order3_Inputs_Outputs1.p, pwLine2.p) annotation (Line(
+ visible=true,
+ origin={25.2254,-18.2865},
+ points={{-11.9141,-2.4648},{1.638,-2.4648},{1.638,2.6151},{5.638,2.6151}}));
+ connect(pwLine2.p, pwLine1.p) annotation (Line(
+ visible=true,
+ origin={32.8634,-25.6714},
+ points={{-2,10},{-2,5},{-5,5},{-5,0},{-2,0},{-2,-10}}));
+ annotation (Diagram(coordinateSystem(
+ extent={{-148.5,-105.0},{148.5,105.0}},
+ preserveAspectRatio=true,
+ initialScale=0.1,
+ grid={5,5}), graphics={Text(
+ visible=true,
+ origin={39.8634,3.4703},
+ fillPattern=FillPattern.Solid,
+ extent={{-35.0,-5.8583},{35.0,5.8583}},
+ textString="SystemSbase=100 MVA",
+ fontName="Arial")}), Documentation);
+ end Loadtestexponentialrecovery;
+
+ model Loadtestvoltagedependantload
+ extends Modelica.Icons.Example;
+ OpenIPSL.Electrical.Branches.PwLine pwLine1(
+ X=0.1,
+ R=0.01,
+ G=0,
+ B=0.001/2) annotation (Placement(visible=true, transformation(
+ origin={39.8634,-35.6714},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine2(
+ B=0.001/2,
+ G=0,
+ R=0.01,
+ X=0.1) annotation (Placement(visible=true, transformation(
+ origin={39.8634,-15.6714},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine3(
+ B=0.001/2,
+ G=0,
+ R=0.01,
+ X=0.1) annotation (Placement(visible=true, transformation(
+ origin={85.0,-35.0},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine4(
+ B=0.001/2,
+ G=0,
+ R=0.01,
+ X=0.1) annotation (Placement(visible=true, transformation(
+ origin={85.0,-15.0},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ Modelica.Blocks.Math.Add3 add31 annotation (Placement(visible=true,
+ transformation(
+ origin={-45.0,13.9829},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ Modelica.Blocks.Math.Add add1 annotation (Placement(visible=true,
+ transformation(
+ origin={-79.1062,34.6621},
+ extent={{-6.3229,-6.3229},{6.3229,6.3229}},
+ rotation=0)));
+ Modelica.Blocks.Sources.Step step1(height=0.0005, startTime=2) annotation (
+ Placement(visible=true, transformation(
+ origin={-107.7833,40.985},
+ extent={{-5.0,-5.0},{5.0,5.0}},
+ rotation=0)));
+ Modelica.Blocks.Sources.Step step2(height=-0.0005, startTime=2.1) annotation (
+ Placement(visible=true, transformation(
+ origin={-107.7833,25.985},
+ extent={{-5.0,-5.0},{5.0,5.0}},
+ rotation=0)));
+ Modelica.Blocks.Sources.Sine sine1(amplitude=0.001, freqHz=0.2) annotation (
+ Placement(visible=true, transformation(
+ origin={-107.7833,10.4652},
+ extent={{-4.4802,-4.4802},{4.4802,4.4802}},
+ rotation=0)));
+ Modelica.Blocks.Math.Add add2(k2=-1) annotation (Placement(visible=true,
+ transformation(
+ origin={-79.1062,14.6621},
+ extent={{-6.3229,-6.3229},{6.3229,6.3229}},
+ rotation=0)));
+ Modelica.Blocks.Sources.Sine sine2(
+ amplitude=0.001,
+ freqHz=0.2,
+ startTime=5) annotation (Placement(visible=true, transformation(
+ origin={-107.3823,-5.5198},
+ extent={{-4.4802,-4.4802},{4.4802,4.4802}},
+ rotation=0)));
+ Modelica.Blocks.Sources.Sine sine3(
+ amplitude=0.001,
+ freqHz=0.2,
+ startTime=10) annotation (Placement(visible=true, transformation(
+ origin={-107.3823,-76.5048},
+ extent={{-4.4802,-4.4802},{4.4802,4.4802}},
+ rotation=0)));
+ Modelica.Blocks.Math.Add add3(k2=-1) annotation (Placement(visible=true,
+ transformation(
+ origin={-79.1062,-56.3229},
+ extent={{-6.3229,-6.3229},{6.3229,6.3229}},
+ rotation=0)));
+ Modelica.Blocks.Sources.Sine sine4(
+ amplitude=0.001,
+ freqHz=0.2,
+ startTime=5) annotation (Placement(visible=true, transformation(
+ origin={-107.7833,-60.5198},
+ extent={{-4.4802,-4.4802},{4.4802,4.4802}},
+ rotation=0)));
+ Modelica.Blocks.Sources.Step step3(height=-0.0005, startTime=7.1) annotation (
+ Placement(visible=true, transformation(
+ origin={-107.7833,-45.0},
+ extent={{-5.0,-5.0},{5.0,5.0}},
+ rotation=0)));
+ Modelica.Blocks.Sources.Step step4(height=0.0005, startTime=7) annotation (
+ Placement(visible=true, transformation(
+ origin={-107.7833,-30.0},
+ extent={{-5.0,-5.0},{5.0,5.0}},
+ rotation=0)));
+ Modelica.Blocks.Math.Add add4 annotation (Placement(visible=true,
+ transformation(
+ origin={-79.1062,-36.3229},
+ extent={{-6.3229,-6.3229},{6.3229,6.3229}},
+ rotation=0)));
+ Modelica.Blocks.Math.Add3 add32 annotation (Placement(visible=true,
+ transformation(
+ origin={-45.0,-57.0021},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ OpenIPSL.Electrical.Machines.PSAT.Order3 order3_Inputs_Outputs1(
+ P_0=0.0800989878477798,
+ Q_0=0.0570163388727956,
+ Sn=20,
+ V_b=400,
+ V_0=1,
+ angle_0=0,
+ Vn=400,
+ ra=0.001,
+ x1d=0.302,
+ M=10,
+ D=0,
+ xd=1.9,
+ T1d0=8,
+ xq=1.7) annotation (Placement(visible=true, transformation(
+ origin={3.3113,-20.7513},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ OpenIPSL.Electrical.Loads.PSAT.VoltDependant voltDepend1(
+ Sn=10,
+ V_0=0.993325452568749,
+ P_0=0.8,
+ Q_0=0.6) annotation (Placement(visible=true, transformation(
+ origin={125.0,-45.0},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ inner OpenIPSL.Electrical.SystemBase SysData annotation (Placement(
+ transformation(extent={{100,80},{125,100}})));
+ equation
+ connect(pwLine3.n, voltDepend1.p) annotation (Line(
+ visible=true,
+ origin={107.0,-40.0},
+ points={{-13,5},{4,5},{4,5},{18,5}}));
+ connect(pwLine4.n, pwLine3.n) annotation (Line(
+ visible=true,
+ origin={92.0,-25.0},
+ points={{2,10},{2,5},{5,5},{5,0},{2,0},{2,-10}}));
+ connect(pwLine3.p, pwLine4.p) annotation (Line(
+ visible=true,
+ origin={78.0,-25.0},
+ points={{-2,-10},{-2,-5},{-5,-5},{-5,0},{-2,0},{-2,10}}));
+ connect(pwLine1.n, pwLine3.p) annotation (Line(
+ visible=true,
+ origin={67.2159,-35.3357},
+ points={{-18.3525,-0.3357},{4.7841,-0.3357},{4.7841,0.3357},{8.7841,0.3357}}));
+ connect(pwLine2.n, pwLine4.p) annotation (Line(
+ visible=true,
+ origin={67.2159,-15.3357},
+ points={{-18.3525,-0.3357},{4.7841,-0.3357},{4.7841,0.3357},{8.7841,0.3357}}));
+ connect(order3_Inputs_Outputs1.pm0, add32.u3) annotation (Line(
+ visible=true,
+ origin={-19.0108,-51.4898},
+ points={{14.3221,19.7385},{41.1619,19.7385},{41.1619,-23.5102},{-38.8284,
+ -23.5102},{-38.8284,-13.5123},{-37.9892,-13.5123}},
+ color={0,0,127}));
+ connect(order3_Inputs_Outputs1.vf0, add31.u3) annotation (Line(
+ visible=true,
+ origin={-21.3443,-2.9483},
+ points={{16.6556,-6.803},{38.6557,-6.803},{38.6557,-0.1282},{-38.6557,-0.1282},
+ {-38.6557,8.9312},{-35.6557,8.9312}},
+ color={0,0,127}));
+ connect(add31.y, order3_Inputs_Outputs1.vf) annotation (Line(
+ visible=true,
+ origin={-28.1135,-5.371},
+ points={{-5.8865,19.3539},{-2.8865,19.3539},{-2.8865,-9.629},{-3.8826,-9.629},{-3.8826,-10.3803},{19.4248,-10.3803}},
+ color={0,0,127}));
+ connect(add32.y, order3_Inputs_Outputs1.pm) annotation (Line(
+ visible=true,
+ origin={-28.216,-45.5845},
+ points={{-5.784,-11.4176},{-2.784,-11.4176},{-2.784,-9.4155},{-4.0877,-9.4155},{-4.0877,19.8332},{19.5273,19.8332}},
+ color={0,0,127}));
+ connect(step3.y, add4.u2) annotation (Line(
+ visible=true,
+ origin={-92.0911,-42.5583},
+ points={{-10.1922,-2.4417},{2.3974,-2.4417},{2.3974,2.44166},{5.39742,
+ 2.44166}},
+ color={0,0,127}));
+ connect(add3.y, add32.u2) annotation (Line(
+ visible=true,
+ origin={-62.2878,-56.6625},
+ points={{-9.86321,0.3396},{2.2878,0.3396},{2.2878,-0.3396},{5.2878,-0.3396}},
+ color={0,0,127}));
+
+ connect(step4.y, add4.u1) annotation (Line(
+ visible=true,
+ origin={-92.0911,-31.2646},
+ points={{-10.1922,1.2646},{2.3974,1.2646},{2.3974,-1.26456},{5.39742,-1.26456}},
+ color={0,0,127}));
+
+ connect(add4.y, add32.u1) annotation (Line(
+ visible=true,
+ origin={-62.2878,-42.6625},
+ points={{-9.86321,6.3396},{2.2878,6.3396},{2.2878,-6.3396},{5.2878,-6.3396}},
+ color={0,0,127}));
+
+ connect(add3.u2, sine3.y) annotation (Line(
+ visible=true,
+ origin={-95.6692,-69.1821},
+ points={{8.97552,9.06546},{2.2971,9.06546},{2.2971,-5.4041},{-6.78488,-5.4041},
+ {-6.78488,-7.3227}},
+ color={0,0,127}));
+ connect(sine4.y, add3.u1) annotation (Line(
+ visible=true,
+ origin={-93.5606,-55.5207},
+ points={{-9.29448,-4.9991},{-1.4394,-0.9841},{3.8669,2.9916},{6.86692,
+ 2.99154}},
+ color={0,0,127}));
+ connect(sine1.y, add2.u1) annotation (Line(
+ visible=true,
+ origin={-93.5606,15.4643},
+ points={{-9.29448,-4.9991},{-1.4394,-0.9841},{3.8669,2.9916},{6.86692,
+ 2.99154}},
+ color={0,0,127}));
+ connect(add2.u2, sine2.y) annotation (Line(
+ visible=true,
+ origin={-95.6692,1.8029},
+ points={{8.97552,9.06546},{2.2971,9.06546},{2.2971,-5.4041},{-6.78488,-5.4041},
+ {-6.78488,-7.3227}},
+ color={0,0,127}));
+ connect(step2.y, add1.u2) annotation (Line(
+ visible=true,
+ origin={-92.0911,28.4267},
+ points={{-10.1922,-2.4417},{2.3974,-2.4417},{2.3974,2.44166},{5.39742,
+ 2.44166}},
+ color={0,0,127}));
+ connect(step1.y, add1.u1) annotation (Line(
+ visible=true,
+ origin={-92.0911,39.7204},
+ points={{-10.1922,1.2646},{2.3974,1.2646},{2.3974,-1.26456},{5.39742,-1.26456}},
+ color={0,0,127}));
+
+ connect(add1.y, add31.u1) annotation (Line(
+ visible=true,
+ origin={-62.2878,28.3225},
+ points={{-9.86321,6.3396},{2.2878,6.3396},{2.2878,-6.3396},{5.2878,-6.3396}},
+ color={0,0,127}));
+
+ connect(add2.y, add31.u2) annotation (Line(
+ visible=true,
+ origin={-62.2878,14.3225},
+ points={{-9.86321,0.3396},{2.2878,0.3396},{2.2878,-0.3396},{5.2878,-0.3396}},
+ color={0,0,127}));
+
+ connect(order3_Inputs_Outputs1.p, pwLine2.p) annotation (Line(
+ visible=true,
+ origin={25.2254,-18.2865},
+ points={{-11.9141,-2.4648},{1.638,-2.4648},{1.638,2.6151},{5.638,2.6151}}));
+ connect(pwLine2.p, pwLine1.p) annotation (Line(
+ visible=true,
+ origin={32.8634,-25.6714},
+ points={{-2,10},{-2,5},{-5,5},{-5,0},{-2,0},{-2,-10}}));
+ annotation (Diagram(coordinateSystem(
+ extent={{-148.5,-105.0},{148.5,105.0}},
+ preserveAspectRatio=true,
+ initialScale=0.1,
+ grid={5,5}), graphics={Text(
+ visible=true,
+ origin={39.8634,3.4703},
+ fillPattern=FillPattern.Solid,
+ extent={{-35.0,-5.8583},{35.0,5.8583}},
+ textString="SystemSbase=100 MVA",
+ fontName="Arial")}), Documentation);
+ end Loadtestvoltagedependantload;
+
+ model Loadtestzip
+ extends Modelica.Icons.Example;
+ OpenIPSL.Electrical.Branches.PwLine pwLine1(
+ X=0.1,
+ R=0.01,
+ G=0,
+ B=0.001/2) annotation (Placement(visible=true, transformation(
+ origin={39.8634,-35.6714},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine2(
+ B=0.001/2,
+ G=0,
+ R=0.01,
+ X=0.1) annotation (Placement(visible=true, transformation(
+ origin={39.8634,-15.6714},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine3(
+ B=0.001/2,
+ G=0,
+ R=0.01,
+ X=0.1) annotation (Placement(visible=true, transformation(
+ origin={85.0,-35.0},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine4(
+ B=0.001/2,
+ G=0,
+ R=0.01,
+ X=0.1) annotation (Placement(visible=true, transformation(
+ origin={85.0,-15.0},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ Modelica.Blocks.Math.Add3 add31 annotation (Placement(visible=true,
+ transformation(
+ origin={-45.0,13.9829},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ Modelica.Blocks.Math.Add add1 annotation (Placement(visible=true,
+ transformation(
+ origin={-79.1062,34.6621},
+ extent={{-6.3229,-6.3229},{6.3229,6.3229}},
+ rotation=0)));
+ Modelica.Blocks.Sources.Step step1(height=0.0005, startTime=2) annotation (
+ Placement(visible=true, transformation(
+ origin={-107.7833,40.985},
+ extent={{-5.0,-5.0},{5.0,5.0}},
+ rotation=0)));
+ Modelica.Blocks.Sources.Step step2(height=-0.0005, startTime=2.1) annotation (
+ Placement(visible=true, transformation(
+ origin={-107.7833,25.985},
+ extent={{-5.0,-5.0},{5.0,5.0}},
+ rotation=0)));
+ Modelica.Blocks.Sources.Sine sine1(amplitude=0.001, freqHz=0.2) annotation (
+ Placement(visible=true, transformation(
+ origin={-107.7833,10.4652},
+ extent={{-4.4802,-4.4802},{4.4802,4.4802}},
+ rotation=0)));
+ Modelica.Blocks.Math.Add add2(k2=-1) annotation (Placement(visible=true,
+ transformation(
+ origin={-79.1062,14.6621},
+ extent={{-6.3229,-6.3229},{6.3229,6.3229}},
+ rotation=0)));
+ Modelica.Blocks.Sources.Sine sine2(
+ amplitude=0.001,
+ freqHz=0.2,
+ startTime=5) annotation (Placement(visible=true, transformation(
+ origin={-107.3823,-5.5198},
+ extent={{-4.4802,-4.4802},{4.4802,4.4802}},
+ rotation=0)));
+ Modelica.Blocks.Sources.Sine sine3(
+ amplitude=0.001,
+ freqHz=0.2,
+ startTime=10) annotation (Placement(visible=true, transformation(
+ origin={-107.3823,-76.5048},
+ extent={{-4.4802,-4.4802},{4.4802,4.4802}},
+ rotation=0)));
+ Modelica.Blocks.Math.Add add3(k2=-1) annotation (Placement(visible=true,
+ transformation(
+ origin={-79.1062,-56.3229},
+ extent={{-6.3229,-6.3229},{6.3229,6.3229}},
+ rotation=0)));
+ Modelica.Blocks.Sources.Sine sine4(
+ amplitude=0.001,
+ freqHz=0.2,
+ startTime=5) annotation (Placement(visible=true, transformation(
+ origin={-107.7833,-60.5198},
+ extent={{-4.4802,-4.4802},{4.4802,4.4802}},
+ rotation=0)));
+ Modelica.Blocks.Sources.Step step3(height=-0.0005, startTime=7.1) annotation (
+ Placement(visible=true, transformation(
+ origin={-107.7833,-45.0},
+ extent={{-5.0,-5.0},{5.0,5.0}},
+ rotation=0)));
+ Modelica.Blocks.Sources.Step step4(height=0.0005, startTime=7) annotation (
+ Placement(visible=true, transformation(
+ origin={-107.7833,-30.0},
+ extent={{-5.0,-5.0},{5.0,5.0}},
+ rotation=0)));
+ Modelica.Blocks.Math.Add add4 annotation (Placement(visible=true,
+ transformation(
+ origin={-79.1062,-36.3229},
+ extent={{-6.3229,-6.3229},{6.3229,6.3229}},
+ rotation=0)));
+ Modelica.Blocks.Math.Add3 add32 annotation (Placement(visible=true,
+ transformation(
+ origin={-45.0,-57.0021},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ OpenIPSL.Electrical.Machines.PSAT.Order3 order3_Inputs_Outputs1(
+ P_0=0.0800989878477798,
+ Q_0=0.0570163388727956,
+ Sn=20,
+ V_b=400,
+ V_0=1,
+ angle_0=0,
+ Vn=400,
+ ra=0.001,
+ x1d=0.302,
+ M=10,
+ D=0,
+ xd=1.9,
+ T1d0=8,
+ xq=1.7) annotation (Placement(visible=true, transformation(
+ origin={3.3113,-20.7513},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ OpenIPSL.Electrical.Loads.PSAT.ZIP ZIP1(
+ Sn=10,
+ V_0=0.993325452568749,
+ Pz=0.5,
+ Pi=0.3,
+ Qz=0.5,
+ Qi=0.3,
+ P_0=0.8,
+ Q_0=0.6) annotation (Placement(visible=true, transformation(
+ origin={123.3697,-10.0},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ inner OpenIPSL.Electrical.SystemBase SysData annotation (Placement(
+ transformation(extent={{100,80},{125,100}})));
+ equation
+ connect(pwLine4.n, ZIP1.p) annotation (Line(
+ visible=true,
+ origin={105.7773,-12.5},
+ points={{-11.7773,-2.5},{3.5924,-2.5},{3.5924,12.5},{17.5924,12.5}}));
+ connect(pwLine4.n, pwLine3.n) annotation (Line(
+ visible=true,
+ origin={92.0,-25.0},
+ points={{2,10},{2,5},{5,5},{5,0},{2,0},{2,-10}}));
+ connect(pwLine3.p, pwLine4.p) annotation (Line(
+ visible=true,
+ origin={78.0,-25.0},
+ points={{-2,-10},{-2,-5},{-5,-5},{-5,0},{-2,0},{-2,10}}));
+ connect(pwLine1.n, pwLine3.p) annotation (Line(
+ visible=true,
+ origin={67.2159,-35.3357},
+ points={{-18.3525,-0.3357},{4.7841,-0.3357},{4.7841,0.3357},{8.7841,0.3357}}));
+ connect(pwLine2.n, pwLine4.p) annotation (Line(
+ visible=true,
+ origin={67.2159,-15.3357},
+ points={{-18.3525,-0.3357},{4.7841,-0.3357},{4.7841,0.3357},{8.7841,0.3357}}));
+ connect(order3_Inputs_Outputs1.pm0, add32.u3) annotation (Line(
+ visible=true,
+ origin={-19.0108,-51.4898},
+ points={{14.3221,19.7385},{41.1619,19.7385},{41.1619,-23.5102},{-38.8284,
+ -23.5102},{-38.8284,-13.5123},{-37.9892,-13.5123}},
+ color={0,0,127}));
+ connect(order3_Inputs_Outputs1.vf0, add31.u3) annotation (Line(
+ visible=true,
+ origin={-21.3443,-2.9483},
+ points={{16.6556,-6.803},{38.6557,-6.803},{38.6557,-0.1282},{-38.6557,-0.1282},
+ {-38.6557,8.9312},{-35.6557,8.9312}},
+ color={0,0,127}));
+ connect(add31.y, order3_Inputs_Outputs1.vf) annotation (Line(
+ visible=true,
+ origin={-28.1135,-5.371},
+ points={{-5.8865,19.3539},{-2.8865,19.3539},{-2.8865,-9.629},{-3.8826,-9.629},{-3.8826,-10.3803},{19.4248,-10.3803}},
+ color={0,0,127}));
+ connect(add32.y, order3_Inputs_Outputs1.pm) annotation (Line(
+ visible=true,
+ origin={-28.216,-45.5845},
+ points={{-5.784,-11.4176},{-2.784,-11.4176},{-2.784,-9.4155},{-4.0877,-9.4155},{-4.0877,19.8332},{19.5273,19.8332}},
+ color={0,0,127}));
+ connect(step3.y, add4.u2) annotation (Line(
+ visible=true,
+ origin={-92.0911,-42.5583},
+ points={{-10.1922,-2.4417},{2.3974,-2.4417},{2.3974,2.44166},{5.39742,
+ 2.44166}},
+ color={0,0,127}));
+ connect(add3.y, add32.u2) annotation (Line(
+ visible=true,
+ origin={-62.2878,-56.6625},
+ points={{-9.86321,0.3396},{2.2878,0.3396},{2.2878,-0.3396},{5.2878,-0.3396}},
+ color={0,0,127}));
+
+ connect(step4.y, add4.u1) annotation (Line(
+ visible=true,
+ origin={-92.0911,-31.2646},
+ points={{-10.1922,1.2646},{2.3974,1.2646},{2.3974,-1.26456},{5.39742,-1.26456}},
+ color={0,0,127}));
+
+ connect(add4.y, add32.u1) annotation (Line(
+ visible=true,
+ origin={-62.2878,-42.6625},
+ points={{-9.86321,6.3396},{2.2878,6.3396},{2.2878,-6.3396},{5.2878,-6.3396}},
+ color={0,0,127}));
+
+ connect(add3.u2, sine3.y) annotation (Line(
+ visible=true,
+ origin={-95.6692,-69.1821},
+ points={{8.97552,9.06546},{2.2971,9.06546},{2.2971,-5.4041},{-6.78488,-5.4041},
+ {-6.78488,-7.3227}},
+ color={0,0,127}));
+ connect(sine4.y, add3.u1) annotation (Line(
+ visible=true,
+ origin={-93.5606,-55.5207},
+ points={{-9.29448,-4.9991},{-1.4394,-0.9841},{3.8669,2.9916},{6.86692,
+ 2.99154}},
+ color={0,0,127}));
+ connect(sine1.y, add2.u1) annotation (Line(
+ visible=true,
+ origin={-93.5606,15.4643},
+ points={{-9.29448,-4.9991},{-1.4394,-0.9841},{3.8669,2.9916},{6.86692,
+ 2.99154}},
+ color={0,0,127}));
+ connect(add2.u2, sine2.y) annotation (Line(
+ visible=true,
+ origin={-95.6692,1.8029},
+ points={{8.97552,9.06546},{2.2971,9.06546},{2.2971,-5.4041},{-6.78488,-5.4041},
+ {-6.78488,-7.3227}},
+ color={0,0,127}));
+ connect(step2.y, add1.u2) annotation (Line(
+ visible=true,
+ origin={-92.0911,28.4267},
+ points={{-10.1922,-2.4417},{2.3974,-2.4417},{2.3974,2.44166},{5.39742,
+ 2.44166}},
+ color={0,0,127}));
+ connect(step1.y, add1.u1) annotation (Line(
+ visible=true,
+ origin={-92.0911,39.7204},
+ points={{-10.1922,1.2646},{2.3974,1.2646},{2.3974,-1.26456},{5.39742,-1.26456}},
+ color={0,0,127}));
+
+ connect(add1.y, add31.u1) annotation (Line(
+ visible=true,
+ origin={-62.2878,28.3225},
+ points={{-9.86321,6.3396},{2.2878,6.3396},{2.2878,-6.3396},{5.2878,-6.3396}},
+ color={0,0,127}));
+
+ connect(add2.y, add31.u2) annotation (Line(
+ visible=true,
+ origin={-62.2878,14.3225},
+ points={{-9.86321,0.3396},{2.2878,0.3396},{2.2878,-0.3396},{5.2878,-0.3396}},
+ color={0,0,127}));
+
+ connect(order3_Inputs_Outputs1.p, pwLine2.p) annotation (Line(
+ visible=true,
+ origin={25.2254,-18.2865},
+ points={{-11.9141,-2.4648},{1.638,-2.4648},{1.638,2.6151},{5.638,2.6151}}));
+ connect(pwLine2.p, pwLine1.p) annotation (Line(
+ visible=true,
+ origin={32.8634,-25.6714},
+ points={{-2,10},{-2,5},{-5,5},{-5,0},{-2,0},{-2,-10}}));
+ annotation (Diagram(coordinateSystem(
+ extent={{-148.5,-105.0},{148.5,105.0}},
+ preserveAspectRatio=true,
+ initialScale=0.1,
+ grid={5,5}), graphics={Text(
+ visible=true,
+ origin={39.8634,3.4703},
+ fillPattern=FillPattern.Solid,
+ extent={{-35.0,-5.8583},{35.0,5.8583}},
+ textString="SystemSbase=100 MVA",
+ fontName="Arial")}), Documentation);
+ end Loadtestzip;
+
+ model Loadtestfreq
+ extends Modelica.Icons.Example;
+ OpenIPSL.Electrical.Branches.PwLine pwLine1(
+ X=0.1,
+ R=0.01,
+ G=0,
+ B=0.001/2) annotation (Placement(visible=true, transformation(
+ origin={39.8634,-35.6714},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine2(
+ B=0.001/2,
+ G=0,
+ R=0.01,
+ X=0.1) annotation (Placement(visible=true, transformation(
+ origin={39.8634,-15.6714},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine3(
+ B=0.001/2,
+ G=0,
+ R=0.01,
+ X=0.1) annotation (Placement(visible=true, transformation(
+ origin={85.0,-35.0},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine4(
+ B=0.001/2,
+ G=0,
+ R=0.01,
+ X=0.1) annotation (Placement(visible=true, transformation(
+ origin={85.0,-15.0},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ Modelica.Blocks.Math.Add3 add31 annotation (Placement(visible=true,
+ transformation(
+ origin={-45.0,13.9829},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ Modelica.Blocks.Math.Add add1 annotation (Placement(visible=true,
+ transformation(
+ origin={-79.1062,34.6621},
+ extent={{-6.3229,-6.3229},{6.3229,6.3229}},
+ rotation=0)));
+ Modelica.Blocks.Sources.Step step1(height=0.0005, startTime=2) annotation (
+ Placement(visible=true, transformation(
+ origin={-107.7833,40.985},
+ extent={{-5.0,-5.0},{5.0,5.0}},
+ rotation=0)));
+ Modelica.Blocks.Sources.Step step2(height=-0.0005, startTime=2.1) annotation (
+ Placement(visible=true, transformation(
+ origin={-107.7833,25.985},
+ extent={{-5.0,-5.0},{5.0,5.0}},
+ rotation=0)));
+ Modelica.Blocks.Sources.Sine sine1(amplitude=0.001, freqHz=0.2) annotation (
+ Placement(visible=true, transformation(
+ origin={-107.7833,10.4652},
+ extent={{-4.4802,-4.4802},{4.4802,4.4802}},
+ rotation=0)));
+ Modelica.Blocks.Math.Add add2(k2=-1) annotation (Placement(visible=true,
+ transformation(
+ origin={-79.1062,14.6621},
+ extent={{-6.3229,-6.3229},{6.3229,6.3229}},
+ rotation=0)));
+ Modelica.Blocks.Sources.Sine sine2(
+ amplitude=0.001,
+ freqHz=0.2,
+ startTime=5) annotation (Placement(visible=true, transformation(
+ origin={-107.3823,-5.5198},
+ extent={{-4.4802,-4.4802},{4.4802,4.4802}},
+ rotation=0)));
+ Modelica.Blocks.Sources.Sine sine3(
+ amplitude=0.001,
+ freqHz=0.2,
+ startTime=10) annotation (Placement(visible=true, transformation(
+ origin={-107.3823,-76.5048},
+ extent={{-4.4802,-4.4802},{4.4802,4.4802}},
+ rotation=0)));
+ Modelica.Blocks.Math.Add add3(k2=-1) annotation (Placement(visible=true,
+ transformation(
+ origin={-79.1062,-56.3229},
+ extent={{-6.3229,-6.3229},{6.3229,6.3229}},
+ rotation=0)));
+ Modelica.Blocks.Sources.Sine sine4(
+ amplitude=0.001,
+ freqHz=0.2,
+ startTime=5) annotation (Placement(visible=true, transformation(
+ origin={-107.7833,-60.5198},
+ extent={{-4.4802,-4.4802},{4.4802,4.4802}},
+ rotation=0)));
+ Modelica.Blocks.Sources.Step step3(height=-0.0005, startTime=7.1) annotation (
+ Placement(visible=true, transformation(
+ origin={-107.7833,-45.0},
+ extent={{-5.0,-5.0},{5.0,5.0}},
+ rotation=0)));
+ Modelica.Blocks.Sources.Step step4(height=0.0005, startTime=7) annotation (
+ Placement(visible=true, transformation(
+ origin={-107.7833,-30.0},
+ extent={{-5.0,-5.0},{5.0,5.0}},
+ rotation=0)));
+ Modelica.Blocks.Math.Add add4 annotation (Placement(visible=true,
+ transformation(
+ origin={-79.1062,-36.3229},
+ extent={{-6.3229,-6.3229},{6.3229,6.3229}},
+ rotation=0)));
+ Modelica.Blocks.Math.Add3 add32 annotation (Placement(visible=true,
+ transformation(
+ origin={-45.0,-57.0021},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ OpenIPSL.Electrical.Machines.PSAT.Order3 order3_Inputs_Outputs1(
+ P_0=0.0800989878477798,
+ Q_0=0.0570163388727956,
+ Sn=20,
+ V_b=400,
+ V_0=1,
+ angle_0=0,
+ Vn=400,
+ ra=0.001,
+ x1d=0.302,
+ M=10,
+ D=0,
+ xd=1.9,
+ T1d0=8,
+ xq=1.7) annotation (Placement(visible=true, transformation(
+ origin={3.3113,-20.7513},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ OpenIPSL.Electrical.Loads.PSAT.FrequencyDependentLoad frequencyDependentLoad1(
+ alpha_p=0,
+ beta_p=1,
+ beta_q=1,
+ Sn=10,
+ V_0=0.993325452568749,
+ angle_0=-0.00746932024404292,
+ alpha_q=0,
+ Tf=0.1,
+ P_0=0.8,
+ Q_0=0.6) annotation (Placement(visible=true, transformation(
+ origin={123.3697,-45.0},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ inner OpenIPSL.Electrical.SystemBase SysData annotation (Placement(
+ transformation(extent={{100,80},{125,100}})));
+ equation
+ connect(pwLine3.n, frequencyDependentLoad1.p) annotation (Line(
+ visible=true,
+ origin={105.7773,-40.0},
+ points={{-11.7773,5},{3.5924,5},{3.5924,5},{17.5924,5}}));
+ connect(pwLine4.n, pwLine3.n) annotation (Line(
+ visible=true,
+ origin={92.0,-25.0},
+ points={{2,10},{2,5},{5,5},{5,0},{2,0},{2,-10}}));
+ connect(pwLine3.p, pwLine4.p) annotation (Line(
+ visible=true,
+ origin={78.0,-25.0},
+ points={{-2,-10},{-2,-5},{-5,-5},{-5,0},{-2,0},{-2,10}}));
+ connect(pwLine1.n, pwLine3.p) annotation (Line(
+ visible=true,
+ origin={67.2159,-35.3357},
+ points={{-18.3525,-0.3357},{4.7841,-0.3357},{4.7841,0.3357},{8.7841,0.3357}}));
+ connect(pwLine2.n, pwLine4.p) annotation (Line(
+ visible=true,
+ origin={67.2159,-15.3357},
+ points={{-18.3525,-0.3357},{4.7841,-0.3357},{4.7841,0.3357},{8.7841,0.3357}}));
+ connect(order3_Inputs_Outputs1.pm0, add32.u3) annotation (Line(
+ visible=true,
+ origin={-19.0108,-51.4898},
+ points={{14.3221,19.7385},{41.1619,19.7385},{41.1619,-23.5102},{-38.8284,
+ -23.5102},{-38.8284,-13.5123},{-37.9892,-13.5123}},
+ color={0,0,127}));
+ connect(order3_Inputs_Outputs1.vf0, add31.u3) annotation (Line(
+ visible=true,
+ origin={-21.3443,-2.9483},
+ points={{16.6556,-6.803},{38.6557,-6.803},{38.6557,-0.1282},{-38.6557,-0.1282},
+ {-38.6557,8.9312},{-35.6557,8.9312}},
+ color={0,0,127}));
+ connect(add31.y, order3_Inputs_Outputs1.vf) annotation (Line(
+ visible=true,
+ origin={-28.1135,-5.371},
+ points={{-5.8865,19.3539},{-2.8865,19.3539},{-2.8865,-9.629},{-3.8826,-9.629},{-3.8826,-10.3803},{19.4248,-10.3803}},
+ color={0,0,127}));
+ connect(add32.y, order3_Inputs_Outputs1.pm) annotation (Line(
+ visible=true,
+ origin={-28.216,-45.5845},
+ points={{-5.784,-11.4176},{-2.784,-11.4176},{-2.784,-9.4155},{-4.0877,-9.4155},{-4.0877,19.8332},{19.5273,19.8332}},
+ color={0,0,127}));
+ connect(step3.y, add4.u2) annotation (Line(
+ visible=true,
+ origin={-92.0911,-42.5583},
+ points={{-10.1922,-2.4417},{2.3974,-2.4417},{2.3974,2.44166},{5.39742,
+ 2.44166}},
+ color={0,0,127}));
+ connect(add3.y, add32.u2) annotation (Line(
+ visible=true,
+ origin={-62.2878,-56.6625},
+ points={{-9.86321,0.3396},{2.2878,0.3396},{2.2878,-0.3396},{5.2878,-0.3396}},
+ color={0,0,127}));
+
+ connect(step4.y, add4.u1) annotation (Line(
+ visible=true,
+ origin={-92.0911,-31.2646},
+ points={{-10.1922,1.2646},{2.3974,1.2646},{2.3974,-1.26456},{5.39742,-1.26456}},
+ color={0,0,127}));
+
+ connect(add4.y, add32.u1) annotation (Line(
+ visible=true,
+ origin={-62.2878,-42.6625},
+ points={{-9.86321,6.3396},{2.2878,6.3396},{2.2878,-6.3396},{5.2878,-6.3396}},
+ color={0,0,127}));
+
+ connect(add3.u2, sine3.y) annotation (Line(
+ visible=true,
+ origin={-95.6692,-69.1821},
+ points={{8.97552,9.06546},{2.2971,9.06546},{2.2971,-5.4041},{-6.78488,-5.4041},
+ {-6.78488,-7.3227}},
+ color={0,0,127}));
+ connect(sine4.y, add3.u1) annotation (Line(
+ visible=true,
+ origin={-93.5606,-55.5207},
+ points={{-9.29448,-4.9991},{-1.4394,-0.9841},{3.8669,2.9916},{6.86692,
+ 2.99154}},
+ color={0,0,127}));
+ connect(sine1.y, add2.u1) annotation (Line(
+ visible=true,
+ origin={-93.5606,15.4643},
+ points={{-9.29448,-4.9991},{-1.4394,-0.9841},{3.8669,2.9916},{6.86692,
+ 2.99154}},
+ color={0,0,127}));
+ connect(add2.u2, sine2.y) annotation (Line(
+ visible=true,
+ origin={-95.6692,1.8029},
+ points={{8.97552,9.06546},{2.2971,9.06546},{2.2971,-5.4041},{-6.78488,-5.4041},
+ {-6.78488,-7.3227}},
+ color={0,0,127}));
+ connect(step2.y, add1.u2) annotation (Line(
+ visible=true,
+ origin={-92.0911,28.4267},
+ points={{-10.1922,-2.4417},{2.3974,-2.4417},{2.3974,2.44166},{5.39742,
+ 2.44166}},
+ color={0,0,127}));
+ connect(step1.y, add1.u1) annotation (Line(
+ visible=true,
+ origin={-92.0911,39.7204},
+ points={{-10.1922,1.2646},{2.3974,1.2646},{2.3974,-1.26456},{5.39742,-1.26456}},
+ color={0,0,127}));
+
+ connect(add1.y, add31.u1) annotation (Line(
+ visible=true,
+ origin={-62.2878,28.3225},
+ points={{-9.86321,6.3396},{2.2878,6.3396},{2.2878,-6.3396},{5.2878,-6.3396}},
+ color={0,0,127}));
+
+ connect(add2.y, add31.u2) annotation (Line(
+ visible=true,
+ origin={-62.2878,14.3225},
+ points={{-9.86321,0.3396},{2.2878,0.3396},{2.2878,-0.3396},{5.2878,-0.3396}},
+ color={0,0,127}));
+
+ connect(order3_Inputs_Outputs1.p, pwLine2.p) annotation (Line(
+ visible=true,
+ origin={25.2254,-18.2865},
+ points={{-11.9141,-2.4648},{1.638,-2.4648},{1.638,2.6151},{5.638,2.6151}}));
+ connect(pwLine2.p, pwLine1.p) annotation (Line(
+ visible=true,
+ origin={32.8634,-25.6714},
+ points={{-2,10},{-2,5},{-5,5},{-5,0},{-2,0},{-2,-10}}));
+ annotation (Diagram(coordinateSystem(
+ extent={{-148.5,-105.0},{148.5,105.0}},
+ preserveAspectRatio=true,
+ initialScale=0.1,
+ grid={5,5}), graphics={Text(
+ visible=true,
+ origin={39.8634,3.4703},
+ fillPattern=FillPattern.Solid,
+ extent={{-35.0,-5.8583},{35.0,5.8583}},
+ textString="SystemSbase=100 MVA",
+ fontName="Arial")}), Documentation);
+ end Loadtestfreq;
+
+ model Loadtestmixed
+ extends Modelica.Icons.Example;
+ OpenIPSL.Electrical.Branches.PwLine pwLine1(
+ X=0.1,
+ R=0.01,
+ G=0,
+ B=0.001/2) annotation (Placement(visible=true, transformation(
+ origin={39.8634,-35.6714},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine2(
+ B=0.001/2,
+ G=0,
+ R=0.01,
+ X=0.1) annotation (Placement(visible=true, transformation(
+ origin={39.8634,-15.6714},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine3(
+ B=0.001/2,
+ G=0,
+ R=0.01,
+ X=0.1) annotation (Placement(visible=true, transformation(
+ origin={85.0,-35.0},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine4(
+ B=0.001/2,
+ G=0,
+ R=0.01,
+ X=0.1) annotation (Placement(visible=true, transformation(
+ origin={85.0,-15.0},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ Modelica.Blocks.Math.Add3 add31 annotation (Placement(visible=true,
+ transformation(
+ origin={-45.0,13.9829},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ Modelica.Blocks.Math.Add add1 annotation (Placement(visible=true,
+ transformation(
+ origin={-79.1062,34.6621},
+ extent={{-6.3229,-6.3229},{6.3229,6.3229}},
+ rotation=0)));
+ Modelica.Blocks.Sources.Step step1(height=0.0005, startTime=2) annotation (
+ Placement(visible=true, transformation(
+ origin={-107.7833,40.985},
+ extent={{-5.0,-5.0},{5.0,5.0}},
+ rotation=0)));
+ Modelica.Blocks.Sources.Step step2(height=-0.0005, startTime=2.1) annotation (
+ Placement(visible=true, transformation(
+ origin={-107.7833,25.985},
+ extent={{-5.0,-5.0},{5.0,5.0}},
+ rotation=0)));
+ Modelica.Blocks.Sources.Sine sine1(amplitude=0.001, freqHz=0.2) annotation (
+ Placement(visible=true, transformation(
+ origin={-107.7833,10.4652},
+ extent={{-4.4802,-4.4802},{4.4802,4.4802}},
+ rotation=0)));
+ Modelica.Blocks.Math.Add add2(k2=-1) annotation (Placement(visible=true,
+ transformation(
+ origin={-79.1062,14.6621},
+ extent={{-6.3229,-6.3229},{6.3229,6.3229}},
+ rotation=0)));
+ Modelica.Blocks.Sources.Sine sine2(
+ amplitude=0.001,
+ freqHz=0.2,
+ startTime=5) annotation (Placement(visible=true, transformation(
+ origin={-107.3823,-5.5198},
+ extent={{-4.4802,-4.4802},{4.4802,4.4802}},
+ rotation=0)));
+ Modelica.Blocks.Sources.Sine sine3(
+ amplitude=0.001,
+ freqHz=0.2,
+ startTime=10) annotation (Placement(visible=true, transformation(
+ origin={-107.3823,-76.5048},
+ extent={{-4.4802,-4.4802},{4.4802,4.4802}},
+ rotation=0)));
+ Modelica.Blocks.Math.Add add3(k2=-1) annotation (Placement(visible=true,
+ transformation(
+ origin={-79.1062,-56.3229},
+ extent={{-6.3229,-6.3229},{6.3229,6.3229}},
+ rotation=0)));
+ Modelica.Blocks.Sources.Sine sine4(
+ amplitude=0.001,
+ freqHz=0.2,
+ startTime=5) annotation (Placement(visible=true, transformation(
+ origin={-107.7833,-60.5198},
+ extent={{-4.4802,-4.4802},{4.4802,4.4802}},
+ rotation=0)));
+ Modelica.Blocks.Sources.Step step3(height=-0.0005, startTime=7.1) annotation (
+ Placement(visible=true, transformation(
+ origin={-107.7833,-45.0},
+ extent={{-5.0,-5.0},{5.0,5.0}},
+ rotation=0)));
+ Modelica.Blocks.Sources.Step step4(height=0.0005, startTime=7) annotation (
+ Placement(visible=true, transformation(
+ origin={-107.7833,-30.0},
+ extent={{-5.0,-5.0},{5.0,5.0}},
+ rotation=0)));
+ Modelica.Blocks.Math.Add add4 annotation (Placement(visible=true,
+ transformation(
+ origin={-79.1062,-36.3229},
+ extent={{-6.3229,-6.3229},{6.3229,6.3229}},
+ rotation=0)));
+ Modelica.Blocks.Math.Add3 add32 annotation (Placement(visible=true,
+ transformation(
+ origin={-45.0,-57.0021},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ OpenIPSL.Electrical.Machines.PSAT.Order3 order3_Inputs_Outputs1(
+ P_0=0.0800989878477798,
+ Q_0=0.0570163388727956,
+ Sn=20,
+ V_b=400,
+ V_0=1,
+ angle_0=0,
+ Vn=400,
+ ra=0.001,
+ x1d=0.302,
+ M=10,
+ D=0,
+ xd=1.9,
+ T1d0=8,
+ xq=1.7) annotation (Placement(visible=true, transformation(
+ origin={3.3113,-20.7513},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ OpenIPSL.Electrical.Loads.PSAT.Mixed_Load mixed_Load1(
+ V_0=0.993325452568749,
+ Sn=10,
+ Tpv=0.1,
+ Tqv=0.1,
+ Tfv=0.1,
+ Tft=0.1,
+ Kpf=1,
+ Kqf=1,
+ alpha=1,
+ beta=1,
+ angle_0=-0.00746932024404292,
+ P_0=0.8,
+ Q_0=0.6) annotation (Placement(visible=true, transformation(
+ origin={125.0,-40.0},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ inner OpenIPSL.Electrical.SystemBase SysData annotation (Placement(
+ transformation(extent={{100,80},{125,100}})));
+ equation
+ connect(mixed_Load1.p, pwLine3.n) annotation (Line(
+ visible=true,
+ origin={100.5,-37.5},
+ points={{24.5,7.5},{-2.5,7.5},{-2.5,2.5},{-6.5,2.5}}));
+ connect(pwLine4.n, pwLine3.n) annotation (Line(
+ visible=true,
+ origin={92.0,-25.0},
+ points={{2,10},{2,5},{5,5},{5,0},{2,0},{2,-10}}));
+ connect(pwLine3.p, pwLine4.p) annotation (Line(
+ visible=true,
+ origin={78.0,-25.0},
+ points={{-2,-10},{-2,-5},{-5,-5},{-5,0},{-2,0},{-2,10}}));
+ connect(pwLine1.n, pwLine3.p) annotation (Line(
+ visible=true,
+ origin={67.2159,-35.3357},
+ points={{-18.3525,-0.3357},{4.7841,-0.3357},{4.7841,0.3357},{8.7841,0.3357}}));
+ connect(pwLine2.n, pwLine4.p) annotation (Line(
+ visible=true,
+ origin={67.2159,-15.3357},
+ points={{-18.3525,-0.3357},{4.7841,-0.3357},{4.7841,0.3357},{8.7841,0.3357}}));
+ connect(order3_Inputs_Outputs1.pm0, add32.u3) annotation (Line(
+ visible=true,
+ origin={-19.0108,-51.4898},
+ points={{14.3221,19.7385},{41.1619,19.7385},{41.1619,-23.5102},{-38.8284,
+ -23.5102},{-38.8284,-13.5123},{-37.9892,-13.5123}},
+ color={0,0,127}));
+ connect(order3_Inputs_Outputs1.vf0, add31.u3) annotation (Line(
+ visible=true,
+ origin={-21.3443,-2.9483},
+ points={{16.6556,-6.803},{38.6557,-6.803},{38.6557,-0.1282},{-38.6557,-0.1282},
+ {-38.6557,8.9312},{-35.6557,8.9312}},
+ color={0,0,127}));
+ connect(add31.y, order3_Inputs_Outputs1.vf) annotation (Line(
+ visible=true,
+ origin={-28.1135,-5.371},
+ points={{-5.8865,19.3539},{-2.8865,19.3539},{-2.8865,-9.629},{-3.8826,-9.629},{-3.8826,-10.3803},{19.4248,-10.3803}},
+ color={0,0,127}));
+ connect(add32.y, order3_Inputs_Outputs1.pm) annotation (Line(
+ visible=true,
+ origin={-28.216,-45.5845},
+ points={{-5.784,-11.4176},{-2.784,-11.4176},{-2.784,-9.4155},{-4.0877,-9.4155},{-4.0877,19.8332},{19.5273,19.8332}},
+ color={0,0,127}));
+ connect(step3.y, add4.u2) annotation (Line(
+ visible=true,
+ origin={-92.0911,-42.5583},
+ points={{-10.1922,-2.4417},{2.3974,-2.4417},{2.3974,2.44166},{5.39742,
+ 2.44166}},
+ color={0,0,127}));
+ connect(add3.y, add32.u2) annotation (Line(
+ visible=true,
+ origin={-62.2878,-56.6625},
+ points={{-9.86321,0.3396},{2.2878,0.3396},{2.2878,-0.3396},{5.2878,-0.3396}},
+ color={0,0,127}));
+
+ connect(step4.y, add4.u1) annotation (Line(
+ visible=true,
+ origin={-92.0911,-31.2646},
+ points={{-10.1922,1.2646},{2.3974,1.2646},{2.3974,-1.26456},{5.39742,-1.26456}},
+ color={0,0,127}));
+
+ connect(add4.y, add32.u1) annotation (Line(
+ visible=true,
+ origin={-62.2878,-42.6625},
+ points={{-9.86321,6.3396},{2.2878,6.3396},{2.2878,-6.3396},{5.2878,-6.3396}},
+ color={0,0,127}));
+
+ connect(add3.u2, sine3.y) annotation (Line(
+ visible=true,
+ origin={-95.6692,-69.1821},
+ points={{8.97552,9.06546},{2.2971,9.06546},{2.2971,-5.4041},{-6.78488,-5.4041},
+ {-6.78488,-7.3227}},
+ color={0,0,127}));
+ connect(sine4.y, add3.u1) annotation (Line(
+ visible=true,
+ origin={-93.5606,-55.5207},
+ points={{-9.29448,-4.9991},{-1.4394,-0.9841},{3.8669,2.9916},{6.86692,
+ 2.99154}},
+ color={0,0,127}));
+ connect(sine1.y, add2.u1) annotation (Line(
+ visible=true,
+ origin={-93.5606,15.4643},
+ points={{-9.29448,-4.9991},{-1.4394,-0.9841},{3.8669,2.9916},{6.86692,
+ 2.99154}},
+ color={0,0,127}));
+ connect(add2.u2, sine2.y) annotation (Line(
+ visible=true,
+ origin={-95.6692,1.8029},
+ points={{8.97552,9.06546},{2.2971,9.06546},{2.2971,-5.4041},{-6.78488,-5.4041},
+ {-6.78488,-7.3227}},
+ color={0,0,127}));
+ connect(step2.y, add1.u2) annotation (Line(
+ visible=true,
+ origin={-92.0911,28.4267},
+ points={{-10.1922,-2.4417},{2.3974,-2.4417},{2.3974,2.44166},{5.39742,
+ 2.44166}},
+ color={0,0,127}));
+ connect(step1.y, add1.u1) annotation (Line(
+ visible=true,
+ origin={-92.0911,39.7204},
+ points={{-10.1922,1.2646},{2.3974,1.2646},{2.3974,-1.26456},{5.39742,-1.26456}},
+ color={0,0,127}));
+
+ connect(add1.y, add31.u1) annotation (Line(
+ visible=true,
+ origin={-62.2878,28.3225},
+ points={{-9.86321,6.3396},{2.2878,6.3396},{2.2878,-6.3396},{5.2878,-6.3396}},
+ color={0,0,127}));
+
+ connect(add2.y, add31.u2) annotation (Line(
+ visible=true,
+ origin={-62.2878,14.3225},
+ points={{-9.86321,0.3396},{2.2878,0.3396},{2.2878,-0.3396},{5.2878,-0.3396}},
+ color={0,0,127}));
+
+ connect(order3_Inputs_Outputs1.p, pwLine2.p) annotation (Line(
+ visible=true,
+ origin={25.2254,-18.2865},
+ points={{-11.9141,-2.4648},{1.638,-2.4648},{1.638,2.6151},{5.638,2.6151}}));
+ connect(pwLine2.p, pwLine1.p) annotation (Line(
+ visible=true,
+ origin={32.8634,-25.6714},
+ points={{-2,10},{-2,5},{-5,5},{-5,0},{-2,0},{-2,-10}}));
+ annotation (Diagram(coordinateSystem(
+ extent={{-148.5,-105.0},{148.5,105.0}},
+ preserveAspectRatio=true,
+ initialScale=0.1,
+ grid={5,5}), graphics={Text(
+ visible=true,
+ origin={39.8634,3.4703},
+ fillPattern=FillPattern.Solid,
+ extent={{-35.0,-5.8583},{35.0,5.8583}},
+ textString="SystemSbase=100 MVA",
+ fontName="Arial")}), Documentation);
+ end Loadtestmixed;
+
+ model Loadtestzipjimma
+ extends Modelica.Icons.Example;
+ OpenIPSL.Electrical.Branches.PwLine pwLine1(
+ X=0.1,
+ R=0.01,
+ G=0,
+ B=0.001/2) annotation (Placement(visible=true, transformation(
+ origin={39.8634,-35.6714},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine2(
+ B=0.001/2,
+ G=0,
+ R=0.01,
+ X=0.1) annotation (Placement(visible=true, transformation(
+ origin={39.8634,-15.6714},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine3(
+ B=0.001/2,
+ G=0,
+ R=0.01,
+ X=0.1) annotation (Placement(visible=true, transformation(
+ origin={85.0,-35.0},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine4(
+ B=0.001/2,
+ G=0,
+ R=0.01,
+ X=0.1) annotation (Placement(visible=true, transformation(
+ origin={85.0,-15.0},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ Modelica.Blocks.Math.Add3 add31 annotation (Placement(visible=true,
+ transformation(
+ origin={-45.0,13.9829},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ Modelica.Blocks.Math.Add add1 annotation (Placement(visible=true,
+ transformation(
+ origin={-79.1062,34.6621},
+ extent={{-6.3229,-6.3229},{6.3229,6.3229}},
+ rotation=0)));
+ Modelica.Blocks.Sources.Step step1(height=0.0005, startTime=2) annotation (
+ Placement(visible=true, transformation(
+ origin={-107.7833,40.985},
+ extent={{-5.0,-5.0},{5.0,5.0}},
+ rotation=0)));
+ Modelica.Blocks.Sources.Step step2(height=-0.0005, startTime=2.1) annotation (
+ Placement(visible=true, transformation(
+ origin={-107.7833,25.985},
+ extent={{-5.0,-5.0},{5.0,5.0}},
+ rotation=0)));
+ Modelica.Blocks.Sources.Sine sine1(amplitude=0.001, freqHz=0.2) annotation (
+ Placement(visible=true, transformation(
+ origin={-107.7833,10.4652},
+ extent={{-4.4802,-4.4802},{4.4802,4.4802}},
+ rotation=0)));
+ Modelica.Blocks.Math.Add add2(k2=-1) annotation (Placement(visible=true,
+ transformation(
+ origin={-79.1062,14.6621},
+ extent={{-6.3229,-6.3229},{6.3229,6.3229}},
+ rotation=0)));
+ Modelica.Blocks.Sources.Sine sine2(
+ amplitude=0.001,
+ freqHz=0.2,
+ startTime=5) annotation (Placement(visible=true, transformation(
+ origin={-107.3823,-5.5198},
+ extent={{-4.4802,-4.4802},{4.4802,4.4802}},
+ rotation=0)));
+ Modelica.Blocks.Sources.Sine sine3(
+ amplitude=0.001,
+ freqHz=0.2,
+ startTime=10) annotation (Placement(visible=true, transformation(
+ origin={-107.3823,-76.5048},
+ extent={{-4.4802,-4.4802},{4.4802,4.4802}},
+ rotation=0)));
+ Modelica.Blocks.Math.Add add3(k2=-1) annotation (Placement(visible=true,
+ transformation(
+ origin={-79.1062,-56.3229},
+ extent={{-6.3229,-6.3229},{6.3229,6.3229}},
+ rotation=0)));
+ Modelica.Blocks.Sources.Sine sine4(
+ amplitude=0.001,
+ freqHz=0.2,
+ startTime=5) annotation (Placement(visible=true, transformation(
+ origin={-107.7833,-60.5198},
+ extent={{-4.4802,-4.4802},{4.4802,4.4802}},
+ rotation=0)));
+ Modelica.Blocks.Sources.Step step3(height=-0.0005, startTime=7.1) annotation (
+ Placement(visible=true, transformation(
+ origin={-107.7833,-45.0},
+ extent={{-5.0,-5.0},{5.0,5.0}},
+ rotation=0)));
+ Modelica.Blocks.Sources.Step step4(height=0.0005, startTime=7) annotation (
+ Placement(visible=true, transformation(
+ origin={-107.7833,-30.0},
+ extent={{-5.0,-5.0},{5.0,5.0}},
+ rotation=0)));
+ Modelica.Blocks.Math.Add add4 annotation (Placement(visible=true,
+ transformation(
+ origin={-79.1062,-36.3229},
+ extent={{-6.3229,-6.3229},{6.3229,6.3229}},
+ rotation=0)));
+ Modelica.Blocks.Math.Add3 add32 annotation (Placement(visible=true,
+ transformation(
+ origin={-45.0,-57.0021},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ OpenIPSL.Electrical.Machines.PSAT.Order3 order3_Inputs_Outputs1(
+ P_0=0.0800989878477798,
+ Q_0=0.0570163388727956,
+ Sn=20,
+ V_b=400,
+ V_0=1,
+ angle_0=0,
+ Vn=400,
+ ra=0.001,
+ x1d=0.302,
+ M=10,
+ D=0,
+ xd=1.9,
+ T1d0=8,
+ xq=1.7) annotation (Placement(visible=true, transformation(
+ origin={3.3113,-20.7513},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ OpenIPSL.Electrical.Loads.PSAT.ZIP_Jimma ZIP_Jimma1(
+ V_0=0.993325565105317,
+ Sn=10,
+ Tf=0.1,
+ P_0=0.8,
+ Q_0=0.6) annotation (Placement(visible=true, transformation(
+ origin={125.0,-5.0},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ inner OpenIPSL.Electrical.SystemBase SysData annotation (Placement(
+ transformation(extent={{100,80},{135,100}})));
+ equation
+ connect(pwLine4.n, ZIP_Jimma1.p) annotation (Line(
+ visible=true,
+ origin={107.0,-10.0},
+ points={{-13,-5},{4,-5},{4,15},{18,15}}));
+ connect(pwLine4.n, pwLine3.n) annotation (Line(
+ visible=true,
+ origin={92.0,-25.0},
+ points={{2,10},{2,5},{5,5},{5,0},{2,0},{2,-10}}));
+ connect(pwLine3.p, pwLine4.p) annotation (Line(
+ visible=true,
+ origin={78.0,-25.0},
+ points={{-2,-10},{-2,-5},{-5,-5},{-5,0},{-2,0},{-2,10}}));
+ connect(pwLine1.n, pwLine3.p) annotation (Line(
+ visible=true,
+ origin={67.2159,-35.3357},
+ points={{-18.3525,-0.3357},{4.7841,-0.3357},{4.7841,0.3357},{8.7841,0.3357}}));
+ connect(pwLine2.n, pwLine4.p) annotation (Line(
+ visible=true,
+ origin={67.2159,-15.3357},
+ points={{-18.3525,-0.3357},{4.7841,-0.3357},{4.7841,0.3357},{8.7841,0.3357}}));
+ connect(order3_Inputs_Outputs1.pm0, add32.u3) annotation (Line(
+ visible=true,
+ origin={-19.0108,-51.4898},
+ points={{14.3221,19.7385},{41.1619,19.7385},{41.1619,-23.5102},{-38.8284,
+ -23.5102},{-38.8284,-13.5123},{-37.9892,-13.5123}},
+ color={0,0,127}));
+ connect(order3_Inputs_Outputs1.vf0, add31.u3) annotation (Line(
+ visible=true,
+ origin={-21.3443,-2.9483},
+ points={{16.6556,-6.803},{38.6557,-6.803},{38.6557,-0.1282},{-38.6557,-0.1282},
+ {-38.6557,8.9312},{-35.6557,8.9312}},
+ color={0,0,127}));
+ connect(add31.y, order3_Inputs_Outputs1.vf) annotation (Line(
+ visible=true,
+ origin={-28.1135,-5.371},
+ points={{-5.8865,19.3539},{-2.8865,19.3539},{-2.8865,-9.629},{-3.8826,-9.629},{-3.8826,-10.3803},{19.4248,-10.3803}},
+ color={0,0,127}));
+ connect(add32.y, order3_Inputs_Outputs1.pm) annotation (Line(
+ visible=true,
+ origin={-28.216,-45.5845},
+ points={{-5.784,-11.4176},{-2.784,-11.4176},{-2.784,-9.4155},{-4.0877,-9.4155},{-4.0877,19.8332},{19.5273,19.8332}},
+ color={0,0,127}));
+ connect(step3.y, add4.u2) annotation (Line(
+ visible=true,
+ origin={-92.0911,-42.5583},
+ points={{-10.1922,-2.4417},{2.3974,-2.4417},{2.3974,2.44166},{5.39742,
+ 2.44166}},
+ color={0,0,127}));
+ connect(add3.y, add32.u2) annotation (Line(
+ visible=true,
+ origin={-62.2878,-56.6625},
+ points={{-9.86321,0.3396},{2.2878,0.3396},{2.2878,-0.3396},{5.2878,-0.3396}},
+ color={0,0,127}));
+
+ connect(step4.y, add4.u1) annotation (Line(
+ visible=true,
+ origin={-92.0911,-31.2646},
+ points={{-10.1922,1.2646},{2.3974,1.2646},{2.3974,-1.26456},{5.39742,-1.26456}},
+ color={0,0,127}));
+
+ connect(add4.y, add32.u1) annotation (Line(
+ visible=true,
+ origin={-62.2878,-42.6625},
+ points={{-9.86321,6.3396},{2.2878,6.3396},{2.2878,-6.3396},{5.2878,-6.3396}},
+ color={0,0,127}));
+
+ connect(add3.u2, sine3.y) annotation (Line(
+ visible=true,
+ origin={-95.6692,-69.1821},
+ points={{8.97552,9.06546},{2.2971,9.06546},{2.2971,-5.4041},{-6.78488,-5.4041},
+ {-6.78488,-7.3227}},
+ color={0,0,127}));
+ connect(sine4.y, add3.u1) annotation (Line(
+ visible=true,
+ origin={-93.5606,-55.5207},
+ points={{-9.29448,-4.9991},{-1.4394,-0.9841},{3.8669,2.9916},{6.86692,
+ 2.99154}},
+ color={0,0,127}));
+ connect(sine1.y, add2.u1) annotation (Line(
+ visible=true,
+ origin={-93.5606,15.4643},
+ points={{-9.29448,-4.9991},{-1.4394,-0.9841},{3.8669,2.9916},{6.86692,
+ 2.99154}},
+ color={0,0,127}));
+ connect(add2.u2, sine2.y) annotation (Line(
+ visible=true,
+ origin={-95.6692,1.8029},
+ points={{8.97552,9.06546},{2.2971,9.06546},{2.2971,-5.4041},{-6.78488,-5.4041},
+ {-6.78488,-7.3227}},
+ color={0,0,127}));
+ connect(step2.y, add1.u2) annotation (Line(
+ visible=true,
+ origin={-92.0911,28.4267},
+ points={{-10.1922,-2.4417},{2.3974,-2.4417},{2.3974,2.44166},{5.39742,
+ 2.44166}},
+ color={0,0,127}));
+ connect(step1.y, add1.u1) annotation (Line(
+ visible=true,
+ origin={-92.0911,39.7204},
+ points={{-10.1922,1.2646},{2.3974,1.2646},{2.3974,-1.26456},{5.39742,-1.26456}},
+ color={0,0,127}));
+
+ connect(add1.y, add31.u1) annotation (Line(
+ visible=true,
+ origin={-62.2878,28.3225},
+ points={{-9.86321,6.3396},{2.2878,6.3396},{2.2878,-6.3396},{5.2878,-6.3396}},
+ color={0,0,127}));
+
+ connect(add2.y, add31.u2) annotation (Line(
+ visible=true,
+ origin={-62.2878,14.3225},
+ points={{-9.86321,0.3396},{2.2878,0.3396},{2.2878,-0.3396},{5.2878,-0.3396}},
+ color={0,0,127}));
+
+ connect(order3_Inputs_Outputs1.p, pwLine2.p) annotation (Line(
+ visible=true,
+ origin={25.2254,-18.2865},
+ points={{-11.9141,-2.4648},{1.638,-2.4648},{1.638,2.6151},{5.638,2.6151}}));
+ connect(pwLine2.p, pwLine1.p) annotation (Line(
+ visible=true,
+ origin={32.8634,-25.6714},
+ points={{-2,10},{-2,5},{-5,5},{-5,0},{-2,0},{-2,-10}}));
+ annotation (Diagram(coordinateSystem(
+ extent={{-148.5,-105.0},{148.5,105.0}},
+ preserveAspectRatio=true,
+ initialScale=0.1,
+ grid={5,5}), graphics={Text(
+ visible=true,
+ origin={39.8634,3.4703},
+ fillPattern=FillPattern.Solid,
+ extent={{-35.0,-5.8583},{35.0,5.8583}},
+ textString="SystemSbase=100 MVA",
+ fontName="Arial")}), Documentation);
+ end Loadtestzipjimma;
+ annotation (Documentation);
+ end PSAT;
+ annotation (Documentation);
+ end Loads;
+
+ package Solar
+ extends Modelica.Icons.ExamplesPackage;
+
+ package PSAT
+ extends Modelica.Icons.ExamplesPackage;
+
+ model SolarPQtest
+ extends Modelica.Icons.Example;
+ OpenIPSL.Electrical.Solar.PSAT.ConstantPQPV.PQ1 PQ11(
+ P_0=0.4,
+ Q_0=0.3,
+ V_0=1.00018548610126,
+ angle_0=-0.0000253046024029618) annotation (Placement(visible=
+ true, transformation(
+ origin={35.0,10.0},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine1(
+ B=0.001/2,
+ G=0,
+ R=0.01,
+ X=0.1) annotation (Placement(visible=true, transformation(
+ origin={-70.0,-10.0},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ OpenIPSL.Electrical.Events.PwFault pwFault1(
+ R=20,
+ X=1,
+ t1=3,
+ t2=3.1) annotation (Placement(visible=true, transformation(
+ origin={20.0,-57.3},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ OpenIPSL.Electrical.Branches.PwLine pwLinewithOpening1(
+ B=0.001/2,
+ G=0,
+ R=0.01,
+ X=0.1,
+ t1=8,
+ t2=8.1) annotation (Placement(visible=true, transformation(
+ origin={-25.0,0.0},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine2(
+ B=0.001/2,
+ G=0,
+ R=0.01,
+ X=0.1) annotation (Placement(visible=true, transformation(
+ origin={-70.0,10.0},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine3(
+ B=0.001/2,
+ G=0,
+ R=0.01,
+ X=0.1) annotation (Placement(visible=true, transformation(
+ origin={-25.0,-30.0},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine4(
+ B=0.001/2,
+ G=0,
+ R=0.01,
+ X=0.1) annotation (Placement(visible=true, transformation(
+ origin={-25.0,15.0},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ OpenIPSL.Electrical.Loads.PSAT.LOADPQ pwLoadPQ2(
+ P_0=0.08,
+ Q_0=0.06,
+ V_0=1,
+ angle_0=0) annotation (Placement(visible=true, transformation(
+ origin={15.0,-30.0},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ OpenIPSL.Electrical.Machines.PSAT.Order3 order31(
+ Sn=20,
+ P_0=0.0401256732154526,
+ Q_0=0.0262725307404601,
+ V_b=400,
+ V_0=1,
+ angle_0=0,
+ Vn=400,
+ ra=0.001,
+ x1d=0.302,
+ M=10,
+ D=0,
+ xd=1.9,
+ T1d0=8,
+ xq=1.7) annotation (Placement(visible=true, transformation(
+ origin={-110.0,10.0},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ OpenIPSL.Electrical.Buses.Bus bus1 annotation (Placement(visible=
+ true, transformation(
+ origin={-87.5421,10.0},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ OpenIPSL.Electrical.Buses.Bus bus2 annotation (Placement(visible=
+ true, transformation(
+ origin={-46.7243,11.8063},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ OpenIPSL.Electrical.Buses.Bus bus3 annotation (Placement(visible=
+ true, transformation(
+ origin={5.0,12.1033},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ OpenIPSL.Electrical.Buses.Bus bus4 annotation (Placement(visible=
+ true, transformation(
+ origin={-3.3112,-30.0},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ inner OpenIPSL.Electrical.SystemBase SysData
+ annotation (Placement(transformation(extent={{50,50},{75,70}})));
+ equation
+ connect(pwLine2.p, pwLine1.p) annotation (Line(
+ visible=true,
+ origin={-77.0,0.0},
+ points={{-4.66667,10},{-4.66667,5},{-5,5},{-5,0},{-4.66667,0},{-4.66667,-10}}));
+ connect(pwLine1.n, pwLine2.n) annotation (Line(
+ visible=true,
+ origin={-63.0,0.0},
+ points={{4.66667,-10},{4.66667,-5},{5,-5},{5,0},{4.66667,0},{4.66667,10}}));
+ connect(pwLine4.p, pwLinewithOpening1.p) annotation (Line(
+ visible=true,
+ origin={-32.0,7.5},
+ points={{0.0,7.5},{0.0,-7.5}}));
+ connect(pwLinewithOpening1.n, pwLine4.n) annotation (Line(
+ visible=true,
+ origin={-18.0,7.5},
+ points={{0.0,-7.5},{0.0,7.5}}));
+ connect(bus1.p, pwLine2.p) annotation (Line(
+ visible=true,
+ origin={-82.2711,10.0},
+ points={{-5.271,0},{0.604433,0}}));
+ connect(pwLine2.n, bus2.p) annotation (Line(
+ visible=true,
+ origin={-52.1495,10.6021},
+ points={{-6.18383,-0.6021},{5.4252,-0.6021},{5.4252,1.2042}}));
+ connect(bus2.p, pwLine4.p) annotation (Line(
+ visible=true,
+ origin={-41.8162,13.9354},
+ points={{-4.9081,-2.1291},{-4.9081,1.0646},{5.14953,1.0646}}));
+ connect(bus2.p, pwLine3.p) annotation (Line(
+ visible=true,
+ origin={-41.8162,-16.0646},
+ points={{-4.9081,27.8709},{-4.9081,-13.9354},{5.14953,-13.9354}}));
+ connect(pwLine4.n, bus3.p) annotation (Line(
+ visible=true,
+ origin={-7.25,13.5517},
+ points={{-6.08333,1.4483},{-0.75,1.4483},{-0.75,-1.4484},{12.25,-1.4484}}));
+ connect(pwLine3.n, bus4.p) annotation (Line(
+ visible=true,
+ origin={-10.6556,-30.0},
+ points={{-2.67773,0},{7.3444,0}}));
+ connect(bus4.p, pwLoadPQ2.p) annotation (Line(
+ visible=true,
+ origin={0.4592,-29.3333},
+ points={{-3.7704,-0.6667},{-3.7704,10.3333},{14.5408,10.3333}}));
+ connect(bus4.p, pwFault1.p) annotation (Line(
+ visible=true,
+ origin={2.1259,-47.5333},
+ points={{-5.4371,17.5333},{-5.4371,-9.7667},{6.20743,-9.7667}}));
+ connect(bus1.p, order31.p) annotation (Line(
+ visible=true,
+ origin={-91.3614,9.8998},
+ points={{3.8193,0.1002},{3.8193,0.14984},{-7.6386,0.14984}}));
+ connect(PQ11.p, bus3.p) annotation (Line(
+ visible=true,
+ origin={17.4388,13.7927},
+ points={{6.5612,-3.7927},{6.2194,-1.6893},{-12.4388,-1.6894}}));
+ connect(order31.vf0, order31.vf) annotation (Line(points={{-118,21},{-118,25},
+ {-125,25},{-125,15},{-120,15}}, color={0,0,127}));
+ connect(order31.pm, order31.pm0) annotation (Line(points={{-120,5},{-125,5},{
+ -125,-5},{-118,-5},{-118,-1}}, color={0,0,127}));
+ annotation (Diagram(coordinateSystem(
+ extent={{-148.5,-105},{148.5,105}},
+ preserveAspectRatio=false,
+ initialScale=0.1,
+ grid={5,5})), Documentation);
+ end SolarPQtest;
+
+ model SolarPVtest
+ extends Modelica.Icons.Example;
+ OpenIPSL.Electrical.Branches.PwLine pwLine1(
+ B=0.001/2,
+ G=0,
+ R=0.01,
+ X=0.1) annotation (Placement(visible=true, transformation(
+ origin={-70.0,-10.0},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ OpenIPSL.Electrical.Events.PwFault pwFault1(
+ R=20,
+ X=1,
+ t1=3,
+ t2=3.1) annotation (Placement(visible=true, transformation(
+ origin={20.0,-57.3},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ OpenIPSL.Electrical.Branches.PwLine pwLinewithOpening1(
+ B=0.001/2,
+ G=0,
+ R=0.01,
+ X=0.1,
+ t1=8,
+ t2=8.1) annotation (Placement(visible=true, transformation(
+ origin={-25.0,0.0},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine2(
+ B=0.001/2,
+ G=0,
+ R=0.01,
+ X=0.1) annotation (Placement(visible=true, transformation(
+ origin={-70.0,10.0},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine3(
+ B=0.001/2,
+ G=0,
+ R=0.01,
+ X=0.1) annotation (Placement(visible=true, transformation(
+ origin={-25.0,-30.0},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine4(
+ B=0.001/2,
+ G=0,
+ R=0.01,
+ X=0.1) annotation (Placement(visible=true, transformation(
+ origin={-25.0,15.0},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ OpenIPSL.Electrical.Loads.PSAT.LOADPQ pwLoadPQ2(
+ P_0=0.08,
+ Q_0=0.06,
+ V_0=1,
+ angle_0=0) annotation (Placement(visible=true, transformation(
+ origin={15.0,-30.0},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ OpenIPSL.Electrical.Machines.PSAT.Order3 order31(
+ Sn=20,
+ P_0=0.0401256732154526,
+ Q_0=0.0262725307404601,
+ V_b=400,
+ V_0=1,
+ angle_0=0,
+ Vn=400,
+ ra=0.001,
+ x1d=0.302,
+ M=10,
+ D=0,
+ xd=1.9,
+ T1d0=8,
+ xq=1.7) annotation (Placement(visible=true, transformation(
+ origin={-110.0,10.0},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ OpenIPSL.Electrical.Buses.Bus bus1 annotation (Placement(visible=
+ true, transformation(
+ origin={-87.5421,10.0},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ OpenIPSL.Electrical.Buses.Bus bus2 annotation (Placement(visible=
+ true, transformation(
+ origin={-46.7243,11.8063},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ OpenIPSL.Electrical.Buses.Bus bus3 annotation (Placement(visible=
+ true, transformation(
+ origin={5.0,12.1033},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ OpenIPSL.Electrical.Buses.Bus bus4 annotation (Placement(visible=
+ true, transformation(
+ origin={-3.3112,-30.0},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ OpenIPSL.Electrical.Solar.PSAT.ConstantPQPV.PV1 PV11(
+ Q_0=0.283430554716626,
+ angle_0=-0.00000839852213846341,
+ V_0=1.00002,
+ vref=1.00002,
+ P_0=0.4) annotation (Placement(visible=true, transformation(
+ origin={30.0,12.1033},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ inner OpenIPSL.Electrical.SystemBase SysData
+ annotation (Placement(transformation(extent={{55,50},{80,70}})));
+ equation
+ connect(bus3.p, PV11.p) annotation (Line(
+ visible=true,
+ origin={12.0,12.1033},
+ points={{-7,0},{7,0}}));
+ connect(pwLine2.p, pwLine1.p) annotation (Line(
+ visible=true,
+ origin={-77.0,0.0},
+ points={{-4.66667,10},{-4.66667,5},{-5,5},{-5,0},{-4.66667,0},{-4.66667,-10}}));
+ connect(pwLine1.n, pwLine2.n) annotation (Line(
+ visible=true,
+ origin={-63.0,0.0},
+ points={{4.66667,-10},{4.66667,-5},{5,-5},{5,0},{4.66667,0},{4.66667,10}}));
+ connect(pwLine4.p, pwLinewithOpening1.p) annotation (Line(
+ visible=true,
+ origin={-32.0,7.5},
+ points={{0.0,7.5},{0.0,-7.5}}));
+ connect(pwLinewithOpening1.n, pwLine4.n) annotation (Line(
+ visible=true,
+ origin={-18.0,7.5},
+ points={{0.0,-7.5},{0.0,7.5}}));
+ connect(bus1.p, pwLine2.p) annotation (Line(
+ visible=true,
+ origin={-82.2711,10.0},
+ points={{-5.271,0},{0.604433,0}}));
+ connect(pwLine2.n, bus2.p) annotation (Line(
+ visible=true,
+ origin={-52.1495,10.6021},
+ points={{-6.18383,-0.6021},{5.4252,-0.6021},{5.4252,1.2042}}));
+ connect(bus2.p, pwLine4.p) annotation (Line(
+ visible=true,
+ origin={-41.8162,13.9354},
+ points={{-4.9081,-2.1291},{-4.9081,1.0646},{5.14953,1.0646}}));
+ connect(bus2.p, pwLine3.p) annotation (Line(
+ visible=true,
+ origin={-41.8162,-16.0646},
+ points={{-4.9081,27.8709},{-4.9081,-13.9354},{5.14953,-13.9354}}));
+ connect(pwLine4.n, bus3.p) annotation (Line(
+ visible=true,
+ origin={-7.25,13.5517},
+ points={{-6.08333,1.4483},{-0.75,1.4483},{-0.75,-1.4484},{12.25,-1.4484}}));
+ connect(pwLine3.n, bus4.p) annotation (Line(
+ visible=true,
+ origin={-10.6556,-30.0},
+ points={{-2.67773,0},{7.3444,0}}));
+ connect(bus4.p, pwLoadPQ2.p) annotation (Line(
+ visible=true,
+ origin={0.4592,-29.3333},
+ points={{-3.7704,-0.6667},{-3.7704,10.3333},{14.5408,10.3333}}));
+ connect(bus4.p, pwFault1.p) annotation (Line(
+ visible=true,
+ origin={2.1259,-47.5333},
+ points={{-5.4371,17.5333},{-5.4371,-9.7667},{6.20743,-9.7667}}));
+ connect(bus1.p, order31.p) annotation (Line(
+ visible=true,
+ origin={-91.3614,9.8998},
+ points={{3.8193,0.1002},{3.8193,0.14984},{-7.6386,0.14984}}));
+ connect(order31.vf0, order31.vf) annotation (Line(points={{-118,21},{-118,25},
+ {-130,25},{-130,15},{-120,15}}, color={0,0,127}));
+ connect(order31.pm, order31.pm0) annotation (Line(points={{-120,5},{-130,5},{
+ -130,-5},{-118,-5},{-118,-1}}, color={0,0,127}));
+ annotation (Diagram(coordinateSystem(
+ extent={{-148.5,-105},{148.5,105}},
+ preserveAspectRatio=false,
+ initialScale=0.1,
+ grid={5,5}), graphics={Text(
+ visible=true,
+ origin={-70.0,29.1417},
+ fillPattern=FillPattern.Solid,
+ extent={{-35.0,-5.8583},{35.0,5.8583}},
+ textString="SystemSbase=100 MVA",
+ fontName="Arial")}), Documentation);
+ end SolarPVtest;
+
+ model testTemperature
+ extends Modelica.Icons.Example;
+ Modelica.Blocks.Sources.Constant const(k=1000) annotation (Placement(visible=
+ true, transformation(
+ origin={-73.3987,11.6013},
+ extent={{-3.3987,-3.3987},{3.3987,3.3987}},
+ rotation=0)));
+ Modelica.Blocks.Sources.Constant const1(k=25) annotation (Placement(visible=
+ true, transformation(
+ origin={-85.0,-8.3987},
+ extent={{-3.3987,-3.3987},{3.3987,3.3987}},
+ rotation=0)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine13(
+ B=0,
+ G=0,
+ R=0,
+ X=0.04*1/0.63) annotation (Placement(visible=true, transformation(
+ origin={49.0376,0.0024},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine14(
+ B=0.001884956/2*100,
+ G=0,
+ R=0,
+ X=0.848230016469244/100) annotation (Placement(visible=true,
+ transformation(
+ origin={83.1777,5.4501},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ OpenIPSL.Electrical.Buses.InfiniteBus infiniteBus8(angle_0=0, V_0=1)
+ annotation (Placement(visible=true, transformation(
+ origin={117.9874,-1.1504},
+ extent={{10.0,-10.0},{-10.0,10.0}},
+ rotation=0)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine15(
+ B=0.001884956/2*100,
+ G=0,
+ R=0,
+ X=0.848230016469244/100) annotation (Placement(visible=true,
+ transformation(
+ origin={83.2752,-9.5499},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ Modelica.Blocks.Math.Add add1 annotation (Placement(visible=true,
+ transformation(
+ origin={-50.0,-16.424},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ Modelica.Blocks.Sources.Step step1(startTime=0.3, height=15) annotation (
+ Placement(visible=true, transformation(
+ origin={-110.8976,-31.3287},
+ extent={{-4.1024,-4.1024},{4.1024,4.1024}},
+ rotation=0)));
+ Modelica.Blocks.Sources.Step step2(startTime=0.7, height=-15) annotation (
+ Placement(visible=true, transformation(
+ origin={-110.0,-61.3488},
+ extent={{-5.0,-5.0},{5.0,5.0}},
+ rotation=0)));
+ Modelica.Blocks.Math.Add add2 annotation (Placement(visible=true,
+ transformation(
+ origin={-82.1332,-43.3987},
+ extent={{-2.8669,-2.8669},{2.8669,2.8669}},
+ rotation=0)));
+ OpenIPSL.Electrical.Solar.KTH.PFmodelmpptCorrected05MW PFmodel1(
+ anglev0=0.030372922116265,
+ p0=0.44884,
+ q0=0.00003,
+ v0=1.0003436) annotation (Placement(visible=true, transformation(
+ origin={-7.9875,0.0},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ inner OpenIPSL.Electrical.SystemBase SysData
+ annotation (Placement(transformation(extent={{50,50},{70,70}})));
+ equation
+ connect(add1.y, PFmodel1.T) annotation (Line(
+ visible=true,
+ origin={-26.2406,-10.712},
+ points={{-12.7594,-5.712},{3.2531,-5.712},{3.2531,5.712},{6.2531,5.712}},
+ color={0,0,127}));
+
+ connect(const.y, PFmodel1.E) annotation (Line(
+ visible=true,
+ origin={-33.9057,8.3006},
+ points={{-35.7544,3.3007},{10.9182,3.3007},{10.9182,-3.3006},{13.9182,-3.3006}},
+ color={0,0,127}));
+
+ connect(PFmodel1.pwPin1, pwLine13.p) annotation (Line(
+ visible=true,
+ origin={32.2688,0.1454},
+ points={{-29.2563,-0.1454},{9.7437,-0.1454},{9.7437,-0.143},{5.10213,-0.143}}));
+ connect(const1.y, add1.u1) annotation (Line(
+ visible=true,
+ origin={-68.3155,-9.4113},
+ points={{-12.9459,1.0126},{3.3154,1.0126},{3.3154,-1.0127},{6.3155,-1.0127}},
+ color={0,0,127}));
+
+ connect(add2.y, add1.u2) annotation (Line(
+ visible=true,
+ origin={-73.3198,-29.4155},
+ points={{-5.65981,-13.9832},{-5.65981,6.9916},{11.3198,6.9915}},
+ color={0,0,127}));
+ connect(step1.y, add2.u1) annotation (Line(
+ visible=true,
+ origin={-92.2764,-36.5036},
+ points={{-14.1086,5.1749},{3.7029,5.1749},{3.7029,-5.17496},{6.70292,-5.17496}},
+ color={0,0,127}));
+
+ connect(add2.u2, step2.y) annotation (Line(
+ visible=true,
+ origin={-98.2684,-53.2338},
+ points={{12.6949,8.11496},{-3.2317,8.11496},{-3.2317,-8.115},{-6.2316,-8.115}},
+ color={0,0,127}));
+
+ connect(pwLine13.n, pwLine14.p) annotation (Line(
+ visible=true,
+ origin={68.1427,2.7263},
+ points={{-7.43843,-2.7239},{2.035,-2.7239},{2.035,2.7238},{3.36833,2.7238}}));
+ connect(pwLine14.n, pwLine15.n) annotation (Line(
+ visible=true,
+ origin={90.2103,-4.5499},
+ points={{4.63407,10},{4.63407,-5},{4.73157,-5}}));
+ connect(pwLine14.p, pwLine15.p) annotation (Line(
+ visible=true,
+ origin={76.2102,-4.5499},
+ points={{-4.69917,10},{-4.69917,-5},{-4.60167,-5}}));
+ connect(infiniteBus8.p, pwLine14.n) annotation (Line(
+ visible=true,
+ origin={97.3801,2.1498},
+ points={{31.6073,-3.3002},{-1.2024,-3.3002},{-1.2024,3.3003},{-2.53573,
+ 3.3003}}));
+ annotation (Diagram(coordinateSystem(
+ extent={{-148.5,-105.0},{148.5,105.0}},
+ preserveAspectRatio=true,
+ initialScale=0.1,
+ grid={5,5}), graphics={Text(
+ visible=true,
+ origin={136.1319,30.0},
+ fillPattern=FillPattern.Solid,
+ extent={{-41.1319,-13.2857},{41.1319,13.2857}},
+ textString="VoltageGrid=10000 (1p.u.)",
+ fontName="Arial")}), Documentation);
+ end testTemperature;
+
+ model testIrradation
+ extends Modelica.Icons.Example;
+ Modelica.Blocks.Sources.Constant const(k=25) annotation (Placement(visible=
+ true, transformation(
+ origin={-59.5887,-17.0499},
+ extent={{-3.3987,-3.3987},{3.3987,3.3987}},
+ rotation=0)));
+ Modelica.Blocks.Sources.Constant const1(k=1000) annotation (Placement(visible=
+ true, transformation(
+ origin={-87.9874,22.9501},
+ extent={{-3.3987,-3.3987},{3.3987,3.3987}},
+ rotation=0)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine13(
+ B=0,
+ G=0,
+ R=0,
+ X=0.04*1/0.63) annotation (Placement(visible=true, transformation(
+ origin={49.0376,0.0024},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine14(
+ B=0.001884956/2*100,
+ G=0,
+ R=0,
+ X=0.848230016469244/100) annotation (Placement(visible=true,
+ transformation(
+ origin={83.1777,5.4501},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ OpenIPSL.Electrical.Buses.InfiniteBus infiniteBus8(angle_0=0, V_0=1)
+ annotation (Placement(visible=true, transformation(
+ origin={117.9874,-1.1504},
+ extent={{10.0,-10.0},{-10.0,10.0}},
+ rotation=0)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine15(
+ B=0.001884956/2*100,
+ G=0,
+ R=0,
+ X=0.848230016469244/100) annotation (Placement(visible=true,
+ transformation(
+ origin={83.2752,-9.5499},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ Modelica.Blocks.Math.Add add1 annotation (Placement(visible=true,
+ transformation(
+ origin={-52.9874,14.9248},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ Modelica.Blocks.Sources.Step step1(startTime=0.3, height=-500) annotation (
+ Placement(visible=true, transformation(
+ origin={-113.885,0.0201},
+ extent={{-4.1024,-4.1024},{4.1024,4.1024}},
+ rotation=0)));
+ Modelica.Blocks.Sources.Step step2(startTime=0.7, height=500) annotation (
+ Placement(visible=true, transformation(
+ origin={-112.9874,-30.0},
+ extent={{-5.0,-5.0},{5.0,5.0}},
+ rotation=0)));
+ Modelica.Blocks.Math.Add add2 annotation (Placement(visible=true,
+ transformation(
+ origin={-85.1206,-12.0499},
+ extent={{-2.8669,-2.8669},{2.8669,2.8669}},
+ rotation=0)));
+ OpenIPSL.Electrical.Solar.KTH.PFmodelmpptCorrected05MW PFmodel1(
+ anglev0=0.030372922116265,
+ p0=0.44884,
+ q0=0.00003,
+ v0=1.00034051839501) annotation (Placement(visible=true,
+ transformation(
+ origin={-7.9875,0.2883},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ inner OpenIPSL.Electrical.SystemBase SysData
+ annotation (Placement(transformation(extent={{50,50},{75,70}})));
+ equation
+ connect(const1.y, add1.u1) annotation (Line(
+ visible=true,
+ origin={-71.3029,21.9375},
+ points={{-12.9459,1.0126},{3.3154,1.0126},{3.3154,-1.0127},{6.3155,-1.0127}},
+ color={0,0,127}));
+
+ connect(add2.y, add1.u2) annotation (Line(
+ visible=true,
+ origin={-76.3072,1.9333},
+ points={{-5.65981,-13.9832},{-5.65981,6.9915},{11.3198,6.9915}},
+ color={0,0,127}));
+ connect(step1.y, add2.u1) annotation (Line(
+ visible=true,
+ origin={-95.2638,-5.1548},
+ points={{-14.1086,5.1749},{3.7029,5.1749},{3.7029,-5.17496},{6.70292,-5.17496}},
+ color={0,0,127}));
+
+ connect(add2.u2, step2.y) annotation (Line(
+ visible=true,
+ origin={-101.2558,-21.885},
+ points={{12.6949,8.11496},{-3.2317,8.11496},{-3.2317,-8.115},{-6.2316,-8.115}},
+ color={0,0,127}));
+
+ connect(pwLine13.n, pwLine14.p) annotation (Line(
+ visible=true,
+ origin={68.1427,2.7263},
+ points={{-7.43843,-2.7239},{2.035,-2.7239},{2.035,2.7238},{3.36833,2.7238}}));
+ connect(pwLine14.n, pwLine15.n) annotation (Line(
+ visible=true,
+ origin={90.2103,-4.5499},
+ points={{4.63407,10},{4.63407,-5},{4.73157,-5}}));
+ connect(pwLine14.p, pwLine15.p) annotation (Line(
+ visible=true,
+ origin={76.2102,-4.5499},
+ points={{-4.69917,10},{-4.69917,-5},{-4.60167,-5}}));
+ connect(infiniteBus8.p, pwLine14.n) annotation (Line(
+ visible=true,
+ origin={97.3801,2.1498},
+ points={{31.6073,-3.3002},{-1.2024,-3.3002},{-1.2024,3.3003},{-2.53573,
+ 3.3003}}));
+ connect(const.y, PFmodel1.T) annotation (Line(
+ visible=true,
+ origin={-30.4532,-10.8808},
+ points={{-25.3969,-6.1691},{7.4657,-6.1691},{7.4657,6.1691},{10.4657,
+ 6.1691}},
+ color={0,0,127}));
+ connect(PFmodel1.pwPin1, pwLine13.p) annotation (Line(
+ visible=true,
+ origin={32.2688,0.1454},
+ points={{-29.2563,0.1429},{9.7437,0.1429},{9.7437,-0.143},{5.10213,-0.143}}));
+ connect(add1.y, PFmodel1.E) annotation (Line(
+ visible=true,
+ origin={-26.9875,10.1066},
+ points={{-14.9999,4.8182},{4,4.8183},{4,-4.8183},{7,-4.8183}},
+ color={0,0,127}));
+ annotation (Diagram(coordinateSystem(
+ extent={{-148.5,-105.0},{148.5,105.0}},
+ preserveAspectRatio=true,
+ initialScale=0.1,
+ grid={5,5}), graphics={Text(
+ visible=true,
+ origin={136.1319,30.0},
+ fillPattern=FillPattern.Solid,
+ extent={{-41.1319,-13.2857},{41.1319,13.2857}},
+ textString="VoltageGrid=10000 (1p.u.)",
+ fontName="Arial")}), Documentation);
+ end testIrradation;
+ annotation (Documentation);
+ end PSAT;
+ annotation (Documentation);
+ end Solar;
+
+ package Wind
+ extends Modelica.Icons.ExamplesPackage;
+
+ model PSAT_WT_Test
+ extends Modelica.Icons.Example;
+ OpenIPSL.Electrical.Wind.PSAT.PSAT_Type_3.PSAT_WT dfig_Turbine1(
+ V_b=1,
+ angle_0=0.00161587015139445,
+ P_0=0.016,
+ Q_0=-0.002086945,
+ fn=50,
+ poles=2,
+ vw_base=15,
+ Pnom=10,
+ ngb=1/89) annotation (Placement(visible=true, transformation(
+ origin={46.6515,15.0},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine5(
+ B=0.001,
+ G=0,
+ R=0.01,
+ X=0.1) annotation (Placement(visible=true, transformation(
+ origin={6.551,15.0},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ OpenIPSL.Electrical.Wind.WindGenerator windGenerator1(
+ v0=0.537631527453836,
+ typ=3,
+ tstop=15,
+ sigma=1,
+ vmax=25/15,
+ wmag=-0.2) annotation (Placement(visible=true, transformation(
+ origin={25.0,40.0},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ OpenIPSL.Electrical.Buses.InfiniteBus infiniteBus1(V_0=1, angle_0=0)
+ annotation (Placement(visible=true, transformation(
+ origin={-28.2108,15.0},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ equation
+ connect(infiniteBus1.p, pwLine5.p) annotation (Line(
+ visible=true,
+ origin={-8.8299,15.0},
+ points={{-30.3809,0},{3.71423,0}},
+ color={0,0,255}));
+ connect(windGenerator1.Vw, dfig_Turbine1.Wind_Speed) annotation (Line(
+ visible=true,
+ origin={43.101,34.2663},
+ points={{-7.101,5.7337},{3.5505,5.7337},{3.5505,-11.4673}},
+ color={0,0,127}));
+ connect(pwLine5.n, dfig_Turbine1.pin) annotation (Line(
+ visible=true,
+ origin={24.6013,15.0},
+ points={{-6.38363,0},{11.0502,0}},
+ color={0,0,255}));
+ annotation (Diagram(coordinateSystem(
+ extent={{-148.5,-105.0},{148.5,105.0}},
+ preserveAspectRatio=true,
+ initialScale=0.1,
+ grid={5,5})), Documentation);
+ end PSAT_WT_Test;
+
+ model GE_WT_Test
+ extends Modelica.Icons.Example;
+ OpenIPSL.Electrical.Wind.GE.Type_3.GE_WT GE_WT_init1 annotation (
+ Placement(visible=true, transformation(
+ origin={75.0,1.7487},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ OpenIPSL.Electrical.Buses.InfiniteBus infBus2(angle_0=-0.000216626610049175,
+ V_0=1.05999999985841) annotation (Placement(visible=true,
+ transformation(
+ origin={-42.5798,1.9703},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine2(
+ R=0.009,
+ X=0.065,
+ B=0.063,
+ G=0) annotation (Placement(visible=true, transformation(
+ origin={-1.6888,1.6478},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine3(
+ R=0.0006,
+ X=0.0333,
+ G=0,
+ B=0) annotation (Placement(visible=true, transformation(
+ origin={16.9703,1.7398},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine4(
+ R=0.05,
+ X=0.015,
+ B=0.045,
+ G=0) annotation (Placement(visible=true, transformation(
+ origin={35.0,1.6888},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine5(
+ R=0.00222,
+ X=0.0222,
+ G=0,
+ B=0) annotation (Placement(visible=true, transformation(
+ origin={53.0297,1.8373},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ OpenIPSL.Electrical.Wind.WindGenerator windGenerator1 annotation (
+ Placement(visible=true, transformation(
+ origin={50.0,17.493},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine1(
+ R=0.013,
+ X=0.13,
+ G=0,
+ B=0) annotation (Placement(visible=true, transformation(
+ origin={-20.0,1.7863},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ OpenIPSL.Electrical.Events.PwFault pwFault1(
+ R=1/99999.999,
+ t1=10,
+ t2=10.1,
+ X=1/99999.999) annotation (Placement(visible=true, transformation(
+ origin={0.9428,15.0},
+ extent={{-14.0572,-11.7143},{14.0572,11.7143}},
+ rotation=0)));
+ equation
+ connect(infBus2.p, pwLine1.p) annotation (Line(
+ visible=true,
+ origin={-30.0532,1.8477},
+ points={{-23.5266,0.1226},{-23.5266,-0.0614},{-1.61347,-0.0614}},
+ color={0,0,255}));
+ connect(pwLine1.n, pwFault1.p) annotation (Line(
+ visible=true,
+ origin={-11.6324,11.3764},
+ points={{3.29907,-9.5901},{3.29907,3.6236},{-3.82487,3.6236}},
+ color={0,0,255}));
+ connect(pwLine1.n, pwLine2.p) annotation (Line(
+ visible=true,
+ origin={-11.5629,1.694},
+ points={{3.22957,0.0923},{3.22957,-0.0462},{-1.79257,-0.0462}},
+ color={0,0,255}));
+ connect(pwLine2.n, pwLine3.p) annotation (Line(
+ visible=true,
+ origin={6.8642,1.7091},
+ points={{3.11367,-0.0613},{3.11367,0.0307},{-1.56057,0.0307}},
+ color={0,0,255}));
+ connect(windGenerator1.Vw, GE_WT_init1.Wind_Speed) annotation (Line(
+ visible=true,
+ origin={70.3333,14.8446},
+ points={{-9.3333,2.6484},{4.6667,2.6484},{4.6667,-5.29687}},
+ color={0,0,127}));
+ connect(pwLine5.n, GE_WT_init1.pwPin1) annotation (Line(
+ visible=true,
+ origin={61.3531,1.7782},
+ points={{3.34327,0.0591},{3.34327,-0.0295},{2.6469,-0.0295}},
+ color={0,0,255}));
+ connect(pwLine4.n, pwLine5.p) annotation (Line(
+ visible=true,
+ origin={43.3432,1.7878},
+ points={{3.32347,-0.099},{3.32347,0.0495},{-1.98017,0.0495}},
+ color={0,0,255}));
+ connect(pwLine3.n, pwLine4.p) annotation (Line(
+ visible=true,
+ origin={25.3135,1.7058},
+ points={{3.32347,0.034},{3.32347,-0.017},{-1.98017,-0.017}},
+ color={0,0,255}));
+ annotation (Diagram(coordinateSystem(
+ extent={{-148.5,-105},{148.5,105}},
+ preserveAspectRatio=false,
+ initialScale=0.1,
+ grid={5,5}), graphics), Documentation);
+ end GE_WT_Test;
+
+ package PSSE
+ extends Modelica.Icons.ExamplesPackage;
+
+ package WT4G
+ extends Modelica.Icons.ExamplesPackage;
+
+ model WT4G1_WT4E1
+ extends Modelica.Icons.Example;
+ constant Real pi=Modelica.Constants.pi;
+ parameter Real V1=1.00000;
+ parameter Real A1=-1.570655e-005;
+ parameter Real V3=0.9999999;
+ parameter Real A3=0.02574992;
+ parameter Real P1=-1.4988;
+ parameter Real Q1=-4.3340;
+ parameter Real Zr=0.00000E+0;
+ parameter Real Zi=2.00000E-1;
+ parameter Real P3=1.500;
+ parameter Real Q3=-5.6658;
+ parameter Real R1=2.50000E-2;
+ parameter Real X1=2.50000E-2;
+ parameter Real B1=0.05000;
+ parameter Real dyrw[1, 9]=[0.20000E-01, 0.20000E-01, 0.40000, 0.90000, 1.1100,
+ 1.2000, 2.0000, 2.0000, 0.20000E-01];
+ OpenIPSL.Electrical.Branches.PwLine pwLine(
+ R=R1,
+ X=X1,
+ G=0,
+ B=B1/2) annotation (Placement(transformation(extent={{30,10},{
+ 50,30}})));
+ OpenIPSL.Electrical.Branches.PwLine pwLine1(
+ R=R1,
+ X=X1,
+ G=0,
+ B=B1/2) annotation (Placement(transformation(extent={{30,-30},{
+ 50,-10}})));
+ OpenIPSL.Electrical.Machines.PSSE.GENCLS gENCLS2_1(
+ V_0=V1,
+ angle_0=A1,
+ P_0=P1,
+ Q_0=Q1,
+ R_a=Zr,
+ X_d=Zi,
+ M_b=100) annotation (Placement(transformation(extent={{102,-12},
+ {90,12}})));
+ OpenIPSL.Electrical.Branches.PwLine pwLine2(
+ G=0,
+ B=0,
+ R=2.50000E-3,
+ X=2.50000E-3) annotation (Placement(transformation(extent={{-20,
+ -10},{0,10}})));
+ OpenIPSL.Electrical.Wind.PSSE.WT4G.WT4G1 wT4G1(
+ V_0=V3,
+ angle_0=A3,
+ M_b=100,
+ P_0=P3,
+ Q_0=Q3,
+ T_IQCmd=0.02,
+ T_IPCmd=0.02,
+ V_LVPL1=0.4,
+ V_LVPL2=0.9,
+ G_LVPL=1.11,
+ V_HVRCR=1.2,
+ CUR_HVRCR=2,
+ RIp_LVPL=2,
+ T_LVPL=0.02) annotation (Placement(transformation(
+ extent={{12,12},{-12,-12}},
+ rotation=180,
+ origin={-52,0})));
+ OpenIPSL.Electrical.Events.PwFault pwFault(
+ R=0.5,
+ X=0.5,
+ t1=1,
+ t2=1.5) annotation (Placement(transformation(extent={{20,-60},{
+ 40,-40}})));
+ OpenIPSL.Electrical.Wind.PSSE.WT4G.WT4E1 wT4E1_1(
+ PFAFLG=false,
+ VARFLG=true,
+ Tfv=0.15,
+ Kpv=18,
+ KIV=5,
+ Kpp=0.05,
+ KIP=0.15,
+ Kf=0,
+ Tf=0.08,
+ QMX=0.48,
+ QMN=-0.47,
+ IPMAX=1.1,
+ TRV=0.1,
+ dPMX=0.5,
+ dPMN=-0.5,
+ T_Power=0.05,
+ KQI=0.15,
+ VMINCL=0.9,
+ VMAXCL=1.1,
+ KVI=120,
+ Tv=0.05,
+ Tp=0.05,
+ ImaxTD=1.7,
+ Iphl=1.11,
+ Iqhl=1.11,
+ PQFLAG=false) annotation (Placement(transformation(extent={{-96,
+ 12},{-72,-12}})));
+ inner OpenIPSL.Electrical.SystemBase SysData(S_b=100, fn=60)
+ annotation (Placement(transformation(extent={{-100,80},{-48,100}})));
+ OpenIPSL.Electrical.Buses.Bus GEN annotation (Placement(
+ transformation(extent={{-40,-10},{-20,10}})));
+ OpenIPSL.Electrical.Buses.Bus BUS1 annotation (Placement(
+ transformation(extent={{0,-10},{20,10}})));
+ OpenIPSL.Electrical.Buses.Bus INF annotation (Placement(
+ transformation(extent={{60,-10},{80,10}})));
+ equation
+ connect(wT4G1.p, GEN.p) annotation (Line(points={{-38.8,-1.77636e-015},{-40,-1.77636e-015},
+ {-40,0},{-30,0}}, color={0,0,255}));
+ connect(GEN.p, pwLine2.p)
+ annotation (Line(points={{-30,0},{-19,0}}, color={0,0,255}));
+ connect(pwLine2.n, BUS1.p)
+ annotation (Line(points={{-1,0},{-1,0},{10,0}}, color={0,0,255}));
+ connect(BUS1.p, pwLine.p)
+ annotation (Line(points={{10,0},{20,0},{20,20},{31,20}}, color={0,0,255}));
+ connect(pwLine1.p, pwLine.p) annotation (Line(points={{31,-20},{20,-20},{20,
+ 20},{31,20}}, color={0,0,255}));
+ connect(pwFault.p, BUS1.p) annotation (Line(points={{18.3333,-50},{14,-50},{
+ 14,0},{10,0}}, color={0,0,255}));
+ connect(pwLine.n, INF.p)
+ annotation (Line(points={{49,20},{60,20},{60,0},{70,0}}, color={0,0,255}));
+ connect(pwLine1.n, INF.p) annotation (Line(points={{49,-20},{60,-20},{60,0},{
+ 70,0}}, color={0,0,255}));
+ connect(INF.p, gENCLS2_1.p)
+ annotation (Line(points={{70,0},{90,0},{90,0}}, color={0,0,255}));
+ connect(wT4E1_1.WIQCMD, wT4G1.I_qcmd) annotation (Line(points={{-70.8,8.4},{-68,
+ 8.4},{-68,9.6},{-62.8,9.6}}, color={0,0,127}));
+ connect(wT4E1_1.WIPCMD, wT4G1.I_pcmd) annotation (Line(points={{-70.8,3.6},{-68,
+ 3.6},{-68,4.8},{-62.8,4.8}}, color={0,0,127}));
+ connect(wT4G1.P, wT4E1_1.P) annotation (Line(points={{-65.2,-4.8},{-68,-4.8},
+ {-68,-2.4},{-73.2,-2.4}}, color={0,0,127}));
+ connect(wT4G1.V, wT4E1_1.V) annotation (Line(points={{-65.2,0},{-70,0},{-70,-9.6},
+ {-73.2,-9.6}}, color={0,0,127}));
+ connect(wT4G1.Q, wT4E1_1.Q) annotation (Line(points={{-65.2,-9.6},{-68,-9.6},
+ {-68,-6},{-73.2,-6}}, color={0,0,127}));
+ annotation (Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,
+ -100},{100,100}})), Documentation);
+ end WT4G1_WT4E1;
+
+ model WT4G1
+ extends Modelica.Icons.Example;
+ constant Real pi=Modelica.Constants.pi;
+ parameter Real V1=1.00000;
+ parameter Real A1=-1.570655e-005;
+ parameter Real V3=0.9999999;
+ parameter Real A3=0.02574992;
+ parameter Real P1=-1.4988;
+ parameter Real Q1=-4.3340;
+ parameter Real Zr=0.00000E+0;
+ parameter Real Zi=2.00000E-1;
+ parameter Real P3=1.500;
+ parameter Real Q3=-5.6658;
+ parameter Real R1=2.50000E-2;
+ parameter Real X1=2.50000E-2;
+ parameter Real B1=0.05000;
+ parameter Real dyrw[1, 9]=[0.20000E-01, 0.20000E-01, 0.40000, 0.90000, 1.1100,
+ 1.2000, 2.0000, 2.0000, 0.20000E-01];
+ OpenIPSL.Electrical.Branches.PwLine pwLine(
+ R=R1,
+ X=X1,
+ G=0,
+ B=B1/2) annotation (Placement(transformation(extent={{30,10},{
+ 50,30}})));
+ OpenIPSL.Electrical.Branches.PwLine pwLine1(
+ R=R1,
+ X=X1,
+ G=0,
+ B=B1/2) annotation (Placement(transformation(extent={{30,-30},{
+ 50,-10}})));
+ OpenIPSL.Electrical.Machines.PSSE.GENCLS gENCLS2_1(
+ V_0=V1,
+ angle_0=A1,
+ P_0=P1,
+ Q_0=Q1,
+ R_a=Zr,
+ X_d=Zi,
+ M_b=100) annotation (Placement(transformation(extent={{102,-12},
+ {90,12}})));
+ OpenIPSL.Electrical.Branches.PwLine pwLine2(
+ G=0,
+ B=0,
+ R=2.50000E-3,
+ X=2.50000E-3) annotation (Placement(transformation(extent={{-20,
+ -10},{0,10}})));
+ OpenIPSL.Electrical.Wind.PSSE.WT4G.WT4G1 wT4G1(
+ V_0=V3,
+ angle_0=A3,
+ M_b=100,
+ P_0=P3,
+ Q_0=Q3,
+ T_IQCmd=0.02,
+ T_IPCmd=0.02,
+ V_LVPL1=0.4,
+ V_LVPL2=0.9,
+ G_LVPL=1.11,
+ V_HVRCR=1.2,
+ CUR_HVRCR=2,
+ RIp_LVPL=2,
+ T_LVPL=0.02) annotation (Placement(transformation(
+ extent={{12,12},{-12,-12}},
+ rotation=180,
+ origin={-52,0})));
+ OpenIPSL.Electrical.Events.PwFault pwFault(
+ R=0.5,
+ X=0.5,
+ t1=1,
+ t2=1.5) annotation (Placement(transformation(extent={{20,-60},{
+ 40,-40}})));
+ inner OpenIPSL.Electrical.SystemBase SysData(S_b=100, fn=60)
+ annotation (Placement(transformation(extent={{-100,80},{-48,100}})));
+ OpenIPSL.Electrical.Buses.Bus GEN annotation (Placement(
+ transformation(extent={{-40,-10},{-20,10}})));
+ OpenIPSL.Electrical.Buses.Bus BUS1 annotation (Placement(
+ transformation(extent={{0,-10},{20,10}})));
+ OpenIPSL.Electrical.Buses.Bus INF annotation (Placement(
+ transformation(extent={{60,-10},{80,10}})));
+ equation
+ connect(wT4G1.p, GEN.p) annotation (Line(points={{-38.8,-1.77636e-015},{-40,-1.77636e-015},
+ {-40,0},{-30,0}}, color={0,0,255}));
+ connect(GEN.p, pwLine2.p)
+ annotation (Line(points={{-30,0},{-21.6667,0}}, color={0,0,255}));
+ connect(pwLine2.n, BUS1.p) annotation (Line(points={{1.66667,0},{1.66667,0},{
+ 10,0}}, color={0,0,255}));
+ connect(BUS1.p, pwLine.p) annotation (Line(points={{10,0},{20,0},{20,20},{
+ 28.3333,20}}, color={0,0,255}));
+ connect(pwLine1.p, pwLine.p) annotation (Line(points={{28.3333,-20},{20,-20},
+ {20,20},{28.3333,20}}, color={0,0,255}));
+ connect(pwFault.p, BUS1.p) annotation (Line(points={{18.3333,-50},{14,-50},{
+ 14,0},{10,0}}, color={0,0,255}));
+ connect(pwLine.n, INF.p) annotation (Line(points={{51.6667,20},{60,20},{60,0},
+ {70,0}}, color={0,0,255}));
+ connect(pwLine1.n, INF.p) annotation (Line(points={{51.6667,-20},{60,-20},{60,
+ 0},{70,0}}, color={0,0,255}));
+ connect(INF.p, gENCLS2_1.p) annotation (Line(points={{70,0},{88.8,0},{88.8,-0.180432}},
+ color={0,0,255}));
+ connect(wT4G1.I_qcmd, wT4G1.I_qcmd0) annotation (Line(points={{-62.8,9.6},{-66,
+ 9.6},{-66,16},{-59.2,16},{-59.2,13.2}}, color={0,0,127}));
+ connect(wT4G1.I_pcmd, wT4G1.I_pcmd0) annotation (Line(points={{-62.8,4.8},{-68,
+ 4.8},{-68,18},{-54.4,18},{-54.4,13.2}}, color={0,0,127}));
+ annotation (Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,
+ -100},{100,100}})), Documentation);
+ end WT4G1;
+ annotation (Documentation);
+ end WT4G;
+ annotation (Documentation);
+ end PSSE;
+ annotation (Documentation);
+ end Wind;
+
+ package Branches
+ extends Modelica.Icons.ExamplesPackage;
+
+ package PSAT
+ extends Modelica.Icons.ExamplesPackage;
+
+ model TwoWindingTransformer_Test
+ extends Modelica.Icons.Example;
+ OpenIPSL.Electrical.Machines.PSAT.Order2 order2_1(
+ Sn=100,
+ D=5,
+ V_0=1,
+ angle_0=0,
+ Vn=13800,
+ V_b=13800,
+ P_0=0.050249405357958,
+ Q_0=0.010496891745129,
+ ra=0.001,
+ x1d=0.302,
+ M=10) annotation (Placement(transformation(extent={{-80,-10},{-60,
+ 10}})));
+ OpenIPSL.Electrical.Loads.PSAT.LOADPQ lOADPQ(Q_0=0.001, P_0=0.03)
+ annotation (Placement(transformation(extent={{60,-30},{80,-10}})));
+ OpenIPSL.Electrical.Branches.PSAT.TwoWindingTransformer twoWindingTransformer(
+ Vn=13800,
+ xT=0.1,
+ rT=0.01,
+ V_b=13800) annotation (Placement(transformation(extent={{-40,-10},
+ {-20,10}})));
+ OpenIPSL.Electrical.Buses.InfiniteBus infiniteBus(V_0=1, angle_0=0)
+ annotation (Placement(transformation(extent={{-80,-50},{-60,-30}})));
+ OpenIPSL.Electrical.Branches.PwLine pwLine1(
+ R=0.01,
+ X=0.1,
+ G=0,
+ B=0.001/2)
+ annotation (Placement(transformation(extent={{10,0},{30,20}})));
+ OpenIPSL.Electrical.Branches.PwLine pwLine2(
+ R=0.01,
+ X=0.1,
+ G=0,
+ B=0.001)
+ annotation (Placement(transformation(extent={{10,-20},{30,0}})));
+ OpenIPSL.Electrical.Buses.Bus bus1 annotation (Placement(
+ transformation(extent={{-60,-10},{-40,10}})));
+ OpenIPSL.Electrical.Buses.Bus bus2
+ annotation (Placement(transformation(extent={{-20,-10},{0,10}})));
+ OpenIPSL.Electrical.Buses.Bus bus3
+ annotation (Placement(transformation(extent={{40,-10},{60,10}})));
+ inner OpenIPSL.Electrical.SystemBase SysData annotation (Placement(
+ transformation(extent={{-100,80},{-60,100}})));
+ equation
+ connect(infiniteBus.p, order2_1.p) annotation (Line(
+ points={{-60,-40},{-55,-40},{-55,0},{-60,0}},
+ color={0,0,255},
+ smooth=Smooth.None));
+ connect(bus3.p,pwLine2. n) annotation (Line(
+ points={{50,0},{40,0},{40,-10},{29,-10}},
+ color={0,0,255},
+ smooth=Smooth.None));
+ connect(twoWindingTransformer.n, bus2.p) annotation (Line(
+ points={{-19,0},{-10,0}},
+ color={0,0,255},
+ smooth=Smooth.None));
+ connect(twoWindingTransformer.p, bus1.p) annotation (Line(
+ points={{-41,0},{-50,0}},
+ color={0,0,255},
+ smooth=Smooth.None));
+ connect(bus1.p, order2_1.p) annotation (Line(
+ points={{-50,0},{-60,0}},
+ color={0,0,255},
+ smooth=Smooth.None));
+ connect(bus2.p,pwLine2. p) annotation (Line(
+ points={{-10,0},{6,0},{6,-10},{11,-10}},
+ color={0,0,255},
+ smooth=Smooth.None));
+ connect(order2_1.vf0, order2_1.vf) annotation (Line(points={{-78,11},{-78,14},{-88,14},{-88,5},{-82,5}},
+ color={0,0,127}));
+ connect(order2_1.pm, order2_1.pm0) annotation (Line(points={{-82,-5},{-88,-5},{-88,-14},{-78,-14},{-78,-11}},
+ color={0,0,127}));
+ connect(bus3.p, lOADPQ.p) annotation (Line(points={{50,0},{70,0},{70,-10}}, color={0,0,255}));
+ connect(pwLine1.p, bus2.p) annotation (Line(points={{11,10},{6,10},{6,0},{-10,0}}, color={0,0,255}));
+ connect(pwLine1.n, bus3.p) annotation (Line(points={{29,10},{40,10},{40,0},{50,0}}, color={0,0,255}));
+ end TwoWindingTransformer_Test;
+
+ model ThreeWindingTransformer_Test
+ extends Modelica.Icons.Example;
+ OpenIPSL.Electrical.Branches.PwLine pwLine3(
+ B=0.001/2,
+ G=0,
+ R=0.01,
+ X=0.1) annotation (Placement(visible=true, transformation(
+ origin={-2,-10},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine4(
+ B=0.001/2,
+ G=0,
+ R=0.01,
+ X=0.1) annotation (Placement(visible=true, transformation(
+ origin={-2,10},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ Modelica.Blocks.Sources.Sine sine1(amplitude=0.001, freqHz=0.2) annotation (
+ Placement(visible=true, transformation(
+ origin={-91.783,9.4652},
+ extent={{-4.4802,-4.4802},{4.4802,4.4802}},
+ rotation=0)));
+ Modelica.Blocks.Math.Add add2(k2=-1) annotation (Placement(visible=true,
+ transformation(
+ origin={-78,2},
+ extent={{-4,-4},{4,4}},
+ rotation=0)));
+ Modelica.Blocks.Sources.Sine sine2(
+ amplitude=0.001,
+ freqHz=0.2,
+ startTime=5) annotation (Placement(visible=true, transformation(
+ origin={-91.382,-5.5198},
+ extent={{-4.4802,-4.4802},{4.4802,4.4802}},
+ rotation=0)));
+ OpenIPSL.Electrical.Machines.PSAT.Order2 Gen1(
+ Sn=370,
+ D=5,
+ P_0=0.080124489663871,
+ Q_0=0.059251697676828,
+ V_b=400,
+ V_0=1,
+ angle_0=0,
+ Vn=400,
+ ra=0.001,
+ x1d=0.302,
+ M=10) annotation (Placement(transformation(extent={{-52,-10},{-32,
+ 10}})));
+ Modelica.Blocks.Math.Add add
+ annotation (Placement(transformation(extent={{-70,10},{-60,0}})));
+ OpenIPSL.Electrical.Loads.PSAT.LOADPQ_variation lOADPQ(
+ t_start_1=5,
+ t_end_1=8,
+ t_start_2=8,
+ t_end_2=12,
+ dP1=0,
+ dP2=0,
+ P_0=0.04,
+ Q_0=0.02,
+ dQ1=0.01,
+ dQ2=-0.01) annotation (Placement(transformation(extent={{80,-10},
+ {100,10}})));
+ OpenIPSL.Electrical.Loads.PSAT.LOADPQ_variation lOADPQ1(
+ P_0=0.04,
+ Q_0=0.04,
+ t_start_1=0,
+ t_end_1=0,
+ t_start_2=0,
+ t_end_2=0,
+ dP1=0,
+ dQ1=0,
+ dP2=0,
+ dQ2=0) annotation (Placement(transformation(extent={{80,-50},{100,
+ -30}})));
+ Electrical.Branches.PSAT.ThreeWindingTransformer threeWindingTransformer annotation (Placement(transformation(extent={{28,-10},{48,10}})));
+ OpenIPSL.Electrical.Buses.Bus Bus1 annotation (Placement(
+ transformation(extent={{-32,-10},{-12,10}})));
+ OpenIPSL.Electrical.Buses.Bus Bus2
+ annotation (Placement(transformation(extent={{8,-10},{28,10}})));
+ OpenIPSL.Electrical.Buses.Bus Bus3
+ annotation (Placement(transformation(extent={{60,10},{80,30}})));
+ OpenIPSL.Electrical.Buses.Bus Bus4 annotation (Placement(
+ transformation(extent={{60,-30},{80,-10}})));
+ inner OpenIPSL.Electrical.SystemBase SysData annotation (Placement(
+ transformation(extent={{-100,80},{-60,100}})));
+ equation
+ connect(add2.y, add.u1) annotation (Line(
+ points={{-73.6,2},{-71,2}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(add.y, Gen1.vf) annotation (Line(
+ points={{-59.5,5},{-54,5}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(Gen1.vf0, add.u2) annotation (Line(
+ points={{-50,11},{-50,16},{-74,16},{-74,8},{-71,8}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(Gen1.pm0, Gen1.pm) annotation (Line(
+ points={{-50,-11},{-50,-16},{-60,-16},{-60,-5},{-54,-5}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(pwLine4.n, pwLine3.n) annotation (Line(
+ points={{7,10},{13,10},{13,-10},{7,-10}},
+ color={0,0,255},
+ smooth=Smooth.None));
+ connect(pwLine4.p, pwLine3.p) annotation (Line(
+ points={{-11,10},{-17,10},{-17,-10},{-11,-10}},
+ color={0,0,255},
+ smooth=Smooth.None));
+ connect(Gen1.p, Bus1.p) annotation (Line(
+ points={{-32,0},{-22,0}},
+ color={0,0,255},
+ smooth=Smooth.None));
+ connect(Bus1.p, pwLine3.p) annotation (Line(
+ points={{-22,0},{-17,0},{-17,-10},{-11,-10}},
+ color={0,0,255},
+ smooth=Smooth.None));
+ connect(Bus2.p, pwLine3.n) annotation (Line(
+ points={{18,0},{13,0},{13,-10},{7,-10}},
+ color={0,0,255},
+ smooth=Smooth.None));
+ connect(Bus2.p, threeWindingTransformer.b1) annotation (Line(
+ points={{18,0},{27,0}},
+ color={0,0,255},
+ smooth=Smooth.None));
+ connect(threeWindingTransformer.b2, Bus3.p) annotation (Line(
+ points={{49,3},{63,3},{63,20},{70,20}},
+ color={0,0,255},
+ smooth=Smooth.None));
+ connect(lOADPQ.p, Bus3.p) annotation (Line(
+ points={{90,10},{90,20},{70,20}},
+ color={0,0,255},
+ smooth=Smooth.None));
+ connect(threeWindingTransformer.b3, Bus4.p) annotation (Line(
+ points={{49,-3},{63,-3},{63,-20},{70,-20}},
+ color={0,0,255},
+ smooth=Smooth.None));
+ connect(Bus4.p, lOADPQ1.p) annotation (Line(
+ points={{70,-20},{90,-20},{90,-30}},
+ color={0,0,255},
+ smooth=Smooth.None));
+ connect(sine1.y, add2.u1) annotation (Line(points={{-86.8548,9.4652},{-84,9.4652},{-84,4},{-82.8,4},{-82.8,4.4}}, color={0,0,127}));
+ connect(sine2.y, add2.u2) annotation (Line(points={{-86.4538,-5.5198},{-84.2269,-5.5198},{-84.2269,-0.4},{-82.8,-0.4}}, color={0,0,127}));
+ annotation (Documentation(info="
+
+Reference |
+KTH own Model, PSAT Manual 2.1.8 |
+
+
+Last update |
+29/09/2015 |
+
+
+Author |
+MAA Murad, SmarTS Lab, KTH Royal Institute of Technology |
+
+
+Contact |
+luigiv@kth.se |
+
+
+"));
+ end ThreeWindingTransformer_Test;
+
+ model PhaseShiftingTransformer_Test
+ extends Modelica.Icons.Example;
+ OpenIPSL.Electrical.Loads.PSAT.LOADPQ lOADPQ_B3(Q_0=0.001, P_0=0.03)
+ annotation (Placement(transformation(extent={{30,-50},{50,-30}})));
+ OpenIPSL.Electrical.Branches.PwLine pwLine1(
+ R=0.01,
+ X=0.1,
+ G=0,
+ B=0.001/2)
+ annotation (Placement(transformation(extent={{0,0},{20,20}})));
+ OpenIPSL.Electrical.Branches.PwLine pwLine2(
+ R=0.01,
+ X=0.1,
+ G=0,
+ B=0.001)
+ annotation (Placement(transformation(extent={{0,-20},{20,0}})));
+ OpenIPSL.Electrical.Branches.PwLine pwLine3(
+ R=0.01,
+ X=0.1,
+ G=0,
+ B=0.001/2)
+ annotation (Placement(transformation(extent={{50,0},{70,20}})));
+ OpenIPSL.Electrical.Branches.PSAT.PhaseShiftingTransformer.PSTransformer
+ pSTransformer
+ annotation (Placement(transformation(extent={{50,-20},{70,0}})));
+ OpenIPSL.Electrical.Loads.PSAT.LOADPQ_variation lOADPQ_B4(
+ P_0=0.02,
+ Q_0=0.01,
+ t_start_1=5,
+ t_end_1=7.99,
+ t_start_2=8,
+ t_end_2=12,
+ dQ1=0.01,
+ dQ2=-0.01,
+ dP1=0.02,
+ dP2=-0.02) annotation (Placement(transformation(extent={{80,-50},
+ {100,-30}})));
+ Modelica.Blocks.Sources.Sine sine1(amplitude=0.001, freqHz=0.2) annotation (
+ Placement(visible=true, transformation(
+ origin={-26,40},
+ extent={{4.4802,-4.4802},{-4.4802,4.4802}},
+ rotation=0)));
+ Modelica.Blocks.Math.Add diff(k2=-1) annotation (Placement(visible=true,
+ transformation(
+ origin={-47,31},
+ extent={{4.99999,-4.99999},{-5,5}},
+ rotation=0)));
+ Modelica.Blocks.Sources.Sine sine2(
+ amplitude=0.001,
+ freqHz=0.2,
+ startTime=5) annotation (Placement(visible=true, transformation(
+ origin={-26,22},
+ extent={{4.4802,-4.4802},{-4.4802,4.4802}},
+ rotation=0)));
+ OpenIPSL.Electrical.Machines.PSAT.Order2 Gen1(
+ D=5,
+ Sn=100,
+ Vn=13800,
+ V_b=13800,
+ V_0=1,
+ P_0=0.050249405357958,
+ Q_0=0.010496891745129,
+ angle_0=0,
+ ra=0.001,
+ x1d=0.302,
+ M=10) annotation (Placement(transformation(extent={{-80,-10},{-60,
+ 10}})));
+ Modelica.Blocks.Math.Add add
+ annotation (Placement(transformation(extent={{-64,24},{-78,38}})));
+ OpenIPSL.Electrical.Branches.PSAT.TwoWindingTransformer twoWindingTransformer(
+ Vn=13800,
+ rT=0.01,
+ xT=0.1,
+ V_b=13800) annotation (Placement(transformation(extent={{-40,-10},
+ {-20,10}})));
+ OpenIPSL.Electrical.Buses.Bus B1 annotation (Placement(
+ transformation(extent={{-60,-10},{-40,10}})));
+ OpenIPSL.Electrical.Buses.Bus B2
+ annotation (Placement(transformation(extent={{-20,-10},{0,10}})));
+ OpenIPSL.Electrical.Buses.Bus B3
+ annotation (Placement(transformation(extent={{20,-10},{40,10}})));
+ OpenIPSL.Electrical.Buses.Bus B4 annotation (Placement(
+ transformation(extent={{80,-10},{100,10}})));
+ inner OpenIPSL.Electrical.SystemBase SysData annotation (Placement(
+ transformation(extent={{-100,80},{-60,100}})));
+ equation
+ connect(pSTransformer.pk, pSTransformer.u) annotation (Line(
+ points={{71,-14},{74,-14},{74,-20},{44,-20},{44,-4.4},{48,-4.4}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(sine1.y,diff. u1) annotation (Line(
+ points={{-30.9282,40},{-36,40},{-36,34},{-41,34}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(sine2.y,diff. u2) annotation (Line(
+ points={{-30.9282,22},{-36,22},{-36,28},{-41,28}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(Gen1.vf0, add.u2) annotation (Line(
+ points={{-78,11},{-78,20},{-58,20},{-58,26.8},{-62.6,26.8}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(Gen1.p, B1.p) annotation (Line(
+ points={{-60,0},{-50,0}},
+ color={0,0,255},
+ smooth=Smooth.None));
+ connect(B1.p, twoWindingTransformer.p) annotation (Line(
+ points={{-50,0},{-41,0}},
+ color={0,0,255},
+ smooth=Smooth.None));
+ connect(twoWindingTransformer.n, B2.p) annotation (Line(
+ points={{-19,0},{-10,0}},
+ color={0,0,255},
+ smooth=Smooth.None));
+ connect(B3.p, lOADPQ_B3.p) annotation (Line(
+ points={{30,0},{40,0},{40,-30}},
+ color={0,0,255},
+ smooth=Smooth.None));
+ connect(B4.p, lOADPQ_B4.p) annotation (Line(
+ points={{90,0},{96,0},{96,-22},{90,-22},{90,-30}},
+ color={0,0,255},
+ smooth=Smooth.None));
+ connect(pwLine3.p, B3.p) annotation (Line(points={{51,10},{40,10},{40,0},{30,0}}, color={0,0,255}));
+ connect(pSTransformer.p, B3.p) annotation (Line(points={{49,-10},{40,-10},{40,0},{30,0}}, color={0,0,255}));
+ connect(pSTransformer.n, B4.p) annotation (Line(points={{71,-10},{76,-10},{76,0},{90,0}}, color={0,0,255}));
+ connect(pwLine3.n, B4.p) annotation (Line(points={{69,10},{76,10},{76,0},{90,0}}, color={0,0,255}));
+ connect(pwLine1.n, B3.p) annotation (Line(points={{19,10},{24,10},{24,0},{30,0}}, color={0,0,255}));
+ connect(pwLine2.n, B3.p) annotation (Line(points={{19,-10},{24,-10},{24,0},{30,0}}, color={0,0,255}));
+ connect(pwLine1.p, B2.p) annotation (Line(points={{1,10},{-4,10},{-4,0},{-10,0}}, color={0,0,255}));
+ connect(pwLine2.p, B2.p) annotation (Line(points={{1,-10},{-4,-10},{-4,0},{-10,0}}, color={0,0,255}));
+ connect(add.y, Gen1.vf) annotation (Line(points={{-78.7,31},{-92,31},{-92,5},{-82,5}}, color={0,0,127}));
+ connect(Gen1.pm0, Gen1.pm) annotation (Line(points={{-78,-11},{-78,-14},{-86,-14},{-86,-5},{-82,-5}}, color={0,0,127}));
+ connect(diff.y, add.u1) annotation (Line(points={{-52.5,31},{-58,31},{-58,35.2},{-62.6,35.2}}, color={0,0,127}));
+ annotation (Documentation(info="
+
+Reference |
+KTH own Model, PSAT Manual 2.1.8 |
+
+
+Last update |
+29/09/2015 |
+
+
+Author |
+MAA Murad, SmarTS Lab, KTH Royal Institute of Technology |
+
+
+Contact |
+luigiv@kth.se |
+
+
+"));
+ end PhaseShiftingTransformer_Test;
+
+ model ULTC_Test
+ extends Modelica.Icons.Example;
+ OpenIPSL.Electrical.Branches.PwLine pwLine3(
+ B=0.001/2,
+ G=0,
+ R=0.01,
+ X=0.1) annotation (Placement(visible=true, transformation(
+ origin={20,-10},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine4(
+ B=0.001/2,
+ G=0,
+ R=0.01,
+ X=0.1) annotation (Placement(visible=true, transformation(
+ origin={20,10},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ Modelica.Blocks.Sources.Sine sine1(amplitude=0.001, freqHz=0.2) annotation (
+ Placement(visible=true, transformation(
+ origin={-92,10},
+ extent={{-4.4802,-4.4802},{4.4802,4.4802}},
+ rotation=0)));
+ Modelica.Blocks.Math.Add diff(k2=-1) annotation (Placement(visible=true,
+ transformation(
+ origin={-72,0},
+ extent={{-6.3229,-6.3229},{6.3229,6.3229}},
+ rotation=0)));
+ Modelica.Blocks.Sources.Sine sine2(
+ amplitude=0.001,
+ freqHz=0.2,
+ startTime=5) annotation (Placement(visible=true, transformation(
+ origin={-92,-10},
+ extent={{-4.4802,-4.4802},{4.4802,4.4802}},
+ rotation=0)));
+ OpenIPSL.Electrical.Machines.PSAT.Order2 order2_Inputs_Outputs(
+ Sn=370,
+ P_0=0.081032877181982,
+ Q_0=0.058523044412627,
+ D=5,
+ V_b=400,
+ V_0=1,
+ angle_0=0,
+ Vn=400,
+ ra=0.001,
+ x1d=0.302,
+ M=10) annotation (Placement(transformation(extent={{-30,-10},{-10,
+ 10}})));
+ Modelica.Blocks.Math.Add add
+ annotation (Placement(transformation(extent={{-56,-6},{-44,6}})));
+ OpenIPSL.Electrical.Loads.PSAT.LOADPQ_variation lOADPQ_B3(
+ P_0=0.08,
+ Q_0=0.06,
+ t_start_1=5,
+ t_end_1=8,
+ t_start_2=8,
+ t_end_2=12,
+ dP1=0,
+ dP2=0,
+ dQ1=-0.05,
+ dQ2=0.05) annotation (Placement(transformation(extent={{80,-40},{
+ 100,-20}})));
+ OpenIPSL.Electrical.Branches.PSAT.ULTC_VoltageControl uLTC_VoltageControl
+ annotation (Placement(transformation(extent={{50,-10},{70,10}})));
+ OpenIPSL.Electrical.Buses.Bus B1 annotation (Placement(
+ transformation(extent={{-10,-10},{10,10}})));
+ OpenIPSL.Electrical.Buses.Bus B2
+ annotation (Placement(transformation(extent={{30,-10},{50,10}})));
+ OpenIPSL.Electrical.Buses.Bus B3
+ annotation (Placement(transformation(extent={{70,-10},{90,10}})));
+ inner OpenIPSL.Electrical.SystemBase SysData annotation (Placement(
+ transformation(extent={{-100,80},{-40,100}})));
+ equation
+ connect(add.y, order2_Inputs_Outputs.vf) annotation (Line(
+ points={{-43.4,0},{-39,0},{-39,5},{-32,5}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(order2_Inputs_Outputs.pm0, order2_Inputs_Outputs.pm) annotation (Line(
+ points={{-28,-11},{-28,-14},{-36,-14},{-36,-5},{-32,-5}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(sine1.y,diff. u1) annotation (Line(
+ points={{-87.0718,10},{-82,10},{-82,4},{-79.5875,4},{-79.5875,3.79374}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(sine2.y,diff. u2) annotation (Line(
+ points={{-87.0718,-10},{-82,-10},{-82,-4},{-79.5875,-4},{-79.5875,-3.79374}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(pwLine4.p, pwLine3.p) annotation (Line(
+ points={{11,10},{6,10},{6,-10},{11,-10}},
+ color={0,0,255},
+ smooth=Smooth.None));
+ connect(order2_Inputs_Outputs.p, B1.p) annotation (Line(
+ points={{-10,0},{0,0}},
+ color={0,0,255},
+ smooth=Smooth.None));
+ connect(B1.p, pwLine3.p) annotation (Line(
+ points={{0,0},{6,0},{6,-10},{11,-10}},
+ color={0,0,255},
+ smooth=Smooth.None));
+ connect(B2.p, pwLine3.n) annotation (Line(
+ points={{40,0},{34,0},{34,-10},{29,-10}},
+ color={0,0,255},
+ smooth=Smooth.None));
+ connect(uLTC_VoltageControl.n, B3.p) annotation (Line(
+ points={{71,0},{80,0}},
+ color={0,0,255},
+ smooth=Smooth.None));
+ connect(lOADPQ_B3.p, B3.p) annotation (Line(
+ points={{90,-20},{90,0},{80,0}},
+ color={0,0,255},
+ smooth=Smooth.None));
+ connect(B2.p, uLTC_VoltageControl.p) annotation (Line(
+ points={{40,0},{49,0}},
+ color={0,0,255},
+ smooth=Smooth.None));
+ connect(B2.p, pwLine4.n) annotation (Line(points={{40,0},{34,0},{34,10},{29,10}}, color={0,0,255}));
+ connect(diff.y, add.u2) annotation (Line(points={{-65.0448,0},{-62,0},{-62,-3.6},{-57.2,-3.6}}, color={0,0,127}));
+ connect(add.u1, order2_Inputs_Outputs.vf0) annotation (Line(points={{-57.2,3.6},{-62,3.6},{-62,18},{-28,18},{-28,11}}, color={0,0,127}));
+ annotation (Documentation(info="
+
+Reference |
+KTH own Model, PSAT Manual 2.1.8 |
+
+
+Last update |
+29/09/2015 |
+
+
+Author |
+MAA Murad, SmarTS Lab, KTH Royal Institute of Technology |
+
+
+Contact |
+luigiv@kth.se |
+
+
+"));
+ end ULTC_Test;
+ annotation (Documentation);
+ end PSAT;
+ annotation (Documentation);
+ end Branches;
+
+ package FACTS
+ extends Modelica.Icons.ExamplesPackage;
+
+ model StatcomCode_Test
+ import Modelica.Constants.pi;
+ extends Modelica.Icons.Example;
+ OpenIPSL.Electrical.Branches.PwLine pwLine4(
+ B=0.001/2,
+ G=0,
+ R=0.01,
+ X=0.1) annotation (Placement(visible=true, transformation(
+ origin={-13,13},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine2(
+ B=0.001/2,
+ G=0,
+ R=0.01,
+ X=0.1) annotation (Placement(visible=true, transformation(
+ origin={-15,-17},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ OpenIPSL.Electrical.Machines.PSAT.Order2 Syn2(
+ D=1,
+ Sn=370,
+ V_0=1.027606413803688,
+ V_b=400,
+ ra=0.001,
+ x1d=0.302,
+ M=10,
+ angle_0=0.036282466109908*180/pi,
+ P_0=0.800000000076548*SysData.S_b,
+ Q_0=0.500000000133379*SysData.S_b,
+ Vn=400) annotation (Placement(transformation(
+ extent={{-15,-16},{15,16}},
+ rotation=180,
+ origin={123,0})));
+ OpenIPSL.Electrical.Branches.PwLine pwLine1(
+ B=0.001/2,
+ G=0,
+ R=0.01,
+ X=0.1) annotation (Placement(visible=true, transformation(
+ origin={53,17},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine3(
+ B=0.001/2,
+ G=0,
+ R=0.01,
+ X=0.1) annotation (Placement(visible=true, transformation(
+ origin={55,-17},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ OpenIPSL.Electrical.Machines.PSAT.Order2 order2_Inputs_Outputs(
+ Sn=370,
+ D=5,
+ V_b=400,
+ V_0=1,
+ angle_0=0,
+ Vn=400,
+ ra=0.001,
+ x1d=0.302,
+ M=10,
+ P_0=0.004219210312137*SysData.S_b,
+ Q_0=-0.001421467052118*SysData.S_b)
+ annotation (Placement(transformation(extent={{-78,-8},{-58,12}})));
+ Modelica.Blocks.Sources.Pulse pulse(
+ period=10,
+ startTime=4.2,
+ amplitude=0.045,
+ width=58,
+ nperiod=-1,
+ offset=0.999885177318814)
+ annotation (Placement(transformation(extent={{-158,14},{-138,34}})));
+ Modelica.Blocks.Sources.Pulse pulse1(
+ period=10,
+ amplitude=-0.045,
+ width=42,
+ startTime=0,
+ nperiod=-1)
+ annotation (Placement(transformation(extent={{-156,-22},{-136,-2}})));
+ Modelica.Blocks.Math.Add3 add3_1(
+ k3=0,
+ k1=1,
+ k2=1) annotation (Placement(transformation(extent={{-118,-10},{-98,10}})));
+ OpenIPSL.Electrical.FACTS.PSAT.STATCOM sTATCOM3_1(V_0=1, angle_0=-0.000213067852480
+ *180/pi)
+ annotation (Placement(transformation(extent={{-14,-54},{6,-34}})));
+ OpenIPSL.Electrical.Buses.Bus bus
+ annotation (Placement(transformation(extent={{4,-8},{24,12}})));
+ OpenIPSL.Electrical.Loads.PSAT.LOADPQ_variation lOADPQ(
+ t_start_1=7,
+ t_end_1=7.001,
+ dP1=0,
+ t_start_2=8,
+ dP2=0,
+ P_0=0.8*SysData.S_b,
+ Q_0=0.6*SysData.S_b,
+ t_end_2=50,
+ angle_0=-0.000213067852480*180/pi,
+ dQ1=0.1*SysData.S_b,
+ dQ2=0.42*SysData.S_b)
+ annotation (Placement(transformation(extent={{38,-52},{58,-32}})));
+ inner OpenIPSL.Electrical.SystemBase SysData
+ annotation (Placement(transformation(extent={{-116,60},{-76,80}})));
+ equation
+ connect(pwLine1.n, pwLine3.n) annotation (Line(
+ points={{62,17},{78,17},{78,-17},{64,-17}},
+ color={0,0,255},
+ smooth=Smooth.None));
+ connect(bus.p, lOADPQ.p) annotation (Line(
+ points={{14,2},{24,2},{24,-32},{48,-32}},
+ color={0,0,255},
+ smooth=Smooth.None));
+ connect(sTATCOM3_1.p, lOADPQ.p) annotation (Line(
+ points={{7,-44},{20,-44},{20,2},{24,2},{24,-32},{48,-32}},
+ color={0,0,255},
+ smooth=Smooth.None));
+ connect(pwLine3.p, lOADPQ.p) annotation (Line(
+ points={{46,-17},{38,-17},{38,2},{24,2},{24,-32},{48,-32}},
+ color={0,0,255},
+ smooth=Smooth.None));
+ connect(pwLine1.p, lOADPQ.p) annotation (Line(
+ points={{44,17},{38,17},{38,2},{24,2},{24,-32},{48,-32}},
+ color={0,0,255},
+ smooth=Smooth.None));
+ connect(Syn2.p, pwLine3.n) annotation (Line(
+ points={{108,1.83187e-015},{78,1.83187e-015},{78,-17},{64,-17}},
+ color={0,0,255},
+ smooth=Smooth.None));
+ connect(pwLine2.n, bus.p) annotation (Line(
+ points={{-6,-17},{0,-17},{0,2},{14,2}},
+ color={0,0,255},
+ smooth=Smooth.None));
+ connect(pwLine4.n, bus.p) annotation (Line(
+ points={{-4,13},{0,13},{0,2},{14,2}},
+ color={0,0,255},
+ smooth=Smooth.None));
+ connect(pwLine4.p, pwLine2.p) annotation (Line(
+ points={{-22,13},{-28,13},{-28,-17},{-24,-17}},
+ color={0,0,255},
+ smooth=Smooth.None));
+ connect(order2_Inputs_Outputs.p, pwLine2.p) annotation (Line(
+ points={{-58,2},{-28,2},{-28,-17},{-24,-17}},
+ color={0,0,255},
+ smooth=Smooth.None));
+ connect(add3_1.y, order2_Inputs_Outputs.vf) annotation (Line(
+ points={{-97,0},{-92,0},{-92,7},{-80,7}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(order2_Inputs_Outputs.vf0, add3_1.u3) annotation (Line(
+ points={{-76,13},{-48,13},{-48,-22},{-120,-22},{-120,-8}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(pulse1.y, add3_1.u2) annotation (Line(
+ points={{-135,-12},{-126,-12},{-126,0},{-120,0}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(pulse.y, add3_1.u1) annotation (Line(
+ points={{-137,24},{-130,24},{-130,8},{-120,8}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(order2_Inputs_Outputs.pm0, order2_Inputs_Outputs.pm) annotation (Line(
+ points={{-76,-9},{-54,-9},{-54,-16},{-90,-16},{-90,-3},{-80,-3}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(Syn2.pm, Syn2.pm0) annotation (Line(points={{141,8},{148,8},{148,26},
+ {135,26},{135,17.6}}, color={0,0,127}));
+ connect(Syn2.vf0, Syn2.vf) annotation (Line(points={{135,-17.6},{135,-26},{
+ 152,-26},{152,-8},{141,-8}}, color={0,0,127}));
+ annotation (
+ Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{
+ 100,100}})),
+ Icon(coordinateSystem(extent={{-100,-100},{100,100}})),
+ Documentation(info="
+
+Reference |
+KTH own Model, PSAT Manual 2.1.8 |
+
+
+Last update |
+29/09/2015 |
+
+
+Author |
+MAA Murad, SmarTS Lab, KTH Royal Institute of Technology |
+
+
+Contact |
+luigiv@kth.se |
+
+
+"));
+ end StatcomCode_Test;
+
+ model TCSC_Reactance_Test
+ extends Modelica.Icons.Example;
+ OpenIPSL.Electrical.Machines.PSAT.Order2 Gen1(
+ Sn=370,
+ P_0=0.080101913348342,
+ Q_0=0.060948619430301,
+ D=5,
+ V_b=400,
+ V_0=1,
+ angle_0=0,
+ Vn=400,
+ ra=0.001,
+ x1d=0.302,
+ M=10)
+ annotation (Placement(transformation(extent={{-22,-10},{-2,10}})));
+ Modelica.Blocks.Sources.Pulse pulse(
+ period=10,
+ startTime=4.2,
+ amplitude=0.045,
+ width=58,
+ offset=1.005017533847740,
+ nperiod=2)
+ annotation (Placement(transformation(extent={{-116,10},{-96,30}})));
+ Modelica.Blocks.Sources.Pulse pulse1(
+ period=10,
+ amplitude=-0.045,
+ width=42,
+ startTime=0,
+ nperiod=2)
+ annotation (Placement(transformation(extent={{-118,-26},{-98,-6}})));
+ Modelica.Blocks.Math.Add3 add3_1(
+ k3=0,
+ k1=1,
+ k2=1) annotation (Placement(transformation(extent={{-58,-10},{-38,10}})));
+ OpenIPSL.Electrical.Branches.PwLine pwLine1(
+ R=0.01,
+ X=0.1,
+ G=0,
+ B=0.001/2)
+ annotation (Placement(transformation(extent={{62,-10},{82,10}})));
+ OpenIPSL.Electrical.Loads.PSAT.LOADPQ_variation lOADPQ(
+ P_0=0.08,
+ Q_0=0.06,
+ t_start_1=2,
+ t_end_1=10,
+ t_start_2=12,
+ t_end_2=20,
+ dP1=0,
+ dQ1=0.01,
+ dP2=0,
+ dQ2=-0.01)
+ annotation (Placement(transformation(extent={{96,-10},{116,10}})));
+ OpenIPSL.Electrical.FACTS.PSAT.TCSCReactance tCSCReactance
+ annotation (Placement(transformation(extent={{26,-10},{46,10}})));
+ inner OpenIPSL.Electrical.SystemBase SysData
+ annotation (Placement(transformation(extent={{-100,60},{-76,80}})));
+ equation
+ connect(pulse1.y, add3_1.u2) annotation (Line(
+ points={{-97,-16},{-68,-16},{-68,0},{-60,0}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(pulse.y, add3_1.u1) annotation (Line(
+ points={{-95,20},{-70,20},{-70,8},{-60,8}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(pwLine1.n, lOADPQ.p) annotation (Line(
+ points={{81,0},{92,0},{92,10},{106,10}},
+ color={0,0,255},
+ smooth=Smooth.None));
+ connect(add3_1.y, Gen1.vf) annotation (Line(
+ points={{-37,0},{-32,0},{-32,5},{-24,5}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(Gen1.pm0, Gen1.pm) annotation (Line(
+ points={{-20,-11},{8,-11},{8,-20},{-32,-20},{-32,-5},{-24,-5}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(Gen1.vf0, add3_1.u3) annotation (Line(
+ points={{-20,11},{4,11},{4,22},{-36,22},{-36,-20},{-60,-20},{-60,-8}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(tCSCReactance.n, pwLine1.p) annotation (Line(
+ points={{47,0},{63,0}},
+ color={0,0,255},
+ smooth=Smooth.None));
+ connect(Gen1.p, tCSCReactance.p) annotation (Line(
+ points={{-2,0},{11.5,0},{11.5,0.2},{25.1,0.2}},
+ color={0,0,255},
+ smooth=Smooth.None));
+ annotation (
+ Diagram(coordinateSystem(preserveAspectRatio=true, extent={{-100,-100},{100,
+ 100}}), graphics),
+ Icon(coordinateSystem(extent={{-100,-100},{100,100}})),
+ Documentation(info="
+
+Reference |
+KTH own Model, PSAT Manual 2.1.8 |
+
+
+Last update |
+29/09/2015 |
+
+
+Author |
+MAA Murad, SmarTS Lab, KTH Royal Institute of Technology |
+
+
+Contact |
+luigiv@kth.se |
+
+
+"));
+ end TCSC_Reactance_Test;
+
+ model TCSC_Alpha_Test
+ extends Modelica.Icons.Example;
+ OpenIPSL.Electrical.Machines.PSAT.Order2 Gen1(
+ Sn=370,
+ P_0=0.080101913348342,
+ Q_0=0.060948619430301,
+ D=5,
+ angle_0=0,
+ V_0=1,
+ Vn=400,
+ ra=0.001,
+ x1d=0.302,
+ M=10)
+ annotation (Placement(transformation(extent={{-24,-10},{-4,10}})));
+ Modelica.Blocks.Sources.Pulse pulse(
+ period=10,
+ startTime=4.2,
+ amplitude=0.045,
+ width=58,
+ offset=1.005017533847740,
+ nperiod=2)
+ annotation (Placement(transformation(extent={{-126,6},{-106,26}})));
+ Modelica.Blocks.Sources.Pulse pulse1(
+ period=10,
+ amplitude=-0.045,
+ width=42,
+ startTime=0,
+ nperiod=2)
+ annotation (Placement(transformation(extent={{-128,-28},{-108,-8}})));
+ Modelica.Blocks.Math.Add3 add3_1(
+ k3=0,
+ k1=1,
+ k2=1) annotation (Placement(transformation(extent={{-78,-10},{-58,10}})));
+ OpenIPSL.Electrical.Branches.PwLine pwLine1(
+ R=0.01,
+ G=0,
+ B=0.001/2,
+ X=0.1)
+ annotation (Placement(transformation(extent={{56,-10},{76,10}})));
+ OpenIPSL.Electrical.Loads.PSAT.LOADPQ_variation lOADPQ(
+ P_0=0.08,
+ Q_0=0.06,
+ t_start_1=2,
+ t_end_1=10,
+ dP1=0.01,
+ dQ1=0.01,
+ t_start_2=12,
+ t_end_2=20,
+ dP2=-0.01,
+ dQ2=-0.01)
+ annotation (Placement(transformation(extent={{94,-10},{114,10}})));
+ OpenIPSL.Electrical.FACTS.PSAT.TCSCAlpha tCSCAlpha
+ annotation (Placement(transformation(extent={{18,-10},{38,10}})));
+ inner OpenIPSL.Electrical.SystemBase SysData
+ annotation (Placement(transformation(extent={{-120,60},{-96,80}})));
+ equation
+ connect(pulse1.y, add3_1.u2) annotation (Line(
+ points={{-107,-18},{-92,-18},{-92,0},{-80,0}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(pulse.y, add3_1.u1) annotation (Line(
+ points={{-105,16},{-94,16},{-94,8},{-80,8}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(pwLine1.n, lOADPQ.p) annotation (Line(
+ points={{75,0},{88,0},{88,10},{104,10}},
+ color={0,0,255},
+ smooth=Smooth.None));
+ connect(add3_1.y, Gen1.vf) annotation (Line(
+ points={{-57,0},{-32,0},{-32,5},{-26,5}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(Gen1.vf0, add3_1.u3) annotation (Line(
+ points={{-22,11},{2,11},{2,22},{-42,22},{-42,-16},{-86,-16},{-86,-8},{-80,
+ -8}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(Gen1.pm0, Gen1.pm) annotation (Line(
+ points={{-22,-11},{4,-11},{4,-20},{-32,-20},{-32,-5},{-26,-5}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(tCSCAlpha.n, pwLine1.p) annotation (Line(
+ points={{39,0},{57,0}},
+ color={0,0,255},
+ smooth=Smooth.None));
+ connect(Gen1.p, tCSCAlpha.p) annotation (Line(
+ points={{-4,0},{7.5,0},{7.5,0},{17.1,0}},
+ color={0,0,255},
+ smooth=Smooth.None));
+ annotation (
+ Diagram(coordinateSystem(preserveAspectRatio=true, extent={{-100,-100},{100,
+ 100}}), graphics),
+ Icon(coordinateSystem(extent={{-100,-100},{100,100}})),
+ Documentation(info="
+
+Reference |
+KTH own Model, PSAT Manual 2.1.8 |
+
+
+Last update |
+29/09/2015 |
+
+
+Author |
+MAA Murad, SmarTS Lab, KTH Royal Institute of Technology |
+
+
+Contact |
+luigiv@kth.se |
+
+
+"));
+ end TCSC_Alpha_Test;
+ annotation (Documentation);
+ end FACTS;
+
+ model TwoWindingTransformer "SMIB system with one load and GENROE model"
+ extends Modelica.Icons.Example;
+ OpenIPSL.Electrical.Branches.PwLine pwLine1(
+ R=0.001,
+ X=0.2,
+ G=0,
+ B=0) annotation (Placement(transformation(extent={{40,20},{60,40}})));
+ OpenIPSL.Electrical.Branches.PwLine pwLine3(
+ t2=100,
+ R=0.0005,
+ X=0.1,
+ G=0,
+ B=0,
+ t1=100)
+ annotation (Placement(transformation(extent={{20,-40},{40,-20}})));
+ OpenIPSL.Electrical.Branches.PwLine pwLine4(
+ t2=100,
+ t1=100,
+ R=0.0005,
+ X=0.1,
+ G=0,
+ B=0)
+ annotation (Placement(transformation(extent={{60,-40},{80,-20}})));
+ OpenIPSL.Electrical.Machines.PSSE.GENCLS gENCLS(
+ M_b=100,
+ D=0,
+ V_0=1,
+ angle_0=0,
+ X_d=0.2,
+ H=0,
+ P_0=10.0278,
+ Q_0=32.05072)
+ annotation (Placement(transformation(extent={{118,-12},{106,12}})));
+ OpenIPSL.Electrical.Loads.PSSE.Load_variation constantLoad(
+ d_t=0,
+ d_P=0,
+ t1=0,
+ V_0=0.9679495,
+ angle_0=-0.5840921,
+ P_0=50,
+ Q_0=10)
+ annotation (Placement(transformation(extent={{-4,-52},{8,-40}})));
+ OpenIPSL.Electrical.Events.PwFault pwFault(
+ t1=2,
+ t2=2.15,
+ R=0.1,
+ X=0.1) annotation (Placement(transformation(
+ extent={{-6,-6},{6,6}},
+ rotation=-90,
+ origin={54,-58})));
+ OpenIPSL.Electrical.Machines.PSSE.GENSAL gENROE(
+ M_b=100,
+ Tpd0=5,
+ D=0,
+ Xppd=0.2,
+ Xl=0.12,
+ Xppq=0.2,
+ Tppd0=0.05,
+ Tppq0=0.1,
+ H=4,
+ Xd=1.41,
+ Xq=1.35,
+ Xpd=0.3,
+ S10=0.1,
+ S12=0.5,
+ R_a=0.002,
+ V_b=14.7,
+ V_0=1,
+ angle_0=4.747869,
+ P_0=40,
+ Q_0=-16.46028)
+ annotation (Placement(transformation(extent={{-92,-20},{-58,20}})));
+ OpenIPSL.Electrical.Branches.PSSE.TwoWindingTransformer twoWindingTransformer(
+ CZ=1,
+ R=0.001,
+ X=0.2,
+ G=0,
+ B=0,
+ S_n=1,
+ ANG1=1,
+ VB1=14.7,
+ VB2=130,
+ t1=0.8085,
+ VNOM1=20,
+ t2=1.02,
+ VNOM2=130,
+ CW=3)
+ annotation (Placement(transformation(extent={{-26,-4},{-14,4}})));
+ OpenIPSL.Electrical.Buses.Bus BUS01
+ annotation (Placement(transformation(extent={{-50,-10},{-30,10}})));
+ OpenIPSL.Electrical.Buses.Bus BUS02
+ annotation (Placement(transformation(extent={{-10,-10},{10,10}})));
+ OpenIPSL.Electrical.Buses.Bus BUS03
+ annotation (Placement(transformation(extent={{40,-40},{60,-20}})));
+ OpenIPSL.Electrical.Buses.Bus BUS1
+ annotation (Placement(transformation(extent={{80,-10},{100,10}})));
+ inner OpenIPSL.Electrical.SystemBase SysData(S_b=100, fn=50)
+ annotation (Placement(transformation(extent={{-100,80},{-40,100}})));
+ equation
+ connect(gENROE.PMECH, gENROE.PMECH0) annotation (Line(points={{-91.66,10},{-98,
+ 10},{-98,26},{-50,26},{-50,-6},{-56.64,-6}}, color={0,0,127}));
+ connect(gENROE.EFD, gENROE.EFD0) annotation (Line(points={{-91.66,-10},{-98,-10},
+ {-98,-24},{-50,-24},{-50,-14},{-56.64,-14}}, color={0,0,127}));
+ connect(gENROE.p, BUS01.p)
+ annotation (Line(points={{-56.3,0},{-40,0}}, color={0,0,255}));
+ connect(BUS01.p, twoWindingTransformer.p)
+ annotation (Line(points={{-40,0},{-27,0}}, color={0,0,255}));
+ connect(twoWindingTransformer.n, BUS02.p)
+ annotation (Line(points={{-13,0},{0,0}}, color={0,0,255}));
+ connect(pwLine1.p, BUS02.p) annotation (Line(points={{38.3333,30},{4,30},{4,0},
+ {0,0}}, color={0,0,255}));
+ connect(pwLine3.p, BUS02.p) annotation (Line(points={{18.3333,-30},{4,-30},{4,
+ 0},{0,0}}, color={0,0,255}));
+ connect(constantLoad.p, BUS02.p)
+ annotation (Line(points={{2,-39.4},{2,0},{0,0}}, color={0,0,255}));
+ connect(pwLine3.n, BUS03.p) annotation (Line(points={{41.6667,-30},{41.6667,-30},
+ {50,-30}}, color={0,0,255}));
+ connect(BUS03.p, pwLine4.p)
+ annotation (Line(points={{50,-30},{58.3333,-30}}, color={0,0,255}));
+ connect(BUS1.p, gENCLS.p) annotation (Line(points={{90,0},{104.8,0},{104.8,-0.180432}},
+ color={0,0,255}));
+ connect(pwLine1.n, BUS1.p) annotation (Line(points={{61.6667,30},{86,30},{86,
+ 0},{90,0}}, color={0,0,255}));
+ connect(pwLine4.n, BUS1.p) annotation (Line(points={{81.6667,-30},{86,-30},{
+ 86,0},{90,0}}, color={0,0,255}));
+ connect(pwFault.p, BUS03.p)
+ annotation (Line(points={{54,-51},{54,-30},{50,-30}}, color={0,0,255}));
+ annotation (Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,
+ -100},{100,100}})), Documentation);
+ end TwoWindingTransformer;
+
+ partial model SMIBpartial "SMIB system with one load"
+ extends Modelica.Icons.Example;
+ OpenIPSL.Electrical.Branches.PwLine pwLine(
+ R=0.001,
+ X=0.2,
+ G=0,
+ B=0) annotation (Placement(transformation(extent={{-26,-4},{-14,4}})));
+ OpenIPSL.Electrical.Branches.PwLine pwLine1(
+ R=0.001,
+ G=0,
+ B=0,
+ X=0.2)
+ annotation (Placement(transformation(extent={{34,26},{46,34}})));
+ OpenIPSL.Electrical.Branches.PwLine pwLine3(
+ R=0.0005,
+ X=0.1,
+ G=0,
+ B=0)
+ annotation (Placement(transformation(extent={{14,-34},{26,-26}})));
+ OpenIPSL.Electrical.Branches.PwLine pwLine4(
+ R=0.0005,
+ X=0.1,
+ G=0,
+ B=0)
+ annotation (Placement(transformation(extent={{54,-34},{66,-26}})));
+ OpenIPSL.Electrical.Machines.PSSE.GENCLS gENCLS(
+ M_b=100,
+ D=0,
+ V_0=1,
+ angle_0=0,
+ X_d=0.2,
+ P_0=10.01711,
+ Q_0=8.006544,
+ H=0)
+ annotation (Placement(transformation(extent={{112,-12},{98,12}})));
+ OpenIPSL.Electrical.Loads.PSSE.Load_variation constantLoad(
+ PQBRAK=0.7,
+ d_t=0,
+ d_P=0,
+ V_0=0.9919935,
+ angle_0=-0.5762684,
+ t1=0,
+ characteristic=2,
+ P_0=50,
+ Q_0=10)
+ annotation (Placement(transformation(extent={{-4,-52},{8,-40}})));
+ OpenIPSL.Electrical.Events.PwFault pwFault(
+ t1=2,
+ t2=2.15,
+ R=0,
+ X=0) annotation (Placement(transformation(
+ extent={{-6,-6},{6,6}},
+ rotation=-90,
+ origin={44,-60})));
+ OpenIPSL.Electrical.Buses.Bus GEN1
+ annotation (Placement(transformation(extent={{-50,-10},{-30,10}})));
+ inner OpenIPSL.Electrical.SystemBase SysData
+ annotation (Placement(transformation(extent={{-100,80},{-40,100}})));
+ OpenIPSL.Electrical.Buses.Bus LOAD
+ annotation (Placement(transformation(extent={{-10,-10},{10,10}})));
+ OpenIPSL.Electrical.Buses.Bus GEN2
+ annotation (Placement(transformation(extent={{70,-10},{90,10}})));
+ OpenIPSL.Electrical.Buses.Bus FAULT
+ annotation (Placement(transformation(extent={{30,-40},{50,-20}})));
+ equation
+ connect(GEN1.p, pwLine.p)
+ annotation (Line(points={{-40,0},{-40,0},{-25.4,0}}, color={0,0,255}));
+ connect(pwLine.n, LOAD.p)
+ annotation (Line(points={{-14.6,0},{-14.6,0},{0,0}}, color={0,0,255}));
+ connect(pwLine3.p, LOAD.p) annotation (Line(points={{14.6,-30},{4,-30},{4,0},
+ {0,0}},color={0,0,255}));
+ connect(constantLoad.p, LOAD.p)
+ annotation (Line(points={{2,-40},{2,0},{0,0}}, color={0,0,255}));
+ connect(pwLine1.p, LOAD.p)
+ annotation (Line(points={{34.6,30},{4,30},{4,0},{0,0}}, color={0,0,255}));
+ connect(GEN2.p, gENCLS.p)
+ annotation (Line(points={{80,0},{98,0},{98,0}}, color={0,0,255}));
+ connect(pwLine4.n, GEN2.p) annotation (Line(points={{65.4,-30},{76,-30},{76,0},
+ {80,0}}, color={0,0,255}));
+ connect(pwLine1.n, GEN2.p) annotation (Line(points={{45.4,30},{76,30},{76,0},
+ {80,0}},color={0,0,255}));
+ connect(FAULT.p, pwLine4.p)
+ annotation (Line(points={{40,-30},{54.6,-30}}, color={0,0,255}));
+ connect(FAULT.p, pwLine3.n)
+ annotation (Line(points={{40,-30},{25.4,-30}}, color={0,0,255}));
+ connect(pwFault.p, pwLine4.p)
+ annotation (Line(points={{44,-53},{44,-30},{54.6,-30}}, color={0,0,255}));
+ annotation (Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,
+ -100},{100,100}})), Documentation);
+ end SMIBpartial;
+
+ partial model BaseTest
+ extends Modelica.Icons.Example;
+ Electrical.Branches.PwLine pwLine1(
+ X=0.1,
+ R=0.01,
+ G=0,
+ B=0.0005) annotation (Placement(visible=true, transformation(
+ origin={20,-12},
+ extent={{-6,-6},{6,6}},
+ rotation=0)));
+ Electrical.Branches.PwLine pwLinewithOpening1(
+ G=0,
+ R=0.01,
+ X=0.1,
+ opening=1,
+ B=0.0005,
+ t1=2,
+ t2=2.15) annotation (Placement(visible=true, transformation(
+ origin={60,12},
+ extent={{-6,-6},{6,6}},
+ rotation=0)));
+ Electrical.Branches.PwLine pwLine2(
+ G=0,
+ R=0.01,
+ X=0.1,
+ B=0.0005) annotation (Placement(visible=true, transformation(
+ origin={20,12},
+ extent={{-6,-6},{6,6}},
+ rotation=0)));
+ Electrical.Branches.PwLine pwLine3(
+ G=0,
+ R=0.01,
+ X=0.1,
+ B=0.0005) annotation (Placement(visible=true, transformation(
+ origin={62,-14},
+ extent={{-6,-6},{6,6}},
+ rotation=0)));
+ Electrical.Branches.PwLine pwLine4(
+ G=0,
+ R=0.01,
+ X=0.1,
+ B=0.0005) annotation (Placement(visible=true, transformation(
+ origin={60,36},
+ extent={{-5.99999,-5.99998},{5.99999,6}},
+ rotation=0)));
+ Electrical.Loads.PSAT.LOADPQ pwLoadPQ1(
+ P_0=8,
+ Q_0=6,
+ V_0=1,
+ angle_0=0) annotation (Placement(visible=true, transformation(
+ origin={94,24},
+ extent={{-6,-6},{6,6}},
+ rotation=90)));
+ Electrical.Loads.PSAT.LOADPQ_variation pwLoadPQ2(
+ P_0=8,
+ Q_0=6,
+ V_0=1,
+ angle_0=0) annotation (Placement(visible=true, transformation(
+ origin={94.0335,-14.2889},
+ extent={{-6.2889,-6.0335},{6.2889,6.0335}},
+ rotation=90)));
+ inner Electrical.SystemBase SysData
+ annotation (Placement(transformation(extent={{-100,80},{-40,100}})));
+ Electrical.Buses.Bus bus
+ annotation (Placement(transformation(extent={{-10,-10},{10,10}})));
+ Electrical.Buses.Bus bus1
+ annotation (Placement(transformation(extent={{30,-10},{50,10}})));
+ Electrical.Buses.Bus bus2
+ annotation (Placement(transformation(extent={{70,14},{90,34}})));
+ Electrical.Buses.Bus bus3
+ annotation (Placement(transformation(extent={{70,-24},{90,-4}})));
+ equation
+ connect(pwLine2.p, pwLine1.p) annotation (Line(points={{14.6,12},{6,12},{6,-12},
+ {14.6,-12}}, color={0,0,255}));
+ connect(pwLine2.n, pwLine1.n) annotation (Line(points={{25.4,12},{34,12},{34,
+ -12},{25.4,-12}}, color={0,0,255}));
+ connect(pwLine4.p, pwLinewithOpening1.p) annotation (Line(points={{54.6,36},{
+ 48,36},{48,12},{54.6,12}}, color={0,0,255}));
+ connect(pwLine4.n, pwLinewithOpening1.n) annotation (Line(points={{65.4,36},{
+ 72,36},{72,12},{65.4,12}}, color={0,0,255}));
+ connect(bus.p, pwLine1.p) annotation (Line(points={{0,0},{6,0},{6,-12},{14.6,
+ -12}}, color={0,0,255}));
+ connect(bus1.p, pwLine1.n) annotation (Line(points={{40,0},{34,0},{34,-12},{
+ 25.4,-12}}, color={0,0,255}));
+ connect(bus1.p, pwLinewithOpening1.p) annotation (Line(points={{40,0},{44,0},
+ {44,20},{48,20},{48,12},{54.6,12}}, color={0,0,255}));
+ connect(pwLine3.p, pwLinewithOpening1.p) annotation (Line(points={{56.6,-14},
+ {44,-14},{44,20},{48,20},{48,12},{54.6,12}}, color={0,0,255}));
+ connect(bus2.p, pwLoadPQ1.p)
+ annotation (Line(points={{80,24},{84,24},{87.4,24}}, color={0,0,255}));
+ connect(bus2.p, pwLinewithOpening1.n) annotation (Line(points={{80,24},{72,24},
+ {72,12},{65.4,12}}, color={0,0,255}));
+ connect(bus3.p, pwLoadPQ2.p) annotation (Line(points={{80,-14},{87.3966,-14},
+ {87.3966,-14.2889}}, color={0,0,255}));
+ connect(pwLine3.n, bus3.p) annotation (Line(points={{67.4,-14},{67.4,-14},{80,
+ -14}}, color={0,0,255}));
+ annotation (
+ Icon(coordinateSystem(preserveAspectRatio=false)),
+ Diagram(coordinateSystem(preserveAspectRatio=false)),
+ Documentation);
+ end BaseTest;
+ annotation (Documentation);
+ end Examples;
+
+ package Electrical
+ record SystemBase "System Base Definition"
+ parameter OpenIPSL.Types.ApparentPowerMega S_b=100 "System base";
+ parameter Modelica.SIunits.Frequency fn=50 "System Frequency";
+ annotation (
+ Icon(coordinateSystem(
+ preserveAspectRatio=false,
+ extent={{-120,-100},{120,100}},
+ initialScale=0.1), graphics={Rectangle(extent={{-120,100},{120,-100}},
+ lineColor={28,108,200}),Text(
+ extent={{-100,40},{100,0}},
+ lineColor={28,108,200},
+ horizontalAlignment=TextAlignment.Left,
+ textString="System Base: %S_b MVA"),Text(
+ extent={{-100,-20},{100,-60}},
+ lineColor={28,108,200},
+ horizontalAlignment=TextAlignment.Left,
+ textString="Frequency: %fn Hz"),Text(
+ extent={{-100,100},{100,60}},
+ lineColor={28,108,200},
+ horizontalAlignment=TextAlignment.Center,
+ textString="System Data")}),
+ defaultComponentName="SysData",
+ defaultComponentPrefixes="inner",
+ missingInnerMessage="
+No 'System Data' component is defined. A default component will be used, and generate a system base of 100 MVA, and a frequency of 50 Hz",
+ Diagram(coordinateSystem(
+ extent={{-120,-100},{120,100}},
+ preserveAspectRatio=false,
+ initialScale=0.1)),
+ defaultComponentPrefixes="inner",
+ Documentation);
+
+ end SystemBase;
+
+ package Buses
+ model Bus "Bus model (2014/03/10)"
+ extends OpenIPSL.Electrical.Essentials.pfComponent;
+ OpenIPSL.Interfaces.PwPin p(vr(start=V_0*cos(angle_0*Modelica.Constants.pi
+ /180)), vi(start=V_0*sin(angle_0*Modelica.Constants.pi/180)))
+ annotation (Placement(
+ visible=true,
+ transformation(
+ origin={0,0},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0),
+ iconTransformation(
+ origin={0,0},
+ extent={{-10,-10},{10,10}},
+ rotation=0)));
+ Real V(start=V_0) "Bus voltage magnitude (pu)";
+ Modelica.SIunits.Conversions.NonSIunits.Angle_deg angle(start=angle_0)
+ "Bus voltage angle";
+ parameter Boolean displayPF=true "Display voltage values:" annotation (Dialog(
+ group="Visualisation",
+ __Dymola_compact=true,
+ __Dymola_descriptionLabel=true), choices(checkBox=true));
+ equation
+ V = sqrt(p.vr^2 + p.vi^2);
+ angle = atan2(p.vi, p.vr)*180/Modelica.Constants.pi;
+ p.ir = 0;
+ p.ii = 0;
+ annotation (Icon(graphics={Rectangle(
+ visible=true,
+ fillPattern=FillPattern.Solid,
+ extent={{-10,-100},{10,100}}),Text(
+ visible=true,
+ origin={-0.02605,120.133},
+ fillPattern=FillPattern.Solid,
+ extent={{-100,-20},{100,20}},
+ textString="%name"),Text(
+ visible=displayPF,
+ origin={0,-120},
+ extent={{-60,-20},{60,20}},
+ lineColor={170,0,0},
+ textString=DynamicSelect("Vpu", String(V, significantDigits=3))),Text(
+ visible=displayPF,
+ origin={0,-160},
+ extent={{-60,-20},{60,20}},
+ lineColor={170,0,0},
+ textString=DynamicSelect("Angle", String(angle, significantDigits=3)
+ + "°"))}), Documentation);
+ end Bus;
+
+ model InfiniteBus "PSAT Infinite Bus"
+ extends OpenIPSL.Electrical.Essentials.pfComponent;
+ Real P "Active Power absorbed by the Infinite bus (MW)";
+ Real Q "Reactive Power absorbed by the Infinite bus (MVAr)";
+ Interfaces.PwPin p
+ annotation (Placement(transformation(extent={{90,-10},{110,10}})));
+ parameter Boolean displayPF=false "Display power flow results:" annotation (
+ Dialog(
+ group="Visualisation",
+ __Dymola_compact=true,
+ __Dymola_descriptionLabel=true), choices(checkBox=true));
+ equation
+ p.vr = V_0*cos(angle_0*Modelica.Constants.pi/180);
+ p.vi = V_0*sin(angle_0*Modelica.Constants.pi/180);
+ P = -(p.vr*p.ir + p.vi*p.ii)*S_b;
+ Q = -(p.vr*p.ii - p.vi*p.ir)*S_b;
+ annotation (
+ Icon(coordinateSystem(
+ extent={{-100,-100},{100,100}},
+ preserveAspectRatio=false,
+ initialScale=0.1,
+ grid={2,2}), graphics={Rectangle(
+ extent={{-100,-100},{100,100}},
+ lineColor={0,0,0},
+ fillColor={241,241,241},
+ fillPattern=FillPattern.Solid),Text(
+ visible=displayPF,
+ extent={{-80,100},{80,20}},
+ lineColor={255,0,0},
+ textString=DynamicSelect("0.0 MW",
+ OpenIPSL.NonElectrical.Functions.displayPower(P, " MW"))),Polygon(
+ visible=displayPF,
+ points=DynamicSelect({{-20,30},{-20,10},{20,20},{-20,30}}, if P >= 0
+ then {{-20,30},{-20,10},{20,20},{-20,30}} else {{20,30},{20,10},{-20,
+ 20},{20,30}}),
+ lineColor={255,0,0},
+ fillColor={255,0,0},
+ fillPattern=FillPattern.Solid),Text(
+ visible=displayPF,
+ extent={{-80,-20},{80,-100}},
+ lineColor={0,255,0},
+ textString=DynamicSelect("0.0 Mvar",
+ OpenIPSL.NonElectrical.Functions.displayPower(Q, " Mvar"))),Polygon(
+ visible=displayPF,
+ points=DynamicSelect({{-20,-30},{-20,-10},{20,-20},{-20,-30}}, if Q
+ >= 0 then {{-20,-30},{-20,-10},{20,-20},{-20,-30}} else {{20,-30},
+ {20,-10},{-20,-20},{20,-30}}),
+ lineColor={0,255,0},
+ fillColor={0,255,0},
+ fillPattern=FillPattern.Solid),Text(
+ extent={{-100,160},{100,120}},
+ lineColor={0,0,255},
+ textString="%name")}),
+ Diagram(coordinateSystem(
+ preserveAspectRatio=true,
+ initialScale=0.1,
+ grid={2,2})),
+ Documentation(info="
+
+Reference |
+None |
+
+
+Last update |
+2015-12-14 |
+
+
+Author |
+Maxime Baudette, SmarTS Lab, KTH Royal Institute of Technology |
+
+
+Contact |
+luigiv@kth.se |
+
+
+"));
+ end InfiniteBus;
+
+ model InternalBus "Bus for change base"
+ outer OpenIPSL.Electrical.SystemBase SysData;
+ constant Real pi=Modelica.Constants.pi;
+ parameter Real M_b=120 "Machine base power rating (MVA)"
+ annotation (Dialog(group="Power flow data"));
+ parameter Real S_b=SysData.S_b "System base power rating (MVA)"
+ annotation (Dialog(group="Power flow data"));
+ OpenIPSL.Interfaces.PwPin p "Machine base" annotation (Placement(
+ transformation(extent={{-32,-4},{-12,16}}), iconTransformation(
+ extent={{-32,-4},{-12,16}})));
+ OpenIPSL.Interfaces.PwPin n "System base" annotation (Placement(
+ transformation(extent={{8,-4},{28,16}}), iconTransformation(
+ extent={{8,-4},{28,16}})));
+ protected
+ parameter Real CoB=M_b/S_b;
+ equation
+ 0 = n.vr - p.vr;
+ 0 = n.vi - p.vi;
+ 0 = p.ir*CoB + n.ir;
+ 0 = p.ii*CoB + n.ii;
+ annotation (
+ Icon(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{100,
+ 100}}), graphics={Rectangle(
+ extent={{8,96},{-12,-88}},
+ lineColor={0,0,255},
+ fillColor={95,95,95},
+ fillPattern=FillPattern.Solid),Text(
+ extent={{-46,34},{-22,2}},
+ lineColor={0,0,255},
+ textString="*")}),
+ Diagram(graphics),
+ Documentation);
+ end InternalBus;
+
+ model BusExt
+ outer OpenIPSL.Electrical.SystemBase SysData
+ "Must add this line in all models";
+ parameter Integer np(min=0) = 0 "Number of left connection"
+ annotation (Dialog(connectorSizing=true), HideResult=true);
+ parameter Integer nn(min=0) = 0 "Number of right connections"
+ annotation (Dialog(connectorSizing=true), HideResult=true);
+ OpenIPSL.Interfaces.PwPin p[np] annotation (Placement(
+ visible=true,
+ transformation(
+ origin={-20.0001,1},
+ extent={{-9.99994,-99},{10.0001,99}},
+ rotation=0),
+ iconTransformation(
+ origin={20,0},
+ extent={{-4,-60},{4,60}},
+ rotation=0)));
+ OpenIPSL.Interfaces.PwPin n[nn] annotation (Placement(
+ visible=true,
+ transformation(
+ origin={20,0},
+ extent={{-12,-100},{12,100}},
+ rotation=0),
+ iconTransformation(
+ origin={0,0},
+ extent={{-4,-60},{4,60}},
+ rotation=0)));
+ Real V(start=V_0) "Bus voltage magnitude (pu)";
+ Real angle(start=angle_0) "Bus voltage angle (deg)";
+ parameter Real V_0=1 "Voltage magnitude (pu)"
+ annotation (Dialog(group="Power flow data"));
+ parameter Real angle_0=0 "Voltage angle (deg)"
+ annotation (Dialog(group="Power flow data"));
+ parameter Real V_b=130 "Base voltage (kV)"
+ annotation (Dialog(group="Power flow data"));
+ parameter Real S_b=SysData.S_b "System base power (MVA)"
+ annotation (Dialog(group="Power flow data"));
+ protected
+ parameter Real vr0=V_0*cos(angle_0*Modelica.Constants.pi/180);
+ parameter Real vi0=V_0*sin(angle_0*Modelica.Constants.pi/180);
+ equation
+ if np > 1 then
+ for i in 2:np loop
+ connect(p[1], p[i]);
+ end for;
+ end if;
+ if nn > 1 then
+ for i in 2:nn loop
+ connect(n[1], n[i]);
+ end for;
+ end if;
+ if np > 0 and nn > 0 then
+ connect(p[1], n[1]);
+ end if;
+ if np > 0 then
+ V = sqrt(p[1].vr^2 + p[1].vi^2);
+ angle = atan2(p[1].vi, p[1].vr)*180/Modelica.Constants.pi;
+ elseif nn > 0 then
+ V = sqrt(n[1].vr^2 + n[1].vi^2);
+ angle = atan2(n[1].vi, n[1].vr)*180/Modelica.Constants.pi;
+ else
+ V = 0;
+ angle = 0;
+ end if;
+ annotation (
+ Diagram(coordinateSystem(extent={{0,-100},{20,100}})),
+ Icon(coordinateSystem(extent={{0,-100},{20,100}}, preserveAspectRatio=false),
+ graphics={Rectangle(
+ extent={{0,100},{20,-100}},
+ lineColor={0,0,255},
+ fillColor={85,170,255},
+ fillPattern=FillPattern.Solid)}),
+ Documentation(info="
+
+Reference |
+None |
+
+
+Last update |
+2017-07-07 |
+
+
+Author |
+Jan Lavenius, Giuseppe Laera, KTH Royal Institute of Technology; tbeu |
+
+
+Contact |
+luigiv@kth.se |
+
+
+"));
+ end BusExt;
+ annotation (Documentation);
+ end Buses;
+
+ package Branches
+ model PwLine "Model for a transmission Line based on the pi-equivalent circuit"
+ outer OpenIPSL.Electrical.SystemBase SysData;
+ import Modelica.ComplexMath.conj;
+ import Modelica.ComplexMath.real;
+ import Modelica.ComplexMath.imag;
+ import Modelica.ComplexMath.j;
+ OpenIPSL.Interfaces.PwPin p annotation (Placement(transformation(
+ extent={{-100,-10},{-80,10}}), iconTransformation(extent={{-100,
+ -10},{-80,10}})));
+ OpenIPSL.Interfaces.PwPin n annotation (Placement(transformation(
+ extent={{80,-10},{100,10}}), iconTransformation(extent={{80,-10},
+ {100,10}})));
+ parameter Modelica.SIunits.PerUnit R "Resistance (pu)"
+ annotation (Dialog(group="Line parameters"));
+ parameter Modelica.SIunits.PerUnit X "Reactance (pu)"
+ annotation (Dialog(group="Line parameters"));
+ parameter Modelica.SIunits.PerUnit G "Shunt half conductance (pu)"
+ annotation (Dialog(group="Line parameters"));
+ parameter Modelica.SIunits.PerUnit B "Shunt half susceptance (pu)"
+ annotation (Dialog(group="Line parameters"));
+ parameter OpenIPSL.Types.ApparentPowerMega S_b=SysData.S_b
+ "System base power (MVA)"
+ annotation (Dialog(group="Line parameters", enable=false));
+ parameter Modelica.SIunits.Time t1=Modelica.Constants.inf
+ annotation (Dialog(group="Perturbation parameters"));
+ parameter Modelica.SIunits.Time t2=Modelica.Constants.inf
+ annotation (Dialog(group="Perturbation parameters"));
+ parameter Integer opening=1 annotation (Dialog(group=
+ "Perturbation parameters"), choices(
+ choice=1 "Line opening at both ends",
+ choice=2 "Line opening at sending end",
+ choice=3 "Line opening at receiving end"));
+ parameter Boolean displayPF=false "Display power flow results:" annotation (
+ Dialog(
+ group="Visualisation",
+ __Dymola_compact=true,
+ __Dymola_descriptionLabel=true), choices(checkBox=true));
+ OpenIPSL.Types.ActivePowerMega P12;
+ OpenIPSL.Types.ActivePowerMega P21;
+ OpenIPSL.Types.ReactivePowerMega Q12;
+ OpenIPSL.Types.ReactivePowerMega Q21;
+ Complex vs(re=p.vr, im=p.vi);
+ Complex is(re=p.ir, im=p.ii);
+ Complex vr(re=n.vr, im=n.vi);
+ Complex ir(re=n.ir, im=n.ii);
+ protected
+ parameter Complex Y(re=G, im=B);
+ parameter Complex Z(re=R, im=X);
+ equation
+ //Calculations for the power flow display
+ P12 = real(vs*conj(is))*S_b;
+ P21 = -real(vr*conj(ir))*S_b;
+ Q12 = imag(vs*conj(is))*S_b;
+ Q21 = -imag(vr*conj(ir))*S_b;
+ //PI model with different line openings
+ if time >= t1 and time < t2 then
+ if opening == 1 then
+ is = Complex(0);
+ ir = Complex(0);
+ elseif opening == 2 then
+ is = Complex(0);
+ ir = (vr - ir*Z)*Y;
+ else
+ ir = Complex(0);
+ is = (vs - is*Z)*Y;
+ end if;
+ else
+ vs - vr = Z*(is - vs*Y);
+ vr - vs = Z*(ir - vr*Y);
+ end if;
+ annotation (Icon(coordinateSystem(preserveAspectRatio=true, initialScale=0.1),
+ graphics={Rectangle(
+ extent={{-80,40},{80,-40}},
+ lineColor={0,0,255},
+ fillColor={255,255,255},
+ fillPattern=FillPattern.Solid),Rectangle(
+ extent={{-60,20},{60,-20}},
+ lineColor={0,0,255},
+ fillColor={95,95,95},
+ fillPattern=FillPattern.Solid),Text(
+ visible=displayPF,
+ extent={{-200,160},{-20,40}},
+ lineColor={255,0,0},
+ textString=DynamicSelect("0.0 MW",
+ OpenIPSL.NonElectrical.Functions.displayPower(P12, " MW"))),Polygon(
+ visible=displayPF,
+ points=DynamicSelect({{-120,70},{-120,50},{-80,60},{-120,70}}, if P12
+ >= 0 then {{-120,70},{-120,50},{-80,60},{-120,70}} else {{-80,70},
+ {-80,50},{-120,60},{-80,70}}),
+ lineColor={255,0,0},
+ fillColor={255,0,0},
+ fillPattern=FillPattern.Solid),Text(
+ visible=displayPF,
+ extent={{20,160},{200,40}},
+ lineColor={255,0,0},
+ textString=DynamicSelect("0.0 MW",
+ OpenIPSL.NonElectrical.Functions.displayPower(P21, " MW"))),Polygon(
+ visible=displayPF,
+ points=DynamicSelect({{80,70},{80,50},{120,60},{80,70}}, if P21 >= 0
+ then {{80,70},{80,50},{120,60},{80,70}} else {{120,70},{120,50},{
+ 80,60},{120,70}}),
+ lineColor={255,0,0},
+ fillColor={255,0,0},
+ fillPattern=FillPattern.Solid),Text(
+ visible=displayPF,
+ extent={{-200,-40},{-20,-160}},
+ lineColor={0,255,0},
+ textString=DynamicSelect("0.0 Mvar",
+ OpenIPSL.NonElectrical.Functions.displayPower(Q12, " Mvar"))),
+ Polygon(
+ visible=displayPF,
+ points=DynamicSelect({{-120,-70},{-120,-50},{-80,-60},{-120,-70}},
+ if Q12 >= 0 then {{-120,-70},{-120,-50},{-80,-60},{-120,-70}} else
+ {{-80,-70},{-80,-50},{-120,-60},{-80,-70}}),
+ lineColor={0,255,0},
+ fillColor={0,255,0},
+ fillPattern=FillPattern.Solid),Text(
+ visible=displayPF,
+ extent={{20,-40},{200,-160}},
+ lineColor={0,255,0},
+ textString=DynamicSelect("0.0 Mvar",
+ OpenIPSL.NonElectrical.Functions.displayPower(Q21, " Mvar"))),
+ Polygon(
+ visible=displayPF,
+ points=DynamicSelect({{80,-70},{80,-50},{120,-60},{80,-70}}, if Q21
+ >= 0 then {{80,-70},{80,-50},{120,-60},{80,-70}} else {{120,-70},{
+ 120,-50},{80,-60},{120,-70}}),
+ lineColor={0,255,0},
+ fillColor={0,255,0},
+ fillPattern=FillPattern.Solid),Text(
+ extent={{-60,20},{60,-20}},
+ lineColor={255,255,0},
+ textString="%name")}), Documentation);
+ end PwLine;
+
+ package Simulink
+ package LTC
+ model LTC
+ Modelica.Blocks.Continuous.LimIntegrator imLimitedIntegrator(
+ outMax=1,
+ k=1,
+ outMin=-delay1,
+ y_start=-delay1,
+ initType=Modelica.Blocks.Types.Init.InitialOutput)
+ annotation (Placement(transformation(extent={{62,8},{78,24}})));
+ LTC_deadband deadband1(Uplim=Uplim, Downlim=Downlim)
+ annotation (Placement(transformation(extent={{-12,-14},{54,42}})));
+ parameter Real Uplim=0.01;
+ parameter Real Downlim=-0.01;
+ parameter Real Ymin=0.88 "Min Ratio";
+ parameter Real Ymax=1.2 "Max Ratio";
+ parameter Real delay1;
+ parameter Real delay2;
+ parameter Real positionNo=33;
+ parameter Real r0=1 "Transformer Ratio";
+ LTC_switch lTC_switch
+ annotation (Placement(transformation(extent={{88,6},{108,26}})));
+ Modelica.Blocks.Sources.Constant imSetPoint(k=0)
+ annotation (Placement(transformation(extent={{62,-20},{82,0}})));
+ Modelica.Blocks.Sources.Constant imSetPoint1(k=1)
+ annotation (Placement(transformation(extent={{-76,-38},{-56,-18}})));
+ Modelica.Blocks.Interfaces.RealOutput r annotation (Placement(transformation(
+ extent={{178,6},{198,26}}), iconTransformation(extent={{78,0},{114,38}})));
+ LTC_lookup lTC_lookup(Uplim=Uplim, Downlim=Downlim)
+ annotation (Placement(transformation(extent={{-2,42},{42,86}})));
+ Modelica.Blocks.Continuous.LimIntegrator imLimitedIntegrator1(
+ outMin=Ymin,
+ outMax=Ymax,
+ k=(Ymax - Ymin)/(positionNo*delay2),
+ y_start=r0,
+ initType=Modelica.Blocks.Types.Init.InitialOutput)
+ annotation (Placement(transformation(extent={{120,8},{136,24}})));
+ LTC_quantizer lTC_quantizer
+ annotation (Placement(transformation(extent={{150,6},{170,26}})));
+ Modelica.Blocks.Interfaces.RealInput u annotation (Placement(transformation(
+ extent={{-84,12},{-64,32}}), iconTransformation(extent={{-116,4},{-80,
+ 42}})));
+ Modelica.Blocks.Math.Add add(k2=-1)
+ annotation (Placement(transformation(extent={{-34,6},{-14,26}})));
+ equation
+ connect(lTC_lookup.out, lTC_switch.LTCin) annotation (Line(
+ points={{36.94,64.22},{84,64.22},{84,20.9},{91.6,20.9}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(r, lTC_quantizer.n) annotation (Line(
+ points={{188,16},{182,16},{182,16.1},{168.5,16.1}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(imLimitedIntegrator1.y, lTC_quantizer.p)
+ annotation (Line(points={{136.8,16},{152.7,16}}, color={0,0,127}));
+ connect(imLimitedIntegrator1.u, lTC_switch.r) annotation (Line(points={{118.4,
+ 16},{105.1,16},{105.1,16.8}}, color={0,0,127}));
+ connect(imLimitedIntegrator.y, lTC_switch.Signalin)
+ annotation (Line(points={{78.8,16},{91.7,16}}, color={0,0,127}));
+ connect(deadband1.signal, imLimitedIntegrator.u) annotation (Line(points={{
+ 42.78,16.24},{51.39,16.24},{51.39,16},{60.4,16}}, color={0,0,127}));
+ connect(imSetPoint.y, lTC_switch.Normalin) annotation (Line(points={{83,-10},
+ {88,-10},{88,10.7},{91.7,10.7}}, color={0,0,127}));
+ connect(add.y, deadband1.u)
+ annotation (Line(points={{-13,16},{1.2,16},{1.2,16.24}}, color={0,0,127}));
+ connect(lTC_lookup.u, deadband1.u) annotation (Line(points={{3.72,63.78},{-8,
+ 63.78},{-8,16},{1.2,16},{1.2,16.24}}, color={0,0,127}));
+ connect(add.u1, u)
+ annotation (Line(points={{-36,22},{-74,22}}, color={0,0,127}));
+ connect(imSetPoint1.y, add.u2) annotation (Line(points={{-55,-28},{-44,-28},{
+ -44,10},{-36,10}}, color={0,0,127}));
+ annotation (
+ Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{
+ 200,100}})),
+ Icon(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{200,
+ 100}}), graphics={Rectangle(
+ extent={{-78,70},{80,-32}},
+ lineColor={0,0,255},
+ fillColor={255,255,255},
+ fillPattern=FillPattern.Solid),Text(
+ extent={{-60,32},{66,-58}},
+ lineColor={0,0,255},
+ fillColor={255,255,255},
+ fillPattern=FillPattern.Solid,
+ textString="LTC
+ ")}), Documentation(info="
+
+
+Reference |
+Load Tap Changer |
+
+
+Last update |
+2015-10-02 |
+
+
+Author |
+Le Qi, SmarTS Lab, KTH Royal Institute of Technology |
+
+
+Contact |
+luigiv@kth.se |
+
+
+"));
+ end LTC;
+
+ model LTC_deadband
+ Modelica.Blocks.Interfaces.RealOutput signal annotation (Placement(
+ transformation(extent={{56,-2},{76,18}}), iconTransformation(extent={{
+ 56,-2},{76,18}})));
+ Modelica.Blocks.Interfaces.RealInput u annotation (Placement(transformation(
+ extent={{-68,0},{-48,20}}), iconTransformation(extent={{-70,-2},{-50,
+ 18}})));
+ parameter Real Uplim;
+ parameter Real Downlim;
+ equation
+ if u > Uplim or u < Downlim then
+ signal = 1;
+ else
+ signal = -100;
+ end if;
+ annotation (
+ Icon(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{100,
+ 100}}), graphics={Rectangle(
+ extent={{-50,52},{56,-38}},
+ lineColor={0,0,255},
+ fillColor={255,255,255},
+ fillPattern=FillPattern.Solid),Text(
+ extent={{-34,32},{40,-24}},
+ lineColor={0,0,255},
+ fillColor={255,255,255},
+ fillPattern=FillPattern.Solid,
+ textString="deadband")}),
+ Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{
+ 100,100}}), graphics),
+ Documentation(info="
+
+
+Reference |
+Load Tap Changer with a deadband |
+
+
+Last update |
+2015-10-02 |
+
+
+Author |
+Le Qi, SmarTS Lab, KTH Royal Institute of Technology |
+
+
+Contact |
+luigiv@kth.se |
+
+
+"));
+ end LTC_deadband;
+
+ model LTC_switch
+ Modelica.Blocks.Interfaces.RealInput Signalin annotation (Placement(
+ transformation(extent={{-68,-4},{-48,16}}), iconTransformation(extent={
+ {-78,-16},{-48,16}})));
+ Modelica.Blocks.Interfaces.RealInput LTCin annotation (Placement(
+ transformation(extent={{-68,46},{-48,66}}), iconTransformation(extent={
+ {-80,32},{-48,66}})));
+ Modelica.Blocks.Interfaces.RealInput Normalin annotation (Placement(
+ transformation(extent={{-68,-58},{-48,-38}}), iconTransformation(extent=
+ {{-78,-68},{-48,-38}})));
+ Modelica.Blocks.Interfaces.RealOutput r annotation (Placement(transformation(
+ extent={{54,0},{74,20}}), iconTransformation(extent={{56,-8},{86,24}})));
+ equation
+ if Signalin > 0 then
+ r = LTCin;
+ else
+ r = Normalin;
+ end if;
+ annotation (
+ Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{
+ 100,100}}), graphics),
+ Icon(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{100,
+ 100}}), graphics={Rectangle(
+ extent={{-46,94},{56,-94}},
+ lineColor={0,0,255},
+ fillColor={255,255,255},
+ fillPattern=FillPattern.Solid),Line(
+ points={{-46,0},{-32,0},{-32,18}},
+ color={0,0,255},
+ smooth=Smooth.None,
+ thickness=1),Line(
+ points={{-32,0},{-32,-18}},
+ color={0,0,255},
+ smooth=Smooth.None,
+ thickness=1)}),
+ Documentation(info="
+
+
+Reference |
+Load Tap Changer with switching |
+
+
+Last update |
+2015-10-02 |
+
+
+Author |
+Le Qi, SmarTS Lab, KTH Royal Institute of Technology |
+
+
+Contact |
+luigiv@kth.se |
+
+
+"));
+ end LTC_switch;
+
+ model LTC_quantizer
+ Modelica.Blocks.Interfaces.RealInput p annotation (Placement(transformation(
+ extent={{-76,-2},{-56,18}}), iconTransformation(extent={{-90,-18},{-56,
+ 18}})));
+ Modelica.Blocks.Interfaces.RealOutput n annotation (Placement(transformation(
+ extent={{70,-4},{90,16}}), iconTransformation(extent={{70,-14},{100,
+ 16}})));
+ parameter Real Ratio[1, 33]=[0.88, 0.89, 0.9, 0.91, 0.92, 0.93, 0.94, 0.95,
+ 0.96, 0.97, 0.98, 0.99, 1, 1.01, 1.02, 1.03, 1.04, 1.05, 1.06, 1.07, 1.08,
+ 1.09, 1.1, 1.11, 1.12, 1.13, 1.14, 1.15, 1.16, 1.17, 1.18, 1.19, 1.2];
+ equation
+ if 0.77 <= p and p < Ratio[1, 2] then
+ n = Ratio[1, 1];
+ elseif Ratio[1, 2] <= p and p < Ratio[1, 3] then
+ n = Ratio[1, 2];
+ elseif Ratio[1, 3] <= p and p < Ratio[1, 4] then
+ n = Ratio[1, 3];
+ elseif Ratio[1, 4] <= p and p < Ratio[1, 5] then
+ n = Ratio[1, 4];
+ elseif Ratio[1, 5] <= p and p < Ratio[1, 6] then
+ n = Ratio[1, 5];
+ elseif Ratio[1, 6] <= p and p < Ratio[1, 7] then
+ n = Ratio[1, 6];
+ elseif Ratio[1, 7] <= p and p < Ratio[1, 8] then
+ n = Ratio[1, 7];
+ elseif Ratio[1, 8] <= p and p < Ratio[1, 9] then
+ n = Ratio[1, 8];
+ elseif Ratio[1, 9] <= p and p < Ratio[1, 10] then
+ n = Ratio[1, 9];
+ elseif Ratio[1, 10] <= p and p < Ratio[1, 11] then
+ n = Ratio[1, 10];
+ elseif Ratio[1, 11] <= p and p < Ratio[1, 12] then
+ n = Ratio[1, 11];
+ elseif Ratio[1, 12] <= p and p < Ratio[1, 13] then
+ n = Ratio[1, 12];
+ elseif Ratio[1, 13] <= p and p < Ratio[1, 14] then
+ n = Ratio[1, 13];
+ elseif Ratio[1, 14] <= p and p < Ratio[1, 15] then
+ n = Ratio[1, 14];
+ elseif Ratio[1, 15] <= p and p < Ratio[1, 16] then
+ n = Ratio[1, 15];
+ elseif Ratio[1, 16] <= p and p < Ratio[1, 17] then
+ n = Ratio[1, 16];
+ elseif Ratio[1, 17] <= p and p < Ratio[1, 18] then
+ n = Ratio[1, 17];
+ elseif Ratio[1, 18] <= p and p < Ratio[1, 19] then
+ n = Ratio[1, 18];
+ elseif Ratio[1, 19] <= p and p < Ratio[1, 20] then
+ n = Ratio[1, 19];
+ elseif Ratio[1, 20] <= p and p < Ratio[1, 21] then
+ n = Ratio[1, 20];
+ elseif Ratio[1, 21] <= p and p < Ratio[1, 22] then
+ n = Ratio[1, 21];
+ elseif Ratio[1, 22] <= p and p < Ratio[1, 23] then
+ n = Ratio[1, 22];
+ elseif Ratio[1, 23] <= p and p < Ratio[1, 24] then
+ n = Ratio[1, 23];
+ elseif Ratio[1, 24] <= p and p < Ratio[1, 25] then
+ n = Ratio[1, 24];
+ elseif Ratio[1, 25] <= p and p < Ratio[1, 26] then
+ n = Ratio[1, 25];
+ elseif Ratio[1, 26] <= p and p < Ratio[1, 27] then
+ n = Ratio[1, 26];
+ elseif Ratio[1, 27] <= p and p < Ratio[1, 28] then
+ n = Ratio[1, 27];
+ elseif Ratio[1, 28] <= p and p < Ratio[1, 29] then
+ n = Ratio[1, 28];
+ elseif Ratio[1, 29] <= p and p < Ratio[1, 30] then
+ n = Ratio[1, 29];
+ elseif Ratio[1, 30] <= p and p < Ratio[1, 31] then
+ n = Ratio[1, 30];
+ elseif Ratio[1, 31] <= p and p < Ratio[1, 32] then
+ n = Ratio[1, 31];
+ elseif Ratio[1, 32] <= p and p < Ratio[1, 33] then
+ n = Ratio[1, 32];
+ else
+ n = Ratio[1, 33];
+ end if;
+ annotation (
+ Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{
+ 100,100}}), graphics),
+ Icon(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{100,
+ 100}}), graphics={Rectangle(extent={{-54,46},{70,-42}}, lineColor={
+ 0,0,255}),Line(
+ points={{-36,-36},{-26,-36},{-26,-28},{-16,-28},{-16,-18},{-8,-18},{-8,
+ -8},{2,-8},{2,2},{10,2},{10,10},{18,10},{18,18},{26,18},{26,26},{34,
+ 26},{34,32},{42,32},{42,38},{50,38},{50,44},{60,44}},
+ color={0,0,255},
+ smooth=Smooth.None)}),
+ Documentation(info="
+
+
+Reference |
+Load Tap Changer's quantizer |
+
+
+Last update |
+2015-10-02 |
+
+
+Author |
+Le Qi, SmarTS Lab, KTH Royal Institute of Technology |
+
+
+Contact |
+luigiv@kth.se |
+
+
+"));
+ end LTC_quantizer;
+
+ model LTC_lookup
+ Modelica.Blocks.Interfaces.RealInput u annotation (Placement(transformation(
+ extent={{-76,-2},{-56,18}}), iconTransformation(extent={{-92,-20},{-56,
+ 18}})));
+ Modelica.Blocks.Interfaces.RealOutput out annotation (Placement(
+ transformation(extent={{62,-12},{82,8}}), iconTransformation(extent={{
+ 62,-16},{92,18}})));
+ parameter Real Uplim;
+ parameter Real Downlim;
+ equation
+ if u > Uplim then
+ out = 1;
+ elseif u < Downlim then
+ out = -1;
+ else
+ out = 0;
+ end if;
+ annotation (
+ Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{
+ 100,100}}), graphics),
+ Icon(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{100,
+ 100}}), graphics={Rectangle(extent={{-54,32},{62,-34}}, lineColor={
+ 0,0,255}),Line(
+ points={{-46,-18},{-12,-18},{-10,-18}},
+ color={0,0,255},
+ smooth=Smooth.None),Line(
+ points={{-10,0},{12,0}},
+ color={0,0,255},
+ smooth=Smooth.None),Line(
+ points={{-10,0},{-10,-18}},
+ color={0,0,255},
+ smooth=Smooth.None,
+ pattern=LinePattern.Dash),Line(
+ points={{12,20},{12,0}},
+ color={0,0,255},
+ smooth=Smooth.None,
+ pattern=LinePattern.Dash),Line(
+ points={{12,20},{34,20},{52,20}},
+ color={0,0,255},
+ smooth=Smooth.None)}),
+ Documentation(info="
+
+
+Reference |
+Load Tap Changer's lookup |
+
+
+Last update |
+2015-10-02 |
+
+
+Author |
+Le Qi, SmarTS Lab, KTH Royal Institute of Technology |
+
+
+Contact |
+luigiv@kth.se |
+
+
+"));
+ end LTC_lookup;
+ annotation (Documentation);
+ end LTC;
+ annotation (Documentation);
+ end Simulink;
+
+ package PSSE
+ model TwoWindingTransformer
+ "Static Two-winding transformer according to PSS/E, without phase shift"
+ outer OpenIPSL.Electrical.SystemBase SysData;
+ import Modelica.Constants.pi;
+ import Modelica.ComplexMath.j;
+ import Modelica.ComplexMath.conj;
+ OpenIPSL.Interfaces.PwPin p annotation (Placement(transformation(
+ extent={{-80,-10},{-60,10}}), iconTransformation(extent={{-80,
+ -10},{-60,10}})));
+ OpenIPSL.Interfaces.PwPin n annotation (Placement(transformation(
+ extent={{60,-10},{80,10}}), iconTransformation(extent={{60,
+ -10},{80,10}})));
+ parameter Real S_b=SysData.S_b "System base power (MVA)"
+ annotation (Dialog(enable=false));
+ parameter Integer CZ=1 "Impedance I/O code" annotation (Dialog(tab=
+ "Transformer impedance data"), choices(
+ choice=1 "Z pu (winding kV system MVA)",
+ choice=2 "Z pu (winding kV widing MVA)",
+ choice=3 "Load loss (W) & |Z| (pu)"));
+ parameter Real R "Specified R (pu)"
+ annotation (Dialog(tab="Transformer impedance data"));
+ parameter Real X "Specified X (pu)"
+ annotation (Dialog(tab="Transformer impedance data"));
+ parameter Real G "Magnetizing G"
+ annotation (Dialog(tab="Transformer impedance data"));
+ parameter Real B "Magnetizing B"
+ annotation (Dialog(tab="Transformer impedance data"));
+ parameter Integer CW=1 "Winding I/O code" annotation (Dialog(tab=
+ "Transformer Nominal Ratings Data"), choices(
+ choice=1 "Turns ratio (pu on bus base kV)",
+ choice=2 "Winding voltage (kV)",
+ choice=3 "Turns ratio (pu on nom wind kV)"));
+ parameter Real t1=1 "Winding 1 ratio (pu)"
+ annotation (Dialog(tab="Transformer Nominal Ratings Data"));
+ parameter Real VNOM1=0 "Winding 1 Nominal kV"
+ annotation (Dialog(tab="Transformer Nominal Ratings Data"));
+ parameter Real VB1=300 "Bus Base kV on the side of winding 1"
+ annotation (Dialog(tab="Transformer Nominal Ratings Data"));
+ parameter Real t2=1 "Secondary winding tap ratio"
+ annotation (Dialog(tab="Transformer Nominal Ratings Data"));
+ parameter Real VNOM2=0 "Winding 2 Nominal kV"
+ annotation (Dialog(tab="Transformer Nominal Ratings Data"));
+ parameter Real VB2=300 "Bus Base kV on the side of winding 2"
+ annotation (Dialog(tab="Transformer Nominal Ratings Data"));
+ parameter Real ANG1=0 "Winding (1-2) Angle (degrees)"
+ annotation (Dialog(tab="Transformer Nominal Ratings Data"));
+ parameter Real S_n=S_b "Winding MVA"
+ annotation (Dialog(tab="Transformer Nominal Ratings Data"));
+ protected
+ parameter Real VNOM1_int=if abs(VNOM1) < Modelica.Constants.eps then VB1
+ else VNOM1;
+ parameter Real VNOM2_int=if abs(VNOM2) < Modelica.Constants.eps then VB2
+ else VNOM2;
+ parameter Real r=if CZ == 1 then R else R*S_b/S_n;
+ parameter Real x=if CZ == 1 then X else X*S_b/S_n;
+ parameter Complex t=T1/T2*(cos(ANG1/180*pi) + j*sin(ANG1/180*pi));
+ parameter Real T2=if CW == 1 then t2 elseif CW == 3 then t2*(VNOM2_int/VB2)
+ else t2/VB2;
+ parameter Real T1=if CW == 1 then t1 elseif CW == 3 then t1*(VNOM1_int/VB1)
+ else t1/VB1;
+ parameter Complex Ym(re=G, im=B);
+ parameter Complex xeq(re=r*abs(T2)^2, im=x*abs(T2)^2);
+ Complex ei(re=p.vr, im=p.vi);
+ Complex ej(re=n.vr, im=n.vi);
+ Complex ii(re=p.ir, im=p.ii);
+ Complex ij(re=n.ir, im=n.ii);
+ equation
+ ej = ei/t + xeq*ij;
+ (ii - ei*Ym)*conj(t) = -ij;
+ annotation (
+ Icon(coordinateSystem(preserveAspectRatio=false, extent={{-60,-40},{60,40}}),
+ graphics={Rectangle(
+ extent={{-60,40},{60,-40}},
+ lineColor={255,255,255},
+ fillColor={255,255,255},
+ fillPattern=FillPattern.Solid),Ellipse(extent={{-50,30},{10,-30}},
+ lineColor={28,108,200}),Ellipse(extent={{-12,30},{52,-30}}, lineColor=
+ {28,108,200}),Line(
+ points={{-60,0},{-50,0}},
+ color={28,108,200},
+ arrow={Arrow.None,Arrow.Filled}),Line(points={{52,0},{60,0}}, color={
+ 28,108,200}),Polygon(
+ points={{-56,4},{-50,0},{-56,-4},{-56,4}},
+ lineColor={28,108,200},
+ fillColor={28,108,200},
+ fillPattern=FillPattern.Solid)}),
+ Diagram(coordinateSystem(extent={{-60,-40},{60,40}}, preserveAspectRatio=
+ false)),
+ Documentation);
+ end TwoWindingTransformer;
+ annotation (Documentation);
+ end PSSE;
+
+ package PSAT
+ model TwoWindingTransformer "Modeled as series reactances without iron losses"
+ outer OpenIPSL.Electrical.SystemBase SysData;
+ OpenIPSL.Interfaces.PwPin p annotation (Placement(transformation(
+ extent={{-120,-10},{-100,10}})));
+ OpenIPSL.Interfaces.PwPin n annotation (Placement(transformation(
+ extent={{100,-10},{120,10}})));
+ parameter Real S_b=SysData.S_b "System base power (MVA)"
+ annotation (Dialog(group="Power flow"));
+ parameter Real V_b=40 "Sending end bus voltage (kV)"
+ annotation (Dialog(group="Power flow"));
+ // parameter Real fn=SysData.fn "Frequency rating (Hz)"
+ // annotation (Dialog(group="Power flow"));
+ parameter Real Sn=100 "Power rating (MVA)"
+ annotation (Dialog(group="Transformer parameters"));
+ parameter Real Vn=40 "Voltage rating of transformer (kV)"
+ annotation (Dialog(group="Transformer parameters"));
+ // parameter Real kT=1 "Nominal tap ratio (kV1/kV2)"
+ // annotation (Dialog(group="Transformer parameters"));
+ parameter Real rT=0.01 "Resistance (pu, transformer base)"
+ annotation (Dialog(group="Transformer parameters"));
+ parameter Real xT=0.2 "Reactance (pu, transformer base)"
+ annotation (Dialog(group="Transformer parameters"));
+ parameter Real m=1.0 "Optional fixed tap ratio"
+ annotation (Dialog(group="Transformer parameters"));
+
+ protected
+ parameter Real Zn = Vn^2/Sn "Transformer base impedance";
+ parameter Real Zb = V_b^2/S_b "System base impedance";
+ parameter Real r = rT * Zn/Zb "Resistance (pu, system base)";
+ parameter Real x = xT * Zn/Zb "Reactance (pu, system base)";
+ parameter Boolean tc = m <> 1.0 "Internal parameter to switch on the icon arrow";
+ equation
+ r*p.ir - x*p.ii = 1/m^2*p.vr - 1/m*n.vr;
+ r*p.ii + x*p.ir = 1/m^2*p.vi - 1/m*n.vi;
+ r*n.ir - x*n.ii = n.vr - 1/m*p.vr;
+ x*n.ir + r*n.ii = n.vi - 1/m*p.vi;
+ annotation (
+ Icon(graphics={Ellipse(extent={{-46,30},{8,-30}}, lineColor={0,0,255}),
+ Ellipse(extent={{-10,30},{44,-30}}, lineColor={0,0,255}),Line(
+ points={{100,0},{44,0},{44,0}},
+ color={0,0,255},
+ smooth=Smooth.None),Line(
+ points={{-100,0},{-46,0}},
+ color={0,0,255},
+ smooth=Smooth.None),Text(
+ extent={{-38,20},{-4,-20}},
+ lineColor={28,108,200},
+ textString="1"),Text(
+ extent={{4,18},{32,-16}},
+ lineColor={28,108,200},
+ textString="2"),
+ Text(
+ extent={{-100,100},{100,40}},
+ lineColor={0,0,255},
+ textString="%name"),
+ Line(
+ visible= tc,
+ points={{-60,-40},{0,40}},
+ color={28,108,200}),
+ Line(
+ points={{0,40},{-10,36}},
+ color={28,108,200},
+ visible=tc),
+ Line(
+ visible=tc,
+ points={{0,40},{0,30}},
+ color={28,108,200}),
+ Text(
+ visible=tc,
+ extent={{-80,-40},{-40,-60}},
+ lineColor={28,108,200},
+ textString="TC")}),
+ Documentation(info="
+
+Reference |
+PSAT Manual 2.1.8 |
+
+
+Last update |
+29/09/2015 |
+
+
+Author |
+MAA Murad, SmarTS Lab, KTH Royal Institute of Technology |
+
+
+Contact |
+luigiv@kth.se |
+
+
+"));
+ end TwoWindingTransformer;
+
+ model ThreeWindingTransformer
+ outer OpenIPSL.Electrical.SystemBase SysData;
+ OpenIPSL.Interfaces.PwPin b1 annotation (Placement(transformation(
+ extent={{-120,-10},{-100,10}}), iconTransformation(extent={
+ {-120,-10},{-100,10}})));
+ OpenIPSL.Interfaces.PwPin b2 annotation (Placement(transformation(
+ extent={{100,20},{120,40}})));
+ OpenIPSL.Interfaces.PwPin b3 annotation (Placement(transformation(
+ extent={{100,-40},{120,-20}})));
+ parameter Real S_b=SysData.S_b "System base power (MVA)"
+ annotation (Dialog(group="Power flow"));
+ parameter Real V_b=400000 "Sending end bus voltage (kV)"
+ annotation (Dialog(group="Power flow"));
+ parameter Real Sn=100 "Power rating (MVA)"
+ annotation (Dialog(group="Transformer parameters"));
+ parameter Real Vn=400000 "Voltage rating for transformer (V)"
+ annotation (Dialog(group="Transformer parameters"));
+ parameter Real r12=0.01 "Resistance of the branch 1-2 (pu, transformer base)"
+ annotation (Dialog(group="Transformer parameters"));
+ parameter Real r13=0.01 "Resistance of the branch 1-3 (pu, transformer base)"
+ annotation (Dialog(group="Transformer parameters"));
+ parameter Real r23=0.01 "Resistance of the branch 2-3 (pu, transformer base)"
+ annotation (Dialog(group="Transformer parameters"));
+ parameter Real x12=0.1 "Reactance of the branch 1-2 (pu, transformer base)"
+ annotation (Dialog(group="Transformer parameters"));
+ parameter Real x13=0.1 "Reactance of the branch 1-3 (pu, transformer base)"
+ annotation (Dialog(group="Transformer parameters"));
+ parameter Real x23=0.1 "Reactance of the branch 2-3 (pu, transformer base)"
+ annotation (Dialog(group="Transformer parameters"));
+ parameter Real m=0.98 "Fixed tap ratio"
+ annotation (Dialog(group="Transformer parameters"));
+ Real v0 "Voltage of the fictious bus";
+ Real v1;
+ Real v2;
+ Real v3;
+ Real anglev0 "Angle of the fictious bus";
+ Real anglev1;
+ Real anglev2;
+ Real anglev3;
+ TwoWindingTransformer branch1(
+ V_b=V_b,
+ Sn=Sn,
+ Vn=Vn,
+ rT=0.5*(r12 + r13 - r23),
+ xT=0.5*(x12 + x13 - x23),
+ m=m) annotation (Placement(transformation(extent={{-58,-10},{-38,10}})));
+ TwoWindingTransformer branch2(
+ V_b=V_b, Sn=Sn,
+ Vn=Vn,
+ rT=0.5*(r12 + r23 - r13),
+ xT=0.5*(x12 + x23 - x13)) annotation (Placement(transformation(extent={{40,20},{60,40}})));
+ TwoWindingTransformer branch3(
+ V_b=V_b, Sn=Sn,
+ Vn=Vn,
+ rT=0.5*(r23 + r13 - r12),
+ xT=0.5*(x23 + x13 - x12)) annotation (Placement(transformation(extent={{40,-40},{60,-20}})));
+ equation
+ v0 = sqrt(branch1.n.vr^2 + branch1.n.vi^2);
+ v1 = sqrt(b1.vr^2 + b1.vi^2);
+ v2 = sqrt(b2.vr^2 + b2.vi^2);
+ v3 = sqrt(b3.vr^2 + b3.vi^2);
+ anglev0 = atan2(branch1.n.vi, branch1.n.vr);
+ anglev1 = atan2(b1.vi, b1.vr);
+ anglev2 = atan2(b2.vi, b2.vr);
+ anglev3 = atan2(b3.vi, b3.vr);
+ connect(branch1.p, b1) annotation (Line(
+ points={{-59,0},{-110,0}},
+ color={0,0,255},
+ smooth=Smooth.None));
+ connect(branch1.n, branch2.p) annotation (Line(points={{-37,0},{0,0},{0,30},{39,30}}, color={0,0,255}));
+ connect(branch2.n, b2) annotation (Line(points={{61,30},{110,30}}, color={0,0,255}));
+ connect(branch1.n, branch3.p) annotation (Line(points={{-37,0},{0,0},{0,-30},{39,-30}}, color={0,0,255}));
+ connect(branch3.n, b3) annotation (Line(points={{61,-30},{110,-30}}, color={0,0,255}));
+ annotation (
+ Diagram(coordinateSystem(preserveAspectRatio=true, extent={{-100,-100},{100,
+ 100}})),
+ Icon(coordinateSystem(preserveAspectRatio=true, extent={{-100,-100},{100,
+ 100}}), graphics={Ellipse(extent={{-52,34},{12,-28}}, lineColor={0,
+ 0,255}),Ellipse(extent={{-4,64},{60,2}}, lineColor={0,0,255}),Ellipse(
+ extent={{-2,16},{62,-46}}, lineColor={0,0,255}),Line(
+ points={{-54,-22},{10,42},{10,42}},
+ color={0,0,255},
+ smooth=Smooth.None),Line(
+ points={{2,40},{10,42},{10,42}},
+ color={0,0,255},
+ smooth=Smooth.None),Line(
+ points={{8,34},{10,42}},
+ color={0,0,255},
+ smooth=Smooth.None),Line(
+ points={{60,32},{100,32},{100,32}},
+ color={0,0,255},
+ smooth=Smooth.None),Line(
+ points={{58,-28},{102,-28},{100,-28}},
+ color={0,0,255},
+ smooth=Smooth.None),Line(
+ points={{-100,0},{-52,0}},
+ color={0,0,255},
+ smooth=Smooth.None),Text(
+ extent={{-60,-50},{60,-92}},
+ lineColor={0,128,0},
+ textString="TWT"),
+ Text(
+ extent={{-100,140},{100,80}},
+ lineColor={0,0,255},
+ textString="%name")}),
+ Documentation(info="
+
+Reference |
+PSAT Manual 2.1.8 |
+
+
+Last update |
+15/07/2015 |
+
+
+Author |
+MAA Murad, SmarTS Lab, KTH Royal Institute of Technology |
+
+
+Contact |
+luigiv@kth.se |
+
+
+"));
+ end ThreeWindingTransformer;
+
+ model ULTC_VoltageControl
+ "Under Load Tap Changer, continuous model, secondary voltage control"
+ OpenIPSL.Interfaces.PwPin p annotation (Placement(transformation(
+ extent={{-120,-10},{-100,10}})));
+ OpenIPSL.Interfaces.PwPin n annotation (Placement(transformation(
+ extent={{100,-10},{120,10}})));
+ parameter Real S_b=100 "System base power (MVA)"
+ annotation (Dialog(group="Power flow data"));
+ parameter Real Vbus1=400000 "Sending end Bus nominal voltage (V)"
+ annotation (Dialog(group="Power flow data"));
+ parameter Real Vbus2=100000 "Receiving end Bus nominal voltage (V)"
+ annotation (Dialog(group="Power flow data"));
+ parameter Real Sn=100 "Power rating (MVA)"
+ annotation (Dialog(group="ULTC data"));
+ parameter Real Vn=400000 "Voltage rating (V)"
+ annotation (Dialog(group="ULTC data"));
+ parameter Real V_0=1.008959700699460
+ "Initial voltage magnitude of the controlled bus (pu)"
+ annotation (Dialog(group="Power flow data"));
+ parameter Real m0=0.98 "Initial tap ratio"
+ annotation (Dialog(group="Power flow data"));
+ parameter Real kT=4 "Nominal tap ratio (V1/V2)"
+ annotation (Dialog(group="ULTC data"));
+ parameter Real H=0.001 "Integral deviation (pu)"
+ annotation (Dialog(group="ULTC data"));
+ parameter Real K=0.10 "Inverse time constant (1/s)"
+ annotation (Dialog(group="ULTC data"));
+ parameter Real m_max=0.98 "Maximum tap ratio (p.u./p.u.)"
+ annotation (Dialog(group="ULTC data"));
+ parameter Real m_min=0.9785 "Minimum tap ratio (p.u./p.u.)"
+ annotation (Dialog(group="ULTC data"));
+ // annotation (Dialog(group="ULTC data"));
+ // parameter Real deltam=0 "Tap ratio step (p.u./p.u.)"
+ parameter Real v_ref=1.0 "Reference voltage (power) (pu)"
+ annotation (Dialog(group="ULTC data"));
+ parameter Real xT=0.001 "Transformer reactance (pu)"
+ annotation (Dialog(group="ULTC data"));
+ parameter Real rT=0.1 "Transformer resistance (pu)"
+ annotation (Dialog(group="ULTC data"));
+ // parameter Real d=0.05 "Dead zone percentage"
+ // annotation (Dialog(group="ULTC data"));
+ Real m "Tap ratio";
+ Real vk "Voltage at primary, p.u.";
+ Real vm(start=V_0) "Voltage at secondary p.u.";
+ Real anglevk "Angle at primary";
+ Real anglevm "Angle at secondary ";
+ protected
+ parameter Real V2=Vn/kT "Secondary voltage";
+ parameter Real Zn = Vn^2/Sn "Transformer base impedance";
+ parameter Real Zb = Vbus1^2/S_b "System base impedance";
+ parameter Real r = rT * Zn/Zb "Resistance (pu, system base)";
+ parameter Real x = xT * Zn/Zb "Reactance (pu, system base)";
+ parameter Real vref=v_ref*(V2/Vbus2);
+ initial equation
+ m = m0;
+ equation
+ vk = sqrt(p.vr^2 + p.vi^2);
+ vm = sqrt(n.vr^2 + n.vi^2);
+ anglevk = atan2(p.vi, p.vr);
+ anglevm = atan2(n.vi, n.vr);
+ if m > m_max and der(m) > 0 then
+ r*p.ir - x*p.ii = 1/m_max^2*p.vr - 1/m_max*n.vr;
+ r*p.ii + x*p.ir = 1/m_max^2*p.vi - 1/m_max*n.vi;
+ r*n.ir - x*n.ii = n.vr - 1/m_max*p.vr;
+ x*n.ir + r*n.ii = n.vi - 1/m_max*p.vi;
+ der(m) = 0;
+ elseif m < m_min and der(m) < 0 then
+ r*p.ir - x*p.ii = 1/m_min^2*p.vr - 1/m_min*n.vr;
+ r*p.ii + x*p.ir = 1/m_min^2*p.vi - 1/m_min*n.vi;
+ r*n.ir - x*n.ii = n.vr - 1/m_min*p.vr;
+ x*n.ir + r*n.ii = n.vi - 1/m_min*p.vi;
+ der(m) = 0;
+ else
+ r*p.ir - x*p.ii = 1/m^2*p.vr - 1/m*n.vr;
+ r*p.ii + x*p.ir = 1/m^2*p.vi - 1/m*n.vi;
+ r*n.ir - x*n.ii = n.vr - 1/m*p.vr;
+ x*n.ir + r*n.ii = n.vi - 1/m*p.vi;
+ der(m) = (-H*m) + K*(vm - vref);
+ end if;
+ annotation (
+ Diagram(coordinateSystem(preserveAspectRatio=true, extent={{-100,-100},{100,
+ 100}}), graphics),
+ Icon(coordinateSystem(preserveAspectRatio=true, extent={{-100,-100},{100,
+ 100}}), graphics={Ellipse(extent={{-46,30},{8,-30}}, lineColor={0,0,
+ 255}),Ellipse(extent={{-10,30},{44,-30}}, lineColor={0,0,255}),Line(
+ points={{100,0},{44,0},{44,0}},
+ color={0,0,255},
+ smooth=Smooth.None),Line(
+ points={{-100,0},{-46,0}},
+ color={0,0,255},
+ smooth=Smooth.None),Line(
+ points={{70,0},{70,-40},{-36,-40},{-20,18},{-20,18}},
+ color={0,0,255},
+ smooth=Smooth.None),Line(
+ points={{-30,6},{-20,18}},
+ color={0,0,255},
+ smooth=Smooth.None),Line(
+ points={{-20,2},{-20,16}},
+ color={0,0,255},
+ smooth=Smooth.None),Text(
+ extent={{-100,-40},{100,-100}},
+ lineColor={0,128,0},
+ textString="ULTC"),
+ Text(
+ extent={{-100,100},{100,40}},
+ lineColor={0,0,255},
+ textString="%name")}),
+ Documentation(info="
+
+Reference |
+PSAT Manual 2.1.8 |
+
+
+Last update |
+15/07/2015 |
+
+
+Author |
+MAA Murad, SmarTS Lab, KTH Royal Institute of Technology |
+
+
+Contact |
+luigiv@kth.se |
+
+
+"));
+ end ULTC_VoltageControl;
+
+ package PhaseShiftingTransformer
+ model PSTransformer
+ constant Real pi=Modelica.Constants.pi;
+ parameter Real SystemBase=100;
+ parameter Real Vbus1=20000 "Sending end Bus nominal voltage, change of base";
+ parameter Real Vbus2=20000 "Receiving end Bus voltage, change of base";
+ parameter Real Sn=100 "Power rating MVA";
+ parameter Real Vn1=20000 "Primary Voltage rating,KV";
+ parameter Real Vn2=20000 "Secondary voltage rating, KV";
+ parameter Real fn=50 "Frequency rating Hz";
+ parameter Real Tm=0.001 "Measurement time constant, s";
+ parameter Real Kp=0.05 "Proportional gain";
+ parameter Real Ki=0.01 "Integral gain";
+ parameter Real p_ref=0.01 "Reference Power, p.u.";
+ parameter Real alpha_max=pi/2 "Maximum phase angle, rad";
+ parameter Real alpha_min=-pi/2 "Minimum phase angle, rad";
+ parameter Real xT=0.1 "Transformer Reactance, p.u.";
+ parameter Real rT=0.01 "Transformer Resistance, p.u.";
+ parameter Real m=0.98 "Transformer fixed tap ratio, p.u./p.u.";
+ parameter Real alpha0=0.002062339234360;
+ parameter Real pmes0=0.01;
+ parameter Real vk0=0.997649085060455;
+ parameter Real vm0=1.007257703014177;
+ parameter Real anglevk0=-0.007392164704867;
+ parameter Real anglevm0=-0.009372077496959;
+ Real vk(start=vk0);
+ Real vm(start=vm0);
+ Real anglevk(start=anglevk0);
+ Real anglevm(start=anglevm0);
+ OpenIPSL.Interfaces.PwPin p annotation (Placement(transformation(
+ extent={{-120,-10},{-100,10}})));
+ OpenIPSL.Interfaces.PwPin n annotation (Placement(transformation(
+ extent={{100,-10},{120,10}})));
+ Modelica.Blocks.Interfaces.RealOutput pk(start=p_ref) annotation (Placement(
+ transformation(extent={{100,-50},{120,-30}}), iconTransformation(extent=
+ {{100,-50},{120,-30}})));
+ Modelica.Blocks.Interfaces.RealInput u
+ annotation (Placement(transformation(extent={{-140,36},{-100,76}})));
+ pst1 pst1_1(
+ SystemBase=SystemBase,
+ Vbus1=Vbus1,
+ Vbus2=Vbus2,
+ Sn=Sn,
+ Vn1=Vn1,
+ Vn2=Vn2,
+ fn=fn,
+ Tm=Tm,
+ Kp=Kp,
+ Ki=Ki,
+ p_ref=p_ref,
+ alpha_max=alpha_max,
+ alpha_min=alpha_min,
+ xT=xT,
+ rT=rT,
+ m=m,
+ alpha0=alpha0,
+ pmes0=pmes0,
+ vk0=vk0,
+ anglevk0=anglevk0)
+ annotation (Placement(transformation(extent={{-40,-10},{-20,10}})));
+ pst2 pst2_1(
+ SystemBase=SystemBase,
+ Vbus1=Vbus1,
+ Vbus2=Vbus2,
+ Sn=Sn,
+ Vn1=Vn1,
+ Vn2=Vn2,
+ fn=fn,
+ Tm=Tm,
+ Kp=Kp,
+ Ki=Ki,
+ p_ref=p_ref,
+ alpha_max=alpha_max,
+ alpha_min=alpha_min,
+ xT=xT,
+ rT=rT,
+ m=m,
+ alpha0=alpha0,
+ pmes0=pmes0,
+ vm0=vm0,
+ anglevm0=anglevm0)
+ annotation (Placement(transformation(extent={{20,-10},{40,10}})));
+ protected
+ parameter Real Vb2new=Vbus1*Vbus1;
+ parameter Real Vb2old=Vn1*Vn1;
+ parameter Real R=rT*(Vb2old*SystemBase)/(Vb2new*Sn)
+ "Transformer Resistance, p.u.";
+ parameter Real X=xT*(Vb2old*SystemBase)/(Vb2new*Sn)
+ "Transformer Reactance, p.u.";
+ parameter Real pref=p_ref*(Sn/SystemBase);
+ parameter Real gt=R/(R^2 + X^2) "Converting resistance to conductance p.u.";
+ parameter Real bt=-X/(R^2 + X^2) "Converting reactance to susceptance p.u.";
+ equation
+ vk = sqrt(p.vr^2 + p.vi^2);
+ vm = sqrt(n.vr^2 + n.vi^2);
+ anglevk = atan2(p.vi, p.vr);
+ anglevm = atan2(n.vi, n.vr);
+ pk = p.vr*p.ir + p.vi*p.ii;
+ connect(pst2_1.n, n) annotation (Line(
+ points={{41,0},{70.5,0},{70.5,0},{110,0}},
+ color={0,0,255},
+ smooth=Smooth.None));
+ connect(pst2_1.p, pst1_1.n) annotation (Line(
+ points={{19,0},{-2,0},{-2,0},{-19,0}},
+ color={0,0,255},
+ smooth=Smooth.None));
+ connect(pst1_1.p, p) annotation (Line(
+ points={{-41,0},{-76.5,0},{-76.5,0},{-110,0}},
+ color={0,0,255},
+ smooth=Smooth.None));
+ connect(u, pst2_1.pk) annotation (Line(
+ points={{-120,56},{-8,56},{-8,-4},{18,-4}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ annotation (
+ Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{
+ 100,100}})),
+ Icon(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{100,
+ 100}}), graphics={Ellipse(extent={{-48,24},{10,-32}}, lineColor={0,
+ 0,255}),Ellipse(extent={{-6,26},{52,-30}}, lineColor={0,0,255}),Line(
+ points={{-104,0},{-48,0}},
+ color={0,0,255},
+ smooth=Smooth.None),Rectangle(extent={{66,10},{94,-12}}, lineColor={0,
+ 0,255}),Line(
+ points={{52,0},{66,0},{66,0}},
+ color={0,0,255},
+ smooth=Smooth.None),Line(
+ points={{100,0},{94,0},{96,0}},
+ color={0,0,255},
+ smooth=Smooth.None),Line(
+ points={{80,-12},{80,-44},{-50,-44},{-50,0},{-50,0}},
+ color={0,0,255},
+ smooth=Smooth.None),Text(
+ extent={{74,4},{84,-2}},
+ lineColor={0,0,255},
+ textString="%Angle%"),Text(
+ extent={{-40,-52},{40,-92}},
+ lineColor={0,128,0},
+ textString="PST"),
+ Text(
+ extent={{-100,100},{100,40}},
+ lineColor={0,0,255},
+ textString="%name")}),
+ Documentation(info="
+
+Reference |
+PSAT Manual 2.1.8 |
+
+
+Last update |
+15/07/2015 |
+
+
+Author |
+MAA Murad, SmarTS Lab, KTH Royal Institute of Technology |
+
+
+Contact |
+luigiv@kth.se |
+
+
+"));
+ end PSTransformer;
+
+ model pst1
+ constant Real pi=Modelica.Constants.pi;
+ parameter Real SystemBase=100;
+ parameter Real Vbus1=20000 "Sending end Bus nominal voltage, change of base";
+ parameter Real Vbus2=20000 "Receiving end Bus voltage, change of base";
+ parameter Real Sn=100 "Power rating MVA";
+ parameter Real Vn1=20000 "Primary Voltage rating,KV";
+ parameter Real Vn2=20000 "Secondary voltage rating, KV";
+ parameter Real fn=50 "Frequency rating Hz";
+ parameter Real Tm=0.001 "Measurement time constant, s";
+ parameter Real Kp=0.05 "Proportional gain";
+ parameter Real Ki=0.01 "Integral gain";
+ parameter Real p_ref=0.01 "Reference Power, p.u.";
+ parameter Real alpha_max=pi/2 "Maximum phase angle, rad";
+ parameter Real alpha_min=-pi/2 "Minimum phase angle, rad";
+ parameter Real xT=0.1 "Transformer Reactance, p.u.";
+ parameter Real rT=0.01 "Transformer Resistance, p.u.";
+ parameter Real m=0.98 "Transformer fixed tap ratio, p.u./p.u.";
+ parameter Real alpha0=0.002062339234360;
+ parameter Real pmes0=0.01;
+ parameter Real vk0=0.997649085060455;
+ parameter Real anglevk0=-0.007392164704867;
+ Real vk(start=vk0) "Voltage at primary, p.u.";
+ Real vm;
+ Real anglevk(start=anglevk0);
+ Real anglevm;
+ OpenIPSL.Interfaces.PwPin p annotation (Placement(visible=true,
+ transformation(extent={{-120,-10},{-100,10}})));
+ OpenIPSL.Interfaces.PwPin n annotation (Placement(transformation(
+ extent={{100,-10},{120,10}})));
+ protected
+ parameter Real Vb2new=Vbus1*Vbus1;
+ parameter Real Vb2old=Vn1*Vn1;
+ parameter Real R=rT*(Vb2old*SystemBase)/(Vb2new*Sn)
+ "Transformer Resistance, p.u.";
+ parameter Real X=xT*(Vb2old*SystemBase)/(Vb2new*Sn)
+ "Transformer Reactance, p.u.";
+ parameter Real pref=p_ref*(Sn/SystemBase);
+ parameter Real gt=R/(R^2 + X^2) "Converting resistance to conductance p.u.";
+ parameter Real bt=-X/(R^2 + X^2) "Converting reactance to susceptance p.u.";
+ equation
+ vk = sqrt(p.vr^2 + p.vi^2);
+ vm = sqrt(n.vr^2 + n.vi^2);
+ anglevk = atan2(p.vi, p.vr);
+ anglevm = atan2(n.vi, n.vr);
+ R*p.ir - X*p.ii = 1/m^2*p.vr - 1/m*n.vr;
+ R*p.ii + X*p.ir = 1/m^2*p.vi - 1/m*n.vi;
+ R*n.ir - X*n.ii = n.vr - 1/m*p.vr;
+ X*n.ir + R*n.ii = n.vi - 1/m*p.vi;
+ end pst1;
+
+ model pst2
+ constant Real pi=Modelica.Constants.pi;
+ parameter Real SystemBase=100;
+ parameter Real Vbus1=20000 "Sending end Bus nominal voltage, change of base";
+ parameter Real Vbus2=20000 "Receiving end Bus voltage, change of base";
+ parameter Real Sn=100 "Power rating MVA";
+ parameter Real Vn1=20000 "Primary Voltage rating,KV";
+ parameter Real Vn2=20000 "Secondary voltage rating, KV";
+ parameter Real fn=50 "Frequency rating Hz";
+ parameter Real Tm=0.001 "Measurement time constant, s";
+ parameter Real Kp=0.05 "Proportional gain";
+ parameter Real Ki=0.01 "Integral gain";
+ parameter Real p_ref=0.01 "Reference Power, p.u.";
+ parameter Real alpha_max=pi/2 "Maximum phase angle, rad";
+ parameter Real alpha_min=-pi/2 "Minimum phase angle, rad";
+ parameter Real xT=0.1 "Transformer Reactance, p.u.";
+ parameter Real rT=0.01 "Transformer Resistance, p.u.";
+ parameter Real m=0.98 "Transformer fixed tap ratio, p.u./p.u.";
+ parameter Real alpha0=0.002062339234360;
+ parameter Real pmes0=0.01;
+ parameter Real vm0=1.007257703014177;
+ parameter Real anglevm0=-0.009372077496959;
+ Real vk "Voltage at primary, p.u.";
+ Real vm(start=vm0) "Voltage at secondary p.u.";
+ Real anglevk "Angle at primary";
+ Real anglevm;
+ Real alpha;
+ Real pmes;
+ OpenIPSL.Interfaces.PwPin p annotation (Placement(visible=true,
+ transformation(extent={{-120,-10},{-100,10}})));
+ OpenIPSL.Interfaces.PwPin n annotation (Placement(transformation(
+ extent={{100,-10},{120,10}})));
+ Modelica.Blocks.Interfaces.RealInput pk
+ annotation (Placement(transformation(extent={{-140,-60},{-100,-20}})));
+ protected
+ parameter Real Vb2new=Vbus1*Vbus1;
+ parameter Real Vb2old=Vn1*Vn1;
+ parameter Real R=rT*(Vb2old*SystemBase)/(Vb2new*Sn)
+ "Transformer Resistance, p.u.";
+ parameter Real X=xT*(Vb2old*SystemBase)/(Vb2new*Sn)
+ "Transformer Reactance, p.u.";
+ parameter Real pref=p_ref*(Sn/SystemBase);
+ parameter Real gt=R/(R^2 + X^2) "Converting resistance to conductance p.u.";
+ parameter Real bt=-X/(R^2 + X^2) "Converting reactance to susceptance p.u.";
+ initial equation
+ alpha = alpha0;
+ pmes = pmes0;
+ equation
+ vk = sqrt(p.vr^2 + p.vi^2);
+ vm = sqrt(n.vr^2 + n.vi^2);
+ anglevk = atan2(p.vi, p.vr);
+ anglevm = atan2(n.vi, n.vr);
+ if alpha > alpha_max and der(alpha) > 0 and der(pmes) > 0 then
+ der(alpha) = 0;
+ der(pmes) = (pk - pmes)/Tm;
+ p.vr = n.vr*cos(alpha_max) - n.vi*sin(alpha_max);
+ p.vi = n.vr*sin(alpha_max) + n.vi*cos(alpha_max);
+ // pk=p.vr*p.ir + p.vi*p.ii;
+ p.ir + n.ir = 0;
+ p.ii + n.ii = 0;
+ elseif alpha < alpha_min and der(alpha) < 0 and der(pmes) < 0 then
+ der(alpha) = 0;
+ der(pmes) = (pk - pmes)/Tm;
+ p.vr = n.vr*cos(alpha_min) - n.vi*sin(alpha_min);
+ p.vi = n.vr*sin(alpha_min) + n.vi*cos(alpha_min);
+ // pk=p.vr*p.ir + p.vi*p.ii;
+ p.ir + n.ir = 0;
+ p.ii + n.ii = 0;
+ else
+ der(alpha) = Kp*(pk - pmes)/Tm + Ki*(pmes - pref);
+ der(pmes) = (pk - pmes)/Tm;
+ p.vr = n.vr*cos(alpha) - n.vi*sin(alpha);
+ p.vi = n.vr*sin(alpha) + n.vi*cos(alpha);
+ // pk=p.vr*p.ir + p.vi*p.ii;
+ p.ir + n.ir = 0;
+ p.ii + n.ii = 0;
+ end if;
+ end pst2;
+ annotation (Documentation);
+ end PhaseShiftingTransformer;
+ annotation (Documentation);
+ end PSAT;
+ annotation (Documentation);
+ end Branches;
+
+ package Machines
+ package PSAT
+ model Order2 "Second Order Synchronous Machine with Inputs and Outputs"
+ extends BaseClasses.baseMachine(vf(start=vf00), xq0=x1d);
+ protected
+ parameter Real K=1/(ra^2 + x1d^2) "a constant for scaling";
+ parameter Real c1=ra*K "scaled ra";
+ parameter Real c2=x1d*K "scaled x'd";
+ parameter Real c3=x1d*K "scaled x'd";
+ parameter Real vf00=V_MBtoSB*(vq0 + ra*iq0 + x1d*id0) "Init. val. (pu, SB)";
+ equation
+ id = -c1*vd - c3*vq + vf_MB*c3;
+ iq = c2*vd - c1*vq + vf_MB*c1;
+ vf0 = vf00;
+ annotation (Documentation(info="
+
+
+Reference |
+Order II Synchonous Machine, PSAT Manual 2.1.8 |
+
+
+Last update |
+September 2015 |
+
+
+Author |
+Joan Russinol, SmarTS Lab, KTH Royal Institute of Technology |
+
+
+Contact |
+luigiv@kth.se |
+
+
+"), Icon(coordinateSystem(extent={{-100,-100},{100,100}}, initialScale=
+ 0.1), graphics={Text(
+ origin={0,60},
+ extent={{-60,-20},{60,20}},
+ lineColor={28,108,200},
+ textString="Order II")}));
+ end Order2;
+
+ model Order3 "Third Order Synchronous Machine with Inputs and Outputs"
+ extends BaseClasses.baseMachine(vf(start=vf00), xq0=xq);
+ parameter Real xd "d-axis synchronous reactance (pu)"
+ annotation (Dialog(group="Machine parameters"));
+ parameter Real T1d0 "d-axis open circuit transient time constant (s)"
+ annotation (Dialog(group="Machine parameters"));
+ parameter Real xq "q-axis synchronous reactance (pu)"
+ annotation (Dialog(group="Machine parameters"));
+ Real e1q(start=e1q0) "q-axis transient voltage (pu)";
+
+ protected
+ parameter Real K=1/(ra^2 + xq*x1d) "a constant for scaling";
+ parameter Real c1=ra*K "scaled ra";
+ parameter Real c2=x1d*K "scaled x'd";
+ parameter Real c3=xq*K " scaled xq";
+ parameter Real vf00=V_MBtoSB*(e1q0 + (xd - x1d)*id0) "Init. val. (pu, SB)";
+ parameter Real e1q0=vq0 + ra*iq0 + x1d*id0 "Initialitation";
+ initial equation
+ der(e1q) = 0;
+ equation
+ der(e1q) = ((-e1q) - (xd - x1d)*id + vf_MB)/T1d0;
+ id = (-c1*vd) - c3*vq + e1q*c3;
+ iq = c2*vd - c1*vq + e1q*c1;
+ vf0 = vf00;
+ annotation (Icon(coordinateSystem(extent={{-100,-100},{100,100}},
+ initialScale=0.1), graphics={Text(
+ origin={0,60},
+ extent={{-60,-20},{60,20}},
+ lineColor={28,108,200},
+ textString="Order III")}), Documentation(info="
+
+
+Reference |
+Order III Synchonous Machine, PSAT Manual 2.1.8 |
+
+
+Last update |
+September 2015 |
+
+
+Author |
+Joan Russinol, SmarTS Lab, KTH Royal Institute of Technology |
+
+
+Contact |
+luigiv@kth.se |
+
+
+"));
+ end Order3;
+
+ model Order4 "Fourth Order Synchronous Machine with Inputs and Outputs"
+ extends BaseClasses.baseMachine(vf(start=vf00), xq0=xq);
+ parameter Real xd=1.9 "d-axis synchronous reactance (pu)"
+ annotation (Dialog(group="Machine parameters"));
+ parameter Real xq=1.7 "q-axis synchronous reactance (pu)"
+ annotation (Dialog(group="Machine parameters"));
+ parameter Real x1q=0.5 "q-axis transient reactance (pu)"
+ annotation (Dialog(group="Machine parameters"));
+ parameter Real T1d0=8 "d-axis open circuit transient time constant (s)"
+ annotation (Dialog(group="Machine parameters"));
+ parameter Real T1q0=0.8 "q-axis open circuit transient time constant (s)"
+ annotation (Dialog(group="Machine parameters"));
+ Real e1q(start=e1q0) "q-axis transient voltage (pu)";
+ Real e1d(start=e1d0) "d-axis transient voltage (pu)";
+ protected
+ parameter Real vf00=V_MBtoSB*(e1q0 + (xd - x1d)*id0) "Init. val. (pu, SB)";
+ parameter Real e1q0=vq0 + ra*iq0 + x1d*id0 "Initialization";
+ parameter Real e1d0=vd0 + ra*id0 - x1q*iq0 "Initialization";
+ initial equation
+ der(e1q) = 0;
+
+ equation
+ der(e1q) = ((-e1q) - (xd - x1d)*id + vf_MB)/T1d0;
+ if xq <> x1q then
+ // safe-guard against division by zero.
+ der(e1d) = ((-e1d) + (xq - x1q)*iq)/T1q0 "differential equations *";
+ else
+ der(e1d) = (-e1d)/T1q0 "differential equations *";
+ end if;
+ e1q = vq + ra*iq + x1d*id;
+ e1d = vd + ra*id - x1q*iq "relation between voltages and currents *";
+ vf0 = vf00;
+ annotation (Icon(coordinateSystem(extent={{-100,-100},{100,100}},
+ initialScale=0.1), graphics={Text(
+ origin={0,60},
+ extent={{-60,-20},{60,20}},
+ lineColor={28,108,200},
+ textString="Order IV")}), Documentation(info="
+
+
+Reference |
+Generator Order IV, PSAT Manual |
+
+
+Last update |
+2015-10-02 |
+
+
+Author |
+Le Qi, SmarTS Lab, KTH Royal Institute of Technology |
+
+
+Contact |
+luigiv@kth.se |
+
+
+"));
+ end Order4;
+
+ model Order5_Type1
+ extends BaseClasses.baseMachine(vf(start=vf00), xq0=xq);
+ parameter Real xd=1.9 "d-axis synchronous reactance (pu)"
+ annotation (Dialog(group="Machine parameters"));
+ parameter Real xq=1.7 "q-axis synchronous reactance (pu)"
+ annotation (Dialog(group="Machine parameters"));
+ parameter Real x1q=0.5 "q-axis transient reactance (pu)"
+ annotation (Dialog(group="Machine parameters"));
+ parameter Real T1d0=8 "d-axis open circuit transient time constant (s)"
+ annotation (Dialog(group="Machine parameters"));
+ parameter Real T1q0=0.8 "q-axis open circuit transient time constant (s)"
+ annotation (Dialog(group="Machine parameters"));
+ parameter Real T2q0=0.02
+ "q-axis open circuit sub-transient time constant (s)"
+ annotation (Dialog(group="Machine parameters"));
+ Real e1q(start=e1q0) "q-axis transient voltage";
+ Real e1d(start=e1d0) "d-axis transient voltage";
+ Real e2d(start=e2d0) "d-axis sub-transient voltage";
+ protected
+ parameter Real vf00=V_MBtoSB*(e1q0 + (xd - x1d)*id0) "Init. val. (pu, SB)";
+ parameter Real e1q0=vq0 + ra*iq0 + x1d*id0 "Initialization";
+ parameter Real e1d0=vd0 + ra*id0 - x1q*iq0 "Initialization*";
+ parameter Real e2d0=vd0 + ra*id0 - x1q*iq0 "Initialization";
+ initial equation
+ der(delta) = 0;
+ der(e1q) = 0;
+ der(e1d) = 0;
+ der(e2d) = 0;
+ equation
+ der(e1q) = ((-e1q) - (xd - x1d)*id + vf_MB)/T1d0;
+ der(e1d) = ((-e1d) + (xq - x1q - T2q0/T1q0*x1d/x1q*(xq - x1q))*iq)/T1q0
+ "differential equations/";
+ der(e2d) = ((-e2d) + e1d + (x1q - x1d + T2q0/T1q0*x1d/x1q*(xq - x1q))*iq)/
+ T2q0 "differential equations/";
+ e1q = vq + ra*iq + x1d*id;
+ e2d = vd + ra*id - x1q*iq "relation between voltages and currents/";
+ vf0 = vf00;
+ annotation (Icon(coordinateSystem(extent={{-100,-100},{100,100}},
+ initialScale=0.1), graphics={Text(
+ origin={0,60},
+ fillPattern=FillPattern.Solid,
+ extent={{-60,-20},{60,20}},
+ fontName="Arial",
+ lineColor={28,108,200},
+ textString="Order V - Type 1")}), Documentation(info="
+
+
+Reference |
+Generator Order V Type 1, PSAT Manual |
+
+
+Last update |
+2015-10-02 |
+
+
+Author |
+Le Qi, SmarTS Lab, KTH Royal Institute of Technology |
+
+
+Contact |
+luigiv@kth.se |
+
+
+"));
+ end Order5_Type1;
+
+ model Order5_Type2
+ extends BaseClasses.baseMachine(vf(start=vf00), xq0=xq);
+ parameter Real xd=1.9 "d-axis synchronous reactance (pu)"
+ annotation (Dialog(group="Machine parameters"));
+ parameter Real xq=1.7 "q-axis synchronous reactance (pu)"
+ annotation (Dialog(group="Machine parameters"));
+ parameter Real x2d=0.204 "d-axis sub-transient reactance (pu)"
+ annotation (Dialog(group="Machine parameters"));
+ parameter Real x2q=0.3 "q-axis sub-transient reactance (pu)"
+ annotation (Dialog(group="Machine parameters"));
+ parameter Real T1d0=8 "d-axis open circuit transient time constant (s)"
+ annotation (Dialog(group="Machine parameters"));
+ parameter Real T2d0=0.8 "d-axis open circuit sub-transient time constant (s)"
+ annotation (Dialog(group="Machine parameters"));
+ parameter Real T2q0=0.02 "q-axis open circuit sub-transient time constant (s)"
+ annotation (Dialog(group="Machine parameters"));
+ parameter Real Taa=0.002 "d-axis aditional leakage time constant (s)"
+ annotation (Dialog(group="Machine parameters"));
+ Real e1q(start=e1q0) "q-axis transient voltage";
+ Real e2q(start=e2q0) "q-axis sub-transient voltage";
+ Real e2d(start=e2d0) "d-axis sub-transient voltage";
+ protected
+ parameter Real e2q0=vq0 + ra*iq0 + x2d*id0 "Initialitation";
+ parameter Real e2d0=vd0 + ra*id0 - x2q*iq0 "Initialitation";
+ parameter Real K1=xd - x1d - (T2d0*x2d*(xd - x1d))/(T1d0*x1d);
+ parameter Real K2=x1d - x2d + (T2d0*x2d*(xd - x1d))/(T1d0*x1d);
+ parameter Real e1q0=(-K1*Taa/T1d0*id0) + (1 - Taa/T1d0)*(e2q0 + K2*id0);
+ parameter Real vf00=V_MBtoSB*(K1*id0 + e1q0)/(1 - Taa/T1d0)
+ "Init. val. (pu, SB)";
+ initial equation
+ //der(e1q) = 0;
+ der(e2q) = 0;
+ der(e2d) = 0;
+ equation
+ der(e1q) = ((-e1q) - (xd - x1d - T2d0/T1d0*x2d/x1d*(xd - x1d))*id + (1 - Taa/
+ T1d0)*vf_MB)/T1d0;
+ der(e2d) = ((-e2d) + (xq - x2q)*iq)/T2q0;
+ der(e2q) = ((-e2q) + e1q - (x1d - x2d + T2d0/T1d0*x2d/x1d*(xd - x1d))*id +
+ Taa/T1d0*vf_MB)/T2d0 "differential equations";
+ e2q = vq + ra*iq + x2d*id;
+ e2d = vd + ra*id - x2q*iq "relation between voltages and currents";
+ vf0 = vf00;
+ annotation (Icon(coordinateSystem(extent={{-100,-100},{100,100}},
+ initialScale=0.1), graphics={Rectangle(
+ visible=true,
+ fillColor={255,255,255},
+ extent={{-100.0,-100.0},{100.0,100.0}}),Text(
+ origin={0,60},
+ extent={{-60,-20},{60,20}},
+ lineColor={28,108,200},
+ textString="Order V - Type 2")}), Documentation(info="
+
+
+Reference |
+Generator Order V Type 2, PSAT Manual |
+
+
+Last update |
+2015-10-02 |
+
+
+Author |
+Le Qi, SmarTS Lab, KTH Royal Institute of Technology |
+
+
+Contact |
+luigiv@kth.se |
+
+
+"));
+ end Order5_Type2;
+
+ model Order6
+ extends BaseClasses.baseMachine(vf(start=vf00), xq0=xq);
+ parameter Real xd=1.9 "d-axis synchronous reactance (pu)"
+ annotation (Dialog(group="Machine parameters"));
+ parameter Real xq=1.7 "q-axis synchronous reactance (pu)"
+ annotation (Dialog(group="Machine parameters"));
+ parameter Real x1q=0.5 "q-axis transient reactance (pu)"
+ annotation (Dialog(group="Machine parameters"));
+ parameter Real x2d=0.204 "d-axis sub-transient reactance (pu)"
+ annotation (Dialog(group="Machine parameters"));
+ parameter Real x2q=0.3 "q-axis sub-transient reactance (pu)"
+ annotation (Dialog(group="Machine parameters"));
+ parameter Real T1d0=8 "d-axis open circuit transient time constant (s)"
+ annotation (Dialog(group="Machine parameters"));
+ parameter Real T1q0=0.8 "q-axis open circuit transient time constant (s)"
+ annotation (Dialog(group="Machine parameters"));
+ parameter Real T2d0=0.04 "d-axis open circuit sub-transient time constant (s)"
+ annotation (Dialog(group="Machine parameters"));
+ parameter Real T2q0=0.02 "q-axis open circuit sub-transient time constant (s)"
+ annotation (Dialog(group="Machine parameters"));
+ parameter Real Taa=2e-3 "d-axis aditional leakage time constant (s)"
+ annotation (Dialog(group="Machine parameters"));
+
+ Real e1q(start=e1q0, fixed=true) "q-axis transient voltage";
+ Real e1d(start=e1d0) "d-axis transient voltage";
+ Real e2q(start=e2q0, fixed=true) "q-axis sub-transient voltage";
+ Real e2d(start=e2d0) "d-axis sub-transient voltage";
+ protected
+ parameter Real e2q0=vq0 + ra*iq0 + x2d*id0 "Initialitation";
+ parameter Real e2d0=vd0 + ra*id0 - x2q*iq0 "Initialitation";
+ parameter Real e1d0=(xq - x1q - T2q0*x2q*(xq - x1q)/(T1q0*x1q))*iq0;
+ parameter Real K1=xd - x1d - T2d0*x2d*(xd - x1d)/(T1d0*x1d);
+ parameter Real K2=x1d - x2d + T2d0*x2d*(xd - x1d)/(T1d0*x1d);
+ parameter Real e1q0=e2q0 + K2*id0 - Taa/T1d0*((K1 + K2)*id0 + e2q0);
+ parameter Real vf00=V_MBtoSB*(K1*id0 + e1q0)/(1 - Taa/T1d0)
+ "Init. val. (pu, SB)";
+ initial equation
+ der(e1d) = 0;
+ // der(e1d) = 0;
+ der(e2d) = 0;
+ // der(e2q) = 0;
+ equation
+
+ der(e1q) = ((-e1q) - (xd - x1d - T2d0/T1d0*x2d/x1d*(xd - x1d))*id + (1 - Taa/
+ T1d0)*vf_MB)/T1d0;
+ der(e1d) = ((-e1d) + (xq - x1q - T2q0/T1q0*x2q/x1q*(xq - x1q))*iq)/T1q0;
+ der(e2d) = ((-e2d) + e1d + (x1q - x2q + T2q0/T1q0*x2q/x1q*(xq - x1q))*iq)/
+ T2q0;
+ der(e2q) = ((-e2q) + e1q - (x1d - x2d + T2d0/T1d0*x2d/x1d*(xd - x1d))*id +
+ Taa/T1d0*vf_MB)/T2d0;
+ e2q = vq + ra*iq + x2d*id;
+ e2d = vd + ra*id - x2q*iq;
+ vf0 = vf00;
+ annotation (Icon(coordinateSystem(extent={{-100,-100},{100,100}},
+ initialScale=0.1), graphics={Rectangle(
+ visible=true,
+ fillColor={255,255,255},
+ extent={{-100.0,-100.0},{100.0,100.0}}),Text(
+ origin={0,60},
+ extent={{-60,-20},{60,20}},
+ lineColor={28,108,200},
+ textString="Order VI")}), Documentation(info="
+
+
+Reference |
+Generator Order VI, PSAT Manual |
+
+
+Last update |
+2015-10-02 |
+
+
+Author |
+Le Qi, SmarTS Lab, KTH Royal Institute of Technology |
+
+
+Contact |
+luigiv@kth.se |
+
+
+"));
+ end Order6;
+
+ model MotorTypeI "Induction Machine - Order I"
+ extends OpenIPSL.Electrical.Essentials.pfComponent;
+ parameter Integer Sup=1 "Start-up control" annotation (Dialog(group=
+ "Machine parameters"), choices(choice=0, choice=1));
+ parameter Real Rs=0.01 "Stator resistance (pu)"
+ annotation (Dialog(group="Machine parameters"));
+ parameter Real Xs=0.15 "Stator reactance (pu)"
+ annotation (Dialog(group="Machine parameters"));
+ parameter Real Rr1=0.05 "1st cage rotor resistance (pu)"
+ annotation (Dialog(group="Machine parameters"));
+ parameter Real Xr1=0.15 "1st cage rotor reactance (pu)"
+ annotation (Dialog(group="Machine parameters"));
+ parameter Real Xm=5 "Magnetizing reactance (pu)"
+ annotation (Dialog(group="Machine parameters"));
+ parameter Real Hm=3 "Inertia constant (kWs/KVA)"
+ annotation (Dialog(group="Machine parameters"));
+ parameter Real a=0.5 "1st coefficient of tau_m(w) (pu)"
+ annotation (Dialog(group="Machine parameters"));
+ parameter Real b=0.00 "2nd coefficient of tau_m(w) (pu)"
+ annotation (Dialog(group="Machine parameters"));
+ parameter Real c=0.00 "3rd coefficient of tau_m(w) (pu)"
+ annotation (Dialog(group="Machine parameters"));
+ parameter Real tup=0 "Start up time (s)"
+ annotation (Dialog(group="Machine parameters"));
+ Real v(start=V_0) "Bus voltage magnitude";
+ Real anglev(start=angle_0) " Bus voltage angle";
+ Real s(start=Rr1*P_0*(Q_0 + V_0*V_0/Xm)/(V_0*V_0*V_0*V_0*(Xs + Xr1)));
+ Real Tm;
+ Real P(start=P_0);
+ Real Q(start=Q_0);
+ Real Re;
+ OpenIPSL.Interfaces.PwPin p(
+ vr(start=vr0),
+ vi(start=vi0),
+ ir(start=ir0),
+ ii(start=ii0)) annotation (Placement(transformation(extent={{90,-10},
+ {110,10}})));
+ protected
+ constant Real pi=Modelica.Constants.pi;
+ parameter Real vr0=V_0*cos(angle_0);
+ parameter Real vi0=V_0*sin(angle_0);
+ parameter Real ir0=(P_0*vr0 + Q_0*vi0)/(vr0^2 + vi0^2);
+ parameter Real ii0=(P_0*vi0 - Q_0*vr0)/(vr0^2 + vi0^2);
+ parameter Real A=a + b + c;
+ parameter Real B=(-b) - 2*c;
+ parameter Real C=c;
+ parameter Real Xe=Xs + Xr1;
+ initial equation
+ der(s) = 0;
+ equation
+ P = p.vr*p.ir + p.vi*p.ii;
+ Q = (-p.vr*p.ii) + p.vi*p.ir;
+ anglev = atan2(p.vi, p.vr);
+ v = sqrt(p.vr^2 + p.vi^2);
+ Tm = A + B*s + C*s*s;
+ Re = Rs + Rr1/s;
+ //s=Rr1/(Re-Rs);
+ der(s) = (Tm - P)/(2*Hm);
+ p.ii = (-p.vr/Xm) + (p.vi*Re - p.vr*Xe)/(Re*Re + Xe*Xe);
+ p.ir = p.vi/Xm + (p.vr*Re + p.vi*Xe)/(Re*Re + Xe*Xe);
+ annotation (Icon(coordinateSystem(preserveAspectRatio=true, extent={{-100,-100},
+ {100,100}}), graphics={Rectangle(
+ visible=true,
+ fillColor={255,255,255},
+ extent={{-100,-100},{100,100}}),Ellipse(
+ visible=true,
+ fillColor={255,255,255},
+ extent={{-56,-58},{55.9318,54}}),Text(
+ extent={{-50,48},{50,-52}},
+ lineColor={0,0,0},
+ textString="M"),Text(
+ origin={0,-76.0978},
+ fillPattern=FillPattern.Solid,
+ extent={{-57.2101,-15.0},{57.2101,15.0}},
+ fontName="Arial",
+ textString="%name",
+ lineColor={0,0,0})}), Documentation(info="
+
+
+Reference |
+Induction Machine, PSAT Manual 2.1.8 |
+
+
+Last update |
+September 2015 |
+
+
+Author |
+Joan Russinol, SmarTS Lab, KTH Royal Institute of Technology |
+
+
+Contact |
+luigiv@kth.se |
+
+
+
+
+
+ with the problem of a constant offset mismatch -0.00012
+"));
+ end MotorTypeI;
+
+ model MotorTypeIII "Induction Machine - Order III"
+ extends OpenIPSL.Electrical.Essentials.pfComponent;
+ parameter Integer Sup=1 "Start up control" annotation (Dialog(group=
+ "Machine parameters"), choices(choice=0, choice=1));
+ parameter Real Rs=0.01 "Stator resistance (pu)"
+ annotation (Dialog(group="Machine parameters"));
+ parameter Real Xs=0.15 "Stator reactance (pu)"
+ annotation (Dialog(group="Machine parameters"));
+ parameter Real Rr1=0.05 "1st cage rotor resistance (pu)"
+ annotation (Dialog(group="Machine parameters"));
+ parameter Real Xr1=0.15 "1st cage rotor reactance (pu)"
+ annotation (Dialog(group="Machine parameters"));
+ parameter Real Xm=5 "Magnetizing reactance (pu)"
+ annotation (Dialog(group="Machine parameters"));
+ parameter Real Hm=3 "Inertia constant (s)"
+ annotation (Dialog(group="Machine parameters"));
+ parameter Real a=0.25 "1st coefficient of tau_m(w) (pu)"
+ annotation (Dialog(group="Machine parameters"));
+ parameter Real b=0.00 "2nd coefficient of tau_m(w) (pu)"
+ annotation (Dialog(group="Machine parameters"));
+ parameter Real c=0.00 "3rd coefficient of tau_m(w) (pu)"
+ annotation (Dialog(group="Machine parameters"));
+ parameter Real tup=0 "Start up time (s)"
+ annotation (Dialog(group="Machine parameters"));
+ Real v(start=V_0) "Bus voltage magnitude";
+ Real anglev(start=angle_0) " Bus voltage angle";
+ Real s(start=S0);
+ Real Tm;
+ Real Te;
+ Real P(start=P_0);
+ Real Q(start=Q_0);
+ Real Vr;
+ Real Vm;
+ Real Ir;
+ Real Im;
+ Real epr(start=epr0);
+ Real epm(start=epm0);
+ Real I;
+ Real anglei;
+ OpenIPSL.Interfaces.PwPin p(
+ vr(start=vr0),
+ vi(start=vi0),
+ ir(start=ir0),
+ ii(start=ii0)) annotation (Placement(transformation(extent={{90,-10},
+ {110,10}})));
+ protected
+ constant Real pi=Modelica.Constants.pi;
+ parameter Real Omegab=2*pi*fn "Base freq in rad/s";
+ parameter Real vr0=V_0*cos(angle_0);
+ parameter Real vi0=V_0*sin(angle_0);
+ parameter Real ir0=(P_0*vr0 + Q_0*vi0)/(vr0^2 + vi0^2);
+ parameter Real ii0=(P_0*vi0 - Q_0*vr0)/(vr0^2 + vi0^2);
+ parameter Real i2=ir0*ir0 + ii0*ii0;
+ parameter Real A=a + b + c;
+ parameter Real B=(-b) - 2*c;
+ parameter Real C=c;
+ parameter Real X0=Xs + Xm;
+ parameter Real Xp=Xs + Xr1*Xm/(Xr1 + Xm);
+ parameter Real Tp0=(Xr1 + Xm)/(Omegab*Rr1);
+ parameter Real RZs2=1/(Rs*Rs + Xp*Xp);
+ parameter Real K=Rr1/((Xr1 + Xm)*A);
+ parameter Real K2=1 + Tp0*Tp0*Omegab*Omegab*S0*S0;
+ parameter Real K1=Tp0*Omegab*S0;
+ parameter Real a03=Rs*Rs + Xp*Xp;
+ //r1^2+(xS +xR1xm/(xR1 + xm))^2
+ parameter Real a13=Rs/a03;
+ parameter Real a23=Xp/a03;
+ parameter Real S0=K*((-Q_0) + X0*i2);
+ parameter Real epm0=(K1*(X0 - Xp)*ir0 + (X0 - Xp)*(-1)*ii0)/K2;
+ parameter Real epr0=(K1*(X0 - Xp)*(-1)*ii0 - (X0 - Xp)*ir0)/K2;
+ initial equation
+ der(s) = 0;
+ der(epr) = 0;
+ der(epm) = 0;
+ equation
+ anglev = atan2(p.vi, p.vr);
+ anglei = atan2(p.ii, p.ir);
+ v = sqrt(p.vr^2 + p.vi^2);
+ I = sqrt(p.ii^2 + p.ir^2);
+ Vr = p.vi;
+ Vm = p.vr;
+ Im = p.ir;
+ Ir = -p.ii;
+ P = p.vr*p.ir + p.vi*p.ii;
+ Q = (-p.vr*p.ii) + p.vi*p.ir;
+ der(s) = (Tm - Te)/(2*Hm);
+ Tm = A + B*s + C*s*s;
+ Te = epr*Ir + epm*Im;
+ der(epr) = Omegab*s*epm - (epr + (X0 - Xp)*Im)/Tp0;
+ der(epm) = (-Omegab*s*epr) - (epm - (X0 - Xp)*Ir)/Tp0;
+ Im = (-a23*((-Vr) - epr)) + a13*(Vm - epm);
+ Ir = a13*((-Vr) - epr) + a23*(Vm - epm);
+ annotation (Icon(coordinateSystem(preserveAspectRatio=true, extent={{-100,-100},
+ {100,100}}), graphics={Rectangle(
+ visible=true,
+ fillColor={255,255,255},
+ extent={{-100,-100},{100,100}}),Ellipse(
+ visible=true,
+ fillColor={255,255,255},
+ extent={{-56,-58},{55.9318,54}}),Text(
+ extent={{-50,48},{50,-52}},
+ lineColor={0,0,0},
+ textString="M"),Text(
+ origin={0,-76.0978},
+ fillPattern=FillPattern.Solid,
+ extent={{-57.2101,-15.0},{57.2101,15.0}},
+ fontName="Arial",
+ textString="%name",
+ lineColor={0,0,0})}), Documentation(info="
+
+
+Reference |
+Induction Machine, PSAT Manual 2.1.8 |
+
+
+Last update |
+September 2015 |
+
+
+Author |
+Joan Russinol, SmarTS Lab, KTH Royal Institute of Technology |
+
+
+Contact |
+luigiv@kth.se |
+
+
+"));
+ end MotorTypeIII;
+
+ model MotorTypeV "Induction Machine - Order V"
+ extends OpenIPSL.Electrical.Essentials.pfComponent;
+ parameter Integer Sup=1 "Start up control" annotation (Dialog(group=
+ "Machine parameters"), choices(choice=0, choice=1));
+ parameter Real Rs=0.01 "Stator resistance (pu)"
+ annotation (Dialog(group="Machine parameters"));
+ parameter Real Xs=0.15 "Stator reactance (pu)"
+ annotation (Dialog(group="Machine parameters"));
+ parameter Real Rr1=0.05 "1st cage rotor resistance (pu)"
+ annotation (Dialog(group="Machine parameters"));
+ parameter Real Xr1=0.15 "1st cage rotor reactance (pu)"
+ annotation (Dialog(group="Machine parameters"));
+ parameter Real Rr2=0.001 "2nd cage rotor resistance (pu)"
+ annotation (Dialog(group="Machine parameters"));
+ parameter Real Xr2=0.04 "2nd cage rotor reactance (pu)"
+ annotation (Dialog(group="Machine parameters"));
+ parameter Real Xm=5 "Magnetizing reactance (pu)"
+ annotation (Dialog(group="Machine parameters"));
+ parameter Real Hm=3 "Inertia constant (s)"
+ annotation (Dialog(group="Machine parameters"));
+ parameter Real a=0.13 "1st coefficient of tau_m(w) (pu)"
+ annotation (Dialog(group="Machine parameters"));
+ parameter Real b=0.02 "2nd coefficient of tau_m(w) (pu)"
+ annotation (Dialog(group="Machine parameters"));
+ parameter Real c=0.024 "3rd coefficient of tau_m(w) (pu)"
+ annotation (Dialog(group="Machine parameters"));
+ parameter Real tup=0 "Start up time"
+ annotation (Dialog(group="Machine parameters"));
+ Real v(start=V_0) "Bus voltage magnitude";
+ Real anglev(start=angle_0) " Bus voltage angle";
+ Real s(start=S0);
+ //(start=Rr1*P_0*(Q_0+V_0*V_0/Xm)/(V_0*V_0*V_0*V_0*(Xs + Xr1)));
+ Real Tm;
+ Real Te;
+ Real P(start=P_0);
+ Real Q(start=Q_0);
+ Real e1r(start=epr0);
+ Real e1m(start=epm0);
+ Real e2r(start=0.0353);
+ Real e2m(start=0.9995);
+ Real Vr;
+ Real Vm;
+ Real Ir;
+ Real Im;
+ OpenIPSL.Interfaces.PwPin p(
+ vr(start=vr0),
+ vi(start=vi0),
+ ir(start=ir0),
+ ii(start=ii0)) annotation (Placement(transformation(extent={{90,-10},
+ {110,10}})));
+ protected
+ constant Real pi=Modelica.Constants.pi;
+ parameter Real Omegab=2*pi*fn "Base freq in rad/s";
+ parameter Real vr0=V_0*cos(angle_0);
+ parameter Real vi0=V_0*sin(angle_0);
+ parameter Real ir0=(P_0*vr0 + Q_0*vi0)/(vr0^2 + vi0^2);
+ parameter Real ii0=(P_0*vi0 - Q_0*vr0)/(vr0^2 + vi0^2);
+ parameter Real A=a + b + c;
+ parameter Real B=(-b) - 2*c;
+ parameter Real C=c;
+ parameter Real X0=Xs + Xm;
+ parameter Real X1=Xs + Xr1*Xm/(Xr1 + Xm);
+ parameter Real T10=(Xr1 + Xm)/(Omegab*Rr1);
+ parameter Real X2=Xs + Xr1*Xm*Xr2/(Xr1*Xr2 + Xr1*Xm + Xr2*Xm);
+ parameter Real T20=(Xr2 + Xr1*Xm/(Xr1 + Xm))/(Omegab*Rr2);
+ parameter Real a05=Rs^2 + X2^2;
+ parameter Real a15=Rs/a05;
+ parameter Real a25=X2/a05;
+ parameter Real a35=X0 - X1;
+ parameter Real a45=X1 - X2;
+ parameter Real i2=ir0*ir0 + ii0*ii0;
+ parameter Real K=Rr1/((Xr1 + Xm)*A);
+ parameter Real K2=1 + T10*T10*Omegab*Omegab*S0*S0;
+ parameter Real K1=T10*Omegab*S0;
+ parameter Real S0=K*((-Q_0) + X0*i2);
+ parameter Real epm0=(K1*(X0 - X1)*ir0 + (X0 - X1)*(-1)*ii0)/K2;
+ parameter Real epr0=(K1*(X0 - X1)*(-1)*ii0 - (X0 - X1)*ir0)/K2;
+ initial equation
+ der(e2r) = 0;
+ der(e2m) = 0;
+ der(s) = 0;
+ der(e1r) = 0;
+ der(e1m) = 0;
+ equation
+ anglev = atan2(p.vi, p.vr);
+ v = sqrt(p.vr^2 + p.vi^2);
+ Vr = p.vi;
+ Vm = p.vr;
+ Im = p.ir;
+ Ir = -p.ii;
+ P = p.vr*p.ir + p.vi*p.ii;
+ Q = (-p.vr*p.ii) + p.vi*p.ir;
+ Ir = a15*((-Vr) - e2r) + a25*(Vm - e2m);
+ Im = (-a25*((-Vr) - e2r)) + a15*(Vm - e2m);
+ der(s) = (Tm - Te)/(2*Hm);
+ Te = e2r*Ir + e2m*Im;
+ der(e1r) = Omegab*s*e1m - (e1r + a35*Im)/T10;
+ der(e1m) = (-Omegab*s*e1r) - (e1m - a35*Ir)/T10;
+ der(e2r) = (-Omegab*s*(e1m - e2m)) + der(e1r) + (e1r - e2r - a45*Im)/T20;
+ der(e2m) = Omegab*s*(e1r - e2r) + der(e1m) + (e1m - e2m + a45*Ir)/T20;
+ Tm = A + B*s + C*s*s;
+ annotation (Icon(coordinateSystem(preserveAspectRatio=true, extent={{-100,-100},
+ {100,100}}), graphics={Rectangle(
+ visible=true,
+ fillColor={255,255,255},
+ extent={{-100,-100},{100,100}}),Ellipse(
+ visible=true,
+ fillColor={255,255,255},
+ extent={{-56,-58},{55.9318,54}}),Text(
+ extent={{-50,48},{50,-52}},
+ lineColor={0,0,0},
+ textString="M"),Text(
+ origin={0,-76.0978},
+ fillPattern=FillPattern.Solid,
+ extent={{-57.2101,-15.0},{57.2101,15.0}},
+ fontName="Arial",
+ textString="%name",
+ lineColor={0,0,0})}), Documentation(info="
+
+
+Reference |
+Induction Machine, PSAT Manual 2.1.8 |
+
+
+Last update |
+September 2015 |
+
+
+Author |
+Joan Russinol, SmarTS Lab, KTH Royal Institute of Technology |
+
+
+Contact |
+luigiv@kth.se |
+
+
+"));
+ end MotorTypeV;
+
+ package BaseClasses
+ partial model baseMachine
+ extends OpenIPSL.Electrical.Essentials.pfComponent;
+ import Modelica.Constants.pi;
+ import SI = Modelica.SIunits;
+ import CM = Modelica.ComplexMath;
+ import Complex;
+ parameter OpenIPSL.Types.ApparentPowerMega Sn
+ "Power rating (MVA)"
+ annotation (Dialog(group="Machine parameters"));
+ parameter OpenIPSL.Types.VoltageKilo Vn "Voltage rating (kV)"
+ annotation (Dialog(group="Machine parameters"));
+ parameter SI.PerUnit ra "Armature resistance (pu)"
+ annotation (Dialog(group="Machine parameters"));
+ parameter SI.PerUnit x1d "d-axis transient reactance (pu)"
+ annotation (Dialog(group="Machine parameters"));
+ parameter Real M "Mechanical starting time (2H), kWs/kVA"
+ annotation (Dialog(group="Machine parameters"));
+ parameter Real D "Damping coefficient"
+ annotation (Dialog(group="Machine parameters"));
+
+ OpenIPSL.Interfaces.PwPin p(
+ vr(start=vr0),
+ vi(start=vi0),
+ ir(start=ir0),
+ ii(start=ii0)) annotation (Placement(visible=true,
+ transformation(
+ origin={100,0},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ Modelica.Blocks.Interfaces.RealOutput delta(
+ start=delta0,
+ quantity="Angle",
+ unit="rad",
+ displayUnit="rad") "Rotor angle (rad)" annotation (Placement(visible=true,
+ transformation(
+ origin={110,60},
+ extent={{-10,-10},{10,10}},
+ rotation=0)));
+ Modelica.Blocks.Interfaces.RealOutput w(start=1) "Rotor speed (pu)"
+ annotation (Placement(visible=true, transformation(
+ origin={110,90},
+ extent={{-10,-10},{10,10}},
+ rotation=0)));
+ Modelica.Blocks.Interfaces.RealOutput v(start=V_0)
+ "Generator terminal voltage (pu)" annotation (Placement(visible=true,
+ transformation(
+ origin={110,30},
+ extent={{-10,-10},{10,10}},
+ rotation=0)));
+ Modelica.Blocks.Interfaces.RealOutput P(start=p0) "Active power (pu)"
+ annotation (Placement(visible=true, transformation(
+ origin={110,-30},
+ extent={{-10,-10},{10,10}},
+ rotation=0)));
+ Modelica.Blocks.Interfaces.RealOutput Q(start=q0) "Reactive power (pu)"
+ annotation (Placement(visible=true, transformation(
+ origin={110,-70},
+ extent={{-10,-10},{10,10}},
+ rotation=0)));
+ Modelica.Blocks.Interfaces.RealInput vf "Field voltage (pu)" annotation (
+ Placement(visible=true, transformation(
+ origin={-120,50},
+ extent={{-20,-20},{20,20}},
+ rotation=0)));
+ Modelica.Blocks.Interfaces.RealOutput vf0 "Initial field voltage (pu)"
+ annotation (Placement(visible=true, transformation(
+ origin={-80,110},
+ extent={{-10,-10},{10,10}},
+ rotation=90)));
+ Modelica.Blocks.Interfaces.RealOutput pm0(start=pm00)
+ "Initial mechanical power (pu)" annotation (Placement(visible=true,
+ transformation(
+ origin={-80,-110},
+ extent={{-10,-10},{10,10}},
+ rotation=270)));
+ Modelica.Blocks.Interfaces.RealInput pm(start=pm00) "Mechanical power (pu)"
+ annotation (Placement(visible=true, transformation(
+ origin={-120,-50},
+ extent={{-20,-20},{20,20}},
+ rotation=0)));
+ SI.Angle anglev(start=SI.Conversions.from_deg(angle_0))
+ " Bus voltage angle (rad)";
+ Real vd(start=vd0) "d-axis voltage (pu)";
+ Real vq(start=vq0) "q-axis voltage (pu)";
+ Real id(start=id0) "d-axis currrent (pu)";
+ Real iq(start=iq0) "q-axis current (pu)";
+ protected
+ SI.PerUnit pe(start=pm00) "electrical power transmitted through the air-gap";
+ SI.PerUnit vf_MB=vf*V_b/Vn "field voltage on machine base";
+ parameter SI.AngularVelocity w_b=2*pi*fn "Base frequency in rad/s";
+ // Define multiplicative transforms to go from one pu-base to another:
+ parameter Real S_SBtoMB=S_b/Sn "S(system base) -> S(machine base)";
+ parameter Real I_MBtoSB=(Sn*V_b)/(S_b*Vn) "I(machine base) -> I(system base)";
+ parameter Real V_MBtoSB=Vn/V_b "V(machine base) -> V(system base)";
+ parameter Real Z_MBtoSB=(S_b*Vn^2)/(Sn*V_b^2)
+ "Z(machine base) -> Z(system base)";
+
+ // Initialize stator quantities (system base):
+ parameter SI.PerUnit p0=P_0/S_b
+ "Initial active power generation in pu (system base)";
+ parameter SI.PerUnit q0=Q_0/S_b
+ "Initial reactive power generation in pu (system base)";
+ parameter Complex Vt0=CM.fromPolar(V_0, SI.Conversions.from_deg(angle_0))
+ "Init. val., conjugate";
+ parameter Complex S0(re=p0, im=-q0) "Init. val., conjugate";
+ parameter Complex I0=S0/(CM.conj(Vt0)) "Init. val., conjugate";
+ parameter SI.PerUnit vr0=CM.real(Vt0) "Init. val.";
+ parameter SI.PerUnit vi0=CM.imag(Vt0) "Init. val.";
+ parameter SI.PerUnit ir0=-CM.real(I0) "Init. val.";
+ parameter SI.PerUnit ii0=-CM.imag(I0) "Init. val.";
+
+ // Initialize DQ-quantities (pu, machine base)
+ parameter SI.PerUnit xq0 "used for setting the initial rotor angle";
+ parameter SI.Angle delta0=CM.arg((Vt0 + ((ra + CM.j*xq0)*Z_MBtoSB*I0)))
+ "Init. val. rotor angle";
+ parameter Complex Vdq0=Vt0*CM.fromPolar(1/V_MBtoSB, (-delta0 + (pi/2)))
+ "Init. val (pu, machine base)";
+ parameter Complex Idq0=I0*CM.fromPolar(1/I_MBtoSB, (-delta0 + (pi/2)))
+ "(pu, machine base)";
+ parameter SI.PerUnit vd0=CM.real(Vdq0) "Init. val.";
+ parameter SI.PerUnit vq0=CM.imag(Vdq0) "Init. val.";
+ parameter SI.PerUnit id0=CM.real(Idq0) "Init. val.";
+ parameter SI.PerUnit iq0=CM.imag(Idq0) "Init. val.";
+
+ parameter SI.PerUnit pm00=((vq0 + ra*iq0)*iq0 + (vd0 + ra*id0)*id0)/S_SBtoMB
+ "Init. val. (pu, system base)";
+ initial equation
+ w = 1;
+ delta = delta0;
+ equation
+ v = sqrt(p.vr^2 + p.vi^2);
+ anglev = atan2(p.vi, p.vr);
+ der(delta) = w_b*(w - 1);
+ if D > Modelica.Constants.eps then
+ der(w) = (pm*S_SBtoMB - pe - D*(w - 1))/M;
+ else
+ der(w) = (pm*S_SBtoMB - pe)/M;
+ end if;
+ [p.ir; p.ii] = -[sin(delta), cos(delta); -cos(delta), sin(delta)]*[id; iq]*
+ I_MBtoSB;
+ [p.vr; p.vi] = [sin(delta), cos(delta); -cos(delta), sin(delta)]*[vd; vq]*
+ V_MBtoSB;
+ P = -p.vr*p.ir - p.vi*p.ii;
+ Q = -p.vi*p.ir + p.vr*p.ii;
+ pe = (vq + ra*iq)*iq + (vd + ra*id)*id "pu, machine base";
+ pm0 = pm00 "pu, system base";
+ annotation (
+ Icon(coordinateSystem(extent={{-100,-100},{100,100}}, initialScale=0.1),
+ graphics={Rectangle(
+ fillColor={255,255,255},
+ extent={{-100,-100},{100,100}},
+ lineColor={28,108,200},
+ fillPattern=FillPattern.Solid),Text(
+ origin={-80,50},
+ extent={{-10,-10},{10,10}},
+ lineColor={28,108,200},
+ textString="vf"),Text(
+ origin={-80,-50},
+ extent={{-10,-10},{10,10}},
+ lineColor={28,108,200},
+ textString="pm"),Text(
+ origin={-80,90},
+ extent={{-10,-10},{10,10}},
+ lineColor={28,108,200},
+ textString="vf0"),Text(
+ origin={-80,-90},
+ extent={{-10,-10},{10,10}},
+ lineColor={28,108,200},
+ textString="pm0"),Text(
+ origin={85,60},
+ extent={{-15,-10},{15,10}},
+ lineColor={28,108,200},
+ textString="delta"),Text(
+ origin={90,90},
+ extent={{-10,-10},{10,10}},
+ lineColor={28,108,200},
+ textString="w"),Text(
+ origin={90,30},
+ extent={{-10,-10},{10,10}},
+ lineColor={28,108,200},
+ textString="v"),Ellipse(extent={{-40,40},{40,-40}}, lineColor={28,108,
+ 200}),Line(
+ points={{-20,0},{-9,15},{9,-15},{20,0}},
+ color={28,108,200},
+ smooth=Smooth.Bezier),Text(
+ origin={0,-60},
+ extent={{-60,-20},{60,20}},
+ lineColor={28,108,200},
+ textString="%name"),Text(
+ origin={90,-31},
+ extent={{-10,-10},{10,10}},
+ lineColor={28,108,200},
+ textString="P"),Text(
+ origin={90,-70},
+ extent={{-10,-10},{10,10}},
+ lineColor={28,108,200},
+ textString="Q")}),
+ Documentation,
+ Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{
+ 100,100}})));
+ end baseMachine;
+ annotation (Documentation);
+ end BaseClasses;
+ annotation (Documentation);
+ end PSAT;
+
+ package PSSE
+ model Plant
+ extends Interfaces.Generator;
+
+ replaceable
+ OpenIPSL.Electrical.Machines.PSSE.BaseClasses.baseMachine machine
+ annotation (choicesAllMatching=true, Placement(transformation(
+ extent={{40,-10},{60,10}})));
+ replaceable Controls.PSSE.ES.BaseClasses.BaseExciter exciter
+ annotation (choicesAllMatching=true,
+ Placement(transformation(extent={{-28,-24},{10,10}})));
+ Modelica.Blocks.Sources.Constant const(k=0)
+ annotation (Placement(transformation(extent={{-40,-54},{-32,-46}})));
+ Modelica.Blocks.Sources.Constant const1(k=0)
+ annotation (Placement(transformation(extent={{-40,-72},{-32,-64}})));
+ replaceable Controls.PSSE.TG.BaseClasses.BaseGovernor governor
+ annotation (choicesAllMatching=true,
+ Placement(transformation(extent={{-30,40},{-10,60}})));
+ replaceable
+ OpenIPSL.Electrical.Controls.PSSE.PSS.BaseClasses.BasePSS pss
+ annotation (Placement(visible=true, transformation(extent={{-88,-6},
+ {-48,12}}, rotation=0)));
+ equation
+ connect(pss.V_S2, governor.PMECH0) annotation (
+ Line(points={{-87.3684,-1.5},{-94,-1.5},{-94,30},{-40,30},{-40,45.4545},{-29.1667,45.4545}},
+ color = {0, 0, 127}));
+ connect(pss.V_S1, machine.SPEED) annotation (
+ Line(points={{-87.3684,7.5},{-98,7.5},{-98,68},{80,68},{80,7},{61,7}}, color = {0, 0, 127}));
+ connect(pss.VOTHSG, exciter.VOTHSG) annotation (
+ Line(points={{-47.3684,3},{-40,3},{-40,3.38889},{-28,3.38889}}, color = {0, 0, 127}));
+ connect(exciter.EFD, machine.EFD) annotation (Line(points={{10.95,-5.11111},{38,-5.11111},{38,-5}},
+ color={0,0,127}));
+ connect(machine.p, pwPin)
+ annotation (Line(points={{60,0},{110,0}}, color={0,0,255}));
+ connect(exciter.XADIFD, machine.XADIFD) annotation (Line(points={{-0.45,-23.6222},{-0.45,-30},{64,-30},{64,-9},{60.8,-9}},
+ color={0,0,127}));
+ connect(machine.EFD0, exciter.EFD0) annotation (Line(points={{61,-5},{66,-5},{66,-34},{-32,-34},{-32,-17.3889},{-28,-17.3889}},
+ color={0,0,127}));
+ connect(exciter.ECOMP, machine.ETERM) annotation (Line(points={{-28,-5.11111},{-32,-5.11111},{-32,20},{68,20},{68,-3},{61,-3}},
+ color={0,0,127}));
+ connect(const.y, exciter.VUEL) annotation (Line(points={{-31.6,-50},{-21.35,
+ -50},{-21.35,-24}}, color={0,0,127}));
+ connect(const1.y, exciter.VOEL) annotation (Line(points={{-31.6,-68},{-15.65,
+ -68},{-15.65,-24}}, color={0,0,127}));
+ connect(governor.PMECH, machine.PMECH) annotation (Line(points={{-9.58333,50.9091},{28,50.9091},{28,5},{38,5}},
+ color={0,0,127}));
+ connect(governor.SPEED, machine.SPEED) annotation (Line(points={{-29.1667,55.4545},{-40,55.4545},{-40,68},{80,68},{80,7},{61,7}},
+ color={0,0,127}));
+ connect(machine.PMECH0, governor.PMECH0) annotation (Line(points={{61,5},{74,5},{74,30},{-40,30},{-40,45.4545},{-29.1667,45.4545}},
+ color={0,0,127}));
+
+ end Plant;
+
+ model GENSAL "SALIENT POLE GENERATOR MODEL (QUADRATIC SATURATION ON D-AXIS)"
+ // Import of Dependencies
+ import IslandedOperationControl.OpenIPSL.NonElectrical.Functions.SE;
+ import Modelica.Constants.pi;
+ import Complex;
+ import Modelica.ComplexMath.arg;
+ import Modelica.ComplexMath.real;
+ import Modelica.ComplexMath.imag;
+ import Modelica.ComplexMath.'abs';
+ import Modelica.ComplexMath.conj;
+ import Modelica.ComplexMath.fromPolar;
+ import Modelica.ComplexMath.j;
+ //Extending machine base class
+ extends BaseClasses.baseMachine(
+ w(start=0),
+ EFD(start=efd0),
+ XADIFD(start=efd0),
+ PMECH(start=pm0),
+ ANGLE(start=delta0),
+ delta(start=delta0),
+ id(start=id0),
+ iq(start=iq0),
+ ud(start=ud0),
+ uq(start=uq0),
+ Te(start=pm0));
+ Real Epq(start=Epq0) "q-axis voltage behind transient reactance (pu)";
+ Real PSIkd(start=PSIkd0) "d-axis rotor flux linkage (pu)";
+ Real PSIppq(start=PSIppq0) "q-axis subtransient flux linkage (pu)";
+ Real PSIppd(start=PSIppd0) "d-axis subtransient flux linkage (pu)";
+ Real PSId(start=PSId0) "d-axis flux linkage (pu)";
+ Real PSIq(start=PSIq0) "q-axis flux linkage (pu)";
+ Real XadIfd(start=efd0) "Machine field current (pu)";
+ protected
+ parameter Complex Zs=R_a + j*Xppd "Equivalent impedance";
+ parameter Complex Is=real(It + VT/Zs) + j*imag(It + VT/Zs);
+ parameter Complex PSIpp0=real(Zs*Is) + j*imag(Zs*Is);
+ parameter Complex a=0 + j*(Xq - Xppd);
+ parameter Complex Epqp=real(PSIpp0 + a*It) + j*imag(PSIpp0 + a*It);
+ parameter Real delta0=arg(Epqp) "rotor angle in radians";
+ parameter Complex VT=V_0*cos(anglev_rad) + j*V_0*sin(anglev_rad)
+ "Complex terminal voltage";
+ parameter Complex S=p0 + j*q0 "Complex power on machine base";
+ parameter Complex It=real(S/VT) - j*imag(S/VT) "Terminal current";
+ parameter Complex DQ_dq=cos(delta0) - j*sin(delta0) "Parks transformation";
+ parameter Complex I_dq=real(It*DQ_dq) - j*imag(It*DQ_dq);
+ //Initialization of current and voltage components in synchronous reference frame.
+ parameter Real iq0=real(I_dq) "q-axis component of intitial current";
+ parameter Real id0=imag(I_dq) "d-axis component of intitial current";
+ parameter Real ud0=V_0*cos(anglev_rad - delta0 + pi/2)
+ "d-axis component of intitial voltage";
+ parameter Real uq0=V_0*sin(anglev_rad - delta0 + pi/2)
+ "q-axis component of intitial voltage";
+ parameter Complex PSIpp0_dq=real(PSIpp0*DQ_dq) + j*imag(PSIpp0*DQ_dq)
+ "Flux linkage in rotor reference frame";
+ parameter Real PSIppq0=-imag(PSIpp0_dq)
+ "q-axis component of the sub-transient flux linkage";
+ parameter Real PSIppd0=real(PSIpp0_dq)
+ "d-axis component of the sub-transient flux linkage";
+ parameter Real PSIkd0=(PSIppd0 - (Xpd - Xl)*K3d*id0)/(K3d + K4d)
+ "d-axis initial rotor flux linkage";
+ parameter Real PSId0=PSIppd0 - Xppd*id0;
+ parameter Real PSIq0=(-PSIppq0) - Xppq*iq0;
+ //Initialization mechanical power and field voltage.
+ parameter Real Epq0=uq0 + Xpd*id0 + R_a*iq0;
+ parameter Real dsat=SE(
+ Epq0,
+ S10,
+ S12,
+ 1,
+ 1.2);
+ parameter Real efd0=Epq0*(1 + dsat) + (Xd - Xpd)*id0
+ "Initial field voltage magnitude";
+ parameter Real pm0=p0 + R_a*iq0*iq0 + R_a*id0*id0
+ "Initial mechanical power, machine base";
+ // Constants
+ parameter Real K1d=(Xpd - Xppd)*(Xd - Xpd)/(Xpd - Xl)^2;
+ parameter Real K2d=(Xpd - Xl)*(Xppd - Xl)/(Xpd - Xppd);
+ parameter Real K3d=(Xppd - Xl)/(Xpd - Xl);
+ parameter Real K4d=(Xpd - Xppd)/(Xpd - Xl);
+ initial equation
+ der(Epq) = 0;
+ der(PSIkd) = 0;
+ der(PSIppq) = 0;
+ delta = delta0;
+ w = 0;
+ equation
+ //Interfacing outputs with the internal variables
+ XADIFD = XadIfd;
+ PMECH0 = pm0;
+ EFD0 = efd0;
+ ISORCE = XadIfd;
+ der(Epq) = 1/Tpd0*(EFD - XadIfd);
+ der(PSIkd) = 1/Tppd0*(Epq - PSIkd - (Xpd - Xl)*id);
+ der(PSIppq) = 1/Tppq0*((-PSIppq) + (Xq - Xppq)*iq);
+ PSIppd = Epq*K3d + PSIkd*K4d;
+ PSId = PSIppd - Xppd*id;
+ PSIq = (-PSIppq) - Xppq*iq;
+ XadIfd = K1d*(Epq - PSIkd - (Xpd - Xl)*id) + (Xd - Xpd)*id + (SE(
+ Epq,
+ S10,
+ S12,
+ 1,
+ 1.2) + 1)*Epq;
+ Te = PSId*iq - PSIq*id;
+ ud = (-PSIq) - R_a*id;
+ uq = PSId - R_a*iq;
+ //flow, changed from machine base to system bas
+ annotation (
+ Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{
+ 100,100}})),
+ Icon(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{100,
+ 100}}), graphics={Text(
+ extent={{-58,62},{52,-64}},
+ lineColor={0,0,255},
+ textString="GENSAL")}),
+ Documentation(info="
+
+
+Reference |
+PSS/E Manual |
+
+
+Last update |
+Unknown |
+
+
+Author |
+Mengjia Zhang,SmarTS Lab, KTH Royal Institute of Technology |
+
+
+Contact |
+luigiv@kth.se |
+
+
+"));
+ end GENSAL;
+
+ model GENROU "ROUND ROTOR GENERATOR MODEL (QUADRATIC SATURATION)"
+ //Import of dependencies
+ import Complex;
+ import Modelica.ComplexMath.arg;
+ import Modelica.ComplexMath.real;
+ import Modelica.ComplexMath.imag;
+ import Modelica.ComplexMath.'abs';
+ import Modelica.ComplexMath.conj;
+ import Modelica.ComplexMath.fromPolar;
+ import Modelica.ComplexMath.j;
+ import IslandedOperationControl.OpenIPSL.NonElectrical.Functions.SE;
+ import Modelica.Constants.pi;
+ extends BaseClasses.baseMachine(
+ w(start=0),
+ XADIFD(start=efd0),
+ ANGLE(start=delta0),
+ delta(start=delta0),
+ id(start=id0),
+ iq(start=iq0),
+ ud(start=ud0),
+ uq(start=uq0),
+ Te(start=pm0));
+ //Machine parameters
+ parameter Real Xpq "q-axis transient reactance (pu)"
+ annotation (Dialog(group="Machine parameters"));
+ parameter Real Tpq0 "q-axis transient open-circuit time constant (s)"
+ annotation (Dialog(group="Machine parameters"));
+ parameter Real Xpp=Xppd "Sub-transient reactance (pu)"
+ annotation (Dialog(group="Machine parameters"));
+ Real Epd(start=Epd0) "d-axis voltage behind transient reactance (pu)";
+ Real Epq(start=Epq0) "q-axis voltage behind transient reactance ";
+ Real PSIkd(start=PSIkd0) "d-axis rotor flux linkage (pu)";
+ Real PSIkq(start=PSIkq0) "q-axis rotor flux linkage (pu)";
+ //State variables
+ Real PSId(start=PSId0) "d-axis flux linkage (pu)";
+ Real PSIq(start=PSIq0) "q-axis flux linkage (pu)";
+ Real PSIppd(start=PSIppd0) "d-axis subtransient flux linkage (pu)";
+ Real PSIppq(start=PSIppq0) "q-axis subtransient flux linkage (pu)";
+ Real PSIpp "Air-gap flux (pu)";
+ Real XadIfd(start=efd0) "d-axis machine field current (pu)";
+ Real XaqIlq(start=0) "q-axis Machine field current (pu)";
+ protected
+ parameter Complex Zs=R_a + j*Xpp "Equivalent impedance";
+ parameter Complex VT=V_0*cos(anglev_rad) + j*V_0*sin(anglev_rad)
+ "Complex terminal voltage";
+ parameter Complex S=p0 + j*q0 "Complex power on machine base";
+ parameter Complex It=real(S/VT) - j*imag(S/VT)
+ "Complex current, machine base";
+ parameter Complex Is=real(It + VT/Zs) + j*imag(It + VT/Zs)
+ "Equivalent internal current source";
+ parameter Complex PSIpp0=real(Zs*Is) + j*imag(Zs*Is)
+ "Sub-transient flux linkage in stator reference frame";
+ parameter Real ang_PSIpp0=arg(PSIpp0) "flux angle";
+ parameter Real ang_It=arg(It) "current angle";
+ parameter Real ang_PSIpp0andIt=ang_PSIpp0 - ang_It "angle difference";
+ parameter Real abs_PSIpp0='abs'(PSIpp0)
+ "magnitude of sub-transient flux linkage";
+ parameter Real dsat=SE(
+ abs_PSIpp0,
+ S10,
+ S12,
+ 1,
+ 1.2) "To include saturation of during initialization";
+ parameter Real a=abs_PSIpp0 + abs_PSIpp0*dsat*(Xq - Xl)/(Xd - Xl);
+ parameter Real b=(It.re^2 + It.im^2)^0.5*(Xpp - Xq);
+ //Initializion rotor angle position
+ parameter Real delta0=atan(b*cos(ang_PSIpp0andIt)/(b*sin(ang_PSIpp0andIt) - a))
+ + ang_PSIpp0 "initial rotor angle in radians";
+ parameter Complex DQ_dq=cos(delta0) - j*sin(delta0)
+ "Parks transformation, from stator to rotor reference frame";
+ parameter Complex PSIpp0_dq=PSIpp0*DQ_dq
+ "Flux linkage in rotor reference frame";
+ parameter Complex I_dq=conj(It*DQ_dq);
+ //"The terminal current in rotor reference frame"
+ parameter Real PSIppq0=imag(PSIpp0_dq)
+ "q-axis component of the sub-transient flux linkage";
+ parameter Real PSIppd0=real(PSIpp0_dq)
+ "d-axis component of the sub-transient flux linkage";
+ //Initialization of current and voltage components in rotor reference frame (dq-axes).
+ parameter Real delta1=delta0*180/pi "rotor angle in degrees";
+ parameter Real iq0=real(I_dq) "q-axis component of intitial current";
+ parameter Real id0=imag(I_dq) "d-axis component of intitial current";
+ parameter Real ud0=(-(PSIppq0 - Xppq*iq0)) - R_a*id0
+ "d-axis component of intitial voltage";
+ parameter Real uq0=PSIppd0 - Xppd*id0 - R_a*iq0
+ "q-axis component of intitial voltage";
+ //Initialization current and voltage components in synchronous reference frame.
+ parameter Real vr0=V_0*cos(anglev_rad)
+ "Real component of initial terminal voltage";
+ parameter Real vi0=V_0*sin(anglev_rad)
+ "Imaginary component of intitial terminal voltage";
+ parameter Real ir0=-CoB*(p0*vr0 + q0*vi0)/(vr0^2 + vi0^2)
+ "Real component of initial armature current, systembase";
+ parameter Real ii0=-CoB*(p0*vi0 - q0*vr0)/(vr0^2 + vi0^2)
+ "Imaginary component of initial armature current, systembase";
+ //Initialization mechanical power and field voltage.
+ parameter Real pm0=p0 + R_a*iq0*iq0 + R_a*id0*id0
+ "Initial mechanical power, machine base";
+ parameter Real efd0=dsat*PSIppd0 + PSIppd0 + (Xpd - Xpp)*id0 + (Xd - Xpd)*id0
+ "Initial field voltage magnitude";
+ parameter Real Epq0=PSIkd0 + (Xpd - Xl)*id0;
+ parameter Real Epd0=PSIkq0 - (Xpq - Xl)*iq0;
+ //Initialize remaining states:
+ parameter Real PSIkd0=(PSIppd0 - (Xpd - Xl)*K3d*id0)/(K3d + K4d)
+ "d-axis initial rotor flux linkage";
+ parameter Real PSIkq0=((-PSIppq0) + (Xpq - Xl)*K3q*iq0)/(K3q + K4q)
+ "q-axis initial rotor flux linkage";
+ parameter Real PSId0=PSIppd0 - Xppd*id0;
+ parameter Real PSIq0=(-PSIppq0) - Xppq*iq0;
+ // Constants
+ parameter Real K1d=(Xpd - Xppd)*(Xd - Xpd)/(Xpd - Xl)^2;
+ parameter Real K2d=(Xpd - Xl)*(Xppd - Xl)/(Xpd - Xppd);
+ parameter Real K1q=(Xpq - Xppq)*(Xq - Xpq)/(Xpq - Xl)^2;
+ parameter Real K2q=(Xpq - Xl)*(Xppq - Xl)/(Xpq - Xppq);
+ parameter Real K3d=(Xppd - Xl)/(Xpd - Xl);
+ parameter Real K4d=(Xpd - Xppd)/(Xpd - Xl);
+ parameter Real K3q=(Xppq - Xl)/(Xpq - Xl);
+ parameter Real K4q=(Xpq - Xppq)/(Xpq - Xl);
+ parameter Real CoB=M_b/S_b
+ "Constant to change from system base to machine base";
+ initial equation
+ der(Epd) = 0;
+ der(Epq) = 0;
+ der(PSIkd) = 0;
+ der(PSIkq) = 0;
+ delta = delta0;
+ w = 0;
+ equation
+ //Interfacing outputs with the internal variables
+ XADIFD = XadIfd;
+ ISORCE = XadIfd;
+ EFD0 = efd0;
+ PMECH0 = pm0;
+ der(Epq) = 1/Tpd0*(EFD - XadIfd);
+ der(Epd) = 1/Tpq0*(-1)*XaqIlq;
+ der(PSIkd) = 1/Tppd0*(Epq - PSIkd - (Xpd - Xl)*id);
+ der(PSIkq) = 1/Tppq0*(Epd - PSIkq + (Xpq - Xl)*iq);
+ Te = PSId*iq - PSIq*id;
+ PSId = PSIppd - Xppd*id;
+ PSIq = (-PSIppq) - Xppq*iq;
+ PSIppd = Epq*K3d + PSIkd*K4d;
+ -PSIppq = (-Epd*K3q) - PSIkq*K4q;
+ PSIpp = sqrt(PSIppd*PSIppd + PSIppq*PSIppq);
+ XadIfd = K1d*(Epq - PSIkd - (Xpd - Xl)*id) + Epq + id*(Xd - Xpd) + SE(
+ PSIpp,
+ S10,
+ S12,
+ 1,
+ 1.2)*PSIppd;
+ XaqIlq = K1q*(Epd - PSIkq + (Xpq - Xl)*iq) + Epd - iq*(Xq - Xpq) - SE(
+ PSIpp,
+ S10,
+ S12,
+ 1,
+ 1.2)*(-1)*PSIppq*(Xq - Xl)/(Xd - Xl);
+ //change sign for PSIppq 3/3
+ ud = (-PSIq) - R_a*id;
+ uq = PSId - R_a*iq;
+ //flow
+ annotation (
+ Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{
+ 100,100}})),
+ Icon(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{100,
+ 100}}), graphics={Text(
+ extent={{-54,24},{54,-26}},
+ lineColor={0,0,255},
+ textString="GENROU")}),
+ Documentation(info="
+
+
+Reference |
+PSS/E Manual |
+
+
+Last update |
+Unknown |
+
+
+Author |
+Mengjia Zhang,SmarTS Lab, KTH Royal Institute of Technology |
+
+
+Contact |
+luigiv@kth.se |
+
+
+"));
+ end GENROU;
+
+ model GENROE "ROUND ROTOR GENERATOR MODEL (EXPONENTIAL SATURATION)"
+ //Import of dependencies
+ import Complex;
+ import Modelica.ComplexMath.arg;
+ import Modelica.ComplexMath.real;
+ import Modelica.ComplexMath.imag;
+ import Modelica.ComplexMath.'abs';
+ import Modelica.ComplexMath.conj;
+ import Modelica.ComplexMath.fromPolar;
+ import IslandedOperationControl.OpenIPSL.NonElectrical.Functions.SE_exp;
+ import Modelica.Constants.pi;
+ import Modelica.ComplexMath.j;
+ extends BaseClasses.baseMachine(
+ w(start=0),
+ EFD(start=efd0),
+ XADIFD(start=efd0),
+ PMECH(start=pm0),
+ ANGLE(start=delta0),
+ delta(start=delta0),
+ id(start=id0),
+ iq(start=iq0),
+ ud(start=ud0),
+ uq(start=uq0),
+ Te(start=pm0));
+ //Machine parameters
+ parameter Real Xpq "Sub-transient reactance (pu)"
+ annotation (Dialog(group="Machine parameters"));
+ parameter Real Tpq0 "q-axis transient open-circuit time constant (s)"
+ annotation (Dialog(group="Machine parameters"));
+ parameter Real Xpp=Xppd "Sub-transient reactance (pu)"
+ annotation (Dialog(group="Machine parameters"));
+ Real Epd(start=Epd0) "d-axis voltage behind transient reactance (pu)";
+ Real Epq(start=Epq0) "q-axis voltage behind transient reactance ";
+ Real PSIkd(start=PSIkd0) "d-axis rotor flux linkage (pu)";
+ Real PSIkq(start=PSIkq0) "q-axis rotor flux linkage (pu)";
+ //State variables
+ Real PSId(start=PSId0) "d-axis flux linkage (pu)";
+ Real PSIq(start=PSIq0) "q-axis flux linkage (pu)";
+ Real PSIppd(start=PSIppd0) "d-axis subtransient flux linkage (pu)";
+ Real PSIppq(start=PSIppq0) "q-axis subtransient flux linkage (pu)";
+ Real PSIpp "Air-gap flux (pu)";
+ Real XadIfd(start=efd0) "d-axis machine field current (pu)";
+ Real XaqIlq(start=0) "q-axis Machine field current (pu)";
+ protected
+ parameter Complex Zs=R_a + j*Xpp "Equivalent impedance";
+ parameter Complex VT=V_0*cos(anglev_rad) + j*V_0*sin(anglev_rad)
+ "Complex terminal voltage";
+ parameter Complex S=p0 + j*q0 "Complex power on machine base";
+ parameter Complex It=real(S/VT) - j*imag(S/VT)
+ "Complex current, machine base";
+ parameter Complex Is=real(It + VT/Zs) + j*imag(It + VT/Zs)
+ "Equivalent internal current source";
+ parameter Complex PSIpp0=real(Zs*Is) + j*imag(Zs*Is)
+ "Sub-transient flux linkage in stator reference frame";
+ parameter Real ang_PSIpp0=arg(PSIpp0) "flux angle";
+ parameter Real ang_It=arg(It) "current angle";
+ parameter Real ang_PSIpp0andIt=ang_PSIpp0 - ang_It "angle difference";
+ parameter Real abs_PSIpp0='abs'(PSIpp0)
+ "magnitude of sub-transient flux linkage";
+ parameter Real dsat=SE_exp(
+ abs_PSIpp0,
+ S10,
+ S12,
+ 1,
+ 1.2) "To include saturation of during initialization";
+ parameter Real a=abs_PSIpp0 + abs_PSIpp0*dsat*(Xq - Xl)/(Xd - Xl);
+ parameter Real b=(It.re^2 + It.im^2)^0.5*(Xpp - Xq);
+ //Initializion rotor angle position
+ parameter Real delta0=atan(b*cos(ang_PSIpp0andIt)/(b*sin(ang_PSIpp0andIt) - a))
+ + ang_PSIpp0 "initial rotor angle in radians";
+ parameter Complex DQ_dq=cos(delta0) - j*sin(delta0)
+ "Parks transformation, from stator to rotor reference frame";
+ parameter Complex PSIpp0_dq=real(PSIpp0*DQ_dq) + j*imag(PSIpp0*DQ_dq)
+ "Flux linkage in rotor reference frame";
+ parameter Complex I_dq=real(It*DQ_dq) - j*imag(It*DQ_dq);
+ //"The terminal current in rotor reference frame"
+ parameter Real PSIppq0=imag(PSIpp0_dq)
+ "q-axis component of the sub-transient flux linkage";
+ parameter Real PSIppd0=real(PSIpp0_dq)
+ "d-axis component of the sub-transient flux linkage";
+ //Initialization of current and voltage components in rotor reference frame (dq-axes).
+ parameter Real delta1=delta0*180/pi "rotor angle in degrees";
+ parameter Real iq0=real(I_dq) "q-axis component of intitial current";
+ parameter Real id0=imag(I_dq) "d-axis component of intitial current";
+ parameter Real ud0=(-(PSIppq0 - Xppq*iq0)) - R_a*id0
+ "d-axis component of intitial voltage";
+ parameter Real uq0=PSIppd0 - Xppd*id0 - R_a*iq0
+ "q-axis component of intitial voltage";
+ //Initialization current and voltage components in synchronous reference frame.
+ parameter Real vr0=V_0*cos(anglev_rad)
+ "Real component of initial terminal voltage";
+ parameter Real vi0=V_0*sin(anglev_rad)
+ "Imaginary component of intitial terminal voltage";
+ parameter Real ir0=-CoB*(p0*vr0 + q0*vi0)/(vr0^2 + vi0^2)
+ "Real component of initial armature current, systembase";
+ parameter Real ii0=-CoB*(p0*vi0 - q0*vr0)/(vr0^2 + vi0^2)
+ "Imaginary component of initial armature current, systembase";
+ //Initialization mechanical power and field voltage.
+ parameter Real pm0=p0 + R_a*iq0*iq0 + R_a*id0*id0
+ "Initial mechanical power, machine base";
+ parameter Real efd0=dsat*PSIppd0 + PSIppd0 + (Xpd - Xpp)*id0 + (Xd - Xpd)*id0
+ "Initial field voltage magnitude";
+ parameter Real Epq0=PSIkd0 + (Xpd - Xl)*id0;
+ parameter Real Epd0=PSIkq0 - (Xpq - Xl)*iq0;
+ //Initialize remaining states:
+ parameter Real PSIkd0=(PSIppd0 - (Xpd - Xl)*K3d*id0)/(K3d + K4d)
+ "d-axis initial rotor flux linkage";
+ parameter Real PSIkq0=((-PSIppq0) + (Xpq - Xl)*K3q*iq0)/(K3q + K4q)
+ "q-axis initial rotor flux linkage";
+ parameter Real PSId0=PSIppd0 - Xppd*id0;
+ parameter Real PSIq0=PSIppq0 - Xppq*iq0;
+ // Constants
+ parameter Real K1d=(Xpd - Xppd)*(Xd - Xpd)/(Xpd - Xl)^2;
+ parameter Real K2d=(Xpd - Xl)*(Xppd - Xl)/(Xpd - Xppd);
+ parameter Real K1q=(Xpq - Xppq)*(Xq - Xpq)/(Xpq - Xl)^2;
+ parameter Real K2q=(Xpq - Xl)*(Xppq - Xl)/(Xpq - Xppq);
+ parameter Real K3d=(Xppd - Xl)/(Xpd - Xl);
+ parameter Real K4d=(Xpd - Xppd)/(Xpd - Xl);
+ parameter Real K3q=(Xppq - Xl)/(Xpq - Xl);
+ parameter Real K4q=(Xpq - Xppq)/(Xpq - Xl);
+ parameter Real CoB=M_b/S_b
+ "Constant to change from system base to machine base";
+ initial equation
+ der(Epd) = 0;
+ der(Epq) = 0;
+ der(PSIkd) = 0;
+ der(PSIkq) = 0;
+ delta = delta0;
+ w = 0;
+ equation
+ //Interfacing outputs with the internal variables
+ XADIFD = XadIfd;
+ ISORCE = XadIfd;
+ EFD0 = efd0;
+ PMECH0 = pm0;
+ der(Epq) = 1/Tpd0*(EFD - XadIfd);
+ der(Epd) = 1/Tpq0*(-1)*XaqIlq;
+ der(PSIkd) = 1/Tppd0*(Epq - PSIkd - (Xpd - Xl)*id);
+ der(PSIkq) = 1/Tppq0*(Epd - PSIkq + (Xpq - Xl)*iq);
+ Te = PSId*iq - PSIq*id;
+ PSId = PSIppd - Xppd*id;
+ PSIq = (-PSIppq) - Xppq*iq;
+ PSIppd = Epq*K3d + PSIkd*K4d;
+ -PSIppq = (-Epd*K3q) - PSIkq*K4q;
+ PSIpp = sqrt(PSIppd*PSIppd + PSIppq*PSIppq);
+ XadIfd = K1d*(Epq - PSIkd - (Xpd - Xl)*id) + Epq + id*(Xd - Xpd) + SE_exp(
+ PSIpp,
+ S10,
+ S12,
+ 1,
+ 1.2)*PSIppd;
+ XaqIlq = K1q*(Epd - PSIkq + (Xpq - Xl)*iq) + Epd - iq*(Xq - Xpq) - SE_exp(
+ PSIpp,
+ S10,
+ S12,
+ 1,
+ 1.2)*(-1)*PSIppq*(Xq - Xl)/(Xd - Xl);
+ //change sign for PSIppq 3/3
+ ud = (-PSIq) - R_a*id;
+ uq = PSId - R_a*iq;
+ //flow
+ annotation (
+ Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{
+ 100,100}})),
+ Icon(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{100,
+ 100}}), graphics={Text(
+ extent={{-54,24},{54,-26}},
+ lineColor={0,0,255},
+ textString="GENROE")}),
+ Documentation);
+ end GENROE;
+
+ model GENSAE "SALIENT POLE GENERATOR MODEL (EXPONENTIAL SATURATION)"
+ // Import of Dependencies
+ import IslandedOperationControl.OpenIPSL.NonElectrical.Functions.SE_exp;
+ import Modelica.Constants.pi;
+ import Complex;
+ import Modelica.ComplexMath.arg;
+ import Modelica.ComplexMath.real;
+ import Modelica.ComplexMath.imag;
+ import Modelica.ComplexMath.'abs';
+ import Modelica.ComplexMath.conj;
+ import Modelica.ComplexMath.fromPolar;
+ import Modelica.ComplexMath.j;
+ //Extending machine base
+ extends BaseClasses.baseMachine(
+ w(start=0),
+ EFD(start=efd0),
+ XADIFD(start=efd0),
+ PMECH(start=pm0),
+ ANGLE(start=delta0),
+ delta(start=delta0),
+ id(start=id0),
+ iq(start=iq0),
+ ud(start=ud0),
+ uq(start=uq0),
+ Te(start=pm0));
+ Real Epq(start=Epq0) "q-axis voltage behind transient reactance (pu)";
+ Real PSIkd(start=PSIkd0) "d-axis rotor flux linkage (pu)";
+ Real PSIppq(start=PSIppq0) "q-axis subtransient flux linkage (pu)";
+ Real PSIppd(start=PSIppd0) "d-axis subtransient flux linkage (pu)";
+ Real PSId(start=PSId0) "d-axis flux linkage (pu)";
+ Real PSIq(start=PSIq0) "q-axis flux linkage (pu)";
+ Real XadIfd(start=efd0) "Machine field current (pu)";
+ protected
+ parameter Complex Zs=R_a + j*Xppd "Equivalent impedance";
+ parameter Complex Is=real(It + VT/Zs) + j*imag(It + VT/Zs);
+ parameter Complex PSIpp0=real(Zs*Is) + j*imag(Zs*Is);
+ parameter Complex a=0 + j*(Xq - Xppd);
+ parameter Complex Epqp=real(PSIpp0 + a*It) + j*imag(PSIpp0 + a*It);
+ parameter Real delta0=arg(Epqp) "rotor angle in radians";
+ parameter Complex VT=V_0*cos(anglev_rad) + j*V_0*sin(anglev_rad)
+ "Complex terminal voltage";
+ parameter Complex S=p0 + j*q0 "Complex power on machine base";
+ parameter Complex It=real(S/VT) - j*imag(S/VT) "Terminal current";
+ parameter Complex DQ_dq=cos(delta0) - j*sin(delta0) "Parks transformation";
+ parameter Complex I_dq=real(It*DQ_dq) - j*imag(It*DQ_dq);
+ //Initialization of current and voltage components in synchronous reference frame.
+ parameter Real iq0=real(I_dq) "q-axis component of intitial current";
+ parameter Real id0=imag(I_dq) "d-axis component of intitial current";
+ parameter Real ud0=V_0*cos(anglev_rad - delta0 + pi/2)
+ "d-axis component of intitial voltage";
+ parameter Real uq0=V_0*sin(anglev_rad - delta0 + pi/2)
+ "q-axis component of intitial voltage";
+ parameter Complex PSIpp0_dq=real(PSIpp0*DQ_dq) + j*imag(PSIpp0*DQ_dq)
+ "Flux linkage in rotor reference frame";
+ parameter Real PSIppq0=-imag(PSIpp0_dq)
+ "q-axis component of the sub-transient flux linkage";
+ parameter Real PSIppd0=real(PSIpp0_dq)
+ "d-axis component of the sub-transient flux linkage";
+ parameter Real PSIkd0=(PSIppd0 - (Xpd - Xl)*K3d*id0)/(K3d + K4d)
+ "d-axis initial rotor flux linkage";
+ parameter Real PSId0=PSIppd0 - Xppd*id0;
+ parameter Real PSIq0=(-PSIppq0) - Xppq*iq0;
+ //Initialization mechanical power and field voltage.
+ parameter Real Epq0=uq0 + Xpd*id0 + R_a*iq0;
+ parameter Real dsat=SE_exp(
+ Epq0,
+ S10,
+ S12,
+ 1,
+ 1.2);
+ parameter Real efd0=Epq0*(1 + dsat) + (Xd - Xpd)*id0
+ "Initial field voltage magnitude";
+ parameter Real pm0=p0 + R_a*iq0*iq0 + R_a*id0*id0
+ "Initial mechanical power, machine base";
+ // Constants
+ parameter Real K1d=(Xpd - Xppd)*(Xd - Xpd)/(Xpd - Xl)^2;
+ parameter Real K2d=(Xpd - Xl)*(Xppd - Xl)/(Xpd - Xppd);
+ parameter Real K3d=(Xppd - Xl)/(Xpd - Xl);
+ parameter Real K4d=(Xpd - Xppd)/(Xpd - Xl);
+ initial equation
+ der(Epq) = 0;
+ der(PSIkd) = 0;
+ der(PSIppq) = 0;
+ delta = delta0;
+ w = 0;
+ equation
+ //Interfacing outputs with the internal variables
+ XADIFD = XadIfd;
+ PMECH0 = pm0;
+ EFD0 = efd0;
+ ISORCE = XadIfd;
+ der(Epq) = 1/Tpd0*(EFD - XadIfd);
+ der(PSIkd) = 1/Tppd0*(Epq - PSIkd - (Xpd - Xl)*id);
+ der(PSIppq) = 1/Tppq0*((-PSIppq) + (Xq - Xppq)*iq);
+ PSIppd = Epq*K3d + PSIkd*K4d;
+ PSId = PSIppd - Xppd*id;
+ PSIq = (-PSIppq) - Xppq*iq;
+ XadIfd = K1d*(Epq - PSIkd - (Xpd - Xl)*id) + (Xd - Xpd)*id + (SE_exp(
+ Epq,
+ S10,
+ S12,
+ 1,
+ 1.2) + 1)*Epq;
+ Te = PSId*iq - PSIq*id;
+ ud = (-PSIq) - R_a*id;
+ uq = PSId - R_a*iq;
+ //flow, changed from machine base to system bas
+ annotation (
+ Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{
+ 100,100}})),
+ Icon(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{100,
+ 100}}), graphics={Text(
+ extent={{-58,62},{52,-64}},
+ lineColor={0,0,255},
+ textString="GENSAE")}),
+ Documentation(info="
+
+
+Reference |
+PSS/E Manual |
+
+
+Last update |
+Unknown |
+
+
+Author |
+Mengjia Zhang,SmarTS Lab, KTH Royal Institute of Technology |
+
+
+Contact |
+luigiv@kth.se |
+
+
+"));
+ end GENSAE;
+
+ model GENCLS
+ import Modelica.Constants.pi;
+ import Modelica.Constants.eps;
+ extends OpenIPSL.Electrical.Essentials.pfComponent;
+ OpenIPSL.Interfaces.PwPin p(
+ vr(start=vr0),
+ vi(start=vi0),
+ ir(start=ir0),
+ ii(start=ii0)) annotation (Placement(visible=true, transformation(
+ origin={100,0},
+ extent={{-10,-10},{10,10}},
+ rotation=0)));
+ parameter Real M_b "Machine base power rating (MVA)"
+ annotation (Dialog(group="Power flow data"));
+ parameter Real H=0 "Inertia constant (s)"
+ annotation (Dialog(group="Machine parameters"));
+ parameter Real D=0 "Damping coefficient"
+ annotation (Dialog(group="Machine parameters"));
+ parameter Real R_a=0 "Amature resistance (pu)"
+ annotation (Dialog(group="Machine parameters"));
+ parameter Real X_d=0.2 "d-axis transient reactance (pu)"
+ annotation (Dialog(group="Machine parameters"));
+ Real delta(start=delta0, fixed=true) "Rotor angle (deg)";
+ Real omega(start=0, fixed=true) "Rotor speed (pu)";
+ Real V(start=V_0) "Bus voltage magnitude (pu)";
+ Real anglev(start=anglev_rad) "Bus voltage angle (rad)";
+ Real eq(start=vf0, fixed=true) "Constant emf behind transient reactance (pu)";
+ Real vd(start=vd0) "d-axis voltage (pu)";
+ Real vq(start=vq0) "q-axis voltage (pu)";
+ Real id(start=id0) "d-axis current (pu)";
+ Real iq(start=iq0) "q-axis current (pu)";
+ Real P(start=P_0/S_b) "Active power (pu. of S_b)";
+ Real Q(start=Q_0/S_b) "Reactive power (pu of S_b)";
+ protected
+ parameter Real CoB=M_b/S_b "Change from system to machine base";
+ parameter Real anglev_rad=angle_0*pi/180 "Initial bus voltage angle (rad)";
+ parameter Real p0=P_0/M_b "Initial active power (pu on M_b)";
+ parameter Real q0=Q_0/M_b "Initial reactive power in (pu on M_b)";
+ parameter Real vr0=V_0*cos(anglev_rad);
+ parameter Real vi0=V_0*sin(anglev_rad);
+ parameter Real ir0=(p0*vr0 + q0*vi0)/(vr0^2 + vi0^2);
+ parameter Real ii0=(p0*vi0 - q0*vr0)/(vr0^2 + vi0^2);
+ parameter Real delta0=atan2(vi0 + R_a*ii0 + X_d*ir0, vr0 + R_a*ir0 - X_d*ii0);
+ parameter Real vd0=vr0*cos(pi/2 - delta0) - vi0*sin(pi/2 - delta0);
+ parameter Real vq0=vr0*sin(pi/2 - delta0) + vi0*cos(pi/2 - delta0);
+ parameter Real id0=ir0*cos(pi/2 - delta0) - ii0*sin(pi/2 - delta0);
+ parameter Real iq0=ir0*sin(pi/2 - delta0) + ii0*cos(pi/2 - delta0);
+ parameter Real vf0=vq0 + R_a*iq0 + X_d*id0;
+ equation
+ //Swing equation
+ //in PSS/E setting to zero is equivalent to removing the swing equation
+ if abs(H) > eps then
+ der(delta) = omega*2*pi*50;
+ der(omega) = (P_0/S_b - P - D*omega)/(2*H);
+ else
+ der(delta) = 0;
+ omega = 0;
+ end if;
+ // d-q voltage and current equations
+ der(eq) = 0 "Classical model assumes constant emf";
+ vq = eq - R_a*iq - X_d*id "q-axis voltage equation";
+ vd = X_d*iq - R_a*id "d-axis voltage equation";
+ // Park's transformation
+ [p.ir; p.ii] = -CoB*[sin(delta), cos(delta); -cos(delta), sin(delta)]*[id; iq];
+ [p.vr; p.vi] = [sin(delta), cos(delta); -cos(delta), sin(delta)]*[vd; vq];
+ //Power injections
+ -P = p.vr*p.ir + p.vi*p.ii;
+ -Q = p.vi*p.ir - p.vr*p.ii;
+ // Terminal voltage magnitude and angle
+ V = sqrt(p.vr^2 + p.vi^2);
+ anglev = atan2(p.vi, p.vr);
+ annotation (
+ Icon(coordinateSystem(preserveAspectRatio=false, initialScale=0.1),
+ graphics={Text(
+ extent={{50,150},{100,110}},
+ lineColor={0,0,255},
+ lineThickness=0.5,
+ fillColor={0,0,255},
+ fillPattern=FillPattern.Solid,
+ textStyle={TextStyle.Bold},
+ textString="INF"),Line(points={{-40,88},{0,68}}, color={0,0,255}),
+ Line(points={{-40,70},{0,50}}, color={0,0,255}),Line(points={{-40,50},
+ {0,30}}, color={0,0,255}),Line(points={{-40,30},{0,10}}, color={0,0,
+ 255}),Line(points={{-40,10},{0,-10}}, color={0,0,255}),Line(points={{
+ -40,-10},{0,-30}}, color={0,0,255}),Line(points={{-40,-30},{0,-50}},
+ color={0,0,255}),Line(points={{-40,-50},{0,-70}}, color={0,0,255}),
+ Line(points={{0,80},{0,-80}}, color={0,0,255}),Line(points={{100,0},{
+ 96,0},{0,0}}, color={0,0,255}),Rectangle(extent={{-100,100},{100,-100}},
+ lineColor={0,0,255})}),
+ Diagram(coordinateSystem(
+ preserveAspectRatio=true,
+ initialScale=0.1,
+ grid={2,2})),
+ Documentation(info="
+
+
+Reference |
+PSS/E Manual |
+
+
+Last update |
+Unknown |
+
+
+Author |
+Mengjia Zhang,SmarTS Lab, KTH Royal Institute of Technology |
+
+
+Contact |
+luigiv@kth.se |
+
+
+"));
+ end GENCLS;
+
+ package BaseClasses
+ partial model baseMachine
+ import Modelica.Constants.pi;
+ import Complex;
+ import Modelica.ComplexMath.arg;
+ import Modelica.ComplexMath.real;
+ import Modelica.ComplexMath.imag;
+ import Modelica.ComplexMath.'abs';
+ import Modelica.ComplexMath.conj;
+ import Modelica.Blocks.Interfaces.*;
+ extends OpenIPSL.Electrical.Essentials.pfComponent;
+ //Machine parameters
+ parameter Real M_b "Machine base power (MVA)"
+ annotation (Dialog(group="Power flow data"));
+ parameter Real Tpd0 "d-axis transient open-circuit time constant (s)"
+ annotation (Dialog(group="Machine parameters"));
+ parameter Real Tppd0 "d-axis sub-transient open-circuit time constant (s)"
+ annotation (Dialog(group="Machine parameters"));
+ parameter Real Tppq0 "q-axis transient open-circuit time constant (s)"
+ annotation (Dialog(group="Machine parameters"));
+ parameter Real H "Inertia constant (s)"
+ annotation (Dialog(group="Machine parameters"));
+ parameter Real D "Speed damping"
+ annotation (Dialog(group="Machine parameters"));
+ parameter Real Xd "d-axis reactance"
+ annotation (Dialog(group="Machine parameters"));
+ parameter Real Xq "q-axis reactance"
+ annotation (Dialog(group="Machine parameters"));
+ parameter Real Xpd "d-axis transient reactance"
+ annotation (Dialog(group="Machine parameters"));
+ parameter Real Xppd "d-axis sub-transient reactance"
+ annotation (Dialog(group="Machine parameters"));
+ parameter Real Xppq "q-axis sub-transient reactance"
+ annotation (Dialog(group="Machine parameters"));
+ parameter Real Xl "leakage reactance"
+ annotation (Dialog(group="Machine parameters"));
+ parameter Real S10 "Saturation factor at 1.0 pu"
+ annotation (Dialog(group="Machine parameters"));
+ parameter Real S12 "Saturation factor at 1.2 pu"
+ annotation (Dialog(group="Machine parameters"));
+ parameter Real R_a=0 "amature resistance"
+ annotation (Dialog(group="Machine parameters"));
+ //Initialization
+ OpenIPSL.Interfaces.PwPin p(
+ vr(start=vr0),
+ vi(start=vi0),
+ ir(start=ir0),
+ ii(start=ii0)) annotation (Placement(transformation(extent={{90,
+ -10},{110,10}})));
+ RealOutput SPEED(start=0) "Machine speed deviation from nominal (pu)"
+ annotation (Placement(transformation(extent={{100,60},{120,80}})));
+ RealInput PMECH "Turbine mechanical power (pu on M_b)"
+ annotation (Placement(transformation(extent={{-140,30},{-100,70}})));
+ RealOutput PMECH0 "Initial value of machine electrical power (pu on M_b)"
+ annotation (Placement(transformation(extent={{100,40},{120,60}})));
+ RealOutput ETERM(start=V_0) "Machine terminal voltage (pu)"
+ annotation (Placement(transformation(extent={{100,-40},{120,-20}})));
+ RealInput EFD "Generator main field voltage (pu)"
+ annotation (Placement(transformation(extent={{-140,-70},{-100,-30}})));
+ RealOutput EFD0 "Initial generator main field voltage (pu)"
+ annotation (Placement(transformation(extent={{100,-60},{120,-40}})));
+ RealOutput PELEC(start=p0) "Machine electrical power (pu on M_b)"
+ annotation (Placement(transformation(extent={{100,20},{120,40}})));
+ RealOutput ISORCE "Machine source current (pu)"
+ annotation (Placement(transformation(extent={{100,-80},{120,-60}})));
+ RealOutput ANGLE "Machine relative rotor angle (deg.)"
+ annotation (Placement(transformation(extent={{100,78},{120,98}})));
+ RealOutput XADIFD "Machine field current (pu)" annotation (Placement(
+ transformation(
+ extent={{-10,-10},{10,10}},
+ rotation=0,
+ origin={110,-90}), iconTransformation(
+ extent={{-8,-8},{8,8}},
+ rotation=0,
+ origin={108,-90})));
+ Real w(start=0) "Machine speed deviation (pu)";
+ Real delta "Rotor angle (deg.)";
+ Real Vt(start=V_0) "Bus voltage magnitude (pu)";
+ Real anglev(start=anglev_rad) "Bus voltage angle (deg.)";
+ Real I(start=sqrt(ir0^2 + ii0^2)) "Terminal current magnitude (pu)";
+ Real anglei(start=atan2(ii0, ir0)) "Terminal current angle (deg.)";
+ Real P(start=P_0/S_b) "Active power (p.u. on S_b)";
+ Real Q(start=Q_0/S_b) "Reactive power (p.u. on S_b)";
+ Real Te "Electrical torque (pu)";
+ Real id "d-axis armature current (pu)";
+ Real iq "q-axis armature current (pu)";
+ Real ud "d-axis terminal voltage (pu)";
+ Real uq "q-axis terminal voltage (pu)";
+ protected
+ parameter Real w_b=2*pi*fn "System base speed (rad/s)";
+ parameter Real anglev_rad=angle_0*pi/180
+ "initial value of bus voltage angle in rad";
+ parameter Real CoB=M_b/S_b;
+ parameter Real vr0=V_0*cos(anglev_rad)
+ "Real component of initial terminal voltage";
+ parameter Real vi0=V_0*sin(anglev_rad)
+ "Imaginary component of intitial terminal voltage";
+ parameter Real ir0=-CoB*(p0*vr0 + q0*vi0)/(vr0^2 + vi0^2)
+ "Real component of initial armature current, systembase";
+ parameter Real ii0=-CoB*(p0*vi0 - q0*vr0)/(vr0^2 + vi0^2)
+ "Imaginary component of initial armature current, systembase";
+ parameter Real p0=P_0/M_b "initial active power generation in pu machinebase";
+ parameter Real q0=Q_0/M_b
+ "initial reactive power generation in pu machinebase";
+ equation
+ //Interfacing outputs with the internal variables
+ ANGLE = delta;
+ SPEED = w;
+ ETERM = Vt;
+ PELEC = P/CoB;
+ [p.ir; p.ii] = -CoB*[sin(delta), cos(delta); -cos(delta), sin(delta)]*[id; iq];
+ [p.vr; p.vi] = [sin(delta), cos(delta); -cos(delta), sin(delta)]*[ud; uq];
+ -P = p.vr*p.ir + p.vi*p.ii;
+ -Q = p.vi*p.ir - p.vr*p.ii;
+ Vt = sqrt(p.vr^2 + p.vi^2);
+ anglev = atan2(p.vi, p.vr);
+ I = sqrt(p.ii^2 + p.ir^2);
+ anglei = atan2(p.ii, p.ir);
+ der(w) = ((PMECH - D*w)/(w + 1) - Te)/(2*H);
+ der(delta) = w_b*w;
+ annotation (
+ Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{
+ 100,100}})),
+ Icon(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{100,
+ 100}}), graphics={Rectangle(extent={{-100,100},{100,-100}},
+ lineColor={0,0,255}),Text(
+ extent={{64,75},{92,65}},
+ lineColor={0,0,255},
+ lineThickness=0.5,
+ textString="SPEED"),Text(
+ extent={{60,-66},{92,-76}},
+ lineColor={0,0,255},
+ lineThickness=0.5,
+ textString="ISORCE"),Text(
+ extent={{64,-25},{92,-35}},
+ lineColor={0,0,255},
+ textString="ETERM"),Text(
+ extent={{64,94},{92,84}},
+ lineColor={0,0,255},
+ lineThickness=0.5,
+ textString="ANGLE"),Text(
+ extent={{58,56},{92,46}},
+ lineColor={0,0,255},
+ lineThickness=0.5,
+ textString="PMECH0"),Text(
+ extent={{64,34},{92,24}},
+ lineColor={0,0,255},
+ lineThickness=0.5,
+ textString="PELEC"),Text(
+ extent={{72,-46},{92,-56}},
+ lineColor={0,0,255},
+ lineThickness=0.5,
+ textString="EFD0"),Text(
+ extent={{56,-86},{92,-96}},
+ lineColor={0,0,255},
+ lineThickness=0.5,
+ textString="XADIFD0"),Text(
+ extent={{-84,56},{-44,46}},
+ lineColor={0,0,255},
+ lineThickness=0.5,
+ textString="PMECH0"),Text(
+ extent={{-88,-46},{-58,-56}},
+ lineColor={0,0,255},
+ lineThickness=0.5,
+ textString="EFD")}),
+ Documentation);
+ end baseMachine;
+ annotation (Documentation);
+ end BaseClasses;
+ annotation (Documentation);
+ end PSSE;
+ annotation (Documentation);
+ end Machines;
+
+ package Controls
+ package PSAT
+ package TG "Turbine and its governor (the mathematical models are taken from PSAT)"
+ model TGTypeI
+ Modelica.Blocks.Interfaces.RealInput w "Rotor speed (pu)" annotation (
+ Placement(transformation(extent={{-140,-20},{-100,20}})));
+ Modelica.Blocks.Interfaces.RealOutput pm "Mechanical power (pu)" annotation (
+ Placement(transformation(extent={{100,-10},{120,10}})));
+ parameter Real wref=1 "Speed reference (pu)";
+ parameter Real pref "Active power reference (pu)";
+ parameter Real R "Droop (pu)";
+ parameter Real pmax "Maximum turbine output (pu)";
+ parameter Real pmin "Minimum turbine output (pu)";
+ parameter Real Ts "Governor time constant (s)";
+ parameter Real Tc "Servo time constant (s)";
+ parameter Real T3 "Transient gain time constant (s)";
+ parameter Real T4 "Power fraction time constant (s)";
+ parameter Real T5 "Reheat time constant (s)";
+ Real pin "Turbine output (pu)";
+ protected
+ parameter Real pin0=pref "Initialization";
+ parameter Real xg10=pin0 "Initialization";
+ parameter Real xg20=(1 - T3/Tc)*xg10 "Initialization";
+ parameter Real xg30=(1 - T4/T5)*(xg20 + T3*xg10/Tc) "Initialization";
+ Real pinstar;
+ Real xg1(start=xg10, fixed=true);
+ Real xg2(start=xg20, fixed=true);
+ Real xg3(start=xg30, fixed=true);
+ equation
+ pinstar = pref + (wref - w)/R;
+ if pinstar >= pmin and pinstar <= pmax then
+ pin = pinstar;
+ elseif pinstar > pmax then
+ pin = pmax;
+ else
+ pin = pmin;
+ end if;
+ der(xg1) = (pin - xg1)/Ts;
+ der(xg2) = ((1 - T3/Tc)*xg1 - xg2)/Tc;
+ der(xg3) = ((1 - T4/T5)*(xg2 + T3*xg1/Tc) - xg3)/T5;
+ pm = xg3 + (xg2 + T3*xg1/Tc)*T4/T5;
+ annotation (
+ Icon(graphics={ Text(
+ extent={{-100,10},{-60,-10}},
+ lineColor={0,0,0},
+ textString="w"),Text(
+ extent={{60,10},{100,-10}},
+ lineColor={0,0,0},
+ textString="pm"),
+ Text(
+ extent={{-60,0},{60,-80}},
+ lineColor={0,0,255},
+ textString="TGTypeI"),
+ Rectangle(extent={{-100,100},{100,-100}}, lineColor={0,0,0}),
+ Text(
+ extent={{-80,80},{80,20}},
+ lineColor={0,0,0},
+ textString="%name")}),
+ Documentation(info="
+
+
+Reference |
+Turbine and Governor - control scheme Type I |
+
+
+Last update |
+2015-10-02 |
+
+
+Author |
+Le Qi, SmarTS Lab, KTH Royal Institute of Technology |
+
+
+Contact |
+luigiv@kth.se |
+
+
+"));
+ end TGTypeI;
+
+ model TGtypeII "TG Type II"
+ Modelica.Blocks.Interfaces.RealInput pm0 "Initial mechanical power (pu)"
+ annotation (Placement(
+ visible=true,
+ transformation(
+ origin={0,120},
+ extent={{-20,-20},{20,20}},
+ rotation=-90),
+ iconTransformation(
+ origin={0.0,120.0},
+ extent={{-20.0,-20.0},{20.0,20.0}},
+ rotation=-90)));
+ Modelica.Blocks.Interfaces.RealOutput pm "Mechanical power (pu)" annotation (
+ Placement(
+ visible=true,
+ transformation(
+ origin={109.815,0},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0),
+ iconTransformation(
+ origin={110.0,-0.0},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ Modelica.Blocks.Interfaces.RealInput w "Rotor speed (pu)" annotation (
+ Placement(
+ visible=true,
+ transformation(
+ origin={-120,5e-06},
+ extent={{-20,-20},{20,20}},
+ rotation=0),
+ iconTransformation(
+ origin={-120.0,-0.0},
+ extent={{-20.0,-20.0},{20.0,20.0}},
+ rotation=0)));
+ Modelica.Blocks.Math.Add add1(k2=-1) annotation (Placement(visible=true,
+ transformation(
+ origin={-50,6.66134e-16},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ Modelica.Blocks.Continuous.TransferFunction transferFunction1(a={Ts,1}, b={T3,
+ 1}) annotation (Placement(visible=true, transformation(
+ origin={10,4.44089e-16},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ parameter Real wref=1 "Reference speed (pu)";
+ parameter Real R=0.2 "Droop (pu)";
+ parameter Real pmax0=1 "Maximum turbine output (pu)";
+ parameter Real pmin0=0 "Minimum turbine output (pu)";
+ parameter Real Ts=0.1 "Governor Time constant (s)";
+ parameter Real T3=-0.1 "Transient gain time constant (s)";
+ parameter Real S_b=100 "System base power (MVA)"
+ annotation (Dialog(group="Power flow data"));
+ parameter Real Sn=20 "Nominal power (MVA)";
+ Modelica.Blocks.Math.Gain gain1(k=1/Ro) annotation (Placement(visible=true,
+ transformation(
+ origin={-20,6.66134e-16},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ Modelica.Blocks.Sources.Constant const(k=wref) annotation (Placement(visible=
+ true, transformation(
+ origin={-90,20},
+ extent={{-10,-10},{10,10}},
+ rotation=0)));
+ Modelica.Blocks.Math.Add add2 annotation (Placement(visible=true,
+ transformation(
+ origin={50,0},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ Modelica.Blocks.Nonlinear.Limiter limiter1(uMax=pmax, uMin=pmin) annotation (
+ Placement(visible=true, transformation(
+ origin={80,-5.55112e-16},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ protected
+ parameter Real Ro=R*S_b/Sn;
+ parameter Real pmax=pmax0*Sn/S_b;
+ parameter Real pmin=pmin0*Sn/S_b;
+ equation
+
+ connect(add2.u1, pm0) annotation (Line(points={{38,6},{32,6},{32,50},{0,50},{0,120}}, color={0,0,127}));
+ connect(add1.u1, const.y) annotation (Line(points={{-62,6},{-68,6},{-68,20},{-79,20}}, color={0,0,127}));
+ connect(w, add1.u2) annotation (Line(points={{-120,0},{-80,0},{-80,-6},{-62,-6}}, color={0,0,127}));
+ connect(add2.u2, transferFunction1.y) annotation (Line(points={{38,-6},{30,-6},{30,0},{21,0}}, color={0,0,127}));
+ connect(gain1.y, transferFunction1.u) annotation (Line(points={{-9,0},{-2,0}}, color={0,0,127}));
+ connect(add1.y, gain1.u) annotation (Line(points={{-39,0},{-32,0}}, color={0,0,127}));
+ connect(add2.y, limiter1.u) annotation (Line(points={{61,0},{68,0}}, color={0,0,127}));
+ connect(limiter1.y, pm) annotation (Line(points={{91,0},{109.815,0}}, color={0,0,127}));
+ annotation (
+ Icon( graphics={Rectangle(lineColor={0,0,0}, extent={{-100,-100},{100,100}}),
+ Text(
+ origin={0,-40},
+ extent={{-60,40},{60,-40}},
+ fontName="Arial",
+ lineColor={0,0,255},
+ textString="TGTypeII"),
+ Text(
+ origin={0,80},
+ fillPattern=FillPattern.Solid,
+ extent={{-20,10},{20,-10}},
+ textString="pm0"),Text(
+ origin={-80,0},
+ extent={{-20,10},{20,-10}},
+ lineColor={0,0,0},
+ textString="w"), Text(
+ origin={80,0},
+ extent={{-20,10},{20,-10}},
+ lineColor={0,0,0},
+ textString="pm"),
+ Text(
+ extent={{-80,80},{80,20}},
+ lineColor={0,0,0},
+ textString="%name")}),
+ Documentation(info="
+
+
+Reference |
+TG Type II, PSAT Manual 2.1.8 |
+
+
+Last update |
+September 2015 |
+
+
+Author |
+Joan Russinol, SmarTS Lab, KTH Royal Institute of Technology |
+
+
+Contact |
+luigiv@kth.se |
+
+
+"));
+ end TGtypeII;
+
+ model TGTypeIII
+ "Hydro Turbine (Linear model) and Governor (Standard model)- control scheme Type 3"
+ parameter Real P_0 "Active power (pu)"
+ annotation (Dialog(group="Power flow data"));
+ parameter Real wref=1 "Reference speed (pu)";
+ parameter Real Tg "Pilot valve droop (pu)";
+ parameter Real gmax "Maximum gate opening (pu)";
+ parameter Real gmin "Minimum gate opening (pu)";
+ parameter Real vmax "Maximum gate opening rate (pu)";
+ parameter Real vmin "Minimum gate opening rate (pu)";
+ parameter Real Tp "Pilot valve time constant (s)";
+ parameter Real Tr "Dashpot time constant (s)";
+ parameter Real delta "Transient speed droop (p.u./p.u.)";
+ parameter Real sigma "Permanent speed droop (p.u./p.u.)";
+ parameter Real Tw "Water starting time (s)";
+ parameter Real a11 "Deriv. of flow rate vs. turbine head";
+ parameter Real a13 "Deriv. of flow rate vs. gate position";
+ parameter Real a21 "Deriv. of torque vs. turbine head";
+ parameter Real a23 "Deriv. of torque vs. gate position";
+ parameter Real int3;
+ Real deltaG "Gate position variation (pu)";
+ Real G "Gate position (pu)";
+ Modelica.Blocks.Continuous.Integrator integrator(initType=Modelica.Blocks.Types.Init.NoInit,
+ y_start=0) annotation (Placement(transformation(extent={{-20,-10},{0,10}})));
+ Modelica.Blocks.Math.Gain gain(k=1/(Tg*Tp))
+ annotation (Placement(transformation(extent={{-140,-10},{-120,10}})));
+ Modelica.Blocks.Math.Gain gain1(k=1/Tp) annotation (Placement(transformation(
+ extent={{-10,-10},{10,10}},
+ rotation=180,
+ origin={-76,-30})));
+ Modelica.Blocks.Continuous.Integrator integrator1(initType=Modelica.Blocks.Types.Init.NoInit,
+ y_start=0)
+ annotation (Placement(transformation(extent={{-86,-10},{-66,10}})));
+ Modelica.Blocks.Math.Feedback feedback
+ annotation (Placement(transformation(extent={{-116,-10},{-96,10}})));
+ Modelica.Blocks.Math.Gain gain2(k=delta + sigma) annotation (Placement(
+ transformation(
+ extent={{-10,-10},{10,10}},
+ rotation=180,
+ origin={-76,30})));
+ Modelica.Blocks.Math.Gain gain3(k=sigma/Tr) annotation (Placement(
+ transformation(
+ extent={{-10,-10},{10,10}},
+ rotation=180,
+ origin={-130,-60})));
+ Modelica.Blocks.Math.Gain gain5(k=1/Tr) annotation (Placement(transformation(
+ extent={{-10,-10},{10,10}},
+ rotation=0,
+ origin={-74,-90})));
+ Modelica.Blocks.Continuous.Integrator integrator2(initType=Modelica.Blocks.Types.Init.NoInit,
+ y_start=0) annotation (Placement(transformation(
+ extent={{-10,10},{10,-10}},
+ rotation=180,
+ origin={-76,-60})));
+ Modelica.Blocks.Math.Feedback feedback1 annotation (Placement(transformation(
+ extent={{-10,10},{10,-10}},
+ rotation=180,
+ origin={-40,-60})));
+ Modelica.Blocks.Math.Gain gain4(k=1/(a11*Tw)) annotation (Placement(
+ transformation(
+ extent={{-10,-10},{10,10}},
+ rotation=180,
+ origin={140,-70})));
+ Modelica.Blocks.Continuous.Integrator integrator3(initType=Modelica.Blocks.Types.Init.NoInit,
+ y_start=int3) annotation (Placement(transformation(
+ extent={{-10,-10},{10,10}},
+ rotation=0,
+ origin={150,-40})));
+ Modelica.Blocks.Math.Feedback feedback2 annotation (Placement(transformation(
+ extent={{-10,-10},{10,10}},
+ rotation=0,
+ origin={120,-40})));
+ Modelica.Blocks.Math.Gain G6(k=(a11*a23 - a13*a21)/a11)
+ annotation (Placement(transformation(extent={{84,-10},{104,10}})));
+ Modelica.Blocks.Math.Gain gain7(k=a13*a21/(a11*a11*Tw))
+ annotation (Placement(transformation(extent={{84,-50},{104,-30}})));
+ Modelica.Blocks.Interfaces.RealInput w "Rotor speed (pu)" annotation (
+ Placement(transformation(extent={{-280,-20},{-240,20}}), iconTransformation(extent={{-140,-20},{-100,20}})));
+ Modelica.Blocks.Interfaces.RealOutput pm "Mechanical power (pu)" annotation (
+ Placement(transformation(extent={{200,-10},{220,10}}), iconTransformation(extent={{100,-10},{120,10}})));
+ Modelica.Blocks.Nonlinear.Limiter limiter(uMax=vmax, uMin=vmin)
+ annotation (Placement(transformation(extent={{-50,-10},{-30,10}})));
+ Modelica.Blocks.Nonlinear.Limiter limiter1(uMax=gmax, uMin=gmin)
+ annotation (Placement(transformation(extent={{10,-10},{30,10}})));
+ Modelica.Blocks.Math.Add add(k1=+1, k2=-1)
+ annotation (Placement(transformation(extent={{-200,-10},{-180,10}})));
+ Modelica.Blocks.Math.Add3 add3_1(
+ k1=-1,
+ k2=1,
+ k3=1) annotation (Placement(transformation(extent={{-170,-10},{-150,10}})));
+ Modelica.Blocks.Math.Add add1
+ annotation (Placement(transformation(extent={{50,-10},{70,10}})));
+ Modelica.Blocks.Math.Add add2
+ annotation (Placement(transformation(extent={{172,-10},{192,10}})));
+ Modelica.Blocks.Sources.Constant const(k=P_0)
+ annotation (Placement(transformation(extent={{10,40},{30,60}})));
+ Modelica.Blocks.Sources.Constant const1(k=wref)
+ annotation (Placement(transformation(extent={{-240,10},{-220,30}})));
+ equation
+ deltaG = limiter1.y;
+ G = add1.y;
+ connect(gain1.y, feedback.u2) annotation (Line(
+ points={{-87,-30},{-106,-30},{-106,-8}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(feedback.y, integrator1.u) annotation (Line(
+ points={{-97,0},{-88,0}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(gain.y, feedback.u1) annotation (Line(
+ points={{-119,0},{-114,0}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(gain5.y, feedback1.u2) annotation (Line(
+ points={{-63,-90},{-40,-90},{-40,-68}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(feedback1.y, integrator2.u) annotation (Line(
+ points={{-49,-60},{-64,-60}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(integrator2.y, gain3.u) annotation (Line(
+ points={{-87,-60},{-118,-60}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(gain4.y, feedback2.u2) annotation (Line(
+ points={{129,-70},{120,-70},{120,-48}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(feedback2.y, integrator3.u) annotation (Line(
+ points={{129,-40},{138,-40}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(gain7.y, feedback2.u1) annotation (Line(
+ points={{105,-40},{112,-40}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(gain1.u, integrator1.y) annotation (Line(
+ points={{-64,-30},{-58.6,-30},{-58.6,0},{-65,0}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(integrator2.y, gain5.u) annotation (Line(
+ points={{-87,-60},{-93.7,-60},{-93.7,-90},{-86,-90}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(integrator3.y, gain4.u) annotation (Line(
+ points={{161,-40},{166,-40},{166,-70},{152,-70}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(integrator1.y, limiter.u) annotation (Line(
+ points={{-65,0},{-52,0}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(limiter.y, integrator.u) annotation (Line(
+ points={{-29,0},{-22,0}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(integrator.y, limiter1.u) annotation (Line(
+ points={{1,0},{8,0}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(feedback1.u1, limiter1.y) annotation (Line(
+ points={{-32,-60},{36,-60},{36,0},{31,0}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(limiter1.y, gain2.u) annotation (Line(
+ points={{31,0},{36,0},{36,30},{-64,30}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(w, add.u2) annotation (Line(
+ points={{-260,0},{-219,0},{-219,-6},{-202,-6}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(gain2.y, add3_1.u1) annotation (Line(
+ points={{-87,30},{-175.7,30},{-175.7,8},{-172,8}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(add.y, add3_1.u2) annotation (Line(
+ points={{-179,0},{-172,0}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(gain3.y, add3_1.u3) annotation (Line(
+ points={{-141,-60},{-176.7,-60},{-176.7,-8},{-172,-8}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(add3_1.y, gain.u) annotation (Line(
+ points={{-149,0},{-142,0}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(limiter1.y, add1.u2) annotation (Line(
+ points={{31,0},{36,0},{36,-6},{48,-6}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(add1.y, G6.u) annotation (Line(
+ points={{71,0},{82,0}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(add1.y, gain7.u) annotation (Line(
+ points={{71,0},{74.3,0},{74.3,-40},{82,-40}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(G6.y, add2.u1) annotation (Line(
+ points={{105,0},{160.9,0},{160.9,6},{170,6}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(integrator3.y, add2.u2) annotation (Line(
+ points={{161,-40},{166,-40},{166,-6},{170,-6}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(const.y, add1.u1) annotation (Line(points={{31,50},{43.3,50},{43.3,6},{48,6}},
+ color={0,0,127}));
+ connect(const1.y, add.u1) annotation (Line(points={{-219,20},{-210,20},{-210,6},{-202,6}},
+ color={0,0,127}));
+ connect(add2.y, pm) annotation (Line(points={{193,0},{210,0}}, color={0,0,127}));
+ annotation (
+ Icon(graphics={Rectangle(extent={{-100,100},{100,-100}}, lineColor={0,0,0}),
+ Text(
+ extent={{-60,0},{60,-80}},
+ lineColor={0,0,255},
+ textString="TGTypeIII"),Text(
+ extent={{-100,10},{-60,-10}},
+ lineColor={0,0,0},
+ textString="w"), Text(
+ extent={{60,10},{100,-10}},
+ lineColor={0,0,0},
+ textString="pm"),
+ Text(
+ extent={{-80,80},{80,20}},
+ lineColor={0,0,0},
+ textString="%name")}),
+ Documentation(info="
+
+
+Reference |
+Hydro Turbine (Linear model) and Governor (Standard model) - control scheme Type 3, PSAT Manual |
+
+
+Last update |
+2015-10-02 |
+
+
+Author |
+Tetiana Bogodorova, SmarTS Lab, KTH Royal Institute of Technology |
+
+
+Contact |
+luigiv@kth.se |
+
+
+"), Diagram(coordinateSystem(extent={{-240,-120},{200,80}})));
+ end TGTypeIII;
+
+ model TGTypeIV
+ "Hydro Turbine (Linear model) and Governor (Standard model with PI controller)- control scheme Type 4"
+ parameter Real wref "Reference speed (pu)";
+ parameter Real Tg "Pilot valve droop (pu)";
+ parameter Real gmax "Maximum gate opening (pu)";
+ parameter Real gmin "Minimum gate opening (pu)";
+ parameter Real vmax "Maxmimum gate opening rate (pu)";
+ parameter Real vmin "Maximum gate opening rate (pu)";
+ parameter Real Tp "Pilot valve time constant (s)";
+ parameter Real Tr "Dashpot time constant (s)";
+ parameter Real sigma "Permanent speed droop (p.u./p.u.)";
+ parameter Real delta "Transient speed droop (p.u./p.u.)";
+ parameter Real Tw "Water starting time (s)";
+ parameter Real a11 "Deriv. of flow rate vs. turbine head";
+ parameter Real a13 "Deriv. of flow rate vs. gate position";
+ parameter Real a21 "Deriv. of torque vs. turbine head";
+ parameter Real a23 "Deriv. of torque vs. gate position";
+ parameter Real Kp "Proportional droop";
+ parameter Real Ki "Integral droop";
+ parameter Real Pref;
+ Real deltaG "Gate position variation (pu)";
+ Real v "Gate opening rate (pu)";
+ Modelica.Blocks.Continuous.Integrator integrator3(initType=Modelica.Blocks.Types.Init.NoInit,
+ y_start=int3)
+ annotation (Placement(transformation(extent={{34,-6},{46,6}})));
+ Modelica.Blocks.Math.Gain gain(k=1/(Tg*Tp))
+ annotation (Placement(transformation(extent={{-56,-6},{-44,6}})));
+ Modelica.Blocks.Math.Gain gain1(k=1/Tp) annotation (Placement(transformation(
+ extent={{-6,-6},{6,6}},
+ rotation=180,
+ origin={-10,-20})));
+ Modelica.Blocks.Continuous.Integrator integrator2(initType=Modelica.Blocks.Types.Init.NoInit,
+ y_start=int2)
+ annotation (Placement(transformation(extent={{-16,-6},{-4,6}})));
+ Modelica.Blocks.Math.Feedback feedback
+ annotation (Placement(transformation(extent={{-36,-6},{-24,6}})));
+ Modelica.Blocks.Math.Gain gain2(k=delta + sigma) annotation (Placement(
+ transformation(
+ extent={{-6,-6},{6,6}},
+ rotation=180,
+ origin={-12,20})));
+ Modelica.Blocks.Math.Gain gain3(k=delta/Tr) annotation (Placement(
+ transformation(
+ extent={{-6,-6},{6,6}},
+ rotation=180,
+ origin={-44,-40})));
+ Modelica.Blocks.Math.Gain gain5(k=1/Tr) annotation (Placement(transformation(
+ extent={{-6,-6},{6,6}},
+ rotation=0,
+ origin={-10,-60})));
+ Modelica.Blocks.Continuous.Integrator integrator4(initType=Modelica.Blocks.Types.Init.NoInit,
+ y_start=int4) annotation (Placement(transformation(
+ extent={{-6,6},{6,-6}},
+ rotation=180,
+ origin={-10,-40})));
+ Modelica.Blocks.Math.Feedback feedback1 annotation (Placement(transformation(
+ extent={{-6,6},{6,-6}},
+ rotation=180,
+ origin={10,-40})));
+ Modelica.Blocks.Math.Gain gain4(k=1/(a11*Tw)) annotation (Placement(
+ transformation(
+ extent={{-6,-6},{6,6}},
+ rotation=180,
+ origin={110,-40})));
+ Modelica.Blocks.Continuous.Integrator integrator5(initType=Modelica.Blocks.Types.Init.NoInit,
+ y_start=int5) annotation (Placement(transformation(
+ extent={{-6,-6},{6,6}},
+ rotation=0,
+ origin={120,-20})));
+ Modelica.Blocks.Math.Feedback feedback2 annotation (Placement(transformation(
+ extent={{-6,-6},{6,6}},
+ rotation=0,
+ origin={100,-20})));
+ Modelica.Blocks.Math.Gain G6(k=(a11*a23 - a13*a21)/a11)
+ annotation (Placement(transformation(extent={{74,-6},{86,6}})));
+ Modelica.Blocks.Math.Gain gain7(k=a13*a21/(a11*a11*Tw))
+ annotation (Placement(transformation(extent={{74,-26},{86,-14}})));
+ Modelica.Blocks.Interfaces.RealInput w "Rotor speed (pu)" annotation (
+ Placement(transformation(extent={{-240,-20},{-200,20}}),
+ iconTransformation(
+ extent={{-140,-20},{-100,20}})));
+ Modelica.Blocks.Interfaces.RealOutput Pm "Mechanical power (pu)" annotation (
+ Placement(transformation(extent={{160,-10},{180,10}}),
+ iconTransformation(
+ extent={{100,-10},{120,10}})));
+ Modelica.Blocks.Continuous.Integrator integrator1(initType=Modelica.Blocks.Types.Init.NoInit,
+ y_start=int1)
+ annotation (Placement(transformation(extent={{-126,-6},{-114,6}})));
+ Modelica.Blocks.Math.Gain gain6(k=Ki)
+ annotation (Placement(transformation(extent={{-146,-6},{-134,6}})));
+ Modelica.Blocks.Math.Gain gain8(k=Kp)
+ annotation (Placement(transformation(extent={{-146,14},{-134,26}})));
+ Modelica.Blocks.Nonlinear.Limiter limiter(uMax=vmax, uMin=vmin)
+ annotation (Placement(transformation(extent={{14,-6},{26,6}})));
+ Modelica.Blocks.Nonlinear.Limiter limiter1(uMax=gmax, uMin=gmin)
+ annotation (Placement(transformation(extent={{54,-6},{66,6}})));
+ Modelica.Blocks.Math.Add add1(k1=+1, k2=-1)
+ annotation (Placement(transformation(extent={{-177,-7},{-163,7}})));
+ Modelica.Blocks.Math.Add add2
+ annotation (Placement(transformation(extent={{-101,-7},{-87,7}})));
+ Modelica.Blocks.Math.Add3 add3_1(
+ k1=-1,
+ k2=+1,
+ k3=+1) annotation (Placement(transformation(extent={{-77,-7},{-63,7}})));
+ Modelica.Blocks.Math.Add add3
+ annotation (Placement(transformation(extent={{144,-6},{156,6}})));
+ Modelica.Blocks.Sources.Constant const1(k=wref)
+ annotation (Placement(transformation(extent={{-196,4},{-184,16}})));
+ protected
+ parameter Real int1=sigma*Pref;
+ parameter Real int2=0;
+ parameter Real int3=Pref;
+ parameter Real int4=Tr*Pref;
+ parameter Real int5=a13*a21/a11*Pref;
+ equation
+ deltaG = limiter1.y;
+ v = limiter.y;
+ connect(gain1.y, feedback.u2) annotation (Line(
+ points={{-16.6,-20},{-30,-20},{-30,-4.8}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(feedback.y, integrator2.u) annotation (Line(
+ points={{-24.6,0},{-17.2,0}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(gain.y, feedback.u1) annotation (Line(
+ points={{-43.4,0},{-34.8,0}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(gain5.y, feedback1.u2) annotation (Line(
+ points={{-3.4,-60},{10,-60},{10,-44.8}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(feedback1.y, integrator4.u) annotation (Line(
+ points={{4.6,-40},{-2.8,-40}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(integrator4.y, gain3.u) annotation (Line(
+ points={{-16.6,-40},{-36.8,-40}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(gain4.y, feedback2.u2) annotation (Line(
+ points={{103.4,-40},{100,-40},{100,-24.8}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(feedback2.y, integrator5.u) annotation (Line(
+ points={{105.4,-20},{112.8,-20}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(gain7.y, feedback2.u1) annotation (Line(
+ points={{86.6,-20},{95.2,-20}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(gain1.u, integrator2.y) annotation (Line(
+ points={{-2.8,-20},{2,-20},{2,0},{-3.4,0}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(integrator4.y, gain5.u) annotation (Line(
+ points={{-16.6,-40},{-26,-40},{-26,-60},{-17.2,-60}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(integrator5.y, gain4.u) annotation (Line(
+ points={{126.6,-20},{131.4,-20},{131.4,-40},{117.2,-40}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(gain6.y, integrator1.u) annotation (Line(
+ points={{-133.4,0},{-127.2,0}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(limiter.y, integrator3.u) annotation (Line(
+ points={{26.6,0},{32.8,0}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(integrator2.y, limiter.u) annotation (Line(
+ points={{-3.4,0},{12.8,0}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(integrator3.y, limiter1.u) annotation (Line(
+ points={{46.6,0},{52.8,0}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(limiter1.y, gain2.u) annotation (Line(
+ points={{66.6,0},{70,0},{70,20},{-4.8,20}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(limiter1.y, feedback1.u1) annotation (Line(
+ points={{66.6,0},{70,0},{70,-40},{14.8,-40}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(add1.y, gain8.u) annotation (Line(
+ points={{-162.3,8.88178e-16},{-153.65,8.88178e-16},{-153.65,20},{-147.2,20}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(add1.y, gain6.u) annotation (Line(
+ points={{-162.3,8.88178e-16},{-147.2,8.88178e-16},{-147.2,0}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(add1.u2, w) annotation (Line(
+ points={{-178.4,-4.2},{-180,-4.2},{-180,0},{-220,0}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(integrator1.y, add2.u2) annotation (Line(
+ points={{-113.4,0},{-105.4,0},{-105.4,-4.2},{-102.4,-4.2}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(add2.u1, gain8.y) annotation (Line(
+ points={{-102.4,4.2},{-106,4.2},{-106,20},{-133.4,20}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(gain2.y, add3_1.u1) annotation (Line(
+ points={{-18.6,20},{-84,20},{-84,5.6},{-78.4,5.6}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(add2.y, add3_1.u2) annotation (Line(
+ points={{-86.3,8.88178e-16},{-78.4,8.88178e-16}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(add3_1.u3, gain3.y) annotation (Line(
+ points={{-78.4,-5.6},{-84,-5.6},{-84,-40},{-50.6,-40}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(G6.y, add3.u1) annotation (Line(
+ points={{86.6,0},{120,0},{120,3.6},{142.8,3.6}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(integrator5.y, add3.u2) annotation (Line(
+ points={{126.6,-20},{131.3,-20},{131.3,-3.6},{142.8,-3.6}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(add3.y, Pm) annotation (Line(
+ points={{156.6,0},{170,0}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(limiter1.y, G6.u) annotation (Line(
+ points={{66.6,0},{72.8,0}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(limiter1.y, gain7.u) annotation (Line(
+ points={{66.6,0},{70,0},{70,-20},{72.8,-20}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(const1.y, add1.u1) annotation (Line(points={{-183.4,10},{-182,10},{-182,4},{-178,4},{-178,4.2},{-178.4,4.2}},
+ color={0,0,127}));
+ connect(add3_1.y, gain.u) annotation (Line(points={{-62.3,0},{-57.2,0}}, color={0,0,127}));
+ annotation (
+ Icon(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{100,
+ 100}}), graphics={Rectangle(extent={{-100,100},{100,-100}}, lineColor={0,0,0}),
+ Text(
+ extent={{-60,0},{60,-80}},
+ lineColor={0,0,255},
+ textString="TGTypeIV"),Text(
+ origin={-80,0},
+ extent={{-20,10},{20,-10}},
+ fontName="Arial",
+ textString="w",
+ lineColor={0,0,0}),
+ Text(
+ origin={80,0},
+ extent={{-20,10},{20,-10}},
+ fontName="Arial",
+ lineColor={0,0,0},
+ textString="pm"),
+ Text(
+ extent={{-80,80},{80,20}},
+ lineColor={0,0,0},
+ textString="%name")}),
+ Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-200,-80},{160,40}})),
+ Documentation(info="
+
+
+Reference |
+Hydro Turbine (Linear model) and Governor (Standard model) - control scheme Type 4, PSAT Manual |
+
+
+Last update |
+2015-10-02 |
+
+
+Author |
+Tetiana Bogodorova, SmarTS Lab, KTH Royal Institute of Technology |
+
+
+Contact |
+luigiv@kth.se |
+
+
+"));
+ end TGTypeIV;
+
+ model TGTypeV
+ "Hydro Turbine (Nonlinear model) and Governor (PI controller combined with servomotor)- control scheme Type 5"
+ parameter Real Tg "Servomotor droop (pu)";
+ parameter Real gmax "Maximum gate opening (pu)";
+ parameter Real gmin "Minimum gate opening (pu)";
+ parameter Real vmax "Maximum gate opening rate (pu)";
+ parameter Real vmin "Minimum gate opening rate (pu)";
+ parameter Real Tp "Pilot valve time constant (s)";
+ parameter Real Tw "Water starting time (s)";
+ parameter Real Kp "Proportional droop (p.u./p.u.)";
+ parameter Real Ki "Integral droop (p.u./p.u.)";
+ parameter Real sigma "Permanent speed droop (p.u./p.u.)";
+ parameter Real Pref;
+ Real G "Gate opening (pu)";
+ Modelica.Blocks.Continuous.Integrator integrator(initType=Modelica.Blocks.Types.Init.NoInit,
+ y_start=Pref)
+ annotation (Placement(transformation(extent={{64,-6},{76,6}})));
+ Modelica.Blocks.Math.Gain gain(k=1/Tg, y(start=0))
+ annotation (Placement(transformation(extent={{24,-6},{36,6}})));
+ Modelica.Blocks.Continuous.Integrator integrator3(initType=Modelica.Blocks.Types.Init.SteadyState,
+ y_start=Pref) annotation (Placement(transformation(
+ extent={{-6,-6},{6,6}},
+ rotation=0,
+ origin={190,0})));
+ Modelica.Blocks.Math.Gain gain7(k=1/Tw)
+ annotation (Placement(transformation(extent={{164,-6},{176,6}})));
+ Modelica.Blocks.Math.MultiSum multiSum3(k={-1,1}, nu=2)
+ annotation (Placement(transformation(extent={{144,-6},{156,6}})));
+ Modelica.Blocks.Interfaces.RealInput w "Rotor speed (pu)" annotation (
+ Placement(transformation(extent={{-180,-10},{-160,10}}),
+ iconTransformation(
+ extent={{-140,-20},{-100,20}})));
+ Modelica.Blocks.Interfaces.RealOutput Pm "Power Pm (pu)" annotation (
+ Placement(transformation(extent={{220,-6},{232,6}}),iconTransformation(
+ extent={{100,-10},{120,10}})));
+ Modelica.Blocks.Continuous.Integrator integrator4(initType=Modelica.Blocks.Types.Init.SteadyState,
+ y_start=Pref)
+ annotation (Placement(transformation(extent={{-36,-6},{-24,6}})));
+ Modelica.Blocks.Math.Gain Integral(k=Ki)
+ annotation (Placement(transformation(extent={{-56,-6},{-44,6}})));
+ Modelica.Blocks.Math.Gain gain9(k=1/Tp)
+ annotation (Placement(transformation(extent={{-116,-6},{-104,6}})));
+ Modelica.Blocks.Math.MultiSum multiSum6( k={-1,1}, nu=2)
+ annotation (Placement(transformation(extent={{-136,-6},{-124,6}})));
+ Modelica.Blocks.Math.Gain gain6(k=sigma) annotation (Placement(transformation(
+ extent={{-6,-6},{6,6}},
+ rotation=180,
+ origin={-110,20})));
+ Modelica.Blocks.Continuous.Integrator integrator5(initType=Modelica.Blocks.Types.Init.NoInit,
+ y_start=0)
+ annotation (Placement(transformation(extent={{-76,-6},{-64,6}})));
+ Modelica.Blocks.Math.Gain Proportional(k=Kp)
+ annotation (Placement(transformation(extent={{-46,-26},{-34,-14}})));
+ Modelica.Blocks.Math.Gain gain8(k=1/Tp) annotation (Placement(transformation(
+ extent={{-6,-6},{6,6}},
+ rotation=180,
+ origin={-80,-20})));
+ Modelica.Blocks.Math.Division division(y(start=1))
+ annotation (Placement(transformation(extent={{108,-6},{120,6}})));
+ Modelica.Blocks.Math.Product product1
+ annotation (Placement(transformation(extent={{204,-6},{216,6}})));
+ Modelica.Blocks.Math.MultiProduct square(nu=2) annotation (Placement(transformation(extent={{124,-6},{136,6}})));
+ Modelica.Blocks.Sources.Constant one(k=1) annotation (Placement(transformation(
+ extent={{-6,-6},{6,6}},
+ rotation=0,
+ origin={130,-20})));
+ Modelica.Blocks.Interfaces.RealInput pref "Reference power (pu)" annotation (Placement(transformation(extent={{-180,20},{-160,40}}), iconTransformation(extent={{-140,40},{-100,80}})));
+ Modelica.Blocks.Math.Feedback p_feedback annotation (Placement(transformation(
+ extent={{-6,-6},{6,6}},
+ rotation=180,
+ origin={-80,20})));
+ Modelica.Blocks.Nonlinear.Limiter limiter2(uMax=vmax, uMin=vmin)
+ annotation (Placement(transformation(extent={{44,-6},{56,6}})));
+ Modelica.Blocks.Nonlinear.Limiter limiter3(uMax=gmax, uMin=gmin)
+ annotation (Placement(transformation(extent={{84,-6},{96,6}})));
+ Modelica.Blocks.Math.Add add1
+ annotation (Placement(transformation(extent={{-15,-5},{-5,5}})));
+ Modelica.Blocks.Math.Add add2(k1=+1, k2=-1)
+ annotation (Placement(transformation(extent={{4,-6},{16,6}})));
+ Modelica.Blocks.Math.Add add3(k1=+1, k2=-1)
+ annotation (Placement(transformation(extent={{-95,-5},{-85,5}})));
+ Modelica.Blocks.Interfaces.RealInput wref "Reference rotor speed (pu)"
+ annotation (Placement(transformation(extent={{-180,-30},{-160,-10}}),
+ iconTransformation(extent={{-140,-80},{-100,-40}})));
+ Modelica.Blocks.Math.Feedback w_feedback annotation (Placement(transformation(extent={{-152,6},{-140,-6}})));
+ equation
+ G = limiter3.y;
+ connect(division.y, square.u[1]) annotation (Line(
+ points={{120.6,0},{122,0},{122,2},{124,2},{124,2.1}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(division.y, square.u[2]) annotation (Line(
+ points={{120.6,0},{122,0},{122,-2},{124,-2},{124,-2.1}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(square.y, product1.u1) annotation (Line(
+ points={{137.02,0},{140,0},{140,12},{200,12},{200,3.6},{202.8,3.6}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(square.y, multiSum3.u[1]) annotation (Line(
+ points={{137.02,0},{144,0},{144,2.1}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(one.y, multiSum3.u[2]) annotation (Line(
+ points={{136.6,-20},{140,-20},{140,-2.1},{144,-2.1}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(integrator3.y, division.u1) annotation (Line(
+ points={{196.6,0},{200,0},{200,-30},{102,-30},{102,3.6},{106.8,3.6}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(limiter3.y, division.u2) annotation (Line(
+ points={{96.6,0},{100,0},{100,-3.6},{106.8,-3.6}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(add1.y, p_feedback.u1) annotation (Line(
+ points={{-4.5,0},{0,0},{0,20},{-75.2,20}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(Proportional.y, add1.u2) annotation (Line(
+ points={{-33.4,-20},{-20,-20},{-20,-3},{-16,-3}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(integrator4.y, add1.u1) annotation (Line(
+ points={{-23.4,0},{-20,0},{-20,3},{-16,3}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(gain8.y, add3.u2) annotation (Line(
+ points={{-86.6,-20},{-99,-20},{-99,-3},{-96,-3}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(add3.y, integrator5.u) annotation (Line(
+ points={{-84.5,0},{-77.2,0}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(add1.y, add2.u1) annotation (Line(points={{-4.5,0},{0,0},{0,3.6},{2.8,3.6}}, color={0,0,127}));
+ connect(pref, p_feedback.u2) annotation (Line(points={{-170,30},{-80,30},{-80,24.8}}, color={0,0,127}));
+ connect(wref, w_feedback.u1) annotation (Line(points={{-170,-20},{-154,-20},{-154,0},{-150.8,0}}, color={0,0,127}));
+ connect(w, w_feedback.u2) annotation (Line(points={{-170,0},{-156,0},{-156,10},{-146,10},{-146,4.8}}, color={0,0,127}));
+ connect(gain6.y, multiSum6.u[1]) annotation (Line(points={{-116.6,20},{-140,20},{-140,2.1},{-136,2.1}}, color={0,0,127}));
+ connect(w_feedback.y, multiSum6.u[2]) annotation (Line(points={{-140.6,0},{-136,0},{-136,-2.1}}, color={0,0,127}));
+ connect(multiSum6.y, gain9.u) annotation (Line(points={{-122.98,0},{-117.2,0}}, color={0,0,127}));
+ connect(gain9.y, add3.u1) annotation (Line(points={{-103.4,0},{-100,0},{-100,3},{-96,3}}, color={0,0,127}));
+ connect(gain6.u, p_feedback.y) annotation (Line(points={{-102.8,20},{-85.4,20}}, color={0,0,127}));
+ connect(integrator5.y, gain8.u) annotation (Line(points={{-63.4,0},{-60,0},{-60,-20},{-72.8,-20}}, color={0,0,127}));
+ connect(integrator5.y, Proportional.u) annotation (Line(points={{-63.4,0},{-60,0},{-60,-20},{-47.2,-20}}, color={0,0,127}));
+ connect(integrator5.y, Integral.u) annotation (Line(points={{-63.4,0},{-57.2,0}}, color={0,0,127}));
+ connect(Integral.y, integrator4.u) annotation (Line(points={{-43.4,0},{-37.2,0}}, color={0,0,127}));
+ connect(limiter3.y, add2.u2) annotation (Line(points={{96.6,0},{100,0},{100,-20},{0,-20},{0,-3.6},{2.8,-3.6}}, color={0,0,127}));
+ connect(gain.y, limiter2.u) annotation (Line(points={{36.6,0},{42.8,0}}, color={0,0,127}));
+ connect(limiter2.y, integrator.u) annotation (Line(points={{56.6,0},{62.8,0}}, color={0,0,127}));
+ connect(integrator.y, limiter3.u) annotation (Line(points={{76.6,0},{82.8,0}}, color={0,0,127}));
+ connect(add2.y, gain.u) annotation (Line(points={{16.6,0},{22.8,0}}, color={0,0,127}));
+ connect(gain7.y, integrator3.u) annotation (Line(points={{176.6,0},{182.8,0}}, color={0,0,127}));
+ connect(multiSum3.y, gain7.u) annotation (Line(points={{157.02,0},{162.8,0}}, color={0,0,127}));
+ connect(integrator3.y, product1.u2) annotation (Line(points={{196.6,0},{200,0},{200,-4},{202,-4},{202,-3.6},{202.8,-3.6}}, color={0,0,127}));
+ connect(product1.y, Pm) annotation (Line(points={{216.6,0},{226,0}}, color={0,0,127}));
+ annotation (
+ Icon(coordinateSystem(extent={{-100,-100},{100,100}},preserveAspectRatio=
+ false), graphics={Rectangle(extent={{-100,100},{100,-100}}, lineColor={0,0,0}),
+ Text(
+ extent={{-60,0},{62,-82}},
+ lineColor={0,0,255},
+ textString="TGTypeV"),Text(
+ origin={-80,0},
+ extent={{-20,-10},{20,10}},
+ textString="w",
+ lineColor={0,0,0}),
+ Text(
+ origin={80,0},
+ extent={{-20,-10},{20,10}},
+ lineColor={0,0,0},
+ textString="pm"), Text(
+ origin={-80,62},
+ extent={{-20,-10},{20,10}},
+ lineColor={0,0,0},
+ textString="pref"),Text(
+ origin={-80,-60},
+ extent={{-20,10},{20,-10}},
+ lineColor={0,0,0},
+ textString="wref"),
+ Text(
+ extent={{-60,80},{60,20}},
+ lineColor={0,0,0},
+ textString="%name")}),
+ Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-160,-40},{220,40}})),
+ Documentation(info="
+
+
+Reference |
+Hydro Turbine (Linear model) and Governor (Standard model) - control scheme Type 5, PSAT Manual |
+
+
+Last update |
+2015-10-02 |
+
+
+Author |
+Tetiana Bogodorova, SmarTS Lab, KTH Royal Institute of Technology |
+
+
+Contact |
+luigiv@kth.se |
+
+
+"));
+ end TGTypeV;
+
+ model TGTypeVI
+ "Hydro Turbine (Nonlinear model) and Governor (PID controller combined with servomotor)- control scheme Type 6"
+ parameter Real gmax "Maximum gate opening (pu)";
+ parameter Real gmin "Minimum gate opening (pu)";
+ parameter Real vmax "Maximum gate opening rate (pu)";
+ parameter Real vmin "Minimum gate opening rate (pu)";
+ parameter Real Ta "Pilot valve time constant (s)";
+ parameter Real Tw "Water starting time (s)";
+ parameter Real beta "Transient speed droop (p.u./p.u.)";
+ parameter Real Kp "Proportional droop (p.u./p.u.)";
+ parameter Real Ki "Integral droop (p.u./p.u.)";
+ parameter Real Kd "Derivative droop (p.u./p.u.)";
+ parameter Real Td "Derivative droop time constant (s)";
+ parameter Real Rp "Permanent droop (p.u./p.u.)";
+ parameter Real Ka;
+ parameter Real dref;
+ parameter Real po;
+ Real G "Gate opening (pu)";
+ Modelica.Blocks.Continuous.Integrator integrator(initType=Modelica.Blocks.Types.Init.NoInit,
+ y_start=po*(gmax - gmin))
+ annotation (Placement(transformation(extent={{-8,14},{4,26}})));
+ Modelica.Blocks.Sources.Constant one(k=1) annotation (Placement(transformation(
+ extent={{6,6},{-6,-6}},
+ rotation=180,
+ origin={110,0})));
+ Modelica.Blocks.Math.Feedback feedback
+ annotation (Placement(transformation(extent={{-176,-36},{-164,-24}})));
+ Modelica.Blocks.Continuous.Integrator integrator3(initType=Modelica.Blocks.Types.Init.NoInit,
+ y_start=po) annotation (Placement(transformation(
+ extent={{6,6},{-6,-6}},
+ rotation=180,
+ origin={170,20})));
+ Modelica.Blocks.Math.MultiSum multiSum3(nu=2, k={1,-1})
+ annotation (Placement(transformation(extent={{104,14},{116,26}})));
+ Modelica.Blocks.Interfaces.RealOutput Pm "Mechanical power (pu)" annotation (
+ Placement(transformation(extent={{200,10},{220,30}}),iconTransformation(
+ extent={{100,-10},{120,10}})));
+ Modelica.Blocks.Math.Gain gain9(k=Kp)
+ annotation (Placement(transformation(extent={{-116,34},{-104,46}})));
+ Modelica.Blocks.Math.MultiSum multiSum5( k={1,1,1}, nu=3)
+ annotation (Placement(transformation(extent={{-76,14},{-64,26}})));
+ Modelica.Blocks.Math.Feedback feedback1
+ annotation (Placement(transformation(extent={{-146,14},{-134,26}})));
+ Modelica.Blocks.Math.Gain gain6(k=Rp) annotation (Placement(transformation(
+ extent={{-6,-6},{6,6}},
+ rotation=90,
+ origin={-140,0})));
+ Modelica.Blocks.Math.Feedback w_fb annotation (Placement(transformation(
+ extent={{-6,-6},{6,6}},
+ rotation=0,
+ origin={-160,20})));
+ Modelica.Blocks.Continuous.Integrator integrator5(initType=Modelica.Blocks.Types.Init.NoInit,
+ y_start=po*(gmax - gmin))
+ annotation (Placement(transformation(extent={{-96,14},{-84,26}})));
+ Modelica.Blocks.Math.Gain Proportional(k=beta)
+ annotation (Placement(transformation(extent={{64,44},{76,56}})));
+ Modelica.Blocks.Math.Gain gain8(k=Ki) annotation (Placement(transformation(
+ extent={{-6,-6},{6,6}},
+ rotation=0,
+ origin={-110,20})));
+ Modelica.Blocks.Nonlinear.Limiter limiter(uMax=vmax, uMin=vmin)
+ annotation (Placement(transformation(extent={{-26,14},{-14,26}})));
+ Modelica.Blocks.Nonlinear.Limiter limiter1(uMax=gmax, uMin=gmin)
+ annotation (Placement(transformation(extent={{10,14},{22,26}})));
+ Modelica.Blocks.Math.Division division
+ annotation (Placement(transformation(extent={{64,14},{76,26}})));
+ Modelica.Blocks.Math.Product product1
+ annotation (Placement(transformation(extent={{184,14},{196,26}})));
+ Modelica.Blocks.Math.MultiProduct square(nu=2) annotation (Placement(transformation(extent={{84,14},{96,26}})));
+ Modelica.Blocks.Interfaces.RealInput pe "Active power (pu)" annotation (
+ Placement(transformation(extent={{-200,-40},{-180,-20}}),
+ iconTransformation(extent={{-140,-50},{-100,-10}})));
+ Modelica.Blocks.Continuous.Derivative derivative(k=Kd, T=Td)
+ annotation (Placement(transformation(extent={{-106,-6},{-94,6}})));
+ Modelica.Blocks.Continuous.TransferFunction transferFunction(a={Ta,1}, b={Ka})
+ annotation (Placement(transformation(extent={{-44,14},{-32,26}})));
+ Modelica.Blocks.Math.Feedback servo_fb
+ annotation (Placement(transformation(extent={{-60,14},{-48,26}})));
+ Modelica.Blocks.Math.Gain Gain10(k=1/(gmax - gmin))
+ annotation (Placement(transformation(extent={{42,14},{54,26}})));
+ Modelica.Blocks.Math.MultiSum multiSum4(nu=2, k={-1,1}) annotation (Placement(
+ transformation(
+ extent={{6,6},{-6,-6}},
+ rotation=180,
+ origin={130,20})));
+ Modelica.Blocks.Math.Gain gain7(k=1/Tw) annotation (Placement(transformation(
+ extent={{6,6},{-6,-6}},
+ rotation=180,
+ origin={150,20})));
+ Modelica.Blocks.Logical.Switch switch1 annotation (Placement(transformation(
+ extent={{-4,4},{4,-4}},
+ rotation=90,
+ origin={-140,-16})));
+ Modelica.Blocks.Math.RealToBoolean realToBoolean(threshold=0.5) annotation (
+ Placement(transformation(
+ extent={{-6,-6},{6,6}},
+ rotation=180,
+ origin={-130,-40})));
+ Modelica.Blocks.Sources.Constant const(k=dref) annotation (Placement(
+ transformation(
+ extent={{-6,-6},{6,6}},
+ rotation=180,
+ origin={-110,-40})));
+ Modelica.Blocks.Interfaces.RealInput pref "Active power reference (pu)"
+ annotation (Placement(transformation(extent={{-200,-60},{-180,-40}}),
+ iconTransformation(extent={{-140,-100},{-100,-60}})));
+ Modelica.Blocks.Interfaces.RealInput wref "Rotor speed reference (pu)"
+ annotation (Placement(transformation(extent={{-200,10},{-180,30}}),
+ iconTransformation(extent={{-140,100},{-100,60}})));
+ Modelica.Blocks.Interfaces.RealInput we "Rotor speed (pu)" annotation (
+ Placement(transformation(extent={{-200,-10},{-180,10}}),
+ iconTransformation(
+ extent={{-140,10},{-100,50}})));
+ equation
+ G = Gain10.y;
+ connect(division.y, square.u[1]) annotation (Line(
+ points={{76.6,20},{80,20},{80,22},{84,22},{84,22.1}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(division.y, square.u[2]) annotation (Line(
+ points={{76.6,20},{80,20},{80,18},{84,18},{84,17.9}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(square.y, multiSum3.u[1]) annotation (Line(
+ points={{97.02,20},{104,20},{104,22.1}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(product1.y, Pm) annotation (Line(
+ points={{196.6,20},{210,20}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(gain8.y, integrator5.u) annotation (Line(
+ points={{-103.4,20},{-97.2,20}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(feedback1.y, gain9.u) annotation (Line(
+ points={{-134.6,20},{-129,20},{-129,40},{-117.2,40}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(feedback1.y, gain8.u) annotation (Line(
+ points={{-134.6,20},{-117.2,20}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(feedback1.y, derivative.u) annotation (Line(
+ points={{-134.6,20},{-129,20},{-129,0},{-107.2,0}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(limiter1.y, Gain10.u) annotation (Line(
+ points={{22.6,20},{40.8,20}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(Proportional.y, multiSum3.u[2]) annotation (Line(
+ points={{76.6,50},{100,50},{100,22},{104,22},{104,17.9}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(multiSum3.y, multiSum4.u[1]) annotation (Line(
+ points={{117.02,20},{124,20},{124,22.1}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(one.y, multiSum4.u[2]) annotation (Line(
+ points={{116.6,0},{120,0},{120,18},{124,18},{124,17.9}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(multiSum4.y, gain7.u) annotation (Line(
+ points={{137.02,20},{142.8,20}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(gain7.y, integrator3.u) annotation (Line(
+ points={{156.6,20},{162.8,20}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(multiSum3.y, product1.u1) annotation (Line(
+ points={{117.02,20},{120.09,20},{120.09,34},{180,34},{180,23.6},{182.8,23.6}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(switch1.y, gain6.u) annotation (Line(
+ points={{-140,-11.6},{-140,-7.2}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(limiter1.y, switch1.u1) annotation (Line(
+ points={{22.6,20},{30,20},{30,-26},{-136.8,-26},{-136.8,-20.8}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(w_fb.y, Proportional.u) annotation (Line(
+ points={{-154.6,20},{-150,20},{-150,50},{62.8,50}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(integrator3.y, division.u1) annotation (Line(points={{176.6,20},{180,20},{180,-10},{60,-10},{60,23.6},{62.8,23.6}},
+ color={0,0,127}));
+ connect(limiter1.y, servo_fb.u2) annotation (Line(points={{22.6,20},{30,20},{30,6},{-54,6},{-54,15.2}},
+ color={0,0,127}));
+ connect(we, w_fb.u2) annotation (Line(points={{-190,0},{-160,0},{-160,15.2}}, color={0,0,127}));
+ connect(wref, w_fb.u1) annotation (Line(points={{-190,20},{-164.8,20}}, color={0,0,127}));
+ connect(feedback.y, switch1.u3) annotation (Line(points={{-164.6,-30},{-143.2,-30},{-143.2,-20.8}}, color={0,0,127}));
+ connect(pe, feedback.u1) annotation (Line(points={{-190,-30},{-174.8,-30}}, color={0,0,127}));
+ connect(pref, feedback.u2) annotation (Line(points={{-190,-50},{-170,-50},{-170,-34.8}}, color={0,0,127}));
+ connect(switch1.u2, realToBoolean.y) annotation (Line(points={{-140,-20.8},{-140,-40},{-136.6,-40}}, color={255,0,255}));
+ connect(realToBoolean.u, const.y) annotation (Line(points={{-122.8,-40},{-116.6,-40}}, color={0,0,127}));
+ connect(feedback1.u2, gain6.y) annotation (Line(points={{-140,15.2},{-140,6.6}}, color={0,0,127}));
+ connect(w_fb.y, feedback1.u1) annotation (Line(points={{-154.6,20},{-144.8,20}}, color={0,0,127}));
+ connect(gain9.y, multiSum5.u[1]) annotation (Line(points={{-103.4,40},{-80,40},{-80,22},{-76,22},{-76,22.8}}, color={0,0,127}));
+ connect(integrator5.y, multiSum5.u[2]) annotation (Line(points={{-83.4,20},{-80,20},{-80,20},{-76,20}}, color={0,0,127}));
+ connect(derivative.y, multiSum5.u[3]) annotation (Line(points={{-93.4,0},{-80,0},{-80,18},{-76,18},{-76,17.2}}, color={0,0,127}));
+ connect(multiSum5.y, servo_fb.u1) annotation (Line(points={{-62.98,20},{-58.8,20}}, color={0,0,127}));
+ connect(servo_fb.y, transferFunction.u) annotation (Line(points={{-48.6,20},{-45.2,20}}, color={0,0,127}));
+ connect(transferFunction.y, limiter.u) annotation (Line(points={{-31.4,20},{-27.2,20}}, color={0,0,127}));
+ connect(limiter.y, integrator.u) annotation (Line(points={{-13.4,20},{-9.2,20}}, color={0,0,127}));
+ connect(integrator.y, limiter1.u) annotation (Line(points={{4.6,20},{8.8,20}}, color={0,0,127}));
+ connect(Gain10.y, division.u2) annotation (Line(points={{54.6,20},{58,20},{58,16.4},{62.8,16.4}}, color={0,0,127}));
+ connect(integrator3.y, product1.u2) annotation (Line(points={{176.6,20},{180,20},{180,16.4},{182.8,16.4}}, color={0,0,127}));
+ annotation (
+ Icon(coordinateSystem(extent={{-100,-100},{100,100}},preserveAspectRatio=
+ false), graphics={Rectangle(extent={{-100,100},{100,-100}}, lineColor={0,0,0}),
+ Text(
+ extent={{-60,-20},{60,-80}},
+ lineColor={0,0,255},
+ textString="TGTypeVI"),Text(
+ extent={{-100,90},{-60,70}},
+ lineColor={0,0,0},
+ textString="wref"),Text(
+ extent={{-100,40},{-60,20}},
+ lineColor={0,0,0},
+ textString="we"),Text(
+ extent={{-100,-20},{-60,-40}},
+ lineColor={0,0,0},
+ textString="pe"), Text(
+ extent={{-100,-70},{-60,-90}},
+ lineColor={0,0,0},
+ textString="pref"),Text(
+ extent={{60,10},{100,-10}},
+ lineColor={0,0,0},
+ textString="pm"),
+ Text(
+ extent={{-60,80},{60,20}},
+ lineColor={0,0,0},
+ textString="%name")}),
+ Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-180,-60},{200,60}})),
+ Documentation(info="
+
+
+Reference |
+Hydro Turbine (Linear model) and Governor (Standard model) - control scheme Type 6, PSAT Manual |
+
+
+Last update |
+2015-10-02 |
+
+
+Author |
+Tetiana Bogodorova, SmarTS Lab, KTH Royal Institute of Technology |
+
+
+Contact |
+luigiv@kth.se |
+
+
+"));
+ end TGTypeVI;
+ annotation (Documentation(info="
+"));
+ end TG;
+
+ package AVR
+ model AVRTypeI "PSAT AVR Type 1"
+
+ Modelica.Blocks.Interfaces.RealInput v "Generator termminal voltage (pu)"
+ annotation (Placement(transformation(extent={{-140,-80},{-100,-40}}),
+ iconTransformation(extent={{-140,-80},{-100,-40}})));
+ Modelica.Blocks.Interfaces.RealOutput vf "Filed voltage (pu)" annotation (
+ Placement(transformation(
+ extent={{-10,-10},{10,10}},
+ rotation=0,
+ origin={110,0}), iconTransformation(extent={{100,-20},{140,20}})));
+ Modelica.Blocks.Interfaces.RealInput vref
+ "Reference generator terminal voltage (pu)" annotation (Placement(
+ transformation(extent={{-140,40},{-100,80}}), iconTransformation(extent=
+ {{-140,40},{-100,80}})));
+ parameter Real vrmax=7.57 "Maximum regulator voltage (pu)";
+ parameter Real vrmin=0 "Minimum regulator voltage (pu)";
+ parameter Real K0=7.04 "Regulator gain, (pu/pu)";
+ parameter Real T1=6.67 "First pole (s)";
+ parameter Real T2=1 "First zero (s)";
+ parameter Real T3=1 "Second pole (s";
+ parameter Real T4=1 "Second pole (s)";
+ parameter Real Te=0.4 "Field circuit time constant (s)";
+ parameter Real Tr=0.05 "Measurement time constant (s)";
+ parameter Real Ae=0.0006 "1st ceiling coefficient";
+ parameter Real Be=0.9 "2nd ceiling coefficient";
+ parameter Real v0=1 "Initialization (pu)";
+ protected
+ parameter Real vf00(fixed=false) "Initialization";
+ parameter Real vr0=vf00 - Ae*Modelica.Math.exp(Be*abs(vf00)) "Initialization";
+ public
+ Modelica.Blocks.Interfaces.RealOutput vref0 "Voltage reference at t=0 (pu)"
+ annotation (Placement(transformation(
+ extent={{-10,-10},{10,10}},
+ rotation=90,
+ origin={0,110}), iconTransformation(
+ extent={{-20,-20},{20,20}},
+ rotation=90,
+ origin={0,120})));
+ Modelica.Blocks.Interfaces.RealInput vf0
+ "Reference generator terminal voltage (pu)" annotation (Placement(
+ transformation(
+ extent={{-20,-20},{20,20}},
+ rotation=90,
+ origin={0,-112}), iconTransformation(
+ extent={{-20,-20},{20,20}},
+ rotation=90,
+ origin={0,-120})));
+ Modelica.Blocks.Math.Feedback feedback
+ annotation (Placement(transformation(extent={{26,10},{46,-10}})));
+ Modelica.Blocks.Continuous.FirstOrder firstOrder(
+ y_start=vf00,
+ initType=Modelica.Blocks.Types.Init.InitialOutput,
+ k=1,
+ T=Te) annotation (Placement(transformation(extent={{52,-10},{72,10}})));
+ NonElectrical.Nonlinear.CeilingBlock ceilingBlock
+ annotation (Placement(transformation(extent={{70,30},{50,50}})));
+ Modelica.Blocks.Continuous.FirstOrder firstOrder2(
+ k=1,
+ T=Tr,
+ initType=Modelica.Blocks.Types.Init.InitialOutput,
+ y_start=v0)
+ annotation (Placement(transformation(extent={{-90,-70},{-70,-50}})));
+ Modelica.Blocks.Math.Feedback feedback2
+ annotation (Placement(transformation(extent={{-70,-10},{-50,10}})));
+ Modelica.Blocks.Continuous.TransferFunction transferFunction(
+ b={(K0*T2*T4),K0*(T2 + T4),K0},
+ a={(T1*T3),(T1 + T3),1},
+ initType=Modelica.Blocks.Types.Init.InitialOutput,
+ y_start=vr0)
+ annotation (Placement(transformation(extent={{-40,-10},{-20,10}})));
+ Modelica.Blocks.Nonlinear.Limiter limiter(uMax=vrmax, uMin=vrmin)
+ annotation (Placement(transformation(extent={{-8,-10},{12,10}})));
+ initial algorithm
+ vf00 := vf0;
+ algorithm
+ vref0 := v0 + (vr0/K0);
+
+ equation
+ connect(firstOrder.y, vf)
+ annotation (Line(points={{73,0},{88,0},{110,0}}, color={0,0,127}));
+ connect(ceilingBlock.u, vf) annotation (Line(points={{72,40},{80,40},{80,0},{
+ 110,0}}, color={0,0,127}));
+ connect(ceilingBlock.y, feedback.u2)
+ annotation (Line(points={{49,40},{36,40},{36,8}}, color={0,0,127}));
+ connect(v, firstOrder2.u) annotation (Line(points={{-120,-60},{-106,-60},{-92,
+ -60}}, color={0,0,127}));
+ connect(feedback2.u2, firstOrder2.y) annotation (Line(points={{-60,-8},{-60,-8},
+ {-60,-60},{-69,-60}}, color={0,0,127}));
+ connect(feedback2.u1, vref) annotation (Line(points={{-68,0},{-80,0},{-80,60},
+ {-120,60}}, color={0,0,127}));
+ connect(feedback.y, firstOrder.u)
+ annotation (Line(points={{45,0},{47.5,0},{50,0}}, color={0,0,127}));
+ connect(feedback2.y, transferFunction.u)
+ annotation (Line(points={{-51,0},{-46.5,0},{-42,0}}, color={0,0,127}));
+ connect(transferFunction.y, limiter.u)
+ annotation (Line(points={{-19,0},{-14.5,0},{-10,0}}, color={0,0,127}));
+ connect(limiter.y, feedback.u1)
+ annotation (Line(points={{13,0},{28,0}}, color={0,0,127}));
+ annotation (
+ Diagram(coordinateSystem(
+ extent={{-100,-100},{100,100}},
+ initialScale=0.1,
+ preserveAspectRatio=false)),
+ Icon(coordinateSystem(
+ extent={{-100,-100},{100,100}},
+ initialScale=0.1,
+ preserveAspectRatio=false), graphics={Rectangle(
+ extent={{-100,100},{100,-100}},
+ lineColor={0,0,255},
+ fillColor={255,255,255},
+ fillPattern=FillPattern.Solid),Text(
+ extent={{-90,80},{-50,40}},
+ lineColor={0,0,255},
+ textString="vref"),Text(
+ extent={{-100,-40},{-60,-70}},
+ lineColor={0,0,255},
+ textString="v"),Text(
+ extent={{60,20},{100,-20}},
+ lineColor={0,0,255},
+ textString="vf"),Text(
+ extent={{-40,40},{40,-40}},
+ lineColor={0,0,255},
+ textString="AVR1"),Text(
+ extent={{16,-60},{56,-100}},
+ lineColor={0,0,255},
+ textString="vf0
+"), Text( extent={{2,102},{42,62}},
+ lineColor={0,0,255},
+ textString="vref0")}),
+ Documentation(info="
+
+
+Reference |
+AVR Type II, PSAT Manual 2.1.8 |
+
+
+Last update |
+September 2015 |
+
+
+Author |
+Joan Russinol, SmarTS Lab, KTH Royal Institute of Technology |
+
+
+Contact |
+luigiv@kth.se |
+
+
+"));
+ end AVRTypeI;
+
+ model AVRTypeII "PSAT AVR Type 2"
+
+ Modelica.Blocks.Interfaces.RealInput v "Generator termminal voltage (pu)"
+ annotation (Placement(transformation(extent={{-140,-80},{-100,-40}}),
+ iconTransformation(extent={{-140,-80},{-100,-40}})));
+ Modelica.Blocks.Interfaces.RealOutput vf "Filed voltage (pu)" annotation (
+ Placement(transformation(
+ extent={{-10,-10},{10,10}},
+ rotation=0,
+ origin={110,0}), iconTransformation(extent={{100,-20},{140,20}})));
+ Modelica.Blocks.Interfaces.RealInput vref
+ "Reference generator terminal voltage (pu)" annotation (Placement(
+ transformation(extent={{-140,40},{-100,80}}), iconTransformation(extent=
+ {{-140,40},{-100,80}})));
+ parameter Modelica.SIunits.PerUnit vrmin=-5 "Minimum regulator voltage (pu)";
+ parameter Modelica.SIunits.PerUnit vrmax=5 "Maximum regulator voltage (pu)";
+ parameter Real Ka=100 "Amplifier gain (pu/pu)";
+ parameter Modelica.SIunits.Time Ta=0.5 "Amplifier time constant (s)";
+ parameter Real Kf=0.15 "Stabilizer gain (pu/pu)";
+ parameter Modelica.SIunits.Time Tf=0.1 "Stabilizer time constant (s)";
+ parameter Real Ke=0 "Field circuit integral deviation (pu/pu)";
+ parameter Modelica.SIunits.Time Te=0.2 "Field circuit time constant (s)";
+ parameter Modelica.SIunits.Time Tr=0.001 "Measurement time constant (s)";
+ parameter Real Ae=0.0006 "1st ceiling coefficient";
+ parameter Real Be=0.9 "2nd ceiling coefficient";
+ parameter Modelica.SIunits.PerUnit v0=1 "Initial measured voltage";
+ protected
+ parameter Modelica.SIunits.PerUnit vfstate=vr10 - (Ae*Modelica.Math.exp(Be*
+ abs(vf00))*vf00);
+ parameter Modelica.SIunits.PerUnit vf00(fixed=false) "Initialization of vf";
+ parameter Modelica.SIunits.PerUnit vr10=Ke*vf00 + Ae*Modelica.Math.exp(Be*abs(
+ vf00))*vf00 "Initialization";
+ parameter Modelica.SIunits.PerUnit vr20=-vf00*Kf/Tf "Initialization";
+ public
+ Modelica.Blocks.Interfaces.RealOutput vref0 "Voltage reference at t=0 (pu)"
+ annotation (Placement(transformation(
+ extent={{-10,-10},{10,10}},
+ rotation=90,
+ origin={0,110}), iconTransformation(
+ extent={{-20,-20},{20,20}},
+ rotation=90,
+ origin={0,120})));
+ Modelica.Blocks.Interfaces.RealInput vf0
+ "Reference generator terminal voltage (pu)" annotation (Placement(
+ transformation(
+ extent={{-20,-20},{20,20}},
+ rotation=90,
+ origin={0,-112}), iconTransformation(
+ extent={{-20,-20},{20,20}},
+ rotation=90,
+ origin={0,-120})));
+ Modelica.Blocks.Math.Feedback feedback
+ annotation (Placement(transformation(extent={{30,10},{50,-10}})));
+ Modelica.Blocks.Continuous.TransferFunction ExcitationSystem(
+ y_start=vf00,
+ a={Te,Ke},
+ x_start={vfstate},
+ initType=Modelica.Blocks.Types.Init.InitialOutput)
+ annotation (Placement(transformation(extent={{52,-10},{72,10}})));
+ NonElectrical.Nonlinear.CeilingBlock ceilingBlock(Ae=Ae, Be=Be)
+ annotation (Placement(transformation(extent={{72,30},{52,50}})));
+ Modelica.Blocks.Continuous.Derivative derivativeBlock(
+ y_start=0,
+ initType=Modelica.Blocks.Types.Init.SteadyState,
+ T=Tf,
+ x_start=vf00,
+ k=Kf) annotation (Placement(transformation(extent={{72,-50},{52,-30}})));
+ Modelica.Blocks.Math.Feedback feedback1
+ annotation (Placement(transformation(extent={{-50,-10},{-30,10}})));
+ Modelica.Blocks.Continuous.FirstOrder firstOrder2(
+ k=1,
+ T=Tr,
+ y_start=v0,
+ initType=Modelica.Blocks.Types.Init.SteadyState) annotation (Placement(
+ transformation(
+ extent={{-10,-10},{10,10}},
+ rotation=90,
+ origin={-60,-34})));
+ Modelica.Blocks.Math.Feedback Verr
+ annotation (Placement(transformation(extent={{-70,-10},{-50,10}})));
+ NonElectrical.Continuous.SimpleLagLim simpleLagLim(
+ outMax=vrmax,
+ outMin=vrmin,
+ K=Ka,
+ T=Ta,
+ y_start=vr10)
+ annotation (Placement(transformation(extent={{-10,-10},{10,10}})));
+ initial algorithm
+ vf00 := vf0;
+ algorithm
+ vref0 := v0 + vr10/Ka;
+
+ equation
+ connect(ExcitationSystem.y, vf)
+ annotation (Line(points={{73,0},{88,0},{110,0}}, color={0,0,127}));
+ connect(ceilingBlock.y, feedback.u2)
+ annotation (Line(points={{51,40},{40,40},{40,8}}, color={0,0,127}));
+ connect(v, firstOrder2.u) annotation (Line(points={{-120,-60},{-60,-60},{-60,
+ -46}}, color={0,0,127}));
+ connect(Verr.u2, firstOrder2.y)
+ annotation (Line(points={{-60,-8},{-60,-23}}, color={0,0,127}));
+ connect(Verr.y, feedback1.u1)
+ annotation (Line(points={{-51,0},{-48,0}}, color={0,0,127}));
+ connect(Verr.u1, vref) annotation (Line(points={{-68,0},{-80,0},{-80,60},{-120,
+ 60}}, color={0,0,127}));
+ connect(feedback.y, ExcitationSystem.u)
+ annotation (Line(points={{49,0},{49,0},{50,0}}, color={0,0,127}));
+ connect(ceilingBlock.u, vf) annotation (Line(points={{74,40},{80,40},{80,0},{
+ 110,0}}, color={0,0,127}));
+ connect(derivativeBlock.u, vf) annotation (Line(points={{74,-40},{86,-40},{86,
+ 0},{110,0}}, color={0,0,127}));
+ connect(feedback1.u2, derivativeBlock.y) annotation (Line(points={{-40,-8},{-40,
+ -8},{-40,-40},{51,-40}}, color={0,0,127}));
+ connect(feedback1.y, simpleLagLim.u)
+ annotation (Line(points={{-31,0},{-12,0}}, color={0,0,127}));
+ connect(simpleLagLim.y, feedback.u1)
+ annotation (Line(points={{11,0},{11,0},{32,0}}, color={0,0,127}));
+ annotation (
+ Diagram(coordinateSystem(
+ extent={{-100,-100},{100,100}},
+ initialScale=0.1,
+ preserveAspectRatio=false), graphics={Text(
+ extent={{32,-28},{46,-36}},
+ lineColor={28,108,200},
+ textString="vr2"),Text(
+ extent={{-2,0},{-8,12}},
+ lineColor={28,108,200},
+ textString="vr1"),Text(
+ extent={{-72,-14},{-64,-20}},
+ lineColor={28,108,200},
+ textString="Vm"),Text(
+ extent={{24,12},{30,2}},
+ lineColor={28,108,200},
+ textString="vr")}),
+ Icon(coordinateSystem(
+ extent={{-100,-100},{100,100}},
+ initialScale=0.1,
+ preserveAspectRatio=false), graphics={Rectangle(
+ extent={{-100,100},{100,-100}},
+ lineColor={0,0,255},
+ fillColor={255,255,255},
+ fillPattern=FillPattern.Solid),Text(
+ extent={{-90,80},{-50,40}},
+ lineColor={0,0,255},
+ textString="vref"),Text(
+ extent={{-100,-40},{-60,-70}},
+ lineColor={0,0,255},
+ textString="v"),Text(
+ extent={{60,20},{100,-20}},
+ lineColor={0,0,255},
+ textString="vf"),Text(
+ extent={{-40,40},{40,-40}},
+ lineColor={0,0,255},
+ textString="AVR2"),Text(
+ extent={{16,-60},{56,-100}},
+ lineColor={0,0,255},
+ textString="vf0
+"), Text( extent={{2,102},{42,62}},
+ lineColor={0,0,255},
+ textString="vref0")}),
+ Documentation(info="
+
+
+Reference |
+AVR Type II, PSAT Manual 2.1.8 |
+
+
+Last update |
+September 2015 |
+
+
+Author |
+Joan Russinol, SmarTS Lab, KTH Royal Institute of Technology |
+
+
+Contact |
+luigiv@kth.se |
+
+
+"));
+ end AVRTypeII;
+
+ model AVRtypeIII
+ parameter Real vfmax=5;
+ parameter Real vfmin=-5;
+ parameter Real K0=20 "regulator gain";
+ parameter Real T2=0.1 "regulator pole";
+ parameter Real T1=0.45 "Regulator zero";
+ parameter Real Te=0.1 "Field circuit time constant";
+ parameter Real Tr=0.0015 "Measurement time constant";
+ Real vm;
+ Real vr;
+ Real vf1;
+ Modelica.Blocks.Nonlinear.Limiter limiter1(uMax=vfmax, uMin=vfmin)
+ annotation (Placement(visible=true, transformation(
+ origin={5,0},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ Modelica.Blocks.Interfaces.RealInput v(start=1) annotation (Placement(
+ visible=true,
+ transformation(
+ origin={-119.972,50},
+ extent={{-20.0,-20.0},{20.0,20.0}},
+ rotation=0),
+ iconTransformation(
+ origin={-110,60},
+ extent={{-10,-10},{10,10}},
+ rotation=0)));
+ Modelica.Blocks.Interfaces.RealOutput vf annotation (Placement(
+ visible=true,
+ transformation(
+ origin={130,0},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0),
+ iconTransformation(
+ origin={130,0},
+ extent={{-10,-10},{10,10}},
+ rotation=0)));
+ Modelica.Blocks.Interfaces.RealInput vs annotation (Placement(transformation(
+ extent={{-140,-82},{-100,-42}}), iconTransformation(extent={{-120,-70},
+ {-100,-50}})));
+ Modelica.Blocks.Interfaces.RealInput vf0(start=1) annotation (Placement(
+ visible=true,
+ transformation(
+ origin={0.028,120},
+ extent={{-20.0,-20.0},{20.0,20.0}},
+ rotation=-90),
+ iconTransformation(
+ origin={0,110},
+ extent={{-10,-10},{10,10}},
+ rotation=-90)));
+ protected
+ parameter Real vref(fixed=false);
+ parameter Real s0(fixed=false);
+ initial equation
+ vref = v;
+ s0 = vs;
+ vf1 = vf0;
+ vm = v;
+ vr = K0*(1 - T1/T2)*(vref + vs - vm);
+ equation
+ der(vm) = (v - vm)/Tr;
+ der(vr) = (K0*(1 - T1/T2)*(vref + vs - vm) - vr)/T2;
+ der(vf1) = ((vr + K0*(T1/T2)*(vref + vs - vm) + vf0)*(1 + s0*(v/vm - 1)) -
+ vf1)/Te;
+ limiter1.u = vf1;
+ limiter1.y = vf;
+ annotation (
+ Icon(coordinateSystem(preserveAspectRatio=false, extent={{-120,-120},{120,
+ 120}}), graphics={Rectangle(
+ extent={{-120,120},{120,-120}},
+ lineColor={0,0,255},
+ fillColor={255,255,255},
+ fillPattern=FillPattern.Solid),Text(
+ extent={{-104,72},{-72,50}},
+ lineColor={0,0,255},
+ textString="v"),Text(
+ extent={{-100,-48},{-68,-70}},
+ lineColor={0,0,255},
+ textString="vs"),Text(
+ extent={{88,10},{120,-12}},
+ lineColor={0,0,255},
+ textString="vf"),Text(
+ extent={{-34,36},{42,-24}},
+ lineColor={0,0,255},
+ textString="AVRTypeIII"),Text(
+ extent={{-16,100},{16,78}},
+ lineColor={0,0,255},
+ textString="vf0")}),
+ Documentation(info="
+
+
+Reference |
+AVR Type III, PSAT Manual 2.1.8 |
+
+
+Last update |
+September 2015 |
+
+
+Author |
+Joan Russinol, SmarTS Lab, KTH Royal Institute of Technology |
+
+
+Contact |
+luigiv@kth.se |
+
+
+"), Diagram(coordinateSystem(extent={{-120,-120},{120,120}})));
+ end AVRtypeIII;
+ annotation (Documentation);
+ end AVR;
+
+ package OEL
+ model OEL "PSATs Over-Excitation Limiter"
+ outer OpenIPSL.Electrical.SystemBase SysData;
+ Modelica.Blocks.Interfaces.RealInput v "Generator terminal voltage (pu)"
+ annotation (Placement(transformation(extent={{-112,50},{-92,70}}),
+ iconTransformation(extent={{-104,48},{-80,72}})));
+ Modelica.Blocks.Interfaces.RealInput p "Active power (pu)" annotation (
+ Placement(transformation(extent={{-112,-10},{-92,10}}),
+ iconTransformation(extent={{-104,8},{-80,32}})));
+ Modelica.Blocks.Interfaces.RealInput q "Reactive power (pu)" annotation (
+ Placement(transformation(extent={{-112,-70},{-92,-50}}),
+ iconTransformation(extent={{-104,-32},{-80,-8}})));
+ FieldCurrent field_current(xd=Z_MBtoSB*xd, xq=Z_MBtoSB*xq)
+ annotation (Placement(transformation(extent={{-40,-32},{-20,-8}})));
+ Modelica.Blocks.Interfaces.RealOutput v_ref annotation (Placement(
+ transformation(extent={{94,-10},{114,10}}), iconTransformation(extent={
+ {92,-12},{116,12}})));
+ parameter Modelica.SIunits.Time T0=10 "Integrator time constant (s)";
+ parameter Modelica.SIunits.PerUnit xd
+ "d-axis estimated generator reactance (pu, machine base)";
+ parameter Modelica.SIunits.PerUnit xq
+ "q-axis estimated generator reactance (pu, machine base)";
+ parameter Modelica.SIunits.PerUnit if_lim
+ "Maximum field current (pu, system base)";
+ parameter Modelica.SIunits.PerUnit vOEL_max
+ "Maximum output signal (pu, machine base)";
+ parameter OpenIPSL.Types.ApparentPowerMega Sn=SysData.S_b
+ "Power rating (MVA)"
+ annotation (Dialog(group="Machine parameters"));
+ parameter OpenIPSL.Types.VoltageKilo Vn=V_b "Voltage rating (kV)"
+ annotation (Dialog(group="Machine parameters"));
+ parameter OpenIPSL.Types.VoltageKilo V_b=400
+ "Base voltage of the bus (kV)";
+ protected
+ parameter Real Z_MBtoSB=(SysData.S_b*Vn^2)/(Sn*V_b^2)
+ "Z(machine base) -> Z(system base)";
+ parameter Real I_MBtoSB=(Sn*V_b)/(SysData.S_b*Vn)
+ "I(machine base) -> I(system base)";
+ public
+ Modelica.Blocks.Math.Feedback add
+ annotation (Placement(transformation(extent={{-10,-30},{10,-10}})));
+ Modelica.Blocks.Sources.Constant currentLimit(k=if_lim) annotation (Placement(
+ transformation(
+ extent={{-10,-10},{10,10}},
+ rotation=90,
+ origin={0,-60})));
+ Modelica.Blocks.Continuous.LimIntegrator limIntegrator(
+ k=1/T0,
+ outMax=vOEL_max,
+ outMin=0,
+ strict=true)
+ annotation (Placement(transformation(extent={{22,-30},{42,-10}})));
+ Modelica.Blocks.Interfaces.RealInput v_ref0 "Generator terminal voltage (pu)"
+ annotation (Placement(transformation(
+ extent={{-10,-10},{10,10}},
+ rotation=-90,
+ origin={0,110}), iconTransformation(
+ extent={{-12,-12},{12,12}},
+ rotation=-90,
+ origin={-2,112})));
+ Modelica.Blocks.Math.Feedback difference annotation (Placement(transformation(
+ extent={{-10,-10},{10,10}},
+ rotation=0,
+ origin={80,0})));
+ equation
+ connect(field_current.ifield, add.u1)
+ annotation (Line(points={{-19,-20},{-19,-20},{-8,-20}}, color={0,0,127}));
+ connect(currentLimit.y, add.u2) annotation (Line(points={{8.88178e-016,-49},{
+ 8.88178e-016,-38},{8.88178e-016,-28},{0,-28}}, color={0,0,127}));
+ connect(v_ref, difference.y)
+ annotation (Line(points={{104,0},{89,0}}, color={0,0,127}));
+ connect(field_current.v, v) annotation (Line(points={{-40,-12.8},{-60,-12.8},
+ {-60,60},{-102,60}},color={0,0,127}));
+ connect(limIntegrator.y, difference.u2) annotation (Line(points={{43,-20},{44,
+ -20},{80,-20},{80,-8}}, color={0,0,127}));
+ connect(difference.u1, v_ref0) annotation (Line(points={{72,0},{72,0},{40,0},
+ {40,60},{0,60},{0,110}},color={0,0,127}));
+ connect(p, field_current.p) annotation (Line(points={{-102,0},{-102,0},{-80,0},
+ {-80,-20},{-40,-20}}, color={0,0,127}));
+ connect(q, field_current.q) annotation (Line(points={{-102,-60},{-60,-60},{-60,
+ -27.2},{-40,-27.2}}, color={0,0,127}));
+ connect(add.y, limIntegrator.u)
+ annotation (Line(points={{9,-20},{9,-20},{20,-20}}, color={0,0,127}));
+ annotation (
+ Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{
+ 100,100}})),
+ Icon(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{100,
+ 100}}), graphics={Rectangle(extent={{-100,100},{100,-100}},
+ lineColor={0,0,255}),Text(
+ extent={{-88,82},{-50,46}},
+ lineColor={0,0,255},
+ fillPattern=FillPattern.Solid,
+ textString="v"),Text(
+ extent={{-84,42},{-50,8}},
+ lineColor={0,0,255},
+ fillPattern=FillPattern.Solid,
+ textString="p"),Text(
+ extent={{-82,-2},{-54,-36}},
+ lineColor={0,0,255},
+ fillPattern=FillPattern.Solid,
+ textString="q"),Text(
+ extent={{10,98},{46,66}},
+ lineColor={0,0,255},
+ fillPattern=FillPattern.Solid,
+ textString="vref0"),Text(
+ extent={{60,-4},{94,-38}},
+ lineColor={0,0,255},
+ fillPattern=FillPattern.Solid,
+ textString="v_ref"),Text(
+ extent={{-26,38},{36,-40}},
+ lineColor={0,0,255},
+ fillPattern=FillPattern.Solid,
+ textString="OXL")}),
+ Documentation(info="
+
+
+Reference |
+Over Excitation Limiter, PSAT manual |
+
+
+Last update |
+2015-10-02 |
+
+
+Author |
+Le Qi, SmarTS Lab, KTH Royal Institute of Technology |
+
+
+Contact |
+luigiv@kth.se |
+
+
+"));
+ end OEL;
+
+ model FieldCurrent
+ "Estimates the field current from P,Q,V and the d- and q-axis reactances"
+
+ Modelica.Blocks.Interfaces.RealInput v "generator terminal voltage (pu)"
+ annotation (Placement(transformation(extent={{-70,30},{-50,50}}),
+ iconTransformation(extent={{-116,43},{-84,77}})));
+ Modelica.Blocks.Interfaces.RealInput p "active power (pu)" annotation (
+ Placement(transformation(extent={{-70,-10},{-50,10}}), iconTransformation(
+ extent={{-117,-17},{-83,17}})));
+ Modelica.Blocks.Interfaces.RealInput q "reactive power (pu)" annotation (
+ Placement(transformation(extent={{-70,-50},{-50,-30}}),
+ iconTransformation(extent={{-117,-77},{-83,-43}})));
+ Modelica.Blocks.Interfaces.RealOutput ifield "estimated field current (pu)"
+ annotation (Placement(transformation(extent={{96,-10},{116,10}}),
+ iconTransformation(extent={{94,-17},{126,17}})));
+ parameter Real xd;
+ parameter Real xq;
+ protected
+ Real gamma_p;
+ Real gamma_q;
+ equation
+ gamma_p = xq*p/v;
+ gamma_q = xq*q/v;
+ ifield = sqrt((v + gamma_q)^2 + p^2) + ((xd/xq - 1)*(gamma_q*(v + gamma_q) +
+ gamma_p^2)/sqrt((v + gamma_q)^2 + p^2));
+
+ annotation (
+ Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{
+ 100,100}})),
+ Icon(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{100,
+ 100}}), graphics={Rectangle(extent={{-100,100},{100,-100}},
+ lineColor={0,0,255}),Text(
+ extent={{-90,80},{-58,60}},
+ lineColor={0,0,255},
+ fillPattern=FillPattern.Solid,
+ textString="v"),Text(
+ extent={{-90,-44},{-62,-60}},
+ lineColor={0,0,255},
+ fillPattern=FillPattern.Solid,
+ textString="p"),Text(
+ extent={{-88,16},{-60,0}},
+ lineColor={0,0,255},
+ fillPattern=FillPattern.Solid,
+ textString="q"),Text(
+ extent={{64,16},{92,0}},
+ lineColor={0,0,255},
+ fillPattern=FillPattern.Solid,
+ textString="if")}),
+ Documentation);
+ end FieldCurrent;
+ annotation (Documentation);
+ end OEL;
+
+ package PSS
+ model PSSTypeII "PSAT PSS TypeII"
+ parameter Real vsmax "Max stabilizer output signal (pu)";
+ parameter Real vsmin "Min stabilizer output signal (pu)";
+ parameter Real Kw "Stabilizer gain (pu/pu)";
+ parameter Real Tw "Wash-out time constant (s)";
+ parameter Real T1 "First stabilizer time constant (s)";
+ parameter Real T2 "Second stabilizer time constant (s)";
+ parameter Real T3 "Third stabilizer time constant (s)";
+ parameter Real T4 "Fourth stabilizer time constant (s)";
+ Modelica.Blocks.Interfaces.RealInput vSI "PSS input signal "
+ annotation (Placement(transformation(extent={{-130,-20},{-90,20}})));
+ Modelica.Blocks.Interfaces.RealOutput vs "PSS output signal"
+ annotation (Placement(transformation(extent={{100,-10},{120,10}})));
+ NonElectrical.Continuous.LeadLag imLeadLag(
+ K=1,
+ T1=T1,
+ T2=T2,
+ y_start=0)
+ annotation (Placement(transformation(extent={{-10,-10},{10,10}})));
+ NonElectrical.Continuous.LeadLag imLeadLag1(
+ K=1,
+ T1=T3,
+ T2=T4,
+ y_start=0) annotation (Placement(transformation(extent={{28,-10},{48,10}})));
+ Modelica.Blocks.Nonlinear.Limiter limiter(uMax=vsmax, uMin=vsmin)
+ annotation (Placement(transformation(extent={{60,-10},{80,10}})));
+ NonElectrical.Continuous.DerivativeLag derivativeLag(
+ K=Kw*Tw,
+ T=Tw,
+ y_start=0,
+ x_start=0)
+ annotation (Placement(transformation(extent={{-60,-10},{-40,10}})));
+ equation
+ connect(vs, limiter.y)
+ annotation (Line(points={{110,0},{96,0},{81,0}}, color={0,0,127}));
+ connect(imLeadLag1.y, limiter.u)
+ annotation (Line(points={{49,0},{53.5,0},{58,0}}, color={0,0,127}));
+ connect(imLeadLag.y, imLeadLag1.u)
+ annotation (Line(points={{11,0},{26,0}}, color={0,0,127}));
+ connect(vSI, derivativeLag.u)
+ annotation (Line(points={{-110,0},{-62,0},{-62,0}}, color={0,0,127}));
+ connect(derivativeLag.y, imLeadLag.u)
+ annotation (Line(points={{-39,0},{-12,0},{-12,0}}, color={0,0,127}));
+ annotation (Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,
+ -100},{100,100}})), Documentation(info="
+
+
+Reference |
+PSS Type II, PSAT manual |
+
+
+Last update |
+2015-08-24 |
+
+
+Author |
+Tin Rabuzin, SmarTS Lab, KTH Royal Institute of Technology |
+
+
+Contact |
+luigiv@kth.se |
+
+
+"));
+ end PSSTypeII;
+ annotation (Documentation(info="
+"));
+ end PSS;
+ annotation (Documentation);
+ end PSAT;
+
+ package Simulink
+ package OEL
+ model OEL "OverExcitation Limiter"
+ parameter Real ifd_lim "OEL parameter";
+ parameter Real r "OEL parameter";
+ parameter Real f "OEL parameter";
+ parameter Real L1 "OEL parameter";
+ parameter Real init_OEL_Timer=L1 "Initial output value";
+ Modelica.Blocks.Sources.Constant ifd_lim_value(k=ifd_lim)
+ "Limitation of filed current"
+ annotation (Placement(transformation(extent={{-98,-28},{-80,-10}})));
+ OpenIPSL.NonElectrical.Nonlinear.SaturationBlockTan block_1_1(r=r, f=f)
+ annotation (Placement(transformation(extent={{-42,-16},{18,38}})));
+ Modelica.Blocks.Continuous.LimIntegrator Timer(
+ k=1,
+ y_start=init_OEL_Timer,
+ outMax=10000.0,
+ outMin=L1,
+ initType=Modelica.Blocks.Types.Init.InitialOutput)
+ annotation (Placement(transformation(extent={{10,8},{24,22}})));
+ Modelica.Blocks.Math.Gain imGain(k=-1)
+ annotation (Placement(transformation(extent={{10,28},{22,40}})));
+ Modelica.Blocks.Interfaces.RealInput ifd "Field current" annotation (
+ Placement(transformation(extent={{-94,-4},{-76,16}}), iconTransformation(
+ extent={{-94,-4},{-76,16}})));
+ Modelica.Blocks.Interfaces.RealInput VolContinput "Voltage control input"
+ annotation (Placement(transformation(extent={{-94,-48},{-76,-28}}),
+ iconTransformation(extent={{-94,-48},{-76,-28}})));
+ Modelica.Blocks.Interfaces.RealOutput OEL_output annotation (Placement(
+ transformation(extent={{74,-30},{94,-10}}), iconTransformation(extent={
+ {74,-30},{94,-10}})));
+ Modelica.Blocks.Math.Add add(k2=-1)
+ annotation (Placement(transformation(extent={{-60,0},{-40,20}})));
+ Modelica.Blocks.Math.Min min
+ annotation (Placement(transformation(extent={{68,6},{78,16}})));
+ NonElectrical.Logical.Relay relay
+ annotation (Placement(transformation(extent={{40,8},{52,20}})));
+ equation
+ connect(ifd_lim_value.y, add.u2) annotation (Line(points={{-79.1,-19},{-68,-19},
+ {-68,4},{-62,4}}, color={0,0,127}));
+ connect(ifd, add.u1) annotation (Line(points={{-85,6},{-72,6},{-72,16},{-62,
+ 16}}, color={0,0,127}));
+ connect(add.y, block_1_1.p1) annotation (Line(points={{-39,10},{-36,10},{-36,
+ 11},{-47,11}}, color={0,0,127}));
+ connect(imGain.u, block_1_1.p1) annotation (Line(points={{8.8,34},{-36,34},{-36,
+ 11},{-47,11}}, color={0,0,127}));
+ connect(block_1_1.n1, Timer.u) annotation (Line(points={{21,11},{5.5,11},{5.5,
+ 15},{8.6,15}}, color={0,0,127}));
+ connect(min.y, OEL_output)
+ annotation (Line(points={{78.5,11},{84,11},{84,-20}}, color={0,0,127}));
+ connect(VolContinput, min.u2) annotation (Line(points={{-85,-38},{-12,-38},{
+ 60,-38},{60,8},{67,8}}, color={0,0,127}));
+ connect(relay.y, min.u1)
+ annotation (Line(points={{53.2,14},{67,14},{67,14}}, color={0,0,127}));
+ connect(Timer.y, relay.u1) annotation (Line(points={{24.7,15},{30,15},{30,
+ 18.5},{38.5,18.5}}, color={0,0,127}));
+ connect(imGain.y, relay.u2) annotation (Line(points={{22.6,34},{32,34},{32,14},
+ {38.5,14}}, color={0,0,127}));
+ connect(relay.u3, min.u2) annotation (Line(points={{38.5,9.5},{32,9.5},{32,-38},
+ {60,-38},{60,8},{67,8}}, color={0,0,127}));
+ annotation (
+ Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{
+ 100,100}})),
+ Icon(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{100,
+ 100}}), graphics={Rectangle(extent={{-74,26},{74,-62}}, lineColor={
+ 0,0,127}),Text(
+ extent={{-84,6},{-36,-14}},
+ lineColor={0,0,255},
+ fillPattern=FillPattern.Solid,
+ textString="ifd"),Text(
+ extent={{-86,-38},{-40,-54}},
+ lineColor={0,0,255},
+ fillPattern=FillPattern.Solid,
+ textString="V"),Text(
+ extent={{-52,6},{58,-42}},
+ lineColor={0,0,255},
+ fillPattern=FillPattern.Solid,
+ textString="OEL")}),
+ Documentation(info="
+
+
+Reference |
+Over Excitation Limiter |
+
+
+Last update |
+2015-10-02 |
+
+
+Author |
+Le Qi, SmarTS Lab, KTH Royal Institute of Technology |
+
+
+Contact |
+luigiv@kth.se |
+
+
+"));
+ end OEL;
+ annotation (Documentation);
+ end OEL;
+
+ package PSS
+ model PSS "Power system stabilizer"
+ parameter Real Kp "Washout gain";
+ parameter Real Tw "Washout time constant";
+ parameter Real T1 "Lead-lag filter time constant";
+ parameter Real T2 "Lead-lag filter time constant";
+ parameter Real C "PSS output limiation";
+ parameter Real init_PSS_Leadlag1=0 "initial output value";
+ parameter Real init_PSS_Leadlag2=0 "initial output value";
+ Modelica.Blocks.Interfaces.RealInput omega "Speed" annotation (Placement(
+ transformation(extent={{-106,12},{-94,24}}), iconTransformation(extent=
+ {{-100,8},{-88,20}})));
+ OpenIPSL.NonElectrical.Continuous.LeadLag Leadlag1(
+ K=1,
+ T1=T1,
+ T2=T2,
+ y_start=init_PSS_Leadlag1) annotation (Placement(transformation(
+ extent={{-22,4},{-4,22}})));
+ OpenIPSL.NonElectrical.Continuous.LeadLag Leadlag2(
+ K=1,
+ T1=T1,
+ T2=T2,
+ y_start=init_PSS_Leadlag2)
+ annotation (Placement(transformation(extent={{4,4},{22,22}})));
+ Modelica.Blocks.Interfaces.RealOutput Upss "PSS output" annotation (Placement(
+ transformation(extent={{56,6},{68,18}}), iconTransformation(extent={{56,
+ 6},{68,18}})));
+ Modelica.Blocks.Nonlinear.Limiter limit(uMin=-C, uMax=C)
+ annotation (Placement(transformation(extent={{30,4},{48,22}})));
+ Modelica.Blocks.Math.Gain imGain(k=Kp/Tw)
+ annotation (Placement(transformation(extent={{-90,12},{-78,24}})));
+ OpenIPSL.NonElectrical.Continuous.SimpleLag imSimpleLag(
+ K=1,
+ T=Tw,
+ y_start=0) annotation (Placement(transformation(extent={{-68,10},
+ {-52,26}})));
+ Modelica.Blocks.Math.Add add(k1=-1)
+ annotation (Placement(transformation(extent={{-46,4},{-28,22}})));
+ equation
+ connect(limit.y, Upss) annotation (Line(points={{48.9,13},{51.45,13},{51.45,
+ 12},{62,12}}, color={0,0,127}));
+ connect(Leadlag2.y, limit.u)
+ annotation (Line(points={{22.9,13},{22.9,13},{28.2,13}}, color={0,0,127}));
+ connect(Leadlag1.y, Leadlag2.u)
+ annotation (Line(points={{-3.1,13},{-3.1,13},{2.2,13}}, color={0,0,127}));
+ connect(add.y, Leadlag1.u) annotation (Line(points={{-27.1,13},{-25.55,13},{-23.8,
+ 13}}, color={0,0,127}));
+ connect(omega, imGain.u)
+ annotation (Line(points={{-100,18},{-96,18},{-91.2,18}}, color={0,0,127}));
+ connect(imSimpleLag.y, add.u1) annotation (Line(points={{-51.2,18},{-47.8,18},
+ {-47.8,18.4}}, color={0,0,127}));
+ connect(imGain.y, imSimpleLag.u) annotation (Line(points={{-77.4,18},{-69.6,
+ 18},{-69.6,18}}, color={0,0,127}));
+ connect(add.u2, imSimpleLag.u) annotation (Line(points={{-47.8,7.6},{-74,7.6},
+ {-74,18},{-69.6,18}}, color={0,0,127}));
+ annotation (
+ Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{
+ 100,100}})),
+ Icon(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{100,
+ 100}}), graphics={Rectangle(extent={{-88,44},{56,-18}}, lineColor={
+ 0,0,255}),Text(
+ extent={{-44,28},{22,-2}},
+ lineColor={0,0,255},
+ textString="PSS"),Text(
+ extent={{-86,24},{-62,4}},
+ lineColor={0,0,255},
+ textString="omega"),Text(
+ extent={{34,20},{54,0}},
+ lineColor={0,0,255},
+ textString="Upss")}),
+ Documentation);
+ end PSS;
+ annotation (Documentation);
+ end PSS;
+
+ package ES
+ model ExcitationSystem
+ "This ES is composed by the OEL and PSS and exitation part"
+ parameter Real V0=1 "Reference value of terminal voltage";
+ parameter Real L2=4 "Exciter parameter";
+ parameter Real G=70 "Exciter parameter";
+ parameter Real Ta=10 "Exciter parameter";
+ parameter Real Tb=20 "Exciter parameter";
+ parameter Real vfd0 "Initial Filed voltage";
+ parameter Real r "OEL parameter";
+ parameter Real f "OEL parameter";
+ parameter Real L1 "OEL parameter";
+ parameter Real ifd_lim "OEL parameter";
+ parameter Real Kp "Washout gain";
+ parameter Real Tw "Washout time constant";
+ parameter Real T1 "Lead-lag filter time constant";
+ parameter Real T2 "Lead-lag filter time constant";
+ parameter Real C "PSS output limiation";
+ OpenIPSL.Electrical.Controls.Simulink.OEL.OEL oEL(
+ init_OEL_Timer=0,
+ ifd_lim=ifd_lim,
+ r=r,
+ f=f,
+ L1=L1) annotation (Placement(transformation(extent={{-28,40},{
+ 20,76}})));
+ Modelica.Blocks.Sources.Constant V_0(k=V0) "Reference terminal voltage "
+ annotation (Placement(transformation(extent={{-88,34},{-70,52}})));
+ Modelica.Blocks.Interfaces.RealInput ifd "Field current"
+ annotation (Placement(transformation(extent={{-96,62},{-84,74}})));
+ Modelica.Blocks.Interfaces.RealInput V "Terminal voltage "
+ annotation (Placement(transformation(extent={{-96,22},{-84,34}})));
+ Modelica.Blocks.Interfaces.RealInput omega "Speed"
+ annotation (Placement(transformation(extent={{-96,-10},{-84,2}})));
+ Modelica.Blocks.Interfaces.RealOutput vfd "Field voltage"
+ annotation (Placement(transformation(extent={{128,22},{140,34}})));
+ Modelica.Blocks.Math.Gain Ka(k=10)
+ annotation (Placement(transformation(extent={{88,48},{100,60}})));
+ Modelica.Blocks.Continuous.LimIntegrator imLimitedIntegrator(
+ outMin=0,
+ outMax=L2,
+ k=1,
+ y_start=vfd0,
+ initType=Modelica.Blocks.Types.Init.InitialOutput)
+ annotation (Placement(transformation(extent={{108,46},{124,62}})));
+ OpenIPSL.NonElectrical.Continuous.LeadLag tgr(
+ K=G,
+ T1=Ta,
+ T2=Tb,
+ y_start=vfd0) "Transient gain rudection" annotation (Placement(
+ transformation(extent={{36,44},{56,64}})));
+ OpenIPSL.Electrical.Controls.Simulink.PSS.PSS pSS(
+ Kp=Kp,
+ Tw=Tw,
+ T1=T1,
+ T2=T2,
+ C=C) annotation (Placement(transformation(extent={{-78,-28},{-44,
+ 14}})));
+ Modelica.Blocks.Math.Feedback feedback
+ annotation (Placement(transformation(extent={{62,44},{82,64}})));
+ Modelica.Blocks.Math.Add3 add3_1(k2=-1)
+ annotation (Placement(transformation(extent={{-46,18},{-26,38}})));
+ equation
+ connect(oEL.ifd, ifd) annotation (Line(
+ points={{-24.4,59.08},{-77.44,59.08},{-77.44,68},{-90,68}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(omega, pSS.omega) annotation (Line(
+ points={{-90,-4},{-84,-4},{-84,-4.06},{-76.98,-4.06}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(imLimitedIntegrator.y, vfd)
+ annotation (Line(points={{124.8,54},{134,54},{134,28}}, color={0,0,127}));
+ connect(Ka.y, imLimitedIntegrator.u) annotation (Line(points={{100.6,54},{
+ 106.4,54},{106.4,54}}, color={0,0,127}));
+ connect(oEL.OEL_output, tgr.u) annotation (Line(points={{16.16,54.4},{25.08,
+ 54.4},{25.08,54},{34,54}}, color={0,0,127}));
+ connect(feedback.y, Ka.u)
+ annotation (Line(points={{81,54},{86.8,54},{86.8,54}}, color={0,0,127}));
+ connect(tgr.y, feedback.u1)
+ annotation (Line(points={{57,54},{64,54},{64,54}}, color={0,0,127}));
+ connect(feedback.u2, vfd) annotation (Line(points={{72,46},{72,40},{134,40},{
+ 134,28}}, color={0,0,127}));
+ connect(V, add3_1.u2)
+ annotation (Line(points={{-90,28},{-74,28},{-48,28}}, color={0,0,127}));
+ connect(V_0.y, add3_1.u1)
+ annotation (Line(points={{-69.1,43},{-48,43},{-48,36}}, color={0,0,127}));
+ connect(pSS.Upss, add3_1.u3) annotation (Line(points={{-50.46,-4.48},{-48,-4.48},
+ {-48,20}}, color={0,0,127}));
+ connect(add3_1.y, oEL.VolContinput) annotation (Line(points={{-25,28},{-18,28},
+ {-18,42},{-24.4,42},{-24.4,51.16}}, color={0,0,127}));
+ annotation (
+ Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{
+ 140,100}})),
+ Icon(coordinateSystem(extent={{-100,-100},{140,100}}, preserveAspectRatio=
+ false), graphics={Rectangle(extent={{-84,78},{128,-20}}, lineColor=
+ {0,0,255}),Text(
+ extent={{-80,72},{-62,60}},
+ lineColor={0,0,255},
+ textString="ifd"),Text(
+ extent={{-80,34},{-62,22}},
+ lineColor={0,0,255},
+ textString="V "),Text(
+ extent={{-78,2},{-54,-12}},
+ lineColor={0,0,255},
+ textString="omega"),Text(
+ extent={{106,36},{130,22}},
+ lineColor={0,0,255},
+ textString="vfd"),Text(
+ extent={{-34,58},{88,0}},
+ lineColor={0,0,255},
+ textString="Exciter AVR OEL PSS")}),
+ Documentation);
+ end ExcitationSystem;
+
+ model ExcitationSystemKp0 "Excitation system without PSS included"
+ parameter Real V0=1 "Reference value of terminal voltage";
+ parameter Real L2=4 "Exciter parameter";
+ parameter Real G=70 "Exciter parameter";
+ parameter Real Ta=10 "Exciter parameter";
+ parameter Real Tb=20 "Exciter parameter";
+ parameter Real vfd0 "Initial Filed voltage";
+ parameter Real r "OEL parameter";
+ parameter Real f "OEL parameter";
+ parameter Real L1 "OEL parameter";
+ parameter Real ifd_lim "OEL parameter";
+ OpenIPSL.Electrical.Controls.Simulink.OEL.OEL oEL(
+ init_OEL_Timer=0,
+ ifd_lim=ifd_lim,
+ r=r,
+ f=f,
+ L1=L1) annotation (Placement(transformation(extent={{-28,40},{
+ 20,76}})));
+ Modelica.Blocks.Sources.Constant V_0(k=V0) "Reference terminal voltage "
+ annotation (Placement(transformation(extent={{-88,34},{-70,52}})));
+ Modelica.Blocks.Interfaces.RealInput ifd "Field current"
+ annotation (Placement(transformation(extent={{-96,62},{-84,74}})));
+ Modelica.Blocks.Interfaces.RealInput V "Terminal voltage "
+ annotation (Placement(transformation(extent={{-96,22},{-84,34}})));
+ Modelica.Blocks.Interfaces.RealOutput vfd "Field voltage"
+ annotation (Placement(transformation(extent={{128,22},{140,34}})));
+ Modelica.Blocks.Math.Gain Ka(k=10)
+ annotation (Placement(transformation(extent={{92,48},{104,60}})));
+ Modelica.Blocks.Continuous.LimIntegrator imLimitedIntegrator(
+ outMin=0,
+ outMax=L2,
+ k=1,
+ y_start=vfd0,
+ initType=Modelica.Blocks.Types.Init.InitialOutput)
+ annotation (Placement(transformation(extent={{110,46},{126,62}})));
+ OpenIPSL.NonElectrical.Continuous.LeadLag tgr(
+ K=G,
+ T1=Ta,
+ T2=Tb,
+ y_start=vfd0) "Transient gain rudection" annotation (Placement(
+ transformation(extent={{32,44},{52,64}})));
+ Modelica.Blocks.Math.Feedback feedback
+ annotation (Placement(transformation(extent={{62,44},{82,64}})));
+ Modelica.Blocks.Math.Add add(k2=-1)
+ annotation (Placement(transformation(extent={{-58,26},{-38,46}})));
+ equation
+ connect(oEL.ifd, ifd) annotation (Line(
+ points={{-24.4,59.08},{-77.44,59.08},{-77.44,68},{-90,68}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(imLimitedIntegrator.y, vfd)
+ annotation (Line(points={{126.8,54},{134,54},{134,28}}, color={0,0,127}));
+ connect(imLimitedIntegrator.u, Ka.y) annotation (Line(points={{108.4,54},{106,
+ 54},{104.6,54}}, color={0,0,127}));
+ connect(oEL.OEL_output, tgr.u) annotation (Line(points={{16.16,54.4},{23.08,
+ 54.4},{23.08,54},{30,54}}, color={0,0,127}));
+ connect(feedback.y, Ka.u)
+ annotation (Line(points={{81,54},{90.8,54},{90.8,54}}, color={0,0,127}));
+ connect(feedback.u2, vfd) annotation (Line(points={{72,46},{72,40},{134,40},{
+ 134,28}}, color={0,0,127}));
+ connect(tgr.y, feedback.u1)
+ annotation (Line(points={{53,54},{58.5,54},{64,54}}, color={0,0,127}));
+ connect(V_0.y, add.u1) annotation (Line(points={{-69.1,43},{-64.55,43},{-64.55,
+ 42},{-60,42}}, color={0,0,127}));
+ connect(V, add.u2) annotation (Line(points={{-90,28},{-76,28},{-76,30},{-60,
+ 30}}, color={0,0,127}));
+ connect(add.y, oEL.VolContinput) annotation (Line(points={{-37,36},{-34,36},{
+ -34,40},{-34,51.16},{-24.4,51.16}}, color={0,0,127}));
+ annotation (
+ Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{
+ 140,100}})),
+ Icon(coordinateSystem(extent={{-100,-100},{140,100}}, preserveAspectRatio=
+ false), graphics={Rectangle(extent={{-84,78},{128,-20}}, lineColor=
+ {0,0,255}),Text(
+ extent={{-80,72},{-62,60}},
+ lineColor={0,0,255},
+ textString="ifd"),Text(
+ extent={{-80,34},{-62,22}},
+ lineColor={0,0,255},
+ textString="V "),Text(
+ extent={{106,36},{130,22}},
+ lineColor={0,0,255},
+ textString="vfd"),Text(
+ extent={{-34,58},{88,0}},
+ lineColor={0,0,255},
+ textString="Exciter AVR OEL PSS")}),
+ Documentation);
+ end ExcitationSystemKp0;
+ annotation (Documentation);
+ end ES;
+
+ package TG
+ model TurbineTm "Hydraulic turbine model. Mechanical torque as output"
+ Modelica.Blocks.Interfaces.RealInput z "Gate openning" annotation (Placement(
+ transformation(extent={{-95,2},{-88,10}}), iconTransformation(extent={{
+ -92,20},{-78,34}})));
+ Modelica.Blocks.Sources.Constant Hs(k=1)
+ annotation (Placement(transformation(extent={{-74,-12},{-58,4}})));
+ Modelica.Blocks.Math.Gain Tw(k=1/1) "Water time constant"
+ annotation (Placement(transformation(extent={{0,-8},{20,12}})));
+ Modelica.Blocks.Continuous.Integrator imIntegrator(
+ k=1,
+ y_start=init_Turbine_V1,
+ initType=Modelica.Blocks.Types.Init.InitialOutput)
+ annotation (Placement(transformation(extent={{28,-6},{44,10}})));
+ Modelica.Blocks.Interfaces.RealInput Omega "Rotor speed in p.u" annotation (
+ Placement(transformation(extent={{-96,-26},{-90,-18}}),
+ iconTransformation(extent={{-92,-22},{-78,-8}})));
+ Modelica.Blocks.Interfaces.RealOutput Tm "Mechanical Torque Tm as output"
+ annotation (Placement(transformation(extent={{106,-2},{112,6}}),
+ iconTransformation(extent={{30,-4},{46,14}})));
+ parameter Real init_Turbine_V1;
+ Modelica.Blocks.Math.Product product
+ annotation (Placement(transformation(extent={{52,-6},{68,10}})));
+ Modelica.Blocks.Math.Division division
+ annotation (Placement(transformation(extent={{84,-6},{100,10}})));
+ Modelica.Blocks.Math.Add add(k1=-1)
+ annotation (Placement(transformation(extent={{-28,-8},{-8,12}})));
+ Modelica.Blocks.Math.Division division1
+ annotation (Placement(transformation(extent={{-78,14},{-64,28}})));
+ Modelica.Blocks.Math.Product product1
+ annotation (Placement(transformation(extent={{-52,14},{-38,28}})));
+ equation
+ connect(Tw.y, imIntegrator.u)
+ annotation (Line(points={{21,2},{21,2},{26.4,2}}, color={0,0,127}));
+ connect(imIntegrator.y, product.u2) annotation (Line(points={{44.8,2},{48,2},
+ {48,-2.8},{50.4,-2.8}}, color={0,0,127}));
+ connect(division.y, Tm)
+ annotation (Line(points={{100.8,2},{109,2}}, color={0,0,127}));
+ connect(product.y, division.u1) annotation (Line(points={{68.8,2},{76,2},{76,
+ 6.8},{82.4,6.8}}, color={0,0,127}));
+ connect(division.u2, Omega) annotation (Line(points={{82.4,-2.8},{76,-2.8},{
+ 76,-22},{-93,-22}}, color={0,0,127}));
+ connect(add.y, Tw.u)
+ annotation (Line(points={{-7,2},{-5.55,2},{-2,2}}, color={0,0,127}));
+ connect(Hs.y, add.u2) annotation (Line(points={{-57.2,-4},{-57.2,-4},{-30,-4}},
+ color={0,0,127}));
+ connect(product1.y, add.u1) annotation (Line(points={{-37.3,21},{-34,21},{-34,
+ 8},{-30,8}}, color={0,0,127}));
+ connect(division1.y, product1.u1) annotation (Line(points={{-63.3,21},{-58,21},
+ {-58,25.2},{-53.4,25.2}}, color={0,0,127}));
+ connect(product1.u2, product1.u1) annotation (Line(points={{-53.4,16.8},{-58,
+ 16.8},{-58,25.2},{-53.4,25.2}}, color={0,0,127}));
+ connect(division1.u1, imIntegrator.y) annotation (Line(points={{-79.4,25.2},{
+ -84,25.2},{-84,46},{44.8,46},{44.8,2}}, color={0,0,127}));
+ connect(z, division1.u2) annotation (Line(points={{-91.5,6},{-84,6},{-84,16.8},
+ {-79.4,16.8}}, color={0,0,127}));
+ connect(product.u1, add.u1) annotation (Line(points={{50.4,6.8},{46,6.8},{46,
+ 28},{-34,28},{-34,8},{-30,8}}, color={0,0,127}));
+ annotation (
+ Icon(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{100,
+ 100}}), graphics={Rectangle(extent={{-78,46},{32,-44}}, lineColor={
+ 0,0,255}),Text(
+ extent={{-78,32},{-64,20}},
+ lineColor={0,0,255},
+ textString="z"),Text(
+ extent={{-76,-8},{-56,-28}},
+ lineColor={0,0,255},
+ textString="omega"),Text(
+ extent={{18,14},{28,0}},
+ lineColor={0,0,255},
+ textString="Tm"),Text(
+ extent={{-52,18},{8,-20}},
+ lineColor={0,0,255},
+ textString="Hy turbine")}),
+ Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{
+ 100,100}}), graphics={Text(
+ extent={{-96,0},{-80,-2}},
+ lineColor={0,0,127},
+ textString="z (gate opening)"),Text(
+ extent={{-96,-28},{-80,-30}},
+ lineColor={0,0,127},
+ textString="w (rotor speed)"),Text(
+ extent={{102,10},{128,8}},
+ lineColor={0,0,127},
+ textString="Tm (mech. torque)"),Text(
+ extent={{52,14},{70,14}},
+ lineColor={0,0,127},
+ textString="Pm (mech. power)"),Text(
+ extent={{-8,-6},{22,-8}},
+ lineColor={0,0,127},
+ textString="1/Tw (water time constant)")}),
+ Documentation);
+ end TurbineTm;
+
+ model TurbinePm "Hydraulic turbine model. Mechanical Power Pm as output"
+ parameter Real p0 "Initialization, initial electrical power";
+ Modelica.Blocks.Interfaces.RealInput z "Gate openning" annotation (Placement(
+ transformation(extent={{-95,2},{-88,10}}), iconTransformation(extent={{
+ -92,-6},{-78,8}})));
+ Modelica.Blocks.Sources.Constant Hs(k=1) "set point"
+ annotation (Placement(transformation(extent={{-78,-14},{-58,6}})));
+ Modelica.Blocks.Math.Gain Tw(k=1) "Water constant"
+ annotation (Placement(transformation(extent={{-16,0},{0,16}})));
+ Modelica.Blocks.Continuous.Integrator imIntegrator(
+ k=1,
+ y_start=p0,
+ initType=Modelica.Blocks.Types.Init.InitialOutput)
+ annotation (Placement(transformation(extent={{12,0},{28,16}})));
+ Modelica.Blocks.Interfaces.RealOutput Pm "Mechanical power" annotation (
+ Placement(transformation(extent={{88,2},{94,10}}), iconTransformation(
+ extent={{32,-6},{48,12}})));
+ Modelica.Blocks.Math.Product product1
+ annotation (Placement(transformation(extent={{-54,26},{-40,40}})));
+ Modelica.Blocks.Math.Division division1
+ annotation (Placement(transformation(extent={{-80,26},{-66,40}})));
+ Modelica.Blocks.Math.Add add(k1=-1)
+ annotation (Placement(transformation(extent={{-46,-2},{-26,18}})));
+ Modelica.Blocks.Math.Product product
+ annotation (Placement(transformation(extent={{42,4},{58,20}})));
+ equation
+ connect(division1.y, product1.u1) annotation (Line(points={{-65.3,33},{-60,33},
+ {-60,37.2},{-55.4,37.2}}, color={0,0,127}));
+ connect(product1.u2, product1.u1) annotation (Line(points={{-55.4,28.8},{-60,
+ 28.8},{-60,37.2},{-55.4,37.2}}, color={0,0,127}));
+ connect(Tw.y, imIntegrator.u)
+ annotation (Line(points={{0.8,8},{6,8},{10.4,8}}, color={0,0,127}));
+ connect(add.y, Tw.u)
+ annotation (Line(points={{-25,8},{-17.6,8},{-17.6,8}}, color={0,0,127}));
+ connect(Hs.y, add.u2) annotation (Line(points={{-57,-4},{-54,-4},{-54,2},{-48,
+ 2}}, color={0,0,127}));
+ connect(imIntegrator.y, product.u2) annotation (Line(points={{28.8,8},{34,8},
+ {34,7.2},{40.4,7.2}}, color={0,0,127}));
+ connect(product.y, Pm) annotation (Line(points={{58.8,12},{74,12},{74,6},{91,
+ 6}}, color={0,0,127}));
+ connect(product.u1, product1.y) annotation (Line(points={{40.4,16.8},{34,16.8},
+ {34,33},{-39.3,33}}, color={0,0,127}));
+ connect(division1.u1, product.u2) annotation (Line(points={{-81.4,37.2},{-88,
+ 37.2},{-88,50},{32,50},{32,8},{34,8},{34,7.2},{40.4,7.2}}, color={0,0,
+ 127}));
+ connect(division1.u2, z) annotation (Line(points={{-81.4,28.8},{-84,28.8},{-84,
+ 6},{-91.5,6}}, color={0,0,127}));
+ connect(add.u1, product1.y) annotation (Line(points={{-48,14},{-56,14},{-56,
+ 24},{-34,24},{-34,33},{-39.3,33}}, color={0,0,127}));
+ annotation (
+ Icon(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{100,
+ 100}}), graphics={Rectangle(extent={{-78,46},{32,-44}}, lineColor={
+ 0,0,255}),Text(
+ extent={{-78,10},{-64,-2}},
+ lineColor={0,0,255},
+ textString="z"),Text(
+ extent={{20,10},{30,-4}},
+ lineColor={0,0,255},
+ textString="Pm"),Text(
+ extent={{-52,18},{8,-20}},
+ lineColor={0,0,255},
+ textString="Hy turbine")}),
+ Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{
+ 100,100}}), graphics={Text(
+ extent={{-28,40},{-12,38}},
+ lineColor={0,0,127},
+ textString="q (water flow)"),Text(
+ extent={{-28,28},{-14,26}},
+ lineColor={0,0,127},
+ textString="H (head)"),Text(
+ extent={{60,12},{78,12}},
+ lineColor={0,0,127},
+ textString="Pm (mech. power)"),Text(
+ extent={{-98,-4},{-82,4}},
+ lineColor={0,0,127},
+ textString="z (gate opening)")}),
+ Documentation);
+ end TurbinePm;
+
+ model Governor "Speed governor model for hydro turbines"
+ Modelica.Blocks.Interfaces.RealInput Omega "Rotor speed in p.u" annotation (
+ Placement(transformation(extent={{-96,26},{-86,38}}), iconTransformation(
+ extent={{-14,30},{-4,40}})));
+ Modelica.Blocks.Sources.Constant Omega_n(k=1) "Nominal rotor speed in p.u"
+ annotation (Placement(transformation(extent={{-94,6},{-82,18}})));
+ Modelica.Blocks.Math.Gain Gain1(k=2)
+ annotation (Placement(transformation(extent={{10,18},{24,32}})));
+ Modelica.Blocks.Math.Gain Gain2(k=0.4)
+ annotation (Placement(transformation(extent={{10,0},{24,14}})));
+ Modelica.Blocks.Continuous.Integrator Integrator(
+ k=1,
+ y_start=p0,
+ initType=Modelica.Blocks.Types.Init.InitialOutput)
+ annotation (Placement(transformation(extent={{30,0},{44,14}})));
+ Modelica.Blocks.Math.Gain Droop(k=D) "Permanent speed droop" annotation (
+ Placement(transformation(
+ extent={{5.5,-5.5},{-5.5,5.5}},
+ rotation=270,
+ origin={-53.5,6.5})));
+ Modelica.Blocks.Math.Gain Gain3(k=5)
+ annotation (Placement(transformation(extent={{92,10},{106,24}})));
+ Modelica.Blocks.Nonlinear.Limiter Limited(uMin=-0.1, uMax=0.1)
+ annotation (Placement(transformation(extent={{112,10},{126,24}})));
+ Modelica.Blocks.Continuous.LimIntegrator imLimitedIntegrator(
+ outMax=1,
+ k=1,
+ outMin=0,
+ y_start=p0,
+ initType=Modelica.Blocks.Types.Init.InitialOutput)
+ annotation (Placement(transformation(extent={{132,10},{146,24}})));
+ Modelica.Blocks.Interfaces.RealOutput z "Gate opening" annotation (Placement(
+ transformation(extent={{156,12},{166,22}}), iconTransformation(extent={
+ {148,12},{158,22}})));
+ parameter Real D "Permanent speed droop, g19=g20=0.08, all others=0.04";
+ parameter Real p0 "Initialization, initial electrical power";
+ Modelica.Blocks.Interfaces.RealInput Pm_set annotation (Placement(
+ transformation(
+ extent={{5,-6},{-5,6}},
+ rotation=180,
+ origin={-90,-17}), iconTransformation(
+ extent={{5,-6},{-5,6}},
+ rotation=180,
+ origin={-10,14})));
+ Modelica.Blocks.Interfaces.RealInput Pe annotation (Placement(transformation(
+ extent={{5,-6},{-5,6}},
+ rotation=180,
+ origin={-90,-33}), iconTransformation(
+ extent={{5,-6},{-5,6}},
+ rotation=180,
+ origin={-10,-8})));
+ OpenIPSL.NonElectrical.Continuous.SimpleLag SimpleLag1(
+ K=1,
+ T=2,
+ y_start=p0) annotation (Placement(transformation(extent={{-72,-40},
+ {-58,-26}})));
+ Modelica.Blocks.Math.Feedback feedback
+ annotation (Placement(transformation(extent={{68,6},{88,26}})));
+ Modelica.Blocks.Math.Add add(k2=-1) annotation (Placement(transformation(
+ extent={{-5,-5},{5,5}},
+ rotation=90,
+ origin={-53,-9})));
+ Modelica.Blocks.Math.Add add1 annotation (Placement(transformation(
+ extent={{-5,-5},{5,5}},
+ rotation=0,
+ origin={-41,25})));
+ Modelica.Blocks.Math.Add add2(k1=-1) annotation (Placement(transformation(
+ extent={{-5,-5},{5,5}},
+ rotation=0,
+ origin={-65,29})));
+ Modelica.Blocks.Math.Add add3 annotation (Placement(transformation(
+ extent={{-6,-6},{6,6}},
+ rotation=0,
+ origin={58,16})));
+ equation
+ connect(Gain3.y, Limited.u) annotation (Line(points={{106.7,17},{106.7,17},{
+ 110.6,17}}, color={0,0,127}));
+ connect(Limited.y, imLimitedIntegrator.u) annotation (Line(points={{126.7,17},
+ {128.35,17},{128.35,17},{130.6,17}}, color={0,0,127}));
+ connect(imLimitedIntegrator.y, z) annotation (Line(points={{146.7,17},{153.35,
+ 17},{153.35,17},{161,17}}, color={0,0,127}));
+ connect(feedback.y, Gain3.u) annotation (Line(points={{87,16},{88,16},{88,17},
+ {90.6,17}}, color={0,0,127}));
+ connect(feedback.u2, z) annotation (Line(points={{78,8},{78,-6},{152,-6},{152,
+ 17},{153.35,17},{161,17}}, color={0,0,127}));
+ connect(Pe, SimpleLag1.u) annotation (Line(points={{-90,-33},{-81,-33},{-73.4,
+ -33}}, color={0,0,127}));
+ connect(add.y, Droop.u) annotation (Line(points={{-53,-3.5},{-53,-0.1},{-53.5,
+ -0.1}}, color={0,0,127}));
+ connect(add.u2, SimpleLag1.y) annotation (Line(points={{-50,-15},{-50,-33},{-57.3,
+ -33}}, color={0,0,127}));
+ connect(Pm_set, add.u1)
+ annotation (Line(points={{-90,-17},{-56,-17},{-56,-15}}, color={0,0,127}));
+ connect(Droop.y, add1.u2) annotation (Line(points={{-53.5,12.55},{-53.5,22},{
+ -47,22}}, color={0,0,127}));
+ connect(add2.u1, Omega)
+ annotation (Line(points={{-71,32},{-82,32},{-91,32}}, color={0,0,127}));
+ connect(Omega_n.y, add2.u2) annotation (Line(points={{-81.4,12},{-78,12},{-78,
+ 26},{-71,26}}, color={0,0,127}));
+ connect(add2.y, add1.u1) annotation (Line(points={{-59.5,29},{-53.75,29},{-53.75,
+ 28},{-47,28}}, color={0,0,127}));
+ connect(Gain1.u, add1.y) annotation (Line(points={{8.6,25},{-13.7,25},{-35.5,
+ 25}}, color={0,0,127}));
+ connect(Gain2.u, add1.y) annotation (Line(points={{8.6,7},{0,7},{0,25},{-13.7,
+ 25},{-35.5,25}}, color={0,0,127}));
+ connect(Gain2.y, Integrator.u) annotation (Line(points={{24.7,7},{26.35,7},{
+ 26.35,7},{28.6,7}}, color={0,0,127}));
+ connect(add3.y, feedback.u1)
+ annotation (Line(points={{64.6,16},{67.3,16},{70,16}}, color={0,0,127}));
+ connect(Integrator.y, add3.u2) annotation (Line(points={{44.7,7},{48,7},{48,
+ 12.4},{50.8,12.4}}, color={0,0,127}));
+ connect(Gain1.y, add3.u1) annotation (Line(points={{24.7,25},{44,25},{44,19.6},
+ {50.8,19.6}}, color={0,0,127}));
+ annotation (
+ Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{
+ 160,100}}), graphics={Text(
+ extent={{90,-6},{128,-10}},
+ lineColor={0,0,127},
+ textString="Servomotor"),Text(
+ extent={{14,34},{52,30}},
+ lineColor={0,0,127},
+ textString="PI Control"),Text(
+ extent={{-102,36},{-78,34}},
+ lineColor={0,0,127},
+ textString="w (rotor speed)"),Text(
+ extent={{-100,-40},{-76,-42}},
+ lineColor={0,0,127},
+ textString="P (active power)"),Text(
+ extent={{-98,-8},{-74,-10}},
+ lineColor={0,0,127},
+ textString="P0 (power set point)"),Text(
+ extent={{-50,6},{-32,8}},
+ lineColor={0,0,127},
+ textString="Speed drop")}),
+ Icon(coordinateSystem(extent={{-100,-100},{160,100}}, preserveAspectRatio=
+ false), graphics={Rectangle(extent={{-4,46},{150,-20}}, lineColor={
+ 0,0,255}),Text(
+ extent={{24,30},{126,6}},
+ lineColor={0,0,255},
+ textString="Speed Governor"),Text(
+ extent={{0,42},{20,26}},
+ lineColor={0,0,255},
+ textString="Omega"),Text(
+ extent={{136,24},{152,12}},
+ lineColor={0,0,255},
+ textString="z"),Text(
+ extent={{0,20},{20,4}},
+ lineColor={0,0,255},
+ textString="Pmset"),Text(
+ extent={{0,-2},{20,-18}},
+ lineColor={0,0,255},
+ textString="Pe")}),
+ Documentation);
+ end Governor;
+ annotation (Documentation);
+ end TG;
+ annotation (Documentation);
+ end Simulink;
+
+ package PSSE
+ package OEL
+ model OEL
+ Modelica.Blocks.Interfaces.RealInput IFD "Field current" annotation (
+ Placement(transformation(extent={{-140,-20},{-100,20}}),
+ iconTransformation(
+ extent={{5,-6},{-5,6}},
+ rotation=180,
+ origin={-105,0})));
+ Modelica.Blocks.Sources.Constant IFDSetpoint(k=IFDdes)
+ annotation (Placement(transformation(extent={{-90,30},{-70,50}})));
+ Modelica.Blocks.Continuous.LimIntegrator imLimitedIntegrator(
+ outMin=Vmin,
+ outMax=Vmax,
+ k=KMX,
+ y_start=0,
+ initType=Modelica.Blocks.Types.Init.InitialOutput)
+ annotation (Placement(transformation(extent={{10,50},{30,70}})));
+ Modelica.Blocks.Interfaces.RealOutput VOEL "OEL output" annotation (Placement(
+ transformation(extent={{100,-10},{120,10}}),
+ iconTransformation(extent={{
+ 100,-6},{110,6}})));
+ parameter Real IFD1=1.1 "Low OEL limit (pu)";
+ parameter Real IFD2=1.2 "Medium OEL limit (pu)";
+ parameter Real IFD3=1.5 "High OEL limit (pu)";
+ parameter Real TIME1=60 "Timing for low OEL (s)";
+ parameter Real TIME2=30 "Timimg for medium OEL (s)";
+ parameter Real TIME3=15 "Timing for high OEL (s)";
+ parameter Real IFDdes=1 "IFD setpoint (pu)";
+ parameter Real Vmax=0 "Max. OEL output (pu)";
+ parameter Real Vmin=-0.05 "Min. OEL output (pu)";
+ parameter Real KMX=1 "Control constant";
+ IF_comparisor comparisor(
+ HighCurrentLimit=IFD3,
+ MediumCurrentLimit=IFD2,
+ LowCurrentLimit=IFD1)
+ annotation (Placement(transformation(extent={{-30,-10},{-10,10}})));
+ Modelica.Blocks.Continuous.LimIntegrator imLimitedIntegrator1(
+ outMin=Vmin,
+ outMax=Vmax,
+ k=KMX,
+ y_start=6,
+ initType=Modelica.Blocks.Types.Init.InitialOutput)
+ annotation (Placement(transformation(extent={{10,10},{30,30}})));
+ Modelica.Blocks.Continuous.LimIntegrator imLimitedIntegrator2(
+ outMin=Vmin,
+ outMax=Vmax,
+ k=KMX,
+ y_start=6,
+ initType=Modelica.Blocks.Types.Init.InitialOutput)
+ annotation (Placement(transformation(extent={{10,-30},{30,-10}})));
+ Modelica.Blocks.Continuous.LimIntegrator imLimitedIntegrator3(
+ outMin=Vmin,
+ outMax=Vmax,
+ k=KMX,
+ y_start=7.5,
+ initType=Modelica.Blocks.Types.Init.InitialOutput)
+ annotation (Placement(transformation(extent={{10,-70},{30,-50}})));
+ Modelica.Blocks.Math.Add add(k1=-1)
+ annotation (Placement(transformation(extent={{-60,-10},{-40,10}})));
+ Modelica.Blocks.Math.MultiSum multiSum(nu=4)
+ annotation (Placement(transformation(extent={{60,-10},{80,10}})));
+ equation
+ connect(comparisor.n1, imLimitedIntegrator.u) annotation (Line(points={{-9,6},{-3.84,6},{-3.84,60},{8,60}},
+ color={0,0,127}));
+ connect(comparisor.n2, imLimitedIntegrator1.u) annotation (Line(points={{-9,2},{0.16,2},{0.16,20},{8,20}},
+ color={0,0,127}));
+ connect(comparisor.n3, imLimitedIntegrator2.u) annotation (Line(points={{-9,-2},{0.16,-2},{0.16,-20},{8,-20}},
+ color={0,0,127}));
+ connect(comparisor.n4, imLimitedIntegrator3.u) annotation (Line(points={{-9,-6},{-3.84,-6},{-3.84,-60},{8,-60}},
+ color={0,0,127}));
+ connect(add.y,comparisor. p) annotation (Line(points={{-39,0},{-32,0}},
+ color={0,0,127}));
+ connect(add.u2, IFD) annotation (Line(points={{-62,-6},{-80.5,-6},{-80.5,0},{-120,0}},
+ color={0,0,127}));
+ connect(IFDSetpoint.y, add.u1) annotation (Line(points={{-69,40},{-65.6,40},{-65.6,6},{-62,6}},
+ color={0,0,127}));
+ connect(multiSum.y, VOEL)
+ annotation (Line(points={{81.7,0},{110,0}}, color={0,0,127}));
+ connect(imLimitedIntegrator.y, multiSum.u[1]) annotation (Line(points={{31,60},{48.6,60},{48.6,5.25},{60,5.25}},
+ color={0,0,127}));
+ connect(imLimitedIntegrator1.y, multiSum.u[2]) annotation (Line(points={{31,20},{40.6,20},{40.6,1.75},{60,1.75}},
+ color={0,0,127}));
+ connect(imLimitedIntegrator2.y, multiSum.u[3]) annotation (Line(points={{31,-20},{44.6,-20},{44.6,-1.75},{60,-1.75}},
+ color={0,0,127}));
+ connect(imLimitedIntegrator3.y, multiSum.u[4]) annotation (Line(points={{31,-60},{48.6,-60},{48.6,-5.25},{60,-5.25}},
+ color={0,0,127}));
+ annotation (
+ Icon(
+ graphics={Rectangle(extent={{-100,100},{100,-100}},
+ lineColor={0,0,255}),
+ Text(
+ extent={{-40,-40},{40,-80}},
+ lineColor={0,0,255},
+ textString="OEL"),Text(
+ extent={{-96,4},{-72,-6}},
+ lineColor={0,0,255},
+ textString="IFD/EFD"),Text(
+ extent={{82,4},{100,-4}},
+ lineColor={0,0,255},
+ textString="VOEL"),
+ Text(
+ extent={{-100,100},{100,40}},
+ lineColor={0,0,255},
+ textString="%name")}),
+ Documentation(info="
+
+
+Reference |
+Over Excitation Limiter, PSSE manual |
+
+
+Last update |
+2015-10-02 |
+
+
+Author |
+Le Qi, SmarTS Lab, KTH Royal Institute of Technology |
+
+
+Contact |
+luigiv@kth.se |
+
+
+"));
+ end OEL;
+
+ model IF_comparisor
+ Modelica.Blocks.Interfaces.RealInput p
+ annotation (Placement(transformation(extent={{-140,-20},{-100,20}})));
+ Modelica.Blocks.Interfaces.RealOutput n1
+ annotation (Placement(transformation(extent={{100,50},{120,70}})));
+ Modelica.Blocks.Interfaces.RealOutput n2 annotation (Placement(transformation(
+ extent={{100,10},{120,30}}),
+ iconTransformation(extent={{100,10},{120,30}})));
+ parameter Real HighCurrentLimit=1.5;
+ parameter Real MediumCurrentLimit=1.2;
+ parameter Real LowCurrentLimit=1.1;
+ parameter Real LL=1 - HighCurrentLimit;
+ parameter Real ML=1 - MediumCurrentLimit;
+ parameter Real HL=1 - LowCurrentLimit;
+ Modelica.Blocks.Interfaces.RealOutput n3
+ annotation (Placement(transformation(extent={{100,-30},{120,-10}})));
+ Modelica.Blocks.Interfaces.RealOutput n4
+ annotation (Placement(transformation(extent={{100,-70},{120,-50}})));
+ equation
+ if p >= HL then
+ n1 = 100;
+ n2 = 0;
+ n3 = 0;
+ n4 = 0;
+ elseif p >= ML and p < HL then
+ n1 = 0;
+ n2 = -0.1;
+ n3 = 0;
+ n4 = 0;
+ elseif p >= LL and p < ML then
+ n1 = 0;
+ n2 = 0;
+ n3 = -0.2;
+ n4 = 0;
+ else
+ n1 = 0;
+ n2 = 0;
+ n3 = 0;
+ n4 = -0.5;
+ end if;
+ annotation (
+ Icon(graphics={Rectangle(extent={{-100,100},{100,-100}},
+ lineColor={
+ 0,0,255}),Text(
+ extent={{40,-14},{80,-54}},
+ lineColor={0,0,255},
+ textString=">"),Text(
+ extent={{40,66},{80,26}},
+ lineColor={0,0,255},
+ textString="<"),Line(
+ points={{-100,0},{-40,0}},
+ color={0,0,255},
+ smooth=Smooth.None),Line(
+ points={{0,60},{50,60}},
+ color={0,0,255},
+ smooth=Smooth.None),Line(
+ points={{0,-20},{50,-20}},
+ color={0,0,255},
+ smooth=Smooth.None),Line(
+ points={{-40,0},{-16,-10}},
+ color={0,0,255},
+ smooth=Smooth.None),Ellipse(extent={{-16,-8},{-10,-14}}, lineColor={0,
+ 0,255},
+ startAngle=0,
+ endAngle=360),
+ Ellipse(extent={{-4,62},{0,58}}, lineColor={0,0,255}),
+ Ellipse(extent={{-4,-18},{0,-22}}, lineColor={0,0,255}),Line(
+ points={{0,20},{50,20}},
+ color={0,0,255},
+ smooth=Smooth.None),Ellipse(extent={{-4,22},{0,18}}, lineColor={0,
+ 0,255}),Line(
+ points={{0,-60},{48,-60}},
+ color={0,0,255},
+ smooth=Smooth.None),Ellipse(extent={{-4,-58},{0,-62}}, lineColor={
+ 0,0,255}),
+ Text(
+ extent={{-120,140},{120,100}},
+ lineColor={0,0,255},
+ textString="%name")}));
+ end IF_comparisor;
+ annotation (Documentation);
+ end OEL;
+
+ package ES
+ model ConstantExcitation
+ extends
+ OpenIPSL.Electrical.Controls.PSSE.ES.BaseClasses.BaseExciter;
+ initial equation
+ V_REF = 0;
+ equation
+ connect(DiffV.u2, DiffV.u1) annotation (Line(points={{-122,-6},{-132,-6},{-132,
+ 6},{-122,6}}, color={0,0,127}));
+ connect(EFD0, EFD) annotation (Line(points={{-200,-130},{-20,-130},{160,-130},
+ {160,0},{210,0}}, color={0,0,127}));
+ annotation (Icon(coordinateSystem(preserveAspectRatio=false)), Diagram(
+ coordinateSystem(preserveAspectRatio=false)));
+ end ConstantExcitation;
+
+ model ESST4B " IEEE type ST4B potential or compounded
+ source-controlled rectifier exciter "
+ extends
+ OpenIPSL.Electrical.Controls.PSSE.ES.BaseClasses.BaseExciter;
+ import Modelica.ComplexMath.j;
+ import Modelica.ComplexMath.'abs';
+ parameter Real T_R=0.3;
+ parameter Real K_PR=2.97;
+ parameter Real K_IR=2.97;
+ parameter Real V_RMAX=1;
+ parameter Real V_RMIN=-0.87;
+ parameter Real T_A=0.01;
+ parameter Real K_PM=1;
+ parameter Real K_IM=0.2;
+ parameter Real V_MMAX=1;
+ parameter Real V_MMIN=-0.87;
+ parameter Real K_G=0.1;
+ parameter Real K_P=6.73;
+ parameter Real K_I=0.1;
+ parameter Real V_BMAX=8.41;
+ parameter Real K_C=0.1;
+ parameter Real X_L=0;
+ parameter Real THETAP=0;
+ NonElectrical.Logical.LV_GATE lV_Gate
+ annotation (Placement(transformation(extent={{120,-70},{144,-58}})));
+ Modelica.Blocks.Interfaces.RealInput XADIFD annotation (Placement(
+ transformation(
+ extent={{-20,-20},{20,20}},
+ rotation=90,
+ origin={50,-180}), iconTransformation(extent={{-10,-10},{10,10}},
+ origin={-200,-70})));
+ Modelica.Blocks.Math.Product product
+ annotation (Placement(transformation(extent={{160,-80},{180,-60}})));
+ NonElectrical.Continuous.SimpleLag VA(
+ K=1,
+ T=T_A,
+ y_start=VR0) annotation (Placement(transformation(
+ extent={{-10,-10},{10,10}},
+ rotation=0,
+ origin={60,0})));
+ Modelica.Blocks.Continuous.LimIntegrator VR1(
+ outMax=V_RMAX/K_PR,
+ outMin=V_RMIN/K_PR,
+ k=K_IR,
+ initType=Modelica.Blocks.Types.Init.InitialOutput,
+ y_start=VR0)
+ annotation (Placement(transformation(extent={{-40,-30},{-20,-10}})));
+ Modelica.Blocks.Math.Gain Gain1(k=K_PR)
+ annotation (Placement(transformation(extent={{-40,10},{-20,30}})));
+ Modelica.Blocks.Nonlinear.Limiter limiter(uMax=V_RMAX, uMin=V_RMIN)
+ annotation (Placement(transformation(extent={{20,-10},{40,10}})));
+ Modelica.Blocks.Math.Add add
+ annotation (Placement(transformation(extent={{-10,-10},{10,10}})));
+ Modelica.Blocks.Math.Add add1(k1=-1)
+ annotation (Placement(transformation(extent={{80,-10},{100,10}})));
+ Modelica.Blocks.Math.Gain gain(k=K_G) annotation (Placement(transformation(
+ extent={{-10,-10},{10,10}},
+ rotation=180,
+ origin={120,60})));
+ Modelica.Blocks.Continuous.LimIntegrator VM1(
+ outMax=V_MMAX/K_PM,
+ outMin=V_MMIN/K_PM,
+ k=K_IR,
+ initType=Modelica.Blocks.Types.Init.InitialOutput,
+ y_start=VA0)
+ annotation (Placement(transformation(extent={{110,-30},{130,-10}})));
+ Modelica.Blocks.Math.Gain Gain2(k=K_PM)
+ annotation (Placement(transformation(extent={{110,10},{130,30}})));
+ Modelica.Blocks.Nonlinear.Limiter limiter1(uMax=V_RMAX, uMin=V_RMIN)
+ annotation (Placement(transformation(extent={{170,-10},{190,10}})));
+ Modelica.Blocks.Math.Add add2
+ annotation (Placement(transformation(extent={{140,-10},{160,10}})));
+ Modelica.Blocks.Nonlinear.Limiter maxLimiter(uMin=-Modelica.Constants.inf,
+ uMax=V_BMAX)
+ annotation (Placement(transformation(extent={{100,-120},{120,-100}})));
+ OpenIPSL.Interfaces.PwPin Gen_terminal annotation (Placement(
+ transformation(extent={{-180,120},{-160,140}}),
+ iconTransformation(extent={{-180,120},{-160,140}})));
+ OpenIPSL.Interfaces.PwPin Bus annotation (Placement(
+ transformation(extent={{160,120},{180,140}}),
+ iconTransformation(extent={{160,120},{180,140}})));
+ Modelica.Blocks.Math.Add3 add3_1
+ annotation (Placement(transformation(extent={{-80,-10},{-60,10}})));
+ NonElectrical.Continuous.SimpleLag TransducerDelay(
+ K=1,
+ T=T_R,
+ y_start=ECOMP0)
+ annotation (Placement(transformation(extent={{-170,-10},{-150,10}})));
+ BaseClasses.RectifierCommutationVoltageDrop rectifierCommutationVoltageDrop(
+ K_C=K_C)
+ annotation (Placement(transformation(extent={{40,-120},{60,-100}})));
+ protected
+ Modelica.Blocks.Interfaces.RealOutput VE
+ annotation (Placement(transformation(extent={{10,-120},{30,-100}})));
+ Complex V_T;
+ Complex I_T;
+ parameter Complex K_P_comp=K_P*cos(THETAP) + j*K_P*sin(THETAP);
+ parameter Real Ifd0(fixed=false);
+ parameter Real IN0(fixed=false);
+ parameter Real VB0(fixed=false);
+ parameter Real VA0(fixed=false);
+ parameter Real VR0(fixed=false);
+ parameter Real VE0(fixed=false);
+ initial equation
+ Ifd0 = XADIFD;
+ VE0 = VE;
+ IN0 = K_C*Ifd0/VE0;
+ if IN0 <= 0 then
+ VB0 = IN0*1;
+ elseif IN0 > 0 and IN0 <= 0.433 then
+ VB0 = IN0*(1 - 0.577*IN0);
+ elseif IN0 > 0.433 and IN0 < 0.75 then
+ VB0 = IN0*sqrt(0.75 - IN0^2);
+ elseif IN0 >= 0.75 and IN0 <= 1 then
+ VB0 = IN0*1.732*(1 - IN0);
+ else
+ VB0 = IN0*0;
+ end if;
+ VA0 = Efd0/VB0;
+ VR0 = Efd0*K_G;
+ V_REF = ECOMP;
+ equation
+ VE = 'abs'(K_P_comp*V_T + j*(K_I + K_P_comp*X_L)*I_T);
+ V_T = Gen_terminal.vr + j*Gen_terminal.vi;
+ I_T = Gen_terminal.ir - Bus.ir + j*(Gen_terminal.ii - Bus.ii);
+ connect(add.y, limiter.u) annotation (Line(
+ points={{11,0},{18,0}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(maxLimiter.y, product.u2) annotation (Line(
+ points={{121,-110},{148,-110},{148,-76},{158,-76}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(lV_Gate.p, product.u1) annotation (Line(
+ points={{142.5,-64},{158,-64}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(add3_1.y, Gain1.u) annotation (Line(points={{-59,0},{-52,0},{-52,20},
+ {-42,20}}, color={0,0,127}));
+ connect(VR1.u, Gain1.u) annotation (Line(points={{-42,-20},{-52,-20},{-52,20},
+ {-42,20}}, color={0,0,127}));
+ connect(ECOMP, TransducerDelay.u)
+ annotation (Line(points={{-200,0},{-172,0},{-172,0}}, color={0,0,127}));
+ connect(TransducerDelay.y, DiffV.u2) annotation (Line(points={{-149,0},{-132,
+ 0},{-132,-6},{-122,-6}}, color={0,0,127}));
+ connect(DiffV.y, add3_1.u2)
+ annotation (Line(points={{-99,0},{-82,0},{-82,0}}, color={0,0,127}));
+ connect(VOTHSG, add3_1.u1) annotation (Line(points={{-200,90},{-92,90},{-92,8},
+ {-82,8}}, color={0,0,127}));
+ connect(VUEL, add3_1.u3) annotation (Line(points={{-130,-200},{-130,-20},{-92,
+ -20},{-92,-8},{-82,-8}}, color={0,0,127}));
+ connect(VR1.y, add.u2) annotation (Line(points={{-19,-20},{-16,-20},{-16,-6},
+ {-12,-6}}, color={0,0,127}));
+ connect(Gain1.y, add.u1) annotation (Line(points={{-19,20},{-16,20},{-16,6},{
+ -12,6}}, color={0,0,127}));
+ connect(limiter.y, VA.u)
+ annotation (Line(points={{41,0},{44.5,0},{48,0}}, color={0,0,127}));
+ connect(VA.y, add1.u2)
+ annotation (Line(points={{71,0},{74,0},{74,-6},{78,-6}}, color={0,0,127}));
+ connect(add1.y, Gain2.u) annotation (Line(points={{101,0},{104,0},{104,20},{
+ 108,20}}, color={0,0,127}));
+ connect(VM1.u, Gain2.u) annotation (Line(points={{108,-20},{104,-20},{104,20},
+ {108,20}}, color={0,0,127}));
+ connect(Gain2.y, add2.u1) annotation (Line(points={{131,20},{134,20},{134,6},
+ {138,6}}, color={0,0,127}));
+ connect(VM1.y, add2.u2) annotation (Line(points={{131,-20},{134,-20},{134,-6},
+ {138,-6}}, color={0,0,127}));
+ connect(add2.y, limiter1.u)
+ annotation (Line(points={{161,0},{164.5,0},{168,0}}, color={0,0,127}));
+ connect(product.y, EFD) annotation (Line(points={{181,-70},{198,-70},{198,0},
+ {210,0}}, color={0,0,127}));
+ connect(lV_Gate.n2, VOEL) annotation (Line(points={{118.5,-67},{0,-67},{0,-160},
+ {-70,-160},{-70,-200}}, color={0,0,127}));
+ connect(limiter1.y, lV_Gate.n1) annotation (Line(points={{191,0},{194,0},{194,
+ -50},{112,-50},{112,-61},{118.5,-61}}, color={0,0,127}));
+ connect(gain.u, EFD) annotation (Line(points={{132,60},{198,60},{198,0},{210,
+ 0}}, color={0,0,127}));
+ connect(gain.y, add1.u1) annotation (Line(points={{109,60},{74,60},{74,6},{78,
+ 6}}, color={0,0,127}));
+ connect(XADIFD, rectifierCommutationVoltageDrop.XADIFD)
+ annotation (Line(points={{50,-180},{50,-180},{50,-121}}, color={0,0,127}));
+ connect(rectifierCommutationVoltageDrop.EFD, maxLimiter.u)
+ annotation (Line(points={{61,-110},{98,-110}}, color={0,0,127}));
+ connect(VE, rectifierCommutationVoltageDrop.V_EX)
+ annotation (Line(points={{20,-110},{39,-110}}, color={0,0,127}));
+ connect(Gen_terminal, Bus) annotation (Line(points={{-170,130},{170,130},{170,
+ 130}}, color={0,0,255}));
+ annotation (
+ Diagram(coordinateSystem(extent={{-200,-200},{200,160}}, initialScale=0.1),
+ graphics={Text(
+ extent={{210,-4},{234,-18}},
+ lineColor={255,0,0},
+ textString="VB")}),
+ Icon(coordinateSystem(extent={{-200,-200},{200,160}}, initialScale=0.1),
+ graphics={Text(
+ extent={{-146,158},{-96,100}},
+ lineColor={0,0,255},
+ textString="GenT"),Text(
+ extent={{-186,-60},{-116,-80}},
+ lineColor={28,108,200},
+ textString="XADIFD")}),
+ Documentation(info="
+
+
+Reference |
+PSS/E Manual |
+
+
+Last update |
+2016-04-29 |
+
+
+Author |
+Tin Rabuzin,SmarTS Lab, KTH Royal Institute of Technology |
+
+
+Contact |
+luigiv@kth.se |
+
+
+"));
+ end ESST4B;
+
+ model EXNI "Bus or Solid Fed SCR Bridge Excitation System Model Type NI (NVE)"
+ extends
+ OpenIPSL.Electrical.Controls.PSSE.ES.BaseClasses.BaseExciter;
+ parameter Real T_R=0.60000E-01 "Voltage input time constant (s)";
+ //0
+ parameter Real K_A=150.00 "AVR gain";
+ //400
+ parameter Real T_A=0 "AVR time constant (s)";
+ parameter Real V_RMAX=4 "Maximum AVR output (pu)";
+ parameter Real V_RMIN=-4 "Minimum AVR output (pu)";
+ parameter Real K_F=0.110000E-01 "Rate feedback gain (pu)";
+ parameter Real T_F1=0.40000 "Rate feedback time constant (s)";
+ parameter Real T_F2=0.70000 "Rate feedback time constant (s)";
+ parameter Boolean SWITCH=false;
+ parameter Real r_cr_fd=10;
+ OpenIPSL.NonElectrical.Logical.NegCurLogic negCurLogic(RC_rfd=
+ r_cr_fd, nstartvalue=Efd0) annotation (Placement(
+ transformation(extent={{140,-14},{182,14}})));
+ Modelica.Blocks.Math.Add3 add3_1 annotation (Placement(transformation(extent={{-80,-10},{-60,10}})));
+ Modelica.Blocks.Continuous.Derivative derivativeLag(
+ k=K_F,
+ T=T_F1,
+ y_start=0,
+ initType=Modelica.Blocks.Types.Init.InitialOutput)
+ annotation (Placement(transformation(extent={{34,-60},{14,-40}})));
+ NonElectrical.Continuous.SimpleLag simpleLag1(
+ K=1,
+ T=T_F2,
+ y_start=0)
+ annotation (Placement(transformation(extent={{0,-60},{-20,-40}})));
+ Modelica.Blocks.Math.Add add(k2=-1)
+ annotation (Placement(transformation(extent={{-40,-10},{-20,10}})));
+ Modelica.Blocks.Nonlinear.Limiter limiter(uMax=V_RMAX, uMin=V_RMIN)
+ annotation (Placement(transformation(extent={{16,-10},{36,10}})));
+ Modelica.Blocks.Math.Product product
+ annotation (Placement(transformation(extent={{50,30},{70,50}})));
+ Modelica.Blocks.Logical.Switch switch1
+ annotation (Placement(transformation(extent={{94,-14},{114,6}})));
+ Modelica.Blocks.Sources.BooleanConstant booleanConstant(k=SWITCH)
+ annotation (Placement(transformation(extent={{48,60},{68,80}})));
+ NonElectrical.Continuous.SimpleLag TransducerDelay(
+ K=1,
+ T=T_R,
+ y_start=ECOMP0)
+ annotation (Placement(transformation(extent={{-170,-10},{-150,10}})));
+ Modelica.Blocks.Math.Add Limiters annotation (Placement(transformation(
+ extent={{-10,-10},{10,10}},
+ rotation=90,
+ origin={-100,-150})));
+ protected
+ parameter Real VR0(fixed=false);
+ NonElectrical.Continuous.SimpleLag VR(
+ K=K_A,
+ T=T_A,
+ y_start=VR0)
+ annotation (Placement(transformation(extent={{-12,-10},{8,10}})));
+ initial equation
+ if SWITCH then
+ VR0 = Efd0;
+ V_REF = VR0/K_A + ECOMP0;
+ else
+ VR0 = Efd0/ECOMP0;
+ V_REF = VR0/K_A + ECOMP0;
+ end if;
+ equation
+ connect(simpleLag1.u, derivativeLag.y) annotation (Line(points={{2,-50},{2,-50},{13,-50}}, color={0,0,127}));
+ connect(add.y, VR.u) annotation (Line(points={{-19,0},{-19,0},{-14,0}}, color={0,0,127}));
+ connect(VR.y, limiter.u) annotation (Line(points={{9,0},{9,0},{14,0}}, color={0,0,127}));
+ connect(derivativeLag.u, limiter.y) annotation (Line(points={{36,-50},{64,-50},{64,0},{37,0}}, color={0,0,127}));
+ connect(product.u2, limiter.y) annotation (Line(points={{48,34},{44,34},{44,20},{44,0},{37,0}}, color={0,0,127}));
+ connect(product.y, switch1.u3) annotation (Line(points={{71,40},{80,40},{80,-12},{92,-12}}, color={0,0,127}));
+ connect(booleanConstant.y, switch1.u2) annotation (Line(points={{69,70},{84,70},{84,-4},{92,-4}}, color={255,0,255}));
+ connect(negCurLogic.Efd, EFD) annotation (Line(points={{185.5,0},{210,0}}, color={0,0,127}));
+ connect(ECOMP, TransducerDelay.u) annotation (Line(points={{-200,0},{-186,0},{-172,0}}, color={0,0,127}));
+ connect(TransducerDelay.y, DiffV.u2) annotation (Line(points={{-149,0},{-132,0},{-132,-6},{-122,-6}}, color={0,0,127}));
+ connect(DiffV.y, add3_1.u2) annotation (Line(points={{-99,0},{-82,0},{-82,0}}, color={0,0,127}));
+ connect(VOTHSG, add3_1.u1) annotation (Line(points={{-200,90},{-90,90},{-90,8},{-82,8}}, color={0,0,127}));
+ connect(Limiters.u1, VUEL) annotation (Line(points={{-106,-162},{-106,-170},{-130,-170},{-130,-200}}, color={0,0,127}));
+ connect(Limiters.u2, VOEL) annotation (Line(points={{-94,-162},{-94,-170},{-70,-170},{-70,-200}}, color={0,0,127}));
+ connect(Limiters.y, add3_1.u3) annotation (Line(points={{-100,-139},{-100,-139},{-100,-30},{-100,-20},{-88,-20},{-88,-8},{-82,-8}}, color={0,0,127}));
+ connect(add3_1.y, add.u1) annotation (Line(points={{-59,0},{-48,0},{-48,6},{-42,6}}, color={0,0,127}));
+ connect(simpleLag1.y, add.u2) annotation (Line(points={{-21,-50},{-34,-50},{-48,-50},{-48,-6},{-42,-6}}, color={0,0,127}));
+ connect(switch1.y, negCurLogic.Vd) annotation (Line(points={{115,-4},{120,-4},{120,7},{136.5,7}}, color={0,0,127}));
+ connect(switch1.u1, limiter.y) annotation (Line(points={{92,4},{64,4},{64,0},{37,0}}, color={0,0,127}));
+ connect(product.u1, TransducerDelay.u) annotation (Line(points={{48,46},{-140,46},{-140,24},{-178,24},{-178,0},{-172,0}}, color={0,0,127}));
+ connect(XADIFD, negCurLogic.XadIfd) annotation (Line(points={{80,-200},{80,
+ -200},{80,-54},{120,-54},{120,-7},{128,-7},{136.5,-7}}, color={0,0,
+ 127}));
+ annotation (
+ Diagram(coordinateSystem(preserveAspectRatio=true, extent={{-200,-200},{200,
+ 160}})),
+ Documentation(info="
+
+
+Reference |
+PSS/E Manual |
+
+
+Last update |
+2016-04-29 |
+
+
+Author |
+Tin Rabuzin,SmarTS Lab, KTH Royal Institute of Technology |
+
+
+Contact |
+luigiv@kth.se |
+
+
+"), Icon(coordinateSystem(extent={{-200,-200},{200,160}}), graphics={Text(
+ extent={{-184,-60},{-114,-80}},
+ lineColor={28,108,200},
+ textString="XADIFD")}));
+ end EXNI;
+
+ model ST5B "IEEE 421.5 2005 ST5B Excitation System"
+ extends
+ OpenIPSL.Electrical.Controls.PSSE.ES.BaseClasses.BaseExciter;
+ parameter Real T_R=0.025 "Regulator input filter time constant (s)";
+ parameter Real T_C1=0.1
+ "Lead time constant of first lead-lag block (voltage regulator channel) (s)";
+ parameter Real T_B1=0.2
+ "Lag time constant of first lead-lag block (voltage regulator channel) (s)";
+ parameter Real T_C2=1
+ "Lead time constant of second lead-lag block (voltage regulator channel) (s)";
+ parameter Real T_B2=1
+ "Lag time constant of second lead-lag block (voltage regulator channel) (s)";
+ parameter Real K_R=1 "Voltage regulator gain (pu)";
+ parameter Real V_RMAX=10 "Voltage regulator maximum limit (pu)";
+ parameter Real V_RMIN=-10 "Voltage regulator minimum limit (pu)";
+ parameter Real T_1=0.58 "voltage regulator time constant (s)";
+ parameter Real K_C=0.3 "(pu)";
+ parameter Real T_UC1=1
+ "Lead time constant of first lead-lag block (under- excitation channel) (s)";
+ parameter Real T_UB1=1
+ "Lag time constant of first lead-lag block (under- excitation channel) (s)";
+ parameter Real T_UC2=1
+ "Lead time constant of second lead-lag block (under- excitation channel) (s)";
+ parameter Real T_UB2=1
+ "Lag time constant of second lead-lag block (under- excitation channel) (s)";
+ parameter Real T_OC1=1
+ "Lead time constant of first lead-lag block (over- excitation channel) (s)";
+ parameter Real T_OB1=1
+ "Lag time constant of first lead-lag block (over- excitation channel) (s)";
+ parameter Real T_OC2=1
+ "Lead time constant of second lead-lag block (over- excitation channel) (s)";
+ parameter Real T_OB2=1
+ "Lag time constant of second lead-lag block (over- excitation channel) (s)";
+ Modelica.Blocks.Math.Add VERR1 annotation (Placement(transformation(
+ extent={{-10,10},{10,-10}},
+ rotation=0,
+ origin={-10,0})));
+ NonElectrical.Logical.LV_GATE lV_Gate
+ annotation (Placement(transformation(extent={{-48,0},{-26,12}})));
+ NonElectrical.Logical.HV_GATE hV_Gate
+ annotation (Placement(transformation(extent={{-84,-4},{-58,10}})));
+ NonElectrical.Continuous.LeadLagLim imLimitedLeadLag(
+ K=1,
+ outMax=V_RMAX/K_R,
+ T1=T_C1,
+ T2=T_B1,
+ outMin=V_RMIN/K_R,
+ y_start=VR0/K_R)
+ annotation (Placement(transformation(extent={{20,-10},{40,10}})));
+ NonElectrical.Continuous.LeadLagLim imLimitedLeadLag2(
+ K=1,
+ outMax=V_RMAX/K_R,
+ T1=T_C2,
+ T2=T_B2,
+ outMin=V_RMIN/K_R,
+ y_start=VR0/K_R)
+ annotation (Placement(transformation(extent={{50,-10},{70,10}})));
+ Modelica.Blocks.Math.Gain K_r(k=K_R) annotation (Placement(transformation(
+ extent={{-10,-9.5},{10,9.5}},
+ rotation=0,
+ origin={90,0.5})));
+ Modelica.Blocks.Nonlinear.Limiter limiter(uMax=V_RMAX, uMin=V_RMIN)
+ annotation (Placement(transformation(extent={{108,-10},{128,10}})));
+ Modelica.Blocks.Math.Add VERR2(k1=-1, k2=1) annotation (Placement(
+ transformation(
+ extent={{-10,10},{10,-10}},
+ rotation=0,
+ origin={150,0})));
+ Modelica.Blocks.Math.Gain K_c(k=K_C) annotation (Placement(transformation(
+ extent={{-10,-10},{10,10}},
+ rotation=90,
+ origin={130,-92})));
+ NonElectrical.Continuous.LeadLagLim imLimitedLeadLag1(
+ K=1,
+ T1=T_UC1,
+ T2=T_UB1,
+ outMin=V_RMIN/K_R,
+ y_start=VR0/K_R,
+ outMax=V_RMAX/K_R)
+ annotation (Placement(transformation(extent={{20,-60},{40,-40}})));
+ NonElectrical.Continuous.LeadLagLim imLimitedLeadLag3(
+ K=1,
+ outMax=V_RMAX/K_R,
+ T1=T_UC1,
+ T2=T_UB1,
+ outMin=V_RMIN/K_R,
+ y_start=VR0/K_R)
+ annotation (Placement(transformation(extent={{50,-60},{70,-40}})));
+ NonElectrical.Continuous.LeadLagLim imLimitedLeadLag4(
+ K=1,
+ outMax=V_RMAX/K_R,
+ T1=T_OC1,
+ T2=T_OB1,
+ outMin=V_RMIN/K_R,
+ y_start=VR0/K_R)
+ annotation (Placement(transformation(extent={{20,-100},{40,-80}})));
+ NonElectrical.Continuous.LeadLagLim imLimitedLeadLag5(
+ K=1,
+ outMax=V_RMAX/K_R,
+ T1=T_OC1,
+ T2=T_OB1,
+ outMin=V_RMIN/K_R,
+ y_start=VR0/K_R)
+ annotation (Placement(transformation(extent={{50,-100},{70,-80}})));
+ NonElectrical.Continuous.SimpleLagLimVar simpleLagLimVar(
+ K=1,
+ T=T_1,
+ y_start=Efd0)
+ annotation (Placement(transformation(extent={{174,-10},{194,10}})));
+ Modelica.Blocks.Math.Gain high(k=V_RMAX) annotation (Placement(transformation(
+ extent={{-10,-10},{10,10}},
+ rotation=0,
+ origin={106,-30})));
+ Modelica.Blocks.Math.Gain low(k=V_RMIN) annotation (Placement(transformation(
+ extent={{-10,-10},{10,10}},
+ rotation=0,
+ origin={104,-70})));
+ NonElectrical.Continuous.SimpleLag TransducerDelay(
+ K=1,
+ T=T_R,
+ y_start=ECOMP0) annotation (Placement(transformation(extent={{-170,-10},{-150,10}})));
+ protected
+ parameter Real VR0(fixed=false);
+ initial equation
+ VR0 = Efd0 + K_C*XADIFD;
+ V_REF = VR0/K_R + ECOMP;
+ equation
+ connect(VERR1.y, imLimitedLeadLag.u) annotation (Line(points={{1,0},{1,0},{18,0}}, color={0,0,127}));
+ connect(imLimitedLeadLag.y, imLimitedLeadLag2.u) annotation (Line(points={{41,0},{41,0},{48,0}}, color={0,0,127}));
+ connect(imLimitedLeadLag1.u, imLimitedLeadLag.u) annotation (Line(points={{18,-50},{8,-50},{8,0},{18,0}}, color={0,0,127}));
+ connect(imLimitedLeadLag1.y, imLimitedLeadLag3.u) annotation (Line(points={{41,-50},{41,-50},{48,-50}}, color={0,0,127}));
+ connect(imLimitedLeadLag4.u, imLimitedLeadLag.u) annotation (Line(points={{18,-90},{8,-90},{8,0},{18,0}}, color={0,0,127}));
+ connect(VERR2.y, simpleLagLimVar.u) annotation (Line(points={{161,0},{161,0},{172,0}}, color={0,0,127}));
+ connect(low.y, simpleLagLimVar.outMin) annotation (Line(points={{115,-70},{176,-70},{176,-14}}, color={0,0,127}));
+ connect(high.y, simpleLagLimVar.outMax) annotation (Line(points={{117,-30},{168,-30},{168,32},{192,32},{192,14}}, color={0,0,127}));
+ connect(K_c.y, VERR2.u1) annotation (Line(points={{130,-81},{130,-81},{130,-6},{138,-6}}, color={0,0,127}));
+ connect(imLimitedLeadLag4.y, imLimitedLeadLag5.u) annotation (Line(points={{41,-90},{41,-90},{48,-90}}, color={0,0,127}));
+ connect(imLimitedLeadLag2.y, K_r.u) annotation (Line(points={{71,0},{78,0},{78,0.5}}, color={0,0,127}));
+ connect(lV_Gate.p, VERR1.u2) annotation (Line(points={{-27.375,6},{-22,6}}, color={0,0,127}));
+ connect(hV_Gate.p, lV_Gate.n2) annotation (Line(points={{-59.625,3},{-54.8125,3},{-54.8125,3},{-49.375,3}}, color={0,0,127}));
+ connect(hV_Gate.n2, DiffV.y) annotation (Line(points={{-85.625,-0.5},{-91.8125,-0.5},{-91.8125,0},{-99,0}}, color={0,0,127}));
+ connect(hV_Gate.n1, VUEL) annotation (Line(points={{-85.625,6.5},{-92,6.5},{-92,-160},{-130,-160},{-130,-200}}, color={0,0,127}));
+ connect(lV_Gate.n1, VOEL) annotation (Line(points={{-49.375,9},{-54,9},{-54,-160},{-70,-160},{-70,-200}}, color={0,0,127}));
+ connect(K_r.y, limiter.u) annotation (Line(points={{101,0.5},{104.5,0.5},{104.5,0},{106,0}}, color={0,0,127}));
+ connect(limiter.y, VERR2.u2) annotation (Line(points={{129,0},{132,0},{132,6},{138,6}}, color={0,0,127}));
+ connect(simpleLagLimVar.y, EFD) annotation (Line(points={{195,0},{210,0},{210,0}}, color={0,0,127}));
+ connect(ECOMP, TransducerDelay.u) annotation (Line(points={{-200,0},{-172,0},{-172,0}}, color={0,0,127}));
+ connect(TransducerDelay.y, DiffV.u2) annotation (Line(points={{-149,0},{-132,0},{-132,-6},{-122,-6}}, color={0,0,127}));
+ connect(high.u, TransducerDelay.u) annotation (Line(points={{94,-30},{-178,-30},{-178,0},{-172,0}}, color={0,0,127}));
+ connect(low.u, TransducerDelay.u) annotation (Line(points={{92,-70},{80,-70},{80,-30},{-178,-30},{-178,0},{-172,0}}, color={0,0,127}));
+ connect(VOTHSG, VERR1.u1) annotation (Line(points={{-200,90},{-26,90},{-26,-6},{-22,-6}}, color={0,0,127}));
+ connect(XADIFD, K_c.u) annotation (Line(points={{80,-200},{80,-200},{80,-124},
+ {80,-120},{130,-120},{130,-104}}, color={0,0,127}));
+ annotation (
+ Diagram(coordinateSystem(
+ preserveAspectRatio=true,
+ extent={{-200,-200},{200,160}},
+ grid={2,2})),
+ Icon(coordinateSystem(
+ extent={{-200,-200},{200,160}},
+ preserveAspectRatio=true,
+ grid={2,2}), graphics={Text(
+ extent={{-60,154},{62,110}},
+ lineColor={28,108,200},
+ textString="ST5B"),Text(
+ extent={{-184,-52},{-114,-72}},
+ lineColor={28,108,200},
+ textString="XADIFD")}),
+ Documentation(info="
+
+
+Reference |
+PSS/E Manual |
+
+
+Last update |
+2016-04-29 |
+
+
+Author |
+Tin Rabuzin,SmarTS Lab, KTH Royal Institute of Technology |
+
+
+Contact |
+luigiv@kth.se |
+
+
+"));
+ end ST5B;
+
+ model IEEEX1
+ extends
+ OpenIPSL.Electrical.Controls.PSSE.ES.BaseClasses.BaseExciter;
+ import
+ IslandedOperationControl.OpenIPSL.Electrical.Controls.PSSE.ES.BaseClasses.calculate_dc_exciter_params;
+ parameter Real T_R "Voltage input time constant (s)";
+ parameter Real K_A "AVR gain";
+ parameter Real T_A "AVR time constant (s)";
+ parameter Real T_B "(s)";
+ parameter Real T_C "(s)";
+ parameter Real V_RMAX "Maximum AVR output (pu)";
+ parameter Real V_RMIN "Minimum AVR output (pu)";
+ parameter Real K_E "Exciter field gain";
+ parameter Real T_E "Exciter time constant (s)";
+ parameter Real K_F "Rate feedback gain (pu)";
+ parameter Real T_F1 "Rate feedback time constant (s)";
+ parameter Real E_1 "Exciter saturation point 1 (pu)";
+ parameter Real S_EE_1 "Saturation at E1";
+ parameter Real E_2 "Exciter saturation point 2 (pu)";
+ parameter Real S_EE_2 "Saturation at E2";
+ NonElectrical.Continuous.LeadLag LL(
+ T1=T_C,
+ T2=T_B,
+ K=1,
+ y_start=VR0/K_A,
+ x_start=V_REF - ECOMP0)
+ annotation (Placement(transformation(extent={{0,-10},{20,10}})));
+ Modelica.Blocks.Math.Add3 V_Erro1(k3=-1)
+ annotation (Placement(transformation(extent={{-40,-10},{-20,10}})));
+ Modelica.Blocks.Continuous.Derivative imDerivativeLag(
+ k=K_F,
+ T=T_F1,
+ y_start=0,
+ initType=Modelica.Blocks.Types.Init.InitialOutput,
+ x_start=Efd0)
+ annotation (Placement(transformation(extent={{80,-60},{60,-40}})));
+ Modelica.Blocks.Math.Add3 V_Erro2
+ annotation (Placement(transformation(extent={{-80,40},{-60,60}})));
+ NonElectrical.Continuous.SimpleLagLim SL(
+ K=K_A,
+ T=T_A,
+ y_start=VR0,
+ outMax=V_RMAX0,
+ outMin=V_RMIN0)
+ annotation (Placement(transformation(extent={{60,-10},{80,10}})));
+ BaseClasses.RotatingExciter rotatingExciter(
+ T_E=T_E,
+ E_1=E_1,
+ E_2=E_2,
+ S_EE_1=S_EE_1,
+ S_EE_2=S_EE_2,
+ Efd0=Efd0,
+ K_E=K_E0)
+ annotation (Placement(transformation(extent={{120,-20},{160,20}})));
+ NonElectrical.Continuous.SimpleLag TransducerDelay(
+ K=1,
+ T=T_R,
+ y_start=ECOMP0)
+ annotation (Placement(transformation(extent={{-170,-10},{-150,10}})));
+ protected
+ parameter Real SE_Efd0(fixed=false);
+ parameter Real VR0(fixed=false);
+ parameter Real V_RMAX0(fixed=false);
+ parameter Real K_E0(fixed=false);
+ parameter Real V_RMIN0(fixed=false);
+ initial equation
+ SE_Efd0 = OpenIPSL.NonElectrical.Functions.SE(
+ EFD0,
+ S_EE_1,
+ S_EE_2,
+ E_1,
+ E_2);
+ (V_RMAX0,V_RMIN0,K_E0) = calculate_dc_exciter_params(
+ V_RMAX,
+ V_RMIN,
+ K_E,
+ E_2,
+ S_EE_2,
+ Efd0,
+ SE_Efd0);
+ VR0 = Efd0*(K_E0 + SE_Efd0);
+ V_REF = VR0/K_A + ECOMP0;
+ equation
+ connect(V_Erro1.y, LL.u)
+ annotation (Line(points={{-19,0},{-2,0}}, color={0,0,127}));
+ connect(LL.y, SL.u)
+ annotation (Line(points={{21,0},{58,0}}, color={0,0,127}));
+ connect(DiffV.y, V_Erro1.u2)
+ annotation (Line(points={{-99,0},{-42,0}}, color={0,0,127}));
+ connect(SL.y, rotatingExciter.I_C)
+ annotation (Line(points={{81,0},{117.5,0}}, color={0,0,127}));
+ connect(rotatingExciter.EFD, EFD)
+ annotation (Line(points={{162.5,0},{210,0}}, color={0,0,127}));
+ connect(imDerivativeLag.y, V_Erro1.u3) annotation (Line(points={{59,-50},{-50,
+ -50},{-50,-8},{-42,-8}}, color={0,0,127}));
+ connect(imDerivativeLag.u, EFD) annotation (Line(points={{82,-50},{180,-50},{
+ 180,0},{210,0}}, color={0,0,127}));
+ connect(VOTHSG, V_Erro2.u1) annotation (Line(points={{-200,90},{-100,90},{-100,
+ 58},{-82,58}}, color={0,0,127}));
+ connect(VUEL, V_Erro2.u2) annotation (Line(points={{-130,-200},{-130,-200},{-130,
+ -30},{-130,-28},{-94,-28},{-94,50},{-82,50}}, color={0,0,127}));
+ connect(VOEL, V_Erro2.u3) annotation (Line(points={{-70,-200},{-70,20},{-88,
+ 20},{-88,42},{-82,42}}, color={0,0,127}));
+ connect(V_Erro2.y, V_Erro1.u1) annotation (Line(points={{-59,50},{-50,50},{-50,
+ 8},{-42,8}}, color={0,0,127}));
+ connect(TransducerDelay.y, DiffV.u2) annotation (Line(points={{-149,0},{-132,
+ 0},{-132,-6},{-122,-6}}, color={0,0,127}));
+ connect(TransducerDelay.u, ECOMP)
+ annotation (Line(points={{-172,0},{-200,0}}, color={0,0,127}));
+ annotation (
+ Diagram(coordinateSystem(
+ extent={{-200,-200},{200,160}},
+ grid={2,2},
+ initialScale=0.1)),
+ Icon(coordinateSystem(
+ extent={{-200,-200},{200,160}},
+ grid={2,2},
+ initialScale=0.1), graphics={Text(
+ extent={{-130,160},{130,100}},
+ lineColor={28,108,200},
+ textString="IEEEX1")}),
+ Documentation(info="
+
+
+Reference |
+PSS/E Manual |
+
+
+Last update |
+2016-04-29 |
+
+
+Author |
+Tin Rabuzin,SmarTS Lab, KTH Royal Institute of Technology |
+
+
+Contact |
+luigiv@kth.se |
+
+
+"));
+ end IEEEX1;
+
+ model SEXS "Simplified excitation system model"
+ extends
+ OpenIPSL.Electrical.Controls.PSSE.ES.BaseClasses.BaseExciter;
+ parameter Real T_AT_B;
+ parameter Real T_B;
+ parameter Real K;
+ parameter Real T_E;
+ parameter Real E_MIN;
+ parameter Real E_MAX;
+ Modelica.Blocks.Math.Add3 V_erro(
+ k3=1,
+ k1=1,
+ k2=1) annotation (Placement(transformation(extent={{-40,-10},{-20,10}})));
+ NonElectrical.Continuous.SimpleLagLim simpleLagLim(
+ K=K,
+ T=T_E,
+ y_start=Efd0,
+ outMax=E_MAX,
+ outMin=E_MIN)
+ annotation (Placement(transformation(extent={{120,-10},{140,10}})));
+ Modelica.Blocks.Math.Add DiffV1 annotation (Placement(transformation(
+ extent={{-10,-10},{10,10}},
+ rotation=90,
+ origin={-100,-50})));
+ NonElectrical.Continuous.LeadLag leadLag(
+ K=1,
+ T1=T_AT_B*T_B,
+ T2=T_B,
+ y_start=Efd0/K,
+ x_start=Efd0/K)
+ annotation (Placement(transformation(extent={{40,-10},{60,10}})));
+ initial equation
+ V_REF = Efd0/K + ECOMP0;
+ equation
+ connect(simpleLagLim.y, EFD)
+ annotation (Line(points={{141,0},{210,0}}, color={0,0,127}));
+ connect(DiffV1.u1, VUEL) annotation (Line(points={{-106,-62},{-106,-80},{-130,
+ -80},{-130,-200}}, color={0,0,127}));
+ connect(DiffV1.u2, VOEL) annotation (Line(points={{-94,-62},{-94,-80},{-70,-80},
+ {-70,-200}}, color={0,0,127}));
+ connect(DiffV1.y, V_erro.u3) annotation (Line(points={{-100,-39},{-100,-20},{
+ -52,-20},{-52,-8},{-42,-8}}, color={0,0,127}));
+ connect(DiffV.y, V_erro.u2)
+ annotation (Line(points={{-99,0},{-42,0}}, color={0,0,127}));
+ connect(V_erro.u1, VOTHSG) annotation (Line(points={{-42,8},{-52,8},{-52,90},
+ {-200,90}}, color={0,0,127}));
+ connect(ECOMP, DiffV.u2) annotation (Line(points={{-200,0},{-166,0},{-132,0},
+ {-132,-6},{-122,-6}}, color={0,0,127}));
+ connect(leadLag.y, simpleLagLim.u)
+ annotation (Line(points={{61,0},{118,0}}, color={0,0,127}));
+ connect(leadLag.u, V_erro.y)
+ annotation (Line(points={{38,0},{-19,0}}, color={0,0,127}));
+ annotation (
+ Diagram(coordinateSystem(extent={{-200,-200},{200,160}}, initialScale=0.1)),
+ Icon(coordinateSystem(extent={{-200,-200},{200,160}}, initialScale=0.1),
+ graphics={Text(
+ extent={{-100,160},{100,100}},
+ lineColor={28,108,200},
+ textString="SEXS")}),
+ Documentation(info="
+
+
+Reference |
+PSS/E Manual |
+
+
+Last update |
+Unknown |
+
+
+Author |
+Mengjia Zhang,SmarTS Lab, KTH Royal Institute of Technology |
+
+
+Contact |
+luigiv@kth.se |
+
+
+"));
+ end SEXS;
+
+ model ESDC1A
+ extends
+ OpenIPSL.Electrical.Controls.PSSE.ES.BaseClasses.BaseExciter;
+ import IslandedOperationControl.OpenIPSL.NonElectrical.Functions.SE;
+ import
+ IslandedOperationControl.OpenIPSL.Electrical.Controls.PSSE.ES.BaseClasses.calculate_dc_exciter_params;
+ parameter Real T_R=0 "Voltage input time constant (s)";
+ parameter Real K_A=400 "AVR gain";
+ parameter Real T_A=0.02 "AVR time constant (s)";
+ parameter Real T_B=0 "AVR lead-lag time constant (s)";
+ parameter Real T_C=0 "AVR lead-lag time constant (s)";
+ parameter Real V_RMAX=9 "Maximum AVR output (pu)";
+ parameter Real V_RMIN=-5.43 "Minimum AVR output (pu)";
+ parameter Real K_E=1 "Exciter field factor (pu)";
+ parameter Real T_E=0.8 "Exciter time constant (s)";
+ parameter Real K_F=0.03 "Rate feedback gain (pu)";
+ parameter Real T_F1=1 "Rate feedback time constant (s)";
+ parameter Real E_1=5.25 "Exciter saturation point 1 (pu)";
+ parameter Real E_2=7 "Exciter saturation point 2 (pu)";
+ parameter Real S_EE_1=0.03 "Saturation at E_1";
+ parameter Real S_EE_2=0.1 "Saturation at E_2";
+ Modelica.Blocks.Continuous.Derivative imDerivativeLag(
+ k=K_F,
+ T=T_F1,
+ y_start=0,
+ initType=Modelica.Blocks.Types.Init.InitialOutput,
+ x_start=Efd0)
+ annotation (Placement(transformation(extent={{0,-60},{-20,-40}})));
+ NonElectrical.Logical.HV_GATE hV_GATE
+ annotation (Placement(transformation(extent={{40,-6},{62,6}})));
+ NonElectrical.Continuous.LeadLag imLeadLag(
+ K=1,
+ T1=T_C,
+ T2=T_B,
+ y_start=V_R0/K_A)
+ annotation (Placement(transformation(extent={{-20,-10},{0,10}})));
+ Modelica.Blocks.Math.Add3 add3_1(k3=-1)
+ annotation (Placement(transformation(extent={{-60,-10},{-40,10}})));
+ OpenIPSL.NonElectrical.Continuous.SimpleLagLim simpleLagLim(
+ K=K_A,
+ T=T_A,
+ y_start=V_R0,
+ outMax=V_RMAX0,
+ outMin=V_RMIN0) annotation (Placement(transformation(extent={{
+ 80,-10},{100,10}})));
+ BaseClasses.RotatingExciterLimited rotatingExciterLimited(
+ T_E=T_E,
+ E_1=E_1,
+ E_2=E_2,
+ S_EE_1=S_EE_1,
+ S_EE_2=S_EE_2,
+ Efd0=Efd0,
+ K_E=K_E0)
+ annotation (Placement(transformation(extent={{120,-10},{140,10}})));
+ NonElectrical.Continuous.SimpleLag TransducerDelay(
+ K=1,
+ T=T_R,
+ y_start=ECOMP0)
+ annotation (Placement(transformation(extent={{-170,-10},{-150,10}})));
+ Modelica.Blocks.Math.Add DiffV1
+ annotation (Placement(transformation(extent={{-90,30},{-70,50}})));
+ protected
+ parameter Real V_R0(fixed=false);
+ parameter Real V_RMAX0(fixed=false);
+ parameter Real K_E0(fixed=false);
+ parameter Real V_RMIN0(fixed=false);
+ parameter Real SE_Efd0(fixed=false);
+ initial equation
+ SE_Efd0 = OpenIPSL.NonElectrical.Functions.SE(
+ Efd0,
+ S_EE_1,
+ S_EE_2,
+ E_1,
+ E_2);
+ (V_RMAX0,V_RMIN0,K_E0) = calculate_dc_exciter_params(
+ V_RMAX,
+ V_RMIN,
+ K_E,
+ E_2,
+ S_EE_2,
+ Efd0,
+ SE_Efd0);
+ V_R0 = Efd0*(K_E0 + SE_Efd0);
+ V_REF = V_R0/K_A + ECOMP0;
+ equation
+ connect(add3_1.y, imLeadLag.u)
+ annotation (Line(points={{-39,0},{-36,0},{-22,0}}, color={0,0,127}));
+ connect(hV_GATE.p, simpleLagLim.u)
+ annotation (Line(points={{60.625,0},{60.625,0},{78,0}}, color={0,0,127}));
+ connect(simpleLagLim.y, rotatingExciterLimited.I_C)
+ annotation (Line(points={{101,0},{101,0},{118.75,0}}, color={0,0,127}));
+ connect(ECOMP, TransducerDelay.u)
+ annotation (Line(points={{-200,0},{-172,0},{-172,0}}, color={0,0,127}));
+ connect(TransducerDelay.y, DiffV.u2) annotation (Line(points={{-149,0},{-132,
+ 0},{-132,-6},{-122,-6}}, color={0,0,127}));
+ connect(rotatingExciterLimited.EFD, EFD)
+ annotation (Line(points={{141.25,0},{210,0},{210,0}}, color={0,0,127}));
+ connect(imLeadLag.y, hV_GATE.n1) annotation (Line(points={{1,0},{32,0},{32,3},
+ {38.625,3}}, color={0,0,127}));
+ connect(VUEL, hV_GATE.n2) annotation (Line(points={{-130,-200},{-128,-200},{-128,
+ -80},{32,-80},{32,-3},{38.625,-3}}, color={0,0,127}));
+ connect(imDerivativeLag.u, EFD) annotation (Line(points={{2,-50},{160,-50},{
+ 160,0},{210,0}}, color={0,0,127}));
+ connect(imDerivativeLag.y, add3_1.u3) annotation (Line(points={{-21,-50},{-46,
+ -50},{-72,-50},{-72,-8},{-62,-8}}, color={0,0,127}));
+ connect(DiffV.y, add3_1.u2)
+ annotation (Line(points={{-99,0},{-62,0},{-62,0}}, color={0,0,127}));
+ connect(VOTHSG, DiffV1.u1) annotation (Line(points={{-200,90},{-150,90},{-96,
+ 90},{-96,46},{-92,46}}, color={0,0,127}));
+ connect(VOEL, DiffV1.u2) annotation (Line(points={{-70,-200},{-70,-200},{-70,
+ -60},{-96,-60},{-96,34},{-92,34}}, color={0,0,127}));
+ connect(DiffV1.y, add3_1.u1) annotation (Line(points={{-69,40},{-66,40},{-66,
+ 8},{-62,8}}, color={0,0,127}));
+ annotation (
+ Diagram(coordinateSystem(
+ extent={{-200,-200},{200,160}},
+ grid={2,2},
+ initialScale=0.1)),
+ Icon(coordinateSystem(
+ extent={{-200,-200},{200,160}},
+ grid={2,2},
+ initialScale=0.1), graphics={Text(
+ extent={{-120,154},{140,94}},
+ lineColor={28,108,200},
+ textString="ESDC1A")}),
+ Documentation(info="
+
+
+Reference |
+ESDC1A, PSS/E Manual |
+
+
+Last update |
+Major change - 2016-01-19 |
+
+
+Author |
+Tin Rabuzin, SmarTS Lab, KTH Royal Institute of Technology |
+
+
+Contact |
+luigiv@kth.se |
+
+
+"));
+ end ESDC1A;
+
+ model ESDC2A
+ extends
+ OpenIPSL.Electrical.Controls.PSSE.ES.BaseClasses.BaseExciter;
+ import IslandedOperationControl.OpenIPSL.NonElectrical.Functions.SE;
+ import
+ IslandedOperationControl.OpenIPSL.Electrical.Controls.PSSE.ES.BaseClasses.calculate_dc_exciter_params;
+ parameter Real T_R=0 "Voltage input time constant (s)";
+ parameter Real K_A=400 "AVR gain";
+ parameter Real T_A=0.02 "AVR time constant (s)";
+ parameter Real T_B=0 "AVR lead-lag time constant (s)";
+ parameter Real T_C=0 "AVR lead-lag time constant (s)";
+ parameter Real V_RMAX=9 "Maximum AVR output (pu)";
+ parameter Real V_RMIN=-5.43 "Minimum AVR output (pu)";
+ parameter Real K_E=1 "Exciter field factor (pu)";
+ parameter Real T_E=0.8 "Exciter time constant (s)";
+ parameter Real K_F=0.03 "Rate feedback gain (pu)";
+ parameter Real T_F1=1 "Rate feedback time constant (s)";
+ parameter Real E_1=5.25 "Exciter saturation point 1 (pu)";
+ parameter Real E_2=7 "Exciter saturation point 2 (pu)";
+ parameter Real S_EE_1=0.03 "Saturation at E_1";
+ parameter Real S_EE_2=0.1 "Saturation at E_2";
+ Modelica.Blocks.Continuous.Derivative imDerivativeLag(
+ k=K_F,
+ T=T_F1,
+ y_start=0,
+ initType=Modelica.Blocks.Types.Init.InitialOutput,
+ x_start=Efd0)
+ annotation (Placement(transformation(extent={{0,-60},{-20,-40}})));
+ NonElectrical.Logical.HV_GATE hV_GATE
+ annotation (Placement(transformation(extent={{40,-6},{62,6}})));
+ NonElectrical.Continuous.LeadLag imLeadLag(
+ K=1,
+ T1=T_C,
+ T2=T_B,
+ y_start=V_R0/K_A)
+ annotation (Placement(transformation(extent={{-20,-10},{0,10}})));
+ Modelica.Blocks.Math.Add3 add3_1(k3=-1)
+ annotation (Placement(transformation(extent={{-60,-10},{-40,10}})));
+ BaseClasses.RotatingExciterLimited rotatingExciterLimited(
+ T_E=T_E,
+ E_1=E_1,
+ E_2=E_2,
+ S_EE_1=S_EE_1,
+ S_EE_2=S_EE_2,
+ Efd0=Efd0,
+ K_E=K_E0)
+ annotation (Placement(transformation(extent={{120,-10},{140,10}})));
+ NonElectrical.Continuous.SimpleLag TransducerDelay(
+ K=1,
+ T=T_R,
+ y_start=ECOMP0)
+ annotation (Placement(transformation(extent={{-170,-10},{-150,10}})));
+ Modelica.Blocks.Math.Add DiffV1
+ annotation (Placement(transformation(extent={{-90,30},{-70,50}})));
+ NonElectrical.Continuous.SimpleLagLimVar simpleLagLimVar(
+ K=K_A,
+ T=T_A,
+ y_start=V_R0)
+ annotation (Placement(transformation(extent={{80,-10},{100,10}})));
+ Modelica.Blocks.Interfaces.RealInput VT annotation (Placement(transformation(
+ extent={{-20,-20},{20,20}},
+ rotation=90,
+ origin={102,-120}), iconTransformation(
+ extent={{-10,-10},{10,10}},
+ rotation=0,
+ origin={-200,-70})));
+ Modelica.Blocks.Math.Gain gain(k=V_RMIN0) annotation (Placement(
+ transformation(
+ extent={{-10,-10},{10,10}},
+ rotation=90,
+ origin={82,-70})));
+ Modelica.Blocks.Math.Gain gain1(k=V_RMAX0) annotation (Placement(
+ transformation(
+ extent={{-10,-10},{10,10}},
+ rotation=90,
+ origin={110,-70})));
+ protected
+ parameter Real V_R0(fixed=false);
+ parameter Real V_RMAX0(fixed=false);
+ parameter Real K_E0(fixed=false);
+ parameter Real V_RMIN0(fixed=false);
+ parameter Real SE_Efd0(fixed=false);
+ initial equation
+ SE_Efd0 = OpenIPSL.NonElectrical.Functions.SE(
+ Efd0,
+ S_EE_1,
+ S_EE_2,
+ E_1,
+ E_2);
+ (V_RMAX0,V_RMIN0,K_E0) = calculate_dc_exciter_params(
+ V_RMAX,
+ V_RMIN,
+ K_E,
+ E_2,
+ S_EE_2,
+ Efd0,
+ SE_Efd0);
+ V_R0 = Efd0*(K_E0 + SE_Efd0);
+ V_REF = V_R0/K_A + ECOMP0;
+ equation
+ connect(add3_1.y, imLeadLag.u)
+ annotation (Line(points={{-39,0},{-36,0},{-22,0}}, color={0,0,127}));
+ connect(ECOMP, TransducerDelay.u)
+ annotation (Line(points={{-200,0},{-172,0},{-172,0}}, color={0,0,127}));
+ connect(TransducerDelay.y, DiffV.u2) annotation (Line(points={{-149,0},{-132,
+ 0},{-132,-6},{-122,-6}}, color={0,0,127}));
+ connect(rotatingExciterLimited.EFD, EFD)
+ annotation (Line(points={{141.25,0},{210,0},{210,0}}, color={0,0,127}));
+ connect(imLeadLag.y, hV_GATE.n1) annotation (Line(points={{1,0},{32,0},{32,3},
+ {38.625,3}}, color={0,0,127}));
+ connect(VUEL, hV_GATE.n2) annotation (Line(points={{-130,-200},{-128,-200},{-128,
+ -80},{32,-80},{32,-3},{38.625,-3}}, color={0,0,127}));
+ connect(imDerivativeLag.u, EFD) annotation (Line(points={{2,-50},{160,-50},{
+ 160,0},{210,0}}, color={0,0,127}));
+ connect(imDerivativeLag.y, add3_1.u3) annotation (Line(points={{-21,-50},{-46,
+ -50},{-72,-50},{-72,-8},{-62,-8}}, color={0,0,127}));
+ connect(DiffV.y, add3_1.u2)
+ annotation (Line(points={{-99,0},{-62,0},{-62,0}}, color={0,0,127}));
+ connect(VOTHSG, DiffV1.u1) annotation (Line(points={{-200,90},{-150,90},{-96,
+ 90},{-96,46},{-92,46}}, color={0,0,127}));
+ connect(VOEL, DiffV1.u2) annotation (Line(points={{-70,-200},{-70,-200},{-70,
+ -60},{-96,-60},{-96,34},{-92,34}}, color={0,0,127}));
+ connect(DiffV1.y, add3_1.u1) annotation (Line(points={{-69,40},{-66,40},{-66,
+ 8},{-62,8}}, color={0,0,127}));
+ connect(simpleLagLimVar.u, hV_GATE.p)
+ annotation (Line(points={{78,0},{60.625,0}}, color={0,0,127}));
+ connect(simpleLagLimVar.y, rotatingExciterLimited.I_C)
+ annotation (Line(points={{101,0},{118.75,0}}, color={0,0,127}));
+ connect(VT, gain.u) annotation (Line(points={{102,-120},{102,-92},{82,-92},{
+ 82,-82}}, color={0,0,127}));
+ connect(gain.y, simpleLagLimVar.outMin)
+ annotation (Line(points={{82,-59},{82,-36},{82,-14}}, color={0,0,127}));
+ connect(gain1.y, simpleLagLimVar.outMax) annotation (Line(points={{110,-59},{
+ 110,-59},{110,20},{98,20},{98,14}}, color={0,0,127}));
+ connect(gain1.u, gain.u) annotation (Line(points={{110,-82},{110,-92},{82,-92},
+ {82,-82}}, color={0,0,127}));
+ annotation (
+ Diagram(coordinateSystem(
+ extent={{-200,-200},{200,160}},
+ grid={2,2},
+ initialScale=0.1)),
+ Icon(coordinateSystem(
+ extent={{-200,-200},{200,160}},
+ grid={2,2},
+ initialScale=0.1), graphics={Text(
+ extent={{-120,154},{140,94}},
+ lineColor={28,108,200},
+ textString="ESDC1A"),Text(
+ extent={{-186,-60},{-150,-80}},
+ lineColor={28,108,200},
+ textString="VT")}),
+ Documentation(info="
+
+
+Reference |
+ESDC1A, PSS/E Manual |
+
+
+Last update |
+Major change - 2016-01-19 |
+
+
+Author |
+Tin Rabuzin, SmarTS Lab, KTH Royal Institute of Technology |
+
+
+Contact |
+luigiv@kth.se |
+
+
+"));
+ end ESDC2A;
+
+ model EXAC1
+ extends
+ OpenIPSL.Electrical.Controls.PSSE.ES.BaseClasses.BaseExciter;
+ import IslandedOperationControl.OpenIPSL.Electrical.Controls.PSSE.ES.BaseClasses.invFEX;
+ import IslandedOperationControl.OpenIPSL.NonElectrical.Functions.SE;
+ Modelica.Blocks.Interfaces.RealInput XADIFD "Field current" annotation (
+ Placement(transformation(
+ extent={{-10,-10},{10,10}},
+ rotation=90,
+ origin={150,-50}), iconTransformation(extent={{-210,-80},{-190,-60}})));
+ OpenIPSL.NonElectrical.Continuous.SimpleLagLim imLimitedSimpleLag(
+ K=K_A,
+ T=T_A,
+ outMin=V_RMIN,
+ outMax=V_RMAX,
+ y_start=VR0) annotation (Placement(transformation(extent={{60,-10},
+ {80,10}})));
+ parameter Real T_R=0 "Voltage input time constant (s)";
+ parameter Real T_B=0 "AVR lead-lag time constant (s)";
+ parameter Real T_C=0 "AVR lead-lag time constant (s)";
+ parameter Real K_A=400 "AVR gain (pu)";
+ parameter Real T_A=0.02 "AVR time constant (s)";
+ parameter Real V_RMAX=9 "Maximum AVR output (pu)";
+ parameter Real V_RMIN=-5.43 "Minimum AVR output (pu)";
+ parameter Real T_E=0.8 "Exciter time constant (s)";
+ parameter Real K_F=0.03 "Rate feedback gain (pu)";
+ parameter Real T_F=1 "Rate feedback time const (s)";
+ parameter Real K_C=0.2 "Rectifier load factor (pu)";
+ parameter Real K_D=0.48 "Exciter demagnetizing factor (pu)";
+ parameter Real K_E=1 "Exciter field factor (pu)";
+ parameter Real E_1=5.25 "Exciter saturation point 1 (pu)";
+ parameter Real E_2=7 "Exciter saturation point 2 (pu)";
+ parameter Real S_EE_1=0.03 "Saturation at E1";
+ parameter Real S_EE_2=0.1 "Saturation at E2";
+ Modelica.Blocks.Continuous.Derivative imDerivativeLag(
+ k=K_F,
+ T=T_F,
+ y_start=0,
+ initType=Modelica.Blocks.Types.Init.InitialOutput,
+ x_start=VFE0)
+ annotation (Placement(transformation(extent={{20,-60},{0,-40}})));
+ NonElectrical.Continuous.LeadLag leadLag(
+ K=1,
+ T1=T_C,
+ T2=T_B,
+ y_start=VR0/K_A,
+ x_start=VR0/K_A)
+ annotation (Placement(transformation(extent={{0,-10},{20,10}})));
+ Modelica.Blocks.Math.Add3 add3_1(k3=-1)
+ annotation (Placement(transformation(extent={{-60,-10},{-40,10}})));
+ BaseClasses.RectifierCommutationVoltageDrop rectifierCommutationVoltageDrop(
+ K_C=K_C)
+ annotation (Placement(transformation(extent={{140,-10},{160,10}})));
+ BaseClasses.RotatingExciterWithDemagnetizationLimited
+ rotatingExciterWithDemagnetizationLimited(
+ T_E=T_E,
+ K_E=K_E,
+ E_1=E_1,
+ E_2=E_2,
+ S_EE_1=S_EE_1,
+ S_EE_2=S_EE_2,
+ K_D=K_D,
+ Efd0=VE0)
+ annotation (Placement(transformation(extent={{100,-10},{120,10}})));
+ NonElectrical.Continuous.SimpleLag TransducerDelay(
+ K=1,
+ T=T_R,
+ y_start=ECOMP0)
+ annotation (Placement(transformation(extent={{-170,-10},{-150,10}})));
+ Modelica.Blocks.Math.Add3 add3_2 annotation (Placement(transformation(
+ extent={{-10,-10},{10,10}},
+ rotation=90,
+ origin={-100,-90})));
+ protected
+ parameter Real VR0(fixed=false);
+ parameter Real Ifd0(fixed=false);
+ parameter Real VE0(fixed=false);
+ parameter Real VFE0(fixed=false);
+ initial equation
+ Ifd0 = XADIFD;
+ // Finding initial value of excitation voltage, VE0, via going through conditions of FEX function
+ VE0 = invFEX(
+ K_C=K_C,
+ Efd0=Efd0,
+ Ifd0=Ifd0);
+ // Case IN>0 not checked because it will be resolved in the next iteration
+ VFE0 = VE0*(SE(
+ VE0,
+ S_EE_1,
+ S_EE_2,
+ E_1,
+ E_2) + K_E) + Ifd0*K_D;
+ VR0 = VFE0;
+ V_REF = VR0/K_A + ECOMP0;
+ equation
+ connect(leadLag.y, imLimitedSimpleLag.u)
+ annotation (Line(points={{21,0},{58,0}}, color={0,0,127}));
+ connect(add3_1.y, leadLag.u)
+ annotation (Line(points={{-39,0},{-22,0},{-2,0}}, color={0,0,127}));
+ connect(rectifierCommutationVoltageDrop.XADIFD, XADIFD)
+ annotation (Line(points={{150,-11},{150,-50}}, color={0,0,127}));
+ connect(rotatingExciterWithDemagnetizationLimited.EFD,
+ rectifierCommutationVoltageDrop.V_EX)
+ annotation (Line(points={{121.25,0},{139,0}}, color={0,0,127}));
+ connect(imLimitedSimpleLag.y, rotatingExciterWithDemagnetizationLimited.I_C)
+ annotation (Line(points={{81,0},{98.75,0}}, color={0,0,127}));
+ connect(rectifierCommutationVoltageDrop.EFD, EFD)
+ annotation (Line(points={{161,0},{210,0}}, color={0,0,127}));
+ connect(rotatingExciterWithDemagnetizationLimited.XADIFD, XADIFD) annotation (
+ Line(points={{110,-11.25},{112,-11.25},{112,-36},{150,-36},{150,-50}},
+ color={0,0,127}));
+ connect(imDerivativeLag.u, rotatingExciterWithDemagnetizationLimited.V_FE)
+ annotation (Line(points={{22,-50},{56,-50},{90,-50},{90,-6.25},{98.75,-6.25}},
+ color={0,0,127}));
+ connect(DiffV.y, add3_1.u2)
+ annotation (Line(points={{-99,0},{-80,0},{-62,0}}, color={0,0,127}));
+ connect(ECOMP, TransducerDelay.u)
+ annotation (Line(points={{-200,0},{-172,0}}, color={0,0,127}));
+ connect(TransducerDelay.y, DiffV.u2) annotation (Line(points={{-149,0},{-132,
+ 0},{-132,-6},{-122,-6}}, color={0,0,127}));
+ connect(VOEL, add3_2.u3) annotation (Line(points={{-70,-200},{-70,-114},{-92,
+ -114},{-92,-102}}, color={0,0,127}));
+ connect(VUEL, add3_2.u2) annotation (Line(points={{-130,-200},{-130,-114},{-100,
+ -114},{-100,-102}}, color={0,0,127}));
+ connect(VOTHSG, add3_2.u1) annotation (Line(points={{-200,90},{-178,90},{-178,
+ -110},{-108,-110},{-108,-102}}, color={0,0,127}));
+ connect(add3_2.y, add3_1.u1) annotation (Line(points={{-100,-79},{-98,-79},{-98,
+ -20},{-90,-20},{-90,8},{-62,8}}, color={0,0,127}));
+ connect(imDerivativeLag.y, add3_1.u3) annotation (Line(points={{-1,-50},{-26,
+ -50},{-70,-50},{-70,-8},{-62,-8}}, color={0,0,127}));
+ annotation (
+ Diagram(coordinateSystem(extent={{-200,-200},{200,160}}, initialScale=0.1)),
+ Icon(coordinateSystem(extent={{-200,-200},{200,160}}, initialScale=0.1),
+ graphics={Text(
+ extent={{-184,-62},{-114,-82}},
+ lineColor={28,108,200},
+ textString="XADIFD"),Text(
+ extent={{-120,158},{140,98}},
+ lineColor={28,108,200},
+ textString="EXAC1")}),
+ Documentation(info="
+
+
+Reference |
+EXAC2, PSS/E Manual |
+
+
+Last update |
+2015-11-26 |
+
+
+Author |
+Tin Rabuzin, SmarTS Lab, KTH Royal Institute of Technology |
+
+
+Contact |
+luigiv@kth.se |
+
+
+"));
+ end EXAC1;
+
+ model EXAC2
+ extends
+ OpenIPSL.Electrical.Controls.PSSE.ES.BaseClasses.BaseExciter;
+ import IslandedOperationControl.OpenIPSL.Electrical.Controls.PSSE.ES.BaseClasses.invFEX;
+ import IslandedOperationControl.OpenIPSL.NonElectrical.Functions.SE;
+ Modelica.Blocks.Interfaces.RealInput XADIFD "Field current" annotation (
+ Placement(
+ visible=true,
+ transformation(
+ origin={160,-48},
+ extent={{-10,-10},{10,10}},
+ rotation=90),
+ iconTransformation(
+ origin={-198,-70},
+ extent={{-10,-10},{10,10}},
+ rotation=0)));
+ OpenIPSL.NonElectrical.Continuous.SimpleLagLim imLimitedSimpleLag(
+ K=K_A,
+ T=T_A,
+ outMax=V_AMAX,
+ outMin=V_AMIN,
+ y_start=VA0) annotation (Placement(transformation(extent={{-20,
+ -10},{0,10}})));
+ parameter Real T_R=0 "Voltage input time constant (s)";
+ parameter Real T_B=0 "AVR lead-lag time constant (s)";
+ parameter Real T_C=0 "AVR lead-lag time constant (s)";
+ parameter Real K_A=400 "AVR gain (pu)";
+ parameter Real T_A=0.02 "AVR time constant (s)";
+ parameter Real K_B;
+ parameter Real V_RMAX=9 "Maximum AVR output (pu)";
+ parameter Real V_RMIN=-5.43 "Minimum AVR output (pu)";
+ parameter Real V_AMAX=9 "Maximum AVR output (pu)";
+ parameter Real V_AMIN=-5.43 "Minimum AVR output (pu)";
+ parameter Real T_E=0.8 "Exciter time constant (s)";
+ parameter Real K_L;
+ parameter Real K_H;
+ parameter Real K_F=0.03 "Rate feedback gain (pu)";
+ parameter Real T_F=1 "Rate feedback time const (s)";
+ parameter Real K_C=0.2 "Rectifier load factor (pu)";
+ parameter Real K_D=0.48 "Exciter demagnetizing factor (pu)";
+ parameter Real K_E=1 "Exciter field factor (pu)";
+ parameter Real V_LR "Limit value of excitation voltage (pu)";
+ parameter Real E_1=5.25 "Exciter saturation point 1 (pu)";
+ parameter Real E_2=7 "Exciter saturation point 2 (pu)";
+ parameter Real S_EE_1=0.03 "Saturation at E1";
+ parameter Real S_EE_2=0.1 "Saturation at E2";
+ Modelica.Blocks.Continuous.Derivative imDerivativeLag(
+ k=K_F,
+ T=T_F,
+ y_start=0,
+ initType=Modelica.Blocks.Types.Init.InitialOutput,
+ x_start=VFE0)
+ annotation (Placement(transformation(extent={{20,-100},{0,-80}})));
+ NonElectrical.Continuous.LeadLag leadLag(
+ K=1,
+ T1=T_C,
+ T2=T_B,
+ y_start=VA0/K_A,
+ x_start=VA0/K_A)
+ annotation (Placement(transformation(extent={{-50,-10},{-30,10}})));
+ Modelica.Blocks.Math.Add3 add3_1(k3=-1)
+ annotation (Placement(transformation(extent={{-80,-10},{-60,10}})));
+ BaseClasses.RectifierCommutationVoltageDrop rectifierCommutationVoltageDrop(
+ K_C=K_C)
+ annotation (Placement(transformation(extent={{170,-10},{190,10}})));
+ BaseClasses.RotatingExciterWithDemagnetizationLimited
+ rotatingExciterWithDemagnetizationLimited(
+ T_E=T_E,
+ K_E=K_E,
+ E_1=E_1,
+ E_2=E_2,
+ S_EE_1=S_EE_1,
+ S_EE_2=S_EE_2,
+ K_D=K_D,
+ Efd0=VE0)
+ annotation (Placement(transformation(extent={{130,-10},{150,10}})));
+ NonElectrical.Continuous.SimpleLag TransducerDelay(
+ K=1,
+ T=T_R,
+ y_start=ECOMP0)
+ annotation (Placement(transformation(extent={{-170,-10},{-150,10}})));
+ Modelica.Blocks.Math.Add3 add3_2 annotation (Placement(transformation(
+ extent={{-10,-10},{10,10}},
+ rotation=90,
+ origin={-100,-90})));
+ Modelica.Blocks.Math.Add DiffV1(k2=-1)
+ annotation (Placement(transformation(extent={{20,-10},{40,10}})));
+ Modelica.Blocks.Math.Gain gain(k=K_H)
+ annotation (Placement(transformation(extent={{60,-80},{40,-60}})));
+ OpenIPSL.NonElectrical.Logical.LV_GATE lV_GATE
+ annotation (Placement(transformation(extent={{46,-6},{68,6}})));
+ Modelica.Blocks.Math.Gain gain1(k=K_B)
+ annotation (Placement(transformation(extent={{76,-8},{92,8}})));
+ Modelica.Blocks.Nonlinear.Limiter limiter(uMax=V_RMAX, uMin=V_RMIN)
+ annotation (Placement(transformation(extent={{100,-10},{120,10}})));
+ Modelica.Blocks.Math.Gain gain3(k=K_L) annotation (Placement(transformation(
+ extent={{10,-10},{-10,10}},
+ rotation=0,
+ origin={62,-30})));
+ Modelica.Blocks.Math.Add add3(k1=-1, k2=+1) annotation (Placement(
+ transformation(
+ extent={{-10,-10},{10,10}},
+ rotation=180,
+ origin={90,-30})));
+ Modelica.Blocks.Sources.Constant Vref1(k=V_LR) annotation (Placement(
+ transformation(
+ extent={{10,-10},{-10,10}},
+ rotation=0,
+ origin={150,-90})));
+ protected
+ parameter Real VA0(fixed=false);
+ parameter Real VR0(fixed=false);
+ parameter Real VFE0(fixed=false);
+ parameter Real Ifd0(fixed=false);
+ parameter Real VE0(fixed=false);
+ initial equation
+ Ifd0 = XADIFD;
+ // Finding initial value of excitation voltage, VE0, via going through conditions of FEX function
+ VE0 = invFEX(
+ K_C=K_C,
+ Efd0=Efd0,
+ Ifd0=Ifd0);
+ // Case IN>0 not checked because it will be resolved in the next iteration
+ VFE0 = VE0*(SE(
+ VE0,
+ S_EE_1,
+ S_EE_2,
+ E_1,
+ E_2) + K_E) + Ifd0*K_D;
+ VR0 = VFE0;
+ VA0 = VR0/K_B + VFE0*K_H;
+ V_REF = VA0/K_A + ECOMP0;
+ equation
+ connect(rectifierCommutationVoltageDrop.XADIFD, XADIFD) annotation (Line(
+ points={{180,-11},{180,-30.5},{160,-30.5},{160,-48}}, color={0,0,127}));
+ connect(rotatingExciterWithDemagnetizationLimited.XADIFD, XADIFD) annotation (
+ Line(points={{140,-11.25},{140,-30},{160,-30},{160,-48}}, color={0,0,127}));
+ connect(leadLag.y, imLimitedSimpleLag.u)
+ annotation (Line(points={{-29,0},{-29,0},{-22,0}}, color={0,0,127}));
+ connect(add3_1.y, leadLag.u)
+ annotation (Line(points={{-59,0},{-52,0}}, color={0,0,127}));
+ connect(rotatingExciterWithDemagnetizationLimited.EFD,
+ rectifierCommutationVoltageDrop.V_EX)
+ annotation (Line(points={{151.25,0},{151.25,0},{169,0}}, color={0,0,127}));
+ connect(rectifierCommutationVoltageDrop.EFD, EFD)
+ annotation (Line(points={{191,0},{192,0},{210,0}}, color={0,0,127}));
+ connect(imDerivativeLag.u, rotatingExciterWithDemagnetizationLimited.V_FE)
+ annotation (Line(points={{22,-90},{22,-90},{124,-90},{124,-6.25},{128.75,-6.25}},
+ color={0,0,127}));
+ connect(DiffV.y, add3_1.u2)
+ annotation (Line(points={{-99,0},{-82,0}}, color={0,0,127}));
+ connect(ECOMP, TransducerDelay.u)
+ annotation (Line(points={{-200,0},{-172,0}}, color={0,0,127}));
+ connect(TransducerDelay.y, DiffV.u2) annotation (Line(points={{-149,0},{-132,
+ 0},{-132,-6},{-122,-6}}, color={0,0,127}));
+ connect(VOEL, add3_2.u3) annotation (Line(points={{-70,-200},{-70,-114},{-92,
+ -114},{-92,-102}}, color={0,0,127}));
+ connect(VUEL, add3_2.u2) annotation (Line(points={{-130,-200},{-130,-114},{-100,
+ -114},{-100,-102}}, color={0,0,127}));
+ connect(VOTHSG, add3_2.u1) annotation (Line(points={{-200,90},{-178,90},{-178,
+ -110},{-108,-110},{-108,-102}}, color={0,0,127}));
+ connect(add3_2.y, add3_1.u1) annotation (Line(points={{-100,-79},{-98,-79},{-98,
+ -20},{-90,-20},{-90,8},{-82,8}}, color={0,0,127}));
+ connect(imDerivativeLag.y, add3_1.u3) annotation (Line(points={{-1,-90},{-1,-90},
+ {-86,-90},{-86,-8},{-82,-8}}, color={0,0,127}));
+ connect(imLimitedSimpleLag.y, DiffV1.u1)
+ annotation (Line(points={{1,0},{18,0},{18,6}}, color={0,0,127}));
+ connect(gain.y, DiffV1.u2) annotation (Line(points={{39,-70},{10,-70},{10,-6},
+ {18,-6}}, color={0,0,127}));
+ connect(gain.u, rotatingExciterWithDemagnetizationLimited.V_FE) annotation (
+ Line(points={{62,-70},{124,-70},{124,-6.25},{128.75,-6.25}}, color={0,0,
+ 127}));
+ connect(limiter.y, rotatingExciterWithDemagnetizationLimited.I_C)
+ annotation (Line(points={{121,0},{128.75,0},{128.75,0}}, color={0,0,127}));
+ connect(add3.u1, rotatingExciterWithDemagnetizationLimited.V_FE) annotation (
+ Line(points={{102,-36},{124,-36},{124,-6.25},{128.75,-6.25}}, color={0,0,
+ 127}));
+ connect(gain3.u, add3.y)
+ annotation (Line(points={{74,-30},{79,-30}}, color={0,0,127}));
+ connect(Vref1.y, add3.u2) annotation (Line(points={{139,-90},{130,-90},{130,-24},
+ {102,-24}}, color={0,0,127}));
+ connect(gain1.y, limiter.u)
+ annotation (Line(points={{92.8,0},{94,0},{98,0}}, color={0,0,127}));
+ connect(lV_GATE.p, gain1.u)
+ annotation (Line(points={{66.625,0},{74.4,0}}, color={0,0,127}));
+ connect(gain3.y, lV_GATE.n2) annotation (Line(points={{51,-30},{44.625,-30},{
+ 44.625,-3}}, color={0,0,127}));
+ connect(DiffV1.y, lV_GATE.n1)
+ annotation (Line(points={{41,0},{44.625,0},{44.625,3}}, color={0,0,127}));
+ annotation (
+ Diagram(coordinateSystem(extent={{-200,-200},{200,160}}, initialScale=0.1)),
+ Icon(coordinateSystem(extent={{-200,-200},{200,160}}, initialScale=0.1),
+ graphics={Text(
+ extent={{-184,-62},{-114,-82}},
+ lineColor={28,108,200},
+ textString="XADIFD"),Text(
+ extent={{-120,158},{140,98}},
+ lineColor={28,108,200},
+ textString="EXAC2")}),
+ Documentation(info="
+
+
+Reference |
+EXAC2, PSS/E Manual |
+
+
+Last update |
+2015-11-26 |
+
+
+Author |
+Tin Rabuzin, SmarTS Lab, KTH Royal Institute of Technology |
+
+
+Contact |
+luigiv@kth.se |
+
+
+"));
+ end EXAC2;
+
+ model SCRX "Bus Fed or Solid Fed Static Exciter"
+ extends
+ OpenIPSL.Electrical.Controls.PSSE.ES.BaseClasses.BaseExciter;
+ parameter Real T_AT_B;
+ parameter Real T_B;
+ parameter Real K;
+ parameter Real T_E;
+ parameter Real E_MIN;
+ parameter Real E_MAX;
+ parameter Boolean C_SWITCH;
+ parameter Real r_cr_fd;
+ Modelica.Blocks.Math.Add3 V_erro
+ annotation (Placement(transformation(extent={{-60,-10},{-40,10}})));
+ OpenIPSL.NonElectrical.Continuous.LeadLag imLeadLag(
+ K=1,
+ y_start=VR0/K,
+ T1=T_AT_B*T_B,
+ T2=T_B) annotation (Placement(transformation(extent={{-20,-10},
+ {0,10}})));
+ OpenIPSL.NonElectrical.Logical.NegCurLogic negCurLogic(
+ nstartvalue=Efd0, RC_rfd=r_cr_fd) annotation (Placement(
+ transformation(extent={{150,-10},{180,10}})));
+ NonElectrical.Continuous.SimpleLagLim simpleLagLim(
+ K=K,
+ T=T_E,
+ y_start=VR0,
+ outMax=E_MAX,
+ outMin=E_MIN)
+ annotation (Placement(transformation(extent={{10,-10},{30,10}})));
+ Modelica.Blocks.Logical.Switch switch1
+ annotation (Placement(transformation(extent={{72,18},{84,30}})));
+ Modelica.Blocks.Sources.BooleanConstant booleanConstant(k=C_SWITCH)
+ annotation (Placement(transformation(extent={{40,46},{52,58}})));
+ Modelica.Blocks.Math.Product product
+ annotation (Placement(transformation(extent={{42,14},{54,26}})));
+ Modelica.Blocks.Math.Add DiffV1(k2=-1) annotation (Placement(transformation(
+ extent={{-10,-10},{10,10}},
+ rotation=90,
+ origin={-100,-150})));
+ protected
+ parameter Real VR0(fixed=false);
+ initial equation
+ if not C_SWITCH then
+ VR0 = Efd0/ECOMP0;
+ V_REF = VR0/K + ECOMP0;
+ else
+ VR0 = Efd0;
+ V_REF = VR0/K + ECOMP0;
+ end if;
+ equation
+ connect(V_erro.y, imLeadLag.u)
+ annotation (Line(points={{-39,0},{-39,0},{-22,0}}, color={0,0,127}));
+ connect(imLeadLag.y, simpleLagLim.u)
+ annotation (Line(points={{1,0},{8,0}}, color={0,0,127}));
+ connect(booleanConstant.y, switch1.u2) annotation (Line(points={{52.6,52},{66,
+ 52},{66,24},{70.8,24}}, color={255,0,255}));
+ connect(product.u2, simpleLagLim.y) annotation (Line(points={{40.8,16.4},{36,
+ 16.4},{36,0},{31,0}}, color={0,0,127}));
+ connect(product.y, switch1.u3) annotation (Line(points={{54.6,20},{70.8,20},{
+ 70.8,19.2}}, color={0,0,127}));
+ connect(switch1.u1, simpleLagLim.y) annotation (Line(points={{70.8,28.8},{62,
+ 28.8},{62,0},{31,0}}, color={0,0,127}));
+ connect(ECOMP, DiffV.u2) annotation (Line(points={{-200,0},{-132,0},{-132,-6},
+ {-122,-6}}, color={0,0,127}));
+ connect(DiffV.y, V_erro.u2)
+ annotation (Line(points={{-99,0},{-62,0}}, color={0,0,127}));
+ connect(VOTHSG, V_erro.u1) annotation (Line(points={{-200,90},{-140,90},{-80,
+ 90},{-80,8},{-62,8}}, color={0,0,127}));
+ connect(DiffV1.u2, VOEL) annotation (Line(points={{-94,-162},{-94,-170},{-70,
+ -170},{-70,-200}}, color={0,0,127}));
+ connect(DiffV1.u1, VUEL) annotation (Line(points={{-106,-162},{-106,-170},{-130,
+ -170},{-130,-200}}, color={0,0,127}));
+ connect(DiffV1.y, V_erro.u3) annotation (Line(points={{-100,-139},{-100,-139},
+ {-100,-20},{-80,-20},{-80,-8},{-62,-8}}, color={0,0,127}));
+ connect(negCurLogic.Efd, EFD)
+ annotation (Line(points={{182.5,0},{210,0},{210,0}}, color={0,0,127}));
+ connect(product.u1, DiffV.u2) annotation (Line(points={{40.8,23.6},{-160,23.6},
+ {-160,0},{-132,0},{-132,-6},{-122,-6}}, color={0,0,127}));
+ connect(switch1.y, negCurLogic.Vd) annotation (Line(points={{84.6,24},{120,24},
+ {120,5},{147.5,5}}, color={0,0,127}));
+ connect(XADIFD, negCurLogic.XadIfd) annotation (Line(points={{80,-200},{80,-5},{147.5,-5}}, color={0,0,127}));
+ annotation (
+ Diagram(coordinateSystem(extent={{-200,-200},{200,160}}, initialScale=0.1)),
+ Icon(coordinateSystem(
+ preserveAspectRatio=true,
+ extent={{-200,-200},{200,160}},
+ initialScale=0.1), graphics={Text(
+ extent={{-186,-62},{-116,-82}},
+ lineColor={28,108,200},
+ textString="XADIFD"),Text(
+ extent={{-100,156},{100,96}},
+ lineColor={28,108,200},
+ textString="SCRX")}),
+ Documentation(info="
+
+
+Reference |
+PSS/E Manual |
+
+
+Last update |
+Unknown |
+
+
+Author |
+Mengjia Zhang,SmarTS Lab, KTH Royal Institute of Technology |
+
+
+Contact |
+luigiv@kth.se |
+
+
+"));
+ end SCRX;
+
+ model IEEET1 "IEEE Type 1 excitation system"
+ extends
+ OpenIPSL.Electrical.Controls.PSSE.ES.BaseClasses.BaseExciter;
+ import IslandedOperationControl.OpenIPSL.NonElectrical.Functions.SE;
+ import
+ IslandedOperationControl.OpenIPSL.Electrical.Controls.PSSE.ES.BaseClasses.calculate_dc_exciter_params;
+ parameter Real T_R=1 "Voltage input time constant (s)";
+ parameter Real K_A=40 "AVR gain";
+ parameter Real T_A=0.04 "AVR time constant (s)";
+ parameter Real V_RMAX=7.3 "Maximum AVR output (pu)";
+ parameter Real V_RMIN=-7.3 "Minimum AVR output (pu)";
+ parameter Real K_E=1 "Exciter field gain, s";
+ parameter Real T_E=0.8 "Exciter time constant (s)";
+ parameter Real K_F=0.03 "Rate feedback gain (pu)";
+ parameter Real T_F=1 "Rate feedback time constant (s)";
+ parameter Real E_1=2.400 "Exciter saturation point 1 (pu)";
+ parameter Real S_EE_1=0.30000E-01 "Saturation at E1";
+ parameter Real E_2=5.0000 "Exciter saturation point 2 (pu)";
+ parameter Real S_EE_2=0.50000 "Saturation at E2";
+ Modelica.Blocks.Math.Add3 sum2
+ annotation (Placement(transformation(extent={{-60,-10},{-40,10}})));
+ Modelica.Blocks.Math.Add sum3(k2=-1)
+ annotation (Placement(transformation(extent={{-20,-10},{0,10}})));
+ Modelica.Blocks.Continuous.Derivative derivativeLag(
+ k=K_F,
+ T=T_F,
+ y_start=0,
+ initType=Modelica.Blocks.Types.Init.InitialOutput,
+ x_start=Efd0)
+ annotation (Placement(transformation(extent={{80,-60},{60,-40}})));
+ NonElectrical.Continuous.SimpleLagLim simpleLagLim(
+ K=K_A,
+ T=T_A,
+ y_start=VR0,
+ outMax=V_RMAX,
+ outMin=V_RMIN)
+ annotation (Placement(transformation(extent={{60,-10},{80,10}})));
+ BaseClasses.RotatingExciter rotatingExciter(
+ T_E=T_E,
+ E_1=E_1,
+ E_2=E_2,
+ S_EE_1=S_EE_1,
+ S_EE_2=S_EE_2,
+ Efd0=Efd0,
+ K_E=KE0) annotation (Placement(transformation(extent={{140,-10},{160,10}})));
+ NonElectrical.Continuous.SimpleLag TransducerDelay(
+ K=1,
+ T=T_R,
+ y_start=ECOMP0)
+ annotation (Placement(transformation(extent={{-170,-10},{-150,10}})));
+ Modelica.Blocks.Math.Add DiffV1 annotation (Placement(transformation(
+ extent={{-10,-10},{10,10}},
+ rotation=90,
+ origin={-100,-130})));
+ protected
+ parameter Real VRMAX0(fixed=false) "Maximum AVR output (pu)";
+ parameter Real VRMIN0(fixed=false) "Minimum AVR output (pu)";
+ parameter Real KE0(fixed=false) "Exciter field gain, s";
+ parameter Real SE_Efd0(fixed=false);
+ parameter Real VR0(fixed=false);
+ initial equation
+ SE_Efd0 = SE(
+ Efd0,
+ S_EE_1,
+ S_EE_2,
+ E_1,
+ E_2);
+ (VRMAX0,VRMIN0,KE0) = calculate_dc_exciter_params(
+ V_RMAX,
+ V_RMIN,
+ K_E,
+ E_2,
+ S_EE_2,
+ Efd0,
+ SE_Efd0);
+ VR0 = Efd0*(KE0 + SE_Efd0);
+ V_REF = VR0/K_A + ECOMP0;
+ equation
+ connect(sum3.u2, derivativeLag.y) annotation (Line(points={{-22,-6},{-34,-6},
+ {-34,-28},{-34,-50},{59,-50}}, color={0,0,127}));
+ connect(sum3.y, simpleLagLim.u)
+ annotation (Line(points={{1,0},{58,0}}, color={0,0,127}));
+ connect(rotatingExciter.EFD, EFD)
+ annotation (Line(points={{161.25,0},{210,0}}, color={0,0,127}));
+ connect(simpleLagLim.y, rotatingExciter.I_C)
+ annotation (Line(points={{81,0},{138.75,0}}, color={0,0,127}));
+ connect(derivativeLag.u, EFD) annotation (Line(points={{82,-50},{180,-50},{
+ 180,0},{210,0}}, color={0,0,127}));
+ connect(ECOMP, TransducerDelay.u)
+ annotation (Line(points={{-200,0},{-172,0}}, color={0,0,127}));
+ connect(TransducerDelay.y, DiffV.u2) annotation (Line(points={{-149,0},{-140,
+ 0},{-132,0},{-132,-6},{-122,-6}}, color={0,0,127}));
+ connect(sum2.y, sum3.u1) annotation (Line(points={{-39,0},{-34,0},{-34,6},{-22,
+ 6}}, color={0,0,127}));
+ connect(DiffV.y, sum2.u2)
+ annotation (Line(points={{-99,0},{-62,0},{-62,0}}, color={0,0,127}));
+ connect(VOTHSG, sum2.u1) annotation (Line(points={{-200,90},{-138,90},{-80,90},
+ {-80,8},{-62,8}}, color={0,0,127}));
+ connect(DiffV1.u1, VUEL) annotation (Line(points={{-106,-142},{-106,-142},{-106,
+ -160},{-130,-160},{-130,-200}}, color={0,0,127}));
+ connect(DiffV1.u2, VOEL) annotation (Line(points={{-94,-142},{-94,-160},{-70,
+ -160},{-70,-200}}, color={0,0,127}));
+ connect(DiffV1.y, sum2.u3) annotation (Line(points={{-100,-119},{-100,-20},{-80,
+ -20},{-80,-8},{-62,-8}}, color={0,0,127}));
+ annotation (
+ Diagram(coordinateSystem(extent={{-200,-200},{200,160}}, initialScale=0.1)),
+ Icon(coordinateSystem(extent={{-200,-200},{200,160}}, initialScale=0.1),
+ graphics={Text(
+ extent={{-100,154},{100,94}},
+ lineColor={28,108,200},
+ textString="IEEET1")}),
+ Documentation(info="
+
+
+Reference |
+PSS/E Manual |
+
+
+Last update |
+2016-04-29 |
+
+
+Author |
+Tin Rabuzin,SmarTS Lab, KTH Royal Institute of Technology |
+
+
+Contact |
+luigiv@kth.se |
+
+
+"));
+ end IEEET1;
+
+ model IEEET2 "IEEE Type 2 excitation system"
+ extends
+ OpenIPSL.Electrical.Controls.PSSE.ES.BaseClasses.BaseExciter;
+ import
+ IslandedOperationControl.OpenIPSL.Electrical.Controls.PSSE.ES.BaseClasses.calculate_dc_exciter_params;
+ parameter Real T_R=0.02 "Voltage input time constant (s)";
+ parameter Real K_A=200.0 "AVR gain";
+ parameter Real T_A=0.001 "AVR time constant (s)";
+ parameter Real V_RMAX=6.08 "Maximum AVR output (pu)";
+ parameter Real V_RMIN=-6.08 "Minimum AVR output (pu)";
+ parameter Real K_E=1 "Exciter field gain";
+ parameter Real T_E=0.55 "Exciter time constant s";
+ parameter Real K_F=0.06 "Rate feedback gain (pu)";
+ parameter Real T_F1=0.3 "Rate feedback time constant (s)";
+ parameter Real T_F2=0.6 "Rate feedback time constant (s)";
+ parameter Real E_1=2.85 "Exciter saturation point 1 (pu)";
+ parameter Real S_EE_1=0.3 "Saturation at E_1";
+ parameter Real E_2=3.8 "Exciter saturation point 2 (pu)";
+ parameter Real S_EE_2=0.6 "Saturation at E_2";
+ Modelica.Blocks.Math.Add3 add3_1
+ annotation (Placement(transformation(extent={{-60,-10},{-40,10}})));
+ Modelica.Blocks.Math.Add add(k2=-1)
+ annotation (Placement(transformation(extent={{-20,-10},{0,10}})));
+ NonElectrical.Continuous.SimpleLag simpleLag(
+ K=1,
+ T=T_F2,
+ y_start=0) annotation (Placement(transformation(extent={{20,-60},{0,-40}})));
+ Modelica.Blocks.Continuous.Derivative derivativeLag(
+ k=K_F,
+ y_start=0,
+ T=T_F1,
+ initType=Modelica.Blocks.Types.Init.InitialOutput,
+ x_start=VR0)
+ annotation (Placement(transformation(extent={{80,-60},{60,-40}})));
+ NonElectrical.Continuous.SimpleLagLim simpleLagLim(
+ K=K_A,
+ T=T_A,
+ y_start=VR0,
+ outMax=V_RMAX0,
+ outMin=V_RMIN0)
+ annotation (Placement(transformation(extent={{60,-10},{80,10}})));
+ BaseClasses.RotatingExciter rotatingExciter(
+ T_E=T_E,
+ K_E=K_E0,
+ E_1=E_1,
+ E_2=E_2,
+ S_EE_1=S_EE_1,
+ S_EE_2=S_EE_2,
+ Efd0=Efd0)
+ annotation (Placement(transformation(extent={{140,-10},{160,10}})));
+ NonElectrical.Continuous.SimpleLag TransducerDelay(
+ K=1,
+ T=T_R,
+ y_start=ECOMP0)
+ annotation (Placement(transformation(extent={{-170,-10},{-150,10}})));
+ Modelica.Blocks.Math.Add Limiters annotation (Placement(transformation(
+ extent={{-10,-10},{10,10}},
+ rotation=90,
+ origin={-100,-150})));
+ protected
+ parameter Real V_RMAX0(fixed=false);
+ parameter Real V_RMIN0(fixed=false);
+ parameter Real K_E0(fixed=false);
+ parameter Real Efd0(fixed=false);
+ parameter Real SE_Efd0(fixed=false);
+ parameter Real VR0(fixed=false);
+ initial equation
+ SE_Efd0 = OpenIPSL.NonElectrical.Functions.SE(
+ EFD0,
+ S_EE_1,
+ S_EE_2,
+ E_1,
+ E_2);
+ (V_RMAX0,V_RMIN0,K_E0) = calculate_dc_exciter_params(
+ V_RMAX,
+ V_RMIN,
+ K_E,
+ E_2,
+ S_EE_2,
+ Efd0,
+ SE_Efd0);
+ VR0 = Efd0*(K_E0 + SE_Efd0);
+ V_REF = VR0/K_A + ECOMP0;
+ equation
+ connect(add3_1.y, add.u1) annotation (Line(points={{-39,0},{-33.65,0},{-33.65,
+ 6},{-22,6}}, color={0,0,127}));
+ connect(simpleLag.y, add.u2) annotation (Line(points={{-1,-50},{-34,-50},{-34,
+ -6},{-22,-6}}, color={0,0,127}));
+ connect(simpleLag.u, derivativeLag.y)
+ annotation (Line(points={{22,-50},{59,-50}}, color={0,0,127}));
+ connect(add.y, simpleLagLim.u)
+ annotation (Line(points={{1,0},{58,0}}, color={0,0,127}));
+ connect(rotatingExciter.EFD, EFD)
+ annotation (Line(points={{161.25,0},{210,0}}, color={0,0,127}));
+ connect(ECOMP, TransducerDelay.u)
+ annotation (Line(points={{-200,0},{-172,0},{-172,0}}, color={0,0,127}));
+ connect(TransducerDelay.y, DiffV.u2) annotation (Line(points={{-149,0},{-132,
+ 0},{-132,-6},{-122,-6}}, color={0,0,127}));
+ connect(simpleLagLim.y, rotatingExciter.I_C)
+ annotation (Line(points={{81,0},{122,0},{138.75,0}}, color={0,0,127}));
+ connect(DiffV.y, add3_1.u2)
+ annotation (Line(points={{-99,0},{-62,0},{-62,0}}, color={0,0,127}));
+ connect(VOTHSG, add3_1.u1) annotation (Line(points={{-200,90},{-80,90},{-80,8},
+ {-62,8}}, color={0,0,127}));
+ connect(VUEL, Limiters.u1) annotation (Line(points={{-130,-200},{-130,-172},{
+ -106,-172},{-106,-162}}, color={0,0,127}));
+ connect(Limiters.u2, VOEL) annotation (Line(points={{-94,-162},{-94,-172},{-70,
+ -172},{-70,-200}}, color={0,0,127}));
+ connect(Limiters.y, add3_1.u3) annotation (Line(points={{-100,-139},{-100,-139},
+ {-100,-20},{-80,-20},{-80,-8},{-62,-8}}, color={0,0,127}));
+ connect(derivativeLag.u, rotatingExciter.I_C) annotation (Line(points={{82,-50},
+ {120,-50},{120,0},{138.75,0}}, color={0,0,127}));
+ annotation (
+ Diagram(coordinateSystem(extent={{-200,-200},{200,160}}, initialScale=0.1)),
+ Icon(coordinateSystem(
+ preserveAspectRatio=true,
+ extent={{-200,-200},{200,160}},
+ initialScale=0.1), graphics={Text(
+ extent={{-100,152},{100,92}},
+ lineColor={28,108,200},
+ textString="IEEET2")}),
+ Documentation(info="
+
+
+Reference |
+PSS/E Manual |
+
+
+Last update |
+2016-04-29 |
+
+
+Author |
+Tin Rabuzin,SmarTS Lab, KTH Royal Institute of Technology |
+
+
+Contact |
+luigiv@kth.se |
+
+
+"));
+ end IEEET2;
+
+ model EXST1 "IEEE Type AC2A Excitation System"
+ extends
+ OpenIPSL.Electrical.Controls.PSSE.ES.BaseClasses.BaseExciter;
+ parameter Real T_R=0.02;
+ parameter Real V_IMAX=0.2;
+ parameter Real V_IMIN=0;
+ parameter Real T_C=1;
+ parameter Real T_B=1;
+ parameter Real K_A=80;
+ parameter Real T_A=0.05;
+ parameter Real V_RMAX=8;
+ parameter Real V_RMIN=-3;
+ parameter Real K_C=0.2;
+ parameter Real K_F=0.1;
+ parameter Real T_F=1;
+ OpenIPSL.NonElectrical.Continuous.LeadLag imLeadLag(
+ K=1,
+ T1=T_C,
+ T2=T_B,
+ y_start=Efd0/K_A,
+ x_start=Efd0/K_A) annotation (Placement(transformation(extent={
+ {40,-10},{60,10}})));
+ Modelica.Blocks.Nonlinear.Limiter limiter(uMax=V_IMAX, uMin=V_IMIN)
+ annotation (Placement(transformation(extent={{0,-10},{20,10}})));
+ NonElectrical.Continuous.SimpleLag Vm1(
+ y_start=Efd0,
+ K=1,
+ T=T_A) annotation (Placement(transformation(
+ extent={{-10,-10},{10,10}},
+ rotation=0,
+ origin={130,0})));
+ Modelica.Blocks.Math.Gain K_a(k=K_A) annotation (Placement(transformation(
+ extent={{-10,-10},{10,10}},
+ rotation=0,
+ origin={90,0})));
+ Modelica.Blocks.Continuous.Derivative imDerivativeLag(
+ k=K_F,
+ T=T_F,
+ y_start=0,
+ initType=Modelica.Blocks.Types.Init.InitialOutput)
+ annotation (Placement(transformation(extent={{92,-70},{72,-50}})));
+ NonElectrical.Continuous.SimpleLag TransducerDelay(
+ K=1,
+ T=T_R,
+ y_start=ECOMP0)
+ annotation (Placement(transformation(extent={{-170,-10},{-150,10}})));
+ Modelica.Blocks.Math.Add3 add3_2
+ annotation (Placement(transformation(extent={{-80,-10},{-60,10}})));
+ Modelica.Blocks.Math.Add Limiters annotation (Placement(transformation(
+ extent={{-10,-10},{10,10}},
+ rotation=90,
+ origin={-100,-150})));
+ Modelica.Blocks.Math.Feedback feedback
+ annotation (Placement(transformation(extent={{-40,-10},{-20,10}})));
+ protected
+ Modelica.Blocks.Interfaces.RealOutput EFD1 annotation (Placement(
+ transformation(extent={{180,-10},{200,10}}), iconTransformation(extent=
+ {{302,-64},{322,-44}})));
+ initial equation
+ V_REF = Efd0/K_A + ECOMP0;
+ equation
+ if EFD > ECOMP*V_RMAX - K_C*XADIFD then
+ EFD = ECOMP*V_RMAX - K_C*XADIFD;
+ elseif EFD < ECOMP*V_RMIN - K_C*XADIFD then
+ EFD = ECOMP*V_RMIN - K_C*XADIFD;
+ else
+ EFD = EFD1;
+ end if;
+ connect(imLeadLag.y, K_a.u)
+ annotation (Line(points={{61,0},{70,0},{78,0}}, color={0,0,127}));
+ connect(imLeadLag.u, limiter.y)
+ annotation (Line(points={{38,0},{30,0},{21,0}}, color={0,0,127}));
+ connect(K_a.y, Vm1.u)
+ annotation (Line(points={{101,0},{118,0}}, color={0,0,127}));
+ connect(Vm1.y, EFD1)
+ annotation (Line(points={{141,0},{170,0},{190,0}}, color={0,0,127}));
+ connect(imDerivativeLag.u, EFD1) annotation (Line(points={{94,-60},{170,-60},
+ {170,0},{190,0}}, color={0,0,127}));
+ connect(ECOMP, TransducerDelay.u)
+ annotation (Line(points={{-200,0},{-186,0},{-172,0}}, color={0,0,127}));
+ connect(TransducerDelay.y, DiffV.u2) annotation (Line(points={{-149,0},{-132,
+ 0},{-132,-6},{-122,-6}}, color={0,0,127}));
+ connect(VOTHSG, add3_2.u1) annotation (Line(points={{-200,90},{-148,90},{-90,
+ 90},{-90,8},{-82,8}}, color={0,0,127}));
+ connect(DiffV.y, add3_2.u2)
+ annotation (Line(points={{-99,0},{-90.5,0},{-82,0}}, color={0,0,127}));
+ connect(VUEL, Limiters.u1) annotation (Line(points={{-130,-200},{-130,-172},{
+ -106,-172},{-106,-162}}, color={0,0,127}));
+ connect(Limiters.u2, VOEL) annotation (Line(points={{-94,-162},{-94,-174},{-70,
+ -174},{-70,-200}}, color={0,0,127}));
+ connect(Limiters.y, add3_2.u3) annotation (Line(points={{-100,-139},{-100,-139},
+ {-100,-20},{-90,-20},{-90,-8},{-82,-8}}, color={0,0,127}));
+ connect(feedback.y, limiter.u)
+ annotation (Line(points={{-21,0},{-11.5,0},{-2,0}}, color={0,0,127}));
+ connect(feedback.u1, add3_2.y)
+ annotation (Line(points={{-38,0},{-59,0},{-59,0}}, color={0,0,127}));
+ connect(feedback.u2, imDerivativeLag.y) annotation (Line(points={{-30,-8},{-30,
+ -8},{-30,-60},{71,-60}}, color={0,0,127}));
+ annotation (
+ Diagram(coordinateSystem(extent={{-200,-200},{200,160}}, initialScale=0.1)),
+ Icon(coordinateSystem(
+ extent={{-200,-200},{200,160}},
+ preserveAspectRatio=true,
+ initialScale=0.1), graphics={Text(
+ extent={{-186,-62},{-112,-82}},
+ lineColor={28,108,200},
+ textString="XADIFD")}),
+ Documentation(info="
+
+
+Reference |
+PSS/E Manual |
+
+
+Last update |
+2016-04-29 |
+
+
+Author |
+Tin Rabuzin,SmarTS Lab, KTH Royal Institute of Technology |
+
+
+Contact |
+luigiv@kth.se |
+
+
+"));
+ end EXST1;
+
+ model ESAC1A
+ import IslandedOperationControl.OpenIPSL.NonElectrical.Functions.SE;
+ import IslandedOperationControl.OpenIPSL.Electrical.Controls.PSSE.ES.BaseClasses.invFEX;
+ extends
+ OpenIPSL.Electrical.Controls.PSSE.ES.BaseClasses.BaseExciter;
+ parameter Real T_R=0 "Voltage input time constant (s)";
+ parameter Real T_B=0 "AVR lead-lag time constant (s)";
+ parameter Real T_C=0 "AVR lead-lag time constant (s)";
+ parameter Real K_A=400 "AVR gain";
+ parameter Real T_A=0.02 "AVR time constant (s)";
+ parameter Real V_AMAX=9 "Maximum AVR output (pu)";
+ parameter Real V_AMIN=-5.43 "Minimum AVR output (pu)";
+ parameter Real T_E=0.8 "Exciter time constant (s)";
+ parameter Real K_F=0.03 "Rate feedback gain (pu)";
+ parameter Real T_F=1 "Rate feedback time const (s)";
+ parameter Real K_C=0.2 "Rectifier load factor (pu)";
+ parameter Real K_D=0.48 "Exciter demagnetizing factor (pu)";
+ parameter Real K_E=1 "Exciter field factor (pu)";
+ parameter Real E_1=5.25 "Exciter satutartion point 1 (pu)";
+ parameter Real E_2=7 "Exciter saturation point 2 (pu)";
+ parameter Real S_EE_1=0.03 "Saturation at E1";
+ parameter Real S_EE_2=0.1 "Saturation at E2";
+ parameter Real V_RMAX "Maximum AVR output (pu)";
+ parameter Real V_RMIN "Minimum AVR output (pu)";
+ NonElectrical.Logical.HV_GATE hV_GATE
+ annotation (Placement(transformation(extent={{20,46},{44,34}})));
+ NonElectrical.Logical.LV_GATE lV_GATE
+ annotation (Placement(transformation(extent={{58,46},{82,34}})));
+ NonElectrical.Continuous.LeadLag imLeadLag(
+ K=1,
+ T1=T_C,
+ T2=T_B,
+ y_start=VR0/K_A,
+ x_start=VR0/K_A)
+ annotation (Placement(transformation(extent={{-52,30},{-32,50}})));
+ NonElectrical.Continuous.SimpleLag imSimpleLag(
+ K=1,
+ y_start=ECOMP0,
+ T=T_R) annotation (Placement(transformation(extent={{-170,-10},{-150,10}})));
+ Modelica.Blocks.Nonlinear.Limiter limiter1(uMax=V_RMAX, uMin=V_RMIN)
+ annotation (Placement(transformation(extent={{94,30},{114,50}})));
+ NonElectrical.Continuous.SimpleLagLim simpleLagLim(
+ K=K_A,
+ T=T_A,
+ y_start=VR0,
+ outMax=V_AMAX,
+ outMin=V_AMIN)
+ annotation (Placement(transformation(extent={{-16,30},{4,50}})));
+ Modelica.Blocks.Continuous.Derivative derivative(
+ k=K_F,
+ T=T_F,
+ initType=Modelica.Blocks.Types.Init.InitialOutput,
+ y_start=0,
+ x_start=VFE0)
+ annotation (Placement(transformation(extent={{40,-10},{20,10}})));
+ BaseClasses.RotatingExciterWithDemagnetizationLimited
+ rotatingExciterWithDemagnetization(
+ T_E=T_E,
+ K_E=K_E,
+ E_1=E_1,
+ E_2=E_2,
+ S_EE_1=S_EE_1,
+ S_EE_2=S_EE_2,
+ K_D=K_D,
+ Efd0=VE0) annotation (Placement(transformation(extent={{124,30},{144,50}})));
+ Modelica.Blocks.Math.Add3 add3_1(k3=-1)
+ annotation (Placement(transformation(extent={{-88,30},{-68,50}})));
+ BaseClasses.RectifierCommutationVoltageDrop rectifierCommutationVoltageDrop(
+ K_C=K_C)
+ annotation (Placement(transformation(extent={{160,30},{180,50}})));
+ protected
+ parameter Real VR0(fixed=false);
+ parameter Real Efd0(fixed=false);
+ parameter Real Ifd0(fixed=false);
+ parameter Real VE0(fixed=false);
+ parameter Real VFE0(fixed=false);
+ initial equation
+ Ifd0 = XADIFD;
+ VE0 = invFEX(
+ K_C=K_C,
+ Efd0=Efd0,
+ Ifd0=Ifd0);
+ VFE0 = VE0*(SE(
+ VE0,
+ S_EE_1,
+ S_EE_2,
+ E_1,
+ E_2) + K_E) + Ifd0*K_D;
+ VR0 = VFE0;
+ V_REF = VR0/K_A + ECOMP0;
+ equation
+ connect(imLeadLag.y, simpleLagLim.u)
+ annotation (Line(points={{-31,40},{-18,40}}, color={0,0,127}));
+ connect(limiter1.y, rotatingExciterWithDemagnetization.I_C)
+ annotation (Line(points={{115,40},{122.75,40}}, color={0,0,127}));
+ connect(ECOMP, imSimpleLag.u)
+ annotation (Line(points={{-200,0},{-172,0}}, color={0,0,127}));
+ connect(simpleLagLim.y, hV_GATE.n1) annotation (Line(points={{5,40},{12,40},{
+ 12,37},{18.5,37}}, color={0,0,127}));
+ connect(VUEL, hV_GATE.n2) annotation (Line(points={{-130,-200},{-130,-40},{14,
+ -40},{14,43},{18.5,43}}, color={0,0,127}));
+ connect(imSimpleLag.y, DiffV.u2) annotation (Line(points={{-149,0},{-132,0},{
+ -132,-6},{-122,-6}}, color={0,0,127}));
+ connect(add3_1.y, imLeadLag.u)
+ annotation (Line(points={{-67,40},{-54,40}}, color={0,0,127}));
+ connect(DiffV.y, add3_1.u2) annotation (Line(points={{-99,0},{-96,0},{-96,40},
+ {-90,40}}, color={0,0,127}));
+ connect(VOTHSG, add3_1.u1) annotation (Line(points={{-200,90},{-150,90},{-96,
+ 90},{-96,48},{-90,48}}, color={0,0,127}));
+ connect(derivative.y, add3_1.u3) annotation (Line(points={{19,0},{-94,0},{-94,
+ 32},{-90,32}}, color={0,0,127}));
+ connect(derivative.u, rotatingExciterWithDemagnetization.V_FE) annotation (
+ Line(points={{42,0},{82,0},{120,0},{120,33.75},{122.75,33.75}}, color={0,
+ 0,127}));
+ connect(rotatingExciterWithDemagnetization.EFD,
+ rectifierCommutationVoltageDrop.V_EX)
+ annotation (Line(points={{145.25,40},{159,40}}, color={0,0,127}));
+ connect(rectifierCommutationVoltageDrop.EFD, EFD) annotation (Line(points={{
+ 181,40},{190,40},{190,0},{210,0}}, color={0,0,127}));
+ connect(hV_GATE.p, lV_GATE.n2) annotation (Line(points={{42.5,40},{50,40},{50,
+ 43},{56.5,43}}, color={0,0,127}));
+ connect(VOEL, lV_GATE.n1) annotation (Line(points={{-70,-200},{-70,-200},{-70,
+ -60},{50,-60},{50,37},{56.5,37}}, color={0,0,127}));
+ connect(lV_GATE.p, limiter1.u)
+ annotation (Line(points={{80.5,40},{92,40}}, color={0,0,127}));
+ connect(XADIFD, rotatingExciterWithDemagnetization.XADIFD) annotation (Line(points={{80,-200},{80,-120},{134,-120},{134,28.75}}, color={0,0,127}));
+ connect(XADIFD, rectifierCommutationVoltageDrop.XADIFD) annotation (Line(points={{80,-200},{80,-120},{170,-120},{170,29}}, color={0,0,127}));
+ annotation (
+ Diagram(coordinateSystem(extent={{-200,-200},{200,160}}, initialScale=0.1)),
+ Icon(coordinateSystem(extent={{-200,-200},{200,160}}, initialScale=0.1),
+ graphics={Text(
+ extent={{-186,-60},{-116,-80}},
+ lineColor={28,108,200},
+ textString="XADIFD"),Text(
+ extent={{-100,152},{100,92}},
+ lineColor={28,108,200},
+ textString="ESAC1A")}),
+ Documentation(info="
+
+
+Reference |
+ESAC1A, PSS/E Manual |
+
+
+Last update |
+Major change - 2016-01-19 |
+
+
+Author |
+Tin Rabuzin, SmarTS Lab, KTH Royal Institute of Technology |
+
+
+Contact |
+luigiv@kth.se |
+
+
+"));
+ end ESAC1A;
+
+ model ESAC2A
+ import IslandedOperationControl.OpenIPSL.NonElectrical.Functions.SE;
+ import IslandedOperationControl.OpenIPSL.Electrical.Controls.PSSE.ES.BaseClasses.invFEX;
+ extends
+ OpenIPSL.Electrical.Controls.PSSE.ES.BaseClasses.BaseExciter;
+ parameter Real T_R=0 "Voltage input time constant (s)";
+ parameter Real T_B=0 "AVR lead-lag time constant (s)";
+ parameter Real T_C=0 "AVR lead-lag time constant (s)";
+ parameter Real K_A=400 "AVR gain";
+ parameter Real T_A=0.02 "AVR time constant (s)";
+ parameter Real V_AMAX=9 "Maximum AVR output (pu)";
+ parameter Real V_AMIN=-5.43 "Minimum AVR output (pu)";
+ parameter Real T_E=0.8 "Exciter time constant (s)";
+ parameter Real V_FEMAX=-5.43 "Minimum AVR output (pu)";
+ parameter Real K_F=0.03 "Rate feedback gain (pu)";
+ parameter Real T_F=1 "Rate feedback time const (s)";
+ parameter Real K_C=0.2 "Rectifier load factor (pu)";
+ parameter Real K_D=0.48 "Exciter demagnetizing factor (pu)";
+ parameter Real K_E=1 "Exciter field factor (pu)";
+ parameter Real E_1=5.25 "Exciter satutartion point 1 (pu)";
+ parameter Real E_2=7 "Exciter saturation point 2 (pu)";
+ parameter Real S_EE_1=0.03 "Saturation at E1";
+ parameter Real S_EE_2=0.1 "Saturation at E2";
+ parameter Real V_RMAX "Maximum AVR output (pu)";
+ parameter Real V_RMIN "Minimum AVR output (pu)";
+ NonElectrical.Logical.HV_GATE hV_GATE
+ annotation (Placement(transformation(extent={{20,46},{44,34}})));
+ NonElectrical.Logical.LV_GATE lV_GATE
+ annotation (Placement(transformation(extent={{58,46},{82,34}})));
+ NonElectrical.Continuous.LeadLag imLeadLag(
+ K=1,
+ T1=T_C,
+ T2=T_B,
+ y_start=VR0/K_A,
+ x_start=VR0/K_A)
+ annotation (Placement(transformation(extent={{-52,30},{-32,50}})));
+ NonElectrical.Continuous.SimpleLag imSimpleLag(
+ K=1,
+ y_start=ECOMP0,
+ T=T_R) annotation (Placement(transformation(extent={{-170,-10},{-150,10}})));
+ Modelica.Blocks.Nonlinear.Limiter limiter1(uMax=V_RMAX, uMin=V_RMIN)
+ annotation (Placement(transformation(extent={{94,30},{114,50}})));
+ NonElectrical.Continuous.SimpleLagLim simpleLagLim(
+ K=K_A,
+ T=T_A,
+ y_start=VR0,
+ outMax=V_AMAX,
+ outMin=V_AMIN)
+ annotation (Placement(transformation(extent={{-16,30},{4,50}})));
+ Modelica.Blocks.Continuous.Derivative derivative(
+ k=K_F,
+ T=T_F,
+ initType=Modelica.Blocks.Types.Init.InitialOutput,
+ y_start=0,
+ x_start=VFE0)
+ annotation (Placement(transformation(extent={{40,-10},{20,10}})));
+ BaseClasses.RotatingExciterWithDemagnetizationVarLim
+ rotatingExciterWithDemagnetization(
+ T_E=T_E,
+ K_E=K_E,
+ E_1=E_1,
+ E_2=E_2,
+ S_EE_1=S_EE_1,
+ S_EE_2=S_EE_2,
+ K_D=K_D,
+ Efd0=VE0) annotation (Placement(transformation(extent={{124,30},{144,50}})));
+ Modelica.Blocks.Math.Add3 add3_1(k3=-1)
+ annotation (Placement(transformation(extent={{-88,30},{-68,50}})));
+ BaseClasses.RectifierCommutationVoltageDrop rectifierCommutationVoltageDrop(
+ K_C=K_C)
+ annotation (Placement(transformation(extent={{160,30},{180,50}})));
+ Modelica.Blocks.Sources.Constant lowLim(k=0)
+ annotation (Placement(transformation(extent={{180,70},{160,90}})));
+ Modelica.Blocks.Sources.Constant FEMAX(k=V_FEMAX)
+ annotation (Placement(transformation(extent={{40,120},{60,140}})));
+ Modelica.Blocks.Math.Add DiffV1(k2=-1)
+ annotation (Placement(transformation(extent={{80,120},{100,140}})));
+ NonElectrical.Functions.ImSE se1(
+ SE1=S_EE_1,
+ SE2=S_EE_2,
+ E1=E_1,
+ E2=E_2) annotation (Placement(transformation(
+ extent={{-9,-6},{9,6}},
+ rotation=180,
+ origin={171,108})));
+ Modelica.Blocks.Sources.Constant const(k=K_E)
+ annotation (Placement(transformation(extent={{180,120},{160,140}})));
+ Modelica.Blocks.Math.Add DiffV2
+ annotation (Placement(transformation(extent={{150,108},{130,128}})));
+ Modelica.Blocks.Math.Division division annotation (Placement(transformation(
+ extent={{-10,-10},{10,10}},
+ rotation=-90,
+ origin={110,80})));
+ protected
+ parameter Real VR0(fixed=false);
+ parameter Real Efd0(fixed=false);
+ parameter Real Ifd0(fixed=false);
+ parameter Real VE0(fixed=false);
+ parameter Real VFE0(fixed=false);
+ initial equation
+ Ifd0 = XADIFD;
+ // Finding initial value of excitation voltage, VE0, via going through conditions of FEX function
+ VE0 = invFEX(
+ K_C=K_C,
+ Efd0=Efd0,
+ Ifd0=Ifd0);
+ // Case IN>0 not checked because it will be resolved in the next iteration
+ VFE0 = VE0*(SE(
+ VE0,
+ S_EE_1,
+ S_EE_2,
+ E_1,
+ E_2) + K_E) + Ifd0*K_D;
+ VR0 = VFE0;
+ V_REF = VR0/K_A + ECOMP0;
+ equation
+ connect(imLeadLag.y, simpleLagLim.u)
+ annotation (Line(points={{-31,40},{-18,40}}, color={0,0,127}));
+ connect(limiter1.y, rotatingExciterWithDemagnetization.I_C)
+ annotation (Line(points={{115,40},{122.75,40}}, color={0,0,127}));
+ connect(ECOMP, imSimpleLag.u)
+ annotation (Line(points={{-200,0},{-172,0}}, color={0,0,127}));
+ connect(simpleLagLim.y, hV_GATE.n1) annotation (Line(points={{5,40},{12,40},{
+ 12,37},{18.5,37}}, color={0,0,127}));
+ connect(VUEL, hV_GATE.n2) annotation (Line(points={{-130,-200},{-130,-40},{14,
+ -40},{14,43},{18.5,43}}, color={0,0,127}));
+ connect(imSimpleLag.y, DiffV.u2) annotation (Line(points={{-149,0},{-132,0},{
+ -132,-6},{-122,-6}}, color={0,0,127}));
+ connect(add3_1.y, imLeadLag.u)
+ annotation (Line(points={{-67,40},{-54,40}}, color={0,0,127}));
+ connect(DiffV.y, add3_1.u2) annotation (Line(points={{-99,0},{-96,0},{-96,40},
+ {-90,40}}, color={0,0,127}));
+ connect(VOTHSG, add3_1.u1) annotation (Line(points={{-200,90},{-150,90},{-96,
+ 90},{-96,48},{-90,48}}, color={0,0,127}));
+ connect(derivative.y, add3_1.u3) annotation (Line(points={{19,0},{-94,0},{-94,
+ 32},{-90,32}}, color={0,0,127}));
+ connect(derivative.u, rotatingExciterWithDemagnetization.V_FE) annotation (
+ Line(points={{42,0},{82,0},{120,0},{120,33.75},{122.75,33.75}}, color={0,
+ 0,127}));
+ connect(rotatingExciterWithDemagnetization.EFD,
+ rectifierCommutationVoltageDrop.V_EX)
+ annotation (Line(points={{145.25,40},{159,40}}, color={0,0,127}));
+ connect(rectifierCommutationVoltageDrop.XADIFD,
+ rotatingExciterWithDemagnetization.XADIFD) annotation (Line(points={{170,29},{170,-20},{134,-20},{134,28.75}},
+ color={0,0,127}));
+ connect(rectifierCommutationVoltageDrop.EFD, EFD) annotation (Line(points={{
+ 181,40},{190,40},{190,0},{210,0}}, color={0,0,127}));
+ connect(hV_GATE.p, lV_GATE.n2) annotation (Line(points={{42.5,40},{50,40},{50,
+ 43},{56.5,43}}, color={0,0,127}));
+ connect(VOEL, lV_GATE.n1) annotation (Line(points={{-70,-200},{-70,-200},{-70,
+ -60},{50,-60},{50,37},{56.5,37}}, color={0,0,127}));
+ connect(lV_GATE.p, limiter1.u)
+ annotation (Line(points={{80.5,40},{92,40},{92,40}}, color={0,0,127}));
+ connect(lowLim.y, rotatingExciterWithDemagnetization.outMin) annotation (Line(
+ points={{159,80},{150,80},{150,47.5},{145.25,47.5}}, color={0,0,127}));
+ connect(FEMAX.y, DiffV1.u1) annotation (Line(points={{61,130},{68,130},{68,
+ 136},{78,136}}, color={0,0,127}));
+ connect(DiffV1.u2, rotatingExciterWithDemagnetization.XADIFD) annotation (
+ Line(points={{78,124},{66,124},{66,100},{86,100},{86,-20},{134,-20},{134,
+ 28.75}}, color={0,0,127}));
+ connect(se1.VE_IN, EFD) annotation (Line(points={{180.9,108},{190,108},{190,0},
+ {210,0}}, color={0,0,127}));
+ connect(DiffV2.u1, const.y) annotation (Line(points={{152,124},{156,124},{156,
+ 130},{159,130}}, color={0,0,127}));
+ connect(DiffV2.u2, se1.VE_OUT) annotation (Line(points={{152,112},{156,112},{
+ 156,108},{161.46,108}}, color={0,0,127}));
+ connect(division.u1, DiffV1.y) annotation (Line(points={{116,92},{116,92},{
+ 116,128},{116,130},{101,130}}, color={0,0,127}));
+ connect(DiffV2.y, division.u2)
+ annotation (Line(points={{129,118},{104,118},{104,92}}, color={0,0,127}));
+ connect(division.y, rotatingExciterWithDemagnetization.outMax) annotation (
+ Line(points={{110,69},{110,60},{118,60},{118,47.5},{122.75,47.5}}, color=
+ {0,0,127}));
+ connect(XADIFD, rotatingExciterWithDemagnetization.XADIFD) annotation (Line(points={{80,-200},{80,-140},{134,-140},{134,28.75}}, color={0,0,127}));
+ annotation (
+ Diagram(coordinateSystem(extent={{-200,-200},{200,160}}, initialScale=0.1)),
+ Icon(coordinateSystem(extent={{-200,-200},{200,160}}, initialScale=0.1),
+ graphics={Text(
+ extent={{-186,-60},{-116,-80}},
+ lineColor={28,108,200},
+ textString="XADIFD"),Text(
+ extent={{-100,152},{100,92}},
+ lineColor={28,108,200},
+ textString="ESAC1A")}),
+ Documentation(info="
+
+
+Reference |
+ESAC1A, PSS/E Manual |
+
+
+Last update |
+Major change - 2016-01-19 |
+
+
+Author |
+Tin Rabuzin, SmarTS Lab, KTH Royal Institute of Technology |
+
+
+Contact |
+luigiv@kth.se |
+
+
+"));
+ end ESAC2A;
+
+ model ESST1A "IEEE Type ST1A Excitation System"
+ extends
+ OpenIPSL.Electrical.Controls.PSSE.ES.BaseClasses.BaseExciter;
+ parameter Real T_R=0 "Voltage input time constant (s)"
+ annotation (Dialog(group="Excitation system parameters"));
+ parameter Real V_IMAX
+ annotation (Dialog(group="Excitation system parameters"));
+ parameter Real V_IMIN
+ annotation (Dialog(group="Excitation system parameters"));
+ parameter Real T_C=0 "AVR lead-lag time constant (s)"
+ annotation (Dialog(group="Excitation system parameters"));
+ parameter Real T_B=0 "AVR lead-lag time constant (s)"
+ annotation (Dialog(group="Excitation system parameters"));
+ parameter Real T_C1=0 "AVR lead-lag time constant (s)"
+ annotation (Dialog(group="Excitation system parameters"));
+ parameter Real T_B1=0 "AVR lead-lag time constant (s)"
+ annotation (Dialog(group="Excitation system parameters"));
+ parameter Real K_A=400 "AVR gain"
+ annotation (Dialog(group="Excitation system parameters"));
+ parameter Real T_A=0.02 "AVR time constant (s)"
+ annotation (Dialog(group="Excitation system parameters"));
+ parameter Real V_AMAX "Maximum AVR output (pu)"
+ annotation (Dialog(group="Excitation system parameters"));
+ parameter Real V_AMIN "Minimum AVR output (pu)"
+ annotation (Dialog(group="Excitation system parameters"));
+ parameter Real V_RMAX=9
+ annotation (Dialog(group="Excitation system parameters"));
+ parameter Real V_RMIN=-5.43
+ annotation (Dialog(group="Excitation system parameters"));
+ parameter Real K_C=0.2 "Rectifier load factor (pu)"
+ annotation (Dialog(group="Excitation system parameters"));
+ parameter Real K_F=0.03 "Rate feedback gain (pu)"
+ annotation (Dialog(group="Excitation system parameters"));
+ parameter Real T_F=1 "Rate feedback time constant (s)"
+ annotation (Dialog(group="Excitation system parameters"));
+ parameter Real K_LR annotation (Dialog(group="Excitation system parameters"));
+ parameter Real I_LR annotation (Dialog(group="Excitation system parameters"));
+ Modelica.Blocks.Continuous.Derivative imDerivativeLag(
+ y_start=0,
+ k=K_F,
+ T=T_F,
+ initType=Modelica.Blocks.Types.Init.InitialOutput,
+ x_start=Efd0)
+ annotation (Placement(transformation(extent={{20,60},{0,80}})));
+ Modelica.Blocks.Interfaces.RealInput VOTHSG2 "VOS=2" annotation (Placement(
+ transformation(extent={{-210,122},{-190,142}}), iconTransformation(
+ extent={{-10,-10},{10,10}},
+ rotation=0,
+ origin={-200,130})));
+ Modelica.Blocks.Interfaces.RealInput VUEL3 "UEL=3" annotation (Placement(
+ transformation(
+ extent={{-20,-20},{20,20}},
+ rotation=90,
+ origin={50,-200}), iconTransformation(
+ extent={{9.95,-10.15},{-9.95,10.15}},
+ rotation=270,
+ origin={49.85,-199.95})));
+ Modelica.Blocks.Nonlinear.Limiter imLimited(uMin=V_IMIN, uMax=V_IMAX)
+ annotation (Placement(transformation(extent={{-64,-10},{-44,10}})));
+ NonElectrical.Logical.HV_GATE hV_GATE
+ annotation (Placement(transformation(extent={{-36.7,-5.5},{-14,6}})));
+ Modelica.Blocks.Interfaces.RealInput VUEL2 "UEL=2" annotation (Placement(
+ transformation(
+ extent={{-20,-20},{20,20}},
+ rotation=90,
+ origin={-10,-200}), iconTransformation(
+ extent={{9.9,-9.9},{-9.9,9.9}},
+ rotation=270,
+ origin={-9.9,-199.9})));
+ Modelica.Blocks.Math.Gain imGain(k=K_LR) annotation (Placement(transformation(
+ extent={{-10,-10},{10,10}},
+ rotation=90,
+ origin={40,-70})));
+ NonElectrical.Logical.HV_GATE hV_GATE1
+ annotation (Placement(transformation(extent={{105.3,-2.7},{126,8}})));
+ NonElectrical.Logical.LV_GATE lV_GATE
+ annotation (Placement(transformation(extent={{130.8,-6.7},{156,6}})));
+ Modelica.Blocks.Interfaces.RealInput VT "sensed VT" annotation (Placement(
+ transformation(
+ extent={{10,-10},{-10,10}},
+ rotation=270,
+ origin={150,-140}), iconTransformation(
+ extent={{-9.75,-10.25},{9.75,10.25}},
+ rotation=0,
+ origin={-199.75,49.75})));
+ Modelica.Blocks.Sources.Constant Vref1(k=I_LR)
+ annotation (Placement(transformation(extent={{0,-150},{20,-130}})));
+ NonElectrical.Continuous.LeadLag imLeadLag(
+ K=1,
+ T1=T_C,
+ T2=T_B,
+ y_start=VA0/K_A,
+ x_start=V_REF - ECOMP0)
+ annotation (Placement(transformation(extent={{-8,-10},{12,10}})));
+ NonElectrical.Continuous.LeadLag imLeadLag1(
+ K=1,
+ y_start=VA0/K_A,
+ T1=T_C1,
+ T2=T_B1,
+ x_start=VA0/K_A)
+ annotation (Placement(transformation(extent={{22,-9},{42,10}})));
+ Modelica.Blocks.Math.Add3 add3_1(k1=-1)
+ annotation (Placement(transformation(extent={{-92,-10},{-72,10}})));
+ NonElectrical.Continuous.SimpleLagLim simpleLagLim(
+ K=K_A,
+ T=T_A,
+ y_start=VA0,
+ outMax=V_AMAX,
+ outMin=V_AMIN)
+ annotation (Placement(transformation(extent={{50,-10},{70,10}})));
+ Modelica.Blocks.Math.Add add2(k1=-1) annotation (Placement(transformation(
+ extent={{-10,-10},{10,10}},
+ rotation=90,
+ origin={40,-120})));
+ Modelica.Blocks.Nonlinear.Limiter imLimited1(uMax=Modelica.Constants.inf,
+ uMin=0) annotation (Placement(transformation(
+ extent={{-10,-9.6},{10,9.6}},
+ rotation=90,
+ origin={40.4,-40})));
+ Modelica.Blocks.Math.Add3 add3_2(k3=-1)
+ annotation (Placement(transformation(extent={{78,-10},{98,10}})));
+ Modelica.Blocks.Math.Gain imGain1(k=V_RMIN) annotation (Placement(
+ transformation(
+ extent={{-10,-10},{10,10}},
+ rotation=90,
+ origin={136,-30})));
+ Modelica.Blocks.Math.Gain imGain2(k=V_RMAX) annotation (Placement(
+ transformation(
+ extent={{-10,-10},{10,10}},
+ rotation=90,
+ origin={150,-70})));
+ Modelica.Blocks.Math.Add add3(k1=-1) annotation (Placement(transformation(
+ extent={{10,-10},{-10,10}},
+ rotation=270,
+ origin={170,-30})));
+ Modelica.Blocks.Math.Gain imGain3(k=K_C) annotation (Placement(transformation(
+ extent={{-10,-10},{10,10}},
+ rotation=90,
+ origin={190,-70})));
+ Modelica.Blocks.Nonlinear.VariableLimiter variableLimiter
+ annotation (Placement(transformation(extent={{178,-10},{198,10}})));
+ NonElectrical.Continuous.SimpleLag TransducerDelay(
+ K=1,
+ T=T_R,
+ y_start=ECOMP0)
+ annotation (Placement(transformation(extent={{-170,-10},{-150,10}})));
+ Modelica.Blocks.Math.Add Limiters
+ annotation (Placement(transformation(extent={{-120,-60},{-100,-40}})));
+ protected
+ parameter Real IFD0(fixed=false);
+ parameter Real VA0(fixed=false);
+ initial equation
+ IFD0 = XADIFD;
+ VA0 = Efd0 + K_LR*(IFD0 - I_LR);
+ V_REF = VA0/K_A + ECOMP0;
+ equation
+ connect(add3_1.y, imLimited.u)
+ annotation (Line(points={{-71,0},{-66,0}}, color={0,0,127}));
+ connect(imLeadLag.y, imLeadLag1.u)
+ annotation (Line(points={{13,0},{13,0.5},{20,0.5}}, color={0,0,127}));
+ connect(simpleLagLim.u, imLeadLag1.y)
+ annotation (Line(points={{48,0},{43,0},{43,0.5}}, color={0,0,127}));
+ connect(Vref1.y, add2.u1)
+ annotation (Line(points={{21,-140},{34,-140},{34,-132}}, color={0,0,127}));
+ connect(imGain1.y, variableLimiter.limit2)
+ annotation (Line(points={{136,-19},{136,-8},{176,-8}}, color={0,0,127}));
+ connect(add3_1.u1, imDerivativeLag.y) annotation (Line(points={{-94,8},{-98,8},
+ {-98,70},{-1,70}}, color={0,0,127}));
+ connect(VUEL2, hV_GATE.n2) annotation (Line(points={{-10,-200},{-10,-174},{-42,-174},{-42,-2.625},{-38.1188,-2.625}},
+ color={0,0,127}));
+ connect(variableLimiter.y, EFD)
+ annotation (Line(points={{199,0},{210,0}}, color={0,0,127}));
+ connect(imGain3.y, add3.u1) annotation (Line(points={{190,-59},{190,-50},{176,
+ -50},{176,-42}}, color={0,0,127}));
+ connect(imGain2.y, add3.u2) annotation (Line(points={{150,-59},{150,-50},{164,
+ -50},{164,-42}}, color={0,0,127}));
+ connect(VT, imGain2.u) annotation (Line(points={{150,-140},{150,-111},{150,-82}},
+ color={0,0,127}));
+ connect(VOEL, lV_GATE.n2) annotation (Line(points={{-70,-200},{-70,-200},{-70,
+ -100},{100,-100},{100,-3.525},{129.225,-3.525}}, color={0,0,127}));
+ connect(imGain1.u, imGain2.u) annotation (Line(points={{136,-42},{136,-120},{
+ 150,-120},{150,-82}}, color={0,0,127}));
+ connect(ECOMP, TransducerDelay.u)
+ annotation (Line(points={{-200,0},{-172,0}}, color={0,0,127}));
+ connect(TransducerDelay.y, DiffV.u2) annotation (Line(points={{-149,0},{-132,
+ 0},{-132,-6},{-122,-6}}, color={0,0,127}));
+ connect(DiffV.y, add3_1.u2)
+ annotation (Line(points={{-99,0},{-94,0}}, color={0,0,127}));
+ connect(VUEL, Limiters.u2) annotation (Line(points={{-130,-200},{-130,-200},{
+ -130,-56},{-122,-56}}, color={0,0,127}));
+ connect(VOTHSG, Limiters.u1) annotation (Line(points={{-200,90},{-170,90},{-140,
+ 90},{-140,-44},{-122,-44}}, color={0,0,127}));
+ connect(Limiters.y, add3_1.u3) annotation (Line(points={{-99,-50},{-98,-50},{
+ -98,-8},{-94,-8}}, color={0,0,127}));
+ connect(imLimited.y, hV_GATE.n1) annotation (Line(points={{-43,0},{-42,0},{-42,3.125},{-38.1188,3.125}},
+ color={0,0,127}));
+ connect(VOTHSG2, add3_2.u1) annotation (Line(points={{-200,132},{70,132},{70,
+ 8},{76,8}}, color={0,0,127}));
+ connect(lV_GATE.p, variableLimiter.u) annotation (Line(points={{154.425,-0.35},
+ {164.213,-0.35},{164.213,0},{176,0}}, color={0,0,127}));
+ connect(hV_GATE1.p, lV_GATE.n1) annotation (Line(points={{124.706,2.65},{124.228,2.65},{124.228,2.825},{129.225,2.825}},
+ color={0,0,127}));
+ connect(add3_2.y, hV_GATE1.n1) annotation (Line(points={{99,0},{100,0},{100,5.325},{104.006,5.325}},
+ color={0,0,127}));
+ connect(imDerivativeLag.u, hV_GATE1.n1) annotation (Line(points={{22,70},{102,70},{102,5.325},{104.006,5.325}},
+ color={0,0,127}));
+ connect(imGain.u, add2.y)
+ annotation (Line(points={{40,-82},{40,-109},{40,-109}}, color={0,0,127}));
+ connect(imLimited1.u, imGain.y)
+ annotation (Line(points={{40.4,-52},{40,-52},{40,-59}}, color={0,0,127}));
+ connect(imLimited1.y, add3_2.u3) annotation (Line(points={{40.4,-29},{40.4,-20},
+ {70,-20},{70,-8},{76,-8}}, color={0,0,127}));
+ connect(add3.y, variableLimiter.limit1)
+ annotation (Line(points={{170,-19},{170,8},{176,8}}, color={0,0,127}));
+ connect(simpleLagLim.y, add3_2.u2)
+ annotation (Line(points={{71,0},{76,0}}, color={0,0,127}));
+ connect(hV_GATE.p, imLeadLag.u) annotation (Line(points={{-15.4187,0.25},{-12.7094,0.25},{-12.7094,0},{-10,0}},
+ color={0,0,127}));
+ connect(VUEL3, hV_GATE1.n2) annotation (Line(points={{50,-200},{50,-200},{50,-174},{110,-174},{110,-20},{104.006,-20},{104.006,-0.025}},
+ color={0,
+ 0,127}));
+ connect(XADIFD, add2.u2) annotation (Line(points={{80,-200},{80,-160},{46,-160},{46,-132}}, color={0,0,127}));
+ connect(XADIFD, imGain3.u) annotation (Line(points={{80,-200},{80,-160},{190,-160},{190,-82}}, color={0,0,127}));
+ annotation (
+ Diagram(coordinateSystem(
+ extent={{-200,-200},{200,160}},
+ grid={2,2},
+ initialScale=0.1)),
+ Icon(coordinateSystem(
+ extent={{-200,-200},{200,160}},
+ grid={2,2},
+ initialScale=0.1), graphics={Text(
+ extent={{-162,112},{-134,95}},
+ lineColor={0,128,0},
+ textString="(VOS=1)"),Text(
+ extent={{-23,-160},{5,-174}},
+ lineColor={0,128,0},
+ textString="(UEL=2)"),Text(
+ extent={{-144,-160},{-116,-174}},
+ lineColor={0,128,0},
+ textString="(UEL=1)"),Text(
+ extent={{33,-160},{61,-174}},
+ lineColor={0,128,0},
+ textString="(UEL=3)"),Text(
+ extent={{-190,140},{-108,120}},
+ lineColor={28,108,200},
+ textString="VOTHSG2"),Text(
+ extent={{-162,152},{-134,135}},
+ lineColor={0,128,0},
+ textString="(VOS=2)"),Text(
+ extent={{-184,60},{-156,40}},
+ lineColor={28,108,200},
+ textString="VT"),Text(
+ extent={{-184,-62},{-114,-82}},
+ lineColor={28,108,200},
+ textString="XADIFD"),Text(
+ extent={{-36,-170},{16,-190}},
+ lineColor={28,108,200},
+ textString="VUEL"),Text(
+ extent={{24,-170},{76,-190}},
+ lineColor={28,108,200},
+ textString="VUEL")}),
+ Documentation(info="
+
+
+Reference |
+PSS/E Manual |
+
+
+Last update |
+2016-04-29 |
+
+
+Author |
+Tin Rabuzin,SmarTS Lab, KTH Royal Institute of Technology |
+
+
+Contact |
+luigiv@kth.se |
+
+
+"));
+ end ESST1A;
+
+ model URST5T "IEEE Proposed Type ST5B Excitation System"
+ extends
+ OpenIPSL.Electrical.Controls.PSSE.ES.BaseClasses.BaseExciter;
+ parameter Real T_R=0.025;
+ parameter Real T_C1=0.1;
+ parameter Real T_B1=0.2;
+ parameter Real T_C2=1;
+ parameter Real T_B2=1;
+ parameter Real KR=1;
+ parameter Real V_RMAX=10;
+ parameter Real V_RMIN=-10;
+ parameter Real T_1=0.58;
+ parameter Real K_C=0.3;
+ Modelica.Blocks.Math.Add VERR1 annotation (Placement(transformation(
+ extent={{-10,10},{10,-10}},
+ rotation=0,
+ origin={-10,0})));
+ NonElectrical.Logical.LV_GATE lV_Gate
+ annotation (Placement(transformation(extent={{-56,-6},{-32,6}})));
+ NonElectrical.Logical.HV_GATE hV_Gate
+ annotation (Placement(transformation(extent={{-86,-6},{-64,6}})));
+ NonElectrical.Continuous.LeadLagLim LL1(
+ K=1,
+ outMax=V_RMAX/KR,
+ outMin=V_RMIN/KR,
+ T1=T_C1,
+ T2=T_B1,
+ y_start=VR0/KR)
+ annotation (Placement(transformation(extent={{10,-10},{30,10}})));
+ NonElectrical.Continuous.LeadLagLim LL2(
+ K=1,
+ outMax=V_RMAX/KR,
+ outMin=V_RMIN/KR,
+ T1=T_C2,
+ T2=T_B2,
+ y_start=VR0/KR)
+ annotation (Placement(transformation(extent={{40,-10},{60,10}})));
+ Modelica.Blocks.Math.Gain K_R(k=KR) annotation (Placement(transformation(
+ extent={{-10,-10},{10,10}},
+ rotation=0,
+ origin={80,0})));
+ Modelica.Blocks.Nonlinear.Limiter limiter(uMax=V_RMAX, uMin=V_RMIN)
+ annotation (Placement(transformation(extent={{100,-10},{120,10}})));
+ Modelica.Blocks.Math.Add VERR2(k1=-1, k2=1) annotation (Placement(
+ transformation(
+ extent={{-10,10},{10,-10}},
+ rotation=0,
+ origin={178,0})));
+ Modelica.Blocks.Math.Gain K_c(k=K_C) annotation (Placement(transformation(
+ extent={{-10,-10},{10,10}},
+ rotation=90,
+ origin={160,-30})));
+ Modelica.Blocks.Math.Gain Vmin(k=V_RMIN) annotation (Placement(transformation(
+ extent={{10,-10},{-10,10}},
+ rotation=0,
+ origin={150,50})));
+ Modelica.Blocks.Math.Gain Vmax(k=V_RMAX) annotation (Placement(transformation(
+ extent={{10,-10},{-10,10}},
+ rotation=0,
+ origin={150,90})));
+ NonElectrical.Continuous.SimpleLagLimVar simpleLagLimVar(
+ K=1,
+ T=T_1,
+ y_start=VR0)
+ annotation (Placement(transformation(extent={{130,-10},{150,10}})));
+ NonElectrical.Continuous.SimpleLag TransducerDelay(
+ K=1,
+ T=T_R,
+ y_start=ECOMP0)
+ annotation (Placement(transformation(extent={{-170,-10},{-150,10}})));
+ Modelica.Blocks.Interfaces.RealInput VT annotation (Placement(transformation(
+ extent={{20,-20},{-20,20}},
+ rotation=0,
+ origin={200,70}), iconTransformation(extent={{-10,-10},{10,10}}, origin=
+ {-200,50})));
+ protected
+ parameter Real VR0(fixed=false);
+ initial equation
+ VR0 = Efd0 + K_C*XADIFD;
+ V_REF = VR0/KR + ECOMP;
+ equation
+ connect(LL1.u, VERR1.y)
+ annotation (Line(points={{8,0},{8,0},{1,0}}, color={0,0,127}));
+ connect(LL1.y, LL2.u)
+ annotation (Line(points={{31,0},{31,0},{38,0}}, color={0,0,127}));
+ connect(ECOMP, TransducerDelay.u)
+ annotation (Line(points={{-200,0},{-186,0},{-172,0}}, color={0,0,127}));
+ connect(TransducerDelay.y, DiffV.u2) annotation (Line(points={{-149,0},{-132,
+ 0},{-132,-6},{-122,-6}}, color={0,0,127}));
+ connect(VUEL, hV_Gate.n1) annotation (Line(points={{-130,-200},{-130,-200},{-130,
+ -20},{-90,-20},{-90,3},{-87.375,3}}, color={0,0,127}));
+ connect(DiffV.y, hV_Gate.n2) annotation (Line(points={{-99,0},{-92,0},{-92,-3},
+ {-87.375,-3}}, color={0,0,127}));
+ connect(VOEL, lV_Gate.n2) annotation (Line(points={{-70,-200},{-70,-200},{-70,
+ -34},{-70,-20},{-60,-20},{-60,-3},{-57.5,-3}}, color={0,0,127}));
+ connect(hV_Gate.p, lV_Gate.n1) annotation (Line(points={{-65.375,0},{-62,0},{
+ -62,3},{-57.5,3}}, color={0,0,127}));
+ connect(lV_Gate.p, VERR1.u1) annotation (Line(points={{-33.5,0},{-30,0},{-30,
+ -6},{-22,-6}}, color={0,0,127}));
+ connect(VOTHSG, VERR1.u2) annotation (Line(points={{-200,90},{-200,90},{-30,
+ 90},{-30,6},{-22,6}}, color={0,0,127}));
+ connect(LL2.y, K_R.u)
+ annotation (Line(points={{61,0},{61,0},{68,0}}, color={0,0,127}));
+ connect(K_R.y, limiter.u)
+ annotation (Line(points={{91,0},{98,0}}, color={0,0,127}));
+ connect(limiter.y, simpleLagLimVar.u)
+ annotation (Line(points={{121,0},{124.5,0},{128,0}}, color={0,0,127}));
+ connect(VERR2.y, EFD)
+ annotation (Line(points={{189,0},{210,0}}, color={0,0,127}));
+ connect(K_c.y, VERR2.u1) annotation (Line(points={{160,-19},{160,-19},{160,-6},
+ {166,-6}}, color={0,0,127}));
+ connect(simpleLagLimVar.y, VERR2.u2) annotation (Line(points={{151,0},{160,0},
+ {160,6},{166,6}}, color={0,0,127}));
+ connect(VT, Vmax.u) annotation (Line(points={{200,70},{172,70},{172,90},{162,
+ 90}}, color={0,0,127}));
+ connect(Vmin.u, Vmax.u) annotation (Line(points={{162,50},{172,50},{172,90},{
+ 162,90}}, color={0,0,127}));
+ connect(Vmin.y, simpleLagLimVar.outMin) annotation (Line(points={{139,50},{
+ 124,50},{124,-20},{132,-20},{132,-14}}, color={0,0,127}));
+ connect(Vmax.y, simpleLagLimVar.outMax) annotation (Line(points={{139,90},{
+ 128,90},{128,20},{148,20},{148,14}}, color={0,0,127}));
+ connect(K_c.u, XADIFD) annotation (Line(points={{160,-42},{160,-140},{80,-140},{80,-200}}, color={0,0,127}));
+ annotation (
+ Diagram(coordinateSystem(extent={{-200,-200},{200,160}}, initialScale=0.1)),
+ Icon(coordinateSystem(
+ extent={{-200,-200},{200,160}},
+ preserveAspectRatio=true,
+ initialScale=0.1), graphics={Text(
+ extent={{-188,60},{-154,40}},
+ lineColor={28,108,200},
+ textString="VT"),Text(
+ extent={{-178,-62},{-114,-82}},
+ lineColor={28,108,200},
+ textString="XADIFD")}),
+ Documentation(info="
+
+
+Reference |
+PSS/E Manual |
+
+
+Last update |
+2016-04-29 |
+
+
+Author |
+Tin Rabuzin,SmarTS Lab, KTH Royal Institute of Technology |
+
+
+Contact |
+luigiv@kth.se |
+
+
+"));
+ end URST5T;
+
+ package BaseClasses
+ model SelectLogic
+ "Selection of voltage signal depending on the Excitation limiters"
+ Modelica.Blocks.Interfaces.RealInput V1
+ annotation (Placement(transformation(extent={{-138,40},{-98,80}})));
+ Modelica.Blocks.Interfaces.RealInput V2
+ annotation (Placement(transformation(extent={{-138,-20},{-98,20}})));
+ Modelica.Blocks.Interfaces.RealInput V3
+ annotation (Placement(transformation(extent={{-138,-80},{-98,-40}})));
+ Modelica.Blocks.Interfaces.RealInput VOEL annotation (Placement(
+ transformation(
+ extent={{-20,-20},{20,20}},
+ rotation=270,
+ origin={-60,96}), iconTransformation(
+ extent={{-20,-20},{20,20}},
+ rotation=270,
+ origin={-60,112})));
+ Modelica.Blocks.Interfaces.RealInput VUEL annotation (Placement(
+ transformation(
+ extent={{-20,-20},{20,20}},
+ rotation=270,
+ origin={0,96}), iconTransformation(
+ extent={{-20,-20},{20,20}},
+ rotation=270,
+ origin={0,112})));
+ Modelica.Blocks.Interfaces.RealInput VERR annotation (Placement(
+ transformation(
+ extent={{-20,-20},{20,20}},
+ rotation=270,
+ origin={60,96}), iconTransformation(
+ extent={{-20,-20},{20,20}},
+ rotation=270,
+ origin={60,112})));
+ Modelica.Blocks.Interfaces.RealOutput Vout
+ annotation (Placement(transformation(extent={{100,10},{120,30}})));
+ equation
+ Vout = if VOEL > 0 then V3 else if VUEL > 0 then V2 else V1;
+ annotation (
+ Diagram(coordinateSystem(preserveAspectRatio=true, extent={{-100,-100},{100,
+ 100}}), graphics),
+ Icon(coordinateSystem(preserveAspectRatio=true, extent={{-100,-100},{100,
+ 100}}), graphics={Text(
+ extent={{-42,54},{38,-48}},
+ lineColor={0,0,255},
+ textString="Select
+Logic"), Rectangle(extent={{-100,100},{100,-100}}, lineColor={0,0,255})}),
+ Documentation);
+ end SelectLogic;
+
+ partial model BaseExciter
+ Modelica.Blocks.Interfaces.RealInput VUEL annotation (Placement(
+ transformation(
+ extent={{-20,-20},{20,20}},
+ rotation=90,
+ origin={-130,-200}), iconTransformation(
+ extent={{-10,-10},{10,10}},
+ rotation=90,
+ origin={-130,-200})));
+ Modelica.Blocks.Interfaces.RealInput VOEL annotation (Placement(
+ transformation(
+ extent={{-20,-20},{20,20}},
+ rotation=90,
+ origin={-70,-200}), iconTransformation(
+ extent={{-10,-10},{10,10}},
+ rotation=90,
+ origin={-70,-200})));
+ Modelica.Blocks.Interfaces.RealOutput EFD "Excitation Voltage (pu)"
+ annotation (Placement(transformation(extent={{200,-10},{220,10}})));
+ Modelica.Blocks.Interfaces.RealInput EFD0 annotation (Placement(
+ transformation(
+ extent={{-20,-20},{20,20}},
+ rotation=0,
+ origin={-200,-130}), iconTransformation(extent={{-10,-10},{10,10}},
+ origin={-200,-130})));
+ Modelica.Blocks.Interfaces.RealInput VOTHSG annotation (Placement(
+ transformation(
+ extent={{-20,-20},{20,20}},
+ rotation=0,
+ origin={-200,90}), iconTransformation(extent={{-10,-10},{10,10}},
+ origin={-200,90})));
+ Modelica.Blocks.Interfaces.RealInput ECOMP annotation (Placement(
+ transformation(
+ extent={{-20,-20},{20,20}},
+ rotation=0,
+ origin={-200,0}), iconTransformation(extent={{-10,-10},{10,10}}, origin=
+ {-200,0})));
+ Modelica.Blocks.Sources.Constant VoltageReference(k=V_REF)
+ annotation (Placement(transformation(extent={{-170,40},{-150,60}})));
+ Modelica.Blocks.Math.Add DiffV(k2=-1)
+ annotation (Placement(transformation(extent={{-120,-10},{-100,10}})));
+ protected
+ parameter Real Efd0(fixed=false);
+ parameter Real V_REF(fixed=false);
+ parameter Real ECOMP0(fixed=false);
+ public
+ Modelica.Blocks.Interfaces.RealInput XADIFD annotation (Placement(
+ transformation(
+ extent={{-20,-20},{20,20}},
+ rotation=90,
+ origin={80,-200}), iconTransformation(
+ extent={{-10,-10},{10,10}},
+ rotation=90,
+ origin={90,-196})));
+ initial equation
+ Efd0 = EFD0;
+ ECOMP0 = ECOMP;
+ equation
+ connect(VoltageReference.y, DiffV.u1) annotation (Line(points={{-149,50},{-132,
+ 50},{-132,6},{-122,6}}, color={0,0,127}));
+ annotation (
+ Icon(coordinateSystem(extent={{-200,-200},{200,160}}, initialScale=0.1),
+ graphics={Rectangle(
+ extent={{-200,160},{200,-200}},
+ lineColor={28,108,200},
+ fillColor={255,255,255},
+ fillPattern=FillPattern.Solid),Text(
+ extent={{-154,-170},{-102,-190}},
+ lineColor={28,108,200},
+ textString="VUEL"),Text(
+ extent={{-92,-170},{-40,-190}},
+ lineColor={28,108,200},
+ textString="VOEL"),Text(
+ extent={{-184,8},{-114,-12}},
+ lineColor={28,108,200},
+ textString="ECOMP"),Text(
+ extent={{-188,100},{-106,80}},
+ lineColor={28,108,200},
+ textString="VOTHSG"),Text(
+ extent={{-182,-122},{-130,-142}},
+ lineColor={28,108,200},
+ textString="EFD0"),Text(
+ extent={{152,12},{194,-8}},
+ lineColor={28,108,200},
+ textString="EFD")}),
+ Diagram(coordinateSystem(extent={{-200,-200},{200,160}}, initialScale=0.1)),
+ Documentation);
+ end BaseExciter;
+
+ model RotatingExciter
+ extends
+ OpenIPSL.Electrical.Controls.PSSE.ES.BaseClasses.RotatingExciterBase(
+ redeclare replaceable Modelica.Blocks.Continuous.Integrator
+ sISO(
+ k=1/T_E,
+ initType=Modelica.Blocks.Types.Init.InitialOutput,
+ y_start=Efd0));
+ annotation (
+ Icon(coordinateSystem(initialScale=0.05, extent={{-80,-80},{80,80}}),
+ graphics={Rectangle(
+ extent={{-80,80},{80,-80}},
+ lineColor={28,108,200},
+ fillColor={255,255,255},
+ fillPattern=FillPattern.Solid),Text(
+ extent={{-52,70},{44,56}},
+ lineColor={28,108,200},
+ fillColor={255,255,255},
+ fillPattern=FillPattern.Solid,
+ textString="Rotating Exciter"),Text(
+ extent={{-81,4},{-57,-6}},
+ lineColor={28,108,200},
+ textString="I_C"),Text(
+ extent={{56,6},{77,-4}},
+ lineColor={28,108,200},
+ textString="V_E")}),
+ Diagram(coordinateSystem(initialScale=0.05, extent={{-80,-80},{80,80}})),
+ Documentation);
+ end RotatingExciter;
+
+ model RotatingExciterLimited
+ extends RotatingExciterBase(redeclare replaceable
+ Modelica.Blocks.Continuous.LimIntegrator sISO(
+ k=1/T_E,
+ y_start=Efd0,
+ outMin=0,
+ outMax=Modelica.Constants.inf,
+ initType=Modelica.Blocks.Types.Init.InitialOutput));
+ annotation (Icon(graphics={Text(
+ extent={{-56,56},{52,44}},
+ lineColor={255,0,0},
+ fillColor={255,255,255},
+ fillPattern=FillPattern.Solid,
+ textString="Limited")}), Documentation);
+ end RotatingExciterLimited;
+
+ model RotatingExciterWithDemagnetization
+ extends
+ OpenIPSL.Electrical.Controls.PSSE.ES.BaseClasses.RotatingExciterBase(
+ redeclare Modelica.Blocks.Math.Add3 Sum(k3=K_D), redeclare
+ replaceable Modelica.Blocks.Continuous.Integrator sISO(
+ k=1/T_E,
+ initType=Modelica.Blocks.Types.Init.InitialOutput,
+ y_start=Efd0));
+ parameter Real K_D "Exciter demagnetizing factor (pu)";
+ Modelica.Blocks.Interfaces.RealInput XADIFD annotation (Placement(
+ transformation(
+ extent={{-20,-20},{20,20}},
+ rotation=90,
+ origin={10,-100}), iconTransformation(
+ extent={{-10,-10},{10,10}},
+ rotation=90,
+ origin={0,-90})));
+ Modelica.Blocks.Interfaces.RealOutput V_FE annotation (Placement(
+ transformation(
+ extent={{-10,10},{10,-10}},
+ rotation=180,
+ origin={-90,-40}), iconTransformation(extent={{-80,-60},{-100,-40}})));
+ equation
+ connect(XADIFD, Sum.u3) annotation (Line(points={{10,-100},{0,-100},{0,-38},{
+ -18,-38}}, color={0,0,127}));
+ connect(V_FE, feedback.u2)
+ annotation (Line(points={{-90,-40},{-50,-40},{-50,12}}, color={0,0,127}));
+ annotation (
+ Icon(coordinateSystem(initialScale=0.05, extent={{-80,-80},{80,80}}),
+ graphics={Rectangle(
+ extent={{-80,80},{80,-80}},
+ lineColor={28,108,200},
+ fillColor={255,255,255},
+ fillPattern=FillPattern.Solid),Text(
+ extent={{-50,70},{46,56}},
+ lineColor={28,108,200},
+ fillColor={255,255,255},
+ fillPattern=FillPattern.Solid,
+ textString="Rotating Exciter"),Text(
+ extent={{-81,4},{-57,-6}},
+ lineColor={28,108,200},
+ textString="I_C"),Text(
+ extent={{56,6},{77,-4}},
+ lineColor={28,108,200},
+ textString="V_E"),Text(
+ extent={{-56,60},{52,44}},
+ lineColor={255,0,0},
+ fillColor={255,255,255},
+ fillPattern=FillPattern.Solid,
+ textString="with Demagnetization Effect"),Text(
+ extent={{-19,-64},{18,-74}},
+ lineColor={28,108,200},
+ textString="XADIFD"),Text(
+ extent={{-77,-44},{-53,-54}},
+ lineColor={28,108,200},
+ textString="V_FE")}),
+ Diagram(coordinateSystem(initialScale=0.05, extent={{-80,-80},{80,80}})),
+ Documentation);
+ end RotatingExciterWithDemagnetization;
+
+ model RotatingExciterWithDemagnetizationLimited
+ extends RotatingExciterWithDemagnetization(redeclare replaceable
+ Modelica.Blocks.Continuous.LimIntegrator sISO(
+ outMin=0,
+ k=1/T_E,
+ initType=Modelica.Blocks.Types.Init.InitialOutput,
+ y_start=Efd0,
+ outMax=Modelica.Constants.inf));
+ annotation (Icon(graphics={Text(
+ extent={{-54,48},{52,36}},
+ lineColor={255,0,0},
+ fillColor={255,255,255},
+ fillPattern=FillPattern.Solid,
+ textString="Limited")}), Documentation);
+ end RotatingExciterWithDemagnetizationLimited;
+
+ model RotatingExciterWithDemagnetizationVarLim
+ extends RotatingExciterBase(redeclare replaceable
+ OpenIPSL.NonElectrical.Continuous.IntegratorLimVar sISO(K=1/T_E,
+ y_start=Efd0),
+ redeclare Modelica.Blocks.Math.Add3 Sum(k3=K_D));
+ parameter Real K_D "Exciter demagnetizing factor (pu)";
+ Modelica.Blocks.Interfaces.RealInput outMin annotation (Placement(
+ transformation(extent={{-120,50},{-80,90}}), iconTransformation(extent=
+ {{100,50},{80,70}})));
+ Modelica.Blocks.Interfaces.RealInput outMax annotation (Placement(
+ transformation(extent={{120,50},{80,90}}), iconTransformation(extent={{
+ -100,50},{-80,70}})));
+ Modelica.Blocks.Interfaces.RealInput XADIFD annotation (Placement(
+ transformation(
+ extent={{-20,-20},{20,20}},
+ rotation=90,
+ origin={20,-100}), iconTransformation(
+ extent={{-10,-10},{10,10}},
+ rotation=90,
+ origin={0,-90})));
+ Modelica.Blocks.Interfaces.RealOutput V_FE annotation (Placement(
+ transformation(
+ extent={{-10,10},{10,-10}},
+ rotation=180,
+ origin={-82,-32}), iconTransformation(extent={{-80,-60},{-100,-40}})));
+ equation
+ connect(outMax, sISO.outMax)
+ annotation (Line(points={{100,70},{8,70},{8,34}}, color={0,0,127}));
+ connect(outMin, sISO.outMin) annotation (Line(points={{-100,70},{-60,70},{-20,
+ 70},{-20,0},{-8,0},{-8,6}}, color={0,0,127}));
+ connect(XADIFD, Sum.u3) annotation (Line(points={{20,-100},{8,-100},{8,-38},{
+ -18,-38}}, color={0,0,127}));
+ connect(V_FE, feedback.u2)
+ annotation (Line(points={{-82,-32},{-50,-32},{-50,12}}, color={0,0,127}));
+ annotation (Icon(graphics={Text(
+ extent={{-54,48},{52,36}},
+ lineColor={255,0,0},
+ fillColor={255,255,255},
+ fillPattern=FillPattern.Solid,
+ textString="Limited"),Text(
+ extent={{-79,66},{-48,56}},
+ lineColor={28,108,200},
+ textString="outMax"),Text(
+ extent={{47,66},{78,56}},
+ lineColor={28,108,200},
+ textString="outMin"),Text(
+ extent={{-52,60},{56,44}},
+ lineColor={255,0,0},
+ fillColor={255,255,255},
+ fillPattern=FillPattern.Solid,
+ textString="with Demagnetization Effect")}), Documentation);
+ end RotatingExciterWithDemagnetizationVarLim;
+
+ model RectifierCommutationVoltageDrop
+ parameter Real K_C "Rectifier load factor (pu)";
+ Modelica.Blocks.Interfaces.RealInput V_EX annotation (Placement(
+ transformation(extent={{-140,-20},{-100,20}}), iconTransformation(
+ extent={{-120,-10},{-100,10}})));
+ Modelica.Blocks.Interfaces.RealInput XADIFD annotation (Placement(
+ transformation(
+ extent={{-20,-20},{20,20}},
+ rotation=0,
+ origin={-120,50}), iconTransformation(
+ extent={{-10,-10},{10,10}},
+ rotation=90,
+ origin={0,-110})));
+ Modelica.Blocks.Interfaces.RealOutput EFD annotation (Placement(
+ transformation(extent={{100,-10},{120,10}}), iconTransformation(extent=
+ {{100,-10},{120,10}})));
+ Modelica.Blocks.Math.Gain gain2(k=K_C) annotation (Placement(transformation(
+ extent={{-10,-10},{10,10}},
+ rotation=0,
+ origin={-70,50})));
+ NonElectrical.Nonlinear.FEX fEX annotation (Placement(transformation(
+ extent={{-10,-10},{10,10}},
+ rotation=0,
+ origin={10,0})));
+ Modelica.Blocks.Math.Product product1 annotation (Placement(transformation(
+ extent={{-10,-10},{10,10}},
+ rotation=0,
+ origin={70,0})));
+ Modelica.Blocks.Math.Division division
+ annotation (Placement(transformation(extent={{-40,-10},{-20,10}})));
+ equation
+ connect(V_EX, division.u2) annotation (Line(points={{-120,0},{-80,0},{-80,-6},
+ {-42,-6}}, color={0,0,127}));
+ connect(XADIFD, gain2.u)
+ annotation (Line(points={{-120,50},{-82,50},{-82,50}}, color={0,0,127}));
+ connect(gain2.y, division.u1) annotation (Line(points={{-59,50},{-52,50},{-52,
+ 6},{-42,6}}, color={0,0,127}));
+ connect(division.y, fEX.u)
+ annotation (Line(points={{-19,0},{-9.5,0},{0,0}}, color={0,0,127}));
+ connect(product1.y, EFD)
+ annotation (Line(points={{81,0},{110,0}}, color={0,0,127}));
+ connect(fEX.y, product1.u2)
+ annotation (Line(points={{21,0},{48,0},{48,-6},{58,-6}}, color={0,0,127}));
+ connect(product1.u1, division.u2) annotation (Line(points={{58,6},{48,6},{48,
+ 20},{-80,20},{-80,-6},{-42,-6}}, color={0,0,127}));
+ annotation (
+ Icon(coordinateSystem(initialScale=0.1), graphics={Rectangle(
+ extent={{-100,100},{100,-100}},
+ lineColor={28,108,200},
+ fillColor={255,255,255},
+ fillPattern=FillPattern.Solid),Text(
+ extent={{-68,96},{70,60}},
+ lineColor={28,108,200},
+ fillColor={255,255,255},
+ fillPattern=FillPattern.Solid,
+ textString="Rectifier Commutation
+Voltage Drop"), Text(
+ extent={{-99,4},{-70,-6}},
+ lineColor={28,108,200},
+ textString="V_EX"),Text(
+ extent={{-19,-86},{18,-96}},
+ lineColor={28,108,200},
+ textString="XADIFD"),Text(
+ extent={{76,6},{98,-4}},
+ lineColor={28,108,200},
+ textString="EFD")}),
+ Diagram(coordinateSystem(initialScale=0.1)),
+ Documentation);
+ end RectifierCommutationVoltageDrop;
+
+ function calculate_dc_exciter_params
+ "Automatic Calculation of DC Exciter Parameters"
+ input Real V_RMAX_init;
+ input Real V_RMIN_init;
+ input Real K_E_init;
+ input Real E_2;
+ input Real S_EE_2;
+ input Real Efd0;
+ input Real SE_Efd0;
+ output Real V_RMAX;
+ output Real V_RMIN;
+ output Real K_E;
+ algorithm
+ if V_RMAX_init == 0 then
+ if K_E_init <= 0 then
+ V_RMAX := S_EE_2*E_2;
+ else
+ V_RMAX := S_EE_2 + K_E_init;
+ end if;
+ else
+ V_RMAX := V_RMAX_init;
+ end if;
+ if K_E_init == 0 then
+ K_E := V_RMAX/(10*Efd0) - SE_Efd0;
+ else
+ K_E := K_E_init;
+ end if;
+ if V_RMAX_init == 0 then
+ V_RMIN := -V_RMAX;
+ else
+ V_RMIN := V_RMIN_init;
+ end if;
+ annotation (Documentation(info="
+
+
+Reference |
+PAGV2 - Section 15.2.4, PSS/E Manual |
+
+
+Last update |
+2016-04-19 |
+
+
+Author |
+Tin Rabuzin, SmarTS Lab, KTH Royal Institute of Technology |
+
+
+Contact |
+luigiv@kth.se |
+
+
+"));
+ end calculate_dc_exciter_params;
+
+ model RotatingExciterBase
+ parameter Real T_E "Exciter time constant (s)";
+ parameter Real K_E "Exciter field gain";
+ parameter Real E_1 "Exciter saturation point 1 (pu)";
+ parameter Real E_2 "Exciter saturation point 2 (pu)";
+ parameter Real S_EE_1 "Saturation at E_1";
+ parameter Real S_EE_2 "Saturation at E_2";
+ parameter Real Efd0;
+ Modelica.Blocks.Interfaces.RealInput I_C annotation (Placement(transformation(
+ extent={{-120,-20},{-80,20}}), iconTransformation(extent={{-100,-10},
+ {-80,10}})));
+ Modelica.Blocks.Interfaces.RealOutput EFD annotation (Placement(
+ transformation(extent={{80,-10},{100,10}}), iconTransformation(extent={
+ {80,-10},{100,10}})));
+ Modelica.Blocks.Math.Gain gain(k=K_E) annotation (Placement(transformation(
+ extent={{-10,-10},{10,10}},
+ rotation=180,
+ origin={30,-50})));
+ replaceable Modelica.Blocks.Math.Add Sum annotation (Placement(transformation(
+ extent={{-10,10},{10,-10}},
+ rotation=180,
+ origin={-30,-30})));
+ Modelica.Blocks.Math.Product VE annotation (Placement(transformation(
+ extent={{-10,-10},{10,10}},
+ rotation=180,
+ origin={30,-10})));
+ NonElectrical.Functions.ImSE se1(
+ SE1=S_EE_1,
+ SE2=S_EE_2,
+ E1=E_1,
+ E2=E_2) annotation (Placement(transformation(
+ extent={{-9,-6},{9,6}},
+ rotation=180,
+ origin={61,-4})));
+ Modelica.Blocks.Math.Feedback feedback
+ annotation (Placement(transformation(extent={{-60,10},{-40,30}})));
+ replaceable Modelica.Blocks.Interfaces.SISO sISO
+ annotation (Placement(transformation(extent={{-10,10},{10,30}})));
+ equation
+ connect(Sum.y, feedback.u2) annotation (Line(points={{-41,-30},{-41,-30},{-50,
+ -30},{-50,12}}, color={0,0,127}));
+ connect(se1.VE_OUT, VE.u2)
+ annotation (Line(points={{51.46,-4},{42,-4}}, color={0,0,127}));
+ connect(se1.VE_IN, EFD) annotation (Line(points={{70.9,-4},{76,-4},{76,0},{90,
+ 0}}, color={0,0,127}));
+ connect(VE.u1, EFD) annotation (Line(points={{42,-16},{76,-16},{76,0},{90,0}},
+ color={0,0,127}));
+ connect(gain.u, EFD) annotation (Line(points={{42,-50},{76,-50},{76,0},{90,0}},
+ color={0,0,127}));
+ connect(gain.y, Sum.u2) annotation (Line(points={{19,-50},{-12,-50},{-12,-30},
+ {-18,-30}}, color={0,0,127}));
+ connect(VE.y, Sum.u1) annotation (Line(points={{19,-10},{-12,-10},{-12,-22},{
+ -18,-22}}, color={0,0,127}));
+ connect(I_C, feedback.u1) annotation (Line(points={{-100,0},{-68,0},{-68,20},
+ {-58,20}}, color={0,0,127}));
+ connect(feedback.y, sISO.u)
+ annotation (Line(points={{-41,20},{-12,20},{-12,20}}, color={0,0,127}));
+ connect(sISO.y, EFD)
+ annotation (Line(points={{11,20},{76,20},{76,0},{90,0}}, color={0,0,127}));
+ annotation (
+ Icon(coordinateSystem(initialScale=0.05, extent={{-80,-80},{80,80}}),
+ graphics={Rectangle(
+ extent={{-80,80},{80,-80}},
+ lineColor={28,108,200},
+ fillColor={255,255,255},
+ fillPattern=FillPattern.Solid),Text(
+ extent={{-52,70},{44,56}},
+ lineColor={28,108,200},
+ fillColor={255,255,255},
+ fillPattern=FillPattern.Solid,
+ textString="Rotating Exciter"),Text(
+ extent={{-81,4},{-57,-6}},
+ lineColor={28,108,200},
+ textString="I_C"),Text(
+ extent={{56,6},{77,-4}},
+ lineColor={28,108,200},
+ textString="V_E")}),
+ Diagram(coordinateSystem(initialScale=0.05, extent={{-80,-80},{80,80}})),
+ Documentation);
+ end RotatingExciterBase;
+
+ function invFEX "Inverse F_EX function for initialization"
+ input Real K_C=K_C;
+ input Real Efd0;
+ input Real Ifd0;
+ output Real VE0;
+ algorithm
+ if Ifd0 <= 0 then
+ VE0 := Efd0;
+ elseif K_C*Ifd0/(Efd0 + 0.577*K_C*Ifd0) <= 0.433 then
+ VE0 := Efd0 + 0.577*K_C*Ifd0;
+ elseif K_C*Ifd0/sqrt((Efd0^2 + (K_C*Ifd0)^2)/0.75) > 0.433 and K_C*Ifd0/sqrt(
+ (Efd0^2 + (K_C*Ifd0)^2)/0.75) < 0.75 then
+ VE0 := sqrt((Efd0^2 + (K_C*Ifd0)^2)/0.75);
+ else
+ VE0 := (Efd0 + 1.732*K_C*Ifd0)/1.732;
+ end if;
+ annotation (Documentation(info="
+
+
+Reference |
+PAGV2 - Section 15.2.4, PSS/E Manual |
+
+
+Last update |
+2016-04-19 |
+
+
+Author |
+Tin Rabuzin, SmarTS Lab, KTH Royal Institute of Technology |
+
+
+Contact |
+luigiv@kth.se |
+
+
+"));
+ end invFEX;
+ annotation (Documentation);
+ end BaseClasses;
+ annotation (Documentation(info="
+"));
+ end ES;
+
+ package TG
+ model ConstantPower
+ extends BaseClasses.BaseGovernor;
+ equation
+ connect(PMECH0, PMECH) annotation (Line(points={{-100,-50},{0,-50},{0,0},{110,
+ 0}}, color={0,0,127}));
+ annotation (Icon(coordinateSystem(preserveAspectRatio=false)), Diagram(
+ coordinateSystem(preserveAspectRatio=false)));
+ end ConstantPower;
+
+ model IEEEG1
+ Modelica.Blocks.Interfaces.RealInput SPEED_HP "Machine speed deviation from nominal (pu)"
+ annotation (Placement(transformation(extent={{-172,2},{-162,14}}), iconTransformation(extent={{-162,-16},{-132,16}})));
+ OpenIPSL.NonElectrical.Continuous.LeadLag imLeadLag(
+ K=K,
+ T1=T_2,
+ T2=T_1,
+ y_start=0) annotation (Placement(transformation(extent={{-144,0},
+ {-128,16}})));
+ OpenIPSL.NonElectrical.Continuous.SimpleLag imSimpleLag(
+ K=1,
+ T=T_4,
+ y_start=P0) annotation (Placement(transformation(extent={{-20,0},
+ {-4,16}})));
+ OpenIPSL.NonElectrical.Continuous.SimpleLag imSimpleLag1(
+ K=1,
+ T=T_5,
+ y_start=P0)
+ annotation (Placement(transformation(extent={{22,0},{38,16}})));
+ OpenIPSL.NonElectrical.Continuous.SimpleLag imSimpleLag2(
+ K=1,
+ T=T_6,
+ y_start=P0)
+ annotation (Placement(transformation(extent={{62,0},{78,16}})));
+ OpenIPSL.NonElectrical.Continuous.SimpleLag imSimpleLag3(
+ K=1,
+ T=T_7,
+ y_start=P0) annotation (Placement(transformation(extent={{102,0},
+ {118,16}})));
+ Modelica.Blocks.Math.Gain imGain1(k=K_1) annotation (Placement(transformation(
+ extent={{-6,-6},{6,6}},
+ rotation=90,
+ origin={10,32})));
+ Modelica.Blocks.Math.Gain imGain2(k=K_2) annotation (Placement(transformation(
+ extent={{-6,-6},{6,6}},
+ rotation=-90,
+ origin={10,-16})));
+ Modelica.Blocks.Math.Gain imGain3(k=K_3) annotation (Placement(transformation(
+ extent={{-6,-6},{6,6}},
+ rotation=90,
+ origin={50,32})));
+ Modelica.Blocks.Math.Gain imGain4(k=K_4) annotation (Placement(transformation(
+ extent={{-6,-6},{6,6}},
+ rotation=-90,
+ origin={50,-16})));
+ Modelica.Blocks.Math.Gain imGain5(k=K_5) annotation (Placement(transformation(
+ extent={{-6,-6},{6,6}},
+ rotation=90,
+ origin={90,32})));
+ Modelica.Blocks.Math.Gain imGain6(k=K_6) annotation (Placement(transformation(
+ extent={{-6,-6},{6,6}},
+ rotation=-90,
+ origin={90,-16})));
+ Modelica.Blocks.Math.Gain imGain7(k=K_7) annotation (Placement(transformation(
+ extent={{-6,-6},{6,6}},
+ rotation=90,
+ origin={130,32})));
+ Modelica.Blocks.Math.Gain imGain8(k=K_8) annotation (Placement(transformation(
+ extent={{-6,-6},{6,6}},
+ rotation=-90,
+ origin={130,-16})));
+ Modelica.Blocks.Interfaces.RealOutput PMECH_HP
+ "Turbine mechanical power (pu)" annotation (Placement(transformation(extent=
+ {{170,52},{180,64}}), iconTransformation(extent={{160,26},{188,54}})));
+ Modelica.Blocks.Interfaces.RealOutput PMECH_LP
+ "Turbine mechanical power (pu)" annotation (Placement(transformation(extent=
+ {{170,-48},{180,-36}}), iconTransformation(extent={{160,-56},{188,-24}})));
+ parameter Real P0 "Power reference of the governor";
+ parameter Real K=20 "Governor gain, 1/R (pu)";
+ parameter Real T_1=1e-8 "Control time constant (s)";
+ parameter Real T_2=1e-8 "Control time constant (s)";
+ parameter Real T_3=0.1 "Control time constant (s)";
+ parameter Real U_o=0.1 "Max. rate if valve opening (p.u./s)";
+ parameter Real U_c=-0.1 "Max. rate if valve closing (p.u./s)";
+ parameter Real P_MAX=0.903 "Max. valve position (pu)";
+ parameter Real P_MIN=0 "Min. valve position (pu)";
+ parameter Real T_4=0.4 "HP section time constant (s)";
+ parameter Real K_1=0.3 "Fraction of power from HP (pu)";
+ parameter Real K_2=0;
+ parameter Real T_5=9 "Reheat+IP time constant (s)";
+ parameter Real K_3=0.4 "Fraction of power from IP (pu)";
+ parameter Real K_4=0;
+ parameter Real T_6=0.5 "Reheat+IP time constant s";
+ parameter Real K_5=0.3 "Fraction of power from LP (pu)";
+ parameter Real K_6=0;
+ parameter Real T_7=1e-8 "LP section time const s";
+ parameter Real K_7=0 "Fraction of power from IP (pu)";
+ parameter Real K_8=0;
+ Modelica.Blocks.Sources.Constant Pref(k=P0) "Power reference "
+ annotation (Placement(transformation(extent={{-144,34},{-128,50}})));
+ Modelica.Blocks.Math.Add3 add3_1(k2=-1, k3=-1)
+ annotation (Placement(transformation(extent={{-112,0},{-96,16}})));
+ Modelica.Blocks.Math.Gain gain(k=1/T_3)
+ annotation (Placement(transformation(extent={{-90,0},{-74,16}})));
+ Modelica.Blocks.Nonlinear.Limiter limiter(uMax=U_o, uMin=U_c)
+ annotation (Placement(transformation(extent={{-68,0},{-52,16}})));
+ Modelica.Blocks.Continuous.LimIntegrator limIntegrator(
+ k=1,
+ outMax=P_MAX,
+ outMin=P_MIN,
+ initType=Modelica.Blocks.Types.Init.InitialOutput,
+ y_start=P0)
+ annotation (Placement(transformation(extent={{-46,0},{-30,16}})));
+ Modelica.Blocks.Math.Add add
+ annotation (Placement(transformation(extent={{58,52},{70,64}})));
+ Modelica.Blocks.Math.Add add1
+ annotation (Placement(transformation(extent={{58,-48},{70,-36}})));
+ Modelica.Blocks.Math.Add add2
+ annotation (Placement(transformation(extent={{98,-48},{110,-36}})));
+ Modelica.Blocks.Math.Add add3
+ annotation (Placement(transformation(extent={{98,52},{110,64}})));
+ Modelica.Blocks.Math.Add add4
+ annotation (Placement(transformation(extent={{138,-48},{150,-36}})));
+ Modelica.Blocks.Math.Add add5
+ annotation (Placement(transformation(extent={{138,52},{150,64}})));
+ equation
+ connect(SPEED_HP, imLeadLag.u) annotation (Line(points={{-167,8},{-145.6,8}}, color={0,0,127}));
+ connect(Pref.y, add3_1.u1) annotation (Line(points={{-127.2,42},{-122,42},{-122,14.4},{-113.6,14.4}}, color={0,0,127}));
+ connect(add3_1.u2, imLeadLag.y) annotation (Line(points={{-113.6,8},{-113.6,8},{-127.2,8}}, color={0,0,127}));
+ connect(add3_1.y, gain.u) annotation (Line(points={{-95.2,8},{-91.6,8}}, color={0,0,127}));
+ connect(gain.y, limiter.u) annotation (Line(points={{-73.2,8},{-69.6,8}}, color={0,0,127}));
+ connect(limiter.y, limIntegrator.u) annotation (Line(points={{-51.2,8},{-47.6,8}}, color={0,0,127}));
+ connect(imSimpleLag1.u, imSimpleLag.y) annotation (Line(points={{20.4,8},{20.4,8},{-3.2,8}}, color={0,0,127}));
+ connect(limIntegrator.y, imSimpleLag.u) annotation (Line(points={{-29.2,8},{-21.6,8}}, color={0,0,127}));
+ connect(add3_1.u3, imSimpleLag.u) annotation (Line(points={{-113.6,1.6},{-122,1.6},{-122,-22},{-26,-22},{-26,8},{-21.6,8}}, color={0,0,127}));
+ connect(imGain1.u, imSimpleLag.y) annotation (Line(points={{10,24.8},{10,8},{-3.2,8}}, color={0,0,127}));
+ connect(imGain2.u, imSimpleLag.y) annotation (Line(points={{10,-8.8},{10,8},{-3.2,8}}, color={0,0,127}));
+ connect(imSimpleLag1.y, imSimpleLag2.u) annotation (Line(points={{38.8,8},{60.4,8}}, color={0,0,127}));
+ connect(imGain3.u, imSimpleLag2.u) annotation (Line(points={{50,24.8},{50,8},{60.4,8}}, color={0,0,127}));
+ connect(imGain4.u, imSimpleLag2.u) annotation (Line(points={{50,-8.8},{50,8},{60.4,8}}, color={0,0,127}));
+ connect(add.u2, imGain3.y) annotation (Line(points={{56.8,54.4},{50,54.4},{50,38.6}}, color={0,0,127}));
+ connect(imGain1.y, add.u1) annotation (Line(points={{10,38.6},{10,61.6},{56.8,61.6}}, color={0,0,127}));
+ connect(add1.u1, imGain4.y) annotation (Line(points={{56.8,-38.4},{50,-38.4},{50,-22.6}}, color={0,0,127}));
+ connect(imGain2.y, add1.u2) annotation (Line(points={{10,-22.6},{10,-45.6},{56.8,-45.6}}, color={0,0,127}));
+ connect(imSimpleLag2.y, imSimpleLag3.u) annotation (Line(points={{78.8,8},{100.4,8}}, color={0,0,127}));
+ connect(imGain5.u, imSimpleLag3.u) annotation (Line(points={{90,24.8},{90,8},{100.4,8}}, color={0,0,127}));
+ connect(imGain6.u, imSimpleLag3.u) annotation (Line(points={{90,-8.8},{90,8},{100.4,8}}, color={0,0,127}));
+ connect(imGain6.y, add2.u1) annotation (Line(points={{90,-22.6},{90,-38.4},{96.8,-38.4}}, color={0,0,127}));
+ connect(add1.y, add2.u2) annotation (Line(points={{70.6,-42},{90,-42},{90,-45.6},{96.8,-45.6}}, color={0,0,127}));
+ connect(add.y, add3.u1) annotation (Line(points={{70.6,58},{90,58},{90,61.6},{96.8,61.6}}, color={0,0,127}));
+ connect(imGain5.y, add3.u2) annotation (Line(points={{90,38.6},{90,54.4},{96.8,54.4}}, color={0,0,127}));
+ connect(imSimpleLag3.y, imGain7.u) annotation (Line(points={{118.8,8},{130,8},{130,24.8}}, color={0,0,127}));
+ connect(imGain8.u, imGain7.u) annotation (Line(points={{130,-8.8},{130,24.8}}, color={0,0,127}));
+ connect(add4.y, PMECH_LP) annotation (Line(points={{150.6,-42},{152,-42},{175,-42}}, color={0,0,127}));
+ connect(imGain8.y, add4.u1) annotation (Line(points={{130,-22.6},{130,-38.4},{136.8,-38.4}}, color={0,0,127}));
+ connect(add2.y, add4.u2) annotation (Line(points={{110.6,-42},{130,-42},{130,-45.6},{136.8,-45.6}}, color={0,0,127}));
+ connect(add3.y, add5.u1) annotation (Line(points={{110.6,58},{130,58},{130,61.6},{136.8,61.6}}, color={0,0,127}));
+ connect(imGain7.y, add5.u2) annotation (Line(points={{130,38.6},{130,54.4},{136.8,54.4}}, color={0,0,127}));
+ connect(add5.y, PMECH_HP) annotation (Line(points={{150.6,58},{152,58},{175,58}}, color={0,0,127}));
+ annotation (
+ Diagram(coordinateSystem(extent={{-140,-80},{160,80}}, preserveAspectRatio=
+ false)),
+ Icon(coordinateSystem(extent={{-140,-80},{160,80}}, preserveAspectRatio=
+ true), graphics={Rectangle(extent={{-140,80},{160,-80}}, lineColor=
+ {0,0,255}),Text(
+ extent={{-122,18},{-68,-18}},
+ lineColor={0,0,255},
+ fillPattern=FillPattern.Solid,
+ textString="SPEED_HP"),Text(
+ extent={{84,56},{158,26}},
+ lineColor={0,0,255},
+ fillPattern=FillPattern.Solid,
+ textString="PMECH_HP"),Text(
+ extent={{86,-10},{158,-48}},
+ lineColor={0,0,255},
+ fillPattern=FillPattern.Solid,
+ textString="PMECH_LP"),Text(
+ extent={{-68,40},{88,-46}},
+ lineColor={0,0,255},
+ fillPattern=FillPattern.Solid,
+ textString="IEEEG1")}),
+ Documentation(info="
+
+
+Reference |
+Turbine and Governor (IEEEG1), PSSE manual |
+
+
+Last update |
+2015-10-02 |
+
+
+Author |
+Le Qi, SmarTS Lab, KTH Royal Institute of Technology |
+
+
+Contact |
+luigi.vanfretti@gmail.com |
+
+
+"));
+ end IEEEG1;
+
+ model IEESGO "IEESGO - IEEE Standard Model for Turbine-Governor"
+ extends BaseClasses.BaseGovernor;
+ parameter Real T_1=0.2 "Controller lag (s)";
+ parameter Real T_2=0 "Controller lead compensation (s)";
+ parameter Real T_3=0.5 "Governor lag (s)";
+ parameter Real T_4=0.12
+ "Delay due to steam inlet volumes associated with steam chest and inlet piping (s)";
+ parameter Real T_5=5 "Reheater delay including hot and cold leads (s)";
+ parameter Real T_6=0.5
+ "Delay due to IP-LP turbine, crossover pipes, and LP end hoods (s)";
+ parameter Real K_1=20 "1/p.u. regulation ";
+ parameter Real K_2=0.59 "Fraction ";
+ parameter Real K_3=0.43 "Fraction ";
+ parameter Real P_MAX=0.98 "Upper power limit";
+ parameter Real P_MIN=0 "Lower power limit";
+ OpenIPSL.NonElectrical.Continuous.SimpleLag imSimpleLag(
+ K=K_1,
+ T=T_1,
+ y_start=0) annotation (Placement(transformation(extent={{-180,-130},
+ {-160,-110}})));
+ OpenIPSL.NonElectrical.Continuous.LeadLag imLeadLag(
+ K=1,
+ T1=T_2,
+ T2=T_3,
+ y_start=0) annotation (Placement(transformation(extent={{-140,-130},
+ {-120,-110}})));
+ OpenIPSL.NonElectrical.Continuous.SimpleLag imSimpleLag1(
+ K=1,
+ T=T_4,
+ y_start=p0) annotation (Placement(transformation(extent={{20,-10},
+ {40,10}})));
+ OpenIPSL.NonElectrical.Continuous.SimpleLag imSimpleLag2(
+ K=K_2,
+ T=T_5,
+ y_start=p0*K_2) annotation (Placement(transformation(extent={{
+ 80,-80},{100,-60}})));
+ OpenIPSL.NonElectrical.Continuous.SimpleLag imSimpleLag3(
+ K=K_3,
+ T=T_6,
+ y_start=p0*K_2*K_3) annotation (Placement(transformation(extent
+ ={{120,-80},{140,-60}})));
+ Modelica.Blocks.Math.Add add(k2=-1) annotation (Placement(transformation(extent={{-60,-10},
+ {-40,10}})));
+ Modelica.Blocks.Nonlinear.Limiter limiter(uMax=P_MAX, uMin=P_MIN) annotation (Placement(transformation(extent={{-20,-10},
+ {0,10}})));
+ Modelica.Blocks.Math.Gain gain(k=1 - K_2) annotation (Placement(transformation(extent={{120,-10},
+ {140,10}})));
+ Modelica.Blocks.Math.Gain gain1(k=1 - K_3) annotation (Placement(transformation(extent={{120,-40},
+ {140,-20}})));
+ Modelica.Blocks.Math.Add3 add3_1 annotation (Placement(transformation(extent={{160,-18},
+ {180,2}})));
+ protected
+ parameter Real p0(fixed=false);
+ initial algorithm
+ p0 := PMECH0;
+
+ equation
+ connect(imSimpleLag.y, imLeadLag.u) annotation (Line(points={{-159,-120},{-142,
+ -120}}, color={0,0,127}));
+ connect(imLeadLag.y, add.u2) annotation (Line(points={{-119,-120},{-80,-120},{
+ -80,-6},{-62,-6}}, color={0,0,127}));
+ connect(add.y, limiter.u) annotation (Line(points={{-39,0},{-22,0}}, color={0,0,127}));
+ connect(limiter.y, imSimpleLag1.u) annotation (Line(points={{1,0},{1,0},{18,0}}, color={0,0,127}));
+ connect(imSimpleLag2.y, imSimpleLag3.u) annotation (Line(points={{101,-70},{118,
+ -70}}, color={0,0,127}));
+ connect(gain1.u, imSimpleLag3.u) annotation (Line(points={{118,-30},{110,-30},
+ {110,-70},{118,-70}}, color={0,0,127}));
+ connect(PMECH0, add.u1) annotation (Line(points={{-240,80},{-80,80},{-80,6},{-62,
+ 6}}, color={0,0,127}));
+ connect(SPEED, imSimpleLag.u) annotation (Line(points={{-240,-120},{-212,-120},
+ {-182,-120}}, color={0,0,127}));
+ connect(imSimpleLag1.y, gain.u)
+ annotation (Line(points={{41,0},{118,0}}, color={0,0,127}));
+ connect(imSimpleLag2.u, gain.u) annotation (Line(points={{78,-70},{60,-70},{60,
+ 0},{118,0}}, color={0,0,127}));
+ connect(gain.y, add3_1.u1)
+ annotation (Line(points={{141,0},{141,0},{158,0}}, color={0,0,127}));
+ connect(gain1.y, add3_1.u2) annotation (Line(points={{141,-30},{148,-30},{148,
+ -8},{158,-8}}, color={0,0,127}));
+ connect(imSimpleLag3.y, add3_1.u3) annotation (Line(points={{141,-70},{152,-70},
+ {152,-16},{158,-16}}, color={0,0,127}));
+ connect(add3_1.y, PMECH) annotation (Line(points={{181,-8},{188,-8},{188,0},{250,
+ 0}}, color={0,0,127}));
+ annotation (
+ Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-240,-200},{240,160}})),
+ Icon(coordinateSystem(preserveAspectRatio=false, extent={{-240,-200},{240,160}}),
+ graphics={Text(
+ extent={{-52,20},{68,-20}},
+ lineColor={28,108,200},
+ textString="IEESGO")}));
+ end IEESGO;
+
+ model HYGOV
+ extends BaseClasses.BaseGovernor;
+ parameter Real R=0.05 "Permanent droop (pu)";
+ parameter Real r=0.3 "Temporary droop (pu)";
+ parameter Real T_r=5 "Governor time constant (s)";
+ parameter Real T_f=0.05 "Filter time constant (s)";
+ parameter Real T_g=0.5 "Servo time constant (s)";
+ parameter Real VELM=0.2 "Gate open/close velocity limit";
+ parameter Real G_MAX=0.9 "Maximum gate limit";
+ parameter Real G_MIN=0 "Minimum gate limit";
+ parameter Real T_w=1.25 "Water time constant (s)";
+ parameter Real A_t=1.2 "Turbine gain";
+ parameter Real D_turb=0.2 "Turbine damping";
+ parameter Real q_NL=0.08 "Water flow at no load";
+ Modelica.Blocks.Sources.Constant n_ref(k=nref) annotation (Placement(transformation(extent={{-178,14},{-166,26}})));
+ OpenIPSL.NonElectrical.Continuous.SimpleLag SimpleLag1(
+ K=1,
+ T=T_f,
+ y_start=0) annotation (Placement(transformation(extent={{-126,0},
+ {-114,12}})));
+ Modelica.Blocks.Math.Gain Gain3(k=R)
+ annotation (Placement(transformation(extent={{-130,-22},{-142,-10}})));
+ Modelica.Blocks.Math.Gain Gain4(k=D_turb)
+ annotation (Placement(transformation(extent={{-62,-34},{-50,-22}})));
+ Modelica.Blocks.Sources.Constant hs(k=1)
+ annotation (Placement(transformation(extent={{20,-20},{32,-8}})));
+ Modelica.Blocks.Continuous.Integrator q(
+ y_start=q0,
+ initType=Modelica.Blocks.Types.Init.InitialOutput,
+ k=1/T_w) annotation (Placement(transformation(extent={{62,-4},{74,8}})));
+ Modelica.Blocks.Sources.Constant qNL(k=q_NL) annotation (Placement(transformation(extent={{92,-18},{84,-10}})));
+ Modelica.Blocks.Math.Gain Gain6(k=A_t) annotation (Placement(transformation(extent={{132,-2},{144,10}})));
+ OpenIPSL.NonElectrical.Continuous.SimpleLag g(
+ K=1,
+ T=T_g,
+ y_start=g0) "servo_motor" annotation (Placement(transformation(
+ extent={{-40,0},{-28,12}})));
+ Modelica.Blocks.Nonlinear.Limiter Velocity_Limiter(uMin=-VELM, uMax=VELM) annotation (Placement(transformation(extent={{-86,0},{-74,12}})));
+ Modelica.Blocks.Continuous.LimIntegrator Position_Limiter(
+ outMin=G_MIN,
+ outMax=G_MAX,
+ k=1,
+ y_start=c0,
+ initType=Modelica.Blocks.Types.Init.InitialOutput)
+ annotation (Placement(transformation(extent={{-68,0},{-56,12}})));
+ Real G "Gate opening (pu)";
+ Real c "Desired gate opening (pu)";
+ Real Q "Turbine flow (pu)";
+ Real H "Turbine head (pu)";
+ Modelica.Blocks.Math.Add add(k2=-1)
+ annotation (Placement(transformation(extent={{-144,0},{-132,12}})));
+ Modelica.Blocks.Math.Add add1
+ annotation (Placement(transformation(extent={{-168,-12},{-156,0}})));
+ Modelica.Blocks.Math.Division division
+ annotation (Placement(transformation(extent={{0,-4},{12,8}})));
+ Modelica.Blocks.Math.Product product
+ annotation (Placement(transformation(extent={{20,-4},{32,8}})));
+ Modelica.Blocks.Math.Add add2(k1=-1)
+ annotation (Placement(transformation(extent={{42,-4},{54,8}})));
+ Modelica.Blocks.Math.Add add3(k2=-1)
+ annotation (Placement(transformation(extent={{82,-4},{94,8}})));
+ Modelica.Blocks.Math.Add add4(k2=-1)
+ annotation (Placement(transformation(extent={{152,-6},{164,6}})));
+ Modelica.Blocks.Math.Product product1
+ annotation (Placement(transformation(extent={{58,-30},{70,-18}})));
+ Modelica.Blocks.Math.Product product2
+ annotation (Placement(transformation(extent={{108,-2},{120,10}})));
+ NonElectrical.Continuous.SimpleLead simpleLead(
+ K=r*T_r,
+ T=T_r,
+ y_start=0)
+ annotation (Placement(transformation(extent={{-106,0},{-94,12}})));
+ protected
+ parameter Real h0=1 "water head initial value";
+ // Real T_w(start=T_w);//=1.25 "Water time constant, s";
+ parameter Real q0(fixed=false);
+ //=Pm0/(A_t*h0)+q_NL "water flow initial value";
+ parameter Real g0(fixed=false);
+ //=q0/sqrt(h0) "the gate opening initial value";
+ parameter Real c0(fixed=false);
+ //=g0 "desired gate position";
+ parameter Real e0=0 "initial output for the filter";
+ parameter Real nref(fixed=false);
+ //=R*c0 "speed reference";
+ parameter Real P_m0(fixed=false);
+ initial algorithm
+ P_m0 := PMECH0;
+ q0 := P_m0/(A_t*h0) + q_NL;
+ g0 := q0/sqrt(h0);
+ //
+ //
+ c0 := g0;
+ //c0_calculation(g0,G_MIN,G_MAX);
+ nref := R*c0;
+ //
+ equation
+ G = g.y;
+ c = g.u;
+ Q = q.y;
+ H = product.y;
+ connect(add.y, SimpleLag1.u) annotation (Line(points={{-131.4,6},{-127.2,6}}, color={0,0,127}));
+ connect(n_ref.y, add.u1) annotation (Line(points={{-165.4,20},{-152,20},{-152,9.6},{-145.2,9.6}}, color={0,0,127}));
+ connect(add1.y, add.u2) annotation (Line(points={{-155.4,-6},{-150,-6},{-150,2.4},{-145.2,2.4}}, color={0,0,127}));
+ connect(Gain3.y, add1.u2) annotation (Line(points={{-142.6,-16},{-178,-16},{-178,-9.6},{-169.2,-9.6}}, color={0,0,127}));
+ connect(Velocity_Limiter.y, Position_Limiter.u) annotation (Line(points={{-73.4,6},{-69.2,6}}, color={0,0,127}));
+ connect(Position_Limiter.y, Gain3.u) annotation (Line(points={{-55.4,6},{-52,6},{-52,-16},{-128.8,-16}}, color={0,0,127}));
+ connect(g.u, Gain3.u) annotation (Line(points={{-41.2,6},{-52,6},{-52,-16},{-128.8,-16}}, color={0,0,127}));
+ connect(division.y, product.u1) annotation (Line(points={{12.6,2},{14,2},{14,5.6},{18.8,5.6}}, color={0,0,127}));
+ connect(product.u2, product.u1) annotation (Line(points={{18.8,-1.6},{14,-1.6},{14,5.6},{18.8,5.6}}, color={0,0,127}));
+ connect(product.y, add2.u1) annotation (Line(points={{32.6,2},{36,2},{36,5.6},{40.8,5.6}}, color={0,0,127}));
+ connect(hs.y, add2.u2) annotation (Line(points={{32.6,-14},{36,-14},{36,-1.6},{40.8,-1.6}}, color={0,0,127}));
+ connect(add2.y, q.u) annotation (Line(points={{54.6,2},{60.8,2}}, color={0,0,127}));
+ connect(q.y, add3.u1) annotation (Line(points={{74.6,2},{76,2},{76,5.6},{80.8,5.6}}, color={0,0,127}));
+ connect(qNL.y, add3.u2) annotation (Line(points={{83.6,-14},{76,-14},{76,-1.6},{80.8,-1.6}}, color={0,0,127}));
+ connect(Gain4.y, product1.u2) annotation (Line(points={{-49.4,-28},{4,-28},{4,-27.6},{56.8,-27.6}}, color={0,0,127}));
+ connect(product1.y, add4.u2) annotation (Line(points={{70.6,-24},{144,-24},{144,-3.6},{150.8,-3.6}}, color={0,0,127}));
+ connect(product1.u1, g.y) annotation (Line(points={{56.8,-20.4},{-16,-20.4},{-16,6},{-27.4,6}}, color={0,0,127}));
+ connect(division.u2, g.y) annotation (Line(points={{-1.2,-1.6},{-16,-1.6},{-16,6},{-27.4,6}}, color={0,0,127}));
+ connect(division.u1, add3.u1) annotation (Line(points={{-1.2,5.6},{-6,5.6},{-6,20},{76,20},{76,5.6},{80.8,5.6}}, color={0,0,127}));
+ connect(Gain6.y, add4.u1) annotation (Line(points={{144.6,4},{150.8,4},{150.8,3.6}}, color={0,0,127}));
+ connect(product2.y, Gain6.u) annotation (Line(points={{120.6,4},{130.8,4},{130.8,4}}, color={0,0,127}));
+ connect(add3.y, product2.u2) annotation (Line(points={{94.6,2},{100,2},{100,0.4},{106.8,0.4}}, color={0,0,127}));
+ connect(product2.u1, add2.u1) annotation (Line(points={{106.8,7.6},{100,7.6},{100,16},{36,16},{36,5.6},{40.8,5.6}}, color={0,0,127}));
+ connect(simpleLead.y, Velocity_Limiter.u) annotation (Line(points={{-93.4,6},{-87.2,6}}, color={0,0,127}));
+ connect(simpleLead.u, SimpleLag1.y) annotation (Line(points={{-107.2,6},{-113.4,6}}, color={0,0,127}));
+ connect(add4.y, PMECH)
+ annotation (Line(points={{164.6,0},{250,0},{250,0}}, color={0,0,127}));
+ connect(SPEED, add1.u1) annotation (Line(points={{-240,-120},{-200,-120},{
+ -200,-2.4},{-169.2,-2.4}}, color={0,0,127}));
+ connect(Gain4.u, add1.u1) annotation (Line(points={{-63.2,-28},{-200,-28},{
+ -200,-2.4},{-169.2,-2.4}}, color={0,0,127}));
+ annotation (
+ Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-240,-200},{
+ 240,160}}), graphics={Rectangle(
+ extent={{-190,32},{-12,-38}},
+ lineColor={255,128,0},
+ pattern=LinePattern.Dash,
+ lineThickness=1),Text(
+ extent={{-126,40},{-82,34}},
+ lineColor={255,128,0},
+ textStyle={TextStyle.Bold},
+ textString="Governor System"),Rectangle(
+ extent={{-8,32},{166,-38}},
+ lineColor={85,170,255},
+ pattern=LinePattern.Dash,
+ lineThickness=1),Text(
+ extent={{38,42},{98,32}},
+ lineColor={85,170,255},
+ textStyle={TextStyle.Bold},
+ textString="Hydrauli Turbine System")}),
+ Icon(coordinateSystem(extent={{-240,-200},{240,160}},preserveAspectRatio=false),
+ graphics={Text(
+ extent={{-60,16},{64,-24}},
+ lineColor={28,108,200},
+ textString="HYGOV")}));
+ end HYGOV;
+
+ model TGOV1 "TGOV1 - Steam Turbine-Governor"
+ extends BaseClasses.BaseGovernor;
+ OpenIPSL.NonElectrical.Continuous.LeadLag imLeadLag(
+ T1=T_2,
+ T2=T_3,
+ K=1,
+ y_start=P0) annotation (Placement(transformation(extent={{80,-11},
+ {100,10}})));
+ parameter Real R "Governor gain, 1/R (pu)";
+ parameter Real D_t "(pu)";
+ parameter Real T_1 "Control time constant (s)";
+ parameter Real T_2 "Control time constant (s)";
+ parameter Real T_3 "Control time constant (s)";
+ parameter Real V_MAX "Max. valve position (p.u. on M_b)";
+ parameter Real V_MIN "min. valve position (p.u. on M_b)";
+ Modelica.Blocks.Math.Gain imGain9(k=1/R) annotation (Placement(transformation(extent={{0,-10},
+ {20,10}})));
+ Modelica.Blocks.Math.Gain imGain1(k=D_t) annotation (Placement(transformation(extent={{40,-69},
+ {60,-50}})));
+ Modelica.Blocks.Math.Add add(k2=-1) annotation (Placement(transformation(extent={{-40,-11},
+ {-20,10}})));
+ Modelica.Blocks.Math.Add add1(k2=-1) annotation (Placement(transformation(extent={{180,-10},
+ {200,10}})));
+ Modelica.Blocks.Sources.Constant REF(k=P_REF) annotation (Placement(transformation(extent={{-140,40},
+ {-120,60}})));
+ NonElectrical.Continuous.SimpleLagLim simpleLagLim(
+ K=1,
+ T=T_1,
+ y_start=P0,
+ outMax=V_MAX,
+ outMin=V_MIN) annotation (Placement(transformation(extent={{40,-9},{60,10}})));
+ protected
+ parameter Real P0(fixed=false) "Power reference of the governor";
+ parameter Real P_REF(fixed=false);
+ initial equation
+ P0 = PMECH0;
+ P_REF = P0*R;
+
+ equation
+ connect(REF.y, add.u1) annotation (Line(points={{-119,50},{-60,50},{-60,5.8},{
+ -42,5.8}}, color={0,0,127}));
+ connect(simpleLagLim.u, imGain9.y) annotation (Line(points={{38,0.5},{21,0.5},
+ {21,0}}, color={0,0,127}));
+ connect(add1.y, PMECH)
+ annotation (Line(points={{201,0},{250,0},{250,0}}, color={0,0,127}));
+ connect(simpleLagLim.y, imLeadLag.u) annotation (Line(points={{61,0.5},{69.5,0.5},
+ {69.5,-0.5},{78,-0.5}}, color={0,0,127}));
+ connect(add.y, imGain9.u) annotation (Line(points={{-19,-0.5},{-10.5,-0.5},{-10.5,
+ 0},{-2,0}}, color={0,0,127}));
+ connect(imLeadLag.y, add1.u1) annotation (Line(points={{101,-0.5},{160,-0.5},{
+ 160,6},{178,6}}, color={0,0,127}));
+ connect(imGain1.y, add1.u2) annotation (Line(points={{61,-59.5},{160,-59.5},{160,
+ -6},{178,-6}}, color={0,0,127}));
+ connect(SPEED, add.u2) annotation (Line(points={{-240,-120},{-150,-120},{-60,-120},
+ {-60,-6.8},{-42,-6.8}}, color={0,0,127}));
+ connect(imGain1.u, add.u2) annotation (Line(points={{38,-59.5},{-12,-59.5},{-12,
+ -60},{-60,-60},{-60,-6.8},{-42,-6.8}}, color={0,0,127}));
+ annotation (
+ Diagram(coordinateSystem(
+ extent={{-240,-200},{240,180}},
+ preserveAspectRatio=false,
+ grid={2,2},
+ initialScale=0.1)),
+ Icon(coordinateSystem(
+ extent={{-240,-200},{240,180}},
+ preserveAspectRatio=false,
+ grid={2,2},
+ initialScale=0.1),
+ graphics={Text(
+ extent={{-60,26},{58,-18}},
+ lineColor={28,108,200},
+ textString="TGOV1")}));
+ end TGOV1;
+
+ package GGOV1 "GE General Governor/Turbine Model"
+ block Min_select
+ "Output the minimum and the maximum element of the input vector"
+ parameter Integer nu(min=0) = 0 "Number of input connections"
+ annotation (Dialog(connectorSizing=true), HideResult=true);
+ Modelica.Blocks.Interfaces.RealVectorInput u[nu]
+ annotation (Placement(transformation(extent={{-120,70},{-80,-70}})));
+ Modelica.Blocks.Interfaces.RealOutput yMin(start=frs0) annotation (Placement(
+ transformation(extent={{100,-94},{120,-74}}, rotation=0)));
+ parameter Real frs0;
+ equation
+ yMin = min(u);
+ annotation (
+ Icon(coordinateSystem(
+ preserveAspectRatio=true,
+ extent={{-100,-100},{100,100}},
+ initialScale=0.1), graphics={Text(
+ extent={{-50,46},{76,-46}},
+ lineColor={0,0,255},
+ textString="Low value
+select"), Rectangle(extent={{-100,98},{100,-98}}, lineColor={0,0,255})}),
+ Documentation(info="
+
+Determines the minimum and maximum element of the input vector and
+provide both values as output.
+
+"), Diagram(coordinateSystem(preserveAspectRatio=true, extent={{-100,-100},{100,
+ 100}}), graphics));
+ end Min_select;
+
+ block RSELECT "Output the minimum and the maximum element of the input vector"
+ // extends Modelica.Blocks.Icons.Block;
+ parameter Real Rselect;
+ Modelica.Blocks.Interfaces.RealOutput y annotation (Placement(transformation(
+ extent={{100,-12},{120,8}}, rotation=0)));
+ Modelica.Blocks.Interfaces.RealInput Pelect annotation (Placement(
+ transformation(extent={{-140,36},{-100,76}}), iconTransformation(extent=
+ {{-140,36},{-100,76}})));
+ Modelica.Blocks.Interfaces.RealInput ValveStroke annotation (Placement(
+ transformation(extent={{4,-80},{44,-40}}), iconTransformation(
+ extent={{-20,-20},{20,20}},
+ rotation=90,
+ origin={8,-120})));
+ Modelica.Blocks.Interfaces.RealInput GovernorOutput annotation (Placement(
+ transformation(extent={{6,-136},{46,-96}}), iconTransformation(
+ extent={{-20,-20},{20,20}},
+ rotation=90,
+ origin={84,-120})));
+ equation
+ y = if Rselect == 1 then Pelect elseif Rselect == (-1) then ValveStroke
+ elseif Rselect == (-2) then GovernorOutput else 0;
+ annotation (
+ Icon(coordinateSystem(
+ preserveAspectRatio=true,
+ extent={{-100,-100},{100,100}},
+ initialScale=0.1), graphics={Text(
+ extent={{-51,31},{51,-31}},
+ lineColor={0,0,255},
+ textString="Rselect
+ 1 - electrical power
+-1 - valve stroke
+-2 - governor output
+ 0 - isochronous", horizontalAlignment=TextAlignment.Left,
+ origin={-11,-1},
+ rotation=270),Rectangle(extent={{-100,100},{100,-100}}, lineColor={0,
+ 0,255})}),
+ Documentation(info="
+
+Determines the minimum and maximum element of the input vector and
+provide both values as output.
+
+"), Diagram(coordinateSystem(preserveAspectRatio=true, extent={{-100,-100},{100,
+ 100}}), graphics={Rectangle(extent={{-100,100},{100,-100}},
+ lineColor={0,0,255})}));
+ end RSELECT;
+
+ block flag "Output the minimum and the maximum element of the input vector"
+ parameter Real flag;
+ Modelica.Blocks.Interfaces.RealOutput y annotation (Placement(transformation(
+ extent={{100,-12},{120,8}}, rotation=0)));
+ Modelica.Blocks.Interfaces.RealInput speed annotation (Placement(
+ transformation(extent={{6,-136},{46,-96}}), iconTransformation(
+ extent={{-20,-20},{20,20}},
+ rotation=0,
+ origin={-120,-2})));
+ equation
+ y = if flag == 1 then speed + 1 else 1;
+ annotation (
+ Icon(coordinateSystem(
+ preserveAspectRatio=true,
+ extent={{-100,-100},{100,100}},
+ initialScale=0.1), graphics={Text(
+ extent={{-51,31},{51,-31}},
+ lineColor={0,0,255},
+ horizontalAlignment=TextAlignment.Left,
+ origin={1,5},
+ rotation=360,
+ textString="Flag"),Rectangle(extent={{-98,90},{96,-92}}, lineColor={0,
+ 0,255})}),
+ Documentation(info="
+
+Determines the minimum and maximum element of the input vector and
+provide both values as output.
+
+"), Diagram(coordinateSystem(preserveAspectRatio=true, extent={{-100,-100},{100,
+ 100}}), graphics));
+ end flag;
+
+ block Dm_select
+ "Output the minimum and the maximum element of the input vector"
+ parameter Real Dm;
+ Modelica.Blocks.Interfaces.RealOutput y annotation (Placement(transformation(
+ extent={{100,-12},{120,8}}, rotation=0)));
+ Modelica.Blocks.Interfaces.RealInput speed annotation (Placement(
+ transformation(extent={{6,-136},{46,-96}}), iconTransformation(
+ extent={{-20,-20},{20,20}},
+ rotation=0,
+ origin={-120,-2})));
+ equation
+ y = if Dm >= 0 then speed + 1 else (speed + 1)^Dm;
+ annotation (
+ Icon(coordinateSystem(
+ preserveAspectRatio=true,
+ extent={{-100,-100},{100,100}},
+ initialScale=0.1), graphics={Text(
+ extent={{-51,31},{51,-31}},
+ lineColor={0,0,255},
+ horizontalAlignment=TextAlignment.Left,
+ origin={1,5},
+ rotation=360,
+ textString="Dm_select"),Rectangle(extent={{-98,90},{96,-92}},
+ lineColor={0,0,255})}),
+ Documentation(info="
+
+Determines the minimum and maximum element of the input vector and
+provide both values as output.
+
+"), Diagram(coordinateSystem(preserveAspectRatio=true, extent={{-100,-100},{100,
+ 100}}), graphics));
+ end Dm_select;
+
+ model GGOV1 "GE General Governor/Turbine Mode"
+ parameter Integer Rselect=1 "Feedback signal for
+ governor droop" annotation (Evaluate=true, choices(
+ choice=1 "Electrical power",
+ choice=0 "None (isochronous governor)",
+ choice=-1 "Governor output (requested stroke)",
+ choice=-2 "Fuel valve stroke (true stoke)"));
+ parameter Integer Flag=1 "Switch for fuel source
+ characteristic" annotation (Evaluate=true, choices(choice=0
+ "Fuel flow independent of speed", choice=1
+ "Fuel flow proportional to speed"));
+ parameter Real R "Permanent droop (pu)";
+ parameter Real T_pelec "Electrical power transducer time constant (s)";
+ parameter Real maxerr "Maximum value for speed error signal";
+ parameter Real minerr "Minimum value for speed error signal";
+ parameter Real Kpgov "Governor proportional gain";
+ parameter Real Kigov "Governor integral gain";
+ parameter Real Kdgov "Governor derivative gain";
+ parameter Real Tdgov "Governor derivative controller time constant (s)";
+ parameter Real Vmax "Maximum valve position limit";
+ parameter Real Vmin "Minimum valve position limit";
+ parameter Real Tact "Actuator time constant (s)";
+ parameter Real Kturb "Turbine gain";
+ parameter Real Wfnl "No load fuel flow (pu)";
+ parameter Real Tb "Turbine lag time constant (s)";
+ parameter Real Tc "Turbine lead time constant (s)";
+ parameter Real Teng "Transport lag time constant for diesel engine (s)";
+ parameter Real Tfload "Load Limiter time constant (s)";
+ parameter Real Kpload "Load limiter proportional gain for PI controller";
+ parameter Real Kiload "Load limiter integral gain for PI controller";
+ parameter Real Ldref "Load limiter reference value (pu)";
+ parameter Real Dm "Mechanical damping coefficient (pu)";
+ parameter Real Ropen "Maximum valve opening rate (p.u./s)";
+ parameter Real Rclose "Maximum valve closing rate (p.u./s)";
+ parameter Real Kimw "Power controller (reset) gain";
+ parameter Real Aset "Acceleration limiter setpoint (p.u./s)";
+ parameter Real Ka "Acceleration limiter gain";
+ parameter Real Ta "Acceleration limiter time constant (s)";
+ parameter Real Trate "Turbine rating (MW)";
+ parameter Real db "Speed governor deadband";
+ parameter Real Tsa "Temperature detection lead time constant (s)";
+ parameter Real Tsb "Temperature detection lag time constant (s)";
+ parameter Real Rup "Maximum rate of load limit increase";
+ parameter Real Rdown "Maximum rate of load limit decrease";
+ parameter Real DELT "PSSE time step";
+ Modelica.Blocks.Math.Gain KPLOAD(k=Kpload)
+ annotation (Placement(transformation(extent={{-196,52},{-182,66}})));
+ Modelica.Blocks.Math.Gain KPGOV(k=Kpgov)
+ annotation (Placement(transformation(extent={{-92,-82},{-76,-66}})));
+ Modelica.Blocks.Continuous.Integrator s6(
+ k=1,
+ y_start=s60,
+ initType=Modelica.Blocks.Types.Init.InitialState) annotation (Placement(
+ transformation(
+ extent={{-6,-6},{6,6}},
+ rotation=180,
+ origin={-158,90})));
+ Modelica.Blocks.Continuous.Integrator s2(
+ k=1,
+ initType=Modelica.Blocks.Types.Init.InitialOutput,
+ y_start=s20) annotation (Placement(transformation(
+ extent={{-7,-7},{7,7}},
+ rotation=180,
+ origin={-51,-117})));
+ Modelica.Blocks.Continuous.Derivative s1(
+ k=Kdgov,
+ T=Tdgov,
+ y_start=0,
+ initType=Modelica.Blocks.Types.Init.InitialOutput)
+ annotation (Placement(transformation(extent={{-80,-40},{-60,-20}})));
+ Modelica.Blocks.Math.Add3 GovernorPID
+ annotation (Placement(transformation(extent={{-60,-88},{-38,-66}})));
+ Modelica.Blocks.Math.Add LoadlimiterPI
+ annotation (Placement(transformation(extent={{-168,56},{-152,72}})));
+ Modelica.Blocks.Nonlinear.DeadZone deadZone(uMax=db, deadZoneAtInit=false)
+ annotation (Placement(transformation(extent={{-168,-84},{-148,-64}})));
+ Modelica.Blocks.Nonlinear.Limiter limiterSerror(uMax=maxerr, uMin=minerr)
+ annotation (Placement(transformation(extent={{-138,-84},{-118,-64}})));
+ Modelica.Blocks.Math.Add3 add3_2(k1=-1, k3=-1)
+ annotation (Placement(transformation(extent={{-198,-80},{-186,-68}})));
+ Modelica.Blocks.Math.Gain Acceleration(k=Ka*DELT)
+ annotation (Placement(transformation(extent={{-116,0},{-92,24}})));
+ Modelica.Blocks.Math.Add add
+ annotation (Placement(transformation(extent={{-54,-2},{-36,16}})));
+ Modelica.Blocks.Interfaces.RealInput SPEED
+ "Machine speed deviation from nominal (pu)" annotation (Placement(
+ transformation(extent={{-346,102},{-310,138}}), iconTransformation(
+ extent={{-346,102},{-310,138}})));
+ Modelica.Blocks.Interfaces.RealInput PELEC "Machine electrical power (pu)"
+ annotation (Placement(transformation(extent={{-348,-118},{-310,-80}}),
+ iconTransformation(extent={{-348,-118},{-310,-80}})));
+ Modelica.Blocks.Continuous.Derivative s8(
+ k=1,
+ T=Ta,
+ y_start=0,
+ initType=Modelica.Blocks.Types.Init.InitialOutput)
+ annotation (Placement(transformation(extent={{-196,-14},{-170,12}})));
+ Modelica.Blocks.Math.Add add1(k2=-1)
+ annotation (Placement(transformation(extent={{-146,2},{-126,22}})));
+ Modelica.Blocks.Sources.Constant AccelerationSet(k=Aset)
+ annotation (Placement(transformation(extent={{-180,22},{-164,38}})));
+ Modelica.Blocks.Math.Gain r(k=R) "Permanent droop" annotation (Placement(
+ transformation(
+ extent={{-7,-7},{7,7}},
+ rotation=90,
+ origin={-207,-101})));
+ Modelica.Blocks.Math.Add add2
+ annotation (Placement(transformation(extent={{-238,-80},{-226,-68}})));
+ Modelica.Blocks.Sources.Constant P_ref(k=Pref)
+ annotation (Placement(transformation(extent={{-276,-78},{-260,-62}})));
+ Modelica.Blocks.Continuous.LimIntegrator s7(
+ k=Kimw,
+ outMax=1.1*R,
+ initType=Modelica.Blocks.Types.Init.InitialOutput,
+ y_start=s70) "Power controller" annotation (Placement(transformation(
+ extent={{-8,-8},{8,8}},
+ rotation=90,
+ origin={-246,-98})));
+ Modelica.Blocks.Sources.Constant Pmw_set(k=Pmwset)
+ "Supervisory Load Controller Setpoint,"
+ annotation (Placement(transformation(extent={{-276,-148},{-260,-132}})));
+ Modelica.Blocks.Math.Add add3(k2=-1) annotation (Placement(transformation(
+ extent={{-6,-6},{6,6}},
+ rotation=90,
+ origin={-246,-122})));
+ NonElectrical.Continuous.SimpleLag s0(
+ T=T_pelec,
+ y_start=s00,
+ K=1) annotation (Placement(transformation(
+ extent={{-10,-10},{10,10}},
+ rotation=0,
+ origin={-270,-170})));
+ Modelica.Blocks.Math.Add add6(k1=-1) annotation (Placement(transformation(
+ extent={{-8,-8},{8,8}},
+ rotation=180,
+ origin={-74,118})));
+ NonElectrical.Continuous.SimpleLag s5(
+ T=Tfload,
+ y_start=s50,
+ K=1) annotation (Placement(transformation(
+ extent={{-10,10},{10,-10}},
+ rotation=180,
+ origin={-30,110})));
+ Modelica.Blocks.Math.Gain gain(k=1/Kturb)
+ annotation (Placement(transformation(extent={{-138,124},{-122,140}})));
+ Modelica.Blocks.Sources.Constant set(k=Ldref) "load reference"
+ annotation (Placement(transformation(extent={{-180,124},{-164,140}})));
+ Modelica.Blocks.Nonlinear.Limiter maxLimiter(uMax=1, uMin=-Modelica.Constants.inf)
+ annotation (Placement(transformation(extent={{-126,56},{-110,72}})));
+ NonElectrical.Continuous.LeadLag s9(
+ T1=Tsa,
+ T2=Tsb,
+ y_start=s90,
+ K=1) annotation (Placement(transformation(extent={{20,100},{0,120}})));
+ Min_select min_select(nu=3, frs0=fsr0)
+ annotation (Placement(transformation(extent={{-18,-28},{-2,-12}})));
+ Modelica.Blocks.Math.Product product
+ annotation (Placement(transformation(extent={{130,-66},{142,-54}})));
+ OpenIPSL.NonElectrical.Continuous.LeadLag s4(
+ K=1,
+ T1=Tc,
+ T2=Tb,
+ y_start=s40) annotation (Placement(transformation(
+ extent={{-10,-10},{10,10}},
+ rotation=90,
+ origin={150,110})));
+ Modelica.Blocks.Math.Gain gain1(k=Kturb) annotation (Placement(transformation(
+ extent={{-8,-8},{8,8}},
+ rotation=90,
+ origin={150,60})));
+ Modelica.Blocks.Nonlinear.FixedDelay delay(delayTime=Teng)
+ "Transport lag time" annotation (Placement(transformation(
+ extent={{-14,-14},{14,14}},
+ rotation=90,
+ origin={150,20})));
+ Modelica.Blocks.Math.Add add4(k2=-1) annotation (Placement(transformation(
+ extent={{-6,-6},{6,6}},
+ rotation=90,
+ origin={150,-24})));
+ Modelica.Blocks.Math.Add add5(k1=-1) annotation (Placement(transformation(
+ extent={{-10,-10},{10,10}},
+ rotation=0,
+ origin={176,158})));
+ Modelica.Blocks.Sources.Constant set1(k=Wfnl) "full load flow" annotation (
+ Placement(transformation(
+ extent={{-8,-8},{8,8}},
+ rotation=180,
+ origin={196,-38})));
+ Modelica.Blocks.Math.Gain gain2(k=Dm) annotation (Placement(transformation(
+ extent={{-8,-8},{8,8}},
+ rotation=0,
+ origin={76,164})));
+ flag flag10(flag=Flag) annotation (Placement(transformation(
+ extent={{-10,-10},{10,10}},
+ rotation=90,
+ origin={128,-152})));
+ Dm_select dm_select(Dm=Dm)
+ annotation (Placement(transformation(extent={{2,154},{22,174}})));
+ Modelica.Blocks.Interfaces.RealOutput PMECH "Turbine mechanical power (pu)"
+ annotation (Placement(transformation(extent={{260,-10},{280,10}}),
+ iconTransformation(extent={{260,-10},{280,10}})));
+ Modelica.Blocks.Math.Product product1 annotation (Placement(transformation(
+ extent={{-10,-10},{10,10}},
+ rotation=180,
+ origin={50,110})));
+ Modelica.Blocks.Nonlinear.Limiter V(uMax=Vmax, uMin=Vmin)
+ annotation (Placement(transformation(extent={{10,-62},{24,-48}})));
+ Modelica.Blocks.Math.Add add7 annotation (Placement(transformation(
+ extent={{-9,-9},{9,9}},
+ rotation=0,
+ origin={-85,137})));
+ Modelica.Blocks.Sources.Constant set2(k=Wfnl) "full load flow" annotation (
+ Placement(transformation(
+ extent={{-8,-8},{8,8}},
+ rotation=270,
+ origin={-116,182})));
+ Modelica.Blocks.Math.Gain Gain(k=Kiload/Kpload) annotation (Placement(
+ transformation(
+ extent={{-6,-6},{6,6}},
+ rotation=180,
+ origin={-138,90})));
+ Modelica.Blocks.Math.Add LoadlimiterPI1(k2=-1) annotation (Placement(
+ transformation(
+ extent={{-6,6},{6,-6}},
+ rotation=180,
+ origin={-114,90})));
+ Modelica.Blocks.Math.Gain KPGOV1(k=Kigov/Kpgov) annotation (Placement(
+ transformation(
+ extent={{-5,-5},{5,5}},
+ rotation=180,
+ origin={-31,-117})));
+ Modelica.Blocks.Math.Add LoadlimiterPI2(k1=-1) annotation (Placement(
+ transformation(
+ extent={{-5,5},{5,-5}},
+ rotation=180,
+ origin={-11,-117})));
+ Modelica.Blocks.Math.Gain Tactgain(k=1/Tact)
+ annotation (Placement(transformation(extent={{60,-62},{70,-52}})));
+ Modelica.Blocks.Nonlinear.Limiter V1(uMax=Ropen, uMin=Rclose)
+ annotation (Placement(transformation(extent={{76,-64},{90,-50}})));
+ Modelica.Blocks.Continuous.Integrator s3(
+ k=1,
+ initType=Modelica.Blocks.Types.Init.InitialOutput,
+ y_start=s30) annotation (Placement(transformation(
+ extent={{-7,-7},{7,7}},
+ rotation=0,
+ origin={107,-57})));
+ Modelica.Blocks.Math.Add add8(k2=-1) annotation (Placement(transformation(
+ extent={{-6,-6},{6,6}},
+ rotation=0,
+ origin={48,-58})));
+ RSELECT rSELECT(Rselect=Rselect) annotation (Placement(transformation(
+ extent={{-15,-22},{15,22}},
+ rotation=90,
+ origin={-206,-131})));
+ protected
+ parameter Real Pe0(fixed=false);
+ parameter Real Pmech0(fixed=false);
+ parameter Real Pref(fixed=false);
+ parameter Real Pmwset(fixed=false);
+ parameter Real s00(fixed=false);
+ parameter Real s20(fixed=false);
+ parameter Real s30(fixed=false);
+ parameter Real s40(fixed=false);
+ parameter Real s50(fixed=false);
+ parameter Real s60(fixed=false);
+ parameter Real s70(fixed=false);
+ parameter Real s80(fixed=false);
+ parameter Real s90(fixed=false);
+ //parameter Real s10( fixed=false);
+ parameter Real fsr0(fixed=false);
+ initial equation
+ Pe0 = PELEC;
+ Pmech0 = PELEC;
+ Pref = R*Pe0;
+ Pmwset = s00;
+ s00 = Pe0;
+ s20 = fsr0;
+ s30 = fsr0;
+ s40 = Pmech0;
+ s50 = s90;
+ s60 = fsr0;
+ s70 = 0;
+ //assume s70=0
+ s80 = 0;
+ s90 = fsr0;
+ fsr0 = (Pmech0 + Dm)/Kturb + Wfnl;
+ equation
+ connect(deadZone.y, limiterSerror.u) annotation (Line(
+ points={{-147,-74},{-140,-74}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(KPGOV.u, limiterSerror.y) annotation (Line(
+ points={{-93.6,-74},{-117,-74}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(Acceleration.y, add.u1) annotation (Line(
+ points={{-90.8,12},{-86,12},{-86,12.4},{-55.8,12.4}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(s8.y, add1.u2) annotation (Line(
+ points={{-168.7,-1},{-160,-1},{-160,6},{-148,6}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(AccelerationSet.y, add1.u1) annotation (Line(
+ points={{-163.2,30},{-150,30},{-150,18},{-148,18}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(Acceleration.u, add1.y) annotation (Line(
+ points={{-118.4,12},{-125,12}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(SPEED, s8.u) annotation (Line(
+ points={{-328,120},{-262,120},{-262,-1},{-198.6,-1}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(add3_2.y, deadZone.u) annotation (Line(
+ points={{-185.4,-74},{-170,-74}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(add3_2.u1, s8.u) annotation (Line(
+ points={{-199.2,-69.2},{-212,-69.2},{-212,-1},{-198.6,-1}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(r.y, add3_2.u3) annotation (Line(
+ points={{-207,-93.3},{-207,-78.8},{-199.2,-78.8}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(add2.y, add3_2.u2) annotation (Line(
+ points={{-225.4,-74},{-199.2,-74}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(P_ref.y, add2.u1) annotation (Line(
+ points={{-259.2,-70},{-250,-70},{-250,-70.4},{-239.2,-70.4}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(s7.y, add2.u2) annotation (Line(
+ points={{-246,-89.2},{-246,-77.6},{-239.2,-77.6}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(Pmw_set.y, add3.u1) annotation (Line(
+ points={{-259.2,-140},{-249.6,-140},{-249.6,-129.2}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(add3.y, s7.u) annotation (Line(
+ points={{-246,-115.4},{-246,-107.6}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(s0.y, add3.u2) annotation (Line(
+ points={{-259,-170},{-242,-170},{-242,-129.2},{-242.4,-129.2}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(s0.u, PELEC) annotation (Line(
+ points={{-282,-170},{-300,-170},{-300,-99},{-329,-99}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(set.y, gain.u) annotation (Line(
+ points={{-163.2,132},{-139.6,132}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(add6.u1, s5.y) annotation (Line(
+ points={{-64.4,113.2},{-51.2,113.2},{-51.2,110},{-41,110}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(s5.u, s9.y) annotation (Line(
+ points={{-18,110},{-1,110}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(maxLimiter.y, min_select.u[1]) annotation (Line(
+ points={{-109.2,64},{-28,64},{-28,-16.2667},{-18,-16.2667}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(add.y, min_select.u[2]) annotation (Line(
+ points={{-35.1,7},{-26,7},{-26,-4},{-18,-4},{-18,-20}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(s4.y, add5.u2) annotation (Line(
+ points={{150,121},{150,152},{164,152}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(product.y, add4.u1) annotation (Line(
+ points={{142.6,-60},{146,-60},{146,-31.2},{146.4,-31.2}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(set1.y, add4.u2) annotation (Line(
+ points={{187.2,-38},{153.6,-38},{153.6,-31.2}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(gain2.y, add5.u1) annotation (Line(
+ points={{84.8,164},{164,164}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(flag10.y, product.u2) annotation (Line(
+ points={{128.2,-141},{128.2,-63.6},{128.8,-63.6}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(SPEED, flag10.speed) annotation (Line(
+ points={{-328,120},{-258,120},{-258,-230},{128,-230},{128,-164},{128.2,-164}},
+ color={0,0,127},
+ smooth=Smooth.None));
+
+ connect(SPEED, dm_select.speed) annotation (Line(
+ points={{-328,120},{-328,163.8},{0,163.8}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(dm_select.y, gain2.u) annotation (Line(
+ points={{23,163.8},{66.4,163.8},{66.4,164}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(add5.y, PMECH) annotation (Line(
+ points={{187,158},{198,158},{198,0},{270,0}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(product1.u2, gain2.u) annotation (Line(
+ points={{62,116},{66.4,116},{66.4,164}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(product1.u1, add4.u1) annotation (Line(
+ points={{62,104},{126,104},{126,-30},{134,-30},{134,-31.2},{146.4,-31.2}},
+ color={0,0,127},
+ smooth=Smooth.None));
+
+ connect(add.u2, V.y) annotation (Line(
+ points={{-55.8,1.6},{-76,1.6},{-76,78},{34,78},{34,-55},{24.7,-55}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(V.u, min_select.yMin) annotation (Line(
+ points={{8.6,-55},{3.3,-55},{3.3,-26.72},{-1.2,-26.72}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(gain.y, add7.u2) annotation (Line(
+ points={{-121.2,132},{-106,132},{-106,131.6},{-95.8,131.6}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(add7.y, add6.u2) annotation (Line(
+ points={{-75.1,137},{-48,137},{-48,122.8},{-64.4,122.8}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(set2.y, add7.u1) annotation (Line(
+ points={{-116,173.2},{-116,142.4},{-95.8,142.4}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(add6.y, KPLOAD.u) annotation (Line(
+ points={{-82.8,118},{-204,118},{-204,59},{-197.4,59}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(LoadlimiterPI1.y, Gain.u) annotation (Line(
+ points={{-120.6,90},{-130.8,90}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(Gain.y, s6.u) annotation (Line(
+ points={{-144.6,90},{-150.8,90}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(KPLOAD.y, LoadlimiterPI.u2) annotation (Line(
+ points={{-181.3,59},{-178,59},{-178,59.2},{-169.6,59.2}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(s6.y, LoadlimiterPI.u1) annotation (Line(
+ points={{-164.6,90},{-184,90},{-184,68.8},{-169.6,68.8}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(LoadlimiterPI.y, maxLimiter.u) annotation (Line(
+ points={{-151.2,64},{-127.6,64}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(LoadlimiterPI1.u2, LoadlimiterPI.u1) annotation (Line(
+ points={{-106.8,86.4},{-94,86.4},{-94,78},{-184,78},{-184,68.8},{-169.6,
+ 68.8}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(LoadlimiterPI1.u1, V.y) annotation (Line(
+ points={{-106.8,93.6},{34,93.6},{34,-56},{24.7,-55}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(s1.u, limiterSerror.y) annotation (Line(
+ points={{-82,-30},{-108,-30},{-108,-74},{-117,-74}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(s1.y, GovernorPID.u1) annotation (Line(
+ points={{-59,-30},{-34,-30},{-34,-68.2},{-62.2,-68.2}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(KPGOV.y, GovernorPID.u2) annotation (Line(
+ points={{-75.2,-74},{-74,-74},{-74,-77},{-62.2,-77}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(s2.u, KPGOV1.y) annotation (Line(
+ points={{-42.6,-117},{-36.5,-117}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(s2.y, GovernorPID.u3) annotation (Line(
+ points={{-58.7,-117},{-98,-117},{-98,-85.8},{-62.2,-85.8}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(KPGOV1.u, LoadlimiterPI2.y) annotation (Line(
+ points={{-25,-117},{-16.5,-117}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(LoadlimiterPI2.u1, GovernorPID.u3) annotation (Line(
+ points={{-5,-114},{0,-114},{0,-104},{-98,-104},{-98,-85.8},{-62.2,-85.8}},
+ color={0,0,127},
+ smooth=Smooth.None));
+
+ connect(LoadlimiterPI2.u2, V.y) annotation (Line(
+ points={{-5,-120},{34,-120},{34,-55},{24.7,-55}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(GovernorPID.y, min_select.u[3]) annotation (Line(
+ points={{-36.9,-77},{-36,-77},{-36,-23.7333},{-18,-23.7333}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(V1.y, s3.u) annotation (Line(
+ points={{90.7,-57},{98.6,-57}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(Tactgain.y, V1.u) annotation (Line(
+ points={{70.5,-57},{74.6,-57}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(add8.y, Tactgain.u) annotation (Line(
+ points={{54.6,-58},{54.6,-57},{59,-57}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(s3.y, product.u1) annotation (Line(
+ points={{114.7,-57},{119.35,-57},{119.35,-56.4},{128.8,-56.4}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(add8.u1, V.y) annotation (Line(
+ points={{40.8,-54.4},{34,-54.4},{34,-55},{24.7,-55}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(add8.u2, product.u1) annotation (Line(
+ points={{40.8,-61.6},{40,-61.6},{40,-90},{120,-90},{120,-56.4},{128.8,-56.4}},
+ color={0,0,127},
+ smooth=Smooth.None));
+
+ connect(s4.u, gain1.y) annotation (Line(
+ points={{150,98},{150,68.8}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(s0.y, rSELECT.Pelect) annotation (Line(
+ points={{-259,-170},{-218.32,-170},{-218.32,-149}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(rSELECT.y, r.u) annotation (Line(
+ points={{-205.56,-114.5},{-205.72,-114.5},{-205.72,-109.4},{-207,-109.4}},
+ color={0,0,127},
+ smooth=Smooth.None));
+
+ connect(rSELECT.GovernorOutput, V.u) annotation (Line(
+ points={{-179.6,-118.4},{2,-118.4},{2,-55},{8.6,-55}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(rSELECT.ValveStroke, product.u1) annotation (Line(
+ points={{-179.6,-129.8},{120,-129.8},{120,-56.4},{128.8,-56.4}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(s9.u, product1.y)
+ annotation (Line(points={{22,110},{39,110},{39,110}}, color={0,0,127}));
+ connect(delay.y, gain1.u) annotation (Line(points={{150,35.4},{150,50.4},{150,
+ 50.4}}, color={0,0,127}));
+ connect(delay.u, add4.y) annotation (Line(points={{150,3.2},{150,-17.4},{150,
+ -17.4}}, color={0,0,127}));
+ annotation (
+ Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-320,-240},{
+ 260,220}}), graphics={Text(
+ extent={{-272,-98},{-260,-106}},
+ lineColor={255,0,0},
+ textString="s7"),Text(
+ extent={{-188,-8},{-178,-16}},
+ lineColor={255,0,0},
+ textString="s8"),Text(
+ extent={{-72,136},{-58,126}},
+ lineColor={255,0,0},
+ textString="tlim"),Text(
+ extent={{-62,110},{-46,102}},
+ lineColor={255,0,0},
+ textString="texm"),Text(
+ extent={{-162,108},{-152,100}},
+ lineColor={255,0,0},
+ textString="s6"),Text(
+ extent={{-88,-36},{-78,-44}},
+ lineColor={255,0,0},
+ textString="s1"),Text(
+ extent={{-68,-122},{-58,-130}},
+ lineColor={255,0,0},
+ textString="s2"),Text(
+ extent={{16,132},{26,124}},
+ lineColor={255,0,0},
+ textString="s9"),Text(
+ extent={{-28,132},{-18,124}},
+ lineColor={255,0,0},
+ textString="s5"),Text(
+ extent={{100,-76},{110,-84}},
+ lineColor={255,0,0},
+ textString="s3"),Text(
+ extent={{168,98},{178,90}},
+ lineColor={255,0,0},
+ textString="s4"),Text(
+ extent={{-254,-182},{-242,-190}},
+ lineColor={255,0,0},
+ textString="s0")}),
+ Icon(coordinateSystem(extent={{-320,-240},{260,220}}, preserveAspectRatio=false), graphics={Rectangle(extent={{-320,220},{260,-240}}, lineColor={0,0,255}),Text(
+ extent={{-306,146},{-216,92}},
+ lineColor={0,0,255},
+ textString="SPEED"),Text(
+ extent={{-306,-74},{-222,-126}},
+ lineColor={0,0,255},
+ textString="PELEC"),Text(
+ extent={{-114,64},{92,-64}},
+ lineColor={0,0,255},
+ textString="GGOV1"),Text(
+ extent={{172,24},{256,-28}},
+ lineColor={0,0,255},
+ textString="PMECH")}),
+ Documentation);
+ end GGOV1;
+ annotation (Documentation);
+ end GGOV1;
+
+ model GAST "Gas Turbine-Governor"
+ parameter Real R "Speed droop";
+ parameter Real T_1 "(s)";
+ parameter Real T_2 "(s)";
+ parameter Real T_3 "(s)";
+ parameter Real AT "Ambient temperature load limit";
+ parameter Real K_T "Gain value multiplied with input signal";
+ parameter Real V_MAX "Upper limits of input signals";
+ parameter Real V_MIN "Lower limits of input signals";
+ parameter Real D_turb "Gain value multiplied with input signal";
+ Modelica.Blocks.Interfaces.RealInput SPEED
+ "Machine electrical power (pu on M_b)" annotation (Placement(transformation(
+ extent={{-120,30},{-80,70}}), iconTransformation(extent={{-120,30},{-80,
+ 70}})));
+ Modelica.Blocks.Interfaces.RealOutput PMECH "Turbine mechanical power (pu)"
+ annotation (Placement(transformation(extent={{100,-10},{120,10}})));
+ Modelica.Blocks.Math.Add add(k1=-1)
+ annotation (Placement(transformation(extent={{-78,-22},{-68,-12}})));
+ Modelica.Blocks.Math.Add add1(k2=-1) annotation (Placement(transformation(
+ extent={{-5,-5},{5,5}},
+ rotation=180,
+ origin={25,-47})));
+ Modelica.Blocks.Math.Add add2(k2=+1) annotation (Placement(transformation(
+ extent={{-5,-5},{5,5}},
+ rotation=180,
+ origin={-37,-47})));
+ Modelica.Blocks.Math.Add add3(k1=-1)
+ annotation (Placement(transformation(extent={{80,-5},{90,5}})));
+ Modelica.Blocks.Math.Gain gDturb(k=D_turb)
+ annotation (Placement(transformation(extent={{-54,55},{-44,65}})));
+ Modelica.Blocks.Math.Gain gKt(k=K_T) annotation (Placement(transformation(
+ extent={{-5,-5},{5,5}},
+ rotation=180,
+ origin={-11,-45})));
+ Modelica.Blocks.Math.Gain g1_R(k=1/R) annotation (Placement(transformation(
+ extent={{-5,-5},{5,5}},
+ rotation=270,
+ origin={-85,33})));
+ Modelica.Blocks.Interfaces.RealInput Reference "Speed reference (pu)"
+ annotation (Placement(transformation(extent={{-120,-70},{-80,-30}}),
+ iconTransformation(extent={{-120,-70},{-80,-30}})));
+ NonElectrical.Logical.LV_GATE lV_Gate
+ annotation (Placement(transformation(extent={{-46,-10},{-26,10}})));
+ Modelica.Blocks.Continuous.TransferFunction transferFunction1(a={T_2,1})
+ annotation (Placement(transformation(extent={{48,-6},{60,6}})));
+ Modelica.Blocks.Continuous.TransferFunction transferFunction2(a={T_3,1})
+ annotation (Placement(transformation(
+ extent={{-6,-6},{6,6}},
+ rotation=180,
+ origin={54,-40})));
+ Modelica.Blocks.Sources.Constant const(k=AT)
+ annotation (Placement(transformation(extent={{-48,-94},{-28,-74}})));
+ NonElectrical.Continuous.SimpleLagLim simpleLagLim(
+ outMax=V_MAX,
+ outMin=V_MIN,
+ K=1,
+ T=T_1,
+ y_start=0) annotation (Placement(transformation(extent={{-4,-4},{6,6}})));
+ equation
+ connect(SPEED, gDturb.u) annotation (Line(
+ points={{-100,50},{-78,50},{-78,60},{-55,60}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(gDturb.y, add3.u1) annotation (Line(
+ points={{-43.5,60},{72,60},{72,3},{79,3}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(add3.y, PMECH) annotation (Line(
+ points={{90.5,0},{110,0}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(SPEED, g1_R.u) annotation (Line(
+ points={{-100,50},{-85,50},{-85,39}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(g1_R.y, add.u1) annotation (Line(
+ points={{-85,27.5},{-85,-14},{-79,-14}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(Reference, add.u2) annotation (Line(
+ points={{-100,-50},{-90,-50},{-90,-20},{-79,-20}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(add1.y, gKt.u) annotation (Line(
+ points={{19.5,-47},{-5,-47},{-5,-45}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(gKt.y, add2.u2) annotation (Line(
+ points={{-16.5,-45},{-31,-45},{-31,-44}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(transferFunction2.y, add1.u2) annotation (Line(
+ points={{47.4,-40},{40,-40},{40,-44},{31,-44}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(transferFunction1.y, add3.u2) annotation (Line(
+ points={{60.6,0},{70,0},{70,-3},{79,-3}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(transferFunction1.y, transferFunction2.u) annotation (Line(
+ points={{60.6,0},{68,0},{68,-40},{61.2,-40}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(add.y, lV_Gate.n1) annotation (Line(
+ points={{-67.5,-17},{-55.75,-17},{-55.75,5},{-47.25,5}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(lV_Gate.n2, add2.y) annotation (Line(
+ points={{-47.25,-5},{-47.25,-25.3},{-42.5,-25.3},{-42.5,-47}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(const.y, add2.u1) annotation (Line(points={{-27,-84},{-8,-84},{-8,-50},
+ {-31,-50}}, color={0,0,127}));
+ connect(add1.u1, add2.u1) annotation (Line(points={{31,-50},{38,-50},{38,-84},
+ {-8,-84},{-8,-50},{-31,-50}}, color={0,0,127}));
+ connect(simpleLagLim.u, lV_Gate.p) annotation (Line(points={{-5,1},{-17.5,1},
+ {-17.5,0},{-27.25,0}}, color={0,0,127}));
+ connect(simpleLagLim.y, transferFunction1.u) annotation (Line(points={{6.5,1},
+ {26.25,1},{26.25,0},{46.8,0}}, color={0,0,127}));
+ annotation (
+ Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{
+ 100,100}})),
+ Icon(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{100,
+ 100}}), graphics={Rectangle(extent={{-100,100},{100,-100}},
+ lineColor={0,0,255}),Text(
+ extent={{-90,56},{-30,44}},
+ lineColor={0,0,255},
+ textString="SPEED"),Text(
+ extent={{-90,-44},{-32,-56}},
+ lineColor={0,0,255},
+ textString="VAR(L)"),Text(
+ extent={{48,6},{108,-6}},
+ lineColor={0,0,255},
+ textString="PMECH"),Text(
+ extent={{-40,18},{36,-18}},
+ lineColor={0,0,255},
+ textString="GAST")}),
+ Documentation);
+ end GAST;
+
+ package BaseClasses
+
+ partial model BaseGovernor
+
+ Modelica.Blocks.Interfaces.RealInput SPEED annotation (Placement(
+ transformation(extent={{-260,-140},{-220,-100}}), iconTransformation(
+ extent={{-240,80},{-200,120}})));
+ Modelica.Blocks.Interfaces.RealInput PMECH0 annotation (Placement(
+ transformation(extent={{-260,60},{-220,100}}), iconTransformation(
+ extent={{-240,-140},{-200,-100}})));
+ Modelica.Blocks.Interfaces.RealOutput PMECH annotation (Placement(
+ transformation(extent={{240,-10},{260,10}}), iconTransformation(extent=
+ {{240,-10},{260,10}})));
+ annotation (Icon(coordinateSystem(preserveAspectRatio=false, extent={{-240,
+ -240},{240,200}}), graphics={
+ Rectangle(
+ extent={{-240,200},{240,-240}},
+ lineColor={28,108,200},
+ fillColor={255,255,255},
+ fillPattern=FillPattern.Solid),
+ Text(
+ extent={{-186,122},{-110,80}},
+ lineColor={28,108,200},
+ fillColor={255,255,255},
+ fillPattern=FillPattern.Solid,
+ textString="SPEED"),
+ Text(
+ extent={{-188,-102},{-92,-142}},
+ lineColor={28,108,200},
+ fillColor={255,255,255},
+ fillPattern=FillPattern.Solid,
+ textString="PMECH0"),
+ Text(
+ extent={{144,24},{224,-16}},
+ lineColor={28,108,200},
+ fillColor={255,255,255},
+ fillPattern=FillPattern.Solid,
+ textString="PMECH")}), Diagram(
+ coordinateSystem(preserveAspectRatio=false, extent={{-240,-240},{240,
+ 200}})));
+ end BaseGovernor;
+ end BaseClasses;
+ annotation (Documentation);
+ end TG;
+
+ package PSS "Power Systems Stabilizer"
+ model DisabledPSS
+ extends BaseClasses.BasePSS;
+
+ Modelica.Blocks.Sources.Constant const
+ annotation (Placement(transformation(extent={{100,-10},{120,10}})));
+ equation
+ connect(const.y, VOTHSG)
+ annotation (Line(points={{121,0},{226,0},{226,0}}, color={0,0,127}));
+ annotation (Icon(coordinateSystem(preserveAspectRatio=false)), Diagram(
+ coordinateSystem(preserveAspectRatio=false)));
+ end DisabledPSS;
+
+ model PSS2A "PSS2A - IEEE Dual-Input Stabilizer Model"
+ extends BaseClasses.BasePSS;
+ parameter Real T_w1=10 "Washout 1 time constant";
+ parameter Real T_w2=10 "Washout 2 time constant";
+ parameter Real T_6=1e-9 "Lag 1 time constant";
+ parameter Real T_w3=10 "Washout 3 time constant";
+ parameter Real T_w4=1e-9 "Washout 4 time constant";
+ parameter Real T_7=10 "Lag 2 time constant";
+ parameter Real K_S2=0.99 "Lag 2 gain";
+ parameter Real K_S3=1 "gain";
+ parameter Real T_8=0.5 "Ramp-tracking filter time constant";
+ parameter Real T_9=0.1 "Ramp-tracking filter time constant";
+ parameter Real K_S1=20 "PSS gain";
+ parameter Real T_1=0.15
+ "Leadlag1 time constant (data from IEEE std, not representive, need to be tuned following system parameters)";
+ parameter Real T_2=0.025 "Leadlag1 time constant";
+ parameter Real T_3=0.15 "Leadlag2 time constant";
+ parameter Real T_4=0.025 "Leadlag2 time constant";
+ parameter Real V_STMAX=0.1 "PSS output limiation";
+ parameter Real V_STMIN=-0.1 "PSS output limiation";
+ parameter Real M "Ramp tracking filter coefficient";
+ parameter Real N "Ramp tracking filter coefficient";
+ OpenIPSL.NonElectrical.Continuous.LeadLag Leadlag1(
+ K=1,
+ T1=T_1,
+ T2=T_2,
+ y_start=0,
+ x_start=0) annotation (Placement(transformation(extent={{120,-10},
+ {140,10}})));
+ OpenIPSL.NonElectrical.Continuous.LeadLag Leadlag2(
+ K=1,
+ T1=T_3,
+ T2=T_4,
+ y_start=0,
+ x_start=0) annotation (Placement(transformation(extent={{150,-10},
+ {170,10}})));
+ OpenIPSL.NonElectrical.Continuous.SimpleLag SimpleLag1(
+ K=1,
+ T=T_6,
+ y_start=0) annotation (Placement(transformation(extent={{-60,30},
+ {-40,50}})));
+ OpenIPSL.NonElectrical.Continuous.SimpleLag SimpleLag2(
+ K=K_S2,
+ T=T_7,
+ y_start=0) annotation (Placement(transformation(extent={{-60,-50},
+ {-40,-30}})));
+ Modelica.Blocks.Math.Add add(k2=+K_S3) annotation (Placement(transformation(extent={{-20,24},
+ {0,44}})));
+ Modelica.Blocks.Math.Add add1(k2=-1) annotation (Placement(transformation(extent={{60,-10},
+ {80,10}})));
+ Modelica.Blocks.Math.Gain gain(k=K_S1) annotation (Placement(transformation(extent={{90,-10},
+ {110,10}})));
+ Modelica.Blocks.Nonlinear.Limiter limiter(uMax=V_STMAX, uMin=V_STMIN) annotation (Placement(transformation(extent={{180,-10},
+ {200,10}})));
+ NonElectrical.Continuous.RampTrackingFilter rampTrackingFilter(
+ M=M,
+ N=N,
+ startValue=0,
+ T_1=T_8,
+ T_2=T_9) annotation (Placement(transformation(extent={{20,20},{40,40}})));
+ NonElectrical.Continuous.DerivativeLag derivativeLag(
+ K=T_w1,
+ T=T_w1,
+ y_start=0) annotation (Placement(transformation(extent={{-140,30},{-120,50}})));
+ NonElectrical.Continuous.DerivativeLag derivativeLag1(
+ y_start=0,
+ K=T_w2,
+ T=T_w2) annotation (Placement(transformation(extent={{-100,30},{-80,50}})));
+ NonElectrical.Continuous.DerivativeLag derivativeLag2(
+ y_start=0,
+ K=T_w3,
+ T=T_w3) annotation (Placement(transformation(extent={{-140,-50},{-120,-30}})));
+ NonElectrical.Continuous.DerivativeLag derivativeLag3(
+ y_start=0,
+ K=T_w4,
+ T=T_w4) annotation (Placement(transformation(extent={{-100,-50},{-80,-30}})));
+ equation
+ connect(SimpleLag1.y, add.u1) annotation (Line(points={{-39,40},{-30,40},{-22,
+ 40}}, color={0,0,127}));
+ connect(SimpleLag2.y, add.u2) annotation (Line(points={{-39,-40},{-30,-40},{-30,
+ 28},{-22,28}}, color={0,0,127}));
+ connect(add1.u2, add.u2) annotation (Line(points={{58,-6},{14,-6},{14,-20},{-30,
+ -20},{-30,28},{-22,28}}, color={0,0,127}));
+ connect(add1.y, gain.u) annotation (Line(points={{81,0},{81,0},{88,0}},
+ color={0,0,127}));
+ connect(gain.y, Leadlag1.u) annotation (Line(points={{111,0},{110,0},{118,0}},
+ color={0,0,127}));
+ connect(Leadlag1.y, Leadlag2.u) annotation (Line(points={{141,0},{148,0}}, color={0,0,127}));
+ connect(Leadlag2.y, limiter.u) annotation (Line(points={{171,0},{178,0}}, color={0,0,127}));
+ connect(rampTrackingFilter.y, add1.u1) annotation (Line(points={{41,30},{50,30},
+ {50,6},{58,6}}, color={0,0,127}));
+ connect(derivativeLag.y, derivativeLag1.u) annotation (Line(points={{-119,40},
+ {-110.5,40},{-102,40}}, color={0,0,127}));
+ connect(derivativeLag1.y, SimpleLag1.u) annotation (Line(points={{-79,40},{-62,
+ 40}}, color={0,0,127}));
+ connect(derivativeLag3.u, derivativeLag2.y) annotation (Line(points={{-102,-40},
+ {-119,-40}}, color={0,0,127}));
+ connect(derivativeLag3.y, SimpleLag2.u) annotation (Line(points={{-79,-40},{-62,
+ -40}}, color={0,0,127}));
+ connect(V_S1, derivativeLag.u)
+ annotation (Line(points={{-160,40},{-160,40},{-142,40}}, color={0,0,127}));
+ connect(V_S2, derivativeLag2.u) annotation (Line(points={{-160,-40},{-160,-30},
+ {-160,-40},{-142,-40}}, color={0,0,127}));
+ connect(limiter.y, VOTHSG)
+ annotation (Line(points={{201,0},{226,0}}, color={0,0,127}));
+ connect(add.y, rampTrackingFilter.u)
+ annotation (Line(points={{1,34},{6,34},{6,30},{18,30}}, color={0,0,127}));
+ annotation (
+ Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-160,-80},{220,
+ 80}})),
+ Icon(coordinateSystem(preserveAspectRatio=false, extent={{-160,-80},{220,80}}), graphics={ Text(
+ extent={{-34,16},{32,-14}},
+ lineColor={28,108,200},
+ textString="PSS2A"),Text(
+ extent={{-140,50},{-112,30}},
+ lineColor={28,108,200},
+ textString="V_S1"),Text(
+ extent={{-140,-30},{-112,-50}},
+ lineColor={28,108,200},
+ textString="V_S2"),Text(
+ extent={{158,10},{214,-10}},
+ lineColor={28,108,200},
+ textString="VOTHSG")}),
+ Documentation(info="
+
+Reference |
+PSS2A, PSS/E Manual |
+
+
+Last update |
+2015-08-03 |
+
+
+Author |
+Tin Rabuzin, SmarTS Lab, KTH Royal Institute of Technology |
+
+
+Contact |
+luigiv@kth.se |
+
+
+"));
+ end PSS2A;
+
+ model PSS2B
+ extends BaseClasses.BasePSS;
+ parameter Real T_w1=10 "Washout time constant 1";
+ parameter Real T_w2=10 "Washout time constant 2";
+ parameter Real T_6=1e-9 "Lag time constant 6";
+ parameter Real T_w3=10 "Washout time constant 3";
+ parameter Real T_w4=1e-9 "Washout time constant 4";
+ parameter Real T_7=10 "Lag time constant 7";
+ parameter Real K_S2=0.99 "Lag gain 2, T_7/H";
+ parameter Real K_S3=1 "Lag gain 3";
+ parameter Real T_8=0.5 "Ramp-tracking filter time constant";
+ parameter Real T_9=0.1 "Ramp-tracking filter time constant";
+ parameter Real K_S1=20 "PSS gain";
+ parameter Real T_1=0.15 "Lead-lag time constant 1";
+ parameter Real T_2=0.025 "Lead-lag time constant 2";
+ parameter Real T_3=0.15 "Lead-lag time constant 3";
+ parameter Real T_4=0.025 "Lead-lag time constant 4";
+ parameter Real T_10=1e-9 "Lead-lag time constant 10";
+ parameter Real T_11=0.033 "Lead-lag time constant 11";
+ parameter Real V_S1MAX=0.08 "PSS input 1 max. limit";
+ parameter Real V_S1MIN=-0.08 "PSS input 1 min. limit";
+ parameter Real V_S2MAX=1.25 "PSS input 2 max. limit";
+ parameter Real V_S2MIN=-1.25 "PSS input 2 min. limit";
+ parameter Real V_STMAX=0.1 "PSS output max. limit, 0.1 ~ 0.2";
+ parameter Real V_STMIN=-0.1 "PSS output min. limit, -0.05 ~ -0.1";
+ parameter Real M "Ramp tracking filter coefficient";
+ parameter Real N "Ramp tracking filter coefficient";
+ OpenIPSL.NonElectrical.Continuous.LeadLag Leadlag1(
+ K=1,
+ T1=T_1,
+ T2=T_2,
+ y_start=0) annotation (Placement(transformation(extent={{106,-10},
+ {126,10}})));
+ OpenIPSL.NonElectrical.Continuous.LeadLag Leadlag2(
+ K=1,
+ T1=T_3,
+ T2=T_4,
+ y_start=0) annotation (Placement(transformation(extent={{134,-10},
+ {154,10}})));
+ OpenIPSL.NonElectrical.Continuous.SimpleLag SimpleLag1(
+ K=1,
+ T=T_6,
+ y_start=0) annotation (Placement(transformation(extent={{-50,10},
+ {-30,30}})));
+ OpenIPSL.NonElectrical.Continuous.SimpleLag SimpleLag2(
+ K=K_S2,
+ T=T_7,
+ y_start=0) annotation (Placement(transformation(extent={{-50,-30},
+ {-30,-10}})));
+ OpenIPSL.NonElectrical.Continuous.LeadLag Leadlag3(
+ K=1,
+ T1=T_10,
+ T2=T_11,
+ y_start=0) annotation (Placement(transformation(extent={{164,-10},
+ {184,10}})));
+ Modelica.Blocks.Nonlinear.Limiter limiter(uMax=V_STMAX, uMin=V_STMIN) annotation (Placement(transformation(extent={{194,-10},
+ {214,10}})));
+ Modelica.Blocks.Nonlinear.Limiter limiter1(uMax=V_S1MAX, uMin=V_S1MIN) annotation (Placement(transformation(extent={{-148,10},
+ {-128,30}})));
+ Modelica.Blocks.Nonlinear.Limiter limiter2(uMax=V_S2MAX, uMin=V_S2MIN) annotation (Placement(transformation(extent={{-148,
+ -30},{-128,-10}})));
+ Modelica.Blocks.Math.Add add(k2=+K_S3) annotation (Placement(transformation(extent={{-18,4},
+ {2,24}})));
+ Modelica.Blocks.Math.Add add1(k2=-1) annotation (Placement(transformation(extent={{48,-10},
+ {68,10}})));
+ Modelica.Blocks.Math.Gain gain(k=K_S1) annotation (Placement(transformation(extent={{76,-10},
+ {96,10}})));
+ NonElectrical.Continuous.DerivativeLag derivativeLag(
+ K=T_w1,
+ T=T_w1,
+ y_start=0,
+ x_start=V_S10) annotation (Placement(transformation(extent={{-114,10},{-94,
+ 30}})));
+ NonElectrical.Continuous.DerivativeLag derivativeLag1(
+ y_start=0,
+ K=T_w2,
+ T=T_w2) annotation (Placement(transformation(extent={{-82,10},{-62,30}})));
+ NonElectrical.Continuous.DerivativeLag derivativeLag2(
+ y_start=0,
+ K=T_w3,
+ T=T_w3,
+ x_start=V_S20) annotation (Placement(transformation(extent={{-114,-30},{-94,
+ -10}})));
+ NonElectrical.Continuous.DerivativeLag derivativeLag3(
+ y_start=0,
+ K=T_w4,
+ T=T_w4) annotation (Placement(transformation(extent={{-82,-30},{-62,-10}})));
+ NonElectrical.Continuous.RampTrackingFilter rampTrackingFilter(
+ M=M,
+ N=N,
+ startValue=0,
+ T_1=T_8,
+ T_2=T_9) annotation (Placement(transformation(extent={{12,4},{32,24}})));
+ protected
+ parameter Real V_S10(fixed=false);
+ parameter Real V_S20(fixed=false);
+ initial equation
+ V_S10 = V_S1;
+ V_S20 = V_S2;
+
+ equation
+ connect(Leadlag3.y, limiter.u) annotation (Line(points={{185,0},{192,0}}, color={0,0,127}));
+ connect(Leadlag2.y, Leadlag3.u) annotation (Line(points={{155,0},{162,0}}, color={0,0,127}));
+ connect(Leadlag2.u, Leadlag1.y) annotation (Line(points={{132,0},{127,0}}, color={0,0,127}));
+ connect(SimpleLag1.y, add.u1) annotation (Line(points={{-29,20},{-20,20}}, color={0,0,127}));
+ connect(SimpleLag2.y, add.u2) annotation (Line(points={{-29,-20},{-26,-20},{
+ -26,8},{-20,8}}, color={0,0,127}));
+ connect(add1.y, gain.u) annotation (Line(points={{69,0},{69,0},{74,0}}, color={0,0,127}));
+ connect(gain.y, Leadlag1.u) annotation (Line(points={{97,0},{100.5,0},{104,0}},
+ color={0,0,127}));
+ connect(derivativeLag.y, derivativeLag1.u) annotation (Line(points={{-93,20},
+ {-84,20}}, color={0,0,127}));
+ connect(derivativeLag3.u, derivativeLag2.y) annotation (Line(points={{-84,-20},
+ {-93,-20}}, color={0,0,127}));
+ connect(derivativeLag1.y, SimpleLag1.u) annotation (Line(points={{-61,20},{
+ -61,20},{-52,20}}, color={0,0,127}));
+ connect(derivativeLag3.y, SimpleLag2.u) annotation (Line(points={{-61,-20},{
+ -52,-20}}, color={0,0,127}));
+ connect(derivativeLag2.u, limiter2.y) annotation (Line(points={{-116,-20},{
+ -127,-20}}, color={0,0,127}));
+ connect(derivativeLag.u, limiter1.y) annotation (Line(points={{-116,20},{-127,
+ 20}}, color={0,0,127}));
+ connect(add.y, rampTrackingFilter.u) annotation (Line(points={{3,14},{10,14}}, color={0,0,127}));
+ connect(rampTrackingFilter.y, add1.u1) annotation (Line(points={{33,14},{38,
+ 14},{38,6},{46,6}}, color={0,0,127}));
+ connect(add1.u2, add.u2) annotation (Line(points={{46,-6},{38,-6},{38,-20},{
+ -26,-20},{-26,8},{-20,8}}, color={0,0,127}));
+ connect(V_S1, limiter1.u)
+ annotation (Line(points={{-160,40},{-150,40},{-150,20}}, color={0,0,127}));
+ connect(V_S2, limiter2.u) annotation (Line(points={{-160,-40},{-150,-40},{
+ -150,-20}}, color={0,0,127}));
+ connect(limiter.y, VOTHSG)
+ annotation (Line(points={{215,0},{226,0},{226,0}}, color={0,0,127}));
+ annotation (
+ Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-160,-80},{220,
+ 80}})),
+ Icon(coordinateSystem(preserveAspectRatio=false, extent={{-160,-80},{220,80}}), graphics={ Text(
+ extent={{-34,14},{32,-16}},
+ lineColor={28,108,200},
+ textString="PSS2B"),Text(
+ extent={{-146,46},{-106,32}},
+ lineColor={28,108,200},
+ textString="V_S1"),Text(
+ extent={{164,16},{210,-14}},
+ lineColor={28,108,200},
+ textString="VOTHSG"),Text(
+ extent={{-146,-34},{-106,-48}},
+ lineColor={28,108,200},
+ textString="V_S2")}),
+ Documentation(info="
+
+
+Reference |
+IEEE Power System Stabilizer Type 2B (PSS2B), PSSE manual |
+
+
+Last update |
+2015-10-02 |
+
+
+Author |
+Le Qi, SmarTS Lab, KTH Royal Institute of Technology |
+
+
+Contact |
+luigiv@kth.se |
+
+
+"));
+ end PSS2B;
+
+ model STAB2A
+
+ parameter Real K_2=1;
+ parameter Real T_2=1;
+ parameter Real K_3=1;
+ parameter Real T_3=1;
+ parameter Real K_4=1;
+ parameter Real K_5=1;
+ parameter Real T_5=1;
+ parameter Real H_LIM=5;
+ input Modelica.Blocks.Interfaces.RealInput PELEC
+ "Machine electrical power (pu)" annotation (Placement(transformation(extent=
+ {{-109,-6},{-98,10}}), iconTransformation(extent={{-107,-10},{-87,10}})));
+ output Modelica.Blocks.Interfaces.RealOutput VOTHSG "PSS output signal"
+ annotation (Placement(transformation(extent={{120,-10},{140,10}}),
+ iconTransformation(extent={{120,-10},{140,10}})));
+ Modelica.Blocks.Continuous.TransferFunction transferFunction(
+ b={-K_2*T_2,0},
+ a={T_2,1},
+ initType=Modelica.Blocks.Types.Init.SteadyState)
+ annotation (Placement(transformation(extent={{-90,-8},{-70,12}})));
+ Modelica.Blocks.Continuous.TransferFunction transferFunction1(
+ a={T_2,1},
+ initType=Modelica.Blocks.Types.Init.SteadyState,
+ b={K_2*T_2,0})
+ annotation (Placement(transformation(extent={{-62,-8},{-42,12}})));
+ Modelica.Blocks.Continuous.TransferFunction transferFunction2(
+ a={T_2,1},
+ initType=Modelica.Blocks.Types.Init.SteadyState,
+ b={K_2*T_2,0})
+ annotation (Placement(transformation(extent={{-34,-8},{-14,12}})));
+ Modelica.Blocks.Continuous.TransferFunction transferFunction3(
+ initType=Modelica.Blocks.Types.Init.SteadyState,
+ b={K_3},
+ a={T_3,1}) annotation (Placement(transformation(extent={{-4,-2},{16,18}})));
+ Modelica.Blocks.Continuous.TransferFunction transferFunction4(
+ initType=Modelica.Blocks.Types.Init.SteadyState,
+ b={K_5},
+ a={T_5,1}) annotation (Placement(transformation(extent={{42,-10},{62,10}})));
+ Modelica.Blocks.Continuous.TransferFunction transferFunction5(
+ initType=Modelica.Blocks.Types.Init.SteadyState,
+ b={K_5},
+ a={T_5,1}) annotation (Placement(transformation(extent={{70,-10},{90,10}})));
+ Modelica.Blocks.Math.Gain K(k=K_4)
+ annotation (Placement(transformation(extent={{0,-26},{14,-12}})));
+ Modelica.Blocks.Math.Add add
+ annotation (Placement(transformation(extent={{26,-4},{34,4}})));
+ Modelica.Blocks.Nonlinear.Limiter limiter(uMax=H_LIM, uMin=-H_LIM)
+ annotation (Placement(transformation(extent={{98,-10},{118,10}})));
+ equation
+ connect(PELEC, transferFunction.u) annotation (Line(
+ points={{-103.5,2},{-103.5,1},{-92,1},{-92,2}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(transferFunction.y, transferFunction1.u) annotation (Line(
+ points={{-69,2},{-64,2}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(transferFunction1.y, transferFunction2.u) annotation (Line(
+ points={{-41,2},{-36,2}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(transferFunction2.y, transferFunction3.u) annotation (Line(
+ points={{-13,2},{-10,2},{-10,8},{-6,8}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(transferFunction4.y, transferFunction5.u) annotation (Line(
+ points={{63,0},{68,0}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(K.u, transferFunction2.y) annotation (Line(
+ points={{-1.4,-19},{-10,-19},{-10,2},{-13,2}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(add.y, transferFunction4.u) annotation (Line(
+ points={{34.4,0},{40,0}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(transferFunction3.y, add.u1) annotation (Line(
+ points={{17,8},{20,8},{20,2.4},{25.2,2.4}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(K.y, add.u2) annotation (Line(
+ points={{14.7,-19},{20,-19},{20,-2.4},{25.2,-2.4}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(transferFunction5.y, limiter.u)
+ annotation (Line(points={{91,0},{96,0}}, color={0,0,127}));
+ connect(VOTHSG, limiter.y)
+ annotation (Line(points={{130,0},{119,0}}, color={0,0,127}));
+ annotation (
+ Diagram(coordinateSystem(
+ preserveAspectRatio=false,
+ extent={{-100,-40},{120,40}},
+ grid={2,2})),
+ Icon(coordinateSystem(
+ preserveAspectRatio=false,
+ extent={{-100,-40},{120,40}},
+ grid={2,2}), graphics={Rectangle(extent={{-100,40},{120,-40}},
+ lineColor={0,0,255}),Text(
+ extent={{-34,24},{34,-24}},
+ lineColor={0,0,255},
+ textString="STAB2A"),Text(
+ extent={{72,16},{116,-18}},
+ lineColor={0,0,255},
+ textString="VOTHSG"),Text(
+ extent={{-86,16},{-48,-16}},
+ lineColor={0,0,255},
+ textString="PELEC")}),
+ Documentation(info="
+Models STAB2A, STAB3, and STAB4 are special representations of specific types of supplementary stabilizing units.
+Both produce a supplementary signal by introducing phase-lead into a signalproportional to electrical power output measured at the generator terminals.
+
+Reference |
+PSS/E Manual |
+
+
+Last update |
+Unknown |
+
+
+Author |
+Mengjia Zhang,SmarTS Lab, KTH Royal Institute of Technology |
+
+
+Contact |
+luigiv@kth.se |
+
+
+"));
+ end STAB2A;
+
+ model STAB3
+ parameter Real T_t "(s)";
+ parameter Real T_X1 ">0 (s)";
+ parameter Real T_X2 ">0 (s)";
+ parameter Real K_X;
+ parameter Real V_LIM;
+ Modelica.Blocks.Interfaces.RealInput PELEC "Machine electrical power (pu)"
+ annotation (Placement(transformation(extent={{-130,-20},{-90,20}}),
+ iconTransformation(extent={{-130,-20},{-90,20}})));
+ Modelica.Blocks.Interfaces.RealOutput VOTHSG "PSS output signal" annotation (
+ Placement(transformation(extent={{100,-10},{120,10}}), iconTransformation(
+ extent={{100,-10},{120,10}})));
+ Modelica.Blocks.Nonlinear.Limiter limiter(uMax=V_LIM, uMin=-V_LIM)
+ annotation (Placement(transformation(extent={{70,-10},{90,10}})));
+ Modelica.Blocks.Sources.Constant const(k=P_REF)
+ annotation (Placement(transformation(extent={{-60,-40},{-40,-20}})));
+ protected
+ parameter Real P_REF(fixed=false);
+ parameter Real PELEC0(fixed=false);
+ NonElectrical.Continuous.SimpleLag imSimpleLag(
+ K=1,
+ T=T_t,
+ y_start=PELEC0)
+ annotation (Placement(transformation(extent={{-76,-10},{-56,10}})));
+ Modelica.Blocks.Math.Feedback feedback
+ annotation (Placement(transformation(extent={{-40,-10},{-20,10}})));
+ NonElectrical.Continuous.SimpleLag imSimpleLag1(
+ K=1,
+ T=T_X1,
+ y_start=0) annotation (Placement(transformation(extent={{0,-10},{20,10}})));
+ Modelica.Blocks.Continuous.Derivative imDerivativeLag(
+ y_start=0,
+ k=-K_X,
+ T=T_X2,
+ initType=Modelica.Blocks.Types.Init.InitialOutput)
+ annotation (Placement(transformation(extent={{34,-10},{54,10}})));
+ initial equation
+ PELEC0 = PELEC;
+ P_REF = PELEC0;
+ equation
+ connect(imSimpleLag1.y, imDerivativeLag.u)
+ annotation (Line(points={{21,0},{32,0}}, color={0,0,127}));
+ connect(imSimpleLag.y, feedback.u1)
+ annotation (Line(points={{-55,0},{-46.5,0},{-38,0}}, color={0,0,127}));
+ connect(imSimpleLag.u, PELEC)
+ annotation (Line(points={{-78,0},{-110,0},{-110,0}}, color={0,0,127}));
+ connect(feedback.y, imSimpleLag1.u)
+ annotation (Line(points={{-21,0},{-11.5,0},{-2,0}}, color={0,0,127}));
+ connect(imSimpleLag1.y, imDerivativeLag.u)
+ annotation (Line(points={{21,0},{26.5,0},{32,0}}, color={0,0,127}));
+ connect(imDerivativeLag.y, limiter.u)
+ annotation (Line(points={{55,0},{68,0}}, color={0,0,127}));
+ connect(limiter.y, VOTHSG)
+ annotation (Line(points={{91,0},{110,0}}, color={0,0,127}));
+ connect(const.y, feedback.u2)
+ annotation (Line(points={{-39,-30},{-30,-30},{-30,-8}}, color={0,0,127}));
+ annotation (
+ Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,-40},{100,
+ 40}})),
+ Icon(coordinateSystem(extent={{-100,-40},{100,40}}, preserveAspectRatio=
+ false), graphics={Rectangle(extent={{-100,40},{100,-40}}, lineColor=
+ {28,108,200}),Text(
+ extent={{-70,20},{70,-20}},
+ lineColor={28,108,200},
+ textString="STAB3"),Text(
+ extent={{-88,10},{-58,-10}},
+ lineColor={28,108,200},
+ textString="PELEC"),Text(
+ extent={{64,14},{98,-12}},
+ lineColor={28,108,200},
+ textString="VOTHSG")}),
+ Documentation(info="
+
+Reference |
+STAB3, PSSE Manual |
+
+
+Last update |
+2015-08-03 |
+
+
+Author |
+Tin Rabuzin, SmarTS Lab, KTH Royal Institute of Technology |
+
+
+Contact |
+luigiv@kth.se |
+
+
+"));
+ end STAB3;
+
+ model STABNI
+ parameter Real K ">= 0";
+ parameter Real T_1 ">0 (s)";
+ parameter Real T_2 ">=0 (S)";
+ parameter Real T_0 ">0 (s)";
+ parameter Real LIMIT "+- (pu)";
+ Modelica.Blocks.Interfaces.RealInput PELEC annotation (Placement(
+ transformation(extent={{-148,-20},{-108,20}}), iconTransformation(
+ extent={{-148,-20},{-108,20}})));
+ Modelica.Blocks.Interfaces.RealOutput VOTHSG annotation (Placement(
+ transformation(extent={{120,-10},{140,10}}), iconTransformation(extent=
+ {{120,-10},{140,10}})));
+ Modelica.Blocks.Nonlinear.Limiter limiter(uMax=LIMIT, uMin=-LIMIT)
+ annotation (Placement(transformation(extent={{60,-10},{80,10}})));
+ protected
+ parameter Real PELEC0(fixed=false);
+ protected
+ NonElectrical.Continuous.SimpleLag imSimpleLag(
+ K=K,
+ T=T_2,
+ y_start=K*PELEC0)
+ annotation (Placement(transformation(extent={{-100,-10},{-80,10}})));
+ NonElectrical.Continuous.LeadLag imLeadLag(
+ K=1,
+ T1=T_1,
+ T2=T_0,
+ y_start=0)
+ annotation (Placement(transformation(extent={{-10,-10},{10,10}})));
+ Modelica.Blocks.Continuous.Derivative imDerivativeLag(
+ T=T_0,
+ k=T_0,
+ y_start=0,
+ initType=Modelica.Blocks.Types.Init.InitialOutput)
+ annotation (Placement(transformation(extent={{-70,-10},{-50,10}})));
+ Modelica.Blocks.Continuous.Derivative imDerivativeLag1(
+ T=T_0,
+ k=T_0,
+ y_start=0,
+ initType=Modelica.Blocks.Types.Init.InitialOutput)
+ annotation (Placement(transformation(extent={{-40,-10},{-20,10}})));
+ NonElectrical.Continuous.SimpleLag imSimpleLag1(
+ K=1,
+ T=T_0,
+ y_start=0) annotation (Placement(transformation(extent={{20,-10},{40,10}})));
+ Modelica.Blocks.Math.Gain gain(k=-1)
+ annotation (Placement(transformation(extent={{96,-10},{116,10}})));
+ initial equation
+ PELEC0 = PELEC;
+ equation
+ connect(VOTHSG, gain.y)
+ annotation (Line(points={{130,0},{124,0},{117,0}}, color={0,0,127}));
+ connect(PELEC, imSimpleLag.u)
+ annotation (Line(points={{-128,0},{-102,0}}, color={0,0,127}));
+ connect(imSimpleLag.y, imDerivativeLag.u)
+ annotation (Line(points={{-79,0},{-72,0}}, color={0,0,127}));
+ connect(imDerivativeLag.y, imDerivativeLag1.u)
+ annotation (Line(points={{-49,0},{-45.5,0},{-42,0}}, color={0,0,127}));
+ connect(imDerivativeLag1.y, imLeadLag.u)
+ annotation (Line(points={{-19,0},{-15.5,0},{-12,0}}, color={0,0,127}));
+ connect(imLeadLag.y, imSimpleLag1.u)
+ annotation (Line(points={{11,0},{14.5,0},{18,0}}, color={0,0,127}));
+ connect(limiter.y, gain.u)
+ annotation (Line(points={{81,0},{88,0},{94,0}}, color={0,0,127}));
+ connect(limiter.u, imSimpleLag1.y)
+ annotation (Line(points={{58,0},{41,0}}, color={0,0,127}));
+ annotation (
+ Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-120,-40},{120,
+ 40}})),
+ Icon(coordinateSystem(extent={{-120,-40},{120,40}}, preserveAspectRatio=
+ false), graphics={Rectangle(extent={{-120,40},{120,-40}}, lineColor=
+ {28,108,200}),Text(
+ extent={{-64,20},{56,-20}},
+ lineColor={28,108,200},
+ textString="STABNI"),Text(
+ extent={{-108,8},{-72,-10}},
+ lineColor={28,108,200},
+ textString="PELEC"),Text(
+ extent={{82,10},{118,-8}},
+ lineColor={28,108,200},
+ textString="VOTHSG")}),
+ Documentation(info="
+
+Reference |
+STABNI, PSSE Manual |
+
+
+Last update |
+2015-08-03 |
+
+
+Author |
+Tin Rabuzin, SmarTS Lab, KTH Royal Institute of Technology |
+
+
+Contact |
+luigiv@kth.se |
+
+
+"));
+ end STABNI;
+
+ model IEEEST "IEEE Stabilizing Model with single Input"
+ parameter Real A_1=0 "Filter Coefficient";
+ parameter Real A_2=0 "Filter Coefficient";
+ parameter Real A_3=0 "Filter Coefficient";
+ parameter Real A_4=0 "Filter Coefficient";
+ parameter Real A_5=0 "Filter Coefficient";
+ parameter Real A_6=0 "Filter Coefficient";
+ parameter Real T_1=0 "Lead Time Constant";
+ parameter Real T_2=0 "Lag Time Constant";
+ parameter Real T_3=0 "Lead Time Constant";
+ parameter Real T_4=0 "Lag Time Constant";
+ parameter Real T_5=1.65 "Washout Time Constant";
+ parameter Real T_6=1.65 "Washout Time Constant";
+ parameter Real K_S=6.2 "Stabilizer Gain";
+ parameter Real L_SMAX=0.26 "Output Limits";
+ parameter Real L_SMIN=-0.1 "Output Limits";
+ parameter Real V_CU=999 "Output Limits";
+ parameter Real V_CL=-999 "Output Limits";
+ Modelica.Blocks.Continuous.TransferFunction Filter1_1(
+ initType=Modelica.Blocks.Types.Init.InitialOutput,
+ y_start=V_S0,
+ a=a1,
+ b=b) annotation (Placement(transformation(extent={{-90,-30},{-80,-20}})));
+ OpenIPSL.NonElectrical.Continuous.LeadLag T_1_T_2(
+ K=1,
+ T1=T_1,
+ T2=T_2,
+ x_start=V_S0,
+ y_start=V_S0)
+ annotation (Placement(transformation(extent={{40,-5},{50,5}})));
+ OpenIPSL.NonElectrical.Continuous.LeadLag T_3_T_4(
+ K=1,
+ T1=T_3,
+ T2=T_4,
+ x_start=V_S0,
+ y_start=V_S0)
+ annotation (Placement(transformation(extent={{60,-5},{70,5}})));
+ Modelica.Blocks.Interfaces.RealOutput VOTHSG(start=0) "PSS output signal"
+ annotation (Placement(transformation(extent={{120,-5},{130,5}}, rotation=0),
+ iconTransformation(extent={{120,-10},{140,10}})));
+ Modelica.Blocks.Interfaces.RealInput V_S(start=0) "PSS input signal"
+ annotation (Placement(transformation(extent={{-125,-5},{-115,5}}, rotation=
+ 0), iconTransformation(extent={{-128,-30},{-108,-10}})));
+ Modelica.Blocks.Nonlinear.Limiter VSS(uMax=L_SMAX, uMin=L_SMIN)
+ annotation (Placement(transformation(extent={{100,-5},{110,5}})));
+ Modelica.Blocks.Interfaces.RealInput V_CT
+ "Compensated machine terminal voltage (pu)" annotation (Placement(
+ transformation(extent={{-125,30},{-115,40}}, rotation=0),
+ iconTransformation(extent={{-128,10},{-108,30}})));
+ Modelica.Blocks.Continuous.Derivative imDerivativeLag(
+ T=T_6,
+ y_start=0,
+ initType=Modelica.Blocks.Types.Init.InitialOutput,
+ x_start=V_S0,
+ k=K_S*T_5) annotation (Placement(transformation(extent={{80,-5},{90,5}})));
+ protected
+ Modelica.Blocks.Interfaces.RealOutput Vs "Connector of Real output signal"
+ annotation (Placement(transformation(extent={{113,-5},{123,5}}, rotation=0),
+ iconTransformation(extent={{32,-8},{36,-4}})));
+ parameter Real V_S0(fixed=false);
+ parameter Boolean bypass_filter2(fixed=false);
+ parameter Boolean bypass_filter1(fixed=false);
+ parameter Integer n1=if A_1 == 0 and A_2 == 0 then 4 elseif A_2 == 0 then 2
+ else 3;
+ parameter Integer n2=if A_3 == 0 and A_4 == 0 then 4 elseif A_4 == 0 then 2
+ else 3;
+ parameter Integer n3=if A_6 == 0 and A_5 == 0 then 1 elseif A_6 == 0 then 2
+ else 3;
+ parameter Real a1[n1](each fixed=false);
+ parameter Real a2[n2](each fixed=false);
+ parameter Real b[n3](each fixed=false);
+ Modelica.Blocks.Continuous.TransferFunction Filter2_1(
+ initType=Modelica.Blocks.Types.Init.InitialOutput,
+ y_start=V_S0,
+ b={1},
+ a=a2) annotation (Placement(transformation(extent={{-60,-30},{-50,-20}})));
+ Modelica.Blocks.Logical.Switch swith_filter2
+ annotation (Placement(transformation(extent={{-30,-26},{-20,-16}})));
+ Modelica.Blocks.Sources.BooleanConstant booleanConstant(k=bypass_filter2)
+ annotation (Placement(transformation(extent={{-60,-50},{-50,-40}})));
+ Modelica.Blocks.Continuous.TransferFunction Filter1_2(
+ initType=Modelica.Blocks.Types.Init.InitialOutput,
+ y_start=V_S0,
+ a=a1,
+ b={1}) annotation (Placement(transformation(extent={{-90,10},{-80,20}})));
+ Modelica.Blocks.Continuous.TransferFunction Filter2_2(
+ initType=Modelica.Blocks.Types.Init.InitialOutput,
+ y_start=V_S0,
+ a=a2,
+ b=b) annotation (Placement(transformation(extent={{-60,10},{-50,20}})));
+ Modelica.Blocks.Logical.Switch swith_filter1
+ annotation (Placement(transformation(extent={{-75,-5},{-65,5}})));
+ Modelica.Blocks.Sources.BooleanConstant booleanConstant1(k=bypass_filter1)
+ annotation (Placement(transformation(extent={{-95,-15},{-85,-5}})));
+ Modelica.Blocks.Logical.Switch swith_filter3
+ annotation (Placement(transformation(extent={{20,-5},{30,5}})));
+ Modelica.Blocks.MathBoolean.And and1(nu=2)
+ annotation (Placement(transformation(extent={{-30,-13},{-20,-3}})));
+ Modelica.Blocks.Logical.Switch swith_filter4
+ annotation (Placement(transformation(extent={{-6,-5},{4,5}})));
+ initial equation
+ if n3 == 1 then
+ b = {1};
+ elseif n3 == 2 then
+ b = {A_5,1};
+ else
+ b = {A_6,A_5,1};
+ end if;
+ if n1 == 4 then
+ a1 = {1,1,1,1};
+ bypass_filter1 = true;
+ elseif n1 == 3 then
+ a1 = {A_2,A_1,1};
+ bypass_filter1 = false;
+ else
+ a1 = {A_1,1};
+ bypass_filter1 = false;
+ end if;
+ if n2 == 4 then
+ a2 = {1,1,1,1};
+ bypass_filter2 = true;
+ elseif n2 == 3 then
+ a2 = {A_4,A_3,1};
+ bypass_filter2 = false;
+ else
+ a2 = {A_3,1};
+ bypass_filter2 = false;
+ end if;
+ V_S0 = V_S;
+ equation
+ if V_CU == 0 and not V_CL == 0 then
+ if V_CT > V_CL then
+ VOTHSG = Vs;
+ else
+ VOTHSG = 0;
+ end if;
+ elseif V_CL == 0 and not V_CU == 0 then
+ if V_CT < V_CU then
+ VOTHSG = Vs;
+ else
+ VOTHSG = 0;
+ end if;
+ elseif V_CU == 0 and V_CL == 0 then
+ VOTHSG = Vs;
+ elseif V_CT > V_CL and V_CT < V_CU then
+ VOTHSG = Vs;
+ else
+ VOTHSG = 0;
+ end if;
+ connect(V_S, Filter1_1.u) annotation (Line(
+ points={{-120,0},{-100,0},{-100,-25},{-91,-25}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(T_1_T_2.y, T_3_T_4.u)
+ annotation (Line(points={{50.5,0},{59,0}}, color={0,0,127}));
+ connect(imDerivativeLag.y, VSS.u)
+ annotation (Line(points={{90.5,0},{99,0}}, color={0,0,127}));
+ connect(T_3_T_4.y, imDerivativeLag.u)
+ annotation (Line(points={{70.5,0},{74,0},{79,0}}, color={0,0,127}));
+ connect(Filter1_1.y, Filter2_1.u) annotation (Line(points={{-79.5,-25},{-72,-25},
+ {-61,-25}}, color={0,0,127}));
+ connect(swith_filter2.u3, Filter2_1.y) annotation (Line(points={{-31,-25},{-31,
+ -25},{-49.5,-25}}, color={0,0,127}));
+ connect(swith_filter2.u1, Filter2_1.u) annotation (Line(points={{-31,-17},{-66,
+ -17},{-66,-25},{-61,-25}}, color={0,0,127}));
+ connect(booleanConstant.y, swith_filter2.u2) annotation (Line(points={{-49.5,
+ -45},{-40,-45},{-40,-21},{-31,-21}}, color={255,0,255}));
+ connect(Filter1_2.u, Filter1_1.u) annotation (Line(points={{-91,15},{-100,15},
+ {-100,-25},{-91,-25}}, color={0,0,127}));
+ connect(swith_filter1.y, Filter2_2.u) annotation (Line(points={{-64.5,0},{-63,
+ 0},{-63,15},{-61,15}}, color={0,0,127}));
+ connect(swith_filter1.u1, Filter1_1.u) annotation (Line(points={{-76,4},{-95,
+ 4},{-95,15},{-100,15},{-100,-25},{-91,-25}}, color={0,0,127}));
+ connect(swith_filter1.u3, Filter1_2.y) annotation (Line(points={{-76,-4},{-78,
+ -4},{-78,15},{-79.5,15}}, color={0,0,127}));
+ connect(booleanConstant1.y, swith_filter1.u2) annotation (Line(points={{-84.5,
+ -10},{-80,-10},{-80,0},{-76,0}}, color={255,0,255}));
+ connect(and1.y, swith_filter3.u2) annotation (Line(points={{-19.25,-8},{15,-8},
+ {15,0},{19,0}}, color={255,0,255}));
+ connect(and1.u[1], swith_filter2.u2) annotation (Line(points={{-30,-6.25},{-35,
+ -6.25},{-40,-6.25},{-40,-6},{-40,-21},{-31,-21}}, color={255,0,255}));
+ connect(and1.u[2], swith_filter1.u2) annotation (Line(points={{-30,-9.75},{-52,
+ -9.75},{-52,-10},{-80,-10},{-80,0},{-76,0}}, color={255,0,255}));
+ connect(swith_filter3.u1, Filter1_1.u) annotation (Line(points={{19,4},{15,4},
+ {15,30},{-110,30},{-110,0},{-100,0},{-100,-25},{-91,-25}}, color={0,0,
+ 127}));
+ connect(swith_filter4.y, swith_filter3.u3) annotation (Line(points={{4.5,0},{
+ 12,0},{12,-4},{19,-4}}, color={0,0,127}));
+ connect(swith_filter4.u2, swith_filter1.u2) annotation (Line(points={{-7,0},{
+ -52,0},{-52,-10},{-80,-10},{-80,0},{-76,0}}, color={255,0,255}));
+ connect(Filter2_2.y, swith_filter4.u1) annotation (Line(points={{-49.5,15},{-20,
+ 15},{-20,4},{-7,4}}, color={0,0,127}));
+ connect(swith_filter2.y, swith_filter4.u3) annotation (Line(points={{-19.5,-21},
+ {-12,-21},{-12,-4},{-7,-4}}, color={0,0,127}));
+ connect(swith_filter3.y, T_1_T_2.u)
+ annotation (Line(points={{30.5,0},{39,0}}, color={0,0,127}));
+ connect(VSS.y, Vs)
+ annotation (Line(points={{110.5,0},{118,0},{118,0}}, color={0,0,127}));
+ annotation (
+ Diagram(coordinateSystem(
+ preserveAspectRatio=false,
+ extent={{-120,-40},{120,40}},
+ grid={1,1})),
+ Icon(coordinateSystem(
+ preserveAspectRatio=false,
+ extent={{-120,-40},{120,40}},
+ grid={1,1}), graphics={Rectangle(extent={{-120,40},{120,-40}},
+ lineColor={0,0,255}),Text(
+ extent={{-46,40},{54,-44}},
+ lineColor={0,0,255},
+ textString="IEEEST"),Text(
+ extent={{-106,-10},{-84,-30}},
+ lineColor={0,0,255},
+ textString="V_S"),Text(
+ extent={{84,14},{118,-16}},
+ lineColor={0,0,255},
+ textString="VOTHSG"),Text(
+ extent={{-106,32},{-78,8}},
+ lineColor={0,0,255},
+ textString="V_CT")}),
+ Documentation(info="
+
+
+Reference |
+PSS/E Manual |
+
+
+Last update |
+Unknown |
+
+
+Author |
+Mengjia Zhang,SmarTS Lab, KTH Royal Institute of Technology |
+
+
+Contact |
+luigiv@kth.se |
+
+
+"));
+ end IEEEST;
+
+ model IEE2ST "IEEE Stabilizing Model With Dual-Input Signals"
+ parameter Real K_1;
+ parameter Real K_2;
+ parameter Real T_1 "(s)";
+ parameter Real T_2 "(s)";
+ parameter Real T_3 "(s), if T_3 equals 0, sT_3 will equal 1.0";
+ parameter Real T_4 ">0 (s)";
+ parameter Real T_5 "(s)";
+ parameter Real T_6 "(s)";
+ parameter Real T_7 "(s)";
+ parameter Real T_8 "(s)";
+ parameter Real T_9 "(s)";
+ parameter Real T_10 "(s)";
+ parameter Real L_SMAX;
+ parameter Real L_SMIN;
+ parameter Real V_CU "(pu)";
+ parameter Real V_CL "(pu)";
+ Modelica.Blocks.Interfaces.RealInput V_S1 "PSS input signal 1"
+ annotation (Placement(transformation(extent={{-200,20},{-160,60}})));
+ Modelica.Blocks.Interfaces.RealInput V_S2 "PSS input signal 2"
+ annotation (Placement(transformation(extent={{-200,-60},{-160,-20}})));
+ Modelica.Blocks.Math.Add add
+ annotation (Placement(transformation(extent={{-100,-10},{-80,10}})));
+ Modelica.Blocks.Nonlinear.Limiter limiter(uMax=L_SMAX, uMin=L_SMIN)
+ annotation (Placement(transformation(extent={{96,-10},{116,10}})));
+ Modelica.Blocks.Interfaces.RealOutput VOTHSG "PSS output signal"
+ annotation (Placement(transformation(extent={{180,-10},{200,10}})));
+ Modelica.Blocks.Continuous.Derivative imDerivativeLag(
+ k=T_3,
+ T=T_4,
+ y_start=0,
+ initType=Modelica.Blocks.Types.Init.InitialOutput)
+ annotation (Placement(transformation(extent={{-60,-10},{-40,10}})));
+ NonElectrical.Continuous.SimpleLag imSimpleLag(
+ K=K_1,
+ T=T_1,
+ y_start=K_1*ICS10)
+ annotation (Placement(transformation(extent={{-150,30},{-130,50}})));
+ NonElectrical.Continuous.SimpleLag imSimpleLag1(
+ K=K_2,
+ T=T_2,
+ y_start=ICS20)
+ annotation (Placement(transformation(extent={{-150,-50},{-130,-30}})));
+ NonElectrical.Continuous.LeadLag imLeadLag(
+ K=1,
+ T1=T_5,
+ T2=T_6,
+ y_start=0) annotation (Placement(transformation(extent={{-20,-10},{0,10}})));
+ NonElectrical.Continuous.LeadLag imLeadLag1(
+ K=1,
+ T1=T_7,
+ T2=T_8,
+ y_start=0) annotation (Placement(transformation(extent={{20,-10},{40,10}})));
+ NonElectrical.Continuous.LeadLag imLeadLag2(
+ K=1,
+ T1=T_9,
+ T2=T_10,
+ y_start=0) annotation (Placement(transformation(extent={{60,-10},{80,10}})));
+ Modelica.Blocks.Interfaces.RealInput VCT
+ "Compensated machine terminal voltage (pu)" annotation (Placement(
+ transformation(
+ extent={{-20,-20},{20,20}},
+ rotation=90,
+ origin={0,-60})));
+ protected
+ Modelica.Blocks.Interfaces.RealOutput VSS
+ annotation (Placement(transformation(extent={{136,-10},{156,10}})));
+ protected
+ parameter Real ICS10(fixed=false);
+ parameter Real ICS20(fixed=false);
+ initial equation
+ ICS10 = V_S1;
+ ICS20 = V_S2;
+ equation
+ if V_CU == 0 and not V_CL == 0 then
+ if VCT > V_CL then
+ VOTHSG = VSS;
+ else
+ VOTHSG = 0;
+ end if;
+ elseif V_CL == 0 and not V_CU == 0 then
+ if VCT < V_CU then
+ VOTHSG = VSS;
+ else
+ VOTHSG = 0;
+ end if;
+ elseif V_CU == 0 and V_CL == 0 then
+ VOTHSG = VSS;
+ elseif VCT > V_CL and VCT < V_CU then
+ VOTHSG = VSS;
+ else
+ VOTHSG = 0;
+ end if;
+ connect(limiter.y, VSS)
+ annotation (Line(points={{117,0},{146,0}}, color={0,0,127}));
+ connect(V_S2, imSimpleLag1.u)
+ annotation (Line(points={{-180,-40},{-152,-40}}, color={0,0,127}));
+ connect(imSimpleLag1.y, add.u2) annotation (Line(points={{-129,-40},{-120,-40},
+ {-120,-6},{-102,-6}}, color={0,0,127}));
+ connect(V_S1, imSimpleLag.u)
+ annotation (Line(points={{-180,40},{-166,40},{-152,40}}, color={0,0,127}));
+ connect(imSimpleLag.y, add.u1) annotation (Line(points={{-129,40},{-120,40},{
+ -120,6},{-102,6}}, color={0,0,127}));
+ connect(imLeadLag2.y, limiter.u)
+ annotation (Line(points={{81,0},{94,0}}, color={0,0,127}));
+ connect(imLeadLag1.y, imLeadLag2.u)
+ annotation (Line(points={{41,0},{49.5,0},{58,0}}, color={0,0,127}));
+ connect(imLeadLag.y, imLeadLag1.u)
+ annotation (Line(points={{1,0},{9.5,0},{18,0}}, color={0,0,127}));
+ connect(imLeadLag.u, imDerivativeLag.y)
+ annotation (Line(points={{-22,0},{-39,0}}, color={0,0,127}));
+ connect(add.y, imDerivativeLag.u)
+ annotation (Line(points={{-79,0},{-62,0}}, color={0,0,127}));
+ annotation (
+ Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-180,-60},{180,
+ 60}})),
+ Icon(coordinateSystem(extent={{-180,-60},{180,60}}, preserveAspectRatio=
+ false), graphics={Text(
+ extent={{-156,52},{-114,28}},
+ lineColor={28,108,200},
+ textString="ICS1"),Text(
+ extent={{-158,-28},{-114,-54}},
+ lineColor={28,108,200},
+ textString="ICS2"),Text(
+ extent={{-20,-20},{22,-42}},
+ lineColor={28,108,200},
+ textString="VCT"),Text(
+ extent={{106,12},{178,-14}},
+ lineColor={28,108,200},
+ textString="VOTHSG"),Text(
+ extent={{-50,32},{58,-32}},
+ lineColor={28,108,200},
+ textString="IEE2ST"),Rectangle(extent={{-180,60},{180,-60}},
+ lineColor={28,108,200})}),
+ Documentation(info="
+
+
+Reference |
+ |
+IEE2ST, PSSE Manual
+
+
+Last update |
+ |
+2015-08-17
+
+
+Author |
+Tin Rabuzin, SmarTS Lab, KTH Royal Institute of Technology |
+
+
+Contact |
+luigiv@kth.se |
+
+
+"));
+ end IEE2ST;
+
+ model STBSVC "WECC Supplementary Signal for Static var Compensator"
+ parameter Real K_S1 ">0";
+ parameter Real T_S7 "(s)";
+ parameter Real T_S8 "(s)";
+ parameter Real T_S9 ">0 (s)";
+ parameter Real T_S13 ">0 (s)";
+ parameter Real T_S14 ">0 (s)";
+ parameter Real K_S3 ">0";
+ parameter Real V_SCS;
+ parameter Real K_S2;
+ parameter Real T_S10 "(s)";
+ parameter Real T_S11 "(s)";
+ parameter Real T_S12 ">0, if K_S2 != 0 (s)";
+ NonElectrical.Continuous.SimpleLag imSimpleLag(
+ K=K_S1,
+ y_start=V_S10,
+ T=T_S7) annotation (Placement(transformation(extent={{-100,40},{-80,60}})));
+ NonElectrical.Continuous.SimpleLag imSimpleLag1(
+ y_start=V_S10,
+ K=K_S2,
+ T=T_S10)
+ annotation (Placement(transformation(extent={{-100,-60},{-80,-40}})));
+ NonElectrical.Continuous.LeadLag imLeadLag(
+ K=1,
+ T1=T_S8,
+ T2=T_S9,
+ y_start=V_S10)
+ annotation (Placement(transformation(extent={{-60,40},{-40,60}})));
+ NonElectrical.Continuous.LeadLag imLeadLag1(
+ K=1,
+ T1=T_S11,
+ T2=T_S12,
+ y_start=V_S20)
+ annotation (Placement(transformation(extent={{-60,-60},{-40,-40}})));
+ Modelica.Blocks.Math.Add add
+ annotation (Placement(transformation(extent={{-12,-10},{8,10}})));
+ Modelica.Blocks.Continuous.Derivative imDerivativeLag(
+ k=T_S13,
+ T=T_S14,
+ y_start=0,
+ initType=Modelica.Blocks.Types.Init.InitialOutput)
+ annotation (Placement(transformation(extent={{18,-10},{38,10}})));
+ Modelica.Blocks.Math.Gain gain(k=K_S3)
+ annotation (Placement(transformation(extent={{46,-10},{66,10}})));
+ Modelica.Blocks.Nonlinear.Limiter limiter(uMax=V_SCS, uMin=-V_SCS)
+ annotation (Placement(transformation(extent={{74,-10},{94,10}})));
+ Modelica.Blocks.Interfaces.RealInput V_S1 "PSS input signal 1"
+ annotation (Placement(transformation(extent={{-150,30},{-110,70}})));
+ Modelica.Blocks.Interfaces.RealInput V_S2 "PSS input signal 2"
+ annotation (Placement(transformation(extent={{-150,-70},{-110,-30}})));
+ Modelica.Blocks.Interfaces.RealOutput VOTHSG "Stabilizer signal (pu)"
+ annotation (Placement(transformation(extent={{120,-10},{140,10}})));
+ protected
+ parameter Real V_S10(fixed=false);
+ parameter Real V_S20(fixed=false);
+ initial equation
+ V_S10 = V_S1;
+ V_S20 = V_S2;
+ equation
+ connect(gain.y, limiter.u)
+ annotation (Line(points={{67,0},{67,0},{72,0}}, color={0,0,127}));
+ connect(limiter.y, VOTHSG)
+ annotation (Line(points={{95,0},{130,0}}, color={0,0,127}));
+ connect(V_S1, imSimpleLag.u)
+ annotation (Line(points={{-130,50},{-116,50},{-102,50}}, color={0,0,127}));
+ connect(imSimpleLag.y, imLeadLag.u)
+ annotation (Line(points={{-79,50},{-70.5,50},{-62,50}}, color={0,0,127}));
+ connect(imLeadLag.y, add.u1) annotation (Line(points={{-39,50},{-30,50},{-30,
+ 6},{-14,6}}, color={0,0,127}));
+ connect(V_S2, imSimpleLag1.u) annotation (Line(points={{-130,-50},{-116,-50},
+ {-102,-50}}, color={0,0,127}));
+ connect(imSimpleLag1.y, imLeadLag1.u) annotation (Line(points={{-79,-50},{-70.5,
+ -50},{-62,-50}}, color={0,0,127}));
+ connect(imLeadLag1.y, add.u2) annotation (Line(points={{-39,-50},{-30,-50},{-30,
+ -6},{-14,-6}}, color={0,0,127}));
+ connect(imDerivativeLag.y, gain.u)
+ annotation (Line(points={{39,0},{41.5,0},{44,0}}, color={0,0,127}));
+ connect(add.y, imDerivativeLag.u)
+ annotation (Line(points={{9,0},{12.5,0},{16,0}}, color={0,0,127}));
+ annotation (
+ Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-120,-100},{
+ 120,100}})),
+ Icon(coordinateSystem(extent={{-120,-100},{120,100}}, preserveAspectRatio=
+ true), graphics={Rectangle(extent={{-120,100},{120,-100}},
+ lineColor={28,108,200}),Text(
+ extent={{-112,58},{-66,44}},
+ lineColor={28,108,200},
+ textString="V_S1"),Text(
+ extent={{-120,-42},{-58,-56}},
+ lineColor={28,108,200},
+ textString="V_S2"),Text(
+ extent={{70,10},{118,-6}},
+ lineColor={28,108,200},
+ textString="VOTHSG"),Text(
+ extent={{-62,30},{66,-32}},
+ lineColor={28,108,200},
+ textString="STBSVC")}),
+ Documentation);
+ end STBSVC;
+
+ package BaseClasses
+
+ partial model BasePSS
+ Modelica.Blocks.Interfaces.RealInput V_S2 "PSS input signal 2" annotation (Placement(transformation(extent={{-166,
+ -46},{-154,-34}}), iconTransformation(extent={{-160,
+ -46},{-148,-34}})));
+ Modelica.Blocks.Interfaces.RealInput V_S1 "PSS input signal 1" annotation (Placement(transformation(extent={{-166,34},
+ {-154,46}}), iconTransformation(extent={{-160,34},
+ {-148,46}})));
+ Modelica.Blocks.Interfaces.RealOutput VOTHSG "PSS output" annotation (Placement(transformation(extent={{220,-6},
+ {232,6}}), iconTransformation(extent={{220,-6},
+ {232,6}})));
+ annotation (Icon(coordinateSystem(preserveAspectRatio=false, extent={{-160,
+ -80},{220,80}}), graphics={Rectangle(
+ extent={{-160,80},{220,-80}},
+ lineColor={28,108,200},
+ fillColor={255,255,255},
+ fillPattern=FillPattern.Solid)}),
+ Diagram(coordinateSystem(preserveAspectRatio=
+ false, extent={{-160,-80},{220,80}})));
+ end BasePSS;
+ end BaseClasses;
+ annotation (Documentation);
+ end PSS;
+ annotation (Documentation(info="
+"));
+ end PSSE;
+
+ package CGMES
+ package ES
+ model ExcSEXS "Simplified Excitation System Model from CGMES definition"
+ extends
+ OpenIPSL.Electrical.Controls.PSSE.ES.BaseClasses.BaseExciter;
+ parameter Real T_AT_B
+ "Ta/Tb - gain reduction ratio of lag-lead element (TaTb). Typical Value = 0.1";
+ parameter Real T_B
+ "Denominator time constant of lag-lead block (Tb). Typical Value = 10";
+ parameter Real K "Gain (K) (>0). Typical Value = 100";
+ parameter Real T_E "Time constant of gain block (Te). Typical Value = 0.05";
+ parameter Real K_C "PI controller gain (Kc). Typical Value = 0.08";
+ parameter Real T_C
+ "PI controller phase lead time constant (Tc). Typical Value = 0";
+ parameter Real E_MIN
+ "Minimum field voltage output (Emin). Typical Value = -5";
+ parameter Real E_MAX
+ "Maximum field voltage output (Emax). Typical Value = 5";
+ parameter Real EFD_MAX
+ "Field voltage clipping maximum limit (Efdmax). Typical Value = 5";
+ parameter Real EFD_MIN
+ "Field voltage clipping minimum limit (Efdmin). Typical Value = -5";
+ Modelica.Blocks.Math.Add3 V_erro(
+ k3=1,
+ k1=1,
+ k2=1) annotation (Placement(transformation(extent={{-40,-10},{-20,10}})));
+ NonElectrical.Continuous.SimpleLagLim simpleLagLim(
+ K=K,
+ T=T_E,
+ y_start=Efd0,
+ outMax=E_MAX,
+ outMin=E_MIN)
+ annotation (Placement(transformation(extent={{120,-10},{140,10}})));
+ Modelica.Blocks.Math.Add DiffV1 annotation (Placement(transformation(
+ extent={{-10,-10},{10,10}},
+ rotation=90,
+ origin={-100,-50})));
+ NonElectrical.Continuous.LeadLag leadLag(
+ K=1,
+ T1=T_AT_B*T_B,
+ T2=T_B,
+ y_start=0,
+ x_start=0) annotation (Placement(transformation(extent={{10,-10},{30,10}})));
+ Modelica.Blocks.Nonlinear.Limiter limiter(uMax=EFD_MAX, uMin=EFD_MIN)
+ annotation (Placement(transformation(extent={{160,-10},{180,10}})));
+ Modelica.Blocks.Continuous.TransferFunction transferFunction(
+ initType=Modelica.Blocks.Types.Init.InitialOutput,
+ y_start=Efd0/K,
+ b={K_C*T_C,K_C},
+ a={T_C,0}) annotation (Placement(transformation(extent={{58,-10},{78,10}})));
+ initial equation
+ V_REF = ECOMP0;
+ equation
+ connect(DiffV1.u1, VUEL) annotation (Line(points={{-106,-62},{-106,-80},{-130,
+ -80},{-130,-200}}, color={0,0,127}));
+ connect(DiffV1.u2, VOEL) annotation (Line(points={{-94,-62},{-94,-80},{-70,-80},
+ {-70,-200}}, color={0,0,127}));
+ connect(DiffV1.y, V_erro.u3) annotation (Line(points={{-100,-39},{-100,-20},{
+ -52,-20},{-52,-8},{-42,-8}}, color={0,0,127}));
+ connect(DiffV.y, V_erro.u2)
+ annotation (Line(points={{-99,0},{-42,0}}, color={0,0,127}));
+ connect(V_erro.u1, VOTHSG) annotation (Line(points={{-42,8},{-52,8},{-52,90},
+ {-200,90}}, color={0,0,127}));
+ connect(ECOMP, DiffV.u2) annotation (Line(points={{-200,0},{-166,0},{-132,0},
+ {-132,-6},{-122,-6}}, color={0,0,127}));
+ connect(leadLag.u, V_erro.y)
+ annotation (Line(points={{8,0},{0,0},{-19,0}}, color={0,0,127}));
+ connect(simpleLagLim.y, limiter.u)
+ annotation (Line(points={{141,0},{149.5,0},{158,0}}, color={0,0,127}));
+ connect(limiter.y, EFD)
+ annotation (Line(points={{181,0},{210,0}}, color={0,0,127}));
+ connect(leadLag.y, transferFunction.u)
+ annotation (Line(points={{31,0},{56,0}}, color={0,0,127}));
+ connect(transferFunction.y, simpleLagLim.u)
+ annotation (Line(points={{79,0},{98.5,0},{118,0}}, color={0,0,127}));
+ annotation (
+ Diagram(coordinateSystem(
+ extent={{-200,-200},{200,160}},
+ initialScale=0.1,
+ preserveAspectRatio=false)),
+ Icon(coordinateSystem(extent={{-200,-200},{200,160}}, initialScale=0.1),
+ graphics={Text(
+ extent={{-100,160},{100,100}},
+ lineColor={28,108,200},
+ textString="ExcSEXS")}),
+ Documentation(info="
+
+
+Reference |
+PSS/E Manual |
+
+
+Last update |
+Unknown |
+
+
+Author |
+Mengjia Zhang,SmarTS Lab, KTH Royal Institute of Technology |
+
+
+Contact |
+luigiv@kth.se |
+
+
+"));
+ end ExcSEXS;
+ annotation (Documentation);
+ end ES;
+ annotation (Documentation);
+ end CGMES;
+ annotation (Documentation);
+ end Controls;
+
+ package Loads
+ package PSAT
+ model ExponentialRecovery "Exponential Recovery Load"
+ extends BaseClasses.baseLoad;
+ parameter Real Tp=1 "Active power time constant (s)";
+ parameter Real Tq=1 "Reactive power time constant (s)";
+ parameter Real alpha_s=2 "Static active power exponent";
+ parameter Real alpha_t=1.5 "Dynamic active power exponent";
+ parameter Real beta_s=2 "Static reactive power exponent";
+ parameter Real beta_t=1.5 "Dynamic reactive power exponent";
+ Real ps "Static real power absorption (pu)";
+ Real pt "Transient real power absorption (pu)";
+ Real qs "Static imaginary power absorption (pu)";
+ Real qt "Transient imaginary power absorption (pu)";
+ protected
+ Real xp(start=0);
+ Real xq(start=0);
+ equation
+ der(xp) = (-xp/Tp) + ps - pt;
+ P = xp/Tp + pt;
+ ps = P_0/S_b*(V/V_0)^alpha_s;
+ pt = P_0/S_b*(V/V_0)^alpha_t;
+ der(xq) = (-xq/Tq) + qs - qt;
+ Q = xq/Tq + qt;
+ qs = Q_0/S_b*(V/V_0)^beta_s;
+ qt = Q_0/S_b*(V/V_0)^beta_t;
+ annotation (
+ Icon(coordinateSystem(
+ extent={{-100.0,-100.0},{100.0,100.0}},
+ preserveAspectRatio=true,
+ initialScale=0.1,
+ grid={10,10})),
+ Diagram(coordinateSystem(
+ extent={{-148.5,-105.0},{148.5,105.0}},
+ preserveAspectRatio=true,
+ initialScale=0.1,
+ grid={5,5}), graphics={Rectangle(
+ visible=true,
+ origin={10.0,-2.5},
+ lineColor={0,0,128},
+ fillColor={255,255,255},
+ extent={{-90.0,-82.5},{90.0,82.5}})}),
+ Documentation(info="
+
+
+Reference |
+Exponential Recovery Load, PSAT Manual 2.1.8 |
+
+
+Last update |
+September 2015 |
+
+
+Author |
+Joan Russinol, SmarTS Lab, KTH Royal Institute of Technology |
+
+
+Contact |
+luigiv@kth.se |
+
+
+"));
+ end ExponentialRecovery;
+
+ model FrequencyDependentLoad "Frequency Dependent Load"
+ import Modelica.Constants.pi;
+ extends BaseClasses.baseLoad;
+ parameter Real alpha_p=0 "Active power voltage coefficient";
+ parameter Real alpha_q=0 "Reactive power voltage coefficient";
+ parameter Real beta_p=1.3 "Active power frequency coefficient";
+ parameter Real beta_q=1.3 "Reactive power frequency coefficient";
+ parameter Real Tf=0.1 "Filter time constant (s)";
+ Real deltaw "Frequency deviation (pu)";
+ protected
+ Real a "Auxiliary variable, voltage division";
+ Real x(start=0) "auxiliary variable";
+ initial equation
+ der(x) = 0;
+ equation
+ a = V/V_0;
+ der(x) = -deltaw/Tf;
+ 0 = x + 1/(2*pi*fn)*1/Tf*(Angle_V - angle_0) - deltaw;
+ P = P_0/S_b*a^alpha_p*(1 + deltaw)^beta_p;
+ Q = Q_0/S_b*a^alpha_q*(1 + deltaw)^beta_q;
+ annotation (
+ Icon(coordinateSystem(
+ extent={{-100.0,-100.0},{100.0,100.0}},
+ preserveAspectRatio=true,
+ initialScale=0.1,
+ grid={10,10})),
+ Diagram(coordinateSystem(
+ extent={{-148.5,-105.0},{148.5,105.0}},
+ preserveAspectRatio=true,
+ initialScale=0.1,
+ grid={5,5}), graphics={Rectangle(
+ visible=true,
+ origin={10.0,-2.5},
+ lineColor={0,0,128},
+ fillColor={255,255,255},
+ extent={{-90.0,-82.5},{90.0,82.5}})}),
+ Documentation(info="
+
+
+Reference |
+Frequency Dependent Load, PSAT Manual 2.1.8 |
+
+
+Last update |
+September 2015 |
+
+
+Author |
+Joan Russinol, SmarTS Lab, KTH Royal Institute of Technology |
+
+
+Contact |
+luigiv@kth.se |
+
+
+"));
+ end FrequencyDependentLoad;
+
+ model Mixed_Load "Mixed Load"
+ import Modelica.Constants.pi;
+ extends BaseClasses.baseLoad;
+ parameter Real Kpf=0 "Frequency coefficient for the active power (pu)";
+ parameter Real alpha=0 "Voltage exponent for the active power";
+ parameter Real Tpv=0.12 "Time constant of dV/dt for the active power (s)";
+ parameter Real Kqf=0 "Frequency coefficient for the reactive power (pu)";
+ parameter Real beta=0 "Voltage exponent for the reactive power";
+ parameter Real Tqv=0.075 "Time constant of dV/dt for the reactive power (s)";
+ parameter Real Tfv=0.005 "Time constant of voltage magnitude filter (s)";
+ parameter Real Tft=0.007 "Time constant of voltage angle filter (s)";
+ Real deltaw "Frequency deviation (pu)";
+ protected
+ Real a "Auxiliary variable, voltage division";
+ Real b "Auxiliary variable, derivation";
+ Real x(start=-V_0/Tfv);
+ Real y(start=0);
+ equation
+ a = V/V_0;
+ der(x) = ((-V/Tfv) - x)/Tfv;
+ b = x + V/Tfv;
+ der(y) = -1/Tft*(1/(2*pi*fn*Tft)*(Angle_V - angle_0) + y);
+ deltaw = y + 1/(2*pi*fn*Tft)*(Angle_V - angle_0);
+ P = Kpf*deltaw + P_0/S_b*(a^alpha + Tpv*b);
+ Q = Kqf*deltaw + Q_0/S_b*(a^beta + Tqv*b);
+ annotation (
+ Icon(coordinateSystem(
+ extent={{-100.0,-100.0},{100.0,100.0}},
+ preserveAspectRatio=true,
+ initialScale=0.1,
+ grid={10,10})),
+ Diagram(coordinateSystem(
+ extent={{-148.5,-105.0},{148.5,105.0}},
+ preserveAspectRatio=true,
+ initialScale=0.1,
+ grid={5,5})),
+ Documentation(info="
+
+
+Reference |
+Mixed Load, PSAT Manual 2.1.8 |
+
+
+Last update |
+September 2015 |
+
+
+Author |
+Joan Russinol, SmarTS Lab, KTH Royal Institute of Technology |
+
+
+Contact |
+luigiv@kth.se |
+
+
+
+
+Remember: Pz+Pi+Pp=1 and Qz+Qi+Qp=1;
+"));
+ end Mixed_Load;
+
+ model VoltDependant "Voltage Dependent Load"
+ extends BaseClasses.baseLoad;
+ parameter Real alphap=2.0 "Active power exponent";
+ parameter Real alphaq=2.0 "Reactive power exponent";
+ protected
+ Real a "Auxiliary variable, voltage division";
+ equation
+ a = V/V_0;
+ P = P_0/S_b*a^alphap;
+ Q = Q_0/S_b*a^alphaq;
+ annotation (Icon(coordinateSystem(
+ extent={{-100.0,-100.0},{100.0,100.0}},
+ preserveAspectRatio=true,
+ initialScale=0.1,
+ grid={10,10})), Documentation(info="
+
+
+Reference |
+Voltage Dependent Load, PSAT Manual 2.1.8 |
+
+
+Last update |
+September 2015 |
+
+
+Author |
+Joan Russinol, SmarTS Lab, KTH Royal Institute of Technology |
+
+
+Contact |
+luigiv@kth.se |
+
+
+"));
+ end VoltDependant;
+
+ model ZIP "ZIP Load"
+ extends BaseClasses.baseLoad;
+ parameter Real Pz=0.33 "Conductance (pu)";
+ parameter Real Pi=0.33 "Active current (pu)";
+ parameter Real Pp=1 - Pz - Pi "Active power (pu)";
+ parameter Real Qz=0.33 "Susceptance (pu)";
+ parameter Real Qi=0.33 "Reactive current (pu)";
+ parameter Real Qp=1 - Qz - Qi "Reactive power (pu)";
+ protected
+ Real a "Auxiliary variable, voltage division";
+ equation
+ a = V/V_0;
+ P = P_0/S_b*(Pz*a^2 + Pi*a + Pp);
+ Q = Q_0/S_b*(Qz*a^2 + Qi*a + Qp);
+ annotation (
+ Icon(coordinateSystem(
+ extent={{-100.0,-100.0},{100.0,100.0}},
+ preserveAspectRatio=true,
+ initialScale=0.1,
+ grid={10,10})),
+ Diagram(coordinateSystem(
+ extent={{-148.5,-105.0},{148.5,105.0}},
+ preserveAspectRatio=true,
+ initialScale=0.1,
+ grid={5,5})),
+ Documentation(info="
+
+
+Reference |
+ZIP Load, PSAT Manual 2.1.8 |
+
+
+Last update |
+September 2015 |
+
+
+Author |
+Joan Russinol, SmarTS Lab, KTH Royal Institute of Technology |
+
+
+Contact |
+luigiv@kth.se |
+
+
+"));
+ end ZIP;
+
+ model ZIP_Jimma "Jimma's Load"
+ extends BaseClasses.baseLoad;
+ parameter Real Tf=0.01 "Time constant of the high-pass filter (s)";
+ parameter Real Pz=0.33 "Conductance";
+ parameter Real Pi=0.33 "Active current";
+ parameter Real Pp=1 - Pz - Pi "Active power";
+ parameter Real Qz=0.33 "Susceptance";
+ parameter Real Qi=0.33 "Reactive current";
+ parameter Real Qp=1 - Qz - Qi "Reactive power";
+ parameter Real Kv=100 "coefficient of the voltage time derivative (1/s)";
+ protected
+ Real a "Auxiliary variable, voltage division";
+ Real b "Auxiliary variable, derivation";
+ Real x(start=0);
+ initial equation
+ der(x) = 0;
+ equation
+ a = V/V_0;
+ der(x) = ((-V/Tf) - x)/Tf;
+ b = x + V/Tf;
+ P = P_0/S_b*(Pz*a^2 + Pi*a + Pp);
+ Q = Q_0/S_b*(Qz*a^2 + Qi*a + Qp + Kv*b);
+ annotation (
+ Icon(coordinateSystem(
+ extent={{-100.0,-100.0},{100.0,100.0}},
+ preserveAspectRatio=true,
+ initialScale=0.1,
+ grid={10,10})),
+ Diagram(coordinateSystem(
+ extent={{-148.5,-105.0},{148.5,105.0}},
+ preserveAspectRatio=true,
+ initialScale=0.1,
+ grid={5,5})),
+ Documentation(info="
+
+
+Reference |
+Jimma's Load, PSAT Manual 2.1.8 |
+
+
+Last update |
+September 2015 |
+
+
+Author |
+Joan Russinol, SmarTS Lab, KTH Royal Institute of Technology |
+
+
+Contact |
+luigiv@kth.se |
+
+
+
+
+Remember: Pz+Pi+Pp=1 and Qz+Qi+Qp=1
+"));
+ end ZIP_Jimma;
+
+ model ZIP_ExtInput "PSAT ZIP load with additionnal input"
+ extends OpenIPSL.Electrical.Loads.PSAT.BaseClasses.baseLoad;
+ parameter Real Pz=0.33 "Conductance (pu)";
+ parameter Real Pi=0.33 "Active current (pu)";
+ parameter Real Pp=1 - Pz - Pi "Active power (pu)";
+ parameter Real Qz=0.33 "Susceptance (pu)";
+ parameter Real Qi=0.33 "Reactive current (pu)";
+ parameter Real Qp=1 - Qz - Qi "Reactive power (pu)";
+ protected
+ Real a "Auxiliary variable, voltage division";
+ public
+ Modelica.Blocks.Interfaces.RealInput u annotation (Placement(transformation(
+ extent={{48,16},{88,56}}), iconTransformation(extent={{-100,36},{-62,
+ 74}})));
+
+ equation
+ a = V/V_0;
+ P = P_0/S_b*(Pz*a^2 + Pi*a + Pp) + u;
+ Q = Q_0/S_b*(Qz*a^2 + Qi*a + Qp);
+
+ annotation (
+ Documentation(info="
+
+
+Reference |
+PSS/E Manual |
+
+
+Last update |
+Unknown |
+
+
+Author |
+Mengjia Zhang,SmarTS Lab, KTH Royal Institute of Technology |
+
+
+Contact |
+luigiv@kth.se |
+
+
+"));
+ end ZIP_ExtInput;
+
+ model LOADPQ "Constant PQ Load"
+ extends BaseClasses.baseLoad;
+ parameter Modelica.SIunits.PerUnit Vmax=1.2 "maximum voltage"
+ annotation (Evaluate=true, Dialog(tab="To Be Implemented"));
+ parameter Modelica.SIunits.PerUnit Vmin=0.8 "minimum voltage"
+ annotation (Evaluate=true, Dialog(tab="To Be Implemented"));
+ parameter Boolean forcePQ=true
+ "force constant PQ-load, false may cause simulation problems" annotation (
+ Evaluate=true,
+ choices(checkBox=true),
+ Dialog(tab="To Be Implemented"));
+ equation
+ if forcePQ or initial() then
+ P = P_0/S_b;
+ Q = Q_0/S_b;
+ elseif (V > Vmax) then
+ // needs a better implementation
+ P = P_0*V^2/(Vmax^2)/S_b;
+ Q = Q_0*V^2/(Vmax^2)/S_b;
+ elseif (V < Vmin) then
+ P = P_0*V^2/Vmin^2/S_b;
+ Q = Q_0*V^2/(Vmin^2)/S_b;
+ else
+ P = P_0/S_b;
+ Q = Q_0/S_b;
+ end if;
+
+ annotation (
+ Icon(coordinateSystem(
+ extent={{-100.0,-100.0},{100.0,100.0}},
+ preserveAspectRatio=true,
+ initialScale=0.1,
+ grid={10,10})),
+ Diagram(coordinateSystem(
+ extent={{-148.5,-105.0},{148.5,105.0}},
+ preserveAspectRatio=true,
+ initialScale=0.1,
+ grid={5,5})),
+ Documentation(info="
+
+
+Reference |
+No Reference identified |
+
+
+Last update |
+September 2015 |
+
+
+Author |
+Joan Russinol, SmarTS Lab, KTH Royal Institute of Technology |
+
+
+Contact |
+luigiv@kth.se |
+
+
+
+
+Equations come from the mathematical separation in between reals and imaginary of S=P+jQ=UI*
+"));
+ end LOADPQ;
+
+ model LOADPQ_variation
+ "Equations come from the mathematical separation in between reals and imaginary of S=P+jQ=UI*"
+ extends BaseClasses.baseLoad;
+ parameter Modelica.SIunits.Time t_start_1=1
+ "Start time of first load variation (s)"
+ annotation (Dialog(group="Variation 1"));
+ parameter Modelica.SIunits.Time t_end_1=2
+ "End time of first load variation (s)"
+ annotation (Dialog(group="Variation 1"));
+ parameter OpenIPSL.Types.ActivePowerMega dP1=0
+ "First active load variation (MW)"
+ annotation (Dialog(group="Variation 1"));
+ parameter OpenIPSL.Types.ReactivePowerMega dQ1=0
+ "First reactive load variation (Mvar)"
+ annotation (Dialog(group="Variation 1"));
+ parameter Modelica.SIunits.Time t_start_2=2
+ "Start time of second Load variation (s)"
+ annotation (Dialog(group="Variation 2"));
+ parameter Modelica.SIunits.Time t_end_2=3
+ "End time of second load variation (s)"
+ annotation (Dialog(group="Variation 2"));
+ parameter OpenIPSL.Types.ActivePowerMega dP2=0
+ "Second active load variation (MW)"
+ annotation (Dialog(group="Variation 2"));
+ parameter OpenIPSL.Types.ReactivePowerMega dQ2=0
+ "Second reactive load variation (Mvar)"
+ annotation (Dialog(group="Variation 2"));
+ parameter Modelica.SIunits.PerUnit Vmax=1.2 "maximum voltage (pu)"
+ annotation (Evaluate=true, Dialog(tab="To Be Implemented"));
+ parameter Modelica.SIunits.PerUnit Vmin=0.8 "minimum voltage (pu)"
+ annotation (Evaluate=true, Dialog(tab="To Be Implemented"));
+ parameter Boolean forcePQ=true
+ "force ''constant'' PQ-load, false may cause simulation problems"
+ annotation (
+ Evaluate=true,
+ choices(checkBox=true),
+ Dialog(tab="To Be Implemented"));
+ protected
+ Modelica.SIunits.PerUnit Pd(start=P_0/S_b) "active
+ power demand";
+ Modelica.SIunits.PerUnit Qd(start=Q_0/S_b) "reactive power demand";
+ equation
+ // forcePQ=false needs better implementation
+ if forcePQ or initial() then
+ P = Pd;
+ Q = Qd;
+ elseif noEvent(V > Vmax) then
+ P = Pd*V^2/(Vmax^2)/S_b;
+ Q = Qd*V^2/(Vmax^2)/S_b;
+ elseif noEvent(V < Vmin) then
+ P = Pd*V^2/Vmin^2/S_b;
+ Q = Qd*V^2/(Vmin^2)/S_b;
+ else
+ P = Pd;
+ Q = Qd;
+ end if;
+ if time >= t_start_1 and time < t_end_1 then
+ Pd = (P_0 + dP1)/S_b;
+ Qd = (Q_0 + dQ1)/S_b;
+ elseif time >= t_start_2 and time < t_end_2 then
+ Pd = (P_0 + dP2)/S_b;
+ Qd = (Q_0 + dQ2)/S_b;
+ else
+ Pd = P_0/S_b;
+ Qd = Q_0/S_b;
+ end if;
+ annotation (
+ Icon(coordinateSystem(
+ extent={{-100.0,-100.0},{100.0,100.0}},
+ preserveAspectRatio=true,
+ initialScale=0.1,
+ grid={10,10})),
+ Diagram(coordinateSystem(
+ extent={{-148.5,-105.0},{148.5,105.0}},
+ preserveAspectRatio=true,
+ initialScale=0.1,
+ grid={5,5})),
+ Documentation);
+ end LOADPQ_variation;
+
+ package BaseClasses
+ partial model baseLoad
+ import Modelica.Constants.pi;
+ extends OpenIPSL.Electrical.Essentials.pfComponent;
+ parameter OpenIPSL.Types.ApparentPowerMega Sn=S_b
+ "Power rating (MVA)";
+ Modelica.SIunits.PerUnit V(start=V_0) "Voltage magnitude (pu)";
+ Modelica.SIunits.Angle Angle_V(start=Modelica.SIunits.Conversions.from_deg(
+ angle_0)) "voltage angle (rad)";
+ Modelica.SIunits.PerUnit P(start=P_0/S_b) "Active power (pu)";
+ Modelica.SIunits.PerUnit Q(start=Q_0/S_b) "Reactive power (pu)";
+ Interfaces.PwPin p(vr(start=V_0*cos(angle_0rad)),vi(start=V_0*sin(angle_0rad)))
+ annotation (Placement(transformation(extent={{-10,90},{10,110}})));
+ protected
+ parameter Modelica.SIunits.Angle angle_0rad=
+ Modelica.SIunits.Conversions.from_deg(angle_0);
+ parameter Real CoB=Sn/S_b "Change of base between Machine and System";
+ equation
+ P = p.vr*p.ir + p.vi*p.ii;
+ Q = p.vi*p.ir - p.vr*p.ii;
+ V = sqrt(p.vr^2 + p.vi^2);
+ Angle_V = atan2(p.vi, p.vr);
+ annotation (Icon(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},
+ {100,100}}), graphics={Line(points={{-100,100},{100,100},{0,-100},{
+ -100,100}}, color={28,108,200}),Text(
+ extent={{-60,80},{60,40}},
+ lineColor={28,108,200},
+ textString="%P_0+j%Q_0"),Text(
+ extent={{-150,-110},{150,-150}},
+ lineColor={0,0,255},
+ textString="%name")}), Documentation);
+ end baseLoad;
+ annotation (Documentation);
+ end BaseClasses;
+ annotation (Documentation);
+ end PSAT;
+
+ package PSSE "Load models from PSSE components"
+ model Load "PSS/E Load"
+ extends BaseClasses.baseLoad;
+ equation
+ kI*S_I.re*v + S_Y.re*v^2 + kP*S_P.re = p.vr*p.ir + p.vi*p.ii;
+ kI*S_I.im*v + S_Y.im*v^2 + kP*S_P.im = (-p.vr*p.ii) + p.vi*p.ir;
+ annotation (Documentation(info="
+
+
+Reference |
+PSS/E Manual |
+
+
+Last update |
+Unknown |
+
+
+Author |
+Mengjia Zhang,SmarTS Lab, KTH Royal Institute of Technology |
+
+
+Contact |
+luigiv@kth.se |
+
+
+"));
+ end Load;
+
+ model Load_switch "PSS/E Load"
+ extends OpenIPSL.Electrical.Loads.PSSE.BaseClasses.baseLoad;
+ parameter Modelica.SIunits.Time t1 "Time of switching on";
+ parameter Modelica.SIunits.Time t2 "Time of switching off";
+ equation
+ if time >= t1 and time < t2 then
+ kI*S_I.re*v + S_Y.re*v^2 + kP*S_P.re = p.vr*p.ir + p.vi*p.ii;
+ kI*S_I.im*v + S_Y.im*v^2 + kP*S_P.im = (-p.vr*p.ii) + p.vi*p.ir;
+ else
+ p.ir = 0;
+ p.ii = 0;
+ end if;
+ annotation (Documentation(info="
+
+
+Reference |
+PSS/E Manual |
+
+
+Last update |
+Unknown |
+
+
+Author |
+Mengjia Zhang,SmarTS Lab, KTH Royal Institute of Technology |
+
+
+Contact |
+luigiv@kth.se |
+
+
+"));
+ end Load_switch;
+
+ model Load_variation "PSS/E Load with variation"
+ extends BaseClasses.baseLoad;
+ parameter Real d_P "Active Load Variation (pu)";
+ parameter Modelica.SIunits.Time t1 "Time of Load Variation";
+ parameter Modelica.SIunits.Time d_t "Time duration of load variation";
+ protected
+ parameter Real PF=if q0 == 0 then 1 else p0/q0;
+ parameter Real d_Q=(p0 + d_P)/PF - q0;
+ equation
+ if time >= t1 and time <= t1 + d_t then
+ kI*S_I.re*v + S_Y.re*v^2 + kP*(S_P.re + d_P) = p.vr*p.ir + p.vi*p.ii;
+ kI*S_I.im*v + S_Y.im*v^2 + kP*(S_P.im + d_Q) = (-p.vr*p.ii) + p.vi*p.ir;
+ else
+ kI*S_I.re*v + S_Y.re*v^2 + kP*S_P.re = p.vr*p.ir + p.vi*p.ii;
+ kI*S_I.im*v + S_Y.im*v^2 + kP*S_P.im = (-p.vr*p.ii) + p.vi*p.ir;
+ end if;
+ annotation (Documentation(info="
+
+
+Reference |
+PSS/E Manual |
+
+
+Last update |
+Unknown |
+
+
+Author |
+Mengjia Zhang,SmarTS Lab, KTH Royal Institute of Technology |
+
+
+Contact |
+luigiv@kth.se |
+
+
+"));
+ end Load_variation;
+
+ model Load_ExtInput "PSS/E Load with variation"
+ extends OpenIPSL.Electrical.Loads.PSSE.BaseClasses.baseLoad;
+ parameter Real d_P "Active Load Variation (pu)";
+ parameter Modelica.SIunits.Time t1 "Time of Load Variation";
+ parameter Modelica.SIunits.Time d_t "Time duration of load variation";
+ protected
+ parameter Real PF=if q0 == 0 then 1 else p0/q0;
+ parameter Real d_Q=(p0 + d_P)/PF - q0;
+ public
+ Modelica.Blocks.Interfaces.RealInput u annotation (Placement(transformation(
+ extent={{48,16},{88,56}}), iconTransformation(extent={{-100,36},{-62,
+ 74}})));
+ equation
+ if time >= t1 and time <= t1 + d_t then
+ kI*S_I.re*v + S_Y.re*v^2 + kP*(S_P.re + d_P) + u = p.vr*p.ir + p.vi*p.ii;
+ kI*S_I.im*v + S_Y.im*v^2 + kP*(S_P.im + d_Q) = (-p.vr*p.ii) + p.vi*p.ir;
+ else
+ kI*S_I.re*v + S_Y.re*v^2 + kP*S_P.re + u = p.vr*p.ir + p.vi*p.ii;
+ kI*S_I.im*v + S_Y.im*v^2 + kP*S_P.im = (-p.vr*p.ii) + p.vi*p.ir;
+ end if;
+ annotation (
+ Documentation(info="
+
+
+Reference |
+PSS/E Manual |
+
+
+Last update |
+Unknown |
+
+
+Author |
+Mengjia Zhang,SmarTS Lab, KTH Royal Institute of Technology |
+
+
+Contact |
+luigi.vanfretti@gmail.com |
+
+
+"));
+ end Load_ExtInput;
+
+ package BaseClasses
+ partial model baseLoad
+ import Modelica.Constants.pi;
+ import Modelica.ComplexMath.j;
+ extends OpenIPSL.Electrical.Essentials.pfComponent;
+ parameter Complex S_p=P_0 + j*Q_0
+ "Consumption of original constant power load (MVA)";
+ parameter Complex S_i=0 + j*0
+ "Consumption of original constant current load (MVA)";
+ parameter Complex S_y=0 + j*0
+ "Consumption of original constant shunt admittance load (MVA)";
+ parameter Complex a=1 + j*0
+ "Load transfer fraction for constant current load";
+ parameter Complex b=0 + j*1
+ "Load transfer fraction for constant shunt admittance load";
+ parameter Real PQBRAK=0.7 "Constant power characteristic threshold";
+ parameter Integer characteristic=1 annotation (choices(choice=1, choice=2));
+ OpenIPSL.Interfaces.PwPin p(
+ vr(start=vr0),
+ vi(start=vi0),
+ ir(start=ir0),
+ ii(start=ii0)) annotation (Placement(transformation(extent={{-10,
+ 90},{10,110}})));
+ Modelica.SIunits.Angle angle(start=anglev_rad) "Bus voltage angle";
+ Real v(start=V_0) "Bus voltage magnitude (pu)";
+ Real P "Active power consumption (pu)";
+ Real Q "Reactive power consumption (pu)";
+ protected
+ parameter Modelica.SIunits.Angle anglev_rad=angle_0*pi/180;
+ parameter Real p0=(S_i.re*V_0 + S_y.re*V_0^2 + S_p.re)/S_b "pu";
+ parameter Real q0=(S_i.im*V_0 + S_y.im*V_0^2 + S_p.im)/S_b "pu";
+ parameter Real vr0=V_0*cos(anglev_rad) "Initialitation";
+ parameter Real vi0=V_0*sin(anglev_rad) "Initialitation";
+ parameter Real ir0=(p0*vr0 + q0*vi0)/(vr0^2 + vi0^2) "Initialitation";
+ parameter Real ii0=(p0*vi0 - q0*vr0)/(vr0^2 + vi0^2) "Initialitation";
+ parameter Complex S_P=Complex((1 - a.re - b.re)*S_p.re, (1 - a.im - b.im)*S_p.im)
+ /S_b "pu";
+ parameter Complex S_I=(S_i + Complex(a.re*S_p.re/V_0, a.im*S_p.im/V_0))/S_b
+ "pu";
+ parameter Complex S_Y=(S_y + Complex(b.re*S_p.re/V_0^2, b.im*S_p.im/V_0^2))/
+ S_b "pu";
+ //Constant current load vary function when voltage is below 0.5
+ parameter Real a2=1.502;
+ parameter Real b2=1.769;
+ //Constant Power load vary function when voltage is below 0.5
+ parameter Real a0=0.4881;
+ parameter Real a1=-0.4999;
+ parameter Real b1=0.1389;
+ parameter Real wp=3.964;
+ protected
+ Real kP(start=1);
+ Real kI(start=1);
+ equation
+ P = p.vr*p.ir + p.vi*p.ii;
+ Q = (-p.vr*p.ii) + p.vi*p.ir;
+ angle = atan2(p.vi, p.vr);
+ v = sqrt(p.vr^2 + p.vi^2);
+ //Voltage dependancy characteristic
+ if characteristic == 1 then
+ if v < PQBRAK/2 and v > 0 then
+ kP = 2*(v/PQBRAK)^2;
+ kI = 1;
+ elseif v > PQBRAK/2 and v < PQBRAK then
+ kP = 1 - 2*((v - PQBRAK)/PQBRAK)^2;
+ kI = 1;
+ else
+ kP = 1;
+ kI = 1;
+ end if;
+ else
+ if v < PQBRAK then
+ kP = a0 + a1*cos(v*wp) + b1*sin(v*wp);
+ else
+ kP = 1;
+ end if;
+ if v < 0.5 then
+ kI = a2*b2*v^(b2 - 1)*exp(-a2*v^b2);
+ else
+ kI = 1;
+ end if;
+ end if;
+ annotation (Icon(coordinateSystem(
+ preserveAspectRatio=false,
+ extent={{-100,-100},{100,100}},
+ initialScale=0.1), graphics={Line(points={{-100,100},{100,100},{0,-100},
+ {-100,100}}, color={28,108,200}),Text(
+ extent={{-60,80},{60,40}},
+ lineColor={28,108,200},
+ textString="%P_0+j%Q_0"),Text(
+ extent={{-150,-110},{150,-150}},
+ lineColor={0,0,255},
+ textString="%name")}), Documentation);
+ end baseLoad;
+ annotation (Documentation);
+ end BaseClasses;
+ annotation (Documentation);
+ end PSSE;
+
+ package NoiseInjections "Noise injection models"
+
+ partial model BaseClass
+
+ // Parameters to be used by the nois generators
+ parameter Real active_mu=0 "Expectation value active power noise";
+ parameter Real active_sigma=0.01 "Standard deviation active power noise";
+
+ parameter Real samplePeriod=0.02 "Sample period";
+
+ Modelica.Blocks.Noise.NormalNoise noise_gen(
+ mu=active_mu,
+ samplePeriod=samplePeriod,
+ sigma=active_sigma) annotation (Placement(visible=true, transformation(
+ origin={20,62},
+ extent={{-10,-10},{10,10}},
+ rotation=0)));
+ Modelica.Blocks.Interfaces.RealOutput y annotation (Placement(transformation(
+ extent={{40,0},{64,24}}), iconTransformation(extent={{96,-14},{122,12}})));
+ annotation (Icon(graphics={Ellipse(
+ fillColor={255,255,255},
+ fillPattern=FillPattern.Solid,
+ extent={{-100,100},{100,-100}},
+ endAngle=360),Line(
+ origin={30,0},
+ points={{-100,0},{-80,0},{-70,40},{-60,-20},{-50,20},{-28,-40},{-10,
+ 40},{0,-20},{12,20},{20,0},{40,0},{40,0}},
+ thickness=2)}));
+ end BaseClass;
+
+ model WhiteNoiseInjection
+ extends BaseClass(noise_gen(startTime=0.1));
+
+ equation
+ y = noise_gen.y;
+ annotation ();
+ end WhiteNoiseInjection;
+
+ model WienerProcessInjection
+ extends BaseClass;
+
+ initial equation
+ y = 0;
+
+ equation
+ der(y) = noise_gen.y;
+ end WienerProcessInjection;
+
+ model SineNoiseInjection
+ extends BaseClass;
+ parameter Real amplitude=1 "Amplitude of sine wave";
+ parameter Modelica.SIunits.Frequency freqHz(start=1) "Frequency of sine wave";
+ parameter Modelica.SIunits.Angle phase=0 "Phase of sine wave";
+ parameter Real offset=0 "Offset of output signal";
+ parameter Modelica.SIunits.Time startTime=0
+ "Output = offset for time < startTime";
+
+ Modelica.Blocks.Sources.Sine sine(
+ amplitude=amplitude,
+ freqHz=freqHz,
+ phase=phase,
+ offset=offset,
+ startTime=startTime)
+ annotation (Placement(transformation(extent={{10,12},{30,32}})));
+ equation
+ y = noise_gen.y + sine.y;
+ end SineNoiseInjection;
+ annotation ();
+ end NoiseInjections;
+ annotation (Documentation);
+ end Loads;
+
+ package Banks
+ model PwCapacitorBankWithModification "Capacitor Bank with Bank modification at time t1.
+ 2014/03/10"
+ OpenIPSL.Interfaces.PwPin p
+ annotation (Placement(transformation(extent={{-10,90},{10,110}})));
+ parameter Real nsteps "number of steps";
+ parameter Real Go "active losses (pu) in each element";
+ parameter Real Bo "reactive power (pu) in each element";
+ parameter Real t1 "time for Bank Modification";
+ parameter Real nmod "number of step to switch on/off (+/-)";
+ Real G;
+ Real B;
+ Real nt;
+ equation
+ if time > t1 then
+ nt = nsteps + nmod;
+ else
+ nt = nsteps;
+ end if;
+ G = nt*Go;
+ B = nt*Bo;
+ p.vr = (p.ir*G + p.ii*B)/(G*G + B*B);
+ p.vi = ((-p.ir*B) + p.ii*G)/(G*G + B*B);
+ annotation (Icon(graphics={Rectangle(extent={{-100,100},{100,-100}},
+ lineColor={0,0,255}),Line(
+ points={{0,90},{0,60}},
+ color={0,0,255},
+ smooth=Smooth.None),Line(
+ points={{-60,60},{60,60}},
+ color={0,0,255},
+ smooth=Smooth.None),Line(
+ points={{-60,40},{60,40}},
+ color={0,0,255},
+ smooth=Smooth.None),Line(
+ points={{-60,-60},{60,-60}},
+ color={0,0,255},
+ smooth=Smooth.None),Line(
+ points={{-68,-80},{-48,-60}},
+ color={0,0,255},
+ smooth=Smooth.None),Line(
+ points={{-50,-80},{-30,-60}},
+ color={0,0,255},
+ smooth=Smooth.None),Line(
+ points={{-30,-80},{-10,-60}},
+ color={0,0,255},
+ smooth=Smooth.None),Line(
+ points={{-10,-80},{10,-60}},
+ color={0,0,255},
+ smooth=Smooth.None),Line(
+ points={{12,-80},{32,-60}},
+ color={0,0,255},
+ smooth=Smooth.None),Line(
+ points={{30,-80},{50,-60}},
+ color={0,0,255},
+ smooth=Smooth.None),Line(
+ points={{-60,-20},{60,-20}},
+ color={0,0,255},
+ smooth=Smooth.None),Line(
+ points={{-60,0},{60,0}},
+ color={0,0,255},
+ smooth=Smooth.None),Line(
+ points={{0,40},{0,0}},
+ color={0,0,255},
+ smooth=Smooth.None),Line(
+ points={{0,-20},{0,-60}},
+ color={0,0,255},
+ smooth=Smooth.None),Text(
+ extent={{-100,-100},{100,-140}},
+ lineColor={0,0,255},
+ textString="%name")}), Documentation);
+ end PwCapacitorBankWithModification;
+
+ model PwCapacitorBank "Capacitor Bank with Bank.2013"
+ OpenIPSL.Interfaces.PwPin p
+ annotation (Placement(transformation(extent={{-10,90},{10,110}})));
+ parameter Real nsteps "number of steps";
+ parameter Real G=0;
+ parameter Real B=0;
+ equation
+ p.vr = (p.ir*G + p.ii*B)/(G*G + B*B);
+ p.vi = ((-p.ir*B) + p.ii*G)/(G*G + B*B);
+ annotation (Icon(graphics={Rectangle(extent={{-100,100},{100,-100}},
+ lineColor={0,0,255}),Line(
+ points={{0,90},{0,60}},
+ color={0,0,255},
+ smooth=Smooth.None),Line(
+ points={{-60,60},{60,60}},
+ color={0,0,255},
+ smooth=Smooth.None),Line(
+ points={{-60,40},{60,40}},
+ color={0,0,255},
+ smooth=Smooth.None),Line(
+ points={{-60,-60},{60,-60}},
+ color={0,0,255},
+ smooth=Smooth.None),Line(
+ points={{-68,-80},{-48,-60}},
+ color={0,0,255},
+ smooth=Smooth.None),Line(
+ points={{-50,-80},{-30,-60}},
+ color={0,0,255},
+ smooth=Smooth.None),Line(
+ points={{-30,-80},{-10,-60}},
+ color={0,0,255},
+ smooth=Smooth.None),Line(
+ points={{-10,-80},{10,-60}},
+ color={0,0,255},
+ smooth=Smooth.None),Line(
+ points={{12,-80},{32,-60}},
+ color={0,0,255},
+ smooth=Smooth.None),Line(
+ points={{30,-80},{50,-60}},
+ color={0,0,255},
+ smooth=Smooth.None),Line(
+ points={{-60,-20},{60,-20}},
+ color={0,0,255},
+ smooth=Smooth.None),Line(
+ points={{-60,0},{60,0}},
+ color={0,0,255},
+ smooth=Smooth.None),Line(
+ points={{0,40},{0,0}},
+ color={0,0,255},
+ smooth=Smooth.None),Line(
+ points={{0,-20},{0,-60}},
+ color={0,0,255},
+ smooth=Smooth.None),Text(
+ extent={{-100,-100},{100,-140}},
+ lineColor={0,0,255},
+ textString="%name")}), Documentation);
+ end PwCapacitorBank;
+
+ model PwShuntC "Shunt capacitor"
+ OpenIPSL.Interfaces.PwPin p
+ annotation (Placement(transformation(extent={{-10,90},{10,110}})));
+ constant Real pi=Modelica.Constants.pi;
+ parameter Real Qnom
+ "Reactive power produced by the shunt capacitor under 1 p.u voltage, Mvar";
+ parameter Real Vbase "Base voltage of the bus, kV";
+ parameter Real fn=50 "Frequency rating, Hz";
+ Real Zbase;
+ Real C "Capacitance in p.u";
+ Real v;
+ Real anglev;
+ Real i;
+ Real anglei;
+ equation
+ v = sqrt(p.vr^2 + p.vi^2);
+ anglev = atan2(p.vi, p.vr);
+ i = sqrt(p.ir^2 + p.ii^2);
+ anglei = atan2(p.ii, p.ir);
+ Zbase = Vbase^2/Qnom;
+ C = Qnom/(Vbase^2*2*pi*fn*Zbase) "S=U*I";
+ anglei = anglev + pi/2;
+ i = v*2*pi*fn*C "I=U/Z";
+ annotation (Icon(coordinateSystem(extent={{-100,-100},{100,100}},
+ initialScale=0.1), graphics={Rectangle(extent={{-100,100},{100,-100}},
+ lineColor={0,0,255}),Line(
+ points={{0,90},{0,10}},
+ color={0,0,255},
+ smooth=Smooth.None),Line(
+ points={{-60,10},{60,10}},
+ color={0,0,255},
+ smooth=Smooth.None),Line(
+ points={{-60,-10},{60,-10}},
+ color={0,0,255},
+ smooth=Smooth.None),Line(
+ points={{-60,-60},{60,-60}},
+ color={0,0,255},
+ smooth=Smooth.None),Line(
+ points={{-68,-80},{-48,-60}},
+ color={0,0,255},
+ smooth=Smooth.None),Line(
+ points={{-50,-80},{-30,-60}},
+ color={0,0,255},
+ smooth=Smooth.None),Line(
+ points={{-30,-80},{-10,-60}},
+ color={0,0,255},
+ smooth=Smooth.None),Line(
+ points={{-10,-80},{10,-60}},
+ color={0,0,255},
+ smooth=Smooth.None),Line(
+ points={{12,-80},{32,-60}},
+ color={0,0,255},
+ smooth=Smooth.None),Line(
+ points={{30,-80},{50,-60}},
+ color={0,0,255},
+ smooth=Smooth.None),Line(points={{0,-60},{0,-10}}, color={0,0,255}),
+ Text(
+ extent={{-100,-100},{100,-140}},
+ lineColor={0,0,255},
+ textString="%name")}), Documentation);
+ end PwShuntC;
+
+ model PwShuntR "Shunt inductor"
+ OpenIPSL.Interfaces.PwPin p
+ annotation (Placement(transformation(extent={{-10,90},{10,110}})));
+ constant Real pi=Modelica.Constants.pi;
+ parameter Real Qnom=75
+ "Reactive power produced by the shunt inductor under 1 p.u voltage, -Mvar";
+ parameter Real Vbase=138 "Base volatage of the bus, kV";
+ parameter Real fn=50 "Frequency rating, Hz";
+ Real Zbase;
+ Real L "Inductance in p.u";
+ Real v;
+ Real anglev;
+ Real i;
+ Real anglei;
+ equation
+ v = sqrt(p.vr^2 + p.vi^2);
+ anglev = atan2(p.vi, p.vr);
+ i = sqrt(p.ir^2 + p.ii^2);
+ anglei = atan2(p.ii, p.ir);
+ Zbase = Vbase^2/(-Qnom);
+ L = Vbase^2/(2*pi*fn*(-Qnom)*Zbase) "S=U*I";
+ anglei = anglev - pi/2;
+ i = v/(2*pi*fn*L) "I=U/Z";
+ annotation (Icon(coordinateSystem(extent={{-100,-100},{100,100}},
+ initialScale=0.1), graphics={Rectangle(extent={{-100,100},{100,-100}},
+ lineColor={0,0,255}),Line(
+ points={{-15.5,-9},{-15.5,-1},{-11.5,7},{-3.5,11},{6.5,9},{12.5,1},{
+ 12.5,-9}},
+ color={0,0,255},
+ smooth=Smooth.Bezier,
+ origin={-9,59.5},
+ rotation=90),Line(
+ points={{-15.5,-9},{-15.5,-1},{-11.5,7},{-3.5,11},{6.5,9},{12.5,1},{
+ 12.5,-9}},
+ color={0,0,255},
+ smooth=Smooth.Bezier,
+ origin={-9,31.5},
+ rotation=90),Line(
+ points={{-15.5,-9},{-15.5,-1},{-11.5,7},{-3.5,11},{6.5,9},{12.5,1},{
+ 12.5,-9}},
+ color={0,0,255},
+ smooth=Smooth.Bezier,
+ origin={-9,3.5},
+ rotation=90),Line(
+ points={{-15.5,-9},{-15.5,-1},{-11.5,7},{-3.5,11},{6.5,9},{12.5,1},{
+ 12.5,-9}},
+ color={0,0,255},
+ smooth=Smooth.Bezier,
+ origin={-9,-24.5},
+ rotation=90),Line(
+ points={{-60,-60},{60,-60}},
+ color={0,0,255},
+ smooth=Smooth.None),Line(
+ points={{-68,-80},{-48,-60}},
+ color={0,0,255},
+ smooth=Smooth.None),Line(
+ points={{-50,-80},{-30,-60}},
+ color={0,0,255},
+ smooth=Smooth.None),Line(
+ points={{-30,-80},{-10,-60}},
+ color={0,0,255},
+ smooth=Smooth.None),Line(
+ points={{-10,-80},{10,-60}},
+ color={0,0,255},
+ smooth=Smooth.None),Line(
+ points={{12,-80},{32,-60}},
+ color={0,0,255},
+ smooth=Smooth.None),Line(
+ points={{30,-80},{50,-60}},
+ color={0,0,255},
+ smooth=Smooth.None),Line(points={{0,72},{0,100}}, color={0,0,255}),
+ Line(points={{0,-60},{0,-40}}, color={0,0,255}),Text(
+ extent={{-100,-100},{100,-140}},
+ lineColor={0,0,255},
+ textString="%name")}), Documentation);
+ end PwShuntR;
+
+ model PwShunt "Thyristor controlled Shunt reactor/capacitor"
+ OpenIPSL.Interfaces.PwPin p
+ annotation (Placement(transformation(extent={{-10,90},{10,110}})));
+ Modelica.Blocks.Interfaces.RealInput Q
+ "Reactive power produced by the shunt (pu)"
+ annotation (Placement(transformation(extent={{-120,-10},{-100,10}})));
+ constant Real pi=Modelica.Constants.pi;
+ parameter Real fn=50 "Frequency rating, Hz";
+ Real C "Capacitance in p.u";
+ Real L "Inductance in p.u";
+ Real v;
+ Real anglev;
+ Real i;
+ Real anglei;
+ equation
+ v = sqrt(p.vr^2 + p.vi^2);
+ anglev = atan2(p.vi, p.vr);
+ i = sqrt(p.ir^2 + p.ii^2);
+ anglei = atan2(p.ii, p.ir);
+ if Q >= 0 then
+ C = Q/(v^2*2*pi*fn);
+ L = 0;
+ anglei = anglev + pi/2;
+ i = v*2*pi*fn*C;
+ else
+ L = v^2/(2*pi*fn*(-Q));
+ C = 0;
+ anglei = anglev - pi/2;
+ i = v/(2*pi*fn*L);
+ end if;
+ //p.u
+ //p.u
+ annotation (Icon(coordinateSystem(extent={{-100,-100},{100,100}},
+ initialScale=0.1), graphics={Rectangle(extent={{-100,100},{100,-100}},
+ lineColor={0,0,255}),Text(
+ extent={{-94,8},{-84,-6}},
+ lineColor={0,0,255},
+ fillColor={255,255,255},
+ fillPattern=FillPattern.Solid,
+ textString="Q"),Line(
+ points={{-15.5,-9},{-15.5,-1},{-11.5,7},{-3.5,11},{6.5,9},{12.5,1},{
+ 12.5,-9}},
+ color={0,0,255},
+ smooth=Smooth.Bezier,
+ origin={51,49.5},
+ rotation=90),Line(
+ points={{-15.5,-9},{-15.5,-1},{-11.5,7},{-3.5,11},{6.5,9},{12.5,1},{
+ 12.5,-9}},
+ color={0,0,255},
+ smooth=Smooth.Bezier,
+ origin={51,21.5},
+ rotation=90),Line(
+ points={{-15.5,-9},{-15.5,-1},{-11.5,7},{-3.5,11},{6.5,9},{12.5,1},{
+ 12.5,-9}},
+ color={0,0,255},
+ smooth=Smooth.Bezier,
+ origin={51,-6.5},
+ rotation=90),Line(
+ points={{-15.5,-9},{-15.5,-1},{-11.5,7},{-3.5,11},{6.5,9},{12.5,1},{
+ 12.5,-9}},
+ color={0,0,255},
+ smooth=Smooth.Bezier,
+ origin={51,-34.5},
+ rotation=90),Line(points={{-80,-30},{-20,-30}}, color={0,0,255}),Line(
+ points={{-70,-70},{-30,-70}}, color={0,0,255}),Line(points={{-60,-80},
+ {-40,-80}}, color={0,0,255}),Line(points={{-80,-20},{-20,-20}}, color=
+ {0,0,255}),Line(points={{-80,0},{-20,0}}, color={0,0,255}),Line(
+ points={{-80,10},{-20,10}}, color={0,0,255}),Line(points={{-80,30},{-20,
+ 30}}, color={0,0,255}),Line(points={{-80,40},{-20,40}}, color={0,0,
+ 255}),Line(points={{40,-70},{80,-70}}, color={0,0,255}),Line(points={
+ {50,-80},{70,-80}}, color={0,0,255}),Line(points={{-50,30},{-50,10}},
+ color={0,0,255}),Line(points={{-50,0},{-50,-20}}, color={0,0,255}),
+ Line(points={{-50,-30},{-50,-70}}, color={0,0,255}),Line(points={{60,
+ -50},{60,-70}}, color={0,0,255}),Line(points={{-50,40},{-50,80},{0,80},
+ {0,100}}, color={0,0,255}),Line(points={{60,62},{60,80},{0,80}},
+ color={0,0,255}),Text(
+ extent={{-100,-100},{100,-140}},
+ lineColor={0,0,255},
+ textString="%name")}), Documentation);
+ end PwShunt;
+
+ model PwShuntB
+ parameter Real B "(pu) on system base";
+ Complex I;
+ Complex V;
+ Real v;
+ Complex S;
+ OpenIPSL.Interfaces.PwPin p
+ annotation (Placement(transformation(extent={{-10,88},{10,108}})));
+ equation
+ v = sqrt(p.vr^2 + p.vi^2);
+ I = Complex(p.ir, p.ii);
+ V = Complex(p.vr, p.vi);
+ I = Complex(0, B)*V;
+ S = Complex(p.vr, p.vi)*Complex(p.ir, -p.ii);
+ annotation (
+ Icon(graphics={Rectangle(extent={{-100,100},{100,-100}},
+ lineColor={0,0,255}),Text(
+ extent={{-60,60},{60,-60}},
+ lineColor={0,0,255},
+ textStyle={TextStyle.Bold},
+ textString="jB")}));
+ end PwShuntB;
+
+ package PSSE
+ package SVC
+ model SVC "On bus 10106 & 10114"
+ OpenIPSL.Interfaces.PwPin VIB
+ "Voltage signal connected to stepdown transformer (pu)"
+ annotation (Placement(transformation(extent={{-110,-10},{-90,10}})));
+ Modelica.Blocks.Sources.Constant imSetPoint(k=Vref)
+ annotation (Placement(transformation(extent={{-76,20},{-64,32}})));
+ Modelica.Blocks.Sources.Constant imSetPoint1(k=Bref)
+ annotation (Placement(transformation(extent={{-52,20},{-38,34}})));
+ OpenIPSL.NonElectrical.Continuous.LeadLag imLeadLag(
+ K=K,
+ T1=T1,
+ T2=T3,
+ y_start=init_SVC_Leadlag)
+ annotation (Placement(transformation(extent={{-6,0},{10,16}})));
+ OpenIPSL.NonElectrical.Continuous.LeadLag imLeadLag1(
+ K=1,
+ T1=T2,
+ T2=T4,
+ y_start=init_SVC_Leadlag)
+ annotation (Placement(transformation(extent={{18,0},{34,16}})));
+ Modelica.Blocks.Nonlinear.Limiter imLimited(uMin=Vmin, uMax=Vmax)
+ annotation (Placement(transformation(extent={{42,0},{58,16}})));
+ NonElectrical.Continuous.SimpleLagLim imLimitedSimpleLag(
+ K=1,
+ T=T5,
+ outMin=Mvar_C,
+ y_start=init_SVC_Lag,
+ outMax=Mvar_R)
+ annotation (Placement(transformation(extent={{66,0},{82,16}})));
+ OpenIPSL.Electrical.Banks.PwShunt shunt annotation (Placement(
+ transformation(extent={{80,-40},{100,-20}})));
+ OpenIPSL.NonElectrical.Logical.Relay3 imRelay annotation (
+ Placement(transformation(extent={{30,-40},{50,-20}})));
+ Modelica.Blocks.Sources.Constant Q_capacitors(k=Mvar_C) "If Verr>Vov"
+ annotation (Placement(transformation(extent={{-20,-20},{-10,-10}})));
+ Modelica.Blocks.Sources.Constant Q_Reactors(k=Mvar_R) "If Verr<-Vov"
+ annotation (Placement(transformation(extent={{-20,-38},{-10,-28}})));
+ Modelica.Blocks.Math.Gain imGain(k=1/Sbase)
+ annotation (Placement(transformation(extent={{60,-36},{72,-24}})));
+ parameter Real Vref "Reference voltage (pu)";
+ parameter Real Bref "Reference susceptance (pu)";
+ parameter Real K=150 "Steady-state gain";
+ parameter Real T1 "Time constant (s)";
+ parameter Real T2 "Time constant (s)";
+ parameter Real T3 "Time constant (s)";
+ parameter Real T4 "Time constant (s)";
+ parameter Real T5=0.03 "Time constant of thyristor bridge (s)";
+ parameter Real Vmax;
+ parameter Real Vmin;
+ parameter Real Vov=0.5 "Override voltage (pu)";
+ parameter Real Sbase "Base power of the bus (MVA)";
+ parameter Real init_SVC_Leadlag "Initial value";
+ parameter Real init_SVC_Lag "Initial value";
+ parameter Real OtherSignals;
+ parameter Real Mvar_C=100
+ "Total compensation capacity of shunt capacitor, 100(10106)/200(10114) MVar";
+ parameter Real Mvar_R=-50
+ "Total compensation capacity of shunt reactor, MVar";
+ Modelica.Blocks.Sources.Constant imSetPoint2(k=OtherSignals)
+ annotation (Placement(transformation(extent={{-52,-20},{-40,-8}})));
+ OpenIPSL.Electrical.Sensors.PwVoltage absoluteVoltage annotation
+ (Placement(transformation(extent={{-82,-8},{-66,8}})));
+ Modelica.Blocks.Math.Add add(k1=1, k2=-1)
+ annotation (Placement(transformation(extent={{-58,0},{-46,12}})));
+ Modelica.Blocks.Math.Add3 add3_1(k1=-1, k3=-1)
+ annotation (Placement(transformation(extent={{-24,2},{-12,14}})));
+ equation
+ connect(VIB, absoluteVoltage.p) annotation (Line(
+ points={{-100,0},{-82,0}},
+ color={0,0,255},
+ smooth=Smooth.None));
+ connect(shunt.p, VIB) annotation (Line(
+ points={{90,-20},{90,50},{-94,50},{-94,0},{-100,0}},
+ color={0,0,255},
+ smooth=Smooth.None));
+ connect(imRelay.y, imGain.u) annotation (Line(points={{51.5,-30},{51.5,-30},{
+ 58.8,-30}}, color={0,0,127}));
+ connect(shunt.Q, imGain.y)
+ annotation (Line(points={{79,-30},{79,-30},{72.6,-30}}, color={0,0,127}));
+ connect(imLimitedSimpleLag.y, imRelay.u2) annotation (Line(points={{82.8,8},{
+ 86,8},{86,-16},{20,-16},{20,-22.5},{28,-22.5}}, color={0,0,127}));
+ connect(imLimited.y, imLimitedSimpleLag.u)
+ annotation (Line(points={{58.8,8},{60,8},{64.4,8}}, color={0,0,127}));
+ connect(imLeadLag1.y, imLimited.u)
+ annotation (Line(points={{34.8,8},{34.8,8},{40.4,8}}, color={0,0,127}));
+ connect(imLeadLag.y, imLeadLag1.u)
+ annotation (Line(points={{10.8,8},{16.4,8}}, color={0,0,127}));
+ connect(Q_Reactors.y, imRelay.u4) annotation (Line(points={{-9.5,-33},{28,-33},
+ {28,-32.5}}, color={0,0,127}));
+ connect(Q_capacitors.y, imRelay.u3) annotation (Line(points={{-9.5,-15},{0,-15},
+ {0,-27.5},{28,-27.5}}, color={0,0,127}));
+ connect(add.u2, absoluteVoltage.v) annotation (Line(points={{-59.2,2.4},{-62,
+ 2.4},{-62,-4.8},{-65.2,-4.8}}, color={0,0,127}));
+ connect(imSetPoint.y, add.u1) annotation (Line(points={{-63.4,26},{-59.2,26},
+ {-59.2,9.6}}, color={0,0,127}));
+ connect(add3_1.y, imLeadLag.u)
+ annotation (Line(points={{-11.4,8},{-10.65,8},{-7.6,8}}, color={0,0,127}));
+ connect(imSetPoint2.y, add3_1.u3) annotation (Line(points={{-39.4,-14},{-34,-14},
+ {-34,3.2},{-25.2,3.2}}, color={0,0,127}));
+ connect(imSetPoint1.y, add3_1.u1) annotation (Line(points={{-37.3,27},{-34,27},
+ {-34,12.8},{-25.2,12.8}}, color={0,0,127}));
+ connect(add.y, add3_1.u2)
+ annotation (Line(points={{-45.4,6},{-25.2,6},{-25.2,8}}, color={0,0,127}));
+ connect(imRelay.u1, add3_1.u2) annotation (Line(points={{28,-37.5},{0,-37.5},
+ {0,-46},{-36,-46},{-36,8},{-25.2,8}}, color={0,0,127}));
+ annotation (
+ Diagram(coordinateSystem(initialScale=0.1), graphics={Text(
+ extent={{-44,16},{-34,12}},
+ lineColor={255,0,0},
+ textString="Verr"),Text(
+ extent={{-82,28},{-58,24}},
+ lineColor={255,0,0},
+ textString="Vref"),Text(
+ extent={{-50,38},{-42,42}},
+ lineColor={255,0,0},
+ textString="Bref"),Text(
+ extent={{-80,-14},{-68,-20}},
+ lineColor={255,0,0},
+ textString="|VB|")}),
+ Icon(coordinateSystem(initialScale=0.1), graphics={Rectangle(extent={{-100,
+ 100},{100,-100}}, lineColor={0,0,255}),Text(
+ extent={{-20,-60},{20,-100}},
+ lineColor={0,0,255},
+ fillColor={0,0,255},
+ fillPattern=FillPattern.Solid,
+ textString="SVC"),Line(
+ points={{38,60},{18,40},{8,0},{18,-40},{40,-60}},
+ color={0,0,255},
+ smooth=Smooth.Bezier),Line(
+ points={{-10,60},{-10,-60}},
+ color={0,0,255},
+ smooth=Smooth.Bezier),Line(
+ points={{-100,0},{-10,0}},
+ color={0,0,255},
+ smooth=Smooth.Bezier),Line(points={{50,-40},{90,-40}}, color={0,0,255}),
+ Line(points={{60,-50},{80,-50}}, color={0,0,255}),Line(points={{10,0},
+ {70,0},{70,-40}}, color={0,0,255})}),
+ Documentation);
+ end SVC;
+ annotation (Documentation);
+ end SVC;
+
+ model Shunt
+ parameter Real G "(p.u.) on system base";
+ parameter Real B "(p.u.) on system base";
+ Complex I;
+ Complex V;
+ Real v;
+ Complex S;
+ OpenIPSL.Interfaces.PwPin p annotation (Placement(transformation(
+ extent={{-10,90},{10,110}})));
+ equation
+ v = sqrt(p.vr^2 + p.vi^2);
+ I = Complex(p.ir, p.ii);
+ V = Complex(p.vr, p.vi);
+ I = Complex(G, B)*V;
+ S = Complex(p.vr, p.vi)*Complex(p.ir, -p.ii);
+ annotation (Documentation(info="
+Shunt model from Nordic44 system developed by Giuseppe.
+"),Icon(graphics={Rectangle(extent={{-100,
+ 100},{100,-100}}, lineColor={0,0,255}),Text(
+ extent={{-60,60},{60,-80}},
+ lineColor={0,0,255},
+ textStyle={TextStyle.Bold},
+ textString="Y")}));
+ end Shunt;
+
+ model CSVGN1 "STATC SHUNT COMPENSATOR MODEL"
+ constant Real pi=Modelica.Constants.pi;
+ parameter Real K;
+ parameter Real T1;
+ parameter Real T2;
+ parameter Real T3;
+ parameter Real T4;
+ parameter Real T5;
+ parameter Real RMIN=0 "Reactor minmum MVAr output";
+ parameter Real VMAX;
+ parameter Real VMIN;
+ parameter Real CBASE=100 "Capacitor MVAr output";
+ parameter Real MBASE=100 "MVAr range of SVC";
+ parameter Real SBASE=100;
+ parameter Real ra=0 "amature resistance";
+ parameter Real x1d=1
+ "d-axis transient reactance, p.u., should be set to 9999";
+ parameter Real v0 "init. voltage at terminal bus";
+ parameter Real anglev0 "init voltage angle in degree";
+ parameter Real Vc0 "init. voltage at controlled bus";
+ parameter Real Psh "Active power MW";
+ parameter Real Qsh "Reactive power Mvar";
+ Real v(start=v0) "Bus voltage magnitude";
+ Real anglev(start=anglev_rad) " Bus voltage angle";
+ //Real pe "electric power";
+ Real P;
+ Real Q;
+ Real vd(start=vd0) "voltage direct axis";
+ Real vq(start=vq0) "voltage quadrature axis";
+ Real id(start=id0) "current direct axis";
+ Real iq(start=iq0) "current quadrature axis";
+ Modelica.Blocks.Math.Product product1
+ annotation (Placement(transformation(extent={{36,-10},{56,10}})));
+ Modelica.Blocks.Math.Add add(k2=-1)
+ annotation (Placement(transformation(extent={{70,-10},{90,10}})));
+ Modelica.Blocks.Interfaces.RealOutput Y(start=Y0)
+ annotation (Placement(transformation(extent={{100,-10},{120,10}})));
+ Modelica.Blocks.Interfaces.RealInput V
+ annotation (Placement(transformation(extent={{-140,-20},{-100,20}})));
+ Modelica.Blocks.Math.Add add1(k1=-1)
+ annotation (Placement(transformation(extent={{-70,-10},{-50,10}})));
+ Modelica.Blocks.Sources.Constant const(k=MBASE/SBASE)
+ annotation (Placement(transformation(extent={{-40,30},{-20,50}})));
+ Modelica.Blocks.Sources.Constant const1(k=CBASE/SBASE)
+ annotation (Placement(transformation(extent={{30,30},{50,50}})));
+ OpenIPSL.NonElectrical.Continuous.SimpleLagLim ImSimpleLagnonwinduplimit(
+ outMin=VMIN,
+ outMax=VMAX,
+ T=T3,
+ K=K,
+ y_start=k30) annotation (Placement(transformation(extent={{-40,-10},
+ {-20,10}})));
+ Modelica.Blocks.Sources.Constant const2(k=Vref)
+ annotation (Placement(transformation(extent={{-100,10},{-80,30}})));
+ Modelica.Blocks.Nonlinear.Limiter imLimited(uMin=0, uMax=1)
+ annotation (Placement(transformation(extent={{-10,-10},{10,10}})));
+ OpenIPSL.Interfaces.PwPin p(
+ vr(start=vr0),
+ vi(start=vi0),
+ ir(start=ir0),
+ ii(start=ii0)) annotation (Placement(transformation(extent={{-10,
+ 90},{10,110}})));
+ protected
+ parameter Real p0=Psh/SBASE "Active power p.u. on system base";
+ parameter Real q0=Qsh/SBASE "Reactive power p.u. on system base";
+ parameter Real anglev_rad=anglev0*pi/180;
+ parameter Real Y0=q0/(v0*v0) "Capacitor output";
+ parameter Real vr0=v0*cos(anglev_rad) "Initialitation";
+ parameter Real vi0=v0*sin(anglev_rad) "Initialitation";
+ parameter Real ir0=(p0*vr0 + q0*vi0)/(vr0^2 + vi0^2) "Initialitation";
+ parameter Real ii0=(p0*vi0 - q0*vr0)/(vr0^2 + vi0^2) "Initialitation";
+ parameter Real delta0=atan2(vi0 + ra*ii0 + x1d*ir0, vr0 + ra*ir0 - x1d*ii0)
+ "Initialitation";
+ parameter Real vd0=vr0*cos(pi/2 - delta0) - vi0*sin(pi/2 - delta0)
+ "Initialitation";
+ parameter Real vq0=vr0*sin(pi/2 - delta0) + vi0*cos(pi/2 - delta0)
+ "Initialitation";
+ parameter Real id0=ir0*cos(pi/2 - delta0) - ii0*sin(pi/2 - delta0)
+ "Initialitation";
+ parameter Real iq0=ir0*sin(pi/2 - delta0) + ii0*cos(pi/2 - delta0)
+ "Initialitation";
+ parameter Real k50(fixed=false);
+ parameter Real k30(fixed=false);
+ parameter Real k0(fixed=false);
+ parameter Real Vref(fixed=false);
+ initial equation
+ k50 = (CBASE/SBASE - Y0)/(MBASE/SBASE);
+ k30 = k50;
+ k0 = k30/K;
+ Vref = V - k0;
+ equation
+ v = sqrt(p.vr^2 + p.vi^2);
+ anglev = atan2(p.vi, p.vr);
+ [p.ir; p.ii] = -[sin(delta0), cos(delta0); -cos(delta0), sin(delta0)]*[id; iq];
+ [p.vr; p.vi] = [sin(delta0), cos(delta0); -cos(delta0), sin(delta0)]*[vd; vq];
+ vq = id/Y;
+ vd = -iq/Y;
+ -P = p.vr*p.ir + p.vi*p.ii;
+ -Q = p.vi*p.ir - p.vr*p.ii;
+ connect(const1.y, add.u1) annotation (Line(
+ points={{51,40},{60,40},{60,6},{68,6}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(add.y, Y) annotation (Line(
+ points={{91,0},{110,0}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(product1.y, add.u2) annotation (Line(
+ points={{57,0},{60,0},{60,-6},{68,-6}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(V, add1.u2) annotation (Line(
+ points={{-120,0},{-90,0},{-90,-6},{-72,-6}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(const.y, product1.u1) annotation (Line(
+ points={{-19,40},{0,40},{0,28},{20,28},{20,6},{34,6}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(add1.y, ImSimpleLagnonwinduplimit.u)
+ annotation (Line(points={{-49,0},{-49,0},{-42,0}}, color={0,0,127}));
+ connect(ImSimpleLagnonwinduplimit.y, imLimited.u)
+ annotation (Line(points={{-19,0},{-12,0}}, color={0,0,127}));
+ connect(imLimited.y, product1.u2)
+ annotation (Line(points={{11,0},{24,0},{24,-6},{34,-6}}, color={0,0,127}));
+ connect(const2.y, add1.u1) annotation (Line(points={{-79,20},{-76,20},{-76,6},
+ {-72,6}}, color={0,0,127}));
+ annotation (
+ Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{
+ 100,100}})),
+ Icon(coordinateSystem(preserveAspectRatio=true, extent={{-100,-100},{100,
+ 100}}), graphics={Rectangle(extent={{-100,100},{100,-100}},
+ lineColor={0,0,255}),Text(
+ extent={{-46,20},{40,-26}},
+ lineColor={0,0,255},
+ textString="CSVGN1"),Text(
+ extent={{-100,-100},{100,-140}},
+ lineColor={0,0,255},
+ textString="%name")}),
+ Documentation);
+ end CSVGN1;
+ annotation (Documentation);
+ end PSSE;
+
+ package Simulink
+ model Shunt "Shunt Inductor or Capacitor"
+ OpenIPSL.Interfaces.PwPin p annotation (Placement(transformation(
+ extent={{-10,90},{10,110}})));
+ constant Real pi=Modelica.Constants.pi;
+ parameter Real Qnom
+ "Reactive power produced by the shunt under 1 p.u voltage, (negative for inductive charge, positive for capacitive charge) Mvar";
+ parameter Real Sbase "Base power of the system, MVA";
+ parameter Real X=Sbase/(-Qnom) "Reactance in p.u";
+ Real Q "Consumed power";
+ Real v;
+ equation
+ v = sqrt(p.vr*p.vr + p.vi*p.vi);
+ 0 = p.vr*p.ir + p.vi*p.ii;
+ Q = p.vi*p.ir - p.vr*p.ii;
+ Q = 1/X*v*v;
+ annotation (Icon(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},
+ {100,100}}), graphics={Rectangle(extent={{-100,100},{100,-100}},
+ lineColor={0,0,255}),Text(
+ extent={{-40,40},{40,-40}},
+ lineColor={0,0,255},
+ textString="Y"),Line(
+ points={{-1,14},{-1,-6}},
+ color={0,0,255},
+ origin={-4,-73},
+ rotation=-90),Line(
+ points={{-1,-6},{-1,-2}},
+ color={0,0,255},
+ origin={-4,-79},
+ rotation=90),Line(
+ points={{-1,12},{-1,-0.000000000000000183697}},
+ color={0,0,255},
+ origin={-6,-77},
+ rotation=-90),Line(points={{0,100},{0,20}}, color={0,0,255}),Line(
+ points={{0,-40},{0,-72}}, color={0,0,255})}), Documentation(info="
+
+
+Reference |
+Shunt Inductor or Capacitor |
+
+
+Last update |
+2015-10-02 |
+
+
+Author |
+Le Qi, SmarTS Lab, KTH Royal Institute of Technology |
+
+
+Contact |
+luigiv@kth.se |
+
+
+"));
+ end Shunt;
+ annotation (Documentation);
+ end Simulink;
+ annotation (Documentation);
+ end Banks;
+
+ package Solar
+ package PSAT
+ model ConstantPQPV
+ model PQ1 "Constant PQ Generator, Solar Photo-Voltaic Generator"
+ OpenIPSL.Interfaces.PwPin p annotation (Placement(
+ visible=true,
+ transformation(
+ origin={55.0,22.7992},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0),
+ iconTransformation(
+ origin={-110.0,0.0},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ parameter Real S_b=100 "System base power (MVA)"
+ annotation (Dialog(group="Power flow data"));
+ parameter Real Sn=10 "Nominal power (MVA)";
+ parameter Real V_0=1.00018548610126 "Voltage magnitude (pu)"
+ annotation (Dialog(group="Power flow data"));
+ parameter Real angle_0=-0.0000253046024029618 "Voltage angle (deg)"
+ annotation (Dialog(group="Power flow data"));
+ parameter Real P_0=0.4 "Active power (pu)"
+ annotation (Dialog(group="Power flow data"));
+ parameter Real Q_0=0.3 "Reactive power (pu)"
+ annotation (Dialog(group="Power flow data"));
+ parameter Real Td=15 "d-axis inverter time constant (s)";
+ parameter Real Tq=15 "q-axis inverter time constant (s)";
+ protected
+ parameter Real CoB=Sn/S_b;
+ parameter Real Pref=P_0*CoB "Initialitation";
+ parameter Real Qref=Q_0*CoB "Initialitation";
+ parameter Real vd0=-V_0*sin(angle_0) "Initialitation";
+ parameter Real vq0=V_0*cos(angle_0) "Initialitation";
+ parameter Real idref=(vq0*Qref + Pref*vd0)/(vq0^2 + vd0^2) "Initialitation";
+ parameter Real iqref=((-vd0*Qref) + Pref*vq0)/(vq0^2 + vd0^2)
+ "Initialitation";
+ public
+ Real v "Bus voltage magnitude (pu)";
+ Real anglev "Bus voltage angle (deg)";
+ Real id(start=idref) "d-axis current (pu)";
+ Real iq(start=iqref) "q-axis current (pu)";
+ Real vd(start=vd0) "d-axis voltage (pu)";
+ Real vq(start=vq0) "q-axis voltage (pu)";
+ Real P(start=Pref) "Active power (pu)";
+ Real Q(start=Qref) "Reactive power (pu)";
+ Real idref1(start=idref) "d-axis current setpoint";
+ Real iqref1(start=iqref) "q-axis current setpoint";
+ equation
+ P = vd*id + vq*iq;
+ Q = vq*id - vd*iq;
+ idref1 = (vq*Qref + Pref*vd)/(vq^2 + vd^2);
+ iqref1 = ((-vd*Qref) + Pref*vq)/(vq^2 + vd^2);
+ der(id) = (idref1 - id)/Td;
+ der(iq) = (iqref1 - iq)/Tq;
+ v = sqrt(p.vr^2 + p.vi^2);
+ anglev = atan2(p.vi, p.vr);
+ p.ir = -iq
+ "change of sign due to the fact than in modelica when entering is + and in this case is going out";
+ p.ii = id
+ "change of sign due to the fact than in modelica when entering is + and in this case is going out";
+ p.vr = vq;
+ p.vi = -vd;
+ annotation (
+ Icon(coordinateSystem(
+ extent={{-100.0,-100.0},{100.0,100.0}},
+ preserveAspectRatio=true,
+ initialScale=0.1,
+ grid={10,10}), graphics={Rectangle(
+ visible=true,
+ fillColor={255,255,255},
+ extent={{-100.0,-100.0},{100.0,100.0}}),Text(
+ visible=true,
+ origin={0.0,15.3102},
+ fillPattern=FillPattern.Solid,
+ extent={{-31.415,-20.0667},{31.415,20.0667}},
+ textString="%name",
+ fontName="Arial")}),
+ Diagram(coordinateSystem(
+ extent={{-148.5,-105.0},{148.5,105.0}},
+ preserveAspectRatio=true,
+ initialScale=0.1,
+ grid={5,5})),
+ Documentation(info="
+
+
+Reference |
+Constant PQ Generator, Solar Photo-Voltaic Generator, PSAT Manual 2.1.8 |
+
+
+Last update |
+September 2015 |
+
+
+Author |
+Joan Russinol, SmarTS Lab, KTH Royal Institute of Technology |
+
+
+Contact |
+luigiv@kth.se |
+
+
+"));
+ end PQ1;
+
+ model PV1 "Constant PV Generator, Solar Photo-Voltaic Generator"
+ OpenIPSL.Interfaces.PwPin p annotation (Placement(
+ visible=true,
+ transformation(
+ origin={55.0,22.7992},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0),
+ iconTransformation(
+ origin={-110.0,0.0},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ parameter Real S_b=100 "System base power (MVA)"
+ annotation (Dialog(group="Power flow data"));
+ parameter Real Sn=10 "Nominal power (MVA)";
+ parameter Real V_0=1.00018548610126 "Voltage magnitude (pu)"
+ annotation (Dialog(group="Power flow data"));
+ parameter Real angle_0=-0.0000253046024029618 "Voltage angle (deg)"
+ annotation (Dialog(group="Power flow data"));
+ parameter Real P_0=0.4 "Active power (pu)"
+ annotation (Dialog(group="Power flow data"));
+ parameter Real Q_0=0.3 "Reactive power (pu)"
+ annotation (Dialog(group="Power flow data"));
+ parameter Real vref=1.0002 "Voltage reference (pu)";
+ parameter Real Td=0.15 "d-axis inverter time constant (s)";
+ parameter Real Tq=0.15 "q-axis inverter time constant (s)";
+ parameter Real Ki=50.9005 "Integral gain of the voltage controller";
+ parameter Real Kp=0.0868 "Proportional gain of the voltage controller";
+ protected
+ parameter Real CoB=Sn/S_b;
+ parameter Real Pref=P_0*CoB;
+ parameter Real vd0=-V_0*sin(angle_0) "Initialitation";
+ parameter Real vq0=V_0*cos(angle_0) "Initialitation";
+ parameter Real idref=(vq0*Q_0*CoB + Pref*vd0)/(vq0^2 + vd0^2)
+ "Initialitation";
+ parameter Real iqref=((-vd0*Q_0*CoB) + Pref*vq0)/(vq0^2 + vd0^2)
+ "Initialitation";
+ Real x(start=Q_0*CoB);
+ Real Qref(start=Q_0*CoB);
+ public
+ Real v "Bus voltage magnitude (pu)";
+ Real anglev "Bus voltage angle (deg.)";
+ Real idref1(start=idref) "d-axis current setpoint";
+ Real iqref1(start=iqref) "q-axis current setpoint";
+ Real id(start=idref) "d-axis current (pu)";
+ Real iq(start=iqref) "q-axis current (pu)";
+ Real vd(start=vd0) "d-axis voltage (pu)";
+ Real vq(start=vq0) "q-axs voltage (pu)";
+ Real P(start=Pref) "Active power (pu)";
+ Real Q(start=Q_0*CoB) "Reactive power (pu)";
+ equation
+ der(x) = Ki*(vref - v);
+ Qref = x + Kp*(vref - v);
+ P = vd*id + vq*iq;
+ Q = vq*id - vd*iq;
+ idref1 = (vq*Qref + Pref*vd)/(vq^2 + vd^2);
+ iqref1 = ((-vd*Qref) + Pref*vq)/(vq^2 + vd^2);
+ der(id) = (idref1 - id)/Td;
+ der(iq) = (iqref1 - iq)/Tq;
+ v = sqrt(p.vr^2 + p.vi^2);
+ anglev = atan2(p.vi, p.vr);
+ p.ir = -iq
+ "change of sign due to the fact than in modelica when entering is + and in this case is going out";
+ p.ii = id
+ "change of sign due to the fact than in modelica when entering is + and in this case is going out";
+ p.vr = vq;
+ p.vi = -vd;
+ annotation (
+ Icon(coordinateSystem(
+ extent={{-100.0,-100.0},{100.0,100.0}},
+ preserveAspectRatio=true,
+ initialScale=0.1,
+ grid={10,10}), graphics={Rectangle(
+ visible=true,
+ fillColor={255,255,255},
+ extent={{-100.0,-100.0},{100.0,100.0}}),Text(
+ visible=true,
+ origin={0.0,15.3102},
+ fillPattern=FillPattern.Solid,
+ extent={{-31.415,-20.0667},{31.415,20.0667}},
+ textString="%name",
+ fontName="Arial")}),
+ Diagram(coordinateSystem(
+ extent={{-148.5,-105.0},{148.5,105.0}},
+ preserveAspectRatio=true,
+ initialScale=0.1,
+ grid={5,5})),
+ Documentation(info="
+
+
+Reference |
+Constant PV Generator, Solar Photo-Voltaic Generator, PSAT Manual 2.1.8 |
+
+
+Last update |
+September 2015 |
+
+
+Author |
+Joan Russinol, SmarTS Lab, KTH Royal Institute of Technology |
+
+
+Contact |
+luigiv@kth.se |
+
+
+"));
+ end PV1;
+ annotation (Diagram(coordinateSystem(
+ extent={{-148.5,-105.0},{148.5,105.0}},
+ preserveAspectRatio=true,
+ initialScale=0.1,
+ grid={5,5})), Documentation);
+ end ConstantPQPV;
+ annotation (Documentation);
+ end PSAT;
+
+ package KTH
+ package PFblocks
+ model Controller
+ parameter Real v0=1;
+ parameter Real ibase=1.02;
+ parameter Real ibase_iq=1;
+ parameter Real Kdc=-0.005 "DC voltage Controller Gain";
+ parameter Real Tdc=0.0015 "DC controller time constant";
+ parameter Real id_max=1;
+ parameter Real id_min=0;
+ parameter Real Kac=-2.346 "AC voltage Controller Gain";
+ parameter Real Tac=-0.0002131 "AC controller time constant";
+ parameter Real iq_max=3;
+ parameter Real iq_min=-3;
+ parameter Real xq=1 "Initialitation";
+ parameter Real xd=1 "Initialitation";
+ Modelica.Blocks.Interfaces.RealInput udc annotation (Placement(
+ visible=true,
+ transformation(
+ origin={-168.0386,-48.3466},
+ extent={{-20.0,-20.0},{20.0,20.0}},
+ rotation=0),
+ iconTransformation(
+ origin={-120.0,-30.0},
+ extent={{-20.0,-20.0},{20.0,20.0}},
+ rotation=0)));
+ Modelica.Blocks.Interfaces.RealOutput id_ref annotation (Placement(
+ visible=true,
+ transformation(
+ origin={160.0,45.0},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0),
+ iconTransformation(
+ origin={110.0,40.0},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ Modelica.Blocks.Interfaces.RealInput Vdcref annotation (Placement(
+ visible=true,
+ transformation(
+ origin={-168.3642,-81.5161},
+ extent={{-20.0,-20.0},{20.0,20.0}},
+ rotation=0),
+ iconTransformation(
+ origin={-120.0,-80.0},
+ extent={{-20.0,-20.0},{20.0,20.0}},
+ rotation=0)));
+ Modelica.Blocks.Math.Add add1(k1=-1) annotation (Placement(visible=true,
+ transformation(
+ origin={-85.0,-65.0},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ Modelica.Blocks.Nonlinear.Limiter limiter1(uMax=id_max, uMin=id_min)
+ annotation (Placement(visible=true, transformation(
+ origin={-11.5403,-65.0},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ Modelica.Blocks.Math.Gain gain1(k=1/ibase) annotation (Placement(visible=true,
+ transformation(
+ origin={16.5869,-65.0},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ Modelica.Blocks.Interfaces.RealInput uac annotation (Placement(
+ visible=true,
+ transformation(
+ origin={-168.3642,60.0},
+ extent={{-20.0,-20.0},{20.0,20.0}},
+ rotation=0),
+ iconTransformation(
+ origin={-120.0,70.0},
+ extent={{-20.0,-20.0},{20.0,20.0}},
+ rotation=0)));
+ Modelica.Blocks.Interfaces.RealInput Vacref annotation (Placement(
+ visible=true,
+ transformation(
+ origin={-168.1269,30.0},
+ extent={{-20.0,-20.0},{20.0,20.0}},
+ rotation=0),
+ iconTransformation(
+ origin={-120.0,20.0},
+ extent={{-20.0,-20.0},{20.0,20.0}},
+ rotation=0)));
+ Modelica.Blocks.Math.Add add2(k1=-1) annotation (Placement(visible=true,
+ transformation(
+ origin={-95.0,48.1957},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ Modelica.Blocks.Nonlinear.Limiter limiter2(uMax=iq_max, uMin=iq_min)
+ annotation (Placement(visible=true, transformation(
+ origin={-26.5403,47.3513},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ Modelica.Blocks.Math.Gain gain2(k=1/ibase_iq) annotation (Placement(visible=
+ true, transformation(
+ origin={10.0,47.3513},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ Modelica.Blocks.Interfaces.RealOutput iq_ref annotation (Placement(
+ visible=true,
+ transformation(
+ origin={160.0,-60.0},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0),
+ iconTransformation(
+ origin={110.0,-48.2723},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ OpenIPSL.Electrical.Solar.KTH.Auxiliary.PI PI2(
+ K=Kdc,
+ T=Tdc,
+ xo=xd,
+ Ymax=id_max,
+ Ymin=id_min) annotation (Placement(visible=true, transformation(
+ origin={-50.0,-65.0},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ OpenIPSL.Electrical.Solar.KTH.Auxiliary.PI PI3(
+ K=Kac,
+ T=0.0005,
+ Ymax=iq_max,
+ Ymin=iq_min,
+ xo=xq) annotation (Placement(visible=true, transformation(
+ origin={-65.0,47.5332},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ OpenIPSL.Electrical.Solar.KTH.Auxiliary.SimpleLagg simpleLagg1(xo=v0)
+ annotation (Placement(visible=true, transformation(
+ origin={-132.2917,60.0},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ equation
+ connect(id_ref, gain1.y) annotation (Line(
+ visible=true,
+ origin={97.9312,-8.9184},
+ points={{62.0688,53.9184},{27.0688,53.9184},{27.0688,2.1631},{-22.9312,
+ 2.1631},{-22.9312,-56.0816},{-70.3443,-56.0816}},
+ color={0,0,127}));
+ connect(PI2.yo, limiter1.u) annotation (Line(
+ visible=true,
+ origin={-31.2702,-65.0},
+ points={{-7.7298,0},{7.7299,0}},
+ color={0,0,127}));
+ connect(add1.y, PI2.yi) annotation (Line(
+ visible=true,
+ origin={-68.0,-65.0},
+ points={{-6.0,0.0},{6.0,0.0}},
+ color={0,0,127}));
+ connect(simpleLagg1.yo, add2.u1) annotation (Line(
+ visible=true,
+ origin={-117.0729,57.0978},
+ points={{-4.2188,2.9022},{-2.9271,2.9022},{-2.9271,-2.9021},{10.0729,-2.9021}},
+ color={0,0,127}));
+
+ connect(uac, simpleLagg1.yi) annotation (Line(
+ visible=true,
+ origin={-156.3279,60.0},
+ points={{-12.0363,0.0},{12.0362,0.0}},
+ color={0,0,127}));
+ connect(PI3.yo, limiter2.u) annotation (Line(
+ visible=true,
+ origin={-43.9052,47.4423},
+ points={{-10.0948,0.0909},{2.3649,0.0909},{2.3649,-0.091},{5.3649,-0.091}},
+ color={0,0,127}));
+
+ connect(add2.y, PI3.yi) annotation (Line(
+ visible=true,
+ origin={-80.25,47.8645},
+ points={{-3.75,0.3312},{0.25,0.3312},{0.25,-0.3313},{3.25,-0.3313}},
+ color={0,0,127}));
+ connect(udc, add1.u1) annotation (Line(
+ visible=true,
+ origin={-116.2596,-53.6733},
+ points={{-51.779,5.3267},{16.2596,5.3267},{16.2596,-5.3267},{19.2596,-5.3267}},
+ color={0,0,127}));
+
+ connect(gain2.y, iq_ref) annotation (Line(
+ visible=true,
+ origin={97.75,-6.3243},
+ points={{-76.75,53.6756},{7.25,53.6757},{7.25,-53.6757},{62.25,-53.6757}},
+ color={0,0,127}));
+
+ connect(Vdcref, add1.u2) annotation (Line(
+ visible=true,
+ origin={-116.341,-76.258},
+ points={{-52.0232,-5.2581},{16.341,-5.258},{16.341,5.258},{19.341,5.258}},
+ color={0,0,127}));
+
+ connect(add2.u2, Vacref) annotation (Line(
+ visible=true,
+ origin={-141.1202,36.0979},
+ points={{34.1202,6.0978},{-3.5567,6.0979},{-3.5567,-6.0979},{-27.0067,-6.0979}},
+ color={0,0,127}));
+
+ connect(limiter2.y, gain2.u) annotation (Line(
+ visible=true,
+ origin={-8.7701,47.3513},
+ points={{-6.7702,0},{6.7701,0}},
+ color={0,0,127}));
+ connect(limiter1.y, gain1.u) annotation (Line(
+ visible=true,
+ origin={2.0233,-65.0},
+ points={{-2.5636,0},{2.5636,0}},
+ color={0,0,127}));
+ annotation (
+ Icon(coordinateSystem(
+ extent={{-100.0,-100.0},{100.0,100.0}},
+ preserveAspectRatio=true,
+ initialScale=0.1,
+ grid={10,10}), graphics={Rectangle(
+ visible=true,
+ fillColor={255,255,255},
+ extent={{-100.0,-100.0},{100.0,100.0}}),Text(
+ visible=true,
+ origin={2.9728,2.2168},
+ fillPattern=FillPattern.Solid,
+ extent={{-41.0253,-27.7832},{41.0253,27.7832}},
+ textString="Controller",
+ fontName="Arial"),Text(
+ visible=true,
+ origin={-70.0,72.8039},
+ fillPattern=FillPattern.Solid,
+ extent={{-25.3921,-17.1961},{25.3921,17.1961}},
+ textString="vac",
+ fontName="Arial"),Text(
+ visible=true,
+ origin={-71.5131,22.8039},
+ fillPattern=FillPattern.Solid,
+ extent={{-25.3921,-17.1961},{25.3921,17.1961}},
+ textString="vacref",
+ fontName="Arial"),Text(
+ visible=true,
+ origin={-70.0,-27.1961},
+ fillPattern=FillPattern.Solid,
+ extent={{-25.3921,-17.1961},{25.3921,17.1961}},
+ textString="vdc",
+ fontName="Arial"),Text(
+ visible=true,
+ origin={-71.8371,-80.0},
+ fillPattern=FillPattern.Solid,
+ extent={{-25.3921,-17.1961},{25.3921,17.1961}},
+ textString="vdcref",
+ fontName="Arial"),Text(
+ visible=true,
+ origin={67.86,42.8039},
+ fillPattern=FillPattern.Solid,
+ extent={{-25.3921,-17.1961},{25.3921,17.1961}},
+ textString="id_ref",
+ fontName="Arial"),Text(
+ visible=true,
+ origin={68.1306,-47.1961},
+ fillPattern=FillPattern.Solid,
+ extent={{-25.3921,-17.1961},{25.3921,17.1961}},
+ textString="iq_ref",
+ fontName="Arial")}),
+ Diagram(coordinateSystem(
+ extent={{-148.5,-105.0},{148.5,105.0}},
+ preserveAspectRatio=true,
+ initialScale=0.1,
+ grid={5,5})),
+ Documentation(info="
+
+
+Reference |
+TBD |
+
+
+Last update |
+TBD |
+
+
+Author |
+Joan Russinol, SmarTS Lab, KTH Royal Institute of Technology |
+
+
+Contact |
+luigiv@kth.se |
+
+
+"));
+ end Controller;
+
+ model DCBusBar
+ parameter Real Pnen=0.5 "MW rated power";
+ parameter Real UdcN=1 "kV Nominal DC voltage";
+ parameter Real C=0.0172 "s of capacitor on DC busbar";
+ parameter Real Udc0=700 "Initial dc voltage";
+ Modelica.Blocks.Interfaces.RealInput Pac "voltage array" annotation (
+ Placement(
+ visible=true,
+ transformation(
+ origin={-168.2447,-30.0},
+ extent={{-20.0,-20.0},{20.0,20.0}},
+ rotation=0),
+ iconTransformation(
+ origin={-120.0,60.0},
+ extent={{-20.0,-20.0},{20.0,20.0}},
+ rotation=0)));
+ Modelica.Blocks.Interfaces.RealInput Ipv "current array" annotation (
+ Placement(
+ visible=true,
+ transformation(
+ origin={-168.0962,67.0723},
+ extent={{-20.0,-20.0},{20.0,20.0}},
+ rotation=0),
+ iconTransformation(
+ origin={-120.0,-30.0},
+ extent={{-20.0,-20.0},{20.0,20.0}},
+ rotation=0)));
+ Modelica.Blocks.Interfaces.RealOutput Vdc(start=Udc0) annotation (Placement(
+ visible=true,
+ transformation(
+ origin={160.0,-0.0},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0),
+ iconTransformation(
+ origin={110.0,0.0},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ Modelica.Blocks.Math.Add add1(k2=-1) annotation (Placement(visible=true,
+ transformation(
+ origin={-50.0,0.0},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ Modelica.Blocks.Nonlinear.Limiter limiter1(uMax=876, uMin=0) annotation (
+ Placement(visible=true, transformation(
+ origin={100.0,0.0},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ OpenIPSL.Electrical.Solar.KTH.Auxiliary.Calcurrent calcurrent1(Udc0=Udc0)
+ annotation (Placement(visible=true, transformation(
+ origin={-108.3112,-33.4951},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ OpenIPSL.Electrical.Solar.KTH.Auxiliary.AtoPU atoPU1(Pnen=Pnen,
+ UdcN=UdcN) annotation (Placement(visible=true, transformation(
+ origin={-22.2363,0.0},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ OpenIPSL.Electrical.Solar.KTH.Auxiliary.Capacitor capacitor1(
+ C=C,
+ Udc0=Udc0,
+ UdcN=UdcN) annotation (Placement(visible=true, transformation(
+ origin={7.8812,0.0},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ OpenIPSL.Electrical.Solar.KTH.Auxiliary.pu_to_A pu_to_A1(Pnen=Pnen,
+ UdcN=UdcN) annotation (Placement(visible=true, transformation(
+ origin={40.0,0.0},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ equation
+ connect(limiter1.y, Vdc) annotation (Line(
+ visible=true,
+ origin={135.5,0.0},
+ points={{-24.5,0.0},{24.5,0.0}},
+ color={0,0,127}));
+ connect(pu_to_A1.y0, limiter1.u) annotation (Line(
+ visible=true,
+ origin={69.5,0.0},
+ points={{-18.5,0.0},{18.5,-0.0}},
+ color={0,0,127}));
+ connect(capacitor1.y0, pu_to_A1.yi) annotation (Line(
+ visible=true,
+ origin={23.4406,0.0},
+ points={{-4.5594,0.0},{4.5594,-0.0}},
+ color={0,0,127}));
+ connect(capacitor1.yi, atoPU1.y0) annotation (Line(
+ visible=true,
+ origin={-7.6775,0.0},
+ points={{3.5587,0},{-3.5588,0}},
+ color={0,0,127}));
+ connect(add1.y, atoPU1.yi) annotation (Line(
+ visible=true,
+ origin={-36.6181,0.0},
+ points={{-2.3819,0},{2.3818,0}},
+ color={0,0,127}));
+ connect(add1.u2, calcurrent1.yo) annotation (Line(
+ visible=true,
+ origin={-77.3245,-22.3845},
+ points={{15.3245,16.3845},{12.3245,16.3845},{12.3245,-10.8292},{-19.9867,
+ -10.8292},{-19.9867,-11.1106}},
+ color={0,0,127}));
+ connect(Ipv, add1.u1) annotation (Line(
+ visible=true,
+ origin={-90.0241,36.5361},
+ points={{-78.0721,30.5362},{25.0241,30.5362},{25.0241,-30.5361},{28.0241,
+ -30.5361}},
+ color={0,0,127}));
+ connect(calcurrent1.udc, Vdc) annotation (Line(
+ visible=true,
+ origin={-30.4173,-44.0824},
+ points={{-89.8939,5.5873},{-106.096,5.5873},{-106.096,-23.7522},{-104.583,
+ -23.7522},{-104.583,-25.9176},{160.417,-25.9176},{160.417,44.0824},{
+ 190.417,44.0824}},
+ color={0,0,127}));
+ connect(Pac, calcurrent1.yi) annotation (Line(
+ visible=true,
+ origin={-133.7946,-29.7476},
+ points={{-34.4501,-0.2524},{10.4834,-0.2524},{10.4834,0.2525},{13.4834,
+ 0.2525}},
+ color={0,0,127}));
+ annotation (
+ Icon(coordinateSystem(
+ extent={{-100.0,-100.0},{100.0,100.0}},
+ preserveAspectRatio=true,
+ initialScale=0.1,
+ grid={10,10}), graphics={Rectangle(
+ visible=true,
+ fillColor={255,255,255},
+ extent={{-100.0,-100.0},{100.0,100.0}}),Text(
+ visible=true,
+ origin={-50.0,60.0},
+ fillPattern=FillPattern.Solid,
+ extent={{-47.2303,-30.0},{47.2303,30.0}},
+ textString="Pac [MW]",
+ fontName="Arial"),Text(
+ visible=true,
+ origin={-68.5241,-31.9581},
+ fillPattern=FillPattern.Solid,
+ extent={{-15.9047,-15.0129},{15.9047,15.0129}},
+ textString="Ipv",
+ fontName="Arial"),Text(
+ visible=true,
+ origin={70.0,0.0},
+ fillPattern=FillPattern.Solid,
+ extent={{-23.1601,-13.4726},{23.1601,13.4726}},
+ textString="Vdc",
+ fontName="Arial")}),
+ Diagram(coordinateSystem(
+ extent={{-148.5,-105.0},{148.5,105.0}},
+ preserveAspectRatio=true,
+ initialScale=0.1,
+ grid={5,5})),
+ Documentation(info="
+
+
+Reference |
+TBD |
+
+
+Last update |
+TBD |
+
+
+Author |
+Joan Russinol, SmarTS Lab, KTH Royal Institute of Technology |
+
+
+Contact |
+luigiv@kth.se |
+
+
+"));
+ end DCBusBar;
+
+ model MPPT
+ Modelica.Blocks.Interfaces.RealOutput Vdref(start=700) annotation (Placement(
+ visible=true,
+ transformation(
+ origin={187.3027,-0.0},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0),
+ iconTransformation(
+ origin={110.0,0.0},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ Modelica.Blocks.Interfaces.RealInput Varray(start=700) annotation (Placement(
+ visible=true,
+ transformation(
+ origin={-168.4441,40.0},
+ extent={{-20.0,-20.0},{20.0,20.0}},
+ rotation=0),
+ iconTransformation(
+ origin={-120.0,40.0},
+ extent={{-20.0,-20.0},{20.0,20.0}},
+ rotation=0)));
+ Modelica.Blocks.Interfaces.RealInput Iarray(start=641.2) annotation (
+ Placement(
+ visible=true,
+ transformation(
+ origin={-168.0142,-28.0297},
+ extent={{-20.0,-20.0},{20.0,20.0}},
+ rotation=0),
+ iconTransformation(
+ origin={-120.0,-50.0},
+ extent={{-20.0,-20.0},{20.0,20.0}},
+ rotation=0)));
+ parameter Real Tdelay1=0.0045;
+ parameter Real Tdelay=0.005;
+ parameter Real Vbase=1;
+ parameter Real Vmpp0_array=700;
+ parameter Real Step=125;
+ Modelica.Blocks.Math.Add add1(k2=-1) annotation (Placement(visible=true,
+ transformation(
+ origin={0.0,40.0},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ Modelica.Blocks.Math.Add add2(k2=-1) annotation (Placement(visible=true,
+ transformation(
+ origin={-1.9703,-25.0},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ OpenIPSL.Electrical.Solar.KTH.Auxiliary.InputSelectorEpsilon inputSelectorEpsilon1
+ annotation (Placement(visible=true, transformation(
+ origin={65.0,5.0},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ Modelica.Blocks.Math.Gain gain1(k=Vmpp0_array*Tdelay/Step) annotation (
+ Placement(visible=true, transformation(
+ origin={95.0,5.0},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ Modelica.Blocks.Math.Add add3(k2=+1) annotation (Placement(visible=true,
+ transformation(
+ origin={123.0297,35.0},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ Modelica.Blocks.Nonlinear.FixedDelay fixedDelay4(delayTime=Tdelay1)
+ annotation (Placement(visible=true, transformation(
+ origin={-45.0,-26.7774},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ Modelica.Blocks.Nonlinear.FixedDelay fixedDelay3(delayTime=Tdelay1)
+ annotation (Placement(visible=true, transformation(
+ origin={-52.3186,40.0},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ Modelica.Blocks.Nonlinear.FixedDelay fixedDelay2(delayTime=Tdelay)
+ annotation (Placement(visible=true, transformation(
+ origin={-106.6572,-25.0},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ Modelica.Blocks.Nonlinear.FixedDelay fixedDelay1(delayTime=Tdelay)
+ annotation (Placement(visible=true, transformation(
+ origin={-106.6255,40.0},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ equation
+ connect(fixedDelay1.y, inputSelectorEpsilon1.vd) annotation (Line(
+ visible=true,
+ origin={-59.6663,23.3137},
+ points={{-35.9592,16.6863},{-20.3337,16.6863},{-20.3337,-6.144},{-18.0199,
+ -6.144},{-18.0199,-10.5423},{112.666,-10.5423}},
+ color={0,0,127}));
+ connect(fixedDelay2.y, inputSelectorEpsilon1.id) annotation (Line(
+ visible=true,
+ origin={-33.9199,-5.4748},
+ points={{-61.7373,-19.5252},{-51.5513,-19.5252},{-51.5513,13.0745},{
+ 86.9199,13.0745},{86.9199,12.9015}},
+ color={0,0,127}));
+ connect(add1.y, inputSelectorEpsilon1.dv) annotation (Line(
+ visible=true,
+ origin={34.4337,17.6894},
+ points={{-23.4337,22.3106},{-6.8495,22.3106},{-6.8495,-14.5932},{18.5663,
+ -14.5932},{18.5663,-15.4347}},
+ color={0,0,127}));
+ connect(inputSelectorEpsilon1.di, add2.y) annotation (Line(
+ visible=true,
+ origin={21.5223,-14.2005},
+ points={{31.4777,10.7996},{-9.4926,10.7996},{-9.4926,-10.7995},{-12.4926,
+ -10.7995}},
+ color={0,0,127}));
+ connect(fixedDelay1.y, add3.u1) annotation (Line(
+ visible=true,
+ origin={-12.7429,50.2},
+ points={{-82.8826,-10.2},{-73.2868,-10.2},{-73.2868,14.8},{123.773,14.8},
+ {123.773,-9.2}},
+ color={0,0,127}));
+ connect(fixedDelay1.y, add1.u1) annotation (Line(
+ visible=true,
+ origin={-55.9251,49.2},
+ points={{-39.7004,-9.2},{-24.0749,-9.2},{-24.0749,10.8},{43.9251,10.8},{
+ 43.9251,-3.2}},
+ color={0,0,127}));
+ connect(fixedDelay1.y, fixedDelay3.u) annotation (Line(
+ visible=true,
+ origin={-79.972,40.0},
+ points={{-15.6535,0},{15.6534,0}},
+ color={0,0,127}));
+ connect(Varray, fixedDelay1.u) annotation (Line(
+ visible=true,
+ origin={-143.5348,40.0},
+ points={{-24.9093,0},{24.9093,0}},
+ color={0,0,127}));
+ connect(fixedDelay2.y, add2.u1) annotation (Line(
+ visible=true,
+ origin={-57.5163,-14.6141},
+ points={{-38.1409,-10.3859},{-24.4755,-10.3859},{-24.4755,12.5788},{
+ 43.546,12.5788},{43.546,-4.3859}},
+ color={0,0,127}));
+ connect(fixedDelay2.y, fixedDelay4.u) annotation (Line(
+ visible=true,
+ origin={-68.1643,-25.8887},
+ points={{-27.4929,0.8887},{8.1643,0.8887},{8.1643,-0.8887},{11.1643,-0.8887}},
+ color={0,0,127}));
+
+ connect(Iarray, fixedDelay2.u) annotation (Line(
+ visible=true,
+ origin={-132.4965,-26.5148},
+ points={{-35.5177,-1.5149},{10.8392,-1.5148},{10.8392,1.5148},{13.8393,
+ 1.5148}},
+ color={0,0,127}));
+ connect(fixedDelay3.y, add1.u2) annotation (Line(
+ visible=true,
+ origin={-20.8296,37.0},
+ points={{-20.489,3.0},{5.8296,3.0},{5.8296,-3.0},{8.8296,-3.0}},
+ color={0,0,127}));
+ connect(fixedDelay4.y, add2.u2) annotation (Line(
+ visible=true,
+ origin={-20.4777,-28.8887},
+ points={{-13.5223,2.1113},{3.5074,2.1113},{3.5074,-2.1113},{6.5074,-2.1113}},
+ color={0,0,127}));
+
+ connect(add3.y, Vdref) annotation (Line(
+ visible=true,
+ origin={162.8331,17.5},
+ points={{-28.8034,17.5},{2.1669,17.5},{2.1669,-17.5},{24.4696,-17.5}},
+ color={0,0,127}));
+ connect(inputSelectorEpsilon1.k, gain1.u) annotation (Line(
+ visible=true,
+ origin={79.5,5.0},
+ points={{-3.5,0.0},{3.5,0.0}},
+ color={0,0,127}));
+ connect(gain1.y, add3.u2) annotation (Line(
+ visible=true,
+ origin={108.5148,17.4083},
+ points={{-2.5148,-12.4083},{0.4852,-12.4083},{0.4852,0.8167},{-0.4852,
+ 0.8167},{-0.4852,11.5917},{2.5149,11.5917}},
+ color={0,0,127}));
+ annotation (
+ Icon(coordinateSystem(
+ extent={{-100.0,-100.0},{100.0,100.0}},
+ preserveAspectRatio=true,
+ initialScale=0.1,
+ grid={10,10}), graphics={Rectangle(
+ visible=true,
+ fillColor={255,255,255},
+ extent={{-100.0,-100.0},{100.0,100.0}}),Text(
+ visible=true,
+ origin={-2.5936,-0.1486},
+ fillPattern=FillPattern.Solid,
+ extent={{-42.5936,-24.8233},{42.5936,24.8233}},
+ textString="%name",
+ fontName="Arial"),Text(
+ visible=true,
+ origin={-76.6608,38.9853},
+ fillPattern=FillPattern.Solid,
+ extent={{-13.3392,-18.9853},{13.3392,18.9853}},
+ textString="Varray",
+ fontName="Arial"),Text(
+ visible=true,
+ origin={-73.5779,-52.1735},
+ fillPattern=FillPattern.Solid,
+ extent={{-18.8776,-14.7156},{18.8776,14.7156}},
+ textString="Iarray",
+ fontName="Arial"),Text(
+ visible=true,
+ origin={83.3883,-0.7022},
+ fillPattern=FillPattern.Solid,
+ extent={{-9.6618,-10.7022},{9.6618,10.7022}},
+ textString="Vdref",
+ fontName="Arial")}),
+ Diagram(coordinateSystem(
+ extent={{-148.5,-105.0},{148.5,105.0}},
+ preserveAspectRatio=true,
+ initialScale=0.1,
+ grid={5,5})),
+ Documentation(info="
+
+
+Reference |
+TBD |
+
+
+Last update |
+TBD |
+
+
+Author |
+Joan Russinol, SmarTS Lab, KTH Royal Institute of Technology |
+
+
+Contact |
+luigiv@kth.se |
+
+
+"));
+ end MPPT;
+
+ model PVnew
+ OpenIPSL.Electrical.Solar.KTH.Auxiliary.PVarray PVarray1(
+ Estc=Estc,
+ Imp=Imp,
+ Iscref=Iscref,
+ Ki=Ki,
+ Kv=Kv,
+ Tstc=Tstc,
+ Vmp=Vmp,
+ Vocref=Vocref) annotation (Placement(visible=true,
+ transformation(
+ origin={-10.0,5.0},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ Modelica.Blocks.Interfaces.RealInput E annotation (Placement(
+ visible=true,
+ transformation(
+ origin={-170.0,10.0},
+ extent={{-20.0,-20.0},{20.0,20.0}},
+ rotation=0),
+ iconTransformation(
+ origin={-120.0,0.0},
+ extent={{-20.0,-20.0},{20.0,20.0}},
+ rotation=0)));
+ Modelica.Blocks.Interfaces.RealOutput Iarray annotation (Placement(
+ visible=true,
+ transformation(
+ origin={141.6223,2.7793},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0),
+ iconTransformation(
+ origin={110.0,0.0},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ Modelica.Blocks.Interfaces.RealInput T annotation (Placement(
+ visible=true,
+ transformation(
+ origin={-170.0,-27.9545},
+ extent={{-20.0,-20.0},{20.0,20.0}},
+ rotation=0),
+ iconTransformation(
+ origin={-120.0,-70.0},
+ extent={{-20.0,-20.0},{20.0,20.0}},
+ rotation=0)));
+ Modelica.Blocks.Interfaces.RealOutput Varray annotation (Placement(
+ visible=true,
+ transformation(
+ origin={141.8597,-20.0},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0),
+ iconTransformation(
+ origin={110.0,70.0},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ Modelica.Blocks.Interfaces.RealInput Udc annotation (Placement(
+ visible=true,
+ transformation(
+ origin={-170.0,60.0},
+ extent={{-20.0,-20.0},{20.0,20.0}},
+ rotation=0),
+ iconTransformation(
+ origin={-120.0,70.0},
+ extent={{-20.0,-20.0},{20.0,20.0}},
+ rotation=0)));
+ Modelica.Blocks.Interfaces.RealOutput PowerArray annotation (Placement(
+ visible=true,
+ transformation(
+ origin={142.6599,-43.318},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0),
+ iconTransformation(
+ origin={110.0,-63.8978},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ Modelica.Blocks.Math.Gain gain1(k=1/nSerialModules) annotation (Placement(
+ visible=true, transformation(
+ origin={-70.0,60.0},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ Modelica.Blocks.Math.Gain gain2(k=nParallelModules) annotation (Placement(
+ visible=true, transformation(
+ origin={68.072,10.0},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ Modelica.Blocks.Math.Gain gain3(k=nSerialModules) annotation (Placement(
+ visible=true, transformation(
+ origin={70.0,-28.0297},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ Modelica.Blocks.Math.Product product1 annotation (Placement(visible=true,
+ transformation(
+ origin={60.0,60.0},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ parameter Real nSerialModules=20;
+ parameter Real nParallelModules=140;
+ parameter Real Tdelay=0.05;
+ parameter Real Imp=4.58 "Current at maximum power";
+ parameter Real Vmp=35 "Voltage at maximum power";
+ parameter Real Iscref=5
+ "Module short-circuit current reference at reference temp and irradiance";
+ parameter Real Vocref=43.8
+ "Module open-circuit voltage reference at reference temp and irradiance";
+ parameter Real Kv=-0.0039 "temperature correction factor for the voltage";
+ parameter Real Ki=0.0004 "temperature correction factor for the current";
+ parameter Real Tstc=25 "Temperature at the standard test conditions";
+ parameter Real Estc=1000 "Irradiance at the standard test conditions";
+ equation
+ connect(Udc, gain1.u) annotation (Line(
+ visible=true,
+ origin={-126.0,60.0},
+ points={{-44.0,0.0},{44.0,0.0}},
+ color={0,0,127}));
+ connect(gain2.y, Iarray) annotation (Line(
+ visible=true,
+ origin={119.3722,6.3896},
+ points={{-40.3002,3.6104},{9.0251,3.6104},{9.0251,-3.6103},{22.2501,-3.6103}},
+ color={0,0,127}));
+
+ connect(gain3.y, Varray) annotation (Line(
+ visible=true,
+ origin={120.0322,-24.0148},
+ points={{-39.0322,-4.0149},{8.6024,-4.0148},{8.6024,4.0148},{21.8275,
+ 4.0148}},
+ color={0,0,127}));
+ connect(product1.y, PowerArray) annotation (Line(
+ visible=true,
+ origin={115.264,-2.6636},
+ points={{-44.264,62.6636},{-5.264,62.6636},{-5.264,-42.3364},{27.3959,-42.3364},
+ {27.3959,-40.6544}},
+ color={0,0,127}));
+ connect(T, PVarray1.T) annotation (Line(
+ visible=true,
+ origin={-60.5,-14.9773},
+ points={{-109.5,-12.9772},{35.5,-12.9773},{35.5,12.9773},{38.5,12.9773}},
+ color={0,0,127}));
+
+ connect(Udc, product1.u1) annotation (Line(
+ visible=true,
+ origin={-66.8,71.2},
+ points={{-103.2,-11.2},{-63.2,-11.2},{-63.2,13.8},{114.8,13.8},{114.8,-5.2}},
+ color={0,0,127}));
+
+ connect(PVarray1.E, E) annotation (Line(
+ visible=true,
+ origin={-121.275,7.5},
+ points={{99.275,-2.5},{-25.275,-2.5},{-25.275,2.5},{-48.725,2.5}},
+ color={0,0,127}));
+ connect(PVarray1.V, gain3.u) annotation (Line(
+ visible=true,
+ origin={42.25,-13.2285},
+ points={{-41.25,14.8011},{12.75,14.8011},{12.75,-14.8012},{15.75,-14.8012}},
+ color={0,0,127}));
+
+ connect(gain2.y, product1.u2) annotation (Line(
+ visible=true,
+ origin={63.536,33.8119},
+ points={{15.536,-23.8119},{18.536,-23.8119},{18.536,3.6238},{-18.536,
+ 3.6238},{-18.536,20.1881},{-15.536,20.1881}},
+ color={0,0,127}));
+ connect(PVarray1.I, gain2.u) annotation (Line(
+ visible=true,
+ origin={40.804,9.5},
+ points={{-39.804,-0.5},{12.268,-0.5},{12.268,0.5},{15.268,0.5}},
+ color={0,0,127}));
+ connect(gain1.y, PVarray1.V1) annotation (Line(
+ visible=true,
+ origin={-36.6,31.1287},
+ points={{-22.4,28.8713},{-3.4,28.8713},{-3.4,-19.3069},{14.6,-19.3069},{
+ 14.6,-19.1287}},
+ color={0,0,127}));
+ annotation (
+ Icon(coordinateSystem(
+ extent={{-100.0,-100.0},{100.0,100.0}},
+ preserveAspectRatio=true,
+ initialScale=0.1,
+ grid={10,10}), graphics={Rectangle(
+ visible=true,
+ fillColor={255,255,255},
+ extent={{-100.0,-100.0},{100.0,100.0}}),Text(
+ visible=true,
+ origin={0.8251,1.0405},
+ fillPattern=FillPattern.Solid,
+ extent={{-39.1749,-15.0129},{39.1749,15.0129}},
+ textString="PVnew",
+ fontName="Arial"),Text(
+ visible=true,
+ origin={-74.7566,70.0},
+ fillPattern=FillPattern.Solid,
+ extent={{-20.0,-13.9876},{20.0,13.9876}},
+ textString="Vdc(700)",
+ fontName="Arial"),Text(
+ visible=true,
+ origin={-75.6751,-0.0},
+ fillPattern=FillPattern.Solid,
+ extent={{-20.0,-13.9876},{20.0,13.9876}},
+ textString="E(1000)",
+ fontName="Arial"),Text(
+ visible=true,
+ origin={-74.8099,-67.7542},
+ fillPattern=FillPattern.Solid,
+ extent={{-20.0,-13.9876},{20.0,13.9876}},
+ textString="Tref(25)",
+ fontName="Arial"),Text(
+ visible=true,
+ origin={68.1573,71.699},
+ fillPattern=FillPattern.Solid,
+ extent={{-20.0,-13.9876},{20.0,13.9876}},
+ textString="Varray",
+ fontName="Arial"),Text(
+ visible=true,
+ origin={74.6709,-0.0},
+ fillPattern=FillPattern.Solid,
+ extent={{-20.0,-13.9876},{20.0,13.9876}},
+ textString="Iarray",
+ fontName="Arial"),Text(
+ visible=true,
+ origin={74.3469,-62.1058},
+ fillPattern=FillPattern.Solid,
+ extent={{-20.0,-13.9876},{20.0,13.9876}},
+ textString="Parray",
+ fontName="Arial")}),
+ Diagram(coordinateSystem(
+ extent={{-148.5,-105.0},{148.5,105.0}},
+ preserveAspectRatio=true,
+ initialScale=0.1,
+ grid={5,5})),
+ Documentation(info="
+
+
+Reference |
+TBD |
+
+
+Last update |
+TBD |
+
+
+Author |
+Joan Russinol, SmarTS Lab, KTH Royal Institute of Technology |
+
+
+Contact |
+luigiv@kth.se |
+
+
+"));
+ end PVnew;
+
+ model Staticgenerator
+ parameter Real Pnen=0.5 "MW rated power";
+ parameter Real v0=1 "Power flow, node voltage";
+ parameter Real anglev0=1 "Power flow, node angle";
+ parameter Real p0=1 "Power flow, node active power";
+ parameter Real q0=1 "Power flow, node reactive power";
+ parameter Real Td=0.00015 "d-axis inverter time constant";
+ parameter Real Tq=0.00015 "q-axis inverter time constant";
+ Modelica.Blocks.Interfaces.RealInput id_ref annotation (Placement(
+ visible=true,
+ transformation(
+ origin={-175.0,55.0},
+ extent={{-20.0,-20.0},{20.0,20.0}},
+ rotation=0),
+ iconTransformation(
+ origin={-120.0,70.0},
+ extent={{-20.0,-20.0},{20.0,20.0}},
+ rotation=0)));
+ Modelica.Blocks.Interfaces.RealInput iq_ref annotation (Placement(
+ visible=true,
+ transformation(
+ origin={-181.6246,25.0},
+ extent={{-20.0,-20.0},{20.0,20.0}},
+ rotation=0),
+ iconTransformation(
+ origin={-120.0,20.0},
+ extent={{-20.0,-20.0},{20.0,20.0}},
+ rotation=0)));
+ OpenIPSL.Interfaces.PwPin p(vr(start=v0*cos(anglev0)), vi(start=
+ v0*sin(anglev0))) annotation (Placement(
+ visible=true,
+ transformation(
+ origin={147.2097,10.0},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0),
+ iconTransformation(
+ origin={110.0,0.0},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ Real anglev;
+ Real id;
+ Real iq;
+ Real Q;
+ Modelica.Blocks.Interfaces.RealOutput P(start=p0) annotation (Placement(
+ visible=true,
+ transformation(
+ origin={165.1089,-78.9737},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0),
+ iconTransformation(
+ origin={110.0,-75.213},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ Modelica.Blocks.Interfaces.RealOutput v(start=v0) annotation (Placement(
+ visible=true,
+ transformation(
+ origin={165.1089,-78.9737},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0),
+ iconTransformation(
+ origin={110.0,70.0},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ initial equation
+ der(iq) = 0;
+ der(id) = 0;
+ equation
+ -P = p.vr*p.ir + p.vi*p.ii;
+ -Q = p.vi*p.ir - p.vr*p.ii;
+ v = sqrt(p.vr^2 + p.vi^2);
+ anglev = atan2(p.vi, p.vr);
+ der(id) = (id_ref - id)/Td;
+ der(iq) = (iq_ref - iq)/Tq;
+ p.ir = -(id*cos(anglev) - iq*sin(anglev))*Pnen;
+ p.ii = -(id*sin(anglev) + iq*cos(anglev))*Pnen;
+ annotation (
+ Icon(coordinateSystem(
+ extent={{-100.0,-100.0},{100.0,100.0}},
+ preserveAspectRatio=true,
+ initialScale=0.1,
+ grid={10,10}), graphics={Text(
+ visible=true,
+ origin={-77.7013,70.0105},
+ fillPattern=FillPattern.Solid,
+ extent={{-12.2987,-8.1753},{12.2987,8.1753}},
+ textString="idref",
+ fontName="Arial"),Text(
+ visible=true,
+ origin={-77.7013,21.8247},
+ fillPattern=FillPattern.Solid,
+ extent={{-12.2987,-8.1753},{12.2987,8.1753}},
+ textString="iqref",
+ fontName="Arial"),Text(
+ visible=true,
+ origin={74.8853,-74.849},
+ fillPattern=FillPattern.Solid,
+ extent={{-12.2987,-8.1753},{12.2987,8.1753}},
+ textString="P,pu",
+ fontName="Arial"),Text(
+ visible=true,
+ origin={16.0747,3.9219},
+ fillPattern=FillPattern.Solid,
+ extent={{-66.0747,-43.9219},{66.0747,43.9219}},
+ textString="StaticGen",
+ fontName="Arial"),Rectangle(
+ visible=true,
+ fillColor={255,255,255},
+ extent={{-100.0,-100.0},{100.0,100.0}}),Text(
+ visible=true,
+ origin={73.4293,69.8619},
+ fillPattern=FillPattern.Solid,
+ extent={{-19.0262,-13.6751},{19.0262,13.6751}},
+ textString="Vac,pu",
+ fontName="Arial")}),
+ Diagram(coordinateSystem(
+ extent={{-148.5,-105.0},{148.5,105.0}},
+ preserveAspectRatio=true,
+ initialScale=0.1,
+ grid={5,5})),
+ Documentation(info="
+
+
+Reference |
+TBD |
+
+
+Last update |
+TBD |
+
+
+Author |
+Joan Russinol, SmarTS Lab, KTH Royal Institute of Technology |
+
+
+Contact |
+luigiv@kth.se |
+
+
+"));
+ end Staticgenerator;
+ annotation (Diagram(coordinateSystem(
+ extent={{-148.5,-105.0},{148.5,105.0}},
+ preserveAspectRatio=true,
+ initialScale=0.1,
+ grid={5,5})), Documentation);
+ end PFblocks;
+
+ package Auxiliary
+ model AtoPU
+ Modelica.Blocks.Interfaces.RealOutput y0 annotation (Placement(
+ visible=true,
+ transformation(
+ origin={155.0,-0.0},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0),
+ iconTransformation(
+ origin={110.0,0.0},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ Modelica.Blocks.Interfaces.RealInput yi annotation (Placement(
+ visible=true,
+ transformation(
+ origin={-155.0,0.0},
+ extent={{-20.0,-20.0},{20.0,20.0}},
+ rotation=0),
+ iconTransformation(
+ origin={-120.0,-0.0},
+ extent={{-20.0,-20.0},{20.0,20.0}},
+ rotation=0)));
+ parameter Real Pnen;
+ parameter Real UdcN;
+ equation
+ y0 = yi/Pnen*1000/UdcN;
+ annotation (
+ Icon(coordinateSystem(
+ extent={{-100.0,-100.0},{100.0,100.0}},
+ preserveAspectRatio=true,
+ initialScale=0.1,
+ grid={10,10}), graphics={Text(
+ visible=true,
+ origin={1.9581,1.6889},
+ fillPattern=FillPattern.Solid,
+ extent={{-31.9581,-31.6889},{31.9581,31.6889}},
+ textString="A_to_pu",
+ fontName="Arial"),Rectangle(
+ visible=true,
+ fillColor={255,255,255},
+ extent={{-100.0,-100.0},{100.0,100.0}})}),
+ Diagram(coordinateSystem(
+ extent={{-148.5,-105.0},{148.5,105.0}},
+ preserveAspectRatio=true,
+ initialScale=0.1,
+ grid={5,5})),
+ Documentation(info="
+
+
+Reference |
+TBD |
+
+
+Last update |
+TBD |
+
+
+Author |
+Joan Russinol, SmarTS Lab, KTH Royal Institute of Technology |
+
+
+Contact |
+luigiv@kth.se |
+
+
+"));
+ end AtoPU;
+
+ model Calcurrent
+ parameter Real Udc0=700 "Initial dc voltage";
+ Modelica.Blocks.Interfaces.RealInput yi annotation (Placement(
+ visible=true,
+ transformation(
+ origin={-155.0,40.0},
+ extent={{-20.0,-20.0},{20.0,20.0}},
+ rotation=0),
+ iconTransformation(
+ origin={-120.0,40.0},
+ extent={{-20.0,-20.0},{20.0,20.0}},
+ rotation=0)));
+ Modelica.Blocks.Interfaces.RealInput udc(start=Udc0) annotation (Placement(
+ visible=true,
+ transformation(
+ origin={-150.0,-15.0},
+ extent={{-20.0,-20.0},{20.0,20.0}},
+ rotation=0),
+ iconTransformation(
+ origin={-120.0,-50.0},
+ extent={{-20.0,-20.0},{20.0,20.0}},
+ rotation=0)));
+ Modelica.Blocks.Interfaces.RealOutput yo annotation (Placement(
+ visible=true,
+ transformation(
+ origin={157.5089,7.3692},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0),
+ iconTransformation(
+ origin={110.0,0.0},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ equation
+ yo = yi/udc*1000000;
+ annotation (
+ Icon(coordinateSystem(
+ extent={{-100.0,-100.0},{100.0,100.0}},
+ preserveAspectRatio=true,
+ initialScale=0.1,
+ grid={10,10}), graphics={Text(
+ visible=true,
+ origin={-80.1182,38.5265},
+ fillPattern=FillPattern.Solid,
+ extent={{-13.2292,-11.4735},{13.2292,11.4735}},
+ textString="0",
+ fontName="Arial"),Text(
+ visible=true,
+ origin={-80.0,-51.4735},
+ fillPattern=FillPattern.Solid,
+ extent={{-13.2292,-11.4735},{13.2292,11.4735}},
+ textString="1",
+ fontName="Arial"),Text(
+ visible=true,
+ origin={76.7708,-0.0},
+ fillPattern=FillPattern.Solid,
+ extent={{-13.2292,-11.4735},{13.2292,11.4735}},
+ textString="out",
+ fontName="Arial"),Rectangle(
+ visible=true,
+ fillColor={255,255,255},
+ extent={{-100.0,-100.0},{100.0,100.0}}),Text(
+ visible=true,
+ origin={-2.514,58.5651},
+ fillPattern=FillPattern.Solid,
+ extent={{-27.486,-14.5669},{27.486,14.5669}},
+ textString="Calc_current",
+ fontName="Arial")}),
+ Diagram(coordinateSystem(
+ extent={{-148.5,-105.0},{148.5,105.0}},
+ preserveAspectRatio=true,
+ initialScale=0.1,
+ grid={5,5})),
+ Documentation(info="
+
+
+Reference |
+TBD |
+
+
+Last update |
+TBD |
+
+
+Author |
+Joan Russinol, SmarTS Lab, KTH Royal Institute of Technology |
+
+
+Contact |
+luigiv@kth.se |
+
+
+"));
+ end Calcurrent;
+
+ model Capacitor
+ Modelica.Blocks.Interfaces.RealOutput y0 annotation (Placement(
+ visible=true,
+ transformation(
+ origin={155.0,-0.0},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0),
+ iconTransformation(
+ origin={110.0,0.0},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ Modelica.Blocks.Interfaces.RealInput yi annotation (Placement(
+ visible=true,
+ transformation(
+ origin={-155.0,0.0},
+ extent={{-20.0,-20.0},{20.0,20.0}},
+ rotation=0),
+ iconTransformation(
+ origin={-120.0,-0.0},
+ extent={{-20.0,-20.0},{20.0,20.0}},
+ rotation=0)));
+ Real x(start=Udc0/(1000*UdcN));
+ parameter Real C;
+ parameter Real Udc0;
+ parameter Real UdcN;
+ equation
+ y0 = x;
+ der(x) = yi/C;
+ annotation (
+ Icon(coordinateSystem(
+ extent={{-100.0,-100.0},{100.0,100.0}},
+ preserveAspectRatio=true,
+ initialScale=0.1,
+ grid={10,10}), graphics={Rectangle(
+ visible=true,
+ fillColor={255,255,255},
+ extent={{-100.0,-100.0},{100.0,100.0}}),Text(
+ visible=true,
+ origin={0.0,2.2296},
+ fillPattern=FillPattern.Solid,
+ extent={{-23.283,-44.4441},{23.283,44.4441}},
+ textString="Capacitor",
+ fontName="Arial")}),
+ Diagram(coordinateSystem(
+ extent={{-148.5,-105.0},{148.5,105.0}},
+ preserveAspectRatio=true,
+ initialScale=0.1,
+ grid={5,5})),
+ Documentation(info="
+
+
+Reference |
+TBD |
+
+
+Last update |
+TBD |
+
+
+Author |
+Joan Russinol, SmarTS Lab, KTH Royal Institute of Technology |
+
+
+Contact |
+luigiv@kth.se |
+
+
+"));
+ end Capacitor;
+
+ model InputSelectorEpsilon
+ Modelica.Blocks.Interfaces.RealInput vd(start=700) annotation (Placement(
+ visible=true,
+ transformation(
+ origin={-167.6662,80.0},
+ extent={{-20.0,-20.0},{20.0,20.0}},
+ rotation=0),
+ iconTransformation(
+ origin={-120.0,77.7142},
+ extent={{-20.0,-20.0},{20.0,20.0}},
+ rotation=0)));
+ Modelica.Blocks.Interfaces.RealInput id(start=641.2) annotation (Placement(
+ visible=true,
+ transformation(
+ origin={-168.2292,30.0},
+ extent={{-20.0,-20.0},{20.0,20.0}},
+ rotation=0),
+ iconTransformation(
+ origin={-120.0,24.2671},
+ extent={{-20.0,-20.0},{20.0,20.0}},
+ rotation=0)));
+ Modelica.Blocks.Interfaces.RealInput dv(start=0) annotation (Placement(
+ visible=true,
+ transformation(
+ origin={-167.9388,-21.6068},
+ extent={{-20.0,-20.0},{20.0,20.0}},
+ rotation=0),
+ iconTransformation(
+ origin={-120.0,-27.4532},
+ extent={{-20.0,-20.0},{20.0,20.0}},
+ rotation=0)));
+ Modelica.Blocks.Interfaces.RealInput di(start=0) annotation (Placement(
+ visible=true,
+ transformation(
+ origin={-170.0,-80.0},
+ extent={{-20.0,-20.0},{20.0,20.0}},
+ rotation=0),
+ iconTransformation(
+ origin={-120.0,-84.009},
+ extent={{-20.0,-20.0},{20.0,20.0}},
+ rotation=0)));
+ Modelica.Blocks.Interfaces.RealOutput k(start=0) annotation (Placement(
+ visible=true,
+ transformation(
+ origin={160.0,0.0},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0),
+ iconTransformation(
+ origin={110.0,0.0},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+
+ function Inputselectorfunction
+ input Real vd;
+ input Real id;
+ input Real dv;
+ input Real di;
+ output Real k;
+ parameter Real Epsilon=0.01;
+ algorithm
+ if dv == 0 then
+ if di == 0 then
+ k := 0;
+ elseif di > 0 then
+ k := 1;
+ elseif di < 0 then
+ k := -1;
+ end if;
+ else
+ if abs(di/dv + id/vd) < Epsilon then
+ k := 0;
+ else
+ if di/dv + id/vd > 0 then
+ k := 1;
+ else
+ k := -1;
+ end if;
+ end if;
+ end if;
+ annotation (
+ Diagram(coordinateSystem(
+ extent={{-148.5,-105.0},{148.5,105.0}},
+ preserveAspectRatio=true,
+ initialScale=0.1,
+ grid={5,5})),
+ Diagram(coordinateSystem(
+ extent={{-148.5,-105.0},{148.5,105.0}},
+ preserveAspectRatio=true,
+ initialScale=0.1,
+ grid={5,5})),
+ Documentation);
+ end Inputselectorfunction;
+ algorithm
+ k := Inputselectorfunction(
+ vd,
+ id,
+ dv,
+ di);
+ annotation (
+ Icon(coordinateSystem(
+ extent={{-100.0,-100.0},{100.0,100.0}},
+ preserveAspectRatio=true,
+ initialScale=0.1,
+ grid={10,10}), graphics={Text(
+ visible=true,
+ origin={-85.4693,77.294},
+ fillPattern=FillPattern.Solid,
+ extent={{-8.7699,-10.7022},{8.7699,10.7022}},
+ textString="0",
+ fontName="Arial"),Text(
+ visible=true,
+ origin={-83.7123,27.3769},
+ fillPattern=FillPattern.Solid,
+ extent={{-8.7699,-10.7022},{8.7699,10.7022}},
+ textString="1",
+ fontName="Arial"),Text(
+ visible=true,
+ origin={-84.3336,-26.9995},
+ fillPattern=FillPattern.Solid,
+ extent={{-8.7699,-10.7022},{8.7699,10.7022}},
+ textString="2",
+ fontName="Arial"),Text(
+ visible=true,
+ origin={-83.4684,-82.2678},
+ fillPattern=FillPattern.Solid,
+ extent={{-8.7699,-10.7022},{8.7699,10.7022}},
+ textString="3",
+ fontName="Arial"),Text(
+ visible=true,
+ origin={75.8495,0.7022},
+ fillPattern=FillPattern.Solid,
+ extent={{-8.7699,-10.7022},{8.7699,10.7022}},
+ textString="k",
+ fontName="Arial"),Rectangle(
+ visible=true,
+ fillColor={255,255,255},
+ extent={{-100.0,-100.0},{100.0,100.0}})}),
+ Diagram(coordinateSystem(
+ extent={{-148.5,-105.0},{148.5,105.0}},
+ preserveAspectRatio=true,
+ initialScale=0.1,
+ grid={5,5})),
+ Documentation(info="
+
+
+Reference |
+TBD |
+
+
+Last update |
+TBD |
+
+
+Author |
+Joan Russinol, SmarTS Lab, KTH Royal Institute of Technology |
+
+
+Contact |
+luigiv@kth.se |
+
+
+"));
+ end InputSelectorEpsilon;
+
+ model PI
+ Modelica.Blocks.Interfaces.RealInput yi annotation (Placement(
+ visible=true,
+ transformation(
+ origin={-137.6396,33.4951},
+ extent={{-20.0,-20.0},{20.0,20.0}},
+ rotation=0),
+ iconTransformation(
+ origin={-120.0,0.0},
+ extent={{-20.0,-20.0},{20.0,20.0}},
+ rotation=0)));
+ Modelica.Blocks.Interfaces.RealOutput yo annotation (Placement(
+ visible=true,
+ transformation(
+ origin={105.0,35.0},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0),
+ iconTransformation(
+ origin={110.0,0.0},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ parameter Real K;
+ parameter Real T;
+ parameter Real xo;
+ parameter Real Ymax;
+ parameter Real Ymin;
+ Real x(start=xo);
+ Real x1(start=xo);
+ equation
+ if x > Ymax then
+ x1 = Ymax;
+ elseif x < Ymin then
+ x1 = Ymin;
+ else
+ x1 = x;
+ end if;
+ der(x) = K*yi/T;
+ yo = K*yi + x1;
+ annotation (
+ Icon(coordinateSystem(
+ extent={{-100.0,-100.0},{100.0,100.0}},
+ preserveAspectRatio=true,
+ initialScale=0.1,
+ grid={10,10}), graphics={Text(
+ visible=true,
+ origin={-13.5393,7.4321},
+ fillPattern=FillPattern.Solid,
+ extent={{-43.5393,-25.2692},{43.5393,25.2692}},
+ textString="PI",
+ fontName="Arial"),Rectangle(
+ visible=true,
+ fillColor={255,255,255},
+ extent={{-100.0,-100.0},{100.0,100.0}}),Rectangle(
+ visible=true,
+ origin={151.9125,3.2701},
+ fillColor={255,255,255},
+ extent={{-0.2973,-3.2701},{0.2973,3.2701}})}),
+ Diagram(coordinateSystem(
+ extent={{-148.5,-105.0},{148.5,105.0}},
+ preserveAspectRatio=true,
+ initialScale=0.1,
+ grid={5,5})),
+ Documentation(info="
+
+
+Reference |
+TBD |
+
+
+Last update |
+TBD |
+
+
+Author |
+Joan Russinol, SmarTS Lab, KTH Royal Institute of Technology |
+
+
+Contact |
+luigiv@kth.se |
+
+
+"));
+ end PI;
+
+ model PQ1
+ OpenIPSL.Interfaces.PwPin p annotation (Placement(
+ visible=true,
+ transformation(
+ origin={55.0,22.7992},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0),
+ iconTransformation(
+ origin={-110.0,0.0},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ parameter Real SystemBase=100;
+ parameter Real Sn=10;
+ parameter Real CoB=Sn/SystemBase;
+ parameter Real v0=1.00018548610126 "voltage magnitude after power flow, pu";
+ parameter Real anglev0=-0.0000253046024029618
+ "voltage angle after power flow";
+ parameter Real P0=0.4 "active power,pu";
+ parameter Real Q0=0.3 "reactive power,pu";
+ parameter Real Pref=P0*CoB;
+ parameter Real Qref=Q0*CoB;
+ parameter Real vd0=-v0*sin(anglev0) "Initialitation";
+ parameter Real vq0=v0*cos(anglev0) "Initialitation";
+ parameter Real Td=15 "d-axis inverter time constant";
+ parameter Real Tq=15 "q-axis inverter time constant";
+ parameter Real idref=(vq0*Qref + Pref*vd0)/(vq0^2 + vd0^2) "Initialitation";
+ parameter Real iqref=((-vd0*Qref) + Pref*vq0)/(vq0^2 + vd0^2)
+ "Initialitation";
+ Real idref1(start=idref);
+ Real iqref1(start=iqref);
+ Real v;
+ Real anglev;
+ Real id(start=idref);
+ Real iq(start=iqref);
+ Real vd(start=vd0);
+ Real vq(start=vq0);
+ Real Pgen(start=Pref);
+ Real Q(start=Qref);
+ Modelica.Blocks.Interfaces.RealInput P(start=Pref) annotation (Placement(
+ visible=true,
+ transformation(
+ origin={165.1089,40.5794},
+ extent={{-20.0,-20.0},{20.0,20.0}},
+ rotation=0),
+ iconTransformation(
+ origin={120.0,60.0},
+ extent={{-20.0,-20.0},{20.0,20.0}},
+ rotation=-180)));
+ equation
+ Pgen = vd*id + vq*iq;
+ Q = vq*id - vd*iq;
+ idref1 = (vq*Qref + P*vd)/(vq^2 + vd^2);
+ iqref1 = ((-vd*Qref) + P*vq)/(vq^2 + vd^2);
+ der(id) = (idref1 - id)/Td;
+ der(iq) = (iqref1 - iq)/Tq;
+ v = sqrt(p.vr^2 + p.vi^2);
+ anglev = atan2(p.vi, p.vr);
+ p.ir = -iq
+ "change of sign due to the fact than in modelica when entering is + and in this case is going out";
+ p.ii = id
+ "change of sign due to the fact than in modelica when entering is + and in this case is going out";
+ p.vr = vq;
+ p.vi = -vd;
+ annotation (
+ Icon(coordinateSystem(
+ extent={{-100.0,-100.0},{100.0,100.0}},
+ preserveAspectRatio=true,
+ initialScale=0.1,
+ grid={10,10}), graphics={Rectangle(
+ visible=true,
+ fillColor={255,255,255},
+ extent={{-100.0,-100.0},{100.0,100.0}}),Text(
+ visible=true,
+ origin={0.0,15.3102},
+ fillPattern=FillPattern.Solid,
+ extent={{-31.415,-20.0667},{31.415,20.0667}},
+ textString="%name",
+ fontName="Arial")}),
+ Diagram(coordinateSystem(
+ extent={{-148.5,-105.0},{148.5,105.0}},
+ preserveAspectRatio=true,
+ initialScale=0.1,
+ grid={5,5})),
+ Documentation(info="
+
+
+Reference |
+TBD |
+
+
+Last update |
+TBD |
+
+
+Author |
+Joan Russinol, SmarTS Lab, KTH Royal Institute of Technology |
+
+
+Contact |
+luigiv@kth.se |
+
+
+"));
+ end PQ1;
+
+ model pu_to_A
+ Modelica.Blocks.Interfaces.RealOutput y0 annotation (Placement(
+ visible=true,
+ transformation(
+ origin={160.0,0.0},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0),
+ iconTransformation(
+ origin={110.0,0.0},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ Modelica.Blocks.Interfaces.RealInput yi annotation (Placement(
+ visible=true,
+ transformation(
+ origin={-155.0,0.0},
+ extent={{-20.0,-20.0},{20.0,20.0}},
+ rotation=0),
+ iconTransformation(
+ origin={-120.0,-0.0},
+ extent={{-20.0,-20.0},{20.0,20.0}},
+ rotation=0)));
+ parameter Real Pnen;
+ parameter Real UdcN;
+ equation
+ y0 = yi*UdcN*1000;
+ annotation (
+ Icon(coordinateSystem(
+ extent={{-100.0,-100.0},{100.0,100.0}},
+ preserveAspectRatio=true,
+ initialScale=0.1,
+ grid={10,10}), graphics={Text(
+ visible=true,
+ origin={1.9581,1.6889},
+ fillPattern=FillPattern.Solid,
+ extent={{-31.9581,-31.6889},{31.9581,31.6889}},
+ textString="A_to_pu",
+ fontName="Arial"),Rectangle(
+ visible=true,
+ fillColor={255,255,255},
+ extent={{-100.0,-100.0},{100.0,100.0}})}),
+ Diagram(coordinateSystem(
+ extent={{-148.5,-105.0},{148.5,105.0}},
+ preserveAspectRatio=true,
+ initialScale=0.1,
+ grid={5,5})),
+ Documentation(info="
+
+
+Reference |
+TBD |
+
+
+Last update |
+TBD |
+
+
+Author |
+Joan Russinol, SmarTS Lab, KTH Royal Institute of Technology |
+
+
+Contact |
+luigiv@kth.se |
+
+
+"));
+ end pu_to_A;
+
+ model PVarray
+ Modelica.Blocks.Interfaces.RealInput V1(start=Vmp) "Voltage" annotation (
+ Placement(
+ visible=true,
+ transformation(
+ origin={-168.2602,-0.0},
+ extent={{-20.0,-20.0},{20.0,20.0}},
+ rotation=0),
+ iconTransformation(
+ origin={-120.0,70.0},
+ extent={{-20.0,-20.0},{20.0,20.0}},
+ rotation=0)));
+ parameter Real Vt=(2*Vmp - Vocref)*(Iscref - Imp)/(Imp + (Iscref - Imp)*log((
+ Iscref - Imp)/Iscref));
+ parameter Real Rs=(Vt*log((Iscref - Imp)/Iscref) + Vocref - Vmp)/Imp;
+ Modelica.Blocks.Interfaces.RealInput E(start=Estc) "Irradiance" annotation (
+ Placement(
+ visible=true,
+ transformation(
+ origin={-170.0,80.0},
+ extent={{-20.0,-20.0},{20.0,20.0}},
+ rotation=0),
+ iconTransformation(
+ origin={-120.0,0.0},
+ extent={{-20.0,-20.0},{20.0,20.0}},
+ rotation=0)));
+ Modelica.Blocks.Interfaces.RealInput T(start=Tstc) "Temperature" annotation (
+ Placement(
+ visible=true,
+ transformation(
+ origin={-168.0185,40.0},
+ extent={{-20.0,-20.0},{20.0,20.0}},
+ rotation=0),
+ iconTransformation(
+ origin={-120.0,-70.0},
+ extent={{-20.0,-20.0},{20.0,20.0}},
+ rotation=0)));
+ parameter Real Imp=1;
+ parameter Real Vmp=1;
+ parameter Real Iscref=1
+ "Module short-circuit current reference at reference temp and irradiance";
+ parameter Real Vocref=1
+ "Module open-circuit voltage reference at reference temp and irradiance";
+ parameter Real Kv=1 "temperature correction factor for the voltage";
+ parameter Real Ki=1 "temperature correction factor for the current";
+ parameter Real Tstc=1 "Temperature at the standard test conditions";
+ parameter Real Estc=1 "Irradiance at the standard test conditions";
+ Real Voct;
+ Real Voc;
+ Real Isct;
+ Real Isc;
+ Real I0 "diode dark current";
+ Real Iph;
+ Real Id;
+ Modelica.Blocks.Interfaces.RealOutput I(start=Imp) annotation (Placement(
+ visible=true,
+ transformation(
+ origin={160.0,60.0},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0),
+ iconTransformation(
+ origin={110.0,40.0},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ Modelica.Blocks.Interfaces.RealOutput V(start=Vmp) annotation (Placement(
+ visible=true,
+ transformation(
+ origin={160.0,21.9548},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0),
+ iconTransformation(
+ origin={110.0,-34.2738},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ equation
+ Voct = Vocref + Kv*(T - Tstc);
+ Voc = Voct*log(E)/log(Estc);
+ Isct = Iscref*(1 + Ki/100*(T - Tstc));
+ Isc = Isct*E/Estc;
+ I0 = Isct/exp(Voct/Vt);
+ Iph = Isc;
+ Id = I0*exp((V + I*Rs)/Vt);
+ I = Iph - Id;
+ V = V1;
+ annotation (
+ Icon(coordinateSystem(
+ extent={{-100.0,-100.0},{100.0,100.0}},
+ preserveAspectRatio=true,
+ initialScale=0.1,
+ grid={10,10}), graphics={Rectangle(
+ visible=true,
+ fillColor={255,255,255},
+ extent={{-100.0,-100.0},{100.0,100.0}}),Text(
+ visible=true,
+ origin={40.0,0.0},
+ fillPattern=FillPattern.Solid,
+ extent={{-45.9305,-23.3368},{45.9305,23.3368}},
+ textString="%name",
+ fontName="Arial"),Text(
+ visible=true,
+ origin={-46.5008,63.2046},
+ fillPattern=FillPattern.Solid,
+ extent={{-51.9003,-55.1779},{51.9003,55.1779}},
+ textString="Vdc(ex=35)",
+ fontName="Arial"),Text(
+ visible=true,
+ origin={-80.0,0.0},
+ fillPattern=FillPattern.Solid,
+ extent={{-12.8628,-13.6751},{12.8628,13.6751}},
+ textString="E",
+ fontName="Arial"),Text(
+ visible=true,
+ origin={-80.0,-70.0},
+ fillPattern=FillPattern.Solid,
+ extent={{-12.8628,-13.6751},{12.8628,13.6751}},
+ textString="T",
+ fontName="Arial"),Text(
+ visible=true,
+ origin={70.7131,40.0},
+ fillPattern=FillPattern.Solid,
+ extent={{-20.7131,-17.8652},{20.7131,17.8652}},
+ textString="Ipv(4.58)",
+ fontName="Arial"),Text(
+ visible=true,
+ origin={70.0,-37.1013},
+ fillPattern=FillPattern.Solid,
+ extent={{-25.1013,-17.1013},{25.1013,17.1013}},
+ textString="Vpv(35)",
+ fontName="Arial")}),
+ Diagram(coordinateSystem(
+ extent={{-148.5,-105.0},{148.5,105.0}},
+ preserveAspectRatio=true,
+ initialScale=0.1,
+ grid={5,5})),
+ Documentation(info="
+
+
+Reference |
+TBD |
+
+
+Last update |
+TBD |
+
+
+Author |
+Joan Russinol, SmarTS Lab, KTH Royal Institute of Technology |
+
+
+Contact |
+luigiv@kth.se |
+
+
+"));
+ end PVarray;
+
+ model SimpleLagg
+ Modelica.Blocks.Interfaces.RealInput yi annotation (Placement(
+ visible=true,
+ transformation(
+ origin={-137.6396,33.4951},
+ extent={{-20.0,-20.0},{20.0,20.0}},
+ rotation=0),
+ iconTransformation(
+ origin={-120.0,0.0},
+ extent={{-20.0,-20.0},{20.0,20.0}},
+ rotation=0)));
+ Modelica.Blocks.Interfaces.RealOutput yo annotation (Placement(
+ visible=true,
+ transformation(
+ origin={105.0,35.0},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0),
+ iconTransformation(
+ origin={110.0,0.0},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ parameter Real T=0.002;
+ parameter Real xo;
+ Real x(start=xo);
+ equation
+ der(x) = (yi - x)/T;
+ yo = x;
+ annotation (
+ Icon(coordinateSystem(
+ extent={{-100.0,-100.0},{100.0,100.0}},
+ preserveAspectRatio=true,
+ initialScale=0.1,
+ grid={10,10}), graphics={Text(
+ visible=true,
+ origin={-13.5393,7.4321},
+ fillPattern=FillPattern.Solid,
+ extent={{-43.5393,-25.2692},{43.5393,25.2692}},
+ textString="SimpleLagg",
+ fontName="Arial"),Rectangle(
+ visible=true,
+ fillColor={255,255,255},
+ extent={{-100.0,-100.0},{100.0,100.0}}),Rectangle(
+ visible=true,
+ origin={151.9125,3.2701},
+ fillColor={255,255,255},
+ extent={{-0.2973,-3.2701},{0.2973,3.2701}})}),
+ Diagram(coordinateSystem(
+ extent={{-148.5,-105.0},{148.5,105.0}},
+ preserveAspectRatio=true,
+ initialScale=0.1,
+ grid={5,5})),
+ Documentation(info="
+
+
+Reference |
+TBD |
+
+
+Last update |
+TBD |
+
+
+Author |
+Joan Russinol, SmarTS Lab, KTH Royal Institute of Technology |
+
+
+Contact |
+luigiv@kth.se |
+
+
+"));
+ end SimpleLagg;
+
+ model Terminator
+ Modelica.Blocks.Interfaces.RealInput V annotation (Placement(
+ visible=true,
+ transformation(
+ origin={-155.0,1.9703},
+ extent={{-20.0,-20.0},{20.0,20.0}},
+ rotation=0),
+ iconTransformation(
+ origin={-120.0,0.0},
+ extent={{-20.0,-20.0},{20.0,20.0}},
+ rotation=0)));
+ parameter Real T1=0.1;
+ parameter Real T2=0.05;
+ parameter Real Step=0.001;
+ parameter Real Iniv123;
+ parameter Real Inidv;
+ Real[:] Value;
+ Real v123(start=Iniv123);
+ Real dv(start=Inidv);
+ Integer i(start=1);
+ algorithm
+ Value[i] := V;
+ if time < T1 then
+ v123 := Iniv123;
+ dv := Inidv;
+ else
+ v123 := Value[i - 50];
+ dv := Value[i - 100];
+ end if;
+ i := i + 1;
+ annotation (
+ Icon(coordinateSystem(
+ extent={{-100.0,-100.0},{100.0,100.0}},
+ preserveAspectRatio=true,
+ initialScale=0.1,
+ grid={10,10}), graphics={Rectangle(
+ visible=true,
+ fillColor={255,255,255},
+ extent={{-100.0,-100.0},{100.0,100.0}})}),
+ Diagram(coordinateSystem(
+ extent={{-148.5,-105.0},{148.5,105.0}},
+ preserveAspectRatio=true,
+ initialScale=0.1,
+ grid={5,5})),
+ Documentation(info="
+
+
+Reference |
+TBD |
+
+
+Last update |
+TBD |
+
+
+Author |
+Joan Russinol, SmarTS Lab, KTH Royal Institute of Technology |
+
+
+Contact |
+luigiv@kth.se |
+
+
+"));
+ end Terminator;
+ annotation (Diagram(coordinateSystem(
+ extent={{-148.5,-105.0},{148.5,105.0}},
+ preserveAspectRatio=true,
+ initialScale=0.1,
+ grid={5,5})), Documentation);
+ end Auxiliary;
+
+ model PFmodelmpptCorrected05MW
+ parameter Real SystemBase=100 "MVa";
+ parameter Real v0=0.99422 "Power flow, node voltage";
+ parameter Real anglev0=0.00158 "Power flow, node angle";
+ parameter Real p0=0.44884 "Power flow, node active power";
+ parameter Real q0=0 "Power flow, node reactive power";
+ OpenIPSL.Electrical.Solar.KTH.PFblocks.PVnew PVnew1 annotation (
+ Placement(visible=true, transformation(
+ origin={-95.0,-5.0},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ OpenIPSL.Electrical.Solar.KTH.PFblocks.DCBusBar DCBusBar1
+ annotation (Placement(visible=true, transformation(
+ origin={-12.3692,15.0},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ Modelica.Blocks.Interfaces.RealInput E annotation (Placement(
+ visible=true,
+ transformation(
+ origin={-170.0,-5.0},
+ extent={{-20.0,-20.0},{20.0,20.0}},
+ rotation=0),
+ iconTransformation(
+ origin={-120.0,50.0},
+ extent={{-20.0,-20.0},{20.0,20.0}},
+ rotation=0)));
+ Modelica.Blocks.Interfaces.RealInput T annotation (Placement(
+ visible=true,
+ transformation(
+ origin={-170.0,-41.9393},
+ extent={{-20.0,-20.0},{20.0,20.0}},
+ rotation=0),
+ iconTransformation(
+ origin={-120.0,-50.0},
+ extent={{-20.0,-20.0},{20.0,20.0}},
+ rotation=0)));
+ Modelica.Blocks.Sources.Constant const3(k=v0) annotation (Placement(visible=
+ true, transformation(
+ origin={20.0,26.001},
+ extent={{-3.999,-3.999},{3.999,3.999}},
+ rotation=0)));
+ OpenIPSL.Electrical.Solar.KTH.PFblocks.Controller controller1(
+ xq=xq,
+ xd=xd,
+ v0=v0) annotation (Placement(visible=true, transformation(
+ origin={67.0368,11.8218},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ OpenIPSL.Electrical.Solar.KTH.PFblocks.Staticgenerator staticgenerator1(
+ v0=v0,
+ anglev0=anglev0,
+ p0=p0,
+ q0=q0) annotation (Placement(visible=true, transformation(
+ origin={110.0,5.0},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ OpenIPSL.Interfaces.PwPin pwPin1(vi(start=v0*sin(anglev0)), vr(
+ start=v0*cos(anglev0))) annotation (Placement(
+ visible=true,
+ transformation(
+ origin={145.0,3.4396},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0),
+ iconTransformation(
+ origin={110.0,0.0},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ Modelica.Blocks.Sources.Constant const5(k=700) annotation (Placement(visible=
+ true, transformation(
+ origin={33.999,-5.0},
+ extent={{-3.999,-3.999},{3.999,3.999}},
+ rotation=0)));
+ Modelica.Blocks.Math.Gain gain1(k=1) annotation (Placement(visible=true,
+ transformation(
+ origin={35.0,-28.2447},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=-180)));
+ protected
+ parameter Real vr=v0*cos(anglev0);
+ parameter Real vi=v0*sin(anglev0);
+ parameter Real A=vi*cos(anglev0) - vr*sin(anglev0);
+ parameter Real B=vr*cos(anglev0) + vi*sin(anglev0);
+ parameter Real idref0=(p0*B + q0*A)/(A^2 + B^2);
+ parameter Real iqref0=((-q0*B) + p0*A)/(A^2 + B^2) "
+
+ parameter Real vd0=-v0*sin(anglev0) ;
+ parameter Real vq0=v0*cos(anglev0) ;
+ parameter Real iqref0=2*(vq0*q0 + p0*vd0)/(vq0^2 + vd0^2) ;
+ parameter Real idref0=2*(-vd0*q0 + p0*vq0)/(vq0^2 + vd0^2) ";
+ parameter Real xq=2*iqref0*1.02;
+ parameter Real xd=2*idref0*1.02;
+ equation
+ connect(gain1.y, DCBusBar1.Pac) annotation (Line(
+ visible=true,
+ origin={-25.8892,0.9021},
+ points={{49.8892,-29.1468},{-26.4646,-29.1468},{-26.4646,19.0979},{1.52,
+ 19.0979},{1.52,20.0979}},
+ color={0,0,127}));
+ connect(DCBusBar1.Vdc, controller1.udc) annotation (Line(
+ visible=true,
+ origin={30.748,11.7644},
+ points={{-32.1172,3.2356},{-8.2302,3.2356},{-8.2302,-1.7644},{24.2888,-1.7644},
+ {24.2888,-2.9426}},
+ color={0,0,127}));
+ connect(staticgenerator1.iq_ref, controller1.iq_ref) annotation (Line(
+ visible=true,
+ origin={84.5276,6.9973},
+ points={{13.4724,0.0027},{-3.4908,0.0027},{-3.4908,-0.00273},{-6.4908,-0.00273}},
+ color={0,0,127}));
+
+ connect(controller1.id_ref, staticgenerator1.id_ref) annotation (Line(
+ visible=true,
+ origin={91.5092,13.9109},
+ points={{-13.4724,1.9109},{3.4908,1.9109},{3.4908,-1.9109},{6.4908,-1.9109}},
+ color={0,0,127}));
+
+ connect(staticgenerator1.v, controller1.uac) annotation (Line(
+ visible=true,
+ origin={96.2147,25.1802},
+ points={{24.7853,-13.1802},{28.7853,-13.1802},{28.7853,16.3594},{-41.1779,
+ 16.3594},{-41.1779,-6.3584}},
+ color={0,0,127}));
+ connect(controller1.Vdcref, const5.y) annotation (Line(
+ visible=true,
+ origin={44.0576,-0.5891},
+ points={{10.9792,4.4109},{-2.6597,4.4109},{-2.6597,-4.4109},{-5.6597,-4.4109}},
+ color={0,0,127}));
+
+ connect(const3.y, controller1.Vacref) annotation (Line(
+ visible=true,
+ origin={45.8773,19.9114},
+ points={{-21.4784,6.0896},{6.1595,6.0896},{6.1595,-6.0896},{9.1595,-6.0896}},
+ color={0,0,127}));
+
+ connect(staticgenerator1.P, gain1.u) annotation (Line(
+ visible=true,
+ origin={93.0,-18.6575},
+ points={{28,16.1362},{32,16.1362},{32,-11.3425},{-46,-11.3425},{-46,-9.5872}},
+ color={0,0,127}));
+
+ connect(PVnew1.Udc, DCBusBar1.Vdc) annotation (Line(
+ visible=true,
+ origin={-53.6023,19.0},
+ points={{-53.3977,-17.0},{-56.3977,-17.0},{-56.3977,21.0},{56.98,21.0},{
+ 56.98,-4.0},{52.2331,-4.0}},
+ color={0,0,127}));
+ connect(staticgenerator1.p, pwPin1) annotation (Line(
+ visible=true,
+ origin={132.5,4.2198},
+ points={{-11.5,0.7802},{-0.5,0.7802},{-0.5,-0.7802},{12.5,-0.7802}}));
+ connect(T, PVnew1.T) annotation (Line(
+ visible=true,
+ origin={-124.25,-26.9696},
+ points={{-45.75,-14.9697},{14.25,-14.9697},{14.25,14.9696},{17.25,14.9696}},
+ color={0,0,127}));
+
+ connect(E, PVnew1.E) annotation (Line(
+ visible=true,
+ origin={-138.5,-5.0},
+ points={{-31.5,0.0},{31.5,0.0}},
+ color={0,0,127}));
+ connect(PVnew1.Iarray, DCBusBar1.Ipv) annotation (Line(
+ visible=true,
+ origin={-64.5923,3.5},
+ points={{-19.4077,-8.5},{-10.4077,-8.5},{-10.4077,8.5},{40.2231,8.5}},
+ color={0,0,127}));
+ annotation (
+ Icon(coordinateSystem(
+ extent={{-100.0,-100.0},{100.0,100.0}},
+ preserveAspectRatio=true,
+ initialScale=0.1,
+ grid={10,10}), graphics={Text(
+ visible=true,
+ origin={-72.3502,50.0},
+ fillPattern=FillPattern.Solid,
+ extent={{-17.6498,-10.0},{17.6498,10.0}},
+ textString="E",
+ fontName="Arial"),Text(
+ visible=true,
+ origin={-72.3502,-50.0},
+ fillPattern=FillPattern.Solid,
+ extent={{-17.6498,-10.0},{17.6498,10.0}},
+ textString="T",
+ fontName="Arial"),Rectangle(
+ visible=true,
+ fillColor={255,255,255},
+ extent={{-100.0,-100.0},{100.0,100.0}})}),
+ Diagram(coordinateSystem(
+ extent={{-148.5,-105.0},{148.5,105.0}},
+ preserveAspectRatio=true,
+ initialScale=0.1,
+ grid={5,5})),
+ Documentation(info="
+
+
+Reference |
+TBD |
+
+
+Last update |
+TBD |
+
+
+Author |
+Joan Russinol, SmarTS Lab, KTH Royal Institute of Technology |
+
+
+Contact |
+luigiv@kth.se |
+
+
+"));
+ end PFmodelmpptCorrected05MW;
+ annotation (Documentation);
+ end KTH;
+ annotation (Documentation);
+ end Solar;
+
+ package Wind
+ package PSAT
+ package PSAT_Type_3
+ model PSAT_WT "Wind Turbine Doubly Fed Induction Generator"
+ import Modelica.Constants.pi;
+ ElecDynBlk elecDyn(
+ Sbase=S_b,
+ Vbus0=V_0,
+ angle0=angle_0,
+ Pc=P_0,
+ Qc=Q_0,
+ omega_m0=omega_m0,
+ Pnom=Pnom,
+ Vbase=V_b,
+ freq=fn,
+ Rs=Rs,
+ Xs=Xs,
+ Rr=Rr,
+ Xr=Xr,
+ Xm=Xm,
+ Hm=Hm,
+ x1=x1,
+ x2=x2,
+ i2Hm=i2Hm,
+ wbase=wbase,
+ k=k,
+ poles=poles,
+ ids0=ids0,
+ iqs0=iqs0,
+ idr0=idr0,
+ iqr0=iqr0,
+ vds0=vds0,
+ vqs0=vqs0,
+ vdr0=vdr0,
+ vqr0=vqr0,
+ Kv=Kv,
+ Te=Te,
+ idr_max=idr_max,
+ idr_min=idr_min,
+ iqr_max=iqr_max,
+ iqr_min=iqr_min) annotation (Placement(visible=true, transformation(
+ origin={-46.9875,-45.0},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ ElecBlk elecCircuit(
+ Sbase=S_b,
+ Vbus0=V_0,
+ angle0=angle_0,
+ Pc=P_0,
+ Qc=Q_0,
+ omega_m0=omega_m0,
+ Pnom=Pnom,
+ Vbase=V_b,
+ freq=fn,
+ Rs=Rs,
+ Xs=Xs,
+ Rr=Rr,
+ Xr=Xr,
+ Xm=Xm,
+ Hm=Hm,
+ x1=x1,
+ i2Hm=i2Hm,
+ wbase=wbase,
+ k=k,
+ poles=poles,
+ ids0=ids0,
+ iqs0=iqs0,
+ idr0=idr0,
+ iqr0=iqr0,
+ vds0=vds0,
+ vqs0=vqs0,
+ vdr0=vdr0,
+ vqr0=vqr0) annotation (Placement(visible=true, transformation(
+ origin={43.0125,-50.0},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ WindBlk windBlk1(
+ vw_base=vw_base,
+ rho=rho,
+ Sbase=S_b,
+ ngb=ngb,
+ poles=poles,
+ freq=fn,
+ wbase=wbase,
+ l=l) annotation (Placement(visible=true, transformation(
+ origin={15.4451,-15.0},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ MechaBlk mechaBlk1(
+ Sbase=S_b,
+ Pnom=Pnom,
+ Hm=Hm,
+ Pc=P_0) annotation (Placement(visible=true, transformation(
+ origin={70.3869,-20.0},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ PitchControl pitchControl1(
+ Kp=Kp,
+ Tp=Tp,
+ theta_p0=theta_p0,
+ theta_p_max=theta_max,
+ theta_p_min=theta_min) annotation (Placement(visible=true, transformation(
+ origin={-46.9875,-15.0},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ Modelica.Blocks.Interfaces.RealInput Wind_Speed annotation (Placement(
+ visible=true,
+ transformation(
+ origin={-111.9875,-2.3928},
+ extent={{-20.0,-20.0},{20.0,20.0}},
+ rotation=0),
+ iconTransformation(
+ origin={0.0,77.9903},
+ extent={{-20.0,-20.0},{20.0,20.0}},
+ rotation=-90)));
+ OpenIPSL.Interfaces.PwPin pin annotation (Placement(
+ visible=true,
+ transformation(
+ origin={-101.9875,-70.0},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0),
+ iconTransformation(
+ origin={-110.0,0.0},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ parameter Real V_0=1 "Voltage magnitude (pu)"
+ annotation (Dialog(group="Power flow data"));
+ parameter Real angle_0=-0.00243 "Voltage angle (deg.)"
+ annotation (Dialog(group="Power flow data"));
+ parameter Real P_0=0.0160000000000082 "Active power (pu)"
+ annotation (Dialog(group="Power flow data"));
+ parameter Real Q_0=0.030527374471207 "Reactive power (pu)"
+ annotation (Dialog(group="Power flow data"));
+ parameter Real S_b=100 "System base power(MVA)"
+ annotation (Dialog(group="Power flow data"));
+ parameter Real V_b=400 "Voltage rating kV"
+ annotation (Dialog(group="Power flow data"));
+ parameter Real Pnom=10 "Nominal Power (MVA)";
+ parameter Real fn=50 "Frequency rating (Hz)";
+ parameter Real rho=1.225 "Air Density (kg/m^3)";
+ parameter Real vw_base=15 "Nominal wind speed (m/s)";
+ parameter Real Rs_machine=0.01 "Stator Resistance (pu)";
+ parameter Real Xs_machine=0.1 "Stator Reactance (pu)";
+ parameter Real Rr_machine=0.01 "Rotor Resitance (pu)";
+ parameter Real Xr_machine=0.08 "Rotor Reactance (pu)";
+ parameter Real Xm_machine=3 "Magnetisation reactance (pu)";
+ parameter Real Hm_machine=3 "Inertia (pu)";
+ parameter Real Kp=10 "Pitch control gain (pu)";
+ parameter Real Tp=3 "Pitch control time constant (s)";
+ parameter Real Kv=10 "Voltage control gain (kV)";
+ parameter Real Te=0.01 "Power Control time constant (s)";
+ parameter Real l=75 "Blade length (m)";
+ parameter Real poles=2 "Number of poles-pair";
+ parameter Real nblades=3 "Number of blades";
+ parameter Real ngb=0.01123596 "Gear box ratio";
+ Real Vbus=elecCircuit.Vbus "Bus voltage magnitude (pu)";
+ Real Anglebus=elecCircuit.Anglebus "Bus voltage angle (deg)";
+ Real P=elecCircuit.p "Active power (pu)";
+ Real Q=elecCircuit.q "Reactive power (pu)";
+ protected
+ parameter Real Rs=Rs_machine*S_b/Pnom "stator Resistance (pu)";
+ parameter Real Xs=Xs_machine*S_b/Pnom "stator Reactance (pu)";
+ parameter Real Rr=Rr_machine*S_b/Pnom "Rotor Resitance (pu)";
+ parameter Real Xr=Xr_machine*S_b/Pnom "rotor Reactance (pu)";
+ parameter Real Xm=Xm_machine*S_b/Pnom "magnetisation reactance (pu)";
+ parameter Real Hm=Hm_machine*Pnom/S_b "inertia (pu)";
+ parameter Real Pmax_machine=1 "Pmax (pu)";
+ parameter Real Pmin_machine=0 "Pmin (pu)";
+ parameter Real Qmax_machine=0.7 "Qmax (pu)";
+ parameter Real Qmin_machine=-0.7 "Qmin (pu)";
+ parameter Real Pmax=Pmax_machine*Pnom/S_b "Pmax (pu)";
+ parameter Real Pmin=Pmin_machine*Pnom/S_b "Pmin (pu)";
+ parameter Real Qmax=Qmax_machine*Pnom/S_b "Qmax (pu)";
+ parameter Real Qmin=Qmin_machine*Pnom/S_b "Qmin (pu)";
+ parameter Real x1=Xs + Xm;
+ parameter Real x2=Xr + Xm;
+ parameter Real iqr_max=-x1*Pmin/Xm;
+ parameter Real iqr_min=-Pmax*x1/Xm;
+ parameter Real idr_min=(-Qmax*x1/Xm) - x1/Xm^2;
+ parameter Real idr_max=(-Qmin*x1/Xm) - x1/Xm^2;
+ parameter Real theta_max=45;
+ parameter Real theta_min=0;
+ parameter Real omega_m0=min(max(0.5*P_0*S_b/Pnom + 0.5, 0.5), 1);
+ parameter Real i2Hm=1/(2*Hm);
+ parameter Real wbase=2*Modelica.Constants.pi*fn/poles;
+ parameter Real k=x1*Pnom/V_0/Xm/S_b "gain for iqr_off computation";
+ parameter Real theta_p0=0;
+ parameter Real ids0=((-vds0^2) + vds0*Xm*iqr0 - x1*Q_0)/(Rs*vds0 - x1*vqs0);
+ parameter Real iqs0=((-vds0*vqs0) + vqs0*Xm*iqr0 - Rs*Q_0)/(Rs*vds0 - x1*vqs0);
+ parameter Real idr0=-(vqs0 + Rs*iqs0 + x1*ids0)/Xm;
+ parameter Real iqr0=-x1*Pnom*(2*omega_m0 - 1)/V_0/Xm/S_b/omega_m0;
+ parameter Real vds0=-V_0*sin(angle_0);
+ parameter Real vqs0=V_0*cos(angle_0);
+ parameter Real vdr0=(-Rr*idr0) + (1 - omega_m0)*(x2*iqr0 + Xm*iqs0);
+ parameter Real vqr0=(-Rr*iqr0) - (1 - omega_m0)*(x2*idr0 + Xm*ids0);
+ equation
+ connect(pin, elecCircuit.pin) annotation (Line(
+ visible=true,
+ origin={-5.4875,-55.7974},
+ points={{-96.5,-14.2026},{48.5,-14.2026},{48.5,-5.2026}}));
+ connect(mechaBlk1.omega_m, elecDyn.omega_m) annotation (Line(
+ visible=true,
+ origin={40.3844,-34.0062},
+ points={{38.0025,14.0062},{42.6281,14.0062},{42.6281,0.9937},{44.6156,
+ 0.9937},{37.6281,0.9937},{-100.3844,0.9937},{-100.3844,-15.9937},{-95.3719,
+ -15.9938}},
+ color={0,0,127}));
+ connect(elecDyn.Vbus, elecCircuit.Vbus) annotation (Line(
+ visible=true,
+ origin={-2.65,-55.6607},
+ points={{-52.3375,15.6607},{-59.3375,15.6607},{-59.3375,-16.3215},{58.675,
+ -16.3215},{58.675,0.6607},{53.6625,0.6607}},
+ color={0,0,127}));
+ connect(elecDyn.idr, elecCircuit.idr) annotation (Line(
+ visible=true,
+ origin={14.0062,-41.6194},
+ points={{-52.9937,1.6194},{15.9938,1.6194},{15.9938,-1.61938},{21.0063,-1.61938}},
+ color={0,0,127}));
+
+ connect(elecDyn.iqr, elecCircuit.iqr) annotation (Line(
+ visible=true,
+ origin={-1.9875,-50.0},
+ points={{-37.0,0.0},{37.0,0.0}},
+ color={0,0,127}));
+ connect(mechaBlk1.omega_m, elecCircuit.omega_m) annotation (Line(
+ visible=true,
+ origin={59.8363,-27.8632},
+ points={{18.5506,7.8632},{23.1762,7.8632},{23.1762,-5.2097},{-66.8238,-5.2097},
+ {-66.8238,-29.1368},{-24.8238,-29.1368}},
+ color={0,0,127}));
+ connect(mechaBlk1.Tel, elecCircuit.Tel) annotation (Line(
+ visible=true,
+ origin={56.3623,-35.0},
+ points={{6.0246,10},{-0.3373,10},{-0.3373,-10},{-5.3498,-10}},
+ color={0,0,127}));
+ connect(pitchControl1.theta_p, windBlk1.theta_p) annotation (Line(
+ visible=true,
+ origin={-6.6693,-15.1284},
+ points={{-32.3182,0.1284},{9.1019,0.1284},{9.1019,-0.12848},{14.1144,-0.12848}},
+ color={0,0,127}));
+
+ connect(windBlk1.Tm, mechaBlk1.Tm) annotation (Line(
+ visible=true,
+ origin={50.1452,-14.8679},
+ points={{-26.7001,0.13217},{7.2292,0.13217},{7.2292,-0.1321},{12.2417,-0.1321}},
+ color={0,0,127}));
+
+ connect(mechaBlk1.omega_m, windBlk1.omega_m) annotation (Line(
+ visible=true,
+ origin={42.916,-25.0816},
+ points={{35.4709,5.0816},{40.4834,5.0816},{40.4834,-7.9309},{-40.4834,-7.9309},
+ {-40.4834,2.84934},{-35.4709,2.84934}},
+ color={0,0,127}));
+ connect(Wind_Speed, windBlk1.vw) annotation (Line(
+ visible=true,
+ origin={-24.9193,-5.1166},
+ points={{-87.0682,2.7238},{27.3519,2.7238},{27.3519,-2.72393},{32.3644,-2.72393}},
+ color={0,0,127}));
+
+ connect(pitchControl1.omega_m, mechaBlk1.omega_m) annotation (Line(
+ visible=true,
+ origin={25.5125,-22.0292},
+ points={{-80.5,7.0292},{-85.5125,7.0292},{-85.5125,-11.0437},{57.5,-11.0437},
+ {57.5,2.0292},{52.8744,2.0292}},
+ color={0,0,127}));
+ annotation (
+ Icon(coordinateSystem(
+ extent={{-100.0,-100.0},{100.0,100.0}},
+ preserveAspectRatio=true,
+ initialScale=0.1,
+ grid={10,10}), graphics={Text(
+ visible=true,
+ fillPattern=FillPattern.Solid,
+ extent={{-55.0,-28.0231},{55.0,28.0231}},
+ textString="Dfig",
+ fontName="Arial"),Ellipse(
+ visible=true,
+ fillColor={255,255,255},
+ extent={{-100.0,-100.0},{100.0,100.0}})}),
+ Diagram(coordinateSystem(
+ extent={{-148.5,-105.0},{148.5,105.0}},
+ preserveAspectRatio=true,
+ initialScale=0.1,
+ grid={5,5})),
+ Documentation(info="
+
+Reference |
+WT Doubly Fed Induction Generator, PSAT Manual 2.1.8 |
+
+
+Last update |
+July 2015 |
+
+
+Author |
+Maxime Baudette, SmarTS Lab, KTH Royal Institute of Technology |
+
+
+Contact |
+luigiv@kth.se |
+
+
+"));
+ end PSAT_WT;
+
+ model ElecBlk
+ import Modelica.Constants.pi;
+ Modelica.Blocks.Interfaces.RealInput omega_m "Rotor Speed" annotation (
+ Placement(
+ transformation(
+ extent={{-102.0,54.0},{-62.0,94.0}},
+ origin={-46.1127,-159.0},
+ rotation=0),
+ visible=true,
+ iconTransformation(
+ origin={2.0,-144.0},
+ extent={{-102.0,54.0},{-62.0,94.0}},
+ rotation=0)));
+ Modelica.Blocks.Interfaces.RealInput idr(start=idr0, fixed=false) "idr"
+ annotation (Placement(
+ transformation(
+ extent={{-102.0,54.0},{-62.0,94.0}},
+ origin={-45.2181,9.0065},
+ rotation=0),
+ visible=true,
+ iconTransformation(
+ origin={2.0,-6.3878},
+ extent={{-102.0,54.0},{-62.0,94.0}},
+ rotation=0)));
+ Modelica.Blocks.Interfaces.RealInput iqr(start=iqr0, fixed=false) "iqr"
+ annotation (Placement(
+ transformation(
+ extent={{-102.0,54.0},{-62.0,94.0}},
+ origin={-44.5564,-24.0},
+ rotation=0),
+ visible=true,
+ iconTransformation(
+ origin={2.0,-74.0},
+ extent={{-102.0,54.0},{-62.0,94.0}},
+ rotation=0)));
+ Modelica.Blocks.Interfaces.RealOutput Tel "Electrical Torque" annotation (
+ Placement(
+ transformation(
+ extent={{102.0,54.0},{62.0,94.0}},
+ origin={44.9293,3.7214},
+ rotation=0),
+ visible=true,
+ iconTransformation(
+ origin={-2.0,-24.0},
+ extent={{102.0,54.0},{62.0,94.0}},
+ rotation=0)));
+ Modelica.Blocks.Interfaces.RealOutput Vbus "Bus Voltage Magnitude"
+ annotation (Placement(
+ transformation(
+ extent={{102.0,54.0},{62.0,94.0}},
+ origin={46.3073,-49.0},
+ rotation=0),
+ visible=true,
+ iconTransformation(
+ origin={-2.0,-124.0},
+ extent={{102.0,54.0},{62.0,94.0}},
+ rotation=0)));
+ parameter Real Sbase=100 "Power Rating [Normalization Factor] (MVA)";
+ parameter Real Vbus0=1 "p.u. Input PowerFlow";
+ parameter Real angle0=-0.00243 "Angle PowerFlow";
+ parameter Real Pc=0.0160000000000082 "Active Power (pu), PowerFlow";
+ parameter Real Qc=0.030527374471207 "Reactive Power(pu), Power Flow";
+ parameter Real omega_m0=0.58;
+ parameter Real Pnom=10 "Nominal Power (MVA)";
+ parameter Real Vbase=400 "Voltage rating kV";
+ parameter Real freq=50 "frequency rating (Hz)";
+ parameter Real Rs=0.1 "stator Resistance (pu)";
+ parameter Real Xs=1 "stator Reactance (pu)";
+ parameter Real Rr=0.1 "Rotor Resitance (pu)";
+ parameter Real Xr=0.8 "rotor Reactance (pu)";
+ parameter Real Xm=30 "magnetisation reactance (pu)";
+ parameter Real Hm=0.3 "inertia (pu)";
+ parameter Real x1=Xm + Xs "stator plus magnetisation impedances";
+ parameter Real i2Hm=1.667 "inverse p.u.inertia";
+ parameter Real wbase=2*pi*freq/poles "p.u. basis for angular speed";
+ parameter Real k=x1*Pnom/Vbus0/Xm/Sbase "gain for iqr_off computation";
+ parameter Real ids0=((-vds0^2) + vds0*Xm*iqr0 - x1*Qc)/(Rs*vds0 - x1*vqs0);
+ parameter Real iqs0=((-vds0*vqs0) + vqs0*Xm*iqr0 - Rs*Qc)/(Rs*vds0 - x1*vqs0);
+ parameter Real idr0=-(vqs0 + Rs*iqs0 + x1*ids0)/Xm;
+ parameter Real iqr0=-x1*Pnom*(2*omega_m0 - 1)/Vbus0/Xm/Sbase/omega_m0;
+ parameter Real vds0=-Vbus0*sin(angle0);
+ parameter Real vqs0=Vbus0*cos(angle0);
+ parameter Real vdr0=(-Rr*idr0) + (1 - omega_m0)*((Xm + Xr)*iqr0 + Xm*iqs0);
+ parameter Real vqr0=(-Rr*iqr0) - (1 - omega_m0)*((Xm + Xr)*idr0 + Xm*ids0);
+ parameter Real poles=2 "Number of poles-pair";
+ Real vds(start=vds0, fixed=false) "stator tension, in dq";
+ Real vqs(start=vqs0, fixed=false) "stator tension, in dq";
+ Real p "Active power";
+ Real q "Reactive Power";
+ Real ids(start=ids0, fixed=false) "stator current, in dq";
+ Real iqs(start=iqs0, fixed=false) "stator current, in dq";
+ Real vdr(start=vdr0, fixed=false) "rotor voltage in dq";
+ Real vqr(start=vqr0, fixed=false) "rotor voltage in dq";
+ OpenIPSL.Interfaces.PwPin pin annotation (Placement(
+ visible=true,
+ transformation(
+ origin={-158.3073,1.6927},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0),
+ iconTransformation(
+ origin={0.0,-110.0},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ Real slip;
+ Real Anglebus=atan(pin.vi/pin.vr);
+ equation
+ Vbus = sqrt(vds^2 + vqs^2);
+ vqs = pin.vr;
+ vds = -pin.vi;
+ -p = pin.vr*pin.ir + pin.vi*pin.ii;
+ -q = pin.vi*pin.ir - pin.vr*pin.ii;
+ p = vds*ids + vqs*iqs + vdr*idr + vqr*iqr;
+ q = (-Xm*Vbus*idr/x1) - Vbus^2/Xm;
+ vds = (-Rs*ids) + x1*iqs + Xm*iqr;
+ vqs = (-Rs*iqs) - x1*ids - Xm*idr;
+ slip = 1 - omega_m;
+ vdr = (-Rr*idr) + slip*(x1*iqr + Xm*iqs);
+ vqr = (-Rr*iqr) - slip*(x1*idr + Xm*ids);
+ Tel = Xm*(iqr*ids - idr*iqs);
+ annotation (
+ Icon(coordinateSystem(
+ extent={{-100.0,-100.0},{100.0,100.0}},
+ preserveAspectRatio=true,
+ initialScale=0.1,
+ grid={10,10}), graphics={Rectangle(
+ visible=true,
+ fillColor={255,255,255},
+ extent={{-100.0,-100.0},{100.0,100.0}}),Text(
+ visible=true,
+ origin={1.7639,5.0},
+ fillPattern=FillPattern.Solid,
+ extent={{-44.3912,-45.0},{44.3912,45.0}},
+ textString="elec",
+ fontName="Arial")}),
+ Diagram(coordinateSystem(
+ extent={{-148.5,-105.0},{148.5,105.0}},
+ preserveAspectRatio=true,
+ initialScale=0.1,
+ grid={5,5})),
+ Documentation);
+ end ElecBlk;
+
+ model ElecDynBlk
+ Modelica.Blocks.Interfaces.RealInput omega_m "Rotor Speed" annotation (
+ Placement(
+ transformation(
+ extent={{-102.0,54.0},{-62.0,94.0}},
+ origin={-45.2439,-151.0508},
+ rotation=0),
+ visible=true,
+ iconTransformation(
+ origin={2.0,-124.0},
+ extent={{-102.0,54.0},{-62.0,94.0}},
+ rotation=0)));
+ Modelica.Blocks.Interfaces.RealInput Vbus "Vbus" annotation (Placement(
+ transformation(
+ extent={{-102.0,54.0},{-62.0,94.0}},
+ origin={-45.2049,-85.6189},
+ rotation=0),
+ visible=true,
+ iconTransformation(
+ origin={2.0,-24.0},
+ extent={{-102.0,54.0},{-62.0,94.0}},
+ rotation=0)));
+ Modelica.Blocks.Interfaces.RealOutput idr(start=idr0, fixed=false)
+ "saturated idr" annotation (Placement(
+ transformation(
+ extent={{102.0,54.0},{62.0,94.0}},
+ origin={43.0,-29.0},
+ rotation=0),
+ visible=true,
+ iconTransformation(
+ origin={-2.0,-24.0},
+ extent={{102.0,54.0},{62.0,94.0}},
+ rotation=0)));
+ Modelica.Blocks.Interfaces.RealOutput iqr(start=iqr0, fixed=false)
+ "saturated iqr" annotation (Placement(
+ transformation(
+ extent={{102.0,54.0},{62.0,94.0}},
+ origin={43.0,-94.0},
+ rotation=0),
+ visible=true,
+ iconTransformation(
+ origin={-2.0,-124.0},
+ extent={{102.0,54.0},{62.0,94.0}},
+ rotation=0)));
+ constant Real pi=3.14159265358979;
+ parameter Real Sbase=100 "Power Rating [Normalization Factor] (MVA)";
+ parameter Real Vbus0=1 "p.u. Input PowerFlow";
+ parameter Real angle0=-0.00243 "Angle PowerFlow";
+ parameter Real Pc=0.0160000000000082 "Active Power (pu), PowerFlow";
+ parameter Real Qc=0.030527374471207 "Reactive Power(pu), Power Flow";
+ parameter Real omega_m0=min(max(0.5*Pc*Sbase/Pnom + 0.5, 0.5), 1);
+ parameter Real Pnom=10 "Nominal Power (MVA)";
+ parameter Real Vbase=400 "Voltage rating kV";
+ parameter Real freq=50 "frequency rating (Hz)";
+ parameter Real Rs=0.1 "stator Resistance (pu)";
+ parameter Real Xs=1 "stator Reactance (pu)";
+ parameter Real Rr=0.1 "Rotor Resitance (pu)";
+ parameter Real Xr=0.8 "rotor Reactance (pu)";
+ parameter Real Xm=30 "magnetisation reactance (pu)";
+ parameter Real Hm=0.3 "inertia (pu)";
+ parameter Real x1=Xm + Xs "stator plus magnetisation impedances";
+ parameter Real x2=Xm + Xr "rotor plus magnetisation impedances";
+ parameter Real i2Hm=1.667 "inverse p.u.inertia";
+ parameter Real wbase=2*pi*freq/poles "p.u. basis for angular speed";
+ parameter Real iqr_max;
+ parameter Real idr_max;
+ parameter Real iqr_min;
+ parameter Real idr_min;
+ parameter Real poles=2 "Number of poles-pair";
+ parameter Real Kv=10 "Voltage control gain (kV)";
+ parameter Real Te=0.01 "Power Control time constant (s)";
+ parameter Real k=x1*Pnom/Vbus0/Xm/Sbase "gain for iqr_off computation";
+ parameter Real ids0=((-vds0^2) + vds0*Xm*iqr0 - x1*Qc)/(Rs*vds0 - x1*vqs0);
+ parameter Real iqs0=((-vds0*vqs0) + vqs0*Xm*iqr0 - Rs*Qc)/(Rs*vds0 - x1*vqs0);
+ parameter Real idr0=-(vqs0 + Rs*iqs0 + x1*ids0)/Xm;
+ parameter Real iqr0=-x1*Pnom*(2*omega_m0 - 1)/Vbus0/Xm/Sbase/omega_m0;
+ parameter Real vds0=-Vbus0*sin(angle0);
+ parameter Real vqs0=Vbus0*cos(angle0);
+ parameter Real vdr0=(-Rr*idr0) + (1 - omega_m0)*(x2*iqr0 + Xm*iqs0);
+ parameter Real vqr0=(-Rr*iqr0) - (1 - omega_m0)*(x2*idr0 + Xm*ids0);
+ Real idrI "internal, non saturated idr";
+ Real iqrI "internal, non saturated iqr";
+ Real Vref;
+ Real iqr_off;
+ Real pwa;
+ initial equation
+ 0 = ((-(Xs + Xm)*pwa/Vbus/Xm/omega_m) - iqr - iqr_off)/Te;
+ Vref = Vbus0 - (idrI + Vbus0/Xm)/Kv;
+ iqr_off = (-k*max(min(2*omega_m0 - 1, 1), 0)/omega_m0) - iqrI;
+ equation
+ der(Vref) = 0;
+ der(iqr_off) = 0;
+ pwa = max(min(2*omega_m - 1, 1), 0)*Pnom/Sbase;
+ der(iqrI) = ((-(Xs + Xm)*pwa/Vbus/Xm/omega_m) - iqr - iqr_off)/Te;
+ der(idrI) = Kv*(Vbus - Vref) - Vbus/Xm - idr;
+ iqr = min(max(iqrI, iqr_min), iqr_max);
+ idr = min(max(idrI, idr_min), idr_max);
+ when iqrI > iqr_max and der(iqrI) < 0 then
+ reinit(iqrI, iqr_max);
+ elsewhen iqrI < iqr_min and der(iqrI) > 0 then
+ reinit(iqrI, iqr_min);
+ end when;
+ when idrI > idr_max and der(idrI) < 0 then
+ reinit(idrI, idr_max);
+ elsewhen idrI < idr_min and der(idrI) > 0 then
+ reinit(idrI, idr_min);
+ end when;
+ annotation (
+ Icon(coordinateSystem(
+ extent={{-100.0,-100.0},{100.0,100.0}},
+ preserveAspectRatio=true,
+ initialScale=0.1,
+ grid={10,10}), graphics={Rectangle(
+ visible=true,
+ fillColor={255,255,255},
+ extent={{-100.0,-100.0},{100.0,100.0}}),Text(
+ visible=true,
+ origin={0.294,8.6655},
+ fillPattern=FillPattern.Solid,
+ extent={{-47.919,-38.6655},{47.919,38.6655}},
+ textString="elecDyn",
+ fontName="Arial")}),
+ Diagram(coordinateSystem(
+ extent={{-148.5,-105.0},{148.5,105.0}},
+ preserveAspectRatio=true,
+ initialScale=0.1,
+ grid={5,5})),
+ Documentation);
+ end ElecDynBlk;
+
+ model MechaBlk
+ Modelica.Blocks.Interfaces.RealInput Tm "engine shaft torque" annotation (
+ Placement(
+ transformation(
+ extent={{-102.0,54.0},{-62.0,94.0}},
+ origin={-43.0,7.7602},
+ rotation=0),
+ visible=true,
+ iconTransformation(
+ origin={2.0,-24.0},
+ extent={{-102.0,54.0},{-62.0,94.0}},
+ rotation=0)));
+ Modelica.Blocks.Interfaces.RealInput Tel "electromagnetical torque"
+ annotation (Placement(
+ transformation(
+ extent={{-102.0,54.0},{-62.0,94.0}},
+ origin={-43.0,-34.0},
+ rotation=0),
+ visible=true,
+ iconTransformation(
+ origin={2.0,-124.0},
+ extent={{-102.0,54.0},{-62.0,94.0}},
+ rotation=0)));
+ Modelica.Blocks.Interfaces.RealOutput omega_m "engine shaft angular velocity"
+ annotation (Placement(
+ transformation(
+ extent={{102.0,54.0},{62.0,94.0}},
+ origin={43.0,-74.0},
+ rotation=0),
+ visible=true,
+ iconTransformation(
+ origin={-2.0,-74.0},
+ extent={{102.0,54.0},{62.0,94.0}},
+ rotation=0)));
+ parameter Real Sbase=100 "Power Rating [Normalization Factor] (MVA)";
+ parameter Real Pnom=10 "Nominal Power (MVA)";
+ parameter Real Hm=0.3 "inertia (pu)";
+ parameter Real Pc=0.016 "p.u. Input, PowerFlow";
+ initial equation
+ if Pc < Pnom/Sbase and Pc > 0 then
+ omega_m = 0.5*Pc*Sbase/Pnom + 0.5;
+ elseif Pc*Sbase >= Pnom then
+ omega_m = 1;
+ else
+ omega_m = 0.5;
+ end if;
+ Tel = Tm;
+ equation
+ der(omega_m) = (Tm - Tel)/(2*Hm);
+ annotation (
+ Icon(coordinateSystem(
+ extent={{-100.0,-100.0},{100.0,100.0}},
+ preserveAspectRatio=true,
+ initialScale=0.1,
+ grid={10,10}), graphics={Rectangle(
+ visible=true,
+ fillColor={255,255,255},
+ extent={{-100.0,-100.0},{100.0,100.0}}),Text(
+ visible=true,
+ origin={-1.9109,6.1667},
+ fillPattern=FillPattern.Solid,
+ extent={{-49.8299,-36.1667},{49.8299,36.1667}},
+ textString="meca",
+ fontName="Arial")}),
+ Diagram(coordinateSystem(
+ extent={{-148.5,-105.0},{148.5,105.0}},
+ preserveAspectRatio=true,
+ initialScale=0.1,
+ grid={5,5})),
+ Documentation);
+ end MechaBlk;
+
+ model PitchControl
+ Modelica.Blocks.Interfaces.RealInput omega_m "Real voltage" annotation (
+ Placement(
+ transformation(
+ extent={{-102.0,54.0},{-62.0,94.0}},
+ origin={-43.0,-74.0},
+ rotation=0),
+ visible=true,
+ iconTransformation(
+ origin={2.0,-74.0},
+ extent={{-102.0,54.0},{-62.0,94.0}},
+ rotation=0)));
+ Modelica.Blocks.Interfaces.RealOutput theta_p(start=theta_p0)
+ "saturated theta_p" annotation (Placement(
+ transformation(
+ extent={{102.0,54.0},{62.0,94.0}},
+ origin={46.3073,-74.0},
+ rotation=0),
+ visible=true,
+ iconTransformation(
+ origin={-2.0,-74.0},
+ extent={{102.0,54.0},{62.0,94.0}},
+ rotation=0)));
+ parameter Real Kp=10 "Pitch control gain (pu)";
+ parameter Real Tp=3 "Pitch control time constant (s)";
+ parameter Real theta_p0=0;
+ parameter Real theta_p_min;
+ parameter Real theta_p_max;
+ Real theta_pI "internal non-saturated theta_p";
+ Real phi;
+ initial equation
+ (Kp*phi - theta_pI)/Tp = 0;
+ equation
+ theta_p = min(max(theta_pI, theta_p_min), theta_p_max);
+ phi = ceil(0.5*floor(1000*(omega_m - 1)*2))/1000;
+ der(theta_pI) = (Kp*phi - theta_p)/Tp;
+ when theta_pI > theta_p_max and der(theta_pI) < 0 then
+ reinit(theta_pI, theta_p_max);
+ elsewhen theta_pI < theta_p_min and der(theta_pI) > 0 then
+ reinit(theta_pI, theta_p_min);
+ end when;
+ annotation (
+ Icon(coordinateSystem(
+ extent={{-100.0,-100.0},{100.0,100.0}},
+ preserveAspectRatio=true,
+ initialScale=0.1,
+ grid={10,10}), graphics={Rectangle(
+ visible=true,
+ fillColor={255,255,255},
+ extent={{-100.0,-100.0},{100.0,100.0}}),Text(
+ visible=true,
+ origin={0.0,3.0984},
+ fillPattern=FillPattern.Solid,
+ extent={{-44.9792,-41.316},{44.9792,41.316}},
+ textString="pitch",
+ fontName="Arial")}),
+ Diagram(coordinateSystem(
+ extent={{-148.5,-105.0},{148.5,105.0}},
+ preserveAspectRatio=true,
+ initialScale=0.1,
+ grid={5,5})),
+ Documentation);
+ end PitchControl;
+
+ model WindBlk
+ import Modelica.Constants.pi;
+ Modelica.Blocks.Interfaces.RealInput vw "Real voltage" annotation (Placement(
+ transformation(
+ extent={{-102.0,54.0},{-62.0,94.0}},
+ origin={-43.0,7.7602},
+ rotation=0),
+ visible=true,
+ iconTransformation(
+ origin={2.0,-2.4053},
+ extent={{-102.0,54.0},{-62.0,94.0}},
+ rotation=0)));
+ Modelica.Blocks.Interfaces.RealInput theta_p "Real voltage" annotation (
+ Placement(
+ transformation(
+ extent={{-102.0,54.0},{-62.0,94.0}},
+ origin={-43.0,-34.0},
+ rotation=0),
+ visible=true,
+ iconTransformation(
+ origin={2.0,-76.5688},
+ extent={{-102.0,54.0},{-62.0,94.0}},
+ rotation=0)));
+ Modelica.Blocks.Interfaces.RealInput omega_m "Real voltage" annotation (
+ Placement(
+ transformation(
+ extent={{-102.0,54.0},{-62.0,94.0}},
+ origin={-43.0,-74.0},
+ rotation=0),
+ visible=true,
+ iconTransformation(
+ origin={2.0,-146.3226},
+ extent={{-102.0,54.0},{-62.0,94.0}},
+ rotation=0)));
+ Modelica.Blocks.Interfaces.RealOutput Tm "Real voltage" annotation (Placement(
+ transformation(
+ extent={{102.0,54.0},{62.0,94.0}},
+ origin={43.0,-74.0},
+ rotation=0),
+ visible=true,
+ iconTransformation(
+ origin={-2.0,-71.3573},
+ extent={{102.0,54.0},{62.0,94.0}},
+ rotation=0)));
+ parameter Real vw_base=15 "Vw Nominal (m/s)";
+ parameter Real rho=1.225 "Air Density (kg/m^3)";
+ parameter Real Sbase=100 "Power Rating [Normalization Factor] (MVA)";
+ parameter Real l=75 "Blade length (m)";
+ parameter Real ngb=0.01123596 "gear box ratio";
+ parameter Real Radapt=ngb*l "r_{gearbox}*r";
+ parameter Real poles=2 "Number of poles-pair";
+ parameter Real freq=50 "frequency rating (Hz)";
+ parameter Real wbase=2*pi*freq;
+ parameter Real Ar=pi*l^2 "blades area";
+ Real lambda "Tip speed Ratio";
+ Real lambdai "Tip Speed Ratio optimal";
+ Real cp "Capacity coefficient";
+ Real Pw "Power in the Wind";
+ equation
+ lambda = omega_m*wbase*Radapt/(vw*vw_base);
+ lambdai = 1/(1/(lambda + 0.08*theta_p) - 0.035/(theta_p^3 + 1));
+ cp = 0.22*(116/lambdai - 0.4*theta_p - 5)*exp(-12.5/lambdai);
+ Pw = 0.5*rho*cp*Ar*(vw*vw_base)^3/(Sbase*1000000.0);
+ Tm = Pw/omega_m;
+ annotation (
+ Icon(coordinateSystem(
+ extent={{-100.0,-100.0},{100.0,100.0}},
+ preserveAspectRatio=true,
+ initialScale=0.1,
+ grid={10,10}), graphics={Rectangle(
+ visible=true,
+ fillColor={255,255,255},
+ extent={{-100.0,-100.0},{100.0,100.0}}),Text(
+ visible=true,
+ origin={5.2917,-1.4606},
+ fillPattern=FillPattern.Solid,
+ extent={{-39.3935,-41.4606},{39.3935,41.4606}},
+ textString="wind",
+ fontName="Arial")}),
+ Diagram(coordinateSystem(
+ extent={{-148.5,-105.0},{148.5,105.0}},
+ preserveAspectRatio=true,
+ initialScale=0.1,
+ grid={5,5})),
+ Documentation);
+ end WindBlk;
+ annotation (Diagram(coordinateSystem(
+ extent={{-148.5,-105.0},{148.5,105.0}},
+ preserveAspectRatio=true,
+ initialScale=0.1,
+ grid={5,5})), Documentation);
+ end PSAT_Type_3;
+ annotation (Diagram(coordinateSystem(
+ extent={{-148.5,-105.0},{148.5,105.0}},
+ preserveAspectRatio=true,
+ initialScale=0.1,
+ grid={5,5})), Documentation);
+ end PSAT;
+
+ package PSSE
+ package WT3G
+ model WT3G1
+ extends OpenIPSL.Electrical.Essentials.pfComponent;
+ constant Real pi=Modelica.Constants.pi;
+ parameter Real X_eq "Equivalent reactance for current injection (pu)";
+ parameter Real K_pll "PLL first integrator gain";
+ parameter Real K_ipll "PLL second integrator gain";
+ parameter Real P_llmax "PLL maximum limit";
+ parameter Real P_rated "Turbine MW rating, not used in the equation";
+ parameter Complex Zs(re=0, im=X_eq) "Equivalent impedance (ZSORCE)"
+ annotation (Dialog(group="Power flow data"));
+ parameter Real M_b=100 "Machine base power (MVA)"
+ annotation (Dialog(group="Power flow data"));
+ Real VT(start=V_0) "Bus voltage magnitude";
+ Real anglev(start=anglev_rad) "Bus voltage angle";
+ Real VY(start=0) "y-axis terminal voltage";
+ Real VX(start=V_0) "x-axis terminal voltage";
+ Complex Is "Equivalent internal current source";
+ OpenIPSL.Interfaces.PwPin p(
+ vr(start=vr0),
+ vi(start=vi0),
+ ir(start=ir1),
+ ii(start=ii1)) annotation (Placement(transformation(extent={{
+ 100,-10},{120,10}}), iconTransformation(extent={{100,-10},
+ {120,10}})));
+ Modelica.Blocks.Continuous.Integrator imIntegrator(
+ k=wbase,
+ y_start=anglev_rad,
+ initType=Modelica.Blocks.Types.Init.InitialOutput)
+ annotation (Placement(transformation(extent={{50,-30},{70,-10}})));
+ Modelica.Blocks.Continuous.LimIntegrator imIntegrator1(
+ outMin=-P_llmax,
+ outMax=P_llmax,
+ y_start=0,
+ initType=Modelica.Blocks.Types.Init.InitialOutput,
+ k=K_ipll) annotation (Placement(transformation(extent={{-40,0},{-20,20}})));
+ OpenIPSL.NonElectrical.Continuous.SimpleLag imSimpleLag(
+ K=1,
+ T=0.02,
+ y_start=Eqcmd0) annotation (Placement(transformation(extent={{-60,
+ 70},{-40,90}})));
+ OpenIPSL.NonElectrical.Continuous.SimpleLag imSimpleLag1(
+ K=1,
+ T=0.02,
+ y_start=Ix0) annotation (Placement(transformation(extent={{-60,
+ 30},{-40,50}})));
+ Modelica.Blocks.Math.Gain imGain(k=-1/X_eq)
+ annotation (Placement(transformation(extent={{-20,70},{0,90}})));
+ Modelica.Blocks.Interfaces.RealOutput Iy(start=Iy0) annotation (Placement(
+ transformation(extent={{20,70},{40,90}}), iconTransformation(extent={{
+ 100,-100},{120,-80}})));
+ Modelica.Blocks.Interfaces.RealOutput Ix(start=Ix0) annotation (Placement(
+ transformation(extent={{20,30},{40,50}}), iconTransformation(extent={{
+ 100,-70},{120,-50}})));
+ Modelica.Blocks.Interfaces.RealOutput Iterm(start=Iy0) annotation (Placement(
+ transformation(extent={{98,60},{118,80}}), iconTransformation(extent={{
+ -100,-40},{-120,-20}})));
+ Modelica.Blocks.Interfaces.RealInput Eqcmd(start=Eqcmd0) annotation (
+ Placement(transformation(extent={{-110,70},{-90,90}}), iconTransformation(
+ extent={{-10,-10},{10,10}},
+ rotation=0,
+ origin={-90,70})));
+ Modelica.Blocks.Interfaces.RealInput Ipcmd(start=Ipcmd0) annotation (
+ Placement(transformation(extent={{-110,30},{-90,50}}), iconTransformation(
+ extent={{-10,-10},{10,10}},
+ rotation=0,
+ origin={-90,30})));
+ Modelica.Blocks.Math.Gain imGain1(k=K_pll/wbase)
+ annotation (Placement(transformation(extent={{-80,-30},{-60,-10}})));
+ Modelica.Blocks.Math.Add add
+ annotation (Placement(transformation(extent={{-10,-30},{10,-10}})));
+ Modelica.Blocks.Nonlinear.Limiter imLimited(uMin=-P_llmax, uMax=P_llmax)
+ annotation (Placement(transformation(extent={{20,-30},{40,-10}})));
+ Modelica.Blocks.Interfaces.RealOutput delta(start=anglev_rad) annotation (
+ Placement(transformation(extent={{80,-30},{100,-10}}), iconTransformation(
+ extent={{-10,-10},{10,10}},
+ rotation=0,
+ origin={110,-30})));
+ Modelica.Blocks.Interfaces.RealOutput V=VT annotation (Placement(
+ transformation(extent={{100,20},{120,40}}), iconTransformation(extent={
+ {-100,-80},{-120,-60}})));
+ Modelica.Blocks.Interfaces.RealOutput P "On machine base" annotation (
+ Placement(transformation(extent={{100,-40},{120,-20}}),
+ iconTransformation(
+ extent={{-10,-10},{10,10}},
+ rotation=0,
+ origin={110,70})));
+ Modelica.Blocks.Interfaces.RealOutput Q annotation (Placement(transformation(
+ extent={{100,-80},{120,-60}}), iconTransformation(
+ extent={{-10,-10},{10,10}},
+ rotation=0,
+ origin={110,30})));
+ Modelica.Blocks.Interfaces.RealOutput ipcmd0=Ipcmd0 annotation (Placement(
+ transformation(
+ extent={{10,-10},{-10,10}},
+ rotation=-90,
+ origin={-50,110}), iconTransformation(
+ extent={{-10,-10},{10,10}},
+ rotation=90,
+ origin={-10,110})));
+ Modelica.Blocks.Interfaces.RealOutput eqcmd0=Eqcmd0 annotation (Placement(
+ transformation(
+ extent={{10,-10},{-10,10}},
+ rotation=-90,
+ origin={-70,108}), iconTransformation(
+ extent={{-10,-10},{10,10}},
+ rotation=90,
+ origin={-50,110})));
+ protected
+ parameter Real wbase=2*pi*fn "System base speed";
+ parameter Real p0=P_0/M_b
+ "initial value of bus active power in p.u. machinebase";
+ parameter Real q0=Q_0/M_b
+ "initial value of bus reactive power in p.u. machinebase";
+ parameter Real v0=V_0;
+ parameter Real vr0=v0*cos(anglev_rad)
+ "Real component of initial terminal voltage";
+ parameter Real vi0=v0*sin(anglev_rad)
+ "Imaginary component of intitial terminal voltage";
+ parameter Real ir0=(p0*vr0 + q0*vi0)/(vr0^2 + vi0^2)
+ "Real component of initial armature current, mbase";
+ parameter Real ii0=(p0*vi0 - q0*vr0)/(vr0^2 + vi0^2)
+ "Imaginary component of initial armature current, mbase";
+ parameter Real Isr0=ir0 + vi0/X_eq "Sorce current re mbase";
+ parameter Real Isi0=ii0 - vr0/X_eq "Sorce current im mbase";
+ parameter Real CoB=M_b/S_b;
+ parameter Real ir1=-CoB*(p0*vr0 + q0*vi0)/(vr0^2 + vi0^2)
+ "Real component of initial armature current, sbase";
+ parameter Real ii1=-CoB*(p0*vi0 - q0*vr0)/(vr0^2 + vi0^2)
+ "Imaginary component of initial armature current, sbase";
+ parameter Real Ix0=Isr0*cos(-anglev_rad) - Isi0*sin(-anglev_rad);
+ parameter Real Iy0=Isr0*sin(-anglev_rad) + cos(-anglev_rad)*Isi0;
+ parameter Real Eqcmd0=-Iy0*X_eq;
+ parameter Real Ipcmd0=Ix0;
+ parameter Real anglev_rad=angle_0*pi/180 "initial value of bus anglev in rad";
+ parameter Real VX0=cos(anglev_rad)*vr0 + sin(anglev_rad)*vi0;
+ parameter Real VY0=(-sin(anglev_rad)*vr0) + cos(anglev_rad)*vi0;
+ protected
+ Modelica.Blocks.Interfaces.RealInput Vy annotation (Placement(transformation(
+ extent={{-110,-30},{-90,-10}}), iconTransformation(extent={{-118,-40},
+ {-96,-18}})));
+ initial equation
+ delta = anglev_rad;
+ equation
+ anglev = atan2(p.vi, p.vr);
+ VT = sqrt(p.vr*p.vr + p.vi*p.vi);
+ Iterm = sqrt(p.ir*p.ir + p.ii*p.ii);
+ Is.re = p.ir/CoB - p.vi/X_eq;
+ //Note that, the positive direction for p.ir is the antidirection of ir0
+ Is.im = p.ii/CoB + p.vr/X_eq;
+ Vy = VY;
+ [Ix; Iy] = -[cos(delta), sin(delta); -sin(delta), cos(delta)]*[Is.re; Is.im];
+ [VX; VY] = [cos(delta), sin(delta); -sin(delta), cos(delta)]*[p.vr; p.vi];
+ -P = p.vr*p.ir/CoB + p.vi*p.ii/CoB;
+ -Q = p.vi*p.ir/CoB - p.vr*p.ii/CoB;
+ connect(Eqcmd, imSimpleLag.u)
+ annotation (Line(points={{-100,80},{-66.5,80},{-62,80}}, color={0,0,127}));
+ connect(Ipcmd, imSimpleLag1.u)
+ annotation (Line(points={{-100,40},{-82,40},{-62,40}}, color={0,0,127}));
+ connect(add.y, imLimited.u)
+ annotation (Line(points={{11,-20},{11,-20},{18,-20}}, color={0,0,127}));
+ connect(imLimited.y, imIntegrator.u)
+ annotation (Line(points={{41,-20},{48,-20}}, color={0,0,127}));
+ connect(imIntegrator.y, delta)
+ annotation (Line(points={{71,-20},{71,-20},{90,-20}}, color={0,0,127}));
+ connect(Vy, imGain1.u) annotation (Line(points={{-100,-20},{-90,-20},{-82,-20}},
+ color={0,0,127}));
+ connect(imSimpleLag.y, imGain.u)
+ annotation (Line(points={{-39,80},{-39,80},{-22,80}}, color={0,0,127}));
+ connect(imGain.y, Iy)
+ annotation (Line(points={{1,80},{30,80},{30,80}}, color={0,0,127}));
+ connect(imSimpleLag1.y, Ix)
+ annotation (Line(points={{-39,40},{30,40},{30,40}}, color={0,0,127}));
+ connect(imGain1.y, add.u2) annotation (Line(points={{-59,-20},{-40,-20},{-20,
+ -20},{-20,-26},{-12,-26}}, color={0,0,127}));
+ connect(imIntegrator1.u, add.u2) annotation (Line(points={{-42,10},{-50,10},{
+ -50,-20},{-20,-20},{-20,-26},{-12,-26}}, color={0,0,127}));
+ connect(imIntegrator1.y, add.u1) annotation (Line(points={{-19,10},{-16,10},{
+ -16,-14},{-12,-14}}, color={0,0,127}));
+ annotation (
+ Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{
+ 100,100}})),
+ Icon(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{100,
+ 100}}), graphics={Rectangle(
+ extent={{-100,100},{100,-100}},
+ lineColor={28,108,200},
+ fillColor={255,255,255},
+ fillPattern=FillPattern.Solid),Text(
+ extent={{-42,18},{48,-10}},
+ lineColor={28,108,200},
+ textString="WT3G1"),Text(
+ extent={{-98,-24},{-84,-36}},
+ lineColor={28,108,200},
+ lineThickness=0.5,
+ fillColor={255,255,255},
+ fillPattern=FillPattern.Solid,
+ textString="V"),Text(
+ extent={{80,76},{94,64}},
+ lineColor={28,108,200},
+ lineThickness=0.5,
+ fillColor={255,255,255},
+ fillPattern=FillPattern.Solid,
+ textString="P"),Text(
+ extent={{80,36},{94,24}},
+ lineColor={28,108,200},
+ lineThickness=0.5,
+ fillColor={255,255,255},
+ fillPattern=FillPattern.Solid,
+ textString="Q"),Text(
+ extent={{-74,36},{-40,24}},
+ lineColor={28,108,200},
+ lineThickness=0.5,
+ fillColor={255,255,255},
+ fillPattern=FillPattern.Solid,
+ textString="Ipcmd"),Text(
+ extent={{-74,76},{-40,64}},
+ lineColor={28,108,200},
+ lineThickness=0.5,
+ fillColor={255,255,255},
+ fillPattern=FillPattern.Solid,
+ textString="Eqcmd"),Text(
+ extent={{72,-24},{98,-36}},
+ lineColor={28,108,200},
+ lineThickness=0.5,
+ fillColor={255,255,255},
+ fillPattern=FillPattern.Solid,
+ textString="delta"),Text(
+ extent={{-98,-64},{-72,-76}},
+ lineColor={28,108,200},
+ lineThickness=0.5,
+ fillColor={255,255,255},
+ fillPattern=FillPattern.Solid,
+ textString="Iterm"),Text(
+ extent={{74,-52},{98,-64}},
+ lineColor={28,108,200},
+ lineThickness=0.5,
+ fillColor={255,255,255},
+ fillPattern=FillPattern.Solid,
+ textString="I_x"),Text(
+ extent={{74,-84},{98,-96}},
+ lineColor={28,108,200},
+ lineThickness=0.5,
+ fillColor={255,255,255},
+ fillPattern=FillPattern.Solid,
+ textString="I_y"),Text(
+ extent={{-66,96},{-32,84}},
+ lineColor={28,108,200},
+ lineThickness=0.5,
+ fillColor={255,255,255},
+ fillPattern=FillPattern.Solid,
+ textString="Eqcmd0"),Text(
+ extent={{-26,96},{8,84}},
+ lineColor={28,108,200},
+ lineThickness=0.5,
+ fillColor={255,255,255},
+ fillPattern=FillPattern.Solid,
+ textString="Ipcmd0")}),
+ Documentation);
+ end WT3G1;
+
+ model WT3E1
+ parameter Integer VARFLG
+ "0 constant Q; 1 Reactive control; -1 Constant PF control" annotation (
+ choices(
+ choice=0 "Constant Q",
+ choice=1 "Reactive power control",
+ choice=-1 "Constant PF control"));
+ parameter Integer VLRFLG
+ "0 Bypass V control; 1 WT3G1 Eqcmd limits;2 WT3G2 Eqcmd limits" annotation (
+ choices(
+ choice=0 "Disable terminal voltage control",
+ choice=1 "Enable terminal voltage control ",
+ choice=2 "Fixed limits for Eqcmd"));
+ parameter Real Tfv=0.15000 "Filter time constant in voltage regulator (sec)";
+ parameter Real Kpv=18.000 " Proportional gain in voltage regulator (pu)";
+ parameter Real KIV=5.0000 " Integrator gain in voltage regulator (pu)";
+ parameter Real Xc=0.0000 " Line drop compensation reactance (pu)";
+ parameter Real TFP=0.50000E-01 " Filter time constant in torque regulator";
+ parameter Real Kpp=3.0000 " Proportional gain in torque regulator (pu) ";
+ parameter Real KIP=0.60000 " Integrator gain in torque regulator (pu)";
+ parameter Real PMX=1.1200 " Max limit in torque regulator (pu)";
+ parameter Real PMN=0.10000 " Min limit in torque regulator (pu)";
+ parameter Real QMX=0.29600 " Max limit in voltage regulator (pu)";
+ parameter Real QMN=-0.43600 " Min limit in voltage regulator (pu)";
+ parameter Real IPMAX=1.1000 " Max active current limit";
+ parameter Real TRV=0.50000E-01 " Voltage sensor time constant";
+ parameter Real RPMX=0.45000 " Max power order derivative";
+ parameter Real RPMN=-0.45000 " Min power order derivative";
+ parameter Real T_Power=5.0000 " Power filter time constant";
+ parameter Real Kqi=0.50000E-01 " MVAR/Voltage gain";
+ parameter Real VMINCL=0.90000 " Min voltage limit";
+ parameter Real VMAXCL=1.2000 " Max voltage limit";
+ parameter Real Kqv=40.000 " Voltage/MVAR gain";
+ parameter Real XIQmin=-0.50000;
+ parameter Real XIQmax=0.40000;
+ parameter Real Tv=0.50000E-01 " Lag time constant in WindVar controller";
+ parameter Real Tp=0.50000E-01 " Pelec filter in fast PF controller";
+ parameter Real Fn=1.0000 " A portion of online wind turbines";
+ parameter Real wPmin=0.69000 " Shaft speed at Pmin (pu)";
+ parameter Real wP20=0.78000 " Shaft speed at 20% rated power (pu) ";
+ parameter Real wP40=0.98000 " Shaft speed at 40% rated power (pu)";
+ parameter Real wP60=1.1200 " Shaft speed at 60% rated power (pu)";
+ parameter Real Pmin=0.74000
+ " Minimum power for operating at P100 speed (pu)";
+ parameter Real wP100=1.2000 " Shaft speed at 100% rated power (pu)";
+ parameter Real Vref " Remote bus ref voltage";
+ parameter Real v0;
+ parameter Real p0;
+ parameter Real q0;
+ Modelica.Blocks.Interfaces.RealInput PELEC annotation (Placement(
+ transformation(extent={{-210,30},{-190,50}}), iconTransformation(
+ extent={{10,-10},{-10,10}},
+ rotation=180,
+ origin={-190,-120})));
+ Modelica.Blocks.Interfaces.RealInput VTERM(start=v0) annotation (Placement(
+ transformation(extent={{-210,-110},{-190,-90}}), iconTransformation(
+ extent={{10,-10},{-10,10}},
+ rotation=180,
+ origin={-190,-40})));
+ Modelica.Blocks.Interfaces.RealOutput WIPCMD annotation (Placement(
+ transformation(extent={{180,-70},{200,-50}}), iconTransformation(extent=
+ {{-200,40},{-220,60}})));
+ Modelica.Blocks.Nonlinear.Limiter Qord(uMin=QMN, uMax=QMX)
+ annotation (Placement(transformation(extent={{12,30},{32,50}})));
+ Modelica.Blocks.Interfaces.RealInput Qelec annotation (Placement(
+ transformation(
+ extent={{-10,-10},{10,10}},
+ rotation=270,
+ origin={50,140}), iconTransformation(
+ extent={{10,-10},{-10,10}},
+ rotation=180,
+ origin={-190,-80})));
+ Modelica.Blocks.Math.Feedback feedback1
+ annotation (Placement(transformation(extent={{40,50},{60,30}})));
+ Modelica.Blocks.Continuous.LimIntegrator K6(
+ outMin=VMINCL,
+ outMax=VMAXCL,
+ k=Kqi,
+ y_start=k60,
+ initType=Modelica.Blocks.Types.Init.InitialOutput)
+ annotation (Placement(transformation(extent={{70,30},{90,50}})));
+ Modelica.Blocks.Math.Feedback Vcl
+ annotation (Placement(transformation(extent={{100,30},{120,50}})));
+ Modelica.Blocks.Interfaces.RealOutput WEQCMD annotation (Placement(
+ transformation(extent={{180,32},{198,50}}), iconTransformation(extent={
+ {-200,80},{-220,100}})));
+ Modelica.Blocks.Interfaces.RealOutput WPCMND annotation (Placement(
+ transformation(extent={{180,-102},{200,-82}}), iconTransformation(
+ extent={{-10,-10},{10,10}},
+ rotation=270,
+ origin={-150,-150})));
+ Modelica.Blocks.Continuous.LimIntegrator K7(
+ k=Kqv,
+ y_start=k70,
+ outMax=1 + XIQmax,
+ outMin=XIQmin - 1)
+ annotation (Placement(transformation(extent={{138,30},{158,50}})));
+ Modelica.Blocks.Interfaces.RealInput ITERM "magenitute of terminal current"
+ annotation (Placement(transformation(extent={{-210,88},{-190,108}}),
+ iconTransformation(
+ extent={{10,-10},{-10,10}},
+ rotation=180,
+ origin={-190,0})));
+ Modelica.Blocks.Sources.Constant Qcmd0(k=Qref) annotation (Placement(
+ transformation(
+ extent={{-10,-10},{10,10}},
+ rotation=90,
+ origin={-10,-2})));
+ Modelica.Blocks.Interfaces.RealInput WEQCMD0 annotation (Placement(
+ transformation(extent={{-140,120},{-120,140}}), iconTransformation(
+ extent={{-10,-10},{10,10}},
+ rotation=270,
+ origin={-110,130})));
+ Modelica.Blocks.Interfaces.RealInput WIPCMD0 annotation (Placement(
+ transformation(extent={{-180,120},{-160,140}}), iconTransformation(
+ extent={{-10,-10},{10,10}},
+ rotation=270,
+ origin={-150,130})));
+ pf_Controller pf_Controller1(
+ Tp=Tp,
+ p0=p0,
+ PFA_ref=PFA_ref,
+ q0=q0) annotation (Placement(transformation(rotation=0, extent={{-114,20},{
+ -74,60}})));
+ ActivePowerControl activePowerControl(
+ TFP=TFP,
+ Kpp=Kpp,
+ KIP=KIP,
+ PMX=PMX,
+ PMN=PMN,
+ IPMAX=IPMAX,
+ RPMX=RPMX,
+ RPMN=RPMN,
+ T_Power=T_Power,
+ k20=k20,
+ k30=k30,
+ k50=k50,
+ wPmin=wPmin,
+ wP20=wP20,
+ wP40=wP40,
+ wP60=wP60,
+ Pmin=Pmin,
+ wP100=wP100) annotation (Placement(transformation(rotation=0, extent={{-40,
+ -80},{40,-40}})));
+ ReactivePowerControl reactivePowerControl(
+ Tfv=Tfv,
+ Kpv=Kpv,
+ KIV=KIV,
+ Xc=Xc,
+ QMX=QMX,
+ QMN=QMN,
+ TRV=TRV,
+ Tv=Tv,
+ Fn=Fn,
+ Vref=Vref,
+ k0=k0,
+ k10=k10,
+ k40=k40,
+ k80=k80) annotation (Placement(transformation(rotation=0, extent={{-104,80},
+ {-46,104}})));
+ protected
+ parameter Real PFA_ref(fixed=false) "PF angle reference if PFAFLG=1";
+ //parameter Real Qord "MVAR order from MVAR emulator";
+ parameter Real Qref=q0 "Q reference if PFAFLG=0 & VARFLG";
+ parameter Real sp0=Speed(
+ p0,
+ PMN,
+ wPmin,
+ wP20,
+ wP40,
+ wP60,
+ wP100,
+ Pmin);
+ parameter Real k0(fixed=false);
+ parameter Real k10(fixed=false);
+ parameter Real k20(fixed=false);
+ parameter Real k30(fixed=false);
+ parameter Real k40(fixed=false);
+ parameter Real k50(fixed=false);
+ parameter Real k60(fixed=false);
+ parameter Real k70(fixed=false);
+ parameter Real k80(fixed=false);
+ parameter Real k90(fixed=false);
+
+ function Speed
+ extends Modelica.Icons.Function;
+ input Real x;
+ input Real PMN " Min limit in torque regulator (pu)";
+ input Real wmin;
+ input Real w20;
+ input Real w40;
+ input Real w60;
+ input Real w100;
+ input Real Pmin " Minimum power for operating at wP100 speed (pu)";
+ output Real y;
+ protected
+ parameter Real K1=(w20 - wmin)/(0.2 - PMN);
+ parameter Real K2=(w40 - w20)/(0.4 - 0.2);
+ parameter Real K3=(w60 - w40)/(0.6 - 0.4);
+ parameter Real K4=(w100 - w60)/(Pmin - 0.6);
+ Real K, x0, y0;
+ algorithm
+ if x <= PMN then
+ K := 0;
+ y0 := wmin;
+ x0 := PMN;
+ elseif x > Pmin and x <= 0.2 then
+ K := K1;
+ y0 := wmin;
+ x0 := PMN;
+ elseif x > 0.2 and x <= 0.4 then
+ K := K2;
+ y0 := w20;
+ x0 := 0.2;
+ elseif x > 0.4 and x <= 0.6 then
+ K := K3;
+ y0 := w40;
+ x0 := 0.4;
+ elseif x > 0.6 and x <= Pmin then
+ K := K4;
+ y0 := w60;
+ x0 := 0.6;
+ else
+ K := 0;
+ y0 := w100;
+ x0 := Pmin;
+ end if;
+ y := K*(x - x0) + y0 - 1;
+ end Speed;
+ protected
+ Modelica.Blocks.Interfaces.RealInput SPEED=sp0 annotation (Placement(
+ transformation(extent={{-210,-60},{-190,-40}}), iconTransformation(
+ extent={{-12,-12},{12,12}},
+ rotation=90,
+ origin={80,-92})));
+ initial equation
+ PFA_ref = atan2(q0, p0);
+ k40 = v0;
+ k0 = q0;
+ k10 = q0;
+ k60 = v0;
+ k70 = WEQCMD0;
+ k20 = WIPCMD0*v0;
+ k30 = k20/(sp0 + 1);
+ k80 = 0;
+ k90 = p0;
+ k50 = sp0;
+ equation
+ if VLRFLG <> 0 then
+ WEQCMD = K7.y;
+ else
+ WEQCMD = Vcl.y;
+ end if;
+ if VARFLG == 1 then
+ Qord.u = reactivePowerControl.Q_ord;
+ elseif VARFLG == (-1) then
+ Qord.u = pf_Controller1.Q_REF_PF;
+ else
+ Qord.u = Qref;
+ end if;
+ connect(Qelec, feedback1.u2) annotation (Line(
+ points={{50,140},{50,48}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(Vcl.u2, VTERM) annotation (Line(points={{110,32},{110,32},{110,-100},
+ {-46,-100},{-46,-100},{-200,-100}}, color={0,0,127}));
+ connect(feedback1.y, K6.u)
+ annotation (Line(points={{59,40},{68,40}}, color={0,0,127}));
+ connect(K6.y, Vcl.u1)
+ annotation (Line(points={{91,40},{91,40},{102,40}}, color={0,0,127}));
+ connect(Qord.y, feedback1.u1)
+ annotation (Line(points={{33,40},{33,40},{42,40}}, color={0,0,127}));
+ protected
+ model pf_Controller
+ Modelica.Blocks.Math.Tan tan1
+ annotation (Placement(transformation(extent={{-120,40},{-100,60}})));
+ Modelica.Blocks.Math.Product Qcmdn1
+ annotation (Placement(transformation(extent={{-60,-10},{-40,10}})));
+ Modelica.Blocks.Sources.Constant VAR2(k=PFA_ref)
+ annotation (Placement(transformation(extent={{-160,40},{-140,60}})));
+ NonElectrical.Continuous.SimpleLag K0(
+ K=1,
+ y_start=p0,
+ T=Tp)
+ annotation (Placement(transformation(extent={{-120,-10},{-100,10}})));
+ parameter Real Tp=0.50000E-01 " Pelec filter in fast PF controller";
+ parameter Real PFA_ref=atan2(q0, p0) "PF angle reference if PFAFLG=1";
+ parameter Real p0;
+ parameter Real q0;
+ Modelica.Blocks.Interfaces.RealInput u annotation (Placement(transformation(
+ rotation=0, extent={{-214,-10},{-194,10}})));
+ Modelica.Blocks.Interfaces.RealOutput Q_REF_PF
+ annotation (Placement(transformation(extent={{0,-10},{20,10}})));
+ equation
+ connect(tan1.y, Qcmdn1.u1) annotation (Line(points={{-99,50},{-78,50},{-78,
+ 6},{-62,6}}, color={0,0,127}));
+ connect(K0.y, Qcmdn1.u2) annotation (Line(points={{-99,0},{-78,0},{-78,-6},
+ {-62,-6}}, color={0,0,127}));
+ connect(VAR2.y, tan1.u) annotation (Line(points={{-139,50},{-139,50},{-122,
+ 50}}, color={0,0,127}));
+ connect(u, K0.u)
+ annotation (Line(points={{-204,0},{-158,0},{-122,0}}, color={0,0,127}));
+ connect(Qcmdn1.y, Q_REF_PF)
+ annotation (Line(points={{-39,0},{10,0},{10,0}}, color={0,0,127}));
+ annotation (Diagram(coordinateSystem(extent={{-200,-100},{0,100}},
+ preserveAspectRatio=true), graphics={Text(
+ extent={{-160,100},{-40,80}},
+ lineColor={255,0,0},
+ pattern=LinePattern.Dash,
+ lineThickness=0.5,
+ fillColor={0,0,255},
+ fillPattern=FillPattern.Solid,
+ textString="Power Factor Regulator")}), Icon(coordinateSystem(
+ extent={{-200,-100},{0,100}}, preserveAspectRatio=true), graphics={
+ Rectangle(
+ extent={{-200,100},{0,-100}},
+ lineColor={28,108,200},
+ fillColor={255,255,255},
+ fillPattern=FillPattern.Solid),Text(
+ extent={{-188,6},{-148,-6}},
+ lineColor={28,108,200},
+ textString="P_FAREF"),Text(
+ extent={{-60,6},{-2,-6}},
+ lineColor={28,108,200},
+ textString="Q_REF_PF"),Text(
+ extent={{-160,80},{-40,40}},
+ lineColor={238,46,47},
+ textString="PF Controller")}));
+ end pf_Controller;
+ equation
+ connect(PELEC, pf_Controller1.u) annotation (Line(points={{-200,40},{-140,40},
+ {-114.8,40}}, color={0,0,127}));
+ protected
+ model ActivePowerControl
+ NonElectrical.Continuous.SimpleLag K5(
+ K=1,
+ T=T_Power,
+ y_start=k50)
+ annotation (Placement(transformation(extent={{-180,-70},{-160,-50}})));
+ Modelica.Blocks.Math.Add add(k2=-1)
+ annotation (Placement(transformation(extent={{-140,-70},{-120,-50}})));
+ Modelica.Blocks.Continuous.Integrator K3(
+ y_start=k30,
+ k=KIP,
+ initType=Modelica.Blocks.Types.Init.InitialOutput)
+ annotation (Placement(transformation(extent={{-100,-40},{-80,-20}})));
+ Modelica.Blocks.Math.Gain imGain(k=Kpp)
+ annotation (Placement(transformation(extent={{-100,-100},{-80,-80}})));
+ Modelica.Blocks.Math.Add add1
+ annotation (Placement(transformation(extent={{-60,-70},{-40,-50}})));
+ Modelica.Blocks.Math.Feedback feedback
+ annotation (Placement(transformation(extent={{20,-70},{40,-50}})));
+ Modelica.Blocks.Nonlinear.Limiter imLimited(uMin=RPMN, uMax=RPMX)
+ annotation (Placement(transformation(extent={{50,-70},{70,-50}})));
+ Modelica.Blocks.Continuous.LimIntegrator K2(
+ outMin=PMN,
+ outMax=PMX,
+ k=1/TFP,
+ y_start=k20,
+ initType=Modelica.Blocks.Types.Init.InitialOutput)
+ annotation (Placement(transformation(extent={{80,-70},{100,-50}})));
+ Modelica.Blocks.Nonlinear.Limiter imLimited_max(uMin=-Modelica.Constants.inf,
+ uMax=IPMAX)
+ annotation (Placement(transformation(extent={{160,-70},{180,-50}})));
+ Modelica.Blocks.Math.Add add2
+ annotation (Placement(transformation(extent={{-100,44},{-80,64}})));
+ Modelica.Blocks.Sources.Constant const(k=1)
+ annotation (Placement(transformation(extent={{-140,10},{-120,30}})));
+ Modelica.Blocks.Math.Division division
+ annotation (Placement(transformation(extent={{120,-70},{140,-50}})));
+ Modelica.Blocks.Nonlinear.Limiter imLimited_min(uMin=0.01, uMax=Modelica.Constants.inf)
+ annotation (Placement(transformation(extent={{80,-10},{100,10}})));
+ Modelica.Blocks.Math.Product Qcmdn2
+ annotation (Placement(transformation(extent={{-20,-70},{0,-50}})));
+ Modelica.Blocks.Interfaces.RealOutput WPCMND annotation (Placement(
+ transformation(extent={{200,-100},{220,-80}}), iconTransformation(
+ extent={{-10,-10},{10,10}},
+ rotation=270,
+ origin={1.77636e-015,-110})));
+ protected
+ Modelica.Blocks.Interfaces.RealInput WNDSP_1
+ annotation (Placement(transformation(extent={{-210,-70},{-190,-50}})));
+ public
+ parameter Real TFP=0.50000E-01 " Filter time constant in torque regulator";
+ parameter Real Kpp=3.0000 " Proportional gain in torque regulator (pu) ";
+ parameter Real KIP=0.60000 " Integrator gain in torque regulator (pu)";
+ parameter Real PMX=1.1200 " Max limit in torque regulator (pu)";
+ parameter Real PMN=0.10000 " Min limit in torque regulator (pu)";
+ parameter Real IPMAX=1.1000 " Max active current limit";
+ parameter Real RPMX=0.45000 " Max power order derivative";
+ parameter Real RPMN=-0.45000 " Min power order derivative";
+ parameter Real T_Power=5.0000 " Power filter time constant";
+ parameter Real wPmin=0.69000 " Shaft speed at Pmin (pu)";
+ parameter Real wP20=0.78000 " Shaft speed at 20% rated power (pu) ";
+ parameter Real wP40=0.98000 " Shaft speed at 40% rated power (pu)";
+ parameter Real wP60=1.1200 " Shaft speed at 60% rated power (pu)";
+ parameter Real Pmin=0.74000
+ " Minimum power for operating at P100 speed (pu)";
+ parameter Real wP100=1.2000 " Shaft speed at 100% rated power (pu)";
+ parameter Real k20;
+ parameter Real k30;
+ parameter Real k50;
+ Modelica.Blocks.Interfaces.RealInput SPEED annotation (Placement(
+ transformation(rotation=0, extent={{-210,50},{-190,70}}),
+ iconTransformation(extent={{-200,40},{-180,60}})));
+ Modelica.Blocks.Interfaces.RealOutput WIPCMD annotation (Placement(
+ transformation(rotation=0, extent={{200,-70},{220,-50}}),
+ iconTransformation(extent={{200,-10},{220,10}})));
+ Modelica.Blocks.Interfaces.RealInput VTERM annotation (Placement(
+ transformation(rotation=0, extent={{-210,-10},{-190,10}}),
+ iconTransformation(extent={{-200,-60},{-180,-40}})));
+ Modelica.Blocks.Interfaces.RealInput PELEC annotation (Placement(
+ transformation(extent={{-210,80},{-190,100}}), iconTransformation(
+ extent={{-200,-10},{-180,10}})));
+ equation
+ WNDSP_1 = Speed(
+ PELEC,
+ PMN,
+ wPmin,
+ wP20,
+ wP40,
+ wP60,
+ wP100,
+ Pmin);
+ connect(imLimited_min.y, division.u2) annotation (Line(
+ points={{101,0},{112,0},{112,-66},{118,-66}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(WNDSP_1, K5.u) annotation (Line(points={{-200,-60},{-200,-60},{-182,
+ -60}}, color={0,0,127}));
+ connect(K2.y, division.u1) annotation (Line(points={{101,-60},{114,-60},{
+ 114,-54},{118,-54}}, color={0,0,127}));
+ connect(division.y, imLimited_max.u) annotation (Line(points={{141,-60},{
+ 141,-60},{158,-60}}, color={0,0,127}));
+ connect(K5.y, add.u2) annotation (Line(points={{-159,-60},{-152,-60},{-152,
+ -66},{-142,-66}}, color={0,0,127}));
+ connect(add.y, K3.u) annotation (Line(points={{-119,-60},{-110,-60},{-110,-30},
+ {-102,-30}}, color={0,0,127}));
+ connect(imGain.u, K3.u) annotation (Line(points={{-102,-90},{-110,-90},{-110,
+ -30},{-102,-30}}, color={0,0,127}));
+ connect(K3.y, add1.u1) annotation (Line(points={{-79,-30},{-72,-30},{-72,-54},
+ {-62,-54}}, color={0,0,127}));
+ connect(imGain.y, add1.u2) annotation (Line(points={{-79,-90},{-72,-90},{-72,
+ -66},{-62,-66}}, color={0,0,127}));
+ connect(add1.y, Qcmdn2.u2) annotation (Line(points={{-39,-60},{-32,-60},{-32,
+ -66},{-22,-66}}, color={0,0,127}));
+ connect(const.y, add2.u2) annotation (Line(points={{-119,20},{-110,20},{-110,
+ 48},{-102,48}}, color={0,0,127}));
+ connect(SPEED, add2.u1)
+ annotation (Line(points={{-200,60},{-102,60}}, color={0,0,127}));
+ connect(add.u1, add2.u1) annotation (Line(points={{-142,-54},{-152,-54},{-152,
+ 60},{-102,60}}, color={0,0,127}));
+ connect(add2.y, Qcmdn2.u1) annotation (Line(points={{-79,54},{-32,54},{-32,
+ -54},{-22,-54}}, color={0,0,127}));
+ connect(Qcmdn2.y, feedback.u1)
+ annotation (Line(points={{1,-60},{22,-60}}, color={0,0,127}));
+ connect(feedback.y, imLimited.u)
+ annotation (Line(points={{39,-60},{48,-60}}, color={0,0,127}));
+ connect(imLimited.y, K2.u) annotation (Line(points={{71,-60},{74.5,-60},{78,
+ -60}}, color={0,0,127}));
+ connect(feedback.u2, division.u1) annotation (Line(points={{30,-68},{30,-90},
+ {108,-90},{108,-60},{114,-60},{114,-54},{118,-54}}, color={0,0,127}));
+ connect(VTERM, imLimited_min.u)
+ annotation (Line(points={{-200,0},{-200,0},{78,0}}, color={0,0,127}));
+ connect(WPCMND, division.u1) annotation (Line(points={{210,-90},{210,-90},{
+ 108,-90},{108,-60},{114,-60},{114,-54},{118,-54}}, color={0,0,127}));
+ connect(imLimited_max.y, WIPCMD)
+ annotation (Line(points={{181,-60},{210,-60}}, color={0,0,127}));
+ annotation (Diagram(coordinateSystem(extent={{-200,-100},{200,100}},
+ preserveAspectRatio=true), graphics={Text(
+ extent={{-60,100},{60,80}},
+ lineColor={255,0,0},
+ pattern=LinePattern.Dash,
+ lineThickness=0.5,
+ fillColor={0,0,255},
+ fillPattern=FillPattern.Solid,
+ textString="Active Power Control")}), Icon(coordinateSystem(
+ extent={{-200,-100},{200,100}}, preserveAspectRatio=true), graphics=
+ {Rectangle(
+ extent={{-200,100},{200,-100}},
+ lineColor={28,108,200},
+ fillColor={255,255,255},
+ fillPattern=FillPattern.Solid),Text(
+ extent={{-64,72},{76,32}},
+ lineColor={0,140,72},
+ textString="Active Power
+PI")}));
+ end ActivePowerControl;
+ equation
+ connect(SPEED, activePowerControl.SPEED) annotation (Line(points={{-200,-50},
+ {-116,-50},{-38,-50}}, color={0,0,127}));
+ connect(activePowerControl.VTERM, VTERM) annotation (Line(points={{-38,-70},{
+ -60,-70},{-60,-100},{-200,-100}}, color={0,0,127}));
+ connect(activePowerControl.WIPCMD, WIPCMD)
+ annotation (Line(points={{42,-60},{42,-60},{190,-60}}, color={0,0,127}));
+ connect(PELEC, activePowerControl.PELEC) annotation (Line(points={{-200,40},{
+ -140,40},{-140,-60},{-38,-60}}, color={0,0,127}));
+ protected
+ model ReactivePowerControl
+ NonElectrical.Continuous.SimpleLag K4(
+ K=1,
+ T=TRV,
+ y_start=k40)
+ annotation (Placement(transformation(extent={{-98,-10},{-78,10}})));
+ NonElectrical.Continuous.SimpleLag K8(
+ K=Kpv,
+ T=Tv,
+ y_start=k80)
+ annotation (Placement(transformation(extent={{34,-40},{54,-20}})));
+ NonElectrical.Continuous.SimpleLag K(
+ K=1,
+ T=Tfv,
+ y_start=k0)
+ annotation (Placement(transformation(extent={{160,-10},{180,10}})));
+ Modelica.Blocks.Math.Gain XC(k=Xc) "Line drop compensation reactance (pu)"
+ annotation (Placement(transformation(extent={{-180,-30},{-160,-10}})));
+ Modelica.Blocks.Math.Add add3(k2=-1)
+ annotation (Placement(transformation(extent={{-48,-10},{-28,10}})));
+ Modelica.Blocks.Sources.Constant VARL(k=Vref)
+ annotation (Placement(transformation(extent={{-98,40},{-78,60}})));
+ Modelica.Blocks.Math.Gain portion(k=1/Fn)
+ "Line drop compensation reactance (pu)"
+ annotation (Placement(transformation(extent={{-18,-10},{2,10}})));
+ NonElectrical.Continuous.SimpleLag K1(
+ y_start=k10,
+ K=KIV,
+ T=Tv) annotation (Placement(transformation(extent={{54,20},{74,40}})));
+ Modelica.Blocks.Math.Add add4
+ annotation (Placement(transformation(extent={{94,-10},{114,10}})));
+ Modelica.Blocks.Math.Add add5(k2=-1)
+ annotation (Placement(transformation(extent={{-138,-10},{-118,10}})));
+ Modelica.Blocks.Nonlinear.Limiter Qord1(uMin=QMN, uMax=QMX)
+ annotation (Placement(transformation(extent={{128,-10},{148,10}})));
+ NonElectrical.Continuous.SimpleLag K10(
+ T=Tv,
+ y_start=k80,
+ K=1) annotation (Placement(transformation(extent={{22,20},{42,40}})));
+ parameter Real Tfv=0.15000
+ "Filter time constant in voltage regulator (sec)";
+ parameter Real Kpv=18.000 " Proportional gain in voltage regulator (pu)";
+ parameter Real KIV=5.0000 " Integrator gain in voltage regulator (pu)";
+ parameter Real Xc=0.0000 " Line drop compensation reactance (pu)";
+ parameter Real QMX=0.29600 " Max limit in voltage regulator (pu)";
+ parameter Real QMN=-0.43600 " Min limit in voltage regulator (pu)";
+ parameter Real TRV=0.50000E-01 " Voltage sensor time constant";
+ parameter Real Tv=0.50000E-01 " Lag time constant in WindVar controller";
+ parameter Real Fn=1.0000 " A portion of online wind turbines";
+ parameter Real Vref " Remote bus ref voltage";
+ parameter Real k0;
+ parameter Real k10;
+ parameter Real k40;
+ parameter Real k80;
+ Modelica.Blocks.Interfaces.RealInput ITERM annotation (Placement(
+ transformation(rotation=0, extent={{-210.5,-30},{-189.5,-10}}),
+ iconTransformation(extent={{-200,30},{-180,50}})));
+ Modelica.Blocks.Interfaces.RealInput VTERM annotation (Placement(
+ transformation(rotation=0, extent={{-210.5,-4},{-190,16}}),
+ iconTransformation(extent={{-200,-50},{-180,-30}})));
+ Modelica.Blocks.Interfaces.RealOutput Q_ord annotation (Placement(
+ transformation(extent={{200,-10},{220,10}}), iconTransformation(
+ extent={{200,-10},{220,10}})));
+ equation
+ connect(VARL.y, add3.u1) annotation (Line(
+ points={{-77,50},{-54,50},{-54,6},{-50,6}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(XC.y, add5.u2) annotation (Line(
+ points={{-159,-20},{-144,-20},{-144,-6},{-140,-6}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(add3.y, portion.u) annotation (Line(
+ points={{-27,0},{-20,0}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(add5.y, K4.u)
+ annotation (Line(points={{-117,0},{-100,0}}, color={0,0,127}));
+ connect(K4.y, add3.u2) annotation (Line(points={{-77,0},{-54,0},{-54,-6},{-50,
+ -6}}, color={0,0,127}));
+ connect(Qord1.y, K.u)
+ annotation (Line(points={{149,0},{158,0}}, color={0,0,127}));
+ connect(VTERM, add5.u1) annotation (Line(points={{-200.25,6},{-200.25,6},{-140,
+ 6}}, color={0,0,127}));
+ connect(add4.y, Qord1.u)
+ annotation (Line(points={{115,0},{120,0},{126,0}}, color={0,0,127}));
+ connect(K1.y, add4.u1) annotation (Line(points={{75,30},{82,30},{82,6},{92,
+ 6}}, color={0,0,127}));
+ connect(K10.y, K1.u)
+ annotation (Line(points={{43,30},{47.5,30},{52,30}}, color={0,0,127}));
+ connect(K8.y, add4.u2) annotation (Line(points={{55,-30},{82,-30},{82,-6},{
+ 92,-6}}, color={0,0,127}));
+ connect(portion.y, K10.u) annotation (Line(points={{3,0},{12,0},{12,30},{20,
+ 30}}, color={0,0,127}));
+ connect(K8.u, K10.u) annotation (Line(points={{32,-30},{12,-30},{12,30},{20,
+ 30}}, color={0,0,127}));
+ connect(ITERM, XC.u)
+ annotation (Line(points={{-200,-20},{-182,-20}}, color={0,0,127}));
+ connect(K.y, Q_ord)
+ annotation (Line(points={{181,0},{210,0}}, color={0,0,127}));
+ annotation (Diagram(coordinateSystem(extent={{-200,-80},{200,80}},
+ preserveAspectRatio=true), graphics={Text(
+ extent={{136,8},{156,4}},
+ lineColor={255,0,0},
+ textString="K
+ "), Text(extent={{-60,80},{60,60}},
+ lineColor={255,0,0},
+ pattern=LinePattern.Dash,
+ lineThickness=0.5,
+ fillColor={0,0,255},
+ fillPattern=FillPattern.Solid,
+ textString="Reactive Power Control"),Text(
+ extent={{18,26},{38,22}},
+ lineColor={255,0,0},
+ textString="K+1
+ ")}), Icon(coordinateSystem(extent={{-200,-80},{200,80}},
+ preserveAspectRatio=true), graphics={Rectangle(
+ extent={{-200,80},{200,-80}},
+ lineColor={28,108,200},
+ fillColor={255,255,255},
+ fillPattern=FillPattern.Solid),Text(
+ extent={{-120,80},{122,50}},
+ lineColor={180,56,148},
+ textString="Reactive Power Control"),Text(
+ extent={{-176,50},{-116,30}},
+ lineColor={28,108,200},
+ textString="ITERM"),Text(
+ extent={{130,10},{194,-10}},
+ lineColor={28,108,200},
+ textString="Q_ORD"),Text(
+ extent={{-176,-32},{-116,-52}},
+ lineColor={28,108,200},
+ textString="VTERM")}));
+ end ReactivePowerControl;
+ equation
+ connect(ITERM, reactivePowerControl.ITERM)
+ annotation (Line(points={{-200,98},{-102.55,98}}, color={0,0,127}));
+ connect(reactivePowerControl.VTERM, VTERM) annotation (Line(points={{-102.55,
+ 86},{-116,86},{-130,86},{-130,-100},{-200,-100}}, color={0,0,127}));
+ connect(activePowerControl.WPCMND, WPCMND) annotation (Line(points={{
+ 4.44089e-016,-82},{0,-82},{0,-92},{96,-92},{190,-92}}, color={0,0,127}));
+ connect(Vcl.y, K7.u)
+ annotation (Line(points={{119,40},{119,40},{136,40}}, color={0,0,127}));
+ annotation (
+ choices(
+ choice=0 "0 Bypass V control",
+ choice=1 "1 WT3G1 Eqcmd limits",
+ choice=-1 "-1 WT3G2 Eqcmd limits"),
+ Diagram(coordinateSystem(
+ preserveAspectRatio=true,
+ extent={{-200,-140},{200,140}},
+ initialScale=0.05), graphics={Line(
+ points={{162,34},{172,40}},
+ color={0,0,255},
+ smooth=Smooth.None),Line(
+ points={{130,12},{130,40}},
+ color={0,0,255},
+ smooth=Smooth.None),Line(
+ points={{130,12},{162,12}},
+ color={0,0,255},
+ smooth=Smooth.None),Line(
+ points={{162,12},{162,32}},
+ color={0,0,255},
+ smooth=Smooth.None),Text(
+ extent={{160,66},{184,56}},
+ lineColor={255,0,0},
+ textString="VLTFLG"),Line(
+ points={{172,40},{186,40}},
+ color={0,0,255},
+ smooth=Smooth.None),Text(
+ extent={{160,32},{170,28}},
+ lineColor={255,0,0},
+ textString="0"),Text(
+ extent={{70,32},{80,26}},
+ lineColor={0,0,255},
+ textString="Vterm"),Line(
+ points={{-20,92},{-20,52}},
+ color={0,0,255},
+ smooth=Smooth.None,
+ thickness=0.5),Line(
+ points={{-32,54},{-20,46}},
+ color={255,0,0},
+ smooth=Smooth.None,
+ pattern=LinePattern.Dot,
+ thickness=0.5),Text(
+ extent={{-30,36},{-20,32}},
+ lineColor={255,0,0},
+ textString="-1"),Text(
+ extent={{-20,62},{-10,58}},
+ lineColor={255,0,0},
+ textString="1"),Text(
+ extent={{2,34},{12,30}},
+ lineColor={255,0,0},
+ textString="0"),Line(
+ points={{-10,36},{-10,12}},
+ color={0,0,255},
+ smooth=Smooth.None,
+ thickness=0.5),Line(
+ points={{-4,40},{4,40}},
+ color={0,0,255},
+ smooth=Smooth.None,
+ thickness=0.5),Line(
+ points={{-14,46},{-4,40}},
+ color={0,0,255},
+ smooth=Smooth.None,
+ thickness=0.5),Text(
+ extent={{-54,64},{-32,56}},
+ lineColor={255,0,0},
+ textString="VARFLG"),Line(
+ points={{-44,92},{-20,92}},
+ color={0,0,255},
+ smooth=Smooth.None,
+ thickness=0.5),Line(
+ points={{-64,40},{-20,40}},
+ color={0,0,255},
+ smooth=Smooth.None,
+ thickness=0.5),Line(
+ points={{162,44},{168,56}},
+ color={255,0,0},
+ smooth=Smooth.None,
+ pattern=LinePattern.Dot,
+ thickness=0.5)}),
+ Icon(coordinateSystem(
+ extent={{-200,-140},{200,140}},
+ preserveAspectRatio=true,
+ initialScale=0.05), graphics={Rectangle(
+ extent={{-200,140},{200,-140}},
+ lineColor={28,108,200},
+ fillColor={255,255,255},
+ fillPattern=FillPattern.Solid),Text(
+ extent={{-80,60},{80,-60}},
+ lineColor={28,108,200},
+ textString="WT3E1")}),
+ Documentation);
+ end WT3E1;
+ annotation (Documentation);
+ end WT3G;
+
+ package WT4G
+ model WT4G1 "Wind Generator Model with Power Converter (Type 4)"
+ // Extending the PF component
+ extends OpenIPSL.Electrical.Essentials.pfComponent;
+ //Constants
+ constant Real pi=Modelica.Constants.pi;
+ // Model parameters
+ parameter Real M_b "Machine base power (MVA)";
+ parameter Real T_IQCmd "Converter time constant for I_Qcmd";
+ parameter Real T_IPCmd "Converter time constant for I_Pcmd";
+ parameter Real V_LVPL1 "LVPL voltage 1 (Low voltage power logic)";
+ parameter Real V_LVPL2 "LVPL voltage 2";
+ parameter Real G_LVPL "LVPL gain";
+ parameter Real V_HVRCR
+ "HVRCR voltage (High voltage reactive current limiter)";
+ parameter Real CUR_HVRCR "HVRCR current (Max. reactive current at VHVRCR)";
+ parameter Real RIp_LVPL "Rate of LVACR active current change";
+ parameter Real T_LVPL "Voltage sensor for LVACR time constant";
+ // Variables
+ Complex Is "Equivalent internal current source";
+ OpenIPSL.Interfaces.PwPin p(
+ vr(start=vr0),
+ vi(start=vi0),
+ ir(start=ir1),
+ ii(start=ii1)) annotation (Placement(transformation(extent={{
+ 100,-10},{120,10}}), iconTransformation(extent={{100,-10},
+ {120,10}})));
+ OpenIPSL.NonElectrical.Continuous.SimpleLag K1(
+ K=1,
+ T=T_IQCmd,
+ y_start=Iy0) annotation (Placement(transformation(extent={{-30,
+ 70},{-20,80}})));
+ Modelica.Blocks.Continuous.Integrator K(
+ y_start=Ix0,
+ k=1/T_IPCmd,
+ initType=Modelica.Blocks.Types.Init.SteadyState)
+ annotation (Placement(transformation(extent={{-30,35},{-20,45}})));
+ Modelica.Blocks.Interfaces.RealOutput Iy(start=Iy0) annotation (Placement(
+ transformation(extent={{100,80},{120,100}}), iconTransformation(extent=
+ {{100,-70},{120,-50}})));
+ Modelica.Blocks.Interfaces.RealOutput V=VT annotation (Placement(
+ transformation(extent={{110,-60},{128,-42}}), iconTransformation(
+ extent={{-10,-10},{10,10}},
+ rotation=180,
+ origin={-110,0})));
+ Modelica.Blocks.Interfaces.RealOutput P(start=p0) annotation (Placement(
+ transformation(extent={{110,-78},{128,-60}}), iconTransformation(
+ extent={{-10,-10},{10,10}},
+ rotation=180,
+ origin={-110,-40})));
+ Modelica.Blocks.Interfaces.RealOutput Q(start=q0) annotation (Placement(
+ transformation(extent={{110,-100},{128,-82}}), iconTransformation(
+ extent={{-10,-10},{10,10}},
+ rotation=180,
+ origin={-110,-80})));
+ Modelica.Blocks.Math.Feedback Iperr(y(start=0, fixed=false))
+ annotation (Placement(transformation(extent={{-80,35},{-70,45}})));
+ OpenIPSL.Electrical.Wind.PSSE.Submodels.LVACL lVACL annotation (
+ Placement(transformation(extent={{68,30},{88,50}})));
+ OpenIPSL.Electrical.Wind.PSSE.Submodels.HVRCL hVRCL(VHVRCR=
+ V_HVRCR, CurHVRCR=CUR_HVRCR) annotation (Placement(
+ transformation(extent={{50,65},{70,85}})));
+ Modelica.Blocks.Interfaces.RealOutput IyL(start=Iy0) annotation (Placement(
+ transformation(extent={{100,65},{120,85}}), iconTransformation(extent={
+ {100,70},{120,90}})));
+ Modelica.Blocks.Interfaces.RealOutput IxL(start=Ix0) annotation (Placement(
+ transformation(extent={{96,34},{114,52}}), iconTransformation(extent={{
+ 100,30},{120,50}})));
+ OpenIPSL.Electrical.Wind.PSSE.Submodels.LVPL lVPL(
+ VLVPL1=V_LVPL1,
+ VLVPL2=V_LVPL2,
+ GLVPL=G_LVPL) annotation (Placement(transformation(extent={{40,
+ -40},{20,-20}})));
+ Modelica.Blocks.Nonlinear.Limiter imLimited_max(uMin=-Modelica.Constants.inf,
+ uMax=RIp_LVPL)
+ annotation (Placement(transformation(extent={{-50,35},{-40,45}})));
+ Modelica.Blocks.Nonlinear.VariableLimiter variableLimiter(y(start=Ipcmd0))
+ annotation (Placement(transformation(extent={{20,35},{30,45}})));
+ Modelica.Blocks.Sources.Constant const(k=-Modelica.Constants.inf)
+ annotation (Placement(transformation(extent={{-10,25},{0,35}})));
+ //Initialization parameters
+ Modelica.Blocks.Interfaces.RealInput I_qcmd(start=Iy0) annotation (Placement(
+ transformation(extent={{-110,65},{-90,85}}), iconTransformation(extent=
+ {{-100,70},{-80,90}})));
+ Modelica.Blocks.Interfaces.RealInput I_pcmd(start=Ipcmd0) annotation (
+ Placement(transformation(extent={{-110,30},{-90,50}}), iconTransformation(
+ extent={{-100,30},{-80,50}})));
+ Modelica.Blocks.Interfaces.RealOutput I_qcmd0 annotation (Placement(
+ transformation(extent={{-50,85},{-30,105}}), iconTransformation(
+ extent={{-10,-10},{10,10}},
+ rotation=90,
+ origin={-60,110})));
+ Modelica.Blocks.Interfaces.RealOutput I_pcmd0 annotation (Placement(
+ transformation(extent={{-78,85},{-58,105}}), iconTransformation(
+ extent={{-10,-10},{10,10}},
+ rotation=90,
+ origin={-20,110})));
+ protected
+ Real delta(start=anglev_rad);
+ Real VT(start=V_0) "Bus voltage magnitude (pu)";
+ Real anglev(start=anglev_rad) "Bus voltage angle (rad)";
+ protected
+ parameter Real p0=P_0/M_b
+ "initial value of bus active power in p.u. machinebase";
+ parameter Real q0=Q_0/M_b
+ "initial value of bus reactive power in p.u. machinebase";
+ parameter Real v0=V_0;
+ parameter Real vr0=v0*cos(anglev_rad)
+ "Real component of initial terminal voltage";
+ parameter Real vi0=v0*sin(anglev_rad)
+ "Imaginary component of intitial terminal voltage";
+ parameter Real ir0=(p0*vr0 + q0*vi0)/(vr0^2 + vi0^2)
+ "Real component of initial armature current, M_b";
+ parameter Real ii0=(p0*vi0 - q0*vr0)/(vr0^2 + vi0^2)
+ "Imaginary component of initial armature current, M_b";
+ parameter Real Isr0=ir0 "Sorce current re M_b";
+ parameter Real Isi0=ii0 "Sorce current im M_b";
+ parameter Real CoB=M_b/S_b;
+ parameter Real ir1=-CoB*(p0*vr0 + q0*vi0)/(vr0^2 + vi0^2)
+ "Real component of initial armature current, S_b";
+ parameter Real ii1=-CoB*(p0*vi0 - q0*vr0)/(vr0^2 + vi0^2)
+ "Imaginary component of initial armature current, S_b";
+ parameter Real Ipcmd0=Ix0;
+ parameter Real anglev_rad=angle_0*pi/180 "initial value of bus anglev in rad";
+ parameter Real Ix0=Isr0*cos(-anglev_rad) - Isi0*sin(-anglev_rad);
+ parameter Real Iy0=-(Isr0*sin(-anglev_rad) + cos(-anglev_rad)*Isi0);
+ protected
+ Modelica.Blocks.Interfaces.RealInput Vtt=VT annotation (Placement(
+ transformation(
+ extent={{-10,-10},{10,10}},
+ rotation=90,
+ origin={60,-100}), iconTransformation(extent={{-110,52},{-94,68}})));
+ equation
+ I_qcmd0 = Iy0;
+ I_pcmd0 = Ix0;
+ anglev = atan2(p.vi, p.vr);
+ VT = sqrt(p.vr*p.vr + p.vi*p.vi);
+ delta = anglev;
+ Is.re = p.ir/CoB;
+ Is.im = p.ii/CoB;
+ [IxL; -IyL] = -[cos(delta), sin(delta); -sin(delta), cos(delta)]*[Is.re; Is.im];
+ -P = p.vr*p.ir + p.vi*p.ii;
+ -Q = p.vi*p.ir - p.vr*p.ii;
+ connect(Iperr.u1, I_pcmd) annotation (Line(
+ points={{-79,40},{-100,40}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(lVACL.Ip_LVACL, IxL) annotation (Line(
+ points={{89,40},{93.745,40},{93.745,43},{105,43}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(hVRCL.Iq_HVRCL, IyL) annotation (Line(
+ points={{72.5,75},{110,75}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(I_qcmd, K1.u)
+ annotation (Line(points={{-100,75},{-67,75},{-31,75}}, color={0,0,127}));
+ connect(Iperr.y, imLimited_max.u)
+ annotation (Line(points={{-70.5,40},{-51,40}}, color={0,0,127}));
+ connect(imLimited_max.y, K.u)
+ annotation (Line(points={{-39.5,40},{-31,40}}, color={0,0,127}));
+ connect(K.y, variableLimiter.u)
+ annotation (Line(points={{-19.5,40},{-19.5,40},{19,40}}, color={0,0,127}));
+ connect(variableLimiter.y, lVACL.Ip_LVPL)
+ annotation (Line(points={{30.5,40},{69,40}}, color={0,0,127}));
+ connect(Iperr.u2, lVACL.Ip_LVPL) annotation (Line(points={{-75,36},{-75,20},{
+ 46,20},{46,40},{69,40}}, color={0,0,127}));
+ connect(const.y, variableLimiter.limit2) annotation (Line(points={{0.5,30},{
+ 10,30},{10,36},{19,36}}, color={0,0,127}));
+ connect(K1.y, hVRCL.Iq)
+ annotation (Line(points={{-19.5,75},{51.25,75}}, color={0,0,127}));
+ connect(Iy, hVRCL.Iq) annotation (Line(points={{110,90},{0,90},{0,75},{51.25,
+ 75}}, color={0,0,127}));
+ connect(lVPL.LVPL, variableLimiter.limit1) annotation (Line(points={{19,-30},
+ {14,-30},{14,44},{19,44}}, color={0,0,127}));
+ connect(Vtt, hVRCL.Vt) annotation (Line(points={{60,-100},{60,66.25},{60,
+ 66.25}}, color={0,0,127}));
+ connect(lVPL.Vt, hVRCL.Vt)
+ annotation (Line(points={{39,-30},{60,-30},{60,66.25}}, color={0,0,127}));
+ connect(lVACL.Vt, hVRCL.Vt) annotation (Line(points={{78,31},{78,-30},{60,-30},
+ {60,66.25}}, color={0,0,127}));
+ annotation (
+ Diagram(coordinateSystem(
+ preserveAspectRatio=true,
+ extent={{-100,-100},{100,100}},
+ grid={2,2}), graphics={Text(
+ extent={{-55,51},{-36,48}},
+ lineColor={0,0,127},
+ fillColor={0,0,255},
+ fillPattern=FillPattern.Solid,
+ textString="RIp_LVPL"),Text(
+ extent={{12,62},{36,56}},
+ lineColor={0,0,127},
+ fillColor={0,0,255},
+ fillPattern=FillPattern.Solid,
+ textString="LVPL"),Text(
+ extent={{-98,-78},{0,-100}},
+ lineColor={255,0,0},
+ textStyle={TextStyle.Bold},
+ horizontalAlignment=TextAlignment.Left,
+ textString="Source impedaance is not used for WT4G1.
+But some value other than zero should be
+specified at PSSE model dialog")}),
+ Icon(coordinateSystem(
+ preserveAspectRatio=true,
+ extent={{-100,-100},{100,100}},
+ grid={2,2}), graphics={Rectangle(
+ extent={{-100,100},{100,-100}},
+ lineColor={28,108,200},
+ fillColor={255,255,255},
+ fillPattern=FillPattern.Solid),Text(
+ extent={{-34,18},{42,-14}},
+ lineColor={28,108,200},
+ textString="WT4G1"),Text(
+ extent={{-76,86},{-42,74}},
+ lineColor={28,108,200},
+ lineThickness=0.5,
+ fillColor={255,255,255},
+ fillPattern=FillPattern.Solid,
+ textString="I_qcmd"),Text(
+ extent={{-76,46},{-42,34}},
+ lineColor={28,108,200},
+ lineThickness=0.5,
+ fillColor={255,255,255},
+ fillPattern=FillPattern.Solid,
+ textString="I_pcmd"),Text(
+ extent={{-94,6},{-80,-6}},
+ lineColor={28,108,200},
+ lineThickness=0.5,
+ fillColor={255,255,255},
+ fillPattern=FillPattern.Solid,
+ textString="V"),Text(
+ extent={{-94,-34},{-80,-46}},
+ lineColor={28,108,200},
+ lineThickness=0.5,
+ fillColor={255,255,255},
+ fillPattern=FillPattern.Solid,
+ textString="P"),Text(
+ extent={{-96,-74},{-82,-86}},
+ lineColor={28,108,200},
+ lineThickness=0.5,
+ fillColor={255,255,255},
+ fillPattern=FillPattern.Solid,
+ textString="Q"),Text(
+ extent={{-80,100},{-40,88}},
+ lineColor={28,108,200},
+ lineThickness=0.5,
+ fillColor={255,255,255},
+ fillPattern=FillPattern.Solid,
+ textString="I_qcmd0"),Text(
+ extent={{-36,100},{4,88}},
+ lineColor={28,108,200},
+ lineThickness=0.5,
+ fillColor={255,255,255},
+ fillPattern=FillPattern.Solid,
+ textString="I_pcmd0"),Text(
+ extent={{74,86},{98,74}},
+ lineColor={28,108,200},
+ lineThickness=0.5,
+ fillColor={255,255,255},
+ fillPattern=FillPattern.Solid,
+ textString="I_yL"),Text(
+ extent={{74,46},{98,34}},
+ lineColor={28,108,200},
+ lineThickness=0.5,
+ fillColor={255,255,255},
+ fillPattern=FillPattern.Solid,
+ textString="I_xL"),Text(
+ extent={{76,-54},{100,-66}},
+ lineColor={28,108,200},
+ lineThickness=0.5,
+ fillColor={255,255,255},
+ fillPattern=FillPattern.Solid,
+ textString="I_y")}),
+ Documentation);
+ end WT4G1;
+
+ model WT4E1 "Electrical Control for Type 4 Wind Generator"
+ parameter Boolean PFAFLG "PF fast control"
+ annotation (choices(choice=true "Enable", choice=false "Disable"));
+ parameter Boolean VARFLG annotation (choices(choice=false
+ " Qord is not provided by WindVar", choice=true
+ " Qord is provided by WindVar"));
+ parameter Boolean PQFLAG "P/Q priority flag"
+ annotation (choices(choice=false "Q priority", choice=true "P priority"));
+ parameter Real Tfv "Filter time constant in voltage regulator (sec)";
+ parameter Real Kpv " Proportional gain in voltage regulator (pu)";
+ parameter Real KIV " Integrator gain in voltage regulator (pu)";
+ parameter Real Kpp " Proportional gain in torque regulator (pu)";
+ parameter Real KIP " Integrator gain in torque regulator (pu)";
+ //should be 0.1 in PSSE
+ parameter Real Kf "Rate feedback gain (pu)";
+ parameter Real Tf "Rate feedback time constant (sec.)";
+ parameter Real QMX " Max limit in voltage regulator (pu)";
+ parameter Real QMN " Min limit in voltage regulator (pu)";
+ parameter Real IPMAX " Max active current limit";
+ parameter Real TRV " Voltage sensor time constant";
+ parameter Real dPMX " Max limit in power PI controller";
+ parameter Real dPMN " Min limit in power PI controller";
+ parameter Real T_Power " Power filter time constant";
+ parameter Real KQI " MVAR/Voltage gain";
+ //should be 0.1 in PSSE
+ parameter Real VMINCL=0.9 " Min voltage limit";
+ parameter Real VMAXCL=1.1 " Max voltage limit";
+ parameter Real KVI=120 " Voltage/MVAR gain";
+ parameter Real Tv=0.50000E-01 " Lag time constant in WindVar controller";
+ parameter Real Tp=0.50000E-01 " Pelec filter in fast PF controller";
+ parameter Real ImaxTD=1.7 "Converter current limit";
+ parameter Real Iphl=1.11 "Hard active current limit";
+ parameter Real Iqhl=1.11 "Hard reactive current limit";
+ //parameter Real Qord "MVAR order from MVAR emulator";
+ Modelica.Blocks.Interfaces.RealInput P(start=p0) annotation (Placement(
+ transformation(extent={{-210,-10},{-190,10}}), iconTransformation(
+ extent={{-20,-20},{20,20}},
+ rotation=180,
+ origin={180,40})));
+ Modelica.Blocks.Interfaces.RealInput Q(start=q0) annotation (Placement(
+ transformation(
+ extent={{-10,-10},{10,10}},
+ rotation=0,
+ origin={-200,188}), iconTransformation(
+ extent={{-20,-20},{20,20}},
+ rotation=180,
+ origin={180,100})));
+ Modelica.Blocks.Interfaces.RealInput V(start=v0) annotation (Placement(
+ transformation(extent={{-210,-170},{-190,-150}}), iconTransformation(
+ extent={{-20,-20},{20,20}},
+ rotation=180,
+ origin={180,160})));
+ Modelica.Blocks.Interfaces.RealOutput WIPCMD annotation (Placement(
+ transformation(extent={{200,-90},{220,-70}}), iconTransformation(extent=
+ {{200,-80},{240,-40}})));
+ Modelica.Blocks.Nonlinear.Limiter Qord(uMin=QMN, uMax=QMX)
+ annotation (Placement(transformation(extent={{20,50},{40,70}})));
+ Modelica.Blocks.Math.Feedback feedback1
+ annotation (Placement(transformation(extent={{50,70},{70,50}})));
+ Modelica.Blocks.Continuous.LimIntegrator K6(
+ outMin=VMINCL,
+ outMax=VMAXCL,
+ k=KQI,
+ y_start=k60)
+ annotation (Placement(transformation(extent={{80,50},{100,70}})));
+ Modelica.Blocks.Math.Feedback Vcl
+ annotation (Placement(transformation(extent={{108,50},{128,70}})));
+ Modelica.Blocks.Interfaces.RealOutput WIQCMD annotation (Placement(
+ transformation(extent={{200,50},{220,70}}), iconTransformation(extent={
+ {200,-160},{240,-120}})));
+ OpenIPSL.NonElectrical.Continuous.IntegratorLimVar K7(K=KVI,
+ y_start=k70) annotation (Placement(transformation(extent={{
+ 142,50},{162,70}})));
+ OpenIPSL.Electrical.Wind.PSSE.Submodels.CCL cCL(
+ Qmax=QMX,
+ ImaxTD=ImaxTD,
+ Iphl=Iphl,
+ Iqhl=Iqhl,
+ pqflag=PQFLAG) annotation (Placement(transformation(extent={{
+ 150,-30},{190,10}})));
+ Modelica.Blocks.Sources.Constant Qcmd0(k=Qref) annotation (Placement(
+ transformation(
+ extent={{-10,-10},{10,10}},
+ rotation=0,
+ origin={-100,0})));
+ ActivePowerController activePowerController(
+ Kpp=Kpp,
+ KIP=KIP,
+ Kf=Kf,
+ Tf=Tf,
+ dPMX=dPMX,
+ dPMN=dPMN,
+ T_Power=T_Power,
+ Pref=Pref,
+ k20=k20,
+ k30=k30,
+ k50=k50,
+ p0=p0) annotation (Placement(transformation(rotation=0, extent={{40,-100},{
+ 80,-60}})));
+ pf_Controller PF_Controller(
+ Tp=Tp,
+ PFA_ref=PFA_ref,
+ p0=p0,
+ q0=q0) annotation (Placement(transformation(rotation=0, extent={{-120,28},{
+ -80,68}})));
+ windControlEmulator windControlEmulator1(
+ Tfv=Tfv,
+ Kpv=Kpv,
+ KIV=KIV,
+ QMX=QMX,
+ QMN=QMN,
+ Tv=Tv,
+ Vref=Vref,
+ k0=k0,
+ k10=k10,
+ k80=k80) annotation (Placement(transformation(rotation=0, extent={{-120,140},
+ {-80,180}})));
+ Modelica.Blocks.Logical.Switch switch_QREF
+ annotation (Placement(transformation(extent={{-50,30},{-30,50}})));
+ Modelica.Blocks.Sources.BooleanConstant ControlPF(k=PFAFLG)
+ annotation (Placement(transformation(extent={{-110,80},{-90,100}})));
+ Modelica.Blocks.Logical.Switch switch_WindVar
+ annotation (Placement(transformation(extent={{-12,50},{8,70}})));
+ Modelica.Blocks.Sources.BooleanConstant UseWindVar(k=VARFLG)
+ annotation (Placement(transformation(extent={{-50,80},{-30,100}})));
+ protected
+ parameter Real Vref(fixed=false);
+ parameter Real Pref=p0;
+ parameter Real Qref=q0 "Q reference if PFAFLG=0 & VARFLG";
+ parameter Real PFA_ref=atan2(q0, p0) "PF angle reference if PFAFLG=1";
+ parameter Real p0(fixed=false);
+ parameter Real q0(fixed=false);
+ parameter Real v0(fixed=false);
+ parameter Real Ip0(fixed=false);
+ parameter Real Iq0(fixed=false);
+ parameter Real Pord0(fixed=false);
+ parameter Real k0(fixed=false) "Filter in voltage regulator";
+ parameter Real k10(fixed=false) "Integrator in voltage regulator";
+ parameter Real k20(fixed=false) "Integrator in active power regulator";
+ parameter Real k30(fixed=false) "Active power regulator feedback";
+ parameter Real k40(fixed=false) "Voltage sensor";
+ parameter Real k50(fixed=false) "Power filter";
+ parameter Real k60(fixed=false) "MVAR/Vref integrator";
+ parameter Real k70(fixed=false) "Verror/Internal machine voltage integrator";
+ parameter Real k80(fixed=false) "Lag of the WindVar controller";
+ parameter Real k90(fixed=false)
+ "Input filter of Pelec for PF fast controller";
+ initial equation
+ Vref = v0;
+ p0 = P;
+ q0 = Q;
+ v0 = V;
+ Ip0 = WIPCMD;
+ Iq0 = WIQCMD;
+ Pord0 = v0*Ip0;
+ k0 = q0;
+ k10 = q0;
+ k80 = 0;
+ k40 = v0;
+ //may be incorrect !
+ k50 = p0;
+ k20 = 0;
+ k30 = 0;
+ k60 = v0;
+ k70 = q0/v0;
+ k90 = p0;
+ equation
+ connect(Q, feedback1.u2) annotation (Line(
+ points={{-200,188},{60,188},{60,68}},
+ color={0,0,150},
+ smooth=Smooth.None));
+ connect(V, Vcl.u2) annotation (Line(
+ points={{-200,-160},{118,-160},{118,52}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(cCL.Vt, V) annotation (Line(
+ points={{150,-10},{92,-10},{92,-160},{-200,-160}},
+ color={255,0,0},
+ smooth=Smooth.None));
+ connect(Qord.y, feedback1.u1) annotation (Line(
+ points={{41,60},{52,60}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(K7.y, WIQCMD) annotation (Line(
+ points={{163,60},{210,60}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(K7.u, Vcl.y) annotation (Line(
+ points={{140,60},{127,60}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(K6.u, feedback1.y) annotation (Line(
+ points={{78,60},{69,60}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(cCL.IqCMD, WIQCMD)
+ annotation (Line(points={{180,10},{180,60},{210,60}}, color={0,0,127}));
+ protected
+ model ActivePowerController
+ Modelica.Blocks.Nonlinear.VariableLimiter imLimited_max
+ annotation (Placement(transformation(extent={{130,0},{150,20}})));
+ Modelica.Blocks.Math.Division division
+ annotation (Placement(transformation(extent={{96,0},{116,20}})));
+ Modelica.Blocks.Nonlinear.Limiter imLimited_min(uMin=0.0000001, uMax=
+ Modelica.Constants.inf)
+ annotation (Placement(transformation(extent={{36,-70},{56,-50}})));
+ Modelica.Blocks.Math.Add3 add3_1(k1=-1, k3=-1)
+ annotation (Placement(transformation(extent={{-52,4},{-40,16}})));
+ Modelica.Blocks.Sources.Constant VAR3(k=Pref) annotation (Placement(
+ transformation(
+ extent={{-10,-10},{10,10}},
+ rotation=0,
+ origin={-94,40})));
+ Modelica.Blocks.Math.Gain gain(k=Kpp)
+ annotation (Placement(transformation(extent={{-12,0},{8,20}})));
+ Modelica.Blocks.Continuous.LimIntegrator K2(
+ y_start=k20,
+ outMin=dPMN,
+ outMax=dPMX,
+ k=KIP) annotation (Placement(transformation(extent={{-14,30},{6,50}})));
+ Modelica.Blocks.Math.Add Pord(k2=-1)
+ annotation (Placement(transformation(extent={{56,0},{76,20}})));
+ Modelica.Blocks.Math.Add Pord1
+ annotation (Placement(transformation(extent={{26,0},{46,20}})));
+ Modelica.Blocks.Continuous.Derivative K3(
+ k=Kf,
+ T=Tf,
+ x_start=k30) annotation (Placement(transformation(
+ extent={{10,-10},{-10,10}},
+ rotation=0,
+ origin={-4,-20})));
+ NonElectrical.Continuous.SimpleLag K5(
+ K=1,
+ T=T_Power,
+ y_start=k50)
+ annotation (Placement(transformation(extent={{-104,-10},{-84,10}})));
+ Modelica.Blocks.Sources.Constant NoLimiMin(k=-Modelica.Constants.inf)
+ annotation (Placement(transformation(
+ extent={{-10,-10},{10,10}},
+ rotation=0,
+ origin={106,-20})));
+ parameter Real Kpp " Proportional gain in torque regulator (pu)";
+ parameter Real KIP " Integrator gain in torque regulator (pu)";
+ parameter Real Kf "Rate feedback gain (pu)";
+ parameter Real Tf "Rate feedback time constant (sec.)";
+ parameter Real dPMX " Max limit in power PI controller";
+ parameter Real dPMN " Min limit in power PI controller";
+ parameter Real T_Power " Power filter time constant";
+ parameter Real Pref=p0;
+ parameter Real k20 "Integrator in active power regulator";
+ parameter Real k30 "Active power regulator feedback";
+ parameter Real k50 "Power filter";
+ parameter Real p0;
+ Modelica.Blocks.Interfaces.RealInput PELEC annotation (Placement(
+ transformation(rotation=0, extent={{-220,-20},{-180,20}})));
+ Modelica.Blocks.Interfaces.RealInput I_PMAX annotation (Placement(
+ transformation(
+ rotation=270,
+ extent={{-20,20},{20,-20}},
+ origin={170,204}), iconTransformation(
+ extent={{-20,20},{20,-20}},
+ rotation=270,
+ origin={0,200})));
+ Modelica.Blocks.Interfaces.RealOutput ipcmd annotation (Placement(
+ transformation(rotation=0, extent={{200,-20},{240,20}}),
+ iconTransformation(extent={{200,-20},{240,20}})));
+ Modelica.Blocks.Interfaces.RealInput VTERM annotation (Placement(
+ transformation(
+ rotation=90,
+ extent={{-20,-20},{20,20}},
+ origin={0,-200})));
+ equation
+ connect(VAR3.y, add3_1.u1) annotation (Line(
+ points={{-83,40},{-60,40},{-60,14.8},{-53.2,14.8}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(gain.y, Pord1.u2) annotation (Line(
+ points={{9,10},{16,10},{16,4},{24,4}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(K3.y, add3_1.u3) annotation (Line(
+ points={{-15,-20},{-60,-20},{-60,5.2},{-53.2,5.2}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(add3_1.y, K2.u) annotation (Line(
+ points={{-39.4,10},{-34,10},{-34,40},{-16,40}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(gain.u, add3_1.y) annotation (Line(
+ points={{-14,10},{-39.4,10}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(K5.y, add3_1.u2) annotation (Line(points={{-83,0},{-64,0},{-64,10},
+ {-53.2,10}}, color={0,0,127}));
+ connect(K2.y, Pord1.u1) annotation (Line(points={{7,40},{16,40},{16,16},{24,
+ 16}}, color={0,0,127}));
+ connect(division.y, imLimited_max.u)
+ annotation (Line(points={{117,10},{128,10}}, color={0,0,127}));
+ connect(imLimited_min.y, division.u2) annotation (Line(points={{57,-60},{66,
+ -60},{66,4},{94,4}}, color={0,0,127}));
+ connect(NoLimiMin.y, imLimited_max.limit2) annotation (Line(points={{117,-20},
+ {122,-20},{122,2},{128,2}}, color={0,0,127}));
+ connect(Pord.y, division.u1) annotation (Line(points={{77,10},{84,10},{84,
+ 16},{94,16}}, color={0,0,127}));
+ connect(Pord1.y, Pord.u2) annotation (Line(points={{47,10},{50,10},{50,4},{
+ 54,4}}, color={0,0,127}));
+ connect(Pord.u1, add3_1.u1) annotation (Line(points={{54,16},{50,16},{50,58},
+ {-60,58},{-60,14.8},{-53.2,14.8}}, color={0,0,127}));
+ connect(K3.u, Pord.u2) annotation (Line(points={{8,-20},{50,-20},{50,4},{54,
+ 4}}, color={0,0,127}));
+ connect(PELEC, K5.u)
+ annotation (Line(points={{-200,0},{-156,0},{-106,0}}, color={0,0,127}));
+ connect(ipcmd, imLimited_max.y)
+ annotation (Line(points={{220,0},{151,0},{151,10}}, color={0,0,127}));
+ connect(VTERM, imLimited_min.u)
+ annotation (Line(points={{0,-200},{0,-60},{34,-60}}, color={0,0,127}));
+ connect(I_PMAX, imLimited_max.limit1) annotation (Line(points={{170,204},{
+ 168,204},{168,86},{122,86},{122,18},{128,18}}, color={0,0,127}));
+ annotation (Diagram(coordinateSystem(extent={{-200,-200},{200,200}},
+ preserveAspectRatio=false), graphics={Text(
+ extent={{-88,16},{-84,14}},
+ lineColor={0,0,255},
+ lineThickness=0.5,
+ fillColor={0,0,255},
+ fillPattern=FillPattern.Solid,
+ textString="Speed"),Text(
+ extent={{-80,200},{80,180}},
+ lineColor={255,0,0},
+ pattern=LinePattern.Dash,
+ lineThickness=0.5,
+ fillColor={0,0,255},
+ fillPattern=FillPattern.Solid,
+ textString="Active Power Control")}), Icon(coordinateSystem(
+ extent={{-200,-200},{200,200}}, preserveAspectRatio=true), graphics=
+ {Rectangle(
+ extent={{-200,200},{200,-200}},
+ lineColor={28,108,200},
+ fillColor={255,255,255},
+ fillPattern=FillPattern.Solid),Text(
+ extent={{-100,160},{100,0}},
+ lineColor={0,140,72},
+ textString="Active Power
+PI"), Text( extent={{-40,180},{40,140}},
+ lineColor={28,108,200},
+ textString="I_PMAX"),Text(
+ extent={{112,20},{192,-20}},
+ lineColor={28,108,200},
+ textString="I_PCMD"),Text(
+ extent={{-40,-140},{40,-180}},
+ lineColor={28,108,200},
+ textString="VTERM"),Text(
+ extent={{-174,20},{-94,-20}},
+ lineColor={28,108,200},
+ textString="PELEC")}));
+ end ActivePowerController;
+ equation
+ connect(activePowerController.ipcmd, WIPCMD)
+ annotation (Line(points={{82,-80},{82,-80},{210,-80}}, color={0,0,127}));
+ connect(activePowerController.VTERM, Vcl.u2) annotation (Line(points={{60,-100},
+ {60,-160},{118,-160},{118,52}}, color={255,0,0}));
+ protected
+ model pf_Controller
+ Modelica.Blocks.Math.Tan tan1
+ annotation (Placement(transformation(extent={{-120,40},{-100,60}})));
+ Modelica.Blocks.Math.Product Qcmdn1
+ annotation (Placement(transformation(extent={{-60,-10},{-40,10}})));
+ Modelica.Blocks.Sources.Constant VAR2(k=PFA_ref)
+ annotation (Placement(transformation(extent={{-160,40},{-140,60}})));
+ NonElectrical.Continuous.SimpleLag K0(
+ K=1,
+ y_start=p0,
+ T=Tp)
+ annotation (Placement(transformation(extent={{-120,-10},{-100,10}})));
+ parameter Real Tp=0.50000E-01 " Pelec filter in fast PF controller";
+ parameter Real PFA_ref=atan2(q0, p0) "PF angle reference if PFAFLG=1";
+ parameter Real p0;
+ parameter Real q0;
+ Modelica.Blocks.Interfaces.RealInput u annotation (Placement(transformation(
+ rotation=0, extent={{-214,-10},{-194,10}})));
+ Modelica.Blocks.Interfaces.RealOutput Q_REF_PF
+ annotation (Placement(transformation(extent={{0,-10},{20,10}})));
+ equation
+ connect(tan1.y, Qcmdn1.u1) annotation (Line(points={{-99,50},{-78,50},{-78,
+ 6},{-62,6}}, color={0,0,127}));
+ connect(K0.y, Qcmdn1.u2) annotation (Line(points={{-99,0},{-78,0},{-78,-6},
+ {-62,-6}}, color={0,0,127}));
+ connect(VAR2.y, tan1.u) annotation (Line(points={{-139,50},{-139,50},{-122,
+ 50}}, color={0,0,127}));
+ connect(u, K0.u)
+ annotation (Line(points={{-204,0},{-158,0},{-122,0}}, color={0,0,127}));
+ connect(Qcmdn1.y, Q_REF_PF)
+ annotation (Line(points={{-39,0},{10,0},{10,0}}, color={0,0,127}));
+ annotation (Diagram(coordinateSystem(extent={{-200,-100},{0,100}},
+ preserveAspectRatio=true), graphics={Text(
+ extent={{-160,100},{-40,80}},
+ lineColor={255,0,0},
+ pattern=LinePattern.Dash,
+ lineThickness=0.5,
+ fillColor={0,0,255},
+ fillPattern=FillPattern.Solid,
+ textString="Power Factor Regulator")}), Icon(coordinateSystem(
+ extent={{-200,-100},{0,100}}, preserveAspectRatio=true), graphics={
+ Rectangle(
+ extent={{-200,100},{0,-100}},
+ lineColor={28,108,200},
+ fillColor={255,255,255},
+ fillPattern=FillPattern.Solid),Text(
+ extent={{-188,6},{-148,-6}},
+ lineColor={28,108,200},
+ textString="P_FAREF"),Text(
+ extent={{-60,6},{-2,-6}},
+ lineColor={28,108,200},
+ textString="Q_REF_PF"),Text(
+ extent={{-160,80},{-40,40}},
+ lineColor={238,46,47},
+ textString="PF Controller")}));
+ end pf_Controller;
+ equation
+ connect(P, PF_Controller.u) annotation (Line(points={{-200,0},{-170,0},{-140,
+ 0},{-140,48},{-120.8,48}}, color={0,150,0}));
+ connect(activePowerController.PELEC, PF_Controller.u) annotation (Line(points=
+ {{40,-80},{-140,-80},{-140,48},{-120.8,48}}, color={0,150,0}));
+ protected
+ model windControlEmulator
+ NonElectrical.Continuous.SimpleLag K(
+ K=1,
+ T=Tfv,
+ y_start=k0)
+ annotation (Placement(transformation(extent={{98,-10},{118,10}})));
+ Modelica.Blocks.Math.Add add3(k2=-1)
+ annotation (Placement(transformation(extent={{-60,-10},{-40,10}})));
+ Modelica.Blocks.Sources.Constant VARL(k=Vref)
+ annotation (Placement(transformation(extent={{-92,12},{-72,32}})));
+ Modelica.Blocks.Math.Add add4
+ annotation (Placement(transformation(extent={{38,-10},{58,10}})));
+ Modelica.Blocks.Nonlinear.Limiter Qord1(uMin=QMN, uMax=QMX)
+ annotation (Placement(transformation(extent={{68,-10},{88,10}})));
+ Modelica.Blocks.Continuous.LimIntegrator K1(
+ outMin=-100000,
+ outMax=-0.051730465143919,
+ y_start=k10,
+ k=KIV,
+ initType=Modelica.Blocks.Types.Init.InitialOutput)
+ annotation (Placement(transformation(extent={{8,10},{28,30}})));
+ NonElectrical.Continuous.SimpleLag K8(
+ K=Kpv,
+ y_start=k80,
+ T=Tv) annotation (Placement(transformation(extent={{-22,-30},{-2,-10}})));
+ NonElectrical.Continuous.SimpleLag K8_extra(
+ y_start=k80,
+ K=1,
+ T=0.05) annotation (Placement(transformation(extent={{8,-30},{28,-10}})));
+ NonElectrical.Continuous.LeadLag K11(
+ y_start=0,
+ T2=0.05,
+ K=1.5,
+ T1=0.025,
+ x_start=0)
+ annotation (Placement(transformation(extent={{-22,10},{-2,30}})));
+ parameter Real Tfv "Filter time constant in voltage regulator (sec)";
+ parameter Real Kpv " Proportional gain in voltage regulator (pu)";
+ parameter Real KIV " Integrator gain in voltage regulator (pu)";
+ parameter Real QMX " Max limit in voltage regulator (pu)";
+ parameter Real QMN " Min limit in voltage regulator (pu)";
+ parameter Real Tv=0.50000E-01 " Lag time constant in WindVar controller";
+ parameter Real Vref;
+ parameter Real k0 "Filter in voltage regulator";
+ parameter Real k10 "Integrator in voltage regulator";
+ parameter Real k80 "Lag of the WindVar controller";
+ Modelica.Blocks.Interfaces.RealInput V_REG annotation (Placement(
+ transformation(rotation=0, extent={{-214,-10},{-194,10}})));
+ Modelica.Blocks.Interfaces.RealOutput Q_ord
+ annotation (Placement(transformation(extent={{200,-10},{220,10}})));
+ equation
+ connect(add4.y, Qord1.u) annotation (Line(
+ points={{59,0},{66,0}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(Qord1.y, K.u) annotation (Line(
+ points={{89,0},{96,0}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(K8.y, K8_extra.u) annotation (Line(
+ points={{-1,-20},{6,-20}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(K11.y, K1.u) annotation (Line(
+ points={{-1,20},{6,20}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(add3.y, K11.u) annotation (Line(points={{-39,0},{-32,0},{-32,20},{-24,
+ 20}}, color={0,0,127}));
+ connect(K8.u, K11.u) annotation (Line(points={{-24,-20},{-32,-20},{-32,20},
+ {-24,20}}, color={0,0,127}));
+ connect(VARL.y, add3.u1) annotation (Line(points={{-71,22},{-68,22},{-68,6},
+ {-62,6}}, color={0,0,127}));
+ connect(K8_extra.y, add4.u2) annotation (Line(points={{29,-20},{32,-20},{32,
+ -6},{36,-6}}, color={0,0,127}));
+ connect(add4.u1, K1.y) annotation (Line(points={{36,6},{32,6},{32,20},{29,
+ 20}}, color={0,0,127}));
+ connect(V_REG, add3.u2) annotation (Line(points={{-204,0},{-80,0},{-80,-6},
+ {-62,-6}}, color={0,0,127}));
+ connect(K.y, Q_ord)
+ annotation (Line(points={{119,0},{210,0}}, color={0,0,127}));
+ annotation (Diagram(coordinateSystem(extent={{-200,-200},{200,200}},
+ preserveAspectRatio=true), graphics={Rectangle(
+ extent={{-94,48},{124,-42}},
+ lineColor={255,0,0},
+ lineThickness=0.5,
+ pattern=LinePattern.Dash),Text(
+ extent={{-16,46},{46,40}},
+ lineColor={255,0,0},
+ pattern=LinePattern.Dash,
+ lineThickness=0.5,
+ fillColor={0,0,255},
+ fillPattern=FillPattern.Solid,
+ textString="WindControl Emulator")}), Icon(coordinateSystem(
+ extent={{-200,-200},{200,200}}, preserveAspectRatio=true), graphics=
+ {Rectangle(
+ extent={{-200,200},{200,-200}},
+ lineColor={28,108,200},
+ fillColor={255,255,255},
+ fillPattern=FillPattern.Solid),Text(
+ extent={{-196,14},{-76,-16}},
+ lineColor={28,108,200},
+ textString="V_REG"),Text(
+ extent={{80,14},{200,-16}},
+ lineColor={28,108,200},
+ textString="Q_ORD"),Text(
+ extent={{-172,162},{180,72}},
+ lineColor={180,56,148},
+ textString="WindCONTROL Emulator")}));
+ end windControlEmulator;
+ equation
+ connect(windControlEmulator1.V_REG, Vcl.u2) annotation (Line(points={{-120.4,
+ 160},{-160,160},{-160,-160},{118,-160},{118,52}}, color={255,0,0}));
+ connect(ControlPF.y, switch_QREF.u2) annotation (Line(points={{-89,90},{-66,
+ 90},{-66,40},{-52,40}}, color={255,0,255}));
+ connect(PF_Controller.Q_REF_PF, switch_QREF.u1)
+ annotation (Line(points={{-78,48},{-72,48},{-52,48}}, color={0,0,127}));
+ connect(Qcmd0.y, switch_QREF.u3) annotation (Line(points={{-89,0},{-66,0},{-66,
+ 0},{-66,32},{-52,32}}, color={0,0,127}));
+ connect(switch_QREF.y, switch_WindVar.u3) annotation (Line(points={{-29,40},{
+ -20,40},{-20,52},{-14,52}}, color={0,0,127}));
+ connect(windControlEmulator1.Q_ord, switch_WindVar.u1) annotation (Line(
+ points={{-79,160},{-20,160},{-20,68},{-14,68}}, color={0,0,127}));
+ connect(UseWindVar.y, switch_WindVar.u2) annotation (Line(points={{-29,90},{-26,
+ 90},{-26,60},{-14,60}}, color={255,0,255}));
+ connect(switch_WindVar.y, Qord.u)
+ annotation (Line(points={{9,60},{12,60},{18,60}}, color={0,0,127}));
+ connect(K6.y, Vcl.u1)
+ annotation (Line(points={{101,60},{106,60},{110,60}}, color={0,0,127}));
+ connect(cCL.IpCMD, WIPCMD)
+ annotation (Line(points={{180,-30},{180,-80},{210,-80}}, color={0,0,127}));
+ connect(activePowerController.I_PMAX, cCL.IPmax) annotation (Line(points={{60,
+ -60},{60,-40},{160,-40},{160,-32}}, color={0,0,127}));
+ connect(cCL.IQmin, K7.outMin) annotation (Line(points={{160,12},{160,12},{160,
+ 32},{144,32},{144,46}}, color={0,0,127}));
+ connect(K7.outMax, cCL.IQmax) annotation (Line(points={{160,74},{160,80},{170,
+ 80},{170,12}}, color={0,0,127}));
+ annotation (
+ Diagram(coordinateSystem(
+ preserveAspectRatio=false,
+ extent={{-200,-200},{200,200}},
+ initialScale=0.05), graphics={Rectangle(
+ extent={{46,118},{192,24}},
+ lineColor={255,0,0},
+ lineThickness=0.5,
+ pattern=LinePattern.Dash),Text(
+ extent={{64,116},{170,108}},
+ lineColor={255,0,0},
+ pattern=LinePattern.Dash,
+ lineThickness=0.5,
+ fillColor={0,0,255},
+ fillPattern=FillPattern.Solid,
+ textString="Reactive Power Control"),Rectangle(
+ extent={{-134,130},{14,-20}},
+ lineColor={0,140,72},
+ lineThickness=0.5,
+ pattern=LinePattern.Dash),Text(
+ extent={{-130,128},{-24,120}},
+ lineColor={0,140,72},
+ pattern=LinePattern.Dash,
+ lineThickness=0.5,
+ fillColor={0,0,255},
+ fillPattern=FillPattern.Solid,
+ textString="Reactive Power Reference Switching"),Rectangle(
+ extent={{104,104},{190,26}},
+ lineColor={102,44,145},
+ lineThickness=0.5,
+ pattern=LinePattern.Dash),Text(
+ extent={{92,104},{198,96}},
+ lineColor={180,56,148},
+ pattern=LinePattern.Dash,
+ lineThickness=0.5,
+ fillColor={0,0,255},
+ fillPattern=FillPattern.Solid,
+ textString="Terminal Voltage Control")}),
+ Icon(coordinateSystem(
+ extent={{-200,-200},{200,200}},
+ preserveAspectRatio=false,
+ initialScale=0.05), graphics={Rectangle(
+ extent={{-200,200},{200,-200}},
+ lineColor={28,108,200},
+ fillColor={255,255,255},
+ fillPattern=FillPattern.Solid),Text(
+ extent={{-70,42},{82,-36}},
+ lineColor={28,108,200},
+ textString="WT4E1"),Text(
+ extent={{110,172},{170,142}},
+ lineColor={28,108,200},
+ lineThickness=0.5,
+ fillColor={255,255,255},
+ fillPattern=FillPattern.Solid,
+ textString="V"),Text(
+ extent={{110,114},{170,84}},
+ lineColor={28,108,200},
+ lineThickness=0.5,
+ fillColor={255,255,255},
+ fillPattern=FillPattern.Solid,
+ textString="Q"),Text(
+ extent={{110,56},{170,26}},
+ lineColor={28,108,200},
+ lineThickness=0.5,
+ fillColor={255,255,255},
+ fillPattern=FillPattern.Solid,
+ textString="P"),Text(
+ extent={{82,-42},{194,-74}},
+ lineColor={28,108,200},
+ lineThickness=0.5,
+ fillColor={255,255,255},
+ fillPattern=FillPattern.Solid,
+ textString="WIPCMD"),Text(
+ extent={{82,-124},{194,-156}},
+ lineColor={28,108,200},
+ lineThickness=0.5,
+ fillColor={255,255,255},
+ fillPattern=FillPattern.Solid,
+ textString="WIQCMD")}),
+ Documentation);
+ end WT4E1;
+ annotation (Documentation);
+ end WT4G;
+
+ package Submodels
+ model LVACL
+ //The Low Voltage Active Current Management block is designed to capture the characteristic
+ //of active power under very low voltage scenarios. This low voltage limit is designed to reduce active current in a linear fashion.
+ // The protection function is activated when
+ //the terminal voltage drops below 0.8 pu and strangling power completely if the terminal voltage is lower than
+ //0.4 pu. For voltages between 0.8 pu and 0.4 pu to reduce the active power is linear according to equation
+ Modelica.Blocks.Interfaces.RealOutput Ip_LVACL annotation (Placement(
+ transformation(extent={{100,-8},{118,10}}), iconTransformation(extent={
+ {100,-10},{120,10}})));
+ Modelica.Blocks.Interfaces.RealInput Vt annotation (Placement(transformation(
+ extent={{-9,-9},{9,9}},
+ rotation=90,
+ origin={-3,-29}), iconTransformation(
+ extent={{-10,-10},{10,10}},
+ rotation=90,
+ origin={0,-90})));
+ Modelica.Blocks.Interfaces.RealInput Ip_LVPL annotation (Placement(
+ transformation(
+ extent={{-9,-9},{9,9}},
+ rotation=0,
+ origin={-33,-3}), iconTransformation(extent={{-100,-10},{-80,10}})));
+ equation
+ if Vt < 0.4 then
+ Ip_LVACL = 0;
+ elseif Vt > 0.8 then
+ Ip_LVACL = Ip_LVPL;
+ else
+ Ip_LVACL = Ip_LVPL*1.25*Vt;
+ end if;
+ annotation (
+ Diagram(coordinateSystem(preserveAspectRatio=true, extent={{-100,-100},{100,
+ 100}}), graphics={Rectangle(extent={{-26,18},{20,-22}}, lineColor={
+ 0,0,255})}),
+ Icon(coordinateSystem(preserveAspectRatio=true, extent={{-100,-100},{100,
+ 100}}), graphics={Rectangle(
+ extent={{-100,100},{100,-100}},
+ lineColor={0,0,255},
+ fillColor={255,255,255},
+ fillPattern=FillPattern.Solid),Text(
+ extent={{-44,114},{44,54}},
+ lineColor={0,0,255},
+ textString="LVACL"),Line(
+ points={{-60,-60},{-42,-60},{0,20},{20,20}},
+ color={0,128,255},
+ thickness=0.5),Line(
+ points={{0,20},{0,-4},{0,-60}},
+ color={0,0,0},
+ pattern=LinePattern.Dot),Line(
+ points={{-60,20},{-30,20},{0,20}},
+ color={0,0,0},
+ pattern=LinePattern.Dot),Line(
+ points={{-60,60},{-60,-60},{60,-60}},
+ color={0,0,0},
+ thickness=0.5,
+ arrow={Arrow.Filled,Arrow.Filled}),Text(
+ extent={{-98,-8},{-68,-22}},
+ lineColor={0,0,255},
+ textString="IP_LVLP"),Text(
+ extent={{64,6},{98,-8}},
+ lineColor={0,0,255},
+ textString="IP_LVACL"),Text(
+ extent={{4,-78},{22,-92}},
+ lineColor={0,0,255},
+ textString="V")}),
+ Documentation);
+ end LVACL;
+
+ model HVRCL
+ //The 'High Voltage Reactive Current Management' block limits the reactive current injected into the network equations such that the terminal voltage of the machine never exceeds Volim of nominal, as long as the converter is within current limits."
+ parameter Real VHVRCR "Threthod voltage for HVRCL";
+ parameter Real CurHVRCR "Max. reactive current at VHVRCR";
+ Modelica.Blocks.Interfaces.RealInput Vt annotation (Placement(transformation(
+ extent={{-9,-9},{9,9}},
+ rotation=90,
+ origin={15,-19}), iconTransformation(
+ extent={{-5,-5},{5,5}},
+ rotation=90,
+ origin={0,-35})));
+ Modelica.Blocks.Interfaces.RealOutput Iq_HVRCL annotation (Placement(
+ transformation(extent={{42,4},{60,22}}), iconTransformation(extent={{40,
+ -10},{60,10}})));
+ Modelica.Blocks.Interfaces.RealInput Iq annotation (Placement(transformation(
+ extent={{-9,-9},{9,9}},
+ rotation=0,
+ origin={-27,11}), iconTransformation(extent={{-40,-5},{-30,5}})));
+ equation
+ if Vt > VHVRCR then
+ Iq_HVRCL = CurHVRCR;
+ else
+ Iq_HVRCL = Iq;
+ end if;
+ annotation (
+ Diagram(coordinateSystem(
+ preserveAspectRatio=true,
+ extent={{-40,-40},{40,40}},
+ grid={1,1}), graphics),
+ Icon(coordinateSystem(
+ preserveAspectRatio=true,
+ extent={{-40,-40},{40,40}},
+ grid={1,1}), graphics={Rectangle(
+ extent={{-40,40},{40,-40}},
+ lineColor={0,0,255},
+ fillColor={255,255,255},
+ fillPattern=FillPattern.Solid),Text(
+ extent={{-20,40},{20,30}},
+ lineColor={0,0,255},
+ textString="HVRCL "),Line(
+ points={{14,30},{-6,30},{-16,10},{-16,10}},
+ color={0,0,255},
+ thickness=0.5,
+ smooth=Smooth.None),Text(
+ extent={{-28,3},{-20,-3}},
+ lineColor={0,0,255},
+ textString="I_q"),Text(
+ extent={{-5,-21},{5,-29}},
+ lineColor={0,0,255},
+ textString="V"),Text(
+ extent={{19,4},{38,-4}},
+ lineColor={0,0,255},
+ textString="I_sorc")}),
+ Documentation);
+ end HVRCL;
+
+ model LVPL "Low voltage power logic"
+ parameter Real VLVPL1 "LVPL voltage 1 (Low voltage power logic)";
+ parameter Real VLVPL2 "LVPL voltage 2";
+ parameter Real GLVPL "LVPL gain";
+ parameter Real K=GLVPL/(VLVPL2 - VLVPL1);
+ Modelica.Blocks.Interfaces.RealInput Vt annotation (Placement(transformation(
+ extent={{-112,-18},{-72,22}}), iconTransformation(extent={{-100,-10},
+ {-80,10}})));
+ Modelica.Blocks.Interfaces.RealOutput LVPL annotation (Placement(
+ transformation(extent={{100,-10},{120,10}}), iconTransformation(extent=
+ {{100,-10},{120,10}})));
+ equation
+ if Vt < VLVPL1 then
+ LVPL = 0;
+ elseif Vt > VLVPL2 then
+ LVPL = 1e+6;
+ else
+ LVPL = K*(Vt - VLVPL1);
+ end if;
+ annotation (
+ Diagram(coordinateSystem(preserveAspectRatio=true, extent={{-100,-100},{100,
+ 100}}), graphics={Rectangle(extent={{-78,30},{92,-58}}, lineColor={
+ 0,0,255})}),
+ Icon(coordinateSystem(preserveAspectRatio=true, extent={{-100,-100},{100,
+ 100}}), graphics={Rectangle(
+ extent={{-100,100},{100,-100}},
+ lineColor={0,0,255},
+ fillColor={255,255,255},
+ fillPattern=FillPattern.Solid),Text(
+ extent={{44,-40},{74,-58}},
+ lineColor={0,0,255},
+ lineThickness=0.5,
+ fillColor={0,0,255},
+ fillPattern=FillPattern.Solid,
+ textString="V"),Text(
+ extent={{-54,68},{-24,50}},
+ lineColor={0,0,255},
+ lineThickness=0.5,
+ fillColor={0,0,255},
+ fillPattern=FillPattern.Solid,
+ textString="LVPL"),Line(
+ points={{-66,20},{-54,20},{-54,20}},
+ color={0,0,255},
+ thickness=0.5,
+ smooth=Smooth.None),Line(
+ points={{-60,60},{-60,-60},{60,-60}},
+ color={0,0,255},
+ thickness=0.5,
+ arrow={Arrow.Filled,Arrow.Filled}),Line(
+ points={{-42,-60}},
+ color={0,0,255},
+ thickness=0.5),Line(
+ points={{-40,-60},{20,20},{20,40}},
+ color={0,0,255},
+ thickness=0.5),Text(
+ extent={{-102,22},{-72,4}},
+ lineColor={0,0,255},
+ lineThickness=0.5,
+ fillColor={0,0,255},
+ fillPattern=FillPattern.Solid,
+ textString="V"),Text(
+ extent={{66,8},{96,-10}},
+ lineColor={0,0,255},
+ lineThickness=0.5,
+ fillColor={0,0,255},
+ fillPattern=FillPattern.Solid,
+ textString="LVLP")}),
+ Documentation);
+ end LVPL;
+
+ model CCL
+ parameter Real Qmax;
+ parameter Boolean pqflag;
+ parameter Real ImaxTD "Converter current limit";
+ parameter Real Iphl "Hard active current limit";
+ parameter Real Iqhl "Hard reactive current limit";
+ Modelica.Blocks.Interfaces.RealOutput IQmin annotation (Placement(
+ transformation(
+ extent={{-10,-10},{10,10}},
+ rotation=90,
+ origin={-12,96}), iconTransformation(
+ extent={{-10,-10},{10,10}},
+ rotation=90,
+ origin={-50,110})));
+ Modelica.Blocks.Interfaces.RealInput IpCMD annotation (Placement(
+ transformation(
+ extent={{-16,-16},{16,16}},
+ rotation=180,
+ origin={134,-20}), iconTransformation(
+ extent={{-10,-10},{10,10}},
+ rotation=90,
+ origin={50,-100})));
+ Modelica.Blocks.Interfaces.RealInput IqCMD annotation (Placement(
+ transformation(extent={{-146,-30},{-120,-4}}), iconTransformation(
+ extent={{-10,-10},{10,10}},
+ rotation=270,
+ origin={50,100})));
+ Modelica.Blocks.Interfaces.RealOutput IQmax annotation (Placement(
+ transformation(
+ extent={{-10,-10},{10,10}},
+ rotation=90,
+ origin={16,96}), iconTransformation(
+ extent={{-10,-10},{10,10}},
+ rotation=90,
+ origin={0,110})));
+ Modelica.Blocks.Interfaces.RealOutput IPmax annotation (Placement(
+ transformation(
+ extent={{-10,-10},{10,10}},
+ rotation=270,
+ origin={-2,-84}), iconTransformation(
+ extent={{-10,-10},{10,10}},
+ rotation=270,
+ origin={-50,-110})));
+ Modelica.Blocks.Math.Min min1 annotation (Placement(transformation(
+ extent={{-6,6},{6,-6}},
+ rotation=270,
+ origin={-52,-38})));
+ Modelica.Blocks.Sources.Constant const1(k=Iphl) annotation (Placement(
+ transformation(
+ extent={{-7,-7},{7,7}},
+ rotation=270,
+ origin={-9,-19})));
+ Modelica.Blocks.Sources.Constant const2(k=Iqhl) annotation (Placement(
+ transformation(
+ extent={{-7,-7},{7,7}},
+ rotation=0,
+ origin={-19,23})));
+ Modelica.Blocks.Math.Min min2 annotation (Placement(transformation(
+ extent={{-6,6},{6,-6}},
+ rotation=90,
+ origin={-54,8})));
+ Modelica.Blocks.Math.Min min3 annotation (Placement(transformation(
+ extent={{-6,6},{6,-6}},
+ rotation=270,
+ origin={44,-38})));
+ Modelica.Blocks.Math.Min min4 annotation (Placement(transformation(
+ extent={{-6,6},{6,-6}},
+ rotation=90,
+ origin={44,6})));
+ Modelica.Blocks.Math.Min min5 annotation (Placement(transformation(
+ extent={{-6,6},{6,-6}},
+ rotation=270,
+ origin={-4,8})));
+ Modelica.Blocks.Math.Gain gain(k=-1) annotation (Placement(transformation(
+ extent={{-5,-5},{5,5}},
+ rotation=90,
+ origin={-83,51})));
+ Modelica.Blocks.Math.Gain gain1(k=-1) annotation (Placement(transformation(
+ extent={{-5,-5},{5,5}},
+ rotation=90,
+ origin={75,47})));
+ Modelica.Blocks.Interfaces.RealInput Vt annotation (Placement(transformation(
+ extent={{-20,-20},{20,20}},
+ rotation=270,
+ origin={0,78}), iconTransformation(
+ extent={{-10,-10},{10,10}},
+ rotation=0,
+ origin={-100,0})));
+ protected
+ Modelica.Blocks.Interfaces.RealInput Iqmax annotation (Placement(
+ transformation(
+ extent={{-20,-20},{20,20}},
+ rotation=270,
+ origin={0,40}), iconTransformation(
+ extent={{-9,-9},{9,9}},
+ rotation=0,
+ origin={-101,5})));
+ protected
+ Modelica.Blocks.Interfaces.RealOutput IQmin1 annotation (Placement(
+ transformation(
+ extent={{-10,-10},{10,10}},
+ rotation=90,
+ origin={44,80}), iconTransformation(
+ extent={{-10,-10},{10,10}},
+ rotation=90,
+ origin={-52,42})));
+ Modelica.Blocks.Interfaces.RealOutput IQmax1 annotation (Placement(
+ transformation(
+ extent={{-10,-10},{10,10}},
+ rotation=90,
+ origin={74,80}), iconTransformation(
+ extent={{-10,-10},{10,10}},
+ rotation=90,
+ origin={2,42})));
+ Modelica.Blocks.Interfaces.RealOutput IQmin2 annotation (Placement(
+ transformation(
+ extent={{-10,-10},{10,10}},
+ rotation=90,
+ origin={-82,80}), iconTransformation(
+ extent={{-10,-10},{10,10}},
+ rotation=90,
+ origin={-52,42})));
+ Modelica.Blocks.Interfaces.RealOutput IQmax2 annotation (Placement(
+ transformation(
+ extent={{-10,-10},{10,10}},
+ rotation=90,
+ origin={-52,80}), iconTransformation(
+ extent={{-10,-10},{10,10}},
+ rotation=90,
+ origin={2,42})));
+ Modelica.Blocks.Interfaces.RealOutput IPmax1 annotation (Placement(
+ transformation(
+ extent={{-10,-10},{10,10}},
+ rotation=270,
+ origin={44,-68}), iconTransformation(
+ extent={{-10,-10},{10,10}},
+ rotation=270,
+ origin={-50,-40})));
+ Modelica.Blocks.Interfaces.RealOutput IPmax2 annotation (Placement(
+ transformation(
+ extent={{-10,-10},{10,10}},
+ rotation=270,
+ origin={-52,-68}), iconTransformation(
+ extent={{-10,-10},{10,10}},
+ rotation=270,
+ origin={-50,-40})));
+ Modelica.Blocks.Interfaces.RealInput Available_remain1
+ "sqrt(ImaxTD^2 - IpCMD^2)" annotation (Placement(transformation(
+ extent={{-16,-16},{16,16}},
+ rotation=180,
+ origin={76,-18}), iconTransformation(
+ extent={{-9,-9},{9,9}},
+ rotation=90,
+ origin={55,-35})));
+ Modelica.Blocks.Interfaces.RealInput Available_remain2
+ "sqrt(ImaxTD^2 - IqCMD^2)" annotation (Placement(transformation(
+ extent={{-16,-16},{16,16}},
+ rotation=0,
+ origin={-90,-20}), iconTransformation(
+ extent={{-9,-9},{9,9}},
+ rotation=90,
+ origin={55,-35})));
+ equation
+ Available_remain1 = sqrt(ImaxTD^2 - IpCMD^2);
+ Available_remain2 = sqrt(ImaxTD^2 - IqCMD^2);
+ Iqmax = (Qmax - 1.6)*(Vt - 1) + Qmax;
+ if pqflag then
+ IQmin = IQmin1;
+ IQmax = IQmax1;
+ IPmax = IPmax1;
+ else
+ IQmin = IQmin2;
+ IQmax = IQmax2;
+ IPmax = IPmax2;
+ end if;
+ connect(const1.y, min1.u2) annotation (Line(
+ points={{-9,-26.7},{-9,-30},{-48.4,-30},{-48.4,-30.8}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(const1.y, min3.u1) annotation (Line(
+ points={{-9,-26.7},{-9,-30},{40.4,-30},{40.4,-30.8}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(const2.y, min5.u1) annotation (Line(
+ points={{-11.3,23},{-7.6,23},{-7.6,15.2}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(min5.y, min4.u2) annotation (Line(
+ points={{-4,1.4},{-4,-4},{40.4,-4},{40.4,-1.2}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(min2.u1, min5.y) annotation (Line(
+ points={{-50.4,0.8},{-50.4,-4},{-4,-4},{-4,1.4}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(min2.y, IQmax2) annotation (Line(
+ points={{-54,14.6},{-52,14.6},{-52,80}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(min1.y, IPmax2) annotation (Line(
+ points={{-52,-44.6},{-52,-68}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(min3.y, IPmax1) annotation (Line(
+ points={{44,-44.6},{44,-68}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(min4.y, IQmin1) annotation (Line(
+ points={{44,12.6},{44,80}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(gain.u, min2.y) annotation (Line(
+ points={{-83,45},{-83,14.6},{-54,14.6}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(gain.y, IQmin2) annotation (Line(
+ points={{-83,56.5},{-83,65.25},{-82,65.25},{-82,80}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(gain1.y, IQmax1) annotation (Line(
+ points={{75,52.5},{75,61.25},{74,61.25},{74,80}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(gain1.u, min4.y) annotation (Line(
+ points={{75,41},{75,12.6},{44,12.6}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(Iqmax, min5.u2) annotation (Line(
+ points={{0,40},{0,15.2},{-0.4,15.2}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(min4.u1, Available_remain1) annotation (Line(
+ points={{47.6,-1.2},{47.6,-18},{76,-18}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(min3.u2, Available_remain1) annotation (Line(
+ points={{47.6,-30.8},{47.6,-18},{76,-18}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(Available_remain2, min2.u2) annotation (Line(
+ points={{-90,-20},{-57.6,-20},{-57.6,0.8}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(min1.u1, Available_remain2) annotation (Line(
+ points={{-55.6,-30.8},{-55.6,-20},{-90,-20}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ annotation (
+ Icon(coordinateSystem(preserveAspectRatio=true, extent={{-100,-100},{100,
+ 100}}), graphics={Rectangle(
+ extent={{-100,100},{100,-100}},
+ lineColor={0,0,255},
+ fillColor={255,255,255},
+ fillPattern=FillPattern.Solid),Text(
+ extent={{-76,58},{82,18}},
+ lineColor={244,125,35},
+ textString="Converter Current Limit
+ "), Text(
+ extent={{-86,6},{-46,-6}},
+ lineColor={28,108,200},
+ textString="VTERM"),Text(
+ extent={{-70,96},{-30,84}},
+ lineColor={28,108,200},
+ textString="I_Qmin"),Text(
+ extent={{-18,96},{22,84}},
+ lineColor={28,108,200},
+ textString="I_Qmax"),Text(
+ extent={{32,88},{72,76}},
+ lineColor={28,108,200},
+ textString="I_Qcmd"),Text(
+ extent={{26,-76},{66,-88}},
+ lineColor={28,108,200},
+ textString="I_Pcmd"),Text(
+ extent={{-72,-76},{-32,-88}},
+ lineColor={28,108,200},
+ textString="I_Pmax")}),
+ Diagram(coordinateSystem(preserveAspectRatio=true, extent={{-100,-100},{100,
+ 100}}), graphics={Rectangle(
+ extent={{-112,96},{-34,-86}},
+ lineColor={255,0,0},
+ pattern=LinePattern.Dot,
+ lineThickness=0.5),Text(
+ extent={{-52,90},{-40,80}},
+ lineColor={255,0,0},
+ pattern=LinePattern.Dot,
+ lineThickness=0.5,
+ fillColor={0,0,255},
+ fillPattern=FillPattern.Solid,
+ textString="Q"),Text(
+ extent={{64,-38},{120,-62}},
+ lineColor={0,0,255},
+ textString="sqrt(ImaxTD^2 - IpCMD^2)"),Text(
+ extent={{-112,-42},{-58,-58}},
+ lineColor={0,0,255},
+ textString="sqrt(ImaxTD^2 - IqCMD^2)")}),
+ Documentation);
+ end CCL;
+ annotation (Documentation);
+ end Submodels;
+ annotation (Diagram(coordinateSystem(
+ extent={{-148.5,-105.0},{148.5,105.0}},
+ preserveAspectRatio=true,
+ initialScale=0.1,
+ grid={5,5})), Documentation);
+ end PSSE;
+
+ model WindGenerator
+ import Modelica.Constants.pi;
+ import Modelica.Constants.e;
+ Modelica.Blocks.Interfaces.RealOutput Vw "Connector of Real output signal"
+ annotation (Placement(
+ transformation(
+ extent={{100.0,-10.0},{120.0,10.0}},
+ rotation=0,
+ origin={0.0,0.0}),
+ visible=true,
+ iconTransformation(
+ origin={0.0,0.0},
+ extent={{100.0,-10.0},{120.0,10.0}},
+ rotation=0)));
+ parameter Real tstart=5 "Start time of the wind gust";
+ parameter Real tstop=10 "Stop time of the wind gust";
+ parameter Real v0=14 "steady state wind speed";
+ parameter Real vmax=25 "peak wind speed for Mexican Hat";
+ parameter Real wmag=-4 "magnitude of the gust of wind";
+ parameter Real sigma=1 "Mexican hat wavelet shape factor";
+ parameter Real typ=1 "1:constant 2:gust 3:mexican hat";
+ protected
+ parameter Real wgwidth=tstop - tstart;
+ equation
+ if typ == 1 then
+ Vw = v0;
+ elseif typ == 2 then
+ if time > tstart and time < tstop then
+ Vw = v0 + wmag*(1 - cos((time - tstart)*2*Modelica.Constants.pi/wgwidth))
+ /2;
+ else
+ Vw = v0;
+ end if;
+ else
+ Vw = v0 + (vmax - v0)*(1 - (time - (tstop + tstart)/2)^2/sigma^2)*Modelica.Constants.e
+ ^(-(time - (tstop + tstart)/2)^2/(2*sigma^2))
+ "2/(sqrt(3*sigma)*Modelica.Constants.pi^(1/4))*(1 - ((time - (tstop + tstart)/2)/sigma)^2)*Modelica.Constants.e^((-((time - (tstop + tstart)/2)/sigma)^2)/(2*sigma^2)) + v0";
+ end if;
+ annotation (
+ Icon(coordinateSystem(
+ extent={{-100.0,-100.0},{100.0,100.0}},
+ preserveAspectRatio=true,
+ initialScale=0.1,
+ grid={10,10}), graphics={Rectangle(
+ visible=true,
+ fillColor={255,255,255},
+ fillPattern=FillPattern.Solid,
+ lineThickness=0.75,
+ extent={{-100.0,-100.0},{100.0,100.0}}),Bitmap(
+ visible=true,
+ origin={-0.1255,0},
+ extent={{-99.8745,-96.8769},{99.8745,96.877}},
+ fileName="modelica://OpenIPSL/Resources/Images/WindGenerator.png")}),
+ Diagram(coordinateSystem(
+ extent={{-148.5,-105.0},{148.5,105.0}},
+ preserveAspectRatio=true,
+ initialScale=0.1,
+ grid={5,5})),
+ Documentation(info="
+
+Reference |
+Mexican Hat, PSAT Manual 2.1.8 |
+
+
+Last update |
+July 2015 |
+
+
+Author |
+Maxime Baudette, SmarTS Lab, KTH Royal Institute of Technology |
+
+
+Contact |
+luigiv@kth.se |
+
+
+"));
+ end WindGenerator;
+
+ package GE
+ package Type_3
+ package Turbine
+ model Rotor_Model
+ Modelica.Blocks.Interfaces.RealInput Pm "Mechanical Power Input" annotation (
+ Placement(
+ transformation(
+ extent={{-102.0,54.0},{-62.0,94.0}},
+ origin={-66.2513,-29.0},
+ rotation=0),
+ visible=true,
+ iconTransformation(
+ origin={2.0,-138.6259},
+ extent={{-102.0,54.0},{-62.0,94.0}},
+ rotation=0)));
+ Modelica.Blocks.Interfaces.RealInput Pe "Electrical Power Input" annotation (
+ Placement(
+ transformation(
+ extent={{-102.0,54.0},{-62.0,94.0}},
+ origin={-65.7168,-104.0},
+ rotation=0),
+ visible=true,
+ iconTransformation(
+ origin={2.0,-1.6523},
+ extent={{-102.0,54.0},{-62.0,94.0}},
+ rotation=0)));
+ Modelica.Blocks.Interfaces.RealOutput omega_gen
+ "Engine shaft angular velocity" annotation (Placement(
+ transformation(
+ extent={{102.0,54.0},{62.0,94.0}},
+ origin={-144.7168,-169.0},
+ rotation=0),
+ visible=true,
+ iconTransformation(
+ origin={-2.0,-4.0},
+ extent={{102.0,54.0},{62.0,94.0}},
+ rotation=0)));
+ Modelica.Blocks.Interfaces.RealOutput omega_turb
+ "engine shaft angular velocity" annotation (Placement(
+ visible=true,
+ transformation(
+ origin={-142.0,21.0},
+ extent={{102.0,54.0},{62.0,94.0}},
+ rotation=0),
+ iconTransformation(
+ origin={-2.0,-140.0376},
+ extent={{102.0,54.0},{62.0,94.0}},
+ rotation=0)));
+ parameter Real H=0.3 "inertia (pu)";
+ parameter Real Hg=0.3;
+ parameter Real wbase=1;
+ parameter Real Dtg=1;
+ parameter Real Ktg=1;
+ parameter Real wt_x6_0=1;
+ parameter Real wt_x7_0=1;
+ parameter Real wt_x8_0=1;
+ parameter Real wt_x9_0=1;
+ parameter Real wndtge_ang0=1;
+ parameter Real wndtge_spd0=1;
+ protected
+ Modelica.Blocks.Continuous.Integrator integrator1(y_start=wt_x6_0)
+ annotation (Placement(visible=true, transformation(
+ origin={-27.2938,51.715},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ Modelica.Blocks.Continuous.Integrator integrator2(y_start=wt_x8_0)
+ annotation (Placement(visible=true, transformation(
+ origin={-25.0,-38.4407},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ Modelica.Blocks.Continuous.Integrator integrator3(y_start=wt_x7_0)
+ annotation (Placement(visible=true, transformation(
+ origin={35.0,51.7151},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ Modelica.Blocks.Continuous.Integrator integrator4(y_start=wt_x9_0)
+ annotation (Placement(visible=true, transformation(
+ origin={35.0,-38.3965},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ Modelica.Blocks.Math.Add3 add31 annotation (Placement(visible=true,
+ transformation(
+ origin={-77.9503,51.6035},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ Modelica.Blocks.Math.Division division1 annotation (Placement(visible=true,
+ transformation(
+ origin={-105.0,51.7929},
+ extent={{-10.0,10.0},{10.0,-10.0}},
+ rotation=0)));
+ Modelica.Blocks.Math.Division division2 annotation (Placement(visible=true,
+ transformation(
+ origin={-105.0,-37.9398},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ Modelica.Blocks.Math.Add3 add32(
+ k1=-1,
+ k2=-1,
+ k3=-1) annotation (Placement(visible=true, transformation(
+ origin={-75.0,-38.2071},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ Modelica.Blocks.Math.Gain i2H(k=1/(2*H)) annotation (Placement(visible=true,
+ transformation(
+ origin={-51.5025,51.5804},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ Modelica.Blocks.Math.Gain Gain_i2Hg(k=1/(2*Hg)) annotation (Placement(visible=
+ true, transformation(
+ origin={-52.0335,-38.3327},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ Modelica.Blocks.Math.Gain Gain1_wbase(k=wbase) annotation (Placement(visible=
+ true, transformation(
+ origin={7.1416,51.7326},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ Modelica.Blocks.Math.Gain Gain_wbase(k=wbase) annotation (Placement(visible=
+ true, transformation(
+ origin={6.8708,-38.4743},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ Modelica.Blocks.Math.Add add1(k1=-1) annotation (Placement(visible=true,
+ transformation(
+ origin={-30.0,8.0513},
+ extent={{10.0,-10.0},{-10.0,10.0}},
+ rotation=0)));
+ Modelica.Blocks.Math.Gain Gain_Dtg(k=Dtg) annotation (Placement(visible=true,
+ transformation(
+ origin={-60.0,7.5203},
+ extent={{10.0,-10.0},{-10.0,10.0}},
+ rotation=0)));
+ Modelica.Blocks.Math.Add add2(k1=-1) annotation (Placement(visible=true,
+ transformation(
+ origin={95.0,10.0},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ Modelica.Blocks.Math.Gain Gain_Ktg(k=Ktg) annotation (Placement(visible=true,
+ transformation(
+ origin={122.4495,10.0},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ Modelica.Blocks.Math.Add add3 annotation (Placement(visible=true,
+ transformation(
+ origin={67.5947,-20.0},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ Modelica.Blocks.Math.Add add4 annotation (Placement(visible=true,
+ transformation(
+ origin={-25.0,-80.0},
+ extent={{10.0,-10.0},{-10.0,10.0}},
+ rotation=0)));
+ Modelica.Blocks.Math.Add add5 annotation (Placement(visible=true,
+ transformation(
+ origin={-25.0,80.0},
+ extent={{10.0,-10.0},{-10.0,10.0}},
+ rotation=0)));
+ Modelica.Blocks.Sources.Constant Const1_wndtge_spd0(k=wndtge_spd0)
+ annotation (Placement(visible=true, transformation(
+ origin={22.1822,-90.0},
+ extent={{10.0,-10.0},{-10.0,10.0}},
+ rotation=0)));
+ Modelica.Blocks.Sources.Constant Const_wndtge_spd0(k=wndtge_spd0) annotation (
+ Placement(visible=true, transformation(
+ origin={15.0,90.0},
+ extent={{10.0,-10.0},{-10.0,10.0}},
+ rotation=0)));
+ Modelica.Blocks.Sources.Constant Const_wndtge_ang0(k=wndtge_ang0) annotation (
+ Placement(visible=true, transformation(
+ origin={25.0,-2.4551},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ equation
+ connect(Const_wndtge_spd0.y, add5.u1) annotation (Line(
+ visible=true,
+ origin={-7.25,88.0},
+ points={{11.25,2.0},{-2.75,2.0},{-2.75,-2.0},{-5.75,-2.0}},
+ color={0,0,127}));
+ connect(Const1_wndtge_spd0.y, add4.u2) annotation (Line(
+ visible=true,
+ origin={-5.4544,-88.0},
+ points={{16.6366,-2},{-4.5456,-2},{-4.5456,2},{-7.5456,2}},
+ color={0,0,127}));
+ connect(omega_gen, add4.y) annotation (Line(
+ visible=true,
+ origin={-72.1792,-87.5},
+ points={{9.4624,-7.5},{7.1792,-7.5},{7.1792,7.5},{36.1792,7.5}},
+ color={0,0,127}));
+ connect(omega_turb, add5.y) annotation (Line(
+ visible=true,
+ origin={-65.5,87.5},
+ points={{5.5,7.5},{5.5,7.5},{5.5,-7.5},{29.5,-7.5}},
+ color={0,0,127}));
+ connect(Const_wndtge_ang0.y, add3.u1) annotation (Line(
+ visible=true,
+ origin={49.196,-8.2276},
+ points={{-13.196,5.7725},{3.3987,5.7725},{3.3987,-5.7724},{6.3987,-5.7724}},
+ color={0,0,127}));
+
+ connect(Pe, division2.u1) annotation (Line(
+ visible=true,
+ origin={-126.1792,-30.9699},
+ points={{-21.5376,0.9699},{6.1792,0.9699},{6.1792,-0.9699},{9.1792,-0.9699}},
+ color={0,0,127}));
+
+ connect(Pm, division1.u1) annotation (Line(
+ visible=true,
+ origin={-126.3128,45.3965},
+ points={{-21.9385,-0.3965},{6.3128,-0.3965},{6.3128,0.3964},{9.3128,
+ 0.3964}},
+ color={0,0,127}));
+ connect(integrator2.y, Gain_wbase.u) annotation (Line(
+ visible=true,
+ origin={-8.8469,-38.4575},
+ points={{-5.1531,0.0168},{0.7177,0.0168},{0.7177,-0.0168},{3.7177,-0.0168}},
+ color={0,0,127}));
+
+ connect(Gain_wbase.y, integrator4.u) annotation (Line(
+ visible=true,
+ origin={21.2177,-38.4354},
+ points={{-3.3469,-0.0389},{0.7823,-0.0389},{0.7823,0.0389},{1.7823,0.0389}},
+ color={0,0,127}));
+
+ connect(integrator1.y, Gain1_wbase.u) annotation (Line(
+ visible=true,
+ origin={-9.2172,51.7238},
+ points={{-7.0766,-0.0088},{1.3589,-0.0088},{1.3589,0.0088},{4.3588,0.0088}},
+ color={0,0,127}));
+
+ connect(Gain1_wbase.y, integrator3.u) annotation (Line(
+ visible=true,
+ origin={21.2854,51.7238},
+ points={{-3.1438,0.0088},{0.7146,0.0088},{0.7146,-0.0087},{1.7146,-0.0087}},
+ color={0,0,127}));
+
+ connect(Gain_Ktg.y, add31.u1) annotation (Line(
+ visible=true,
+ origin={21.7313,46.5345},
+ points={{111.7182,-36.5345},{114.7181,-36.5345},{114.7181,23.4655},{-114.7364,
+ 23.4655},{-114.7364,13.069},{-111.6816,13.069}},
+ color={0,0,127}));
+ connect(Gain_Ktg.y, add32.u3) annotation (Line(
+ visible=true,
+ origin={22.2231,-34.3404},
+ points={{111.2264,44.3404},{114.2264,44.3404},{114.2264,-32.4736},{-115.2281,
+ -32.4736},{-115.2281,-11.8667},{-109.2231,-11.8667}},
+ color={0,0,127}));
+ connect(add2.y, Gain_Ktg.u) annotation (Line(
+ visible=true,
+ origin={108.2248,10.0},
+ points={{-2.2248,0},{2.2247,0}},
+ color={0,0,127}));
+ connect(add32.y, Gain_i2Hg.u) annotation (Line(
+ visible=true,
+ origin={-64.0112,-38.2908},
+ points={{0.0112,0.0837},{0.0112,-0.0419},{-0.0223,-0.0419}},
+ color={0,0,127}));
+ connect(Gain_i2Hg.y, integrator2.u) annotation (Line(
+ visible=true,
+ origin={-38.5084,-38.3867},
+ points={{-2.5251,0.054},{0.5084,0.054},{0.5084,-0.054},{1.5084,-0.054}},
+ color={0,0,127}));
+ connect(add1.y, Gain_Dtg.u) annotation (Line(
+ visible=true,
+ origin={-44.75,7.7858},
+ points={{3.75,0.2655},{-0.25,0.2655},{-0.25,-0.2655},{-3.25,-0.2655}},
+ color={0,0,127}));
+ connect(Gain_Dtg.y, add32.u1) annotation (Line(
+ visible=true,
+ origin={-84.5,-11.3434},
+ points={{13.5,18.8637},{-5.5,18.8637},{-5.5,-18.8637},{-2.5,-18.8637}},
+ color={0,0,127}));
+ connect(Gain_Dtg.y, add31.u3) annotation (Line(
+ visible=true,
+ origin={-80.1801,15.7288},
+ points={{9.1801,-8.2085},{5.1801,-8.2085},{5.1801,-5.7288},{-9.7702,-5.7288},
+ {-9.7702,27.8747}},
+ color={0,0,127}));
+ connect(i2H.y, integrator1.u) annotation (Line(
+ visible=true,
+ origin={-40.0996,51.6702},
+ points={{-0.4029,-0.0898},{-0.4029,0.0448},{0.8058,0.0448}},
+ color={0,0,127}));
+ connect(add31.y, i2H.u) annotation (Line(
+ visible=true,
+ origin={-64.8645,51.5919},
+ points={{-2.0858,0.0116},{0.362,0.0116},{0.362,-0.0115},{1.362,-0.0115}},
+ color={0,0,127}));
+
+ connect(integrator2.y, add4.u1) annotation (Line(
+ visible=true,
+ origin={-11.75,-56.2203},
+ points={{-2.25,17.7796},{1.75,17.7796},{1.75,-17.7797},{-1.25,-17.7797}},
+ color={0,0,127}));
+
+ connect(add5.u2, integrator1.y) annotation (Line(
+ visible=true,
+ origin={-12.3235,62.8575},
+ points={{-0.6765,11.1425},{2.3235,11.1425},{2.3235,-11.1425},{-3.9703,-11.1425}},
+ color={0,0,127}));
+
+ connect(add1.u1, integrator1.y) annotation (Line(
+ visible=true,
+ origin={-15.2204,32.8832},
+ points={{-2.7796,-18.8319},{1.9265,-18.8319},{1.9265,18.8318},{-1.0734,
+ 18.8318}},
+ color={0,0,127}));
+ connect(add1.u2, integrator2.y) annotation (Line(
+ visible=true,
+ origin={-13.5,-18.1947},
+ points={{-4.5,20.246},{2.5,20.246},{2.5,-20.246},{-0.5,-20.246}},
+ color={0,0,127}));
+ connect(add3.u2, integrator4.y) annotation (Line(
+ visible=true,
+ origin={49.8987,-32.1982},
+ points={{5.696,6.1982},{-0.8987,6.1982},{-0.8987,-6.1983},{-3.8987,-6.1983}},
+ color={0,0,127}));
+
+ connect(add3.y, add2.u2) annotation (Line(
+ visible=true,
+ origin={80.7973,-7.6625},
+ points={{-2.2026,-12.3375},{0.7973,-12.3375},{0.7973,0.675},{-0.7973,
+ 0.675},{-0.7973,11.6625},{2.2027,11.6625}},
+ color={0,0,127}));
+ connect(integrator3.y, add2.u1) annotation (Line(
+ visible=true,
+ origin={72.25,33.8575},
+ points={{-26.25,17.8576},{7.75,17.8576},{7.75,-17.8575},{10.75,-17.8575}},
+ color={0,0,127}));
+
+ connect(division2.u2, add4.y) annotation (Line(
+ visible=true,
+ origin={-98.25,-61.9699},
+ points={{-18.75,18.0301},{-21.75,18.0301},{-21.75,-18.0301},{62.25,-18.0301}},
+ color={0,0,127}));
+
+ connect(division1.u2, add5.y) annotation (Line(
+ visible=true,
+ origin={-98.25,68.8965},
+ points={{-18.75,-11.1036},{-21.75,-11.1036},{-21.75,11.1035},{62.25,
+ 11.1035}},
+ color={0,0,127}));
+ connect(division2.y, add32.u2) annotation (Line(
+ visible=true,
+ origin={-90.25,-38.0734},
+ points={{-3.75,0.1336},{0.25,0.1336},{0.25,-0.1337},{3.25,-0.1337}},
+ color={0,0,127}));
+ connect(division1.y, add31.u2) annotation (Line(
+ visible=true,
+ origin={-91.4627,51.6982},
+ points={{-2.5373,0.0947},{0.5124,0.0947},{0.5124,-0.0947},{1.5124,-0.0947}},
+ color={0,0,127}));
+
+ annotation (
+ Icon(coordinateSystem(
+ extent={{-100.0,-100.0},{100.0,100.0}},
+ preserveAspectRatio=true,
+ initialScale=0.1,
+ grid={10,10}), graphics={Rectangle(
+ visible=true,
+ fillColor={255,255,255},
+ extent={{-100.0,-100.0},{100.0,100.0}}),Text(
+ visible=true,
+ origin={-1.9109,6.1667},
+ fillPattern=FillPattern.Solid,
+ extent={{-49.8299,-36.1667},{49.8299,36.1667}},
+ textString="Rotor",
+ fontName="Arial")}),
+ Diagram(coordinateSystem(
+ extent={{-148.5,-105.0},{148.5,105.0}},
+ preserveAspectRatio=true,
+ initialScale=0.1,
+ grid={5,5})),
+ Documentation);
+ end Rotor_Model;
+
+ model Wind_Power_Model
+ Modelica.Blocks.Interfaces.RealInput Wind_Speed "Wind speed" annotation (
+ Placement(
+ transformation(
+ extent={{-102.0,54.0},{-62.0,94.0}},
+ origin={-68.0,-46.4927},
+ rotation=0),
+ visible=true,
+ iconTransformation(
+ origin={2.0,-2.4053},
+ extent={{-102.0,54.0},{-62.0,94.0}},
+ rotation=0)));
+ Modelica.Blocks.Interfaces.RealInput Theta "Pitch angle" annotation (
+ Placement(
+ transformation(
+ extent={{-102.0,54.0},{-62.0,94.0}},
+ origin={62.0,-34.0},
+ rotation=0),
+ visible=true,
+ iconTransformation(
+ origin={2.0,-76.5688},
+ extent={{-102.0,54.0},{-62.0,94.0}},
+ rotation=0)));
+ Modelica.Blocks.Interfaces.RealInput omega "Turbine speed" annotation (
+ Placement(
+ transformation(
+ extent={{-102.0,54.0},{-62.0,94.0}},
+ origin={-68.0,21.0},
+ rotation=0),
+ visible=true,
+ iconTransformation(
+ origin={2.0,-146.3226},
+ extent={{-102.0,54.0},{-62.0,94.0}},
+ rotation=0)));
+ Modelica.Blocks.Interfaces.RealOutput Pm "Mechanical power" annotation (
+ Placement(
+ transformation(
+ extent={{102.0,54.0},{62.0,94.0}},
+ origin={43.0,-74.0},
+ rotation=0),
+ visible=true,
+ iconTransformation(
+ origin={-2.0,-71.3573},
+ extent={{102.0,54.0},{62.0,94.0}},
+ rotation=0)));
+ import Modelica.Constants.inf;
+ parameter Real KI=1;
+ parameter Real wndtge_kp=1;
+ protected
+ Modelica.Blocks.Nonlinear.Limiter limiter1(uMax=inf, uMin=0.1) annotation (
+ Placement(visible=true, transformation(
+ origin={-106.8708,27.782},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ Modelica.Blocks.Math.Division division1 annotation (Placement(visible=true,
+ transformation(
+ origin={-80.0,75.0},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ Modelica.Blocks.Math.Gain Gain_KI(k=KI) annotation (Placement(visible=true,
+ transformation(
+ origin={-55.0,75.0},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ Modelica.Blocks.Nonlinear.Limiter limiter2(uMax=inf, uMin=0.1) annotation (
+ Placement(visible=true, transformation(
+ origin={-23.2941,73.1292},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ Modelica.Blocks.Math.Gain Gain_wndtge_kp(k=wndtge_kp) annotation (Placement(
+ visible=true, transformation(
+ origin={107.9503,-0.0},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ Modelica.Blocks.Math.Product product2 annotation (Placement(visible=true,
+ transformation(
+ origin={-27.4053,-6.6035},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ Modelica.Blocks.Math.Product product3 annotation (Placement(visible=true,
+ transformation(
+ origin={-65.0,-20.0},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ Modelica.Blocks.Math.Product product4 annotation (Placement(visible=true,
+ transformation(
+ origin={80.0,-1.6035},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ Cp_function cp_function1 annotation (Placement(visible=true, transformation(
+ origin={30.0,58.3965},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ equation
+ connect(limiter1.y, division1.u2) annotation (Line(
+ visible=true,
+ origin={-93.9354,45.8588},
+ points={{-1.9354,-18.0768},{1.0646,-18.0768},{1.0646,-5.0643},{-1.0646,-5.0643},
+ {-1.0646,23.1412},{1.9354,23.1412}},
+ color={0,0,127}));
+ connect(Wind_Speed, limiter1.u) annotation (Line(
+ visible=true,
+ origin={-128.1531,27.6446},
+ points={{-21.8469,-0.1373},{6.2823,-0.1373},{6.2823,0.1374},{9.2823,
+ 0.1374}},
+ color={0,0,127}));
+ connect(omega, division1.u1) annotation (Line(
+ visible=true,
+ origin={-108.0,88.0},
+ points={{-42.0,7.0},{13.0,7.0},{13.0,-7.0},{16.0,-7.0}},
+ color={0,0,127}));
+ connect(division1.y, Gain_KI.u) annotation (Line(
+ visible=true,
+ origin={-68.0,75.0},
+ points={{-1.0,0.0},{1.0,0.0}},
+ color={0,0,127}));
+ connect(Wind_Speed, product2.u1) annotation (Line(
+ visible=true,
+ origin={-148.4635,14.0554},
+ points={{-1.5365,13.4519},{26.1487,14.0554},{26.1487,-14.0554},{109.0582,
+ -14.6589}},
+ color={0,0,127}));
+ connect(Wind_Speed, product3.u1) annotation (Line(
+ visible=true,
+ origin={-139.5109,5.7536},
+ points={{-10.4891,21.7537},{16.75,21.7537},{16.75,-19.7536},{62.5109,-19.7536}},
+ color={0,0,127}));
+
+ connect(Wind_Speed, product3.u2) annotation (Line(
+ visible=true,
+ origin={-139.2437,-0.0},
+ points={{-10.7563,27.5073},{16.75,26.7536},{16.75,-26.7536},{62.2437,-26.0}},
+ color={0,0,127}));
+
+ connect(Theta, cp_function1.Theta) annotation (Line(
+ visible=true,
+ origin={7.0,46.1983},
+ points={{-27,-6.1983},{8,-6.1983},{8,6.1982},{11,6.1982}},
+ color={0,0,127}));
+ connect(product4.y, Gain_wndtge_kp.u) annotation (Line(
+ visible=true,
+ origin={94.2128,-0.8018},
+ points={{-3.2128,-0.8017},{0.7376,-0.8017},{0.7376,0.8018},{1.7375,0.8018}},
+ color={0,0,127}));
+
+ connect(Gain_wndtge_kp.y, Pm) annotation (Line(
+ visible=true,
+ origin={122.1088,0.0},
+ points={{-3.1585,-0.0},{2.8912,0.0}},
+ color={0,0,127}));
+ connect(product2.y, product4.u2) annotation (Line(
+ visible=true,
+ origin={8.5,-5.5},
+ points={{-24.9053,-1.1035},{-18.5,0.5},{-18.5,-0.5},{59.5,-2.1035}},
+ color={0,0,127}));
+ connect(cp_function1.y, product4.u1) annotation (Line(
+ visible=true,
+ origin={59.75,31.3965},
+ points={{-18.75,27.0},{5.25,27.0},{5.25,-27.0},{8.25,-27.0}},
+ color={0,0,127}));
+ connect(limiter2.y, cp_function1.Lambda) annotation (Line(
+ visible=true,
+ origin={8.9265,68.7628},
+ points={{-21.2206,4.3664},{6.0735,4.3664},{6.0735,-4.3663},{9.0735,-4.3663}},
+ color={0,0,127}));
+
+ connect(Gain_KI.y, limiter2.u) annotation (Line(
+ visible=true,
+ origin={-38.9706,74.0646},
+ points={{-5.0294,0.9354},{0.6765,0.9354},{0.6765,-0.9354},{3.6765,-0.9354}},
+ color={0,0,127}));
+
+ connect(product3.y, product2.u2) annotation (Line(
+ visible=true,
+ origin={-44.554,-16.3018},
+ points={{-9.446,-3.6982},{2.1487,-3.6982},{2.1487,3.6983},{5.1487,3.6983}},
+ color={0,0,127}));
+
+ annotation (
+ Icon(coordinateSystem(
+ extent={{-100.0,-100.0},{100.0,100.0}},
+ preserveAspectRatio=true,
+ initialScale=0.1,
+ grid={10,10}), graphics={Rectangle(
+ visible=true,
+ fillColor={255,255,255},
+ extent={{-100.0,-100.0},{100.0,100.0}}),Text(
+ visible=true,
+ origin={5.2917,-1.4606},
+ fillPattern=FillPattern.Solid,
+ extent={{-39.3935,-41.4606},{39.3935,41.4606}},
+ textString="wind",
+ fontName="Arial")}),
+ Diagram(coordinateSystem(
+ extent={{-148.5,-105.0},{148.5,105.0}},
+ preserveAspectRatio=true,
+ initialScale=0.1,
+ grid={5,5})),
+ Documentation);
+ end Wind_Power_Model;
+
+ block Multi_Powers "Multiplexer block for four input connectors"
+ extends Modelica.Blocks.Interfaces.BlockIcon;
+ Modelica.Blocks.Interfaces.RealInput u1 "Input" annotation (Placement(
+ transformation(extent={{-140,70},{-100,110}}, rotation=0)));
+ Modelica.Blocks.Interfaces.RealOutput y[5] "Multiple powers of the input"
+ annotation (Placement(transformation(extent={{100,-10},{120,10}}, rotation=
+ 0)));
+ protected
+ Real u2;
+ Real u3;
+ Real u4;
+ equation
+ u2 = u1^2;
+ u3 = u1^3;
+ u4 = u1^4;
+ [y] = [1; u1; u2; u3; u4];
+ annotation (
+ Documentation(info="
+
+The output connector is the concatenation of the four input connectors.
+Note, that the dimensions of the input connector signals have to be
+explicitly defined via parameters n1, n2, n3 and n4.
+
+
+ "), Icon(coordinateSystem(
+ preserveAspectRatio=true,
+ extent={{-100,-100},{100,100}},
+ grid={1,1}), graphics={Line(points={{8,0},{102,0}}, color={0,0,127}),
+ Line(points={{-100,90},{-60,90},{-3,4}}, color={0,0,127}),Line(points=
+ {{-100,30},{-60,30},{-9,0}}, color={0,0,127}),Line(points={{-99,-30},
+ {-59,-30},{-10,-5}}, color={0,0,127}),Line(points={{-100,-90},{-60,-90},
+ {-5,-6}}, color={0,0,127}),Ellipse(
+ extent={{-15,15},{15,-15}},
+ fillColor={0,0,127},
+ fillPattern=FillPattern.Solid,
+ lineColor={0,0,127})}),
+ Diagram(coordinateSystem(
+ preserveAspectRatio=true,
+ extent={{-100,-100},{100,100}},
+ grid={1,1}), graphics={Line(points={{-100,90},{-60,90},{-3,4}}, color={
+ 0,0,255}),Line(points={{-100,-90},{-60,-90},{-5,-6}}, color={0,0,255}),
+ Line(points={{8,0},{102,0}}, color={0,0,255}),Ellipse(
+ extent={{-15,15},{15,-15}},
+ fillColor={0,0,255},
+ fillPattern=FillPattern.Solid,
+ lineColor={0,0,255}),Line(points={{-100,30},{-60,30},{-9,0}}, color={
+ 0,0,255}),Line(points={{-99,-30},{-59,-30},{-10,-5}}, color={0,0,255})}));
+ end Multi_Powers;
+
+ model Cp_function
+ extends Modelica.Blocks.Interfaces.BlockIcon;
+ Modelica.Blocks.Interfaces.RealInput Lambda "Lambda" annotation (Placement(
+ transformation(
+ extent={{-140.0,40.0},{-100.0,80.0}},
+ rotation=0,
+ origin={0.0,0.0}),
+ visible=true,
+ iconTransformation(
+ origin={0.0,0.0},
+ extent={{-140.0,40.0},{-100.0,80.0}},
+ rotation=0)));
+ Modelica.Blocks.Interfaces.RealInput Theta "Pitch angle" annotation (
+ Placement(
+ transformation(
+ extent={{-140.0,-80.0},{-100.0,-40.0}},
+ rotation=0,
+ origin={0.0,0.0}),
+ visible=true,
+ iconTransformation(
+ origin={0.0,0.0},
+ extent={{-140.0,-80.0},{-100.0,-40.0}},
+ rotation=0)));
+ Modelica.Blocks.Interfaces.RealOutput y "Cp" annotation (Placement(
+ transformation(extent={{100,-10},{120,10}}, rotation=0)));
+ protected
+ Modelica.Blocks.Math.MatrixGain matrixGain1(K=[-0.41909, 0.21808, -0.012406,
+ -0.00013365, 0.000011524; -0.067606, 0.060405, -0.013934, 0.0010683, -0.000023895;
+ 0.015727, -0.010996, 0.0021495, -0.00014855, 0.0000027937; -0.00086018,
+ 0.00057051, -0.00010479, 0.0000059924, -0.000000089194; 0.000014788, -0.0000094839,
+ 0.0000016167, -0.000000071535, 0.00000000049686]) annotation (Placement(
+ visible=true, transformation(
+ origin={-26.0,50.0},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ Multi_Powers multi_Powers1 annotation (Placement(visible=true, transformation(
+ origin={-64.0,50.0},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ Multi_Powers multi_Powers2 annotation (Placement(visible=true, transformation(
+ origin={-78.0,-70.0},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ equation
+ connect(Theta, multi_Powers2.u1) annotation (Line(
+ visible=true,
+ origin={-99.0,-60.5},
+ points={{-21.0,0.5},{6.0,0.5},{6.0,-0.5},{9.0,-0.5}},
+ color={0,0,127}));
+ connect(Lambda, multi_Powers1.u1) annotation (Line(
+ visible=true,
+ origin={-88.5,59.5},
+ points={{-31.5,0.5},{9.5,0.5},{9.5,-0.5},{12.5,-0.5}},
+ color={0,0,127}));
+ connect(multi_Powers1.y[1], matrixGain1.u[1]) annotation (Line(
+ visible=true,
+ origin={-45.5,50.0},
+ points={{-7.5,-0.8},{0,-0.8},{0,1.33227e-15},{7.5,1.33227e-15}},
+ color={0,0,127}));
+ connect(multi_Powers1.y[2], matrixGain1.u[2]);
+ connect(multi_Powers1.y[3], matrixGain1.u[3]);
+ connect(multi_Powers1.y[4], matrixGain1.u[4]);
+ connect(multi_Powers1.y[5], matrixGain1.u[5]);
+ y = matrixGain1.y[1]*multi_Powers2.y[1] + matrixGain1.y[2]*multi_Powers2.y[2]
+ + matrixGain1.y[3]*multi_Powers2.y[3] + matrixGain1.y[4]*multi_Powers2.y[4]
+ + matrixGain1.y[5]*multi_Powers2.y[5];
+ annotation (
+ Icon(graphics={Text(
+ visible=true,
+ origin={0,0},
+ fillPattern=FillPattern.Solid,
+ extent={{-40,-20},{40,20}},
+ textString="CP")}),
+ Documentation(info="
+
+Block has two continuous Real input vectors u1 and u2 and one
+continuous Real output vector y.
+All vectors have the same number of elements.
+
+"));
+ end Cp_function;
+
+ model Turbine_Model
+ parameter Real GEN_base=1;
+ parameter Real WT_base=1;
+ parameter Real Kpp=1;
+ parameter Real Kip=1;
+ parameter Real pirat=1;
+ parameter Real pimax=1;
+ parameter Real pimin=1;
+ parameter Real pwrat=1;
+ parameter Real pwmax=1;
+ parameter Real pwmin=1;
+ parameter Real Kic=1;
+ parameter Real Kpc=1;
+ parameter Real Tp=1;
+ parameter Real Tpc=1;
+ parameter Real eps=1;
+ parameter Real Kptrq=1;
+ parameter Real Kitrq=1;
+ parameter Real Dtg=1;
+ parameter Real H=1;
+ parameter Real Hg=1;
+ parameter Real Ktg=1;
+ parameter Real KI=1;
+ parameter Real wndtge_kp=1;
+ parameter Real wt_x0_0=1;
+ parameter Real wt_x1_0=1;
+ parameter Real wt_x2_0=1;
+ parameter Real wt_x3_0=1;
+ parameter Real wt_x4_0=1;
+ parameter Real wt_x5_0=1;
+ parameter Real wt_x6_0=1;
+ parameter Real wt_x7_0=1;
+ parameter Real wt_x8_0=1;
+ parameter Real wt_x9_0=1;
+ parameter Real wbase=1;
+ parameter Real wndtge_ang0=1;
+ parameter Real wndtge_spd0=1;
+ Modelica.Blocks.Interfaces.RealInput Pelec "Electrical power" annotation (
+ Placement(
+ transformation(
+ extent={{-102.0,54.0},{-62.0,94.0}},
+ origin={-88.0,11.0},
+ rotation=0),
+ visible=true,
+ iconTransformation(
+ origin={2.0,-137.1586},
+ extent={{-102.0,54.0},{-62.0,94.0}},
+ rotation=0)));
+ Modelica.Blocks.Interfaces.RealInput Wind_Speed "Wind speed" annotation (
+ Placement(
+ transformation(
+ extent={{-102.0,54.0},{-62.0,94.0}},
+ origin={-88.0,-29.0},
+ rotation=0),
+ visible=true,
+ iconTransformation(
+ origin={2.0,-7.5581},
+ extent={{-102.0,54.0},{-62.0,94.0}},
+ rotation=0)));
+ Modelica.Blocks.Interfaces.RealOutput Pord "Active power command" annotation (
+ Placement(
+ transformation(
+ extent={{102.0,54.0},{62.0,94.0}},
+ origin={128.0,-75.6493},
+ rotation=0),
+ visible=true,
+ iconTransformation(
+ origin={-2.0,-7.6782},
+ extent={{102.0,54.0},{62.0,94.0}},
+ rotation=0)));
+ Rotor_Model rotor_Model1(
+ wt_x6_0=wt_x6_0,
+ wt_x7_0=wt_x7_0,
+ wt_x8_0=wt_x8_0,
+ wt_x9_0=wt_x9_0,
+ Dtg=Dtg,
+ H=H,
+ Hg=Hg,
+ Ktg=Ktg,
+ wbase=wbase,
+ wndtge_ang0=wndtge_ang0,
+ wndtge_spd0=wndtge_spd0) annotation (Placement(visible=true, transformation(
+ origin={-100.5502,45.01},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ Wind_Power_Model wind_Power_Model1(KI=KI, wndtge_kp=wndtge_kp) annotation (
+ Placement(visible=true, transformation(
+ origin={-132.1327,37.6573},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ protected
+ Boolean thlim1(start=true);
+ Boolean pwlim2(start=true);
+ Modelica.Blocks.Math.Gain Change_Base(k=GEN_base/WT_base) annotation (
+ Placement(visible=true, transformation(
+ origin={-130.0,85.0},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ Modelica.Blocks.Math.Add add1(k2=-1) annotation (Placement(visible=true,
+ transformation(
+ origin={-92.0602,80.0},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ Modelica.Blocks.Continuous.Integrator integrator1(k=1/5, y_start=wt_x5_0)
+ annotation (Placement(visible=true, transformation(
+ origin={-66.7293,85.0},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ Modelica.Blocks.Math.Add add2(k1=-1) annotation (Placement(visible=true,
+ transformation(
+ origin={-35.0,58.2372},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ Modelica.Blocks.Math.Gain Gain_Kpp(k=Kpp) annotation (Placement(visible=true,
+ transformation(
+ origin={-6.8708,73.0513},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ Modelica.Blocks.Continuous.Integrator integrator2(k=Kip, y_start=wt_x1_0)
+ annotation (Placement(visible=true, transformation(
+ origin={-1.8708,43.0036},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ Modelica.Blocks.Math.Add3 add31 annotation (Placement(visible=true,
+ transformation(
+ origin={23.3965,65.0},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ Modelica.Blocks.Continuous.Integrator integrator3(k=Kic, y_start=wt_x3_0)
+ annotation (Placement(visible=true, transformation(
+ origin={-35.0,-32.7609},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ Modelica.Blocks.Math.Add add3 annotation (Placement(visible=true,
+ transformation(
+ origin={-7.225,-25.0},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ Modelica.Blocks.Math.Gain Gain_Kpc(k=Kpc) annotation (Placement(visible=true,
+ transformation(
+ origin={-35.0,1.579},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ Modelica.Blocks.Math.Add add4(k1=-1) annotation (Placement(visible=true,
+ transformation(
+ origin={-105.0,-11.8301},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ Modelica.Blocks.Math.Add add5(k2=-1) annotation (Placement(visible=true,
+ transformation(
+ origin={52.373,60.0},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ Modelica.Blocks.Math.Gain Gain_iTP(k=1/Tp) annotation (Placement(visible=true,
+ transformation(
+ origin={80.0,60.0},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ Modelica.Blocks.Nonlinear.Limiter limiter1(uMax=pirat) annotation (Placement(
+ visible=true, transformation(
+ origin={107.1696,60.0},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ Modelica.Blocks.Continuous.LimIntegrator limIntegrator1(
+ y_start=wt_x0_0,
+ outMax=pimax,
+ outMin=pimin,
+ initType=Modelica.Blocks.Types.Init.InitialOutput) annotation (Placement(
+ visible=true, transformation(
+ origin={135.0,60.0},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ Modelica.Blocks.Math.Gain Gain_Kptrq(k=Kptrq) annotation (Placement(visible=
+ true, transformation(
+ origin={-35.0,-75.421},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ Modelica.Blocks.Math.Add add6 annotation (Placement(visible=true,
+ transformation(
+ origin={-7.225,-82.0},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ Modelica.Blocks.Continuous.Integrator integrator4(k=Kitrq, y_start=wt_x2_0)
+ annotation (Placement(visible=true, transformation(
+ origin={-35.0,-106.8211},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ Modelica.Blocks.Math.Product product1 annotation (Placement(visible=true,
+ transformation(
+ origin={22.2601,-70.0},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ Modelica.Blocks.Continuous.LimIntegrator limIntegrator2(
+ outMax=pwmax,
+ outMin=pwmin,
+ y_start=wt_x4_0) annotation (Placement(visible=true, transformation(
+ origin={139.1753,-76.2002},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ Modelica.Blocks.Nonlinear.Limiter limiter2(uMax=pwrat) annotation (Placement(
+ visible=true, transformation(
+ origin={111.3449,-76.2002},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ Modelica.Blocks.Math.Gain Gain_iTPc(k=1/Tpc) annotation (Placement(visible=
+ true, transformation(
+ origin={84.1753,-76.2002},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ Modelica.Blocks.Math.Add add8(k2=-1) annotation (Placement(visible=true,
+ transformation(
+ origin={56.5483,-76.2002},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ Modelica.Blocks.Math.Gain Change_Base1(k=WT_base/GEN_base) annotation (
+ Placement(visible=true, transformation(
+ origin={175.0,-1.9789},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ Modelica.Blocks.Sources.Constant const(k=1) annotation (Placement(visible=
+ true, transformation(
+ origin={-147.5253,-5.0},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ equation
+ connect(Pelec, Change_Base.u) annotation (Line(
+ visible=true,
+ origin={-156.0,85.0},
+ points={{-14.0,0.0},{14.0,0.0}},
+ color={0,0,127}));
+ connect(Wind_Speed, wind_Power_Model1.Wind_Speed) annotation (Line(
+ visible=true,
+ origin={-150.1058,44.9084},
+ points={{-19.8942,0.0916},{4.9606,0.0916},{4.9606,-0.09163},{9.9731,-0.09163}},
+ color={0,0,127}));
+
+ connect(integrator1.y, add2.u1) annotation (Line(
+ visible=true,
+ origin={-50.6823,74.6186},
+ points={{-5.047,10.3814},{0.6823,10.3814},{0.6823,-10.3814},{3.6823,-10.3814}},
+ color={0,0,127}));
+
+ connect(add1.u2, integrator1.y) annotation (Line(
+ visible=true,
+ origin={-79.8948,75.9958},
+ points={{-24.1654,-1.9958},{-25.1654,-1.9958},{-25.1654,-7.0083},{25.1654,
+ -7.0083},{25.1654,9.0042},{24.1655,9.0042}},
+ color={0,0,127}));
+ connect(add1.y, integrator1.u) annotation (Line(
+ visible=true,
+ origin={-79.812,82.5},
+ points={{-1.2482,-2.5},{0.0827,-2.5},{0.0827,2.5},{1.0827,2.5}},
+ color={0,0,127}));
+ connect(Change_Base1.y, Pord) annotation (Line(
+ visible=true,
+ origin={193.5,-1.8141},
+ points={{-7.5,-0.1648},{-4.5,-0.1648},{-4.5,0.1648},{16.5,0.1648}},
+ color={0,0,127}));
+ connect(const.y, add4.u1) annotation (Line(
+ visible=true,
+ origin={-128.3813,-14.5849},
+ points={{-8.144,9.5849},{-1.6187,9.5849},{-1.6187,9.5849},{11.3813,8.7548}},
+ color={0,0,127}));
+
+ connect(add4.u2, limIntegrator2.y) annotation (Line(
+ visible=true,
+ origin={16.5876,-49.6768},
+ points={{-133.588,31.8467},{-136.588,31.8467},{-136.588,-5.3232},{136.588,
+ -5.3232},{136.588,-26.5234},{133.588,-26.5234}},
+ color={0,0,127}));
+ connect(limIntegrator2.y, Change_Base1.u) annotation (Line(
+ visible=true,
+ origin={158.2938,-39.0896},
+ points={{-8.1185,-37.1106},{1.7062,-37.1106},{1.7062,37.1107},{4.7062,
+ 37.1107}},
+ color={0,0,127}));
+ connect(add8.y, Gain_iTPc.u) annotation (Line(
+ visible=true,
+ origin={69.8618,-76.2002},
+ points={{-2.3135,0.0},{2.3135,0.0}},
+ color={0,0,127}));
+ connect(add5.y, Gain_iTP.u) annotation (Line(
+ visible=true,
+ origin={65.6865,60.0},
+ points={{-2.3135,0.0},{2.3135,0.0}},
+ color={0,0,127}));
+ connect(Gain_iTPc.y, limiter2.u) annotation (Line(
+ visible=true,
+ origin={97.2601,-76.2002},
+ points={{-2.0848,0.0},{2.0848,0.0}},
+ color={0,0,127}));
+ connect(product1.y, add8.u1) annotation (Line(
+ visible=true,
+ origin={34.2519,-67.0},
+ points={{-0.9918,-3.0},{7.2964,-3.2002},{7.2964,-3.2002},{10.2964,-3.2002}},
+ color={0,0,127}));
+
+ connect(limIntegrator2.y, add8.u2) annotation (Line(
+ visible=true,
+ origin={97.3618,-84.8669},
+ points={{52.8135,8.6667},{55.8135,8.6667},{55.8135,-11.3333},{-55.8135,-11.3333},
+ {-55.8135,2.6667},{-52.8135,2.6667}},
+ color={0,0,127}));
+ connect(limiter2.y, limIntegrator2.u) annotation (Line(
+ visible=true,
+ origin={124.7601,-76.2002},
+ points={{-2.4152,0.0},{2.4152,0.0}},
+ color={0,0,127}));
+ connect(integrator4.y, add6.u2) annotation (Line(
+ visible=true,
+ origin={-20.9188,-97.4105},
+ points={{-3.0812,-9.4106},{0.6938,-9.4106},{0.6938,9.4105},{1.6938,9.4105}},
+ color={0,0,127}));
+
+ connect(add31.u2, integrator2.y) annotation (Line(
+ visible=true,
+ origin={10.196,54.0018},
+ points={{1.2005,10.9982},{-0.0668,10.9982},{-0.0668,-10.9982},{-1.0668,-10.9982}},
+ color={0,0,127}));
+
+ connect(add3.y, add31.u3) annotation (Line(
+ visible=true,
+ origin={11.1982,16.0},
+ points={{-7.4232,-41.0},{0.4054,-41.0},{0.4054,41.0},{0.1983,41.0}},
+ color={0,0,127}));
+ connect(add2.y, Gain_Kptrq.u) annotation (Line(
+ visible=true,
+ origin={-40.3485,3.0264},
+ points={{16.3485,55.2108},{17.0758,55.6318},{17.0758,22.3946},{-19.6515,
+ 22.3946},{-19.6515,-78.0264},{-6.6515,-78.4474}},
+ color={0,0,127}));
+ connect(rotor_Model1.omega_gen, product1.u1) annotation (Line(
+ visible=true,
+ origin={-41.5592,-14.7662},
+ points={{-50.991,66.7762},{-26.3238,66.7762},{-26.3238,-42.1593},{51.8193,
+ -42.1593},{51.8193,-49.2338}},
+ color={0,0,127}));
+ connect(add6.y, product1.u2) annotation (Line(
+ visible=true,
+ origin={7.1388,-79.0},
+ points={{-3.3638,-3.0},{0.1213,-3.0},{0.1213,3.0},{3.1213,3.0}},
+ color={0,0,127}));
+ connect(Gain_Kptrq.y, add6.u1) annotation (Line(
+ visible=true,
+ origin={-20.9188,-75.7105},
+ points={{-3.0812,0.2895},{0.6938,0.2895},{0.6938,-0.2895},{1.6938,-0.2895}},
+ color={0,0,127}));
+
+ connect(wind_Power_Model1.Theta, limIntegrator1.y) annotation (Line(
+ visible=true,
+ origin={-28.0648,76.8501},
+ points={{-112.068,-39.4497},{-117.08,-39.4497},{-117.08,28.1499},{-91.0554,
+ 28.1499},{177.065,28.1499},{177.065,-16.8501},{174.065,-16.8501}},
+ color={0,0,127}));
+ connect(limIntegrator1.y, add5.u2) annotation (Line(
+ visible=true,
+ origin={93.1865,51.3333},
+ points={{52.8135,8.6667},{55.8135,8.6667},{55.8135,-11.3333},{-55.8135,-11.3333},
+ {-55.8135,2.6667},{-52.8135,2.6667}},
+ color={0,0,127}));
+ connect(limiter1.y, limIntegrator1.u) annotation (Line(
+ visible=true,
+ origin={120.5848,60.0},
+ points={{-2.4152,0.0},{2.4152,0.0}},
+ color={0,0,127}));
+ connect(Gain_iTP.y, limiter1.u) annotation (Line(
+ visible=true,
+ origin={93.0848,60.0},
+ points={{-2.0848,0.0},{2.0848,0.0}},
+ color={0,0,127}));
+ connect(add31.y, add5.u1) annotation (Line(
+ visible=true,
+ origin={38.3789,65.5},
+ points={{-3.9824,-0.5},{0.9941,-0.5},{0.9941,0.5},{1.9941,0.5}},
+ color={0,0,127}));
+ connect(integrator3.y, add3.u2) annotation (Line(
+ visible=true,
+ origin={-20.9188,-31.8805},
+ points={{-3.0812,-0.8804},{0.6937,-0.8804},{0.6937,0.8805},{1.6938,0.8805}},
+ color={0,0,127}));
+
+ connect(add4.y, Gain_Kpc.u) annotation (Line(
+ visible=true,
+ origin={-60.25,-5.1256},
+ points={{-33.75,-6.7045},{10.25,-6.7045},{10.25,6.7046},{13.25,6.7046}},
+ color={0,0,127}));
+ connect(Gain_Kpc.y, add3.u1) annotation (Line(
+ visible=true,
+ origin={-21.6125,-9.689},
+ points={{-2.3875,11.268},{0.6125,11.268},{0.6125,-1.957},{-0.6125,-1.957},
+ {-0.6125,-9.311},{2.3875,-9.311}},
+ color={0,0,127}));
+ connect(Gain_Kpp.y, add31.u1) annotation (Line(
+ visible=true,
+ origin={8.0797,73.0257},
+ points={{-3.9505,0.0256},{0.3168,0.0256},{0.3168,-0.0257},{3.3168,-0.0257}},
+ color={0,0,127}));
+
+ connect(add2.y, Gain_Kpp.u) annotation (Line(
+ visible=true,
+ origin={-20.6531,65.6443},
+ points={{-3.3469,-7.4071},{0.7823,-7.4071},{0.7823,7.407},{1.7823,7.407}},
+ color={0,0,127}));
+
+ connect(Change_Base.y, rotor_Model1.Pe) annotation (Line(
+ visible=true,
+ origin={-111.2201,65.5087},
+ points={{-7.7799,19.4913},{1.2201,19.4913},{1.2201,-12.8593},{2.6699,-12.8593},
+ {2.6699,-13.2639}},
+ color={0,0,127}));
+ connect(rotor_Model1.omega_gen, add2.u2) annotation (Line(
+ visible=true,
+ origin={-64.1526,52.1236},
+ points={{-28.3976,-0.1136},{14.1526,-0.1136},{14.1526,0.1136},{17.1526,
+ 0.1136}},
+ color={0,0,127}));
+ connect(wind_Power_Model1.Pm, rotor_Model1.Pm) annotation (Line(
+ visible=true,
+ origin={-114.9521,38.2345},
+ points={{-9.1806,-0.31293},{1.3894,-0.31293},{1.3894,0.31291},{6.4019,
+ 0.31291}},
+ color={0,0,127}));
+ connect(rotor_Model1.omega_turb, wind_Power_Model1.omega) annotation (Line(
+ visible=true,
+ origin={-116.3415,31.1587},
+ points={{23.7913,7.24754},{28.8037,7.24754},{28.8037,-6.5139},{-28.8037,-6.5139},
+ {-28.8037,-0.73366},{-23.7912,-0.73366}},
+ color={0,0,127}));
+ add1.u1 = if Change_Base.y >= 0.75 then 1.2 else ((-0.67*Change_Base.y) +
+ 1.42)*Change_Base.y + 0.51;
+ integrator2.u = if thlim1 then add2.y else 0;
+ integrator3.u = if thlim1 then add4.y else 0;
+ integrator4.u = if pwlim2 then add2.y else 0;
+ thlim1 = not (limIntegrator1.y <= pimin + eps and limiter1.y < 0);
+ pwlim2 = not (limIntegrator2.y >= pwmax and limiter2.y > 0);
+ annotation (
+ Icon(coordinateSystem(
+ extent={{-100.0,-100.0},{100.0,100.0}},
+ preserveAspectRatio=true,
+ initialScale=0.1,
+ grid={10,10}), graphics={Rectangle(
+ visible=true,
+ fillColor={255,255,255},
+ extent={{-100.0,-100.0},{100.0,100.0}}),Text(
+ visible=true,
+ fillPattern=FillPattern.Solid,
+ extent={{-44.9792,-41.316},{44.9792,41.316}},
+ textString="Turbine",
+ fontName="Arial")}),
+ Diagram(coordinateSystem(
+ extent={{-210.0,-148.5},{210.0,148.5}},
+ preserveAspectRatio=true,
+ initialScale=0.1,
+ grid={5,5})),
+ Documentation);
+ end Turbine_Model;
+ annotation (Diagram(coordinateSystem(
+ extent={{-148.5,-105.0},{148.5,105.0}},
+ preserveAspectRatio=true,
+ initialScale=0.1,
+ grid={5,5})), Documentation);
+ end Turbine;
+
+ package Electrical_Control
+ model Electrical_Control
+ import Modelica.Constants.inf;
+ parameter Real qmax=1;
+ parameter Real qmin=0;
+ parameter Real KQi=1;
+ parameter Real ex_x0_0=1;
+ parameter Real ex_x1_0=1;
+ parameter Real KVi=1;
+ parameter Real xiqmax=1;
+ parameter Real xiqmin=1;
+ Modelica.Blocks.Interfaces.RealInput Qgen
+ "Reactive Power produced by the Generator" annotation (Placement(
+ transformation(
+ extent={{-102.0,54.0},{-62.0,94.0}},
+ origin={-148.0,42.372},
+ rotation=0),
+ visible=true,
+ iconTransformation(
+ origin={2.0,-154.0},
+ extent={{-102.0,54.0},{-62.0,94.0}},
+ rotation=0)));
+ Modelica.Blocks.Interfaces.RealInput Qord "Reactive power command"
+ annotation (Placement(
+ transformation(
+ extent={{-102.0,54.0},{-62.0,94.0}},
+ origin={-148.0,-25.5774},
+ rotation=0),
+ visible=true,
+ iconTransformation(
+ origin={2.0,6.0},
+ extent={{-102.0,54.0},{-62.0,94.0}},
+ rotation=0)));
+ Modelica.Blocks.Interfaces.RealInput Pord "Active power command" annotation (
+ Placement(
+ visible=true,
+ transformation(
+ origin={-148.0,-136.6369},
+ extent={{-102.0,54.0},{-62.0,94.0}},
+ rotation=0),
+ iconTransformation(
+ origin={2.0,-47.414},
+ extent={{-102.0,54.0},{-62.0,94.0}},
+ rotation=0)));
+ Modelica.Blocks.Interfaces.RealInput Vterm "Terminal voltage" annotation (
+ Placement(
+ visible=true,
+ transformation(
+ origin={-148.0,-174.0},
+ extent={{-102.0,54.0},{-62.0,94.0}},
+ rotation=0),
+ iconTransformation(
+ origin={2.0,-94.0},
+ extent={{-102.0,54.0},{-62.0,94.0}},
+ rotation=0)));
+ Modelica.Blocks.Interfaces.RealOutput Ipcmd "Current command" annotation (
+ Placement(
+ visible=true,
+ transformation(
+ origin={128.0,-154.0},
+ extent={{102.0,54.0},{62.0,94.0}},
+ rotation=0),
+ iconTransformation(
+ origin={-2.0,1.3917},
+ extent={{102.0,54.0},{62.0,94.0}},
+ rotation=0)));
+ Modelica.Blocks.Interfaces.RealOutput Efd "Excitation voltage" annotation (
+ Placement(
+ transformation(
+ extent={{102.0,54.0},{62.0,94.0}},
+ origin={128.0,-2.1101},
+ rotation=0),
+ visible=true,
+ iconTransformation(
+ origin={-2.0,-61.4483},
+ extent={{102.0,54.0},{62.0,94.0}},
+ rotation=0)));
+ protected
+ Modelica.Blocks.Math.Division division1 annotation (Placement(visible=true,
+ transformation(
+ origin={-166.6875,-80.0},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ Modelica.Blocks.Nonlinear.Limiter limiter1(uMax=1.1, uMin=-inf) annotation (
+ Placement(visible=true, transformation(
+ origin={-135.6935,-80.0},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ Modelica.Blocks.Nonlinear.Limiter limiter2(uMax=qmax, uMin=qmin) annotation (
+ Placement(visible=true, transformation(
+ origin={-186.1796,47.2887},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ Modelica.Blocks.Math.Add add1(k1=-1) annotation (Placement(visible=true,
+ transformation(
+ origin={-150.0,80.0},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ Modelica.Blocks.Continuous.LimIntegrator limIntegrator1(
+ k=KQi,
+ y_start=ex_x0_0,
+ outMax=99999,
+ outMin=-99999) annotation (Placement(visible=true, transformation(
+ origin={-114.9137,80.0},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ Modelica.Blocks.Math.Add add2(k2=-1) annotation (Placement(visible=true,
+ transformation(
+ origin={-80.0,73.0337},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ Modelica.Blocks.Math.Gain gain1(k=KVi) annotation (Placement(visible=true,
+ transformation(
+ origin={-51.7827,73.3274},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ lim_exc_s1 lim_exc_s11(
+ typpe=1,
+ xiqmax=xiqmax,
+ xiqmin=xiqmin) annotation (Placement(visible=true, transformation(
+ origin={-14.0506,73.3274},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ lim_exc_s1 lim_exc_s12(
+ typpe=2,
+ xiqmax=xiqmax,
+ xiqmin=xiqmin) annotation (Placement(visible=true, transformation(
+ origin={61.5119,72.4087},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ Modelica.Blocks.Continuous.Integrator integrator1(y_start=ex_x1_0)
+ annotation (Placement(visible=true, transformation(
+ origin={15.875,72.9494},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ Modelica.Blocks.Sources.Constant const(k=0) annotation (Placement(visible=
+ true, transformation(
+ origin={19.4593,103.9435},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ equation
+ connect(const.y, lim_exc_s12.Efd) annotation (Line(
+ visible=true,
+ origin={43.2488,91.1761},
+ points={{-12.7895,12.7674},{3.2632,12.7674},{3.2632,-12.7674},{6.2631,-12.7674}},
+ color={0,0,127}));
+
+ connect(integrator1.y, lim_exc_s12.Vref) annotation (Line(
+ visible=true,
+ origin={42.3527,72.7755},
+ points={{-15.4777,0.1739},{4.1592,0.1739},{4.1592,-0.17397},{7.1592,-0.17397}},
+ color={0,0,127}));
+
+ connect(lim_exc_s11.Efd, lim_exc_s12.y) annotation (Line(
+ visible=true,
+ origin={28.4241,91.1481},
+ points={{-54.4747,-11.8207},{-58.9866,-12.1987},{-58.9866,31.3162},{
+ 65.692,31.3162},{65.692,-19.1174},{44.0878,-18.7394}},
+ color={0,0,127}));
+ connect(lim_exc_s12.Vt, Vterm) annotation (Line(
+ visible=true,
+ origin={-86.5355,-18.5464},
+ points={{136.0474,84.9551},{119.0414,84.5771},{119.0414,68.9244},{-10.9824,
+ 68.9244},{-10.9824,-35.1262},{-108.1222,-35.1262},{-108.1222,-78.2155},
+ {-143.4645,-78.2155},{-143.4645,-81.4536}},
+ color={0,0,127}));
+ connect(lim_exc_s12.y, Efd) annotation (Line(
+ visible=true,
+ origin={164.128,72.1493},
+ points={{-91.6161,0.2594},{22.872,0.2594},{22.872,-0.2594},{45.872,-0.2594}},
+ color={0,0,127}));
+
+ connect(gain1.y, lim_exc_s11.Vref) annotation (Line(
+ visible=true,
+ origin={-31.2336,73.4238},
+ points={{-9.5491,-0.0964},{2.183,-0.0964},{2.183,0.09643},{5.183,0.09643}},
+ color={0,0,127}));
+
+ connect(lim_exc_s11.y, integrator1.u) annotation (Line(
+ visible=true,
+ origin={0.6436,73.1384},
+ points={{-3.6942,0.189},{0.2314,0.189},{0.2314,-0.189},{3.2314,-0.189}},
+ color={0,0,127}));
+ connect(lim_exc_s11.Vt, Vterm) annotation (Line(
+ visible=true,
+ origin={-127.081,-18.8882},
+ points={{101.0304,86.2156},{91.9292,85.8376},{91.9292,68.8882},{29.1852,
+ 68.8882},{29.1852,-35.5403},{-67.9547,-35.5403},{-67.9547,-78.6296},{
+ -102.919,-78.6296},{-102.919,-81.1118}},
+ color={0,0,127}));
+ connect(Qgen, add1.u1) annotation (Line(
+ visible=true,
+ origin={-180.5,101.186},
+ points={{-49.5,15.186},{15.5,15.186},{15.5,-15.186},{18.5,-15.186}},
+ color={0,0,127}));
+ connect(Qord, limiter2.u) annotation (Line(
+ visible=true,
+ origin={-207.6347,47.8557},
+ points={{-22.3653,0.5669},{6.4551,0.567},{6.4551,-0.567},{9.4551,-0.567}},
+ color={0,0,127}));
+
+ connect(limiter1.y, Ipcmd) annotation (Line(
+ visible=true,
+ origin={42.6532,-80.0},
+ points={{-167.3467,0.0},{167.3468,0.0}},
+ color={0,0,127}));
+ connect(Vterm, division1.u2) annotation (Line(
+ visible=true,
+ origin={-193.0156,-93.0},
+ points={{-36.9844,-7.0},{11.3281,-7.0},{11.3281,7.0},{14.3281,7.0}},
+ color={0,0,127}));
+ connect(add2.u2, Vterm) annotation (Line(
+ visible=true,
+ origin={-162.3359,-38.3305},
+ points={{70.3359,105.3642},{64.818,105.3642},{64.818,-15.7201},{-32.3219,
+ -15.7201},{-32.3219,-58.8094},{-67.6641,-58.8094},{-67.6641,-61.6695}},
+ color={0,0,127}));
+
+ connect(Pord, division1.u1) annotation (Line(
+ visible=true,
+ origin={-193.0156,-68.3185},
+ points={{-36.9844,5.6816},{11.3281,5.6815},{11.3281,-5.6815},{14.3281,-5.6815}},
+ color={0,0,127}));
+
+ connect(add2.y, gain1.u) annotation (Line(
+ visible=true,
+ origin={-65.5871,73.1805},
+ points={{-3.4129,-0.1468},{0.8043,-0.1468},{0.8043,0.1469},{1.8044,0.1469}},
+ color={0,0,127}));
+
+ connect(limIntegrator1.y, add2.u1) annotation (Line(
+ visible=true,
+ origin={-96.4784,79.5168},
+ points={{-7.4353,0.4832},{1.4784,0.4832},{1.4784,-0.4831},{4.4784,-0.4831}},
+ color={0,0,127}));
+
+ connect(add1.y, limIntegrator1.u) annotation (Line(
+ visible=true,
+ origin={-132.9568,80.0},
+ points={{-6.0432,0},{6.0431,0}},
+ color={0,0,127}));
+ connect(limiter2.y, add1.u2) annotation (Line(
+ visible=true,
+ origin={-166.7949,60.6443},
+ points={{-8.3847,-13.3556},{1.7949,-13.3556},{1.7949,13.3557},{4.7949,
+ 13.3557}},
+ color={0,0,127}));
+ connect(division1.y, limiter1.u) annotation (Line(
+ visible=true,
+ origin={-151.6905,-80.0},
+ points={{-3.997,0.0},{3.997,0.0}},
+ color={0,0,127}));
+ annotation (
+ Diagram(coordinateSystem(
+ extent={{-210.0,-148.5},{210.0,148.5}},
+ preserveAspectRatio=true,
+ initialScale=0.1,
+ grid={10,10}), graphics),
+ Icon(coordinateSystem(
+ extent={{-100.0,-100.0},{100.0,100.0}},
+ preserveAspectRatio=true,
+ initialScale=0.1,
+ grid={10,10}), graphics={Rectangle(
+ visible=true,
+ fillColor={255,255,255},
+ fillPattern=FillPattern.Solid,
+ extent={{-100.0,-100.0},{100.0,100.0}}),Text(
+ visible=true,
+ origin={-2.5076,2.901},
+ fillPattern=FillPattern.Solid,
+ extent={{-67.4924,-47.099},{67.4924,47.099}},
+ textString="Electrical Control",
+ fontName="Arial")}),
+ Documentation);
+ end Electrical_Control;
+
+ model lim_exc_s1
+ extends Modelica.Blocks.Interfaces.BlockIcon;
+ parameter Real xiqmin=1;
+ parameter Real xiqmax=1;
+ parameter Real typpe=1;
+ Modelica.Blocks.Interfaces.RealInput Efd "Input: Excitation voltage"
+ annotation (Placement(
+ transformation(
+ extent={{-140.0,40.0},{-100.0,80.0}},
+ rotation=0,
+ origin={0.0,18.0}),
+ visible=true,
+ iconTransformation(
+ origin={0.0,0.0},
+ extent={{-140.0,40.0},{-100.0,80.0}},
+ rotation=0)));
+ Modelica.Blocks.Interfaces.RealInput Vt "Terminal Voltage" annotation (
+ Placement(
+ transformation(
+ extent={{-140.0,-80.0},{-100.0,-40.0}},
+ rotation=0,
+ origin={0.0,-18.0}),
+ visible=true,
+ iconTransformation(
+ origin={0.0,0.0},
+ extent={{-140.0,-80.0},{-100.0,-40.0}},
+ rotation=0)));
+ Modelica.Blocks.Interfaces.RealOutput y
+ "Output: saturated excitation voltage" annotation (Placement(transformation(
+ extent={{100,-10},{120,10}}, rotation=0)));
+ Modelica.Blocks.Interfaces.RealInput Vref "Reference Voltage " annotation (
+ Placement(
+ visible=true,
+ transformation(
+ origin={0.0,-58.0},
+ extent={{-140.0,40.0},{-100.0,80.0}},
+ rotation=0),
+ iconTransformation(
+ origin={0.0,-58.0717},
+ extent={{-140.0,40.0},{-100.0,80.0}},
+ rotation=0)));
+ equation
+ if typpe == 1 then
+ if Efd >= Vt + xiqmax and Vref >= 0 or Efd <= Vt + xiqmin and Vref <= 0 then
+ y = 0;
+ else
+ y = Vref;
+ end if;
+ elseif typpe == 2 then
+ if Vref >= Vt + xiqmax then
+ y = Vt + xiqmax;
+ elseif Vref <= Vt + xiqmin then
+ y = Vt + xiqmin;
+ else
+ y = Vref;
+ end if;
+ else
+ y = 0;
+ end if;
+ annotation (
+ Icon(coordinateSystem(
+ extent={{-100.0,-100.0},{100.0,100.0}},
+ preserveAspectRatio=true,
+ initialScale=0.1,
+ grid={10,10}), graphics={Text(
+ visible=true,
+ origin={-1.349,1.6286},
+ fillPattern=FillPattern.Solid,
+ extent={{-55.1519,-28.3714},{55.1519,28.3714}},
+ textString="lim_exc_s1",
+ fontName="Arial")}),
+ Documentation(info="
+
+Block has two continuous Real input vectors u1 and u2 and one
+continuous Real output vector y.
+All vectors have the same number of elements.
+
+"), Diagram(coordinateSystem(
+ preserveAspectRatio=true,
+ extent={{-100,-100},{100,100}},
+ grid={2,2}), graphics));
+ end lim_exc_s1;
+ annotation (Diagram(coordinateSystem(
+ extent={{-148.5,-105.0},{148.5,105.0}},
+ preserveAspectRatio=true,
+ initialScale=0.1,
+ grid={5,5})), Documentation);
+ end Electrical_Control;
+
+ package Generator
+ model Generator
+ import Modelica.Constants.pi;
+ parameter Real freq=50;
+ parameter Real omega_0=2*pi*freq;
+ parameter Real Kpllp=1;
+ parameter Real ge_x0_0=1;
+ parameter Real ge_x1_0=1;
+ parameter Real ge_x2_0=1;
+ parameter Real GEN_base=1;
+ parameter Real SYS_base=1;
+ parameter Real Lpp=1;
+ Modelica.Blocks.Interfaces.RealInput Efd "Excitation voltage" annotation (
+ Placement(
+ transformation(
+ extent={{-102.0,54.0},{-62.0,94.0}},
+ origin={-86.1542,14.0368},
+ rotation=0),
+ visible=true,
+ iconTransformation(
+ origin={2.0,-130.6017},
+ extent={{-102.0,54.0},{-62.0,94.0}},
+ rotation=0)));
+ Modelica.Blocks.Interfaces.RealInput Ipcmd "Current command" annotation (
+ Placement(
+ transformation(
+ extent={{-102.0,54.0},{-62.0,94.0}},
+ origin={-86.1542,-12.4057},
+ rotation=0),
+ visible=true,
+ iconTransformation(
+ origin={2.0,-22.352},
+ extent={{-102.0,54.0},{-62.0,94.0}},
+ rotation=0)));
+ Modelica.Blocks.Interfaces.RealOutput Vt "Terminal voltage" annotation (
+ Placement(
+ visible=true,
+ transformation(
+ origin={68.0,-29.8146},
+ extent={{102.0,54.0},{62.0,94.0}},
+ rotation=0),
+ iconTransformation(
+ origin={-2.0,0.2537},
+ extent={{102.0,54.0},{62.0,94.0}},
+ rotation=0)));
+ Modelica.Blocks.Interfaces.RealOutput Pgen "Active power" annotation (
+ Placement(
+ visible=true,
+ transformation(
+ origin={68.0,-114.0},
+ extent={{102.0,54.0},{62.0,94.0}},
+ rotation=0),
+ iconTransformation(
+ origin={-2.0,-94.0},
+ extent={{102.0,54.0},{62.0,94.0}},
+ rotation=0)));
+ Modelica.Blocks.Interfaces.RealOutput Qgen "Reactive power" annotation (
+ Placement(
+ visible=true,
+ transformation(
+ origin={68.0,-151.9188},
+ extent={{102.0,54.0},{62.0,94.0}},
+ rotation=0),
+ iconTransformation(
+ origin={-2.0,-134.0},
+ extent={{102.0,54.0},{62.0,94.0}},
+ rotation=0)));
+ OpenIPSL.Interfaces.PwPin p annotation (Placement(
+ visible=true,
+ transformation(
+ origin={-158.1542,-62.9104},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0),
+ iconTransformation(
+ origin={0.0,-110.0},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ Real Anglet;
+ protected
+ Real Vt_re;
+ Real Vt_im;
+ Modelica.Blocks.Continuous.Integrator integrator1(k=omega_0, y_start=ge_x2_0)
+ annotation (Placement(visible=true, transformation(
+ origin={-67.1876,-70.0},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ Modelica.Blocks.Nonlinear.Limiter limiter1(uMax=0.1, uMin=-0.1) annotation (
+ Placement(visible=true, transformation(
+ origin={-97.7647,-70.0},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ Modelica.Blocks.Math.Gain gain1(k=Kpllp/omega_0) annotation (Placement(
+ visible=true, transformation(
+ origin={-125.925,-70.0},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ Modelica.Blocks.Math.Cos cos1 annotation (Placement(visible=true,
+ transformation(
+ origin={-35.4375,-56.5604},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ Modelica.Blocks.Math.Sin sin1 annotation (Placement(visible=true,
+ transformation(
+ origin={-35.4375,-81.75},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ Modelica.Blocks.Math.Product product1 annotation (Placement(visible=true,
+ transformation(
+ origin={-1.5708,-57.7032},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ Modelica.Blocks.Math.Product product2 annotation (Placement(visible=true,
+ transformation(
+ origin={-1.3063,-82.2968},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ Modelica.Blocks.Math.Add add1(k2=-1) annotation (Placement(visible=true,
+ transformation(
+ origin={27.0042,-63.4938},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ Modelica.Blocks.Math.Gain gain2(k=1/Lpp) annotation (Placement(visible=true,
+ transformation(
+ origin={76.305,-30.0},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ Modelica.Blocks.Math.Gain gain3(k=1/Lpp) annotation (Placement(visible=true,
+ transformation(
+ origin={70.0,-3.3186},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ Modelica.Blocks.Continuous.Integrator integrator2(k=1/0.01, y_start=ge_x0_0)
+ annotation (Placement(visible=true, transformation(
+ origin={-87.6272,90.0},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ Modelica.Blocks.Continuous.Integrator integrator3(k=1/0.01, y_start=ge_x1_0)
+ annotation (Placement(visible=true, transformation(
+ origin={-90.2646,56.35},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ Modelica.Blocks.Math.Add add2(k2=-1) annotation (Placement(visible=true,
+ transformation(
+ origin={-120.0,90.0},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ Modelica.Blocks.Math.Add add3(k2=-1) annotation (Placement(visible=true,
+ transformation(
+ origin={-120.3313,55.9354},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ Modelica.Blocks.Math.Gain gain4(k=-1/Lpp) annotation (Placement(visible=true,
+ transformation(
+ origin={-54.097,90.0},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ Modelica.Blocks.Math.Add add4(k2=-1) annotation (Placement(visible=true,
+ transformation(
+ origin={28.575,84.2094},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ Modelica.Blocks.Math.Product product3 annotation (Placement(visible=true,
+ transformation(
+ origin={0.2646,65.4063},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ Modelica.Blocks.Math.Product product4 annotation (Placement(visible=true,
+ transformation(
+ origin={0.0,90.0},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ Modelica.Blocks.Math.Product product5 annotation (Placement(visible=true,
+ transformation(
+ origin={0.0,40.0},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ Modelica.Blocks.Math.Product product6 annotation (Placement(visible=true,
+ transformation(
+ origin={0.2646,15.4063},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ Modelica.Blocks.Math.Add add5 annotation (Placement(visible=true,
+ transformation(
+ origin={28.575,34.2094},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ Modelica.Blocks.Math.Add add6 annotation (Placement(visible=true,
+ transformation(
+ origin={105.9559,-23.9376},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ Modelica.Blocks.Math.Add add7(k2=-1) annotation (Placement(visible=true,
+ transformation(
+ origin={100.0,2.3228},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ equation
+ connect(integrator2.y, gain4.u) annotation (Line(
+ visible=true,
+ origin={-71.3621,90.0},
+ points={{-5.2651,0.0},{5.2651,0.0}},
+ color={0,0,127}));
+ connect(gain4.y, product5.u1) annotation (Line(
+ visible=true,
+ origin={-31.724,68.0},
+ points={{-11.373,22.0},{6.1406,22.0},{6.1406,-22.0},{19.724,-22.0}},
+ color={0,0,127}));
+ connect(gain4.y, product3.u1) annotation (Line(
+ visible=true,
+ origin={-31.7901,80.7032},
+ points={{-11.3069,9.2968},{6.2068,9.2968},{6.2068,-9.2968},{20.0547,-9.2969}},
+ color={0,0,127}));
+
+ connect(add3.u1, Ipcmd) annotation (Line(
+ visible=true,
+ origin={-147.4735,61.7648},
+ points={{15.1422,0.1706},{2.7693,0.1706},{2.7693,-0.1705},{-20.6807,-0.1705}},
+ color={0,0,127}));
+
+ connect(Efd, add2.u1) annotation (Line(
+ visible=true,
+ origin={-142.5385,92.0184},
+ points={{-25.6157,-3.9816},{7.5385,-3.9816},{7.5385,3.9816},{10.5385,
+ 3.9816}},
+ color={0,0,127}));
+ connect(gain2.y, add6.u2) annotation (Line(
+ visible=true,
+ origin={90.7932,-29.9688},
+ points={{-3.4882,-0.0312},{0.1627,-0.0312},{0.1627,0.0312},{3.1627,0.0312}},
+ color={0,0,127}));
+
+ connect(add7.u1, add4.y) annotation (Line(
+ visible=true,
+ origin={62.1454,46.0725},
+ points={{25.8546,-37.7497},{-16.096,-37.676},{-16.096,37.676},{-22.5704,
+ 38.1369}},
+ color={0,0,127}));
+ connect(gain3.y, add7.u2) annotation (Line(
+ visible=true,
+ origin={84.75,-3.4979},
+ points={{-3.75,0.1793},{0.25,0.1793},{0.25,-0.1793},{3.25,-0.1793}},
+ color={0,0,127}));
+ connect(add6.u1, add5.y) annotation (Line(
+ visible=true,
+ origin={44.1804,8.1359},
+ points={{49.7755,-26.0735},{-1.6054,-26.0735},{-1.6054,26.0735},{-4.6054,
+ 26.0735}},
+ color={0,0,127}));
+ connect(integrator3.y, product6.u1) annotation (Line(
+ visible=true,
+ origin={-52.0781,40.0},
+ points={{-27.1865,16.35},{15.3823,17.4718},{15.3823,-17.4718},{40.3427,-18.5937}},
+ color={0,0,127}));
+
+ connect(integrator3.y, product4.u1) annotation (Line(
+ visible=true,
+ origin={-51.7474,76.9688},
+ points={{-27.5172,-20.6188},{15.3161,-20.6188},{15.3161,19.0312},{39.7474,
+ 19.0312}},
+ color={0,0,127}));
+ connect(product3.u2, sin1.y) annotation (Line(
+ visible=true,
+ origin={-15.7932,-12.4948},
+ points={{4.0578,71.9011},{-1.6755,70.5781},{-1.6755,-70.5781},{-8.6443,-69.2552}},
+ color={0,0,127}));
+
+ connect(product6.u2, sin1.y) annotation (Line(
+ visible=true,
+ origin={-15.5286,-35.5782},
+ points={{3.7932,44.9845},{-1.6755,45.5782},{-1.6755,-45.5782},{-8.9089,-46.1718}},
+ color={0,0,127}));
+
+ connect(product1.y, add1.u1) annotation (Line(
+ visible=true,
+ origin={13.1104,-57.5985},
+ points={{-3.6812,-0.1047},{0.8938,-0.1047},{0.8938,0.1047},{1.8938,0.1047}},
+ color={0,0,127}));
+
+ connect(product2.y, add1.u2) annotation (Line(
+ visible=true,
+ origin={13.1766,-75.8953},
+ points={{-3.4829,-6.4015},{0.8276,-6.4015},{0.8276,6.4015},{1.8276,6.4015}},
+ color={0,0,127}));
+
+ connect(cos1.y, product1.u2) annotation (Line(
+ visible=true,
+ origin={-17.7875,-60.1318},
+ points={{-6.65,3.5714},{1.2167,3.5714},{1.2167,-3.5714},{4.2167,-3.5714}},
+ color={0,0,127}));
+
+ connect(sin1.y, product2.u1) annotation (Line(
+ visible=true,
+ origin={-17.5891,-79.0234},
+ points={{-6.8484,-2.7266},{1.2828,-2.7266},{1.2828,2.7266},{4.2828,2.7266}},
+ color={0,0,127}));
+
+ connect(add1.y, gain1.u) annotation (Line(
+ visible=true,
+ origin={-45.4625,-77.6549},
+ points={{83.4667,14.1611},{85.4625,14.1611},{85.4625,-22.3451},{-95.4625,
+ -22.3451},{-95.4625,7.6549},{-92.4625,7.6549}},
+ color={0,0,127}));
+ connect(cos1.y, product4.u2) annotation (Line(
+ visible=true,
+ origin={-23.7531,13.9844},
+ points={{-0.6844,-70.5448},{1.6094,-70.2802},{1.6094,70.2802},{11.7531,
+ 70.0156}},
+ color={0,0,127}));
+ connect(cos1.y, product5.u2) annotation (Line(
+ visible=true,
+ origin={-23.4885,-11.5448},
+ points={{-0.949,-45.0156},{1.6094,-45.0156},{1.6094,45.5448},{11.4885,
+ 45.5448}},
+ color={0,0,127}));
+ connect(product4.y, add4.u1) annotation (Line(
+ visible=true,
+ origin={14.6813,90.1047},
+ points={{-3.6813,-0.1047},{0.8938,-0.1047},{0.8938,0.1047},{1.8937,0.1047}},
+ color={0,0,127}));
+
+ connect(product3.y, add4.u2) annotation (Line(
+ visible=true,
+ origin={14.7474,71.8078},
+ points={{-3.4828,-6.4015},{0.8276,-6.4015},{0.8276,6.4016},{1.8276,6.4016}},
+ color={0,0,127}));
+
+ connect(product5.y, add5.u1) annotation (Line(
+ visible=true,
+ origin={14.6813,40.1047},
+ points={{-3.6813,-0.1047},{0.8938,-0.1047},{0.8938,0.1047},{1.8937,0.1047}},
+ color={0,0,127}));
+
+ connect(product6.y, add5.u2) annotation (Line(
+ visible=true,
+ origin={14.7474,21.8078},
+ points={{-3.4828,-6.4015},{0.8276,-6.4015},{0.8276,6.4016},{1.8276,6.4016}},
+ color={0,0,127}));
+
+ connect(integrator1.y, sin1.u) annotation (Line(
+ visible=true,
+ origin={-51.125,-75.875},
+ points={{-5.0626,5.875},{0.6875,5.875},{0.6875,-5.875},{3.6875,-5.875}},
+ color={0,0,127}));
+ connect(integrator1.y, cos1.u) annotation (Line(
+ visible=true,
+ origin={-51.125,-63.2802},
+ points={{-5.0626,-6.7198},{0.6875,-6.7198},{0.6875,6.7198},{3.6875,6.7198}},
+ color={0,0,127}));
+
+ connect(gain1.y, limiter1.u) annotation (Line(
+ visible=true,
+ origin={-112.3448,-70.0},
+ points={{-2.5802,0.0},{2.5801,0.0}},
+ color={0,0,127}));
+ connect(limiter1.y, integrator1.u) annotation (Line(
+ visible=true,
+ origin={-82.9761,-70.0},
+ points={{-3.7886,0.0},{3.7885,0.0}},
+ color={0,0,127}));
+ connect(integrator3.y, add3.u2) annotation (Line(
+ visible=true,
+ origin={-105.7979,48.7618},
+ points={{26.5333,7.5882},{29.5333,7.5882},{29.5333,-8.7618},{-29.5333,-8.7618},
+ {-29.5333,1.1736},{-26.5334,1.1736}},
+ color={0,0,127}));
+ connect(integrator2.y, add2.u2) annotation (Line(
+ visible=true,
+ origin={-108.1753,82.6179},
+ points={{31.5481,7.3821},{34.5482,7.3821},{34.5482,-10.3866},{-26.4976,-10.3866},
+ {-26.4976,2.3134},{-23.8247,2.3134},{-23.8247,1.3821}},
+ color={0,0,127}));
+ connect(add3.y, integrator3.u) annotation (Line(
+ visible=true,
+ origin={-105.5312,56.1427},
+ points={{-3.8001,-0.2073},{0.2667,-0.2073},{0.2667,0.2073},{3.2666,0.2073}},
+ color={0,0,127}));
+
+ connect(add2.y, integrator2.u) annotation (Line(
+ visible=true,
+ origin={-104.3136,90.0},
+ points={{-4.6864,0.0},{4.6864,0.0}},
+ color={0,0,127}));
+ Vt_re = p.vr;
+ Vt_im = p.vi;
+ add7.y*GEN_base/SYS_base = -p.ir;
+ add6.y*GEN_base/SYS_base = -p.ii;
+ Vt = sqrt(Vt_re^2 + Vt_im^2);
+ Anglet = atan(Vt_im/Vt_re);
+ product1.u1 = Vt_im;
+ product2.u2 = Vt_re;
+ gain2.u = Vt_re;
+ gain3.u = Vt_im;
+ Pgen = Vt_re*add7.y + Vt_im*add6.y;
+ Qgen = Vt_im*add7.y - Vt_re*add6.y;
+ annotation (
+ Diagram(coordinateSystem(
+ extent={{-148.5,-105.0},{148.5,105.0}},
+ preserveAspectRatio=true,
+ initialScale=0.1,
+ grid={10,10}), graphics),
+ Icon(coordinateSystem(
+ extent={{-100.0,-100.0},{100.0,100.0}},
+ preserveAspectRatio=true,
+ initialScale=0.1,
+ grid={10,10}), graphics={Rectangle(
+ visible=true,
+ fillColor={255,255,255},
+ fillPattern=FillPattern.Solid,
+ extent={{-100.0,-100.0},{100.0,100.0}}),Text(
+ visible=true,
+ origin={0.0,-3.1866},
+ fillPattern=FillPattern.Solid,
+ extent={{-64.7389,-33.1866},{64.7389,33.1866}},
+ textString="Generator",
+ fontName="Arial")}),
+ Documentation);
+ end Generator;
+ annotation (Diagram(coordinateSystem(
+ extent={{-148.5,-105.0},{148.5,105.0}},
+ preserveAspectRatio=true,
+ initialScale=0.1,
+ grid={5,5})), Documentation);
+ end Generator;
+
+ model GE_WT
+ import Modelica.Constants.pi;
+ import Modelica.Constants.eps;
+ parameter Real _V0=1.03 "Terminal Voltage from Power Flow";
+ parameter Real _Ang0=0.421202138172605 "Terminal Angle from Power Flow";
+ parameter Real _P0=1.62 "Active Power from Power Flow";
+ parameter Real _Q0=-0.370492231185345 "Reactive Power from Power Flow";
+ parameter Real GEN_base=180 "Base Power from the Electrical Generator";
+ parameter Real WT_base=162 "Base Power from the Turbine";
+ parameter Real SYS_base=100 "Base Power from the power system";
+ parameter Real freq=60 "Steady state Frequency of the power system";
+ parameter Real poles=3 "Number of pole pairs";
+ parameter Real Tp=0.3 "Time Constant Pitch command";
+ parameter Real Kpp=150.0 "Pitch Control gain";
+ parameter Real Kip=25.0 "Gain of integrator of Pitch Control";
+ parameter Real Kpc=3.0 "Pitch Compensation gain";
+ parameter Real Kic=30.0 "Gain of integrator of Pitch Compensation";
+ parameter Real pimax=27.0 "Maximum pitch angle";
+ parameter Real pimin=0.0 "minimum pitch angle";
+ parameter Real pirat=10.0 "maximum variation rate of pitch angle";
+ parameter Real pwmax=1.12 "Maximal power taken from the wind";
+ parameter Real pwmin=0.1 "Minimal power taken from the wind";
+ parameter Real pwrat=0.45
+ "maximum variation rate of power taken from the wind";
+ parameter Real Kptrq=3.0 "Gain Torque Controller";
+ parameter Real Kitrq=0.6 "Gain of integrator of Torque Controller";
+ parameter Real Tpc=0.05 "Time Constant Torque controller";
+ parameter Real KQi=0.1
+ "Gain constant of first PI in DFIG electrical control model";
+ parameter Real KVi=40
+ "Gain constant of second PI in DFIG electrical control model";
+ parameter Real xiqmax=0.4
+ "Up saturation of second PI in DFIG electrical control model";
+ parameter Real xiqmin=-0.5
+ "Down saturation of second PI in DFIG electrical control model";
+ parameter Real Kpllp=30;
+ parameter Real Xpp=0.8;
+ parameter Real qmax=0.312;
+ parameter Real qmin=-0.436;
+ parameter Real nmass=2 "Mono-mass or Two-mass model";
+ parameter Real Hg=0.62 "Inertia 2";
+ parameter Real H=4.33 "Inertia";
+ parameter Real Ktg=1.11 "Gain for 2 mass model";
+ parameter Real Dtg=1.5 "Damping";
+ parameter Real Kl=56.6;
+ Real P "Active Power produced in SYS_base";
+ Real Q "Reactive Power produced in SYS_base";
+ OpenIPSL.Interfaces.PwPin pwPin1 annotation (Placement(
+ visible=true,
+ transformation(
+ origin={-77.9122,32.2584},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0),
+ iconTransformation(
+ origin={-110.0,0.0},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ Modelica.Blocks.Interfaces.RealInput Wind_Speed annotation (Placement(
+ visible=true,
+ transformation(
+ origin={-80.0,60.0},
+ extent={{-20.0,-20.0},{20.0,20.0}},
+ rotation=0),
+ iconTransformation(
+ origin={0.0,77.9903},
+ extent={{-20.0,-20.0},{20.0,20.0}},
+ rotation=-90)));
+ Turbine.Turbine_Model turbine_Model1(
+ eps=Modelica.Constants.eps,
+ GEN_base=GEN_base,
+ Kic=Kic,
+ Kip=Kip,
+ Kitrq=Kitrq,
+ Kpc=Kpc,
+ Kpp=Kpp,
+ Kptrq=Kptrq,
+ pimax=pimax,
+ pimin=pimin,
+ pirat=pirat,
+ pwmax=pwmax,
+ pwmin=pwmin,
+ pwrat=pwrat,
+ Tp=Tp,
+ Tpc=Tpc,
+ wt_x0_0=wt_x0_0,
+ wt_x1_0=wt_x1_0,
+ wt_x2_0=wt_x2_0,
+ wt_x3_0=wt_x3_0,
+ wt_x4_0=wt_x4_0,
+ wt_x5_0=wt_x5_0,
+ wt_x6_0=wt_x6_0,
+ wt_x7_0=wt_x7_0,
+ wt_x8_0=wt_x8_0,
+ wt_x9_0=wt_x9_0,
+ WT_base=WT_base,
+ Dtg=Dtg,
+ H=H,
+ Hg=Hg,
+ KI=Kl,
+ Ktg=Ktg,
+ wndtge_kp=wndtge_kp,
+ wbase=wbase,
+ wndtge_ang0=wndtge_ang0,
+ wndtge_spd0=wndtge_spd0) annotation (Placement(visible=true, transformation(
+ origin={-46.6105,53.4541},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ Electrical_Control.Electrical_Control electrical_Control1(
+ ex_x0_0=ex_x0_0,
+ ex_x1_0=ex_x1_0,
+ KQi=KQi,
+ qmax=qmax,
+ qmin=qmin,
+ KVi=KVi,
+ xiqmax=xiqmax,
+ xiqmin=xiqmin) annotation (Placement(visible=true, transformation(
+ origin={-10.0,57.46},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ Generator.Generator generator1(
+ freq=freq,
+ ge_x0_0=ge_x0_0,
+ ge_x1_0=ge_x1_0,
+ ge_x2_0=ge_x2_0,
+ GEN_base=GEN_base,
+ Kpllp=Kpllp,
+ Lpp=Lpp,
+ SYS_base=SYS_base) annotation (Placement(visible=true, transformation(
+ origin={45.0,60.0},
+ extent={{-10.0,-10.0},{10.0,10.0}},
+ rotation=0)));
+ protected
+ function cp_init
+ input Real lambda;
+ input Real theta;
+ output Real cp;
+ protected
+ Real[5, 1] lambda_vec;
+ Real[5, 1] theta_vec;
+ Real[5, 1] prod;
+ parameter Real[5, 5] coeff=[-0.41909, 0.21808, -0.012406, -0.00013365,
+ 0.000011524; -0.067606, 0.060405, -0.013934, 0.0010683, -0.000023895;
+ 0.015727, -0.010996, 0.0021495, -0.00014855, 0.0000027937; -0.00086018,
+ 0.00057051, -0.00010479, 0.0000059924, -0.000000089194; 0.000014788, -0.0000094839,
+ 0.0000016167, -0.000000071535, 0.00000000049686];
+ algorithm
+ lambda_vec := [1; lambda; lambda^2; lambda^3; lambda^4];
+ theta_vec := [1; theta; theta^2; theta^3; theta^4];
+ prod := coeff*lambda_vec;
+ cp := prod[1, 1]*theta_vec[1, 1] + prod[2, 1]*theta_vec[2, 1] + prod[3, 1]*
+ theta_vec[3, 1] + prod[4, 1]*theta_vec[4, 1] + prod[5, 1]*theta_vec[5, 1];
+ end cp_init;
+
+ function get_Vw
+ input Real pimin;
+ input Real wndtge_kl;
+ input Real wndtge_kp;
+ input Real genbc_k_speed;
+ input Real pmech;
+ output Real lambdaOUT;
+ protected
+ Real cp;
+ Real Vw;
+ Real last_err;
+ Real new_err;
+ Real pwind;
+ Real lambda_sav;
+ Real lambda;
+ Boolean stop;
+ algorithm
+ last_err := 99999.0;
+ lambda := 15 + 0.001;
+ stop := false;
+ while lambda >= 2.001 and not stop loop
+ lambda := lambda - 0.001;
+ cp := cp_init(lambda, pimin);
+ Vw := wndtge_kl*genbc_k_speed/lambda;
+ pwind := wndtge_kp*cp*Vw^3;
+ new_err := pwind - pmech;
+ if abs(new_err) <= 0.01 then
+ lambdaOUT := lambda;
+ stop := true;
+ else
+ if abs(new_err - last_err) < abs(new_err + last_err) or last_err >
+ 90000.0 then
+ last_err := new_err;
+ lambda_sav := lambda;
+ else
+ lambdaOUT := lambda_sav - last_err*(lambda - lambda_sav)/(new_err -
+ last_err);
+ cp := cp_init(lambdaOUT, 0.0);
+ Vw := wndtge_kl*genbc_k_speed/lambdaOUT;
+ stop := true;
+ end if;
+ end if;
+ end while;
+ end get_Vw;
+
+ function get_theta
+ input Real lambda;
+ input Real Vw;
+ input Real wndtge_kl;
+ input Real wndtge_kp;
+ input Real genbc_k_speed;
+ input Real pmech;
+ input Real pimin;
+ input Real pimax;
+ output Real thetaOUT;
+ protected
+ Real Vw1;
+ Real cp;
+ Real last_err;
+ Real new_err;
+ Real pwind;
+ Real theta_sav;
+ Boolean stop;
+ Real theta;
+ algorithm
+ last_err := 99999.0;
+ theta := pimin - 0.005;
+ stop := false;
+ Vw1 := Vw;
+ while theta <= pimax - 0.005 and not stop loop
+ theta := theta + 0.005;
+ cp := cp_init(lambda, theta);
+ pwind := wndtge_kp*cp*Vw1^3;
+ new_err := pwind - pmech;
+ if abs(new_err) <= 0.01 then
+ thetaOUT := theta;
+ stop := true;
+ else
+ if abs(new_err - last_err) < abs(new_err + last_err) or last_err >
+ 90000 then
+ last_err := new_err;
+ theta_sav := theta;
+ else
+ thetaOUT := theta_sav - last_err*(theta - theta_sav)/(new_err -
+ last_err);
+ cp := cp_init(lambda, thetaOUT);
+ Vw1 := wndtge_kl*genbc_k_speed/lambda;
+ stop := true;
+ end if;
+ end if;
+ end while;
+ end get_theta;
+
+ Modelica.Blocks.Sources.Constant const(k=qgen) annotation (Placement(visible=
+ true, transformation(
+ origin={-44.2929,70.7071},
+ extent={{-4.2929,-4.2929},{4.2929,4.2929}},
+ rotation=0)));
+ parameter Real Lpp=Xpp;
+ parameter Real wbase=2*Modelica.Constants.pi*freq/poles;
+ parameter Real pelec=_P0/WT_base*SYS_base;
+ parameter Real pmech=pelec;
+ parameter Real wt_x0_0(fixed=false);
+ parameter Real wt_x1_0(fixed=false);
+ parameter Real wt_x2_0(fixed=false);
+ parameter Real wt_x3_0(fixed=false);
+ parameter Real wt_x4_0(fixed=false);
+ parameter Real wt_x5_0(fixed=false);
+ parameter Real wt_x6_0(fixed=false);
+ parameter Real wt_x7_0(fixed=false);
+ parameter Real wt_x8_0(fixed=false);
+ parameter Real wt_x9_0(fixed=false);
+ parameter Real ex_x0_0(fixed=false);
+ parameter Real ex_x1_0(fixed=false);
+ parameter Real ge_x0_0(fixed=false);
+ parameter Real ge_x1_0(fixed=false);
+ parameter Real ge_x2_0(fixed=false);
+ parameter Real qgen(fixed=false);
+ parameter Real wndtge_ang0(fixed=false);
+ parameter Real wndtge_spd0(fixed=false);
+ parameter Real wndtge_spdwmx(fixed=false);
+ parameter Real wndtge_spdwmn(fixed=false);
+ parameter Real wndtge_kp(fixed=false) "Power coefficient";
+ parameter Real cp(fixed=false);
+ parameter Real theta(fixed=false);
+ parameter Real Vw(fixed=false);
+ parameter Real genbc_k_speed(fixed=false);
+ parameter Real wndtge_spdw1(fixed=false);
+ parameter Real wndtge_wn=0;
+ parameter Real wndtge_m1=0;
+ parameter Real wndtge_q11=0;
+ parameter Real wndtge_q21=0;
+ parameter Real lambda(fixed=false);
+ parameter Real masflg=1;
+ initial algorithm
+ wndtge_spdwmx := 25.0 "Max. wind speed";
+ wndtge_spdwmn := 3.0 "Min. wind speed";
+ wndtge_spdw1 := 14.0;
+ genbc_k_speed := 1.2;
+ wndtge_kp := 0.00159;
+ qgen := _Q0*SYS_base/GEN_base;
+ ge_x0_0 := _V0 + _Q0*SYS_base/GEN_base*Lpp/_V0;
+ ge_x1_0 := _P0*SYS_base/GEN_base/_V0;
+ ge_x2_0 := _Ang0;
+ ex_x0_0 := _V0;
+ ex_x1_0 := ge_x0_0;
+ wndtge_spd0 := if pmech < 0.75 then ((-0.67*pmech) + 1.42)*pmech + 0.51 else
+ genbc_k_speed;
+ theta := pimin;
+ lambda := get_Vw(
+ pimin,
+ Kl,
+ wndtge_kp,
+ genbc_k_speed,
+ pmech);
+ lambda := lambda + 0.01;
+ cp := cp_init(lambda, 0.0);
+ Vw := Kl*genbc_k_speed/lambda;
+ if wndtge_spdw1 > wndtge_spdwmx then
+ wndtge_spdw1 := wndtge_spdwmx;
+ end if;
+ if wndtge_spdw1 < wndtge_spdwmn then
+ wndtge_spdw1 := wndtge_spdwmn;
+ end if;
+ if pmech >= 1.0 and wndtge_spdw1 > Vw then
+ Vw := wndtge_spdw1;
+ lambda := Kl*genbc_k_speed/Vw;
+ theta := get_theta(
+ lambda,
+ Vw,
+ Kl,
+ wndtge_kp,
+ genbc_k_speed,
+ pmech,
+ pimin,
+ pimax);
+ cp := cp_init(lambda, theta);
+ Vw := Kl*genbc_k_speed/lambda;
+ end if;
+ wndtge_kp := pmech/(cp*Vw^3);
+ wt_x0_0 := theta;
+ wt_x1_0 := if Kip == 0 then 0.0 else theta - Kpc*(pelec - 1.0);
+ wt_x4_0 := pelec;
+ wt_x2_0 := if Kitrq == 0 then 0.0 else wt_x4_0/genbc_k_speed;
+ wt_x3_0 := 0.0;
+ wt_x5_0 := genbc_k_speed;
+ wt_x6_0 := 0.0;
+ wt_x7_0 := if masflg == 3 then pmech/genbc_k_speed/(wndtge_wn*wndtge_wn*
+ wndtge_m1)*(wndtge_q11 - wndtge_q21) else 0.0;
+ wt_x8_0 := 0.0;
+ wt_x9_0 := 0.0;
+ wndtge_ang0 := -pmech/(Ktg*genbc_k_speed);
+ equation
+ connect(pwPin1, generator1.p) annotation (Line(
+ visible=true,
+ origin={4.0293,37.8389},
+ points={{-81.9415,-5.5805},{40.9707,-5.5805},{40.9707,11.1611}}));
+ connect(generator1.Pgen, turbine_Model1.Pelec) annotation (Line(
+ visible=true,
+ origin={-0.1428,48.5266},
+ points={{53.1428,9.4734},{60.1428,9.4734},{60.1428,-8.085},{-59.4803,-8.085},
+ {-59.4803,-1.38836},{-54.4677,-1.38836}},
+ color={0,0,127}));
+ connect(Wind_Speed, turbine_Model1.Wind_Speed) annotation (Line(
+ visible=true,
+ origin={-62.4641,60.0491},
+ points={{-17.5359,-0.0491},{4.8411,-0.0491},{4.8411,0.04919},{7.8536,
+ 0.04919}},
+ color={0,0,127}));
+ connect(turbine_Model1.Pord, electrical_Control1.Pord) annotation (Line(
+ visible=true,
+ origin={-25.6589,60.1024},
+ points={{-12.9516,-0.01612},{2.6464,-0.01612},{2.6464,0.0162},{7.6589,
+ 0.0162}},
+ color={0,0,127}));
+ connect(const.y, electrical_Control1.Qord) annotation (Line(
+ visible=true,
+ origin={-25.1902,68.958},
+ points={{-14.3805,1.7491},{7.1902,1.7491},{7.1902,-3.498}},
+ color={0,0,127}));
+ P = generator1.Pgen*GEN_base/SYS_base;
+ Q = generator1.Qgen*GEN_base/SYS_base;
+ connect(electrical_Control1.Ipcmd, generator1.Ipcmd) annotation (Line(
+ visible=true,
+ origin={24.7437,65.082},
+ points={{-26.7437,-0.08283},{7.2437,-0.08283},{7.2437,0.0828},{12.2563,
+ 0.0828}},
+ color={0,0,127}));
+ connect(electrical_Control1.Efd, generator1.Efd) annotation (Line(
+ visible=true,
+ origin={24.7437,56.5275},
+ points={{-26.7437,2.18767},{7.2437,2.18767},{7.2437,-2.18767},{12.2563,-2.18767}},
+ color={0,0,127}));
+
+ connect(generator1.Qgen, electrical_Control1.Qgen) annotation (Line(
+ visible=true,
+ origin={26.605,49.271},
+ points={{26.395,4.729},{31.4075,4.729},{31.4075,-4.8235},{-44.605,-4.8235},
+ {-44.605,0.189}},
+ color={0,0,127}));
+ connect(generator1.Vt, electrical_Control1.Vterm) annotation (Line(
+ visible=true,
+ origin={17.5,65.2993},
+ points={{35.5,2.12607},{40.5125,2.12607},{40.5125,7.7132},{-40.5125,
+ 7.7132},{-40.5125,-9.8393},{-35.5,-9.8393}},
+ color={0,0,127}));
+ annotation (
+ Icon(coordinateSystem(
+ extent={{-100.0,-100.0},{100.0,100.0}},
+ preserveAspectRatio=true,
+ initialScale=0.1,
+ grid={10,10}), graphics={Ellipse(
+ visible=true,
+ fillColor={255,255,255},
+ extent={{-100.0,-100.0},{100.0,100.0}}),Text(
+ visible=true,
+ origin={0.0,16.6286},
+ fillPattern=FillPattern.Solid,
+ extent={{-44.8085,-23.3714},{44.8085,23.3714}},
+ textString="DFIG",
+ fontName="Arial"),Text(
+ visible=true,
+ origin={0.0,-17.9447},
+ fillPattern=FillPattern.Solid,
+ extent={{-25.6048,-15.9106},{25.6048,15.9106}},
+ textString="GE",
+ fontName="Arial")}),
+ Diagram(coordinateSystem(
+ extent={{-148.5,-105.0},{148.5,105.0}},
+ preserveAspectRatio=true,
+ initialScale=0.1,
+ grid={5,5})),
+ Documentation(info="
+
+"));
+ end GE_WT;
+ annotation (Diagram(coordinateSystem(
+ extent={{-148.5,-105.0},{148.5,105.0}},
+ preserveAspectRatio=true,
+ initialScale=0.1,
+ grid={5,5})), Documentation);
+ end Type_3;
+ annotation (Diagram(coordinateSystem(
+ extent={{-148.5,-105.0},{148.5,105.0}},
+ preserveAspectRatio=true,
+ initialScale=0.1,
+ grid={5,5})), Documentation);
+ end GE;
+ annotation (Diagram(coordinateSystem(
+ extent={{-148.5,-105.0},{148.5,105.0}},
+ preserveAspectRatio=true,
+ initialScale=0.1,
+ grid={5,5})), Documentation);
+ end Wind;
+
+ package Events
+ model PwFault "Transitory short-circuit on a node. Shunt impedance connected only during a specified interval of time.
+ Developed by AIA. 2014/12/16"
+ OpenIPSL.Interfaces.PwPin p annotation (Placement(transformation(
+ extent={{-80,-10},{-60,10}}), iconTransformation(extent={{-80,
+ -10},{-60,10}})));
+ parameter Real R "Resistance (pu)";
+ parameter Real X "Reactance (pu)";
+ parameter Real t1 "Start time of the fault (s)";
+ parameter Real t2 "End time of the fault (s)";
+ import Modelica.Constants.eps;
+ protected
+ parameter Boolean ground=abs(R) < eps and abs(X) < eps;
+ equation
+ if time < t1 then
+ p.ii = 0;
+ p.ir = 0;
+ elseif time < t2 and ground then
+ p.vr = 1E-10;
+ // This is to avoid numerical problems
+ p.vi = 0;
+ elseif time < t2 then
+ p.ii = (R*p.vi - X*p.vr)/(X*X + R*R);
+ p.ir = (R*p.vr + X*p.vi)/(R*R + X*X);
+ else
+ p.ii = 0;
+ p.ir = 0;
+ end if;
+ annotation (
+ Icon(coordinateSystem(
+ preserveAspectRatio=true,
+ extent={{-60,-60},{60,60}},
+ initialScale=0.1), graphics={Rectangle(extent={{-60,60},{60,-60}},
+ lineColor={0,0,255}),Rectangle(
+ extent={{-28,26},{12,6}},
+ lineColor={0,0,0},
+ fillColor={95,95,95},
+ fillPattern=FillPattern.Solid),Line(
+ points={{12,16},{26,16},{26,-24}},
+ color={0,0,255},
+ smooth=Smooth.None),Line(
+ points={{14,-24},{38,-24}},
+ color={0,0,255},
+ smooth=Smooth.None),Line(
+ points={{16,-28},{36,-28}},
+ color={0,0,255},
+ smooth=Smooth.None),Line(
+ points={{20,-32},{34,-32}},
+ color={0,0,255},
+ smooth=Smooth.None),Line(
+ points={{22,-36},{30,-36}},
+ color={0,0,255},
+ smooth=Smooth.None),Rectangle(
+ extent={{-38,18},{-28,14}},
+ lineColor={0,0,0},
+ fillColor={0,0,0},
+ fillPattern=FillPattern.Solid),Line(
+ points={{-12,34},{-4,16},{-18,16},{-6,-6}},
+ color={255,0,0},
+ smooth=Smooth.None,
+ thickness=0.5),Line(
+ points={{-12,-4},{-6,-6},{-6,0}},
+ color={255,0,0},
+ smooth=Smooth.None),Text(
+ extent={{-110,110},{110,70}},
+ lineColor={0,0,255},
+ textString="%name")}),
+ Diagram(coordinateSystem(
+ extent={{-60,-60},{60,60}},
+ preserveAspectRatio=true,
+ initialScale=0.1), graphics),
+ Documentation);
+ end PwFault;
+
+ model PwFaultPQ
+ OpenIPSL.Interfaces.PwPin p annotation (Placement(transformation(
+ extent={{-40,-10},{-20,10}}), iconTransformation(extent={{-80,
+ -10},{-60,10}})));
+ parameter Real R "Resistance (pu)";
+ parameter Real X "Reactance (pu)";
+ parameter Real t1 "Start time of the fault (s)";
+ parameter Real t2 "End time of the fault (s)";
+ Real P "Active power supplied to the fault (pu)";
+ Real Q "Reactive power supplied to the fault (pu)";
+ equation
+ p.ir = if time < t1 then 0 else if time < t2 then 1/X*(p.vi - R*p.ii) else 0;
+ p.ii = if time < t1 then 0 else if time < t2 then (R*p.vi - X*p.vr)/(X*X + R*
+ R) else 0;
+ P = p.vr*p.ir + p.vi*p.ii;
+ Q = (-p.vr*p.ii) + p.vi*p.ir;
+ annotation (
+ Icon(coordinateSystem(
+ preserveAspectRatio=true,
+ extent={{-60,-60},{60,60}},
+ initialScale=0.1), graphics={Rectangle(extent={{-60,60},{60,-60}},
+ lineColor={0,0,255}),Rectangle(
+ extent={{-28,26},{12,6}},
+ lineColor={0,0,0},
+ fillColor={95,95,95},
+ fillPattern=FillPattern.Solid),Line(
+ points={{12,16},{26,16},{26,-24}},
+ color={0,0,255},
+ smooth=Smooth.None),Line(
+ points={{14,-24},{38,-24}},
+ color={0,0,255},
+ smooth=Smooth.None),Line(
+ points={{16,-28},{36,-28}},
+ color={0,0,255},
+ smooth=Smooth.None),Line(
+ points={{20,-32},{34,-32}},
+ color={0,0,255},
+ smooth=Smooth.None),Line(
+ points={{22,-36},{30,-36}},
+ color={0,0,255},
+ smooth=Smooth.None),Rectangle(
+ extent={{-38,18},{-28,14}},
+ lineColor={0,0,0},
+ fillColor={0,0,0},
+ fillPattern=FillPattern.Solid),Line(
+ points={{-12,34},{-4,16},{-18,16},{-6,-6}},
+ color={255,0,0},
+ smooth=Smooth.None,
+ thickness=0.5),Line(
+ points={{-12,-4},{-6,-6},{-6,0}},
+ color={255,0,0},
+ smooth=Smooth.None)}),
+ Diagram(coordinateSystem(
+ extent={{-60,-60},{60,60}},
+ preserveAspectRatio=true,
+ initialScale=0.1), graphics),
+ Documentation);
+ end PwFaultPQ;
+
+ model Breaker "Circuit breaker with time or signal control"
+ parameter Boolean enableTrigger=false "=true, if external tigger signal is used"
+ annotation (Evaluate=true, choices(checkBox=true));
+ parameter Modelica.SIunits.Time t_o=Modelica.Constants.inf "Opening time"
+ annotation (Dialog(enable=not enableTrigger));
+ parameter Boolean rc_enabled=false "Enable reclosure" annotation (
+ Evaluate=true,
+ choices(checkBox=true),
+ Dialog(enable=not enableTrigger));
+ parameter Modelica.SIunits.Time t_rc=Modelica.Constants.inf "Reclosing time"
+ annotation (Dialog(enable=not enableTrigger and rc_enabled));
+ Interfaces.PwPin s "Sending pin"
+ annotation (Placement(transformation(extent={{-110,-10},{-90,10}}),iconTransformation(extent={{-110,-10},{-90,10}})));
+ Interfaces.PwPin r "Receiving pin"
+ annotation (Placement(transformation(extent={{90,-10},{110,10}}),iconTransformation(extent={{90,-10},{110,10}})));
+ Modelica.Blocks.Interfaces.BooleanInput Trigger if enableTrigger annotation (Placement(transformation(
+ extent={{-20,-20},{20,20}},
+ rotation=270,
+ origin={0,120})));
+ Complex vs(re=s.vr, im=s.vi);
+ Complex vr(re=r.vr, im=r.vi);
+ Complex is(re=s.ir, im=s.ii);
+ Complex ir(re=r.ir, im=r.ii);
+
+ protected
+ Modelica.Blocks.Interfaces.BooleanOutput Open "Help variable to indicate open circuit breaker" annotation (Placement(transformation(extent={{-4,-10},{16,10}})));
+ equation
+ if not enableTrigger then
+ if not rc_enabled and time >= t_o then
+ Open = true;
+ elseif rc_enabled and time >= t_o and time < t_rc then
+ Open = true;
+ else
+ Open = false;
+ end if;
+ end if;
+
+ if Open then
+ is = Complex(0);
+ ir = Complex(0);
+ else
+ vs = vr;
+ is = -ir;
+ end if;
+
+ connect(Trigger, Open) annotation (Line(points={{0,120},{0,60},{0,0},{6,0}}, color={255,0,255}));
+ annotation (
+ Icon(graphics={Rectangle(
+ extent={{-40,40},{40,-40}},
+ lineThickness=0.5,
+ fillColor={255,255,255},
+ fillPattern=FillPattern.Solid,
+ pattern=LinePattern.None), Ellipse(
+ extent={{-100,100},{100,-100}},
+ lineColor={28,108,200},
+ fillColor={255,255,255},
+ fillPattern=FillPattern.Solid),
+ Line(points={{-90,2},{-44,2}}, color={0,0,255}),
+ Ellipse(extent={{-44,6},{-36,-2}}, lineColor={0,0,255}),
+ Line(points={{-37,4},{40,42}}, color={0,0,255}),
+ Line(points={{40,2},{90,2}}, color={0,0,255}),
+ Line(points={{40,22},{40,2}}, color={0,0,255}),
+ Text(
+ extent={{-150,90},{150,50}},
+ textString="%name",
+ lineColor={0,0,255})}),
+ Documentation(info="
+This is an opening circuit breaker which can either be parametrised with an opening and closing time or controlled via an external trigger. If the external trigger is active (i.e., Trigger=true) then the circuit breaker is open.
+"));
+ end Breaker;
+ annotation (Documentation);
+ end Events;
+
+ package FACTS
+ package PSAT
+ model STATCOM "Static Synchronous Compensator model with equation"
+ OpenIPSL.Interfaces.PwPin p(vr(start=vr0), vi(start=vi0))
+ annotation (Placement(transformation(extent={{100,-10},{120,10}}),
+ iconTransformation(extent={{100,-10},{120,10}})));
+ constant Real pi=Modelica.Constants.pi;
+ parameter Real Sb=100 "System base power (MVA)"
+ annotation (Dialog(group="Power flow data"));
+ parameter Real Vbus=400000 "Bus nominal voltage (V)"
+ annotation (Dialog(group="Power flow data"));
+ parameter Real Sn=100 "Power rating (MVA)"
+ annotation (Dialog(group="Power flow data"));
+ parameter Real Vn=400000 "Voltage rating (V)"
+ annotation (Dialog(group="Power flow data"));
+ parameter Real fn=50 "Frequency rating (Hz)"
+ annotation (Dialog(group="Power flow data"));
+ parameter Real V_0=1 "Voltage magnitude (pu)"
+ annotation (Dialog(group="Power flow data"));
+ parameter Real angle_0=-0.000213067852480 "Voltage angle (deg.)"
+ annotation (Dialog(group="Power flow data"));
+ parameter Real Qg=0.139557595258338 "Reactive power injection(p.u.)"
+ annotation (Dialog(group="Power flow data"));
+ //parameter Real v_ref=1.002791151905167 "Reference voltage of the STATCOM regulator (pu)" annotation(Dialog(group="Power flow data"));
+ parameter Real Kr=50 "Regulator gain (p.u./p.u.)";
+ parameter Real Tr=0.01 "Regulator time constant (s)";
+ parameter Real i_Max=0.7 "Maximum current (pu)";
+ parameter Real i_Min=-0.1 "Minimum current (pu)";
+ parameter Real v_POD=0 "Power oscillation damper signal";
+ Real i_SH "STATCOM current (pu)";
+ Real v(start=V_0) "Bus voltage magnitude (pu)";
+ Real Q(start=Qg) "Injected reactive power (pu)";
+ protected
+ parameter Real Iold=Sn/Vn;
+ parameter Real Inew=Sb/Vbus;
+ parameter Real i_max=i_Max*Iold/Inew;
+ parameter Real i_min=i_Min*Iold/Inew;
+ parameter Real vr0=V_0*cos(angle_0/180*pi) "Initialitation";
+ parameter Real vi0=V_0*sin(angle_0/180*pi) "Initialitation";
+ parameter Real uo=v_ref + v_POD - V_0 "Initialization";
+ parameter Real io=Qg/V_0 "Initialization";
+ parameter Real v_ref=io/Kr + V_0 - v_POD "Initialization";
+ //parameter Real vmin=v_ref + v_POD - i_max/Kr;
+ //parameter Real vmax=v_ref + v_POD - i_min/Kr;
+ //parameter Real umax=i_max/Kr;
+ //parameter Real umin=i_min/Kr;
+ Real u(start=uo);
+ NonElectrical.Continuous.SimpleLagLim simpleLagLim(
+ K=Kr,
+ T=Tr,
+ y_start=io,
+ outMax=i_Max,
+ outMin=i_Min)
+ annotation (Placement(transformation(extent={{-10,-8},{10,12}})));
+ equation
+ v = sqrt(p.vr^2 + p.vi^2);
+ 0 = p.vr*p.ir + p.vi*p.ii;
+ -Q = p.vi*p.ir - p.vr*p.ii;
+ u = v_ref + v_POD - v;
+ Q = i_SH*v;
+ simpleLagLim.u = u;
+ simpleLagLim.y = i_SH;
+ annotation (
+ Icon(coordinateSystem(preserveAspectRatio=true, extent={{-100,-100},{100,
+ 100}}), graphics={Rectangle(extent={{-100,100},{100,-100}},
+ lineColor={0,0,255}),Ellipse(
+ extent={{-2,22},{48,-22}},
+ lineColor={0,0,0},
+ fillColor={215,215,215},
+ fillPattern=FillPattern.Solid),Ellipse(
+ extent={{34,24},{84,-20}},
+ lineColor={0,0,0},
+ fillPattern=FillPattern.Solid,
+ fillColor={215,215,215}),Line(
+ points={{-38,0},{-2,0},{-2,0}},
+ color={0,0,255},
+ smooth=Smooth.None),Line(
+ points={{84,2},{100,2},{100,2}},
+ color={0,0,255},
+ smooth=Smooth.None),Line(
+ points={{-90,6},{-82,6},{-76,6}},
+ color={255,0,0},
+ smooth=Smooth.None,
+ thickness=0.5),Line(
+ points={{-90,-6},{-82,-6},{-76,-6}},
+ color={255,0,0},
+ smooth=Smooth.None,
+ thickness=0.5),Line(
+ points={{-38,0},{-46,0},{-46,0}},
+ color={0,0,255},
+ smooth=Smooth.None),Line(
+ points={{-84,6},{-84,26},{-46,26},{-46,-24},{-82,-24},{-84,-24},{-84,
+ -6},{-84,-6}},
+ color={255,0,0},
+ thickness=0.5,
+ smooth=Smooth.None),Text(
+ extent={{-34,-38},{24,-68}},
+ lineColor={0,0,0},
+ lineThickness=0.5,
+ fillColor={255,0,0},
+ fillPattern=FillPattern.Solid,
+ textString="%Name")}),
+ Diagram(coordinateSystem(preserveAspectRatio=true, extent={{-100,-100},{100,
+ 100}}), graphics),
+ Documentation(info="
+
+Reference |
+PSAT Manual 2.1.8 |
+
+
+Last update |
+15/07/2015 |
+
+
+Author |
+MAA Murad, SmarTS Lab, KTH Royal Institute of Technology |
+
+
+Contact |
+luigiv@kth.se |
+
+
+"));
+ end STATCOM;
+
+ model TCSCAlpha
+ OpenIPSL.Interfaces.PwPin p annotation (Placement(transformation(
+ extent={{-119,-10},{-99,10}})));
+ OpenIPSL.Interfaces.PwPin n annotation (Placement(transformation(
+ extent={{100,-10},{120,10}})));
+ constant Real pi=Modelica.Constants.pi;
+ parameter Real SystemBase=100 "System base power (MVA)"
+ annotation (Dialog(group="Power flow data"));
+ parameter Real Vbus=400000 "Bus nominal voltage (V)"
+ annotation (Dialog(group="Power flow data"));
+ parameter Real Sn=100 "Power rating (MVA)"
+ annotation (Dialog(group="Power flow data"));
+ parameter Real Vn=400000 "Voltage rating (V)"
+ annotation (Dialog(group="Power flow data"));
+ parameter Real f=50 "Frequency rating (Hz)"
+ annotation (Dialog(group="Power flow data"));
+ parameter Real alpha_TCSCO=0.826168365308219 "Value of state variable x1"
+ annotation (Dialog(group="Power flow data"));
+ parameter Real x20=0.826168365308219 "Value of the state varible x2"
+ annotation (Dialog(group="Power flow data"));
+ parameter Real x0i=0.826168365308219 "Value of x0"
+ annotation (Dialog(group="Power flow data"));
+ parameter Real pref=0.080101913348342 "Reference power (pu)"
+ annotation (Dialog(group="Power flow data"));
+ parameter Real Cp=0.10 "Percentage of series compensation (%)";
+ parameter Real Tr=0.5 "Regulator time constant (s)";
+ parameter Real alpha_max=0.85 " Maximum firing angle (rad)";
+ parameter Real alpha_min=0.72 "Minimum firing angle (rad)";
+ parameter Real Kp=5 "Proportional gain of PI controller (p.u./p.u.)";
+ parameter Real Ki=1 "Integral gain of PI controller (p.u./p.u.)";
+ parameter Real Kr=10 "Gain of stabilizing signal (p.u./p.u.)";
+ parameter Real Vs_POD=0 "Power oscillation damper signal";
+ parameter Real x_L=0.2 "Reactance (inductive) (pu)";
+ parameter Real x_C=0.1 "Reactance (capacitive) (pu)";
+ parameter Real XL=0.1 "Line reactance (pu)";
+ parameter Real G=0 "Shunt half conductance (pu)";
+ parameter Real B=0 "Shunt half susceptance (pu)";
+ parameter Real rL=0.01 "Line resistance, (pu)";
+ Real vk "Bus voltage of bus k (pu)";
+ Real vm "Bus voltage of bus m (pu)";
+ Real pkm(start=pref) "Active power flow from bus k to m (pu)";
+ Real b "TCSC series susceptance (pu)";
+ Real alpha_TCSC "TCSC series reactance (pu)";
+ protected
+ Real x0(start=x0i);
+ Real x2(start=x20);
+ protected
+ parameter Real Vb2new=Vbus*Vbus;
+ parameter Real Vb2old=Vn*Vn;
+ parameter Real xL=x_L*(Vb2old*SystemBase)/(Vb2new*Sn)
+ "Reactance(inductive),p.u";
+ parameter Real xC=x_C*(Vb2old*SystemBase)/(Vb2new*Sn)
+ "Reactance(capacitive),p.u";
+ parameter Real X=XL*(Vb2old*SystemBase)/(Vb2new*Sn) "Line Reactance,p.u";
+ parameter Real kx=sqrt(xC/xL);
+ parameter Real XL2=(1 - Cp)*XL;
+ parameter Real y=1/X;
+ initial equation
+ alpha_TCSC = alpha_TCSCO;
+ equation
+ vk = sqrt(p.vr^2 + p.vi^2);
+ vm = sqrt(n.vr^2 + n.vi^2);
+ pkm = p.vr*p.ir + p.vi*p.ii;
+ x0 = -(Kp*(pkm - pref) - x2);
+ if alpha_TCSC > alpha_max and der(alpha_TCSC) > 0 and der(x2) > 0 then
+ der(alpha_TCSC) = 0;
+ der(x2) = -Ki*(pkm - pref);
+ b = pi*(kx^4 - 2*kx^2 + 1)*cos(kx*(pi - alpha_max))/(xC*(pi*kx^4*cos(kx*(pi
+ - alpha_max))) - pi*cos(kx*(pi - alpha_max)) - 2*kx^4*alpha_max*cos(kx*(
+ pi - alpha_max)) + 2*kx^2*alpha_max*cos(kx*(pi - alpha_max)) - kx^4*sin(2
+ *alpha_max)*cos(kx*(pi - alpha_max)) + kx^2*sin(2*alpha_max)*cos(kx*(pi
+ - alpha_max)) - 4*kx^3*cos(alpha_max)^2*sin(kx*(pi - alpha_max)) - 4*kx^
+ 2*cos(alpha_max)*sin(alpha_max)*cos(kx*(pi - alpha_max)));
+ elseif alpha_TCSC < alpha_min and der(alpha_TCSC) < 0 and der(x2) < 0 then
+ der(alpha_TCSC) = 0;
+ der(x2) = -Ki*(pkm - pref);
+ b = pi*(kx^4 - 2*kx^2 + 1)*cos(kx*(pi - alpha_min))/(xC*(pi*kx^4*cos(kx*(pi
+ - alpha_min))) - pi*cos(kx*(pi - alpha_min)) - 2*kx^4*alpha_min*cos(kx*(
+ pi - alpha_min)) + 2*kx^2*alpha_min*cos(kx*(pi - alpha_min)) - kx^4*sin(2
+ *alpha_min)*cos(kx*(pi - alpha_min)) + kx^2*sin(2*alpha_min)*cos(kx*(pi
+ - alpha_min)) - 4*kx^3*cos(alpha_min)^2*sin(kx*(pi - alpha_min)) - 4*kx^
+ 2*cos(alpha_min)*sin(alpha_min)*cos(kx*(pi - alpha_min)));
+ else
+ der(alpha_TCSC) = (Kr*Vs_POD - Kp*(pkm - pref) + x2 - alpha_TCSC)/Tr;
+ der(x2) = -Ki*(pkm - pref);
+ b = pi*(kx^4 - 2*kx^2 + 1)*cos(kx*(pi - alpha_TCSC))/(xC*(pi*kx^4*cos(kx*(
+ pi - alpha_TCSC))) - pi*cos(kx*(pi - alpha_TCSC)) - 2*kx^4*alpha_TCSC*cos(
+ kx*(pi - alpha_TCSC)) + 2*kx^2*alpha_TCSC*cos(kx*(pi - alpha_TCSC)) - kx^
+ 4*sin(2*alpha_TCSC)*cos(kx*(pi - alpha_TCSC)) + kx^2*sin(2*alpha_TCSC)*
+ cos(kx*(pi - alpha_TCSC)) - 4*kx^3*cos(alpha_TCSC)^2*sin(kx*(pi -
+ alpha_TCSC)) - 4*kx^2*cos(alpha_TCSC)*sin(alpha_TCSC)*cos(kx*(pi -
+ alpha_TCSC)));
+ end if;
+ n.ii - B*n.vr - G*n.vi = (y + b)*(p.vr - n.vr);
+ n.ir - G*n.vr + B*n.vi = (y + b)*(n.vi - p.vi);
+ p.ii - B*p.vr - G*p.vi = (y + b)*(n.vr - p.vr);
+ p.ir - G*p.vr + B*p.vi = (y + b)*(p.vi - n.vi);
+ annotation (
+ Diagram(coordinateSystem(preserveAspectRatio=true, extent={{-100,-100},{100,
+ 100}}), graphics),
+ Icon(coordinateSystem(preserveAspectRatio=true, extent={{-100,-100},{100,
+ 100}}), graphics={Rectangle(
+ extent={{-4,46},{-4,34}},
+ lineColor={0,0,255},
+ fillColor={175,175,175},
+ fillPattern=FillPattern.Solid),Rectangle(
+ extent={{6,46},{6,34}},
+ lineColor={0,0,255},
+ fillColor={175,175,175},
+ fillPattern=FillPattern.Solid),Line(
+ points={{-60,40},{-20,40},{-4,40}},
+ color={0,0,255},
+ smooth=Smooth.None),Line(
+ points={{-60,40},{-60,-40},{-22,-40},{-22,-40}},
+ color={0,0,255},
+ smooth=Smooth.None),Polygon(
+ points={{4,-16},{18,-20},{4,-24},{4,-24},{4,-16}},
+ lineColor={0,0,255},
+ smooth=Smooth.None,
+ fillColor={175,175,175},
+ fillPattern=FillPattern.Solid),Polygon(
+ points={{-7,4},{7,0},{-7,-4},{-7,-4},{-7,4}},
+ lineColor={0,0,255},
+ smooth=Smooth.None,
+ fillColor={175,175,175},
+ fillPattern=FillPattern.Solid,
+ origin={9,-58},
+ rotation=180),Line(
+ points={{18,-16},{18,-24}},
+ color={0,0,255},
+ smooth=Smooth.None),Line(
+ points={{2,-54},{2,-62}},
+ color={0,0,255},
+ smooth=Smooth.None),Line(
+ points={{-22,-20},{-22,-58},{-22,-56}},
+ color={0,0,255},
+ smooth=Smooth.None),Line(
+ points={{-22,-58},{2,-58},{2,-58}},
+ color={0,0,255},
+ smooth=Smooth.None),Line(
+ points={{-22,-20},{4,-20},{4,-20}},
+ color={0,0,255},
+ smooth=Smooth.None),Line(
+ points={{18,-20},{40,-20},{40,-58},{16,-58},{16,-58}},
+ color={0,0,255},
+ smooth=Smooth.None),Line(
+ points={{6,40},{60,40},{60,-40},{40,-40}},
+ color={0,0,255},
+ smooth=Smooth.None),Line(
+ points={{-100,0},{-62,0},{-60,0},{-60,0}},
+ color={0,0,255},
+ smooth=Smooth.None),Line(
+ points={{60,0},{100,0},{100,0}},
+ color={0,0,255},
+ smooth=Smooth.None),Text(
+ extent={{-18,68},{16,60}},
+ lineColor={0,0,255},
+ fillColor={175,175,175},
+ fillPattern=FillPattern.Solid,
+ textString="%TCSC_Alpha%")}),
+ Documentation(info="
+
+Reference |
+PSAT Manual 2.1.8 |
+
+
+Last update |
+15/07/2015 |
+
+
+Author |
+MAA Murad, SmarTS Lab, KTH Royal Institute of Technology |
+
+
+Contact |
+luigiv@kth.se |
+
+
+"));
+ end TCSCAlpha;
+
+ model TCSCReactance
+ OpenIPSL.Interfaces.PwPin p annotation (Placement(transformation(
+ extent={{-119,-8},{-99,12}})));
+ OpenIPSL.Interfaces.PwPin n annotation (Placement(transformation(
+ extent={{100,-10},{120,10}})));
+ constant Real pi=Modelica.Constants.pi;
+ parameter Real Sb=100 "System base power (MVA)"
+ annotation (Dialog(group="Power flow data"));
+ parameter Real Vbus=400000 "Bus nominal voltage (V)"
+ annotation (Dialog(group="Power flow data"));
+ parameter Real Sn=100 "Power rating (MVA)"
+ annotation (Dialog(group="Power flow data"));
+ parameter Real Vn=400000 "Voltage rating (V)"
+ annotation (Dialog(group="Power flow data"));
+ parameter Real f=50 "Frequency rating (Hz)"
+ annotation (Dialog(group="Power flow data"));
+ parameter Real x_TCSCO=0.01 "Value of the state varialbe x1"
+ annotation (Dialog(group="Power flow data"));
+ parameter Real x20=0.01 "Value of the state varible x2"
+ annotation (Dialog(group="Power flow data"));
+ parameter Real pref=0.080101913348342 "Reference power (pu)"
+ annotation (Dialog(group="Power flow data"));
+ parameter Real Cp=0.10 "Percentage of series compensation (%)";
+ parameter Real Tr=0.5 "Regulator time constant (s)";
+ parameter Real xTCSCmax=0.05 "Maximum reactance (pu)";
+ parameter Real xTCSCmin=-0.05 "Minimum reactance (pu)";
+ parameter Real Kp=5 "Proportional gain of PI controller (p.u./p.u.)";
+ parameter Real Ki=1 "Integral gain of PI controller (p.u./p.u.)";
+ parameter Real Vs_POD=0 "Power oscillation damper signal";
+ parameter Real x_L=0.1 "Reactance (inductive) (pu)";
+ parameter Real Kr=10 "Gain of the stabilizing signal (p.u./p.u.)";
+ parameter Real G=0 "Shunt half conductance (pu)";
+ parameter Real B=0 "Shunt half susceptance (pu)";
+ parameter Real rL=0.01 "Line resistance (pu)";
+ Real vk "Bus voltage of bus k (pu)";
+ Real vm "Bus voltage of bus m (pu)";
+ Real pkm "Active power flow from bus k to m (pu)";
+ Real b "TCSC series susceptance (pu)";
+ Real x_TCSC "TCSC series reactance (pu)";
+ protected
+ Real x2;
+ Real x0;
+ protected
+ parameter Real Vb2new=Vbus*Vbus;
+ parameter Real Vb2old=Vn*Vn;
+ parameter Real R=rL*(Vb2old*Sb)/(Vb2new*Sn);
+ parameter Real X=x_L*(Vb2old*Sb)/(Vb2new*Sn);
+ parameter Real xTCSC_max=xTCSCmax*(Vb2old*Sb)/(Vb2new*Sn);
+ parameter Real xTCSC_min=xTCSCmin*(Vb2old*Sb)/(Vb2new*Sn);
+ parameter Real y=1/X;
+ initial equation
+ x_TCSC = x_TCSCO;
+ x2 = x20;
+ equation
+ vk = sqrt(p.vr^2 + p.vi^2);
+ vm = sqrt(n.vr^2 + n.vi^2);
+ if x_TCSC > xTCSC_max and der(x_TCSC) > 0 and der(x2) > 0 then
+ der(x_TCSC) = 0;
+ der(x2) = -Ki*(pkm - pref);
+ b = -xTCSC_max/X/(X*(1 - xTCSC_max/X));
+ elseif x_TCSC < xTCSC_min and der(x_TCSC) < 0 and der(x2) < 0 then
+ der(x_TCSC) = 0;
+ der(x2) = -Ki*(pkm - pref);
+ b = -xTCSC_min/X/(X*(1 - xTCSC_min/X));
+ else
+ der(x_TCSC) = (Kr*Vs_POD - Kp*(pkm - pref) + x2 - x_TCSC)/Tr;
+ der(x2) = -Ki*(pkm - pref);
+ b = -x_TCSC/X/(X*(1 - x_TCSC/X));
+ end if;
+ pkm = p.vr*p.ir + p.vi*p.ii;
+ x0 = -(Kp*(pkm - pref) - x2);
+ n.ii - B*n.vr - G*n.vi = (y - b)*(p.vr - n.vr);
+ n.ir - G*n.vr + B*n.vi = (y - b)*(n.vi - p.vi);
+ p.ii - B*p.vr - G*p.vi = (y - b)*(n.vr - p.vr);
+ p.ir - G*p.vr + B*p.vi = (y - b)*(p.vi - n.vi);
+ annotation (
+ Diagram(coordinateSystem(preserveAspectRatio=true, extent={{-100,-100},{100,
+ 100}}), graphics),
+ Icon(coordinateSystem(preserveAspectRatio=true, extent={{-100,-100},{100,
+ 100}}), graphics={Rectangle(
+ extent={{-60,38},{60,-40}},
+ lineColor={0,0,255},
+ fillColor={175,175,175},
+ fillPattern=FillPattern.Solid),Line(
+ points={{-60,0},{-100,0},{-100,0}},
+ color={0,0,255},
+ smooth=Smooth.None),Line(
+ points={{100,0},{60,0},{60,0}},
+ color={0,0,255},
+ smooth=Smooth.None),Line(
+ points={{-58,-60},{-42,-60},{40,58},{60,58},{60,58}},
+ smooth=Smooth.None,
+ color={255,0,0},
+ thickness=0.5),Text(
+ extent={{-24,62},{20,52}},
+ lineColor={0,0,255},
+ fillColor={175,175,175},
+ fillPattern=FillPattern.Solid,
+ textString="%TCSC_XC%")}),
+ Documentation(info="
+
+Reference |
+PSAT Manual 2.1.8 |
+
+
+Last update |
+15/07/2015 |
+
+
+Author |
+MAA Murad, SmarTS Lab, KTH Royal Institute of Technology |
+
+
+Contact |
+luigiv@kth.se |
+
+
+"));
+ end TCSCReactance;
+ annotation (Documentation);
+ end PSAT;
+ annotation (Documentation);
+ end FACTS;
+
+ package Essentials
+ partial model pfComponent
+ "Partial model containing all the Data for entering power flow data"
+ outer OpenIPSL.Electrical.SystemBase SysData
+ "Must add this line in all models";
+ parameter OpenIPSL.Types.VoltageKilo V_b=400
+ "Base voltage of the bus"
+ annotation (Dialog(group="Power flow data"));
+ parameter Modelica.SIunits.PerUnit V_0=1 "Voltage magnitude (pu)"
+ annotation (Dialog(group="Power flow data"));
+ parameter Modelica.SIunits.Conversions.NonSIunits.Angle_deg angle_0=0
+ "Voltage angle" annotation (Dialog(group="Power flow data"));
+ parameter OpenIPSL.Types.ActivePowerMega P_0=1 "Active power"
+ annotation (Dialog(group="Power flow data"));
+ parameter OpenIPSL.Types.ReactivePowerMega Q_0=0 "Reactive power"
+ annotation (Dialog(group="Power flow data"));
+ parameter OpenIPSL.Types.ApparentPowerMega S_b=SysData.S_b
+ "System base power"
+ annotation (Dialog(group="Power flow data", enable=false));
+ parameter Modelica.SIunits.Frequency fn=SysData.fn "System Frequeny"
+ annotation (Dialog(group="Power flow data", enable=false));
+ annotation (Documentation);
+ end pfComponent;
+ annotation (Documentation);
+ end Essentials;
+
+ package Sensors
+ class PwVoltage "Voltage sensor"
+ OpenIPSL.Interfaces.PwPin p annotation (Placement(transformation(
+ extent={{-110,-10},{-90,10}})));
+ Modelica.Blocks.Interfaces.RealOutput vr
+ annotation (Placement(transformation(extent={{100,50},{120,70}})));
+ Modelica.Blocks.Interfaces.RealOutput vi
+ annotation (Placement(transformation(extent={{100,-10},{120,10}})));
+ Modelica.Blocks.Interfaces.RealOutput v
+ annotation (Placement(transformation(extent={{100,-70},{120,-50}})));
+ equation
+ p.ir = 0;
+ p.ii = 0;
+ vr = p.vr;
+ vi = p.vi;
+ v = sqrt(p.vr*p.vr + p.vi*p.vi);
+ annotation (Icon(graphics={Rectangle(extent={{-100,100},{100,-100}},
+ lineColor={0,0,255}),Rectangle(extent={{-80,80},{80,-80}}, lineColor=
+ {0,0,255}),Rectangle(extent={{-60,60},{60,0}}, lineColor={0,0,255}),
+ Text(
+ extent={{-20,-20},{20,-60}},
+ lineColor={0,0,255},
+ textStyle={TextStyle.Bold},
+ textString="V"),Line(
+ points={{0,0},{40,40}},
+ color={0,0,255},
+ smooth=Smooth.None),Text(
+ extent={{80,70},{100,50}},
+ lineColor={0,0,255},
+ textString="vr"),Text(
+ extent={{80,10},{100,-10}},
+ lineColor={0,0,255},
+ textString="vi"),Text(
+ extent={{80,-50},{100,-70}},
+ lineColor={0,0,255},
+ textString="v"),Text(
+ extent={{-100,-100},{100,-160}},
+ lineColor={0,0,255},
+ textString="%name")}), Documentation);
+ end PwVoltage;
+
+ model SoftPMU "model of a PMU measuring phasors on a line"
+ outer OpenIPSL.Electrical.SystemBase SysData;
+ import Modelica.ComplexMath.conj;
+ import Modelica.ComplexMath.real;
+ import Modelica.ComplexMath.imag;
+ import Modelica.ComplexMath.j;
+ import Modelica.Constants.pi;
+ OpenIPSL.Interfaces.PwPin p
+ "the positive direction of the current is from connector p ..."
+ annotation (Placement(transformation(extent={{-80,-10},{-60,10}}),
+ iconTransformation(extent={{-80,-10},{-60,10}})));
+ OpenIPSL.Interfaces.PwPin n "... and to connector n" annotation (
+ Placement(transformation(extent={{60,-10},{80,10}}),
+ iconTransformation(extent={{60,-10},{80,10}})));
+ parameter Real V_0 "initial guess"
+ annotation (Dialog(group="Line parameters"));
+ parameter Real angle_0 "Reactance (pu)"
+ annotation (Dialog(group="Line parameters"));
+ public
+ Real Vr=p.vr "real part of the voltage phasor in pu";
+ Real Vi=p.vi "imaginary part of the voltage phasor in pu";
+ Real Ir=p.ir "real part of the current phasor in pu";
+ Real Ii=p.ii "imaginary part of the current phasor in pu";
+ Real freq "frequency in Hertz";
+ protected
+ parameter Real vr_0=V_0*cos(angle_0*pi/180);
+ parameter Real vi_0=V_0*sin(angle_0*pi/180);
+ public
+ NonElectrical.Nonlinear.FrenquencyCalc fCalc(
+ real_start=vr_0,
+ imag_start=vi_0,
+ start_guess=true)
+ annotation (Placement(transformation(extent={{-10,-10},{10,10}})));
+ equation
+ connect(p, n);
+ fCalc.real_part = p.vr;
+ fCalc.imag_part = p.vi;
+ freq = (fCalc.y*180/pi) + SysData.fn;
+ annotation (Icon(coordinateSystem(
+ preserveAspectRatio=false,
+ initialScale=0.1,
+ extent={{-100,-100},{100,100}}), graphics={Rectangle(
+ extent={{-60,20},{60,-20}},
+ lineColor={0,0,255},
+ fillColor={95,95,95},
+ fillPattern=FillPattern.Solid),Text(
+ extent={{-60,20},{60,-20}},
+ lineColor={255,255,0},
+ textString="%name"),Polygon(
+ points={{-42,34},{28,34},{28,24},{48,36},{28,48},{28,38},{-42,38},{-42,
+ 34}},
+ lineColor={28,108,200},
+ fillPattern=FillPattern.Solid,
+ fillColor={28,108,200}),Ellipse(extent={{-60,62},{62,-60}}, lineColor=
+ {28,108,200}),Text(
+ extent={{-36,-26},{44,-48}},
+ lineColor={28,108,200},
+ fillColor={85,170,255},
+ fillPattern=FillPattern.Solid,
+ textString="PMU")}), Diagram(coordinateSystem(preserveAspectRatio=
+ false, extent={{-100,-100},{100,100}})));
+ end SoftPMU;
+ annotation (Documentation);
+ end Sensors;
+ annotation (Documentation);
+ end Electrical;
+
+ package NonElectrical
+ package Logical
+ model NegCurLogic
+ Modelica.Blocks.Interfaces.RealInput Vd(start=nstartvalue) annotation (
+ Placement(transformation(extent={{-76,10},{-56,30}}), iconTransformation(
+ extent={{-80,10},{-60,30}})));
+ Modelica.Blocks.Interfaces.RealOutput Efd(start=nstartvalue) annotation (
+ Placement(transformation(extent={{62,-24},{82,-4}}), iconTransformation(
+ extent={{60,-10},{80,10}})));
+ Modelica.Blocks.Interfaces.RealInput XadIfd(start=nstartvalue) annotation (
+ Placement(transformation(extent={{-76,-46},{-56,-26}}),
+ iconTransformation(extent={{-80,-30},{-60,-10}})));
+ parameter Real RC_rfd;
+ parameter Real nstartvalue;
+ Real Crowbar_V;
+ equation
+ Efd = if XadIfd < 0 then Crowbar_V else Vd;
+ Crowbar_V = if RC_rfd == 0 then 0 else (-1)*RC_rfd*XadIfd;
+ annotation (
+ Diagram(coordinateSystem(preserveAspectRatio=true, extent={{-60,-40},{60,40}}),
+ graphics),
+ Icon(coordinateSystem(preserveAspectRatio=true, extent={{-60,-40},{60,40}}),
+ graphics={Rectangle(
+ extent={{-60,40},{60,-40}},
+ lineColor={0,0,255},
+ fillColor={255,255,255},
+ fillPattern=FillPattern.Solid),Text(
+ extent={{-52,46},{54,-42}},
+ lineColor={0,0,255},
+ textString="Negative Current Logic")}),
+ Documentation);
+ end NegCurLogic;
+
+ model HV_GATE
+ Modelica.Blocks.Interfaces.RealInput n1 annotation (Placement(transformation(
+ extent={{-86,-2},{-46,38}}), iconTransformation(extent={{-100,10},{-80,
+ 30}})));
+ Modelica.Blocks.Interfaces.RealInput n2 annotation (Placement(transformation(
+ extent={{-86,-50},{-46,-10}}), iconTransformation(extent={{-100,-30},
+ {-80,-10}})));
+ Modelica.Blocks.Interfaces.RealOutput p annotation (Placement(transformation(
+ extent={{-208,54},{-188,74}}), iconTransformation(extent={{60,-10},{
+ 80,10}})));
+ equation
+ p = if n1 < n2 then n2 else n1;
+ annotation (
+ Diagram(coordinateSystem(preserveAspectRatio=true, extent={{-80,-40},{80,40}}),
+ graphics),
+ Icon(coordinateSystem(preserveAspectRatio=true, extent={{-80,-40},{80,40}}),
+ graphics={Polygon(
+ points={{-80,40},{-80,-40},{0,-40},{80,0},{0,40},{-80,40}},
+ lineColor={0,0,255},
+ fillColor={255,255,255},
+ fillPattern=FillPattern.Solid),Text(
+ extent={{-64,14},{-2,-14}},
+ lineColor={0,0,255},
+ textString="HV
+Gate")}), Documentation);
+ end HV_GATE;
+
+ model LV_GATE
+ Modelica.Blocks.Interfaces.RealInput n1 annotation (Placement(transformation(
+ extent={{-86,-2},{-46,38}}), iconTransformation(extent={{-100,10},{-80,
+ 30}})));
+ Modelica.Blocks.Interfaces.RealInput n2 annotation (Placement(transformation(
+ extent={{-86,-50},{-46,-10}}), iconTransformation(extent={{-100,-30},
+ {-80,-10}})));
+ Modelica.Blocks.Interfaces.RealOutput p annotation (Placement(transformation(
+ extent={{-208,58},{-188,78}}), iconTransformation(extent={{60,-10},{
+ 80,10}})));
+ equation
+ p = if n1 > n2 then n2 else n1;
+ annotation (
+ Diagram(coordinateSystem(preserveAspectRatio=true, extent={{-80,-40},{80,40}}),
+ graphics),
+ Icon(coordinateSystem(preserveAspectRatio=true, extent={{-80,-40},{80,40}}),
+ graphics={Polygon(
+ points={{-80,40},{-80,-40},{0,-40},{80,0},{0,40},{-80,40}},
+ lineColor={0,0,255},
+ fillColor={255,255,255},
+ fillPattern=FillPattern.Solid),Text(
+ extent={{-60,20},{0,-20}},
+ lineColor={0,0,255},
+ textString="LV
+Gate")}), Documentation);
+ end LV_GATE;
+
+ model Relay "Relay"
+ Modelica.Blocks.Interfaces.RealInput u1 annotation (Placement(transformation(
+ extent={{-61,20},{-41,40}}), iconTransformation(extent={{-60,20},{-40,
+ 40}})));
+ Modelica.Blocks.Interfaces.RealInput u2 annotation (Placement(transformation(
+ extent={{-61,-10},{-41,10}}), iconTransformation(extent={{-60,-10},{-40,
+ 10}})));
+ Modelica.Blocks.Interfaces.RealInput u3 annotation (Placement(transformation(
+ extent={{-61,-40},{-41,-20}}), iconTransformation(extent={{-60,-40},{
+ -40,-20}})));
+ Modelica.Blocks.Interfaces.RealOutput y annotation (Placement(transformation(
+ extent={{39,-10},{59,10}}), iconTransformation(extent={{40,-8},{56,8}})));
+ equation
+ y = if u1 > 0 then u2 else u3;
+ annotation (
+ Icon(coordinateSystem(extent={{-40,-40},{40,40}}, preserveAspectRatio=true),
+ graphics={Rectangle(
+ extent={{-40,40},{40,-40}},
+ lineColor={0,0,0},
+ fillColor={255,255,255},
+ fillPattern=FillPattern.Solid),Line(
+ points={{-28,0},{-8,0}},
+ color={0,0,255},
+ smooth=Smooth.None),Line(
+ points={{-28,-20},{-8,-20}},
+ color={0,0,255},
+ smooth=Smooth.None),Line(
+ points={{-12,-2},{4,-12},{24,-12}},
+ color={0,0,255},
+ smooth=Smooth.None),Ellipse(extent={{-8,2},{-4,-2}}, lineColor={0,0,
+ 255}),Ellipse(extent={{-8,-18},{-4,-22}}, lineColor={0,0,255}),
+ Rectangle(
+ extent={{-12,36},{12,24}},
+ lineColor={0,0,255},
+ fillColor={255,255,255},
+ fillPattern=FillPattern.Solid),Line(points={{-12,30},{-28,30}}, color=
+ {0,0,255}),Line(points={{28,30},{12,30}}, color={0,0,255}),Line(
+ points={{0,24},{0,-10}},
+ color={0,0,255},
+ pattern=LinePattern.Dash),Text(
+ extent={{-110,58},{110,42}},
+ lineColor={0,0,255},
+ textString="%name")}),
+ Diagram(coordinateSystem(extent={{-40,-40},{40,40}}, preserveAspectRatio=
+ true)),
+ Documentation);
+ end Relay;
+
+ model Relay3 "input dependent output"
+ input Modelica.Blocks.Interfaces.RealInput u1 annotation (Placement(
+ transformation(extent={{-54,-40},{-41,-26}}), iconTransformation(extent=
+ {{-56,-38},{-40,-22}})));
+ input Modelica.Blocks.Interfaces.RealInput u2 annotation (Placement(
+ transformation(extent={{-54,26},{-41,40}}), iconTransformation(extent={
+ {-56,22},{-40,38}})));
+ input Modelica.Blocks.Interfaces.RealInput u3 annotation (Placement(
+ transformation(extent={{-54,4},{-41,18}}), iconTransformation(extent={{
+ -56,2},{-40,18}})));
+ output Modelica.Blocks.Interfaces.RealOutput y annotation (Placement(
+ transformation(extent={{41,-8},{61,12}}), iconTransformation(extent={{
+ 40,-6},{52,6}})));
+ parameter Real Vov=0.5;
+ input Modelica.Blocks.Interfaces.RealInput u4 annotation (Placement(
+ transformation(extent={{-54,-16},{-40,-2}}), iconTransformation(extent=
+ {{-56,-18},{-40,-2}})));
+ equation
+ y = if u1 > Vov then u3 elseif u1 < (-Vov) then u4 else u2;
+ annotation (
+ Icon(coordinateSystem(preserveAspectRatio=false, extent={{-40,-40},{40,40}}),
+ graphics={Rectangle(extent={{-40,40},{40,-40}}, lineColor={0,0,255}),
+ Line(
+ points={{-34,30},{-14,30}},
+ color={0,0,255},
+ smooth=Smooth.None),Line(
+ points={{-34,10},{-14,10}},
+ color={0,0,255},
+ smooth=Smooth.None),Line(
+ points={{-12,14},{14,10},{34,10}},
+ color={0,0,255},
+ smooth=Smooth.None),Ellipse(extent={{-14,32},{-10,28}}, lineColor={0,
+ 0,255}),Ellipse(extent={{-14,12},{-10,8}}, lineColor={0,0,255}),Line(
+ points={{-34,-10},{-14,-10}},
+ color={0,0,255},
+ smooth=Smooth.None),Ellipse(extent={{-14,-8},{-10,-12}}, lineColor={0,
+ 0,255}),Rectangle(
+ extent={{-12,-24},{12,-36}},
+ lineColor={0,0,255},
+ fillColor={255,255,255},
+ fillPattern=FillPattern.Solid),Line(points={{-12,-30},{-28,-30}},
+ color={0,0,255}),Line(points={{28,-30},{12,-30}}, color={0,0,255}),
+ Line(
+ points={{0,12},{0,-24}},
+ color={0,0,255},
+ pattern=LinePattern.Dash)}),
+ Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-40,-40},{40,
+ 40}}), graphics),
+ Documentation);
+ end Relay3;
+
+ model Relay4
+ Modelica.Blocks.Interfaces.RealInput in1 annotation (Placement(transformation(
+ extent={{-5,-6},{5,6}},
+ rotation=-90,
+ origin={-40,46}), iconTransformation(
+ extent={{-5.5,-6},{5.5,6}},
+ rotation=-90,
+ origin={-30,45.5})));
+ Modelica.Blocks.Interfaces.RealInput in2 annotation (Placement(transformation(
+ extent={{-5,-6},{5,6}},
+ rotation=-90,
+ origin={-14,46}), iconTransformation(
+ extent={{-5.5,-6},{5.5,6}},
+ rotation=-90,
+ origin={-12,45.5})));
+ Modelica.Blocks.Interfaces.RealInput in3 annotation (Placement(transformation(
+ extent={{-5,-6},{5,6}},
+ rotation=-90,
+ origin={14,46}), iconTransformation(
+ extent={{-5.5,-6},{5.5,6}},
+ rotation=-90,
+ origin={10,45.5})));
+ Modelica.Blocks.Interfaces.RealInput in4 annotation (Placement(transformation(
+ extent={{-5,-6},{5,6}},
+ rotation=-90,
+ origin={38,46}), iconTransformation(
+ extent={{-5.5,-6},{5.5,6}},
+ rotation=-90,
+ origin={30,45.5})));
+ Modelica.Blocks.Interfaces.RealInput p1
+ annotation (Placement(transformation(extent={{-50,14},{-40,26}})));
+ Modelica.Blocks.Interfaces.RealInput p2
+ annotation (Placement(transformation(extent={{-50,-26},{-40,-14}})));
+ Modelica.Blocks.Interfaces.RealOutput n annotation (Placement(transformation(
+ extent={{41,-6},{51,6}}), iconTransformation(extent={{40,-4},{48,4}})));
+ equation
+ n = if in1 == 0 and in2 == 1 and in3 == 0 and in4 == 0 then p1 else p2;
+ annotation (
+ Diagram(coordinateSystem(preserveAspectRatio=true, extent={{-40,-40},{40,40}}),
+ graphics),
+ Icon(coordinateSystem(preserveAspectRatio=true, extent={{-40,-40},{40,40}}),
+ graphics={Rectangle(
+ extent={{-40,40},{40,-40}},
+ lineColor={0,0,255},
+ fillColor={255,255,255},
+ fillPattern=FillPattern.Solid),Line(
+ points={{-34,20},{-6,20}},
+ color={0,0,255},
+ smooth=Smooth.None,
+ thickness=0.5),Line(
+ points={{-34,-20},{-6,-20}},
+ color={0,0,255},
+ smooth=Smooth.None,
+ thickness=0.5),Ellipse(
+ extent={{-6,23},{0,17}},
+ lineColor={0,0,255},
+ lineThickness=0.5),Ellipse(
+ extent={{-6,-17},{0,-23}},
+ lineColor={0,0,255},
+ lineThickness=0.5),Line(
+ points={{0,16},{12,0},{40,0}},
+ color={0,0,255},
+ smooth=Smooth.None,
+ thickness=0.5)}),
+ Documentation);
+ end Relay4;
+ annotation (Documentation);
+ end Logical;
+
+ package Continuous
+ block IntegratorLimVar
+ "Integrator with a non windup limiter and variable limits"
+ extends Modelica.Blocks.Interfaces.SISO;
+ parameter Real K "Gain" annotation (Evaluate=false);
+ parameter Real y_start "Output start value"
+ annotation (Dialog(group="Initialization"));
+ Modelica.Blocks.Interfaces.RealInput outMax annotation (Placement(
+ transformation(extent={{98,106},{138,146}}), iconTransformation(
+ extent={{-20,-20},{20,20}},
+ rotation=-90,
+ origin={80,140})));
+ Modelica.Blocks.Interfaces.RealInput outMin annotation (Placement(
+ transformation(extent={{-90,-6},{-50,34}}), iconTransformation(
+ extent={{-20,-20},{20,20}},
+ rotation=90,
+ origin={-80,-140})));
+ initial equation
+ y = y_start;
+ equation
+ assert(
+ outMax > outMin,
+ "Upper limit must be greater than lower limit",
+ AssertionLevel.error);
+ if y >= outMax and u > 0 then
+ der(y) = 0;
+ elseif y <= outMin and u < 0 then
+ der(y) = 0;
+ else
+ der(y) = K*u;
+ end if;
+ annotation (
+ Icon(graphics={Line(points={{40,100},{60,140},{100,140}}, color={0,0,0}),
+ Text(
+ extent={{-20,68},{20,8}},
+ lineColor={0,0,255},
+ textString="K"),Line(
+ points={{-80,0},{78,0}},
+ color={0,0,255},
+ smooth=Smooth.Bezier,
+ thickness=0.5),Text(
+ extent={{-70,-20},{70,-80}},
+ lineColor={0,0,255},
+ textString="s"),Line(points={{-100,-140},{-60,-140},{-40,-100}},
+ color={0,0,0})}),
+ Diagram,
+ Documentation);
+ end IntegratorLimVar;
+
+ block DerivativeLag "Derivative lag transfer function block"
+ extends Modelica.Blocks.Interfaces.SISO;
+ parameter Real K "Gain";
+ parameter Modelica.SIunits.Time T "Time constant";
+ parameter Real y_start "Output start value"
+ annotation (Dialog(group="Initialization"));
+ parameter Real x_start=0 "Start value of state variable"
+ annotation (Dialog(group="Initialization"));
+ Modelica.Blocks.Sources.RealExpression par1(y=T)
+ annotation (Placement(transformation(extent={{-80,54},{-60,74}})));
+ Modelica.Blocks.Continuous.TransferFunction TF(
+ initType=Modelica.Blocks.Types.Init.InitialOutput,
+ x_start={x_start},
+ b={K_dummy,0},
+ y_start=y_start,
+ a={T_dummy,1})
+ annotation (Placement(transformation(extent={{-8,-10},{12,10}})));
+ protected
+ parameter Modelica.SIunits.Time T_dummy=if abs(T) < Modelica.Constants.eps
+ then 1000 else T "Lead time constant";
+ parameter Modelica.SIunits.Time K_dummy=if abs(K) < Modelica.Constants.eps
+ then 1 else K "Lead time constant";
+ equation
+ if abs(par1.y) < Modelica.Constants.eps then
+ y = u;
+ else
+ y = TF.y;
+ end if;
+ connect(TF.u, u)
+ annotation (Line(points={{-10,0},{-120,0}}, color={0,0,127}));
+ annotation (
+ Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{
+ 100,100}})),
+ Documentation,
+ Icon(graphics={Text(
+ extent={{-60,82},{60,22}},
+ lineColor={0,0,255},
+ textString="Ks"),Line(
+ points={{-62,0},{66,0}},
+ color={0,0,255},
+ smooth=Smooth.Bezier,
+ thickness=0.5),Text(
+ extent={{-60,-20},{60,-80}},
+ lineColor={0,0,255},
+ textString="1+sT")}));
+ end DerivativeLag;
+
+ block SimpleLag "First order lag transfer function block"
+ extends Modelica.Blocks.Interfaces.SISO(y(start=y_start));
+ Modelica.Blocks.Sources.RealExpression const(y=T)
+ annotation (Placement(transformation(extent={{-58,32},{-38,52}})));
+ Real state(start=y_start);
+ parameter Real K "Gain";
+ parameter Modelica.SIunits.Time T "Lag time constant";
+ parameter Real y_start "Output start value";
+ protected
+ parameter Real T_mod=if T < Modelica.Constants.eps then 1000 else T;
+ initial equation
+ state = y_start;
+ equation
+ T_mod*der(state) = K*u - state;
+ if abs(const.y) <= Modelica.Constants.eps then
+ y = u*K;
+ else
+ y = state;
+ end if;
+ annotation (
+ Icon(coordinateSystem(preserveAspectRatio=true, extent={{-100,-100},{100,
+ 100}}), graphics={Text(
+ extent={{-18,68},{22,8}},
+ lineColor={0,0,255},
+ textString="K"),Text(
+ extent={{-68,-20},{72,-80}},
+ lineColor={0,0,255},
+ textString="1 + Ts"),Line(
+ points={{-78,0},{80,0}},
+ color={0,0,255},
+ smooth=Smooth.Bezier,
+ thickness=0.5)}),
+ Diagram(graphics),
+ Documentation(info="
+
+
+Reference |
+ |
+
+
+Last update |
+2015-11-24 |
+
+
+Author |
+Tin Rabuzin, SmarTS Lab, KTH Royal Institute of Technology |
+
+
+Contact |
+luigiv@kth.se |
+
+
+"));
+ end SimpleLag;
+
+ block SimpleLagLim
+ "First order lag transfer function block with a non windup limiter"
+ extends Modelica.Blocks.Interfaces.SISO(y(start=y_start));
+ Modelica.Blocks.Sources.RealExpression const(y=T)
+ annotation (Placement(transformation(extent={{-58,32},{-38,52}})));
+ Real state;
+ parameter Real K "Gain";
+ parameter Modelica.SIunits.Time T "Lag time constant";
+ parameter Real y_start "Output start value";
+ parameter Real outMax "Maximum output value";
+ parameter Real outMin "Minimum output value";
+ protected
+ parameter Real T_mod=if T < Modelica.Constants.eps then 1000 else T;
+ initial equation
+ state = y_start;
+ equation
+ T_mod*der(state) = K*u - state;
+ when state > outMax and K*u - state < 0 then
+ reinit(state, outMax);
+ elsewhen state < outMin and K*u - state > 0 then
+ reinit(state, outMin);
+ end when;
+ if abs(const.y) <= Modelica.Constants.eps then
+ y = max(min(u*K, outMax), outMin);
+ else
+ y = max(min(state, outMax), outMin);
+ end if;
+ annotation (Documentation(info="
+
+
+Reference |
+IEEE Std. 421.5-2005, Annex E |
+
+
+Last update |
+2015-11-25 |
+
+
+Author |
+Tin Rabuzin,SmarTS Lab, KTH Royal Institute of Technology |
+
+
+Contact |
+luigiv@kth.se |
+
+
+"), Icon(graphics={Line(points={{40,100},{60,140},{100,140}}, color={0,0,
+ 0}),Text(
+ extent={{-20,68},{20,8}},
+ lineColor={0,0,255},
+ textString="K"),Line(
+ points={{-80,0},{78,0}},
+ color={0,0,255},
+ smooth=Smooth.Bezier,
+ thickness=0.5),Text(
+ extent={{-70,-20},{70,-80}},
+ lineColor={0,0,255},
+ textString="1 + Ts"),Line(points={{-100,-140},{-60,-140},{-40,-100}},
+ color={0,0,0})}));
+ end SimpleLagLim;
+
+ block SimpleLagLimVar
+ "First order lag transfer function block with a non windup limiter and variable limits"
+ extends Modelica.Blocks.Interfaces.SISO(y(start=y_start));
+ Modelica.Blocks.Interfaces.RealInput outMax annotation (Placement(
+ transformation(extent={{98,106},{138,146}}), iconTransformation(
+ extent={{-20,-20},{20,20}},
+ rotation=-90,
+ origin={80,140})));
+ Modelica.Blocks.Interfaces.RealInput outMin annotation (Placement(
+ transformation(extent={{-90,-6},{-50,34}}), iconTransformation(
+ extent={{-20,-20},{20,20}},
+ rotation=90,
+ origin={-80,-140})));
+ Modelica.Blocks.Sources.RealExpression const(y=T)
+ annotation (Placement(transformation(extent={{-58,32},{-38,52}})));
+ parameter Real K "Gain";
+ parameter Modelica.SIunits.Time T "Lag time constant";
+ parameter Real y_start "Output start value";
+ parameter Real T_mod=if T < Modelica.Constants.eps then 1000 else T;
+ Real state;
+ initial equation
+ state = y_start;
+ equation
+ T_mod*der(state) = u - y;
+ when abs(y - outMax) <= Modelica.Constants.eps and u - y < 0 or abs(y -
+ outMin) <= Modelica.Constants.eps and u - y > 0 then
+ reinit(state, y);
+ end when;
+ if abs(const.y) <= Modelica.Constants.eps then
+ y = max(min(u*K, outMax), outMin);
+ else
+ y = max(min(state, outMax), outMin);
+ end if;
+ annotation (
+ Documentation(info="
+
+
+Reference |
+IEEE Std. 421.5-2005, Annex E |
+
+
+Last update |
+2015-11-25 |
+
+
+Author |
+Tin Rabuzin,SmarTS Lab, KTH Royal Institute of Technology |
+
+
+Contact |
+luigiv@kth.se |
+
+
+"), Icon(coordinateSystem(preserveAspectRatio=true, extent={{-100,-100},{100,
+ 100}}), graphics={Line(points={{40,100},{60,140},{100,140}}, color=
+ {0,0,0}),Text(
+ extent={{-20,68},{20,8}},
+ lineColor={0,0,255},
+ textString="K"),Line(
+ points={{-80,0},{78,0}},
+ color={0,0,255},
+ smooth=Smooth.Bezier,
+ thickness=0.5),Text(
+ extent={{-70,-20},{70,-80}},
+ lineColor={0,0,255},
+ textString="1 + Ts"),Line(points={{-100,-140},{-60,-140},{-40,-100}},
+ color={0,0,0})}),
+ Diagram);
+ end SimpleLagLimVar;
+
+ block SimpleLagRateLimBlock
+ "First order lag transfer function block with a non windup limiter, rate limits and blocking input"
+ extends Modelica.Blocks.Interfaces.SISO(y(start=y_start));
+ parameter Real K "Gain" annotation (Evaluate=false);
+ parameter Modelica.SIunits.Time T "Lag time constant"
+ annotation (Evaluate=false);
+ parameter Real y_start "Output start value"
+ annotation (Dialog(group="Initialization"));
+ parameter Real outMax "Maximum output value" annotation (Evaluate=false);
+ parameter Real outMin "Minimum output value" annotation (Evaluate=false);
+ parameter Real rmin "Minimum rate limit" annotation (Evaluate=false);
+ parameter Real rmax "Maximum rate limit" annotation (Evaluate=false);
+ Real x;
+ Real rate;
+ Modelica.Blocks.Interfaces.RealInput Block annotation (Placement(
+ transformation(extent={{-140,60},{-100,100}}), iconTransformation(
+ extent={{-140,60},{-100,100}})));
+ initial equation
+ y = y_start;
+ equation
+ assert(
+ T >= 1e-10,
+ "Time constant must be greater than 0",
+ AssertionLevel.error);
+ assert(
+ outMax > outMin,
+ "Upper limit must be greater than lower limit",
+ AssertionLevel.error);
+ rate = if u > outMax then (outMax - x)/T elseif u < outMin then (outMin - x)/
+ T else (u - x)/T;
+ if Block > 0 then
+ der(x) = 0;
+ else
+ der(x) = if rate > rmax then rmax elseif rate < rmin then rmin else rate;
+ end if;
+ y = if x > outMax then outMax elseif x < outMin then outMin else x;
+ annotation (
+ Documentation(info="
+
+
+Reference |
+IEEE Std. 421.5-2005, Annex E |
+
+
+Last update |
+2015-11-25 |
+
+
+Author |
+Tin Rabuzin,SmarTS Lab, KTH Royal Institute of Technology |
+
+
+Contact |
+luigiv@kth.se |
+
+
+
+"), Icon(coordinateSystem(preserveAspectRatio=true, extent={{-100,-100},{100,
+ 100}}), graphics={Line(points={{40,100},{60,140},{100,140}}, color=
+ {0,0,0}),Text(
+ extent={{-20,68},{20,8}},
+ lineColor={0,0,255},
+ textString="K"),Line(
+ points={{-80,0},{78,0}},
+ color={0,0,255},
+ smooth=Smooth.Bezier,
+ thickness=0.5),Text(
+ extent={{-70,-20},{70,-80}},
+ lineColor={0,0,255},
+ textString="1 + Ts"),Line(points={{-100,-140},{-60,-140},{-40,-100}},
+ color={0,0,0}),Ellipse(
+ extent={{-82,86},{-96,72}},
+ lineColor={255,0,0},
+ fillColor={255,0,0},
+ fillPattern=FillPattern.Solid),Rectangle(
+ extent={{-94,80},{-84,78}},
+ lineColor={255,0,0},
+ fillColor={255,255,255},
+ fillPattern=FillPattern.Solid)}),
+ Diagram);
+ end SimpleLagRateLimBlock;
+
+ block SimpleLagRateLimVar
+ "First order lag transfer function block with a non windup limiter, rate limits, variable output limits and blocking input"
+ extends Modelica.Blocks.Interfaces.SISO;
+ parameter Modelica.SIunits.Time T "Lag time constant"
+ annotation (Evaluate=false);
+ parameter Real y_start "Output start value"
+ annotation (Dialog(group="Initialization"));
+ parameter Real rmin "Minimum rate limit";
+ parameter Real rmax "Maximum rate limit";
+ Real rate "Rate";
+ Real x;
+ Modelica.Blocks.Interfaces.RealInput outMin annotation (Placement(
+ transformation(extent={{-90,-6},{-50,34}}), iconTransformation(
+ extent={{-20,-20},{20,20}},
+ rotation=90,
+ origin={-80,-140})));
+ Modelica.Blocks.Interfaces.RealInput outMax annotation (Placement(
+ transformation(extent={{98,106},{138,146}}), iconTransformation(
+ extent={{-20,-20},{20,20}},
+ rotation=-90,
+ origin={80,140})));
+ initial equation
+ x = y_start;
+ y = y_start;
+ equation
+ assert(
+ T >= 1e-10,
+ "Time constant must be greater than 0",
+ AssertionLevel.error);
+ rate = if u > outMax then (outMax - x)/T elseif u < outMin then (outMin - x)/
+ T else (u - x)/T;
+ der(x) = if rate > rmax then rmax elseif rate < rmin then rmin else rate;
+ y = if x > outMax then outMax elseif x < outMin then outMin else x;
+ annotation (
+ Diagram(coordinateSystem(preserveAspectRatio=true, extent={{-100,-100},{100,
+ 100}}), graphics),
+ Icon(coordinateSystem(preserveAspectRatio=true, extent={{-100,-100},{100,
+ 100}}), graphics={Line(points={{-100,-140},{-60,-140},{-40,-100}},
+ color={0,0,0}),Line(points={{40,100},{60,140},{100,140}}, color={0,0,
+ 0}),Text(
+ extent={{-20,68},{20,8}},
+ lineColor={0,0,255},
+ textString="K"),Line(
+ points={{-80,0},{78,0}},
+ color={0,0,255},
+ smooth=Smooth.Bezier,
+ thickness=0.5),Text(
+ extent={{-70,-20},{70,-80}},
+ lineColor={0,0,255},
+ textString="1 + Ts"),Line(points={{-60,100},{-80,140},{-120,140}},
+ color={255,0,0}),Line(points={{120,-140},{80,-140},{60,-100}}, color=
+ {255,0,0})}),
+ Documentation);
+ end SimpleLagRateLimVar;
+
+ block SimpleLead "First order lead transfer function block"
+ extends Modelica.Blocks.Interfaces.SISO;
+ parameter Real K "Gain" annotation (Evaluate=false);
+ parameter Modelica.SIunits.Time T "Lead time constant"
+ annotation (Evaluate=false);
+ parameter Real y_start "Output start value"
+ annotation (Dialog(group="Initialization"));
+ equation
+ assert(
+ T >= 1e-10,
+ "Time constant must be greater than 0",
+ AssertionLevel.error);
+ T*der(u) = K*y - u;
+ annotation (
+ Icon(coordinateSystem(preserveAspectRatio=true, extent={{-100,-100},{100,
+ 100}}), graphics={Text(
+ extent={{-56,68},{58,8}},
+ lineColor={0,0,255},
+ textString="1+Ts"),Line(
+ points={{-76,0},{82,0}},
+ color={0,0,255},
+ smooth=Smooth.Bezier,
+ thickness=0.5),Text(
+ extent={{-66,-20},{74,-80}},
+ lineColor={0,0,255},
+ textString="K")}),
+ Diagram(coordinateSystem(preserveAspectRatio=true, extent={{-100,-100},{100,
+ 100}}), graphics),
+ Documentation);
+ end SimpleLead;
+
+ block LeadLag "Lead-Lag filter"
+ extends Modelica.Blocks.Interfaces.SISO;
+ parameter Real K "Gain";
+ parameter Modelica.SIunits.Time T1 "Lead time constant";
+ parameter Modelica.SIunits.Time T2 "Lag time constant";
+ parameter Real y_start "Output start value"
+ annotation (Dialog(group="Initialization"));
+ parameter Real x_start=0 "Start value of state variable"
+ annotation (Dialog(group="Initialization"));
+ Modelica.Blocks.Sources.RealExpression par1(y=T1)
+ annotation (Placement(transformation(extent={{-80,54},{-60,74}})));
+ Modelica.Blocks.Sources.RealExpression par2(y=T2)
+ annotation (Placement(transformation(extent={{-80,34},{-60,54}})));
+ Modelica.Blocks.Continuous.TransferFunction TF(
+ b={K*T1,K},
+ a={T2_dummy,1},
+ y_start=y_start,
+ initType=Modelica.Blocks.Types.Init.InitialOutput,
+ x_start={x_start})
+ annotation (Placement(transformation(extent={{-8,-10},{12,10}})));
+ protected
+ parameter Modelica.SIunits.Time T2_dummy=if abs(T1 - T2) < Modelica.Constants.eps
+ then 1000 else T2 "Lead time constant";
+ equation
+ if abs(par1.y - par2.y) < Modelica.Constants.eps then
+ y = K*u;
+ else
+ y = TF.y;
+ end if;
+ connect(TF.u, u)
+ annotation (Line(points={{-10,0},{-120,0}}, color={0,0,127}));
+ annotation (
+ Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{
+ 100,100}})),
+ Documentation,
+ Icon(graphics={Text(
+ extent={{-44,82},{76,22}},
+ lineColor={0,0,255},
+ textString="1+sT"),Line(
+ points={{-46,0},{82,0}},
+ color={0,0,255},
+ smooth=Smooth.Bezier,
+ thickness=0.5),Text(
+ extent={{-44,-20},{76,-80}},
+ lineColor={0,0,255},
+ textString="1+sT"),Text(
+ extent={{-100,28},{-40,-32}},
+ lineColor={0,0,255},
+ textString="K"),Text(
+ extent={{62,44},{82,24}},
+ lineColor={0,0,255},
+ textString="1"),Text(
+ extent={{64,-58},{84,-78}},
+ lineColor={0,0,255},
+ textString="2")}));
+ end LeadLag;
+
+ block LeadLagLim "Lead-Lag filter with a non-windup limiter"
+ extends Modelica.Blocks.Interfaces.SISO;
+ parameter Real K "Gain";
+ parameter Modelica.SIunits.Time T1 "Lead time constant";
+ parameter Modelica.SIunits.Time T2 "Lag time constant";
+ parameter Real outMax "Maximum output value";
+ parameter Real outMin "Minimum output value";
+ parameter Real y_start "Output start value"
+ annotation (Dialog(group="Initialization"));
+ Modelica.Blocks.Math.Add add2(k2=1)
+ annotation (Placement(transformation(extent={{-40,-16},{-20,4}})));
+ Modelica.Blocks.Math.Gain gain(k=T1/T2)
+ annotation (Placement(transformation(extent={{0,-16},{20,4}})));
+ Modelica.Blocks.Math.Add add3(k2=-1)
+ annotation (Placement(transformation(extent={{40,-66},{20,-46}})));
+ Modelica.Blocks.Continuous.Integrator integrator(
+ y_start=y_start,
+ k=1/T1,
+ initType=Modelica.Blocks.Types.Init.SteadyState)
+ annotation (Placement(transformation(extent={{0,-66},{-20,-46}})));
+ Modelica.Blocks.Math.Gain gain1(k=T2/T1 - 1)
+ annotation (Placement(transformation(extent={{-50,-66},{-70,-46}})));
+ Modelica.Blocks.Nonlinear.Limiter limiter(uMax=outMax, uMin=outMin)
+ annotation (Placement(transformation(extent={{42,-16},{62,4}})));
+ equation
+ connect(add2.y, gain.u)
+ annotation (Line(points={{-19,-6},{-10.5,-6},{-2,-6}}, color={0,0,127}));
+ connect(integrator.u, add3.y)
+ annotation (Line(points={{2,-56},{19,-56}}, color={0,0,127}));
+ connect(integrator.y, add3.u2) annotation (Line(points={{-21,-56},{-40,-56},{
+ -40,-86},{66,-86},{66,-62},{42,-62}}, color={0,0,127}));
+ connect(gain1.u, add3.u2) annotation (Line(points={{-48,-56},{-40,-56},{-40,-86},
+ {66,-86},{66,-62},{42,-62}}, color={0,0,127}));
+ connect(gain1.y, add2.u2) annotation (Line(points={{-71,-56},{-80,-56},{-80,-12},
+ {-42,-12}}, color={0,0,127}));
+ connect(u, add2.u1)
+ annotation (Line(points={{-120,0},{-42,0}}, color={0,0,127}));
+ connect(gain.y, limiter.u)
+ annotation (Line(points={{21,-6},{30.5,-6},{40,-6}}, color={0,0,127}));
+ connect(limiter.y, y) annotation (Line(points={{63,-6},{82,-6},{82,0},{110,0}},
+ color={0,0,127}));
+ connect(add3.u1, y) annotation (Line(points={{42,-50},{72,-50},{72,-6},{82,-6},
+ {82,0},{110,0}}, color={0,0,127}));
+ annotation (
+ Icon(graphics={Line(points={{38,100},{58,140},{98,140}}, color={0,0,0}),
+ Line(points={{-102,-140},{-62,-140},{-42,-100}}, color={0,0,0}),Text(
+ extent={{-50,82},{70,22}},
+ lineColor={0,0,255},
+ textString="1+sT"),Text(
+ extent={{56,44},{76,24}},
+ lineColor={0,0,255},
+ textString="1"),Line(
+ points={{-52,0},{76,0}},
+ color={0,0,255},
+ smooth=Smooth.Bezier,
+ thickness=0.5),Text(
+ extent={{-50,-20},{70,-80}},
+ lineColor={0,0,255},
+ textString="1+sT"),Text(
+ extent={{58,-58},{78,-78}},
+ lineColor={0,0,255},
+ textString="2"),Text(
+ extent={{-106,28},{-46,-32}},
+ lineColor={0,0,255},
+ textString="K")}),
+ Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{
+ 100,100}})),
+ Documentation(info="
+
+"));
+ end LeadLagLim;
+
+ model RampTrackingFilter "Ramp-tracking filter"
+ extends Modelica.Blocks.Interfaces.SISO;
+ parameter Real T_1;
+ parameter Real T_2;
+ parameter Real M;
+ parameter Real N;
+ parameter Real startValue;
+ LeadLag LL_1(
+ K=1,
+ T1=T_1,
+ T2=T_2,
+ y_start=startValue,
+ x_start=startValue)
+ annotation (Placement(transformation(extent={{-80,70},{-60,90}})));
+ LeadLag LL_2(
+ K=1,
+ T1=T_1,
+ T2=T_2,
+ y_start=startValue,
+ x_start=startValue)
+ annotation (Placement(transformation(extent={{-40,70},{-20,90}})));
+ LeadLag LL_3(
+ K=1,
+ T1=T_1,
+ T2=T_2,
+ y_start=startValue,
+ x_start=startValue)
+ annotation (Placement(transformation(extent={{-80,10},{-60,30}})));
+ LeadLag LL_4(
+ K=1,
+ T1=T_1,
+ T2=T_2,
+ y_start=startValue,
+ x_start=startValue)
+ annotation (Placement(transformation(extent={{-40,10},{-20,30}})));
+ LeadLag LL_5(
+ K=1,
+ T1=T_1,
+ T2=T_2,
+ y_start=startValue,
+ x_start=startValue)
+ annotation (Placement(transformation(extent={{20,70},{40,90}})));
+ LeadLag LL_6(
+ K=1,
+ T1=T_1,
+ T2=T_2,
+ y_start=startValue,
+ x_start=startValue)
+ annotation (Placement(transformation(extent={{60,70},{80,90}})));
+ LeadLag LL_7(
+ K=1,
+ T1=T_1,
+ T2=T_2,
+ y_start=startValue,
+ x_start=startValue)
+ annotation (Placement(transformation(extent={{20,10},{40,30}})));
+ LeadLag LL_8(
+ K=1,
+ T1=T_1,
+ T2=T_2,
+ y_start=startValue,
+ x_start=startValue)
+ annotation (Placement(transformation(extent={{60,10},{80,30}})));
+ SimpleLag SL_1(
+ K=1,
+ T=T_2,
+ y_start=startValue)
+ annotation (Placement(transformation(extent={{-80,-90},{-60,-70}})));
+ SimpleLag SL_2(
+ K=1,
+ T=T_2,
+ y_start=startValue)
+ annotation (Placement(transformation(extent={{-40,-90},{-20,-70}})));
+ SimpleLag SL_3(
+ K=1,
+ T=T_2,
+ y_start=startValue)
+ annotation (Placement(transformation(extent={{-80,-30},{-60,-10}})));
+ SimpleLag SL_4(
+ K=1,
+ T=T_2,
+ y_start=startValue)
+ annotation (Placement(transformation(extent={{-40,-30},{-20,-10}})));
+ SimpleLag SL_5(
+ K=1,
+ T=T_2,
+ y_start=startValue)
+ annotation (Placement(transformation(extent={{20,-90},{40,-70}})));
+ SimpleLag SL_6(
+ K=1,
+ T=T_2,
+ y_start=startValue)
+ annotation (Placement(transformation(extent={{60,-90},{80,-70}})));
+ SimpleLag SL_7(
+ K=1,
+ T=T_2,
+ y_start=startValue)
+ annotation (Placement(transformation(extent={{20,-30},{40,-10}})));
+ SimpleLag SL_8(
+ K=1,
+ T=T_2,
+ y_start=startValue)
+ annotation (Placement(transformation(extent={{60,-30},{80,-10}})));
+ protected
+ Modelica.Blocks.Interfaces.RealInput LL_out
+ annotation (Placement(transformation(extent={{-126,-100},{-86,-60}})));
+ protected
+ Modelica.Blocks.Interfaces.RealInput SL_out
+ annotation (Placement(transformation(extent={{-22,-18},{10,14}})));
+ initial equation
+
+ equation
+ if N == 1 then
+ LL_1.y = LL_out;
+ elseif N == 2 then
+ LL_2.y = LL_out;
+ elseif N == 3 then
+ LL_3.y = LL_out;
+ elseif N == 4 then
+ LL_4.y = LL_out;
+ elseif N == 5 then
+ LL_5.y = LL_out;
+ elseif N == 6 then
+ LL_6.y = LL_out;
+ elseif N == 7 then
+ LL_7.y = LL_out;
+ else
+ LL_8.y = LL_out;
+ end if;
+ if not M == 0 then
+ SL_out = y;
+ else
+ u = y;
+ end if;
+ if M == 1 then
+ SL_1.y = SL_out;
+ elseif M == 2 then
+ SL_2.y = SL_out;
+ elseif M == 3 then
+ SL_3.y = SL_out;
+ elseif M == 4 then
+ SL_4.y = SL_out;
+ elseif M == 5 then
+ SL_5.y = SL_out;
+ elseif M == 6 then
+ SL_6.y = SL_out;
+ elseif M == 7 then
+ SL_7.y = SL_out;
+ else
+ SL_8.y = SL_out;
+ end if;
+ connect(u, LL_1.u) annotation (Line(points={{-120,0},{-92,0},{-92,80},{-82,80}},
+ color={0,0,127}));
+ connect(LL_1.y, LL_2.u)
+ annotation (Line(points={{-59,80},{-42,80}}, color={0,0,127}));
+ connect(LL_2.y, LL_3.u) annotation (Line(points={{-19,80},{-14,80},{-14,60},{
+ -88,60},{-88,20},{-82,20}}, color={0,0,127}));
+ connect(LL_3.y, LL_4.u)
+ annotation (Line(points={{-59,20},{-59,20},{-42,20}}, color={0,0,127}));
+ connect(LL_4.y, LL_5.u) annotation (Line(points={{-19,20},{2,20},{2,80},{18,
+ 80}}, color={0,0,127}));
+ connect(LL_5.y, LL_6.u)
+ annotation (Line(points={{41,80},{58,80}}, color={0,0,127}));
+ connect(LL_6.y, LL_7.u) annotation (Line(points={{81,80},{86,80},{86,58},{10,
+ 58},{10,20},{18,20}}, color={0,0,127}));
+ connect(LL_7.y, LL_8.u)
+ annotation (Line(points={{41,20},{41,20},{58,20}}, color={0,0,127}));
+ connect(LL_out, SL_1.u)
+ annotation (Line(points={{-106,-80},{-82,-80}}, color={0,0,127}));
+ connect(SL_1.y, SL_2.u)
+ annotation (Line(points={{-59,-80},{-59,-80},{-42,-80}}, color={0,0,127}));
+ connect(SL_2.y, SL_3.u) annotation (Line(points={{-19,-80},{-10,-80},{-10,-60},
+ {-88,-60},{-88,-20},{-82,-20}}, color={0,0,127}));
+ connect(SL_3.y, SL_4.u)
+ annotation (Line(points={{-59,-20},{-42,-20}}, color={0,0,127}));
+ connect(SL_4.y, SL_5.u) annotation (Line(points={{-19,-20},{0,-20},{0,-80},{
+ 18,-80}}, color={0,0,127}));
+ connect(SL_5.y, SL_6.u)
+ annotation (Line(points={{41,-80},{56,-80},{58,-80}}, color={0,0,127}));
+ connect(SL_6.y, SL_7.u) annotation (Line(points={{81,-80},{90,-80},{90,-60},{
+ 10,-60},{10,-20},{18,-20}}, color={0,0,127}));
+ connect(SL_7.y, SL_8.u)
+ annotation (Line(points={{41,-20},{41,-20},{58,-20}}, color={0,0,127}));
+ annotation (
+ Icon(coordinateSystem(
+ preserveAspectRatio=true,
+ extent={{-100,-100},{100,100}},
+ initialScale=0.05), graphics={Rectangle(extent={{-100,100},{100,-100}},
+ lineColor={0,0,0}),Text(
+ extent={{-58,40},{40,-4}},
+ lineColor={0,0,255},
+ textString="1+sT"),Text(
+ extent={{-64,20},{56,-58}},
+ lineColor={0,0,255},
+ textString="(1+sT )"),Text(
+ extent={{22,28},{44,-4}},
+ lineColor={0,0,255},
+ textString="1"),Text(
+ extent={{24,-10},{46,-42}},
+ lineColor={0,0,255},
+ textString="2"),Text(
+ extent={{54,2},{66,-16}},
+ lineColor={0,0,255},
+ textString="M"),Line(
+ points={{-60,40},{-74,40},{-74,-40},{-60,-40}},
+ color={0,0,255},
+ thickness=1),Line(
+ points={{60,40},{76,40},{76,-40},{60,-40}},
+ color={0,0,255},
+ thickness=1),Text(
+ extent={{76,48},{94,28}},
+ lineColor={0,0,255},
+ textString="N"),Line(
+ points={{-68,0},{70,0}},
+ color={0,0,255},
+ thickness=1)}),
+ Documentation(info="
+
+Reference |
+Ramp-tracking filter up to M*N <=8 |
+
+
+Last update |
+2015-08-03 |
+
+
+Author |
+Tin Rabuzin, SmarTS Lab, KTH Royal Institute of Technology |
+
+
+Contact |
+luigiv@kth.se |
+
+
+"));
+ end RampTrackingFilter;
+ annotation (Documentation(info="
+
+All of the transfer functions found in this package are also available in the Modelica Standard Library (MSL). However, some of the models require the time constants of the functions in this package to be set to zero. This is not supported by MSL and, thus, this is supported by functions in this package.
+
+"));
+ end Continuous;
+
+ package Nonlinear
+ model FEX "FEX=f(IN)"
+ Modelica.Blocks.Interfaces.RealInput u annotation (Placement(transformation(
+ extent={{-70,-10},{-50,10}}), iconTransformation(extent={{-110,-10},{
+ -90,10}})));
+ Modelica.Blocks.Interfaces.RealOutput y annotation (Placement(transformation(
+ extent={{58,-10},{78,10}}), iconTransformation(extent={{100,-10},{120,
+ 10}})));
+ equation
+ if u <= 0 then
+ y = 1;
+ elseif u > 0 and u <= 0.433 then
+ y = 1 - 0.577*u;
+ elseif u > 0.433 and u < 0.75 then
+ y = sqrt(0.75 - u^2);
+ elseif u >= 0.75 and u <= 1 then
+ y = 1.732*(1 - u);
+ else
+ y = 0;
+ end if;
+ annotation (
+ Diagram(coordinateSystem(preserveAspectRatio=true, extent={{-100,-100},{100,
+ 100}}), graphics),
+ Icon(coordinateSystem(preserveAspectRatio=true, extent={{-100,-100},{100,
+ 100}}), graphics={Rectangle(
+ extent={{-100,100},{100,-100}},
+ lineColor={0,0,255},
+ fillColor={255,255,255},
+ fillPattern=FillPattern.Solid),Text(
+ extent={{-62,28},{64,-30}},
+ lineColor={0,0,255},
+ textString="FEX=f(IN)")}),
+ Documentation);
+ end FEX;
+
+ model SaturationBlockTan
+ "Block 1 in the OEL to decide the input signal of MIN Gate"
+ parameter Real r "Exiciter parameter";
+ parameter Real f "Exiciter parameter";
+ Modelica.Blocks.Interfaces.RealInput p1 annotation (Placement(transformation(
+ extent={{-86,-10},{-66,10}}), iconTransformation(extent={{-80,-10},{-60,
+ 10}})));
+ Modelica.Blocks.Interfaces.RealOutput n1 annotation (Placement(transformation(
+ extent={{46,-10},{66,10}}), iconTransformation(extent={{60,-6},{72,6}})));
+ equation
+ if p1 <= (-0.1) then
+ n1 = -1;
+ elseif p1 > (-0.1) and p1 < 0 then
+ n1 = 0;
+ else
+ n1 = tan(r)*p1 + f;
+ end if;
+ annotation (
+ Diagram(coordinateSystem(preserveAspectRatio=true, extent={{-60,-60},{60,60}}),
+ graphics),
+ Icon(coordinateSystem(preserveAspectRatio=true, extent={{-60,-60},{60,60}}),
+ graphics={Rectangle(
+ extent={{-60,60},{60,-60}},
+ lineColor={0,0,255},
+ fillColor={255,255,255},
+ fillPattern=FillPattern.Solid),Line(
+ points={{-42,0},{36,0},{38,0},{40,0}},
+ color={0,0,255},
+ thickness=0.5,
+ smooth=Smooth.None,
+ arrow={Arrow.None,Arrow.Open}),Line(
+ points={{0,-30},{0,36}},
+ color={0,0,255},
+ thickness=0.5,
+ smooth=Smooth.None,
+ arrow={Arrow.None,Arrow.Open}),Line(
+ points={{0,12},{34,12}},
+ color={0,0,255},
+ smooth=Smooth.None),Text(
+ extent={{22,22},{38,12}},
+ lineColor={0,0,0},
+ fillColor={0,0,255},
+ fillPattern=FillPattern.Solid,
+ textStyle={TextStyle.Italic},
+ textString="r"),Text(
+ extent={{-12,16},{4,6}},
+ lineColor={0,0,0},
+ fillColor={0,0,255},
+ fillPattern=FillPattern.Solid,
+ textString="f",
+ textStyle={TextStyle.Italic}),Text(
+ extent={{-2,0},{12,-8}},
+ lineColor={0,0,0},
+ fillColor={0,0,255},
+ fillPattern=FillPattern.Solid,
+ textString="0"),Text(
+ extent={{-26,8},{-12,0}},
+ lineColor={0,0,0},
+ fillColor={0,0,255},
+ fillPattern=FillPattern.Solid,
+ textString="-0.1"),Line(
+ points={{-20,-20},{-2,-20},{0,-20}},
+ color={0,0,255},
+ pattern=LinePattern.Dot,
+ smooth=Smooth.None),Text(
+ extent={{-2,-16},{12,-24}},
+ lineColor={0,0,0},
+ fillColor={0,0,255},
+ fillPattern=FillPattern.Solid,
+ textString="-1"),Line(
+ points={{-34,-20},{-20,-20},{-20,0},{0,0},{0,12},{32,22}},
+ color={0,0,0},
+ thickness=0.5,
+ smooth=Smooth.None)}),
+ Documentation(info="
+"));
+ end SaturationBlockTan;
+
+ model FrenquencyCalc
+ "frequency calculation of a rotating phasor, if the phasor is w.r.t a rotating coordinate system then it is the frequency difference to that system."
+ parameter Boolean start_guess=false;
+ protected
+ parameter Modelica.Blocks.Types.Init init_type=if start_guess == true then
+ Modelica.Blocks.Types.Init.InitialState else Modelica.Blocks.Types.Init.NoInit;
+ public
+ parameter Real real_start=1;
+ parameter Real imag_start=0;
+ public
+ Modelica.Blocks.Interfaces.RealInput real_part
+ annotation (Placement(transformation(extent={{-120,44},{-80,84}})));
+ Modelica.Blocks.Interfaces.RealOutput y "O/P is in rad/sec" annotation (
+ Placement(transformation(extent={{94,-8},{114,12}}), iconTransformation(
+ extent={{94,-8},{114,12}})));
+ Modelica.Blocks.Continuous.Derivative derOfReal(
+ initType=init_type,
+ x_start=real_start,
+ y_start=0)
+ annotation (Placement(transformation(extent={{-58,34},{-38,54}})));
+ Modelica.Blocks.Math.Product product
+ annotation (Placement(transformation(extent={{-18,16},{4,36}})));
+ Modelica.Blocks.Math.Add add(k2=-1)
+ annotation (Placement(transformation(extent={{26,6},{46,26}})));
+ Modelica.Blocks.Math.Division division
+ annotation (Placement(transformation(extent={{58,-22},{78,-2}})));
+ Modelica.Blocks.Interfaces.RealInput imag_part
+ annotation (Placement(transformation(extent={{-120,-92},{-80,-52}})));
+ Modelica.Blocks.Math.Product product1
+ annotation (Placement(transformation(extent={{-16,-16},{6,4}})));
+ Modelica.Blocks.Math.Product product2
+ annotation (Placement(transformation(extent={{-22,-90},{0,-70}})));
+ Modelica.Blocks.Math.Product product3
+ annotation (Placement(transformation(extent={{-14,-54},{8,-34}})));
+ Modelica.Blocks.Math.Add add1
+ annotation (Placement(transformation(extent={{26,-66},{46,-46}})));
+ Modelica.Blocks.Continuous.Derivative derOfImag(
+ initType=init_type,
+ x_start=imag_start,
+ y_start=0)
+ annotation (Placement(transformation(extent={{-54,-26},{-34,-6}})));
+ equation
+ connect(add.y, division.u1) annotation (Line(points={{47,16},{52,16},{52,-6},
+ {56,-6}}, color={0,0,127}));
+ connect(add1.y, division.u2) annotation (Line(points={{47,-56},{52,-56},{52,-18},
+ {56,-18}}, color={0,0,127}));
+ connect(division.y, y) annotation (Line(points={{79,-12},{86,-12},{86,2},{104,
+ 2}}, color={0,0,127}));
+ connect(product.y, add.u1) annotation (Line(points={{5.1,26},{16,26},{16,22},
+ {24,22}}, color={0,0,127}));
+ connect(product1.y, add.u2) annotation (Line(points={{7.1,-6},{16,-6},{16,10},
+ {24,10}}, color={0,0,127}));
+ connect(product3.y, add1.u1) annotation (Line(points={{9.1,-44},{17.55,-44},{
+ 17.55,-50},{24,-50}}, color={0,0,127}));
+ connect(product2.y, add1.u2) annotation (Line(points={{1.1,-80},{1.1,-80},{24,
+ -80},{24,-62}}, color={0,0,127}));
+ connect(real_part, derOfReal.u) annotation (Line(points={{-100,64},{-84,64},{
+ -70,64},{-70,44},{-60,44}}, color={0,0,127}));
+ connect(derOfReal.y, product.u1) annotation (Line(points={{-37,44},{-30,44},{
+ -30,32},{-20.2,32}}, color={0,0,127}));
+ connect(product.u2, imag_part) annotation (Line(points={{-20.2,20},{-44,20},{
+ -44,22},{-64,22},{-64,-72},{-100,-72}}, color={0,0,127}));
+ connect(product2.u1, imag_part) annotation (Line(points={{-24.2,-74},{-46,-74},
+ {-46,-72},{-100,-72}}, color={0,0,127}));
+ connect(product2.u2, imag_part) annotation (Line(points={{-24.2,-86},{-38,-86},
+ {-38,-88},{-46,-88},{-46,-72},{-100,-72}}, color={0,0,127}));
+ connect(derOfImag.y, product1.u2) annotation (Line(points={{-33,-16},{-26,-16},
+ {-26,-12},{-18.2,-12}}, color={0,0,127}));
+ connect(product3.u1, derOfReal.u) annotation (Line(points={{-16.2,-38},{-70,-38},
+ {-70,44},{-60,44}}, color={0,0,127}));
+ connect(product1.u1, derOfReal.u) annotation (Line(points={{-18.2,0},{-36,0},
+ {-36,6},{-70,6},{-70,44},{-60,44}}, color={0,0,127}));
+ connect(derOfImag.u, imag_part) annotation (Line(points={{-56,-16},{-64,-16},
+ {-64,-72},{-100,-72}}, color={0,0,127}));
+ connect(product3.u2, derOfReal.u) annotation (Line(points={{-16.2,-50},{-34,-50},
+ {-34,-38},{-70,-38},{-70,44},{-60,44}}, color={0,0,127}));
+ annotation (Icon(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},
+ {100,100}}), graphics={Rectangle(
+ extent={{-100,100},{100,-100}},
+ lineColor={28,108,200},
+ fillColor={85,170,255},
+ fillPattern=FillPattern.Solid),Text(
+ extent={{-80,88},{-14,62}},
+ lineColor={28,108,200},
+ fillColor={28,108,200},
+ fillPattern=FillPattern.Solid,
+ textString="real part"),Text(
+ extent={{-82,-44},{-16,-70}},
+ lineColor={28,108,200},
+ fillColor={28,108,200},
+ fillPattern=FillPattern.Solid,
+ textString="imag part"),Text(
+ extent={{32,4},{110,-20}},
+ lineColor={28,108,200},
+ fillColor={28,108,200},
+ fillPattern=FillPattern.Solid,
+ textString="freq.
+")}), Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{
+ 100,100}})));
+ end FrenquencyCalc;
+
+ block CeilingBlock
+ "Implements the ceiling function primarily found inside AVRs."
+ extends Modelica.Blocks.Interfaces.SISO;
+ parameter Real Ae=0 "First ceiling coefficient";
+ parameter Real Be=1 "Second ceiling coefficient";
+
+ equation
+ y = (Ae*Modelica.Math.exp(Be*abs(u)))*u;
+
+ annotation (Icon(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},
+ {100,100}}), graphics={Text(
+ extent={{-78,42},{72,-30}},
+ lineColor={28,108,200},
+ textString="y=Ae*u*exp(Be|u|)")}));
+ end CeilingBlock;
+ annotation (Documentation);
+ end Nonlinear;
+
+ package Functions
+ function SE "Scaled Quadratic Saturation Function (PTI PSS/E) "
+ extends Modelica.Icons.Function;
+ input Real u "Unsaturated Input";
+ input Real SE1;
+ input Real SE2;
+ input Real E1;
+ input Real E2;
+ output Real sys "Saturated Output";
+ protected
+ parameter Real a=if SE2 <> 0 then sqrt(SE1*E1/(SE2*E2)) else 0;
+ parameter Real A=E2 - (E1 - E2)/(a - 1);
+ parameter Real B=if abs(E1 - E2) < Modelica.Constants.eps then 0 else SE2*E2*
+ (a - 1)^2/(E1 - E2)^2;
+ algorithm
+ if SE1 == 0.0 or u <= 0.0 then
+ sys := 0.0;
+ else
+ if u <= A then
+ sys := 0.0;
+ else
+ sys := B*(u - A)^2/u;
+ end if;
+ end if;
+ annotation (Documentation(info="
+"));
+ end SE;
+
+ function SE_exp "Exponential Saturation Function (PTI PSS/E) "
+ extends Modelica.Icons.Function;
+ input Real u "Unsaturated Input";
+ input Real S_EE_1 "Saturation factor at point E_1";
+ input Real S_EE_2 "Saturation factor at point E_2";
+ input Real E_1 "First saturation point";
+ input Real E_2 "Second saturation point";
+ output Real sys "Saturated Output";
+ protected
+ parameter Real X=log(S_EE_2/S_EE_1)/log(E_2);
+ algorithm
+ sys := S_EE_1*u^X;
+ annotation (Documentation);
+ end SE_exp;
+
+ block ImSE "Block for Saturation function of Exc "
+ input Modelica.Blocks.Interfaces.RealInput VE_IN "Unsaturated Input"
+ annotation (Placement(transformation(extent={{-120,-20},{-110,-10}}),
+ iconTransformation(extent={{-120,-10},{-100,10}})));
+ output Modelica.Blocks.Interfaces.RealOutput VE_OUT "Saturated Output"
+ annotation (Placement(transformation(extent={{100,-2},{110,8}}),
+ iconTransformation(extent={{100,-6},{112,6}})));
+ parameter Real SE1 "Saturation at E1";
+ parameter Real SE2 "Saturation at E2";
+ parameter Real E1;
+ parameter Real E2;
+ equation
+ VE_OUT = OpenIPSL.NonElectrical.Functions.SE(
+ VE_IN,
+ SE1,
+ SE2,
+ E1,
+ E2);
+ annotation (
+ Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,-60},{100,
+ 60}}), graphics),
+ Icon(coordinateSystem(preserveAspectRatio=false, extent={{-100,-60},{100,60}}),
+ graphics={Ellipse(
+ extent={{-100,60},{100,-60}},
+ lineColor={0,0,255},
+ fillColor={255,255,255},
+ fillPattern=FillPattern.Solid),Text(
+ extent={{-88,40},{82,-40}},
+ lineColor={0,0,255},
+ textString="SE(Efd)")}),
+ Documentation);
+ end ImSE;
+
+ model ImSE_exp "Block for Saturation function of Exc "
+ Modelica.Blocks.Interfaces.RealInput VE_IN "Unsaturated Input" annotation (
+ Placement(transformation(extent={{-140,-20},{-130,-10}}),
+ iconTransformation(extent={{-120,-10},{-100,10}})));
+ Modelica.Blocks.Interfaces.RealOutput VE_OUT "Saturated Output" annotation (
+ Placement(transformation(extent={{100,-2},{110,8}}), iconTransformation(
+ extent={{100,-6},{112,6}})));
+ parameter Real SE1 "Saturation at E1";
+ parameter Real SE2 "Saturation at E2";
+ parameter Real E1;
+ parameter Real E2;
+ equation
+ VE_OUT = OpenIPSL.NonElectrical.Functions.SE_exp(
+ VE_IN,
+ SE1,
+ SE2,
+ E1,
+ E2);
+ annotation (
+ Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,-60},{100,
+ 60}}), graphics),
+ Icon(coordinateSystem(preserveAspectRatio=false, extent={{-100,-60},{100,60}}),
+ graphics={Ellipse(
+ extent={{-100,60},{100,-60}},
+ lineColor={0,0,255},
+ fillColor={255,255,255},
+ fillPattern=FillPattern.Solid),Text(
+ extent={{-88,38},{82,-42}},
+ lineColor={0,0,255},
+ textString="SE(Efd)")}),
+ Documentation);
+ end ImSE_exp;
+
+ function displayPower
+ "A function to generate a nice string of a power variable with unit attached."
+ extends Modelica.Icons.Function;
+ input Real pwrVar "Variabe to be converted into a string";
+ input String unitStr "Unit string to be appended";
+ output String pwrDsp "Resultant display string";
+ algorithm
+ pwrDsp := String(abs(pwrVar), format=".1f") + unitStr;
+ annotation (Documentation);
+ end displayPower;
+ annotation (Documentation);
+ end Functions;
+ annotation (Documentation);
+ end NonElectrical;
+
+ package Interfaces "Package for interface models used in this library. "
+ extends Modelica.Icons.InterfacesPackage;
+
+ connector PwPin
+ "Connector for electrical blocks treating voltage and current as complex variables"
+ Real vr "Real part of the voltage";
+ Real vi "Imaginary part of the voltage";
+ flow Real ir "Real part of the current";
+ flow Real ii "Imaginary part of the current";
+ annotation (
+ Icon(graphics={Rectangle(
+ extent={{-100,100},{100,-100}},
+ lineColor={0,0,255},
+ fillColor={0,0,255},
+ fillPattern=FillPattern.Solid)}),
+ Diagram(graphics={Text(
+ extent={{-100,160},{100,120}},
+ lineColor={0,0,255},
+ textString="%name"),Rectangle(
+ extent={{-100,100},{100,-100}},
+ lineColor={0,0,255},
+ fillColor={0,0,255},
+ fillPattern=FillPattern.Solid)}),
+ Documentation);
+ end PwPin;
+
+ partial model Generator "Interface for a generator which provides the PwPin"
+ extends OpenIPSL.Electrical.Essentials.pfComponent;
+ parameter Boolean displayPF=false "Display power flow results:" annotation (
+ Dialog(
+ group="Visualisation",
+ __Dymola_compact=true,
+ __Dymola_descriptionLabel=true), choices(checkBox=true));
+ OpenIPSL.Interfaces.PwPin pwPin annotation (Placement(transformation(
+ extent={{100,-10},{120,10}}), iconTransformation(extent={{100,-10},
+ {120,10}})));
+ OpenIPSL.Types.ActivePowerMega P "Active power";
+ OpenIPSL.Types.ReactivePowerMega Q "Reactive power";
+ equation
+ -P = (pwPin.vr*pwPin.ir + pwPin.vi*pwPin.ii)*S_b "Active power";
+ -Q = (pwPin.vi*pwPin.ir - pwPin.vr*pwPin.ii)*S_b "Reactive power";
+ annotation (Icon(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},
+ {100,100}}), graphics={Ellipse(
+ extent={{-100,100},{100,-100}},
+ lineColor={0,0,0},
+ fillColor={215,215,215},
+ fillPattern=FillPattern.Solid),Line(
+ points={{20,-20},{50,-40},{80,0}},
+ color={0,0,0},
+ thickness=0.5),Text(
+ extent={{-40,20},{40,-20}},
+ lineColor={0,0,0},
+ textString="%name"),Text(
+ visible=displayPF,
+ extent={{-80,160},{80,80}},
+ lineColor={255,0,0},
+ textString=DynamicSelect("0.0 MW",
+ OpenIPSL.NonElectrical.Functions.displayPower(P, " MW"))),Polygon(
+ visible=displayPF,
+ points=DynamicSelect({{-20,80},{-20,60},{20,70},{-20,80}}, if P >= 0
+ then {{-20,80},{-20,60},{20,70},{-20,80}} else {{20,80},{20,60},{-20,
+ 70},{20,80}}),
+ lineColor={255,0,0},
+ fillColor={255,0,0},
+ fillPattern=FillPattern.Solid),Text(
+ visible=displayPF,
+ extent={{-80,-80},{80,-160}},
+ lineColor={0,255,0},
+ textString=DynamicSelect("0.0 Mvar",
+ OpenIPSL.NonElectrical.Functions.displayPower(Q, " Mvar"))),Polygon(
+ visible=displayPF,
+ points=DynamicSelect({{-20,-80},{-20,-60},{20,-70},{-20,-80}}, if Q
+ >= 0 then {{-20,-80},{-20,-60},{20,-70},{-20,-80}} else {{20,-80},
+ {20,-60},{-20,-70},{20,-80}}),
+ lineColor={0,255,0},
+ fillColor={0,255,0},
+ fillPattern=FillPattern.Solid),Line(
+ points={{-20,20},{-50,40},{-80,0}},
+ color={0,0,0},
+ thickness=0.5)}), Documentation);
+ end Generator;
+ annotation (Documentation);
+ end Interfaces;
+
+ package Types "Collection of special types used in OpenIPSL"
+ extends Modelica.Icons.TypesPackage;
+
+ type ActivePowerMega = Real (final quantity="Power", final unit="MW")
+ annotation (Documentation);
+ type ApparentPowerMega = Real (final quantity="Power", final unit="MVA")
+ annotation (Documentation);
+ type ReactivePowerMega = Real (final quantity="Power", final unit="Mvar")
+ annotation (Documentation);
+ type VoltageKilo = Real (final quantity="ElectricPotential", final unit="kV")
+ annotation (Documentation);
+ annotation (Documentation);
+ end Types;
+ annotation (
+ Protection(access = Access.packageDuplicate),
+ conversion(
+ from(version={"0.8","0.8.1","1.0.0","1.5.0"}, script="modelica://OpenIPSL/Resources/Scripts/ConvertOpenIPSL_from_1.5.0_to_2.0.0.mos")),
+ Icon(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{100,100}}),
+ graphics={Bitmap(extent={{-100,-100},{100,100}}, fileName=
+ "modelica://OpenIPSL/Resources/Images/OpenIPSL_Logo.png")}));
+ end OpenIPSL;
+ annotation (
+ uses(Modelica(version = "3.2.3"), OpenIPSL(version = "2.0.0-dev"), Modelica2018US_IslandedOperationControl(version = "1"), Complex(version = "3.2.3")));
+end IslandedOperationControl;
diff --git a/Modelling_Of_An_Islanded_Operation_Controller_For_Power_Systems_Study_By_Mr_Biswarup_Mukherjee_And_Prof._Luigi_Vanfretti/project_files/Modeling_of_an_islanded_operation_controller_for_power_systems_study.pdf b/Modelling_Of_An_Islanded_Operation_Controller_For_Power_Systems_Study_By_Mr_Biswarup_Mukherjee_And_Prof._Luigi_Vanfretti/project_files/Modeling_of_an_islanded_operation_controller_for_power_systems_study.pdf
new file mode 100644
index 0000000..1474590
Binary files /dev/null and b/Modelling_Of_An_Islanded_Operation_Controller_For_Power_Systems_Study_By_Mr_Biswarup_Mukherjee_And_Prof._Luigi_Vanfretti/project_files/Modeling_of_an_islanded_operation_controller_for_power_systems_study.pdf differ
diff --git a/Modelling_Of_Fault_Analysis_Of_6-Bus_System_By_Mr_Mohd_Ayaz/Modeling_of_fault_analysis_of_6_bus_system.pdf b/Modelling_Of_Fault_Analysis_Of_6-Bus_System_By_Mr_Mohd_Ayaz/Modeling_of_fault_analysis_of_6_bus_system.pdf
new file mode 100644
index 0000000..ca3588c
Binary files /dev/null and b/Modelling_Of_Fault_Analysis_Of_6-Bus_System_By_Mr_Mohd_Ayaz/Modeling_of_fault_analysis_of_6_bus_system.pdf differ
diff --git a/Modelling_Of_Fault_Analysis_Of_6-Bus_System_By_Mr_Mohd_Ayaz/README.txt b/Modelling_Of_Fault_Analysis_Of_6-Bus_System_By_Mr_Mohd_Ayaz/README.txt
new file mode 100644
index 0000000..d7297bd
--- /dev/null
+++ b/Modelling_Of_Fault_Analysis_Of_6-Bus_System_By_Mr_Mohd_Ayaz/README.txt
@@ -0,0 +1,8 @@
+About the Power System Simulation
+
+Title Of The Power System Simulation Project: Modeling of Fault Analysis of 6-bus System
+Proposar Name: Mr Mohd Ayaz
+University: Kamla Nehru Institute Of Technology Sultanpur
+
+
+OM PSSP Project By FOSSEE, IIT Bombay
diff --git a/Modelling_Of_Fault_Analysis_Of_6-Bus_System_By_Mr_Mohd_Ayaz/project_files/Modeling_of_Fault_Analysis_of_six_Bus_System.pdf b/Modelling_Of_Fault_Analysis_Of_6-Bus_System_By_Mr_Mohd_Ayaz/project_files/Modeling_of_Fault_Analysis_of_six_Bus_System.pdf
new file mode 100644
index 0000000..0df591f
Binary files /dev/null and b/Modelling_Of_Fault_Analysis_Of_6-Bus_System_By_Mr_Mohd_Ayaz/project_files/Modeling_of_Fault_Analysis_of_six_Bus_System.pdf differ
diff --git a/Modelling_Of_Fault_Analysis_Of_6-Bus_System_By_Mr_Mohd_Ayaz/project_files/Modeling_of_fault_analysis_of_6_bus_system.zip b/Modelling_Of_Fault_Analysis_Of_6-Bus_System_By_Mr_Mohd_Ayaz/project_files/Modeling_of_fault_analysis_of_6_bus_system.zip
new file mode 100644
index 0000000..6325f4f
Binary files /dev/null and b/Modelling_Of_Fault_Analysis_Of_6-Bus_System_By_Mr_Mohd_Ayaz/project_files/Modeling_of_fault_analysis_of_6_bus_system.zip differ
diff --git a/Modelling_Of_Ieee_62_Bus_System_Using_Modelica_And_Openipsl_By_Mr_Syed_Yasser_Ali/Modelling_of_IEEE_62_bus_system_using_Modelica_and_OpenIPSL.pdf b/Modelling_Of_Ieee_62_Bus_System_Using_Modelica_And_Openipsl_By_Mr_Syed_Yasser_Ali/Modelling_of_IEEE_62_bus_system_using_Modelica_and_OpenIPSL.pdf
deleted file mode 100644
index 3608539..0000000
Binary files a/Modelling_Of_Ieee_62_Bus_System_Using_Modelica_And_Openipsl_By_Mr_Syed_Yasser_Ali/Modelling_of_IEEE_62_bus_system_using_Modelica_and_OpenIPSL.pdf and /dev/null differ
diff --git a/Modelling_Of_Ieee_62_Bus_System_Using_Modelica_And_Openipsl_By_Mr_Syed_Yasser_Ali/README.txt b/Modelling_Of_Ieee_62_Bus_System_Using_Modelica_And_Openipsl_By_Mr_Syed_Yasser_Ali/README.txt
deleted file mode 100644
index 6ac4e34..0000000
--- a/Modelling_Of_Ieee_62_Bus_System_Using_Modelica_And_Openipsl_By_Mr_Syed_Yasser_Ali/README.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-About the Power System Simulation
-
-Title Of The Power System Simulation Project: Modelling of IEEE 62 bus system using Modelica and OpenIPSL
-Proposar Name: Mr Syed Yasser Ali
-University: Jawaharlal Nehru Technological University Hyderabad
-
-
-OM PSSP Project By FOSSEE, IIT Bombay
diff --git a/Modelling_Of_Ieee_62_Bus_System_Using_Modelica_And_Openipsl_By_Mr_Syed_Yasser_Ali/project_files/Modelling_of_IEEE_62_bus_system_using_Modelica_and_OpenIPSL.pdf b/Modelling_Of_Ieee_62_Bus_System_Using_Modelica_And_Openipsl_By_Mr_Syed_Yasser_Ali/project_files/Modelling_of_IEEE_62_bus_system_using_Modelica_and_OpenIPSL.pdf
deleted file mode 100644
index 3608539..0000000
Binary files a/Modelling_Of_Ieee_62_Bus_System_Using_Modelica_And_Openipsl_By_Mr_Syed_Yasser_Ali/project_files/Modelling_of_IEEE_62_bus_system_using_Modelica_and_OpenIPSL.pdf and /dev/null differ
diff --git a/Modelling_Of_Ieee_62_Bus_System_Using_Modelica_And_Openipsl_By_Mr_Syed_Yasser_Ali/project_files/Modelling_of_IEEE_62_bus_system_using_Modelica_and_OpenIPSL.zip b/Modelling_Of_Ieee_62_Bus_System_Using_Modelica_And_Openipsl_By_Mr_Syed_Yasser_Ali/project_files/Modelling_of_IEEE_62_bus_system_using_Modelica_and_OpenIPSL.zip
deleted file mode 100644
index 833be6e..0000000
Binary files a/Modelling_Of_Ieee_62_Bus_System_Using_Modelica_And_Openipsl_By_Mr_Syed_Yasser_Ali/project_files/Modelling_of_IEEE_62_bus_system_using_Modelica_and_OpenIPSL.zip and /dev/null differ
diff --git a/Modelling_Of_Ieee_62_Bus_System_Using_Openipsl_By_Mr_Syed_Yasser_Ali/Modelling_of_IEEE_62_bus_system_using_Modelica_and_OpenIPSL.pdf b/Modelling_Of_Ieee_62_Bus_System_Using_Openipsl_By_Mr_Syed_Yasser_Ali/Modelling_of_IEEE_62_bus_system_using_Modelica_and_OpenIPSL.pdf
new file mode 100644
index 0000000..3608539
Binary files /dev/null and b/Modelling_Of_Ieee_62_Bus_System_Using_Openipsl_By_Mr_Syed_Yasser_Ali/Modelling_of_IEEE_62_bus_system_using_Modelica_and_OpenIPSL.pdf differ
diff --git a/Modelling_Of_Ieee_62_Bus_System_Using_Openipsl_By_Mr_Syed_Yasser_Ali/README.txt b/Modelling_Of_Ieee_62_Bus_System_Using_Openipsl_By_Mr_Syed_Yasser_Ali/README.txt
new file mode 100644
index 0000000..6ac4e34
--- /dev/null
+++ b/Modelling_Of_Ieee_62_Bus_System_Using_Openipsl_By_Mr_Syed_Yasser_Ali/README.txt
@@ -0,0 +1,8 @@
+About the Power System Simulation
+
+Title Of The Power System Simulation Project: Modelling of IEEE 62 bus system using Modelica and OpenIPSL
+Proposar Name: Mr Syed Yasser Ali
+University: Jawaharlal Nehru Technological University Hyderabad
+
+
+OM PSSP Project By FOSSEE, IIT Bombay
diff --git a/Modelling_Of_Ieee_62_Bus_System_Using_Openipsl_By_Mr_Syed_Yasser_Ali/project_files/Modelling_of_IEEE_62_bus_system_using_Modelica_and_OpenIPSL.pdf b/Modelling_Of_Ieee_62_Bus_System_Using_Openipsl_By_Mr_Syed_Yasser_Ali/project_files/Modelling_of_IEEE_62_bus_system_using_Modelica_and_OpenIPSL.pdf
new file mode 100644
index 0000000..3608539
Binary files /dev/null and b/Modelling_Of_Ieee_62_Bus_System_Using_Openipsl_By_Mr_Syed_Yasser_Ali/project_files/Modelling_of_IEEE_62_bus_system_using_Modelica_and_OpenIPSL.pdf differ
diff --git a/Modelling_Of_Ieee_62_Bus_System_Using_Openipsl_By_Mr_Syed_Yasser_Ali/project_files/Modelling_of_IEEE_62_bus_system_using_Modelica_and_OpenIPSL.zip b/Modelling_Of_Ieee_62_Bus_System_Using_Openipsl_By_Mr_Syed_Yasser_Ali/project_files/Modelling_of_IEEE_62_bus_system_using_Modelica_and_OpenIPSL.zip
new file mode 100644
index 0000000..833be6e
Binary files /dev/null and b/Modelling_Of_Ieee_62_Bus_System_Using_Openipsl_By_Mr_Syed_Yasser_Ali/project_files/Modelling_of_IEEE_62_bus_system_using_Modelica_and_OpenIPSL.zip differ
diff --git a/Modelling_Of_Ieee_9-Bus_Modified_Test_System_Using_Openipsl_By_Mrs_K.jeevitha/abstractalfc1.pdf b/Modelling_Of_Ieee_9-Bus_Modified_Test_System_Using_Openipsl_By_Mrs_K.jeevitha/abstractalfc1.pdf
new file mode 100644
index 0000000..70fcb08
Binary files /dev/null and b/Modelling_Of_Ieee_9-Bus_Modified_Test_System_Using_Openipsl_By_Mrs_K.jeevitha/abstractalfc1.pdf differ
diff --git a/Modelling_Of_Ieee_Modified_30_Bus_System_Using_Modelica_And_Openipsl_By_Mr_Syed_Yasser_Ali/README.txt b/Modelling_Of_Ieee_Modified_30_Bus_System_Using_Modelica_And_Openipsl_By_Mr_Syed_Yasser_Ali/README.txt
deleted file mode 100644
index 218730a..0000000
--- a/Modelling_Of_Ieee_Modified_30_Bus_System_Using_Modelica_And_Openipsl_By_Mr_Syed_Yasser_Ali/README.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-About the Power System Simulation
-
-Title Of The Power System Simulation Project: Modelling of IEEE modified 30 bus system using Modelica and Open IPSL
-Proposar Name: Mr Syed Yasser Ali
-University: Jawaharlal Nehru Technological University Hyderabad
-
-
-OM PSSP Project By FOSSEE, IIT Bombay
diff --git a/Modelling_Of_Ieee_Modified_30_Bus_System_Using_Modelica_And_Openipsl_By_Mr_Syed_Yasser_Ali/ieee_modified_30_bus_system_documentation.pdf b/Modelling_Of_Ieee_Modified_30_Bus_System_Using_Modelica_And_Openipsl_By_Mr_Syed_Yasser_Ali/ieee_modified_30_bus_system_documentation.pdf
deleted file mode 100644
index de34b62..0000000
Binary files a/Modelling_Of_Ieee_Modified_30_Bus_System_Using_Modelica_And_Openipsl_By_Mr_Syed_Yasser_Ali/ieee_modified_30_bus_system_documentation.pdf and /dev/null differ
diff --git a/Modelling_Of_Ieee_Modified_30_Bus_System_Using_Modelica_And_Openipsl_By_Mr_Syed_Yasser_Ali/project_files/ieee_modified_30_bus_system.zip b/Modelling_Of_Ieee_Modified_30_Bus_System_Using_Modelica_And_Openipsl_By_Mr_Syed_Yasser_Ali/project_files/ieee_modified_30_bus_system.zip
deleted file mode 100644
index 93519cd..0000000
Binary files a/Modelling_Of_Ieee_Modified_30_Bus_System_Using_Modelica_And_Openipsl_By_Mr_Syed_Yasser_Ali/project_files/ieee_modified_30_bus_system.zip and /dev/null differ
diff --git a/Modelling_Of_Ieee_Modified_30_Bus_System_Using_Modelica_And_Openipsl_By_Mr_Syed_Yasser_Ali/project_files/ieee_modified_30_bus_system_documentation.pdf b/Modelling_Of_Ieee_Modified_30_Bus_System_Using_Modelica_And_Openipsl_By_Mr_Syed_Yasser_Ali/project_files/ieee_modified_30_bus_system_documentation.pdf
deleted file mode 100644
index 8fc757d..0000000
Binary files a/Modelling_Of_Ieee_Modified_30_Bus_System_Using_Modelica_And_Openipsl_By_Mr_Syed_Yasser_Ali/project_files/ieee_modified_30_bus_system_documentation.pdf and /dev/null differ
diff --git a/Modelling_Of_Ieee_Modified_30_Bus_System_Using_Openipsl_By_Mr_Syed_Yasser_Ali/README.txt b/Modelling_Of_Ieee_Modified_30_Bus_System_Using_Openipsl_By_Mr_Syed_Yasser_Ali/README.txt
new file mode 100644
index 0000000..218730a
--- /dev/null
+++ b/Modelling_Of_Ieee_Modified_30_Bus_System_Using_Openipsl_By_Mr_Syed_Yasser_Ali/README.txt
@@ -0,0 +1,8 @@
+About the Power System Simulation
+
+Title Of The Power System Simulation Project: Modelling of IEEE modified 30 bus system using Modelica and Open IPSL
+Proposar Name: Mr Syed Yasser Ali
+University: Jawaharlal Nehru Technological University Hyderabad
+
+
+OM PSSP Project By FOSSEE, IIT Bombay
diff --git a/Modelling_Of_Ieee_Modified_30_Bus_System_Using_Openipsl_By_Mr_Syed_Yasser_Ali/ieee_modified_30_bus_system_documentation.pdf b/Modelling_Of_Ieee_Modified_30_Bus_System_Using_Openipsl_By_Mr_Syed_Yasser_Ali/ieee_modified_30_bus_system_documentation.pdf
new file mode 100644
index 0000000..de34b62
Binary files /dev/null and b/Modelling_Of_Ieee_Modified_30_Bus_System_Using_Openipsl_By_Mr_Syed_Yasser_Ali/ieee_modified_30_bus_system_documentation.pdf differ
diff --git a/Modelling_Of_Ieee_Modified_30_Bus_System_Using_Openipsl_By_Mr_Syed_Yasser_Ali/project_files/ieee_modified_30_bus_system.zip b/Modelling_Of_Ieee_Modified_30_Bus_System_Using_Openipsl_By_Mr_Syed_Yasser_Ali/project_files/ieee_modified_30_bus_system.zip
new file mode 100644
index 0000000..93519cd
Binary files /dev/null and b/Modelling_Of_Ieee_Modified_30_Bus_System_Using_Openipsl_By_Mr_Syed_Yasser_Ali/project_files/ieee_modified_30_bus_system.zip differ
diff --git a/Modelling_Of_Ieee_Modified_30_Bus_System_Using_Openipsl_By_Mr_Syed_Yasser_Ali/project_files/ieee_modified_30_bus_system_documentation.pdf b/Modelling_Of_Ieee_Modified_30_Bus_System_Using_Openipsl_By_Mr_Syed_Yasser_Ali/project_files/ieee_modified_30_bus_system_documentation.pdf
new file mode 100644
index 0000000..8fc757d
Binary files /dev/null and b/Modelling_Of_Ieee_Modified_30_Bus_System_Using_Openipsl_By_Mr_Syed_Yasser_Ali/project_files/ieee_modified_30_bus_system_documentation.pdf differ
diff --git a/Modelling_Of_Rbts_System_Along_With_Generation_Expansion_Planning_By_Mr_Gandra_Mahesh/Modeling_of_RBTS_system_along_with_Generation_Expansion_Planning.pdf b/Modelling_Of_Rbts_System_Along_With_Generation_Expansion_Planning_By_Mr_Gandra_Mahesh/Modeling_of_RBTS_system_along_with_Generation_Expansion_Planning.pdf
new file mode 100644
index 0000000..9163827
Binary files /dev/null and b/Modelling_Of_Rbts_System_Along_With_Generation_Expansion_Planning_By_Mr_Gandra_Mahesh/Modeling_of_RBTS_system_along_with_Generation_Expansion_Planning.pdf differ
diff --git a/Modelling_Of_Rbts_System_Along_With_Generation_Expansion_Planning_By_Mr_Gandra_Mahesh/README.txt b/Modelling_Of_Rbts_System_Along_With_Generation_Expansion_Planning_By_Mr_Gandra_Mahesh/README.txt
new file mode 100644
index 0000000..0e50f8a
--- /dev/null
+++ b/Modelling_Of_Rbts_System_Along_With_Generation_Expansion_Planning_By_Mr_Gandra_Mahesh/README.txt
@@ -0,0 +1,8 @@
+About the Power System Simulation
+
+Title Of The Power System Simulation Project: Modeling of RBTS system along with Generation Expansion Planning
+Proposar Name: Mr Gandra Mahesh
+University: Sir C R Reddy College Of Engineering
+
+
+OM PSSP Project By FOSSEE, IIT Bombay
diff --git a/Modelling_Of_Rbts_System_Along_With_Generation_Expansion_Planning_By_Mr_Gandra_Mahesh/project_files/Modeling_of_RBTS_system_along_with_Generation_Expansion_Planning.pdf b/Modelling_Of_Rbts_System_Along_With_Generation_Expansion_Planning_By_Mr_Gandra_Mahesh/project_files/Modeling_of_RBTS_system_along_with_Generation_Expansion_Planning.pdf
new file mode 100644
index 0000000..9163827
Binary files /dev/null and b/Modelling_Of_Rbts_System_Along_With_Generation_Expansion_Planning_By_Mr_Gandra_Mahesh/project_files/Modeling_of_RBTS_system_along_with_Generation_Expansion_Planning.pdf differ
diff --git a/Modelling_Of_Rbts_System_Along_With_Generation_Expansion_Planning_By_Mr_Gandra_Mahesh/project_files/Modeling_of_RBTS_system_along_with_Generation_Expansion_Planning.zip b/Modelling_Of_Rbts_System_Along_With_Generation_Expansion_Planning_By_Mr_Gandra_Mahesh/project_files/Modeling_of_RBTS_system_along_with_Generation_Expansion_Planning.zip
new file mode 100644
index 0000000..0373a0b
Binary files /dev/null and b/Modelling_Of_Rbts_System_Along_With_Generation_Expansion_Planning_By_Mr_Gandra_Mahesh/project_files/Modeling_of_RBTS_system_along_with_Generation_Expansion_Planning.zip differ
diff --git a/Modelling_Of_Single_Machine_Distribution_Network_Using_Openipsl_By_Mr_Syed_Yasser_Ali/Modeling_of_proposed_Single_Machine_distribution_network_using_Modelica_and_OpenIPSL.pdf b/Modelling_Of_Single_Machine_Distribution_Network_Using_Openipsl_By_Mr_Syed_Yasser_Ali/Modeling_of_proposed_Single_Machine_distribution_network_using_Modelica_and_OpenIPSL.pdf
new file mode 100644
index 0000000..ed664d9
Binary files /dev/null and b/Modelling_Of_Single_Machine_Distribution_Network_Using_Openipsl_By_Mr_Syed_Yasser_Ali/Modeling_of_proposed_Single_Machine_distribution_network_using_Modelica_and_OpenIPSL.pdf differ
diff --git a/Modelling_Of_Single_Machine_Distribution_Network_Using_Openipsl_By_Mr_Syed_Yasser_Ali/README.txt b/Modelling_Of_Single_Machine_Distribution_Network_Using_Openipsl_By_Mr_Syed_Yasser_Ali/README.txt
new file mode 100644
index 0000000..09dba83
--- /dev/null
+++ b/Modelling_Of_Single_Machine_Distribution_Network_Using_Openipsl_By_Mr_Syed_Yasser_Ali/README.txt
@@ -0,0 +1,8 @@
+About the Power System Simulation
+
+Title Of The Power System Simulation Project: Modeling of single machine distribution network using Modelica and OpenIPSL
+Proposar Name: Mr Syed Yasser Ali
+University: Jawaharlal Nehru Technological University Hyderabad
+
+
+OM PSSP Project By FOSSEE, IIT Bombay
diff --git a/Modelling_Of_Single_Machine_Distribution_Network_Using_Openipsl_By_Mr_Syed_Yasser_Ali/project_files/Modeling_of_proposed_Single_Machine_distribution_network_using_Modelica_and_OpenIPSL.pdf b/Modelling_Of_Single_Machine_Distribution_Network_Using_Openipsl_By_Mr_Syed_Yasser_Ali/project_files/Modeling_of_proposed_Single_Machine_distribution_network_using_Modelica_and_OpenIPSL.pdf
new file mode 100644
index 0000000..ed664d9
Binary files /dev/null and b/Modelling_Of_Single_Machine_Distribution_Network_Using_Openipsl_By_Mr_Syed_Yasser_Ali/project_files/Modeling_of_proposed_Single_Machine_distribution_network_using_Modelica_and_OpenIPSL.pdf differ
diff --git a/Modelling_Of_Single_Machine_Distribution_Network_Using_Openipsl_By_Mr_Syed_Yasser_Ali/project_files/Modeling_of_proposed_Single_Machine_distribution_network_using_Modelica_and_OpenIPSL.zip b/Modelling_Of_Single_Machine_Distribution_Network_Using_Openipsl_By_Mr_Syed_Yasser_Ali/project_files/Modeling_of_proposed_Single_Machine_distribution_network_using_Modelica_and_OpenIPSL.zip
new file mode 100644
index 0000000..9d0b7b0
Binary files /dev/null and b/Modelling_Of_Single_Machine_Distribution_Network_Using_Openipsl_By_Mr_Syed_Yasser_Ali/project_files/Modeling_of_proposed_Single_Machine_distribution_network_using_Modelica_and_OpenIPSL.zip differ
diff --git a/Modelling_Of_Single_Machine_Infinite_Bus_(smib)_Using_The_Openipsl_By_Mr_Biswarup_Mukherjee_And_Prof._Luigi_Vanfretti/A2_final.pdf b/Modelling_Of_Single_Machine_Infinite_Bus_(smib)_Using_The_Openipsl_By_Mr_Biswarup_Mukherjee_And_Prof._Luigi_Vanfretti/A2_final.pdf
new file mode 100644
index 0000000..469316c
Binary files /dev/null and b/Modelling_Of_Single_Machine_Infinite_Bus_(smib)_Using_The_Openipsl_By_Mr_Biswarup_Mukherjee_And_Prof._Luigi_Vanfretti/A2_final.pdf differ
diff --git a/Modelling_Of_Single_Machine_Infinite_Bus_(smib)_Using_The_Openipsl_By_Mr_Biswarup_Mukherjee_And_Prof._Luigi_Vanfretti/README.txt b/Modelling_Of_Single_Machine_Infinite_Bus_(smib)_Using_The_Openipsl_By_Mr_Biswarup_Mukherjee_And_Prof._Luigi_Vanfretti/README.txt
new file mode 100644
index 0000000..80e40a4
--- /dev/null
+++ b/Modelling_Of_Single_Machine_Infinite_Bus_(smib)_Using_The_Openipsl_By_Mr_Biswarup_Mukherjee_And_Prof._Luigi_Vanfretti/README.txt
@@ -0,0 +1,8 @@
+About the Power System Simulation
+
+Title Of The Power System Simulation Project: Modeling of single machine infinite bus (SMIB) using Modelica and the OpenIPSL
+Proposar Name: Mr B. Mukherjee & L. Vanfretti
+University: Iit Bombay And Kth Sweden
+
+
+OM PSSP Project By FOSSEE, IIT Bombay
diff --git a/Modelling_Of_Single_Machine_Infinite_Bus_(smib)_Using_The_Openipsl_By_Mr_Biswarup_Mukherjee_And_Prof._Luigi_Vanfretti/project_files/A2_final.pdf b/Modelling_Of_Single_Machine_Infinite_Bus_(smib)_Using_The_Openipsl_By_Mr_Biswarup_Mukherjee_And_Prof._Luigi_Vanfretti/project_files/A2_final.pdf
new file mode 100644
index 0000000..469316c
Binary files /dev/null and b/Modelling_Of_Single_Machine_Infinite_Bus_(smib)_Using_The_Openipsl_By_Mr_Biswarup_Mukherjee_And_Prof._Luigi_Vanfretti/project_files/A2_final.pdf differ
diff --git a/Modelling_Of_Single_Machine_Infinite_Bus_(smib)_Using_The_Openipsl_By_Mr_Biswarup_Mukherjee_And_Prof._Luigi_Vanfretti/project_files/SMIB_Simple.mo b/Modelling_Of_Single_Machine_Infinite_Bus_(smib)_Using_The_Openipsl_By_Mr_Biswarup_Mukherjee_And_Prof._Luigi_Vanfretti/project_files/SMIB_Simple.mo
new file mode 100644
index 0000000..8f108bc
--- /dev/null
+++ b/Modelling_Of_Single_Machine_Infinite_Bus_(smib)_Using_The_Openipsl_By_Mr_Biswarup_Mukherjee_And_Prof._Luigi_Vanfretti/project_files/SMIB_Simple.mo
@@ -0,0 +1,63 @@
+model SMIB_Simple
+ extends Modelica.Icons.Example;
+ import Modelica.Constants.pi;
+ OpenIPSL.Electrical.Buses.Bus B1(displayPF = false) annotation(
+ Placement(visible = true, transformation(extent = {{-26, -10}, {-6, 10}}, rotation = 0)));
+ OpenIPSL.Electrical.Buses.Bus B2(displayPF = false) annotation(
+ Placement(visible = true, transformation(extent = {{4, -10}, {24, 10}}, rotation = 0)));
+ OpenIPSL.Electrical.Buses.Bus B3(displayPF = false) annotation(
+ Placement(visible = true, transformation(extent = {{72, -10}, {92, 10}}, rotation = 0)));
+ OpenIPSL.Electrical.Branches.PSAT.TwoWindingTransformer Transformer(Sn = 2220, x = 0.15, r = 0, V_b = 400, Vn = 400) annotation(
+ Placement(visible = true, transformation(extent = {{-12, -10}, {8, 10}}, rotation = 0)));
+ OpenIPSL.Electrical.Branches.PwLine line_1(R = 0, G = 0, B = 0, X = 0.022522522522523, S_b = 100) annotation(
+ Placement(visible = true, transformation(extent = {{38, 10}, {58, 30}}, rotation = 0)));
+ OpenIPSL.Electrical.Buses.InfiniteBus infinite_bus(V_0 = 0.90081, P_0 = -1998, Q_0 = 87.066) annotation(
+ Placement(visible = true, transformation(origin = {112, 0}, extent = {{-10, 10}, {10, -10}}, rotation = 180)));
+ OpenIPSL.Electrical.Events.PwFault fault(R = 0, t1 = 0.5, t2 = 0.57, X = 0.0004504504504504504) annotation(
+ Placement(visible = true, transformation(extent = {{34, -60}, {54, -40}}, rotation = 0)));
+ OpenIPSL.Electrical.Branches.PwLine line_2(R = 0, G = 0, B = 0, S_b = 100, X = 0.041891891891892) annotation(
+ Placement(visible = true, transformation(extent = {{38, -30}, {58, -10}}, rotation = 0)));
+ inner OpenIPSL.Electrical.SystemBase SysData(S_b = 100, fn = 50) annotation(
+ Placement(visible = true, transformation(origin = {95, 90}, extent = {{-23, -8}, {23, 8}}, rotation = 0)));
+ OpenIPSL.Electrical.Controls.PSAT.AVR.AVRtypeIII aVRtypeIII1(K0 = 200, T1 = 1, T2 = 1, Te = 0.0001, Tr = 0.015, vfmax = 7, vfmin = -6.40) annotation(
+ Placement(visible = true, transformation(origin = {-90, 7}, extent = {{-12, -13}, {12, 13}}, rotation = 0)));
+ OpenIPSL.Electrical.Machines.PSAT.Order6 order61(D = 0, M = 7, P_0 = 1997.9999999936396, Q_0 = 967.9249699065775, Sn = 2220, Vn = 400, angle_0 = 0.494677176989154 * 180 / pi, ra = 0.003, x1d = 0.3) annotation(
+ Placement(visible = true, transformation(origin = {-50, -2.22045e-15}, extent = {{-14, -14}, {14, 14}}, rotation = 0)));
+ Modelica.Blocks.Sources.Constant const(k = 0) annotation(
+ Placement(visible = true, transformation(origin = {-88, -34}, extent = {{10, -10}, {-10, 10}}, rotation = 0)));
+equation
+ connect(const.y, aVRtypeIII1.vs) annotation(
+ Line(points = {{-100, -34}, {-110, -34}, {-110, 0}, {-102, 0}, {-102, 0}, {-100, 0}}, color = {0, 0, 127}));
+ connect(B1.p, Transformer.p) annotation(
+ Line(points = {{-16, 0}, {-13, 0}}, color = {0, 0, 255}));
+ connect(Transformer.n, B2.p) annotation(
+ Line(points = {{9, 0}, {14, 0}}, color = {0, 0, 255}));
+ connect(fault.p, line_2.p) annotation(
+ Line(points = {{32, -50}, {22, -50}, {22, -20}, {40, -20}}, color = {0, 0, 255}));
+ connect(B2.p, line_2.p) annotation(
+ Line(points = {{14, 0}, {22, 0}, {22, -20}, {39, -20}}, color = {0, 0, 255}));
+ connect(B2.p, line_1.p) annotation(
+ Line(points = {{14, 0}, {22, 0}, {22, 20}, {39, 20}}, color = {0, 0, 255}));
+ connect(order61.p, B1.p) annotation(
+ Line(points = {{-36, 0}, {-16, 0}}, color = {0, 0, 255}));
+ connect(line_2.n, line_1.n) annotation(
+ Line(points = {{57, -20}, {72, -20}, {72, 20}, {57, 20}}, color = {0, 0, 255}));
+ connect(B3.p, line_1.n) annotation(
+ Line(points = {{82, 0}, {72, 0}, {72, 20}, {57, 20}}, color = {0, 0, 255}));
+ connect(aVRtypeIII1.v, order61.v) annotation(
+ Line(points = {{-102, 14}, {-110, 14}, {-110, 42}, {-26, 42}, {-26, 4}, {-34, 4}}, color = {0, 0, 127}));
+ connect(aVRtypeIII1.vf, order61.vf) annotation(
+ Line(points = {{-77, 7}, {-67, 7}}, color = {0, 0, 127}));
+ connect(order61.vf0, aVRtypeIII1.vf0) annotation(
+ Line(points = {{-61, 15}, {-61, 36}, {-90, 36}, {-90, 19}}, color = {0, 0, 127}));
+ connect(order61.pm0, order61.pm) annotation(
+ Line(points = {{-62, -16}, {-62, -16}, {-62, -22}, {-74, -22}, {-74, -6}, {-68, -6}, {-68, -8}, {-66, -8}}, color = {0, 0, 127}));
+ connect(B3.p, infinite_bus.p) annotation(
+ Line(points = {{82, 0}, {82, 0}, {102, 0}, {102, 1.33227e-15}}, color = {0, 0, 255}));
+ annotation(
+ Icon(coordinateSystem(extent = {{-120, -100}, {120, 100}})),
+ Diagram(coordinateSystem(extent = {{-120, -100}, {120, 100}}, preserveAspectRatio = false, initialScale = 0.1)),
+ experiment(StartTime = 0, StopTime = 10, Tolerance = 1e-6, Interval = 1e-4),
+ Documentation,
+ uses(OpenIPSL(version = "1.5.0"), Modelica(version = "3.2.2")));
+end SMIB_Simple;
diff --git a/Modelling_Of_Single_Machine_Infinite_Bus_(smib_Controlled)_Using_The_Openipsl_By_Mr_Biswarup_Mukherjee_And_Prof._Luigi_Vanfretti/A3_final.pdf b/Modelling_Of_Single_Machine_Infinite_Bus_(smib_Controlled)_Using_The_Openipsl_By_Mr_Biswarup_Mukherjee_And_Prof._Luigi_Vanfretti/A3_final.pdf
new file mode 100644
index 0000000..a38eeb9
Binary files /dev/null and b/Modelling_Of_Single_Machine_Infinite_Bus_(smib_Controlled)_Using_The_Openipsl_By_Mr_Biswarup_Mukherjee_And_Prof._Luigi_Vanfretti/A3_final.pdf differ
diff --git a/Modelling_Of_Single_Machine_Infinite_Bus_(smib_Controlled)_Using_The_Openipsl_By_Mr_Biswarup_Mukherjee_And_Prof._Luigi_Vanfretti/README.txt b/Modelling_Of_Single_Machine_Infinite_Bus_(smib_Controlled)_Using_The_Openipsl_By_Mr_Biswarup_Mukherjee_And_Prof._Luigi_Vanfretti/README.txt
new file mode 100644
index 0000000..4eedfc5
--- /dev/null
+++ b/Modelling_Of_Single_Machine_Infinite_Bus_(smib_Controlled)_Using_The_Openipsl_By_Mr_Biswarup_Mukherjee_And_Prof._Luigi_Vanfretti/README.txt
@@ -0,0 +1,8 @@
+About the Power System Simulation
+
+Title Of The Power System Simulation Project: Modeling of single machine infinite bus (SMIB)(Controlled) using the OpenIPSL
+Proposar Name: Mr B. Mukherjee & L. Vanfretti
+University: Iit Bombay And Kth Sweden
+
+
+OM PSSP Project By FOSSEE, IIT Bombay
diff --git a/Modelling_Of_Single_Machine_Infinite_Bus_(smib_Controlled)_Using_The_Openipsl_By_Mr_Biswarup_Mukherjee_And_Prof._Luigi_Vanfretti/project_files/A3_final.pdf b/Modelling_Of_Single_Machine_Infinite_Bus_(smib_Controlled)_Using_The_Openipsl_By_Mr_Biswarup_Mukherjee_And_Prof._Luigi_Vanfretti/project_files/A3_final.pdf
new file mode 100644
index 0000000..a38eeb9
Binary files /dev/null and b/Modelling_Of_Single_Machine_Infinite_Bus_(smib_Controlled)_Using_The_Openipsl_By_Mr_Biswarup_Mukherjee_And_Prof._Luigi_Vanfretti/project_files/A3_final.pdf differ
diff --git a/Modelling_Of_Single_Machine_Infinite_Bus_(smib_Controlled)_Using_The_Openipsl_By_Mr_Biswarup_Mukherjee_And_Prof._Luigi_Vanfretti/project_files/SMIB_Control.mo b/Modelling_Of_Single_Machine_Infinite_Bus_(smib_Controlled)_Using_The_Openipsl_By_Mr_Biswarup_Mukherjee_And_Prof._Luigi_Vanfretti/project_files/SMIB_Control.mo
new file mode 100644
index 0000000..faa722b
--- /dev/null
+++ b/Modelling_Of_Single_Machine_Infinite_Bus_(smib_Controlled)_Using_The_Openipsl_By_Mr_Biswarup_Mukherjee_And_Prof._Luigi_Vanfretti/project_files/SMIB_Control.mo
@@ -0,0 +1,65 @@
+model SMIB_Control
+ extends Modelica.Icons.Example;
+ import Modelica.Constants.pi;
+ OpenIPSL.Electrical.Buses.Bus B1(displayPF = false) annotation(
+ Placement(visible = true, transformation(extent = {{-26, -10}, {-6, 10}}, rotation = 0)));
+ OpenIPSL.Electrical.Buses.Bus B2(displayPF = false) annotation(
+ Placement(visible = true, transformation(extent = {{4, -10}, {24, 10}}, rotation = 0)));
+ OpenIPSL.Electrical.Buses.Bus B3(displayPF = false) annotation(
+ Placement(visible = true, transformation(extent = {{72, -10}, {92, 10}}, rotation = 0)));
+ OpenIPSL.Electrical.Branches.PSAT.TwoWindingTransformer Transformer(Sn = 2220, x = 0.15, r = 0, V_b = 400, Vn = 400) annotation(
+ Placement(visible = true, transformation(extent = {{-12, -10}, {8, 10}}, rotation = 0)));
+ OpenIPSL.Electrical.Branches.PwLine line_1(R = 0, G = 0, B = 0, X = 0.022522522522523, S_b = 100) annotation(
+ Placement(visible = true, transformation(extent = {{38, 10}, {58, 30}}, rotation = 0)));
+ OpenIPSL.Electrical.Buses.InfiniteBus infinite_bus(V_0 = 0.90081, P_0 = -1998, Q_0 = 87.066) annotation(
+ Placement(visible = true, transformation(origin = {112, 0}, extent = {{-10, 10}, {10, -10}}, rotation = 180)));
+ OpenIPSL.Electrical.Events.PwFault fault(R = 0, t1 = 0.5, t2 = 0.57, X = 0.0004504504504504504) annotation(
+ Placement(visible = true, transformation(extent = {{34, -60}, {54, -40}}, rotation = 0)));
+ OpenIPSL.Electrical.Branches.PwLine line_2(R = 0, G = 0, B = 0, S_b = 100, X = 0.041891891891892) annotation(
+ Placement(visible = true, transformation(extent = {{38, -30}, {58, -10}}, rotation = 0)));
+ inner OpenIPSL.Electrical.SystemBase SysData(S_b = 100, fn = 50) annotation(
+ Placement(visible = true, transformation(origin = {89, 83}, extent = {{-27, -11}, {27, 11}}, rotation = 0)));
+ OpenIPSL.Electrical.Controls.PSAT.PSS.PSSTypeII pSSTypeII1(Kw = 9.5, T1 = 0.154, T2 = 0.033, T3 = 1, T4 = 1, Tw = 1.41, vsmax = 0.2, vsmin = -0.2) annotation(
+ Placement(visible = true, transformation(origin = {-106, -30}, extent = {{-10, -10}, {10, 10}}, rotation = 90)));
+ OpenIPSL.Electrical.Controls.PSAT.AVR.AVRtypeIII aVRtypeIII1(K0 = 200, T1 = 1, T2 = 1, Te = 0.0001, Tr = 0.015, vfmax = 7, vfmin = -6.40) annotation(
+ Placement(visible = true, transformation(origin = {-90, 7}, extent = {{-12, -13}, {12, 13}}, rotation = 0)));
+ OpenIPSL.Electrical.Machines.PSAT.Order6 order61(D = 0, M = 7,P_0 = 1997.9999999936396, Q_0 = 967.9249699065775, Sn = 2220, Vn = 400, angle_0 = 0.494677176989154 * 180 / pi, ra = 0.003, x1d = 0.3) annotation(
+ Placement(visible = true, transformation(origin = {-50, -2.22045e-15}, extent = {{-14, -14}, {14, 14}}, rotation = 0)));
+equation
+ connect(fault.p, line_2.p) annotation(
+ Line(points = {{32, -50}, {22, -50}, {22, -20}, {40, -20}}, color = {0, 0, 255}));
+ connect(B2.p, line_2.p) annotation(
+ Line(points = {{14, 0}, {22, 0}, {22, -20}, {39, -20}}, color = {0, 0, 255}));
+ connect(B2.p, line_1.p) annotation(
+ Line(points = {{14, 0}, {22, 0}, {22, 20}, {39, 20}}, color = {0, 0, 255}));
+ connect(Transformer.n, B2.p) annotation(
+ Line(points = {{9, 0}, {14, 0}}, color = {0, 0, 255}));
+ connect(B1.p, Transformer.p) annotation(
+ Line(points = {{-16, 0}, {-13, 0}}, color = {0, 0, 255}));
+ connect(order61.p, B1.p) annotation(
+ Line(points = {{-36, 0}, {-16, 0}}, color = {0, 0, 255}));
+ connect(line_2.n, line_1.n) annotation(
+ Line(points = {{57, -20}, {72, -20}, {72, 20}, {57, 20}}, color = {0, 0, 255}));
+ connect(B3.p, line_1.n) annotation(
+ Line(points = {{82, 0}, {72, 0}, {72, 20}, {57, 20}}, color = {0, 0, 255}));
+ connect(aVRtypeIII1.v, order61.v) annotation(
+ Line(points = {{-102, 14}, {-110, 14}, {-110, 42}, {-26, 42}, {-26, 4}, {-34, 4}}, color = {0, 0, 127}));
+ connect(pSSTypeII1.vs, aVRtypeIII1.vs) annotation(
+ Line(points = {{-106, -18}, {-106, 0}, {-101, 0}}, color = {0, 0, 127}));
+ connect(aVRtypeIII1.vf, order61.vf) annotation(
+ Line(points = {{-77, 7}, {-67, 7}}, color = {0, 0, 127}));
+ connect(order61.vf0, aVRtypeIII1.vf0) annotation(
+ Line(points = {{-61, 15}, {-61, 36}, {-90, 36}, {-90, 19}}, color = {0, 0, 127}));
+ connect(order61.pm0, order61.pm) annotation(
+ Line(points = {{-62, -16}, {-62, -16}, {-62, -22}, {-74, -22}, {-74, -6}, {-68, -6}, {-68, -8}, {-66, -8}}, color = {0, 0, 127}));
+ connect(order61.w, pSSTypeII1.vSI) annotation(
+ Line(points = {{-35, 13}, {-30, 13}, {-30, -56}, {-106, -56}, {-106, -41}}, color = {0, 0, 127}));
+ connect(B3.p, infinite_bus.p) annotation(
+ Line(points = {{82, 0}, {82, 0}, {102, 0}, {102, 1.33227e-15}}, color = {0, 0, 255}));
+ annotation(
+ Icon(coordinateSystem(extent = {{-120, -100}, {120, 100}})),
+ Diagram(coordinateSystem(extent = {{-120, -100}, {120, 100}}, preserveAspectRatio = false, initialScale = 0.1)),
+ experiment(StartTime = 0, StopTime = 10, Tolerance = 1e-6, Interval = 1e-4),
+ Documentation,
+ uses(OpenIPSL(version = "1.5.0")));
+end SMIB_Control;
diff --git a/Power_System_Modeling_Of_A_4-Bus_System_Using_Varying_Load_From_Openipsl_By_Mr_Pritish_Chatterjee/Power_system_modeling_of_a_4bus_system_using_varying_load_from_OpenIPSL.pdf b/Power_System_Modeling_Of_A_4-Bus_System_Using_Varying_Load_From_Openipsl_By_Mr_Pritish_Chatterjee/Power_system_modeling_of_a_4bus_system_using_varying_load_from_OpenIPSL.pdf
deleted file mode 100644
index 913ed14..0000000
Binary files a/Power_System_Modeling_Of_A_4-Bus_System_Using_Varying_Load_From_Openipsl_By_Mr_Pritish_Chatterjee/Power_system_modeling_of_a_4bus_system_using_varying_load_from_OpenIPSL.pdf and /dev/null differ
diff --git a/Power_System_Modeling_Of_A_4-Bus_System_Using_Varying_Load_From_Openipsl_By_Mr_Pritish_Chatterjee/README.txt b/Power_System_Modeling_Of_A_4-Bus_System_Using_Varying_Load_From_Openipsl_By_Mr_Pritish_Chatterjee/README.txt
deleted file mode 100644
index 054a0f7..0000000
--- a/Power_System_Modeling_Of_A_4-Bus_System_Using_Varying_Load_From_Openipsl_By_Mr_Pritish_Chatterjee/README.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-About the Power System Simulation
-
-Title Of The Power System Simulation Project: Power system modeling of a 4-bus system using varying load from OpenIPSL
-Proposar Name: Mr Pritish Chatterjee
-University: University Of Calcutta
-
-
-OM PSSP Project By FOSSEE, IIT Bombay
diff --git a/Power_System_Modeling_Of_A_4-Bus_System_Using_Varying_Load_From_Openipsl_By_Mr_Pritish_Chatterjee/project_files/Model.mo b/Power_System_Modeling_Of_A_4-Bus_System_Using_Varying_Load_From_Openipsl_By_Mr_Pritish_Chatterjee/project_files/Model.mo
deleted file mode 100644
index e596be6..0000000
--- a/Power_System_Modeling_Of_A_4-Bus_System_Using_Varying_Load_From_Openipsl_By_Mr_Pritish_Chatterjee/project_files/Model.mo
+++ /dev/null
@@ -1,69 +0,0 @@
-model Model
- inner OpenIPSL.Electrical.SystemBase SysData(S_b = 100, fn = 50) annotation(
- Placement(visible = true, transformation(origin = {-6, 88}, extent = {{-12, -10}, {12, 10}}, rotation = 0)));
- OpenIPSL.Electrical.Machines.PSAT.Order2 generator2(D = 0, M = 8, P_0 = 318, Sn = 100, V_0 = 1.02, V_b = 230, Vn = 230, ra = 0.001, x1d = 0.2) annotation(
- Placement(visible = true, transformation(origin = {60, -60}, extent = {{-10, -10}, {10, 10}}, rotation = 90)));
- OpenIPSL.Electrical.Buses.Bus bus1(V_0 = 1.0, V_b = 138, angle_0 = 0, displayPF = true) annotation(
- Placement(visible = true, transformation(origin = {-80, 42}, extent = {{-12, -12}, {12, 12}}, rotation = -90)));
- OpenIPSL.Electrical.Buses.Bus bus2(P_0 = 20, Q_0 = 10, V_0 = 1, V_b = 138, angle_0 = 0, displayPF = true) annotation(
- Placement(visible = true, transformation(origin = {60, 42}, extent = {{-10, -10}, {10, 10}}, rotation = 90)));
- OpenIPSL.Electrical.Buses.Bus bus3(P_0 = 300, Q_0 = 6, V_0 = 1, V_b = 138, angle_0 = 0, displayPF = true) annotation(
- Placement(visible = true, transformation(origin = {-80, -18}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
- OpenIPSL.Electrical.Branches.PwLine pwLine1_2(B = 0, G = 0, R = 0.01008, X = 0.05040) annotation(
- Placement(visible = true, transformation(origin = {-8, 30}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- OpenIPSL.Electrical.Branches.PwLine pwLine1_3(B = 0, G = 0, R = 0.00744, X = 0.03720) annotation(
- Placement(visible = true, transformation(origin = {-84, 16}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
- OpenIPSL.Electrical.Branches.PwLine pwLine3_4(B = 0, G = 0, R = 0.01272, X = 0.06360) annotation(
- Placement(visible = true, transformation(origin = {-4, 2}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- OpenIPSL.Electrical.Branches.PwLine pwLine2_4(B = 0, G = 0, R = 0.0074, X = 0.03720, t1 = 70, t2 = 75) annotation(
- Placement(visible = true, transformation(origin = {64, 12}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
- OpenIPSL.Electrical.Buses.Bus bus4(P_0 = 318, V_0 = 1, V_b = 138, angle_0 = 0, displayPF = true) annotation(
- Placement(visible = true, transformation(origin = {60, -12}, extent = {{-10, -10}, {10, 10}}, rotation = 90)));
- OpenIPSL.Electrical.Buses.InfiniteBus infiniteBus1(V_0 = 1.0, V_b = 138) annotation(
- Placement(visible = true, transformation(origin = {-80, 70}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
- OpenIPSL.Electrical.Banks.PSSE.SVC.SVC svc1(Bref = 0.02, OtherSignals = 0, Sbase = 100, T1 = 10, T2 = 2, T3 = 3, T4 = 4, T5 = 5, Vmax = 0.99, Vmin = 0.56, Vref = 1, init_SVC_Lag = 1, init_SVC_Leadlag = 2) annotation(
- Placement(visible = true, transformation(origin = {-20, -52}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- OpenIPSL.Electrical.Loads.PSSE.Load load1(P_0 = 60, Q_0 = 20, V_0 = 1, V_b = 138, angle_0 = 0) annotation(
- Placement(visible = true, transformation(origin = {80, -46}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- OpenIPSL.Electrical.Loads.PSSE.Load load2(P_0 = 20, Q_0 = 10, V_0 = 1, V_b = 138, angle_0 = 0) annotation(
- Placement(visible = true, transformation(origin = {60, 66}, extent = {{-10, -10}, {10, 10}}, rotation = 180)));
- OpenIPSL.Electrical.Loads.PSSE.Load_variation load_variation1(P_0 = 300, Q_0 = 6, V_0 = 1, V_b = 138, angle_0 = 0, d_P = 1.5, d_t = 5, t1 = 25) annotation(
- Placement(visible = true, transformation(origin = {-82, -58}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
-equation
- connect(load2.p, bus2.p) annotation(
- Line(points = {{60, 56}, {60, 42}}, color = {0, 0, 255}));
- connect(svc1.VIB, bus3.p) annotation(
- Line(points = {{-30, -52}, {-50, -52}, {-50, -32}, {-80, -32}, {-80, -18}, {-80, -18}}, color = {0, 0, 255}));
- connect(load_variation1.p, bus3.p) annotation(
- Line(points = {{-82, -48}, {-82, -48}, {-82, -18}, {-80, -18}, {-80, -18}}, color = {0, 0, 255}));
- connect(load1.p, bus4.p) annotation(
- Line(points = {{80, -36}, {82, -36}, {82, -22}, {68, -22}, {68, -12}, {60, -12}, {60, -12}}, color = {0, 0, 255}));
- connect(pwLine3_4.n, bus4.p) annotation(
- Line(points = {{5, 2}, {52, 2}, {52, -12}, {60, -12}}, color = {0, 0, 255}));
- connect(pwLine2_4.n, bus4.p) annotation(
- Line(points = {{64, 3}, {64, -12}, {60, -12}}, color = {0, 0, 255}));
- connect(bus4.p, generator2.p) annotation(
- Line(points = {{60, -12}, {60, -50}}, color = {0, 0, 255}));
- connect(bus1.p, pwLine1_3.p) annotation(
- Line(points = {{-80, 42}, {-84, 42}, {-84, 25}}, color = {0, 0, 255}));
- connect(pwLine1_3.n, bus3.p) annotation(
- Line(points = {{-84, 7}, {-84, -18}, {-80, -18}}, color = {0, 0, 255}));
- connect(generator2.vf, generator2.vf0) annotation(
- Line(points = {{55, -72}, {57, -72}, {57, -84}, {45, -84}, {45, -68}, {49, -68}, {49, -68}}, color = {0, 0, 127}));
- connect(generator2.pm, generator2.pm0) annotation(
- Line(points = {{65, -72}, {65, -72}, {65, -82}, {79, -82}, {79, -68}, {71, -68}, {71, -68}}, color = {0, 0, 127}));
- connect(infiniteBus1.p, bus1.p) annotation(
- Line(points = {{-80, 60}, {-80, 42}}, color = {0, 0, 255}));
- connect(pwLine2_4.p, bus2.p) annotation(
- Line(points = {{64, 21}, {64, 42}, {60, 42}}, color = {0, 0, 255}));
- connect(bus1.p, pwLine1_2.p) annotation(
- Line(points = {{-80, 42}, {-80, 30}, {-17, 30}}, color = {0, 0, 255}));
- connect(pwLine1_2.n, bus2.p) annotation(
- Line(points = {{1, 30}, {60, 30}, {60, 42}}, color = {0, 0, 255}));
- connect(bus3.p, pwLine3_4.p) annotation(
- Line(points = {{-80, -18}, {-71.125, -18}, {-71.125, 2}, {-13, 2}}, color = {0, 0, 255}));
- annotation(
- uses(OpenIPSL(version = "1.5.0"), Modelica(version = "3.2.3")),
- experiment(StartTime = 0, StopTime = 100, Tolerance = 1e-06, Interval = 0.2),
- __OpenModelica_simulationFlags(lv = "LOG_STATS", outputFormat = "mat", s = "rungekutta"));
-end Model;
diff --git a/Power_System_Modeling_Of_A_4-Bus_System_Using_Varying_Load_From_Openipsl_By_Mr_Pritish_Chatterjee/project_files/Power_system_modeling_of_a_4bus_system_using_varying_load_and_SVC.pdf b/Power_System_Modeling_Of_A_4-Bus_System_Using_Varying_Load_From_Openipsl_By_Mr_Pritish_Chatterjee/project_files/Power_system_modeling_of_a_4bus_system_using_varying_load_and_SVC.pdf
deleted file mode 100644
index d7fdebd..0000000
Binary files a/Power_System_Modeling_Of_A_4-Bus_System_Using_Varying_Load_From_Openipsl_By_Mr_Pritish_Chatterjee/project_files/Power_system_modeling_of_a_4bus_system_using_varying_load_and_SVC.pdf and /dev/null differ
diff --git a/Power_System_Modeling_Using_A_Gas_Turbine_Governor_System_(ggov)._By_Prof_Prof._Luigi_Vanfretti_And_Biswarup_Mukherjee/A4_final.pdf b/Power_System_Modeling_Using_A_Gas_Turbine_Governor_System_(ggov)._By_Prof_Prof._Luigi_Vanfretti_And_Biswarup_Mukherjee/A4_final.pdf
deleted file mode 100644
index 2c1e534..0000000
Binary files a/Power_System_Modeling_Using_A_Gas_Turbine_Governor_System_(ggov)._By_Prof_Prof._Luigi_Vanfretti_And_Biswarup_Mukherjee/A4_final.pdf and /dev/null differ
diff --git a/Power_System_Modeling_Using_A_Gas_Turbine_Governor_System_(ggov)._By_Prof_Prof._Luigi_Vanfretti_And_Biswarup_Mukherjee/README.txt b/Power_System_Modeling_Using_A_Gas_Turbine_Governor_System_(ggov)._By_Prof_Prof._Luigi_Vanfretti_And_Biswarup_Mukherjee/README.txt
deleted file mode 100644
index 3947be4..0000000
--- a/Power_System_Modeling_Using_A_Gas_Turbine_Governor_System_(ggov)._By_Prof_Prof._Luigi_Vanfretti_And_Biswarup_Mukherjee/README.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-About the Power System Simulation
-
-Title Of The Power System Simulation Project: Power System Modeling Using A Gas Turbine Governor System (ggov).
-Proposar Name: Prof L. Vanfretti And B. Mukherjee
-University: Kth Sweden And Iit Bombay
-
-
-OM PSSP Project By FOSSEE, IIT Bombay
diff --git a/Power_System_Modeling_Using_A_Gas_Turbine_Governor_System_(ggov)._By_Prof_Prof._Luigi_Vanfretti_And_Biswarup_Mukherjee/project_files/A4_final.pdf b/Power_System_Modeling_Using_A_Gas_Turbine_Governor_System_(ggov)._By_Prof_Prof._Luigi_Vanfretti_And_Biswarup_Mukherjee/project_files/A4_final.pdf
deleted file mode 100644
index 2c1e534..0000000
Binary files a/Power_System_Modeling_Using_A_Gas_Turbine_Governor_System_(ggov)._By_Prof_Prof._Luigi_Vanfretti_And_Biswarup_Mukherjee/project_files/A4_final.pdf and /dev/null differ
diff --git a/Power_System_Modeling_Using_A_Gas_Turbine_Governor_System_(ggov)._By_Prof_Prof._Luigi_Vanfretti_And_Biswarup_Mukherjee/project_files/GGOV.mo b/Power_System_Modeling_Using_A_Gas_Turbine_Governor_System_(ggov)._By_Prof_Prof._Luigi_Vanfretti_And_Biswarup_Mukherjee/project_files/GGOV.mo
deleted file mode 100644
index 76b274c..0000000
--- a/Power_System_Modeling_Using_A_Gas_Turbine_Governor_System_(ggov)._By_Prof_Prof._Luigi_Vanfretti_And_Biswarup_Mukherjee/project_files/GGOV.mo
+++ /dev/null
@@ -1,92 +0,0 @@
-within ;
-model GGOV "three phase to ground fault test of GGOV"
- extends OpenIPSL.Examples.SMIBpartial;
- OpenIPSL.Electrical.Machines.PSSE.GENROU generator(
- Xppd=0.2,
- Xppq=0.2,
- Xpp=0.2,
- Xl=0.12,
- M_b=100,
- Tpd0=5,
- Tppd0=0.50000E-01,
- Tppq0=0.1,
- H=4.0000,
- D=0,
- Xd=1.41,
- Xq=1.3500,
- Xpd=0.3,
- S10=0.1,
- S12=0.5,
- Xpq=0.6,
- Tpq0=0.7,
- V_0=1,
- angle_0=4.05,
- P_0=39.99995,
- Q_0=5.416571)
- annotation (Placement(transformation(extent={{-100,-16},{-60,18}})));
- OpenIPSL.Electrical.Controls.PSSE.TG.GGOV1.GGOV1 gGOV1pele(
- R=0.04,
- T_pelec=1,
- maxerr=0.05,
- minerr=-0.05,
- Kpgov=10,
- Kigov=2,
- Kdgov=0,
- Tdgov=1,
- Vmax=1,
- Vmin=0.15,
- Tact=0.5,
- Kturb=1.5,
- Wfnl=0.2,
- Tb=0.1,
- Tc=0,
- Teng=0,
- Tfload=3,
- Kpload=2,
- Kiload=0.67,
- Ldref=1,
- Dm=0,
- Ropen=0.1,
- Rclose=-0.1,
- Kimw=0,
- Aset=0.1,
- Ka=10,
- Ta=0.1,
- Trate=0,
- db=0,
- Tsa=4,
- Tsb=5,
- Rup=99,
- Rdown=-99,
- DELT=0.005,
- Flag=0) annotation (Placement(transformation(
- extent={{-15,-10},{15,10}},
- rotation=180,
- origin={-81,40})));
-equation
- connect(gGOV1pele.PELEC, generator.PELEC) annotation (Line(
- points={{-65.5345,43.8696},{-56,43.8696},{-56,44},{-46,44},{-46,6.1},{-58,
- 6.1}},
- color={0,0,127},
- smooth=Smooth.None));
- connect(generator.EFD0, generator.EFD) annotation (Line(
- points={{-58,-7.5},{-52,-7.5},{-52,-28},{-112,-28},{-112,-7.5},{-104,-7.5}},
- color={0,0,127},
- smooth=Smooth.None));
-
- connect(gGOV1pele.PMECH, generator.PMECH) annotation (Line(points={{-96.5172,
- 39.5652},{-102,39.5652},{-102,40},{-114,40},{-114,9.5},{-104,9.5}},
- color={0,0,127}));
- connect(generator.SPEED, gGOV1pele.SPEED) annotation (Line(points={{-58,12.9},
- {-52,12.9},{-52,34},{-58,34},{-58,34.3478},{-65.5862,34.3478}},
- color={0,0,127}));
- connect(generator.p, GEN1.p) annotation (Line(points={{-60,1},{-50,1},{-50,0},
- {-40,0}}, color={0,0,255}));
- annotation (
- Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-120,-100},{
- 100,100}})),
- Documentation,
- experiment(StopTime=10),
- uses(OpenIPSL(version="1.5.0")),
- Icon(coordinateSystem(extent={{-120,-100},{100,100}})));
-end GGOV;
diff --git a/Power_System_Modeling_Using_A_Time_Varying_Load_From_Openipsl_By_Mr_Biswarup_Mukherjee/A5_final.pdf b/Power_System_Modeling_Using_A_Time_Varying_Load_From_Openipsl_By_Mr_Biswarup_Mukherjee/A5_final.pdf
deleted file mode 100644
index 1cf7f0a..0000000
Binary files a/Power_System_Modeling_Using_A_Time_Varying_Load_From_Openipsl_By_Mr_Biswarup_Mukherjee/A5_final.pdf and /dev/null differ
diff --git a/Power_System_Modeling_Using_A_Time_Varying_Load_From_Openipsl_By_Mr_Biswarup_Mukherjee/README.txt b/Power_System_Modeling_Using_A_Time_Varying_Load_From_Openipsl_By_Mr_Biswarup_Mukherjee/README.txt
deleted file mode 100644
index 794c060..0000000
--- a/Power_System_Modeling_Using_A_Time_Varying_Load_From_Openipsl_By_Mr_Biswarup_Mukherjee/README.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-About the Power System Simulation
-
-Title Of The Power System Simulation Project: Power System Modeling Using A Time Varying Load From Openipsl
-Proposar Name: Mr B. Mukherjee
-University: Iit B
-
-
-OM PSSP Project By FOSSEE, IIT Bombay
diff --git a/Power_System_Modeling_Using_A_Time_Varying_Load_From_Openipsl_By_Mr_Biswarup_Mukherjee/project_files/A5_final.pdf b/Power_System_Modeling_Using_A_Time_Varying_Load_From_Openipsl_By_Mr_Biswarup_Mukherjee/project_files/A5_final.pdf
deleted file mode 100644
index 1cf7f0a..0000000
Binary files a/Power_System_Modeling_Using_A_Time_Varying_Load_From_Openipsl_By_Mr_Biswarup_Mukherjee/project_files/A5_final.pdf and /dev/null differ
diff --git a/Power_System_Modeling_Using_A_Time_Varying_Load_From_Openipsl_By_Mr_Biswarup_Mukherjee/project_files/LoadVariation.mo b/Power_System_Modeling_Using_A_Time_Varying_Load_From_Openipsl_By_Mr_Biswarup_Mukherjee/project_files/LoadVariation.mo
deleted file mode 100644
index 43c69e6..0000000
--- a/Power_System_Modeling_Using_A_Time_Varying_Load_From_Openipsl_By_Mr_Biswarup_Mukherjee/project_files/LoadVariation.mo
+++ /dev/null
@@ -1,125 +0,0 @@
-within ;
-package LoadVariation
- model Network
- OpenIPSL.Electrical.Buses.Bus B1(V_b=13.8)
- annotation (Placement(transformation(extent={{-46,-12},{-22,12}})));
- OpenIPSL.Electrical.Buses.Bus B2(V_b=13.8)
- annotation (Placement(transformation(extent={{-18,-12},{6,12}})));
- OpenIPSL.Electrical.Buses.Bus B3(V_b=13.8)
- annotation (Placement(transformation(extent={{78,-12},{102,12}})));
- OpenIPSL.Electrical.Branches.PSAT.TwoWindingTransformer transformer(
- x=0.15,
- r=0,
- V_b=13.8,
- Vn=13.8,
- Sn=10) annotation (Placement(transformation(extent={{-34,-10},{-14,10}})));
- OpenIPSL.Electrical.Branches.PwLine line_1(
- G=0,
- B=0,
- R=0.001,
- X=0.2) annotation (Placement(transformation(extent={{34,14},{52,26}})));
- OpenIPSL.Electrical.Events.PwFault fault(
- R=0,
- X=1e-5,
- t1=30,
- t2=30.6) annotation (Placement(transformation(extent={{66,-58},{86,-38}})));
- OpenIPSL.Electrical.Branches.PwLine line_2(
- G=0,
- B=0,
- R=0.0005,
- X=0.1) annotation (Placement(transformation(extent={{14,-26},{32,-14}})));
- public
- OpenIPSL.Electrical.Buses.Bus B4(V_b=13.8)
- annotation (Placement(transformation(extent={{32,-32},{56,-8}})));
- OpenIPSL.Electrical.Branches.PwLine line_3(
- G=0,
- B=0,
- R=0.0005,
- X=0.1) annotation (Placement(transformation(extent={{54,-26},{72,-14}})));
- OpenIPSL.Electrical.Loads.PSSE.Load_variation
- load(
- PQBRAK=0.7,
- characteristic=2,
- P_0=5,
- Q_0=1,
- V_b=13.8,
- V_0=0.9928146,
- angle_0=0.002058467,
- t1=5,
- d_t=2,
- d_P=0.5)
- annotation (Placement(transformation(extent={{-10,-58},{10,-40}})));
- OpenIPSL.Electrical.Machines.PSSE.GENCLS infiniteGen(
- angle_0=0,
- Q_0=0.7185408,
- P_0=2.569692e-5,
- V_b=13.8,
- M_b=1000) annotation (Placement(transformation(extent={{120,-10},{100,10}})));
- OpenIPSL.Electrical.Machines.PSSE.GENROU gENROU(
- H=4.28,
- Tpd0=7.5,
- Tppd0=0.054,
- Tppq0=0.107,
- D=2,
- Xd=1.64,
- Xq=1.575,
- Xpd=0.159,
- Xppd=0.102,
- Xppq=0.1,
- Xl=0.113,
- S10=0.087,
- S12=0.2681,
- R_a=0.034,
- Xpq=0.306,
- Tpq0=1.5,
- V_b=13.8,
- V_0=1,
- angle_0=5.198718,
- P_0=5,
- Q_0=0.5853283,
- M_b=10) annotation (Placement(transformation(extent={{-88,-18},{-54,18}})));
- inner OpenIPSL.Electrical.SystemBase SysData(S_b=10, fn=50) annotation (Placement(transformation(extent={{-98,78},
- {-44,98}})));
- equation
- connect(B1.p, transformer.p)
- annotation (Line(points={{-34,0},{-35,0}}, color={0,0,255}));
- connect(transformer.n, B2.p)
- annotation (Line(points={{-13,0},{-6,0}}, color={0,0,255}));
- connect(B2.p, line_1.p) annotation (Line(points={{-6,0},{-6,0},{6,0},{6,20},
- {34.9,20}}, color={0,0,255}));
- connect(line_1.n, B3.p) annotation (Line(points={{51.1,20},{80,20},{80,0},{
- 90,0}}, color={0,0,255}));
- connect(line_2.p,line_1. p) annotation (Line(points={{14.9,-20},{6,-20},{6,20},{34.9,20}}, color={0,0,255}));
- connect(B4.p, line_2.n)
- annotation (Line(points={{44,-20},{31.1,-20}}, color={0,0,255}));
- connect(B4.p, line_3.p)
- annotation (Line(points={{44,-20},{54.9,-20}}, color={0,0,255}));
- connect(line_3.n, B3.p) annotation (Line(points={{71.1,-20},{80,-20},{80,0},
- {90,0}}, color={0,0,255}));
- connect(fault.p,line_3. p) annotation (Line(points={{64.3333,-48},{50,-48},
- {50,-20},{54.9,-20}}, color={0,0,255}));
- connect(infiniteGen.p, B3.p)
- annotation (Line(points={{100,0},{95,0},{90,0}}, color={0,0,255}));
- connect(load.p,line_1. p) annotation (Line(points={{0,-40},{0,0},{6,0},{6,20},
- {34.9,20}}, color={0,0,255}));
- connect(gENROU.EFD0,gENROU. EFD) annotation (Line(points={{-52.3,-9},{-48,-9},
- {-48,-28},{-98,-28},{-98,-10},{-98,-9},{-91.4,-9}}, color={0,0,127}));
- connect(gENROU.PMECH, gENROU.PMECH0) annotation (Line(points={{-91.4,9},{-98,
- 9},{-98,24},{-48,24},{-48,9},{-52.3,9}}, color={0,0,127}));
- connect(gENROU.p, B1.p)
- annotation (Line(points={{-54,0},{-54,0},{-34,0}}, color={0,0,255}));
- annotation (
- Icon(coordinateSystem(preserveAspectRatio=false)),
- Diagram(coordinateSystem(preserveAspectRatio=false)),
- experiment(
- StopTime=70,
- __Dymola_fixedstepsize=0.02,
- __Dymola_Algorithm="Rkfix4"),
- __Dymola_experimentFlags(
- Advanced(GenerateVariableDependencies=false, OutputModelicaCode=false),
- Evaluate=false,
- OutputCPUtime=false,
- OutputFlatModelica=false));
- end Network;
-annotation (uses(OpenIPSL(version="1.5.0"), Modelica(version="3.2.2")));
-end LoadVariation;
diff --git a/Power_System_Modelling_Of_A_4-Bus_System_Using_Varying_Load_From_Openipsl_By_Mr_Pritish_Chatterjee/Power_system_modeling_of_a_4bus_system_using_varying_load_from_OpenIPSL.pdf b/Power_System_Modelling_Of_A_4-Bus_System_Using_Varying_Load_From_Openipsl_By_Mr_Pritish_Chatterjee/Power_system_modeling_of_a_4bus_system_using_varying_load_from_OpenIPSL.pdf
new file mode 100644
index 0000000..913ed14
Binary files /dev/null and b/Power_System_Modelling_Of_A_4-Bus_System_Using_Varying_Load_From_Openipsl_By_Mr_Pritish_Chatterjee/Power_system_modeling_of_a_4bus_system_using_varying_load_from_OpenIPSL.pdf differ
diff --git a/Power_System_Modelling_Of_A_4-Bus_System_Using_Varying_Load_From_Openipsl_By_Mr_Pritish_Chatterjee/README.txt b/Power_System_Modelling_Of_A_4-Bus_System_Using_Varying_Load_From_Openipsl_By_Mr_Pritish_Chatterjee/README.txt
new file mode 100644
index 0000000..054a0f7
--- /dev/null
+++ b/Power_System_Modelling_Of_A_4-Bus_System_Using_Varying_Load_From_Openipsl_By_Mr_Pritish_Chatterjee/README.txt
@@ -0,0 +1,8 @@
+About the Power System Simulation
+
+Title Of The Power System Simulation Project: Power system modeling of a 4-bus system using varying load from OpenIPSL
+Proposar Name: Mr Pritish Chatterjee
+University: University Of Calcutta
+
+
+OM PSSP Project By FOSSEE, IIT Bombay
diff --git a/Power_System_Modelling_Of_A_4-Bus_System_Using_Varying_Load_From_Openipsl_By_Mr_Pritish_Chatterjee/project_files/Model.mo b/Power_System_Modelling_Of_A_4-Bus_System_Using_Varying_Load_From_Openipsl_By_Mr_Pritish_Chatterjee/project_files/Model.mo
new file mode 100644
index 0000000..e596be6
--- /dev/null
+++ b/Power_System_Modelling_Of_A_4-Bus_System_Using_Varying_Load_From_Openipsl_By_Mr_Pritish_Chatterjee/project_files/Model.mo
@@ -0,0 +1,69 @@
+model Model
+ inner OpenIPSL.Electrical.SystemBase SysData(S_b = 100, fn = 50) annotation(
+ Placement(visible = true, transformation(origin = {-6, 88}, extent = {{-12, -10}, {12, 10}}, rotation = 0)));
+ OpenIPSL.Electrical.Machines.PSAT.Order2 generator2(D = 0, M = 8, P_0 = 318, Sn = 100, V_0 = 1.02, V_b = 230, Vn = 230, ra = 0.001, x1d = 0.2) annotation(
+ Placement(visible = true, transformation(origin = {60, -60}, extent = {{-10, -10}, {10, 10}}, rotation = 90)));
+ OpenIPSL.Electrical.Buses.Bus bus1(V_0 = 1.0, V_b = 138, angle_0 = 0, displayPF = true) annotation(
+ Placement(visible = true, transformation(origin = {-80, 42}, extent = {{-12, -12}, {12, 12}}, rotation = -90)));
+ OpenIPSL.Electrical.Buses.Bus bus2(P_0 = 20, Q_0 = 10, V_0 = 1, V_b = 138, angle_0 = 0, displayPF = true) annotation(
+ Placement(visible = true, transformation(origin = {60, 42}, extent = {{-10, -10}, {10, 10}}, rotation = 90)));
+ OpenIPSL.Electrical.Buses.Bus bus3(P_0 = 300, Q_0 = 6, V_0 = 1, V_b = 138, angle_0 = 0, displayPF = true) annotation(
+ Placement(visible = true, transformation(origin = {-80, -18}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine1_2(B = 0, G = 0, R = 0.01008, X = 0.05040) annotation(
+ Placement(visible = true, transformation(origin = {-8, 30}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine1_3(B = 0, G = 0, R = 0.00744, X = 0.03720) annotation(
+ Placement(visible = true, transformation(origin = {-84, 16}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine3_4(B = 0, G = 0, R = 0.01272, X = 0.06360) annotation(
+ Placement(visible = true, transformation(origin = {-4, 2}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
+ OpenIPSL.Electrical.Branches.PwLine pwLine2_4(B = 0, G = 0, R = 0.0074, X = 0.03720, t1 = 70, t2 = 75) annotation(
+ Placement(visible = true, transformation(origin = {64, 12}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
+ OpenIPSL.Electrical.Buses.Bus bus4(P_0 = 318, V_0 = 1, V_b = 138, angle_0 = 0, displayPF = true) annotation(
+ Placement(visible = true, transformation(origin = {60, -12}, extent = {{-10, -10}, {10, 10}}, rotation = 90)));
+ OpenIPSL.Electrical.Buses.InfiniteBus infiniteBus1(V_0 = 1.0, V_b = 138) annotation(
+ Placement(visible = true, transformation(origin = {-80, 70}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
+ OpenIPSL.Electrical.Banks.PSSE.SVC.SVC svc1(Bref = 0.02, OtherSignals = 0, Sbase = 100, T1 = 10, T2 = 2, T3 = 3, T4 = 4, T5 = 5, Vmax = 0.99, Vmin = 0.56, Vref = 1, init_SVC_Lag = 1, init_SVC_Leadlag = 2) annotation(
+ Placement(visible = true, transformation(origin = {-20, -52}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
+ OpenIPSL.Electrical.Loads.PSSE.Load load1(P_0 = 60, Q_0 = 20, V_0 = 1, V_b = 138, angle_0 = 0) annotation(
+ Placement(visible = true, transformation(origin = {80, -46}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
+ OpenIPSL.Electrical.Loads.PSSE.Load load2(P_0 = 20, Q_0 = 10, V_0 = 1, V_b = 138, angle_0 = 0) annotation(
+ Placement(visible = true, transformation(origin = {60, 66}, extent = {{-10, -10}, {10, 10}}, rotation = 180)));
+ OpenIPSL.Electrical.Loads.PSSE.Load_variation load_variation1(P_0 = 300, Q_0 = 6, V_0 = 1, V_b = 138, angle_0 = 0, d_P = 1.5, d_t = 5, t1 = 25) annotation(
+ Placement(visible = true, transformation(origin = {-82, -58}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
+equation
+ connect(load2.p, bus2.p) annotation(
+ Line(points = {{60, 56}, {60, 42}}, color = {0, 0, 255}));
+ connect(svc1.VIB, bus3.p) annotation(
+ Line(points = {{-30, -52}, {-50, -52}, {-50, -32}, {-80, -32}, {-80, -18}, {-80, -18}}, color = {0, 0, 255}));
+ connect(load_variation1.p, bus3.p) annotation(
+ Line(points = {{-82, -48}, {-82, -48}, {-82, -18}, {-80, -18}, {-80, -18}}, color = {0, 0, 255}));
+ connect(load1.p, bus4.p) annotation(
+ Line(points = {{80, -36}, {82, -36}, {82, -22}, {68, -22}, {68, -12}, {60, -12}, {60, -12}}, color = {0, 0, 255}));
+ connect(pwLine3_4.n, bus4.p) annotation(
+ Line(points = {{5, 2}, {52, 2}, {52, -12}, {60, -12}}, color = {0, 0, 255}));
+ connect(pwLine2_4.n, bus4.p) annotation(
+ Line(points = {{64, 3}, {64, -12}, {60, -12}}, color = {0, 0, 255}));
+ connect(bus4.p, generator2.p) annotation(
+ Line(points = {{60, -12}, {60, -50}}, color = {0, 0, 255}));
+ connect(bus1.p, pwLine1_3.p) annotation(
+ Line(points = {{-80, 42}, {-84, 42}, {-84, 25}}, color = {0, 0, 255}));
+ connect(pwLine1_3.n, bus3.p) annotation(
+ Line(points = {{-84, 7}, {-84, -18}, {-80, -18}}, color = {0, 0, 255}));
+ connect(generator2.vf, generator2.vf0) annotation(
+ Line(points = {{55, -72}, {57, -72}, {57, -84}, {45, -84}, {45, -68}, {49, -68}, {49, -68}}, color = {0, 0, 127}));
+ connect(generator2.pm, generator2.pm0) annotation(
+ Line(points = {{65, -72}, {65, -72}, {65, -82}, {79, -82}, {79, -68}, {71, -68}, {71, -68}}, color = {0, 0, 127}));
+ connect(infiniteBus1.p, bus1.p) annotation(
+ Line(points = {{-80, 60}, {-80, 42}}, color = {0, 0, 255}));
+ connect(pwLine2_4.p, bus2.p) annotation(
+ Line(points = {{64, 21}, {64, 42}, {60, 42}}, color = {0, 0, 255}));
+ connect(bus1.p, pwLine1_2.p) annotation(
+ Line(points = {{-80, 42}, {-80, 30}, {-17, 30}}, color = {0, 0, 255}));
+ connect(pwLine1_2.n, bus2.p) annotation(
+ Line(points = {{1, 30}, {60, 30}, {60, 42}}, color = {0, 0, 255}));
+ connect(bus3.p, pwLine3_4.p) annotation(
+ Line(points = {{-80, -18}, {-71.125, -18}, {-71.125, 2}, {-13, 2}}, color = {0, 0, 255}));
+ annotation(
+ uses(OpenIPSL(version = "1.5.0"), Modelica(version = "3.2.3")),
+ experiment(StartTime = 0, StopTime = 100, Tolerance = 1e-06, Interval = 0.2),
+ __OpenModelica_simulationFlags(lv = "LOG_STATS", outputFormat = "mat", s = "rungekutta"));
+end Model;
diff --git a/Power_System_Modelling_Of_A_4-Bus_System_Using_Varying_Load_From_Openipsl_By_Mr_Pritish_Chatterjee/project_files/Power_system_modeling_of_a_4bus_system_using_varying_load_and_SVC.pdf b/Power_System_Modelling_Of_A_4-Bus_System_Using_Varying_Load_From_Openipsl_By_Mr_Pritish_Chatterjee/project_files/Power_system_modeling_of_a_4bus_system_using_varying_load_and_SVC.pdf
new file mode 100644
index 0000000..d7fdebd
Binary files /dev/null and b/Power_System_Modelling_Of_A_4-Bus_System_Using_Varying_Load_From_Openipsl_By_Mr_Pritish_Chatterjee/project_files/Power_system_modeling_of_a_4bus_system_using_varying_load_and_SVC.pdf differ
diff --git a/Power_System_Modelling_Using_A_Gas_Turbine_Governor_System_(ggov)_By_Prof_Prof._Luigi_Vanfretti_And_Biswarup_Mukherjee/A4_final.pdf b/Power_System_Modelling_Using_A_Gas_Turbine_Governor_System_(ggov)_By_Prof_Prof._Luigi_Vanfretti_And_Biswarup_Mukherjee/A4_final.pdf
new file mode 100644
index 0000000..2c1e534
Binary files /dev/null and b/Power_System_Modelling_Using_A_Gas_Turbine_Governor_System_(ggov)_By_Prof_Prof._Luigi_Vanfretti_And_Biswarup_Mukherjee/A4_final.pdf differ
diff --git a/Power_System_Modelling_Using_A_Gas_Turbine_Governor_System_(ggov)_By_Prof_Prof._Luigi_Vanfretti_And_Biswarup_Mukherjee/README.txt b/Power_System_Modelling_Using_A_Gas_Turbine_Governor_System_(ggov)_By_Prof_Prof._Luigi_Vanfretti_And_Biswarup_Mukherjee/README.txt
new file mode 100644
index 0000000..3947be4
--- /dev/null
+++ b/Power_System_Modelling_Using_A_Gas_Turbine_Governor_System_(ggov)_By_Prof_Prof._Luigi_Vanfretti_And_Biswarup_Mukherjee/README.txt
@@ -0,0 +1,8 @@
+About the Power System Simulation
+
+Title Of The Power System Simulation Project: Power System Modeling Using A Gas Turbine Governor System (ggov).
+Proposar Name: Prof L. Vanfretti And B. Mukherjee
+University: Kth Sweden And Iit Bombay
+
+
+OM PSSP Project By FOSSEE, IIT Bombay
diff --git a/Power_System_Modelling_Using_A_Gas_Turbine_Governor_System_(ggov)_By_Prof_Prof._Luigi_Vanfretti_And_Biswarup_Mukherjee/project_files/A4_final.pdf b/Power_System_Modelling_Using_A_Gas_Turbine_Governor_System_(ggov)_By_Prof_Prof._Luigi_Vanfretti_And_Biswarup_Mukherjee/project_files/A4_final.pdf
new file mode 100644
index 0000000..2c1e534
Binary files /dev/null and b/Power_System_Modelling_Using_A_Gas_Turbine_Governor_System_(ggov)_By_Prof_Prof._Luigi_Vanfretti_And_Biswarup_Mukherjee/project_files/A4_final.pdf differ
diff --git a/Power_System_Modelling_Using_A_Gas_Turbine_Governor_System_(ggov)_By_Prof_Prof._Luigi_Vanfretti_And_Biswarup_Mukherjee/project_files/GGOV.mo b/Power_System_Modelling_Using_A_Gas_Turbine_Governor_System_(ggov)_By_Prof_Prof._Luigi_Vanfretti_And_Biswarup_Mukherjee/project_files/GGOV.mo
new file mode 100644
index 0000000..76b274c
--- /dev/null
+++ b/Power_System_Modelling_Using_A_Gas_Turbine_Governor_System_(ggov)_By_Prof_Prof._Luigi_Vanfretti_And_Biswarup_Mukherjee/project_files/GGOV.mo
@@ -0,0 +1,92 @@
+within ;
+model GGOV "three phase to ground fault test of GGOV"
+ extends OpenIPSL.Examples.SMIBpartial;
+ OpenIPSL.Electrical.Machines.PSSE.GENROU generator(
+ Xppd=0.2,
+ Xppq=0.2,
+ Xpp=0.2,
+ Xl=0.12,
+ M_b=100,
+ Tpd0=5,
+ Tppd0=0.50000E-01,
+ Tppq0=0.1,
+ H=4.0000,
+ D=0,
+ Xd=1.41,
+ Xq=1.3500,
+ Xpd=0.3,
+ S10=0.1,
+ S12=0.5,
+ Xpq=0.6,
+ Tpq0=0.7,
+ V_0=1,
+ angle_0=4.05,
+ P_0=39.99995,
+ Q_0=5.416571)
+ annotation (Placement(transformation(extent={{-100,-16},{-60,18}})));
+ OpenIPSL.Electrical.Controls.PSSE.TG.GGOV1.GGOV1 gGOV1pele(
+ R=0.04,
+ T_pelec=1,
+ maxerr=0.05,
+ minerr=-0.05,
+ Kpgov=10,
+ Kigov=2,
+ Kdgov=0,
+ Tdgov=1,
+ Vmax=1,
+ Vmin=0.15,
+ Tact=0.5,
+ Kturb=1.5,
+ Wfnl=0.2,
+ Tb=0.1,
+ Tc=0,
+ Teng=0,
+ Tfload=3,
+ Kpload=2,
+ Kiload=0.67,
+ Ldref=1,
+ Dm=0,
+ Ropen=0.1,
+ Rclose=-0.1,
+ Kimw=0,
+ Aset=0.1,
+ Ka=10,
+ Ta=0.1,
+ Trate=0,
+ db=0,
+ Tsa=4,
+ Tsb=5,
+ Rup=99,
+ Rdown=-99,
+ DELT=0.005,
+ Flag=0) annotation (Placement(transformation(
+ extent={{-15,-10},{15,10}},
+ rotation=180,
+ origin={-81,40})));
+equation
+ connect(gGOV1pele.PELEC, generator.PELEC) annotation (Line(
+ points={{-65.5345,43.8696},{-56,43.8696},{-56,44},{-46,44},{-46,6.1},{-58,
+ 6.1}},
+ color={0,0,127},
+ smooth=Smooth.None));
+ connect(generator.EFD0, generator.EFD) annotation (Line(
+ points={{-58,-7.5},{-52,-7.5},{-52,-28},{-112,-28},{-112,-7.5},{-104,-7.5}},
+ color={0,0,127},
+ smooth=Smooth.None));
+
+ connect(gGOV1pele.PMECH, generator.PMECH) annotation (Line(points={{-96.5172,
+ 39.5652},{-102,39.5652},{-102,40},{-114,40},{-114,9.5},{-104,9.5}},
+ color={0,0,127}));
+ connect(generator.SPEED, gGOV1pele.SPEED) annotation (Line(points={{-58,12.9},
+ {-52,12.9},{-52,34},{-58,34},{-58,34.3478},{-65.5862,34.3478}},
+ color={0,0,127}));
+ connect(generator.p, GEN1.p) annotation (Line(points={{-60,1},{-50,1},{-50,0},
+ {-40,0}}, color={0,0,255}));
+ annotation (
+ Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-120,-100},{
+ 100,100}})),
+ Documentation,
+ experiment(StopTime=10),
+ uses(OpenIPSL(version="1.5.0")),
+ Icon(coordinateSystem(extent={{-120,-100},{100,100}})));
+end GGOV;
diff --git a/Power_System_Modelling_Using_A_Time_Varying_Load_From_Openipsl_By_Mr_Biswarup_Mukherjee/A5_final.pdf b/Power_System_Modelling_Using_A_Time_Varying_Load_From_Openipsl_By_Mr_Biswarup_Mukherjee/A5_final.pdf
new file mode 100644
index 0000000..1cf7f0a
Binary files /dev/null and b/Power_System_Modelling_Using_A_Time_Varying_Load_From_Openipsl_By_Mr_Biswarup_Mukherjee/A5_final.pdf differ
diff --git a/Power_System_Modelling_Using_A_Time_Varying_Load_From_Openipsl_By_Mr_Biswarup_Mukherjee/README.txt b/Power_System_Modelling_Using_A_Time_Varying_Load_From_Openipsl_By_Mr_Biswarup_Mukherjee/README.txt
new file mode 100644
index 0000000..794c060
--- /dev/null
+++ b/Power_System_Modelling_Using_A_Time_Varying_Load_From_Openipsl_By_Mr_Biswarup_Mukherjee/README.txt
@@ -0,0 +1,8 @@
+About the Power System Simulation
+
+Title Of The Power System Simulation Project: Power System Modeling Using A Time Varying Load From Openipsl
+Proposar Name: Mr B. Mukherjee
+University: Iit B
+
+
+OM PSSP Project By FOSSEE, IIT Bombay
diff --git a/Power_System_Modelling_Using_A_Time_Varying_Load_From_Openipsl_By_Mr_Biswarup_Mukherjee/project_files/A5_final.pdf b/Power_System_Modelling_Using_A_Time_Varying_Load_From_Openipsl_By_Mr_Biswarup_Mukherjee/project_files/A5_final.pdf
new file mode 100644
index 0000000..1cf7f0a
Binary files /dev/null and b/Power_System_Modelling_Using_A_Time_Varying_Load_From_Openipsl_By_Mr_Biswarup_Mukherjee/project_files/A5_final.pdf differ
diff --git a/Power_System_Modelling_Using_A_Time_Varying_Load_From_Openipsl_By_Mr_Biswarup_Mukherjee/project_files/LoadVariation.mo b/Power_System_Modelling_Using_A_Time_Varying_Load_From_Openipsl_By_Mr_Biswarup_Mukherjee/project_files/LoadVariation.mo
new file mode 100644
index 0000000..43c69e6
--- /dev/null
+++ b/Power_System_Modelling_Using_A_Time_Varying_Load_From_Openipsl_By_Mr_Biswarup_Mukherjee/project_files/LoadVariation.mo
@@ -0,0 +1,125 @@
+within ;
+package LoadVariation
+ model Network
+ OpenIPSL.Electrical.Buses.Bus B1(V_b=13.8)
+ annotation (Placement(transformation(extent={{-46,-12},{-22,12}})));
+ OpenIPSL.Electrical.Buses.Bus B2(V_b=13.8)
+ annotation (Placement(transformation(extent={{-18,-12},{6,12}})));
+ OpenIPSL.Electrical.Buses.Bus B3(V_b=13.8)
+ annotation (Placement(transformation(extent={{78,-12},{102,12}})));
+ OpenIPSL.Electrical.Branches.PSAT.TwoWindingTransformer transformer(
+ x=0.15,
+ r=0,
+ V_b=13.8,
+ Vn=13.8,
+ Sn=10) annotation (Placement(transformation(extent={{-34,-10},{-14,10}})));
+ OpenIPSL.Electrical.Branches.PwLine line_1(
+ G=0,
+ B=0,
+ R=0.001,
+ X=0.2) annotation (Placement(transformation(extent={{34,14},{52,26}})));
+ OpenIPSL.Electrical.Events.PwFault fault(
+ R=0,
+ X=1e-5,
+ t1=30,
+ t2=30.6) annotation (Placement(transformation(extent={{66,-58},{86,-38}})));
+ OpenIPSL.Electrical.Branches.PwLine line_2(
+ G=0,
+ B=0,
+ R=0.0005,
+ X=0.1) annotation (Placement(transformation(extent={{14,-26},{32,-14}})));
+ public
+ OpenIPSL.Electrical.Buses.Bus B4(V_b=13.8)
+ annotation (Placement(transformation(extent={{32,-32},{56,-8}})));
+ OpenIPSL.Electrical.Branches.PwLine line_3(
+ G=0,
+ B=0,
+ R=0.0005,
+ X=0.1) annotation (Placement(transformation(extent={{54,-26},{72,-14}})));
+ OpenIPSL.Electrical.Loads.PSSE.Load_variation
+ load(
+ PQBRAK=0.7,
+ characteristic=2,
+ P_0=5,
+ Q_0=1,
+ V_b=13.8,
+ V_0=0.9928146,
+ angle_0=0.002058467,
+ t1=5,
+ d_t=2,
+ d_P=0.5)
+ annotation (Placement(transformation(extent={{-10,-58},{10,-40}})));
+ OpenIPSL.Electrical.Machines.PSSE.GENCLS infiniteGen(
+ angle_0=0,
+ Q_0=0.7185408,
+ P_0=2.569692e-5,
+ V_b=13.8,
+ M_b=1000) annotation (Placement(transformation(extent={{120,-10},{100,10}})));
+ OpenIPSL.Electrical.Machines.PSSE.GENROU gENROU(
+ H=4.28,
+ Tpd0=7.5,
+ Tppd0=0.054,
+ Tppq0=0.107,
+ D=2,
+ Xd=1.64,
+ Xq=1.575,
+ Xpd=0.159,
+ Xppd=0.102,
+ Xppq=0.1,
+ Xl=0.113,
+ S10=0.087,
+ S12=0.2681,
+ R_a=0.034,
+ Xpq=0.306,
+ Tpq0=1.5,
+ V_b=13.8,
+ V_0=1,
+ angle_0=5.198718,
+ P_0=5,
+ Q_0=0.5853283,
+ M_b=10) annotation (Placement(transformation(extent={{-88,-18},{-54,18}})));
+ inner OpenIPSL.Electrical.SystemBase SysData(S_b=10, fn=50) annotation (Placement(transformation(extent={{-98,78},
+ {-44,98}})));
+ equation
+ connect(B1.p, transformer.p)
+ annotation (Line(points={{-34,0},{-35,0}}, color={0,0,255}));
+ connect(transformer.n, B2.p)
+ annotation (Line(points={{-13,0},{-6,0}}, color={0,0,255}));
+ connect(B2.p, line_1.p) annotation (Line(points={{-6,0},{-6,0},{6,0},{6,20},
+ {34.9,20}}, color={0,0,255}));
+ connect(line_1.n, B3.p) annotation (Line(points={{51.1,20},{80,20},{80,0},{
+ 90,0}}, color={0,0,255}));
+ connect(line_2.p,line_1. p) annotation (Line(points={{14.9,-20},{6,-20},{6,20},{34.9,20}}, color={0,0,255}));
+ connect(B4.p, line_2.n)
+ annotation (Line(points={{44,-20},{31.1,-20}}, color={0,0,255}));
+ connect(B4.p, line_3.p)
+ annotation (Line(points={{44,-20},{54.9,-20}}, color={0,0,255}));
+ connect(line_3.n, B3.p) annotation (Line(points={{71.1,-20},{80,-20},{80,0},
+ {90,0}}, color={0,0,255}));
+ connect(fault.p,line_3. p) annotation (Line(points={{64.3333,-48},{50,-48},
+ {50,-20},{54.9,-20}}, color={0,0,255}));
+ connect(infiniteGen.p, B3.p)
+ annotation (Line(points={{100,0},{95,0},{90,0}}, color={0,0,255}));
+ connect(load.p,line_1. p) annotation (Line(points={{0,-40},{0,0},{6,0},{6,20},
+ {34.9,20}}, color={0,0,255}));
+ connect(gENROU.EFD0,gENROU. EFD) annotation (Line(points={{-52.3,-9},{-48,-9},
+ {-48,-28},{-98,-28},{-98,-10},{-98,-9},{-91.4,-9}}, color={0,0,127}));
+ connect(gENROU.PMECH, gENROU.PMECH0) annotation (Line(points={{-91.4,9},{-98,
+ 9},{-98,24},{-48,24},{-48,9},{-52.3,9}}, color={0,0,127}));
+ connect(gENROU.p, B1.p)
+ annotation (Line(points={{-54,0},{-54,0},{-34,0}}, color={0,0,255}));
+ annotation (
+ Icon(coordinateSystem(preserveAspectRatio=false)),
+ Diagram(coordinateSystem(preserveAspectRatio=false)),
+ experiment(
+ StopTime=70,
+ __Dymola_fixedstepsize=0.02,
+ __Dymola_Algorithm="Rkfix4"),
+ __Dymola_experimentFlags(
+ Advanced(GenerateVariableDependencies=false, OutputModelicaCode=false),
+ Evaluate=false,
+ OutputCPUtime=false,
+ OutputFlatModelica=false));
+ end Network;
+annotation (uses(OpenIPSL(version="1.5.0"), Modelica(version="3.2.2")));
+end LoadVariation;
diff --git a/Renewable_Energy_Integration_Of_37-Bus_System_Using_Openipsl_By_Mr_Mohd_Ayaz/README.txt b/Renewable_Energy_Integration_Of_37-Bus_System_Using_Openipsl_By_Mr_Mohd_Ayaz/README.txt
new file mode 100644
index 0000000..9ee484c
--- /dev/null
+++ b/Renewable_Energy_Integration_Of_37-Bus_System_Using_Openipsl_By_Mr_Mohd_Ayaz/README.txt
@@ -0,0 +1,8 @@
+About the Power System Simulation
+
+Title Of The Power System Simulation Project: Renewable Energy Integration of 37-Bus System Using OpenModelica and OpenIPSL
+Proposar Name: Mr Mohd Ayaz
+University: Kamla Nehru Institute Of Technology, Sultanpur
+
+
+OM PSSP Project By FOSSEE, IIT Bombay
diff --git a/Renewable_Energy_Integration_Of_37-Bus_System_Using_Openipsl_By_Mr_Mohd_Ayaz/Renewable_Energy_Integration_of_37_bus_System.pdf b/Renewable_Energy_Integration_Of_37-Bus_System_Using_Openipsl_By_Mr_Mohd_Ayaz/Renewable_Energy_Integration_of_37_bus_System.pdf
new file mode 100644
index 0000000..cb020eb
Binary files /dev/null and b/Renewable_Energy_Integration_Of_37-Bus_System_Using_Openipsl_By_Mr_Mohd_Ayaz/Renewable_Energy_Integration_of_37_bus_System.pdf differ
diff --git a/Renewable_Energy_Integration_Of_37-Bus_System_Using_Openipsl_By_Mr_Mohd_Ayaz/project_files/Renewable_Energy_Integration_of_37_Bus_System_Using_OpenModelica_and_OpenIPSL.zip b/Renewable_Energy_Integration_Of_37-Bus_System_Using_Openipsl_By_Mr_Mohd_Ayaz/project_files/Renewable_Energy_Integration_of_37_Bus_System_Using_OpenModelica_and_OpenIPSL.zip
new file mode 100644
index 0000000..5ab5106
Binary files /dev/null and b/Renewable_Energy_Integration_Of_37-Bus_System_Using_Openipsl_By_Mr_Mohd_Ayaz/project_files/Renewable_Energy_Integration_of_37_Bus_System_Using_OpenModelica_and_OpenIPSL.zip differ
diff --git a/Renewable_Energy_Integration_Of_37-Bus_System_Using_Openipsl_By_Mr_Mohd_Ayaz/project_files/Renewable_Energy_Integration_of_37_bus_System.pdf b/Renewable_Energy_Integration_Of_37-Bus_System_Using_Openipsl_By_Mr_Mohd_Ayaz/project_files/Renewable_Energy_Integration_of_37_bus_System.pdf
new file mode 100644
index 0000000..6600358
Binary files /dev/null and b/Renewable_Energy_Integration_Of_37-Bus_System_Using_Openipsl_By_Mr_Mohd_Ayaz/project_files/Renewable_Energy_Integration_of_37_bus_System.pdf differ
diff --git a/Renewable_Energy_Integration_Of_37-Bus_System_Using_Openmodelica_And_Openipsl_By_Mr_Mohd_Ayaz/README.txt b/Renewable_Energy_Integration_Of_37-Bus_System_Using_Openmodelica_And_Openipsl_By_Mr_Mohd_Ayaz/README.txt
deleted file mode 100644
index 9ee484c..0000000
--- a/Renewable_Energy_Integration_Of_37-Bus_System_Using_Openmodelica_And_Openipsl_By_Mr_Mohd_Ayaz/README.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-About the Power System Simulation
-
-Title Of The Power System Simulation Project: Renewable Energy Integration of 37-Bus System Using OpenModelica and OpenIPSL
-Proposar Name: Mr Mohd Ayaz
-University: Kamla Nehru Institute Of Technology, Sultanpur
-
-
-OM PSSP Project By FOSSEE, IIT Bombay
diff --git a/Renewable_Energy_Integration_Of_37-Bus_System_Using_Openmodelica_And_Openipsl_By_Mr_Mohd_Ayaz/Renewable_Energy_Integration_of_37_bus_System.pdf b/Renewable_Energy_Integration_Of_37-Bus_System_Using_Openmodelica_And_Openipsl_By_Mr_Mohd_Ayaz/Renewable_Energy_Integration_of_37_bus_System.pdf
deleted file mode 100644
index cb020eb..0000000
Binary files a/Renewable_Energy_Integration_Of_37-Bus_System_Using_Openmodelica_And_Openipsl_By_Mr_Mohd_Ayaz/Renewable_Energy_Integration_of_37_bus_System.pdf and /dev/null differ
diff --git a/Renewable_Energy_Integration_Of_37-Bus_System_Using_Openmodelica_And_Openipsl_By_Mr_Mohd_Ayaz/project_files/Renewable_Energy_Integration_of_37_Bus_System_Using_OpenModelica_and_OpenIPSL.zip b/Renewable_Energy_Integration_Of_37-Bus_System_Using_Openmodelica_And_Openipsl_By_Mr_Mohd_Ayaz/project_files/Renewable_Energy_Integration_of_37_Bus_System_Using_OpenModelica_and_OpenIPSL.zip
deleted file mode 100644
index 5ab5106..0000000
Binary files a/Renewable_Energy_Integration_Of_37-Bus_System_Using_Openmodelica_And_Openipsl_By_Mr_Mohd_Ayaz/project_files/Renewable_Energy_Integration_of_37_Bus_System_Using_OpenModelica_and_OpenIPSL.zip and /dev/null differ
diff --git a/Renewable_Energy_Integration_Of_37-Bus_System_Using_Openmodelica_And_Openipsl_By_Mr_Mohd_Ayaz/project_files/Renewable_Energy_Integration_of_37_bus_System.pdf b/Renewable_Energy_Integration_Of_37-Bus_System_Using_Openmodelica_And_Openipsl_By_Mr_Mohd_Ayaz/project_files/Renewable_Energy_Integration_of_37_bus_System.pdf
deleted file mode 100644
index 6600358..0000000
Binary files a/Renewable_Energy_Integration_Of_37-Bus_System_Using_Openmodelica_And_Openipsl_By_Mr_Mohd_Ayaz/project_files/Renewable_Energy_Integration_of_37_bus_System.pdf and /dev/null differ
diff --git a/Unsymmetrical_Faults_On_Power_System_Using_Modelica_And_Openipsl_By_Ms_Jeevitha_M,pradeepa_P,elavarasan_R/ABSTRACTSUBMISSIONFORM.pdf b/Unsymmetrical_Faults_On_Power_System_Using_Modelica_And_Openipsl_By_Ms_Jeevitha_M,pradeepa_P,elavarasan_R/ABSTRACTSUBMISSIONFORM.pdf
deleted file mode 100644
index b47be01..0000000
Binary files a/Unsymmetrical_Faults_On_Power_System_Using_Modelica_And_Openipsl_By_Ms_Jeevitha_M,pradeepa_P,elavarasan_R/ABSTRACTSUBMISSIONFORM.pdf and /dev/null differ
diff --git a/Unsymmetrical_Faults_On_Power_System_Using_Openipsl_By_Ms_Jeevitha_M,pradeepa_P,elavarasan_R/ABSTRACTSUBMISSIONFORM.pdf b/Unsymmetrical_Faults_On_Power_System_Using_Openipsl_By_Ms_Jeevitha_M,pradeepa_P,elavarasan_R/ABSTRACTSUBMISSIONFORM.pdf
new file mode 100644
index 0000000..b47be01
Binary files /dev/null and b/Unsymmetrical_Faults_On_Power_System_Using_Openipsl_By_Ms_Jeevitha_M,pradeepa_P,elavarasan_R/ABSTRACTSUBMISSIONFORM.pdf differ
--
cgit