Main Content

Implementar funciones de MATLAB en Simulink con bloques MATLAB Function

Los bloques MATLAB Function permiten definir funciones personalizadas en modelos de Simulink® utilizando el lenguaje de MATLAB®. Utilice estos bloques cuando:

  • Tiene una función existente de MATLAB que modela una funcionalidad personalizada, o resulta fácil crear una función de ese tipo.

  • Su modelo requiere una funcionalidad personalizada que no se ha capturado o no se puede capturar en el lenguaje gráfico de Simulink.

  • Resulta más fácil modelar una funcionalidad personalizada utilizando una función de MATLAB que utilizando un diagrama de bloques de Simulink.

  • La funcionalidad personalizada que desea modelar no incluye estados dinámicos continuos o discretos. Para modelar estados dinámicos, utilice las funciones S. Consulte Crear bloques con las funciones S de MATLAB.

Calcular la desviación media y estándar con un bloque MATLAB Function

Este ejemplo empieza con un modelo que incluye un bloque MATLAB Function y le guía para personalizar el bloque a fin de calcular la desviación media y estándar para un vector de valores.

Abrir el modelo

El modelo call_stats_block1 incluye un bloque MATLAB Function vacío y los bloques que necesita para el ejemplo. Abra el modelo.

Programar el bloque MATLAB Function

Programe el bloque para calcular la desviación media y estándar para un vector de valores.

  1. Para abrir MATLAB Function Block Editor, haga doble clic en el bloque MATLAB Function. En MATLAB Function Block Editor aparece una función predeterminada con dos variables: un argumento de entrada y un argumento de salida.

    This image shows the MATLAB Function Block Editor after it has been opened from the call_stats_block1 model. It includes a default function.

  2. Defina las entradas y las salidas de la función editando la instrucción de declaración de función:

    function [mean, stdev] = stats(vals)
    

    Esta instrucción define una función denominada stats con tres variables. La instrucción define un argumento de entrada, vals, y dos argumentos de salida, mean y stdev.

  3. En una nueva línea después de la instrucción de declaración de función, elimine el código existente y añada el siguiente:

    % Calculates a statistical mean and a standard
    % deviation for the values in vals.
    
    len = length(vals);
    mean = avg(vals,len);
    stdev = sqrt(sum(((vals-avg(vals,len)).^2))/len);
    plot(vals,"-+");
    
    function mean = avg(array,size)
    mean = sum(array)/size;
    

    El código final tendrá este aspecto:

    The MATLAB Function Block Editor showing the final version of the code. It includes the code from the previous steps.

  4. Salga del bloque. El bloque actualiza los nombres de los puertos. Las salidas mean y stdev de la función se corresponden con los puertos de salida mean y stdev del bloque, y la entrada vals de la función se corresponde con el puerto de entrada vals del bloque.

    This shows the outline of the block without connections between the blocks.

  5. Complete las conexiones con el bloque MATLAB Function.

    This shows the connected signals between the blocks established in the previous image.

  6. Guarde el modelo como call_stats_block2.

Comprobar las propiedades para las variables de un bloque MATLAB Function

Puede comprobar y gestionar las propiedades para las variables de los bloques MATLAB Function. En este ejemplo, verifique que el argumento de entrada vals hereda sus propiedades de tipo y tamaño:

  1. Haga doble clic en el bloque MATLAB Function.

  2. Abra el panel Symbols y Property Inspector. En la pestaña Function, haga clic en Edit Data.

    The Function tab in the Simulink Editor while the MATLAB Function block Editor is open. The Edit Data button on the left is enclosed in a red box.

    El panel Symbols muestra los nombres de las variables en la columna Name. La columna Type determina la asignación de los puertos de los argumentos de las funciones y dónde aparece en la instrucción de declaración de función. En este ejemplo, vals se asigna a un puerto de entrada. mean y stdev se asignan a puertos de salida. Si cambia la entrada Type para cualquier variable, la instrucción de declaración de función también cambia.

  3. Compruebe las propiedades de vals. En el panel Symbols, haga clic en la fila de vals. Property Inspector se actualiza para mostrar las propiedades de vals. La propiedad Scope coincide con la columna Type.

    The Property Inspector and the Symbols pane. The vals input variable is selected, and the Property Inspector displays the variable properties.

Para obtener más información sobre cómo crear variables en el bloque MATLAB Function y establecer propiedades, consulte .

Simular el modelo

En Simulink, haga clic en Run para simular el modelo. El modelo produce datos de la función como salida para los dos bloques Display.

This shows connected signals between the blocks and the simulation results in the Display blocks.

El bloque también representa los datos en una ventana separada.

This shows a plot of the input values and a line drawn through the values.

Consulte también

| |

Temas relacionados

Sitios web externos