11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
+
+
+
|
% Acausal bond graph to causal bond graph: mfile format
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% %% Version control history
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% %% $Id$
% %% $Log$
% %% Revision 1.5 1996/08/08 18:06:18 peter
% %% Unified file naming scheme
% %%
% %% Revision 1.4 1996/08/08 08:30:06 peter
% %% The cbg filename contains the system name - this makes things easier
% %% when setting up the m to fig translation and m to ese translation
% %%
% %% Revision 1.3 1996/08/05 18:53:21 peter
% %% Fixed bug passing causality from subsystems.
% %%
|
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
|
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
|
-
-
|
end;
end;
% Set initial status
status = -ones(n_components,1);
total = 2*n_bonds;
done = sum(sum(abs(bonds)))/total*100;
% $$$ mtt_info(sprintf('Initial causality is %3.0f%s complete.', done, pc), infofile);
% Set the causality of the ports
old_done = inf;
while done~=old_done
disp(sprintf('Causality is %3.0f%s complete.', done, pc));
old_done = done;
for i = 1:n_components
|
115
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
|
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
|
-
+
+
+
+
|
if strcmp(comp_type,'0')
comp_type = 'zero';
end;
if strcmp(comp_type,'1')
comp_type = 'one';
end;
% Component cuasality procedure name
% Component causality procedure name
cause_name = [comp_type, '_cause'];
% Invoke the appropriate causality procedure
if exist(cause_name)~=2 % Try a compound component
disp('------------PUSH-----------------');
[comp_bonds,s] = abg2cbg(name, comp_type, full_name, comp_bonds, ...
infofile);
status(i)=max(abs(s));
disp('------------POP-----------------');
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;
|