Overview
Comment:Fixed bugs when Nx=0 (no state)
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | origin/master | trunk
Files: files | file ages | folders
SHA3-256: 199d048e5c98bd9fcf648e2737a5d6fa0b51b708a20d22883ca9e1cef171be1c
User & Date: gawthrop@users.sourceforge.net on 1999-03-15 01:09:15
Other Links: branch diff | manifest | tags
Context
1999-03-15
01:17:07
Removed some spurious debugging code check-in: 8b1505aed5 user: gawthrop@users.sourceforge.net tags: origin/master, trunk
01:09:15
Fixed bugs when Nx=0 (no state) check-in: 199d048e5c user: gawthrop@users.sourceforge.net tags: origin/master, trunk
1999-03-12
04:04:27
Single argument - the effort value e_s check-in: 1a65ca2658 user: gawthrop@users.sourceforge.net tags: origin/master, trunk
Changes

Modified mttroot/mtt/bin/trans/make_ode2odes from [148d9eb790] to [fa36d037f2].

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.15  1999/03/06 02:19:43  peterg
## Changed args to _input
##
## Revision 1.14  1998/10/01 16:02:01  peterg
## Integration with switches handled separately fro Euler and Implicit.
##
## Revision 1.13  1998/09/30 17:41:24  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.16  1999/03/06 02:28:38  peterg
## Rearranged evaluation to: state - input - output - write
##
## Revision 1.15  1999/03/06 02:19:43  peterg
## Changed args to _input
##
## Revision 1.14  1998/10/01 16:02:01  peterg
## Integration with switches handled separately fro Euler and Implicit.
##
## Revision 1.13  1998/09/30 17:41:24  peterg
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
113
114
115
116



117

118
119
120
121
122
123
124
125
126
127
$1_simpar;			# Read in simulation parameters
$1_numpar;			# Read in parameters
MTTilast = round(mttlast/mttdt); # Total number of steps

#Initialise
MTTt = 0.0;
[MTTu]  = zero_vector($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


[MTTx] = $1_switch(MTTx);       # Switches


  if mttmethod==1		# Euler
    MTTddt = mttdt/mttstepfactor; # The small sample interval
  endif;

#Integration loop
for MTTit = 1:MTTilast


  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
      [MTTx] = $1_switch(MTTx);	# Switches
      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
    [MTTx] = $1_switch(MTTx);	# Switches
    MTTt = MTTt + mttdt;
  endif;





  [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











>
|
>
>
>
>







>
|
>

|
|
|

|
|
|
>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
>
>
>

>










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
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
$1_simpar;			# Read in simulation parameters
$1_numpar;			# Read in parameters
MTTilast = round(mttlast/mttdt); # Total number of steps

#Initialise
MTTt = 0.0;
[MTTu]  = zero_vector($Nu);	# Zero the input
if $Nx>0
  [MTTx] = $1_state;	        # Read in initial state
else
  MTTx = 0;			# Dummy value
endif;

[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;

if mttmethod==1			# Euler
  MTTddt = mttdt/mttstepfactor; # The small sample interval
endif;


for MTTit = 1:MTTilast		#Integration loop
MTTit
  if $Nx>0			# Don't if no states
    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
	[MTTx] = $1_switch(MTTx);	# Switches
	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
      [MTTx] = $1_switch(MTTx);	# Switches
      MTTt = MTTt + mttdt;
    endif;
    else
      MTTt = MTTt + mttdt;
  endif;			# $Nx>0

MTTit
  [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





MTT: Model Transformation Tools
GitHub | SourceHut | Sourceforge | Fossil RSS ]