Overview
| Comment: | Implicit method now allows for switches via _switchA |
|---|---|
| Downloads: | Tarball | ZIP archive |
| Timelines: | family | ancestors | descendants | both | origin/master | trunk |
| Files: | files | file ages | folders |
| SHA3-256: |
c6d26e51335778eeb884b6496a2e8eb2 |
| User & Date: | gawthrop@users.sourceforge.net on 1998-09-30 17:41:24.000 |
| Other Links: | branch diff | manifest | tags |
Context
|
1998-10-01
| ||
| 15:46:34 | Now generates _switcha.m as well -- needed for implicit integration check-in: 82f51e3de3 user: gawthrop@users.sourceforge.net tags: origin/master, trunk | |
|
1998-09-30
| ||
| 17:41:24 | Implicit method now allows for switches via _switchA check-in: c6d26e5133 user: gawthrop@users.sourceforge.net tags: origin/master, trunk | |
|
1998-09-29
| ||
| 20:09:46 | Fixed nyfr and nifr plotting bug check-in: 8e8559691c user: gawthrop@users.sourceforge.net tags: origin/master, trunk | |
Changes
Modified mttroot/mtt/bin/trans/make_ode2odes
from [b393691984]
to [82ad21bca8].
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.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
| > > > | 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.12 1998/08/27 08:55:18 peterg
## Mods to integration methods
##
## 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
|
| ︙ | ︙ | |||
66 67 68 69 70 71 72 | $1_numpar; # Read in parameters MTTilast = round(mttlast/mttdt); # Total number of steps #Initialise MTTt = 0.0; [MTTx] = $1_state; # Read in initial state [MTTu] = $1_input(MTTx,MTTt); # Evaluate initial input | < > > > | 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 102 103 104 105 106 107 108 109 |
$1_numpar; # Read in parameters
MTTilast = round(mttlast/mttdt); # Total number of steps
#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
[mttAA] = zero_matrix($Nx); # Zero the A matrix
[mttAAx] = zero_vector($Nx); # Zero the AAx vector
[MTTx] = $1_switch(MTTx); # Switches
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
[mttAA] = $1_switchA(mttAA,MTTx); # Switches
[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);
|
| ︙ | ︙ |