Skip to content

Commit

Permalink
add block and generator model linearization interfaces.
Browse files Browse the repository at this point in the history
  • Loading branch information
changgang committed Jan 8, 2024
1 parent e2e42cc commit 581a150
Show file tree
Hide file tree
Showing 107 changed files with 2,301 additions and 461 deletions.
213 changes: 107 additions & 106 deletions code/steps/STEPS.depend

Large diffs are not rendered by default.

2 changes: 2 additions & 0 deletions code/steps/header/basic/sparse_matrix.h
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down
4 changes: 4 additions & 0 deletions code/steps/header/basic/sparse_matrix_csparse.h
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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<SPARSE_MATRIX_CSPARSE*> matrix);
#endif // SPARSE_MATRIX_CSPARSE_H
2 changes: 2 additions & 0 deletions code/steps/header/basic/sparse_matrix_klu.h
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down
2 changes: 2 additions & 0 deletions code/steps/header/basic/sparse_matrix_umfpack.h
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down
1 change: 1 addition & 0 deletions code/steps/header/block/block.h
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
#define BLOCK_H

#include "header/basic/steps_enum.h"
#include "header/basic/sparse_matrix_define.h"
#include <vector>
#include <cctype>

Expand Down
14 changes: 5 additions & 9 deletions code/steps/header/block/differential_block.h
Original file line number Diff line number Diff line change
Expand Up @@ -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();

Expand Down
1 change: 1 addition & 0 deletions code/steps/header/block/differential_block_test.h
Original file line number Diff line number Diff line change
Expand Up @@ -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;
};
Expand Down
14 changes: 5 additions & 9 deletions code/steps/header/block/first_order_block.h
Original file line number Diff line number Diff line change
Expand Up @@ -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();

Expand Down
1 change: 1 addition & 0 deletions code/steps/header/block/first_order_block_test.h
Original file line number Diff line number Diff line change
Expand Up @@ -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;
};
Expand Down
14 changes: 5 additions & 9 deletions code/steps/header/block/integral_block.h
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand Down
14 changes: 5 additions & 9 deletions code/steps/header/block/lead_lag_block.h
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand Down
14 changes: 5 additions & 9 deletions code/steps/header/block/pd_block.h
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand Down
14 changes: 5 additions & 9 deletions code/steps/header/block/pi_block.h
Original file line number Diff line number Diff line change
Expand Up @@ -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();

Expand Down
14 changes: 5 additions & 9 deletions code/steps/header/block/pid_block.h
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand Down
1 change: 1 addition & 0 deletions code/steps/header/block/pid_block_test.h
Original file line number Diff line number Diff line change
Expand Up @@ -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;
};
Expand Down
6 changes: 6 additions & 0 deletions code/steps/header/block/proportional_block.h
Original file line number Diff line number Diff line change
Expand Up @@ -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();
Expand Down
14 changes: 5 additions & 9 deletions code/steps/header/block/second_order_block.h
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand Down
1 change: 1 addition & 0 deletions code/steps/header/block/second_order_block_test.h
Original file line number Diff line number Diff line change
Expand Up @@ -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;
};
Expand Down
5 changes: 5 additions & 0 deletions code/steps/header/device/generator.h
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down
8 changes: 8 additions & 0 deletions code/steps/header/model/sg_models/compensator_model/COMP.h
Original file line number Diff line number Diff line change
Expand Up @@ -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);

Expand Down
8 changes: 8 additions & 0 deletions code/steps/header/model/sg_models/compensator_model/IEEEVC.h
Original file line number Diff line number Diff line change
Expand Up @@ -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);

Expand Down
8 changes: 8 additions & 0 deletions code/steps/header/model/sg_models/compensator_model/PSASPVC.h
Original file line number Diff line number Diff line change
Expand Up @@ -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);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;

Expand Down
8 changes: 8 additions & 0 deletions code/steps/header/model/sg_models/exciter_model/CSEET1.h
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down
8 changes: 8 additions & 0 deletions code/steps/header/model/sg_models/exciter_model/CSEET2.h
Original file line number Diff line number Diff line change
Expand Up @@ -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);

Expand Down
8 changes: 8 additions & 0 deletions code/steps/header/model/sg_models/exciter_model/IEEET1.h
Original file line number Diff line number Diff line change
Expand Up @@ -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);

Expand Down
8 changes: 8 additions & 0 deletions code/steps/header/model/sg_models/exciter_model/PSASPE1.h
Original file line number Diff line number Diff line change
Expand Up @@ -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);

Expand Down
Loading

0 comments on commit 581a150

Please sign in to comment.