Red de conocimiento informático - Material del sitio web - ¿Cómo generar una función s en MATLAB?

¿Cómo generar una función s en MATLAB?

Escribir función S en matlab

La función S es la abreviatura de Función del sistema, úsela para escribir su propio módulo simulink. (Bastante simple, ^_^, consulte la ayuda para una introducción detallada del concepto) Se puede escribir en matlab, C, C++, Fortran, Ada y otros lenguajes. Aquí solo presentaré cómo escribirlo en lenguaje matlab (principalmente). porque es relativamente simple)

En primer lugar, ¿por qué necesitamos usar la función s? Creo que usar la función s puede hacer uso de los ricos recursos de matlab, no solo limitados a simulink, sino también. Utilice las funciones del sistema que proporciona para escribir módulos. No solo se limita a los módulos proporcionados por simulink, sino que las funciones s escritas en lenguajes como c o c ++ también pueden operar puertos de hardware y también pueden operar API de Windows, etc.

Primero, introduzcamos el proceso de simulación de simulink (para comprender la función s). La simulación de simulink tiene dos etapas: una es la inicialización. Esta etapa establece principalmente algunos parámetros, como el sistema, etc. . La simulación de Simulink tiene dos etapas: una es la etapa de inicialización, que establece principalmente algunos parámetros, como el número de entradas y salidas del sistema, el valor del estado inicial, el tiempo de muestreo, etc. La segunda etapa es la etapa de ejecución, es decir, calcular la salida, actualizar estados discretos, calcular estados continuos, etc., y debe ejecutarse repetidamente hasta el final.

En el editor de tipo de espacio de trabajo de matlab, sfuntmpl (esta es la plantilla de función s que viene con matlab), lo miramos para analizar la estructura de la función s. Su primera línea es así: function [sys,x0,str,ts]=sfuntmpl(t,x,u,flag)

Primero, el significado de las variables de entrada y salida: t es el muestreo tiempo, x es la variable de estado, u es la entrada (que se convierte en la entrada del módulo simulink) y el indicador es el indicador de estado durante el proceso de simulación (se usa para determinar si la corriente se está inicializando o en ejecución) ( para determinar si la corriente está inicializándose o ejecutándose, etc. sys La salida varía según el indicador (sys se describirá a continuación junto con el significado del indicador Simplemente bórrelo, str = []), ts es. un vector de 1 × 2, ts(1) es el período de muestreo y ts(2) es el desplazamiento.

El siguiente código de sfuntmpl.m se utiliza para ilustrar esta estructura:

cambiar bandera, % Verifique el estado actual juzgando la bandera

caso 0,

[sys,x0,str,ts]=mdlInitializeSizes;

flag=0 indica que está en el estado de inicialización. En este momento, utilice la función mdlInitializeSizes para la inicialización. La función se encuentra en sfuntmpl.m 149 líneas. m Línea 149

Descubrimos que en el estado de inicialización, sys es una estructura utilizada para configurar algunos parámetros del módulo. La descripción detallada de cada parámetro es la siguiente

size = simsizes. ;% La estructura utilizada para configurar los parámetros del módulo se genera usando simsizes

sizes.NumContStates = 0