Transient Problem Specifications
Optimal Gas Flow
The transient optimal gas flow problem optimizes a linear combination of the total compressor power and the total load shed in the system subject to the time-varying pipeline dynamics modeled as ordinary-differential equations (ODEs), discretized using Backward Euler scheme. The readers are referred to this paper or its (arxiv version) for a derivation of the ODEs. Also, note that the Optimal Gas Flow problem currently can work with only time-periodic time-series data. If the data is not time-periodic, then GasModels will try to fit a time-periodic spline to the data and then run the transient optimal gas flow problem.
Model
GasModels.build_transient_ogf — FunctionBuilds the transient optimal gas flow Nonlinear problem
Variables
GasModels.variable_density — Functionvariables associated with density (transient)
GasModels.variable_compressor_flow — Functionvariables associated with compressor mass flow (transient)
GasModels.variable_pipe_flux — Functionvariables associated with pipe flux (transient)
GasModels.variable_c_ratio — Functionvariables associated with compression ratio (transient)
GasModels.variable_injection — Functionvariables associated with injection in receipts (transient)
GasModels.variable_withdrawal — Functionvariables associated with withdrawal in deliveries (transient)
GasModels.variable_transfer_flow — Functionvariables associated with net withdrawal in transfers (transient)
Expressions
The following linear and non-linear expressions are created by the formulation for ease of formulating the constraints
GasModels.expression_density_derivative — Functiondensity derivative
GasModels.expression_net_nodal_injection — Functionnet nodal injection
GasModels.expression_net_nodal_edge_out_flow — Functionnet nodal edge flow out
GasModels.expression_non_slack_affine_derivative — Functionnon slack affine derivative
GasModels.expression_compressor_power — Functioncompression power
Constraints and Constraint Templates
GasModels.constraint_slack_junction_density — FunctionConstraint: fixing slack node density value
Template: fixing slack node density value
GasModels.constraint_slack_junction_mass_balance — FunctionConstraint: slack junction mass balance
Template: slack junction mass balance
GasModels.constraint_non_slack_junction_mass_balance — FunctionConstraint: non-slack junction mass balance
Template: non-slack junction mass balance
GasModels.constraint_pipe_physics_ideal — FunctionConstraint: pipe physics with an ideal gas assumption
Template: pipe physics with ideal gas assumption
GasModels.constraint_compressor_physics — FunctionConstraint: compressor physics
Template: compressor physics
GasModels.constraint_compressor_power — FunctionConstraint: compressor power
Template: compressor power
GasModels.constraint_transfer_separation — FunctionConstraint: aggregate withdrawal at transfer points computation
Objective
Three types of objectives are supported by the transient OGF problem (i) a load shedding objective, (ii) a compressor power objective, and (iii) a linear combination of both controlled by the optional argument economic_weighting in the Matlab static file.
GasModels.objective_min_transient_load_shed — Functionminimum load shedding objective for transient OGF problem
GasModels.objective_min_transient_compressor_power — Functionminium compressor power objective for transient OGF problem
GasModels.objective_min_transient_economic_costs — Functiontransient objective for minimizing a linear combination of compressor power and load shed