Main Content

Visión general de máquinas de Mealy y Moore

En una máquina de estados finitos, el estado es una combinación de datos locales y actividad del diagrama. "Estado de computación" significa actualizar los datos locales y hacer transiciones de un estado actualmente activo a un nuevo estado. En los modelos de máquinas de estados, el siguiente estado es una función del estado actual y sus entradas:

X(n+1)=f(X(n),u)

En esta ecuación:

  • X(n) representa el estado en la unidad de tiempo n.

  • X(n+1) representa el estado en la siguiente unidad de tiempo n+1.

  • u representa las entradas.

El estado persiste de una unidad de tiempo a la siguiente.

Semántica de máquinas de Mealy y Moore

Las máquinas de Mealy y Moore a menudo se consideran los paradigmas básicos y estándar de la industria para modelizar máquinas de estados finitos. Puede crear diagramas que implementen la semántica pura de Mealy o Moore como un subconjunto de la semántica de gráficos de Stateflow®. Puede usar diagramas de Mealy y Moore en simulación y generación de código con software Embedded Coder®, Simulink® Coder™ y HDL Coder™. La semántica de Mealy y Moore no se admite en gráficos independientes de Stateflow en MATLAB®.

Semántica de diagramas de Mealy

Las máquinas de Mealy son máquinas de estados finitos en las que se producen transiciones en los flancos de reloj. La salida de un diagrama de Mealy es una función de las entradas y el estado:

y=g(X,u)

En cada unidad de tiempo, se activa un diagrama de Mealy, evalúa su entrada y luego pasa a una nueva configuración de estados activos, también llamada su siguiente estado. El diagrama calcula su salida a medida que pasa al siguiente estado.

Para garantizar que la salida sea una función de la entrada y el estado, las máquinas de estados de Mealy aplican esta semántica:

  • Las salidas no dependen del siguiente estado.

  • El diagrama calcula las salidas solo en las transiciones, no en los estados.

  • El diagrama se activa periódicamente en función de un reloj del sistema.

Las máquinas de Mealy calculan su salida en las transiciones. Por lo tanto, los diagramas de Mealy pueden calcular su primera salida en el momento en que se ejecuta la ruta predeterminada para el diagrama. Si habilita la propiedad del diagrama Execute (enter) Chart At Initialization para un diagrama de Mealy, este cálculo se produce en t = 0 (primera unidad de tiempo). De lo contrario, se produce en t = 1 (siguiente unidad de tiempo). Para obtener más información, consulte Ejecutar (entrar en) el gráfico en la inicialización.

Semántica de diagramas de Moore

Las máquinas de Moore son máquinas de estados finitos en las que la salida se modifica en los flancos de reloj. La salida de un diagrama de Moore es una función solo de estado:

y=g(X)

En cada unidad de tiempo, un diagrama de Moore se activa, calcula su salida y evalúa su entrada para reconfigurarse para la siguiente unidad de tiempo. Por ejemplo, después de evaluar su entrada, el diagrama puede pasar a una nueva configuración de estados activos. El diagrama calcula su salida antes de evaluar su entrada y actualizar su estado.

Para garantizar que la salida sea una función solo del estado actual, las máquinas de estados de Moore aplican esta semántica:

  • Las salidas no dependen de las entradas.

  • Las salidas no dependen de las salidas previas.

  • Las salidas no dependen de la lógica temporal.

Las máquinas de Moore calculan su salida en estados. Por lo tanto, las máquinas de Moore solo pueden calcular salidas después de que se ejecute la ruta predeterminada. Hasta entonces, las salidas toman los valores predeterminados.

Crear diagramas de Mealy y Moore

Cuando crea un gráfico de Stateflow, el tipo predeterminado es un modelo de máquina de estados híbrido llamado diagrama Clásico. Los diagramas clásicos combinan la semántica de los diagramas de Mealy y Moore con la semántica de los gráficos de Stateflow ampliada.

Para crear un diagrama de Mealy, en la línea de comandos de MATLAB, introduzca:

sfnew -Mealy

Block icon for Mealy chart.

Para crear un diagrama de Moore, en la línea de comandos de MATLAB, introduzca:

sfnew -Moore

Block icon for Moore chart.

Alternativamente, después de añadir un bloque de gráficos de Stateflow a un modelo de Simulink, puede elegir el tipo de semántica para el gráfico configurando la propiedad State Machine Type. Para obtener más información, consulte Tipo de máquina de estados.

Ventajas de los diagramas de Mealy y Moore

Los diagramas de Mealy y Moore ofrecen estas ventajas sobre los gráficos Clásicos de Stateflow:

  • Puede verificar que los diagramas de Mealy y Moore creados cumplen con sus definiciones formales y reglas semánticas. Los mensajes de error aparecen en tiempo de compilación (no en tiempo de diseño).

  • Los diagramas de Moore proporcionan una implementación más eficiente que los gráficos Clásicos para objetivos de C/C++ y HDL.

  • Puede usar un diagrama de Moore para modelizar un bucle de retroalimentación. En los diagramas de Moore, las entradas no tienen transmisión directa. Puede diseñar un bucle con retroalimentación desde el puerto de salida al puerto de entrada sin introducir un bucle algebraico. Los diagramas de Mealy y Clásicos tienen transmisión directa y producen un error en presencia de un bucle algebraico.

    Simulink model containing a Moore chart in a feedback loop.

Consulte también

Temas relacionados