使用 MATLAB 语言调整参数
要修改模块参数,可以使用 MATLAB® 函数。借助这些函数,您无需将 Simulink® 接口设置为外部模式,也无需将 Simulink 接口与实时应用程序连接。
您可以在实时应用程序运行期间或两次运行之间将其参数下载到该应用程序中。您可以在实时应用程序中修改参数,而无需重新构建 Simulink 模型,并可通过使用 Simulink Real-Time™ 函数将参数恢复为原始值。
注意
Simulink Real-Time 不支持多词数据类型的参数。
使用应用程序对象访问参数
此过程使用 Simulink 模型 slrt_ex_osc。您应该已经创建了该实时应用程序,并将其下载到了默认目标计算机上。
要在 MATLAB 命令行窗口中创建目标对象和应用程序对象,请输入:
tg = slrealtime('TargetPC1'); app = slrealtime.Application('slrt_ex_osc');
应用程序对象的 Parameters 属性是一个结构,其中包含每个参数的 BlockPath 和 BlockParameterName。要在实时应用程序中显示第一个参数的参数名称,请在 MATLAB 命令行窗口中输入:
app.Parameters(1).BlockParameterName
要更改 Gain1 模块的增益,请输入:
pt = setparam(tg, 'Gain1', 'Gain', 800)
setparam方法返回一个结构体,其中存储了源信息、上一个值和新值。当您更改参数时,目标对象中已更改的参数会被下载到实时应用程序中。开发计算机显示了以下消息:
pt = Source: {'Gain1' 'Gain'} OldValues: 400 NewValues: 800实时应用程序运行。绘图框会更新活动示波器中的信号。
停止实时应用程序。在命令行窗口中,输入:
stop(tg)
要恢复到之前的值,输入:
pt = setparam(tg, pt.Source{1}, pt.Source{2}, pt.OldValues)pt = Source: {'Gain1' 'Gain'} OldValues: 800 NewValues: 400