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