setparam
Syntax
Description
setparam(
sets the value of a tunable block parameter to a new value. Specify the block
parameter by the block name and the parameter name. target_object
, block_path
, parameter_name
, parameter_value
,'Force
',true)
setparam(
sets the value of the tunable global parameter to a new value. Specify the
global parameter by the MATLAB® variable name.target_object
, '', parameter_name
, parameter_value
,'Force
',true)
Examples
Set the value of the block parameter
'Amplitude'
of the block 'Signal
Generator'
to 5
.
tg = slrealtime; mdlSTF = getSTFName(tg); mdlName = 'slrt_ex_osc'; openExample(mdlName); set_param(mdlName,"SystemTargetFile",mdlSTF); xfername = [mdlName,'/Signal Generator']; slbuild(mdlName); load(tg,mdlName); setparam(tg,xfername,'Amplitude',5)
Sweep the value of the block parameter
'Amplitude'
of the block 'Signal
Generator'
by steps of 2
.
tg = slrealtime; mdlSTF = getSTFName(tg); mdlName = 'slrt_ex_osc'; openExample(mdlName); set_param(mdlName,"SystemTargetFile",mdlSTF); xfername = [mdlName,'/Signal Generator']; slbuild(mdlName); load(tg,mdlName); for i = 1 : 3 setparam(tg,xfername,'Amplitude',(i*2)) end
Set the value of the MATLAB variable 'Freq'
to
30
.
tg = slrealtime; mdlSTF = getSTFName(tg); mdlName = 'slrt_ex_osc'; openExample(mdlName); set_param(mdlName,"SystemTargetFile",mdlSTF); Freq = Simulink.Parameter; Freq.StorageClass = 'ExportedGlobal'; Freq.Value = 10; xfername = [mdlName,'/Signal Generator']; set_param(xfername,'Frequency','Freq'); slbuild(mdlName); load(tg,mdlName); setparam(tg,'','Freq',30)
Set the value of the MATLAB variable 'oscp.G2'
to
10000000
.
tg = slrealtime; mdlSTF = getSTFName(tg); mdlName = 'slrt_ex_osc_struct'; openExample(mdlName); set_param(mdlName,"SystemTargetFile",mdlSTF); load('slrt_ex_osc_struct.mat'); slbuild(mdlName); load(tg,mdlName); setparam(tg,'','spkp.g2_gain',10000000)
The getparam
and
setparam
functions support dot notation syntax to
access parameter values in real-time applications. These are examples of more
advanced syntax.
% If a parameter is a struct, a single element of any % array can be specified at any arbitrary depth in the struct. tg.setparam('', 'p.a.b(2).c', val) val = tg.getparam('', 'p.a.b(2).c') % If a parameter is an array of structs, one element of % the struct array can be specified as follows: tg.setparam('', 'p(2,2).x.y.z', val) val = tg.getparam('', 'p(2,2).x.y.z') % If a parameter is N dimensions, a single element of % the parameter can be accessed by specifying each dimension. tg.setparam('top/constant', 'Value(3,4)', val) val = tg.getparam('top/constant', 'Value(3,4)') % If a parameter is Mx1 or 1xN (row or column vector), % the following syntax specifying a single index % is allowed: tg.setparam('top/constant1', 'Value(4)', val)
Simulink® Real-Time™ allows you to tune block parameters in single instance referenced models. This example shows how to parameterize a referenced model.
Open example SlrtConcurrentExecutionExample
. In the
MATLAB command window, type:
openExample('slrealtime/SlrtConcurrentExecutionExample');
Open sub model slrt_ex_mds_subsystem2
.
openExample('slrt_ex_mds_subsystem2')
Set the ModelReferenceNumInstancesAllowed
configuration parameter for the referenced model as
single
.
set_param('slrt_ex_mds_subsystem2','ModelReferenceNumInstancesAllowed','single')
Open top model slrt_ex_mds_and_tasks
, build, and load
the real-time application. Before building, if you have not previously done
so, configure the models for your target computer by using the Speedgoat
Target Platform Selector utility.
Access the Gain
variable by using
setparam
.
tg.setparam({'slrt_ex_mds_and_tasks/Model2','slrt_ex_mds_subsystem2/Gain1'}, 'Gain', 0.03)
View the new value for VarGain1
by using
getparam
.
tg.getparam({'slrt_ex_mds_and_tasks/Model2','slrt_ex_mds_subsystem2/Gain1'}, 'Gain') ans = 0.0300
Input Arguments
Provides access to methods that manipulate the target computer properties.
Example: tg
The block_path
values can be:
Empty character vector (
''
) or empty string scalar (""
) for base or model workspace variablesCharacter vector or string scalar for block path to parameters in the top model
Cell array of character vectors or string scalars for model block arguments and model instance parameters
Example: ''
, 'Gain1'
,
{'top/model','sub/model'}
The parameter can designate either a block parameter or a global parameter that provides the value for a block parameter. The block parameter or MATLAB variable must be observable to be accessible through the parameter name.
Note
Simulink Real-Time does not support parameters of multiword data types.
Example: 'Gain'
, 'oscp.G1'
, 'oscp'
, 'G2'
New value with data type as required by parameter.
Example: 1
The optional 'Force', true
name-value pair argument
forces the parameter value set operation even if the value is not in the
range of [min max]
for the parameter.
Example: 'Force', true
Data Types: logical
Version History
Introduced in R2020bThe operation of the getparam
function and
setparam
function supports dot notation for:
Specifying a field of a struct for
getparam
. It has the same support assetparam
.Specifying an element of a struct array or matrix for
getparam
andsetparam
.Specifying one field of a struct when any substructure is an array of structs for
getparam
andsetparam
.
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)