25个稳定版本 (8个主要版本)
11.0.0 | 2024年5月3日 |
---|---|
10.2.1 | 2024年3月13日 |
10.1.4 | 2024年2月1日 |
10.1.1 | 2023年12月6日 |
3.0.1 | 2022年9月20日 |
#19 在 模拟
225 每月下载量
用于 18 个crate (12直接使用)
245KB
3.5K SLoC
gmt_dos-actors
gmt_dos-actors 是巨型麦哲伦望远镜集成建模中actor模型的应用实现。
特性
lib.rs
:
GMT 动态光学模拟actor
GMT DOS Actor是GMT DOS集成模型的基本构建块。每个Actor有3个属性
- 输入对象
- 输出对象
- 客户端
输入/输出
输入对象是一组输入,输出对象是一组输出。actor至少需要1个输入或1个输出。一对输入/输出通过一个channel连接,其中输入是接收者,输出是发送者。相同的输出可以连接到多个输入。channel用于同步actor。
每个Actor在无限循环中执行相同任务,包括3个操作
- 接收输入(如果有)
- 更新客户端状态
- 发送输出(如果有)
循环在以下错误发生时退出: ActorError::NoData,ActorError::DropSend,ActorError::DropRecv。
采样率
一个Actor的所有输入都以相同的速率NI
收集,所有输出都以相同的速率NO
分发,但是输入和输出速率可能不同。输入速率NI
继承自收集数据输出的输出速率NO
,即(下一个actor)::NI=(当前actor)::NO
。
速率NI
或NO
定义为模拟采样频率[Hz]
和actor输入或输出采样频率[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 | - |
客户端
客户端必须分配给一个Actor,并且客户端必须实现以下一些特质
模型
一个集成模型按以下方式构建
依赖项
~5–7.5MB
~126K SLoC