Releases: CURENT/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.
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 packagepsutilneeds to be installed. - Use of
Selectoris deprecated.
If you installed ANDES in the development mode, you might need to install psutil manually.
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.
Seeandes/utils/snapshot.py. -
Compiled numba code is always cached.
-
Bug fixes.
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.
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.
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.
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 forcvxopt
to bring KLU to Windows (and other platforms).
v1.2.1
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.
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.