文档

本页面提供的是上一版软件的文档。最新版软件的对应英语文档已经更新。如果您是在 MATLAB 中浏览此页面,则可以在“MATLAB 帮助预设项”面板中将文档语言设置为“英语”,以此方式来查看最新版软件的英语文档。如果您是在网页上浏览此页面,则可以从页面左下的国家/地区下拉菜单中选择 United States,以此方式来查看最新版本的英语文档。

对动态系统进行仿真

本教程演示如何使用 Simulink® 软件对动态系统模型进行仿真,然后根据结果改进模型。准备好模型进行仿真后,可以使用接口来输入测量的系统数据并设置室温。

要查看已准备好进行仿真的示例模型,请在 MATLAB® 命令行窗口中输入

load(fullfile(matlabroot,...
'help', 'toolbox', 'simulink', 'examples', 'ex_househeat_measured_data.mat'))
open_system(fullfile(matlabroot,...
'help', 'toolbox', 'simulink', 'examples', 'ex_househeat_simulation_prepared'))

准备进行仿真

验证仿真能否表示所建模系统的行为。首先通过试验对具有与您的模型中类似信号的系统的物理特性进行测量:

  • 收集物理系统的数据

  • 准备模型进行仿真

有关此工作流的详细说明,请参阅准备进行仿真

收集并绘制系统数据

测量实际房屋供暖系统的动态特性。您需要使用测得的数据来进行模型仿真,以验证模型的行为和准确性。

  1. 测量房屋室外和室内的温度,每 6 分钟测量一次,持续 24 小时。

  2. 将测得的数据输入 Microsoft® Excel® 工作表中或打开示例电子表格。在 MATLAB 命令行窗口中,输入

    winopen(fullfile(matlabroot,...
    'help', 'toolbox', 'simulink', 'examples', 'ex_househeat_measured_data.xls'))

  3. 查看测量数据图。室内温度数据显示热风加热器打开时的温度突升。这是热风供暖系统的典型模式。

准备模型进行仿真

通过添加数据输入的外部接口和添加输入控制信号,准备模型以进行仿真。

  1. 使用您在动态系统建模教程中创建的模型或打开示例模型。在 MATLAB 命令行窗口中,输入

    open_system(fullfile(matlabroot,...
    'help', 'toolbox', 'simulink', 'examples', 'ex_househeat_modeling'))

  2. Inport 模块 In2 替换为 Constant 模块并将 Constant 参数设置为 20Constant 模块用于设置调温器温度。

  3. 添加一个 Inport 模块。将 Port number 设置为 1。此操作同时会将室外温度信号的 Port number 设置为 2

  4. 将第一个 Inport 模块重命名为 Inside Temperature。将第二个 Inport 模块重命名为 Outside Temperature

  5. 添加一个 Outport 模块,并将其连接到第一个 Inport 模块 (Inside Temperature)。需要使用 Outport 模块来保存(记录)信号。

运行并评估仿真

验证模型的准确性并优化参数。需要考虑进行优化的参数包括加热器滞后、温度偏移以及房屋保温。按照以下步骤验证您的模型:

  • 导入数据

  • 运行仿真

  • 评估仿真结果

  • 更改模型参数

  • 重新运行仿真

有关工作流的详细说明,请参阅在基本仿真工作流中运行并评估仿真

通过 Root Inport Mapping 导入数据

您可以使用 Root Inport Mapper 工具将 Excel 电子表格中的测量信号数据导入到 Simulink 模型中。

  1. 打开任意 Inport 模块。点击 Connect Input 按钮以打开 Root Inport Mapper。

  2. 在工具条上,点击 From Spreadsheet

  3. 在 From Spreadsheet 对话框中,点击浏览按钮。浏览并选择文件 matlabroot\help\toolbox\simulink\examples\ex_househeat_measured_data.xls。点击 Open。点击 OK 以导入电子表格。

  4. Signals 下拉列表中选择 Preview Signals

  5. 在左侧展开 Sheet1 的树视图。选中 Inside Temperature 和 Outside Temperature 复选框。

  6. 点击 Close Signal Preview

  7. 在左侧选择 Sheet1Scenario Signal 列显示 Excel 电子表格中的两个信号,并显示图标 ,指示信号未映射。

  8. 在工具条上,选择 Port Order 选项。从 Options 下拉列表中,选中 Update Model 复选框。

  9. Map to Model 下拉列表中选择 “Map Unconnected”。映射汇总显示 Excel 电子表格中的信号已映射到 Input 端口模块。

  10. 点击 Mark for Simulation。映射汇总显示 Sheet1 已标记为进行仿真,并且已在 MATLAB 工作区创建 Dataset 对象。

  11. 将信号数据保存到 MAT 文件中。在 MATLAB 命令行窗口中,键入:

    save('ex_househeat_measured_data.mat', 'Sheet1')

