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
19
20
21
|
+
+
+
|
#! /bin/sh
######################################
##### Model Transformation Tools #####
######################################
###############################################################
## Version control history
###############################################################
## $Id$
## $Log$
## Revision 1.27 1999/11/15 22:47:53 peterg
## Generates method-specific code.
##
## Revision 1.26 1999/10/20 01:31:43 peterg
## *** empty log message ***
##
## Revision 1.25 1999/08/29 06:55:26 peterg
## Removed [MTTu] = zero_input($Nu); # Zero the input
## to avoide the p2c bug ????
##
|
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
160
161
|
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
160
161
162
|
-
-
-
-
-
+
+
+
|
#Initialise
MTTt = 0.0;
[MTTu] = zero_input($Nu); # Zero the input
[MTTx] = $1_state; # Read in initial state
[MTTy] = $1_$odeo(MTTx,MTTu,MTTt); # Evaluate initial output
[MTTu] = $1_input(MTTt,MTTx,MTTy); # Evaluate initial input
mtt_write(MTTt,MTTx,MTTy,$Nx,$Ny); # And write them
#[mttAA] = zero_matrix($Nx); # Zero the A matrix
#[mttAAx] = zero_vector($Nx); # Zero the AAx vector
#if $Nx>0
# [MTTx] = $1_switch(MTTx); # Switches
#endif;
EOF
if [ "$method" = "euler" ]; then
cat << EOF >> $1_ode2odes.m
MTTddt = mttdt/mttstepfactor; # The small sample interval
EOF
fi
cat << EOF >> $1_ode2odes.m
for MTTit = 1:MTTilast #Integration loop
[MTTy] = $1_$odeo(MTTx,MTTu,MTTt); # Output
[MTTu] = $1_input(MTTt,MTTx,MTTy); # Input
mtt_write(MTTt,MTTx,MTTy,$Nx,$Ny); # Write it out
if $Nx>0 # Dont if no states
EOF
if [ "$method" = "euler" ]; then
cat << EOF >> $1_ode2odes.m
# if mttmethod==1 # Euler
|
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
|
183
184
185
186
187
188
189
190
191
192
193
194
195
196
|
-
-
-
|
fi
cat << EOF >> $1_ode2odes.m
else # NX is 0 - no states
MTTt = MTTt + mttdt;
endif; # $Nx>0
[MTTy] = $1_$odeo(MTTx,MTTu,MTTt); # Output
[MTTu] = $1_input(MTTt,MTTx,MTTy); # Input
mtt_write(MTTt,MTTx,MTTy,$Nx,$Ny); # Write it out
endfor; # Integration loop
EOF
|