保存模型如何判断模型需要保存 要判断模型是否需要保存,请查看 Simulink® Editor 的标题栏。如果模型需要保存,标题栏中的模型名称旁边会显示一个星号(称为修改标志:*)。
要通过编程方式确定模型是否需要保存,请使用模型参数 Dirty。例如: if strcmp(get_param(gcs,'Dirty'),'on') save_system;end
保存模型第一次保存模型时,请在 Simulink Editor 中选择 File > Save。为模型文件提供位置和名称。有关名称的要求,请参阅模型名称。 要保存之前保存过的模型,请执行以下操作: 要替代文件内容,请在 Simulink Editor 中选择 File > Save。 要使用新名称或在新位置保存模型,或者要从 MDL 更改为 SLX 格式,请在 Simulink Editor 中选择 File > Save As。 注意有关 SLX 格式的详细信息,请参阅将模型升级到 SLX。 要将模型保存为与早期版本兼容的格式,请选择 File > Export Model to > Previous Version。请参阅将模型导出到以前的 Simulink 版本。
模型名称模型文件名必须以字母开头,可以包含字母、数字和下划线。文件名不能为:
模型名称中的字符总数不能超过某个最大值,通常为 63 个字符。要确定您的系统的最大值是否大于 63 个字符,请使用 MATLAB 中的 namelengthmax 命令。 要了解当您指定模型名称时 MATLAB 如何确定调用哪个函数,请参阅函数优先顺序 (MATLAB)。 保存模型时会执行哪些操作?Simulink 将模型(模块图)和模块属性保存在模型文件中。 如果您指定了任何要在保存前或保存后执行的函数,它们将按以下顺序执行:
在保存过程中,Simulink 会维护一个临时备份副本(名为 modelname.bak),用于在发生错误时还原。如果在保存时,或者在保存过程中执行任何回调时发生错误,Simulink 会:
保存从 SLX 文件中加载的模型时,原始 SLX 文件必须依然存在。Simulink 对 SLX 文件执行增量加载和保存,因此,如果保存时原始文件不存在,Simulink 将发出警告,告诉您它无法完全重新构造该文件。 将模型保存为 SLX 文件格式将新模型另存为 SLX默认情况下,Simulink 将新模型和库保存为 SLX 格式,文件扩展名为 .slx。SLX 是符合开放打包约定 (OPC) 互操作性标准的压缩包。SLX 使用 Unicode® UTF-8 以 XML 和其他国际格式存储模型信息。将 Simulink 模型保存为 SLX 格式: 通常可以减小文件大小(与 MDL 格式相比)。MDL 与 SLX 之间减小的文件大小因模型而异。 解决以前的版本中加载和保存包含韩语和中文字符的 MDL 文件时出现的一些问题。 启用增量加载和保存。Simulink 通过只加载需要的模型部分并且只保存修改的模型部分,来优化性能和内存使用。
您可以使用 Simulink 预设File format for new models and libraries,指定用来保存新模型和库的文件格式。 将模型升级到 SLX如果您将 MDL 文件升级到 SLX 文件格式,文件中包含的信息与 MDL 文件相同,并且您始终拥有一个备份文件。当前存在的适用于模型的所有功能和 API,例如 get_param 和 set_param 命令,在使用 SLX 文件格式时依然可用。如果您将 MDL 文件升级到 SLX 文件格式而没有更改模型名称或位置,Simulink 将通过重命名 MDL(如果可写)来创建备份文件。 如果您使用 File > Save 来保存现有 MDL 文件,Simulink 将保留文件的当前格式,并以 MDL 格式保存您的模型。 要将现有 MDL 文件保存为 SLX 文件格式,请执行以下操作:
此外,还可以使用 save_system: save_system mymodel mymodel.slx
此命令将创建 mymodel.slx,如果现有文件 mymodel.mdl 可写,则将其重命名为 mymodel.mdl.releasename。
SLX 文件的优先级高于 MDL 文件,因此,如果存在两个同名文件,而您没有指定文件扩展名,则将加载 SLX 文件。 Simulink Projects 可以帮助您将文件迁移到 SLX。要查看示例,请参阅Upgrade Model Files to SLX and Preserve Revision History。 小心如果您使用第三方源代码管理工具,请务必将模型文件扩展名 .slx 注册为二进制文件格式。否则,当您提交 SLX 文件时,这些第三方工具可能会导致文件损坏。
[td]使用 SLX 时可能存在兼容性问题的操作 | 发生的情况 | 操作 | 硬编码引用带有 .mdl 扩展名的文件名。 | 脚本找不到或无法处理用新文件扩展名 .slx 保存的模型。 | 确保您的代码兼容 .mdl 和 .slx 扩展名。
使用函数(如 which 和 what),而不是文件名。 | 第三方源代码管理工具默认情况下采用文本格式。 | 提交二进制格式的 SLX 文件可能导致文件被第三方工具所破坏。 | 使用第三方源代码管理工具将 .slx 注册为二进制文件格式。建议对 .mdl 文件也如此处理。请参阅Register Model Files with Source Control Tools。 | 更改字符编码。 | 某些情形已得到改进,例如,SLX 解决了以前的版本中加载和保存包含韩语和中文字符的 MDL 文件时出现的一些问题。但是,在不同的区域设置之间共享模型依然存在问题。 | 请参阅 SLX 文件和字符编码。 |
MDL 和 SLX 文件内容的格式可能随时更改。要处理模型数据,请使用文档中介绍的 API(例如 get_param、find_system 和 Simulink.MDLInfo)。 保存具有不同字符编码的模型MDL 文件和字符编码当您保存模型时,将使用当前字符编码方式对模型文件中存储的文本进行编码。对于 MDL 文件,如果您原来保存模型时使用的编码方式与当前编码方式不同,可能会导致模型损坏。 如果您更改字符编码方式,可能会引入当前编码方式无法表示的字符。如果是这种情况,模型将另存为 model.mdl.err(其中 model 是模型名称),而保留原始模型文件不变。Simulink 还会显示一条错误消息,指出无法表示的第一个字符所在的行号和列号。 要修复此错误,请执行以下操作之一:
模型的原始编码方式也许能够显示您在当前会话中所做的所有文本更改,但有可能不正确。例如,假设您在会话中打开一个模型,模型的原始编码方式为 A,会话的当前编码方式为 B。再假设您编辑了该模型,引入一个在 A 和 B 中具有不同编码的字符,然后保存模型。进一步假设字符 x 在 B 中的编码与字符 y 在 A 中的编码相同,假如您在 B 有效时在模型中插入了字符 x,保存模型,然后使用 A 重新打开模型,则 Simulink 软件会将字符 x 显示为 y。为了提醒您发生此类损坏的可能性,每当您保存模型时,如果模型的当前编码方式与原始编码方式不同,但原始编码方式可以对保存到模型文件中的所有字符进行编码(但可能不正确)时,就会显示警告消息。 SLX 文件和字符编码将 Simulink 模型保存为 SLX 格式通常可以减小文件大小,并解决在以前的版本中加载和保存包含韩语和中文字符的 MDL 文件时出现的一些问题。 选择模型文件格式时的注意事项:
将模型导出到以前的 Simulink 版本您可以将使用最新版本的 Simulink 软件创建的模型导出(保存)为旧版本软件使用的格式。例如,要与只能访问旧版本 Simulink 产品的同事共享模型时。 要将模型导出为旧版本格式,请执行以下操作: 在 Simulink Editor 中,选择 File > Save。此操作用最新版本的 Simulink 保存一个副本。这一步可以避免兼容性问题。 在 Simulink Editor 中,选择 File > Export Model to > Previous Version。 此时将显示 Export to Previous Version 对话框。 在此对话框中,从 Save as type 列表中选择要将模型导出到的旧版本。此列表支持过去 7 年的版本。 点击 Save 按钮。
当您将模型导出为旧版本格式时,不管模型中是否包含在该版本之后引入的模块和功能,都会以旧版本格式保存模型。如果模型中包含的模块或使用的功能是在旧版本之后引入的,则当您在旧版本 Simulink 软件中运行模型时,可能无法得到正确的结果。而且,Simulink 会将旧版本之后的模块转换为空的黄色封装 Subsystem 模块。例如,如果您使用 save_system 将模型导出到版本 R2007b,而模型中包含 Polynomial 模块,则 Simulink 会将 Polynomial 模块转换为空的黄色封装 Subsystem 模块。Simulink 还会从模型中删除任何不支持的功能。请参阅 save_system。 从一个旧版本 Simulink 保存到另一个旧版本您可以打开在旧版本 Simulink 中创建的模型,并将其导出到另一个旧版本。如果您需要将模型从一个旧版本保存到另一个旧版本,为了防止出现兼容性问题,请按以下步骤操作。 使用最新版本的 Simulink 打开用旧版本创建的模型。 在您进行任何更改之前,通过选择 File > Save,用最新版本保存模型。 用最新版本保存模型之后,您可以根据需要进行更改并重新保存。 通过选择 File > Export Model to > Previous Version,将模型保存为旧版本 Simulink 格式。 启动旧版本 Simulink,并使用它打开您导出到该版本的模型。 通过选择 File > Save,将模型保存为旧版本格式。
现在即可在旧版本 Simulink 中使用该模型了,就好像它是在该版本中创建的一样。 另请参阅 Simulink 预设,它们可以帮助您处理旧版本的模型:
另请参阅save_system
|