Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

Can't pass parameters from a mask to a subsystem

Asked by Matt Garrett on 25 Apr 2011

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 Comments

Arnaud Miege on 26 Apr 2011

It should work, so you must be doing something wrong. Could you upload your model to a filesharing site?

Matt Garrett on 26 Apr 2011

Thanks Arnaud, but I managed to figure it out based on Jarrod's response below.

Matt Garrett

Products

1 Answer

Answer by Jarrod Rivituso on 26 Apr 2011
Accepted answer

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

  1. Add m to the model's model workspace
  2. Write "m" in the Model Arguments option (found in the model worksapce)
  3. In the particular instance of the Model block, right-click and select Model Reference parameters, and then put "m" in the Model Arguments.
  4. Mask the Model block the way you have done.

Give that a try and let us know if you have any more problems.

Here's a link for reference: http://www.mathworks.com/help/toolbox/simulink/ug/bsp2z6i-1.html

1 Comment

Matt Garrett on 26 Apr 2011

Hi Jarrod,

Thank you for your help. Yes, I was masking a Model block. To use my obviously inaccurate terminology, my "subsystem" was a pre-existing mdl file. The only way I could figure out how to include it in my higher-level model was with a model reference, but it sounds like there might be a simpler way...?

Thank you again for your detailed and accurate diagnosis.

Matt Garrett
ATA Engineering
Golden, CO, USA

Jarrod Rivituso

Contact us