pydae 0.54.4__py3-none-any.whl → 0.55.0__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.
Files changed (44) hide show
  1. pydae/__init__.py +1 -1
  2. pydae/bmapu/pvs/pv_dq_d.py +6 -5
  3. pydae/bmapu/pvs/pv_dq_ss.py +82 -35
  4. pydae/bmapu/pvs/pv_dq_ss_test.ipynb +17 -27
  5. pydae/bmapu/pvs/temp.py +23 -21
  6. pydae/bmapu/pvs/temp_cffi.c +2571 -4206
  7. pydae/bmapu/pvs/xy_1.json +18 -32
  8. pydae/bmapu/sources/genape.py +2 -4
  9. pydae/bmapu/vscs/bess_pq_ss.hjson +19 -0
  10. pydae/bmapu/vscs/bess_pq_ss.ipynb +520 -0
  11. pydae/bmapu/vscs/bess_pq_ss.py +240 -0
  12. pydae/bmapu/vscs/temp.py +20 -20
  13. pydae/bmapu/vscs/temp_cffi.c +1164 -412
  14. pydae/bmapu/vscs/vscs.py +3 -0
  15. pydae/build_cffi.py +13 -8
  16. pydae/c_code/LUT_Te.npz +0 -0
  17. pydae/c_code/LUT_id.npz +0 -0
  18. pydae/c_code/LUT_iq.npz +0 -0
  19. pydae/c_code/build_interpolations.py +19 -0
  20. pydae/c_code/build_machine.py +35 -0
  21. pydae/c_code/builder.py +19 -0
  22. pydae/c_code/interpolations.c +230 -0
  23. pydae/c_code/interpolations.h +4 -0
  24. pydae/c_code/interpolations.ipynb +414 -0
  25. pydae/c_code/interpolations_cffi.c +1229 -0
  26. pydae/c_code/machine.c +10218 -0
  27. pydae/c_code/machine.h +3 -0
  28. pydae/c_code/machine.ipynb +150 -0
  29. pydae/c_code/machine_cffi.c +11612 -0
  30. pydae/c_code/pwm.c +33 -0
  31. pydae/c_code/pwm.h +1 -0
  32. pydae/c_code/pwm.svg +996 -0
  33. pydae/c_code/pwm_cffi.c +725 -0
  34. pydae/c_code/test_pwm.py +31 -0
  35. pydae/custom_functions.py +15 -0
  36. pydae/templates/class_dae_cffi_template.py +2 -0
  37. pydae/urisi/lines/lines.py +21 -0
  38. pydae/utils/emtp/readPL4.py +90 -0
  39. pydae/utils/types_converter.py +247 -0
  40. {pydae-0.54.4.dist-info → pydae-0.55.0.dist-info}/METADATA +1 -1
  41. {pydae-0.54.4.dist-info → pydae-0.55.0.dist-info}/RECORD +44 -19
  42. {pydae-0.54.4.dist-info → pydae-0.55.0.dist-info}/COPYING +0 -0
  43. {pydae-0.54.4.dist-info → pydae-0.55.0.dist-info}/LICENSE +0 -0
  44. {pydae-0.54.4.dist-info → pydae-0.55.0.dist-info}/WHEEL +0 -0
pydae/__init__.py CHANGED
@@ -7,5 +7,5 @@ Differential Algebraic Equations in Python
7
7
 
