Recent Releases of andes
andes - v1.6.2
Interoperability:
- Added interoperability modules for MATPOWER (through Oct2Py), pandapower (@jinningwang ) and pypowsybl.
- Added Examples and API reference for the interoperability module.
- Improved the setup script to support extra dependencies. The following extras
groups are supported:
devandinterop. See :ref:Install_extrasfor more information. - Added tests for power flow calculation against MATPOWER.
Others:
- Added a shorthand command
andes.system.example()to return a disposable system. It can be useful for quick prototyping. - Improved the formatting and navigation of Model references.
- Models store the base values for per-unit conversion in
Model.bases.
- Python
Published by cuihantao almost 4 years ago
andes - v1.5.9
This is a minor release mostly bug fixes.
- Renamed
REGCVSGtoREGCV1andREGCVSG2toREGCV2. - Added an alias list for model names. See
models/__init__.py. - Added PLL1, a simple PLL model.
- Multiprocessing now executes on all CPUs that are physical, instead
of logical. A new package
psutilneeds to be installed. - Use of
Selectoris deprecated.
If you installed ANDES in the development mode, you might need to install psutil manually.
- Python
Published by cuihantao about 4 years ago
andes - v1.5.2
As always, if ANDES was updated using git pull, please run python -m pip install -e . in the ANDES source code repository to ensure dependencies are up to date.
- Removed
CVXOPTdependency. Removed
__zerosand__onesas they are no longer needed.Added
andes prep -cto precompile the generated code.Added utility functions for saving and loading system snapshots. See
andes/utils/snapshot.py.Compiled numba code is always cached.
Bug fixes.
- Python
Published by cuihantao over 4 years ago
andes - v1.5.0
ANDES 1.5.0 boasts performance improvement as much as 30%. All generated numerical code can be compiled just-in-time using numba.
Details are as follows:
- Support numba just-in-time compilation of all equation and Jacobian calls.
This option accelerates simulations by up to 30%. The acceleration is visible in medium-scale systems with multiple models. Such systems involve heavy function calls but rather a moderate load for linear equation solvers. The speed up is less significant in large-scale systems where solving equations is the major time consumer.
Numba is required and can be installed with pip install numba or
conda install numba.
To turn on numba for ANDES, in the ANDES configuration under [System],
set numba = 1 and numba_cache = 1.
The just-in-time compilation will compile the code upon the first execution based on the input types.
When the compilation is triggered, ANDES may appear frozen due to the compilation lag.
The option numba_cache = 1 will cache compiled machine code, so that
the compilation lag only occurs once until the next andes prep.
Thanks to the maintainers and contributors of SymPy for the hotfixes for the generated code of Piecewise.
@asmeurer @ThePauliPrinciple and @oscarbenjamin.
- Allow
BackRefto populate to models throughGroup.
When model A stores an IdxParam pointing to a group, if BackRef
with the name A are declared in both the group and the model,
both BackRef will retrieve the backward references from model A.
- Allow
BaseVarto accept partial initializations.
If BaseVar.v_str_add = True, the value of v_str will be added in place
to variable value.
An example is that the voltage compensator sets part of the input voltage, and
the exciter reads the bus voltage. Exciter has v.v_str_add = True so that
when compensators exist, the input voltage will be bus voltage (vbus) plus
(Eterm - vbus).
If no compensator exists, the exciter will use bus voltages and function as expected.
- Added reserved variable names
__onesand__zerosfor ones and zeros with a length equal to the device number.
__ones and __zeros are useful for vectorizing choicelist
in Piecewise functions.
- Python
Published by cuihantao over 4 years ago
andes - v1.4.4
This is a stable version of ANDES 1.4. Notable improvements include:
- code generation
andes prepis now about 4 times faster on a multi-core machine (thanks to multiprocessing) - V- and f-based protection models for distributed energy resources (developed by Jinning Wang @jinningwang, thanks to the support from Dr. Xin Fang with NREL @xfangnrel)
- overhaul of the eigenvalue analysis routine
Note that dill support is deprecated and will be removed in v1.5. If you do not recall using calls.pkl at all, you will not be affected.
- Python
Published by cuihantao over 4 years ago
andes - v1.3.0
- Allow
Statevariable setcheck_init=Falseto skip initialization test. One use case is for integrators with non-zero inputs (such as state-of-charge integration). - Solves power flow for systems with multiple areas, each with one Slack generator.
- Added
Jumperfor connecting two buses with zero impedance. REGCA1and synchronous generators can take power ratio parametersgammapandgammaq.- New models:
IEESGOandIEEET1,EXAC4. - Refactored exciters, turbine governors, and renewable models into modules.
- Python
Published by cuihantao about 5 years ago
andes - v1.2.2
New Models:
PVD1model, WECC distributed PV model. Supports multiple PVD1 devices on the same bus.- Added
ACEcmodel, ACE calculation with continuous freq.
Changes and fixes:
- Renamed
TDS._itm_steptoTDS.itm_stepas a public API. - Allow variable
sys_f(system frequency) in equation strings. - Fixed ACE equation. measurement.
- Support
kvxoptas a drop-in replacement forcvxoptto bring KLU to Windows (and other platforms).
- Python
Published by cuihantao over 5 years ago
andes - v1.1.0
- Defaulted
BaseVar.diag_epstoSystem.Config.diag_eps. - Added option
TDS.config.g_scaleto allow for scaling the algebraic mismatch with step size. - Added induction motor models
Motor3andMotor5(PSAT models). - Allow a PFlow-TDS model to skip TDS initialization by setting
ModelFlags.tds_initto False. - Added Motor models
Motor3andMotor5. - Imported
get_caseandlist_casesto the root package level. - Added test cases (Kundur's system) with wind.
Added Generic Type 3 wind turbine component models:
- Drive-train models
WTDTA1(dual-mass model) andWTDS(single-mass model). - Aerodynamic model
WTARA1. - Pitch controller model
WTPTA1. - Torque (a.k.a. Pref) model
WTTQA1.
- Python
Published by cuihantao over 5 years ago
andes - v1.0.8
New features and models:
- Added renewable energy models
REECA1andREPCA1. - Added service
EventFlagwhich automatically calls events if its input changes. - Added service
ExtendedEventwhich flags an extended event for a given time. - Added service
ApplyFuncto apply a numeric function. For the most cases where one would needApplyFunc, consider usingConstServicefirst. - Allow
selftest -qfor quick selftest by skipping codegen. - Improved time stepping logic and convergence tests.
- Updated examples.
Default behavior changes include:
andes preparenow takes three mutually exclusive arguments,full,quickandincremental. The command-line now defaults to the quick mode.andes.prepare()still uses the full mode.Model.s_updatenow evaluates the generated and the user-provided calls in sequence for each service in order.- Renamed model
REGCAU1toREGCA1.
- Python
Published by cuihantao over 5 years ago
andes - v0.9.3
This version contains bug fixes and performance tweaks.
- Fixed an
AntiWindupissue that causes variables to stuck at limits. - Allow
TDS.run()to resume from a stopped simulation and run to the new end time inTDS.config.tf. - Improved TDS data dump speed by not constructing DataFrame by default.
- Added tests for
kundur_full.xlsxandkundur_aw.xlsxto ensure results are the same as known values.
- Python
Published by cuihantao almost 6 years ago
andes - v0.9.1
This version accelerates computations by about 35%.
- Models with flag
collate=False, which is the new default, will slice DAE arrays for all internal vars to reduce copying back and forth. - The change above greatly reduced computation time.
For
kundur_pss.xlsx, simulation time is down from 2.50 sec to 1.64 sec. - The side-effects include a change in variable ordering in output lst file. It also eliminated the feasibility of evaluating model equations in parallel, which has not been implemented and does not seem promising in Python.
- Separated symbolic processor and documentation generator from Model into
SymProcessorandDocumenterclasses. andes preparenow shows progress in the console.- Store exit code in
System.exit_codeand returns to system when called from CLI. - Refactored the solver interface.
- Patched Config.check for routines.
- SciPy Newton-Krylov power flow solver is no longer supported.
- Patched a bug in v0.9.0 related to
dae.Tf.
- Python
Published by cuihantao almost 6 years ago
andes - v0.8.8
This update contains a quick but significant fix to boost the simulation speed by avoiding calls to empty user-defined numerical calls.
- In
Model.flagsandBlock.flags, addedf_num,g_numandj_numto indicate if user-defined numerical calls exist. - In
Model.f_update,Model.g_updateandModel.j_update, check the above flags to avoid unnecessary calls to empty numeric functions. - For the
kundur_pss.xlsxcase, simulation time was reduced from 3.5s to 2.7s.
- Python
Published by cuihantao almost 6 years ago
andes - v0.8.7
- Changed
RefParamto a service type calledBackRef. - Added
DeviceFinder, a service type to find device idx when not provided.DeviceFinderwill also automatically add devices if not found. - Added
OptionalSelect, a service type to select optional parameters if provided and select fallback ones otherwise. - Added discrete types
Derivative,Delay, andAverage, - Implemented full IEEEST stabilizer.
- Implemented COI for generator speed and angle measurement.
- Python
Published by cuihantao almost 6 years ago
andes - v0.8.6
This release contains important documentation fixes and two new blocks.
- Fixed documentations in
andes docto address a misplacement of symbols and equations. - Converted all blocks to the division-free formulation (with
dae.zfrenamed todae.Tf). - Fixed equation errors in the block documentation.
- Implemented two new blocks: Lag2ndOrd and LeadLag2ndOrd.
- Added a prototype for IEEEST stabilizer with some fixes needed.
- Python
Published by cuihantao almost 6 years ago
andes - v0.8.5
- Converted the differential equations to the form of
T \dot{x} = f(x, y), where T is supplied tot_constofState/ExtState. - Added the support for Config fields in documentation (in
andes docand on readthedocs). - Added Config consistency checking.
- Converted
Model.idxfrom a list toDataParam. - Renamed the API of routines (summary, init, run, report).
- Automatically generated indices now start at 1 (i.e., "GENCLS_1" is the first GENCLS device).
- Added test cases for WECC system. The model with classical generators is verified against TSAT.
- Minor features:
andes -v 1for debug output with levels and line numbers.
- Python
Published by cuihantao almost 6 years ago
andes -
Version 0.6.9 is the last version for the numeric-only modeling framework.
This version will not be updated any more. But, models, routines and functions will be ported to the new version.
- Python
Published by cuihantao about 6 years ago