BlockWerk Documentatie
!

Assertion

Verification

Het Assertion-blok bewaakt een signaal bij elke simulatiestap en controleert of het voldoet aan een door de gebruiker gedefinieerde eigenschap. Wanneer aan de voorwaarde wordt voldaan, geeft de statuspoort 1 uit; bij een schending geeft de uitgang 0 uit en wordt de schending inclusief tijdstempel vastgelegd. Het blokoppervlak kleurt groen bij slagen en rood bij falen, wat zorgt voor directe visuele feedback tijdens de simulatie.

Gebruik het Assertion-blok om veiligheidsbeperkingen en ontwerpeisen rechtstreeks in een schema in te bedden — bijvoorbeeld om te verifiëren dat een stuursignaal nooit verzadigt, dat een fysische grootheid binnen veilige grenzen blijft, of dat twee signalen in een geldige verhouding blijven. Asserties fungeren als lichtgewicht runtime-monitoren zonder dat externe testscripts vereist zijn.

Simuleren in BlockWerk

Interactieve sandbox direct in je browser — geen installatie, aangedreven door WebAssembly.

Simuleren in BlockWerk →

Wiskundig Model

assert(f(u(t)))\text{assert}(f(u(t)))

Ingangen & Uitgangen

Direction ID Label Type Status
→ In in Signal number Required
← Out status Pass number Output

Parameters

Parameters Label Type Standaard Beschrijving
mode Condition select between Which property to check
lowerBound Lower Bound number -1 Lower bound of the assertion range
upperBound Upper Bound number 1 Upper bound of the assertion range

Gebruiksvoorbeelden

Verifiëren dat een actuatorsignaal binnen de verzadigingsgrenzen blijft

Controller → Assertion → Actuator
             mode=between  lowerBound=-10  upperBound=10

De statusuitgang kan naast het signaal worden geplot om elk moment van grensoverschrijding te registreren.

Detecteren wanneer een temperatuur het veilige bereik verlaat

TempSensor → Assertion → Display
              mode=between  lowerBound=15  upperBound=85

Bevestigen dat een signaal strikt positief is

PressureSensor → Assertion → FlowCalc
                  mode=above  lowerBound=0

Opmerkingen & Best Practices

  • Doorvoersignaal: Het ingangssignaal wordt niet gewijzigd. Verbind de signaallijn met stroomafwaartse blokken en gebruik de status-uitgang uitsluitend voor monitoring of voorwaardelijke logica.
  • Statusuitgang: De status-poort levert bij elke stap een numerieke 1 (geslaagd) of 0 (mislukt); dit signaal kan naar een Scope worden geleid of logische schakelingen aansturen.
  • Niet-aangesloten ingang: Als de ingangspoort niet is aangesloten, behandelt het blok het signaal als nul en toetst het de voorwaarde elke stap tegen nul.
  • Interactie tussen grenzen en modus: lowerBound wordt genegeerd bij mode=below; upperBound wordt genegeerd bij mode=above.
  • Logboekregistratie van schendingen: Schendingen worden met tijdstempels geregistreerd in het simulatielogboek. Bekijk het logboek na afloop om alle storingsintervallen te inspecteren.
  • Geen harde simulatiestop: Standaard stopt een assertieschending de simulatie niet; de conditie wordt enkel gesignaleerd. Koppel een Stop-blok achter de status-poort indien een directe simulatie-afbraak gewenst is.

Gerelateerde Componenten

  • uPlotDisplay: Plot de status-uitgang over de tijd om de tijdlijn van overtredingen te visualiseren.
  • Comparator: Voert een numerieke vergelijking uit en levert een booleaans signaal; te gebruiken als de uitkomst direct als signaal nodig is in plaats van als bewakingseis.
  • Switch: Kan de status-uitgang van Assertion gebruiken om om te schakelen naar een veilige signaalroute bij een grensoverschrijding.