主要内容

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

sltest.observer.configureObserverPort

配置 Observer Port 模块

自 R2024b 起

    说明

    sltest.observer.configureObserverPort(obsport,"Signal",path,port) 配置 Observer Port 模块、obsport 来观测位于 port 的模块的端口 path 处的信号。

    示例

    sltest.observer.configureObserverPort(obsport,"SFData",path,dataobj) 配置 Observer Port 模块 obsport 来观测位于 dataobj 的图中的 Stateflow® 数据对象 path

    示例

    sltest.observer.configureObserverPort(obsport,"SFStateActivity",path,stateobj,activity) 配置 Observer Port 模块 obsport 来观测位于 activity 的 Stateflow 图中 Stateflow 状态 stateobj 的指定 path。仅当状态位于 Stateflow 图的顶层时,您才能观测到状态活动。

    示例

    sltest.observer.configureObserverPort(obsport,"FMUInternalVariable",path,fmuvar) 配置 Observer Port 模块 obsport 来观测位于 fmuvar 的模块中的功能模型单元 (FMU) 内部变量 path

    示例

    示例

    全部折叠

    import sltest.observer.*
    open_system("sf_car")
    
    mdlHandle = get_param(gcs,"Handle");
    obsrefHandle = addObserverReference(mdlHandle);
    obsmodelHandle = get_param(gcs,"Handle");
    
    obsportHandle = addObserverPort(obsmodelHandle);
    configureObserverPort(obsportHandle,"Signal",...
       Simulink.BlockPath("sf_car/transmission"),2);
    import sltest.observer.*
    open_system("sf_car")
    
    mdlHandle = get_param(gcs,"Handle");
    obsrefHandle = addObserverReference(mdlHandle);
    obsmodelHandle = get_param(gcs,"Handle");
    
    obsportHandle = addObserverPort(obsmodelHandle);
    sf_dataobj = find(sfroot,"-isa","Stateflow.Data",...
       "-depth",4,Name = "up_th");
    configureObserverPort(obsportHandle,"SFData",...
       Simulink.BlockPath("sf_car/shift_logic"),sf_dataobj);

    配置一个 Observer Port,用于观测 OFF 的 Stateflow 图中的 observe_sfstate_activity model 状态。

    import sltest.observer.*
    open_system("observe_sfstate_activity") 
    
    mdlHandle = get_param(gcs,"Handle");
    obsref1 = addObserverReference(mdlHandle);
    obsmodelHandle = get_param(gcs,"Handle");
    obsportHandle = addObserverPort(obsmodelHandle);
    
    chartObj = find(sfroot,"-isa","Stateflow.Chart");
    stateObj = find(chartObj,"-isa","Stateflow.State",...
       Name="OFF");
    activityType = 'Self';
    
    blockPath = Simulink.BlockPath...
       ({'observe_sfstate_activity/Chart'});
    configureObserverPort(obsportHandle,...
       "SFStateActivity",blockPath,stateObj,activityType);
    import sltest.observer.*
    open_system("fmuPIDwithInternalVar");
    
    mdlHandle = get_param(gcs,"Handle");
    mdlName = get_param(gcs,"Name"); 
    
    obsref = Simulink.findBlocksOfType(...
       'fmuPIDwithInternalVar','ObserverReference');
    obsrefName =get_param(obsref,"Name");
    
    open_system(strcat(mdlName,"/",obsrefName))
    obsmodel = gcs;
    obsmodelHandle = get_param(gcs,"Handle");
    
    obsportHandle = addObserverPort(obsmodelHandle);
    
    fmuvar = 'trackingError';
    blockPath = Simulink.BlockPath('fmuPIDwithInternalVar/FMU');
    configureObserverPort(obsportHandle,...
       "FMUInternalVariable",blockPath,fmuvar);

    输入参数

    全部折叠

    Observer Port 模块,指定为双精度数据类型模块句柄。

    系统模型中要观测的元素的路径,指定为 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 内部变量,指定为字符串或字符向量。

    版本历史记录

    在 R2024b 中推出