BlockWerk Documentación
!

Assertion

Verification

El bloque Assertion supervisa una señal en cada paso de simulación y comprueba si satisface una propiedad definida por el usuario. Cuando la condición se cumple, el puerto emite 1; ante una infracción, emite 0 y la transgresión queda registrada junto con su marca de tiempo exacta. El bloque se ilumina en verde al cumplirse la aserción y en rojo al fallar, ofreciendo retroalimentación visual inmediata durante la ejecución.

Utilice el bloque Assertion para codificar requisitos de diseño y límites de seguridad directamente en el diagrama — por ejemplo, verificar que la señal de un actuador no entre en saturación, que una variable física se mantenga dentro de márgenes seguros o que dos magnitudes preserven una relación permitida. Las aserciones actúan como monitores ligeros de tiempo de ejecución sin necesidad de escribir scripts de prueba externos.

Simular en BlockWerk

Simulador interactivo en tu navegador — sin instalación, motor WebAssembly.

Simular en BlockWerk →

Modelo Matemático

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

Entradas y Salidas

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

Parámetros

Parámetros Label Tipo Por defecto Descripción
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

Ejemplos de Uso

Verificación de que la señal de un actuador no supera los límites de saturación

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

La salida de estado puede graficarse simultáneamente con la señal para registrar el instante exacto de cualquier sobrepaso.

Detección de temperatura fuera del rango de seguridad

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

Verificación de positividad estricta de una señal

PressureSensor → Assertion → FlowCalc
                  mode=above  lowerBound=0

Observaciones y Buenas Prácticas

  • Señal pasante: La señal de entrada no se ve alterada al atravesar el bloque. Conecte la línea de señal original a los bloques subsiguientes y emplee la salida status exclusivamente para monitorización o lógica condicional.
  • Salida de estado: El puerto status emite un valor numérico 1 (correcto) o 0 (fallo) en cada instante; puede conectarse a un Scope o gobernar condiciones lógicas.
  • Entrada desconectada: Si la entrada queda abierta, el bloque asume un valor cero y evalúa la condición frente a cero en cada paso.
  • Interacción entre límites y modo: lowerBound se ignora cuando mode=below; upperBound se ignora cuando mode=above.
  • Registro de infracciones: Cada violación queda registrada cronológicamente con su estampa de tiempo en el log de simulación.
  • Sin parada obligatoria: Por defecto, la vulneración de una aserción no aborta la simulación, sino que señala la contingencia. Conéctelo a un bloque Stop si precisa una detención inmediata.

Bloques Relacionados

  • uPlotDisplay: Visualización cronológica de la salida status para examinar el historial de infracciones.
  • Comparator: Comparación numérica simple que emite una señal binaria utilizable como variable de cálculo.
  • Switch: Permite desviar el flujo hacia un camino de seguridad ante la activación de la señal de fallo de Assertion.