Skip to content

Commit

Permalink
modify interfaces for small signal analysis in SG_MODEL, LOAD_MODEL, …
Browse files Browse the repository at this point in the history
…GENERATOR, LOAD. update implementatin of linearization in basic blocks.
  • Loading branch information
changgang committed Mar 10, 2024
1 parent c4f9938 commit 9d19d26
Show file tree
Hide file tree
Showing 91 changed files with 520 additions and 1,572 deletions.
180 changes: 90 additions & 90 deletions code/steps/STEPS.depend

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions code/steps/header/basic/sparse_matrix_csparse.h
Original file line number Diff line number Diff line change
Expand Up @@ -86,4 +86,5 @@ SPARSE_MATRIX_CSPARSE* operator*(SPARSE_MATRIX_CSPARSE&A, SPARSE_MATRIX_CSPARSE&
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);
SPARSE_MATRIX_CSPARSE build_identity_matrix(SPARSE_MATRIX_CSPARSE&A);
#endif // SPARSE_MATRIX_CSPARSE_H
5 changes: 1 addition & 4 deletions code/steps/header/device/generator.h
Original file line number Diff line number Diff line change
Expand Up @@ -94,10 +94,7 @@ 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;
void build_linearized_matrix_ABCD();
private:
SYNC_GENERATOR_MODEL* sync_generator_model;
COMPENSATOR_MODEL* compensator_model;
Expand Down
2 changes: 2 additions & 0 deletions code/steps/header/device/load.h
Original file line number Diff line number Diff line change
Expand Up @@ -149,6 +149,8 @@ class LOAD : public NONBUS_DEVICE

void set_sequence_parameter_import_flag(bool flag);
bool get_sequence_parameter_import_flag() const;

void build_linearized_matrix_ABCD();
private:
unsigned int bus;
BUS* busptr;
Expand Down
2 changes: 2 additions & 0 deletions code/steps/header/model/load_model/CIM6.h
Original file line number Diff line number Diff line change
Expand Up @@ -104,6 +104,8 @@ class CIM6 : public LOAD_MODEL
virtual string get_dynamic_data_in_psse_format() const;
virtual string get_dynamic_data_in_bpa_format() const;
virtual string get_dynamic_data_in_steps_format() const;

virtual void build_linearized_matrix_ABCD();
private:
void copy_from_const_model(const CIM6& model);
void setup_model_dynamic_parameters();
Expand Down
2 changes: 2 additions & 0 deletions code/steps/header/model/load_model/IEEL.h
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,8 @@ class IEEL : public LOAD_MODEL
virtual string get_dynamic_data_in_psse_format() const;
virtual string get_dynamic_data_in_bpa_format() const;
virtual string get_dynamic_data_in_steps_format() const;

virtual void build_linearized_matrix_ABCD();
private:
void copy_from_const_model(const IEEL& model);

Expand Down
11 changes: 11 additions & 0 deletions code/steps/header/model/load_model/load_model.h
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,13 @@ class LOAD_MODEL : public MODEL
void set_subsystem_type(SUBSYSTEM_TYPE subtype);
SUBSYSTEM_TYPE get_subsystem_type() const;
string get_detailed_model_name() const;

void initialize_ABCD_matrix_for_linearization();
STEPS_SPARSE_MATRIX get_linearized_system_variable(char var) const;
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;
public: // specific model level
virtual string get_model_name() const = 0;
virtual bool setup_model_with_steps_string_vector(vector<string>& data) = 0;
Expand Down Expand Up @@ -66,11 +73,15 @@ class LOAD_MODEL : public 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 void build_linearized_matrix_ABCD() = 0;
private:
SUBSYSTEM_TYPE subsystem_type;
bool voltage_source_flag;
double voltage_pu, frequency_deviation_pu;
complex<double> complex_voltage_pu;

STEPS_SPARSE_MATRIX *Aptr, *Bptr, *Cptr, *Dptr;

};
#endif // LOAD_MODEL_H
9 changes: 1 addition & 8 deletions code/steps/header/model/sg_models/compensator_model/COMP.h
Original file line number Diff line number Diff line change
Expand Up @@ -44,14 +44,7 @@ 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;
virtual void build_linearized_matrix_ABCD();
private:
void copy_from_const_model(const COMP& model);

Expand Down
9 changes: 1 addition & 8 deletions code/steps/header/model/sg_models/compensator_model/IEEEVC.h
Original file line number Diff line number Diff line change
Expand Up @@ -47,14 +47,7 @@ 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;
virtual void build_linearized_matrix_ABCD();
private:
void copy_from_const_model(const IEEEVC& model);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,14 +44,7 @@ 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;
virtual void build_linearized_matrix_ABCD();
private:
void copy_from_const_model(const PSASPVC& model);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -58,14 +58,7 @@ class COMPENSATOR_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;
virtual void build_linearized_matrix_ABCD() = 0;
private:
double ecomp;

