How can I find the top level of the entire system from within an active model reference?
조회 수: 11 (최근 30일)
이전 댓글 표시
My MEX functions look upwards in the subsystem heirarchy to get some information from top-level configuration blocks, which specify system wide parameters for my system. Normally I would find these with find_system(bdroot(gcb), ...).
But supposing I want to use model referencing. Is there any way a block in a referenced model can, during initialization of a system referencing it, find the top level of the referencing system? bdroot(gcb) will only get me to the top of the referenced model - not the active referencing model.
댓글 수: 0
채택된 답변
Titus Edelhofer
2011년 5월 13일
Hi Mark,
the only way I could think of:
myModelName = get_param(bdroot(gcb), 'Name');
% find all model reference blocks that contain "me"
blocks = find_system('BlockType', 'ModelReference', ...
'ModelName', myModelName);
models = bdroot(blocks);
Does this help?
Titus
댓글 수: 0
추가 답변 (4개)
Titus Edelhofer
2011년 5월 13일
Hi,
I guess, not directly. And it should not be done anyway: the idea of model referencing is, that the referenced model is self-sufficient, i.e., it can stand alone without the system referencing it. The other way round of course is fine: the model containing the referenced model might very well do something with this model ...
Titus
댓글 수: 0
Todd
2020년 9월 29일
If your reference model is open in a tab of your top model (R2020a+) then you can try this:
h = gcbp;
sys = bdroot(h.getBlock(1));
댓글 수: 0
참고 항목
카테고리
Help Center 및 File Exchange에서 Model References에 대해 자세히 알아보기
제품
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!