保存模型
您可以通过查看Simulink中的标题栏来判断模型是否有未保存的更改®编辑器。当一个模型有未保存的更改时,一个星号(也称为脏标志)会出现在标题栏中。
要以编程方式确定模型是否有未保存的更改,您可以查询模型参数的值脏
与get_param
函数。例如,此命令保存当前系统(gcs
)如果是脏的:
如果比较字符串(get_param (gcs,“脏”),“上”) save_system;结束
保存模型
要首次在Simulink编辑器中保存模型,请在模拟选项卡上,单击保存.为模型文件提供位置和名称。要查看命名要求,请参见模型名称.
要保存先前保存的模型,请遵循以下流程之一:
要使用当前文件名保存模型,请在Simulink Editor中模拟选项卡上,单击保存.
若要将顶层模型的内容保存为新名称或位置,或更改模型格式,请在Simulink编辑器中模拟选项卡上,选择保存>另存为.
请注意
关于SLX格式的详细介绍,请参见转换文件格式为SLX.
要将引用模型的内容保存为新的名称、位置或格式,请将引用模型作为顶级模型打开。然后,在模拟选项卡上,选择保存>另存为.
若要以与早期Simulink版本兼容的格式保存顶部模型,请在模拟选项卡上,选择保存>之前的版本.看到导出模型到以前的Simulink版本.
模型名称
模型文件名必须以字母开头,可以包含字母、数字和下划线。文件名不能为:
语言关键字(例如,
如果
,为
,结束
)保留名:
“模型”
,“sl”
,“科幻小说”
一个MATLAB®软件命令
模型名称中的字符总数不能大于某个最大值,通常是63个字符。要找到系统的最大文件名长度,请使用MATLABnamelengthmax
命令。
若要了解MATLAB如何确定在指定模型名称时调用哪个函数,请参见函数优先顺序.
如何动态仿真模块保存模型
当您保存模型时,Simulink将在模型文件中保存与模型相关的框图、块属性和其他信息。
如果你有任何保存前或保存后的回调,它们将按以下顺序执行:
所有的块
PreSaveFcn
执行回调例程,然后执行模型PreSaveFcn
回调例程执行。Simulink编写模型文件。
所有的块
PostSaveFcn
执行回调例程,然后执行模型PostSaveFcn
执行。
在保存过程中,Simulink维护一个临时备份副本(命名为
),用于在出现错误时恢复模型。如果在保存过程中或在保存过程中的任何回调过程中发生错误,Simulink:modelname
. bak
恢复原始文件
将错误发生前保存的任何内容写入名为
modelname
.err发出错误消息
当保存从SLX文件加载的模型时,原始的SLX文件必须仍然存在。Simulink对SLX文件执行增量加载和保存,因此如果原始文件在保存时丢失,Simulink将警告它不能完全重建该文件。
以SLX文件格式保存模型
将新模型保存为SLX
Simulink默认以SLX格式保存新模型和库,并带有文件扩展名.slx
.SLX格式是符合OPC (Open Packaging Conventions)互操作性标准的压缩包。SLX格式使用Unicode存储模型信息®UTF-8格式的XML和其他国际格式。以SLX格式保存Simulink模型:
与MDL文件相比,通常可以减小文件大小。MDL和SLX之间的文件大小减小因模型而异。
启用增量加载和保存。Simulink通过仅加载模型所需的部分和仅保存模型的修改部分来优化性能和内存使用。
您可以使用Simulink首选项指定保存新模型和库的文件格式新模型和库的文件格式.
转换文件格式为SLX
如果将MDL文件转换为SLX文件格式,则该文件包含与MDL文件相同的信息。处理MDL文件的函数,例如get_param
而且set_param
,也适用于SLX文件格式。如果您在不改变模型名称或位置的情况下将MDL文件转换为SLX文件格式,那么Simulink将通过重命名MDL文件(如果该文件是可写的)来创建备份文件。
如果您通过单击保存现有的MDL文件保存在模拟选项卡,Simulink以MDL格式保存模型。
使用实例将已存在的MDL文件保存为SLX格式。
在模拟选项卡上,选择保存>另存为.
保持默认值另存为类型为SLX,单击保存.
Simulink以SLX格式保存您的模型,并通过重命名MDL文件(如果该文件是可写的)来创建备份文件
mymodel.mdl。
,例如,releasename
mymodel.mdl.R2010b
.
另外,使用save_system
:
保存系统mymodel
mymodel.slx
,如果是现有文件mymodel.mdl
是否可写,是否重命名mymodel.mdl。releasename
.
SLX文件优先于MDL文件,因此如果两个文件具有相同的名称,并且您没有指定文件扩展名,则加载SLX文件。
谨慎
如果您使用第三方源代码控制工具,请注册模型文件扩展名.slx
作为二进制文件格式。如果您不这样做,这些第三方工具可能会在您提交SLX文件时损坏它们。
下表描述了使用SLX文件时可能考虑兼容性的操作。
使用SLX时可能的兼容性考虑的操作 | 会发生什么 | 行动 |
---|---|---|
对具有扩展名的文件名的硬编码引用. mdl |
脚本无法找到或处理使用新文件扩展名保存的模型,.slx . |
使您的代码与 使用如下函数 |
默认采用文本格式的第三方源代码控制工具 | SLX文件的二进制格式可能会导致第三方工具在提交文件时损坏文件。 | 注册.slx 而且. mdl 扩展为第三方源代码控制工具的二进制文件格式。看到用源代码控制工具注册模型文件. |
MDL和SLX文件中的内容格式可能会发生变化。要对模型数据进行操作,请使用文档化的函数(例如get_param
,find_system
,仿真软件。MDLInfo
).
导出模型到前动态仿真模块版本
您可以将使用最新版本的Simulink软件创建的模型导出为早期版本使用的格式。例如,您可以与只能访问以前版本的Simulink的同事共享模型。
以较早的格式导出模型:
在Simulink编辑器中模拟选项卡上,单击保存.这将在最新版本的Simulink中保存一个副本。这一步避免了兼容性问题。
在Simulink编辑器中模拟选项卡上,选择保存>之前的版本.
在“导出到以前版本”对话框中,从另存为类型列表中,选择要将模型导出到的上一个版本。该列表支持7年以前的版本。
点击保存.
当您将模型导出到以前版本的格式时,模型将以以前的格式保存,而不管模型是否包含在该版本之后引入的块和特性。如果模型包含块或使用较早版本过期的特性,则在较早版本的Simulink软件中运行模型时,模型可能不会给出正确的结果。此外,Simulink还会将延迟到早期版本的块转换为黄色、空的、掩码的子系统块。例如,如果你使用save_system
将模型导出到版本R2007b,模型包含多项式块,Simulink转换多项式方块变成黄色,空的,蒙面的子系统块。Simulink还从模型中删除了任何不受支持的功能。看到save_system
.
从先前保存动态仿真模块版本到另一个较早版本
您可以打开在早期版本的Simulink中创建的模型,并将该模型导出到不同的早期版本。为避免兼容性问题,请使用以下步骤:
使用当前版本的Simulink打开用早期版本创建的模型。
在进行任何更改之前,通过单击将模型保存到当前版本保存在模拟选项卡。
在将模型保存到当前版本后,您可以根据需要更改并重新保存它。
将模型保存在早期版本的Simulink中。在模拟选项卡上,选择保存>之前的版本.
启动较早的Simulink版本,并使用它打开导出到该较早版本的模型。
在早期版本中保存模型。
您现在可以在早期版本的Simulink中使用模型,就像在该版本中创建模型一样。
这些Simulink首选项可以帮助您使用早期版本的模型: