User Tools

Site Tools


eeros_architecture:control_system:available_blocks:int

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
eeros_architecture:control_system:available_blocks:int [2017/04/06 13:41] – created grafeeros_architecture:control_system:available_blocks:int [2021/07/07 20:06] (current) ursgraf
Line 1: Line 1:
 ====== Integrator ====== ====== Integrator ======
-The gain block allows to amplify an input signal. In general, the input signal is of type matrix and hence, the gain will have to be a matrix as well. The following lines show various  +The integrator block allows to integrate an input signal. Before using it set its initial state with
-examples.+
 <code cpp> <code cpp>
-  Gain<Vector2, Matrix<2,2>> g1({1,2.5,-1,-0.5});+setInitCondition(T val);
 </code> </code>
-The first template parameter denotes the input signal. The gain here is 2x2-matrix.+Without setting the initial state to meaningful value, the output will be ''nan'' even after enabling the block
  
-If a ''Gain'' block is declared with a single value each element of the input vector is multiplied with this value.+An integrator can be enabled or disabled
 <code cpp> <code cpp>
-  Gain<Vector2> g2(10); +enable(); 
-  Gain<Vector2, double> g3(10);   // this is the same+disable();
 </code> </code>
 +This, for instance, helps to stop integrating up a given input while handling an exception. Please note that an integrator is in the disabled state upon creation. Instead of enabling and disabling an integrator block manually, you can set an active safety level with 
 +<code cpp>
 +setActiveLevel(safetySystem, safetyLevel)
 +</code>
 +If the active level is set, the integrator will be automatically be enabled if the current safety level is equal or greater than the active level.  
  
-Another useful operation is by multipliying an input matrix with a given gain matrix element by element. This is achieved by+An integrator block can be limited, such that its integral does not run over certain limit. This limit can be set by calling 
 <code cpp> <code cpp>
-  Gain<Vector2, Vector2, true> g4({10,20});+setLimit(T upperT lower);
 </code> </code>
-The third template parameter specifies an element-by-element multiplication. Please beware of the fact that in this case input signal and gain matrix must be of the same dimensions.+The default values for the limits are the positive and negative maximum values of the given type.
  
eeros_architecture/control_system/available_blocks/int.1491478902.txt.gz · Last modified: 2017/04/06 13:41 by graf