1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
#! /bin/sh
######################################
##### Model Transformation Tools #####
######################################
###############################################################
## Version control history
###############################################################
## $Id$
## $Log$
## Revision 1.6 1998/07/30 10:44:37 peterg
## INcluded othe integration methods.
##
## Revision 1.5 1998/07/26 11:02:20 peterg
## Put mtt or MTT in front of variable names to avoid clashes with
## globals
##
|
>
>
>
|
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.7 1998/07/30 11:29:54 peterg
## Added implicit integration stuff
##
## Revision 1.6 1998/07/30 10:44:37 peterg
## INcluded othe integration methods.
##
## Revision 1.5 1998/07/26 11:02:20 peterg
## Put mtt or MTT in front of variable names to avoid clashes with
## globals
##
|
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
|
sympar2global_txt2m $1 >> $1_ode2odes.m
# The rest of the program
cat << EOF >> $1_ode2odes.m
$1_simpar; # Read in simulation parameters
$1_numpar; # Read in parameters
MTTiLast = round(mttLAST/mttDT); # Total number of steps
mttDDT = mttDT/mttSTEPFACTOR;
#Initialise
MTTt = 0.0;
[MTTx] = $1_state; # Read in initial state
[MTTu] = $1_input(MTTx,MTTt); # Evaluate initial input
[MTTy] = $1_odeo(MTTx,MTTu,MTTt); # Evaluate initial output
mtt_write(MTTt,MTTx,MTTy,$Nx,$Ny); # And write them
[mttA] = zeros($Nx); # Zero the A matrix
if mttMETHOD==2 #Linear implicit
mttA = $1_smx(MTTx,MTTu); # Set up A matrix - linearised system
end;
#Integration loop
for MTTit = 1:MTTiLast
for MTTi = 1:mttSTEPFACTOR
[MTTu] = $1_input(MTTx,MTTt);# Input
[MTTx] = $1_switch(MTTx); # Switches
[MTTdx] = $1_ode(MTTx,MTTu,MTTt);
if mttMETHOD==3
mttA = $1_smx(MTTx,MTTu); # Set up A matrix - linearised system
end;
[MTTx] = mtt_update(MTTdx,MTTx,mttDDT,$Nx,mttMETHOD,mttA);
[MTTy] = $1_odeo(MTTx,MTTu,MTTt);
MTTt = MTTt + mttDDT;
end;
mtt_write(MTTt,MTTx,MTTy,$Nx,$Ny);
end;
EOF
|
<
|
|
|
|
|
|
|
|
|
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
|
sympar2global_txt2m $1 >> $1_ode2odes.m
# The rest of the program
cat << EOF >> $1_ode2odes.m
$1_simpar; # Read in simulation parameters
$1_numpar; # Read in parameters
MTTilast = round(mttlast/mttdt); # Total number of steps
mttddt = mttdt/mttstepfactor;
#Initialise
MTTt = 0.0;
[MTTx] = $1_state; # Read in initial state
[MTTu] = $1_input(MTTx,MTTt); # Evaluate initial input
[MTTy] = $1_odeo(MTTx,MTTu,MTTt); # Evaluate initial output
mtt_write(MTTt,MTTx,MTTy,$Nx,$Ny); # And write them
[mttA] = zeros($Nx); # Zero the A matrix
if mttmethod==2 #Linear implicit
mttA = $1_smx(MTTx,MTTu); # Set up A matrix - linearised system
end;
#Integration loop
for MTTit = 1:MTTilast
for MTTi = 1:mttstepfactor
[MTTu] = $1_input(MTTx,MTTt);# Input
[MTTx] = $1_switch(MTTx); # Switches
[MTTdx] = $1_ode(MTTx,MTTu,MTTt);
if mttmethod==3
mttA = $1_smx(MTTx,MTTu); # Set up A matrix - linearised system
end;
[MTTx] = mtt_update(MTTdx,MTTx,mttddt,$Nx,mttmethod,mttA);
[MTTy] = $1_odeo(MTTx,MTTu,MTTt);
MTTt = MTTt + mttddt;
end;
mtt_write(MTTt,MTTx,MTTy,$Nx,$Ny);
end;
EOF
|