function structure = RT_eqn(name,bond_number,bonds,direction,cr,args, ... structure,eqnfile); % RT_eqn - equations for flow-modulated resistor % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % %%%%% Model Transformation Tools %%%%% % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % Matlab function RT_eqn % RT_eqn(name,bond_number,bonds,direction,cr,args, ... % structure,eqnfile); % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % %% VeRTion control history % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % %% $Id$ % %% $Log$ % %% Revision 1.1 1997/09/03 09:30:45 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,'RT')==0 return end % There are 2 ports; extract the information in_bonds = bonds(1,:); out_bonds = bonds(2,:); in_direction = direction(1,:); out_direction = direction(2,:); % Do port [in] - a standard resistor -- except for modulation by e_2 structure = R_eqn(name,bond_number(1),in_bonds,in_direction,cr,args, ... structure,eqnfile); % Resistance is multiplied by effort e_1 + e_2 (ie effort on upsteam side of % the 1 junction) if in_bonds(1) == 1 % Flow output - divide by e_1+e_2 fprintf(eqnfile,'%s := %s/(%s+%s);\n' , ... varname(name,bond_number(1), -1), ... varname(name,bond_number(1), -1), ... varname(name,bond_number(1), 1), ... varname(name,bond_number(2), 1) ); else % Effort output - multiply by e_1+e_2 fprintf(eqnfile,'%s := %s*(%s+%s);\n' , ... varname(name,bond_number(1), 1), ... varname(name,bond_number(1), 1), ... varname(name,bond_number(1), 1), ... varname(name,bond_number(2), 1) ); end; % Do port [out] - the thermal bit. RT is power conserving. % This computes f_2 = e_1*f_1/e_2 or e_2 = e_1*f_1/f_2 fprintf(eqnfile,'%s := %s*%s/%s;\n' , ... varname(name,bond_number(2), -out_bonds(1)), ... varname(name,bond_number(1), 1), ... varname(name,bond_number(1), -1), ... varname(name,bond_number(2), out_bonds(1)) );