SimpleControlDirectly influencing a stock to keep it at setpoint value |
|
This information is part of the Business Simulation Library (BSL). Please support this work and ► donate.
SimpleControl uses a →CloseGap component to arrive (naively) at a flow that is needed to move a connected stock "under management" to a given setpoint, i.e., goal. The strength of the flow, i.e., the speed of the adjustment, is controlled by the parameter adjTime.
The control's setpoint can be provided either by a →RampInput or by an exogenous input u. In case of a ramp input the setpoint will move from initialSetpoint to finalSetpoint in linear fashion for a period given by duration starting at startTime.
The controller by default is active over the whole simulation run, but can be restricted to an on-off period using tc = TimingChoices.period and the parameters onTime and offTime.
![]() |
| hasRateOutput |
Value: false Type: Boolean Description: = true, if the rate is reported via real output connectors |
|---|---|
| tc |
Value: TimingChoices.permanent Type: TimingChoices Description: Select whether contoll is permanent or timed |
| onTime |
Value: modelSettings.modelStartTime Type: Time (s) Description: Time for component to become effective |
| offTime |
Value: modelSettings.modelTimeHorizon Type: Time (s) Description: Time for component to become ineffective |
| hasExogenousSetpoint |
Value: false Type: Boolean Description: = true, if the setpoint is to be given by an input connector |
| initialSetpoint |
Value: Type: SetpointType Description: Setpoint valid from modelStartTime to startTime |
| finalSetpoint |
Value: Type: SetpointType Description: Final setpoint valid from startTime + duration until the end of the simulation |
| startTime |
Value: modelSettings.modelStartTime Type: Time (s) Description: Start time for change of setpoint |
| duration |
Value: modelSettings.modelTimeHorizon Type: Time (s) Description: Time until final setpoint is reached |
| adjTime |
Value: 1 Type: Time (s) Description: Time constant for stock control |
| flowPort |
Type: FlowPort Description: Used to represent stock and flow connections |
|
|---|---|---|
| y |
Type: RealOutput Description: Output of current rate of flow |
|
| y1 |
Type: RealOutput Description: Output of current rate of flow |
|
| u |
Type: RealInput Description: Setpoint input for controller |
| onOff |
Type: PulseInput Description: Generate pulse or pulse-train signal of real input |
|
|---|---|---|
| permanent |
Type: ConstantConverter Description: A constant value is turned into a constant signal |
|
| setpoint |
Type: RampInput Description: Ramp input determining the setpoint |
|
| currentValue |
Type: FlowPortSensor Description: Current value of connected stock |
|
| modelSettings |
Type: ModelSettings Description: Setting important global variables within a model |
|
| rate |
Type: CloseGap Description: Rate of Change |
|
| changing |
Type: ExogenousChange Description: Flow to adjust the stock |
|
| actualRate |
Type: Product_2 Description: Actual rate, which becomes zero when control is turned off |
|
BusinessSimulation.Examples Causal loop example given by van Zijderveld (MARVEL) |