- none
- Fixed bug in dss parser where circuit was not being edited using the
edit
dss command - Fixed bug in eng2math functions where the voltage angle was being set incorrectly for generation assets that were set to isochronous control mode
- Fixed failing unit test "3-bus SOCConicUBF opf_bf" for Windows
- Updated minimum Julia requirement to v1.6 (LTS) #382
- Added compat for JuMP v0.23, Ipopt v1.0, SCS v1.1, PolyhedralRelaxations v0.3.3
- Dropped support for SCS 0.8 in Unit tests (0.9 no longer supports
eps
option) - Fixed bug in
remove_all_bounds!
where an||
was not enclosed in parentheses - Changed remaining instances of
Int64
toInt
for better compatibility #382 - Fixed bug in
create_solar
where kwargs were not being utilized #380 - Fixed bug in
create_storage
where datatypes were inconsistent with documentation #379 - Added check for missing
vbase
inapply_voltage_bounds!
transformation - Refactored
constraint_mc_power_balance_capc(pm::LPUBFDiagModel, ...)
to be more consistent with other versions, for easier debugging - Removed Cbc, Juniper from unit tests (not being utilized in tests)
- Removed explicit field copying from
voltage_source
math2eng solution conversion (now copies all fields) - Fixed bug in
_calc_branch_series_current_max
wherevmin_to
usedbus_fr
instead ofbus_to
#378
- Fix
variable_mc_capcontrol
keyword arguments
- Drop support for JuMP < v0.22
- Refactored functions to remove kwargs in many cases of constraints/variables
- Fixed bugs in NFAU constraints/variables
- Fixed bug where no solution would result in an error, instead of empty solution
- Fixed issue with looped edge components in ref (i.e., if f_bus==t_bus)
- Added linear relaxation of ampacity constraints (remove quadatric)
- Fixed on-off storage variable start value
- Fixed
1phase-pv
unit tests - Adjusted
sbase_default
, and added@info
if basemva from dss is the default value - Fixed storage model for powerflow validation (new test values are based directly on dss outputs)
- Added
con(pm, nw, :ohms_yt, f_idx)
to store ohms constraints - Added
constraint_mc_branch_flow
for effective zero impedance branches in Bus Injection models, includingcon(pm, nw, :branch_flow, i)
to store the constraints - Fixed broken
capcontrol
test - Fixed broken
storage
tests - Fixed
data model
unit tests - Updated to add InfrastructureModels v0.7
- Fixed wrong
kvar
instorage
dss struct - Updated default pg in solar object when parsing from dss to use pmpp and irradiance
- Fixed missing
solar
in 1-to-1 maps for eng2math - Fixed default
vad_lb
andvad_ub
increate_line
- Fixed bug in
create_voltage_source
where the voltage anglesva
were all zero - Updated storage parsing to use kva instead of kvar for qs_lb and qs_ub (storage in dss is defined to be able to handle any reactive power up to the thermal limit of the inverter)
- Fixed
make_lossless!
to adjust how switches are made lossless - Fixed voltage sqr variable start values
- Fixed p/q variable start values
- Added missing
temperature
on pvsystem - Added
configuration=WYE
to voltage sources - Fixed bug in voltage angle variable start values
- Fixed bug with case sensitve filenames by using
Glob.glob
withGlob.FilenameMatch
- Fixed bug in
constraint_mc_switch_current_limit
where voltage variables being used were wrong - Moved all
import
statements to rootPowerModelsDistribution
- Fixed bug in
_calc_transformer_current_max_frto
wheresm_ub
should have been divided byvmin
, NOTvmax
- Updates
LPUBFDiagModel
description in docs
- Fixed bug in
constraint_mc_theta_ref
where default va_ref was in wrong units - Fixed bug in call to
constraint_capacitor_on_off
wherenw
network id was not being passed - Refactored kwargs
kron_reduced
andphase_projected
to bekron_reduce
andphase_project
, respectively - Added more native support for multinetwork data structures
- Changed
"multiple references buses found"
warning to@debug
- Added multinetwork versions of data model transformation functions using
apply_pmd!
- Added
propagate_network_topology!
, a helper function to propagate the status of buses to connected components - Updated Documentation on Storage data model
- Added LPUBFDiag version of
constraint_mc_storage_thermal_limit
using PolyhedralRelaxations to relax the quadradic constraints - Fixed bug in reporting duals (typo in ampacity constraint functions) (#367)
- Changed multiconductor storage model parsing from opendss to be single values (instead of creating some multiconductor values, making assumptions about split between phases)
- Fixed
vm
,va
variable starts inACRU
andACPU
forms - Fixed boundless
LPUBFDiagModel
constraint_mc_transformer_power_yy
with controls - Fixed
ACPUPowerModel
vm
,va
variable starts - Updated
FOTPU
,FOTRU
andFBS
models for consistency with other formulations - Fixed bug in
make_lossless!
- Updated
correct_bus_types!
to be knowledgable about islands in the network data - Changed
warning
to@warn
- Added storage to
solve_mc_opf_oltc_capc
problems - Fixed bug in parsing of
null
values from JSON - Changed
cm_ub
on storage parsing tosm_ub
to be consistent with what the parsed value actually is - Fixed bug in
cm_ub
parsing on lines - Updated
constraint_mc_transformer_power_yy(pm::LPUBFDiagModel)
to be truly LP - Updated
ACRUPowerModel
voltage start value computation - Fixed bug in
dimensionalize_math
, wheresc_on
, andsd_on
were included under storage (non-dimensional values should not be scaled) - Removed
sm_ub_b
,cm_ub_b
,sm_ub_c
,cm_ub_c
from kron reduction (fields no longer exist) - Updated
make_lossless!
to make the model truly lossless, by including all line parameters - Added
adjust_transformer_limits!
to multiple transformer variable bounds - Added transformations
adjust_small_line_impedances!
,adjust_small_line_admittances!
,adjust_small_line_lengths!
, to help prune bad eng-model data - Fixed
set_time_elapsed!
multinetwork function to update"time"
and"mn_lookup"
- Added
"status"
to transformer decomposition functions - Updated
eng2math
functions to have consistent usage of"status"
from eng model - Updated
variable_mc_storage_power_mi
to have explicit kwargs - Updated
on_off
variable functions to ensure zeros are included in variable bounds - Changed
"multiple reference buses found"
warning to@info
- Added LP version of
constraint_storage_complementarity_nl
- Added PolyhedralRelaxations.jl as a dependency for relaxing quadratic and bivariate constraints
- Fixed voltage warm start in
FBSUBFModel
form - Added functions necessary for
capc
andoltc
in NFAUPowerModel - Fixed bug in
FBSUBFModel
formulation, where transformer variables were being created in their matrix form - Fixed bug in parsing of dss generator objects, which didn't take into account
pf
- Fixed
oltc
inLPUBFDiagPowerModel
, which was previously a@NLconstraint
to now use@constraint
- Fixed bug in
constraint_mc_power_balance_capc::AbstractUnbalancedACPModel
, where@smart_constraint
was failing due to missing variable - Fixed bug in
start
values for tap variables - Refactored
_calc_branch_power_max
and_calc_branch_current_max
to be more robust - Added
solve_mc_opf_oltc_capc
problem, which includes bothsolve_mc_opf_oltc
andsolve_mc_opf_capc
features - Added kwarg to
apply_voltage_bounds!
to exclude some buses - Added
adjust_line_limits!
transformation function - Added support for parsing
sm_ub
from dss to transformers (comes fromemerghkva
) - Fixed bug in
capc
problems where switches were not considered as a control element for capacitors - Fixed bug in
_create_xfmrcode
where:bus
was included in iteration - Added missing
constraint_mc_ampacity_from
andconstraint_mc_ampacity_to
constraints inopf_oltc
problems - Fixed bug in
NFAUPowerModel
formulation, wherevariable_mc_transformer_power_real
was incorrectly setting up transformer power variables - Fixed bug in
calc_voltage_bases
where if a transformer configuration was in xfmrcode, the function would error - Added data transformations
remove_line_limits!
andremove_transformer_limits!
, to remove current/power bounds on lines, linecodes, switches, and transformers - Fixed bug in
linecode
objects wherecm_ub
orsm_ub
were not being passed correctly to lines - Added capability to infer number of phases from supported dss objects
- Fixed bug in
calc_connected_components
where function signature was incorrect
- Fixed issue of missing
va
on reference buses which have been selected automatically - Fixed PVSystem fields and defaults based on latest version
- Added support for
action=normalize
on dss LoadShapes - Fixed bug in dss LoadShape where
useactual=yes
was the default, whereasuseactual=no
is the real default - Removed remaining PowerModels files / dependency from unit tests
- Changed
sbase_default
to1.0
by default, because often with default solver settings, constraints were ignored for being far too small - Changed to use emergamps from dss for
cm_ub
on lines by default (higher limit) - Fixed bug in transformer math2eng conversion where
tap
was not carried to the solution - Fixed wrong index in
constraint_mc_theta_ref
for ACRUPowerModel - Fixed Type collections; AbstractUBFModels do not necessarily have to have
w
variables, so these are explicity spelled out now - Added ampacity (current limit) constraints for branches and switches, which better reflect standard input data:
constraint_mc_ampacity_from
andconstraint_mc_ampacity_to
for branches, andconstraint_mc_switch_ampacity
for switches - Fixed bug in
bank_transformers!
function wherestatus
field was not being set correctly - Updated switch thermal constraints to store the constraints in
con(pm, nw, :mu_sm_switch, f_idx)
- Removed extraneous thermal limit constraints from power flow problem formulations
- Fixed the function signature for
variable_mc_capacitor_switch_state
andvariable_mc_capcontrol
to match conventions - Removed depreciated
run_
functions, which were replaced in withsolve_
functions in v0.10.2 - Fixed bug in
make_multinetwork!
where inferred time_elapsed was not being used - Fixed bug in
make_multinetwork!
for cases wherereplace=false
was used where we needed adeepcopy
- Added explicit neutral formulations
- Fix bug in
constraint_mc_switch_thermal_limit
where switch property name contained a typo - Fix bug in
constraint_mc_thermal_limit_from
whereInf
values inrate_a
would lead to an error - Fix bug in
correct_branch_directions!
wheref_connections
andt_connections
were not being swapped - Fix bug in
_rebase_pu_branch!
where current ratings were being non-dimensionalized with the power base instead of the current base, and added non-dimensionalization for power ratings - Fix bug in
_rebase_pu_switch!
where current ratings were being non-dimensionalized with the power base instead of the current base, and added non-dimensionalization for power ratings - The qualifier
t
was removed from the transformer solution properties, i.e.crt
->cr
, to be consistent with solution naming conventions where these qualifiers are omitted as they are contained in a transformer component dictionary, unlike the variables
- Fixed bug in eng2math conversion of buses, where the status was not correctly parsed, so
DISABLED
buses were not getting set tobus_type = 4
- Fixed bug in
apply_kron_reduction!
where not all transformers were getting kron reduced - Fixed typos in documentation
- Fixed bug in LPUBFDiagModel transformer variables
- Removed phase projection of only wye-connected transformers (left over), phase projection of delta components remains for now
- Updated time_series to affect upper real and reactive power bounds on solar objects in dss2eng parse
- Fixed bug in dss pvsystem struct where
temperature
,pmpp
, andirradiance
were the wrong type (Int
instead ofFloat64
) - Fixed bug in dss node structs, where daily was the wrong type (should be
String
, notVector{Float64}
) - Fixed bug in
_calc_branch_power_max
wherec_rating_b
was being used - Add support for storage to OPF_OLTC
- Add wye-connected CapControl for ACP, ACR, LinDist3Flow, FBS and FOT formulations
- Added storage to
correct_bus_types!
check - Updated start values for some variables to improve performance on some solvers
- Added ability for
comp_start_value
to sequentially check for a series of keys for a start value - Added FOT linear formulation in rectangular coordinate frame
- Fixed lower voltage magnitude limits for FBS linear formulation
- Fix bug where the lower and upper bound variables created in
variable_mx_hermitian
can be the wrong type - Fix bug in correct_bus_types! and eng2math functions where reference bus was being overwritten depending on the order generation objects were parsed
- Fix
calc_max_cost_index
to support multi-infrastructure data
- Fix voltage magnitude start values, by looking for
_start
values, thenvm
, thenvmin
, to ensure start values are feasible - Fix bug in
_biggest_generator
where if generator upper bound is missing,correct_bus_types!
would fail - Adds simple transformer bounds calculations in
_calc_transformer_power_ub_frto
and_calc_transformer_current_max_frto
- Updated usage of
control_mode
property on generation objects, such thatISOCHRONOUS
leads tobus_type=3
,FREQUENCYDROOP
leads tobus_type=2
, and status beingDISABLED
leads tobus_type=1
- Fixed bug in
make_solution_si
where an error would occur if the solution was empty - Fixed bug in
build_mn_mc_mld_simple(pm::AbstractUBFModel)
where call toconstraint_mc_switch_thermal_limit
was missing keyword argumentnw=n
- Added simplified linear formulation using first-order Taylor (FOT) approximation
- Added wye-connected RegControl for ACP, ACR, LinDist3Flow and FBS formulations
- Fixed typo in
transform_data_model
whereglobal_keys
should have beenglobal_keys=global_keys
- Added power variables
Pt
andQt
for transformers toAbstractUBFModels
- Updated
_add_gen_cost_model!
to have a defaultcost
vector that is[1.0, 0.0]
instead of including a redundant first0.0
- Fixed bug in eng2math functions where there was no check on generator or storage objects when assigning bus_type on their bus to see if the gen obj was enabled or disabled
- Fixed bug in
sol_data_model
for W-space models where if the optimizer allowed some small infeasibility, it was possible to have a negativew
value, which would crash when attempting to take the square-root - Added
build_solution_values
for data of typeLinearAlgebra.Symmetric{JuMP.VariableRef, Matrix{JuMP.VariableRef}}
- Fixed bug in solution builder where building a result dict would fail if there was no solution
- Added "root-level" eng2math_passthrough option
- Fixed bug where global keys were not getting passed to
_map_eng2math
function - Added support for parsing the results of dss command
export voltages
intovm_start
andva_start
values for warm starting bus voltages - Added simplified linear UBF formulation using a single iteration of forward-backward sweep (FBS)
- Added support for raw parsing of RegControl and CapControl objects from dss
- Added delta/voltage-dependent loads to LinDist3Flow formulation
- Fix bug in
_bank_transformers!
where "status" field was not being added to banked transformers - Fix bug in
identify_load_blocks
where even fixed OPEN switches were being included in a block - Fix eng2math conversion of switches, check for whether to create impedance branches was malformed
- Fix
_fix_nulls
data type conversion for vectors from JSON inputs - Fix which variables from switch impedance branches get pulled into eng solution (add series current)
- Add power variables to solution for IVRUPowerModel to switches, similar to how they're implemented for branches
- Fix missing branch variables
csr_fr
andcsi_fr
from ibase unit conversions - Fix
apply_kron_reduction!
to recalculate theconductor_ids
after the reduction - Fix bug in transformer tap variable creation, where report variable was over all transformers instead of just ones with unfixed taps
- Fix bug in current bounds calc for branches, where if c_rating_a was missing, calc would fail
- Fix bug in eng2math conversion where "is_kron_reduced" was being looked for in the wrong place
- Fix solar pg/qg bounds calculation in dss2eng parsing (needed to be
/ nphases
) - Add ability for
control_mode
on generation objects to get bus_type on connecting buses - Fix bug in function signature of
calc_voltage_bases
- Fix bug introduced when changing construction of vbases_default in settings
- Changed Gcap calculation in reactor object parsing to use own kv value, instead of system basekv
- Added control_mode and vg to gen object in vsource eng2math conversion
- Fixed bug in
apply_phase_projection_delta!
where some padding was out of order, which could pose a problem whenapply_voltage_bounds!
was used - Changed default angmin/angmax on virtual branches to +-10deg
- Fixed missing factor sqrt(nphases) from vg definition on generator and solar objects
- Fixed bug in voltage source vnom determination, and now uses basekv from vsources to populate vbases_default
- Fixed unit conversion bug in calculating the power rating of branches from current ratings, and uses emergamps first, if it exists
- Fixed typo in
_calc_connected_components_math
, where edge_type::String was used instead of edge_obj::Dict to check properties - Fixed bug in
constraint_mc_transformer_power
constraint template, wherenw
was missing from call toref
- Fixed
solve_
functions; they were missing make_pu_extensions kwargs - Fixed
_init_math_obj
, if an object is not defined in the built-in 1to1 map const, it would error - Fixed method for user-defining custom math2eng functions
- Fixed documentation for
transform_solution
- Added
iseng
andismath
helper functions - Added dss2eng_extensions, for custom user functions for dss2eng transformations
- Added eng2math_extensions, for custom user functions for eng2math transformations
- Added eng2math_passthrough, for easily passing through properties from eng2math
- Added make_pu_extensions, for custom user functions to convert additional properties to per-unit
- Added make_si_extensions, for custom user functions to convert additional variable results back to SI units
- Added dimensionalize_math_extensions, for easily specifying multiplicative factors on additional variable results for converting back to SI units
- Added global_keys, for users to easily add to global keys which making multinetworks
- Added documentation on how to add math2eng custom functions for transforming solutions back to ENGINEERING model
- Documentation overhaul, new organization, updated docstrings, Pluto notebook building
- Improve parse of ZIPV into array, and update "duty" on loads to better default
- Add support for parsing GrowthShape objects
- Miscellaneous code comment corrections
- Refactor to use Type[] instead of Vector{Type}([]) internally for easier reading of code
- Add section on
import_all
to beginners guide - Update default %cutin and %cutout to be 20.0 on pvsystem objects
- Fix
objective_mc_max_load_setpoint
to remove iteration over "conductor_ids" - Fix
constraint_mc_voltage_magnitude_bounds
to have default (0,Inf) bounds the length of "terminals", rather than 3 phases. - Updated UBF version of power flow problem to re-enable bounded=false of bus voltage variables
- Add more descriptive error message for islanded models when attempting to calculate voltage bases
- Add
check_enabled
toggle to calc_connected_components - Updated documentation to reflect correct definition of multiple buses in a vector on transformers using
bus
instead ofbuses
- Fixed bug for eng transformers in
calc_connected_components
- Removed PowerModels.jl as a dependency, porting over any remaining dependencies (breaking) [see PR #336 for complete list of functions]
- Rename the formulation type heiracrhy to include Unbalanced, or U in the names (breaking) [see PR #336 for complete list]
- Removed Memento.jl as a dependency, and added LoggingExtras, to assist in creating easy log filters for PMD via the Julia stdlib
- Added
silence!
,set_logging_level!
,reset_logging_level!
, andrestore_global_logger!
helper functions
- Added
- Upgraded to InfrastructureModels v0.6 to support multi-infrastructure models (breaking)
- Refactor multinetwork functionality, and added helper functions for better multinetwork data handling (breaking)
- Renames
build_multinetwork
kwarg tomultinetwork
- Exports
make_multinetwork
function to users - Adds
set_time_elapsed!
,sort_multinetwork!
helper functions - Updates
_pmd_eng_global_keys
and_pmd_math_global_keys
- Renames
- Refactor
ENGINEERING
data model to allow only dict typesDict{String,<:Any}
(breaking) - Refactor conductor ids types to allow only Int (breaking)
- Refactor JSON serialization to eliminate special serializers and create special data correction function for importing (breaking)
- Convert IJulia notebooks in examples to Pluto.jl notebooks for better interactivity
- Add
apply_voltage_angle_difference_bounds!
transformation function - Remove references to
dcline
- Fix
source_id
inMATHEMATICAL
model to originate fromENGINEERING
model, rather that be passed from dss
- Add wdgcurrents, core, rdcohms support on dss transformers
- Fix bug in definition of xcsarra datatype on dss transformers
- Fix bug in opendss2pmd line parser, which would error on reshape of rmatrix, xmatrix, cmatrix when explicitly grounded and those matrices defined on line and not linecode
- Fix bug in datatype guesser
_guess_dtype
- Add support for setbusxy dss command
- Fix parsing of dss matrices and arrays with mixed delimiters (i.e., mixing commas and spaces)
- Fix bug in dss parser to better support
object=
syntax - Add support for parsing of spectrum dss objects
- Docs updates
- Add support for filetype autodetection, will be slower for large files, and filetype is better to explicitly specify in those cases
- Fix overly restrictive type enforcement in parse_dss and parse_opendss from IOStream to IO
- Fix bug in parsing of properties starting with % on pvsystem and storage objects
- Fix bug in parsing of storage kva, kvar, and pf on storage objects
- Fix bug in parsing of storage power loss parameters, which were derived from values specified in percent, not decimal
- Add support for %stored to be used to derive kwhstored if not specified explicitly
- Fix bug in buscoords parser where comments at the end of the line were not stripped
- add
exclude
kwarg toremove_all_bounds!
transformation, to selectively exclude certain asset types - fix bug in IVR transformer current variables where bounds needed to be iterated over their connections to be applied
- fix bug in objective function for opf_pbs debugging problem, wrong iteration over bus terminals
- fix typo in
variable_mc_switch_current_imaginary
that overwrote real variables (crsw) - fix bug in
_map_eng2math_switch!
where vmin/vmax were taken from f_bus instead of t_bus - fix bug in
_build_eng_multinetwork
, where "dss_options" was missing from const_pmd_eng_global_keys
- change enums (SwitchState and Dispatchable) for switches to Reals, was causing problems in loops of OSW problems
- fix bug in
variable_mc_bus_voltage_magnitude_sqr
andvariable_mc_transformer_power_imaginary
where_start
values were not being iterated over per connection - depreciate run_ functions in favor of solve_
- add support for
relax_integrality
(InfrastructureModels ~0.5.4) - fix bug in
variable_mx_real
constructor where it was indexing over terminals instead of enumerates - added storage variables to automatic unit conversion to si units on math2eng transformation
- Fix buspairs ref not getting built
- Fix bug in storage linear constraints and mixed integer variable instantiation
- Add support for ideal (lossless) switches
- Fix bug in handling of dss edit command
- Fix bug in correctly tracking current transformer winding
- Fixes bug in assignment of variables' start values over active conductors/connections
- Refactor variables, constraints, objectives to support iterating over arbitrary connections/terminals (breaking)
- Add
ref_add_connections!
that adds lists of connections to ref for each component (breaking) - Rename constraint and variable functions to better match PowerModels conventions (breaking)
- variable_mc_gen_power_setpoint -> variable_mc_generator_power
- variable_mc_gen_power_setpoint_on_off -> variable_mc_generator_power_on_off
- constraint_mc_gen_setpoint -> constraint_mc_generator_power
- constraint_mc_slack_power_balance -> constraint_mc_power_balance_slack
- constraint_mc_shed_power_balance -> constraint_mc_power_balance_shed
- constraint_mc_load_power_balance -> constraint_mc_power_balance
- variable_mc_load_setpoint -> variable_mc_load_power
- constraint_mc_load_setpoint -> constraint_mc_load_power
- Updates objective function for MLD problem (breaking)
- Add
correct_mc_voltage_angle_differences
,correct_mc_thermal_limits
- Removed support for JuMP < v0.21 (breaking)
- Overrides
_objective_min_fuel_cost_polynomial_linquad
from PowerModels to support arbitrary connections on generators - Updated solution building functions to automatically parse arbitrarily-sized vectors of variables into solutions
- Changed
Array{...,1}
toVector{...}
andArray{...,2}
toMatrix{...}
- Removes phase projection by default, but keeps phase projection for delta connected components for now (breaking)
- Adds
apply_phase_projection_delta!
to project phases of delta connected components - Fixes grounding logic for generator and solar objects
- Fixes bug in parsing of file paths on windows in redirect/compile dss commands
- Adds multiconductor version of the OPF objective function
objective_mc_min_fuel_cost
- Update publication in README
- Fixes bug in json parser (typo)
- Fixes bug in dss parser that skips some files with same names as previously parsed files
- Fix bug in buscoords parser to support more valid buscoords files
- Fix bug in parse_json(::String) which passed additional unused argument to parse_json(::IO)
- Add possibility to give vm_start in variable_mc_voltage for ivr and acr formulations
- Remove leftover code that was causing a warning on import, but was not breaking the implementation
- Add multinetwork MLD and OPF problem specifications
- Add support for storage components and mld problem in ACR formulation
- Add storage variables and constraints to OPF, PF, and MLD problems
- Fix bug in
con
mapping in power balance constraints where an array was expected - Fix bug in
constraint_mc_shed_power_balance
where Gt, Bt were not defined - Fix bug in the status of virtual branches created from switches where the status of the switch was not taken into account, only the state
- Fix bug in transformer parsing where
status
wasn't being included - Fix constraint for PV buses, which were attempting to be applied in places where
vm
was not specified - Fix bug in type enforcement of
map
argument intransform_solution
- Fix storage parsing including unit conversion and inclusion of time_elapsed from the root level
- Add wye-wye and delta-wye constraints to LPUBFDiagModel formulation
- Fix typo in ivr formulation line 548, was var(pm, nw, :crg_bus, id) now is var(pm, nw, :cig_bus, id)
- Fix missing / incorrect type of some properties on lines in opendss parser (#290)
- Fix connections-determining-code on solar and storage objects to generator object syntax (#291)
- Refactors Kron reduction and padding transformations out of eng2math into their own transformation functions (#287)
- Add functionality of run_mc_mld_bf to run_mc_mld via multiple dispatch
- Fixes inconsistency of connections on MATHEMATICAL components, in particular, virtual objects (#280)
- Add a transformation remove_all_bounds! that removes all fields ending in _ub and _lb (#278)
- Add missing connections for virtual generator at voltage source
- Fix pu conversion bus voltage bounds and add parsing for vm_pair_lb and vm_pair_ub
- Add CONTRIBUTING.md
- Add pull request template
- Add Pull Request Checks (Github Actions), to inform developers of potentially missing aspects of their PR
- Store references for power balance constraints
- Add
instantiate_mc_model
to aid in building JuMP model from ENGINEERING data model - SDP and SOC relaxations were broken but are fixed again (unit tests added)
- Remove
run_mc_opf_iv
,run_mc_opf_bf
,run_mc_opf_bf_lm
,run_mc_pf_bf
,run_mc_pf_iv
, these can be accessed by using the correct formulation withrun_mc_opf
andrun_mc_pf
- Add support for Memento 1.1
- Add support for PowerModels v0.17 (breaking)
- Add support for InfrastructureModels v0.5
- Updates JSON parser to handle enum (
"data_model"
values) - Adds some commonly used InfrastructureModels and PowerModels functions as exports
- Adds model building functions
add_{component}!
to aid in building simple models for testing (experimental) - Add
run_mc_model
(addsref_add_arcs_transformer!
to ref_extensions, and setsmulticonductor=true
by default) (breaking) - Rename
ref_add_arcs_trans
->ref_add_arcs_transformer
(breaking) - Update
count_nodes
, now counts source nodes as well, excludes _virtual objects - Change _PMs and _IMs to _PM, _IM, respectively
- Add example for PowerModelsDistribution usage (see Jupyter notebooks in
/examples
) - Update transformer mathematical model
- Introduce new data models: ENGINEERING, MATHEMATICAL (see data model documentation) (breaking)
- Update DSS parser to be more robust, and parse into new format (breaking)
- Updates DSS paser to parse more options/commands, moves these into
"options"
dict (breaking) - Updates how dss
like
is applied to better match opendss (almost all properties are copied with like) (breaking) - Add support for new OpenDSS components (loadshape, xfmrcode, xycurve)
- Add support for JuMP v0.22 (exports
optimizer_with_attributtes
by default) - Add support for PowerModels v0.16 (breaking)
- Add support for Memento v0.13, v1.0
- Update to support JuMP v0.21
- Makes bounds optional, turned on by default (#250)
- Updated transformer data model in the mathematical model (#250)
- Add automatic parsing of lon,lat from buscoords file into PowerModelsDistribution data structure (#245, #249)
- Updates virtual_sourcebus, which is intended to represent a voltage source, to have a fixed voltage magnitude (#246,#248)
- Add parsing of series data files into array fields in OpenDSS parser
- Add LoadShape parsing to OpenDSS parser (#247)
- The pf and opf problem specifications now contain delta connected, and voltage-dependent load models by default; pf_lm and opf_lm were removed.
- Generators can now also be connected in both delta and wye.
- The delta/voltage-dependent loads in the ACP power models were refactored to be consistent with the new ones.
- The non-linear formulations now support matrix shunts.
- A current-voltage (IVR) formulation was added, and supports all features that ACP supports as well.
- Several power balance constraints now require NLconstraints because the load power/current can contain a NLexpression. This might be optimized further in the future if it leads to performance issues.
- Update solution building infrastructure (PowerModels #77) (breaking). The reported solution is now consistent with the variable space of the formulation.
- Moved multi-conductor support from PowerModels into PowerModelsDistribution. (breaking)
- PowerModels.var no longer takes conductor as an argument
- Constraints have been (partially) re-written to use vectorized JuMP syntax where possible.
- Bugfixes: generator on-off and storage on-off constraints were incorrect
- Removal of SOCWRPowerModel
- Drop support for matpower format
- Possible regressions in MLD problem types
- Simplified linear UBF formulations. LPLinUBFModel and LPdiagUBFModel are equivalent, and are replaced by LPUBFDiagModel. The more popular name 'LinDist3FlowModel' was added as an alias for LPUBFDiagModel.
- The linearization by Gan & Low is also equivalent to LPUBFDiagModel, though it has redundudant variables and equations. LPfullUBFModel is now implemented as an alias of LPUBFDiagModel, 'LPUBFFullModel'.
- Updates function names for PowerModels v0.14 compatibility (breaking) (#194)
- Fixed bug with new default SCS settings causing tests to fail (#190)
- Changed unit test '5-bus independent radial different sdpubf opf_bf', testing vm instead of qg
- Added exponential load models, including convex relaxations
- Refactored branch flow relaxations
- Added helper functions for creating matrix variables
- Cleaned up the transformer/oltc methods, including ACP formulation
- added
rate_a
setting to virtual lines (#185, #186)
- Adds
count_nodes
function to count the number of nodes in a parsed network (#183) - Exports
find_bus
andfind_component
functions for better user experience (#183) - Fixed
solution_bf!
for branch flow solution building (#182) - Refactored problem definitions to remove any explicit loops over conductors (#181)
- Added data format documentation (#180)
- Moved storage to main MLD and OPF problems (#179)
- Refactor to remove dcline variables and constraints (#179)
- Refactor to genericize
constraint_mc_power_balance
(#179) - Fix bug in OpenDSS circuit initialization (vsource) (#178)
- Make current rating (c_rating_a|b|c) be the default on branches (breaking)
- Fix bug in transformer
ref
extension where all refs were not built for allnw
in multinetworks (#171) - Fix bug in OpenDSS parser where properties were not applied in the order they were received (#170)
- Rename "trans" in data and ref to
transformer
for component naming consistency (breaking) (#169) - Change internal variable and constraint functions to loop over phases internally (breaking) (#168)
- Fix bug in OpenDSS parser on Lines where the connected phases are listed out of order (#167)
- Add ability to "bank" single phase OpenDSS transformers into a single multiphase transformer (#166)
- Add virtual line to sourcebus to model source impedance (#165)
- Update to JuMP v0.20 / MOI v0.9 (#164)
- Fix bug in OpenDSS parser on Lines / Linecodes related to basefreq (#163)
- Fix bug in OpenDSS parser on Transformers (#162)
- Fix bug in OpenDSS parser on Lines where
switch=y
property is used (#161) - Update Formulation types to follow PowerModels v0.13 conventions (breaking) (#160)
- Fix bug in OpenDSS parser on Capacitors (#158)
- Add support for full matrix line shunts (#153)
- Add continuous load shedding problem (mld)
- Enforce function naming conventions (starts with
_
: internal function; ends with!
: transforms data;correct_
: corrects network data;check_
: warnings about network data) (breaking) - Update for PowerModels.jl v0.12 (breaking)
- Enforce constraint/variable naming conventions to include
_tp
(breaking) - Add automatic export of non-internal functions (all functions not prefixed with
_
) - Enforce function naming conventions (starts with
_
: internal function; ends with!
: transforms data;correct_
: corrects network data;check_
: warnings about network data)
- First version of PowerModelsDistribution.jl
- Final version of ThreePhasePowerModels.jl before name change to PowerModelsDistribution.jl (adds depreciation warnings)
- Allow for arbitrarily named sourcebus
- Add json parser
- Add support for additional load models (constant power, constant impedance, constant current; delta or wye connected) (#127)
- Fix bug in OpenDSS parse of Capacitors [zbase factor and wrong sign] (#138)
- Add voltage balance constraints (#129)
- Update to JuMP v0.19/MathOptInterface
- Add transformer support to active power only models
- Fix bug in source_ids of new components created for transformer support
- Add transformer to TPPM: wye and delta windings, vector group variations (indirectly) and variable taps per phase with bounds
- Add ACPForm for transformers
- Add transformer parsing to OpenDSS, including mapping of loss model
- Add voltage base calculation, and corresponding change of base
- Add AC rectangular formulation
- Remove support for Julia versions < 1.0
- Switch to using
import
instead ofusing
internally
- Minor fix to OpenDSS line parsing (length units mismatch with linecode)
- Update to PowerModels v0.9
- Add opf with multi-phase storage model
- Add support for parsing OpenDSS Storage objects
- Minor fix to branch parsing in matlab format
- Minor fix to OpenDSS parser (parsing ~ lines with preceeding whitespace)
- Fixed parsing OpenDSS files containing redirect/compile/buscoords on case-sensitive filesystems
- Add 'source_id' field to components parsed from OpenDSS, to help determine origin and active phases
- Add conversion of OpenDSS PVSystem objects into generators, using KVA for generator limits
- Add compatibility for Julia v0.7/v1.0
- Add support for network flow approximation formulation, NFAUPowerModel
- Updates to problem specifications
- Update tests for SCS v0.4
- Minor improvements to OpenDSS parser
- Added a variety of matrix-based branch flow formulations
- Updated LPLinUBFForm to more closely match published refrence model
- Update MINLP solvers used in testing
- Added basic docs setup
- Minor improvements to OpenDSS parser #29, #59, #62, #63, #64, #65
- Initial release