Overview
| Comment: | Implicit rules |
|---|---|
| Downloads: | Tarball | ZIP archive |
| Timelines: | family | ancestors | descendants | both | origin/master | trunk |
| Files: | files | file ages | folders |
| SHA3-256: |
9bdd1aa5cf665c37f1517cff463a1f34 |
| User & Date: | gawthrop@users.sourceforge.net on 2002-05-21 08:47:41.000 |
| Other Links: | branch diff | manifest | tags |
Context
|
2002-05-21
| ||
| 11:46:31 |
MTT input block "sys_sfun_input.mexglx" created to provide inputs from MTT input file to plant model within Simulink. The command "mtt sys sfun zip" now also creates a simple sys.mdl file which connects the input block to the plant block correctly. check-in: f281078eb6 user: geraint@users.sourceforge.net tags: origin/master, trunk | |
| 08:47:41 | Implicit rules check-in: 9bdd1aa5cf user: gawthrop@users.sourceforge.net tags: origin/master, trunk | |
| 08:45:36 |
DIY reps: no longer skips rep if file exists already. Avoids problems in rep.txt when options change check-in: 1ca84ea61b user: gawthrop@users.sourceforge.net tags: origin/master, trunk | |
Changes
Modified mttroot/mtt/lib/rep/nppp_rep.make
from [a45ca90fbc]
to [93cfab61d5].
1 2 3 4 5 6 | # -*-makefile-*- # Makefile for representation nppp # File nppp_rep.make #Copyright (C) 2000,2001,2002 by Peter J. Gawthrop | > | | | > | | > | > > > > > > > > > > > > | | < < < | < < < < < < | | < < | < < < < < < | > | | > < < | | < | < < < < | < < < < < < < < < > > > > > > > | 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 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 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 |
# -*-makefile-*-
# Makefile for representation nppp
# File nppp_rep.make
#Copyright (C) 2000,2001,2002 by Peter J. Gawthrop
## Model targets
model_reps = ${SYS}_sympar.m ${SYS}_simpar.m ${SYS}_state.m
model_reps += ${SYS}_numpar.m ${SYS}_input.m ${SYS}_ode2odes.m
model_reps += ${SYS}_def.m
## Prepend s to get the sensitivity targets
sensitivity_reps = ${model_reps:%=s%}
## Simulation targets
sims = ${SYS}_sim.m s${SYS}_ssim.m
## m-files needed for nppp
nppp_m = ${SYS}_nppp.m ${SYS}_nppp_numpar.m
## Targets for the nppp simulation
nppp_reps = ${nppp_m} ${sims} ${model_reps} ${sensitivity_reps}
all: ${SYS}_nppp.${LANG}
echo:
echo "sims: ${sims}"
echo "model_reps: ${model_reps}"
echo "sensitivity_reps: ${sensitivity_reps}"
echo "nppp_reps: ${nppp_reps}"
${SYS}_nppp.view: ${SYS}_nppp.ps
nppp_rep.sh ${SYS} view
${SYS}_nppp.ps: ${SYS}_nppp.fig
nppp_rep.sh ${SYS} ps
${SYS}_nppp.fig: ${SYS}_nppp.gdat
nppp_rep.sh ${SYS} fig
${SYS}_nppp.gdat: ${SYS}_nppp.dat2
nppp_rep.sh ${SYS} gdat
${SYS}_nppp.dat2: ${nppp_reps}
nppp_rep.sh ${SYS} dat2
${SYS}_nppp.m:
nppp_rep.sh ${SYS} m
${SYS}_nppp_numpar.m:
nppp_rep.sh ${SYS} numpar.m
## System model reps
## Generic txt files
${SYS}_%.txt:
mtt ${OPTS} -q -stdin ${SYS} $* txt
## Specific m files
${SYS}_ode2odes.m: ${SYS}_rdae.r
mtt -q -stdin ${OPTS} ${SYS} ode2odes m
${SYS}_sim.m: ${SYS}_ode2odes.m
mtt ${OPTS} -q -stdin ${SYS} sim m
## Generic txt to m
${SYS}_%.m: ${SYS}_%.txt
mtt ${OPTS} -q -stdin ${SYS} $* m
## r files
${SYS}_def.r: ${SYS}_abg.fig
mtt ${OPTS} -q -stdin ${SYS} def r
${SYS}_rdae.r:
mtt ${OPTS} -q -stdin ${SYS} rdae r
## Sensitivity model reps
## Generic txt files
s${SYS}_%.txt:
mtt ${OPTS} -q -stdin s${SYS} $* txt
## Specific m files
s${SYS}_ode2odes.m: s${SYS}_rdae.r
mtt -q -stdin ${OPTS} -s s${SYS} ode2odes m
s${SYS}_ssim.m:
mtt -q -stdin ${OPTS} -s s${SYS} ssim m
s${SYS}_def.m:
mtt -q -stdin ${OPTS} -s s${SYS} def m
## Generic txt to m
s${SYS}_%.m: s${SYS}_%.txt
mtt ${OPTS} -q -stdin s${SYS} $* m
## r files
s${SYS}_rdae.r:
mtt ${OPTS} -q -stdin -s s${SYS} rdae r
|
Modified mttroot/mtt/lib/rep/nppp_rep.sh
from [19f90f4533]
to [43681cce8e].
| ︙ | ︙ | |||
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
## Some names
target=${sys}_${rep}.${lang}
def_file=${sys}_def.r
dat2_file=${sys}_nppp.dat2
dat2s_file=${sys}_nppps.dat2
nppp_numpar_file=${sys}_nppp_numpar.m
## Get system information
if [ -f "${def_file}" ]; then
echo Using ${def_file}
else
mtt -q ${sys} def r
fi
ny=`mtt_getsize $1 y`
nu=`mtt_getsize $1 u`
| > | | | | < < | > | < < < > > < | 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 41 42 43 44 45 46 47 |
## Some names
target=${sys}_${rep}.${lang}
def_file=${sys}_def.r
dat2_file=${sys}_nppp.dat2
dat2s_file=${sys}_nppps.dat2
nppp_numpar_file=${sys}_nppp_numpar.m
option_file=${sys}_nppp_mtt_options.txt
## Get system information
if [ -f "${def_file}" ]; then
echo Using ${def_file}
else
mtt -q ${sys} def r
fi
ny=`mtt_getsize $1 y`
nu=`mtt_getsize $1 u`
check_new_options() {
if [ -f "${option_file}" ]; then
old_options=`cat ${option_file}`
if [ "${mtt_options}" != "${old_options}" ]; then
echo ${mtt_options} > ${option_file}
fi
else
echo ${mtt_options} > ${option_file}
fi
}
## Make the _nppp.m file
make_nppp() {
filename=${sys}_${rep}.m
echo Creating ${filename}
cat > ${filename} <<EOF
|
| ︙ | ︙ | |||
89 90 91 92 93 94 95 |
printf("Open-loop interval %3.2f \n", simpar.last);
printf(" -- using info in ${sys}_simpar.txt\n");
printf("PPP optimisation from %3.2f to %3.2f\n", simpars.first, simpars.last);
printf(" -- using info in s${sys}_simpar.txt\n");
endif
t_horizon = [simpars.first+simpars.dt:simpars.dt:simpars.last]';
| | | 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 |
printf("Open-loop interval %3.2f \n", simpar.last);
printf(" -- using info in ${sys}_simpar.txt\n");
printf("PPP optimisation from %3.2f to %3.2f\n", simpars.first, simpars.last);
printf(" -- using info in s${sys}_simpar.txt\n");
endif
t_horizon = [simpars.first+simpars.dt:simpars.dt:simpars.last]';
w_s = ones(length(t_horizon)-1,1)*w';
## Setup the indices of the adjustable stuff
if nargin<2
i_ppp = []
else
i_ppp = ppp_indices (ppp_names,sympar,sympars); # Parameters
endif
|
| ︙ | ︙ | |||
155 156 157 158 159 160 161 |
j=[];
for i = 1:length(T_open)
j = [j; find(T_open(i)*ones(size(t))==t)];
endfor
y_open = y(j,:);
u_open = u(j,:);
| | | | 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 |
j=[];
for i = 1:length(T_open)
j = [j; find(T_open(i)*ones(size(t))==t)];
endfor
y_open = y(j,:);
u_open = u(j,:);
##if extras.visual
## Plots
gset grid; xlabel "Time (sec)"; title "${sys}"
ty = [t y] ;
tu = [t u];
ty_open = [T_open y_open];
tu_open = [T_open u_open];
gplot tu \
title "u", tu_open with impulses title "Sample times"
figfig("${sys}_u","eps");
gplot ty \
title "y", ty_open with impulses title "Sample times"
figfig("${sys}_y","eps");
system("gv ${sys}_y.eps&");
system("gv ${sys}_u.eps&");
##endif
endfunction
EOF
}
make_nppp_numpar() {
echo Creating ${nppp_numpar_file}
|
| ︙ | ︙ | |||
227 228 229 230 231 232 233 | extras.verbose = 0; extras.visual = 0; endfunction EOF } | < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < | 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 |
extras.verbose = 0;
extras.visual = 0;
endfunction
EOF
}
make_dat2() {
## Inform user
echo Creating ${dat2_file}
## Use octave to generate the data
octave -q <<EOF
[last, ppp_names, par_names, A_u, A_w, w, Q, extras] = ${sys}_nppp_numpar;
[y,u,t] = ${sys}_nppp(last, ppp_names, par_names, A_u, A_w, w, Q, extras);
data = [t,y,u];
save -ascii ${dat2_file} data
EOF
}
case ${lang} in
numpar.m)
## Make the numpar stuff
make_nppp_numpar;
;;
m)
## Make the code
make_nppp;
|
| ︙ | ︙ | |||
306 307 308 309 310 311 312 |
gdat2fig ${sys}_${rep}
;;
ps)
fig2dev -Leps ${sys}_${rep}.fig > ${sys}_${rep}.ps
;;
view)
| | > | | 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 |
gdat2fig ${sys}_${rep}
;;
ps)
fig2dev -Leps ${sys}_${rep}.fig > ${sys}_${rep}.ps
;;
view)
echo Viewing ${sys}_${rep}.ps
gv ${sys}_${rep}.ps&
;;
*)
echo Language ${lang} not supported by ${rep} representation
exit 3
esac
|