主要内容

本页采用了机器翻译。点击此处可查看最新英文版本。

保存模型

您可以保存模型、模板或库。有关如何创建模板和库的信息,请参阅Create Template from Model创建自定义库

您可以将 Simulink® 模型保存为 SLX 格式或 MDL 格式。

默认情况下,Simulink 以 SLX 格式保存新模型和库,文件扩展名为 .slx。SLX 格式是符合开放打包约定 (OPC) 互操作性标准的压缩包。SLX 格式使用 Unicode® UTF-8 以 XML 和其他国际格式存储模型信息。

与 MDL 文件相比,以 SLX 格式保存 Simulink 模型通常可以减小文件大小。文件大小的减少取决于模型。

以 SLX 格式保存模型还可以实现增量加载和保存。Simulink 通过仅加载模型所需的部分并仅保存模型的修改部分来优化性能和内存使用情况。

您可以使用 Simulink 预设项File format for new models and libraries 指定保存新模型和库的文件格式。

除了模型本身之外,您还可以存储和保存模型运行所需的数据。当模型打开时,您可以使用变量在模型工作区和基础工作区中存储数据。有关这些工作区之间的差异的更多信息,请参阅模型工作区。当您关闭模型时,除非您保存数据,否则数据将被删除。

您可以将数据保存为 MAT 文件,或使用数据字典。数据字典是存储模型相关数据的持久性存储库。有关数据字典的详细信息,请参阅什么是数据字典?

确定模型是否有未保存的更改

如果模型有未保存的更改,则 Simulink 编辑器标题栏中的模型名称旁边会出现一个星号(也称为脏标志)。

Title bar showing an asterisk next to the model name

要以编程方式确定模型是否有未保存的更改,请使用 get_param 函数查询模型参数 Dirty 的值。例如,如果系统脏了,此命令将保存当前系统(gcs)。

if strcmp(get_param(gcs,'Dirty'),'on')
  save_system;
end

保存模型

第一次保存模型时,请在 Simulink 编辑器中,在仿真选项卡上,点击保存。有关文件命名要求,请参阅选择有效的模型文件名

要重新保存以前保存的模型,请执行以下操作之一:

  • 要使用当前文件名保存模型,请在 Simulink 编辑器的仿真选项卡上,点击保存

  • 要将模型内容保存为新名称或位置,或者更改模型格式,请在 Simulink 编辑器中的仿真选项卡上,选择 保存 > 另存为。有关 SLX 格式的信息,请参阅 将模型文件格式转换为 SLX

  • 要以与以前的 Simulink 版本兼容的格式保存模型,请在仿真选项卡上,选择 保存 > 以前的版本。有关详细信息,请参阅将模型导出为 Simulink 的先前版本

  • 要将引用模型的内容保存为新名称、新位置或新格式,请打开引用模型的文件。然后,在仿真选项卡上,选择保存 > 另存为

选择有效的模型文件名

模型文件名必须以字母开头,可以包含字母、数字和下划线。模型名称的总字符数不得超过 150

即使文件没有有效名称,您也可以打开模型,例如 mymodel (1).slx。Simulink 打开模型并分配有效名称。要重命名或保存对新命名的模型的更改,点击保存

