Professional Documents
Culture Documents
1.6.2) Grfica en tres dimensiones.
Para dibujar curvas en el espacio (3D) se usa el comando plot3, veamos el siguiente
ejemplo
>> close % cierra la figura activa ; despus de este signo puedo escribir comentarios
>> t=0:pi/100:8*pi;
>> plot3(sin(t),cos(t),t);
>> title('espiral 3 D');
Figura 5
Para la graficacin con retcula se utilizan los comandos mesh y meshgrid. Si x e y son dos
vectores que contienen las coordenadas en una y otra direccin de la retcula (grid) sobre la
que se va a dibujar la funcin se crean dos matrices X (cuyas filas son copias de x) e Y
(cuyas columnas son copias de y) utilizando la funcin meshgrid. Estas matrices
representan respectivamente las coordenadas x e y de todos los puntos de la retcula. La
matriz de valores Z se calcula a partir de las matrices de coordenadas X e Y.
Finalmente se dibuja la matriz Z con la funcin mesh, cuyos elementos son funcin
elemento a elemento de los elementos de X e Y. La funcin mesh dibuja en perspectiva una
funcin con base a una retcula de lneas de colores, rodeando cuadrilteros del color de
fondo, con eliminacin de lneas ocultas. Los parmetros de entrada para la funcin
meshgrid son los dos vectores a partir de los cuales se va a crear la matriz de valores Z, en
este caso los vectores seran x e y. El parmetro de entrada de la funcin mesh es la funcin
Z. Entonces un ejemplo sera:
>>[X,Y] = meshgrid(-2:.2:2, -2:.2:2);
>> Z = X .* exp(-X.^2 - Y.^2); % Para operaciones con arreglos, usar el punto (.)
>>mesh(Z)
Cuyo resultado se muestra en la figura 5.
Figura 6. Funcin mesh(Z)
El comando surf crea una grfica similar a la creada por el comando mesh, slo que en vez
de lneas aparece ahora una superficie faceteada, tambin con eliminacin de lneas ocultas.
El color de las facetas depende del valor de la funcin. Al ejecutar el comando surf con la
funcin anterior se obtiene
Figura 7. Funcin surf(Z)
1.7) Definicin de polinomios
Si tenemos un polinomio de grado n, podemos representarlo como un vector cuyos
componentes sern los coeficientes de las variables que define el polinomio, estos se
escriben comenzando con el coeficiente de la potencia ms alta de la variable, continuando
con el coeficiente de la potencia inmediatamente inferior y as sucesivamente, si no existe
alguna de las potencias en la variable se debe escribir un cero en el sitio correspondiente en
el vector que representa el polinomio.
Por ejemplo si tenemos el polinomio:
Pol = 2s2 + 6s + 4
En MATLAB este polinomio seria:
pol=[2 6 4 ]
pol =
2 6 4
Para obtener las races de un polinomio se utiliza el comando roots de la siguiente forma:
>> roots(pol)
ans =
-2
-1
Entre las funciones que posee MATLAB para manipular polinomios tenemos:
- roots = Extrae las races de un polinomio.
- polival = Evaluacin de un valor en un polinomio
- conv = Multiplicacin de polinomios
- deconv = Divisin de polinomios
- residue = Expansion en fracciones parciales.
- polyder = Derivada de un polinomio.
1.8) Representacin en MATLAB de funciones de transferencia en S y en Z
Para poder manipular una funcin de transferencia, se deben crear dos polinomios, uno para
el numerador y el otro para el denominador, luego se utiliza el comando
tf(numerador,denominador) como se muestra en el siguiente ejemplo
>> num=[1 11]
num =
1 11
>> den=[1 5 6]
den =
1 5 6
>> sip = tf(num,den)
Transfer function:
s + 11
-------------
s^2 + 5 s + 6
En este punto se ha creado la variable sip, que representa la funcin de transferencia
completa.
Una forma alterna de crear las funciones de transferencia consiste en utilizar primero el
comando zpk para especificar la variable s o z, una vez hecho esto se procede a escribir la
expresin para la funcin de transferencia tal y como se hara en un papel:
>> s=zpk('s');
>> G1=(s^2+2)/(s-3)
Zero/pole/gain:
(s^2 + 2)
----------
(s-3)
Si se desea representar una funcin de transferencia en z se debe especificar
adicionalemente el perodo de muestreo:
>> z=zpk(z,0.1);
>> H=(z+1)*(z+2)/(z^2+1)
Zero/pole/gain:
(z+1) (z+2)
-----------
(z^2 + 1)
Sampling time: 0.1
El comando zpk se puede utilizar de muchas otras maneras, para mayor informacin puede
escribir
>> help zpk
1.9) Obtencin de polos y ceros
Si se tiene una funcin de transferencia creada como se indic anteriormente, el comando
pole nos permite encontrar los polos y el comando zero los ceros:
num=[1 11];
den=[1 5 6];
transfun = tf(num,den);
> transfun=tf(num,den)
Transfer function:
s + 11
-------------
s^2 + 5 s + 6
>> cero2=zero(transfun)
cero2 =
-11
>> polo2=pole(transfun)
polo2 =
-3.0000
-2.0000
El comando pzmap nos permite visualizar el diagrama de polos y ceros.
>> pzmap(transfun)
Figura 8
1.10) Simplificacin de bloques
Teniendo las funciones de transferencia de los diferentes elementos de un diagrama de
bloques, se puede utilizar MATLAB para simplificarlos.
Teniendo la funcin de trasferencia G(s) y H(s), el comando para hallar el equivalente
de estas dos en serie sera:
G_eqiv_serie=series(G,H)
Y el equivalente realimentado se obtiene con el comando:
G_eqiv_realim=feedback(G,H).
1.11) Respuesta al escalon de una funcin de transferencia
Con el comando step se puede visualizar la respuesta al escaln de un sistema cuya
funcin de transferencia haya sido previamente creada:
>> step(transfun)
Figura 9
1.12) Lugar geomtrico de las races
La grafica del lugar geomtrico de las races de un sistema se obtiene con el comando
rlocus.
>>numc = [0 6 7];
>>denc = [12 9 13];
>>rlocus(numc,denc)
La grfica que se obtiene es:
Figura 10
1.13) Respuesta en frecuencia
Para obtener la traza o diagrama polar, se utiliza el comando nyquist:
>> nyquist(transfun)
Figura 11
Las trazas de bode se generan con el comando bode
>> bode(transfun)
Figura 12
Tambin es posible obtener el margen de fase y ganancia directamente desde MATLAB
con el comando margin.
>> margin(transfun)
Figura 13
1.14) Introduccin al simulink
Simulink es un programa con entorno grfico para modelacin y simulacin. Las diferentes
libreras que posee, permiten representar sistemas dinmicos de una manera muy simple.
Para invocar el Simulink, basta teclear desde el <<prompt>>:
>> simulink
Simulink tiene dos fases de utilizacin: la definicin del modelo a trabajar y el anlisis del
mismo.
Para la definicin del modelo, Simulink dispone de diferentes libreras. Cada una de ellas
dispone de una serie de elementos que nos permiten crear y editar los diagramas de
bloques utilizando el mouse. A continuacin se mencionan algunas de las libreras ms
importantes y algunos de los bloques que se encuentran dentro de ellas
MMMh Integradores, derivadores, funcin de transferencia, retardo de transporte,
memorias, etc.
1hVh funciones de transferencia discretas, filtro digitales, ZOH, espacio de estado
discreto, etc.
1VM sumadores, ganancias, funciones trigonomtricas, matrices, etc.
1MVMVhescaln unitario, seno, ruido blanco, variables desde un archivo .mat, generadores
de seales, etc.
1MVVh switches, rels, saturadores, etc.
VMVh _ hVMh entradas y salidas, multiplexores, demultiplexores
Wh displays, osciloscopios, salidas a archivos .mat o al espacio de trabajo.
Para construir un modelo se empieza creando un archivo tipo "model" (File, New, model),
y se abren los distintos grupos de funciones a utilizar, despus se colocan los bloques
necesarios en la ventana que se creo, arrastrando con el mouse los bloques deseados hasta
el rea de trabajo. Luego se procede a conectarlos por medio de un click sostenido uniendo
sus entradas y salidas. Despus se configuran los parmetros de cada bloque segn el
modelo y posteriormente se trabaja en el men de simulacin con parmetros como el
tiempo de inicio, tiempo de finalizacin, etc. Despus, se inicia la simulacin (simulation-
start) y por ltimo se observan los resultados por ejemplo haciendo doble click sobre el
scope (si es que se us alguno)
Un ejemplo sencillo de la utilizacin de este paquete se muestra a continuacin:
Sea la funcin de transferencia en lazo abierto:
La respuesta al escaln en lazo abierto puede determinarse implementando el diagrama
mostrado en la siguiente figura
Figura 14 Respuesta paso en lazo abierto
De igual forma, la figura 15 muestra el diagrama necesario para determinar la respuesta al
escaln en lazo cerrado (con realimentacin unitaria).
Figura 15
Simulink es una herramienta muy til para simulacin de modelos sencillos como los
mostrados en los ejemplos, pero tambin permite la creacin de modelos ms complejos ya
sean estos continuos o discretos, multivariables y no lineales entre otros, ya que dispone de
una serie de libreras especializadas y ayudas de programacin para los casos ms
elaborados.
11111111111
http://mat21.etsii.upm.es/ayudainf/aprendainf/Matlab61/matlab61pro.pdf
Sistemas de control automtico. Benjamn C Kuo. Editorial Prentice
Hall. Sptima edicin.
Ingeniera de control Moderna. Katsuhiko Ogata. Editorial Prentice Hall.
Tercera edicin.
Sistemas de control en tiempo discreto. Katsuhiko Ogata. Segunda
edicin. Editorial Prentice Hall.