// ===================================================================== // DWR — Druckwasserreaktor (Pressurized Water Reactor) // ===================================================================== // // A simplified model of a pressurized water reactor (PWR) power plant: // reactor core, primary cooling circuit, steam generator, turbine, // generator, and condenser. The TLE is "StromAusgefallen" — loss of // electrical power output. // // This model uses German fault mode names (NichtAus = loss of function, // FehlerAktiv = erroneous output) to demonstrate that ArchDSL supports // any natural language for identifiers. // // Domain: Nuclear Power Engineering (IEC 61513) // Functions: 16 (requires Full version) // Complexity: Medium — 6 subsystems, 2 fault modes per function // // Copyright (c) 2026 Dr. Wolfgang Freese, Overath (Germany) // All rights reserved. This file is provided as an example for // use with MCSA (mcsa.appliedfusa.de). // FUNCTION DWR INPUT Speisewasser INPUT PositionSteuerstaebe INPUT KuehlwasserKalt OUTPUT Strom OUTPUT Waermeenergie OUTPUT Speisewasser_Out // ============================================ // Primaerkreislauf // ============================================ FUNCTION Primary INPUT Speisewasser INPUT PositionSteuerstaebe OUTPUT Wasserdampf FUNCTION Reaktordruckbehaelter INPUT Speisewasser INPUT PositionSteuerstaebe INPUT KuehlmittelRueck OUTPUT PrimaerWaerme OUTPUT PrimaerDruck OIM PrimaerWaerme.NichtAus.OR(Speisewasser.NichtAus; PositionSteuerstaebe.FehlerAktiv; KuehlmittelRueck.NichtAus) OIM PrimaerWaerme.FehlerAktiv.OR(Speisewasser.FehlerAktiv; PositionSteuerstaebe.FehlerAktiv) OIM PrimaerDruck.NichtAus.OR(Speisewasser.NichtAus; KuehlmittelRueck.NichtAus) OIM PrimaerDruck.FehlerAktiv.Speisewasser.FehlerAktiv END FUNCTION FUNCTION Druckhalter INPUT PrimaerDruck OUTPUT DruckSignal OIM DruckSignal.NichtAus.PrimaerDruck.NichtAus OIM DruckSignal.FehlerAktiv.PrimaerDruck.FehlerAktiv END FUNCTION FUNCTION Dampferzeuger INPUT PrimaerWaerme OUTPUT Wasserdampf OIM Wasserdampf.NichtAus.PrimaerWaerme.NichtAus OIM Wasserdampf.FehlerAktiv.PrimaerWaerme.FehlerAktiv END FUNCTION FUNCTION Hauptkuehlmittelpumpe INPUT DruckSignal OUTPUT KuehlmittelRueck OIM KuehlmittelRueck.NichtAus.DruckSignal.NichtAus OIM KuehlmittelRueck.FehlerAktiv.DruckSignal.FehlerAktiv END FUNCTION // --- Signalfluss Primary --- INT Speisewasser_1.Primary.IN.Speisewasser.Reaktordruckbehaelter.IN.Speisewasser INT SteuerstaebePos_1.Primary.IN.PositionSteuerstaebe.Reaktordruckbehaelter.IN.PositionSteuerstaebe INT PrimaerWaerme_1.Reaktordruckbehaelter.OUT.PrimaerWaerme.Dampferzeuger.IN.PrimaerWaerme INT PrimaerDruck_1.Reaktordruckbehaelter.OUT.PrimaerDruck.Druckhalter.IN.PrimaerDruck INT DruckSignal_1.Druckhalter.OUT.DruckSignal.Hauptkuehlmittelpumpe.IN.DruckSignal INT KuehlmittelRueck_1.Hauptkuehlmittelpumpe.OUT.KuehlmittelRueck.Reaktordruckbehaelter.IN.KuehlmittelRueck INT Wasserdampf_1.Dampferzeuger.OUT.Wasserdampf.Primary.OUT.Wasserdampf TLE StromNichtVerfuegbarPrimary.Wasserdampf.NichtAus END FUNCTION // ============================================ // Sekundaerkreislauf // ============================================ FUNCTION Secondary INPUT Wasserdampf OUTPUT Strom OUTPUT Waermeenergie OUTPUT Speisewasser_Out FUNCTION Hochdruckturbine INPUT Wasserdampf OUTPUT DampfHD OIM DampfHD.NichtAus.Wasserdampf.NichtAus OIM DampfHD.FehlerAktiv.Wasserdampf.FehlerAktiv END FUNCTION FUNCTION Zwischenueberhitzer INPUT DampfHD OUTPUT DampfND OIM DampfND.NichtAus.DampfHD.NichtAus OIM DampfND.FehlerAktiv.DampfHD.FehlerAktiv END FUNCTION FUNCTION Niederdruckturbine INPUT DampfND OUTPUT MechEnergie OUTPUT Restwaerme OIM MechEnergie.NichtAus.DampfND.NichtAus OIM MechEnergie.FehlerAktiv.DampfND.FehlerAktiv OIM Restwaerme.NichtAus.DampfND.NichtAus END FUNCTION FUNCTION Generator INPUT MechEnergie OUTPUT Strom OIM Strom.NichtAus.MechEnergie.NichtAus OIM Strom.FehlerAktiv.MechEnergie.FehlerAktiv END FUNCTION FUNCTION Vorwaermanlage INPUT Restwaerme OUTPUT VorgewaermtesWasser OIM VorgewaermtesWasser.NichtAus.Restwaerme.NichtAus OIM VorgewaermtesWasser.FehlerAktiv.Restwaerme.NichtAus END FUNCTION FUNCTION Speisewasserpumpe INPUT VorgewaermtesWasser OUTPUT Speisewasser_Out OIM Speisewasser_Out.NichtAus.VorgewaermtesWasser.NichtAus OIM Speisewasser_Out.FehlerAktiv.VorgewaermtesWasser.FehlerAktiv END FUNCTION FUNCTION Kuehlwasserpumpe INPUT MechEnergie OUTPUT Waermeenergie OIM Waermeenergie.NichtAus.MechEnergie.NichtAus OIM Waermeenergie.FehlerAktiv.MechEnergie.FehlerAktiv END FUNCTION // --- Signalfluss Secondary --- INT Wasserdampf_2.Secondary.IN.Wasserdampf.Hochdruckturbine.IN.Wasserdampf INT DampfHD_1.Hochdruckturbine.OUT.DampfHD.Zwischenueberhitzer.IN.DampfHD INT DampfND_1.Zwischenueberhitzer.OUT.DampfND.Niederdruckturbine.IN.DampfND INT MechEnergie_1.Niederdruckturbine.OUT.MechEnergie.Generator.IN.MechEnergie INT MechEnergie_2.Niederdruckturbine.OUT.MechEnergie.Kuehlwasserpumpe.IN.MechEnergie INT Restwaerme_1.Niederdruckturbine.OUT.Restwaerme.Vorwaermanlage.IN.Restwaerme INT VorgewaermtesWasser_1.Vorwaermanlage.OUT.VorgewaermtesWasser.Speisewasserpumpe.IN.VorgewaermtesWasser INT Strom_1.Generator.OUT.Strom.Secondary.OUT.Strom INT Speisewasser_2.Speisewasserpumpe.OUT.Speisewasser_Out.Secondary.OUT.Speisewasser_Out INT Waermeenergie_1.Kuehlwasserpumpe.OUT.Waermeenergie.Secondary.OUT.Waermeenergie TLE StromNichtVerfuegbar.Strom.NichtAus END FUNCTION // ============================================ // Kuehlkreislauf // ============================================ FUNCTION Cooling INPUT Waermeenergie INPUT KuehlwasserKalt OUTPUT KuehlwasserWarm FUNCTION Kondensator INPUT Waermeenergie INPUT KuehlwasserKalt OUTPUT KuehlwasserWarm OIM KuehlwasserWarm.NichtAus.OR(Waermeenergie.NichtAus; KuehlwasserKalt.NichtAus) OIM KuehlwasserWarm.FehlerAktiv.OR(Waermeenergie.FehlerAktiv; KuehlwasserKalt.FehlerAktiv) END FUNCTION // --- Signalfluss Cooling --- INT Waermeenergie_2.Cooling.IN.Waermeenergie.Kondensator.IN.Waermeenergie INT KuehlwasserKalt_1.Cooling.IN.KuehlwasserKalt.Kondensator.IN.KuehlwasserKalt INT KuehlwasserWarm_1.Kondensator.OUT.KuehlwasserWarm.Cooling.OUT.KuehlwasserWarm END FUNCTION // ============================================ // Signalfluss DWR (Top-Level) // ============================================ INT Speisewasser_DWR.DWR.IN.Speisewasser.Primary.IN.Speisewasser INT SteuerstaebePos_DWR.DWR.IN.PositionSteuerstaebe.Primary.IN.PositionSteuerstaebe INT Wasserdampf_DWR.Primary.OUT.Wasserdampf.Secondary.IN.Wasserdampf INT KuehlwasserKalt_DWR.DWR.IN.KuehlwasserKalt.Cooling.IN.KuehlwasserKalt INT Waermeenergie_DWR.Secondary.OUT.Waermeenergie.Cooling.IN.Waermeenergie INT Strom_DWR.Secondary.OUT.Strom.DWR.OUT.Strom INT Speisewasser_Out_DWR.Secondary.OUT.Speisewasser_Out.DWR.OUT.Speisewasser_Out TLE StromAusgefallen.OR(Strom.NichtAus; Strom.FehlerAktiv) END FUNCTION // ============================================================ // Fehlerraten // ISF: Normalverteilung mu=1e-6, sigma=25%*mu = 2.5e-7 // SF: Normalverteilung mu=2.5e-7, sigma=55%*mu = 1.375e-7 // TF: Normalverteilung mu=5e-8, sigma=30%*mu = 1.5e-8 // ============================================================ // --- ISF (Eingangssignal-Fehlerraten) --- ISF DWR.Speisewasser.NichtAus 1.0762e-06 ISF DWR.Speisewasser.FehlerAktiv 7.4000e-07 ISF DWR.PositionSteuerstaebe.NichtAus 1.1876e-06 ISF DWR.PositionSteuerstaebe.FehlerAktiv 1.2351e-06 ISF DWR.KuehlwasserKalt.NichtAus 5.1224e-07 ISF DWR.KuehlwasserKalt.FehlerAktiv 6.7446e-07 // --- SF (Systemische Fehlerraten) --- SF Reaktordruckbehaelter.PrimaerWaerme.NichtAus 2.6758e-07 SF Reaktordruckbehaelter.PrimaerWaerme.FehlerAktiv 2.0652e-07 SF Reaktordruckbehaelter.PrimaerDruck.NichtAus 2.4769e-07 SF Reaktordruckbehaelter.PrimaerDruck.FehlerAktiv 1.3271e-07 SF Druckhalter.DruckSignal.NichtAus 3.7092e-07 SF Druckhalter.DruckSignal.FehlerAktiv 3.5695e-07 SF Dampferzeuger.Wasserdampf.NichtAus 2.5908e-07 SF Dampferzeuger.Wasserdampf.FehlerAktiv 4.0500e-07 SF Hauptkuehlmittelpumpe.KuehlmittelRueck.NichtAus 3.1428e-07 SF Hauptkuehlmittelpumpe.KuehlmittelRueck.FehlerAktiv 1.3185e-07 SF Hochdruckturbine.DampfHD.NichtAus 3.0070e-07 SF Hochdruckturbine.DampfHD.FehlerAktiv 1.1815e-07 SF Zwischenueberhitzer.DampfND.NichtAus 3.7079e-07 SF Zwischenueberhitzer.DampfND.FehlerAktiv 2.4314e-07 SF Niederdruckturbine.MechEnergie.NichtAus 2.2458e-07 SF Niederdruckturbine.MechEnergie.FehlerAktiv 1.5637e-07 SF Niederdruckturbine.Restwaerme.NichtAus 4.1810e-07 SF Generator.Strom.NichtAus 2.2875e-07 SF Generator.Strom.FehlerAktiv 1.9110e-07 SF Vorwaermanlage.VorgewaermtesWasser.NichtAus 2.0158e-07 SF Vorwaermanlage.VorgewaermtesWasser.FehlerAktiv 3.2319e-07 SF Speisewasserpumpe.Speisewasser_Out.NichtAus 3.0025e-07 SF Speisewasserpumpe.Speisewasser_Out.FehlerAktiv 3.0675e-07 SF Kuehlwasserpumpe.Waermeenergie.NichtAus 3.0924e-07 SF Kuehlwasserpumpe.Waermeenergie.FehlerAktiv 5.4448e-07 SF Kondensator.KuehlwasserWarm.NichtAus 1.9412e-07 SF Kondensator.KuehlwasserWarm.FehlerAktiv 1.7957e-07 // --- TF (Transfer-Fehlerraten) --- TF Speisewasser_1.NichtAus 3.7793e-08 TF Speisewasser_1.FehlerAktiv 5.9240e-08 TF SteuerstaebePos_1.NichtAus 6.6935e-08 TF SteuerstaebePos_1.FehlerAktiv 4.8291e-08 TF PrimaerWaerme_1.NichtAus 3.7398e-08 TF PrimaerWaerme_1.FehlerAktiv 3.7633e-08 TF PrimaerDruck_1.NichtAus 5.9759e-08 TF PrimaerDruck_1.FehlerAktiv 6.1149e-08 TF DruckSignal_1.NichtAus 5.8147e-08 TF KuehlmittelRueck_1.NichtAus 4.0017e-08 TF Wasserdampf_1.NichtAus 5.3482e-08 TF Wasserdampf_2.NichtAus 5.1750e-08 TF Wasserdampf_2.FehlerAktiv 5.3280e-08 TF DampfHD_1.NichtAus 6.3071e-08 TF DampfHD_1.FehlerAktiv 5.3354e-08 TF DampfND_1.NichtAus 6.0184e-08 TF DampfND_1.FehlerAktiv 5.1014e-08 TF MechEnergie_1.NichtAus 5.4337e-08 TF MechEnergie_2.NichtAus 4.8100e-08 TF Restwaerme_1.NichtAus 5.9469e-08 TF VorgewaermtesWasser_1.NichtAus 2.8143e-08 TF Speisewasser_2.NichtAus 4.5205e-08 TF Waermeenergie_1.NichtAus 4.2944e-08 TF Waermeenergie_2.NichtAus 4.1200e-08 TF KuehlwasserKalt_1.NichtAus 4.0417e-08 TF Strom_1.NichtAus 3.9500e-08 TF Strom_1.FehlerAktiv 4.7600e-08 TF Speisewasser_Out_DWR.NichtAus 4.3100e-08 TF KuehlwasserKalt_DWR.NichtAus 4.5873e-08 TF Speisewasser_DWR.NichtAus 3.8900e-08 TF SteuerstaebePos_DWR.NichtAus 5.1200e-08 TF SteuerstaebePos_DWR.FehlerAktiv 3.9026e-08 TF Wasserdampf_DWR.NichtAus 4.1895e-08 TF Wasserdampf_DWR.FehlerAktiv 3.4122e-08 TF Strom_DWR.NichtAus 5.6620e-08 TF Strom_DWR.FehlerAktiv 4.4067e-08 TF MechEnergie_1.FehlerAktiv 6.3865e-08 TF Wasserdampf_1.FehlerAktiv 6.4312e-08 TF Speisewasser_DWR.FehlerAktiv 4.2373e-08 TF MechEnergie_2.FehlerAktiv 7.2501e-08 TF KuehlwasserKalt_1.FehlerAktiv 3.4003e-08 TF Speisewasser_2.FehlerAktiv 2.7420e-08 TF Waermeenergie_1.FehlerAktiv 3.5736e-08 TF Waermeenergie_2.FehlerAktiv 4.1566e-08 TF Speisewasser_Out_DWR.FehlerAktiv 7.9264e-08 TF KuehlwasserWarm_1.NichtAus 4.1793e-08 TF KuehlwasserWarm_1.FehlerAktiv 5.8283e-08