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