From 581a15016c1936ba1ca01a83acdff78fff01b345 Mon Sep 17 00:00:00 2001 From: Changgang Li Date: Mon, 8 Jan 2024 23:09:38 +0800 Subject: [PATCH] add block and generator model linearization interfaces. --- code/steps/STEPS.depend | 213 +++++++++--------- code/steps/header/basic/sparse_matrix.h | 2 + .../header/basic/sparse_matrix_csparse.h | 4 + code/steps/header/basic/sparse_matrix_klu.h | 2 + .../header/basic/sparse_matrix_umfpack.h | 2 + code/steps/header/block/block.h | 1 + code/steps/header/block/differential_block.h | 14 +- .../header/block/differential_block_test.h | 1 + code/steps/header/block/first_order_block.h | 14 +- .../header/block/first_order_block_test.h | 1 + code/steps/header/block/integral_block.h | 14 +- code/steps/header/block/lead_lag_block.h | 14 +- code/steps/header/block/pd_block.h | 14 +- code/steps/header/block/pi_block.h | 14 +- code/steps/header/block/pid_block.h | 14 +- code/steps/header/block/pid_block_test.h | 1 + code/steps/header/block/proportional_block.h | 6 + code/steps/header/block/second_order_block.h | 14 +- .../header/block/second_order_block_test.h | 1 + code/steps/header/device/generator.h | 5 + .../model/sg_models/compensator_model/COMP.h | 8 + .../sg_models/compensator_model/IEEEVC.h | 8 + .../sg_models/compensator_model/PSASPVC.h | 8 + .../compensator_model/compensator_model.h | 9 + .../model/sg_models/exciter_model/CSEET1.h | 8 + .../model/sg_models/exciter_model/CSEET2.h | 8 + .../model/sg_models/exciter_model/IEEET1.h | 8 + .../model/sg_models/exciter_model/PSASPE1.h | 8 + .../model/sg_models/exciter_model/PSASPE13.h | 8 + .../model/sg_models/exciter_model/PSASPE14.h | 8 + .../model/sg_models/exciter_model/PSASPE2.h | 8 + .../model/sg_models/exciter_model/SEXS.h | 8 + .../sg_models/exciter_model/exciter_model.h | 9 + code/steps/header/model/sg_models/sg_model.h | 10 + .../model/sg_models/stabilizer_model/IEE2ST.h | 8 + .../sg_models/stabilizer_model/PSASPS1.h | 8 + .../sg_models/stabilizer_model/PSASPS2.h | 8 + .../sg_models/stabilizer_model/PSASPS3.h | 8 + .../sg_models/stabilizer_model/PSASPS4.h | 8 + .../sg_models/stabilizer_model/PSASPS5.h | 8 + .../sg_models/stabilizer_model/PSASPS6.h | 8 + .../sg_models/stabilizer_model/PSASPS8.h | 8 + .../stabilizer_model/stabilizer_model.h | 8 + .../sg_models/sync_generator_model/gencls.h | 8 + .../sg_models/sync_generator_model/genrou.h | 8 + .../sg_models/sync_generator_model/gensal.h | 8 + .../sync_generator_model.h | 8 + .../sg_models/turbine_governor_model/GAST2A.h | 8 + .../sg_models/turbine_governor_model/IEEEG1.h | 8 + .../turbine_governor_model/IEEEG1SB.h | 8 + .../sg_models/turbine_governor_model/IEEEG2.h | 8 + .../sg_models/turbine_governor_model/IEEEG3.h | 8 + .../sg_models/turbine_governor_model/IEESGO.h | 8 + .../sg_models/turbine_governor_model/TGOV1.h | 8 + .../sg_models/turbine_governor_model/URCSCT.h | 8 + .../turbine_governor_model.h | 9 + .../turbine_load_controller_model/lcfb1.h | 8 + .../turbine_load_controller_model.h | 9 + .../source/basic/sparse_matrix_csparse.cpp | 59 ++++- code/steps/source/basic/sparse_matrix_klu.cpp | 12 +- .../source/basic/sparse_matrix_umfpack.cpp | 12 +- .../steps/source/block/differential_block.cpp | 78 ++++--- .../source/block/differential_block_test.cpp | 31 +++ code/steps/source/block/first_order_block.cpp | 79 ++++--- .../source/block/first_order_block_test.cpp | 31 +++ code/steps/source/block/integral_block.cpp | 78 ++++--- code/steps/source/block/lead_lag_block.cpp | 78 ++++--- code/steps/source/block/pd_block.cpp | 79 ++++--- code/steps/source/block/pi_block.cpp | 79 ++++--- code/steps/source/block/pid_block.cpp | 102 +++++---- code/steps/source/block/pid_block_test.cpp | 35 +++ .../steps/source/block/proportional_block.cpp | 49 ++++ .../steps/source/block/second_order_block.cpp | 98 ++++---- .../source/block/second_order_block_test.cpp | 32 +++ code/steps/source/device/generator.cpp | 33 +++ .../sg_models/compensator_model/COMP.cpp | 32 +++ .../sg_models/compensator_model/IEEEVC.cpp | 32 +++ .../sg_models/compensator_model/PSASPVC.cpp | 32 +++ .../model/sg_models/exciter_model/CSEET1.cpp | 32 +++ .../model/sg_models/exciter_model/CSEET2.cpp | 32 +++ .../model/sg_models/exciter_model/IEEET1.cpp | 32 +++ .../model/sg_models/exciter_model/PSASPE1.cpp | 32 +++ .../sg_models/exciter_model/PSASPE13.cpp | 32 +++ .../sg_models/exciter_model/PSASPE14.cpp | 32 +++ .../model/sg_models/exciter_model/PSASPE2.cpp | 32 +++ .../model/sg_models/exciter_model/SEXS.cpp | 157 +++++++++++++ .../steps/source/model/sg_models/sg_model.cpp | 19 ++ .../sg_models/stabilizer_model/IEE2ST.cpp | 32 +++ .../sg_models/stabilizer_model/PSASPS1.cpp | 32 +++ .../sg_models/stabilizer_model/PSASPS2.cpp | 32 +++ .../sg_models/stabilizer_model/PSASPS3.cpp | 32 +++ .../sg_models/stabilizer_model/PSASPS4.cpp | 32 +++ .../sg_models/stabilizer_model/PSASPS5.cpp | 32 +++ .../sg_models/stabilizer_model/PSASPS6.cpp | 32 +++ .../sg_models/stabilizer_model/PSASPS8.cpp | 32 +++ .../sg_models/sync_generator_model/gencls.cpp | 32 +++ .../sg_models/sync_generator_model/genrou.cpp | 32 +++ .../sg_models/sync_generator_model/gensal.cpp | 32 +++ .../sg_models/turbine_governors/GAST2A.cpp | 32 +++ .../sg_models/turbine_governors/IEEEG1.cpp | 32 +++ .../sg_models/turbine_governors/IEEEG1SB.cpp | 32 +++ .../sg_models/turbine_governors/IEEEG2.cpp | 32 +++ .../sg_models/turbine_governors/IEEEG3.cpp | 32 +++ .../sg_models/turbine_governors/IEESGO.cpp | 32 +++ .../sg_models/turbine_governors/TGOV1.cpp | 32 +++ .../sg_models/turbine_governors/URCSCT.cpp | 32 +++ .../turbine_load_controller_model/lcfb1.cpp | 32 +++ 107 files changed, 2301 insertions(+), 461 deletions(-) diff --git a/code/steps/STEPS.depend b/code/steps/STEPS.depend index 68c14ccb..2675a66c 100644 --- a/code/steps/STEPS.depend +++ b/code/steps/STEPS.depend @@ -73,8 +73,9 @@ -1700585903 d:\steps\code\steps\header\block\block.h +1704712176 d:\steps\code\steps\header\block\block.h "header/basic/steps_enum.h" + "header/basic/sparse_matrix_define.h" @@ -112,10 +113,10 @@ 1664187911 d:\steps\code\steps\header\model\bus_frequency_model\bus_frequency_model.h "header/block/differential_block.h" -1700585564 d:\steps\code\steps\header\block\differential_block.h +1704712226 d:\steps\code\steps\header\block\differential_block.h "header/block/block.h" -1697457172 d:\steps\code\steps\header\device\generator.h +1704721519 d:\steps\code\steps\header\device\generator.h "header/device/source.h" @@ -139,34 +140,34 @@ -1700647330 d:\steps\code\steps\header\model\sg_models\sync_generator_model\sync_generator_model.h +1704722612 d:\steps\code\steps\header\model\sg_models\sync_generator_model\sync_generator_model.h "header/model/sg_models/sg_model.h" "header/block/integral_block.h" "header/block/first_order_block.h" "header/block/saturation_block.h" -1700647330 d:\steps\code\steps\header\model\sg_models\sg_model.h +1704723170 d:\steps\code\steps\header\model\sg_models\sg_model.h "header/model/model.h" "header/device/bus.h" "header/basic/sparse_matrix_define.h" -1700585694 d:\steps\code\steps\header\block\integral_block.h +1704712219 d:\steps\code\steps\header\block\integral_block.h "header/block/block.h" 1700647330 d:\steps\code\steps\header\block\saturation_block.h "header/basic/steps_enum.h" -1700647330 d:\steps\code\steps\header\model\sg_models\compensator_model\compensator_model.h +1704722631 d:\steps\code\steps\header\model\sg_models\compensator_model\compensator_model.h "header/model/sg_models/sg_model.h" "header/block/integral_block.h" -1700647330 d:\steps\code\steps\header\model\sg_models\exciter_model\exciter_model.h +1704722625 d:\steps\code\steps\header\model\sg_models\exciter_model\exciter_model.h "header/model/sg_models/sg_model.h" "header/block/integral_block.h" -1700647330 d:\steps\code\steps\header\model\sg_models\stabilizer_model\stabilizer_model.h +1704722618 d:\steps\code\steps\header\model\sg_models\stabilizer_model\stabilizer_model.h "header/model/sg_models/sg_model.h" "header/block/integral_block.h" "header/basic/constants.h" @@ -178,10 +179,10 @@ "header/basic/dc_device_id.h" "header/device/device.h" -1700647330 d:\steps\code\steps\header\model\sg_models\turbine_governor_model\turbine_governor_model.h +1704722607 d:\steps\code\steps\header\model\sg_models\turbine_governor_model\turbine_governor_model.h "header/model/sg_models/sg_model.h" -1700647330 d:\steps\code\steps\header\model\sg_models\turbine_load_controller_model\turbine_load_controller_model.h +1704722597 d:\steps\code\steps\header\model\sg_models\turbine_load_controller_model\turbine_load_controller_model.h "header/model/sg_models/sg_model.h" "header/block/integral_block.h" "header/basic/constants.h" @@ -411,7 +412,7 @@ "header/basic/sparse_matrix_csparse.h" "header/basic/complex_sparse_matrix_csparse.h" -1664187911 d:\steps\code\steps\header\basic\sparse_matrix_csparse.h +1704723555 d:\steps\code\steps\header\basic\sparse_matrix_csparse.h "cs.h" @@ -426,7 +427,7 @@ "mex.h" -1664187911 d:\steps\code\steps\header\basic\sparse_matrix.h +1704713476 d:\steps\code\steps\header\basic\sparse_matrix.h @@ -1114,7 +1115,7 @@ "header/block/proportional_block.h" "header/STEPS.h" -1700585632 d:\steps\code\steps\header\block\proportional_block.h +1704726296 d:\steps\code\steps\header\block\proportional_block.h "header/block/block.h" 1583938871 d:\steps\code\steps\header\block\integral_block_test.h @@ -1126,7 +1127,7 @@ "header/block/integral_block.h" "header/STEPS.h" -1583938871 d:\steps\code\steps\header\block\differential_block_test.h +1704712807 d:\steps\code\steps\header\block\differential_block_test.h @@ -1135,7 +1136,7 @@ "header/block/differential_block.h" "header/STEPS.h" -1583938871 d:\steps\code\steps\header\block\first_order_block_test.h +1704714553 d:\steps\code\steps\header\block\first_order_block_test.h @@ -1144,7 +1145,7 @@ "header/block/first_order_block.h" "header/STEPS.h" -1700585710 d:\steps\code\steps\header\block\first_order_block.h +1704712222 d:\steps\code\steps\header\block\first_order_block.h "header/block/block.h" "header/block/proportional_block.h" @@ -1157,11 +1158,11 @@ "header/block/lead_lag_block.h" "header/STEPS.h" -1700585691 d:\steps\code\steps\header\block\lead_lag_block.h +1704712213 d:\steps\code\steps\header\block\lead_lag_block.h "header/block/block.h" "header/block/first_order_block.h" -1583938871 d:\steps\code\steps\header\block\pid_block_test.h +1704715610 d:\steps\code\steps\header\block\pid_block_test.h @@ -1170,7 +1171,7 @@ "header/block/pid_block.h" "header/STEPS.h" -1700585652 d:\steps\code\steps\header\block\pid_block.h +1704712197 d:\steps\code\steps\header\block\pid_block.h "header/block/block.h" "header/block/proportional_block.h" "header/block/integral_block.h" @@ -1185,7 +1186,7 @@ "header/block/pi_block.h" "header/STEPS.h" -1700585671 d:\steps\code\steps\header\block\pi_block.h +1704712202 d:\steps\code\steps\header\block\pi_block.h "header/block/block.h" "header/block/pid_block.h" @@ -1198,12 +1199,12 @@ "header/block/pd_block.h" "header/STEPS.h" -1700585680 d:\steps\code\steps\header\block\pd_block.h +1704712209 d:\steps\code\steps\header\block\pd_block.h "header/block/block.h" "header/block/proportional_block.h" "header/block/differential_block.h" -1583938871 d:\steps\code\steps\header\block\second_order_block_test.h +1704714881 d:\steps\code\steps\header\block\second_order_block_test.h @@ -1212,7 +1213,7 @@ "header/block/second_order_block.h" "header/STEPS.h" -1700585241 d:\steps\code\steps\header\block\second_order_block.h +1704712173 d:\steps\code\steps\header\block\second_order_block.h "header/block/block.h" "header/block/proportional_block.h" "header/block/first_order_block.h" @@ -1275,7 +1276,7 @@ "header/STEPS.h" "header/model/sg_models/sync_generator_model/gencls.h" -1700647330 d:\steps\code\steps\header\model\sg_models\sync_generator_model\gencls.h +1704723170 d:\steps\code\steps\header\model\sg_models\sync_generator_model\gencls.h "header/model/sg_models/sync_generator_model/sync_generator_model.h" "header/block/integral_block.h" @@ -1315,7 +1316,7 @@ "header/model/sg_models/sync_generator_model/genrou.h" "header/STEPS.h" -1700647330 d:\steps\code\steps\header\model\sg_models\sync_generator_model\genrou.h +1704723170 d:\steps\code\steps\header\model\sg_models\sync_generator_model\genrou.h "header/model/sg_models/sync_generator_model/sync_generator_model.h" "header/block/integral_block.h" @@ -1328,7 +1329,7 @@ "header/model/sg_models/sync_generator_model/gensal.h" "header/STEPS.h" -1700647330 d:\steps\code\steps\header\model\sg_models\sync_generator_model\gensal.h +1704723170 d:\steps\code\steps\header\model\sg_models\sync_generator_model\gensal.h "header/model/sg_models/sync_generator_model/sync_generator_model.h" "header/block/integral_block.h" @@ -1343,7 +1344,7 @@ "header/power_system_database.h" "header/STEPS.h" -1700647330 d:\steps\code\steps\header\model\sg_models\compensator_model\comp.h +1704722642 d:\steps\code\steps\header\model\sg_models\compensator_model\comp.h "header/model/sg_models/compensator_model/compensator_model.h" "header/block/integral_block.h" @@ -1366,7 +1367,7 @@ "header/model/sg_models/exciter_model/exciter_model_test.h" "header/STEPS.h" -1700647330 d:\steps\code\steps\header\model\sg_models\exciter_model\sexs.h +1704722563 d:\steps\code\steps\header\model\sg_models\exciter_model\sexs.h "header/model/sg_models/exciter_model/exciter_model.h" "header/block/first_order_block.h" "header/block/lead_lag_block.h" @@ -1389,7 +1390,7 @@ "header/model/sg_models/exciter_model/exciter_model_test.h" "header/STEPS.h" -1700647330 d:\steps\code\steps\header\model\sg_models\exciter_model\ieeet1.h +1704723170 d:\steps\code\steps\header\model\sg_models\exciter_model\ieeet1.h "header/model/sg_models/exciter_model/exciter_model.h" "header/block/first_order_block.h" "header/block/differential_block.h" @@ -1405,7 +1406,7 @@ "header/model/sg_models/exciter_model/exciter_model_test.h" "header/STEPS.h" -1700647330 d:\steps\code\steps\header\model\sg_models\exciter_model\psaspe1.h +1704723170 d:\steps\code\steps\header\model\sg_models\exciter_model\psaspe1.h "header/model/sg_models/exciter_model/exciter_model.h" "header/block/first_order_block.h" "header/block/differential_block.h" @@ -1421,7 +1422,7 @@ "header/model/sg_models/exciter_model/exciter_model_test.h" "header/STEPS.h" -1700647330 d:\steps\code\steps\header\model\sg_models\exciter_model\psaspe2.h +1704723170 d:\steps\code\steps\header\model\sg_models\exciter_model\psaspe2.h "header/model/sg_models/exciter_model/exciter_model.h" "header/block/first_order_block.h" "header/block/lead_lag_block.h" @@ -1436,7 +1437,7 @@ "header/model/sg_models/exciter_model/exciter_model_test.h" "header/STEPS.h" -1700647330 d:\steps\code\steps\header\model\sg_models\exciter_model\cseet1.h +1704722652 d:\steps\code\steps\header\model\sg_models\exciter_model\cseet1.h "header/model/sg_models/exciter_model/exciter_model.h" "header/block/first_order_block.h" "header/block/differential_block.h" @@ -1454,7 +1455,7 @@ "header/model/sg_models/exciter_model/exciter_model_test.h" "header/STEPS.h" -1700647330 d:\steps\code\steps\header\model\sg_models\exciter_model\cseet2.h +1704722655 d:\steps\code\steps\header\model\sg_models\exciter_model\cseet2.h "header/model/sg_models/exciter_model/CSEET1.h" 1583938871 d:\steps\code\steps\header\model\sg_models\exciter_model\psaspe13_test.h @@ -1466,7 +1467,7 @@ "header/model/sg_models/exciter_model/exciter_model_test.h" "header/STEPS.h" -1634637238 d:\steps\code\steps\header\model\sg_models\exciter_model\psaspe13.h +1704723170 d:\steps\code\steps\header\model\sg_models\exciter_model\psaspe13.h "header/model/sg_models/exciter_model/exciter_model.h" "header/block/first_order_block.h" "header/block/differential_block.h" @@ -1482,7 +1483,7 @@ "header/model/sg_models/exciter_model/SEXS.h" "header/power_system_database.h" -1700647330 d:\steps\code\steps\header\model\sg_models\stabilizer_model\iee2st.h +1704723170 d:\steps\code\steps\header\model\sg_models\stabilizer_model\iee2st.h "header/model/sg_models/stabilizer_model/stabilizer_model.h" "header/block/first_order_block.h" "header/block/differential_block.h" @@ -1508,7 +1509,7 @@ "header/power_system_database.h" "header/STEPS.h" -1700647330 d:\steps\code\steps\header\model\sg_models\stabilizer_model\psasps1.h +1704723170 d:\steps\code\steps\header\model\sg_models\stabilizer_model\psasps1.h "header/model/sg_models/stabilizer_model/stabilizer_model.h" "header/block/first_order_block.h" "header/block/differential_block.h" @@ -1524,7 +1525,7 @@ "header/power_system_database.h" "header/STEPS.h" -1700647330 d:\steps\code\steps\header\model\sg_models\stabilizer_model\psasps2.h +1704723170 d:\steps\code\steps\header\model\sg_models\stabilizer_model\psasps2.h "header/model/sg_models/stabilizer_model/stabilizer_model.h" "header/block/first_order_block.h" "header/block/differential_block.h" @@ -1540,7 +1541,7 @@ "header/power_system_database.h" "header/STEPS.h" -1700647330 d:\steps\code\steps\header\model\sg_models\stabilizer_model\psasps3.h +1704723170 d:\steps\code\steps\header\model\sg_models\stabilizer_model\psasps3.h "header/model/sg_models/stabilizer_model/stabilizer_model.h" "header/block/first_order_block.h" "header/block/differential_block.h" @@ -1556,7 +1557,7 @@ "header/power_system_database.h" "header/STEPS.h" -1700647330 d:\steps\code\steps\header\model\sg_models\stabilizer_model\psasps4.h +1704723170 d:\steps\code\steps\header\model\sg_models\stabilizer_model\psasps4.h "header/model/sg_models/stabilizer_model/stabilizer_model.h" "header/block/first_order_block.h" "header/block/differential_block.h" @@ -1572,7 +1573,7 @@ "header/power_system_database.h" "header/STEPS.h" -1700647330 d:\steps\code\steps\header\model\sg_models\stabilizer_model\psasps5.h +1704723170 d:\steps\code\steps\header\model\sg_models\stabilizer_model\psasps5.h "header/model/sg_models/stabilizer_model/stabilizer_model.h" "header/block/first_order_block.h" "header/block/differential_block.h" @@ -1588,7 +1589,7 @@ "header/power_system_database.h" "header/STEPS.h" -1700647330 d:\steps\code\steps\header\model\sg_models\stabilizer_model\psasps6.h +1704723170 d:\steps\code\steps\header\model\sg_models\stabilizer_model\psasps6.h "header/model/sg_models/stabilizer_model/stabilizer_model.h" "header/block/first_order_block.h" "header/block/differential_block.h" @@ -1604,7 +1605,7 @@ "header/power_system_database.h" "header/STEPS.h" -1700647330 d:\steps\code\steps\header\model\sg_models\stabilizer_model\psasps8.h +1704723170 d:\steps\code\steps\header\model\sg_models\stabilizer_model\psasps8.h "header/model/sg_models/stabilizer_model/stabilizer_model.h" "header/block/first_order_block.h" "header/block/differential_block.h" @@ -1619,7 +1620,7 @@ "header/model/sg_models/turbine_governor_model/turbine_governor_model_test.h" "header/STEPS.h" -1700647330 d:\steps\code\steps\header\model\sg_models\turbine_governor_model\tgov1.h +1704723171 d:\steps\code\steps\header\model\sg_models\turbine_governor_model\tgov1.h "header/model/sg_models/turbine_governor_model/turbine_governor_model.h" "header/block/proportional_block.h" "header/block/first_order_block.h" @@ -1642,7 +1643,7 @@ "header/model/sg_models/turbine_governor_model/turbine_governor_model_test.h" "header/STEPS.h" -1700647330 d:\steps\code\steps\header\model\sg_models\turbine_governor_model\ieeeg1.h +1704723171 d:\steps\code\steps\header\model\sg_models\turbine_governor_model\ieeeg1.h "header/model/sg_models/turbine_governor_model/turbine_governor_model.h" "header/block/integral_block.h" "header/block/first_order_block.h" @@ -1657,7 +1658,7 @@ "header/model/sg_models/turbine_governor_model/turbine_governor_model_test.h" "header/STEPS.h" -1700647330 d:\steps\code\steps\header\model\sg_models\turbine_governor_model\ieeeg2.h +1704723171 d:\steps\code\steps\header\model\sg_models\turbine_governor_model\ieeeg2.h "header/model/sg_models/turbine_governor_model/turbine_governor_model.h" "header/block/integral_block.h" "header/block/first_order_block.h" @@ -1672,7 +1673,7 @@ "header/model/sg_models/turbine_governor_model/turbine_governor_model_test.h" "header/STEPS.h" -1700647330 d:\steps\code\steps\header\model\sg_models\turbine_governor_model\ieeeg3.h +1704723171 d:\steps\code\steps\header\model\sg_models\turbine_governor_model\ieeeg3.h "header/model/sg_models/turbine_governor_model/turbine_governor_model.h" "header/block/integral_block.h" "header/block/first_order_block.h" @@ -1688,7 +1689,7 @@ "header/model/sg_models/turbine_governor_model/turbine_governor_model_test.h" "header/STEPS.h" -1700647330 d:\steps\code\steps\header\model\sg_models\turbine_governor_model\ieesgo.h +1704723171 d:\steps\code\steps\header\model\sg_models\turbine_governor_model\ieesgo.h "header/model/sg_models/turbine_governor_model/turbine_governor_model.h" "header/block/proportional_block.h" "header/block/first_order_block.h" @@ -1703,7 +1704,7 @@ "header/model/sg_models/turbine_governor_model/turbine_governor_model_test.h" "header/STEPS.h" -1700647330 d:\steps\code\steps\header\model\sg_models\turbine_governor_model\ieeeg1sb.h +1704723171 d:\steps\code\steps\header\model\sg_models\turbine_governor_model\ieeeg1sb.h "header/model/sg_models/turbine_governor_model/turbine_governor_model.h" "header/block/integral_block.h" "header/block/first_order_block.h" @@ -1729,7 +1730,7 @@ "header/model/sg_models/turbine_load_controller_model/lcfb1.h" "header/power_system_database.h" -1700647330 d:\steps\code\steps\header\model\sg_models\turbine_load_controller_model\lcfb1.h +1704722604 d:\steps\code\steps\header\model\sg_models\turbine_load_controller_model\lcfb1.h "header/model/sg_models/turbine_load_controller_model/turbine_load_controller_model.h" "header/block/first_order_block.h" "header/block/differential_block.h" @@ -2183,11 +2184,11 @@ "header/model/sg_models/compensator_model/IEEEVC.h" "header/model/sg_models/compensator_model/PSASPVC.h" -1700647330 d:\steps\code\steps\header\model\sg_models\compensator_model\ieeevc.h +1704722645 d:\steps\code\steps\header\model\sg_models\compensator_model\ieeevc.h "header/model/sg_models/compensator_model/compensator_model.h" "header/block/integral_block.h" -1700647330 d:\steps\code\steps\header\model\sg_models\compensator_model\psaspvc.h +1704722648 d:\steps\code\steps\header\model\sg_models\compensator_model\psaspvc.h "header/model/sg_models/compensator_model/compensator_model.h" "header/block/integral_block.h" @@ -2201,7 +2202,7 @@ "header/model/sg_models/exciter_model/PSASPE13.h" "header/model/sg_models/exciter_model/PSASPE14.h" -1700647330 d:\steps\code\steps\header\model\sg_models\exciter_model\psaspe14.h +1704723170 d:\steps\code\steps\header\model\sg_models\exciter_model\psaspe14.h "header/model/sg_models/exciter_model/exciter_model.h" "header/block/first_order_block.h" "header/block/pi_block.h" @@ -2226,7 +2227,7 @@ "header/model/sg_models/turbine_governor_model/GAST2A.h" "header/model/sg_models/turbine_governor_model/URCSCT.h" -1700647330 d:\steps\code\steps\header\model\sg_models\turbine_governor_model\gast2a.h +1704723170 d:\steps\code\steps\header\model\sg_models\turbine_governor_model\gast2a.h "header/model/sg_models/turbine_governor_model/turbine_governor_model.h" "header/block/integral_block.h" "header/block/first_order_block.h" @@ -2234,7 +2235,7 @@ "header/block/pi_block.h" "header/basic/continuous_buffer.h" -1700647330 d:\steps\code\steps\header\model\sg_models\turbine_governor_model\urcsct.h +1704723171 d:\steps\code\steps\header\model\sg_models\turbine_governor_model\urcsct.h "header/model/sg_models/turbine_governor_model/turbine_governor_model.h" "header/block/integral_block.h" "header/block/first_order_block.h" @@ -2834,7 +2835,7 @@ -1664187911 source:d:\steps\code\steps\source\basic\sparse_matrix_csparse.cpp +1704724974 source:d:\steps\code\steps\source\basic\sparse_matrix_csparse.cpp "header/basic/sparse_matrix_csparse.h" "header/basic/constants.h" "header/basic/utility.h" @@ -2847,7 +2848,7 @@ -1664187911 source:d:\steps\code\steps\source\basic\sparse_matrix_klu.cpp +1704713658 source:d:\steps\code\steps\source\basic\sparse_matrix_klu.cpp "header/basic/sparse_matrix_klu.h" "umfpack.h" "header/basic/constants.h" @@ -2860,7 +2861,7 @@ -1664187911 d:\steps\code\steps\header\basic\sparse_matrix_klu.h +1704713494 d:\steps\code\steps\header\basic\sparse_matrix_klu.h @@ -3220,14 +3221,14 @@ "header/steps_namespace.h" "header/basic/utility.h" -1700585929 source:d:\steps\code\steps\source\block\differential_block.cpp +1704712596 source:d:\steps\code\steps\source\block\differential_block.cpp "header/block/differential_block.h" "header/basic/utility.h" "header/steps_namespace.h" -1585314815 source:d:\steps\code\steps\source\block\differential_block_test.cpp +1704715820 source:d:\steps\code\steps\source\block\differential_block_test.cpp "header/basic/test_macro.h" "header/block/differential_block_test.h" "header/basic/utility.h" @@ -3237,14 +3238,14 @@ -1697457172 source:d:\steps\code\steps\source\block\first_order_block.cpp +1704726265 source:d:\steps\code\steps\source\block\first_order_block.cpp "header/block/first_order_block.h" "header/basic/utility.h" "header/steps_namespace.h" -1585314815 source:d:\steps\code\steps\source\block\first_order_block_test.cpp +1704715829 source:d:\steps\code\steps\source\block\first_order_block_test.cpp "header/basic/test_macro.h" "header/block/first_order_block_test.h" "header/basic/utility.h" @@ -3254,7 +3255,7 @@ -1700585960 source:d:\steps\code\steps\source\block\integral_block.cpp +1704712545 source:d:\steps\code\steps\source\block\integral_block.cpp "header/block/integral_block.h" "header/basic/utility.h" "header/steps_namespace.h" @@ -3271,7 +3272,7 @@ -1700585971 source:d:\steps\code\steps\source\block\lead_lag_block.cpp +1704712507 source:d:\steps\code\steps\source\block\lead_lag_block.cpp "header/block/lead_lag_block.h" "header/basic/utility.h" "header/steps_namespace.h" @@ -3288,7 +3289,7 @@ -1700585983 source:d:\steps\code\steps\source\block\pd_block.cpp +1704712480 source:d:\steps\code\steps\source\block\pd_block.cpp "header/block/pd_block.h" "header/basic/utility.h" "header/steps_namespace.h" @@ -3305,7 +3306,7 @@ -1700586000 source:d:\steps\code\steps\source\block\pi_block.cpp +1704712455 source:d:\steps\code\steps\source\block\pi_block.cpp "header/block/pi_block.h" "header/basic/utility.h" "header/steps_namespace.h" @@ -3322,14 +3323,14 @@ -1700586011 source:d:\steps\code\steps\source\block\pid_block.cpp +1704715839 source:d:\steps\code\steps\source\block\pid_block.cpp "header/block/pid_block.h" "header/basic/utility.h" "header/steps_namespace.h" -1585314815 source:d:\steps\code\steps\source\block\pid_block_test.cpp +1704715901 source:d:\steps\code\steps\source\block\pid_block_test.cpp "header/basic/test_macro.h" "header/block/pid_block_test.h" "header/basic/utility.h" @@ -3339,7 +3340,7 @@ -1583938871 source:d:\steps\code\steps\source\block\proportional_block.cpp +1704726371 source:d:\steps\code\steps\source\block\proportional_block.cpp "header/block/proportional_block.h" "header/basic/utility.h" "header/STEPS.h" @@ -3372,14 +3373,14 @@ -1700585520 source:d:\steps\code\steps\source\block\second_order_block.cpp +1704712267 source:d:\steps\code\steps\source\block\second_order_block.cpp "header/block/second_order_block.h" "header/basic/utility.h" "header/steps_namespace.h" -1585314815 source:d:\steps\code\steps\source\block\second_order_block_test.cpp +1704715939 source:d:\steps\code\steps\source\block\second_order_block_test.cpp "header/basic/test_macro.h" "header/block/second_order_block_test.h" "header/basic/utility.h" @@ -3636,7 +3637,7 @@ -1697457172 source:d:\steps\code\steps\source\device\generator.cpp +1704722375 source:d:\steps\code\steps\source\device\generator.cpp "header/device/generator.h" "header/basic/utility.h" "header/STEPS.h" @@ -3668,7 +3669,7 @@ -1697457172 source:d:\steps\code\steps\source\device\hvdc.cpp +1704422705 source:d:\steps\code\steps\source\device\hvdc.cpp "header/device/hvdc.h" "header/basic/utility.h" "header/basic/constants.h" @@ -4254,7 +4255,7 @@ -1664187911 source:d:\steps\code\steps\source\model\model.cpp +1700647330 source:d:\steps\code\steps\source\model\model.cpp "header/model/model.h" "header/basic/utility.h" @@ -4500,7 +4501,7 @@ -1664187911 source:d:\steps\code\steps\source\model\sg_models\compensator_model\comp.cpp +1704723168 source:d:\steps\code\steps\source\model\sg_models\compensator_model\comp.cpp "header/model/sg_models/compensator_model/COMP.h" "header/basic/utility.h" "header/STEPS.h" @@ -4529,7 +4530,7 @@ "header/basic/utility.h" "header/steps_namespace.h" -1664187911 source:d:\steps\code\steps\source\model\sg_models\compensator_model\ieeevc.cpp +1704723171 source:d:\steps\code\steps\source\model\sg_models\compensator_model\ieeevc.cpp "header/model/sg_models/compensator_model/IEEEVC.h" "header/basic/utility.h" "header/STEPS.h" @@ -4553,7 +4554,7 @@ "header/power_system_database.h" "header/STEPS.h" -1664187911 source:d:\steps\code\steps\source\model\sg_models\compensator_model\psaspvc.cpp +1704723171 source:d:\steps\code\steps\source\model\sg_models\compensator_model\psaspvc.cpp "header/model/sg_models/compensator_model/PSASPVC.h" "header/basic/utility.h" "header/STEPS.h" @@ -4577,7 +4578,7 @@ "header/power_system_database.h" "header/STEPS.h" -1664187911 source:d:\steps\code\steps\source\model\sg_models\exciter_model\cseet1.cpp +1704723171 source:d:\steps\code\steps\source\model\sg_models\exciter_model\cseet1.cpp "header/model/sg_models/exciter_model/CSEET1.h" "header/basic/utility.h" "header/STEPS.h" @@ -4591,7 +4592,7 @@ "header/basic/utility.h" "header/steps_namespace.h" -1664187911 source:d:\steps\code\steps\source\model\sg_models\exciter_model\cseet2.cpp +1704723171 source:d:\steps\code\steps\source\model\sg_models\exciter_model\cseet2.cpp "header/model/sg_models/exciter_model/CSEET2.h" "header/basic/utility.h" "header/STEPS.h" @@ -4625,7 +4626,7 @@ "header/model/sg_models/stabilizer_model/IEE2ST.h" "header/model/sg_models/sync_generator_model/gencls.h" -1664187911 source:d:\steps\code\steps\source\model\sg_models\exciter_model\ieeet1.cpp +1704723171 source:d:\steps\code\steps\source\model\sg_models\exciter_model\ieeet1.cpp "header/model/sg_models/exciter_model/IEEET1.h" "header/basic/utility.h" "header/STEPS.h" @@ -4639,7 +4640,7 @@ "header/basic/utility.h" "header/steps_namespace.h" -1664187911 source:d:\steps\code\steps\source\model\sg_models\exciter_model\psaspe1.cpp +1704723171 source:d:\steps\code\steps\source\model\sg_models\exciter_model\psaspe1.cpp "header/model/sg_models/exciter_model/PSASPE1.h" "header/basic/utility.h" "header/STEPS.h" @@ -4647,7 +4648,7 @@ -1664187911 source:d:\steps\code\steps\source\model\sg_models\exciter_model\psaspe13.cpp +1704723171 source:d:\steps\code\steps\source\model\sg_models\exciter_model\psaspe13.cpp "header/model/sg_models/exciter_model/PSASPE13.h" "header/basic/utility.h" "header/STEPS.h" @@ -4661,7 +4662,7 @@ "header/basic/utility.h" "header/steps_namespace.h" -1664187911 source:d:\steps\code\steps\source\model\sg_models\exciter_model\psaspe14.cpp +1704723171 source:d:\steps\code\steps\source\model\sg_models\exciter_model\psaspe14.cpp "header/model/sg_models/exciter_model/PSASPE14.h" "header/basic/utility.h" "header/STEPS.h" @@ -4690,7 +4691,7 @@ "header/basic/utility.h" "header/steps_namespace.h" -1664187911 source:d:\steps\code\steps\source\model\sg_models\exciter_model\psaspe2.cpp +1704723171 source:d:\steps\code\steps\source\model\sg_models\exciter_model\psaspe2.cpp "header/model/sg_models/exciter_model/PSASPE2.h" "header/basic/utility.h" "header/STEPS.h" @@ -4704,7 +4705,7 @@ "header/basic/utility.h" "header/steps_namespace.h" -1664187911 source:d:\steps\code\steps\source\model\sg_models\exciter_model\sexs.cpp +1704725536 source:d:\steps\code\steps\source\model\sg_models\exciter_model\sexs.cpp "header/model/sg_models/exciter_model/SEXS.h" "header/basic/utility.h" "header/STEPS.h" @@ -4718,7 +4719,7 @@ "header/basic/utility.h" "header/steps_namespace.h" -1634637238 source:d:\steps\code\steps\source\model\sg_models\sg_model.cpp +1704716656 source:d:\steps\code\steps\source\model\sg_models\sg_model.cpp "header/model/sg_models/sg_model.h" "header/basic/utility.h" "header/power_system_database.h" @@ -4736,7 +4737,7 @@ -1664187911 source:d:\steps\code\steps\source\model\sg_models\stabilizer_model\iee2st.cpp +1704723171 source:d:\steps\code\steps\source\model\sg_models\stabilizer_model\iee2st.cpp "header/model/sg_models/stabilizer_model/IEE2ST.h" "header/basic/constants.h" "header/STEPS.h" @@ -4750,7 +4751,7 @@ "header/basic/utility.h" "header/steps_namespace.h" -1664187911 source:d:\steps\code\steps\source\model\sg_models\stabilizer_model\psasps1.cpp +1704723171 source:d:\steps\code\steps\source\model\sg_models\stabilizer_model\psasps1.cpp "header/model/sg_models/stabilizer_model/PSASPS1.h" "header/basic/constants.h" "header/STEPS.h" @@ -4765,7 +4766,7 @@ "header/basic/utility.h" "header/steps_namespace.h" -1664187911 source:d:\steps\code\steps\source\model\sg_models\stabilizer_model\psasps2.cpp +1704723171 source:d:\steps\code\steps\source\model\sg_models\stabilizer_model\psasps2.cpp "header/model/sg_models/stabilizer_model/PSASPS2.h" "header/basic/constants.h" "header/STEPS.h" @@ -4779,7 +4780,7 @@ "header/basic/utility.h" "header/steps_namespace.h" -1664187911 source:d:\steps\code\steps\source\model\sg_models\stabilizer_model\psasps3.cpp +1704723171 source:d:\steps\code\steps\source\model\sg_models\stabilizer_model\psasps3.cpp "header/model/sg_models/stabilizer_model/PSASPS3.h" "header/basic/constants.h" "header/STEPS.h" @@ -4793,7 +4794,7 @@ "header/basic/utility.h" "header/steps_namespace.h" -1664187911 source:d:\steps\code\steps\source\model\sg_models\stabilizer_model\psasps4.cpp +1704723171 source:d:\steps\code\steps\source\model\sg_models\stabilizer_model\psasps4.cpp "header/model/sg_models/stabilizer_model/PSASPS4.h" "header/basic/constants.h" "header/STEPS.h" @@ -4808,7 +4809,7 @@ "header/basic/utility.h" "header/steps_namespace.h" -1664187911 source:d:\steps\code\steps\source\model\sg_models\stabilizer_model\psasps5.cpp +1704723171 source:d:\steps\code\steps\source\model\sg_models\stabilizer_model\psasps5.cpp "header/model/sg_models/stabilizer_model/PSASPS5.h" "header/basic/constants.h" "header/STEPS.h" @@ -4816,7 +4817,7 @@ "header/basic/utility.h" -1664187911 source:d:\steps\code\steps\source\model\sg_models\stabilizer_model\psasps6.cpp +1704723171 source:d:\steps\code\steps\source\model\sg_models\stabilizer_model\psasps6.cpp "header/model/sg_models/stabilizer_model/PSASPS6.h" "header/basic/constants.h" "header/STEPS.h" @@ -4831,7 +4832,7 @@ "header/basic/utility.h" "header/steps_namespace.h" -1664187911 source:d:\steps\code\steps\source\model\sg_models\stabilizer_model\psasps8.cpp +1704723171 source:d:\steps\code\steps\source\model\sg_models\stabilizer_model\psasps8.cpp "header/model/sg_models/stabilizer_model/PSASPS8.h" "header/basic/constants.h" "header/STEPS.h" @@ -4858,7 +4859,7 @@ "header/basic/utility.h" "header/steps_namespace.h" -1664187911 source:d:\steps\code\steps\source\model\sg_models\sync_generator_model\gencls.cpp +1704723171 source:d:\steps\code\steps\source\model\sg_models\sync_generator_model\gencls.cpp "header/model/sg_models/sync_generator_model/gencls.h" "header/basic/utility.h" "header/STEPS.h" @@ -4878,7 +4879,7 @@ -1697457172 source:d:\steps\code\steps\source\model\sg_models\sync_generator_model\genrou.cpp +1704723171 source:d:\steps\code\steps\source\model\sg_models\sync_generator_model\genrou.cpp "header/model/sg_models/sync_generator_model/genrou.h" "header/basic/utility.h" "header/STEPS.h" @@ -4898,7 +4899,7 @@ -1697457172 source:d:\steps\code\steps\source\model\sg_models\sync_generator_model\gensal.cpp +1704723171 source:d:\steps\code\steps\source\model\sg_models\sync_generator_model\gensal.cpp "header/model/sg_models/sync_generator_model/gensal.h" "header/basic/utility.h" "header/STEPS.h" @@ -4937,14 +4938,14 @@ -1697457172 source:d:\steps\code\steps\source\model\sg_models\turbine_governors\gast2a.cpp +1704723171 source:d:\steps\code\steps\source\model\sg_models\turbine_governors\gast2a.cpp "header/model/sg_models/turbine_governor_model/GAST2A.h" "header/basic/utility.h" "header/STEPS.h" -1664187911 source:d:\steps\code\steps\source\model\sg_models\turbine_governors\ieeeg1.cpp +1704723171 source:d:\steps\code\steps\source\model\sg_models\turbine_governors\ieeeg1.cpp "header/model/sg_models/turbine_governor_model/IEEEG1.h" "header/basic/utility.h" "header/STEPS.h" @@ -4957,7 +4958,7 @@ "header/basic/utility.h" "header/steps_namespace.h" -1664187911 source:d:\steps\code\steps\source\model\sg_models\turbine_governors\ieeeg1sb.cpp +1704723171 source:d:\steps\code\steps\source\model\sg_models\turbine_governors\ieeeg1sb.cpp "header/model/sg_models/turbine_governor_model/IEEEG1SB.h" "header/basic/utility.h" "header/STEPS.h" @@ -4970,7 +4971,7 @@ "header/basic/utility.h" "header/steps_namespace.h" -1664187911 source:d:\steps\code\steps\source\model\sg_models\turbine_governors\ieeeg2.cpp +1704722915 source:d:\steps\code\steps\source\model\sg_models\turbine_governors\ieeeg2.cpp "header/model/sg_models/turbine_governor_model/IEEEG2.h" "header/basic/utility.h" "header/STEPS.h" @@ -4983,7 +4984,7 @@ "header/basic/utility.h" "header/steps_namespace.h" -1664187911 source:d:\steps\code\steps\source\model\sg_models\turbine_governors\ieeeg3.cpp +1704723171 source:d:\steps\code\steps\source\model\sg_models\turbine_governors\ieeeg3.cpp "header/model/sg_models/turbine_governor_model/IEEEG3.h" "header/basic/utility.h" "header/STEPS.h" @@ -4996,7 +4997,7 @@ "header/basic/utility.h" "header/steps_namespace.h" -1664187911 source:d:\steps\code\steps\source\model\sg_models\turbine_governors\ieesgo.cpp +1704722900 source:d:\steps\code\steps\source\model\sg_models\turbine_governors\ieesgo.cpp "header/model/sg_models/turbine_governor_model/IEESGO.h" "header/basic/utility.h" "header/STEPS.h" @@ -5007,7 +5008,7 @@ "header/basic/utility.h" "header/steps_namespace.h" -1664187911 source:d:\steps\code\steps\source\model\sg_models\turbine_governors\tgov1.cpp +1704723171 source:d:\steps\code\steps\source\model\sg_models\turbine_governors\tgov1.cpp "header/model/sg_models/turbine_governor_model/TGOV1.h" "header/basic/utility.h" "header/STEPS.h" @@ -5034,14 +5035,14 @@ "header/model/sg_models/turbine_governor_model/TGOV1.h" "header/model/sg_models/sync_generator_model/gencls.h" -1697457172 source:d:\steps\code\steps\source\model\sg_models\turbine_governors\urcsct.cpp +1704723171 source:d:\steps\code\steps\source\model\sg_models\turbine_governors\urcsct.cpp "header/model/sg_models/turbine_governor_model/URCSCT.h" "header/basic/utility.h" "header/STEPS.h" -1664187911 source:d:\steps\code\steps\source\model\sg_models\turbine_load_controller_model\lcfb1.cpp +1704722860 source:d:\steps\code\steps\source\model\sg_models\turbine_load_controller_model\lcfb1.cpp "header/model/sg_models/turbine_load_controller_model/lcfb1.h" "header/basic/constants.h" "header/STEPS.h" diff --git a/code/steps/header/basic/sparse_matrix.h b/code/steps/header/basic/sparse_matrix.h index 0d729ba9..0d1f441a 100644 --- a/code/steps/header/basic/sparse_matrix.h +++ b/code/steps/header/basic/sparse_matrix.h @@ -45,6 +45,8 @@ class SPARSE_MATRIX virtual void transpose() = 0; + virtual int get_matrix_row_count() const = 0; + virtual int get_matrix_column_count() const = 0; virtual int get_matrix_size() const = 0; virtual int get_matrix_entry_count() const = 0; virtual int get_starting_index_of_column(int col) const = 0; diff --git a/code/steps/header/basic/sparse_matrix_csparse.h b/code/steps/header/basic/sparse_matrix_csparse.h index b96bc351..bf0b841b 100644 --- a/code/steps/header/basic/sparse_matrix_csparse.h +++ b/code/steps/header/basic/sparse_matrix_csparse.h @@ -29,6 +29,8 @@ class SPARSE_MATRIX_CSPARSE : public SPARSE_MATRIX virtual void transpose(); + virtual int get_matrix_row_count() const; + virtual int get_matrix_column_count() const; virtual int get_matrix_size() const; virtual int get_matrix_entry_count() const; virtual int get_starting_index_of_column(int col) const; @@ -82,4 +84,6 @@ SPARSE_MATRIX_CSPARSE* operator+(SPARSE_MATRIX_CSPARSE&A, SPARSE_MATRIX_CSPARSE& SPARSE_MATRIX_CSPARSE* operator-(SPARSE_MATRIX_CSPARSE&A, SPARSE_MATRIX_CSPARSE& B); SPARSE_MATRIX_CSPARSE* operator*(SPARSE_MATRIX_CSPARSE&A, SPARSE_MATRIX_CSPARSE& B); SPARSE_MATRIX_CSPARSE* operator/(double b, SPARSE_MATRIX_CSPARSE& A); +SPARSE_MATRIX_CSPARSE inv(SPARSE_MATRIX_CSPARSE&A); +SPARSE_MATRIX_CSPARSE concatenate_matrix_diagnally(vector matrix); #endif // SPARSE_MATRIX_CSPARSE_H diff --git a/code/steps/header/basic/sparse_matrix_klu.h b/code/steps/header/basic/sparse_matrix_klu.h index 11c35959..23dbaa1b 100644 --- a/code/steps/header/basic/sparse_matrix_klu.h +++ b/code/steps/header/basic/sparse_matrix_klu.h @@ -25,6 +25,8 @@ class SPARSE_MATRIX_KLU : public SPARSE_MATRIX virtual void transpose(); + virtual int get_matrix_row_count() const; + virtual int get_matrix_column_count() const; virtual int get_matrix_size() const; virtual int get_matrix_entry_count() const; virtual int get_starting_index_of_column(int col) const; diff --git a/code/steps/header/basic/sparse_matrix_umfpack.h b/code/steps/header/basic/sparse_matrix_umfpack.h index a03973ec..09e1a52f 100644 --- a/code/steps/header/basic/sparse_matrix_umfpack.h +++ b/code/steps/header/basic/sparse_matrix_umfpack.h @@ -24,6 +24,8 @@ class SPARSE_MATRIX_UMFPACK : public SPARSE_MATRIX virtual void transpose(); + virtual int get_matrix_row_count() const; + virtual int get_matrix_column_count() const; virtual int get_matrix_size() const; virtual int get_matrix_entry_count() const; virtual int get_starting_index_of_column(int col) const; diff --git a/code/steps/header/block/block.h b/code/steps/header/block/block.h index 950e54d6..77ba3507 100644 --- a/code/steps/header/block/block.h +++ b/code/steps/header/block/block.h @@ -2,6 +2,7 @@ #define BLOCK_H #include "header/basic/steps_enum.h" +#include "header/basic/sparse_matrix_define.h" #include #include diff --git a/code/steps/header/block/differential_block.h b/code/steps/header/block/differential_block.h index cbf58536..23ad4e2b 100644 --- a/code/steps/header/block/differential_block.h +++ b/code/steps/header/block/differential_block.h @@ -19,15 +19,11 @@ class DIFFERENTIAL_BLOCK : public BLOCK void initialize(); void run(DYNAMIC_MODE mode); - double get_linearized_system_variable(char var) const; - double get_linearized_system_A() const; - double get_linearized_system_B() const; - double get_linearized_system_C() const; - double get_linearized_system_D() const; - double get_linearized_system_E() const; - double get_linearized_system_F() const; - double get_linearized_system_G() const; - double get_linearized_system_H() const; + STEPS_SPARSE_MATRIX get_linearized_system_variable(char var) const; + STEPS_SPARSE_MATRIX get_linearized_system_A() const; + STEPS_SPARSE_MATRIX get_linearized_system_B() const; + STEPS_SPARSE_MATRIX get_linearized_system_C() const; + STEPS_SPARSE_MATRIX get_linearized_system_D() const; virtual void check(); diff --git a/code/steps/header/block/differential_block_test.h b/code/steps/header/block/differential_block_test.h index cdbf79c9..4c1ee3d5 100644 --- a/code/steps/header/block/differential_block_test.h +++ b/code/steps/header/block/differential_block_test.h @@ -28,6 +28,7 @@ class DIFFERENTIAL_BLOCK_TEST : public Test::Suite void test_set_get_K(); void test_set_get_T(); void test_step_response_without_limiter(); + void test_linearized_ABCD(); private: DIFFERENTIAL_BLOCK block; }; diff --git a/code/steps/header/block/first_order_block.h b/code/steps/header/block/first_order_block.h index aba5cfd0..ca625aeb 100644 --- a/code/steps/header/block/first_order_block.h +++ b/code/steps/header/block/first_order_block.h @@ -20,15 +20,11 @@ class FIRST_ORDER_BLOCK : public BLOCK void initialize(); void run(DYNAMIC_MODE mode); - double get_linearized_system_variable(char var) const; - double get_linearized_system_A() const; - double get_linearized_system_B() const; - double get_linearized_system_C() const; - double get_linearized_system_D() const; - double get_linearized_system_E() const; - double get_linearized_system_F() const; - double get_linearized_system_G() const; - double get_linearized_system_H() const; + STEPS_SPARSE_MATRIX get_linearized_system_variable(char var) const; + STEPS_SPARSE_MATRIX get_linearized_system_A() const; + STEPS_SPARSE_MATRIX get_linearized_system_B() const; + STEPS_SPARSE_MATRIX get_linearized_system_C() const; + STEPS_SPARSE_MATRIX get_linearized_system_D() const; virtual void check(); diff --git a/code/steps/header/block/first_order_block_test.h b/code/steps/header/block/first_order_block_test.h index ddb22ff7..a6db4fd0 100644 --- a/code/steps/header/block/first_order_block_test.h +++ b/code/steps/header/block/first_order_block_test.h @@ -31,6 +31,7 @@ class FIRST_ORDER_BLOCK_TEST : public Test::Suite void test_step_response_without_limiter(); void test_step_response_with_limiter(); void test_step_response_without_limiter_when_T_is_zero(); + void test_linearized_ABCD(); private: FIRST_ORDER_BLOCK block; }; diff --git a/code/steps/header/block/integral_block.h b/code/steps/header/block/integral_block.h index 6938053e..a8fd7ddb 100644 --- a/code/steps/header/block/integral_block.h +++ b/code/steps/header/block/integral_block.h @@ -16,15 +16,11 @@ class INTEGRAL_BLOCK : public BLOCK void initialize(); void run(DYNAMIC_MODE); - double get_linearized_system_variable(char var) const; - double get_linearized_system_A() const; - double get_linearized_system_B() const; - double get_linearized_system_C() const; - double get_linearized_system_D() const; - double get_linearized_system_E() const; - double get_linearized_system_F() const; - double get_linearized_system_G() const; - double get_linearized_system_H() const; + STEPS_SPARSE_MATRIX get_linearized_system_variable(char var) const; + STEPS_SPARSE_MATRIX get_linearized_system_A() const; + STEPS_SPARSE_MATRIX get_linearized_system_B() const; + STEPS_SPARSE_MATRIX get_linearized_system_C() const; + STEPS_SPARSE_MATRIX get_linearized_system_D() const; virtual void check(); private: diff --git a/code/steps/header/block/lead_lag_block.h b/code/steps/header/block/lead_lag_block.h index 56d91a4f..37115617 100644 --- a/code/steps/header/block/lead_lag_block.h +++ b/code/steps/header/block/lead_lag_block.h @@ -22,15 +22,11 @@ class LEAD_LAG_BLOCK : public BLOCK void initialize(); void run(DYNAMIC_MODE mode); - double get_linearized_system_variable(char var) const; - double get_linearized_system_A() const; - double get_linearized_system_B() const; - double get_linearized_system_C() const; - double get_linearized_system_D() const; - double get_linearized_system_E() const; - double get_linearized_system_F() const; - double get_linearized_system_G() const; - double get_linearized_system_H() const; + STEPS_SPARSE_MATRIX get_linearized_system_variable(char var) const; + STEPS_SPARSE_MATRIX get_linearized_system_A() const; + STEPS_SPARSE_MATRIX get_linearized_system_B() const; + STEPS_SPARSE_MATRIX get_linearized_system_C() const; + STEPS_SPARSE_MATRIX get_linearized_system_D() const; virtual void check(); private: diff --git a/code/steps/header/block/pd_block.h b/code/steps/header/block/pd_block.h index 90089e3b..45db3a74 100644 --- a/code/steps/header/block/pd_block.h +++ b/code/steps/header/block/pd_block.h @@ -26,15 +26,11 @@ class PD_BLOCK : public BLOCK void initialize(); void run(DYNAMIC_MODE mode); - double get_linearized_system_variable(char var) const; - double get_linearized_system_A() const; - double get_linearized_system_B() const; - double get_linearized_system_C() const; - double get_linearized_system_D() const; - double get_linearized_system_E() const; - double get_linearized_system_F() const; - double get_linearized_system_G() const; - double get_linearized_system_H() const; + STEPS_SPARSE_MATRIX get_linearized_system_variable(char var) const; + STEPS_SPARSE_MATRIX get_linearized_system_A() const; + STEPS_SPARSE_MATRIX get_linearized_system_B() const; + STEPS_SPARSE_MATRIX get_linearized_system_C() const; + STEPS_SPARSE_MATRIX get_linearized_system_D() const; virtual void check(); private: diff --git a/code/steps/header/block/pi_block.h b/code/steps/header/block/pi_block.h index f2d04f7a..cd0f875a 100644 --- a/code/steps/header/block/pi_block.h +++ b/code/steps/header/block/pi_block.h @@ -23,15 +23,11 @@ class PI_BLOCK : public BLOCK void initialize(); void run(DYNAMIC_MODE mode); - double get_linearized_system_variable(char var) const; - double get_linearized_system_A() const; - double get_linearized_system_B() const; - double get_linearized_system_C() const; - double get_linearized_system_D() const; - double get_linearized_system_E() const; - double get_linearized_system_F() const; - double get_linearized_system_G() const; - double get_linearized_system_H() const; + STEPS_SPARSE_MATRIX get_linearized_system_variable(char var) const; + STEPS_SPARSE_MATRIX get_linearized_system_A() const; + STEPS_SPARSE_MATRIX get_linearized_system_B() const; + STEPS_SPARSE_MATRIX get_linearized_system_C() const; + STEPS_SPARSE_MATRIX get_linearized_system_D() const; virtual void check(); diff --git a/code/steps/header/block/pid_block.h b/code/steps/header/block/pid_block.h index 9fb33bcf..8aa5500b 100644 --- a/code/steps/header/block/pid_block.h +++ b/code/steps/header/block/pid_block.h @@ -34,15 +34,11 @@ class PID_BLOCK : public BLOCK void initialize(); void run(DYNAMIC_MODE mode); - double get_linearized_system_variable(char var) const; - double get_linearized_system_A() const; - double get_linearized_system_B() const; - double get_linearized_system_C() const; - double get_linearized_system_D() const; - double get_linearized_system_E() const; - double get_linearized_system_F() const; - double get_linearized_system_G() const; - double get_linearized_system_H() const; + STEPS_SPARSE_MATRIX get_linearized_system_variable(char var) const; + STEPS_SPARSE_MATRIX get_linearized_system_A() const; + STEPS_SPARSE_MATRIX get_linearized_system_B() const; + STEPS_SPARSE_MATRIX get_linearized_system_C() const; + STEPS_SPARSE_MATRIX get_linearized_system_D() const; virtual void check(); private: diff --git a/code/steps/header/block/pid_block_test.h b/code/steps/header/block/pid_block_test.h index 60a9c053..bd460847 100644 --- a/code/steps/header/block/pid_block_test.h +++ b/code/steps/header/block/pid_block_test.h @@ -31,6 +31,7 @@ class PID_BLOCK_TEST : public Test::Suite void test_set_get_Kd(); void test_set_get_Td(); void test_step_response_without_limiter(); + void test_linearized_ABCD(); private: PID_BLOCK block; }; diff --git a/code/steps/header/block/proportional_block.h b/code/steps/header/block/proportional_block.h index 571b8ea7..d23f0e52 100644 --- a/code/steps/header/block/proportional_block.h +++ b/code/steps/header/block/proportional_block.h @@ -16,6 +16,12 @@ class PROPORTIONAL_BLOCK : public BLOCK void initialize(); void run(DYNAMIC_MODE mode); + STEPS_SPARSE_MATRIX get_linearized_system_variable(char var) const; + STEPS_SPARSE_MATRIX get_linearized_system_A() const; + STEPS_SPARSE_MATRIX get_linearized_system_B() const; + STEPS_SPARSE_MATRIX get_linearized_system_C() const; + STEPS_SPARSE_MATRIX get_linearized_system_D() const; + virtual void check(); private: void integrate(); diff --git a/code/steps/header/block/second_order_block.h b/code/steps/header/block/second_order_block.h index 06c47836..95a0b31a 100644 --- a/code/steps/header/block/second_order_block.h +++ b/code/steps/header/block/second_order_block.h @@ -27,15 +27,11 @@ class SECOND_ORDER_BLOCK : public BLOCK void initialize(); void run(DYNAMIC_MODE mode); - double get_linearized_system_variable(char var) const; - double get_linearized_system_A() const; - double get_linearized_system_B() const; - double get_linearized_system_C() const; - double get_linearized_system_D() const; - double get_linearized_system_E() const; - double get_linearized_system_F() const; - double get_linearized_system_G() const; - double get_linearized_system_H() const; + STEPS_SPARSE_MATRIX get_linearized_system_variable(char var) const; + STEPS_SPARSE_MATRIX get_linearized_system_A() const; + STEPS_SPARSE_MATRIX get_linearized_system_B() const; + STEPS_SPARSE_MATRIX get_linearized_system_C() const; + STEPS_SPARSE_MATRIX get_linearized_system_D() const; virtual void check(); private: diff --git a/code/steps/header/block/second_order_block_test.h b/code/steps/header/block/second_order_block_test.h index ceff6156..210ff8b5 100644 --- a/code/steps/header/block/second_order_block_test.h +++ b/code/steps/header/block/second_order_block_test.h @@ -33,6 +33,7 @@ class SECOND_ORDER_BLOCK_TEST : public Test::Suite void test_initialize_integrate_update_once(); void test_step_response_when_d_is_zero(); void test_step_response_when_d_is_nonzero(); + void test_linearized_ABCD(); private: SECOND_ORDER_BLOCK block; }; diff --git a/code/steps/header/device/generator.h b/code/steps/header/device/generator.h index 1bba341d..2fe91981 100644 --- a/code/steps/header/device/generator.h +++ b/code/steps/header/device/generator.h @@ -93,6 +93,11 @@ class GENERATOR : public SOURCE void set_sequence_parameter_import_flag(bool flag); bool get_sequence_parameter_import_flag() const; + + void get_linearized_system_ABCD(STEPS_SPARSE_MATRIX* A, + STEPS_SPARSE_MATRIX* B, + STEPS_SPARSE_MATRIX* C, + STEPS_SPARSE_MATRIX* D) const; private: SYNC_GENERATOR_MODEL* sync_generator_model; COMPENSATOR_MODEL* compensator_model; diff --git a/code/steps/header/model/sg_models/compensator_model/COMP.h b/code/steps/header/model/sg_models/compensator_model/COMP.h index 35606302..fb5af0b9 100644 --- a/code/steps/header/model/sg_models/compensator_model/COMP.h +++ b/code/steps/header/model/sg_models/compensator_model/COMP.h @@ -44,6 +44,14 @@ class COMP: public COMPENSATOR_MODEL virtual string get_dynamic_data_in_steps_format() const; virtual void linearize(); + virtual STEPS_SPARSE_MATRIX get_linearized_system_A() const; + virtual STEPS_SPARSE_MATRIX get_linearized_system_B() const; + virtual STEPS_SPARSE_MATRIX get_linearized_system_C() const; + virtual STEPS_SPARSE_MATRIX get_linearized_system_D() const; + virtual void get_linearized_system_ABCD(STEPS_SPARSE_MATRIX* A, + STEPS_SPARSE_MATRIX* B, + STEPS_SPARSE_MATRIX* C, + STEPS_SPARSE_MATRIX* D) const; private: void copy_from_const_model(const COMP& model); diff --git a/code/steps/header/model/sg_models/compensator_model/IEEEVC.h b/code/steps/header/model/sg_models/compensator_model/IEEEVC.h index 5c4affd0..2e80930b 100644 --- a/code/steps/header/model/sg_models/compensator_model/IEEEVC.h +++ b/code/steps/header/model/sg_models/compensator_model/IEEEVC.h @@ -47,6 +47,14 @@ class IEEEVC: public COMPENSATOR_MODEL virtual string get_dynamic_data_in_steps_format() const; virtual void linearize(); + virtual STEPS_SPARSE_MATRIX get_linearized_system_A() const; + virtual STEPS_SPARSE_MATRIX get_linearized_system_B() const; + virtual STEPS_SPARSE_MATRIX get_linearized_system_C() const; + virtual STEPS_SPARSE_MATRIX get_linearized_system_D() const; + virtual void get_linearized_system_ABCD(STEPS_SPARSE_MATRIX* A, + STEPS_SPARSE_MATRIX* B, + STEPS_SPARSE_MATRIX* C, + STEPS_SPARSE_MATRIX* D) const; private: void copy_from_const_model(const IEEEVC& model); diff --git a/code/steps/header/model/sg_models/compensator_model/PSASPVC.h b/code/steps/header/model/sg_models/compensator_model/PSASPVC.h index 185fdc42..b5d3244e 100644 --- a/code/steps/header/model/sg_models/compensator_model/PSASPVC.h +++ b/code/steps/header/model/sg_models/compensator_model/PSASPVC.h @@ -44,6 +44,14 @@ class PSASPVC: public COMPENSATOR_MODEL virtual string get_dynamic_data_in_steps_format() const; virtual void linearize(); + virtual STEPS_SPARSE_MATRIX get_linearized_system_A() const; + virtual STEPS_SPARSE_MATRIX get_linearized_system_B() const; + virtual STEPS_SPARSE_MATRIX get_linearized_system_C() const; + virtual STEPS_SPARSE_MATRIX get_linearized_system_D() const; + virtual void get_linearized_system_ABCD(STEPS_SPARSE_MATRIX* A, + STEPS_SPARSE_MATRIX* B, + STEPS_SPARSE_MATRIX* C, + STEPS_SPARSE_MATRIX* D) const; private: void copy_from_const_model(const PSASPVC& model); diff --git a/code/steps/header/model/sg_models/compensator_model/compensator_model.h b/code/steps/header/model/sg_models/compensator_model/compensator_model.h index e2d8417b..3bda6db6 100644 --- a/code/steps/header/model/sg_models/compensator_model/compensator_model.h +++ b/code/steps/header/model/sg_models/compensator_model/compensator_model.h @@ -57,6 +57,15 @@ class COMPENSATOR_MODEL : public SG_MODEL virtual string get_dynamic_data_in_psse_format() const = 0; virtual string get_dynamic_data_in_bpa_format() const = 0; virtual string get_dynamic_data_in_steps_format() const = 0; + + virtual STEPS_SPARSE_MATRIX get_linearized_system_A() const = 0; + virtual STEPS_SPARSE_MATRIX get_linearized_system_B() const = 0; + virtual STEPS_SPARSE_MATRIX get_linearized_system_C() const = 0; + virtual STEPS_SPARSE_MATRIX get_linearized_system_D() const = 0; + virtual void get_linearized_system_ABCD(STEPS_SPARSE_MATRIX* A, + STEPS_SPARSE_MATRIX* B, + STEPS_SPARSE_MATRIX* C, + STEPS_SPARSE_MATRIX* D) const = 0; private: double ecomp; diff --git a/code/steps/header/model/sg_models/exciter_model/CSEET1.h b/code/steps/header/model/sg_models/exciter_model/CSEET1.h index 3d9397b2..754da937 100644 --- a/code/steps/header/model/sg_models/exciter_model/CSEET1.h +++ b/code/steps/header/model/sg_models/exciter_model/CSEET1.h @@ -140,6 +140,14 @@ class CSEET1: public EXCITER_MODEL virtual string get_dynamic_data_in_steps_format() const; virtual void linearize(); + virtual STEPS_SPARSE_MATRIX get_linearized_system_A() const; + virtual STEPS_SPARSE_MATRIX get_linearized_system_B() const; + virtual STEPS_SPARSE_MATRIX get_linearized_system_C() const; + virtual STEPS_SPARSE_MATRIX get_linearized_system_D() const; + virtual void get_linearized_system_ABCD(STEPS_SPARSE_MATRIX* A, + STEPS_SPARSE_MATRIX* B, + STEPS_SPARSE_MATRIX* C, + STEPS_SPARSE_MATRIX* D) const; private: void copy_from_const_model(const CSEET1& model); double get_initial_Ve_with_Fex_function() const; diff --git a/code/steps/header/model/sg_models/exciter_model/CSEET2.h b/code/steps/header/model/sg_models/exciter_model/CSEET2.h index 1b5e6f66..fe4f4260 100644 --- a/code/steps/header/model/sg_models/exciter_model/CSEET2.h +++ b/code/steps/header/model/sg_models/exciter_model/CSEET2.h @@ -110,6 +110,14 @@ class CSEET2: public EXCITER_MODEL virtual string get_dynamic_data_in_steps_format() const; virtual void linearize(); + virtual STEPS_SPARSE_MATRIX get_linearized_system_A() const; + virtual STEPS_SPARSE_MATRIX get_linearized_system_B() const; + virtual STEPS_SPARSE_MATRIX get_linearized_system_C() const; + virtual STEPS_SPARSE_MATRIX get_linearized_system_D() const; + virtual void get_linearized_system_ABCD(STEPS_SPARSE_MATRIX* A, + STEPS_SPARSE_MATRIX* B, + STEPS_SPARSE_MATRIX* C, + STEPS_SPARSE_MATRIX* D) const; private: void copy_from_const_model(const CSEET2& model); diff --git a/code/steps/header/model/sg_models/exciter_model/IEEET1.h b/code/steps/header/model/sg_models/exciter_model/IEEET1.h index d385b911..71d120af 100644 --- a/code/steps/header/model/sg_models/exciter_model/IEEET1.h +++ b/code/steps/header/model/sg_models/exciter_model/IEEET1.h @@ -72,6 +72,14 @@ class IEEET1: public EXCITER_MODEL virtual string get_dynamic_data_in_steps_format() const; virtual void linearize(); + virtual STEPS_SPARSE_MATRIX get_linearized_system_A() const; + virtual STEPS_SPARSE_MATRIX get_linearized_system_B() const; + virtual STEPS_SPARSE_MATRIX get_linearized_system_C() const; + virtual STEPS_SPARSE_MATRIX get_linearized_system_D() const; + virtual void get_linearized_system_ABCD(STEPS_SPARSE_MATRIX* A, + STEPS_SPARSE_MATRIX* B, + STEPS_SPARSE_MATRIX* C, + STEPS_SPARSE_MATRIX* D) const; private: void copy_from_const_model(const IEEET1& model); diff --git a/code/steps/header/model/sg_models/exciter_model/PSASPE1.h b/code/steps/header/model/sg_models/exciter_model/PSASPE1.h index 3272df74..df8d4d1b 100644 --- a/code/steps/header/model/sg_models/exciter_model/PSASPE1.h +++ b/code/steps/header/model/sg_models/exciter_model/PSASPE1.h @@ -64,6 +64,14 @@ class PSASPE1: public EXCITER_MODEL virtual string get_dynamic_data_in_steps_format() const; virtual void linearize(); + virtual STEPS_SPARSE_MATRIX get_linearized_system_A() const; + virtual STEPS_SPARSE_MATRIX get_linearized_system_B() const; + virtual STEPS_SPARSE_MATRIX get_linearized_system_C() const; + virtual STEPS_SPARSE_MATRIX get_linearized_system_D() const; + virtual void get_linearized_system_ABCD(STEPS_SPARSE_MATRIX* A, + STEPS_SPARSE_MATRIX* B, + STEPS_SPARSE_MATRIX* C, + STEPS_SPARSE_MATRIX* D) const; private: void copy_from_const_model(const PSASPE1& model); diff --git a/code/steps/header/model/sg_models/exciter_model/PSASPE13.h b/code/steps/header/model/sg_models/exciter_model/PSASPE13.h index 55b81e13..d52f977d 100644 --- a/code/steps/header/model/sg_models/exciter_model/PSASPE13.h +++ b/code/steps/header/model/sg_models/exciter_model/PSASPE13.h @@ -73,6 +73,14 @@ class PSASPE13: public EXCITER_MODEL virtual string get_dynamic_data_in_steps_format() const; virtual void linearize(); + virtual STEPS_SPARSE_MATRIX get_linearized_system_A() const; + virtual STEPS_SPARSE_MATRIX get_linearized_system_B() const; + virtual STEPS_SPARSE_MATRIX get_linearized_system_C() const; + virtual STEPS_SPARSE_MATRIX get_linearized_system_D() const; + virtual void get_linearized_system_ABCD(STEPS_SPARSE_MATRIX* A, + STEPS_SPARSE_MATRIX* B, + STEPS_SPARSE_MATRIX* C, + STEPS_SPARSE_MATRIX* D) const; private: void copy_from_const_model(const PSASPE13& model); diff --git a/code/steps/header/model/sg_models/exciter_model/PSASPE14.h b/code/steps/header/model/sg_models/exciter_model/PSASPE14.h index 6613209b..6bfcc7af 100644 --- a/code/steps/header/model/sg_models/exciter_model/PSASPE14.h +++ b/code/steps/header/model/sg_models/exciter_model/PSASPE14.h @@ -79,6 +79,14 @@ class PSASPE14: public EXCITER_MODEL virtual string get_dynamic_data_in_steps_format() const; virtual void linearize(); + virtual STEPS_SPARSE_MATRIX get_linearized_system_A() const; + virtual STEPS_SPARSE_MATRIX get_linearized_system_B() const; + virtual STEPS_SPARSE_MATRIX get_linearized_system_C() const; + virtual STEPS_SPARSE_MATRIX get_linearized_system_D() const; + virtual void get_linearized_system_ABCD(STEPS_SPARSE_MATRIX* A, + STEPS_SPARSE_MATRIX* B, + STEPS_SPARSE_MATRIX* C, + STEPS_SPARSE_MATRIX* D) const; private: void copy_from_const_model(const PSASPE14& model); diff --git a/code/steps/header/model/sg_models/exciter_model/PSASPE2.h b/code/steps/header/model/sg_models/exciter_model/PSASPE2.h index c93a4860..a2312730 100644 --- a/code/steps/header/model/sg_models/exciter_model/PSASPE2.h +++ b/code/steps/header/model/sg_models/exciter_model/PSASPE2.h @@ -77,6 +77,14 @@ class PSASPE2: public EXCITER_MODEL virtual string get_dynamic_data_in_steps_format() const; virtual void linearize(); + virtual STEPS_SPARSE_MATRIX get_linearized_system_A() const; + virtual STEPS_SPARSE_MATRIX get_linearized_system_B() const; + virtual STEPS_SPARSE_MATRIX get_linearized_system_C() const; + virtual STEPS_SPARSE_MATRIX get_linearized_system_D() const; + virtual void get_linearized_system_ABCD(STEPS_SPARSE_MATRIX* A, + STEPS_SPARSE_MATRIX* B, + STEPS_SPARSE_MATRIX* C, + STEPS_SPARSE_MATRIX* D) const; private: void copy_from_const_model(const PSASPE2& model); diff --git a/code/steps/header/model/sg_models/exciter_model/SEXS.h b/code/steps/header/model/sg_models/exciter_model/SEXS.h index 566f65d9..f1b5f521 100644 --- a/code/steps/header/model/sg_models/exciter_model/SEXS.h +++ b/code/steps/header/model/sg_models/exciter_model/SEXS.h @@ -56,6 +56,14 @@ class SEXS: public EXCITER_MODEL virtual string get_dynamic_data_in_steps_format() const; virtual void linearize(); + virtual STEPS_SPARSE_MATRIX get_linearized_system_A() const; + virtual STEPS_SPARSE_MATRIX get_linearized_system_B() const; + virtual STEPS_SPARSE_MATRIX get_linearized_system_C() const; + virtual STEPS_SPARSE_MATRIX get_linearized_system_D() const; + virtual void get_linearized_system_ABCD(STEPS_SPARSE_MATRIX* A, + STEPS_SPARSE_MATRIX* B, + STEPS_SPARSE_MATRIX* C, + STEPS_SPARSE_MATRIX* D) const; private: void copy_from_const_model(const SEXS& model); diff --git a/code/steps/header/model/sg_models/exciter_model/exciter_model.h b/code/steps/header/model/sg_models/exciter_model/exciter_model.h index 2fec9557..4163a48e 100644 --- a/code/steps/header/model/sg_models/exciter_model/exciter_model.h +++ b/code/steps/header/model/sg_models/exciter_model/exciter_model.h @@ -59,6 +59,15 @@ class EXCITER_MODEL : public SG_MODEL virtual string get_dynamic_data_in_psse_format() const = 0; virtual string get_dynamic_data_in_bpa_format() const = 0; virtual string get_dynamic_data_in_steps_format() const = 0; + + virtual STEPS_SPARSE_MATRIX get_linearized_system_A() const = 0; + virtual STEPS_SPARSE_MATRIX get_linearized_system_B() const = 0; + virtual STEPS_SPARSE_MATRIX get_linearized_system_C() const = 0; + virtual STEPS_SPARSE_MATRIX get_linearized_system_D() const = 0; + virtual void get_linearized_system_ABCD(STEPS_SPARSE_MATRIX* A, + STEPS_SPARSE_MATRIX* B, + STEPS_SPARSE_MATRIX* C, + STEPS_SPARSE_MATRIX* D) const = 0; private: double voltage_reference_in_pu; diff --git a/code/steps/header/model/sg_models/sg_model.h b/code/steps/header/model/sg_models/sg_model.h index 26c4450b..4da43099 100644 --- a/code/steps/header/model/sg_models/sg_model.h +++ b/code/steps/header/model/sg_models/sg_model.h @@ -54,6 +54,16 @@ class SG_MODEL : public MODEL virtual void linearize() = 0; virtual STEPS_SPARSE_MATRIX* get_linearized_matrix(string matrix_type) = 0; virtual void set_linearized_matrix(string matrix_type, STEPS_SPARSE_MATRIX* matrix) = 0; + + STEPS_SPARSE_MATRIX get_linearized_system_variable(char var) const; + virtual STEPS_SPARSE_MATRIX get_linearized_system_A() const = 0; + virtual STEPS_SPARSE_MATRIX get_linearized_system_B() const = 0; + virtual STEPS_SPARSE_MATRIX get_linearized_system_C() const = 0; + virtual STEPS_SPARSE_MATRIX get_linearized_system_D() const = 0; + virtual void get_linearized_system_ABCD(STEPS_SPARSE_MATRIX* A, + STEPS_SPARSE_MATRIX* B, + STEPS_SPARSE_MATRIX* C, + STEPS_SPARSE_MATRIX* D) const = 0; private: }; diff --git a/code/steps/header/model/sg_models/stabilizer_model/IEE2ST.h b/code/steps/header/model/sg_models/stabilizer_model/IEE2ST.h index c7d4c53f..85c5b5fb 100644 --- a/code/steps/header/model/sg_models/stabilizer_model/IEE2ST.h +++ b/code/steps/header/model/sg_models/stabilizer_model/IEE2ST.h @@ -80,6 +80,14 @@ class IEE2ST : public STABILIZER_MODEL virtual string get_dynamic_data_in_steps_format() const; virtual void linearize(); + virtual STEPS_SPARSE_MATRIX get_linearized_system_A() const; + virtual STEPS_SPARSE_MATRIX get_linearized_system_B() const; + virtual STEPS_SPARSE_MATRIX get_linearized_system_C() const; + virtual STEPS_SPARSE_MATRIX get_linearized_system_D() const; + virtual void get_linearized_system_ABCD(STEPS_SPARSE_MATRIX* A, + STEPS_SPARSE_MATRIX* B, + STEPS_SPARSE_MATRIX* C, + STEPS_SPARSE_MATRIX* D) const; private: void copy_from_const_model(const IEE2ST& model); diff --git a/code/steps/header/model/sg_models/stabilizer_model/PSASPS1.h b/code/steps/header/model/sg_models/stabilizer_model/PSASPS1.h index af43cf25..9bc88d00 100644 --- a/code/steps/header/model/sg_models/stabilizer_model/PSASPS1.h +++ b/code/steps/header/model/sg_models/stabilizer_model/PSASPS1.h @@ -68,6 +68,14 @@ class PSASPS1 : public STABILIZER_MODEL virtual string get_dynamic_data_in_steps_format() const; virtual void linearize(); + virtual STEPS_SPARSE_MATRIX get_linearized_system_A() const; + virtual STEPS_SPARSE_MATRIX get_linearized_system_B() const; + virtual STEPS_SPARSE_MATRIX get_linearized_system_C() const; + virtual STEPS_SPARSE_MATRIX get_linearized_system_D() const; + virtual void get_linearized_system_ABCD(STEPS_SPARSE_MATRIX* A, + STEPS_SPARSE_MATRIX* B, + STEPS_SPARSE_MATRIX* C, + STEPS_SPARSE_MATRIX* D) const; private: void copy_from_const_model(const PSASPS1& model); diff --git a/code/steps/header/model/sg_models/stabilizer_model/PSASPS2.h b/code/steps/header/model/sg_models/stabilizer_model/PSASPS2.h index ce72812a..eb3a05e3 100644 --- a/code/steps/header/model/sg_models/stabilizer_model/PSASPS2.h +++ b/code/steps/header/model/sg_models/stabilizer_model/PSASPS2.h @@ -75,6 +75,14 @@ class PSASPS2 : public STABILIZER_MODEL virtual string get_dynamic_data_in_steps_format() const; virtual void linearize(); + virtual STEPS_SPARSE_MATRIX get_linearized_system_A() const; + virtual STEPS_SPARSE_MATRIX get_linearized_system_B() const; + virtual STEPS_SPARSE_MATRIX get_linearized_system_C() const; + virtual STEPS_SPARSE_MATRIX get_linearized_system_D() const; + virtual void get_linearized_system_ABCD(STEPS_SPARSE_MATRIX* A, + STEPS_SPARSE_MATRIX* B, + STEPS_SPARSE_MATRIX* C, + STEPS_SPARSE_MATRIX* D) const; private: void copy_from_const_model(const PSASPS2& model); diff --git a/code/steps/header/model/sg_models/stabilizer_model/PSASPS3.h b/code/steps/header/model/sg_models/stabilizer_model/PSASPS3.h index 624dada4..e63634a6 100644 --- a/code/steps/header/model/sg_models/stabilizer_model/PSASPS3.h +++ b/code/steps/header/model/sg_models/stabilizer_model/PSASPS3.h @@ -84,6 +84,14 @@ class PSASPS3 : public STABILIZER_MODEL virtual string get_dynamic_data_in_steps_format() const; virtual void linearize(); + virtual STEPS_SPARSE_MATRIX get_linearized_system_A() const; + virtual STEPS_SPARSE_MATRIX get_linearized_system_B() const; + virtual STEPS_SPARSE_MATRIX get_linearized_system_C() const; + virtual STEPS_SPARSE_MATRIX get_linearized_system_D() const; + virtual void get_linearized_system_ABCD(STEPS_SPARSE_MATRIX* A, + STEPS_SPARSE_MATRIX* B, + STEPS_SPARSE_MATRIX* C, + STEPS_SPARSE_MATRIX* D) const; private: void copy_from_const_model(const PSASPS3& model); diff --git a/code/steps/header/model/sg_models/stabilizer_model/PSASPS4.h b/code/steps/header/model/sg_models/stabilizer_model/PSASPS4.h index bf3edfc6..8d9f0a72 100644 --- a/code/steps/header/model/sg_models/stabilizer_model/PSASPS4.h +++ b/code/steps/header/model/sg_models/stabilizer_model/PSASPS4.h @@ -93,6 +93,14 @@ class PSASPS4 : public STABILIZER_MODEL virtual string get_dynamic_data_in_steps_format() const; virtual void linearize(); + virtual STEPS_SPARSE_MATRIX get_linearized_system_A() const; + virtual STEPS_SPARSE_MATRIX get_linearized_system_B() const; + virtual STEPS_SPARSE_MATRIX get_linearized_system_C() const; + virtual STEPS_SPARSE_MATRIX get_linearized_system_D() const; + virtual void get_linearized_system_ABCD(STEPS_SPARSE_MATRIX* A, + STEPS_SPARSE_MATRIX* B, + STEPS_SPARSE_MATRIX* C, + STEPS_SPARSE_MATRIX* D) const; private: void copy_from_const_model(const PSASPS4& model); diff --git a/code/steps/header/model/sg_models/stabilizer_model/PSASPS5.h b/code/steps/header/model/sg_models/stabilizer_model/PSASPS5.h index 0881dd96..cfd698c3 100644 --- a/code/steps/header/model/sg_models/stabilizer_model/PSASPS5.h +++ b/code/steps/header/model/sg_models/stabilizer_model/PSASPS5.h @@ -73,6 +73,14 @@ class PSASPS5 : public STABILIZER_MODEL virtual string get_dynamic_data_in_steps_format() const; virtual void linearize(); + virtual STEPS_SPARSE_MATRIX get_linearized_system_A() const; + virtual STEPS_SPARSE_MATRIX get_linearized_system_B() const; + virtual STEPS_SPARSE_MATRIX get_linearized_system_C() const; + virtual STEPS_SPARSE_MATRIX get_linearized_system_D() const; + virtual void get_linearized_system_ABCD(STEPS_SPARSE_MATRIX* A, + STEPS_SPARSE_MATRIX* B, + STEPS_SPARSE_MATRIX* C, + STEPS_SPARSE_MATRIX* D) const; private: void copy_from_const_model(const PSASPS5& model); diff --git a/code/steps/header/model/sg_models/stabilizer_model/PSASPS6.h b/code/steps/header/model/sg_models/stabilizer_model/PSASPS6.h index fc533e69..690766f3 100644 --- a/code/steps/header/model/sg_models/stabilizer_model/PSASPS6.h +++ b/code/steps/header/model/sg_models/stabilizer_model/PSASPS6.h @@ -87,6 +87,14 @@ class PSASPS6 : public STABILIZER_MODEL virtual string get_dynamic_data_in_steps_format() const; virtual void linearize(); + virtual STEPS_SPARSE_MATRIX get_linearized_system_A() const; + virtual STEPS_SPARSE_MATRIX get_linearized_system_B() const; + virtual STEPS_SPARSE_MATRIX get_linearized_system_C() const; + virtual STEPS_SPARSE_MATRIX get_linearized_system_D() const; + virtual void get_linearized_system_ABCD(STEPS_SPARSE_MATRIX* A, + STEPS_SPARSE_MATRIX* B, + STEPS_SPARSE_MATRIX* C, + STEPS_SPARSE_MATRIX* D) const; private: void copy_from_const_model(const PSASPS6& model); diff --git a/code/steps/header/model/sg_models/stabilizer_model/PSASPS8.h b/code/steps/header/model/sg_models/stabilizer_model/PSASPS8.h index 57497b26..3090e6ca 100644 --- a/code/steps/header/model/sg_models/stabilizer_model/PSASPS8.h +++ b/code/steps/header/model/sg_models/stabilizer_model/PSASPS8.h @@ -67,6 +67,14 @@ class PSASPS8 : public STABILIZER_MODEL virtual string get_dynamic_data_in_steps_format() const; virtual void linearize(); + virtual STEPS_SPARSE_MATRIX get_linearized_system_A() const; + virtual STEPS_SPARSE_MATRIX get_linearized_system_B() const; + virtual STEPS_SPARSE_MATRIX get_linearized_system_C() const; + virtual STEPS_SPARSE_MATRIX get_linearized_system_D() const; + virtual void get_linearized_system_ABCD(STEPS_SPARSE_MATRIX* A, + STEPS_SPARSE_MATRIX* B, + STEPS_SPARSE_MATRIX* C, + STEPS_SPARSE_MATRIX* D) const; private: void copy_from_const_model(const PSASPS8& model); diff --git a/code/steps/header/model/sg_models/stabilizer_model/stabilizer_model.h b/code/steps/header/model/sg_models/stabilizer_model/stabilizer_model.h index e1010690..b21a4558 100644 --- a/code/steps/header/model/sg_models/stabilizer_model/stabilizer_model.h +++ b/code/steps/header/model/sg_models/stabilizer_model/stabilizer_model.h @@ -70,6 +70,14 @@ class STABILIZER_MODEL : public SG_MODEL virtual string get_dynamic_data_in_bpa_format() const = 0; virtual string get_dynamic_data_in_steps_format() const = 0; + virtual STEPS_SPARSE_MATRIX get_linearized_system_A() const = 0; + virtual STEPS_SPARSE_MATRIX get_linearized_system_B() const = 0; + virtual STEPS_SPARSE_MATRIX get_linearized_system_C() const = 0; + virtual STEPS_SPARSE_MATRIX get_linearized_system_D() const = 0; + virtual void get_linearized_system_ABCD(STEPS_SPARSE_MATRIX* A, + STEPS_SPARSE_MATRIX* B, + STEPS_SPARSE_MATRIX* C, + STEPS_SPARSE_MATRIX* D) const = 0; private: const SIGNAL* get_const_pointer_of_signal_at_slot(unsigned int slot) const; SIGNAL* get_nonconst_pointer_of_signal_at_slot(unsigned int slot); diff --git a/code/steps/header/model/sg_models/sync_generator_model/gencls.h b/code/steps/header/model/sg_models/sync_generator_model/gencls.h index ed9532b4..9c197109 100644 --- a/code/steps/header/model/sg_models/sync_generator_model/gencls.h +++ b/code/steps/header/model/sg_models/sync_generator_model/gencls.h @@ -69,6 +69,14 @@ class GENCLS : public SYNC_GENERATOR_MODEL virtual string get_dynamic_data_in_steps_format() const; virtual void linearize(); + virtual STEPS_SPARSE_MATRIX get_linearized_system_A() const; + virtual STEPS_SPARSE_MATRIX get_linearized_system_B() const; + virtual STEPS_SPARSE_MATRIX get_linearized_system_C() const; + virtual STEPS_SPARSE_MATRIX get_linearized_system_D() const; + virtual void get_linearized_system_ABCD(STEPS_SPARSE_MATRIX* A, + STEPS_SPARSE_MATRIX* B, + STEPS_SPARSE_MATRIX* C, + STEPS_SPARSE_MATRIX* D) const; private: void copy_from_const_model(const GENCLS& model); }; diff --git a/code/steps/header/model/sg_models/sync_generator_model/genrou.h b/code/steps/header/model/sg_models/sync_generator_model/genrou.h index a819b98a..a2d2825d 100644 --- a/code/steps/header/model/sg_models/sync_generator_model/genrou.h +++ b/code/steps/header/model/sg_models/sync_generator_model/genrou.h @@ -70,6 +70,14 @@ class GENROU : public SYNC_GENERATOR_MODEL virtual string get_dynamic_data_in_steps_format() const; virtual void linearize(); + virtual STEPS_SPARSE_MATRIX get_linearized_system_A() const; + virtual STEPS_SPARSE_MATRIX get_linearized_system_B() const; + virtual STEPS_SPARSE_MATRIX get_linearized_system_C() const; + virtual STEPS_SPARSE_MATRIX get_linearized_system_D() const; + virtual void get_linearized_system_ABCD(STEPS_SPARSE_MATRIX* A, + STEPS_SPARSE_MATRIX* B, + STEPS_SPARSE_MATRIX* C, + STEPS_SPARSE_MATRIX* D) const; public: // the following two functions are used to model GENROU as ideal voltage source // with set_excitation_voltage_in_pu(), GENROU is user controllable. diff --git a/code/steps/header/model/sg_models/sync_generator_model/gensal.h b/code/steps/header/model/sg_models/sync_generator_model/gensal.h index 924a6383..1193b32e 100644 --- a/code/steps/header/model/sg_models/sync_generator_model/gensal.h +++ b/code/steps/header/model/sg_models/sync_generator_model/gensal.h @@ -70,6 +70,14 @@ class GENSAL : public SYNC_GENERATOR_MODEL virtual string get_dynamic_data_in_steps_format() const; virtual void linearize(); + virtual STEPS_SPARSE_MATRIX get_linearized_system_A() const; + virtual STEPS_SPARSE_MATRIX get_linearized_system_B() const; + virtual STEPS_SPARSE_MATRIX get_linearized_system_C() const; + virtual STEPS_SPARSE_MATRIX get_linearized_system_D() const; + virtual void get_linearized_system_ABCD(STEPS_SPARSE_MATRIX* A, + STEPS_SPARSE_MATRIX* B, + STEPS_SPARSE_MATRIX* C, + STEPS_SPARSE_MATRIX* D) const; public: // the following two functions are used to model GENSAL as ideal voltage source // with set_excitation_voltage_in_pu(), GENSAL is user controllable. diff --git a/code/steps/header/model/sg_models/sync_generator_model/sync_generator_model.h b/code/steps/header/model/sg_models/sync_generator_model/sync_generator_model.h index a837ef28..b4f7c475 100644 --- a/code/steps/header/model/sg_models/sync_generator_model/sync_generator_model.h +++ b/code/steps/header/model/sg_models/sync_generator_model/sync_generator_model.h @@ -149,6 +149,14 @@ class SYNC_GENERATOR_MODEL : public SG_MODEL virtual string get_dynamic_data_in_steps_format() const = 0; virtual void linearize() = 0; + virtual STEPS_SPARSE_MATRIX get_linearized_system_A() const = 0; + virtual STEPS_SPARSE_MATRIX get_linearized_system_B() const = 0; + virtual STEPS_SPARSE_MATRIX get_linearized_system_C() const = 0; + virtual STEPS_SPARSE_MATRIX get_linearized_system_D() const = 0; + virtual void get_linearized_system_ABCD(STEPS_SPARSE_MATRIX* A, + STEPS_SPARSE_MATRIX* B, + STEPS_SPARSE_MATRIX* C, + STEPS_SPARSE_MATRIX* D) const = 0; public: // the following two functions are used to model GENCLS as ideal voltage source // with set_excitation_voltage_in_pu(), GENCLS is user controllable. diff --git a/code/steps/header/model/sg_models/turbine_governor_model/GAST2A.h b/code/steps/header/model/sg_models/turbine_governor_model/GAST2A.h index fe98f554..7270cbe1 100644 --- a/code/steps/header/model/sg_models/turbine_governor_model/GAST2A.h +++ b/code/steps/header/model/sg_models/turbine_governor_model/GAST2A.h @@ -115,6 +115,14 @@ class GAST2A : public TURBINE_GOVERNOR_MODEL virtual string get_dynamic_data_in_steps_format() const; virtual void linearize(); + virtual STEPS_SPARSE_MATRIX get_linearized_system_A() const; + virtual STEPS_SPARSE_MATRIX get_linearized_system_B() const; + virtual STEPS_SPARSE_MATRIX get_linearized_system_C() const; + virtual STEPS_SPARSE_MATRIX get_linearized_system_D() const; + virtual void get_linearized_system_ABCD(STEPS_SPARSE_MATRIX* A, + STEPS_SPARSE_MATRIX* B, + STEPS_SPARSE_MATRIX* C, + STEPS_SPARSE_MATRIX* D) const; private: void copy_from_const_model(const GAST2A& model); diff --git a/code/steps/header/model/sg_models/turbine_governor_model/IEEEG1.h b/code/steps/header/model/sg_models/turbine_governor_model/IEEEG1.h index b7ae06b9..792496d6 100644 --- a/code/steps/header/model/sg_models/turbine_governor_model/IEEEG1.h +++ b/code/steps/header/model/sg_models/turbine_governor_model/IEEEG1.h @@ -89,6 +89,14 @@ class IEEEG1 : public TURBINE_GOVERNOR_MODEL virtual string get_dynamic_data_in_steps_format() const; virtual void linearize(); + virtual STEPS_SPARSE_MATRIX get_linearized_system_A() const; + virtual STEPS_SPARSE_MATRIX get_linearized_system_B() const; + virtual STEPS_SPARSE_MATRIX get_linearized_system_C() const; + virtual STEPS_SPARSE_MATRIX get_linearized_system_D() const; + virtual void get_linearized_system_ABCD(STEPS_SPARSE_MATRIX* A, + STEPS_SPARSE_MATRIX* B, + STEPS_SPARSE_MATRIX* C, + STEPS_SPARSE_MATRIX* D) const; private: void copy_from_const_model(const IEEEG1& model); diff --git a/code/steps/header/model/sg_models/turbine_governor_model/IEEEG1SB.h b/code/steps/header/model/sg_models/turbine_governor_model/IEEEG1SB.h index 60612956..b664e0e6 100644 --- a/code/steps/header/model/sg_models/turbine_governor_model/IEEEG1SB.h +++ b/code/steps/header/model/sg_models/turbine_governor_model/IEEEG1SB.h @@ -104,6 +104,14 @@ class IEEEG1SB : public TURBINE_GOVERNOR_MODEL virtual string get_dynamic_data_in_steps_format() const; virtual void linearize(); + virtual STEPS_SPARSE_MATRIX get_linearized_system_A() const; + virtual STEPS_SPARSE_MATRIX get_linearized_system_B() const; + virtual STEPS_SPARSE_MATRIX get_linearized_system_C() const; + virtual STEPS_SPARSE_MATRIX get_linearized_system_D() const; + virtual void get_linearized_system_ABCD(STEPS_SPARSE_MATRIX* A, + STEPS_SPARSE_MATRIX* B, + STEPS_SPARSE_MATRIX* C, + STEPS_SPARSE_MATRIX* D) const; private: void copy_from_const_model(const IEEEG1SB& model); diff --git a/code/steps/header/model/sg_models/turbine_governor_model/IEEEG2.h b/code/steps/header/model/sg_models/turbine_governor_model/IEEEG2.h index 80224a5a..ba71dd2b 100644 --- a/code/steps/header/model/sg_models/turbine_governor_model/IEEEG2.h +++ b/code/steps/header/model/sg_models/turbine_governor_model/IEEEG2.h @@ -63,6 +63,14 @@ class IEEEG2 : public TURBINE_GOVERNOR_MODEL virtual string get_dynamic_data_in_steps_format() const; virtual void linearize(); + virtual STEPS_SPARSE_MATRIX get_linearized_system_A() const; + virtual STEPS_SPARSE_MATRIX get_linearized_system_B() const; + virtual STEPS_SPARSE_MATRIX get_linearized_system_C() const; + virtual STEPS_SPARSE_MATRIX get_linearized_system_D() const; + virtual void get_linearized_system_ABCD(STEPS_SPARSE_MATRIX* A, + STEPS_SPARSE_MATRIX* B, + STEPS_SPARSE_MATRIX* C, + STEPS_SPARSE_MATRIX* D) const; private: void copy_from_const_model(const IEEEG2& model); diff --git a/code/steps/header/model/sg_models/turbine_governor_model/IEEEG3.h b/code/steps/header/model/sg_models/turbine_governor_model/IEEEG3.h index 586ed06e..75bcfa6e 100644 --- a/code/steps/header/model/sg_models/turbine_governor_model/IEEEG3.h +++ b/code/steps/header/model/sg_models/turbine_governor_model/IEEEG3.h @@ -78,6 +78,14 @@ class IEEEG3 : public TURBINE_GOVERNOR_MODEL virtual string get_dynamic_data_in_steps_format() const; virtual void linearize(); + virtual STEPS_SPARSE_MATRIX get_linearized_system_A() const; + virtual STEPS_SPARSE_MATRIX get_linearized_system_B() const; + virtual STEPS_SPARSE_MATRIX get_linearized_system_C() const; + virtual STEPS_SPARSE_MATRIX get_linearized_system_D() const; + virtual void get_linearized_system_ABCD(STEPS_SPARSE_MATRIX* A, + STEPS_SPARSE_MATRIX* B, + STEPS_SPARSE_MATRIX* C, + STEPS_SPARSE_MATRIX* D) const; private: void copy_from_const_model(const IEEEG3& model); diff --git a/code/steps/header/model/sg_models/turbine_governor_model/IEESGO.h b/code/steps/header/model/sg_models/turbine_governor_model/IEESGO.h index 460547ce..97badbd0 100644 --- a/code/steps/header/model/sg_models/turbine_governor_model/IEESGO.h +++ b/code/steps/header/model/sg_models/turbine_governor_model/IEESGO.h @@ -72,6 +72,14 @@ class IEESGO : public TURBINE_GOVERNOR_MODEL virtual string get_dynamic_data_in_steps_format() const; virtual void linearize(); + virtual STEPS_SPARSE_MATRIX get_linearized_system_A() const; + virtual STEPS_SPARSE_MATRIX get_linearized_system_B() const; + virtual STEPS_SPARSE_MATRIX get_linearized_system_C() const; + virtual STEPS_SPARSE_MATRIX get_linearized_system_D() const; + virtual void get_linearized_system_ABCD(STEPS_SPARSE_MATRIX* A, + STEPS_SPARSE_MATRIX* B, + STEPS_SPARSE_MATRIX* C, + STEPS_SPARSE_MATRIX* D) const; private: void copy_from_const_model(const IEESGO& model); diff --git a/code/steps/header/model/sg_models/turbine_governor_model/TGOV1.h b/code/steps/header/model/sg_models/turbine_governor_model/TGOV1.h index 2bf1531c..d297eca3 100644 --- a/code/steps/header/model/sg_models/turbine_governor_model/TGOV1.h +++ b/code/steps/header/model/sg_models/turbine_governor_model/TGOV1.h @@ -64,6 +64,14 @@ class TGOV1 : public TURBINE_GOVERNOR_MODEL virtual string get_dynamic_data_in_steps_format() const; virtual void linearize(); + virtual STEPS_SPARSE_MATRIX get_linearized_system_A() const; + virtual STEPS_SPARSE_MATRIX get_linearized_system_B() const; + virtual STEPS_SPARSE_MATRIX get_linearized_system_C() const; + virtual STEPS_SPARSE_MATRIX get_linearized_system_D() const; + virtual void get_linearized_system_ABCD(STEPS_SPARSE_MATRIX* A, + STEPS_SPARSE_MATRIX* B, + STEPS_SPARSE_MATRIX* C, + STEPS_SPARSE_MATRIX* D) const; private: void copy_from_const_model(const TGOV1& model); diff --git a/code/steps/header/model/sg_models/turbine_governor_model/URCSCT.h b/code/steps/header/model/sg_models/turbine_governor_model/URCSCT.h index c97a36fb..b26563ab 100644 --- a/code/steps/header/model/sg_models/turbine_governor_model/URCSCT.h +++ b/code/steps/header/model/sg_models/turbine_governor_model/URCSCT.h @@ -172,6 +172,14 @@ class URCSCT : public TURBINE_GOVERNOR_MODEL virtual string get_dynamic_data_in_steps_format() const; virtual void linearize(); + virtual STEPS_SPARSE_MATRIX get_linearized_system_A() const; + virtual STEPS_SPARSE_MATRIX get_linearized_system_B() const; + virtual STEPS_SPARSE_MATRIX get_linearized_system_C() const; + virtual STEPS_SPARSE_MATRIX get_linearized_system_D() const; + virtual void get_linearized_system_ABCD(STEPS_SPARSE_MATRIX* A, + STEPS_SPARSE_MATRIX* B, + STEPS_SPARSE_MATRIX* C, + STEPS_SPARSE_MATRIX* D) const; private: void copy_from_const_model(const URCSCT& model); diff --git a/code/steps/header/model/sg_models/turbine_governor_model/turbine_governor_model.h b/code/steps/header/model/sg_models/turbine_governor_model/turbine_governor_model.h index d3af0d76..37747ced 100644 --- a/code/steps/header/model/sg_models/turbine_governor_model/turbine_governor_model.h +++ b/code/steps/header/model/sg_models/turbine_governor_model/turbine_governor_model.h @@ -53,6 +53,15 @@ class TURBINE_GOVERNOR_MODEL : public SG_MODEL virtual string get_dynamic_data_in_psse_format() const = 0; virtual string get_dynamic_data_in_bpa_format() const = 0; virtual string get_dynamic_data_in_steps_format() const = 0; + + virtual STEPS_SPARSE_MATRIX get_linearized_system_A() const = 0; + virtual STEPS_SPARSE_MATRIX get_linearized_system_B() const = 0; + virtual STEPS_SPARSE_MATRIX get_linearized_system_C() const = 0; + virtual STEPS_SPARSE_MATRIX get_linearized_system_D() const = 0; + virtual void get_linearized_system_ABCD(STEPS_SPARSE_MATRIX* A, + STEPS_SPARSE_MATRIX* B, + STEPS_SPARSE_MATRIX* C, + STEPS_SPARSE_MATRIX* D) const = 0; private: double initial_mechanical_power_reference_in_pu; diff --git a/code/steps/header/model/sg_models/turbine_load_controller_model/lcfb1.h b/code/steps/header/model/sg_models/turbine_load_controller_model/lcfb1.h index b9cf8877..ffb9ff4c 100644 --- a/code/steps/header/model/sg_models/turbine_load_controller_model/lcfb1.h +++ b/code/steps/header/model/sg_models/turbine_load_controller_model/lcfb1.h @@ -66,6 +66,14 @@ class LCFB1 : public TURBINE_LOAD_CONTROLLER_MODEL virtual string get_dynamic_data_in_steps_format() const; virtual void linearize(); + virtual STEPS_SPARSE_MATRIX get_linearized_system_A() const; + virtual STEPS_SPARSE_MATRIX get_linearized_system_B() const; + virtual STEPS_SPARSE_MATRIX get_linearized_system_C() const; + virtual STEPS_SPARSE_MATRIX get_linearized_system_D() const; + virtual void get_linearized_system_ABCD(STEPS_SPARSE_MATRIX* A, + STEPS_SPARSE_MATRIX* B, + STEPS_SPARSE_MATRIX* C, + STEPS_SPARSE_MATRIX* D) const; private: void copy_from_const_model(const LCFB1& model); diff --git a/code/steps/header/model/sg_models/turbine_load_controller_model/turbine_load_controller_model.h b/code/steps/header/model/sg_models/turbine_load_controller_model/turbine_load_controller_model.h index 930457bc..c29f8816 100644 --- a/code/steps/header/model/sg_models/turbine_load_controller_model/turbine_load_controller_model.h +++ b/code/steps/header/model/sg_models/turbine_load_controller_model/turbine_load_controller_model.h @@ -60,6 +60,15 @@ class TURBINE_LOAD_CONTROLLER_MODEL : public SG_MODEL virtual string get_dynamic_data_in_psse_format() const = 0; virtual string get_dynamic_data_in_bpa_format() const = 0; virtual string get_dynamic_data_in_steps_format() const = 0; + + virtual STEPS_SPARSE_MATRIX get_linearized_system_A() const = 0; + virtual STEPS_SPARSE_MATRIX get_linearized_system_B() const = 0; + virtual STEPS_SPARSE_MATRIX get_linearized_system_C() const = 0; + virtual STEPS_SPARSE_MATRIX get_linearized_system_D() const = 0; + virtual void get_linearized_system_ABCD(STEPS_SPARSE_MATRIX* A, + STEPS_SPARSE_MATRIX* B, + STEPS_SPARSE_MATRIX* C, + STEPS_SPARSE_MATRIX* D) const = 0; private: STEPS_SPARSE_MATRIX* tlc_matrix; STEPS_SPARSE_MATRIX* tlc_gov_matrix; diff --git a/code/steps/source/basic/sparse_matrix_csparse.cpp b/code/steps/source/basic/sparse_matrix_csparse.cpp index d4b89402..799312cb 100644 --- a/code/steps/source/basic/sparse_matrix_csparse.cpp +++ b/code/steps/source/basic/sparse_matrix_csparse.cpp @@ -315,7 +315,12 @@ void SPARSE_MATRIX_CSPARSE::transpose() update_clock_when_matrix_is_changed(); } -int SPARSE_MATRIX_CSPARSE::get_matrix_size() const +int SPARSE_MATRIX_CSPARSE::get_matrix_row_count() const +{ + return matrix_real->m; +} + +int SPARSE_MATRIX_CSPARSE::get_matrix_column_count() const { return matrix_real->n; @@ -323,6 +328,11 @@ int SPARSE_MATRIX_CSPARSE::get_matrix_size() const else return 0; } +int SPARSE_MATRIX_CSPARSE::get_matrix_size() const +{ + return get_matrix_column_count(); +} + int SPARSE_MATRIX_CSPARSE::get_matrix_entry_count() const { return matrix_real->nzmax; @@ -840,3 +850,50 @@ unsigned int SPARSE_MATRIX_CSPARSE::get_memory_usage_in_bytes() bb_size*sizeof(double); return n; } + + +SPARSE_MATRIX_CSPARSE inv(SPARSE_MATRIX_CSPARSE&A) +{ + // B = inv(A) + unsigned int n = A.get_matrix_column_count(); + + vector b; + for(unsigned int i=0; i matrix) +{ + SPARSE_MATRIX_CSPARSE MATRIX; + unsigned int m=0, n = 0; + unsigned int N = matrix.size(); + for(unsigned int i = 0; iget_matrix_entry_count(); + for (unsigned int j=0; jget_real_entry_value(j); + unsigned int mi = imatrix->get_row_number_of_entry_index(j); + unsigned int ni = imatrix->get_column_number_of_entry_index(j); + MATRIX.add_entry(m+mi, n+ni, value); + } + m += imatrix->get_matrix_row_count(); + n += imatrix->get_matrix_column_count(); + } + MATRIX.compress_and_merge_duplicate_entries(); + return MATRIX; +} diff --git a/code/steps/source/basic/sparse_matrix_klu.cpp b/code/steps/source/basic/sparse_matrix_klu.cpp index ddd5c947..fcd3e0ce 100644 --- a/code/steps/source/basic/sparse_matrix_klu.cpp +++ b/code/steps/source/basic/sparse_matrix_klu.cpp @@ -337,11 +337,21 @@ void SPARSE_MATRIX_KLU::transpose() update_clock_when_matrix_is_changed(); } -int SPARSE_MATRIX_KLU::get_matrix_size() const +int SPARSE_MATRIX_KLU::get_matrix_row_count() const +{ + return n_row; +} + +int SPARSE_MATRIX_KLU::get_matrix_column_count() const { return n_column; } +int SPARSE_MATRIX_KLU::get_matrix_size() const +{ + return get_matrix_column_count(); +} + int SPARSE_MATRIX_KLU::get_matrix_entry_count() const { if(matrix_in_compressed_column_form()) diff --git a/code/steps/source/basic/sparse_matrix_umfpack.cpp b/code/steps/source/basic/sparse_matrix_umfpack.cpp index f6b27460..c7d26743 100644 --- a/code/steps/source/basic/sparse_matrix_umfpack.cpp +++ b/code/steps/source/basic/sparse_matrix_umfpack.cpp @@ -331,11 +331,21 @@ void SPARSE_MATRIX_UMFPACK::transpose() update_clock_when_matrix_is_changed(); } -int SPARSE_MATRIX_UMFPACK::get_matrix_size() const +int SPARSE_MATRIX_UMFPACK::get_matrix_row_count() const +{ + return n_row; +} + +int SPARSE_MATRIX_UMFPACK::get_matrix_column_count() const { return n_column; } +int SPARSE_MATRIX_UMFPACK::get_matrix_size() const +{ + return get_matrix_column_count(); +} + int SPARSE_MATRIX_UMFPACK::get_matrix_entry_count() const { if(matrix_in_compressed_column_form()) diff --git a/code/steps/source/block/differential_block.cpp b/code/steps/source/block/differential_block.cpp index fb37f1b7..c170a8af 100644 --- a/code/steps/source/block/differential_block.cpp +++ b/code/steps/source/block/differential_block.cpp @@ -277,7 +277,7 @@ void DIFFERENTIAL_BLOCK::update_large_time_step_mode() update_normal_time_step_mode(); } -double DIFFERENTIAL_BLOCK::get_linearized_system_variable(char var) const +STEPS_SPARSE_MATRIX DIFFERENTIAL_BLOCK::get_linearized_system_variable(char var) const { var = toupper(var); switch(var) @@ -290,57 +290,67 @@ double DIFFERENTIAL_BLOCK::get_linearized_system_variable(char var) const return get_linearized_system_C(); case 'D': return get_linearized_system_D(); - case 'E': - return get_linearized_system_E(); - case 'F': - return get_linearized_system_F(); - case 'G': - return get_linearized_system_G(); - case 'H': - return get_linearized_system_H(); default: - return 0.0; + STEPS_SPARSE_MATRIX matrix; + return matrix; } } -double DIFFERENTIAL_BLOCK::get_linearized_system_A() const +STEPS_SPARSE_MATRIX DIFFERENTIAL_BLOCK::get_linearized_system_A() const { - return 0.0; -} + /* + x: state; u: input; y: output + dx/dt = A*x + B*u + y = C*x + D*u + */ + STEPS_SPARSE_MATRIX matrix; -double DIFFERENTIAL_BLOCK::get_linearized_system_B() const -{ - return 0.0; -} + double a = 0; + /* + here define a + */ + matrix.add_entry(0,0, a); -double DIFFERENTIAL_BLOCK::get_linearized_system_C() const -{ - return 0.0; + return matrix; } -double DIFFERENTIAL_BLOCK::get_linearized_system_D() const +STEPS_SPARSE_MATRIX DIFFERENTIAL_BLOCK::get_linearized_system_B() const { - return 0.0; -} + STEPS_SPARSE_MATRIX matrix; -double DIFFERENTIAL_BLOCK::get_linearized_system_E() const -{ - return 0.0; -} + double b = 0; + /* + here define b + */ + matrix.add_entry(0,0, b); -double DIFFERENTIAL_BLOCK::get_linearized_system_F() const -{ - return 0.0; + return matrix; } -double DIFFERENTIAL_BLOCK::get_linearized_system_G() const +STEPS_SPARSE_MATRIX DIFFERENTIAL_BLOCK::get_linearized_system_C() const { - return 0.0; + STEPS_SPARSE_MATRIX matrix; + + double c = 0; + /* + here define c + */ + matrix.add_entry(0,0, c); + + return matrix; } -double DIFFERENTIAL_BLOCK::get_linearized_system_H() const +STEPS_SPARSE_MATRIX DIFFERENTIAL_BLOCK::get_linearized_system_D() const { - return 0.0; + STEPS_SPARSE_MATRIX matrix; + + double d = 0; + /* + here define d + */ + matrix.add_entry(0,0, d); + + return matrix; } void DIFFERENTIAL_BLOCK::check() diff --git a/code/steps/source/block/differential_block_test.cpp b/code/steps/source/block/differential_block_test.cpp index ce4a775e..9a4404e7 100644 --- a/code/steps/source/block/differential_block_test.cpp +++ b/code/steps/source/block/differential_block_test.cpp @@ -98,4 +98,35 @@ void DIFFERENTIAL_BLOCK_TEST::test_step_response_without_limiter() } } + +void DIFFERENTIAL_BLOCK_TEST::test_linearized_ABCD() +{ + show_test_information_for_function_of_class(__FUNCTION__,"DIFFERENTIAL_BLOCK_TEST"); + default_toolkit.set_dynamic_simulation_time_step_in_s(0.001); + double h = default_toolkit.get_dynamic_simulation_time_step_in_s(); + + double K = 2.0; + double T = 5.0; + block.set_K(K); + block.set_T_in_s(T); + + double u = 1.0; + block.set_input(u); + block.initialize(); + double s = block.get_state(); + double y = block.get_output(); + + TEST_ASSERT(fabs(s-1.2)get_linearized_system_ABCD(&Agen, &Bgen, &Cgen, &Dgen); + + STEPS_SPARSE_MATRIX Acomp, Bcomp, Ccomp, Dcomp; + compensator_model->get_linearized_system_ABCD(&Acomp, &Bcomp, &Ccomp, &Dcomp); + + STEPS_SPARSE_MATRIX Aex, Bex, Cex, Dex; + exciter_model->get_linearized_system_ABCD(&Aex, &Bex, &Cex, &Dex); + + STEPS_SPARSE_MATRIX Apss, Bpss, Cpss, Dpss; + stabilizer_model->get_linearized_system_ABCD(&Apss, &Bpss, &Cpss, &Dpss); + + STEPS_SPARSE_MATRIX Agov, Bgov, Cgov, Dgov; + turbine_governor_model->get_linearized_system_ABCD(&Agov, &Bgov, &Cgov, &Dgov); + + STEPS_SPARSE_MATRIX Atlc, Btlc, Ctlc, Dtlc; + turbine_load_controller_model->get_linearized_system_ABCD(&Atlc, &Btlc, &Ctlc, &Dtlc); + + + STEPS_SPARSE_MATRIX E, F, G, H; + // E = [] + // F = [] + // G = [] + // H = [] + + // then build A B C D +} diff --git a/code/steps/source/model/sg_models/compensator_model/COMP.cpp b/code/steps/source/model/sg_models/compensator_model/COMP.cpp index 881916d5..99aad573 100644 --- a/code/steps/source/model/sg_models/compensator_model/COMP.cpp +++ b/code/steps/source/model/sg_models/compensator_model/COMP.cpp @@ -240,3 +240,35 @@ void COMP::linearize() set_linearized_matrix("COMP-AVR", matrix); // do linearization } + +STEPS_SPARSE_MATRIX COMP::get_linearized_system_A() const +{ + STEPS_SPARSE_MATRIX A; + + return A; +} +STEPS_SPARSE_MATRIX COMP::get_linearized_system_B() const +{ + STEPS_SPARSE_MATRIX B; + + return B; +} + +STEPS_SPARSE_MATRIX COMP::get_linearized_system_C() const +{ + STEPS_SPARSE_MATRIX C; + + return C; +} + +STEPS_SPARSE_MATRIX COMP::get_linearized_system_D() const +{ + STEPS_SPARSE_MATRIX D; + + return D; +} + +void COMP::get_linearized_system_ABCD(STEPS_SPARSE_MATRIX* A, STEPS_SPARSE_MATRIX* B, STEPS_SPARSE_MATRIX* C, STEPS_SPARSE_MATRIX* D) const +{ + return; +} diff --git a/code/steps/source/model/sg_models/compensator_model/IEEEVC.cpp b/code/steps/source/model/sg_models/compensator_model/IEEEVC.cpp index 12d6d16d..f25db423 100644 --- a/code/steps/source/model/sg_models/compensator_model/IEEEVC.cpp +++ b/code/steps/source/model/sg_models/compensator_model/IEEEVC.cpp @@ -252,3 +252,35 @@ void IEEEVC::linearize() set_linearized_matrix("COMP-AVR", matrix); // do linearization } + +STEPS_SPARSE_MATRIX IEEEVC::get_linearized_system_A() const +{ + STEPS_SPARSE_MATRIX A; + + return A; +} +STEPS_SPARSE_MATRIX IEEEVC::get_linearized_system_B() const +{ + STEPS_SPARSE_MATRIX B; + + return B; +} + +STEPS_SPARSE_MATRIX IEEEVC::get_linearized_system_C() const +{ + STEPS_SPARSE_MATRIX C; + + return C; +} + +STEPS_SPARSE_MATRIX IEEEVC::get_linearized_system_D() const +{ + STEPS_SPARSE_MATRIX D; + + return D; +} + +void IEEEVC::get_linearized_system_ABCD(STEPS_SPARSE_MATRIX* A, STEPS_SPARSE_MATRIX* B, STEPS_SPARSE_MATRIX* C, STEPS_SPARSE_MATRIX* D) const +{ + return; +} diff --git a/code/steps/source/model/sg_models/compensator_model/PSASPVC.cpp b/code/steps/source/model/sg_models/compensator_model/PSASPVC.cpp index df4bc204..6ed2da16 100644 --- a/code/steps/source/model/sg_models/compensator_model/PSASPVC.cpp +++ b/code/steps/source/model/sg_models/compensator_model/PSASPVC.cpp @@ -242,3 +242,35 @@ void PSASPVC::linearize() set_linearized_matrix("COMP-AVR", matrix); // do linearization } + +STEPS_SPARSE_MATRIX PSASPVC::get_linearized_system_A() const +{ + STEPS_SPARSE_MATRIX A; + + return A; +} +STEPS_SPARSE_MATRIX PSASPVC::get_linearized_system_B() const +{ + STEPS_SPARSE_MATRIX B; + + return B; +} + +STEPS_SPARSE_MATRIX PSASPVC::get_linearized_system_C() const +{ + STEPS_SPARSE_MATRIX C; + + return C; +} + +STEPS_SPARSE_MATRIX PSASPVC::get_linearized_system_D() const +{ + STEPS_SPARSE_MATRIX D; + + return D; +} + +void PSASPVC::get_linearized_system_ABCD(STEPS_SPARSE_MATRIX* A, STEPS_SPARSE_MATRIX* B, STEPS_SPARSE_MATRIX* C, STEPS_SPARSE_MATRIX* D) const +{ + return; +} diff --git a/code/steps/source/model/sg_models/exciter_model/CSEET1.cpp b/code/steps/source/model/sg_models/exciter_model/CSEET1.cpp index 9780704d..fae1185e 100644 --- a/code/steps/source/model/sg_models/exciter_model/CSEET1.cpp +++ b/code/steps/source/model/sg_models/exciter_model/CSEET1.cpp @@ -1659,3 +1659,35 @@ void CSEET1::linearize() set_linearized_matrix("AVR-COMP", matrix); // do linearization } + +STEPS_SPARSE_MATRIX CSEET1::get_linearized_system_A() const +{ + STEPS_SPARSE_MATRIX A; + + return A; +} +STEPS_SPARSE_MATRIX CSEET1::get_linearized_system_B() const +{ + STEPS_SPARSE_MATRIX B; + + return B; +} + +STEPS_SPARSE_MATRIX CSEET1::get_linearized_system_C() const +{ + STEPS_SPARSE_MATRIX C; + + return C; +} + +STEPS_SPARSE_MATRIX CSEET1::get_linearized_system_D() const +{ + STEPS_SPARSE_MATRIX D; + + return D; +} + +void CSEET1::get_linearized_system_ABCD(STEPS_SPARSE_MATRIX* A, STEPS_SPARSE_MATRIX* B, STEPS_SPARSE_MATRIX* C, STEPS_SPARSE_MATRIX* D) const +{ + return; +} diff --git a/code/steps/source/model/sg_models/exciter_model/CSEET2.cpp b/code/steps/source/model/sg_models/exciter_model/CSEET2.cpp index 139ea9c4..4beb4437 100644 --- a/code/steps/source/model/sg_models/exciter_model/CSEET2.cpp +++ b/code/steps/source/model/sg_models/exciter_model/CSEET2.cpp @@ -1156,3 +1156,35 @@ void CSEET2::linearize() set_linearized_matrix("AVR-COMP", matrix); // do linearization } + +STEPS_SPARSE_MATRIX CSEET2::get_linearized_system_A() const +{ + STEPS_SPARSE_MATRIX A; + + return A; +} +STEPS_SPARSE_MATRIX CSEET2::get_linearized_system_B() const +{ + STEPS_SPARSE_MATRIX B; + + return B; +} + +STEPS_SPARSE_MATRIX CSEET2::get_linearized_system_C() const +{ + STEPS_SPARSE_MATRIX C; + + return C; +} + +STEPS_SPARSE_MATRIX CSEET2::get_linearized_system_D() const +{ + STEPS_SPARSE_MATRIX D; + + return D; +} + +void CSEET2::get_linearized_system_ABCD(STEPS_SPARSE_MATRIX* A, STEPS_SPARSE_MATRIX* B, STEPS_SPARSE_MATRIX* C, STEPS_SPARSE_MATRIX* D) const +{ + return; +} diff --git a/code/steps/source/model/sg_models/exciter_model/IEEET1.cpp b/code/steps/source/model/sg_models/exciter_model/IEEET1.cpp index 5a532587..efa4188c 100644 --- a/code/steps/source/model/sg_models/exciter_model/IEEET1.cpp +++ b/code/steps/source/model/sg_models/exciter_model/IEEET1.cpp @@ -542,3 +542,35 @@ void IEEET1::linearize() set_linearized_matrix("AVR-COMP", matrix); // do linearization } + +STEPS_SPARSE_MATRIX IEEET1::get_linearized_system_A() const +{ + STEPS_SPARSE_MATRIX A; + + return A; +} +STEPS_SPARSE_MATRIX IEEET1::get_linearized_system_B() const +{ + STEPS_SPARSE_MATRIX B; + + return B; +} + +STEPS_SPARSE_MATRIX IEEET1::get_linearized_system_C() const +{ + STEPS_SPARSE_MATRIX C; + + return C; +} + +STEPS_SPARSE_MATRIX IEEET1::get_linearized_system_D() const +{ + STEPS_SPARSE_MATRIX D; + + return D; +} + +void IEEET1::get_linearized_system_ABCD(STEPS_SPARSE_MATRIX* A, STEPS_SPARSE_MATRIX* B, STEPS_SPARSE_MATRIX* C, STEPS_SPARSE_MATRIX* D) const +{ + return; +} diff --git a/code/steps/source/model/sg_models/exciter_model/PSASPE1.cpp b/code/steps/source/model/sg_models/exciter_model/PSASPE1.cpp index 30f62e90..91eabc25 100644 --- a/code/steps/source/model/sg_models/exciter_model/PSASPE1.cpp +++ b/code/steps/source/model/sg_models/exciter_model/PSASPE1.cpp @@ -551,3 +551,35 @@ void PSASPE1::linearize() set_linearized_matrix("AVR-COMP", matrix); // do linearization } + +STEPS_SPARSE_MATRIX PSASPE1::get_linearized_system_A() const +{ + STEPS_SPARSE_MATRIX A; + + return A; +} +STEPS_SPARSE_MATRIX PSASPE1::get_linearized_system_B() const +{ + STEPS_SPARSE_MATRIX B; + + return B; +} + +STEPS_SPARSE_MATRIX PSASPE1::get_linearized_system_C() const +{ + STEPS_SPARSE_MATRIX C; + + return C; +} + +STEPS_SPARSE_MATRIX PSASPE1::get_linearized_system_D() const +{ + STEPS_SPARSE_MATRIX D; + + return D; +} + +void PSASPE1::get_linearized_system_ABCD(STEPS_SPARSE_MATRIX* A, STEPS_SPARSE_MATRIX* B, STEPS_SPARSE_MATRIX* C, STEPS_SPARSE_MATRIX* D) const +{ + return; +} diff --git a/code/steps/source/model/sg_models/exciter_model/PSASPE13.cpp b/code/steps/source/model/sg_models/exciter_model/PSASPE13.cpp index 5df2106c..b2e2997e 100644 --- a/code/steps/source/model/sg_models/exciter_model/PSASPE13.cpp +++ b/code/steps/source/model/sg_models/exciter_model/PSASPE13.cpp @@ -662,3 +662,35 @@ void PSASPE13::linearize() set_linearized_matrix("AVR-COMP", matrix); // do linearization } + +STEPS_SPARSE_MATRIX PSASPE13::get_linearized_system_A() const +{ + STEPS_SPARSE_MATRIX A; + + return A; +} +STEPS_SPARSE_MATRIX PSASPE13::get_linearized_system_B() const +{ + STEPS_SPARSE_MATRIX B; + + return B; +} + +STEPS_SPARSE_MATRIX PSASPE13::get_linearized_system_C() const +{ + STEPS_SPARSE_MATRIX C; + + return C; +} + +STEPS_SPARSE_MATRIX PSASPE13::get_linearized_system_D() const +{ + STEPS_SPARSE_MATRIX D; + + return D; +} + +void PSASPE13::get_linearized_system_ABCD(STEPS_SPARSE_MATRIX* A, STEPS_SPARSE_MATRIX* B, STEPS_SPARSE_MATRIX* C, STEPS_SPARSE_MATRIX* D) const +{ + return; +} diff --git a/code/steps/source/model/sg_models/exciter_model/PSASPE14.cpp b/code/steps/source/model/sg_models/exciter_model/PSASPE14.cpp index 70ac539f..8f42e543 100644 --- a/code/steps/source/model/sg_models/exciter_model/PSASPE14.cpp +++ b/code/steps/source/model/sg_models/exciter_model/PSASPE14.cpp @@ -711,3 +711,35 @@ void PSASPE14::linearize() set_linearized_matrix("AVR-COMP", matrix); // do linearization } + +STEPS_SPARSE_MATRIX PSASPE14::get_linearized_system_A() const +{ + STEPS_SPARSE_MATRIX A; + + return A; +} +STEPS_SPARSE_MATRIX PSASPE14::get_linearized_system_B() const +{ + STEPS_SPARSE_MATRIX B; + + return B; +} + +STEPS_SPARSE_MATRIX PSASPE14::get_linearized_system_C() const +{ + STEPS_SPARSE_MATRIX C; + + return C; +} + +STEPS_SPARSE_MATRIX PSASPE14::get_linearized_system_D() const +{ + STEPS_SPARSE_MATRIX D; + + return D; +} + +void PSASPE14::get_linearized_system_ABCD(STEPS_SPARSE_MATRIX* A, STEPS_SPARSE_MATRIX* B, STEPS_SPARSE_MATRIX* C, STEPS_SPARSE_MATRIX* D) const +{ + return; +} diff --git a/code/steps/source/model/sg_models/exciter_model/PSASPE2.cpp b/code/steps/source/model/sg_models/exciter_model/PSASPE2.cpp index 7e3e1a42..ef4b3beb 100644 --- a/code/steps/source/model/sg_models/exciter_model/PSASPE2.cpp +++ b/code/steps/source/model/sg_models/exciter_model/PSASPE2.cpp @@ -723,3 +723,35 @@ void PSASPE2::linearize() set_linearized_matrix("AVR-COMP", matrix); // do linearization } + +STEPS_SPARSE_MATRIX PSASPE2::get_linearized_system_A() const +{ + STEPS_SPARSE_MATRIX A; + + return A; +} +STEPS_SPARSE_MATRIX PSASPE2::get_linearized_system_B() const +{ + STEPS_SPARSE_MATRIX B; + + return B; +} + +STEPS_SPARSE_MATRIX PSASPE2::get_linearized_system_C() const +{ + STEPS_SPARSE_MATRIX C; + + return C; +} + +STEPS_SPARSE_MATRIX PSASPE2::get_linearized_system_D() const +{ + STEPS_SPARSE_MATRIX D; + + return D; +} + +void PSASPE2::get_linearized_system_ABCD(STEPS_SPARSE_MATRIX* A, STEPS_SPARSE_MATRIX* B, STEPS_SPARSE_MATRIX* C, STEPS_SPARSE_MATRIX* D) const +{ + return; +} diff --git a/code/steps/source/model/sg_models/exciter_model/SEXS.cpp b/code/steps/source/model/sg_models/exciter_model/SEXS.cpp index 19dcf073..f230fb9c 100644 --- a/code/steps/source/model/sg_models/exciter_model/SEXS.cpp +++ b/code/steps/source/model/sg_models/exciter_model/SEXS.cpp @@ -414,3 +414,160 @@ void SEXS::linearize() set_linearized_matrix("AVR-COMP", matrix); // do linearization } + +STEPS_SPARSE_MATRIX SEXS::get_linearized_system_A() const +{ + /* + model: input V, state X, output W + block: input U, state X, output Y + objective: + dX/dt = A*X+B*V + W = C*X+D*V + derived from the following + dX/dt = Ab*X+Bb*U + Y = Cb*X+Db*U + U = E*Y+F*V + W = G*Y+H*V + */ + //unsigned int U_index[2] = [0, 1, 3]; + // block 0 + double u_phase_tuner = phase_tuner.get_input(); + double s_phase_tuner = phase_tuner.get_state(); + double y_phase_tuner = phase_tuner.get_output(); + STEPS_SPARSE_MATRIX A_phase_tuner = phase_tuner.get_linearized_system_A(); + STEPS_SPARSE_MATRIX B_phase_tuner = phase_tuner.get_linearized_system_B(); + STEPS_SPARSE_MATRIX C_phase_tuner = phase_tuner.get_linearized_system_C(); + STEPS_SPARSE_MATRIX D_phase_tuner = phase_tuner.get_linearized_system_D(); + unsigned int u_index = 0, s_index = 0, y_index = 0; + + // block 1 + double u_exciter = exciter.get_input(); + double s_exciter = exciter.get_state(); + double y_exciter = exciter.get_output(); + STEPS_SPARSE_MATRIX A_exciter = exciter.get_linearized_system_A(); + STEPS_SPARSE_MATRIX B_exciter = exciter.get_linearized_system_B(); + STEPS_SPARSE_MATRIX C_exciter = exciter.get_linearized_system_C(); + STEPS_SPARSE_MATRIX D_exciter = exciter.get_linearized_system_D(); + + // define the order of X, U, Y, V, W + // Define E F G H U = E*Y+F*V + + STEPS_SPARSE_MATRIX E, F, G, H; + E.add_entry(0,0, 1); + F.add_entry(0,0, 1); + G.add_entry(0,0, 1); + H.add_entry(0,0, 1); + + /* + here go many codes to manipulate matrix + */ + + STEPS_SPARSE_MATRIX A; + + return A; +} +STEPS_SPARSE_MATRIX SEXS::get_linearized_system_B() const +{ + STEPS_SPARSE_MATRIX B; + + return B; +} + +STEPS_SPARSE_MATRIX SEXS::get_linearized_system_C() const +{ + STEPS_SPARSE_MATRIX C; + + return C; +} + +STEPS_SPARSE_MATRIX SEXS::get_linearized_system_D() const +{ + STEPS_SPARSE_MATRIX D; + + return D; +} + +void SEXS::get_linearized_system_ABCD(STEPS_SPARSE_MATRIX* A, + STEPS_SPARSE_MATRIX* B, + STEPS_SPARSE_MATRIX* C, + STEPS_SPARSE_MATRIX* D) const +{ + /* + model: input V, state X, output W + block: input U, state X, output Y + objective: + dX/dt = A*X+B*V + W = C*X+D*V + derived from the following + dX/dt = Ab*X+Bb*U + Y = Cb*X+Db*U + U = E*Y+F*V + W = G*Y+H*V + */ + //unsigned int U_index[2] = [0, 1, 3]; + // block 0 + double u_phase_tuner = phase_tuner.get_input(); + double s_phase_tuner = phase_tuner.get_state(); + double y_phase_tuner = phase_tuner.get_output(); + STEPS_SPARSE_MATRIX A_phase_tuner = phase_tuner.get_linearized_system_A(); + STEPS_SPARSE_MATRIX B_phase_tuner = phase_tuner.get_linearized_system_B(); + STEPS_SPARSE_MATRIX C_phase_tuner = phase_tuner.get_linearized_system_C(); + STEPS_SPARSE_MATRIX D_phase_tuner = phase_tuner.get_linearized_system_D(); + unsigned int u_index = 0, s_index = 0, y_index = 0; + + // block 1 + double u_exciter = exciter.get_input(); + double s_exciter = exciter.get_state(); + double y_exciter = exciter.get_output(); + STEPS_SPARSE_MATRIX A_exciter = exciter.get_linearized_system_A(); + STEPS_SPARSE_MATRIX B_exciter = exciter.get_linearized_system_B(); + STEPS_SPARSE_MATRIX C_exciter = exciter.get_linearized_system_C(); + STEPS_SPARSE_MATRIX D_exciter = exciter.get_linearized_system_D(); + + // define the order of X, U, Y, V, W + // Define E F G H U = E*Y+F*V + + vector matrix; + matrix.push_back(&A_phase_tuner); + matrix.push_back(&A_exciter); + STEPS_SPARSE_MATRIX Atemp = concatenate_matrix_diagnally(matrix); + *A = Atemp; + matrix.clear(); + + matrix.push_back(&B_phase_tuner); + matrix.push_back(&B_exciter); + STEPS_SPARSE_MATRIX Btemp = concatenate_matrix_diagnally(matrix); + *B = Btemp; + matrix.clear(); + + matrix.push_back(&C_phase_tuner); + matrix.push_back(&C_exciter); + STEPS_SPARSE_MATRIX Ctemp = concatenate_matrix_diagnally(matrix); + *C = Ctemp; + matrix.clear(); + + matrix.push_back(&D_phase_tuner); + matrix.push_back(&D_exciter); + STEPS_SPARSE_MATRIX Dtemp = concatenate_matrix_diagnally(matrix); + *D = Dtemp; + matrix.clear(); + + + STEPS_SPARSE_MATRIX E, F, G, H; + E.add_entry(0,0, 1); + F.add_entry(0,0, 1); + G.add_entry(0,0, 1); + H.add_entry(0,0, 1); + + /* + here go many codes to manipulate matrix + */ + + /* + *A = ; + *B = ; + *C = ; + *D = ; + */ +} + diff --git a/code/steps/source/model/sg_models/sg_model.cpp b/code/steps/source/model/sg_models/sg_model.cpp index 19961af6..bd299f9e 100644 --- a/code/steps/source/model/sg_models/sg_model.cpp +++ b/code/steps/source/model/sg_models/sg_model.cpp @@ -46,3 +46,22 @@ double SG_MODEL::get_terminal_voltage_in_pu() const BUS* bus = get_bus_pointer(); return bus->get_positive_sequence_voltage_in_pu(); } + +STEPS_SPARSE_MATRIX SG_MODEL::get_linearized_system_variable(char var) const +{ + var = toupper(var); + switch(var) + { + case 'A': + return get_linearized_system_A(); + case 'B': + return get_linearized_system_B(); + case 'C': + return get_linearized_system_C(); + case 'D': + return get_linearized_system_D(); + default: + STEPS_SPARSE_MATRIX matrix; + return matrix; + } +} diff --git a/code/steps/source/model/sg_models/stabilizer_model/IEE2ST.cpp b/code/steps/source/model/sg_models/stabilizer_model/IEE2ST.cpp index dad14d94..4989c283 100644 --- a/code/steps/source/model/sg_models/stabilizer_model/IEE2ST.cpp +++ b/code/steps/source/model/sg_models/stabilizer_model/IEE2ST.cpp @@ -757,3 +757,35 @@ void IEE2ST::linearize() set_linearized_matrix("PSS-GEN", matrix); // do linearization } + +STEPS_SPARSE_MATRIX IEE2ST::get_linearized_system_A() const +{ + STEPS_SPARSE_MATRIX A; + + return A; +} +STEPS_SPARSE_MATRIX IEE2ST::get_linearized_system_B() const +{ + STEPS_SPARSE_MATRIX B; + + return B; +} + +STEPS_SPARSE_MATRIX IEE2ST::get_linearized_system_C() const +{ + STEPS_SPARSE_MATRIX C; + + return C; +} + +STEPS_SPARSE_MATRIX IEE2ST::get_linearized_system_D() const +{ + STEPS_SPARSE_MATRIX D; + + return D; +} + +void IEE2ST::get_linearized_system_ABCD(STEPS_SPARSE_MATRIX* A, STEPS_SPARSE_MATRIX* B, STEPS_SPARSE_MATRIX* C, STEPS_SPARSE_MATRIX* D) const +{ + return; +} diff --git a/code/steps/source/model/sg_models/stabilizer_model/PSASPS1.cpp b/code/steps/source/model/sg_models/stabilizer_model/PSASPS1.cpp index 85280090..243aa4ab 100644 --- a/code/steps/source/model/sg_models/stabilizer_model/PSASPS1.cpp +++ b/code/steps/source/model/sg_models/stabilizer_model/PSASPS1.cpp @@ -646,3 +646,35 @@ void PSASPS1::linearize() set_linearized_matrix("PSS-GEN", matrix); // do linearization } + +STEPS_SPARSE_MATRIX PSASPS1::get_linearized_system_A() const +{ + STEPS_SPARSE_MATRIX A; + + return A; +} +STEPS_SPARSE_MATRIX PSASPS1::get_linearized_system_B() const +{ + STEPS_SPARSE_MATRIX B; + + return B; +} + +STEPS_SPARSE_MATRIX PSASPS1::get_linearized_system_C() const +{ + STEPS_SPARSE_MATRIX C; + + return C; +} + +STEPS_SPARSE_MATRIX PSASPS1::get_linearized_system_D() const +{ + STEPS_SPARSE_MATRIX D; + + return D; +} + +void PSASPS1::get_linearized_system_ABCD(STEPS_SPARSE_MATRIX* A, STEPS_SPARSE_MATRIX* B, STEPS_SPARSE_MATRIX* C, STEPS_SPARSE_MATRIX* D) const +{ + return; +} diff --git a/code/steps/source/model/sg_models/stabilizer_model/PSASPS2.cpp b/code/steps/source/model/sg_models/stabilizer_model/PSASPS2.cpp index 10b4caeb..ee9b74bc 100644 --- a/code/steps/source/model/sg_models/stabilizer_model/PSASPS2.cpp +++ b/code/steps/source/model/sg_models/stabilizer_model/PSASPS2.cpp @@ -796,3 +796,35 @@ void PSASPS2::linearize() set_linearized_matrix("PSS-GEN", matrix); // do linearization } + +STEPS_SPARSE_MATRIX PSASPS2::get_linearized_system_A() const +{ + STEPS_SPARSE_MATRIX A; + + return A; +} +STEPS_SPARSE_MATRIX PSASPS2::get_linearized_system_B() const +{ + STEPS_SPARSE_MATRIX B; + + return B; +} + +STEPS_SPARSE_MATRIX PSASPS2::get_linearized_system_C() const +{ + STEPS_SPARSE_MATRIX C; + + return C; +} + +STEPS_SPARSE_MATRIX PSASPS2::get_linearized_system_D() const +{ + STEPS_SPARSE_MATRIX D; + + return D; +} + +void PSASPS2::get_linearized_system_ABCD(STEPS_SPARSE_MATRIX* A, STEPS_SPARSE_MATRIX* B, STEPS_SPARSE_MATRIX* C, STEPS_SPARSE_MATRIX* D) const +{ + return; +} diff --git a/code/steps/source/model/sg_models/stabilizer_model/PSASPS3.cpp b/code/steps/source/model/sg_models/stabilizer_model/PSASPS3.cpp index 10bca5c0..b8dabc98 100644 --- a/code/steps/source/model/sg_models/stabilizer_model/PSASPS3.cpp +++ b/code/steps/source/model/sg_models/stabilizer_model/PSASPS3.cpp @@ -841,3 +841,35 @@ void PSASPS3::linearize() set_linearized_matrix("PSS-GEN", matrix); // do linearization } + +STEPS_SPARSE_MATRIX PSASPS3::get_linearized_system_A() const +{ + STEPS_SPARSE_MATRIX A; + + return A; +} +STEPS_SPARSE_MATRIX PSASPS3::get_linearized_system_B() const +{ + STEPS_SPARSE_MATRIX B; + + return B; +} + +STEPS_SPARSE_MATRIX PSASPS3::get_linearized_system_C() const +{ + STEPS_SPARSE_MATRIX C; + + return C; +} + +STEPS_SPARSE_MATRIX PSASPS3::get_linearized_system_D() const +{ + STEPS_SPARSE_MATRIX D; + + return D; +} + +void PSASPS3::get_linearized_system_ABCD(STEPS_SPARSE_MATRIX* A, STEPS_SPARSE_MATRIX* B, STEPS_SPARSE_MATRIX* C, STEPS_SPARSE_MATRIX* D) const +{ + return; +} diff --git a/code/steps/source/model/sg_models/stabilizer_model/PSASPS4.cpp b/code/steps/source/model/sg_models/stabilizer_model/PSASPS4.cpp index 5e1aa4b1..b195cf1c 100644 --- a/code/steps/source/model/sg_models/stabilizer_model/PSASPS4.cpp +++ b/code/steps/source/model/sg_models/stabilizer_model/PSASPS4.cpp @@ -1167,3 +1167,35 @@ void PSASPS4::linearize() set_linearized_matrix("PSS-GEN", matrix); // do linearization } + +STEPS_SPARSE_MATRIX PSASPS4::get_linearized_system_A() const +{ + STEPS_SPARSE_MATRIX A; + + return A; +} +STEPS_SPARSE_MATRIX PSASPS4::get_linearized_system_B() const +{ + STEPS_SPARSE_MATRIX B; + + return B; +} + +STEPS_SPARSE_MATRIX PSASPS4::get_linearized_system_C() const +{ + STEPS_SPARSE_MATRIX C; + + return C; +} + +STEPS_SPARSE_MATRIX PSASPS4::get_linearized_system_D() const +{ + STEPS_SPARSE_MATRIX D; + + return D; +} + +void PSASPS4::get_linearized_system_ABCD(STEPS_SPARSE_MATRIX* A, STEPS_SPARSE_MATRIX* B, STEPS_SPARSE_MATRIX* C, STEPS_SPARSE_MATRIX* D) const +{ + return; +} diff --git a/code/steps/source/model/sg_models/stabilizer_model/PSASPS5.cpp b/code/steps/source/model/sg_models/stabilizer_model/PSASPS5.cpp index f3b79881..5df0f1a8 100644 --- a/code/steps/source/model/sg_models/stabilizer_model/PSASPS5.cpp +++ b/code/steps/source/model/sg_models/stabilizer_model/PSASPS5.cpp @@ -557,3 +557,35 @@ void PSASPS5::linearize() set_linearized_matrix("PSS-GEN", matrix); // do linearization } + +STEPS_SPARSE_MATRIX PSASPS5::get_linearized_system_A() const +{ + STEPS_SPARSE_MATRIX A; + + return A; +} +STEPS_SPARSE_MATRIX PSASPS5::get_linearized_system_B() const +{ + STEPS_SPARSE_MATRIX B; + + return B; +} + +STEPS_SPARSE_MATRIX PSASPS5::get_linearized_system_C() const +{ + STEPS_SPARSE_MATRIX C; + + return C; +} + +STEPS_SPARSE_MATRIX PSASPS5::get_linearized_system_D() const +{ + STEPS_SPARSE_MATRIX D; + + return D; +} + +void PSASPS5::get_linearized_system_ABCD(STEPS_SPARSE_MATRIX* A, STEPS_SPARSE_MATRIX* B, STEPS_SPARSE_MATRIX* C, STEPS_SPARSE_MATRIX* D) const +{ + return; +} diff --git a/code/steps/source/model/sg_models/stabilizer_model/PSASPS6.cpp b/code/steps/source/model/sg_models/stabilizer_model/PSASPS6.cpp index 4b460382..9b89c2ea 100644 --- a/code/steps/source/model/sg_models/stabilizer_model/PSASPS6.cpp +++ b/code/steps/source/model/sg_models/stabilizer_model/PSASPS6.cpp @@ -850,3 +850,35 @@ void PSASPS6::linearize() set_linearized_matrix("PSS-GEN", matrix); // do linearization } + +STEPS_SPARSE_MATRIX PSASPS6::get_linearized_system_A() const +{ + STEPS_SPARSE_MATRIX A; + + return A; +} +STEPS_SPARSE_MATRIX PSASPS6::get_linearized_system_B() const +{ + STEPS_SPARSE_MATRIX B; + + return B; +} + +STEPS_SPARSE_MATRIX PSASPS6::get_linearized_system_C() const +{ + STEPS_SPARSE_MATRIX C; + + return C; +} + +STEPS_SPARSE_MATRIX PSASPS6::get_linearized_system_D() const +{ + STEPS_SPARSE_MATRIX D; + + return D; +} + +void PSASPS6::get_linearized_system_ABCD(STEPS_SPARSE_MATRIX* A, STEPS_SPARSE_MATRIX* B, STEPS_SPARSE_MATRIX* C, STEPS_SPARSE_MATRIX* D) const +{ + return; +} diff --git a/code/steps/source/model/sg_models/stabilizer_model/PSASPS8.cpp b/code/steps/source/model/sg_models/stabilizer_model/PSASPS8.cpp index 8d6581af..0b016d22 100644 --- a/code/steps/source/model/sg_models/stabilizer_model/PSASPS8.cpp +++ b/code/steps/source/model/sg_models/stabilizer_model/PSASPS8.cpp @@ -574,3 +574,35 @@ void PSASPS8::linearize() set_linearized_matrix("PSS-GEN", matrix); // do linearization } + +STEPS_SPARSE_MATRIX PSASPS8::get_linearized_system_A() const +{ + STEPS_SPARSE_MATRIX A; + + return A; +} +STEPS_SPARSE_MATRIX PSASPS8::get_linearized_system_B() const +{ + STEPS_SPARSE_MATRIX B; + + return B; +} + +STEPS_SPARSE_MATRIX PSASPS8::get_linearized_system_C() const +{ + STEPS_SPARSE_MATRIX C; + + return C; +} + +STEPS_SPARSE_MATRIX PSASPS8::get_linearized_system_D() const +{ + STEPS_SPARSE_MATRIX D; + + return D; +} + +void PSASPS8::get_linearized_system_ABCD(STEPS_SPARSE_MATRIX* A, STEPS_SPARSE_MATRIX* B, STEPS_SPARSE_MATRIX* C, STEPS_SPARSE_MATRIX* D) const +{ + return; +} diff --git a/code/steps/source/model/sg_models/sync_generator_model/gencls.cpp b/code/steps/source/model/sg_models/sync_generator_model/gencls.cpp index 4913cd18..f37076f5 100644 --- a/code/steps/source/model/sg_models/sync_generator_model/gencls.cpp +++ b/code/steps/source/model/sg_models/sync_generator_model/gencls.cpp @@ -509,3 +509,35 @@ void GENCLS::linearize() set_linearized_matrix("GEN-GOV", gen_gov_matrix); // do linearization } + +STEPS_SPARSE_MATRIX GENCLS::get_linearized_system_A() const +{ + STEPS_SPARSE_MATRIX A; + + return A; +} +STEPS_SPARSE_MATRIX GENCLS::get_linearized_system_B() const +{ + STEPS_SPARSE_MATRIX B; + + return B; +} + +STEPS_SPARSE_MATRIX GENCLS::get_linearized_system_C() const +{ + STEPS_SPARSE_MATRIX C; + + return C; +} + +STEPS_SPARSE_MATRIX GENCLS::get_linearized_system_D() const +{ + STEPS_SPARSE_MATRIX D; + + return D; +} + +void GENCLS::get_linearized_system_ABCD(STEPS_SPARSE_MATRIX* A, STEPS_SPARSE_MATRIX* B, STEPS_SPARSE_MATRIX* C, STEPS_SPARSE_MATRIX* D) const +{ + return; +} diff --git a/code/steps/source/model/sg_models/sync_generator_model/genrou.cpp b/code/steps/source/model/sg_models/sync_generator_model/genrou.cpp index eee1511f..2e5c976e 100644 --- a/code/steps/source/model/sg_models/sync_generator_model/genrou.cpp +++ b/code/steps/source/model/sg_models/sync_generator_model/genrou.cpp @@ -977,3 +977,35 @@ void GENROU::linearize() set_linearized_matrix("GEN-GOV", gen_gov_matrix); // do linearization } + +STEPS_SPARSE_MATRIX GENROU::get_linearized_system_A() const +{ + STEPS_SPARSE_MATRIX A; + + return A; +} +STEPS_SPARSE_MATRIX GENROU::get_linearized_system_B() const +{ + STEPS_SPARSE_MATRIX B; + + return B; +} + +STEPS_SPARSE_MATRIX GENROU::get_linearized_system_C() const +{ + STEPS_SPARSE_MATRIX C; + + return C; +} + +STEPS_SPARSE_MATRIX GENROU::get_linearized_system_D() const +{ + STEPS_SPARSE_MATRIX D; + + return D; +} + +void GENROU::get_linearized_system_ABCD(STEPS_SPARSE_MATRIX* A, STEPS_SPARSE_MATRIX* B, STEPS_SPARSE_MATRIX* C, STEPS_SPARSE_MATRIX* D) const +{ + return; +} diff --git a/code/steps/source/model/sg_models/sync_generator_model/gensal.cpp b/code/steps/source/model/sg_models/sync_generator_model/gensal.cpp index dd82453d..5ffe22e5 100644 --- a/code/steps/source/model/sg_models/sync_generator_model/gensal.cpp +++ b/code/steps/source/model/sg_models/sync_generator_model/gensal.cpp @@ -842,3 +842,35 @@ void GENSAL::linearize() set_linearized_matrix("GEN-GOV", gen_gov_matrix); // do linearization } + +STEPS_SPARSE_MATRIX GENSAL::get_linearized_system_A() const +{ + STEPS_SPARSE_MATRIX A; + + return A; +} +STEPS_SPARSE_MATRIX GENSAL::get_linearized_system_B() const +{ + STEPS_SPARSE_MATRIX B; + + return B; +} + +STEPS_SPARSE_MATRIX GENSAL::get_linearized_system_C() const +{ + STEPS_SPARSE_MATRIX C; + + return C; +} + +STEPS_SPARSE_MATRIX GENSAL::get_linearized_system_D() const +{ + STEPS_SPARSE_MATRIX D; + + return D; +} + +void GENSAL::get_linearized_system_ABCD(STEPS_SPARSE_MATRIX* A, STEPS_SPARSE_MATRIX* B, STEPS_SPARSE_MATRIX* C, STEPS_SPARSE_MATRIX* D) const +{ + return; +} diff --git a/code/steps/source/model/sg_models/turbine_governors/GAST2A.cpp b/code/steps/source/model/sg_models/turbine_governors/GAST2A.cpp index 90100d5f..746ccfea 100644 --- a/code/steps/source/model/sg_models/turbine_governors/GAST2A.cpp +++ b/code/steps/source/model/sg_models/turbine_governors/GAST2A.cpp @@ -928,3 +928,35 @@ void GAST2A::linearize() set_linearized_matrix("GOV-TLC", matrix); // do linearization } + +STEPS_SPARSE_MATRIX GAST2A::get_linearized_system_A() const +{ + STEPS_SPARSE_MATRIX A; + + return A; +} +STEPS_SPARSE_MATRIX GAST2A::get_linearized_system_B() const +{ + STEPS_SPARSE_MATRIX B; + + return B; +} + +STEPS_SPARSE_MATRIX GAST2A::get_linearized_system_C() const +{ + STEPS_SPARSE_MATRIX C; + + return C; +} + +STEPS_SPARSE_MATRIX GAST2A::get_linearized_system_D() const +{ + STEPS_SPARSE_MATRIX D; + + return D; +} + +void GAST2A::get_linearized_system_ABCD(STEPS_SPARSE_MATRIX* A, STEPS_SPARSE_MATRIX* B, STEPS_SPARSE_MATRIX* C, STEPS_SPARSE_MATRIX* D) const +{ + return; +} diff --git a/code/steps/source/model/sg_models/turbine_governors/IEEEG1.cpp b/code/steps/source/model/sg_models/turbine_governors/IEEEG1.cpp index 5e162125..00df43d1 100644 --- a/code/steps/source/model/sg_models/turbine_governors/IEEEG1.cpp +++ b/code/steps/source/model/sg_models/turbine_governors/IEEEG1.cpp @@ -782,3 +782,35 @@ void IEEEG1::linearize() set_linearized_matrix("GOV-TLC", matrix); // do linearization } + +STEPS_SPARSE_MATRIX IEEEG1::get_linearized_system_A() const +{ + STEPS_SPARSE_MATRIX A; + + return A; +} +STEPS_SPARSE_MATRIX IEEEG1::get_linearized_system_B() const +{ + STEPS_SPARSE_MATRIX B; + + return B; +} + +STEPS_SPARSE_MATRIX IEEEG1::get_linearized_system_C() const +{ + STEPS_SPARSE_MATRIX C; + + return C; +} + +STEPS_SPARSE_MATRIX IEEEG1::get_linearized_system_D() const +{ + STEPS_SPARSE_MATRIX D; + + return D; +} + +void IEEEG1::get_linearized_system_ABCD(STEPS_SPARSE_MATRIX* A, STEPS_SPARSE_MATRIX* B, STEPS_SPARSE_MATRIX* C, STEPS_SPARSE_MATRIX* D) const +{ + return; +} diff --git a/code/steps/source/model/sg_models/turbine_governors/IEEEG1SB.cpp b/code/steps/source/model/sg_models/turbine_governors/IEEEG1SB.cpp index e22cbc53..e58f018e 100644 --- a/code/steps/source/model/sg_models/turbine_governors/IEEEG1SB.cpp +++ b/code/steps/source/model/sg_models/turbine_governors/IEEEG1SB.cpp @@ -990,3 +990,35 @@ void IEEEG1SB::linearize() set_linearized_matrix("GOV-TLC", matrix); // do linearization } + +STEPS_SPARSE_MATRIX IEEEG1SB::get_linearized_system_A() const +{ + STEPS_SPARSE_MATRIX A; + + return A; +} +STEPS_SPARSE_MATRIX IEEEG1SB::get_linearized_system_B() const +{ + STEPS_SPARSE_MATRIX B; + + return B; +} + +STEPS_SPARSE_MATRIX IEEEG1SB::get_linearized_system_C() const +{ + STEPS_SPARSE_MATRIX C; + + return C; +} + +STEPS_SPARSE_MATRIX IEEEG1SB::get_linearized_system_D() const +{ + STEPS_SPARSE_MATRIX D; + + return D; +} + +void IEEEG1SB::get_linearized_system_ABCD(STEPS_SPARSE_MATRIX* A, STEPS_SPARSE_MATRIX* B, STEPS_SPARSE_MATRIX* C, STEPS_SPARSE_MATRIX* D) const +{ + return; +} diff --git a/code/steps/source/model/sg_models/turbine_governors/IEEEG2.cpp b/code/steps/source/model/sg_models/turbine_governors/IEEEG2.cpp index bc148a8d..e19d6701 100644 --- a/code/steps/source/model/sg_models/turbine_governors/IEEEG2.cpp +++ b/code/steps/source/model/sg_models/turbine_governors/IEEEG2.cpp @@ -470,3 +470,35 @@ void IEEEG2::linearize() set_linearized_matrix("GOV-TLC", matrix); // do linearization } + +STEPS_SPARSE_MATRIX IEEEG2::get_linearized_system_A() const +{ + STEPS_SPARSE_MATRIX A; + + return A; +} +STEPS_SPARSE_MATRIX IEEEG2::get_linearized_system_B() const +{ + STEPS_SPARSE_MATRIX B; + + return B; +} + +STEPS_SPARSE_MATRIX IEEEG2::get_linearized_system_C() const +{ + STEPS_SPARSE_MATRIX C; + + return C; +} + +STEPS_SPARSE_MATRIX IEEEG2::get_linearized_system_D() const +{ + STEPS_SPARSE_MATRIX D; + + return D; +} + +void IEEEG2::get_linearized_system_ABCD(STEPS_SPARSE_MATRIX* A, STEPS_SPARSE_MATRIX* B, STEPS_SPARSE_MATRIX* C, STEPS_SPARSE_MATRIX* D) const +{ + return; +} diff --git a/code/steps/source/model/sg_models/turbine_governors/IEEEG3.cpp b/code/steps/source/model/sg_models/turbine_governors/IEEEG3.cpp index 41928492..18f260f2 100644 --- a/code/steps/source/model/sg_models/turbine_governors/IEEEG3.cpp +++ b/code/steps/source/model/sg_models/turbine_governors/IEEEG3.cpp @@ -655,3 +655,35 @@ void IEEEG3::linearize() set_linearized_matrix("GOV-TLC", matrix); // do linearization } + +STEPS_SPARSE_MATRIX IEEEG3::get_linearized_system_A() const +{ + STEPS_SPARSE_MATRIX A; + + return A; +} +STEPS_SPARSE_MATRIX IEEEG3::get_linearized_system_B() const +{ + STEPS_SPARSE_MATRIX B; + + return B; +} + +STEPS_SPARSE_MATRIX IEEEG3::get_linearized_system_C() const +{ + STEPS_SPARSE_MATRIX C; + + return C; +} + +STEPS_SPARSE_MATRIX IEEEG3::get_linearized_system_D() const +{ + STEPS_SPARSE_MATRIX D; + + return D; +} + +void IEEEG3::get_linearized_system_ABCD(STEPS_SPARSE_MATRIX* A, STEPS_SPARSE_MATRIX* B, STEPS_SPARSE_MATRIX* C, STEPS_SPARSE_MATRIX* D) const +{ + return; +} diff --git a/code/steps/source/model/sg_models/turbine_governors/IEESGO.cpp b/code/steps/source/model/sg_models/turbine_governors/IEESGO.cpp index 6923bc35..5f9228d0 100644 --- a/code/steps/source/model/sg_models/turbine_governors/IEESGO.cpp +++ b/code/steps/source/model/sg_models/turbine_governors/IEESGO.cpp @@ -556,3 +556,35 @@ void IEESGO::linearize() set_linearized_matrix("GOV-TLC", matrix); // do linearization } + +STEPS_SPARSE_MATRIX IEESGO::get_linearized_system_A() const +{ + STEPS_SPARSE_MATRIX A; + + return A; +} +STEPS_SPARSE_MATRIX IEESGO::get_linearized_system_B() const +{ + STEPS_SPARSE_MATRIX B; + + return B; +} + +STEPS_SPARSE_MATRIX IEESGO::get_linearized_system_C() const +{ + STEPS_SPARSE_MATRIX C; + + return C; +} + +STEPS_SPARSE_MATRIX IEESGO::get_linearized_system_D() const +{ + STEPS_SPARSE_MATRIX D; + + return D; +} + +void IEESGO::get_linearized_system_ABCD(STEPS_SPARSE_MATRIX* A, STEPS_SPARSE_MATRIX* B, STEPS_SPARSE_MATRIX* C, STEPS_SPARSE_MATRIX* D) const +{ + return; +} diff --git a/code/steps/source/model/sg_models/turbine_governors/TGOV1.cpp b/code/steps/source/model/sg_models/turbine_governors/TGOV1.cpp index 41b1b52a..25d5d854 100644 --- a/code/steps/source/model/sg_models/turbine_governors/TGOV1.cpp +++ b/code/steps/source/model/sg_models/turbine_governors/TGOV1.cpp @@ -402,3 +402,35 @@ void TGOV1::linearize() set_linearized_matrix("GOV-TLC", matrix); // do linearization } + +STEPS_SPARSE_MATRIX TGOV1::get_linearized_system_A() const +{ + STEPS_SPARSE_MATRIX A; + + return A; +} +STEPS_SPARSE_MATRIX TGOV1::get_linearized_system_B() const +{ + STEPS_SPARSE_MATRIX B; + + return B; +} + +STEPS_SPARSE_MATRIX TGOV1::get_linearized_system_C() const +{ + STEPS_SPARSE_MATRIX C; + + return C; +} + +STEPS_SPARSE_MATRIX TGOV1::get_linearized_system_D() const +{ + STEPS_SPARSE_MATRIX D; + + return D; +} + +void TGOV1::get_linearized_system_ABCD(STEPS_SPARSE_MATRIX* A, STEPS_SPARSE_MATRIX* B, STEPS_SPARSE_MATRIX* C, STEPS_SPARSE_MATRIX* D) const +{ + return; +} diff --git a/code/steps/source/model/sg_models/turbine_governors/URCSCT.cpp b/code/steps/source/model/sg_models/turbine_governors/URCSCT.cpp index d4b3e551..5c56a7b6 100644 --- a/code/steps/source/model/sg_models/turbine_governors/URCSCT.cpp +++ b/code/steps/source/model/sg_models/turbine_governors/URCSCT.cpp @@ -1464,3 +1464,35 @@ void URCSCT::linearize() set_linearized_matrix("GOV-TLC", matrix); // do linearization } + +STEPS_SPARSE_MATRIX URCSCT::get_linearized_system_A() const +{ + STEPS_SPARSE_MATRIX A; + + return A; +} +STEPS_SPARSE_MATRIX URCSCT::get_linearized_system_B() const +{ + STEPS_SPARSE_MATRIX B; + + return B; +} + +STEPS_SPARSE_MATRIX URCSCT::get_linearized_system_C() const +{ + STEPS_SPARSE_MATRIX C; + + return C; +} + +STEPS_SPARSE_MATRIX URCSCT::get_linearized_system_D() const +{ + STEPS_SPARSE_MATRIX D; + + return D; +} + +void URCSCT::get_linearized_system_ABCD(STEPS_SPARSE_MATRIX* A, STEPS_SPARSE_MATRIX* B, STEPS_SPARSE_MATRIX* C, STEPS_SPARSE_MATRIX* D) const +{ + return; +} diff --git a/code/steps/source/model/sg_models/turbine_load_controller_model/lcfb1.cpp b/code/steps/source/model/sg_models/turbine_load_controller_model/lcfb1.cpp index 84ae5e9c..9a6ce062 100644 --- a/code/steps/source/model/sg_models/turbine_load_controller_model/lcfb1.cpp +++ b/code/steps/source/model/sg_models/turbine_load_controller_model/lcfb1.cpp @@ -545,3 +545,35 @@ void LCFB1::linearize() set_linearized_matrix("TLC-GOV", matrix); // do linearization } + +STEPS_SPARSE_MATRIX LCFB1::get_linearized_system_A() const +{ + STEPS_SPARSE_MATRIX A; + + return A; +} +STEPS_SPARSE_MATRIX LCFB1::get_linearized_system_B() const +{ + STEPS_SPARSE_MATRIX B; + + return B; +} + +STEPS_SPARSE_MATRIX LCFB1::get_linearized_system_C() const +{ + STEPS_SPARSE_MATRIX C; + + return C; +} + +STEPS_SPARSE_MATRIX LCFB1::get_linearized_system_D() const +{ + STEPS_SPARSE_MATRIX D; + + return D; +} + +void LCFB1::get_linearized_system_ABCD(STEPS_SPARSE_MATRIX* A, STEPS_SPARSE_MATRIX* B, STEPS_SPARSE_MATRIX* C, STEPS_SPARSE_MATRIX* D) const +{ + return; +}