8
8
  """
9
9
 
10
- __version__ = "0.54.4"
10
+ __version__ = "0.55.0"
11
11
 
@@ -222,10 +222,10 @@ def pv_dq_d(grid,name,bus_name,data_dict):
222
222
  grid.dae['u_run_dict'].update({f'{str(i_sr_ref)}':0.0})
223
223
 
224
224
  grid.dae['params_dict'].update({f'{str(v_lvrt)}':0.8})
225
- grid.dae['params_dict'].update({f'{str(T_lp1p)}':0.1,f'{str(T_lp2p)}':0.1})
226
- grid.dae['params_dict'].update({f'{str(T_lp1q)}':0.1,f'{str(T_lp2q)}':0.1})
227
- grid.dae['params_dict'].update({f'{str(PRampUp)}':2.5,f'{str(PRampDown)}':-2.5})
228
- grid.dae['params_dict'].update({f'{str(QRampUp)}':2.5,f'{str(QRampDown)}':-2.5})
225
+ grid.dae['params_dict'].update({f'{str(T_lp1p)}':0.02,f'{str(T_lp2p)}':0.02})
226
+ grid.dae['params_dict'].update({f'{str(T_lp1q)}':0.02,f'{str(T_lp2q)}':0.02})
227
+ grid.dae['params_dict'].update({f'{str(PRampUp)}':5.0,f'{str(PRampDown)}':-5.0})
228
+ grid.dae['params_dict'].update({f'{str(QRampUp)}':5.0,f'{str(QRampDown)}':-5.0})
229
229
 
230
230
  ### outputs
231
231
  grid.dae['h_dict'].update({f"m_ref_{name}":m_ref})
@@ -306,6 +306,7 @@ def pv_dq_d(grid,name,bus_name,data_dict):
306
306
 
307
307
  if 'monitor' in data_dict:
308
308
  if data_dict['monitor'] == True:
309
+ print('writting outputs')
309
310
 
310
311
  grid.dae['h_dict'].update({f"v_dc_v_{name}":v_dc*V_dc_b})
311
312
  grid.dae['h_dict'].update({f"v_ac_v_{name}":v_t_m*U_n})
@@ -384,7 +385,7 @@ if __name__ == "__main__":
384
385
  {"name":"2", "P_W":0.0,"Q_var":0.0,"U_kV":20.0}
385
386
  ],
386
387
  "lines":[{"bus_j":"1", "bus_k":"2", "X_pu":0.05,"R_pu":0.0,"Bs_pu":0.0,"S_mva":10000.0}],
387
- "genapes":[{"bus":"2","S_n":10000e6,"F_n":50.0,"X_v":0.001,"R_v":0.0,"K_delta":0.001,"K_alpha":1e-6}]
388
+ "sources":[{"type":"genape","bus":"2","S_n":10000e6,"F_n":50.0,"X_v":0.001,"R_v":0.0,"K_delta":0.001,"K_alpha":1e-6}]
388
389
  }
389
390
 
390
391
  grid = bmapu_builder.bmapu(data)
@@ -168,31 +168,67 @@ def pv_dq_ss(grid,name,bus_name,data_dict):
168
168
  C_p = np.array(data_dict['C_p'])
169
169
  D_p = np.array(data_dict['D_p'])
170
170
 
171
+ sys_p = ss_num2sym(f'p_{name}',A_p,B_p,C_p,D_p)
172
+ sys_p['dx']= sys_p['dx'].replace(sys_p['u'][0],p_s_ppc)
173
+ sys_p['z_evaluated']= sys_p['z_evaluated'].replace(sys_p['u'][0],p_s_ppc)
174
+
175
+ ### dynamic equations
176
+ grid.dae['f'] += list(sys_p['dx'])
177
+ grid.dae['x'] += list(sys_p['x'])
178
+
179
+ p_s_ppc_d = sys_p['z_evaluated'][0,0]
180
+
181
+ grid.dae['params_dict'].update(sys_p['params_dict'])
182
+
171
183
  if 'A_q' in data_dict:
172
184
  A_q = np.array(data_dict['A_q'])
173
185
  B_q = np.array(data_dict['B_q'])
174
186
  C_q = np.array(data_dict['C_q'])
175
187
  D_q = np.array(data_dict['D_q'])
176
188
 
177
- sys_p = ss_num2sym(f'p_{name}',A_p,B_p,C_p,D_p)
178
- sys_p['dx']= sys_p['dx'].replace(sys_p['u'][0],p_s_ppc)
179
- sys_p['z_evaluated']= sys_p['z_evaluated'].replace(sys_p['u'][0],p_s_ppc)
189
+ sys_q = ss_num2sym(f'q_{name}',A_q,B_q,C_q,D_q)
190
+ sys_q['dx']= sys_q['dx'].replace(sys_q['u'][0],q_s_ppc)
191
+ sys_q['z_evaluated']= sys_q['z_evaluated'].replace(sys_q['u'][0],q_s_ppc)
192
+
193
+ ### dynamic equations
194
+ grid.dae['f'] += list(sys_q['dx'])
195
+ grid.dae['x'] += list(sys_q['x'])
196
+
197
+ q_s_ppc_d = sys_q['z_evaluated'][0,0]
198
+
199
+ grid.dae['params_dict'].update(sys_q['params_dict'])
200
+
201
+ if 'A_pq' in data_dict:
202
+ A_pq = np.array(data_dict['A_pq'])
203
+ B_pq = np.array(data_dict['B_pq'])
204
+ C_pq = np.array(data_dict['C_pq'])
205
+ D_pq = np.array(data_dict['D_pq'])
206
+
207
+
208
+ sys_pq = ss_num2sym(f'pq_{name}',A_pq,B_pq,C_pq,D_pq)
180
209
 
181
- sys_q = ss_num2sym(f'q_{name}',A_q,B_q,C_q,D_q)
182
- sys_q['dx']= sys_q['dx'].replace(sys_q['u'][0],q_s_ppc)
183
- sys_q['z_evaluated']= sys_q['z_evaluated'].replace(sys_q['u'][0],q_s_ppc)
184
210
 
211
+ sys_pq['dx']= sys_pq['dx'].replace(sys_pq['u'][0],p_s_ppc)
212
+ sys_pq['dx']= sys_pq['dx'].replace(sys_pq['u'][1],q_s_ppc)
213
+ sys_pq['z_evaluated']= sys_pq['z_evaluated'].replace(sys_pq['u'][0],p_s_ppc)
214
+ sys_pq['z_evaluated']= sys_pq['z_evaluated'].replace(sys_pq['u'][1],q_s_ppc)
185
215
 
186
- p_s_ppc_d = sys_p['z_evaluated'][0,0]
187
- q_s_ppc_d = sys_q['z_evaluated'][0,0]
216
+ ### dynamic equations
217
+ grid.dae['f'] += list(sys_pq['dx'])
218
+ grid.dae['x'] += list(sys_pq['x'])
219
+
220
+ p_s_ppc_d = sys_pq['z_evaluated'][0,0]
221
+ q_s_ppc_d = sys_pq['z_evaluated'][1,0]
222
+
223
+ grid.dae['params_dict'].update(sys_pq['params_dict'])
224
+
225
+
226
+
227
+
188
228
 
189
229
  p_s_ref = sym.Piecewise((p_s_ppc_d,p_s_ppc_d<p_mp),(p_mp,p_s_ppc_d>=p_mp))
190
230
  q_s_ref = q_s_ppc_d
191
231
 
192
-
193
- ### dynamic equations
194
- grid.dae['f'] += list(sys_p['dx']) + list(sys_q['dx'])
195
- grid.dae['x'] += list(sys_p['x']) + list(sys_q['x'])
196
232
 
197
233
 
198
234
  ### algebraic equations
@@ -250,8 +286,7 @@ def pv_dq_ss(grid,name,bus_name,data_dict):
250
286
  # grid.dae['params_dict'].update({f'{str(PRampUp)}':2.5,f'{str(PRampDown)}':-2.5})
251
287
  # grid.dae['params_dict'].update({f'{str(QRampUp)}':2.5,f'{str(QRampDown)}':-2.5})
252
288
 
253
- grid.dae['params_dict'].update(sys_p['params_dict'])
254
- grid.dae['params_dict'].update(sys_q['params_dict'])
289
+
255
290
 
256
291
 
257
292
  ### outputs
@@ -434,7 +469,7 @@ def test_build():
434
469
  "K_it": 0.065,
435
470
  "N_pv_s": 23,
436
471
  "N_pv_p": 1087,
437
- # Close loop
472
+ # # Close loop
438
473
  # "A_p": [[ 2.22745959, 2.89134367],[-5.98640302, -5.13853719]],
439
474
  # "B_p":[[-2.62892537],[-3.35747765]],
440
475
  # "C_p":[[-0.53183608 ,-0.28013641]],
@@ -443,6 +478,18 @@ def test_build():
443
478
  # "B_q":[[-2.62892537],[-3.35747765]],
444
479
  # "C_q":[[-0.53183608 ,-0.28013641]],
445
480
  # "D_q":[[0.]],
481
+ # Close loop pq coupled
482
+ "A_pq": [[ 2.22745959, 2.89134367, 0.0, 0.0],
483
+ [-5.98640302, -5.13853719, 0.0, 0.0],
484
+ [ 0.0, 0.0, 2.22745959, 2.89134367],
485
+ [ 0.0, 0.0,-5.98640302,-5.13853719]],
486
+ "B_pq":[[-2.62892537, 0.0],
487
+ [-3.35747765, 0.0],
488
+ [ 0.0,-2.62892537],
489
+ [ 0.0,-3.35747765]],
490
+ "C_pq":[[-0.53183608 ,-0.28013641, 0.0, 0.0],
491
+ [ 0.0, 0.0,-0.53183608 ,-0.28013641]],
492
+ "D_pq":[[0.,0.],[0.,0.]],
446
493
  # Open loop
447
494
  # "A_p":[[ 0.33137699, 2.1000962 ], [-9.11825055, -6.20455623]],
448
495
  # "B_p":[[-3.44429742], [-5.67395313]],
@@ -453,26 +500,26 @@ def test_build():
453
500
  # "C_q":[[-0.53651084, -0.02498652]],
454
501
  # "D_q":[[0.]],
455
502
  # Open loop high order
456
- "A_p":[[ 8.38271015, -1.7571524 , 1.73425499, -1.30126187, -0.65661779, 0.19946719, -0.27419108],
457
- [ 9.21838154, 4.00099853, -7.81509434, 4.35694934, 1.93722067,-0.5469874 , 0.71654726],
458
- [-2.40905211, 2.06691677, 1.45133758, -4.4215498 , -1.4626006 , 0.3642175 , -0.44442714],
459
- [ 1.49417659, -0.95112217, 3.64830378, -0.65345492, 2.62637562,-0.48697018, 0.52522081],
460
- [ 1.76580717, -0.98874696, 2.81999399, -6.13573245, -2.77497888,-1.4733826 , 1.18610772],
461
- [-3.98772761, 2.0720406 , -5.20922579, 8.4373616 , 10.92677635,-5.37878648, -6.41515444],
462
- [ 2.15679302, -1.06505127, 2.48988235, -3.55911887, -3.43500894, 2.50096692, -9.87800368]],
463
- "B_p":[[ 0.76019693],[-1.61641228],[ 0.79263982],[-0.70153677],[-1.0642704 ],[ 2.92345721],[-1.86444729]],
464
- "C_p":[[ 0.53471062, -0.22393912, 0.43508347, -0.49268284, -0.34211526,0.13852951, -0.2621668 ]],
465
- "D_p":[[0.]],
466
- "A_q":[[ 8.38271015, -1.7571524 , 1.73425499, -1.30126187, -0.65661779, 0.19946719, -0.27419108],
467
- [ 9.21838154, 4.00099853, -7.81509434, 4.35694934, 1.93722067,-0.5469874 , 0.71654726],
468
- [-2.40905211, 2.06691677, 1.45133758, -4.4215498 , -1.4626006 , 0.3642175 , -0.44442714],
469
- [ 1.49417659, -0.95112217, 3.64830378, -0.65345492, 2.62637562,-0.48697018, 0.52522081],
470
- [ 1.76580717, -0.98874696, 2.81999399, -6.13573245, -2.77497888,-1.4733826 , 1.18610772],
471
- [-3.98772761, 2.0720406 , -5.20922579, 8.4373616 , 10.92677635,-5.37878648, -6.41515444],
472
- [ 2.15679302, -1.06505127, 2.48988235, -3.55911887, -3.43500894, 2.50096692, -9.87800368]],
473
- "B_q":[[ 0.76019693],[-1.61641228],[ 0.79263982],[-0.70153677],[-1.0642704 ],[ 2.92345721],[-1.86444729]],
474
- "C_q":[[ 0.53471062, -0.22393912, 0.43508347, -0.49268284, -0.34211526,0.13852951, -0.2621668 ]],
475
- "D_q":[[0.]],
503
+ # "A_p":[[ 8.38271015, -1.7571524 , 1.73425499, -1.30126187, -0.65661779, 0.19946719, -0.27419108],
504
+ # [ 9.21838154, 4.00099853, -7.81509434, 4.35694934, 1.93722067,-0.5469874 , 0.71654726],
505
+ # [-2.40905211, 2.06691677, 1.45133758, -4.4215498 , -1.4626006 , 0.3642175 , -0.44442714],
506
+ # [ 1.49417659, -0.95112217, 3.64830378, -0.65345492, 2.62637562,-0.48697018, 0.52522081],
507
+ # [ 1.76580717, -0.98874696, 2.81999399, -6.13573245, -2.77497888,-1.4733826 , 1.18610772],
508
+ # [-3.98772761, 2.0720406 , -5.20922579, 8.4373616 , 10.92677635,-5.37878648, -6.41515444],
509
+ # [ 2.15679302, -1.06505127, 2.48988235, -3.55911887, -3.43500894, 2.50096692, -9.87800368]],
510
+ # "B_p":[[ 0.76019693],[-1.61641228],[ 0.79263982],[-0.70153677],[-1.0642704 ],[ 2.92345721],[-1.86444729]],
511
+ # "C_p":[[ 0.53471062, -0.22393912, 0.43508347, -0.49268284, -0.34211526,0.13852951, -0.2621668 ]],
512
+ # "D_p":[[0.]],
513
+ # "A_q":[[ 8.38271015, -1.7571524 , 1.73425499, -1.30126187, -0.65661779, 0.19946719, -0.27419108],
514
+ # [ 9.21838154, 4.00099853, -7.81509434, 4.35694934, 1.93722067,-0.5469874 , 0.71654726],
515
+ # [-2.40905211, 2.06691677, 1.45133758, -4.4215498 , -1.4626006 , 0.3642175 , -0.44442714],
516
+ # [ 1.49417659, -0.95112217, 3.64830378, -0.65345492, 2.62637562,-0.48697018, 0.52522081],
517
+ # [ 1.76580717, -0.98874696, 2.81999399, -6.13573245, -2.77497888,-1.4733826 , 1.18610772],
518
+ # [-3.98772761, 2.0720406 , -5.20922579, 8.4373616 , 10.92677635,-5.37878648, -6.41515444],
519
+ # [ 2.15679302, -1.06505127, 2.48988235, -3.55911887, -3.43500894, 2.50096692, -9.87800368]],
520
+ # "B_q":[[ 0.76019693],[-1.61641228],[ 0.79263982],[-0.70153677],[-1.0642704 ],[ 2.92345721],[-1.86444729]],
521
+ # "C_q":[[ 0.53471062, -0.22393912, 0.43508347, -0.49268284, -0.34211526,0.13852951, -0.2621668 ]],
522
+ # "D_q":[[0.]],
476
523
  }]
477
524
  }
478
525