Code covered by the BSD License  

Highlights from
Bond graph add-on block library BG V.2.1

image thumbnail
from Bond graph add-on block library BG V.2.1 by Gert-Helge Geitner
Block library enables the graphical programming of Bond Graphs using standard Simulink and editor.

BGV2_FPL
function BGV2_FPL
%Callback File PostLoadFcn

%Einschrnkung der Suche auf BG_SD Blcke zur Laufzeitreduzierung wrde bedeuten:
% A: Sptere Varianten von SD Blcken mssen auch ein 'D' am Ende aufweisen
% B: Mindestens ein BG_SD Block mu vorhanden sein
% C: Fehlfunktion beim Abspeichern unvollstndiger BG's noch ohne BG_SD Blcke

WT00='BGV2_FPL';
WT01a='Fatal error: Empty BG-Counter detected. Automatic repair was executed! ';
WT01b='Please do not forget to save file.';

fh=gcs;

%blks=find_system(fh,'RegExp','on','ReferenceBlock','^BG_V.','ReferenceBlock','.*D$');
              %Um Suche zu verkrzen: nur BG_SD Blcke finden; <-- so Problem C
%blks=find_system(fh,'RegExp','on','ReferenceBlock','^BG_V.'); <-- so mit Link aktiv

blks=find_system(fh,'RegExp','on','AncestorBlock','^BG_V.'); %<-- so mit Link inaktiv
Le=length(blks);                                             %Vorbereitung while
i=1;
while i<=Le, x=get_param(blks(i),'Tag');
             if ~isempty(str2num(x{1})), break;  end, i=i+1; end %Zhlersuche
if   i<=Le
     i=str2num(x{1});            %Zhler auspacken - geschweifte Klammern beachten!
else                             %In keinem Block-Tag des Files Zhler gefunden
     warndlg([fh 10 10 WT01a WT01b],WT00); %GlobZae mu 'Zahl' >0 sein
     i=BGV2_CR(fh)+1;            %Zhler mittels Konnektoren durch K_max+1 reparieren
end
eval(['global X__' fh]);         %Zhler global definieren
eval(['X__' fh '=i;']);          %Zhler setzen - nur getrennt mglich!!
set_param(fh,'Tag',fh);          %Speicher fr FileNamen - Synchronisation

%Automatisches Laden der File-Parameter, wenn entsprechendes m-File vorbereitet ist
T=exist([fh '_P'],'file');       %Existiert im Suchpfad ein m-File "MdlFileName_P.m"?
if T==2 eval([fh '_P']); end     %Wenn ausgefhrt --> Meldung in MATLAB-Fenster 

Contact us at files@mathworks.com