MATLAB Answers

Ben

assign parameter values with sim command

Asked by Ben
on 19 Jul 2013

Suppose I have a Simulink model called myModel.mdl. One of the blocks has a parameter, and I have assigned to it the variable:

sfreq

If I want to set this variable to 0.5 and run the model, then the following code suffices:

sfreq=0.5;
sim('myModel')

However for reasons too complicated to explain here, I would like to make the first command part of the second. If sfreq were a MODEL parameter then I would simply do the following:

sim('myModel','sfreq','0.5')

Unfortunately sfreq is a block parameter, and so I get back the following error:

block_diagram does not have a parameter named 'sfreq'

Any ideas for avoiding this error?

Thanks!

  0 Comments

Tags

Products

No products are associated with this question.

1 Answer

Answer by Azzi Abdelmalek
on 19 Jul 2013
Edited by Azzi Abdelmalek
on 19 Jul 2013
 Accepted answer

Use set_param function

Example

  2 Comments

Ben
on 19 Jul 2013

Azzi,

Thank you for the suggestion. That command is exactly what I tried first. Unfortunately I won't always have access to the parameter name, which is apparently required for set_param. I can automatically find the BLOCKS in which the parameter appears by using the following command:

blocks=find_system('blockDialogParams','sfreq')

But I cannot actually find the NAMES of the parameters in the blocks which are set to the variable sfreq.

Azzi Abdelmalek
on 19 Jul 2013

You can get the name of your parameter by

get_param('yourmodel/yourblockName', 'Dialogparameters')

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply today