Click or drag to resize

DHI.Mike1D.ControlModule Namespace

The control module is a generic module capable of controlling various quantities as e.g. gate levels in gate structures. The control is implemented by a state machine, where conditions and actions utilize generic expressions from DHI.Math.Expression.
Classes
  ClassDescription
Public classAction
Base implementation of an IAction, containing the Id and strategyId for the action.
Public classActionActivate
Simple class that calls a setter with no arguments when implemented
Public classActionChange
Action that will change the value of controlled item with the value of ValueExpression.
Public classActionNoOperation
Action that does nothing.

See also ActionUnchanged for the difference between this and the ActionUnchanged.

Public classActionPID
Action to set a value (via Action.ValueSetter) based on an input expression. Optinally, the value can be multiplied by the value of OutExpressionFactor, before the value is passed on to the value setter.
Public classActionSet
Action that will set the value of the ValueExpression to the controlled item.
Public classActionSetBase
Base class for actions using the ActionControl method for implementing an action.

It contains methods for getting values of the controlled item and updating the controlled item.

Public classActionTargetDescription
Description of the target of an action
Public classActionUnchanged
Action that, when activated, will read the current control value (CurrentControlValueGetter) and set that to the controlled item as the new target value.

In case the control has another target value and is has not yet reached the target (because of a velocity limitation or similar) but is moving towards that target, this action will stop that process, by resetting the target value to the current value.

Compared to the ActionNoOperation, the ActionNoOperation will not do anything, hence if the control is approaching a target value, it will continue do so. If the control is not in the move, there will be no difference between ActionNoOperation and this ActionUnchanged.

Public classActionWith2Setters
Control action with two setters. The second setter, ValueSetter2, is secondary in the sense that ValueSetter can depend on the values that are set by ValueSetter2. In other words ValueSetter2 is called first. The thinking is that ValueSetter is still the main control function.
Public classControlData
Control Data object, specifying a number of controls in the form of state machines and states with actions.
Public classControlExtensions
Extension methods for classes in the ControlModule namespace
Public classControlStateMachine
State machine used for applying different actions to the setup.

The Control State Machine implements a finite-state machine (FSM). It can only be in one of the States defined, being the CurrentState. Each State has its own transition table, TransitionTable, defining conditions for changing to a new state, and an Action is associated to every state.

Actions can be reused by several states, but actions cannot (should not) be reused between by several ControlStateMachine's.

Public classControlUserFunctionFactory
Factory for creating user functions specific for the MIKE 1D engine.

When a ControlData object is not provided, the object can be used for validation purposes. Validation without a ControlData object will not validate if time series and tables has been properly defined.

Public classExpressionFactory
Helper class for creating expression trees.
Public classExpressionNodeConstant
Constant double expression node
Public classExpressionNodeConstantBool
Constant bool expression node
Public classExpressionNodeFunctionAbs
An expression node that computes the absolute value of a double expression node
Public classExpressionNodeFunctionAdd
An expression node that adds two double expression nodes
Public classExpressionNodeFunctionAnd
An expression node that computes the AND of two bool expression nodes
Public classExpressionNodeFunctionDiv
An expression node that divides two double expression nodes
Public classExpressionNodeFunctionEquals
An expression node that finds out if two double expression nodes are equal
Public classExpressionNodeFunctionGreaterThan
An expression node that finds out if one double expression node is greater than another
Public classExpressionNodeFunctionGreaterThanOrEquals
An expression node that finds out if one double expression node is greater than or equal to another
Public classExpressionNodeFunctionLessThan
An expression node that finds out if one double expression node is less than another
Public classExpressionNodeFunctionLessThanOrEquals
An expression node that finds out if one double expression node is less than or equal to another
Public classExpressionNodeFunctionMax
An expression node that finds the maximum of two double expression nodes
Public classExpressionNodeFunctionMin
An expression node that finds the minimum of two double expression nodes
Public classExpressionNodeFunctionMult
An expression node that multiplies two double expression nodes
Public classExpressionNodeFunctionNot
An expression node that computes the logical not of a bool expression node
Public classExpressionNodeFunctionNotEquals
An expression node that finds out if two double expression nodes are un-equal
Public classExpressionNodeFunctionOr
An expression node that computes the OR of two bool expression nodes
Public classExpressionNodeFunctionSub
An expression node that subtracts two double expression nodes
Public classExpressionNodeFunctionXOr
An expression node that computes the XOR of two bool expression nodes
Public classExpressionNodeTable
Expression node that takes an input value and performs a lookup in a table. Linear interpolation is performed on the values in the table to obtain the output value.
Public classExpressionNodeVariable
An expression node that contains a variable double.
Public classLogicalCondition
Public classSensorT
A sensor retrieves a value from the simulation and acts as a variable in the control expressions.

Default implementation of ISensorT interface.

Public classSensorDescription
Sensor description defines where the sensor gets its data from.

Use the unit of the Quantity to specify in which unit the sensor is supposed to return its value, automatically converting the value from the engine units to this unit.

Public classSensorDouble
Public classState
State in ControlStateMachine.

Use CreateState(IAction) to create a new state and add it to the state matchine instance.

Public classStateTransition
Holds a logical condition and a State.

The logical condition can be null, which evaluates to true.

Public classStateTransitionTable
A list of state transition. NextState() return the State of the first StateTransition from the list with an active logical condition.
Public classTimeSeriesInfo
Time series info.

If both _itemNumber and _itemName is specified, the _itemNumber takes precedense and the _itemName is only used for validation.

Public classVariableExpression
Interfaces
  InterfaceDescription
Public interfaceIAction
Base interface for an action.
Public interfaceIControlFunctionDischargeDemandLookup
Public interfaceIControlFunctionTime
Interface for control functions that are aware of time or/and stores a state which changes with time.

A "default control functions" that depends only on their parameters need not implement this interface.

A control function which has a state, needs to implement this interface and also IModelStateReadWrite.

Public interfaceIExpressionNode
Double node of expression tree
Public interfaceIExpressionNodeBool
Bool node of expression tree
Public interfaceISensor
A sensor retrieves a value from the simulation and acts as a variable in the control expressions.

This interface should never be implemented directly, but always through the ISensorT interface.

Public interfaceISensorT
A sensor retrieves a value from the simulation and acts as a variable in the control expressions.
Public interfaceISensorDouble
A sensor retrieves a value from the simulation and acts as a variable in the control expressions.

This sensor returns a double and includes unit conversion.

Enumerations
  EnumerationDescription
Public enumerationActionTargetGroupTypes
The group types of the target
Public enumerationActionTargetTypes
The types of structures
Public enumerationActionTypes
Types of actions
Public enumerationSensorLocationType
Location of sensor