主要内容

延迟与自定义实体实体存储块

这个例子展示了如何使用离散事件系统对象™方法来创建一个自定义实体存储块具有一个输入端口,一个输出端口和一个存储元素。离散事件系统对象的实例化matlab.DiscreteEventSystem类,它允许您使用这个类提供的实现和服务方法。然后,您使用MATLAB离散事件系统块集成系统对象SimEvents®模型。

自定义MATLAB离散事件系统阻止接受一个实体其输入端口,并将其转发给其输出端口和指定的延迟。可视化的图块使用离散事件系统框架。

打开模型和观察的行为定义块,明白了CustomEntityStorageBlockExample

创建离散事件系统对象

  1. 创建一个新的脚本和继承matlab.DiscreteEventSystem类。

    classdefCustomEntityStorageBlock < matlab.DiscreteEventSystem
  2. 添加一个自定义的描述块。

    %一个自定义实体存储块和一个输入,一个输出,一个存储。
  3. 声明两个nontunable参数能力延迟代表存储容量和存储实体起飞延迟。

    % Nontunable属性属性(Nontunable)%的能力能力= 1;%的延迟延迟= 4;结束

    参数捕获块的属性。

    • 可以在运行时调整可调参数。

    • Non-tunable参数在运行时不能调整。

  4. 指定这些方法和设置访问受保护。

    方法(访问=保护)%指定数量的输入端口。函数num = getNumInputsImpl (~) num = 1;结束%指定输出端口的数量。函数num = getNumOutputsImpl (~) num = 1;结束%指定一个新的实体类型的车。函数entityTypes = getEntityTypesImpl (obj) entityTypes = obj.entityType (“汽车”);结束%指定汽车作为实体类型中使用%的输入和输出端口。函数[inputTypes, outputTypes] = getEntityPortsImpl (obj) inputTypes = {“汽车”};outputTypes = {“汽车”};结束%指定存储类型、容量和连接%的输入和输出端口。函数[storageSpecs, I, O] = getEntityStorageImpl (obj) storageSpecs = obj.queueFIFO (“汽车”,obj.Capacity);%我表示实体存储索引1的第一个元素%连接到输入1。I = 1;% 1 O表示实体的第一个元素存储索引%连接到输出1。O = 1;结束结束

    只有一个存储类型汽车先进先出(FIFO)的方式。的能力对象的参数定义了服务器容量。

    该方法getEntityStorageImpl ()还指定了港口和存储之间的连接,O

    • 返回值是一个向量的元素=1,……n在它的长度n等于输入端口的数量。

      在这个例子中,n1因为只有一个输入端口是宣布。

    • th元素表示实体存储索引th输入端口连接。

      在本例中,输入端口1连接到存储1

    • 如果一个输入端口是一个信号端口,相应的元素0

    类似的返回值O用于定义存储和输出端口之间的连接。

  5. 指定一个eventForward转发一个实体类型的事件到输出时进入存储。

    函数(实体、事件)= CarEntry (obj、存储实体,源)%指定事件动作当实体进入存储。事件= obj.eventForward (“输出”1、obj.Delay);结束

    一个进入存储调用一个事件的行动和事件obj.eventForward转发输出与索引1指定的延迟obj.Delay

    您可以使用这种方法的输入参数来创建自定义行为。这个论点obj是离散事件系统对象继承的方法。这个论点存储的索引存储元素实体进入。这个论点实体是实体进入存储和它有两个字段,entity.sysentity.data。这个论点是实体的源位置,进入存储。

    请注意

    你不能操纵实体数据在一个退出动作。

  6. 名字你的离散事件系统对象CustomEntityStorageBlock并将其保存为CustomEntityStorageBlock.m

    自定义块代表一个简化的加油站,可以一次一辆汽车。一辆车到达加油站,服务4分钟前离开车站。

    看到代码来生成自定义实体存储块

实现自定义实体存储块

  1. 创建一个模型使用一个实体发电机块,MATLAB离散事件系统块,和一个实体终结者块。

  2. 打开MATLAB离散事件系统块,并设置离散事件系统对象名称CustomEntityStorageBlock

  3. 双击MATLAB离散事件系统观察能力和延迟。

  4. 输出数量的实体来了,统计的实体终结者块并将其连接到一个范围

  5. 增加仿真时间20.和运行模拟。观察实体到达实体终结者块的延迟4

另请参阅

|||||

相关的话题