pydae 0.56.1__py3-none-any.whl → 0.56.3__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- pydae/__init__.py +1 -1
- pydae/bmapu/bmapu_builder.py +13 -4
- pydae/bmapu/pods/pod_2wo_3ll.hjson +2 -2
- pydae/bmapu/pods/pod_2wo_3ll.py +12 -4
- pydae/bmapu/pods/pod_2wo_3ll_omegas.svg +639 -1662
- pydae/bmapu/pods/temp.py +18 -16
- pydae/bmapu/pods/temp_cffi.c +1324 -1238
- pydae/bmapu/pods/temp_xy_0.json +1 -1
- pydae/bmapu/pods/xy_0.json +1 -1
- {pydae-0.56.1.dist-info → pydae-0.56.3.dist-info}/METADATA +1 -1
- {pydae-0.56.1.dist-info → pydae-0.56.3.dist-info}/RECORD +14 -14
- {pydae-0.56.1.dist-info → pydae-0.56.3.dist-info}/COPYING +0 -0
- {pydae-0.56.1.dist-info → pydae-0.56.3.dist-info}/LICENSE +0 -0
- {pydae-0.56.1.dist-info → pydae-0.56.3.dist-info}/WHEEL +0 -0
pydae/__init__.py
CHANGED
pydae/bmapu/bmapu_builder.py
CHANGED
|
@@ -381,10 +381,19 @@ class bmapu:
|
|
|
381
381
|
|
|
382
382
|
if 'monitor' in line:
|
|
383
383
|
if line['monitor']:
|
|
384
|
-
h_grid.update({f"p_line_{bus_j}_{bus_k}":P_line_to})
|
|
385
|
-
h_grid.update({f"q_line_{bus_j}_{bus_k}":Q_line_to})
|
|
386
|
-
h_grid.update({f"p_line_{bus_k}_{bus_j}":P_line_from})
|
|
387
|
-
h_grid.update({f"q_line_{bus_k}_{bus_j}":Q_line_from})
|
|
384
|
+
# h_grid.update({f"p_line_{bus_j}_{bus_k}":P_line_to})
|
|
385
|
+
# h_grid.update({f"q_line_{bus_j}_{bus_k}":Q_line_to})
|
|
386
|
+
# h_grid.update({f"p_line_{bus_k}_{bus_j}":P_line_from})
|
|
387
|
+
# h_grid.update({f"q_line_{bus_k}_{bus_j}":Q_line_from})
|
|
388
|
+
p_line_to,q_line_to = sym.symbols(f"p_line_{bus_j}_{bus_k},q_line_{bus_j}_{bus_k}", real=True)
|
|
389
|
+
p_line_from,q_line_from = sym.symbols(f"p_line_{bus_k}_{bus_j},q_line_{bus_k}_{bus_j}", real=True)
|
|
390
|
+
|
|
391
|
+
g_grid += [p_line_to - P_line_to]
|
|
392
|
+
g_grid += [q_line_to - Q_line_to]
|
|
393
|
+
g_grid += [p_line_from - P_line_from]
|
|
394
|
+
g_grid += [q_line_from - Q_line_from]
|
|
395
|
+
|
|
396
|
+
y_grid += [p_line_to,q_line_to,p_line_from,q_line_from]
|
|
388
397
|
|
|
389
398
|
self.dae['f'] += []
|
|
390
399
|
self.dae['g'] += g_grid
|
|
@@ -17,6 +17,6 @@ syns:[
|
|
|
17
17
|
}
|
|
18
18
|
],
|
|
19
19
|
"sources":[{"type":"vsource","bus":"2"}],
|
|
20
|
-
"pods":[{bus:"1","type":"pod_2wo_3ll","K_p_pll": 180, "K_i_pll": 3200, "T_pll": 0.02,"K_stab"
|
|
21
|
-
"T_1":1, "T_2":1, "T_3":1.0, "T_4":1, "T_5":1.0, "T_6":1, "T_wo1":10.0, "T_wo2":10.0}]
|
|
20
|
+
"pods":[{bus:"1","type":"pod_2wo_3ll","K_p_pll": 180, "K_i_pll": 3200, "T_pll": 0.02,"K_stab":-20,
|
|
21
|
+
"T_lpf":0.01, "T_1":1, "T_2":1, "T_3":1.0, "T_4":1, "T_5":1.0, "T_6":1, "T_wo1":10.0, "T_wo2":10.0}]
|
|
22
22
|
}
|
pydae/bmapu/pods/pod_2wo_3ll.py
CHANGED
|
@@ -75,6 +75,8 @@ def add_pod_2wo_3ll(grid,data):
|
|
|
75
75
|
############################################################################################################
|
|
76
76
|
|
|
77
77
|
# dynamic states
|
|
78
|
+
x_lpf = sym.Symbol(f"x_lpf_pod_{name}", real=True) # low pass filter
|
|
79
|
+
|
|
78
80
|
x_wo1 = sym.Symbol(f"x_wo1_pod_{name}", real=True) # washout 1
|
|
79
81
|
x_wo2 = sym.Symbol(f"x_wo2_pod_{name}", real=True) # washout 2
|
|
80
82
|
|
|
@@ -90,6 +92,7 @@ def add_pod_2wo_3ll(grid,data):
|
|
|
90
92
|
T_wo1 = sym.Symbol(f"T_wo1_pod_{name}", real=True)
|
|
91
93
|
T_wo2 = sym.Symbol(f"T_wo2_pod_{name}", real=True)
|
|
92
94
|
|
|
95
|
+
T_lpf = sym.Symbol(f"T_lpf_pod_{name}", real=True)
|
|
93
96
|
T_1 = sym.Symbol(f"T_1_pod_{name}", real=True)
|
|
94
97
|
T_2 = sym.Symbol(f"T_2_pod_{name}", real=True)
|
|
95
98
|
T_3 = sym.Symbol(f"T_3_pod_{name}", real=True)
|
|
@@ -106,10 +109,13 @@ def add_pod_2wo_3ll(grid,data):
|
|
|
106
109
|
|
|
107
110
|
# auxiliar
|
|
108
111
|
omega = omega_pll_f
|
|
109
|
-
|
|
112
|
+
u_lpf = K_stab*(omega - 1.0) + u_pll_probe
|
|
110
113
|
|
|
111
|
-
|
|
114
|
+
z_lpf = x_lpf
|
|
115
|
+
z_wo1 = z_lpf - x_wo1
|
|
112
116
|
z_wo2 = z_wo1 - x_wo2
|
|
117
|
+
|
|
118
|
+
u_wo1 = z_lpf
|
|
113
119
|
u_wo2 = z_wo1
|
|
114
120
|
z_12 = (z_wo2 - x_12)*T_1/T_2 + x_12
|
|
115
121
|
z_34 = (z_12 - x_34)*T_3/T_4 + x_34
|
|
@@ -117,6 +123,7 @@ def add_pod_2wo_3ll(grid,data):
|
|
|
117
123
|
|
|
118
124
|
pod_out_nosat = z_56
|
|
119
125
|
|
|
126
|
+
dx_lpf = (u_lpf - x_lpf)/T_lpf # low pass filter state
|
|
120
127
|
dx_wo1 = (u_wo1 - x_wo1)/T_wo1 # washout1 state
|
|
121
128
|
dx_wo2 = (u_wo2 - x_wo2)/T_wo2 # washout2 state
|
|
122
129
|
dx_12 = (z_wo2 - x_12)/T_2 # lead compensator state
|
|
@@ -125,11 +132,12 @@ def add_pod_2wo_3ll(grid,data):
|
|
|
125
132
|
|
|
126
133
|
g_pod_out = -pod_out + sym.Piecewise((-Limit,pod_out_nosat<-Limit),(Limit,pod_out_nosat>Limit),(pod_out_nosat,True))
|
|
127
134
|
|
|
128
|
-
grid.dae['f'] += [dx_wo1,dx_wo2,dx_12,dx_34, dx_56]
|
|
129
|
-
grid.dae['x'] += [ x_wo1, x_wo2, x_12, x_34, x_56]
|
|
135
|
+
grid.dae['f'] += [dx_lpf, dx_wo1,dx_wo2,dx_12,dx_34, dx_56]
|
|
136
|
+
grid.dae['x'] += [ x_lpf, x_wo1, x_wo2, x_12, x_34, x_56]
|
|
130
137
|
grid.dae['g'] += [g_pod_out]
|
|
131
138
|
grid.dae['y_ini'] += [pod_out]
|
|
132
139
|
grid.dae['y_run'] += [pod_out]
|
|
140
|
+
grid.dae['params_dict'].update({str(T_lpf):data['T_lpf']})
|
|
133
141
|
grid.dae['params_dict'].update({str(T_wo1):data['T_wo1']})
|
|
134
142
|
grid.dae['params_dict'].update({str(T_wo2):data['T_wo2']})
|
|
135
143
|
grid.dae['params_dict'].update({str(T_1):data['T_1']})
|