import numpy as np class MuhleisenMecaIndustrialHub: def __init__(self): # --- 1. CONFIGURATION DU MOBILE "SWEET SPOT" --- self.version = "TITAN-MECA ULTRA (Industrial Hub)" self.masse_unitaire = 20000 # 20 tonnes (Sécurité mécanique) self.nombre_mobiles = 100 # 100 unités réparties sur 10 circuits self.masse_totale_grav = self.masse_unitaire * self.nombre_mobiles # 2000 tonnes # --- 2. GÉOMÉTRIE DE NOLLET (PHYSIQUE RÉELLE) --- self.descente_rails_physique = 15.39 # m self.bonus_nollet = 0.61 # m (Gain géométrique) self.chute_reelle_cg = self.descente_rails_physique + self.bonus_nollet # 16.0m # --- 3. RENDEMENTS ET PERTES MÉCANIQUES --- # Version à l'air libre avec roulements céramiques hybrides self.rendement_meca = 0.70 # Friction air + roulements self.rendement_induction = 0.94 # Quad-Induction (Sandwich) self.rendement_round_trip = self.rendement_meca * self.rendement_induction # --- 4. PRODUCTION HYBRIDE (LE MOTEUR DE CASH) --- # La tour est le cerveau d'un parc de 30MW (Solaire, Vortex, Éolien) self.puissance_hybride_mw = 30.0 # --- 5. DONNÉES FINANCIÈRES --- self.capex_initial = 135_000_000 # Tour + Infrastructures parc hybride self.opex_annuel = 6_500_000 # Maintenance mécanique prédictive self.prix_vente_mwh = 140 # Prix moyen (Marché / Vente directe) self.prix_achat_nuit = 50 # Prix de charge self.cycles_par_jour = 4 # Arbitrage sécurisé pour 50 ans de vie def calculer_bilan_annuel(self, mode="Base"): # A. CALCUL DE LA BATTERIE GRAVITAIRE (Arbitrage) e_potentielle_mj = self.masse_totale_grav * 9.81 * self.chute_reelle_cg e_restituee_mwh = (e_potentielle_mj * self.rendement_round_trip) / 3600 e_consommee_mwh = e_restituee_mwh / self.rendement_round_trip gain_par_cycle = (e_restituee_mwh * self.prix_vente_mwh) - (e_consommee_mwh * self.prix_achat_nuit) revenu_arbitrage = gain_par_cycle * self.cycles_par_jour * 365 # B. CALCUL DE LA GÉNÉRATION HYBRIDE (30 MW) # Production nette vendue au réseau revenu_generation = self.puissance_hybride_mw * 8760 * self.prix_vente_mwh * 0.75 # Facteur charge # C. PROFIT ET ROI profit_annuel = revenu_generation + revenu_arbitrage - self.opex_annuel capex = self.capex_initial # D. MODE OPTIMISÉ (Contrats Réseau + Effet de série) if mode == "Optimisé": # + Services Système (FCR/Stabilisation) + Vente directe (+15%) + Série (-10% CAPEX) profit_annuel = (profit_annuel + 6_000_000) * 1.15 capex = self.capex_initial * 0.90 roi = capex / profit_annuel return profit_annuel, roi # --- EXÉCUTION DE L'AUDIT FINAL --- hub_meca = MuhleisenMecaIndustrialHub() profit_b, roi_b = hub_meca.calculer_bilan_annuel("Base") profit_o, roi_o = hub_meca.calculer_bilan_annuel("Optimisé") print(f"--- {hub_meca.version} ---") print(f"Bilan Chute CG (Nollet) : {hub_meca.chute_reelle_cg:.2f} m") print(f"Profit Annuel (Base) : {profit_b/1e6:.2f} M€ | ROI : {roi_b:.1f} ans") print(f"Profit Annuel (Optimisé): {profit_o/1e6:.1f} M€ | ROI : {roi_o:.1f} ans") print(f"--------------------------------------------------") print(f"NOTE : Modèle de 'Hub Énergétique Pilotable' inattaquable physiquement.") print(f"PATERNITÉ : OLIVIER MUHLEISEN - LICENCE D'HONNEUR CC-BY")