Can't pass parameters from a mask to a subsystem
18 次查看(过去 30 天)
显示 更早的评论
I've got a subsystem model with a Constant block whose constant value is "m".
I masked the subsystem and on the parameters tab I added a line with the following items:
#: 1, Prompt: multiplier, Variable: m, Type: edit, ...
In my top model I added a reference to the masked subsystem model. Within the top model I double-clicked on the masked model and entered a value for "m" on the "Model Reference (mask)" dialog.
But when I run the model, it tells me that m is undefined in the subsystem model. I tried creating a new variable called m in the Matlab workspace and re-running the model. That worked. So I can pass a parameter value from the Matlab workspace to my subsystem model but not from the subsystem mask. What am I doing wrong with the mask?
Thanks in advance for helping. Matt
2 个评论
Arnaud Miege
2011-4-26
It should work, so you must be doing something wrong. Could you upload your model to a filesharing site?
采纳的回答
Jarrod Rivituso
2011-4-26
Are you masking a Model block, or a subsystem?
It sounds like you added a mask to a subsystem in your top description. However, the "Model Reference (mask)" dialog makes it sounds like you are entering the parameter in a Model block mask.
Passing parameters into a Model Reference requires that you add the parameter to the model's Model Workspace (View -> Model Explorer) and then designate the variable as a parameter in the "Model Arguments" list. Then you can mask the Model block, and override parameters.
So, in summary
- Add m to the model's model workspace
- Write "m" in the Model Arguments option (found in the model worksapce)
- In the particular instance of the Model block, right-click and select Model Reference parameters, and then put "m" in the Model Arguments.
- Mask the Model block the way you have done.
Give that a try and let us know if you have any more problems.
2 个评论
Radu Nicolae Rotaru
2022-7-15
Hi,
I know it's been more than 10 years since you answered this question but I thought I will give it a try. I did exactly what you said and it worked flawlessly for the 'm' example in a constant block. However my referenced model uses Multiport Switches and Random Number Generators which take in variable inputs. If I try to input those 'm' variables defined in the model workspace I get the error: ![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/1066610/image.png)
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/1066610/image.png)
Any suggestions on how to solve this?
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Subsystems 的更多信息
产品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!