Skip to content

Releases: CURENT/andes

v1.6.2

27 Mar 17:07
Compare
Choose a tag to compare

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: dev and interop. See :ref:Install_extras for
    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

31 Jan 18:36
9281c39
Compare
Choose a tag to compare

This is a minor release mostly bug fixes.

  • Renamed REGCVSG to REGCV1 and REGCVSG2 to REGCV2.
  • 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 psutil needs to be installed.
  • Use of Selector is deprecated.

If you installed ANDES in the development mode, you might need to install psutil manually.

v1.5.2

29 Oct 04:15
60c64ab
Compare
Choose a tag to compare

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 CVXOPT dependency.

  • Removed __zeros and __ones as they are no longer needed.

  • Added andes prep -c to 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.

v1.5.0

14 Oct 01:44
236b596
Compare
Choose a tag to compare

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 BackRef to populate to models through Group.

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 BaseVar to 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 __ones and __zeros for 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

06 Oct 15:26
a89bfbd
Compare
Choose a tag to compare

This is a stable version of ANDES 1.4. Notable improvements include:

  • code generation andes prep is 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

21 Feb 02:56
efd17d2
Compare
Choose a tag to compare
  • Allow State variable set check_init=False to 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 Jumper for connecting two buses with zero impedance.
  • REGCA1 and synchronous generators can take power ratio
    parameters gammap and gammaq.
  • New models: IEESGO and IEEET1, EXAC4.
  • Refactored exciters, turbine governors, and renewable models
    into modules.

v1.2.2

01 Nov 23:08
518ab41
Compare
Choose a tag to compare

New Models:

  • PVD1 model, WECC distributed PV model.
    Supports multiple PVD1 devices on the same bus.
  • Added ACEc model, ACE calculation with continuous freq.

Changes and fixes:

  • Renamed TDS._itm_step to TDS.itm_step as a public API.
  • Allow variable sys_f (system frequency) in equation strings.
  • Fixed ACE equation.
    measurement.
  • Support kvxopt as a drop-in replacement for cvxopt
    to bring KLU to Windows (and other platforms).

v1.2.1

11 Oct 21:36
5d0885a
Compare
Choose a tag to compare
  • Renamed models.non_jit to models.file_classes.
  • Removed models/jit.py as models have to be loaded and instantiated
    anyway before undill.
  • Skip generating empty equation calls.

v1.1.0

01 Sep 18:02
Compare
Choose a tag to compare
  • Defaulted BaseVar.diag_eps to System.Config.diag_eps.
  • Added option TDS.config.g_scale to allow for scaling the
    algebraic mismatch with step size.
  • Added induction motor models Motor3 and Motor5 (PSAT models).
  • Allow a PFlow-TDS model to skip TDS initialization by setting
    ModelFlags.tds_init to False.
  • Added Motor models Motor3 and Motor5.
  • Imported get_case and list_cases to 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) and WTDS
    (single-mass model).
  • Aerodynamic model WTARA1.
  • Pitch controller model WTPTA1.
  • Torque (a.k.a. Pref) model WTTQA1.

v1.0.8

29 Jul 20:17
Compare
Choose a tag to compare

New features and models:

  • Added renewable energy models REECA1 and REPCA1.
  • Added service EventFlag which automatically calls events
    if its input changes.
  • Added service ExtendedEvent which flags an extended event
    for a given time.
  • Added service ApplyFunc to apply a numeric function.
    For the most cases where one would need ApplyFunc,
    consider using ConstService first.
  • Allow selftest -q for quick selftest by skipping codegen.
  • Improved time stepping logic and convergence tests.
  • Updated examples.

Default behavior changes include:

  • andes prepare now takes three mutually exclusive arguments,
    full, quick and incremental. The command-line now defaults
    to the quick mode. andes.prepare() still uses the full mode.
  • Model.s_update now evaluates the generated and the
    user-provided calls in sequence for each service in order.
  • Renamed model REGCAU1 to REGCA1.