Overview
Comment: | Added missing "derivative_causality," argument to recursive call of this function |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | origin/master | trunk |
Files: | files | file ages | folders |
SHA3-256: |
584472cf6dcb5c7b7e028c3d32f3afc5 |
User & Date: | gawthrop@users.sourceforge.net on 1998-12-14 15:19:36 |
Other Links: | branch diff | manifest | tags |
Context
1998-12-14
| ||
15:27:32 | Added separate handling of ports ( poss zero) check-in: 16b65ab26f user: gawthrop@users.sourceforge.net tags: origin/master, trunk | |
15:19:36 |
Added missing "derivative_causality," argument to recursive call of this function check-in: 584472cf6d user: gawthrop@users.sourceforge.net tags: origin/master, trunk | |
1998-12-03
| ||
17:11:03 | Added -dc (derivative causality) switch. check-in: b781059554 user: gawthrop@users.sourceforge.net tags: origin/master, trunk | |
Changes
Modified mttroot/mtt/bin/trans/m/abg2cbg.m from [bdedc69a24] to [1e80d94d7f].
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, port_bond_direction, port_status, typefile, infofile, errorfile) # 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.41 1998/11/20 10:52:28 peterg # ## Copies port bonds if the port bonds ARE set # ## -- replaces Copies port bonds if the component bonds are NOT set # ## # ## Revision 1.40 1998/09/02 11:47:09 peterg # ## Now uses explicit ordered list of ports instead of port.index. # ## Note that subsystems are still treated in arbitrary order. | > > > > > > | 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 29 30 31 32 33 34 | function [port_bonds, status] = abg2cbg(system_name, system_type, full_name, port_bonds, port_bond_direction, port_status, derivative_causality, typefile, infofile, errorfile) # 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.42 1998/12/03 14:55:40 peterg # ## Now uses number of components with complete causality to measure # ## progress of algorithm -- Done. # ## This replaces bond count -- done. # ## # ## Revision 1.41 1998/11/20 10:52:28 peterg # ## Copies port bonds if the port bonds ARE set # ## -- replaces Copies port bonds if the component bonds are NOT set # ## # ## Revision 1.40 1998/09/02 11:47:09 peterg # ## Now uses explicit ordered list of ports instead of port.index. # ## Note that subsystems are still treated in arbitrary order. |
︙ | ︙ | |||
378 379 380 381 382 383 384 385 386 387 388 389 390 391 | eval([ "[comp_bonds] = ", cause_name, "(comp_bonds);" ]); # Evaluate the built-in causality procedure comp_bonds = comp_bonds.*(port_bond_direction*[1 1]); # and convert from component orientated to arrow orientated causality end; [comp_bonds,subsystem.status] = abg2cbg(name, subsystem.type, full_name, comp_bonds, port_bond_direction, port_status, ... typefile, infofile, errorfile); # # Create a single status from the status vector s # if max(abs(s)) == 0 # Causal # status(i) = 0; # else # if max(s) == 1 # At least one component is overcausal # status(i) = 1; | > | 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 | eval([ "[comp_bonds] = ", cause_name, "(comp_bonds);" ]); # Evaluate the built-in causality procedure comp_bonds = comp_bonds.*(port_bond_direction*[1 1]); # and convert from component orientated to arrow orientated causality end; [comp_bonds,subsystem.status] = abg2cbg(name, subsystem.type, full_name, comp_bonds, port_bond_direction, port_status, ... derivative_causality, ... typefile, infofile, errorfile); # # Create a single status from the status vector s # if max(abs(s)) == 0 # Causal # status(i) = 0; # else # if max(s) == 1 # At least one component is overcausal # status(i) = 1; |
︙ | ︙ | |||
430 431 432 433 434 435 436 | [name,prefered] = getdynamic(ABG_field) # Set causality of a C or I which is not already set if prefered==0 ci_index=0; else disp("Set causality of a C or I which is not already set") eval(["ci_bond_index = ABG.",field,".",name,".connections;"]); # Get bonds ci_direction = sign(ci_bond_index); | | > > > | 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 | [name,prefered] = getdynamic(ABG_field) # Set causality of a C or I which is not already set if prefered==0 ci_index=0; else disp("Set causality of a C or I which is not already set") eval(["ci_bond_index = ABG.",field,".",name,".connections;"]); # Get bonds ci_direction = sign(ci_bond_index); ci_bond_index = abs(ci_bond_index); if derivative_causality prefered = -prefered; end; ABG.bonds(ci_bond_index,1:2) = prefered*ci_direction'*[1 1] eval(["ABG.subsystems.",name,".status=0"]); #set status of the C or I endif endwhile # ( ci_index>0) eval(["ABG.",field," = ABG_field;"]); # Copy back to actual structure endif # struct_contains(CBG,field(i,:)); endfor |
︙ | ︙ |