Está en la página 1de 8

Librerías de Matlab para apoyar la simulacion numerica de

modelos dinamicos de sistemas.

CONTENIDO

Módulo II. Métodos y Modelos


FUNCIONES-S

Estructura de las funciones-S


Sintaxis de las tareas que se desempañan en los bloques de las funciones-S
Bloque de funciones-S en Simulink

FUNCIÓN TRIM

FUNCIÓN LINMOD

1
Funciones-S

Una forma de resolver sistemas de ecuaciones diferenciales con MatLab es usando “Funciones S”.
Se trata de bloques que pueden incorporarse en Simulink y tienen la ventaja de ser construidos en
archivos .m y después conectados con otros bloques de Simulink.

Como un bloque de Simulink, una function-S consiste de un conjunto de entradas, un conjunto de


estados y un conjunto de salidas, donde las salidas son una función del tiempo de simulación, las
entradas y los estados:

ESTRUCTURA DE LAS FUNCIONES-S


Módulo II. Métodos y Modelos

La primera línea especifica los argumentos de entrada y salida:

Los argumentos de entrada son:

t Variable de tiempo
x Vector de estados
u Vector de entradas
Valor entero que indica que grupo de información y/o de cálculos va a desempeñar la
flag
Función-S a través de Simulink

Los argumentos de salida son los siguientes:

Es el vector principal de salidas del bloque. Este vector va a contener valores según el valor de
sys
la bandera “Flag”.
x0 Vector condiciones iniciales
2
Debe definirse como un arreglo vacío []. Es una variable reservada para uso futuro en
str
Simulink
Es un arreglo de dos columnas para definir el tiempo de muestreo.

Por ejemplo: para correr la function-S en tiempo continuo (“continuous simple”), ts se define
ts como [0 0]. Para correr la función-S a la misma velocidad que el bloque al cual esté conectada
(“inherited simple time”), ts se establece como [-1 0]. Para correr la function-S cada 0.25 s
(“discrete sample time”) empezando en 0.1 s después de que la simulación inició, ts se
establece como [0.25 0.1].

LOS TRES ÚLTIMOS ARGUMENTOS (x0, str, y ts) SON REQUERIDOS POR SIMULINK SOLO CUANDO
flag=0, DE OTRA FORMA, ESTOS SE IGNORAN.

En el bloque de Función-S se realizan seis tareas diferentes, cada una de estas se identifica con un
número:

Nivel I Nivel-2
Descripción
Flag Método al que se llama
Define las características básicas del bloque de la Function-S,
incluyendo las muestras de tiempo, condiciones iniciales de

Módulo II. Métodos y Modelos


0 setup
los estados continuos y discretos, y los tamaños de los
vectores de entrada y salida.
1 mdlDerivatives Calcula las derivadas de las variables de estado continuas.
Actualiza los estados discretos, tiempo de muestreo y otros
2 mdlUpdate
requerimientos de tiempo.
Calcula las salidas de la Function-S como una función de los
3 mdlOutputs elementos del vector de estados y en algunos casos de los
elementos del vector de entradas.
mdlOutputs method
Calcula el tiempo de la siguiente ocurrencia. Esta rutina se
updates the run-time
4 usa solo cuando se especifica una variable discreta en la
object NextTimeHit
rutina de setup.
property
9 mdlTerminate Realiza cualquier tarea necesaria para dar fin a la simulación.

3
SINTAXIS DE LAS TAREAS QUE SE DESEMPAÑAN EN LOS BLOQUES DE LAS FUNCIONES-S

Después de la primera línea, la función-S se divide en casos que dependen del valor de la bandera
“Flag”. La sintaxis es como se muesta a continuación:
Módulo II. Métodos y Modelos

Para cada caso las instrucciones son las siguientes:

CASE 0 (INICIALIZACIÓN):

Contiene la estructura de inicialización con información del modelo y las salidas: sys (conteniendo
la estructura de inicialización, x0, str y ts.

(a) Se define un vector renglón que especifica el número de entradas, salidas y otras
características del modelo matemático. Para ello se invoca el comando simsizes, el cual
regresa una estructura inicializada con nombre s. Al final, se define la salida sys usando
nuevamente el comando simsizes con una estructura variable como argumento (s en el
ejemplo que se muestra a continuación). Esta última instrucción traduce los valores de la
estructura s en un vector renglón que es enviado a Simulink a través de la salida sys.
4
s=simsizes;
s.NumContStates=Número de estados continuos;
s.NumDiscStates=Número de estados discretos;
s.NumOutputs=Número de salidas;
s.NumInputs=Número de entradas;
s.DirFeedthrough= 1 cuando las salidas dependen algebraicamente de las entradas, 0
cuando no existe esta dependencia;
s.NumSampleTimes=1 (Número de muestras de tiempo);

sys=simsizes(s);

(b) Se definen x0, str y ts:

x0=[Vector de condiciones iniciales- con dimensión n=número de estados];


str=[];
ts=[0,0]; % para un muestreo continuo

Módulo II. Métodos y Modelos


CASE 1 (DERIVADAS):

Contiene el modelo matemático y como salida el vector de derivadas.


(a) Se definen las los parámetros del modelo, las entradas y las escriben las ecuaciones
diferenciales como un vector o un conjunto de ecuaciones.
(b) Se define el vector de salidas:

[Parámetros del modelo]


[Ecuaciones de entrada]
[Ecuaciones del modelo]

sys=[vector de derivadas];

CASE {2, 4, 9} (ACTUALIZACIÓN DE ESTADOS, PRÓXIMA OCURRENCIA, FINALIZACIÓN):

Contiene la salida asociada a los casos 2, 4 y 9, que para los tres casos es un arreglo vacío.
Además contiene cualquier instrucción para terminar el programa.

sys=[];
otherwise
error(['unhanled flag=',num2str(flag)]);

5
BLOQUE DE FUNCIONES-S EN SIMULINK

El bloque de las funciones-S se encuentra en la librería - “User defined functions”

Los parámetros de simulación:


Módulo II. Métodos y Modelos

6
Funcion trim

Encuentra un punto de equilibrio de un sistema dinámico, es decir, es un punto en el cual el


sistema está en estado estable.

función descripción
Encuentra el punto de equilibrio cerca del
[x,u,y,dx] = trim('sys')
estado inicial del sistema, x0
x0, u0 y y0 son el vector de estados, el vector
de entradas y el vector de salidas que estarán
[x,u,y,dx] = trim('sys',x0,u0,y0)
fijos mientras la función intenta encontrar el
estado estable.
ix, iu e iy indica cuales valores de x0, u0 y y0 se
[x,u,y,dx] = trim('sys',x0,u0,y0,ix,iu,iy)
mantienen fijos.

‘sys’= nombre del modelo (bloque de una función-S que contiene el modelo del sistema).

Módulo II. Métodos y Modelos

7
Funcion linmod

Obtiene un modelo lineal a partir de sistemas de ecuaciones diferenciales descritas como


modelos de Simulink. Las entradas y salidas se definen en un diagrama de bloques de Simulink
usando bloques de puertos de entrada y salida.

La función es:

[A,B,C,D] = linmod('sys', x, u)

‘sys’= nombre del bloque que contiene el modelo no lineal del sistema.
x= las variables de estado especificadas
u= entradas

Si se omiten x y u, estas tomarán el valor de cero.


Módulo II. Métodos y Modelos

También podría gustarte