主要内容

保存模型

您可以通过查看Simulink中的标题栏来说明模型具有未保存的更改万博1manbetx®编辑器。当模型有未保存的更改时,一个星号(也称为dirty标志)会出现在标题栏中。

要以编程方式确定模型是否有未保存的更改,您可以查询模型参数的值get_param功能。例如,此命令保存当前系统(GCS.)如果是脏的:

如果比较字符串(get_param (gcs,“脏”),“上”) save_system;结尾

保存型号

控件上的Simulink编辑器中第一次保存模型万博1manbetx模拟选项卡上,单击保存。为模型文件提供位置和名称。要查看命名要求,请参见模型名称

要保存之前保存的模型,请遵循以下流程之一:

  • 控件上的Simulink编辑器中使用当前文件名保存模型万博1manbetx模拟选项卡上,单击保存

  • 控件上的Simulink编辑器中,将顶部模型的内容保存为新的名称或位置,或更改模型格式万博1manbetx模拟选项卡,选择保存>另存为

    请注意

    有关SLX格式的详细信息,请参阅将模型升级到SLX

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

  • 若要将顶层模型保存为与早期Simulink版本兼容的格式,请在万博1manbetx模拟选项卡,选择保存>以前的版本。看到导出模型到先前的Simulink版本万博1manbetx

模型名称

模型文件名必须以字母开头,可以包含字母、数字和下划线。文件名不能为:

  • 语言关键字(例如:如果,,结尾)

  • 保留的名称:“万博1manbetx模型”,'sl',“科幻小说”

  • 一个matlab.®软件命令

模型名称中的字符总数不得大于某个最大值,通常为63个字符。要找到系统的最大文件名长度,请使用MATLABnamelengthmax命令。

要理解MATLAB如何确定在指定模型名称时调用哪个函数,请参见功能优先顺序

如何万博1manbetx保存模型

保存模型时,Simulink会保存模型文件中与万博1manbetx模型相关联的框图,块属性和其他信息。

如果您有任何预存或保存后的回调,则按此顺序执行:

  1. 所有的块PreSaveFcn回调例程执行,然后是模型PreSaveFcn回调例程执行。

  2. 万博1manbetxSimulink写入模型文件。

  3. 所有的块postsavefcn.回调例程执行,然后是模型postsavefcn.执行。

在保存过程中,Simulink维护一个临时备份副本万博1manbetx(名为型号名称.bak.)它用于在错误的情况下恢复模型。如果在保存期间或在保存过程中的任何回调期间发生错误,Simulink:万博1manbetx

  • 还原原始文件

  • 在命名的文件中发生错误之前写入任何保存的内容型号名称.err

  • 发出错误消息

当保存从SLX文件加载的模型时,原始的SLX文件必须仍然存在。万博1manbetxSimulink执行SLX文件的增量加载和保存,因此,如果原始文件在保存时丢失,Simulink会警告说它不能完全重建该文件。

以SLX文件格式保存模型

将新型号保存为SLX

万博1manbetxSimulink默认以SLX格式保存新模型和库,并使用文件扩展名.slx。SLX格式是一个压缩包,符合打开的打开包装约定(OPC)互操作性标准。SLX格式使用Unicode存储模型信息®UTF-8以XML和其他国际格式。以SLX格式保万博1manbetx存Simulink模型:

  • 与MDL文件相比,通常会减少文件大小。MDL和SLX之间的文件大小缩小因模型而异。

  • 解决了以前版本中加载和保存包含韩文和中文的MDL文件的一些问题。

  • 允许增量加载和保存。万博1manbetxSimulink通过仅加载模型所需的部分和仅保存模型修改的部分来优化性能和内存使用。

您可以使用Simulink首选项提供新的模型和库来指定您的文件格式万博1manbetx新模型和库的文件格式

将模型升级到SLX

如果将MDL文件升级为SLX文件格式,则该文件包含与MDL文件相同的信息。使用MDL文件的函数,例如get_paramset_param.,也可以使用SLX文件格式。如果您将一个MDL文件升级为SLX文件格式,而没有更改模型名称或位置,那么Simulink将通过重命名MDL文件(如果该文件是可写的)来创建一个备份文件。万博1manbetx

如果通过单击保存现有MDL文件保存在这一点模拟选项卡,S万博1manbetximulink以MDL格式保存您的模型。

要以SLX文件格式保存现有MDL文件:

  1. 模拟选项卡,选择保存>另存为

  2. 保持默认另存为类型作为SLX,然后单击保存

    万博1manbetxSimulink以SLX格式保存模型,并通过重命名MDL文件(如果该文件是可写的)来创建备份文件mymodel.mdl。releasename,例如,mymodel.mdl.r2010b.

或者,使用save_system.:

save_system mymodel mymodel.slx
此命令创建mymodel.slx.,如果现有文件mymodel.mdl.是否可写,是否改名mymodel.mdl。releasename

