Buckets:
| import streamlit as st | |
| import numpy as np | |
| import matplotlib.pyplot as plt | |
| import pandas as pd | |
| from scipy import linalg | |
| import plotly.graph_objects as go | |
| from plotly.subplots import make_subplots | |
| import time | |
| def show_introduction(): | |
| """Affiche l'introduction aux concepts de jumeaux numériques""" | |
| st.header("📚 Introduction aux Jumeaux Numériques") | |
| col1, col2 = st.columns([2, 1]) | |
| with col1: | |
| st.markdown(""" | |
| ### Définition et concepts clés | |
| Un **jumeau numérique** est une réplique virtuelle d'un système physique qui : | |
| 1. **Intègre des modèles physiques** de différentes fidélités | |
| 2. **Assimile des données** issues de capteurs en temps réel | |
| 3. **Permet le pilotage** du système physique | |
| 4. **Évolue avec le système** tout au long de son cycle de vie | |
| ### Composants essentiels | |
| - **Modèles de connaissance** : équations de la mécanique | |
| - **Capteurs et données** : mesures réelles du système | |
| - **Algorithmes d'estimation** : Filtre de Kalman | |
| - **Algorithmes de contrôle** : PID, contrôle optimal | |
| - **Interfaces** : visualisation, interaction | |
| """) | |
| with col2: | |
| st.image("https://via.placeholder.com/400x300/4A90E2/FFFFFF?text=Digital+Twin+Architecture", | |
| caption="Architecture d'un jumeau numérique") | |
| # Démonstration interactive simple | |
| st.subheader("🔄 Démonstration interactive") | |
| col1, col2, col3 = st.columns(3) | |
| with col1: | |
| model_fidelity = st.slider("Fidélité du modèle", 0.1, 1.0, 0.7, 0.1, | |
| help="Compromis précision/coût calcul") | |
| with col2: | |
| sensor_noise = st.slider("Bruit des capteurs", 0.0, 0.5, 0.1, 0.05, | |
| help="Niveau de bruit de mesure") | |
| with col3: | |
| control_gain = st.slider("Gain de contrôle", 0.1, 2.0, 1.0, 0.1, | |
| help="Agressivité du contrôleur") | |
| # Visualisation simple | |
| fig = go.Figure() | |
| # Système réel (simulé) | |
| t = np.linspace(0, 10, 100) | |
| system_response = np.sin(t) + np.random.normal(0, sensor_noise, len(t)) | |
| # Modèle du jumeau numérique | |
| model_response = model_fidelity * np.sin(t) + 0.1 | |
| fig.add_trace(go.Scatter(x=t, y=system_response, | |
| mode='lines', name='Système réel', | |
| line=dict(color='blue', dash='dash'))) | |
| fig.add_trace(go.Scatter(x=t, y=model_response, | |
| mode='lines', name='Jumeau numérique', | |
| line=dict(color='red'))) | |
| fig.update_layout(title="Comparaison système réel / jumeau numérique", | |
| xaxis_title="Temps (s)", | |
| yaxis_title="Réponse du système", | |
| height=400) | |
| st.plotly_chart(fig, use_container_width=True) |
Xet Storage Details
- Size:
- 3.01 kB
- Xet hash:
- 44ea17c5616f62691772b2df508be012b38a31fb162b22a78ab8e2910fbc0c27
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.