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.