set_param
设置 Simulink 参数值
说明
示例
使用模块路径设置模块参数值
您可以使用具有以下输入参量的 set_param
函数来设置模块参数的值:
模块句柄或包括模块名称的完整模块路径,例如
'myModel/mySubsystem/myblock'
参数名称
要赋给参数的新值
有关如何获取模块路径的信息,请参阅获取模块路径和名称。
有关如何获取参数名称的信息,请参阅获取模块参数名称。
在此示例中,您设置由名为 Alpha-sensor Low-pass Filter
的 Transfer Function 模块指定的传递函数的系数。
该模块位于
slexAircraftExample
模型的Controller
子系统中。传递函数分子的系数存储在
Numerator
参数中。传递函数分母的系数存储在Denominator
参数中。要赋给分子的新值是
1.2
。要赋给分母的新值是[0.8*Tal,1]
,其中Tal
是变量。
打开示例。然后,加载 slexAircraftExample
模型。
mdl = 'slexAircraftExample';
load_system(mdl)
设置传递函数系数。
path = [mdl,'/Controller/Alpha-sensor Low-pass Filter']; set_param(path,'Numerator','1.2','Denominator','[0.8*Tal,1]');
要检查 Numerator
和 Denominator
参数的值,请使用 get_param
函数。
num = get_param(path,'Numerator')
num = '1.2'
denom = get_param(path,'Denominator')
denom = '[0.8*Tal,1]'
当模块路径很长并且您要设置多个参数时,请考虑使用模块句柄。
使用模块句柄设置模块参数值
您可以使用具有以下输入参量的 set_param
函数来设置模块参数的值:
模块句柄或包括模块名称的完整模块路径,例如
'myModel/mySubsystem/myblock'
参数名称
要赋给参数的新值
有关如何获取模块路径的信息,请参阅获取模块路径和名称。
有关如何获取参数名称的信息,请参阅获取模块参数名称。
在此示例中,您设置由名为 Alpha-sensor Low-pass Filter
的 Transfer Function 模块指定的传递函数的系数。
该模块位于
slexAircraftExample
模型的Controller
子系统中。传递函数分子的系数存储在
Numerator
参数中。传递函数分母的系数存储在Denominator
参数中。要赋给分子的新值是
1.2
。要赋给分母的新值是[0.8*Tal,1]
,其中Tal
是变量。
打开示例。然后,使用 getSimulinkBlockHandle
函数获得模块句柄。要同时获取模块句柄和加载模型,请将 getSimulinkBlockHandle
函数的第二个参量指定为 true
。
path = 'slexAircraftExample/Controller/Alpha-sensor Low-pass Filter';
h = getSimulinkBlockHandle(path,true)
h = 464.0007
要设置参数值,请使用句柄指定模块。句柄包含双精度值。不要尝试手动输入句柄的数字,因为需要指定的位数可能多于 MATLAB® 显示的位数。而要将该句柄赋给变量,并使用该变量名称指定模块。
set_param(h,'Numerator','1.2','Denominator','[0.8*Tal,1]');
设置模型配置参数值
您可以使用具有以下输入参量的 set_param
函数来设置模型参数的值:
模型名称
参数名称
要赋给参数的新值
有关如何获取模型参数名称的信息,请参阅获取模型参数名称。
打开示例。然后,加载 f14
模型。
load_system('f14')
将 f14
模型的求解器设置为 ode15s
,并将停止时间设置为 3000
秒。
set_param('f14','Solver','ode15s','StopTime','3000')
要检查 Solver
和 StopTime
参数的值,请使用 get_param
函数。
solver = get_param('f14','Solver')
solver = 'ode15s'
stoptime = get_param('f14','StopTime')
stoptime = '3000'
设置模块的位置和大小
打开示例。然后,打开 f14
模型。
open_system('f14')
获取名为 Pilot
的 Signal Generator 模块的句柄。
h = getSimulinkBlockHandle('f14/Pilot');
获取模块的位置。
pos = get_param(h,'Position')
pos = 1×4
15 18 55 42
该函数返回模块位置,指定为以像素度量的坐标向量:[left top right bottom]
。
右移模块。
pos = [pos(1)+20 pos(2) pos(3)+20 pos(4)];
set_param(h,'Position',pos);
上移模块。
pos = [pos(1) pos(2)-20 pos(3) pos(4)-20];
set_param(h,'Position',pos);
水平拉伸模块。
pos = [pos(1)/4 pos(2) pos(3) pos(4)];
set_param(h,'Position',pos);
将模块名称移至模块的顶部
打开示例。然后,打开 f14
模型。
open_system('f14')
该模型有一个名为 Pilot
的 Signal Generator 模块。将模块名称移至模块的顶部。
set_param('f14/Pilot','NameLocation','top')
输入参数
object
— 对象的名称、路径或句柄
字符向量 | 字符串标量 | 数值标量
对象的名称、路径或句柄,指定为字符向量、字符串标量或数值标量。
如何指定目标对象取决于其类型。
模型 - 模型名称或句柄。
子系统 - 系统名称或句柄。
库 - 库名称或句柄。
模块 - 模块路径或句柄。
信号线 - 信号线句柄。
端口 - 端口句柄。
总线元素端口元素 - 具有元素标签的模型组件的模块路径。元素可以是端口的任何元素,例如顶层总线、嵌套总线、信号或消息。
示例: 'vdp/Mu'
示例: 'mymodel/Subsystem1/Out1.nonsinusoidal.saw'
提示
如果对同一模块多次调用
set_param
,请用数值句柄指定该模块。这种方法比对set_param
使用完整模块路径更高效。使用getSimulinkBlockHandle
获取模块句柄。不要尝试手动指定句柄的数字,例如
5.007
,因为您通常需要指定的位数多于 MATLAB® 显示的位数。要将句柄赋给变量并使用该变量名称。
数据类型: char
| string
| double
parameter
— 参数、属性或特性名称
字符向量 | 字符串标量
参数、属性或特性名称,指定为字符向量或字符串标量。有些名称区分大小写。
有关参数、属性或特性的信息,请参阅对应参考页上的编程使用信息。例如:
模型 - 请参阅配置参数参考页。
模块 - 请参阅通用模块属性和模块参考页。
端口 - 请参阅信号属性工具参考页。
总线元素端口元素 - 请参阅 In Bus Element 和 Out Bus Element 模块参考页。
要获取目标对象的所有参数,请使用带 'ObjectParameters'
选项的 get_param
函数。某些返回的参数可能仅供内部使用。
示例: 'Solver'
示例: 'SimulationCommand'
示例: 'Position'
示例: 'NameLocation'
数据类型: char
| string
value
— 参数值
由参数类型确定的格式
参数值,指定为参数类型决定的格式。一些参数值区分大小写。值通常是字符向量或字符串标量,但也可以是数值标量、数组和其他类型。
许多模块参数值指定为字符向量或字符串标量。但 Position
(它指定为向量)和 UserData
(它可以是任何数据类型)是两个例外。
限制
如果您使用
matlab -nodisplay
启动会话,则不能使用set_param
运行仿真。-nodisplay
模式不支持使用set_param
进行仿真。改用sim
函数。当使用
set_param
函数重命名模块或信号时,以下名称无效:空名称、仅包含换行符的名称以及以/
开头或结尾的名称。
提示
在 MATLAB 工作区中设置参数后,要查看模型中的变化,请更新图形。
set_param(model,'SimulationCommand','Update')
版本历史记录
在 R2006a 之前推出
MATLAB 命令
您点击的链接对应于以下 MATLAB 命令:
请在 MATLAB 命令行窗口中直接输入以执行命令。Web 浏览器不支持 MATLAB 命令。
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)