blockFirstOrderStockAdjustment
Maintain a stock at a desired level
Extends from Interfaces.PartialConverters.Policy_SO (Policy Block (Decision Making/Controller)).
Information
This information is part of the Business Simulation Library (BSL). Please support this work and ► donate.
The output y indicates the rate of inflow required to keep a stock at a desired level. The (perceived) outflow from the stock will be replaced immediately to keep the stock at its current level, while the gap between the current level and the desired level will be closed using a →CloseGap component.
Limitations
- The output y can become negative to adjust the stock to a lower level; one needs to be careful in that case with using this value as we cannot always drain a stock in a production process in the same way that we fill it.
Notes
- While often modelers simply adjust the outflow from a stock that is controlled by this component to
u_outflowone should be aware of the fact, that in reality there will likely be a perception lag which may be modeled by a →Smooth or a more elaborate structure. - Filling the stock under control may not be possible without delay, so the modeler may with to explicitly model a supply chain with explicit delays instead of connecting the output to an immediate inflow.
- See [6, pp. 38-39] or Jim Hines' Molecules of Structure website (→First Order Stock Adjustment) for more details on the use of this structure in system dynamics.
See also
Parameters
| Type | Name | Default | Description |
|---|---|---|---|
| Time | adjTime | 1 | Time constant for the adjustment to the desired level (optional) |
| OutputType | maxRate | inf | Maximum rate feasible (clippedRate.maxValue) |
| Structural Parameters | |||
| Boolean | hasConstantAdjTime | true | = true, if adjustment time is to be given by a constant parameter |
| Boolean | clipOutput | false | = true, if the indicated rate is to clipped to not exceed limitations |
| Advanced | |||
| Boolean | strict | true | = true, if strict limits with noEvent(..) (constantLimiter.strict) (clip1.strict) |
| LimiterHomotopy | homotopyType | LimiterHomotopy.Linear | Simplified model for homotopy-based initialization (clip1.homotopyType) |
Connectors
| Type | Name | Default | Description |
|---|---|---|---|
| Interfaces.Connectors.RealInput | u_reference | Desired or reference amount in the stock under control | |
| Interfaces.Connectors.RealInput | u_current | Current amount in the stock under control | |
| Interfaces.Connectors.RealInput | u_outflow | Current outflow from the stock under control | |
| Interfaces.Connectors.RealInput | u_adjTime | Variable time for adjustment (optional) |
Components
| Type | Name | Default | Description |
|---|---|---|---|
| RealOutput | y (from Policy_SO) | Policy output signal | |
| ModelSettings | modelSettings |