SLX文件优先于MDL文件,因此如果这两个文件具有相同的名称且您没有指定文件扩展名,则加载SLX文件。

万博1manbetxSimulink项目可以帮助您将文件迁移到SLX格式。例如,请参见将MDL转换为项目中的SLX并保留修订历史记录

警告

如果使用第三方源代码控制工具,请注册模型文件扩展名.slx作为二进制文件格式。如果不这样做,这些第三方工具可能会在提交SLX文件时损坏它们。

下表描述了使用SLX文件时可能考虑的兼容性问题。

使用SLX时可能考虑兼容性的操作 会发生什么 行动
对带有扩展名的文件名的硬编码引用. mdl 脚本无法找到或处理以新文件扩展名保存的模型,.slx

使您的代码与. mdl.slx扩展。

使用函数如哪一个什么而不是文件名。

默认采用文本格式的第三方源代码控制工具 SLX文件的二进制格式可能导致第三方工具在提交文件时损坏文件。 注册.slx. mdl使用第三方源代码控制工具作为二进制文件格式的扩展。看到使用源控制工具注册模型文件
改变字符编码 在一些情况下得到了改进,例如SLX解决了以前版本中加载和保存包含韩文和中文的MDL文件的问题。但是,在不同地区之间共享模型仍然存在问题。 看到SLX文件和字符编码

MDL和SLX文件中的内容格式可能会进行更改。要在模型数据上运行,请使用文档功能(例如get_param,find_system, 和万博1manbetx仿真软件。MDLInfo)。

保存具有不同字符编码的模型

MDL文件和字符编码

当您将模型保存为MDL文件时,当前的Simulink字符编码将对存储在模型文件中的文本进行编码。万博1manbetx如果模型包含当前编码中不可表示的字符,则此行为可能导致数据损坏。如果是这种情况,模型将被保存为模型.mdl.err, 在哪里模型是模型名称,将原始模型文件未保持更改。万博1manbetxSimulink还会显示错误消息,指定无法表示的第一个字符的行和列号。

要解决这个问题,可以:

SLX文件和字符编码

以SLX格式保万博1manbetx存Simulink模型通常会减少文件大小并消除字符编码问题,因为模型是用SLX格式保存的UTF-8.编码。

你可能想把MDL文件转换成SLX文件,如果你:

  • 加载并保存具有韩文或中文字符的模型。

  • 可能会受益于压缩模型文件。

导出模型到上一个万博1manbetx版本

您可以以早期版本使用的格式导出使用最新版本的Simulink软件创建的模型。万博1manbetx例如,您可以与只能访问以前版本的Simulink的同事共享模型。万博1manbetx

以以前的格式导出模型:

  1. 在Simuli万博1manbetxnk编辑器中模拟选项卡上,单击保存。这将在最新版本的Simulink中保存一个副本。万博1manbetx此步骤可避免兼容性问题。

  2. 在Simuli万博1manbetxnk编辑器中模拟选项卡,选择保存>以前的版本

  3. 在“导出到上一个版本”对话框中,从另存为类型列表,选择要导出模型的上一个版本。该列表支持七年以前万博1manbetx的版本。

  4. 点击保存

当您将模型导出为以前版本的格式时,模型将以以前的格式保存,无论模型是否包含在该版本之后引入的块和功能。如果模型包含块或使用的功能日期晚于早期版本,那么当您在早期的Simulink软件版本中运行模型时,它可能不会给出正确的结果。万博1manbetx此外,Simulink还将万博1manbetx延迟早期版本日期的块转换为黄色、空的、屏蔽的子系统块。例如,如果您使用save_system.导出模型以发布R2007B,并且模型包含多项式块,Simuli万博1manbetxnk转换多项式块成黄,空,蒙面子系统块。万博1manbetxSimulink还从模型中删除了任何不支持的功能。万博1manbetx看到save_system.

早先保存万博1manbetx版本到另一个早期版本

您可以打开在Simulink的早期版本中创建的模型,并将该模型导出到另一个早期版本。万博1manbetx为了防止兼容性问题,请使用以下步骤:

  1. 使用当前版本的Simulink以打开使用早期版本创建的万博1manbetx模型。

  2. 在进行任何更改之前,请单击保存模型在当前版本中保存在这一点模拟标签。

    在当前版本中保存模型之后,您可以根据需要更改并保存它。

  3. 将模型保存到Simulink的早期版本中。万博1manbetx在模拟选项卡,选择保存>以前的版本

  4. 启动早期的Simulink版本并使用万博1manbetx它来打开您将导出到此早期版本的模型。

  5. 在早期版本中保存模型。

现在,您可以在Simulink的早期版本中使用模型,就像在该版本中创建的模型一样。万博1manbetx

这些Simu万博1manbetxlink首选项可以帮助您使用早期版本的模型:

另请参阅

相关的话题