This information is part of the Business Simulation Library (BSL). Please support this work and ► donate.
The real output actualRate is
determined by checking whether the real input
indicatedRate is complying with the
restrictions signaled by a connected stock in form of the boolean
flags stopInflow and
stopOutflow. If the rate is found to
violate either flag false is returned, in all other
cases true is returned.
Functions.constrainedRateBoolean(
indicatedRateIsInflowToStock, stopInflow, stopOutflow)
Functions.constrainedRateBoolean(indicatedRate
< 0, stopInflow, stopOutflow)
Functions.constrainedRateBoolean(-5.0 < 0, stopInflow = true, stopOutflow = false); // false Functions.constrainedRateBoolean( 5.0 < 0, stopInflow = true, stopOutflow = false); // true Functions.constrainedRateBoolean(-5.0 < 0, stopInflow = false, stopOutflow = true); // true Functions.constrainedRateBoolean( 5.0 < 0, stopInflow = false, stopOutflow = true); // false
Rates are usually set by flow components and have to observe the flow-restrictions with regard to a connected stock component. By Modelica conventions a negative rate for the flow indicates an inflow with regard to the connected stock, while a positive rate indicates an outflow for the stock.
Thus, in the first example above the indicated negative rate for
a →FlowPort
would mean an outflow from the flow component and an inflow with
regard to the connected →StockPort.
Observing the flow restriction signaled by the stock
false is returned.
function constrainedRateBoolean extends BusinessSimulation.Icons.Function; input Boolean indRateIsInflow "Proposed rate is inflow to a connected stock"; input Boolean stopInflow "Signal from connected stock"; input Boolean stopOutflow "Signal from connected stock"; output Boolean useRate "= true, if the indicated rate does not violate restrictions"; end constrainedRateBoolean;
Inline = true in v2.1.0.