主要内容

本页采用了机器翻译。点击此处可查看最新英文版本。

sltest.observer.observeElement

观测模型元素

自 R2024b 起

    说明

    [obsport,obsmodel] = sltest.observer.observeElement("Signal",path,port) 通过创建一个 Observer 模型、向该模型添加一个 Observer Port 模块并设置该模块来观测连接到其 port 指定的模块的端口索引 path 的信号。

    示例

    [obsport,obsmodel] = sltest.observer.observeElement("SFData",path,dataobj) 通过创建一个 Observer 模型、向该模型添加一个 Observer Port 模块并设置该模块来观测其 dataobj 指定的 Stateflow 图中的 Stateflow® 数据对象 path

    示例

    [obsport,obsmodel] = sltest.observer.observeElement("SFStateActivity",path,stateobj,activity) 通过创建一个 Observer 模型、向该模型添加一个 Observer Port 模块并设置该模块来观测其 stateobj 指定的 Stateflow 图中 Stateflow 状态 path 的指定活动,以观测该对象的状态活动。该状态必须位于 Stateflow 图的顶层。

    示例

    [obsport,obsmodel] = sltest.observer.observeElement("FMUInternalVariable",path,fmuvar) 通过创建一个 Observer 模型、向该模型添加一个 Observer Port 模块并设置该模块来观测其路径指定的 FMU 中的功能模型单元 (FMU) 内部变量 fmuvar

    示例

    [obsport,obsmodel] = sltest.observer.observeElement(___,obsref) 在现有的 Observer 模型中创建并配置一个 Observer Port 模块,该块链接到指定的 Observer Reference 模块 obsref

    示例

    示例

    全部折叠

    output_torque 模型中 transmission 模块的第二个输出端口观测 sf_car 信号。

    import sltest.observer.*
    open_system("sf_car") 
    
    [obsport,obsmodel] = observeElement("Signal",...
       Simulink.BlockPath("sf_car/transmission"),2);

    观测 up_th 模型中的 Stateflow 图中的 sf_car 数据。

    import sltest.observer.*
    open_system("sf_car") 
    
    sfdataobj = find(sfroot,"-isa","Stateflow.Data",...
       "-depth",4,Name = "up_th");
    [obsport,obsmodel] = observeElement("SFData",...
       Simulink.BlockPath("sf_car/shift_logic"),sfdataobj);

    观测 OFF 模型的 Stateflow 图中的 observe_sfstate_activity 状态。

    import sltest.observer.*
    open_system("observe_sfstate_activity") 
    
    blockPath = Simulink.BlockPath...
       ({'observe_sfstate_activity/Chart'});
    chartObj = find(sfroot,"-isa","Stateflow.Chart");
    stateObj = find(chartObj,"-isa",...
       "Stateflow.State",Name="OFF");
    activityType = 'Self';
    
    obsRef = Simulink.findBlocksOfType...
       ('observe_sfstate_activity','ObserverReference');
    [obsport,obsmodel] = observeElement("SFStateActivity",...
       blockPath,stateObj,activityType,obsRef);

    观测 controlSignal 模型中的功能模型单元 (FMU) 中的 fmuPIDwithInternalVar 内部变量。

    import sltest.observer.*
    open_system("fmuPIDwithInternalVar")
    
    fmuvar = 'controlSignal';
    blockPath = Simulink.BlockPath('fmuPIDwithInternalVar/FMU');
    
    [obsport,obsmodel] = observeElement("FMUInternalVariable",...
       blockPath,fmuvar);

    输入参数

    全部折叠

    系统模型中要观测的元素的路径,指定为 Simulink.BlockPath 对象。每种元素类型特定的路径是:

    • 'Signal' - 信号来源的模块

    • 'SFData' - 包含数据的 Stateflow 图的顶层

    • 'SFStateActivity' - 包含状态活动的 Stateflow 图的顶层

    • 'FMUInternalVariable' - 功能模型单元

    标识信号端口的端口索引,指定为整数。

    要观测的 Stateflow 数据对象,指定为 Stateflow.Data (Stateflow) 对象。

    要观测的 Stateflow 状态对象,指定为 Stateflow.State (Stateflow) 对象。

    Stateflow 活动类型,指定为 'Self'。有关 Stateflow 活动类型的信息,请参阅 Monitor State Activity Through Active State Data (Stateflow)

    要观测的 FMU 内部变量,指定为字符串或字符向量。

    Observer Reference 模块,指定为字符串、字符向量或双精度值。使用字符串或字符向量指定 Observer Reference 模块的路径,或使用双精度值指定 Observer Reference 模块的句柄。

    输出参量

    全部折叠

    Observer Port 模块,以双精度数据类型模块句柄形式返回。

    Observer 模型,以双精度数据类型模型句柄形式返回。

    版本历史记录

    在 R2024b 中推出