Contenido principal

Llamar a funciones de MATLAB extrínsecas en gráficos de Stateflow

Los gráficos de Stateflow® en los modelos de Simulink® tienen una propiedad de lenguaje de acción que define la sintaxis de las acciones de estado y transición. Un icono en la esquina inferior izquierda del área de diseño del gráfico indica el lenguaje de acción del gráfico.

  • MATLAB® como lenguaje de acción.

  • C como lenguaje de acción.

En gráficos que utilizan C como lenguaje de acción, puede llamar a funciones de MATLAB integradas y acceder a variables del área de trabajo de MATLAB utilizando el operador de espacio de nombres ml o la función ml. Para obtener más información, consulte Access MATLAB Functions and Workspace Data in C Charts.

En gráficos que utilizan MATLAB como lenguaje de acción, puede llamar a funciones de MATLAB que admiten directamente la generación de código. Para llamar a funciones extrínsecas que no se admiten para la generación de código, debe usar la función coder.extrinsic (MATLAB Coder). Cuando declara una función con coder.extrinisic(function_name), Stateflow crea una llamada a la función durante la simulación. En un gráfico de Stateflow, solo puede declarar coder.extrinsic una vez. No puede declarar palabras clave reservadas con coder.extrinsic. Para obtener más información, consulte Directrices para nombrar objetos de Stateflow.

Para gráficas que incluyen subgráficos atómicos, debe declarar funciones que no se admiten para la generación de código con coder.extrinsic por separado dentro del subgráfico atómico.

Utilizar la función coder.extrinsic

Para habilitar las llamadas a la función extrínseca heaviside (Symbolic Math Toolbox), este modelo utiliza coder.extrinsic.

El gráfico contiene dos estados paralelos, A y B, y un bloque de función gráfica, foo. El estado A declara la función heaviside, que no se admite para la generación de código, usando coder.extrinsic. El estado B y el bloque de función gráfica también usan heaviside sin coder.extrinsic.

La entrada para el estado A es u1, una onda sinusoidal, y la entrada para el estado B es u2, una onda de coseno. La función gráfica out genera como salida el valor de la función heaviside para la entrada in.

Solo es necesario declarar heaviside una vez en el gráfico usando coder.extrinsic. Después, puede usar la función heaviside en cualquier parte dentro del gráfico sin coder.extrinsic. Cuando genere código, las funciones que declare usando coder.extrinsic tendrán una llamada a la función extrínseca y esa función no aparecerá en el código generado.

Para visualizar el resultado de este gráfico, abra el ámbito.

Consulte también

(Symbolic Math Toolbox) | (MATLAB Coder)

Temas