Overview
Comment: | Initial revision |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | origin/master | trunk |
Files: | files | file ages | folders |
SHA3-256: |
50fd2b16fd07dbadc5c08b5754efe401 |
User & Date: | gawthrop@users.sourceforge.net on 1997-08-26 08:20:18 |
Other Links: | branch diff | manifest | tags |
Context
1997-08-26
| ||
08:22:36 |
Changed MTTY := MTTY + MTTEyx*MTTdX + MTTEyu*MTTdu; to MTTY := MTTY + MTTEyx*MTTEdX + MTTEyu*MTTdu; This sorts out the problem when dz appears in the output equation. check-in: aa78cd9fb1 user: gawthrop@users.sourceforge.net tags: origin/master, trunk | |
08:20:18 | Initial revision check-in: 50fd2b16fd user: gawthrop@users.sourceforge.net tags: origin/master, trunk | |
07:51:30 |
Now counts the local input and outputs by order of appearence rather than by port number - it therfore handles ports with bicausality correctely. check-in: 27b5d4d5a5 user: gawthrop@users.sourceforge.net tags: origin/master, trunk | |
Changes
Added mttroot/mtt/bin/trans/dae2cse_r version [9b7390aa4c].
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 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 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 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 | #! /bin/sh ###################################### ##### Model Transformation Tools ##### ###################################### # Bourne shell script: dae2cse_r # Differential-algebraic equations to constrained-state equations # P.J.Gawthrop 14 June 1991, 8 Aug 1991, 2 April 1992, 14 April 1994, 28 Dec 94 # Copyright (c) P.J.Gawthrop 1991, 1992, 1994. ############################################################### ## Version control history ############################################################### ## $Id$ ## $Log$ ## Revision 1.2 1996/08/25 09:57:30 peter ## Sorted out bug when MTTNz=0 ## ## Revision 1.1 1996/08/15 16:47:02 peter ## Initial revision ## ############################################################### #Inform user echo Creating $1_cse.r # Remove the old log file rm -f dae2cse_r.log # Use reduce to accomplish the transformation reduce >dae2cse_r.log << EOF OFF Echo; OFF Nat; ON NERO; in "$1_def.r"; MTTdxs := MTTdX; %Save the symbolic form of dX in "$1_sympar.r"; in "$1_dae.r"; %Create F_x, F_y matrices - assumming equations are linear in dZ IF MTTNz>0 THEN BEGIN % Find MTTFx; matrix MTTFx(MTTNx,MTTNz); FOR j := 1:MTTNz DO BEGIN dzj := MTTdZ(j,1); FOR i := 1:MTTNx DO MTTFx(i,j) := df(MTTdX(i,1), dzj, 1); END; % Find MTTFy; matrix MTTFy(MTTNy,MTTNz); FOR j := 1:MTTNz DO BEGIN dzj := MTTdZ(j,1); FOR i := 1:MTTNy DO MTTFy(i,j) := df(MTTy(i,1), dzj, 1); END; %Create G_x, G_u matrices % Find MTTGx; matrix MTTGx(MTTNz,MTTNx); FOR j := 1:MTTNx DO BEGIN xj := MTTX(j,1); FOR i := 1:MTTNz DO MTTGx(i,j) := df(MTTZ(i,1), xj, 1); END; % Find MTTGu; matrix MTTGu(MTTNz,MTTNu); FOR j := 1:MTTNu DO BEGIN uj := MTTu(j,1); FOR i := 1:MTTNz DO MTTGu(i,j) := df(MTTZ(i,1), uj, 1); END; %Create E matrices matrix MTTExx(MTTNx,MTTNx); MTTExx := MTTFx*MTTGx; matrix MTTExu(MTTNx,MTTNu); MTTExu := MTTFx*MTTGu; matrix MTTEyx(MTTNy,MTTNx); MTTEyx := MTTFy*MTTGx; matrix MTTEyu(MTTNy,MTTNu); MTTEyu := MTTFy*MTTGu; matrix MTTE(MTTNx,MTTNx); MTTE := MTTI - MTTExx; %% The following gets rid of the dZs; there must be a better way. MTTdZ1 := 0; MTTdZ2 := 0; MTTdZ3 := 0; MTTdZ4 := 0; MTTdZ5 := 0; MTTdZ6 := 0; MTTdZ7 := 0; MTTdZ8 := 0; MTTdZ9 := 0; MTTdZ10 := 0; MTTdZ11 := 0; MTTdZ12 := 0; MTTdZ13 := 0; MTTdZ14 := 0; MTTdZ15 := 0; MTTdZ16 := 0; MTTdZ17 := 0; MTTdZ18 := 0; MTTdZ19 := 0; MTTEdX := MTTdX; %Ie MTTEdX is MTTdX with the dz terms deleted ie EdX. MTTdX := MTTdXs; %Restore the symbolic dX %%% This causes the matrix mismatch %%% MTTdXs and MTTdu need setting in _def.r file MTTY := MTTY + MTTEyx*MTTEdX + MTTEyu*MTTdu; END; %%of MTTNz>0 IF MTTNz=0 THEN BEGIN MTTEdX := MTTdX; MTTE := MTTI; END; %%Create the _cse.r file OUT "$1_cse.r"; IF MTTNx>0 THEN BEGIN write "matrix MTTEdX(", MTTNx, ",1)"; END; MTTEdX := MTTEdX; IF MTTNy>0 THEN BEGIN write "matrix MTTY(", MTTNy, ",1)"; END; MTTY := MTTY; IF MTTNu>0 THEN BEGIN write "matrix MTTU(", MTTNu, ",1)"; write "matrix MTTdU(", MTTNu, ",1)"; END; MTTU := MTTU; IF MTTNx>0 THEN BEGIN write "matrix MTTE(", MTTNx, ",", MTTNx, ")"; END; MTTE := MTTE; IF MTTNz>0 THEN BEGIN IF MTTNx>0 THEN IF MTTNy>0 THEN BEGIN write "matrix MTTEyx(", MTTNy, ",", MTTNx, ")"; END; MTTEyx := MTTEyx; %%%%% MTTdU := MTTdU; END; write ";END;"; SHUT "$1_cse.r"; quit; EOF # Now invoke the standard error handling. mtt_error_r dae2cse_r.log |