主要内容

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

Pin

将令牌导入或导出动作节点

自 R2024a 起

  • Pin Icon

描述

引脚充当对象令牌的缓冲区,引导令牌进入或离开动作节点。引脚的方向性代表输入或输出。您可以通过对象流连接引脚。

这就是输入和输出引脚的两种类型:

  • 流式引脚

    Streaming input pin

  • 非流式引脚

    Non-streaming input pin

只有当所有输入引脚都持有最少数量的对象令牌时,具有这两种类型引脚的动作节点才会开始执行。对于输入引脚,一旦满足多重性条件,软件不会重新计算该条件,直到嵌套活动重新启动。只有当所有输出引脚都收到至少一个令牌时,具有这两种引脚的动作节点才会终止。

流式引脚和非流式引脚的区别在于执行动作节点时如何处理令牌。

注意

只能为具有嵌套活动图的动作节点配置流引脚。

流式引脚

嵌套活动开始执行后,流输入引脚将继续接受和缓冲所有到达引脚的令牌。当令牌到达时,软件会将令牌转发到相应的输入参数节点。

流输出引脚使相应的输出参数节点能够接受和转发传入的令牌。无论动作是否完成,输出参数节点都可以转发令牌。

非流式引脚

在执行动作节点时,非流式输入引脚会阻止任何传入的对象令牌,从而导致输出对象令牌在前一个节点的输出引脚中进入待处理状态。如果一个输出引脚已经有一个待处理令牌,则任何新生成的令牌都会被丢弃。这种动作被称为阻塞行为。

非流式输出引脚依靠相应的输出参数节点来保存任何传入的令牌。只有当动作节点执行完毕后,令牌才会被转发到输出引脚。

示例

全部展开

此示例演示了如何使用包含嵌套活动和流式输入引脚的活动图来模拟一个简单的气象站。

探索模型

打开模型。

modelname = "weatherforecast_ad";
open_system(modelname);

Snapshot of Weather Station activity diagram

活动图包含三个主要区域:

  • 大气压力 - 模拟生成某一区域的气压计读数。读数显示的是总体天气状况。

  • 气象卫星图像 - 模拟生成某一区域的卫星图像。图像显示的云层有助于预测短期天气。

  • 气象站 - 接收大气压力和图像数据作为输入,并确定天气预报。

活动图中动作节点的行为由示例随附的 MATLAB 类文件 ws 中的函数决定。

生成气象站输入

气象站接收来自大气压力和气象卫星图像领域动作节点的输入。

大气压力区域包含动作节点 Barometer Data,用于模拟气压计读数的连续生成。动作节点生成气压计读数后,控制权会立即通过合并节点传回给它。动作节点生成下一个气压计读数,依此类推。下一个动作节点 Barometer Data Evaluation 根据输入气压数据的不同阈值输出信号。

气象卫星图像区域包含动作节点 Satellite Image,用于模拟连续生成灰度图像,描述某一区域的云层覆盖情况。灰度图像由分配给 类型编辑器 结构 GrayPixel 的 3 乘 3 矩阵表示。

Types Editor showing the GrayPixel structure

下一个动作节点 Image Processing 会计算图像中像素灰度值的平均值,并根据该平均值的不同阈值输出信号。

气象站的执行

气象站区域中的 Weather Station 嵌套活动通过流引脚接受代表气压计计算数据和图像计算数据的输入。

与非流式引脚不同,流式引脚允许嵌套活动在执行过程中消耗输入数据,而非流式引脚则等待动作节点或嵌套活动在指定的持续时间内执行完毕。

如果为停止时间提供的值足够大,流引脚允许嵌套活动一直执行到实现所需的结果为止。在此示例中,Weather Station 一直执行到最终天气预报的置信度达到或超过 85%,或者执行到停止时间。

