[704] | 1 | /*! |
---|
[948] | 2 | \page userguide_ctrl BDM Use - Control and Design of Decision Making Strategy |
---|
[704] | 3 | |
---|
[983] | 4 | Bayesian estimation as introduced in Section \ref userguide_estim is a special case of Decision Strategy, see. .... |
---|
[704] | 5 | A more demanding scenario is to design a control strategy that will influence the system operating under uncertainty, this is implemented as scenario \c closedloop. |
---|
| 6 | |
---|
[948] | 7 | Table of content: |
---|
| 8 | \ref ug3_theory |
---|
| 9 | \ref ug3_arx_basic |
---|
| 10 | \ref ug3_arx_distributed |
---|
| 11 | |
---|
[704] | 12 | The function of the \c closedloop is graphically illustrated: |
---|
| 13 | \dot |
---|
| 14 | digraph estimation{ |
---|
| 15 | node [shape=box]; |
---|
| 16 | "Data Source" -> "Controller 1" [label="data"]; |
---|
| 17 | "Data Source" -> "Controller 2" [label="data"]; |
---|
| 18 | "Controller 1" -> "Data Source" [label="actions"]; |
---|
| 19 | "Controller 2" -> "Data Source" [label="actions"]; |
---|
| 20 | |
---|
| 21 | "Data Source" -> "Result Logger" [label="Simulated\n data"]; |
---|
| 22 | "Controller 1" -> "Result Logger" [label="Internal \n variables"]; |
---|
| 23 | "Controller 2" -> "Result Logger" [label="Internal \n variables"]; |
---|
| 24 | } |
---|
| 25 | \enddot |
---|
| 26 | The numer of controllers in not limited, however, they can not influence the same variable. Thus, it is limited by the number of available actions. |
---|
| 27 | |
---|
| 28 | Here, |
---|
| 29 | \li Data Source is an object (class DS) providing sequential data, \f$ [d_1, d_2, \ldots d_t] \f$ and accepting input actions \f$[u_{1,t},\ldots u_{m,t}]\f$ |
---|
| 30 | \li Controller is an object (class Controller) performing adaptive control. Typically is has some internal Bayesian Estimator. |
---|
| 31 | \li Result Logger is an object (class logger) dedicated to storing important data from the experiment. |
---|
| 32 | |
---|
| 33 | Since objects datasource and the logger has already been introduced in section \ref userguide, it remains to introduce |
---|
| 34 | object \c Controller (bdm::Controller). |
---|
| 35 | |
---|
| 36 | \section ug3_theory Design of DM strategy |
---|
| 37 | The object bdm::Contoller has two principal methods: |
---|
| 38 | * redesign, which (re)designs the control strategy - this may be computationally costly operation, |
---|
| 39 | * ctrlaction, which evaluates the current decision strategy and returns a numerical value of the action variable. |
---|
| 40 | |
---|
| 41 | At the most general class, we do not prescribe any technique how to design the strategy in \c redesign(). Most of the implemented techniques are, however, |
---|
| 42 | variants and approximations of dynamic programming (or optimal control), see []. |
---|
| 43 | |
---|
| 44 | TODO... |
---|
| 45 | |
---|
| 46 | \section ug3_arx_basic Control of ARX models |
---|
| 47 | |
---|
| 48 | Autoregressive models has already been introduced in \ref ug_arx_sim and \ref ug2_arx_basic where their simulator and estimator has been presented. |
---|
| 49 | Control of an ARX model under the qudratic loss function is known as LQG control. This is implemented in object bdm::LQG_ARX. |
---|
| 50 | |
---|
| 51 | The following code is from bdmtoolbox/tutorial/userguide/lqg_arx_example.m |
---|
| 52 | \code |
---|
| 53 | \endcode |
---|
| 54 | This is the minimal configuration of an LQG_ARX estimator. Optional elements of bdm::ARX::from_setting() were set using their default values: |
---|
| 55 | |
---|
| 56 | \section ug3_arx_distributed Naive distributed control |
---|
| 57 | |
---|
| 58 | In the example above, only one controller was influencing the system. We extend this approach to a scenario where more controllers is acting independently. |
---|
| 59 | |
---|
| 60 | A trivial example how this can be done is presented in file bdmtoolbox/tutorial/userguide/lqg_arx_distrib_example.m. The code extends previous example as follows: |
---|
| 61 | \code |
---|
| 62 | \endcode |
---|
| 63 | |
---|
| 64 | */ |
---|