Overview
| Comment: | Sanity test on w |
|---|---|
| Downloads: | Tarball | ZIP archive |
| Timelines: | family | ancestors | descendants | both | origin/master | trunk |
| Files: | files | file ages | folders |
| SHA3-256: |
2dea05469f7e6d2a09e147c757df5ec7 |
| User & Date: | gawthrop@users.sourceforge.net on 2003-05-22 17:26:52.000 |
| Other Links: | branch diff | manifest | tags |
Context
|
2003-06-06
| ||
| 06:40:34 | Made compatible with current MTT. check-in: 7aeff941fe user: gawthrop@users.sourceforge.net tags: origin/master, trunk | |
|
2003-05-22
| ||
| 17:26:52 | Sanity test on w check-in: 2dea05469f user: gawthrop@users.sourceforge.net tags: origin/master, trunk | |
|
2003-05-16
| ||
| 14:29:54 | Linear intermittent PPP for real-time control -- Lego RCX in first instance check-in: 4cb8770a40 user: gawthrop@users.sourceforge.net tags: origin/master, trunk | |
Changes
Modified mttroot/mtt/lib/control/PPP/ppp_lin_run.m
from [572a950a69]
to [566d14aa8d].
| ︙ | ︙ | |||
39 40 41 42 43 44 45 |
endif
if nargin<6
p_o.sigma = 0.001;
endif
if !struct_contains(p_c,"N")
| | > > > > > > > > | 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 |
endif
if nargin<6
p_o.sigma = 0.001;
endif
if !struct_contains(p_c,"N")
p_c.N = 10; # Number of small samples per large sample
endif
if !struct_contains(p_c,"delta_ol")
p_c.delta_ol = 1.0; # OL sample interval
endif
if !struct_contains(p_c,"T")
p_c.T = 5.0; # Last time point.
endif
if !struct_contains(p_c,"A_w")
p_c.A_w = 0;
endif
if !struct_contains(p_c,"A_u")
|
| ︙ | ︙ | |||
63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 | ## System sys = mtt2sys(Name); # Create system [A,B,C,D] = sys2ss(sys); # SS form [n_x, n_u, n_y] = abcddim(A,B,C,D) ol_poles = eig(A) ## Initialise x_0 = zeros(n_x,1); x_est = x_0; ## Initilise simulation state x = x_0; ##x(2) = 0.2; # x(2) = y_0(1); # x(4) = y_0(2); if ControlType==0 # Step input | > > > > > > < | > | | 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 |
## System
sys = mtt2sys(Name); # Create system
[A,B,C,D] = sys2ss(sys); # SS form
[n_x, n_u, n_y] = abcddim(A,B,C,D)
ol_poles = eig(A)
## Check w.
[n_w,m_w] = size(w);
if ( (n_w<>n_y) || (m_w<>1) )
error(sprintf("ppp_lin_run: w must a column vector with %i elements",n_y));
endif
## Initialise
x_0 = zeros(n_x,1);
x_est = x_0;
## Initilise simulation state
x = x_0;
##x(2) = 0.2;
# x(2) = y_0(1);
# x(4) = y_0(2);
if ControlType==0 # Step input
I = 1; # 1 large sample
p_c.delta_ol = p_c.T # I
K_w = zeros(p_c.N_u,n_y);
K_w(1,1) = 1;
K_w(2,1) = -1;
K_x = zeros(p_c.N_u,n_x);
U = K_w*w; # Initial control U
else # PPP control
I = ceil(p_c.T/p_c.delta_ol); # Number of large samples
tau = [10:0.1:11]*(2/a_u); # Time horizons
[k_x,k_w,K_x,K_w] = ppp_lin(A,B,C,D,p_c.A_u,p_c.A_w,tau); # Design
U = K_w*w # Initial control U
## Checks
cl_poles = eig(A - B*k_x)
endif
|
| ︙ | ︙ |