Overview
| Comment: | More heirachical stuff added. |
|---|---|
| Downloads: | Tarball | ZIP archive |
| Timelines: | family | ancestors | descendants | both | origin/master | trunk |
| Files: | files | file ages | folders |
| SHA3-256: |
2096815ce6b1d436a0d96abf86159ec2 |
| User & Date: | gawthrop@users.sourceforge.net on 1996-08-30 12:55:40.000 |
| Other Links: | branch diff | manifest | tags |
Context
|
1996-08-30
| ||
| 13:23:11 | Added bond number check check-in: b41a257865 user: gawthrop@users.sourceforge.net tags: origin/master, trunk | |
| 12:55:40 | More heirachical stuff added. check-in: 2096815ce6 user: gawthrop@users.sourceforge.net tags: origin/master, trunk | |
| 11:29:49 |
Added constitutive relationship to argument list. Put in explicit argument list to cbg2ese. check-in: 4fb1bcb629 user: gawthrop@users.sourceforge.net tags: origin/master, trunk | |
Changes
Modified mttroot/mtt/bin/trans/m/abg2cbg.m
from [d319395afb]
to [b856f2f0d6].
1 2 3 |
function [port_bonds, status] = abg2cbg(system_name, ...
system_type, full_name, ...
port_bonds,infofile)
| | | > > > > | 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 |
function [port_bonds, status] = abg2cbg(system_name, ...
system_type, full_name, ...
port_bonds,infofile)
% abg2cbg - acausal to causal bg conversion
%
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% %%%%% Model Transformation Tools %%%%%
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% Matlab function abg2cbg.m
% Acausal bond graph to causal bond graph: mfile format
% [bonds,status] = abg2cbg(system_name, system_type, full_name, port_bonds, infofile)
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% %% Version control history
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% %% $Id$
% %% $Log$
% %% Revision 1.8 1996/08/26 10:04:25 peterg
% %% Fixed error due to a line wrap.
% %%
% %%Revision 1.7 1996/08/16 12:58:58 peter
% %% Now does preferred causality of I and C.
% %% Revision 1.6 1996/08/09 08:27:29 peter
% %% Added a few deguging lines
% %%
% %% Revision 1.5 1996/08/08 18:06:18 peter
% %% Unified file naming scheme
|
| ︙ | ︙ | |||
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 |
old_done = inf;
% Inner loop propogates causality
while done~=old_done
disp(sprintf('Causality is %3.0f%s complete.', done, pc));
old_done = done;
for i = 1:n_components
comp = nozeros(components(i,:));
bond_list = abs(comp);
direction = sign(comp)'*[1 1];
% Convert from arrow orientated to component orientated causality
comp_bonds = bonds(bond_list,:).*direction;
eval([ '[comp_type,name,cr,arg] = ', system_type, '_cmp(i);' ]);
% change name of 0 and 1 components -- matlab doesn't like numbers here
if strcmp(comp_type,'0')
comp_type = 'zero';
end;
if strcmp(comp_type,'1')
comp_type = 'one';
end;
% Component causality procedure name
cause_name = [comp_type, '_cause'];
% Invoke the appropriate causality procedure
if exist(cause_name)~=2 % Try a compound component
| > < < | | | 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 |
old_done = inf;
% Inner loop propogates causality
while done~=old_done
disp(sprintf('Causality is %3.0f%s complete.', done, pc));
old_done = done;
for i = 1:n_components
if status(i) ~= 0 % only do this if causality not yet complete
comp = nozeros(components(i,:));
bond_list = abs(comp);
direction = sign(comp)'*[1 1];
% Convert from arrow orientated to component orientated causality
comp_bonds = bonds(bond_list,:).*direction;
eval([ '[comp_type,name,cr,arg] = ', system_type, '_cmp(i);' ]);
% change name of 0 and 1 components -- matlab doesn't like numbers here
if strcmp(comp_type,'0')
comp_type = 'zero';
end;
if strcmp(comp_type,'1')
comp_type = 'one';
end;
% Component causality procedure name
cause_name = [comp_type, '_cause'];
% Invoke the appropriate causality procedure
if exist(cause_name)~=2 % Try a compound component
[comp_bonds,s] = abg2cbg(name, comp_type, full_name, comp_bonds, ...
infofile);
status(i)=max(abs(s));
else % its a simple component
disp(['---', name, ' (', cause_name, ') ---']);
% comp_bonds
eval([ '[comp_bonds,status(i)] = ', cause_name, '(comp_bonds);' ]);
% comp_bonds
end;
% Update the full bonds list
% and convert from component orientated to arrow orientated causality
bonds(bond_list,:) = comp_bonds.*direction;
end;
end;
done = sum(sum(abs(bonds)))/total*100;
% mtt_info(sprintf('Causality is %3.0f%s complete.', done, pc), infofile);
end;
% Set causality of C and I which is not set
|
| ︙ | ︙ |