MATLAB Answers

0

How to find the variables of simulink non-active variants subsystem

Asked by Lev Vitkin on 13 Nov 2019 at 20:15
Latest activity Answered by Lev Vitkin on 18 Nov 2019 at 13:09
I need fine if the my variable is used in Simulink model's non-active Variant subsystems.
The command Simulink.findVars returns me the data only from the active Variant subsystems of the model. That command compiles the model in an order to generate the list of varaibles used in the model/subsystems. I cannot just programattically activate the non-active Variant subsystem and run this command again. That is because that new-activated variant subsystem requires the use of different data dictionary (in my case) and won't compile with the current data dictionary.
Any ideas, please?

  0 Comments

Sign in to comment.

Products


Release

R2019a

2 Answers

Answer by Fangjun Jiang
on 13 Nov 2019 at 20:28

from doc Simulink.findVars
Simulink.findVars discovers variable usage in inactive subsystem variants only if you select Analyze all choices during update diagram and generate preprocessor conditionals in the Variant Subsystem block dialog box. If you do not select this check box, the function does not discover variable usage in inactive variants.

  2 Comments

..and this is a problem with the use of Simulink.findVars. I cannot select the option 'Analyze all choices" because in this case Simulink.findVars tries to compile all variant subsystems. And that won't work "because that new-activated variant subsystem requires the use of different data dictionary (in my case) and won't compile with the current data dictionary."
Lev
How about using find_system() with 'Variants' as 'AllVariants'?

Sign in to comment.


Answer by Lev Vitkin on 18 Nov 2019 at 13:09

The benefits of Simulink.findVars is that it find all objects of the model. Using find_system needs to specify the type ofthe object: const, signal, bus, etc. I am currently using find_system to find the objects of not-active variants, but that is not the ideal solution.

  0 Comments

Sign in to comment.