#!/bin/sh
######################################
##### Model Transformation Tools #####
######################################
# Bourne shell script: def2write.r
# Generates r code to write matrices
# Copyright (C) 2000 by Peter J. Gawthrop
###############################################################
## Version control history
###############################################################
## $Id$
## $Log$
###############################################################
sys=$1 # System name
rep=$2 # System representation
# Inform User
echo Creating $1_$2_write.r
# Find system constants
Nx=`mtt_getsize $sys x` # States
Nxx=`mtt_getsize $sys xx` # States x States
Nu=`mtt_getsize $sys u` # Inputs
Ny=`mtt_getsize $sys y` # Outputs
Nyz=`mtt_getsize $sys yz` # Zero outputs
Npar=`wc -l $sys\_sympar.txt | awk '{print $1}'`
# Set up representation-specific stuff
case $rep in
ode)
matrices='dX Y Yz'
ns="$Nx $Ny $Nyz"
ms="1 1 1"
;;
*)
echo def2write_r: representation $rep not recognised
exit
esac
# Write out the code
echo 'off echo$ load scope$' >$1_$2_write.r
echo 'optimize' >>$1_$2_write.r
for matrix in $matrices; do
n=`first "$ns"`; ns=`rest "$ns"`
m=`first "$ms"`; ms=`rest "$ms"`
is=`n2m 1 $n`;
js=`n2m 1 $m`;
for i in $is; do
for j in $js; do
name=`echo MTT$matrix'('$i','$j')'`
echo ' '$name ':=:' $name',' >>$1_$2_write.r
done
done
done
echo 'INAME mtt_tmp$' >>$1_$2_write.r
echo 'END$' >>$1_$2_write.r