Overview
| Comment: | Mods to integration methods |
|---|---|
| Downloads: | Tarball | ZIP archive |
| Timelines: | family | ancestors | descendants | both | origin/master | trunk |
| Files: | files | file ages | folders |
| SHA3-256: |
3c8adbbfcc7fcaa6a08fca41c2be32ea |
| User & Date: | gawthrop@users.sourceforge.net on 1998-08-27 08:55:40.000 |
| Other Links: | branch diff | manifest | tags |
Context
|
1998-08-31
| ||
| 10:49:15 | Minor changes to -abg operation check-in: 77e68e13f0 user: gawthrop@users.sourceforge.net tags: origin/master, trunk | |
|
1998-08-27
| ||
| 08:55:40 | Mods to integration methods check-in: 3c8adbbfcc user: gawthrop@users.sourceforge.net tags: origin/master, trunk | |
| 08:33:21 | New reduce integration methods - euler/Implicit only check-in: 1f43226f4f user: gawthrop@users.sourceforge.net tags: origin/master, trunk | |
Changes
Modified mttroot/mtt/bin/trans/make_ode2odes
from [84f8932a0c]
to [b393691984].
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.10 1998/08/25 12:22:45 peterg
## Put _switch after update and also at initilisation
##
## Revision 1.9 1998/08/15 13:46:59 peterg
## New versions of integration routines
##
## Revision 1.8 1998/08/11 13:28:03 peterg
| > > > | 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.11 1998/08/25 12:28:31 peterg
## Move initila switch to after initial input
##
## Revision 1.10 1998/08/25 12:22:45 peterg
## Put _switch after update and also at initilisation
##
## Revision 1.9 1998/08/15 13:46:59 peterg
## New versions of integration routines
##
## Revision 1.8 1998/08/11 13:28:03 peterg
|
| ︙ | ︙ | |||
70 71 72 73 74 75 76 | [MTTx] = $1_switch(MTTx); # Switches [MTTy] = $1_odeo(MTTx,MTTu,MTTt); # Evaluate initial output 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 | | | | < < < < < < < < < < < < < < < < < < > | | | | | > > > > > > > | | 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 102 103 104 105 106 107 108 109 110 111 112 |
[MTTx] = $1_switch(MTTx); # Switches
[MTTy] = $1_odeo(MTTx,MTTu,MTTt); # Evaluate initial output
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 mttmethod==1 # Euler
MTTddt = mttdt/mttstepfactor; # The small sample interval
endif;
#Integration loop
for MTTit = 1:MTTilast
[MTTu] = $1_input(MTTx,MTTt); # Input
if mttmethod==1 # Euler
for MTTjt = 1:mttstepfactor
[MTTdx] = $1_ode(MTTx,MTTu,MTTt); # State derivative
[MTTx] = mtt_euler(MTTx,MTTdx,MTTddt,$Nx); # Euler update
MTTt = MTTt + MTTddt;
endfor;
endif;
if mttmethod==2 # Implicit
[MTTdx] = $1_ode(MTTx,MTTu,MTTt); # State derivative
[mttAA,mttAAx] = $1_smx(MTTx,MTTu,mttdt); # (I-Adt) and (I-Adt)x
[MTTx] = mtt_implicit(MTTx,MTTdx,mttAA,mttAAx,mttdt,$Nx); # Implicit update
MTTt = MTTt + mttdt;
endif;
[MTTx] = $1_switch(MTTx); # Switches
[MTTy] = $1_odeo(MTTx,MTTu,MTTt);
mtt_write(MTTt,MTTx,MTTy,$Nx,$Ny);
endfor; # Integration loop
EOF
|
Modified mttroot/mtt/bin/trans/mtt_m2p
from [1ec895e0c4]
to [acbac27d53].
| ︙ | ︙ | |||
11 12 13 14 15 16 17 18 19 20 21 22 23 24 | # Copyright (c) P.J.Gawthrop 1998 ############################################################### ## Version control history ############################################################### ## $Id$ ## $Log$ ## Revision 1.16 1998/08/19 08:46:00 peterg ## Now translates ; % to # ## ## Revision 1.15 1998/08/15 13:46:01 peterg ## Included new sparse update routines ## ## Revision 1.14 1998/08/12 15:21:12 peterg | > > > | 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | # Copyright (c) P.J.Gawthrop 1998 ############################################################### ## Version control history ############################################################### ## $Id$ ## $Log$ ## Revision 1.17 1998/08/27 07:38:40 peterg ## About to change to new integration (Euler/Implicit only) ## ## Revision 1.16 1998/08/19 08:46:00 peterg ## Now translates ; % to # ## ## Revision 1.15 1998/08/15 13:46:01 peterg ## Included new sparse update routines ## ## Revision 1.14 1998/08/12 15:21:12 peterg |
| ︙ | ︙ | |||
104 105 106 107 108 109 110 |
odeo)
echo "PROCEDURE $Sys_rep(VAR mtty : OutputVector;"
echo " mttx : StateVector;"
echo " mttu : InputVector;"
echo " mttt : REAL);"
;;
smx)
| | | | < < < < | < < < | 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 |
odeo)
echo "PROCEDURE $Sys_rep(VAR mtty : OutputVector;"
echo " mttx : StateVector;"
echo " mttu : InputVector;"
echo " mttt : REAL);"
;;
smx)
echo "PROCEDURE $Sys_rep(VAR mtta : StateMatrix;"
echo " VAR mttax,mttx : StateVector;"
echo " VAR mttu : InputVector;"
echo " mttdt : REAL);"
;;
ode2odes)
echo "PROGRAM $Sys_rep;"
echo "TYPE"
echo " StateVector = ARRAY[1..$Nx] OF REAL;"
echo " InputVector = ARRAY[1..$Nu] OF REAL;"
echo " OutputVector = ARRAY[1..$Ny] OF REAL;"
|
| ︙ | ︙ | |||
221 222 223 224 225 226 227 |
doing_header = 1
}
}
else
{
if (doing_header==1){
if (rep=="ode2odes"){
| | | < < < < < < < < < < < < < < | > | 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 |
doing_header = 1
}
}
else
{
if (doing_header==1){
if (rep=="ode2odes"){
printf("VAR \n");
for (k=1;k<i;k++) printf(" %s,\n",global[k])
printf("%s : REAL;\n", global[i])
printvar("x",Nx);
printvar("u",Nu);
printvar("y",Ny);
printvar("_t",Nt);
printf("\n{%s %s_smx.p}\n",inc,sys)
printf("\n{%s sign.p}\n",inc,sys)
printf("{%s mtt_euler.p}\n",inc)
printf("{%s mtt_implicit.p}\n",inc)
printf("{%s mtt_write.p}\n",inc)
printf("{%s zero_matrix.p}\n",inc)
printf("{%s zero_vector.p}\n",inc)
printf("{%s %s_simpar.p}\n",inc,sys)
printf("{%s %s_numpar.p}\n",inc,sys)
printf("{%s %s_state.p}\n",inc,sys)
printf("{%s %s_input.p}\n",inc,sys)
|
| ︙ | ︙ |