通过观察者无线访问模型数据
观察器允许您监视系统模型的动态响应,同时保持系统模型设计和系统结果的完整性。观察者使用两种类型的块,观察者参考块和观察者港口块。的观察者参考块将一个系统模型无线链接到一个观察者模型,观察者模型包含验证逻辑。在Observer模型中,您使用观察者港口块从系统模型访问数据以驱动验证逻辑。
Simulink的类型®可以观察到的信号和模型数据有:
连续时间和离散时间信号
零控制信号
标量信号
宽的信号
Nonvirtual总线信号
消息
条件子系统信号
Stateflow®局部数据参数,但局部数据、参数、信号和其他在Simulink子系统中定义的Stateflow状态数据除外。
状态流状态自活动,除非该活动位于状态流状态内的Simulink子系统中。
观察者参考块
观察者参考块将系统模型无线连接到观察者模型。观察者参考块只能位于系统模型的顶层,没有输入或输出端口。将Simulink信号或其他模型数据映射到观察者港口观察者模型中包含的块。一旦将观察者端口块映射到一个信号或数据,就可以将端口连接到观察者模型中的验证子系统。运行您的系统模型也会运行链接的Observer模型。
无线访问允许您使用观察器来监视系统模型,而不会对系统造成更改。观察器允许您在系统设计和验证子系统之间创建一个清晰的区分。
添加一个观察者参考块
的观察者参考块引用一个单独的验证模型,您可以使用该模型来验证系统模型。添加一个观察者参考块到您的系统模型,首先,在Simulink工具条中,打开Apps并在模型验证、验证和测试部分单击Simulink Test。点击添加观察者引用在测试选项卡。或者,右键单击Simulink画布的顶层并选择观察人士>在这里添加观察者引用从上下文菜单。一个观察者参考块被添加到您的系统模型中,并创建并打开一个Observer模型。您必须将观察者模型保存在MATLAB的可写文件夹中®路径。
连接一个现有的观察者模型
连接一个观察者参考块到您已经创建的观察者模型,首先将您的观察者模型保存在MATLAB路径下的一个可写文件夹中。接下来,右键单击观察者参考块,并选择块参数(ObserverReference).
输入要连接到系统的Observer模型的名称并进行选择应用.当您双击观察者参考块,您的观察者模型将在一个新窗口中打开。
从信号或其他模型数据创建观察者模型
要创建映射到模型中的信号线或可观察数据的Observer模型,请选择一个或多个您想要观察的信号或数据。然后,单击添加观察者引用在测试选项卡。或者,右键单击信号或数据并选择观察人士,要观察的项类型,以及新观察家.Simulink创建一个观察者模型,并添加一个观察者参考块到您的系统模型。
连接信号或其他模型数据使用观察者港口块
每个Observer模型都包含一个或多个观察者港口块。映射一个观察者港口块连接到系统模型中的模型对象或信号观察者港口块输出与其映射对象或信号相同的输出。一个新的观察者港口块显示一条贯穿信号符号的线,表示该块没有映射到任何信号或对象。
进入“管理观察器”对话框
绘制一个观察者港口块到系统模型中的信号或对象,使用以下方法之一打开“管理观察者”对话框:
在测试选项卡上,单击管理的观察者.
单击右下角的齿轮观察者参考块。
右键单击观察者引用块和选择观察人士>管理的观察者.
在观察者模型中,双击一个观察者端口块。
使用“管理观察者”对话框,您可以:
筛选观察信号和对象
添加、删除或配置观察者港口块
跟踪观察者端口和模型之间的信号和对象
在管理观察者对话框的左侧是可观察区域面板。可观察区域面板显示模型的块层次结构和可观察输出。观察到的信号或对象在层次结构中显示为粗体。
“管理观察器”对话框的右侧显示了“观察器”面板。的观察者面板显示块层次结构,包括观察者端口观察者参考块。一个观察者港口映射到信号或对象的块显示粗体并显示它所附加的信号。一旦观察者港口映射到信号或对象时,其块图标更新以显示观察者港口附加到信号或对象上。
若要查看被观察对象的完整路径,请指向观察者港口块。
如果更改系统模型中观察到的信号或对象的名称,则观察者参考控件的输出信号的名称观察者港口块。如果信号没有命名,也没有标签,则输出观察者港口块设置为空字符串。
一个地图观察者港口块到一个信号或对象
把一个信号或物体映射到观察者港口块,打开管理观察者对话框。在“可观察区域”面板中,选择要观察的信号或对象。将信号或对象映射到一个新的观察者港口块,双击所选项目或单击添加新的观察者端口图标.把信号或物体映射到现有的观察者港口块,在“观察者”面板中选择“观察者端口”,单击“重新配置”观察者港口图标.在观察者模型中,您可以将观察者端口的输出连接到验证子系统,以测试结果。
跟踪观察项到模型信号和对象
您可以在“管理观察器”对话框中跟踪被观察项目及其观察器端口。您还可以跟踪“管理观察者”对话框和系统模型之间的项目,以及系统模型和观察者模型之间的项目。
要在“管理观察者”对话框中跟踪被观察项目到其观察者端口,请使用以下方法之一:
双击Observer面板中的ObserverPort项目。被观察的项目在“可观察区域”面板中高亮显示。
右键单击观察者面板中的ObserverPort项目并选择显示在左面板.被观察的项目在“可观察区域”面板中高亮显示。
要在“管理观察器”对话框和系统模型之间跟踪观察项或观察器端口,请使用以下方法之一:
右键单击观察者面板或可观察区域面板中的ObserverPort项目并选择在模型.观察到的项目在模型中突出显示。
右键单击系统模型中观察到的信号或对象并选择进入关联的观察者端口.关联的观察者端口在观察者模型中突出显示。
要在系统模型和观察者模型之间跟踪观察者端口和被观察项,可以使用以下方法之一:
右键单击观察者模型中的观察者端口并选择观察人士>进入已观察的<项目类型>.观测到的信号或物体在系统模型中突出显示。
右键单击系统模型中观察到的信号或对象并选择观察人士>进入关联的观察者端口.关联的观察者端口在观察者模型中突出显示。
类来模拟系统模型观察者参考块
观察者模型用于监视系统模型中的信号,并检查系统模型是否在指定的参数内运行。有或没有观察者参考块,您的系统模型仿真结果是相同的。的观察者参考块不会影响系统模型的编译。
请注意
系统模型和观察者模型都必须在正常的仿真模式下运行。两种模型都可以以固定步长速率或变步长速率运行,或者一种模型可以以固定步长速率运行,另一种模型可以以可变步长速率运行。这两个模型也可以使用相同或不同的求解器。看到选择一个解算器.
使用观察器验证热泵温度
这个例子展示了如何使用观察者参考块无线观察信号和验证结果。在该系统中,使用Simulink对植物进行建模,使用Stateflow对控制器进行建模。本例的目标是监控热泵的温度以及当热泵冷却或加热房间时的温度。风扇吹向的方向表示冷却或加热。数据名称为pump_dir
,并连接到状态流图中的端口3。
打开
sltestHeatpumpExample
模型。cd (fullfile (docroot,“工具箱”,“slt”,“示例”))open_system(“sltestHeatpumpExample”)
在Apps选项卡中,在模型验证、验证和测试部分单击Simulink Test。的测试选项卡中打开
创建Observer模型来测量泵的温度。
在测试选项卡上,单击添加观察者引用.模型增加了一个观察者参考块到您的系统模型,并创建一个名为
sltestHeatpumpExample_Observer1
.添加并映射一个观察者端口块。
打开Plant子系统并右键单击信号
T
.选择观察人士>观察选择信号>sltestHeatpumpExample /观察者(sltestHeatpumpExample_Observer1).Observer模型添加了观察者港口映射到信号的块T
.将新的Observer模型保存在一个可写文件夹中。添加并映射另一个观察者端口块。
在观察者模型中测试选项卡上,单击观察者添加端口.双击新观察者港口打开“管理观察者”对话框。在观察者面板中,第二个观察者港口,
ObserverPort1
,列在第一个端口下面。映射
ObserverPort1
到Simulink数据pump_dir
,点击ObserverPort1
.在“可观察区域”面板中展开控制器
而且controller_chart
,并选择Outport3
.单击Reconfigure图标.的ObserverPort1
名称更新ObserverPort1 (controller_chart: 3)
.观察者端口块位于观察者模型中,现在已被映射并准备连接到作用域或验证子系统。
将验证子系统转换为观察者引用
转换验证子系统(仿真软件设计验证器)to Observer Reference块是一种对系统模型进行整理的方法。选择要转换的子系统和测试选项卡上,单击发送给观察者.或者,右键单击验证子系统并选择观察人士>移动选定块到观察者>新观察家.此操作无法撤消。
这个模型包含了验证子系统,安全属性。
通过将安全属性验证子系统转换为观察者参考块,您删除连接验证子系统到系统模型的信号,同时保留测试系统完整性的能力。
这两个信号,throt
而且output1
,自动映射为两个观察者港口观察者模型中的块,sltestBasicCruiseControlHarnessModel_Observer1
.
观察员的考虑和限制
模型仿真
观察者模型不模拟以下情况:
观察者模型包含根级别的导入或输出块。
观察者模型是一个库或子系统引用模型。
观察者参考块
观察者参考块在模拟过程中被忽略,如果:
您可以使用普通模式以外的任何模拟模式(例如,加速器、SIL/PIL)。
您正在生成代码。
观察者引用块位于模型引用层次结构中。观察者引用块只在顶级模型的根处被支持。
观察者引用块在观察者模型中。不支持观察者模型的递归。
数据导出与输出
观察者支持日志信号或数据存储内存和保存最终操作点。不支持所有其他数据导出选项,如时间、状态、输出、最终状态和保存到文件。
“到工作区”和“观察器”中的“仪表板”块不受支持,也不产生输出。
观察者和设计模型之间的设置不匹配
当观察者模型中的这些设置与设计模型中的设置不同时,将使用设计模型设置,而忽略观察者模型设置。
数据导入/导出设置
覆盖范围设置
解算器停止时间