命名模型时,请勿使用:

  • 语言关键字(例如,ifforend

  • 保留名称(例如,simulink

  • MATLAB® 内置函数(例如 plot

有关当当前范围内的多个文件具有相同名称时 MATLAB 如何确定要调用哪个函数的信息,请参阅 函数优先顺序

保存模型变量和数据

如果您的 MATLAB 工作区包含您的 Simulink 模型运行所需的变量和数据,您可以保存这些内容并在下次打开模型时重用它们。

如果要保存工作区的所有内容,请在 MATLAB 编辑器的 MATLAB 工具条中的主页选项卡上的变量部分中点击保存工作区。将数据保存在 MAT 文件中。

如果您想保存工作区中的特定项目,请在 MATLAB 编辑器的工作区面板中右键点击该项目并选择另存为。将该项目保存在 MAT 文件中。

下次打开模型时,在运行仿真之前,将 MAT 文件加载到工作区中。请参阅从 MAT 文件加载模型变量和数据

指定在保存模型之前或之后运行的代码

回调是在指定的操作点运行的代码,例如在加载或保存模型之后。

您可以通过选择相应类型的回调来指定操作点。

  • PreSaveFcn 函数在您保存模型之前运行。

  • 保存模型后,PostSaveFcn 函数立即运行。

例如,如果您想在保存模型后自动清除所有工作区变量的值:

  1. 如果属性检查器已打开且最小化,请点击模型窗口右边缘的属性检查器将其恢复。

    如果属性检查器未打开,请在 Simulink 工具条的建模选项卡上的设计部分中点击属性检查器

  2. 属性选项卡上的回调部分中,选择 PostSaveFcn

  3. 在文本框中输入此代码。

    clearvars;

    提示

    或者,您可以将代码保存为 MATLAB 脚本,然后在文本框中输入脚本的名称。

  4. 保存模型。

Model Properties dialog box with the PostSaveFcn callback type selected and the clearvars command in the right pane

现在,每次保存模型时,当模型保存完成时,工作区就会被清除。

要了解有关回调的更多信息,请参阅使用回调自定义模型行为。要以编程方式定义加载变量的回调,请参阅打开模型时通过编程方式加载变量

将模型文件格式转换为 SLX

要将现有的 MDL 文件转换为 SLX 文件格式:

  1. 仿真选项卡上,选择保存 > 另存为

  2. 将默认的保存类型保留为 SLX,然后点击保存

当您将 MDL 文件转换为 SLX 文件格式时,该文件包含与 MDL 文件相同的信息。

适用于 MDL 文件的函数(例如 get_paramset_param)也适用于 SLX 文件格式。

当您将 MDL 文件转换为 SLX 文件格式而不更改模型名称或位置时,软件会通过将 MDL 文件(如果该文件可写)重命名为 mymodel.mdl.releasename(例如 mymodel.mdl.R2010b)来创建备份文件。

SLX 文件的优先级高于 MDL 文件,因此,如果存在两个同名文件,而您没有指定文件扩展名,则将加载 SLX 文件。

小心

如果您使用第三方源代码管理工具,请将模型文件扩展名 .slx 注册为二进制文件格式。否则,第三方工具可能会在您提交 SLX 文件时损坏它们。

下表描述了使用 SLX 文件时可能需要考虑兼容性的操作。

使用 SLX 时可能存在兼容性问题的操作发生的情况 操作
硬编码引用带有 .mdl 扩展名的文件名。脚本找不到或无法处理用新文件扩展名 .slx 保存的模型。

确保您的代码兼容 .mdl.slx 扩展名。

使用函数(如 whichwhat),而不是文件名。

第三方源代码管理工具默认情况下采用文本格式。提交二进制格式的 SLX 文件可能导致文件被第三方工具所破坏。使用第三方源代码管理工具将 .slx.mdl 扩展名注册为二进制文件格式。请参阅在 Git 中注册二进制文件使用 SVN 注册二进制文件

MDL 和 SLX 文件内容的格式可能随时更改。要对模型数据进行操作,请使用记录的函数,例如 get_paramfind_systemSimulink.MDLInfo

将模型导出为 Simulink 的先前版本

您可以将模型导出到 Simulink 的先前版本。例如,您可以与只能访问旧版本 Simulink 的同事共享模型时。

要将模型导出到 Simulink 的早期版本:

  1. 在继续操作之前,请确保对模型所做的所有更改都已保存。如果模型有未保存的更改,请在 Simulink 编辑器中的仿真选项卡上点击保存

  2. 在 Simulink 编辑器中,在仿真选项卡上,选择保存 > 以前的版本

  3. 在“导出到以前的版本”对话框中,从另存类型列表中选择要将模型导出到的旧版本。此列表支持过去七年的版本。

  4. 点击保存

将模型导出到以前的版本时,无论模型是否包含该版本之后引入的模块和功能,该模型都会保存在以前的版本中。如果模型包含或使用了在前一版本之后开发的模块或功能,则在前一版本的 Simulink 中运行该模型时可能无法给出正确的结果。

Simulink 将先前版本中引入的模块转换为黄色、空的、封装的 Subsystem 模块。

Simulink 还从模型中删除了任何不受支持的功能。请参阅 save_system

另请参阅

主题