8 | | LQG reg; |
9 | | shared_ptr<StateSpace<chmat> > stsp = new StateSpace<chmat>; |
10 | | // 2 x 1 x 1 |
11 | | stsp-> set_parameters ( eye ( 2 ), ones ( 2, 1 ), ones ( 1, 2 ), ones ( 1, 1 ), /* Q,R */ eye ( 2 ), eye ( 1 ) ); |
12 | | reg.set_system ( stsp ); // A, B, C |
13 | | reg.set_control_parameters ( eye ( 1 ), eye ( 1 ), vec_1 ( 1.0 ), 6 ); //Qy, Qu, horizon |
14 | | reg.validate(); |
| 8 | LQG reg; |
| 9 | shared_ptr<StateSpace<chmat> > stsp = new StateSpace<chmat>; |
| 10 | // 2 x 1 x 1 |
| 11 | stsp-> set_parameters ( eye ( 2 ), ones ( 2, 1 ), ones ( 1, 2 ), ones ( 1, 1 ), /* Q,R */ eye ( 2 ), eye ( 1 ) ); |
| 12 | reg.set_system ( stsp ); // A, B, C |
| 13 | reg.set_control_parameters ( eye ( 1 ), eye ( 1 ), vec_1 ( 1.0 ), 6 ); //Qy, Qu, horizon |
| 14 | reg.validate(); |
34 | | /* results from |
35 | | [A,B,C,D]=tf2ss([2.3 0],[1 -1.1]) |
36 | | */ |
37 | | CHECK_CLOSE_EX ( Stsp->_A().get_row ( 0 ), vec ( "1.1" ), 0.0001 ); |
38 | | CHECK_CLOSE_EX ( Stsp->_C().get_row ( 0 ), vec ( "2.53" ), 0.0001 ); |
39 | | CHECK_CLOSE_EX ( Stsp->_D().get_row ( 0 ), vec ( "2.30" ), 0.0001 ); |
| 34 | /* results from |
| 35 | [A,B,C,D]=tf2ss([2.3 0],[1 -1.1]) |
| 36 | */ |
| 37 | CHECK_CLOSE_EX ( Stsp->_A().get_row ( 0 ), vec ( "1.1" ), 0.0001 ); |
| 38 | CHECK_CLOSE_EX ( Stsp->_C().get_row ( 0 ), vec ( "2.53" ), 0.0001 ); |
| 39 | CHECK_CLOSE_EX ( Stsp->_D().get_row ( 0 ), vec ( "2.30" ), 0.0001 ); |
56 | | /* results from |
57 | | [A,B,C,D]=tf2ss([2.3 0],[1 -1.1]) |
58 | | */ |
59 | | CHECK_CLOSE_EX ( Stsp->_A().get_row ( 0 ), vec ( "1.1, 3.4, 1.3" ), 0.0001 ); |
60 | | CHECK_CLOSE_EX ( Stsp->_B().get_row ( 0 ), vec ( "2.3" ), 0.0001 ); |
61 | | CHECK_CLOSE_EX ( Stsp->_C().get_row ( 0 ), vec ( "1, 0, 0" ), 0.0001 ); |
| 56 | /* results from |
| 57 | [A,B,C,D]=tf2ss([2.3 0],[1 -1.1]) |
| 58 | */ |
| 59 | CHECK_CLOSE_EX ( Stsp->_A().get_row ( 0 ), vec ( "1.1, 3.4, 1.3" ), 0.0001 ); |
| 60 | CHECK_CLOSE_EX ( Stsp->_B().get_row ( 0 ), vec ( "2.3" ), 0.0001 ); |
| 61 | CHECK_CLOSE_EX ( Stsp->_C().get_row ( 0 ), vec ( "1, 0, 0" ), 0.0001 ); |
65 | | mlnorm<chmat> ml; |
66 | | mat A = "1.81, -.81, .00468, .00438"; |
67 | | ml.set_parameters ( A, vec_1 ( 0.0 ), 0.00001*eye ( 1 ) ); |
68 | | RV yr = RV ( "y", 1 ); |
69 | | RV ur = RV ( "u", 1 ); |
70 | | RV rgr = yr.copy_t ( -1 ); |
71 | | rgr.add ( yr.copy_t ( -2 ) ); |
72 | | rgr.add ( yr.copy_t ( -2 ) ); |
73 | | rgr.add ( ur.copy_t ( -1 ) ); |
74 | | rgr.add ( ur ); |
| 65 | mlnorm<chmat> ml; |
| 66 | mat A = "1.81, -.81, .00468, .00438"; |
| 67 | ml.set_parameters ( A, vec_1 ( 0.0 ), 0.00001*eye ( 1 ) ); |
| 68 | RV yr = RV ( "y", 1 ); |
| 69 | RV ur = RV ( "u", 1 ); |
| 70 | RV rgr = yr.copy_t ( -1 ); |
| 71 | rgr.add ( yr.copy_t ( -2 ) ); |
| 72 | rgr.add ( yr.copy_t ( -2 ) ); |
| 73 | rgr.add ( ur.copy_t ( -1 ) ); |
| 74 | rgr.add ( ur ); |