Skip to content

Commit daaf469

Browse files
committed
adjust members
Signed-off-by: Tony Xiang <19280867+TonyXiang8787@users.noreply.github.com>
1 parent f0450d4 commit daaf469

1 file changed

Lines changed: 15 additions & 23 deletions

File tree

  • power_grid_model_c/power_grid_model/include/power_grid_model/component

power_grid_model_c/power_grid_model/include/power_grid_model/component/source.hpp

Lines changed: 15 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -32,28 +32,19 @@ class Source : public Appliance {
3232
explicit Source(SourceInput const& source_input, double u)
3333
: Appliance{source_input, u},
3434
u_ref_{source_input.u_ref},
35-
u_ref_angle_{is_nan(source_input.u_ref_angle) ? 0.0 : source_input.u_ref_angle} {
36-
double const sk{is_nan(source_input.sk) ? default_source_sk : source_input.sk};
37-
double const rx_ratio{is_nan(source_input.rx_ratio) ? default_source_rx_ratio : source_input.rx_ratio};
38-
double const z01_ratio{is_nan(source_input.z01_ratio) ? default_source_z01_ratio : source_input.z01_ratio};
39-
calculate_y_ref(sk, rx_ratio, z01_ratio);
40-
}
41-
42-
// calculate y1 y0 ref
43-
void calculate_y_ref(double sk, double rx_ratio, double z01_ratio) {
44-
double const z_abs = base_power_3p / sk; // s_pu = s/base_s, z = u^2/s = 1/s = base_s/s_pu
45-
double const x1 = z_abs / sqrt(rx_ratio * rx_ratio + 1.0);
46-
double const r1 = x1 * rx_ratio;
47-
y1_ref_ = 1.0 / DoubleComplex{r1, x1};
48-
y0_ref_ = y1_ref_ / z01_ratio;
49-
}
35+
u_ref_angle_{is_nan(source_input.u_ref_angle) ? 0.0 : source_input.u_ref_angle},
36+
sk_{is_nan(source_input.sk) ? default_source_sk : source_input.sk},
37+
rx_ratio_{is_nan(source_input.rx_ratio) ? default_source_rx_ratio : source_input.rx_ratio},
38+
z01_ratio_{is_nan(source_input.z01_ratio) ? default_source_z01_ratio : source_input.z01_ratio} {}
5039

5140
template <symmetry_tag sym> SourceCalcParam math_param() const {
52-
// internal element_admittance
53-
SourceCalcParam param;
54-
param.y0 = y0_ref_;
55-
param.y1 = y1_ref_;
56-
return param;
41+
// calculate y1 y0 ref
42+
double const z_abs = base_power_3p / sk_;
43+
double const x1 = z_abs / sqrt(rx_ratio_ * rx_ratio_ + 1.0);
44+
double const r1 = x1 * rx_ratio_;
45+
DoubleComplex const y1_ref = 1.0 / DoubleComplex{r1, x1};
46+
DoubleComplex const y0_ref = y1_ref / z01_ratio_;
47+
return SourceCalcParam{.y1 = y1_ref, .y0 = y0_ref};
5748
}
5849

5950
// setter
@@ -117,9 +108,10 @@ class Source : public Appliance {
117108
private:
118109
double u_ref_;
119110
double u_ref_angle_;
120-
// positive and zero sequence ref
121-
DoubleComplex y1_ref_;
122-
DoubleComplex y0_ref_;
111+
// source short circuit power
112+
double sk_;
113+
double rx_ratio_;
114+
double z01_ratio_;
123115

124116
double injection_direction() const final { return 1.0; }
125117
};

0 commit comments

Comments
 (0)