1 | /*! |
---|
2 | \page userguide_ctrl BDM Use - Control and Design of Decision Making Strategy |
---|
3 | |
---|
4 | Bayesian estimation as introduced in Section \ref userguide2 is a special case of Decision Strategy, see. .... |
---|
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 | |
---|
7 | Table of content: |
---|
8 | \ref ug3_theory |
---|
9 | \ref ug3_arx_basic |
---|
10 | \ref ug3_arx_distributed |
---|
11 | |
---|
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 | */ |
---|