ADDED mttroot/mtt/lib/comp/simple/FP_cause.m Index: mttroot/mtt/lib/comp/simple/FP_cause.m ================================================================== --- /dev/null +++ mttroot/mtt/lib/comp/simple/FP_cause.m @@ -0,0 +1,33 @@ +function [bonds,status] = FP_cause(bonds); +% Causality for FP component + +%SUMMARY FP: converts thermal pseudobond to true bond and vv +%DESCRIPTION Port [e]: temperature (T) / enthalpy flow (E) bond +%DESCRIPTION Port [s]: temperature (T) / entropy flow (S) bond + + + +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% %% Version control history +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% %% $Id$ +% %% $Log$ +% %% Revision 1.1 1997/09/04 08:34:53 peterg +% %% Initial revision +% %% +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +% Copyright (c) P.J. Gawthrop, 1997. + +status = -1; + +% Check that there are exactly two bonds. +if check_bonds(bonds,2,'FP')==0 + return +end + +% Same causality as TF +[bonds,status] = TF_cause(bonds); + + ADDED mttroot/mtt/lib/comp/simple/FP_eqn.m Index: mttroot/mtt/lib/comp/simple/FP_eqn.m ================================================================== --- /dev/null +++ mttroot/mtt/lib/comp/simple/FP_eqn.m @@ -0,0 +1,75 @@ +function structure = ES_eqn(name,bond_number,bonds,direction,cr,args, ... + structure,eqnfile); +% ES_eqn - equations for ES component +% +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% %%%%% Model Transformation Tools %%%%% +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% Matlab function ES_eqn +% ES_eqn(name,bond_number,bonds,direction,cr,args, ... +% structure,eqnfile); + + + +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% %% Version control history +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% %% $Id$ +% %% $Log$ +% %% Revision 1.3 1998/03/27 10:59:43 peterg +% %% Zapped t_0 again ... +% %% +% %% Revision 1.2 1998/02/25 16:59:56 peterg +% %% Corrected enthalpy-entropy conversion -- use temp on the entropy side. +% %% +% %% Revision 1.1 1998/02/25 15:03:51 peterg +% %% Initial revision +% %% +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +% Copyright (c) P.J. Gawthrop, 1997. + + +if nargin<6 + eqnfile = 'stdout'; +end; + +% Check that there are exactly two bonds. +ports = 2; +if check_bonds(bonds,ports,'ES')==0 + return +end + + +% There are 2 ports; extract the information +e_bond = bonds(1,:); +s_bond = bonds(2,:); + +% The efforts are the same - but the enthalpy side has relative T +if e_bond(1)==1 %effort imposed on the enthalpy bond +% fprintf(eqnfile,'%s := %s + t_0;\n' , ... + fprintf(eqnfile,'%s := %s;\n' , ... + varname(name,bond_number(2), 1), ... + varname(name,bond_number(1), 1) ); +else %effort imposed on the entropy bond +% fprintf(eqnfile,'%s := %s - t_0;\n' , ... + fprintf(eqnfile,'%s := %s;\n' , ... + varname(name,bond_number(1), 1), ... + varname(name,bond_number(2), 1) ); +end; + +% The flows need to be converted - use the absolute temp on the +% entropy side +if e_bond(2)==-1 %flow imposed on the enthalpy bond + fprintf(eqnfile,'%s := %s/%s;\n' , ... + varname(name,bond_number(2), -1), ... + varname(name,bond_number(1), -1), ... + varname(name,bond_number(2), 1) ); +else % flow imposed on the entropy bond + fprintf(eqnfile,'%s := %s*%s;\n' , ... + varname(name,bond_number(1), -1), ... + varname(name,bond_number(2), -1), ... + varname(name,bond_number(2), 1) ); +end;