Reading the results#
hermess.simulate() returns the finished
DaeSim, which holds both the symbolic model and the
trajectories:
dae = hermess.simulate("3bus", T_end=5.0, small_signal_analysis=True)
dae.time_steps # the time grid
dae.x_full, dae.y_full # differential and algebraic trajectories
dae.grid.yf # bus voltages
dae.grid.power_flow_tables(dae) # initial power flow as two pandas DataFrames
After a run with small_signal_analysis=True:
dae.A # reduced state matrix at the operating point
dae.eigenvalues # its spectrum
dae.state_names # rows and columns of dae.A
dae.participation_table(mode=1) # participation factors of the least damped mode
dae.print_modal_report() # the same information as a text report
dae.plot_eigenvalues() # s-plane scatter
Individual devices keep their own states, so device.xf["omega"] gives the
trajectory of one state of one device.
For tables, selector-based extraction and one-line plots on top of these raw attributes, see analysis and plotting.