在此示例中,如果使用非流式引脚,那么嵌套活动只能执行一轮,然后才需要更多输入进行置信度计算(除非第一次预测的置信度很高)。此时,由于嵌套活动尚未执行完毕,非流输入引脚不会接受更多输入令牌。因此,活动图无法继续完成。

Weather Station 嵌套活动利用其输入来确定一个地区的短期天气预报。例如,如果气压计读数较高,而图像像素值的平均值较低,表明亮度较高,云量较少,则天气预报为部分晴朗

每个天气预报还与一个名为 ConfidenceLevel 的结构中的置信度相关联。如果生成的置信度为低或中,则不显示相应的预测。如果预测产生的置信度大于 0.85,则该预测被视为最终预测。最终预测结果显示在诊断查看器中。

当嵌套活动的输出活动参数节点收到一个代表性对象令牌时,嵌套活动就会终止。活动图也会终止。此时,到达嵌套活动的任何剩余令牌都会被销毁,所有节点的状态也会被重置。

运行模型

仿真模型。

sim("weatherforecast_ad");
    0.6557

Confidence Level for Forecast: Low or Medium.
    0.0318

Confidence Level for Forecast: Low or Medium.
    0.7655

Confidence Level for Forecast: Low or Medium.
    0.1626

Confidence Level for Forecast: Low or Medium.
    0.8909

Confidence Level: High!
Forecast: Partly Sunny.

要清晰查看令牌流,可以通过更改调试选项卡中的动画速度来减慢动画速度。

参数

全部展开

引脚

在活动图的执行过程中,引脚充当对象令牌的缓冲器。

每个引脚都与某种数据类型相关联。引脚的所有令牌必须具有与引脚相关的数据类型。

对于具有活动行为类型的动作节点,引脚代表其相应的参数节点。有关详细信息,请参阅参数

输入或输出引脚的名称。默认情况下,该引脚被称为 InputPinOutputPin,具体取决于其配置。随着更多的输入或输出引脚被添加到动作节点上,InputPinOutputPin 的数字后缀会分别增加。

开始执行相应动作节点时,输入引脚所需的令牌数。如果一个输入引脚的多重性大于 1,则它可以容纳多个令牌。执行时,动作节点接收的对象令牌数量与多重性参数指定的数量完全一致。

令牌多重性只适用于动作节点的输入引脚。

在为动作节点定义的 MATLAB 函数中,每个输入和输出参量分别对应一个输入或输出引脚,由引脚的参量顺序指定。

例如,如果输入引脚的参量顺序为 2,则该引脚代表 MATLAB 函数的第二个输入参量。

启用或禁用嵌套活动的动作节点的输入或输出引脚的串流。该流控制的值会自动应用到嵌套活动中相应的输入或输出活动参数节点。

该列表包含导入的配置文件中的构造型。要为引脚分配构造型,请从列表中选择构造型。

您还可以使用 <new/edit> 选项,使用配置文件编辑器管理配置文件。

对象类型

输入或输出引脚可以处理特定类型的对象令牌。在属性检查器中,引脚的对象类型部分允许您指定对象令牌的类型和其他属性。

动作节点引脚持有的对象类型。

  • <owned> - 从属性检查器中为对象令牌选择属性,如类型、维度、复杂度和单位。

  • <inherit> - 继承前一个引脚的对象类型。

  • custom type - 从使用类型编辑器创建的自定义类型列表中选择。

令牌流经动作节点引脚的方向。根据创建的是输入引脚还是输出引脚,该参数会自动设置为 InputOutput

令牌的数据类型。有关使用 MATLAB 类类型的更多信息,请参阅使用 MATLAB 类令牌在活动图中建模复杂对象

依赖项

要启用该参数,请将名称设置为 <owned>

令牌的维度。

依赖项

要启用该参数,请将名称设置为 <owned>

您为令牌指定的自定义单位。

依赖项

要启用该参数,请将名称设置为 <owned>

令牌的复杂度。

依赖项

要启用该参数,请将名称设置为 <owned>

版本历史记录

在 R2024a 中推出

全部展开