SQLITE_NOTICE(283): recovered 5 frames from WAL file /data/mtt.fossil-wal
File mttroot/mtt/bin/trans/sm_r2m artifact 8ee39a87d4 part of check-in a72ecada3c
#! /bin/sh ###################################### ##### Model Transformation Tools ##### ###################################### # Bourne shell script: sm_r2m # Reduce constained state-space A,B,C,D and E matrices to Matlab # P.J.Gawthrop July 1990, Feb 1991, May 1991, Sep 91, Dec 93, Jan 94, May 94. # Copyright (c) P.J.Gawthrop, 1989, 1990, 1991, 1993, 1994, 1996. ############################################################### ## Version control history ############################################################### ## $Id$ ## $Log$ ## Revision 1.5 1996/09/12 18:34:44 peter ## Back under rcs. ## # Revision 1.4 1996/08/24 14:12:26 peter # Global parameter passing. # ## Revision 1.3 1996/08/19 18:38:43 peter ## Read in the numerical params etc ... ## ## Revision 1.2 1996/08/19 16:25:18 peter ## Fixed bug when Nx=0. ## ## Revision 1.1 1996/08/19 15:14:51 peter ## Initial revision ## ############################################################### # Inform user echo Creating $1_sm.m # Remove the old log file rm -f sm_r2m.log # Use reduce to accomplish the transformation reduce >sm_r2m.log << EOF %Read in the definitions file IN "$1_def.r"; %Read the reduce state-space A,B,C and D matrices file IN "$1_sm.r"; %Set up the number of argument variables to zero in case the user has forgotten MTTNVar := 0; %Read in the parameter file IN "$1_sympar.r"; OUT "$1_sm.m"; %Headings - Matlab style %(Note. The ;; are deleted by for2mat) write "function [MTTA,MTTB,MTTC,MTTD] = $1_sm;;"; write "%function [MTTA,MTTB,MTTC,MTTD] = $1_sm;;"; write "%Linearised state matrices for system $1"; write "%File $1_sm.m"; write "%Generated by MTT"; IF MTTNvar>0 THEN BEGIN write "% Set the parameters"; write "global ...;;"; FOR i := 1:MTTNvar DO BEGIN IF numberp(MTTVar(i,1)) THEN BEGIN % Do nowt END ELSE BEGIN write MTTVar(i,1), " ..."; END; END; write " "; END; %Fortran switches - one line expressions OFF echo; ON fort$ cardno!* := 1$ fortwidth!* := 100$ OFF period$ write "MTTA = zeros(", MTTNx, ",", MTTNx, ");"; write "MTTB = zeros(", MTTNx, ",", MTTNu, ");"; write "MTTC = zeros(", MTTNy, ",", MTTNx, ");"; write "MTTD = zeros(", MTTNy, ",", MTTNu, ");"; ON NERO; % Suppress zero elements. MTTA := MTTA; MTTB := MTTB; MTTC := MTTC; MTTD := MTTD; OFF FORT; write ""; SHUT "$1_sm.m";