Expand Down
9 changes: 1 addition & 8 deletions code/steps/header/model/sg_models/exciter_model/CSEET1.h
Original file line number Diff line number Diff line change
Expand Up @@ -140,14 +140,7 @@ 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;
virtual void build_linearized_matrix_ABCD();
private:
void copy_from_const_model(const CSEET1& model);
double get_initial_Ve_with_Fex_function() const;
Expand Down
9 changes: 1 addition & 8 deletions code/steps/header/model/sg_models/exciter_model/CSEET2.h
Original file line number Diff line number Diff line change
Expand Up @@ -110,14 +110,7 @@ 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;
virtual void build_linearized_matrix_ABCD();
private:
void copy_from_const_model(const CSEET2& model);

Expand Down
9 changes: 1 addition & 8 deletions code/steps/header/model/sg_models/exciter_model/IEEET1.h
Original file line number Diff line number Diff line change
Expand Up @@ -72,14 +72,7 @@ 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;
virtual void build_linearized_matrix_ABCD();
private:
void copy_from_const_model(const IEEET1& model);

Expand Down
9 changes: 1 addition & 8 deletions code/steps/header/model/sg_models/exciter_model/PSASPE1.h
Original file line number Diff line number Diff line change
Expand Up @@ -64,14 +64,7 @@ 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;
virtual void build_linearized_matrix_ABCD();
private:
void copy_from_const_model(const PSASPE1& model);

Expand Down
9 changes: 1 addition & 8 deletions code/steps/header/model/sg_models/exciter_model/PSASPE13.h
Original file line number Diff line number Diff line change
Expand Up @@ -73,14 +73,7 @@ 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;
virtual void build_linearized_matrix_ABCD();
private:
void copy_from_const_model(const PSASPE13& model);

Expand Down
9 changes: 1 addition & 8 deletions code/steps/header/model/sg_models/exciter_model/PSASPE14.h
Original file line number Diff line number Diff line change
Expand Up @@ -79,14 +79,7 @@ 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;
virtual void build_linearized_matrix_ABCD();
private:
void copy_from_const_model(const PSASPE14& model);

Expand Down
9 changes: 1 addition & 8 deletions code/steps/header/model/sg_models/exciter_model/PSASPE2.h
Original file line number Diff line number Diff line change
Expand Up @@ -77,14 +77,7 @@ 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;
virtual void build_linearized_matrix_ABCD();
private:
void copy_from_const_model(const PSASPE2& model);

Expand Down
9 changes: 1 addition & 8 deletions code/steps/header/model/sg_models/exciter_model/SEXS.h
Original file line number Diff line number Diff line change
Expand Up @@ -56,14 +56,7 @@ 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;
virtual void build_linearized_matrix_ABCD();
private:
void copy_from_const_model(const SEXS& model);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -60,14 +60,7 @@ class EXCITER_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;
virtual void build_linearized_matrix_ABCD() = 0;
private:
double voltage_reference_in_pu;

Expand Down
18 changes: 9 additions & 9 deletions code/steps/header/model/sg_models/sg_model.h
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,13 @@ class SG_MODEL : public MODEL
double get_bus_base_frequency_in_Hz() const;
complex<double> get_terminal_complex_voltage_in_pu() const;
double get_terminal_voltage_in_pu() const;

void initialize_ABCD_matrix_for_linearization();
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;
public: // specific model level
virtual string get_model_type() const = 0;
virtual string get_model_name() const = 0;
Expand Down Expand Up @@ -55,16 +62,9 @@ class SG_MODEL : public MODEL
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;
virtual void build_linearized_matrix_ABCD() = 0;
private:
STEPS_SPARSE_MATRIX *Aptr, *Bptr, *Cptr, *Dptr;

};
#endif // SG_MODEL_H
9 changes: 1 addition & 8 deletions code/steps/header/model/sg_models/stabilizer_model/IEE2ST.h
Original file line number Diff line number Diff line change
Expand Up @@ -80,14 +80,7 @@ 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;
virtual void build_linearized_matrix_ABCD();
private:
void copy_from_const_model(const IEE2ST& model);

Expand Down
9 changes: 1 addition & 8 deletions code/steps/header/model/sg_models/stabilizer_model/PSASPS1.h
Original file line number Diff line number Diff line change
Expand Up @@ -68,14 +68,7 @@ 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;
virtual void build_linearized_matrix_ABCD();
private:
void copy_from_const_model(const PSASPS1& model);

Expand Down
9 changes: 1 addition & 8 deletions code/steps/header/model/sg_models/stabilizer_model/PSASPS2.h
Original file line number Diff line number Diff line change
Expand Up @@ -75,14 +75,7 @@ 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;
virtual void build_linearized_matrix_ABCD();
private:
void copy_from_const_model(const PSASPS2& model);

Expand Down
9 changes: 1 addition & 8 deletions code/steps/header/model/sg_models/stabilizer_model/PSASPS3.h
Original file line number Diff line number Diff line change
Expand Up @@ -84,14 +84,7 @@ 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;
virtual void build_linearized_matrix_ABCD();
private:
void copy_from_const_model(const PSASPS3& model);

Expand Down
Loading

0 comments on commit 9d19d26

Please sign in to comment.