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 Block Parameter by Parameter and Block Names
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 Block Parameter Values
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 Global Parameter by Scalar Parameter Name
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 Global Parameter by Parameter Structure Field Name
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)
Access Parameter Values in Parameter Structure
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)
Access Instance Parameter Values in Referenced Model
Simulink®
Real-Time™ cannot tune block parameters in referenced models. You can tune
workspace parameters, model arguments, and model instance parameters in
referenced models. This example shows how to parameterize a referenced model and
use setparam
to access an instance variable. For more
information, see Configure Instance-Specific Values for Block Parameters in 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')
Open the Model Explorer and select the Model Workspace for the
slrt_ex_mds_subsystem2
model.Select Add > MATLAB Variable then change the variable name from
Var
toVarGain1
. Set the variable value to0.05
and set the Argument checkbox toOn
.Apply the variable change, closed the Model Explorer, and save and close the
slrt_ex_mds_subsystem2
model.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
VarGain1
variable by usingsetparam
.setparam(tg,{'slrt_ex_mds_and_tasks/Model2'}, 'VarGain1',0.03)
View the new value for
VarGain1
by usinggetparam
.getparam(tg,{'slrt_ex_mds_and_tasks/Model2'}, 'VarGain1') ans = 0.0300
You also can use this approach for Simulink instance parameters. The only change to the procedure is adding a Simulink Parameter instead of adding a MATLAB variable. By using the cell array syntax, you can access workspace parameters, model arguments, and model instance parameters in any level of referenced models. For example, to access a Simulink instance parameter
Kinst
in a deeply layered reference model:mModelRefParams_top/T (mModelRefParams_T)/M1 (mModelRefParams_M)/S1 (mModelRefParams_S)
You could use this syntax:
setparam(tg,{'mModelRefParams_top/T', 'mModelRefParams_T/M1', 'mModelRefParams_M/S1'}, 'Kinst', 0.5)
Input Arguments
target_object
— Object that represents target computer
slrealtime.Target
object
Provides access to methods that manipulate the target computer properties.
Example: tg
block_path
— Hierarchical name of the originating block
character vector | string scalar | cell array of character vectors or strings
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'}
parameter_name
— Name of the parameter
character vector | string scalar
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'
parameter_value
— New parameter value
number | character vector | string scalar | complex | structure | numeric array
New value with data type as required by parameter.
Example: 1
Force
— Directive to force setting the value
false
(default) | true
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 R2020bR2024a: Apply Initial Conditions at Application Start
R2021b: Parameter Structure for getparam and setparam
The 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)
Asia Pacific
- Australia (English)
- India (English)
- New Zealand (English)
- 中国
- 日本Japanese (日本語)
- 한국Korean (한국어)