Overview
Comment:Removed y_u arg from ppp_lin_quad
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | origin/master | trunk
Files: files | file ages | folders
SHA3-256: dd760bdfd45257452f9d4412a7ec5c08d15dad14c90684c946d19cf0b7839679
User & Date: gawthrop@users.sourceforge.net on 2003-10-06 08:22:55
Other Links: branch diff | manifest | tags
Context
2003-10-06
08:36:44
augment option - constant term in basis check-in: f5f8cb8a81 user: gawthrop@users.sourceforge.net tags: origin/master, trunk
08:22:55
Removed y_u arg from ppp_lin_quad check-in: dd760bdfd4 user: gawthrop@users.sourceforge.net tags: origin/master, trunk
08:02:02
obsolete <> replaced by != check-in: c146b23bbb user: gawthrop@users.sourceforge.net tags: origin/master, trunk
Changes

Modified mttroot/mtt/lib/control/PPP/ppp_lin_quad.m from [bebc32a414] to [c0426fddbf].

1

2
3
4
5

6
7
8
9
10
11
12
13
14
15
16
17

18

1
2
3


4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
-
+


-
-
+












+

function [k_x,k_w,K_x,K_w,Us0,J_uu,J_ux,J_uw,J_xx,J_xw,J_ww,y_u,A_u] = \
function [k_x,k_w,K_x,K_w,Us0,J_uu,J_ux,J_uw,J_xx,J_xw,J_ww,A_u] = \
      ppp_lin_quad (A,B,C,D,tau,Q,R)

  ## usage:
  ## [k_x,k_w,K_x,K_w,Us0,J_uu,J_ux,J_uw,J_xx,J_xw,J_ww,y_u,cond_uu] =
  ## usage:[k_x,k_w,K_x,K_w,Us0,J_uu,J_ux,J_uw,J_xx,J_xw,J_ww,A_u] =
  ## ppp_lin_quad (A,B,C,D,tau,Q,R)
  ##
  ## 

  ## Steady-state Linear Quadratic solution
  ## using Algebraic Riccati equation (ARE)
  [P,A_u,A_w] = ppp_are (A,B,C,D,Q,R);

  ## PPP solution
  [k_x,k_w,K_x,K_w,Us0,J_uu,J_ux,J_uw,J_xx,J_xw,J_ww] = \
      ppp_lin(A,B,C,D,A_u,A_w,tau,Q,R,P);

A_u
endfunction

Modified mttroot/mtt/lib/control/PPP/ppp_lin_run.m from [eb275300a9] to [b26b35c63c].

115
116
117
118
119
120
121
122

123

124
125
126
127
128
129
130
131
132
133
134
135


136
137
138
139
140
141
142
115
116
117
118
119
120
121

122
123
124
125
126
127
128
129
130
131
132
133
134


135
136
137
138
139
140
141
142
143







-
+

+










-
-
+
+







  else
    I = ceil(p_c.T/p_c.delta_ol) # Number of large samples
    if strcmp(p_c.Method, "original")
      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
    elseif strcmp(p_c.Method, "lq") # LQ design
      tau = [0:0.001:1.0]*5; # Time horizons
      [k_x,k_w,K_x,K_w,Us0,J_uu,J_ux,J_uw,J_xx,J_xw,J_ww,y_u,p_c.A_u] \
      [k_x,k_w,K_x,K_w,Us0,J_uu,J_ux,J_uw,J_xx,J_xw,J_ww,A_u] \
	  = ppp_lin_quad (A,B,C,D,tau,p_c.Q,p_c.R);
      p_c.A_u = A_u
    else
      error(sprintf("Control method %s not recognised", p_c.Method));
    endif

    ##Sanity check A_u
    [p_c.n_U,M_u] = size(p_c.A_u);
    if (p_c.n_U!=M_u)
      error("A_u must be square");
    endif
    
    
    U = K_w*w;			# Initial control U
    K_w,w
    U = K_w*w			# Initial control U

    ## Checks
    [ol_zeros, ol_poles] = sys2zp(sys)
    cl_poles = eig(A - B*k_x)
  endif

  ## Short sample interval


MTT: Model Transformation Tools
GitHub | SourceHut | Sourceforge | Fossil RSS ]