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: 7e0fb91fffd0a5c3791c988d12fa20ad3eb6eeb7fa41a46af1776265fa6a2d59
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: 4ea24a351a user: gawthrop@users.sourceforge.net tags: origin/master, trunk
08:22:55
Removed y_u arg from ppp_lin_quad check-in: 7e0fb91fff user: gawthrop@users.sourceforge.net tags: origin/master, trunk
08:02:02
obsolete <> replaced by != check-in: c871e8e364 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 ]