Commit e04a74f2 authored by jussi ikäheimo's avatar jussi ikäheimo
Browse files

Repaired boundstart for superposed nodes.

parent 0b2de1ef
......@@ -2591,6 +2591,13 @@ q_superposBoundEnd(gn_state(grid, node_superpos(node)), m)
sum(mz(m,z)$(ord(z) eq mSettings('invest', 'candidate_periods') ),
//the inter-period state at the beginning of the last candidate period
v_state_z(grid, node, z)
*
//multiplied by the self discharge loss over the period
sum(zs(z, s_),
power(1 - mSettings(m, 'stepLengthInHours')
* p_gn(grid, node, 'selfDischargeLoss'),
msEnd(m,s_) - msStart(m,s_) )
)
+
//change of the intra-period state during the representative period
sum(zs(z, s_),
......
......@@ -125,6 +125,7 @@ loop(node$(not node_superpos(node)),
// Next deal with bounds for the superposed node states
// note that boundstart is handled further below
loop(node_superpos(node),
//add here the desired bounds for v_state_z
);
......@@ -547,14 +548,18 @@ loop((mft_start(mSolve, f, t), ms_initial(mSolve, s)),
) // END loop(mft_start)
;
// If this is the very first solve, set various initial bounds for the superposed node states
if(tSolveFirst = mSettings(mSolve, 't_start'),
// state limits for normal (not superposed) nodes
loop(node_superpos(node),
// First solve, state variables (only if boundStart flag is true)
v_state_z.fx(gn_state(grid, node), z)${ p_gn(grid, node, 'boundStart') }
loop(mz(mSolve, z)$(ord(z) eq 1),
// First solve, fix start value of state variables (only if boundStart flag is true)
v_state_z.fx(gn_state(grid, node), z)${ p_gn(grid, node, 'boundStart')
and p_gnBoundaryPropertiesForStates(grid, node, 'reference', 'useConstant')
}
= p_gnBoundaryPropertiesForStates(grid, node, 'reference', 'constant')
* p_gnBoundaryPropertiesForStates(grid, node, 'reference', 'multiplier');
) //END loop mz
) //END loop node_superpos
); //END if(tSolveFirst)
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment