#望远镜 #actor-model #光学 #麦哲伦 #动态 #巨大 #DOS

已删除 dos-actors

巨型麦哲伦望远镜动态光学模拟演员模型

2.1.1 2022年9月13日
2.1.0 2022年9月9日
1.0.3 2022年8月31日
0.1.22 2022年8月17日
0.1.8 2022年5月31日

13#光学

Download history 97/week @ 2024-03-28 90/week @ 2024-04-04 23/week @ 2024-06-27 218/week @ 2024-07-04

每月下载量 241

MIT 协议

2MB
5K SLoC

巨型麦哲伦望远镜动态光学模拟演员模型


lib.rs:

GMT 动态光学模拟演员

GMT DOS [演员] 是 GMT DOS 集成模型的基本构建块。每个 [演员] 有 3 个属性

  1. 输入对象
  2. 输出对象
  3. 客户端

输入/输出

输入对象是一组输入,输出对象是一组输出。一个演员必须至少有 1 个输入或 1 个输出。一对输入/输出通过一个 通道 相连,其中输入是接收者,输出是发送者。相同的输出可以连接到多个输入。 通道 用于同步 [演员]。

每个 [演员] 在一个无限循环中执行相同的 任务,包括 3 个操作

  1. 如果有输入,则接收输入
  2. 更新客户端状态
  3. 如果有输出,则发送输出

以下错误发生时,循环退出: ActorError::NoDataActorError::DropSendActorError::DropRecv

采样率

一个 [演员] 的所有输入都按相同的速率 NI 收集,所有输出都按相同的速率 NO 分发,但是输入和输出的速率可能不同。输入速率 NI 继承自收集数据的输出的速率 NO,即 (下一个演员)::NI=(当前演员)::NO

速率 NINO 定义为模拟采样频率 [Hz] 与行为输入或输出采样频率 [Hz] 之比,它必须是大于等于1的整数。如果 NI>NO,则通过简单的采样保持将输出上采样到 NI/NO 个样本。如果 NO>NI,则通过 NO/NI 的因子对输出进行降采样。

对于1000Hz的模拟采样频率,以下表格给出了一些输入/输出采样频率和速率的示例。

输入 [Hz] 输出 [Hz] NI NO 上采样 降采样
1000 1000 1 1 - 1
1000 100 1 10 - 10
100 1000 10 1 10 -
500 100 2 10 - 5
100 500 10 2 5 -

客户端

客户端必须分配给[行为],并且客户端必须实现以下一些特质

  • 写入如果行为有某些输出,
  • 读取如果行为有某些输入,
  • 更新,这个特质必须始终实现(但默认空实现是可以接受的)

模型

综合模型按照以下方式构建

  1. 选择并实例化[客户端]
  2. 将[客户端]分配给[行为]
  3. 向[行为]添加输出并将它们连接到其他[行为]的输入
  4. 构建[模型]
  5. 检查、运行并等待模型完成

有关更详细说明和示例,请参阅[行为]和[模型]模块。

功能

该库提供了一组最小化的默认功能,这些功能可以通过在编译时选择适当的特性进行增强。

依赖关系

~6–24MB
~337K SLoC