Overview
Comment: | Various changes to support PPP |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | origin/master | trunk |
Files: | files | file ages | folders |
SHA3-256: |
78e107c25bbcc17f62ab9ffaf2586347 |
User & Date: | gawthrop@users.sourceforge.net on 2001-06-04 08:13:38 |
Other Links: | branch diff | manifest | tags |
Context
2001-06-04
| ||
08:18:52 | Putting documentation under CVS check-in: 6d5e3f99ef user: gawthrop@users.sourceforge.net tags: origin/master, trunk | |
08:13:38 | Various changes to support PPP check-in: 78e107c25b user: gawthrop@users.sourceforge.net tags: origin/master, trunk | |
2001-05-30
| ||
19:57:08 | Fixes to sensitivity components for non-linear PPP check-in: ad7c2478fe user: gawthrop@users.sourceforge.net tags: origin/master, trunk | |
Changes
Modified mttroot/mtt/bin/trans/abg2lbl_fig2txt from [5718595199] to [5d3130fe45].
︙ | ︙ | |||
9 10 11 12 13 14 15 16 17 18 19 20 21 22 | # Acausal bond graph to causal bond graph: mfile format ############################################################### ## Version control history ############################################################### ## $Id$ ## $Log$ ## Revision 1.11 2000/09/19 11:14:30 peterg ## Now writes the first component type header correctely ## ## Revision 1.10 2000/01/26 10:11:10 peterg ## Added I component ## ## Revision 1.9 1999/11/10 00:47:08 peterg | > > > | 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | # Acausal bond graph to causal bond graph: mfile format ############################################################### ## Version control history ############################################################### ## $Id$ ## $Log$ ## Revision 1.12 2001/05/08 15:18:10 gawthrop ## Added trig and hyperbolic functions to argument exclusion list ## ## Revision 1.11 2000/09/19 11:14:30 peterg ## Now writes the first component type header correctely ## ## Revision 1.10 2000/01/26 10:11:10 peterg ## Added I component ## ## Revision 1.9 1999/11/10 00:47:08 peterg |
︙ | ︙ | |||
119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 | else { alias[++i] = $2; if (length(sensitivity)>0) { s_arg = sprintf("%ss",$2); alias[++i] = s_arg; s_arg = sprintf(";%s",s_arg); Component = substr(Component,2); } } ## Table of components cr["SS"] = "SS"; arg["SS"] = "external,external"; cr["Se"] = "SS"; arg["Se"] = sprintf("external%s", s_arg); cr["Sf"] = "SS"; arg["Sf"] = sprintf("external%s", s_arg); cr["De"] = "SS"; arg["De"] = "external"; cr["Df"] = "SS"; arg["Df"] = "external"; | > > > > > | | | | | > | 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 | else { alias[++i] = $2; if (length(sensitivity)>0) { s_arg = sprintf("%ss",$2); alias[++i] = s_arg; s_arg = sprintf(";%s",s_arg); Component = substr(Component,2); lin = "slin" } else { lin = "lin" } } ## Table of components cr["SS"] = "SS"; arg["SS"] = "external,external"; cr["Se"] = "SS"; arg["Se"] = sprintf("external%s", s_arg); cr["Sf"] = "SS"; arg["Sf"] = sprintf("external%s", s_arg); cr["De"] = "SS"; arg["De"] = "external"; cr["Df"] = "SS"; arg["Df"] = "external"; cr["R"] = lin; arg["R"] = sprintf("flow,%s%s", $2, s_arg); cr["C"] = lin; arg["C"] = sprintf("effort,%s%s", $2, s_arg); cr["I"] = lin; arg["I"] = sprintf("flow,%s%s", $2, s_arg); cr["CS"] = "lin"; arg["CS"] = sprintf("effort,%s;%s_x0%s", $2, $2, s_arg); cr["IS"] = "lin"; arg["IS"] = sprintf("flow,%s;%s_x0%s", $2, $2, s_arg); cr["INTFS"] = "lin"; arg["INTFS"] = sprintf("%s_x0%s", $2, s_arg); cr["TF"] = "lin"; arg["TF"] = sprintf("flow,%s%s", $2, s_arg); cr["GY"] = "lin"; arg["GY"] = sprintf("flow,%s%s", $2, s_arg); cr["AE"] = "lin"; arg["AE"] = sprintf("%s%s", $2, s_arg); cr["AF"] = "lin"; arg["AF"] = sprintf("%s%s", $2, s_arg); |
︙ | ︙ |
Modified mttroot/mtt/lib/control/PPP/ppp_nlin_sim.m from [8be58fd40d] to [26d1c64307].
|
| | | > < | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | function [y,x,u,t,p,UU,UU_c,UU_l,t_ppp,t_est] = ppp_nlin_sim (system_name,i_ppp,i_par,A_u,w_s,N_ol,extras) ## usage: [y,x,u,t,p,UU,UU_c,UU_l,t_ppp,t_est] = ppp_nlin_sim (system_name,i_ppp,i_par,A_u,w_s,N_ol,extras) ## ## ## Simulate nonlinear PPP ## Copyright (C) 2000 by Peter J. Gawthrop ## Defaults if nargin<7 extras.U_initial = "zero"; extras.U_next = "continuation"; extras.criterion = 1e-5; extras.max_iterations = 10; extras.v = 0.1; extras.verbose = 0; extras.estimate = 1; endif ## Names s_system_name = sprintf("s%s", system_name); ## System details -- defines simulation within ol interval par = eval(sprintf("%s_numpar;", system_name)); simpar = eval(sprintf("%s_simpar;", system_name)); x_0 = eval(sprintf("%s_state(par);", system_name)); [n_x,n_y,n_u] = eval(sprintf("%s_def;", system_name)); ## Sensitivity system details -- defines moving horizon simulation simpars = eval(sprintf("%s_simpar;", s_system_name)); pars = eval(sprintf("%s_numpar;", s_system_name)); ## Times ## -- within opt horizon n_Tau = round(simpars.last/simpars.dt); dtau = simpars.dt; Tau = [0:n_Tau-1]'*dtau; |
︙ | ︙ | |||
97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 | [k_x,k_w,K_x,K_w] = ppp_lin(A,B,C,D,A_u,0,tau'); ## Main simulation loop y = []; x = []; u = []; t = []; t_last = 0; UU = []; UU_l =[]; UU_c =[]; x_0s = zeros(2*n_x,1); if strcmp(extras.U_initial,"linear") U = K_w*w - K_x*x_0; elseif strcmp(extras.U_initial,"zero") U = zeros(n_U,1); else | > > > > > > | 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 | [k_x,k_w,K_x,K_w] = ppp_lin(A,B,C,D,A_u,0,tau'); ## Main simulation loop y = []; x = []; u = []; t = []; p = []; t_last = 0; UU = []; UU_l =[]; UU_c =[]; t_ppp = []; t_est = []; x_0s = zeros(2*n_x,1); if strcmp(extras.U_initial,"linear") U = K_w*w - K_x*x_0; elseif strcmp(extras.U_initial,"zero") U = zeros(n_U,1); else |
︙ | ︙ | |||
145 146 147 148 149 150 151 | tick = time; if extras.max_iterations>0 [U, U_all, Error, Y] = ppp_nlin(system_name,x_0s,pars,simpars,u_star_tau,w_s,i_ppp,extras); pars(i_ppp(:,1)) = U; # Put final value of U into the parameter vector else Error = []; endif | | < | > | > > > > > > > > > > > | | > > < | 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 | tick = time; if extras.max_iterations>0 [U, U_all, Error, Y] = ppp_nlin(system_name,x_0s,pars,simpars,u_star_tau,w_s,i_ppp,extras); pars(i_ppp(:,1)) = U; # Put final value of U into the parameter vector else Error = []; endif ppp_time = time-tick; t_ppp = [t_ppp;ppp_time]; ## Generate control u_ol = u_star_t*U; # Not used - just for show ## Simulate system over one ol interval par(i_ppp(:,3)) = pars(i_ppp(:,1)); # Update the simulation ppp weights [y_ol,x_ol] = eval(sprintf("%s_sim(x_0, par, simpar, u_star_t);", system_name)); ## Tune parameters/states if (extras.estimate==1) tick = time; par_est = pars(i_par(:,1)); p = [p; par_est']; pars = ppp_optimise(s_system_name,x_0s,pars,simpar,u_star_t,y_ol,i_par,extras); est_time = time-tick; t_est = [t_est;est_time]; endif x_0 = x_ol(n_t+1,:)'; # Extract state for next time y_ol = y_ol(1:n_t,:); # Avoid extra points due to rounding error x_ol = x_ol(1:n_t,:); # Avoid extra points due to rounding error y = [y; y_ol]; x = [x; x_ol]; u = [u; u_ol]; UU = [UU; U']; UU_l = [UU_l; U_l']; UU_c = [UU_c; U_c']; t = [t; t_ol+t_last*ones(n_t,1) ]; t_last = t_last + T_ol; endfor endfunction |
Modified mttroot/mtt/lib/rep/nppp_rep.make from [1a8a9b1146] to [d69a3656d1].
1 2 3 4 | # -*-makefile-*- # Makefile for representation nppp # File nppp_rep.make | | | 1 2 3 4 5 6 7 8 9 10 11 12 | # -*-makefile-*- # Makefile for representation nppp # File nppp_rep.make #Copyright (C) 2000,2001 by Peter J. Gawthrop all: $(SYS)_nppp.$(LANG) $(SYS)_nppp.view: $(SYS)_nppp.ps echo Viewing $(SYS)_nppp.ps; ghostview $(SYS)_nppp.ps& $(SYS)_nppp.ps: $(SYS)_ode2odes.out s$(SYS)_ode2odes.out \ |
︙ | ︙ |