Files
2nd/10_Wiki/Topics/DevOps_and_Security/Digital Twins.md
T
Antigravity Agent f8b21af4be Wiki cleanup: error-doc removal, dedup merge, link normalization
10_Wiki/Topics 대규모 정리:
- 오류 캡처/미완성 stub 문서 227개 제거
- 교차폴더 중복 43클러스터 병합 (63파일 → redirect)
- 링크명 정규화: 깨진 링크 수정·redirect 직결·개념 매핑 ~2,400건
- 카테고리 MOC 6개 신규 생성
- Graph 섹션 미해결 related-keyword 링크 10,058건 제거

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-20 23:52:15 +09:00

148 lines
4.8 KiB
Markdown

---
id: wiki-2026-0508-digital-twins
title: Digital Twins
category: 10_Wiki/Topics
status: verified
canonical_id: self
aliases: [Digital Twin, DT, Cyber-Physical Mirror]
duplicate_of: none
source_trust_level: A
confidence_score: 0.9
verification_status: applied
tags: [iot, simulation, cps, industry-4]
raw_sources: []
last_reinforced: 2026-05-10
github_commit: pending
tech_stack:
language: Python/C++
framework: NVIDIA-Omniverse/Azure-DigitalTwins
---
# Digital Twins
## 매 한 줄
> **"매 physical asset/system 의 매 live, bidirectional digital replica"**. Grieves 2002 의 PLM concept 가 매 IoT, sensor cost 폭락, real-time sim, generative AI 의 만남으로 매 Industry 4.0 의 핵심. 매 NVIDIA Omniverse, Azure Digital Twins, Siemens Xcelerator 의 2026 era — physical + digital 의 매 closed loop.
## 매 핵심
### 매 3 layer
- **Physical**: 실제 자산 + sensor (vibration, temp, pressure, camera).
- **Communication**: MQTT/OPC-UA/AMQP, time-series store, edge gateway.
- **Digital**: 3D model + physics sim + ML predictor + control logic.
### 매 spectrum
- **Digital model**: static 3D, no live data.
- **Digital shadow**: one-way (physical → digital).
- **Digital twin**: bidirectional — twin can command physical.
### 매 응용
1. Predictive maintenance (jet engine, wind turbine).
2. Smart city traffic / energy optimization.
3. Manufacturing line virtual commissioning.
4. Healthcare (patient-specific organ twin).
5. Robot fleet sim (NVIDIA Isaac, Omniverse).
## 💻 패턴
### Sensor → twin (MQTT + Python)
```python
import paho.mqtt.client as mqtt, json, time
def on_message(c, u, msg):
data = json.loads(msg.payload)
twin.update_state(asset_id=data['id'], temp=data['temp'], ts=data['ts'])
if twin.predict_failure(data['id']) > 0.8:
c.publish(f"cmd/{data['id']}/throttle", "0.5") # bidirectional!
cli = mqtt.Client(); cli.on_message = on_message
cli.connect("mqtt.factory.local"); cli.subscribe("sensor/+"); cli.loop_forever()
```
### Azure Digital Twins (DTDL)
```json
{
"@id": "dtmi:com:factory:Pump;1",
"@type": "Interface",
"displayName": "Pump",
"contents": [
{ "@type": "Property", "name": "rpm", "schema": "double" },
{ "@type": "Telemetry", "name": "vibration", "schema": "double" },
{ "@type": "Command", "name": "shutdown" },
{ "@type": "Relationship", "name": "feeds", "target": "dtmi:com:factory:Tank;1" }
]
}
```
### Physics-based twin (Modelica via FMU)
```python
from fmpy import simulate_fmu
result = simulate_fmu(
'pump.fmu',
start_values={'inlet_pressure': 2.5, 'rpm': 1800},
output=['outlet_pressure', 'efficiency'],
stop_time=10.0
)
```
### Omniverse USD scene (live update)
```python
from pxr import Usd, UsdGeom, Gf
stage = Usd.Stage.Open('factory.usd')
pump = UsdGeom.Xform.Get(stage, '/World/Pump_01')
# Stream live sensor pose via OmniGraph / Live Sync
def on_telemetry(rpm, vibration):
pump.GetPrim().GetAttribute('rpm:live').Set(rpm)
pump.GetPrim().GetAttribute('vib:live').Set(vibration)
```
### Predictive maintenance (LSTM)
```python
import torch.nn as nn
class FailurePredictor(nn.Module):
def __init__(self, n_sensors=8):
super().__init__()
self.lstm = nn.LSTM(n_sensors, 64, batch_first=True)
self.head = nn.Linear(64, 1)
def forward(self, x): # (B, T, n_sensors)
h, _ = self.lstm(x)
return torch.sigmoid(self.head(h[:, -1]))
# Train on (sensor window, RUL label) pairs from CMAPSS / NASA dataset.
```
## 매 결정 기준
| 상황 | Approach |
|---|---|
| Single asset, simple monitoring | Digital shadow (cheap) |
| Fleet w/ predictive maint. | Twin + ML failure model |
| Process plant commissioning | Physics twin (FMU/Modelica) |
| Robotics / AV training | Sim-to-real (Isaac, CARLA) |
| Smart city / building | Hierarchical twins (DTDL) |
**기본값**: 매 start digital shadow → ML 추가 후 twin → bidirectional 마지막.
## 🔗 Graph
- 부모: [[Cyber-Physical Systems]]
- 응용: [[Predictive Maintenance]]
- Adjacent: [[NVIDIA Omniverse]]
## 🤖 LLM 활용
**언제**: IoT/manufacturing/CPS context, sim2real planning, asset lifecycle.
**언제 X**: Pure web app, no physical asset. 매 marketing buzzword 화 주의.
## ❌ 안티패턴
- **3D model = twin 오해**: 매 3D 만으론 shadow도 아님.
- **Sensor 무인 데이터**: garbage in → garbage twin.
- **No model versioning**: physical 변경 시 twin drift.
- **Closed-loop without safety**: bidirectional 시 매 fail-safe + human-in-loop 필수.
- **Vendor lock-in**: proprietary schema → DTDL/USD 표준 사용.
## 🧪 검증 / 중복
- Verified (Grieves 2014, NIST CPS framework, Azure DT docs, NVIDIA Omniverse docs).
- 신뢰도 A.
## 🕓 Changelog
| 날짜 | 변경 |
|---|---|
| 2026-05-08 | Phase 1 |
| 2026-05-10 | Manual cleanup — DT layers + DTDL/Omniverse/MQTT patterns |