Files
2nd/10_Wiki/Topics/Data 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

6.0 KiB

id, title, category, status, canonical_id, aliases, duplicate_of, source_trust_level, confidence_score, verification_status, tags, raw_sources, last_reinforced, github_commit, tech_stack
id title category status canonical_id aliases duplicate_of source_trust_level confidence_score verification_status tags raw_sources last_reinforced github_commit tech_stack
wiki-2026-0508-data-twins Data Twins (Digital Twins) 10_Wiki/Topics verified self
Digital Twin
Cyber-Physical Twin
Virtual Replica
none A 0.88 applied
digital-twin
iot
simulation
industry-4-0
modeling
2026-05-10 pending
language framework
Python/C++ Azure Digital Twins / Omniverse / Modelica

Data Twins (Digital Twins)

매 한 줄

"매 digital twin 의 핵심: live data binding + physics-aware simulation + bidirectional sync". 매 2002 Michael Grieves 의 PLM 컨셉 으로 시작, 매 NASA Apollo 13 의 ground simulation 이 ancestor. 매 2026 현재 NVIDIA Omniverse, Azure Digital Twins, AWS IoT TwinMaker, 매 LLM-grounded 산업 simulation 으로 manufacturing / smart-city / healthcare 의 mainstream.

매 핵심

매 3 fidelity levels

  • Descriptive twin: 매 static data + dashboard.
  • Predictive twin: 매 ML / physics simulation — 매 forecast.
  • Prescriptive twin: 매 optimize + actuate back to physical asset.

매 components

  • Sensor layer: 매 IoT (MQTT, OPC UA, CAN bus).
  • Time-series store: 매 InfluxDB, Timescale, AWS Timestream.
  • Twin graph: 매 ontology (DTDL, asset hierarchy).
  • Simulation kernel: 매 Modelica, Omniverse PhysX, OpenFOAM.
  • Closed-loop controller: 매 actuator command back.

매 응용

  1. Manufacturing (Siemens, GE Predix — turbine twin).
  2. Smart city (Singapore Virtual Singapore, Shanghai twin).
  3. Healthcare (heart twin for surgery planning).
  4. Supply chain (warehouse / fleet simulation).
  5. Building / HVAC optimization (BIM + live sensor).

💻 패턴

DTDL (Digital Twins Definition Language)

{
  "@context": "dtmi:dtdl:context;3",
  "@id": "dtmi:com:example:Turbine;1",
  "@type": "Interface",
  "displayName": "Turbine",
  "contents": [
    { "@type": "Telemetry", "name": "rpm", "schema": "double" },
    { "@type": "Telemetry", "name": "tempC", "schema": "double" },
    { "@type": "Property", "name": "model", "schema": "string" },
    { "@type": "Command", "name": "shutdown" }
  ]
}

Azure Digital Twins (Python SDK)

from azure.digitaltwins.core import DigitalTwinsClient
from azure.identity import DefaultAzureCredential

client = DigitalTwinsClient(url, DefaultAzureCredential())
twin = {
  "$metadata": {"$model": "dtmi:com:example:Turbine;1"},
  "rpm": 3500.0, "tempC": 78.5, "model": "T-900"
}
client.upsert_digital_twin("turbine-42", twin)
# Query
for t in client.query_twins("SELECT * FROM digitaltwins WHERE tempC > 80"):
    print(t)

MQTT ingestion → twin update

import paho.mqtt.client as mqtt, json

def on_message(client, userdata, msg):
    data = json.loads(msg.payload)
    update_twin(data["device_id"], {"rpm": data["rpm"]})

c = mqtt.Client()
c.on_message = on_message
c.connect("broker.local", 1883)
c.subscribe("plant/+/telemetry")
c.loop_forever()

Physics simulation (FMU via Modelica)

from fmpy import simulate_fmu
result = simulate_fmu("turbine.fmu",
                      start_time=0, stop_time=60, step_size=0.01,
                      input=[("inlet_pressure", input_signal)])

NVIDIA Omniverse (USD asset twin)

import omni.usd
from pxr import UsdGeom, Gf
stage = omni.usd.get_context().get_stage()
turbine = UsdGeom.Xform.Define(stage, "/World/Turbine")
turbine.AddRotateYOp().Set(Gf.Vec3f(0, rpm * dt * 6, 0))  # live RPM

Anomaly-driven actuation (closed loop)

def control_loop(twin):
    if twin.tempC > 95:
        send_command(twin.id, "reduce_load", value=20)
        log(f"Twin {twin.id} thermal protection triggered")

LLM-augmented twin Q&A

import anthropic
client = anthropic.Anthropic()
def ask_twin(twin_state, question):
    return client.messages.create(
        model="claude-opus-4-7-20260101",
        max_tokens=512,
        system="You are an expert in industrial twin diagnostics.",
        messages=[{"role": "user",
                   "content": f"State: {twin_state}\nQ: {question}"}]
    ).content[0].text

매 결정 기준

상황 Approach
Asset monitoring only Descriptive (dashboard)
Predictive maintenance Predictive (ML on telemetry)
Autonomous operation Prescriptive (closed-loop)
3D / VR walkthrough Omniverse / USD
Cloud-managed Azure Digital Twins / AWS TwinMaker
Edge constraints Local twin + sync (KubeEdge)

기본값: 매 industrial use 의 Azure Digital Twins + DTDL ontology, 매 3D viz 의 Omniverse.

🔗 Graph

🤖 LLM 활용

언제: 매 twin schema (DTDL) drafting, 매 anomaly explanation, 매 operator natural-language query, 매 simulation scenario generation. 언제 X: 매 hard-real-time control loop — 매 LLM latency 의 unfit. 매 deterministic control 은 PID / MPC.

안티패턴

  • Twin = dashboard 의 단순 rebrand: 매 simulation / closed-loop 없으면 그냥 monitoring.
  • No data quality validation: 매 garbage sensor → garbage twin.
  • Twin without versioning: 매 schema drift / model evolution 의 disaster.
  • Tight coupling to vendor: 매 vendor lock — 매 DTDL / OPC UA 같은 standards 사용.
  • Ignoring security: 매 closed-loop = attacker 의 actuation = physical damage.
  • One twin for everything: 매 hierarchical decomposition (asset → system → plant) 의 사용.

🧪 검증 / 중복

  • Verified (Grieves 2002, NASA twin paradigm, Microsoft DTDL spec, ISO 23247, NVIDIA Omniverse docs 2025).
  • 신뢰도 B+ (terminology / scope 의 industry variation).

🕓 Changelog

날짜 변경
2026-05-08 Phase 1
2026-05-10 Manual cleanup — Digital twin patterns + Omniverse / DTDL