Skip to content

Commit 05bd65e

Browse files
committed
more docs
1 parent 1036b13 commit 05bd65e

File tree

3 files changed

+169
-2
lines changed

3 files changed

+169
-2
lines changed

docs/requirements.md

Lines changed: 167 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,167 @@
1+
# Model Requirements
2+
3+
Owner: Philip Linden
4+
Tags: Design, Engineering
5+
6+
**Table of contents**
7+
8+
# Problem statement
9+
10+
The effectiveness of Decentralized PNT versus traditional Lunar GNSS is only meaningful if we can evaluate both paradigms (independently or concurrently) at different scales in population.
11+
12+
See [clocss-abm](https://www.notion.so/clocss-abm-4b7232aa0f8f4af9926db05ba0e7fa11?pvs=21)
13+
14+
| Goals | Apples-to-apples comparisons in performance of a decentralized, centralized, peer-to-peer, transmitter/receiver, and combinations therein based on quantitative metrics. |
15+
| --- | --- |
16+
| Non-goals | This study does not intend to discern optimal constellation architectures or compositions. It also does not claim to produce true-to-life simulations of system performance. |
17+
18+
## The model shall…
19+
20+
1. depend only on open source software.
21+
2. simulate populations of heterogeneous agents.
22+
3. simulate interactions between tens of agents and thousands of agents.
23+
4. simulate events over a time span of days and a span of years.
24+
5. allow an agent’s perception of the environment (epoch, motion) to differ from the “true” environment parameters.
25+
6. simulate spacetime (motion, time with relativity, light propagation) on a cislunar scale.
26+
7. simulate things that inhibit interactions like distance (attenuation, inverse square law) or obstructions (line of sight blocked by a planetary body).
27+
8. allow rulesets for permitted interactions between agents (faction dynamics, transmit/receive limitations, data transfer vs passive sensing, limited communication spectral bands).
28+
29+
## The model should…
30+
31+
1. feed visualizations of populations by type, position, and/or interactions.
32+
2. execute in less than an hour on my laptop.
33+
3. permit rapid execution loops or batched runs with varied model parameters.
34+
4. be easy to replicate by others and on other machines.
35+
36+
# Metrics
37+
38+
These metrics are parameters that should be instrumented in the model.
39+
40+
### **Accuracy**
41+
42+
- *Sync precision* - Standard deviation absolute time across the node population
43+
- *Holdover* - Average clock drift from true time before syncing
44+
- *Latency (jitter)* - Round trip time, packet delay variation
45+
46+
### **Availability**
47+
48+
- *Capacity* - % bandwidth used, peak bandwidth used, sqkm of coverage
49+
- *Throughput* - Total available bandwidth, # concurrent links
50+
51+
### **Continuity**
52+
53+
- *Roaming ability* - # available links, time between links
54+
- *Failure & recovery rate* - Mean time between failures, mean time to restore
55+
56+
### **Interoperability**
57+
58+
- *Standards compatibility* - Meets LunaNet and Moonlight requirements
59+
- *Technology compatibility* - # comms spectral bands, clients served per band
60+
61+
### **Cost**
62+
63+
- *Nodes required for service* - # service nodes, # clients per provider node
64+
- *Hardware required* - $ per clock, # clocks, $ invested per client served
65+
66+
### **Signal Integrity**
67+
68+
- *Packet integrity* - packet loss rate, packet delivery ratio, % duplicate packets
69+
- *Channel dominance* - signal-to-noise ratio, jam-to-signal ratio
70+
71+
# Agents
72+
73+
Agents are the generic term for “things with clocks” in this context. It might be a satellite, rover, ground station, etc. This section aims to identify the minimal set of traits that are required for agents in this model. Hopefully this will tease out areas of overlap between different types of agents and a blueprint for the model will take shape.
74+
75+
## Attributes
76+
77+
Parent
78+
79+
Some agents are attached to other entities, like ground stations or rovers. If an agent must translate and rotate together with another entity, that other entity is
80+
81+
### Mass
82+
83+
Total mass of the agent in kg.
84+
85+
### Clock Precision
86+
87+
Likelihood of a missed or double counted tick of the clock
88+
89+
### Radio Band
90+
91+
An agent may only transmit or receive messages from other agents if the message is within the agent’s radio band.
92+
93+
### Radio Field of View (FoV)
94+
95+
An agent may only transmit or receive messages from other agents along a vector that originates at the agent* and lies within a cone** with a given field of view (FoV) angle. For example, an FoV of $2\pi$ would define an omnidirectional radio’s field of view.
96+
97+
A message is only received if the message vector between the sender’s radio and receiver’s radio is completely encapsulated by both agents’ radio fields of view.
98+
99+
*For simplicity’s sake, let’s assume agents are points with no shape.
100+
101+
**A possible extension of this is to define the radio field of view as a set of lobes instead of a cone, but a cone is the simplest shape that meets this need.
102+
103+
### Radio Transmitter Power
104+
105+
Messages originating at the agent have an initial power (in dBm). The message signal power is distributed across the radio’s entire field of view. Signal power falls off with the inverse square law.
106+
107+
### Radio Receiver Noise Floor
108+
109+
The power (in dBm) of an agent’s receiver’s noise floor. See [Radio Receiver Sensitivity](https://www.notion.so/Radio-Receiver-Sensitivity-d3a17af383964900b953681fb21108a7?pvs=21).
110+
111+
### Radio Receiver Sensitivity
112+
113+
An agent may only detect a message if the instantaneous signal power at the receiver is greater than a certain threshold. The ratio between the signal power and the noise floor power is the signal-to-noise ratio (SNR). Receiver sensitivity is the minimum SNR that results in a message being received, otherwise a message is “dropped” or ignored by the receiver.
114+
115+
## States
116+
117+
### Position, Velocity, and Acceleration
118+
119+
Agents exist in a 2D or 3D simulation space* and may translate across the space. Agents also have a heading and may rotate. Agents have translational and rotational velocity and accelerations. In short, I want some rigid body physics here. The agent may only change its velocity through accelerations.
120+
121+
Accelerations may be imparted on an agent from itself (thrust) or the environment (gravity, collisions).
122+
123+
*Obviously 3D space is the goal, but all fundamental principals can be demonstrated on a single 2D plane.
124+
125+
### Clock Epoch
126+
127+
Agents keep track of time with imperfect clocks. The agent’s observation of the epoch may diverge from the environment’s true epoch.
128+
129+
### Stratum
130+
131+
How far removed from canonical time source.
132+
133+
# Environment
134+
135+
gravity field
136+
137+
true epoch
138+
139+
inert bodies (earth, moon)
140+
141+
# Visualization
142+
143+
agents
144+
145+
position, heading
146+
147+
type
148+
149+
state
150+
151+
field of view
152+
153+
trajectory
154+
155+
environment
156+
157+
agents
158+
159+
inert bodies
160+
161+
network links between communicating agents
162+
163+
model
164+
165+
epoch
166+
167+
metrics

mkdocs.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,4 +91,4 @@ plugins:
9191
filters:
9292
- "^_"
9393
- "^__"
94-
- "!demos/"
94+
- "!demos/*"

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ description = "an Agent-Based Model of Heterogeneous Lunar Networks"
55
authors = ["Philip Linden <lindenphilipj@gmail.com>"]
66
license = "AGPL-3.0-or-later"
77
readme = "README.md"
8-
packages = [{include = "clocss"}]
8+
packages = [{include = "learning"}]
99

1010
[tool.poetry.dependencies]
1111
python = ">=3.9,<3.12"

0 commit comments

Comments
 (0)