配置模型以加载信号数据

映射到输入端口的信号数据位于 MATLAB 工作区变量中。对于每个新的 MATLAB 会话,您必须手动重新加载数据,或者让模型预加载函数为您加载数据。

  1. 从 Simulink Editor 菜单中,选择 File > Model Properties > Model Properties

  2. 选择 Callbacks 选项卡。

  3. 在 Model callbacks 部分,选择 PreLoadFcn。

  4. 在 Model pre-load function 框中,输入

    load('ex_househeat_measured_data.mat')

  5. 点击 OK

配置模型以保存仿真结果

您需要对模型进行配置,以保存(记录)仿真过程中生成的信号数据。然后,可以使用 Simulink Data Inspector 查看一次仿真所记录的信号。

  1. 在模型中,选择 Simulation > Model Configuration Parameters。在左窗格中,选择 Data Import/Export

  2. 在右窗格中,清除 TimeOutput 复选框。

  3. 选中 Signal logging 复选框。

  4. 选中 Record logged workspace data in Simulation Data Inspector 复选框。

  5. 点击 OK

选择要保存的信号

标识要显示在 Simulink Data Inspector 中的信号,如果尚未命名这些信号,则为它们命名,然后设置记录参数。

  1. 右键点击 Inside Temperature 信号线,然后选择 Properties

  2. Signal name 框中,输入 Measured Room Temperature。选中 Log signal data 复选框。信号线上方将出现一个记录标记

  3. 为这些信号命名并选择记录。

    信号位置信号名称
    来自输出端口 2 的 Outside Temperature。Measured Outside Temperature
    来自 Room 子系统输出端口的 Room TemperatureRoom Temperature

运行仿真

导入数据并为信号启用数据记录之后,即可运行仿真。

  1. 使用您准备进行仿真的模型或者打开示例模型。在 MATLAB 命令行窗口中,输入

    open_system(fullfile(matlabroot,...
    'help', 'toolbox', 'simulink', 'examples', 'ex_househeat_simulation_prepared'))

  2. 在模型中,选择 Simulation > Model Configuration Parameters。在左窗格中,选择 Solver。将 Stop time 设置为 24(小时),将 Type 设置为 “Variable-step”,将 Solver 设置为 “ode45”。点击 OK

  3. 点击 Run 按钮

    该模型仿真使用来自 root import block 的室外温度数据作为输入,从 0.0 开始运行,到 24.0 结束。

将仿真结果与测得的系统数据进行比较

使用 Simulink Data Inspector 将仿真的输出信号与测得的数据进行比较。

  1. 在 Simulink Editor 工具栏上,点击 Simulation Data Inspector 按钮

    每次仿真模型时,Runs 窗格中都会显示一个单独的运行图。

  2. 选中所有信号复选框。您每选择一个信号,就会绘制一个图。

    顶部的信号是 Measured Room Temperature。中间的信号是仿真的 Room Temperature。底部的信号是 Measured Outside Temperature。

确定对模型所做的更改

对模型所做的一个明显更改是调温器的滞后。仿真的室内温度会围绕设定的温度点 20 度在 18-22 度之间振荡。测得的室内温度会围绕相同的设定点在 20-25 度之间振荡。

  1. 打开 Thermostat 子系统中的 Relay 模块。

  2. Switch on point2 更改为 0,因为室内温度与设定点之间的差为 0。

  3. Switch off point-2 更改为 -5。当室内温度高于设定点 5 度时,您希望关闭加热器。设定点比室内温度低 5 度。

比较不同仿真的结果

使用 Simulation Data Inspector,可以比较使用不同模型参数的两次仿真之间的差异。此比较会显示所做的更改对模型的准确性有多大改进。

  1. 对模型进行仿真。

  2. 打开 Simulation Data Inspector。

  3. 通过选择该次运行左侧的箭头来展开记录信号的列表。对于 Run1,选中 Measured Outside TemperatureMeasured Room Temperature 复选框。对于 Run2,选中 Room Temperature 复选框。

  4. 查看信号。现在,仿真的室内温度最小值和最大值与测得的室内温度值一致。

报告和绘制仿真结果

从 Simulation Data Inspector 中创建报告和绘图。

  1. 在 Simulation Data Inspector 工具栏中,点击 Report 按钮。

  2. 在 Create Report 对话框中,选择 Inspect Signals。点击 Create Report。报告随即在 Web 浏览器中打开。

  3. 查看报告。

相关主题

此主题对您有帮助吗?