How can I find the top level of the entire system from within an active model reference?
12 次查看(过去 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!