You are on page 1of 38

Control Automático – Ing.

Eléctrica Página 1 de 38
F.R. Tucumán – Universidad Tecnológica Nacional Ing. Juan Jesús Luna

¿Cómo explicar que las matemáticas, un producto de la
mente humana, independiente de la experiencia, se adapte
tan admirablemente bien a los objetos de la realidad?

Albert Einstein

Control Automático – Ing. Eléctrica Página 2 de 38
F.R. Tucumán – Universidad Tecnológica Nacional Ing. Juan Jesús Luna
1 – Introducción a MatLab: El nombre es una abreviatura de las palabras MATrix
LABoratory. MatLab es un sistema interactivo para cálculos científicos y de ingeniería
basado en las matrices. Con el se pueden resolver complejos problemas numéricos sin
necesidad de escribir un programa especifico para ello, aunque también es posible
programar. Además, el programa MatLab dispone, dependiendo de la versión, de
diferentes módulos (Toolboxes) que permiten resolver problemas específicos.
Debido a que MatLab es un programa de Calculo Numérico, la forma de producir
gráficos es completamente distinta de la de programas de Calculo Simbólico como
Derive, Mathematica o Maple. En MatLab se tienen que calcular mediante comandos
adecuados los puntos que después se representaran en la grafica.

1.1 - La Interfase de MatLab: La ventana principal es el Comand Window, es la ventana
sobre la que se trabajara y en la que se introducirán todos los comandos; también están
disponibles el Workspace (información sobre los elementos que se han creado), el
Comand History (recoge todos los comandos introducidos) y el Current Directory
(ficheros *.m de la carpeta). El prompt característico de MatLab es ». Esto quiere decir
que el programa está preparado para recibir instrucciones.

Control Automático – Ing. Eléctrica Página 3 de 38
F.R. Tucumán – Universidad Tecnológica Nacional Ing. Juan Jesús Luna
A través de la Barra de Menús se accede a las operaciones que no están disponibles en
la Barra de Herramientas. El menú principal es File, en el se encuentra la gran mayoría
de las operaciones no presentes en la barra de herramientas. En la siguiente figura se
muestra el menú File.

Todas las operaciones que realiza MatLab se basan en una estructura de datos matricial.
Dentro del entorno de trabajo de MatLab se pueden definir nuevos comandos o
funciones, programadas por el propio usuario, a través de los archivos *.m. Este tipo de
archivos se encuentran en las llamadas toolbox de MatLab, que son una colección de
funciones ya programadas y disponibles para el usuario. En este sentido, MatLab
funciona como un lenguaje interpretado, es decir, reconoce y ejecuta los comandos que
se le pasan a través del editor de comandos (Command Windows). Todas estas
funciones o comandos se agrupan en la toolboxes y abarcan diferentes campos, como
son el análisis y adquisición de datos, procesamiento de imágenes y de señales, análisis
y diseño de sistemas de control, comunicaciones, simulaciones en tiempo real y también
herramientas de finanzas, estadísticas, economía o lógica difusa.

1.2 – El Interprete de Comandos: Los comandos de MatLab se ejecutan desde el editor
de comandos. A cada comando se le pasan los datos de calculo entre paréntesis y
separados por comas en el caso de que requiera mas de un dato. El resultado se guarda
en la variable de salida especificada por el usuario o, por defecto, en ans. Este resultado
queda almacenado en el workspace pudiéndose consultar mediante los comandos who y
whos. En caso de que el comando ejecutado devuelva más de un resultado, estos se
almacenaran como elementos de un vector, por lo que deberán ir entre corchetes.

Formas de ejecutar los comandos en MatLab:

>> Comando de MATLAB

Directamente se ejecuta el comando.

>> Comando de MATLAB (dato1, dato2, etc.)

Al comando se le incorpora un grupo de datos (dato1, dato2, etc.) con los que realizara
un determinado cálculo; el resultado podrá ser grafico, con lo cual MatLab generara la

las operaciones algebraicas se van evaluando de izquierda a derecha. por lo tanto. se distingue entre la variable X y la variable x. y por ultimo la resta (-) y la suma (+). dato2. 2. etc.).1 .) Es de similar ejecución que el anterior. 2 – Operaciones Básicas: En el editor de comandos. Control Automático – Ing.R. Tucumán – Universidad Tecnológica Nacional Ing. Es recomendable usar paréntesis para evitar resultados que no coincidan con los esperados (también por claridad). La potencia (^) es la operación de mayor prioridad. Por ejemplo: >>x=3^2 x= 9 Hay que tener en cuenta que MatLab distingue entre mayúsculas y minúsculas. El valor que se quiere calcular también se puede asignar a una variable. en cuyo caso el resultado se guardara en la variable por defecto ans. dato2. escribiendo exit a continuación del prompt. El punto y coma (. con órdenes de prioridad que dependen de la operación a realizar. .] = Comando de MATLAB (dato1. >> [variable1 variable2…etc. seguida de la división (/) y el producto (*). o bien numérico. Eléctrica Página 4 de 38 F.) y no con la coma (. Juan Jesús Luna figura correspondiente.Operaciones Aritméticas: Suma: >>2+2 % pulsar tecla Enter ans = 4 % ans es la variable resultado por defecto Resta: >>12-4 % pulsar tecla Enter ans = 8 % ans es la variable resultado por defecto Después de escribir cada comando hay que pulsar Enter para que lo ejecute.) Se ejecuta el comando con los datos incorporados y devuelve el resultado en la variable especificada a la izquierda del signo igual (variable1). esta ultima se emplea solo como separador de datos dentro de un comando. >> variable1 = Comando de MATLAB (dato1. Si después de esta primera sesión con MatLab se quiere salir del programa. o bien con File  Exit MatLab.). Los decimales se definen con el punto (. devuelve dos o mas resultados que se guardaran en las variables indicadas por el usuario (variable1 variable2…etc. se puede hacer de dos formas. etc.) al final de una sentencia permite ejecutar el comando sin mostrar el resultado por pantalla.

Para ello. > mayor. La variable por defecto es ans y se crea automáticamente para almacenar el resultado de la última ejecución. <= menor o igual.2 – Operadores Relacionales: Los operadores relacionales se usan en operaciones de comparación.R. • El primer carácter debe ser siempre una letra. racional  numero expresado como fracción.mat (por ejemplo misvar. no un número. Su aplicación se extiende a datos numéricos. >= mayor o igual). Las variables definidas en una sesión de MatLab se pueden archivar para su uso en posteriores sesiones. seleccionar en el menú File  Import Data.3 – Definición de Variables: Durante la ejecución de comandos u otras operaciones realizadas en una sesión de MatLab. Si se ejecuta el comando clear sin especificar ningún nombre de variable. También es . resulta imprescindible el uso de variables para el almacenamiento de cálculos y resultados. Juan Jesús Luna La notación para las operaciones matemáticas elementales es la habitual en todos los programas de cálculo simbólico: Suma + División / Multiplicación * Resta . Control Automático – Ing. long e  numero en notación científica con 14 o 15 cifras decimales. los operadores de comparación solo tienen en cuenta la parte real. • La longitud máxima es de 63 caracteres. se eliminaran todas las variables almacenadas en el workspace. Exponenciación ^ Los resultados numéricos mostrados en el editor de comandos pueden representarse en varios formatos.mat). 2. • La letra ñ y las vocales acentuadas no son caracteres validos. activándose la interfase de importar datos. 2. en estos dos últimos casos el operador relacional se evalúa elemento a elemento. entre los más comunes están los siguientes: short  numero con 4 cifras decimales. hex  numero en hexadecimal. En el caso de evaluar números complejos. Eléctrica Página 5 de 38 F. seleccionar en el menú File  Save Workspace as generando un archivo con la extensión . Para abrir el archivo con las variables almacenadas en una sesión anterior. Los operadores relacionales pueden ser de comparación (< menor. El formato se puede seleccionar en el menú File  Preferences  Commnad Window. • Se distinguen las mayúsculas de las minúsculas. long  numero con 14 o 15 cifras decimales. La creación de nuevas variables debe seguir una serie de reglas: • Se definen con letras que pueden ir seguidas de números y guión bajo (_). La eliminación de variables almacenadas en el workspace se realiza con el comando clear seguido del nombre de la variable. o de identidad (= = igual. vectores y matrices. ~ = distinto). short e  numero en notación científica con 4 cifras decimales. como resultado de la comparación devuelven un valor lógico 1 (verdadero) o 0 (falso). Tucumán – Universidad Tecnológica Nacional Ing. mientras que en los operadores de identidad se considera tanto la parte real como imaginaria.

Los vectores y matrices se definen entre corchetes. Eléctrica Página 6 de 38 F. 2. como. aunque hay algunas diferencias.7 8 9] matriz = 1 2 3 4 5 6 7 8 9 En el caso de números complejos se emplea indistintamente la i o j para representar el termino Raíz Cuadrada de -1. en el caso de las matrices. Su sintaxis coincide también con la que se utiliza en la mayoría de los programas de matemáticas. cada fila se delimita con el punto y coma. 2. lógico (logic). Un resultado de valor infinito devuelve el termino inf. celda (cell) y estructura (structure). siendo el propio programa quien nos ofrece la ayuda (como en cualquier otro programa). poniendo >>helpwin. Algunas de estas funciones son: sin Seno tanh Tangente hiperbólico sinh Seno hiperbólico atan Arco tangente asin Arco seno exp Exponencial cos Coseno log Logaritmo neperiano cosh Coseno hiperbólico log10 Logaritmo decimal acos Arco coseno sqrt Raíz cuadrada tan Tangente abs Valor absoluto Para obtener listas completas de todas las funciones que puede utilizar MatLab. carácter (character). Tucumán – Universidad Tecnológica Nacional Ing. Un resultado no numérico devuelve el termino NaN (Not a Number). .4 5 6. Esto se puede hacer de varias formas. con lo que ofrece ayuda interactiva. Ejemplo: >> vector=[3 2 1 0] vector = 3 2 1 0 >> matriz=[1 2 3.R. con sus elementos separados por espacios. Los datos se guardan como vector o matriz (array) siendo los tipos más comunes: numérico (numeric).5 – Funciones Matemáticas: En MatLab están definidas algunas de las funciones más comunes utilizadas en matemáticas. por ejemplo. o poniendo >>helpdesk. el programa DERIVE. así como para saber el uso de cada una de ellas o de cualquier comando. siempre se puede acudir al help. Juan Jesús Luna posible recuperarlos directamente desde el editor de comandos mediante el comando load.4 – Tipos de Datos: En MatLab existen hasta 15 posibles tipos de datos que se pueden almacenar en variables y que dependerán de la operación y/o comando ejecutado. conectándose a Internet si este recurso esta disponible en el ordenador. Control Automático – Ing.

renglón a renglón. Por ejemplo. y se quiere saber para que sirve. si este existe. sin tener que volver a teclearlas. y también se pueden escribir uno a continuación de otro en una misma línea.5440 y= -0. Para conseguir esto se pone un punto y coma al final de la instrucción. poniendo >>lookfor cos. z=tan(10) x= -0. Juan Jesús Luna Si se conoce el nombre del comando.1411. El hecho de que aparezca la matriz en pantalla puede resultar un poco engorroso. Esto resulta útil en el caso de una equivocación o cuando se quiere repetir un comando con alguna pequeña modificación.6484 . en cuyo caso deben ir separados por comas. si se genera una matriz de orden muy alto con el objeto de hacer después una grafica. comando que sirve para rotar figuras tridimensionales utilizando el ratón.. >>x=sin(3). escribiendo tres puntos suspensivos. Por ejemplo: >>x=sin(10). se puede poner: >>help comando Y ofrecerá ayuda sobre el comando en cuestión. ROTATE3D by itself toggles the state. aparecerá el valor 0. Por ejemplo: >>help rotate3d ROTATE3D Interactively rotate the view of a 3-D plot..R.. Eléctrica Página 7 de 38 F. Por ejemplo. ROTATE3D ON turns on mouse-based 3-D rotation. See also ZOOM. se puede romper la cadena y seguir en el siguiente renglón. A veces. puede resultar necesario.8391 z= 0. hasta imprescindible. (El argumento de las funciones trigonométricas siempre se mide en radianes). Control Automático – Ing. Tucumán – Universidad Tecnológica Nacional Ing. Otra forma de buscar ayuda es utilizar el comando lookfor. porque si se escribe el valor de x. aparecerá una lista con todos los comandos que tienen que ver con la función coseno. Ofrece información sobre el comando rotate3d. Algunas consideraciones: Con las flechas del cursor se pueden recuperar las órdenes anteriores. Si el comando o la cantidad de comandos es demasiado larga para que aparezca en un único renglón. es decir. pero ha realizado el cálculo. que el resultado de un cálculo no aparezca en pantalla. ROTATE3D OFF turns if off.y=cos(10). No aparece ningún resultado. por ejemplo. Los comandos se pueden ir escribiendo y ejecutando uno a uno.

en el mismo renglón. los elementos que forman una matriz se agrupan entre corchetes. se separan las filas por puntos y comas. Tucumán – Universidad Tecnológica Nacional Ing. cuando se le suma 1.1 – Construcción de vectores y matrices: 2. pi: El numero pi. >>sqrt(2) % Raíz cuadrada de 2 Calculara la raíz de 2 y se saltara el comentario. Juan Jesús Luna Hay algunas variables especiales que se utilizan por defecto: ans: Es la variable que se utiliza en los resultados. siendo el punto y coma el carácter que marca la separación de filas. realmax: Son. entre corchetes: >> x=[1 2 3] x= 1 2 3 Si se quiere definir un vector columna. crea un numero en coma flotante mayor que 1. realmin. Un vector es un conjunto de datos agrupados entre corchetes. 2. separadas por espacios o por comas.1.R.1 – Vectores: Un vector se puede definir introduciendo sus coordenadas. si se pone. formado por una fila y varias columnas (vector fila de 1xn) o varias filas y una columna (vector columna mx1). eps: Es el numero mas pequeño que utiliza el ordenador tal que.0000 1.6.6. Control Automático – Ing.5:3 x= 1. respectivamente. Una matriz es un conjunto de vectores formado por mas de una fila y columna (mxn). Por ejemplo. sino que se interprete como un comentario. 2.6 – Vectores y Matrices: Los vectores y las matrices son los elementos básicos con los que trabaja MatLab. Poniendo el símbolo % se consigue que no se ejecute lo que venga a continuación. pero se podría definir >>e=exp(1)).5000 2. o bien se calcula el transpuesto de un vector fila con >>x'. se suele utilizar para escribir comentarios aclaratorios en líneas de comandos de manera que no afecten a su ejecución.0000 .0000 2. En la operación siguiente se puede recuperar este resultado volviendo a escribir ans. el Incremento y el Valor Final: >> x=1:0.5000 3. Esta variable se modificara en cuanto haya un nuevo resultado. el menor y el mayor de los números reales utilizables. Otra forma de crear vectores es la siguiente: Se especifica el Valor Inicial. Eléctrica Página 8 de 38 F. (No hay una variable para el numero e.

Juan Jesús Luna Genera un vector que va desde 1 hasta 3 con un paso de 0.5 unidades. matriz de números aleatorios entre 0 y 1.d2. por lo tanto. entre corchetes: >>A=[3 2 1.5) que produce 5 números igualmente espaciados entre 1 y 3.2 – Operaciones básicas con vectores: Las operaciones entre vectores se realizan elemento a elemento y deben ser. crea una matriz en forma de cuadrado mágico de tamaño n x n 2. de la misma dimensión.1. Tucumán – Universidad Tecnológica Nacional Ing.6.6. Una variante interesante es el comando logspace(d1. >>x=linspace(1. Control Automático – Ing. distribuidos uniformemente (n x n) rand(m. de tamaño m x n magic(n).n).3. separadas por puntos y comas. que genera un vector con n valores espaciados logaritmicamente entre 10^d1 y 10^d2 Vector de Unos: Se usa el comando ones. matriz unidad de tamaño (n x n) zeros(m. matriz de ceros de tamaño (m x n) zeros(n). es decir. 6 5 4.n).2 – Matrices: Una matriz se puede definir introduciendo sus filas (consideradas como vectores). 9 8 7] A= 3 2 1 6 5 4 9 8 7 Matrices Predefinidas: En MatLab hay varios comandos que sirven para definir con gran facilidad matrices de tipos particulares.n). Eléctrica Página 9 de 38 F. lo mismo. el Valor Final y la Cantidad de elementos del vector. >> vector_de_ceros=zeros(1.6) vector_de_ceros = 0 0 0 0 0 0 2. Se estudiaran las operaciones con ejemplos: .R. >> vector_de_unos=ones(1. pero de orden (m x n) rand(n). deben tener el mismo número de elementos. pero de orden (n x n) ones(n).6) vector_de_unos = 1 1 1 1 1 1 Vector de Ceros: Se usa el comando zeros. lo mismo.n). lo mismo. Algunas de estas funciones son las siguientes: eye(n). Exactamente el mismo resultado se conseguiría con el comando linspace: Se especifica el Valor Inicial. matriz de unos (n x n) ones(m.

Vector1 % resta de un escalar con un vector ans = -2 -1 0 1 >> Vector1 – Vector2 % resta de vectores ans = 0 -2 -4 -6 Producto: >> K * Vector1 % Producto de un Escalar por un Vector ans = 8 6 4 2 >> Vector1. Eléctrica Página 10 de 38 F. División: >> Vector1/K % División de un Vector entre un Escalar ans = 2.1429 .5000 1./Vector2 % División de Vectores ans = 1. Suma: >> K + Vector1 % suma de un escalar con un vector ans = 6 5 4 3 >> Vector1 + Vector2 % suma de vectores ans = 8 8 8 8 Resta: >> K .R. Juan Jesús Luna >> Vector1=[4 3 2 1]. Tucumán – Universidad Tecnológica Nacional Ing.0000 0.0000 1.*Vector2 %Producto de Vectores ans = 16 15 12 7 El producto de dos vectores o dos matrices elemento a elemento será muy importante cuando se quiera representar graficas de funciones.6000 0.Control Automático – Ing.0000 0. >> K=2. >> Vector2=[4 5 6 7].3333 0.5000 >> Vector1.

Eléctrica Página 11 de 38 F. Juan Jesús Luna Potencia: >> Vector1.6. -2 3 4]. 2.) indica a MatLab que ha de operar elemento a elemento. división y potencia.^K % Vector elevado a una Potencia Escalar ans = 16 9 4 1 >> Vector1. 2 0 0.Control Automático – Ing. si no producirá un error.^Vector2 % Vector elevado a una Potencia Vectorial ans = 256 243 64 1 Nota: En las operaciones producto. 3 4 6. Tucumán – Universidad Tecnológica Nacional Ing. Suma: >>A+B Ans = 0 3 2 5 4 6 0 4 4 Resta: >>A-B ans = 2 -1 2 1 4 6 4 -2 -4 Producto: >>A*B ans = -3 8 8 -7 24 24 0 4 0 Potencia: >>A^3 ans = 45 44 58 162 157 204 43 39 46 . 2 1 0]. Se estudiaran las operaciones con ejemplos: >>A=[1 1 2.R.B=[-1 2 0.3 – Operaciones básicas con matrices: Las operaciones con matrices deben seguir las reglas del algebra matricial en cuanto a dimensión de aquellas con las que se va a operar. el punto (.

Definición de un Polinomio a través de sus Raíces: (Usando el comando poly) >> Raices3=[-1.0. Se estudiaran las operaciones con ejemplos: >> Poli1=[0 1 6 5 -3]. % Definición de Polinomio x^3+6x^2+5x-3 >> Poli2=[2 0 1 -1 1].0000 0 0.5592 0. Juan Jesús Luna 2.8385 -1. los coeficientes de sus elementos en orden de potencia descendente. % Definición de Polinomio 2x^4+x^2-x+1 Suma: >> PoliSuma=Poli1+Poli2 % El resultado es 2x^4+x^3+7x^2+4x-2 PoliSuma = 2 1 7 4 -2 .2 – Operaciones entre Polinomios: Las operaciones entre Polinomios requiere que estos tengan la misma dimensión.7 – Polinomios: Los Polinomios en MatLab son. completándose con ceros los términos del polinomio de potencias que no existen para mantener la misma dimensión.25x+1. vectores cuyos elementos son los términos de los que consta el Polinomio.7. Eléctrica Página 12 de 38 F.7.Control Automático – Ing. % Vector columna con las Raíces del Polinomio >> Poli3=poly(Raices3) % Calculo del Polinomio a partir de sus Raíces Poli3 = 1.1 – Definición de Polinomios: En MatLab los Polinomios se definen como vectores fila introduciendo.5+i.0.3977 Nota: Las Raíces que devuelve MatLab vienen dadas en un vector columna. Tucumán – Universidad Tecnológica Nacional Ing. % Definición de Polinomio 2x^4+x^2-x+1 Obtención de las Raíces de un Polinomio: (Usando el comando roots) >> Raices1=roots(Poli1) Raices1 = -4. % Definición de Polinomio x^3+6x^2+5x-3 >> Poli2=[2 0 1 -1 1].2500 1. 2. Se estudiaran las operaciones con ejemplos: >> Poli1=[1 6 5 -3]. básicamente.2500 El Polinomio Resultante es x^3+0.25 2.R. siempre entre corchetes.5-i]. lógicamente se debe añadir un cero en la posición de aquellos elementos que no existan dentro del Polinomio.

2*pi.R. Estos valores se definen mediante vectores que deben tener la misma dimensión.1) % Evalúa Poli1 para x=1 ans = 9 >> polyval(Poli1. Ahora se calculan los valores de y .Poli2) % Usa el comando deconv Cociente = 0 1 6 5 -3 Resto = 0 0 0 0 0 0 0 0 0 Derivación: >> PoliDeriv=polyder(Poli1) % Usa el comando polyder PoliDeriv = 3 12 5 Resolución de Polinomios: >> polyval(Poli1.Control Automático – Ing. 2 y 3 ans = 9 39 93 3 – Características Adicionales: 3. se quiere dibujar la grafica de la función y = sen(x): Primero se crea una tabla de valores para x >>x=0:pi/100:2*pi. Otra forma de conseguir el mismo resultado seria utilizar el comando >>x=linspace(0. en caso contrario se producirá un error. Tucumán – Universidad Tecnológica Nacional Ing. Con este comando se formo una tabla (el vector x) con 200 valores entre 0 y 2 pi.1 Creación de Gráficos: Para graficar funciones de la forma y = f(x) con MatLab se usa el comando plot.Resto]=deconv(PoliMult.[1 2 3]) % Evalúa Poli1 para x=1. Por ejemplo. Juan Jesús Luna Convolución: >> PoliMult=conv(Poli1.Poli2) % Usa el comando conv PoliMult = 0 2 12 11 -1 0 -2 8 -3 División: >> [Cociente. Eléctrica Página 13 de 38 F. que representa parejas de valores sobre unos ejes coordenados.200).

El comando plot ofrece múltiples posibilidades de color y forma de trazo de la grafica.Varias graficas en la misma figura. Con el comando >>axis([-2 2 -1 1]). Para consultar todas las posibilidades. . .*exp(-x. y se podrá dibujar encima una nueva. -1 < y < 1. Con el comando >>axis equal. y se genera una nueva grafica.Cuadricula.y) Realmente lo que se hace es dibujar 200 puntos de la función en el intervalo [0. dibujara la grafica en color rojo y con asteriscos. Por ejemplo. se conseguirá que los rangos de los ejes sean iguales. Para desactivar el comando anterior: >>hold off.Color y trazo.01:3. Tucumán – Universidad Tecnológica Nacional Ing. Otra forma de hacerlo es dibujar desde el principio dos graficas juntas. 3] con un paso de longitud 0. 2pi]. >>plot(x. y posteriormente el programa los ha unido mediante segmentos. sin cambiar el rango de los ejes. Se pueden dibujar tantas graficas como se quieran en una misma figura. Juan Jesús Luna >> y = sin(x). Sin embargo. y por ultimo se la dibuja >>plot(x. Para desactivarlo. Hay que abrir la figura y usar los botones izquierdo y derecho del ratón. Si se quiere que aparezca una cuadricula sobre el dibujo. Se puede agrandar la figura o alguna zona seleccionada de la figura.Control Automático – Ing. utilizando el comando >>hold on. Con >>axis square. Se quiere dibujar ahora la grafica de la siguiente función: Se definen los valores para los que se quiere hacer la grafica >>x=-3:. Si ya se tiene dibujada una.Ejes. habrá que escribir >>zoom off. . se conseguirá que la grafica aparezca en la región -2 < x < 2. Se define la función >>y=x. Utilizando el comando >>zoom on. como en este caso. que se dibujara la grafica en el intervalo [-3.'r*'). Se vera un ejemplo algo mas complicado. se dibujaran las graficas de las funciones y = sen(x) e y = sen(x + pi/3) en la misma figura: .y. se escribe el comando para que ejecute el dibujo.^2). Eléctrica Página 14 de 38 F. Los ejes que aparecen por defecto en una grafica también se pueden modificar. Para desactivar la cuadricula habrá que escribir >>grid off. Si el número de puntos es lo suficientemente grande.Zoom. hacer >>help plot. .y) El aspecto de la grafica se puede modificar utilizando algunos comandos: . por ejemplo.R. el comando >>plot(x. con todas sus propiedades. Es decir. Y por ultimo.01. se usara el comando >>grid on. se conseguirá que la figura aparezca en un cuadrado. en principio la figura anterior es sustituida por la nueva. no se aprecian los vértices. se mantendrá la anterior.

'2*exp(-x^2)') % Pone una leyenda Además de los comandos descritos antes para etiquetar graficas. y la segunda en verde. se puede utilizar el comando ginput. si se quiere dibujar la grafica de la función .300). . que se seleccionara con un clic. Eléctrica Página 15 de 38 F. se puede necesitar conocer las coordenadas de algunos puntos de la misma.'g--').x. >>x=linspace(0.2*pi. Después de ejecutado el comando habrá que pulsar con el botón izquierdo del ratón sobre el dibujo tantas veces como puntos se hayan especificado. y]. >>z=sin(x+pi/3). y) Para dibujar gráficos de funciones de dos variables z = f(x.3.z. se abrirá la figura y se podrá indicar con el ratón el lugar donde ha de ir el texto.x.Obtención de puntos desde el grafico.'r-'. Escribiendo >>[x.y.^2).y]=ginput(N) Donde N es el número de puntos cuyas coordenadas se quiere obtener.R.Control Automático – Ing. z=2*exp(-x. Las coordenadas de esos puntos quedaran almacenadas en las variables [x. Y ahora se las dibuja >>plot(x.z. Existen diversas posibilidades para el etiquetado de las graficas.grid on (La primera en color rojo.Etiquetado de graficas. Para conseguir esto. y=exp(-x. Por ejemplo. ahora lo que se tiene que hacer es generar un mallado sobre un rectángulo del plano XY. Juan Jesús Luna Se generan las tablas. Una vez que se ha realizado una grafica. en primer lugar hay que generar tablas de valores para las variables x e y. el lugar aproximado en el que están los máximos y mínimos. con trazo discontinuo). Se vera con un ejemplo: >>x=linspace(-3. .y. GRAFICAS 3D: Funciones de la forma z = f(x. y). >>plot(x.^2). en realidad. Para eso se utiliza el comando meshgrid.500). o si se quiere añadir alguna recta o una poligonal al dibujo. Con el comando >>gtext('texto'). con trazo continuo.'--') % dibujamos dos funciones >>title('Campanas de Gauss') >>xlabel('Eje de Abscisas') % Etiqueta el eje horizontal >>ylabel('Eje de Ordenadas') % Etiqueta el eje vertical >>legend('exp(-x^2)'. Tucumán – Universidad Tecnológica Nacional Ing. Por ejemplo.'-'. existe la posibilidad de poner un texto en algún otro lugar de la figura. al igual que para funciones de una variable. >>y=sin(x).

También se puede utilizar dentro de meshgrid el comando linspace. habrá que efectuar los pasos siguientes: Se genera el mallado >>[x. >>z=cos((x.z) >>mesh(x. SOMBRAS Y COLORES.colorbar Como se puede observar.*y). Ejemplo: Utilizar la siguiente secuencia de comandos: >>[x. >>surf(x.y.50)).^2+1)). >>axes([xmin xmax ymin ymax zmin zmax]) Los comandos grid on y axis square también funcionan en este tipo de gráficos. los puntos más altos corresponden a los colores mas calientes y los puntos más bajos de la grafica están coloreados con colores fríos.1:1.z). Se sustituye en la función para calcular los valores de z >>z=exp(-x.1:3).y]=meshgrid(-2:. La secuencia 0:. se tendrá que escribir >>[x.Control Automático – Ing. y 0:. Y ahora se puede dibujar el grafico con alguno de los siguientes comandos >>plot3(x.z) >>surf(x.^2). Juan Jesús Luna en la región del plano -2 < x < 2.y. 3].y./(x. Por ejemplo.z) >>surf(x.5:2). Algo que resulta también interesante.1:3 la de la variable y. esto se consigue con el comando colorbar (después de dibujada la grafica).1:1 describe la variación de la variable x. Si solo se utiliza un intervalo.y]=meshgrid(0:.shading flat %efecto de sombreado distinto Manipulación de gráficos 3D MALLADO. -2 < y < 2.R. Las longitudes de los ejes coordenados también se pueden modificar con el comando axes.^2+y.z). Tucumán – Universidad Tecnológica Nacional Ing.^2-y. EJES. Para conseguir efectos de sombreados y colores diferentes se pueden consultar todas las posibilidades de los comandos colormap y shading.y]=meshgrid(linspace(-1.y. es añadir una escala de colores al dibujo que permite conocer las alturas (coordenada z) de los diferentes puntos de la grafica.0:. Eléctrica Página 16 de 38 F. este se aplica a las dos variables. . 1] x [0. si se quiere hacer un mallado para la región [0.y.1. El comando meshgrid se puede utilizar también para generar mallados de regiones rectangulares.

z).z. indica el valor de la variable z. Ahora. que permite. para calcular los valores de z.y.^2+y.y. por ejemplo. Si se usa el comando contour.y. las curvas sobre el plano XY. >>z=x.y.z.10) % lo mismo.y]=meshgrid(-2:. rotarla de manera interactiva en tres dimensiones.30). CURVAS DE NIVEL.y. y). . Para hacer esto: Primero se dibujan las curvas de nivel con >>contour(x. Se sustituye en la función. determinadas por f(x. Dada una función z = f(x.colorbar Esta última orden dibuja un mapa de colores por niveles.^2.'manual') % permite elegirlas con el ratón Por otra parte.1:2).z. donde k es una constante se llaman curvas de nivel. es decir.R. Las curvas de nivel se pueden hacer utilizando alguno de los comandos siguientes >>contour(x. las curvas de nivel (algunas veces será necesario modificar los ejes para que la grafica de la función no tape a las curvas de nivel). Se representara la grafica de la función dibujando algunas curvas de nivel. Otro comando interesante en las graficas 3D es rotate3d.z). después se pueden etiquetar las curvas con los valores correspondientes de la z. Hay varias formas de obtenerlas usando MatLab. la orden colorbar hace aparecer una escala de valores según el color. y por debajo.y. el comando >>meshc(x. y) = k. se puede dibujar la grafica utilizando alguno de los comandos descritos anteriormente. >>cs=contour(x.10) Después se guarda la información en una variable. se tienen dos opciones: >>clabel(cs) % etiqueta algunas aleatoriamente O bien >>clabel(cs. Tucumán – Universidad Tecnológica Nacional Ing.Control Automático – Ing. dibuja la grafica. utilizando el ratón sobre la figura.z. como se describió antes. pero en el espacio >>pcolor(x. Se crea el mallado: >>[x.10) % dibuja 10 curvas de nivel >>contour3(x. A continuación. Juan Jesús Luna ROTACION DE GRAFICAS. Eléctrica Página 17 de 38 F.

w). integral y matricial.m” que ejecutan línea a línea las ordenes y comandos que aparecen en el. pause end. Ejemplo: Ganancia_en_Sistemas_de_2_Orden close all w=logspace(-1. basta con escribir el nombre del archivo desde el editor de comandos. legend('K=0. Las variables definidas en el archivo Ganancia_en_Sistemas_de_2_Orden.1000). den=[1 2*psi*wn wn^2]. legend('K=0. hold on bode(num. figure(1). Todos los comandos se encuentran en la toolbox de matemática simbólica.5 1 2]. num=[k*wn^2]. Las variables se han de definir como símbolos mediante el comando syms. se abrirá el editor de archivos .grid minor title('Influencia de la ganancia en la respuesta en el tiempo de un sistema de 2º orden'). Las expresiones o funciones creadas a partir de variables simbólicas adquieren automáticamente el tipo de objeto simbólico. % G1s es una función simbólica de la variable s >>G2s=2*s/(s^2+s+1). % G2s es una función simbólica de la variable s . grid minor title('Influencia de la ganancia en la respuesta en frecuencia de un sistema de 2º orden'). Juan Jesús Luna 3. incorporando un nuevo tipo de dato en MatLab: el objeto simbólico (sym object). Para ejecutarlo.1. también es posible la resolución de ecuaciones simbólicas y diferenciales. tal y como se ejecutarían desde el editor de comandos. hold on step(num. hold off disp('Pulsa una tecla para continuar'). wn=2. Con variables y funciones simbólicas se puede realizar todo tipo de calculo: diferencial. Ejemplo: >>syms s z % s y z son variables simbólicas >>G1s=1/(s+1).m donde se pueden escribir los comandos MatLab.m pasan a formar parte de la colección de variables existentes en la sesión de MatLab. Se pueden construir y modificar con cualquier editor de texto.Control Automático – Ing. Las funciones se definen directamente con el comando sym. Eléctrica Página 18 de 38 F.den.5'.2. quedando almacenadas en el workspace junto al resto de variables.2 Ficheros de Comandos: Son archivos de texto con la extensión “. Laplace o Z.'K=1'.den).'K=1'. 4 – Matemática simbólica: MatLab permite la realización de cálculos de manera simbólica si previamente se definen como símbolos las variables y funciones con las que se va a operar. y la obtención de distintas transformadas como la de Fourier.R.'K=2'). % Vector de frecuencias % Análisis de la influencia de la ganancia en la respuesta en frecuencia de un sistema de 2º orden psi = 0. Para crearlo seleccionar FileNewM-File. for k=[0.'K=2'). Tucumán – Universidad Tecnológica Nacional Ing.5'. hold off figure(2).

Tucumán – Universidad Tecnológica Nacional Ing. >>pretty(G12s) 2 3s +3s+1 -------------------- 2 (s + 1) (s + s + 1) Se pueden obtener dos variables simbólicas que contengan las ecuaciones del numerador y denominador de la función mediante el comando numden. >>ceros=solve(n) %calcula las raíces del numerador n ceros = -1/2+1/6*i*3^(1/2) -1/2-1/6*i*3^(1/2) .Control Automático – Ing. Eléctrica Página 19 de 38 F.R. Juan Jesús Luna >>G12s=G1s+G2s % suma simbólica G12s = 1/(s+1)+2*s/(s^2+s+1) >>pretty(G12s) 1 s ----.+ 2 ---------- s+1 2 s +s+1 El comando pretty es útil cuando MatLab devuelve un resultado de difícil interpretación en una sola línea. >>G12s=simplify(G12s) G12s = (3*s^2+3*s+1)/(s+1)/(s^2+s+1) El comando simplify sirve para expresar como cociente de polinomios de la variable simbólica s. >>[n d]=numden(G12s) %n y d son variables simbólicas n= 3*s^2+3*s+1 d= (s+1)*(s^2+s+1) También es posible resolver funciones simbólicas con el comando solve.

[0. Juan Jesús Luna >>polos=solve(d) %calcula las raíces del denominador d polos = -1 -1/2+1/2*i*3^(1/2) -1/2-1/2*i*3^(1/2) La representación grafica de funciones simbólicas en MatLab se puede realizar mediante el comando ezplot.11). reguladores.6]) % representación grafica de y2s en el rango 0-6 4 .1.% Valor Inicial. para ello basta con definir la variable tiempo como un símbolo en vez de cómo un vector.1. de esta forma.rampa) 4.Control Automático – Ing. Tucumán – Universidad Tecnológica Nacional Ing.1. Eléctrica Página 20 de 38 F.R.1. Valor Final.^2. % Valor Inicial.1 – Escalón Unitario: >> t=0:0. >>plot(t. . >>plot(t.escalon) 4.1. Nº de Columnas O >>escalon=linspace(1.1 – Señales Elementales: En primer lugar se crea un vector de tiempo acotado en un intervalo determinado. Numero de Elementos >>plot(t. 4.parabola) Las señales también se pueden definir mediante funciones simbólicas. % Valor Inicial: Intervalo: Valor Final O >>t=linspace(0. todas las señales construidas con el tiempo simbólico pasaran a ser funciones simbólicas: >>escalon_s=sym('1').1:1. después se define la forma de la señal (También mediante un vector que contiene los valores de la amplitud).11). % definición de t como símbolo >>y2s=5*t^2 % definición de la función simbólica y2s >>ezplot(y2s. Puede especificarse el rango de variación que toma la variable. Valor Final. es necesario definir las señales que intervienen (Entrada de Referencia y Perturbaciones principalmente).3 – Parábola: >>parabola=t. sensores y modelo del proceso).1 – Rampa: >>rampa=t. 4. Ejemplo: >>syms t. así como las funciones de transferencia de los sistemas (actuadores. % Se indica Nº de Filas. Numero de Elementos >>escalon=ones(1.11).Modelado de Señales: Para realizar simulaciones en MatLab que permitan analizar el comportamiento de los sistemas. >>syms t_s.

s) Para hacer más legible la expresión puede usarse el comando pretty.t. >> F=laplace(f.25*exp(-2*t).6]) 4.R.2 .s) F= (s-5)/s/(s+2)^2 .5*t*exp(-2*t)+1. Eléctrica Página 21 de 38 F.[0. Juan Jesús Luna >>rampa_s=t_s.5*(t_s)^2. Otro ejemplo: >>syms f t >> f=t.25+3. El siguiente es un ejemplo de función f(t): >> syms t s >> f=-1. >>parabola_s=0. Por ejemplo: >>syms a t >>L = laplace(exp(-a*t)) Estos comandos devuelven en la variable L la expresión simbólica de la transformada de Laplace de la función: que resulta ser la expresión ya conocida 1/(s+a). devolviendo otra expresión simbólica en la variable s.t. Otro ejemplo: >> syms t s >> F=laplace(f.Transformada de Laplace usando MatLab: El comando laplace permite calcular la transformada de Laplace de expresiones definidas de forma simbólica. t la variable tiempo.Control Automático – Ing. f la función. Tucumán – Universidad Tecnológica Nacional Ing. >> laplace(f) ans =1/s^2 donde f y t son las variables simbólicas. NOTA: observe que el comando laplace calcula la transformada unilateral. >>ezplot(escalon_s) >>grid on >>hold on >>ezplot(rampa_s) >>ezplot(parabola_s.

Para calcular la inversa de la función F(s) anterior: >> syms t s >> F=(s-5)/(s*(s+2)^2). Por ejemplo: >>syms t >>L = laplace(exp(t)) %Se define el punto en el que se quiere particularizar >>s = 5 + j %Se calcula el valor en dicho punto >>eval(L) Estos comandos devuelven el valor de la transformada de Laplace de la función particularizada en el punto s = 5 + j. Eléctrica Página 22 de 38 F. se puede escribir la función f(t) directamente como parte del comando laplace: >>F2=laplace(-1. Tucumán – Universidad Tecnológica Nacional Ing.5*t*exp(-2*t)+1. >> ilaplace(F) ans = -5/4+1/4*exp(-2*t)*(5+14*t) Se puede usar el comando simplify para simplificar la respuesta: >> simplify(ans) ans = -5/4+7/2*t*exp(-2*t)+5/4*exp(-2*t) .25*exp(-2*t)) Utilizando el comando eval es posible particularizar una expresión matemática simbólica. 4. Observe que el comando eval utiliza el valor que la variable s tenga en el momento de su llamada. También se necesita definir los símbolos t y s.Transformada Inversa de Laplace: El comando que se usa es ahora ilaplace.R.3 .Control Automático – Ing. Juan Jesús Luna >> pretty(F) s–5 . s (s + 2)^2 la cual corresponde a la F(s): Alternativamente.25+3.

Juan Jesús Luna >> pretty(ans) -5/4 + 7/2 t exp(-2 t) + 5/4 exp(-2 t) La cual corresponde a la f(t): Alternativamente se puede escribir: >> ilaplace((s-5)/(s*(s+2)^2)) Otro ejemplo: >> F=10*(s+2)/(s*(s^2+4*s+5)).R. >> d=[1 3 2 0 0]. >> [r.k]=residue(n.Transformada Inversa de Laplace usando Expansión en Fracciones Parciales: Se busca encontrar la Expansión en Fracciones Parciales de: El siguiente programa de MatLab da los coeficientes en la expansión. >> ilaplace(F) ans = 4+2*(-2*cos(t)+sin(t))*exp(-2*t) 4.p. Eléctrica Página 23 de 38 F.4 .Control Automático – Ing.d) r= -3 4 -1 2 . Tucumán – Universidad Tecnológica Nacional Ing. Escribir los coeficientes del numerador y del denominador en vectores separados y MatLab le da los coeficientes que corresponden a los polos en la expansión: >> n=[0 0 4 4 4].

se le pasan dos vectores con los coeficientes en s del numerador y del denominador (deben ir ordenados desde el elemento de mayor potencia al de menor. que reciben el nombre de ceros y polos respectivamente (formato zpk).R. polos. Juan Jesús Luna p= -2 -1 0 0 Entonces. esta expresada como cociente de polinomios. 5. Los sistemas LTI así definidos tienen internamente una serie de propiedades que podrán ser consultadas y/o modificadas: numerador. La Función de Transferencia puede expresarse como cociente de polinomios (formato tf) o en función de las raíces del numerador y denominador. la expansión en fracciones parciales es: 5 – Modelado de Sistemas Lineales: Los sistemas continuos o LTI (Linear Time Invariant) se expresan a través de su Función de Transferencia. las expresiones de las funciones de transferencia de un sistema son: La creación de sistemas a través de su Función de Transferencia es el paso previo para cualquier simulación o análisis posterior que se quiera realizar en MatLab. o mediante la construcción directa de su expresión. de T. Tucumán – Universidad Tecnológica Nacional Ing. De este modo.Control Automático – Ing. denominador. añadiendo un cero en el caso de no existir). etc. Este tipo de función se define en el plano complejo y depende de la variable s. a través de los comandos definidos para tal fin. ceros.1.1 Construcción mediante comandos: Comando tf: Sirve cuando la F. Eléctrica Página 24 de 38 F. tf y zpk.1 Definición de funciones de transferencia: Existen dos procedimientos para definir las funciones de transferencia de los sistemas. 5. Ejemplo: .

: >>z = 0. de un sistema de segundo orden se puede construir directamente con el comando ord2 a partir de los parámetros Psi (Coeficiente de Amortiguamiento) y Wn (Frecuencia Natural). de T. añadiendo el tiempo del retardo en la propiedad 'Input Delay'. indicándose con [ ].5 1].2) / (s^2 .5) . % Numerador: s >>den = [1 2 10].[0.Control Automático – Ing.7) >>G=tf(n. Ejemplo: Suponga la siguiente F. las de los polos (p) y el factor de ganancia (k). de T. se pueden construir las F.20) % construccion de G(s) sin ceros y K=20 5. Ejemplo: >> p = [-1 -6 -8]. % polos >>k = -2. Eléctrica Página 25 de 38 F. % ceros >>p = [2 1+i 1-i].2 Construcción directa: Si se define previamente la variable s como un objeto tf. Tucumán – Universidad Tecnológica Nacional Ing.4 Sistemas con Retardo Puro: Las funciones de transferencia de sistemas que incluyen algun retardo del tipo se construyen con los mismos comandos. % ganancia >>H = zpk(z. % Crear variable de Laplace >>H = s / (s^2 + 2*s + 10) Otro ejemplo: >>s = zpk('s').3 Sistemas de Segundo Orden: La F.den) Comando zpk: Sirve cuando la F. Ejemplo: >>G=tf(1.p. % Denominador: s^2 + 2 s + 10 >>H = tf(num. 0. de T. de T. 'inputdelay'.d) 5. sin hacer uso de los comandos vistos anteriormente.2*s + 2) 5.0. % vector de polos >>G=zpk([ ]. se le pasan tres vectores que contengan las posiciones de los ceros (z). en ese orden. >>H = -2*s / (s .p. el vector correspondiente (z) debe estar vacío. Ejemplo: >>[n d]=ord2(1. El comando devuelve los polinomios del numerador y del denominador de la función. esta expresada en función de los polos y ceros del sistema. Ejemplo: >>s = tf ('s').k) En un sistema que no contenga ceros.1. Juan Jesús Luna >>num = [1 0].R.1.1.

Juan Jesús Luna Que se corresponde con la F. al que se le pasan los argumentos la F. r2.. Tucumán – Universidad Tecnológica Nacional Ing. se pueda obtener la forma factorizada de la función de transferencia cero-polo-ganancia. Un ejemplo de ello sucedería al intentar calcular la F. los polos (p1. con retardo y el numero de términos de los que constara la serie con la que se desea realizar la aproximación... Para evitarlo. denominador de la expresión polinómica.Control Automático – Ing. Función: residue: La función residue convierte la función de transferencia polinómica: en la función transferencia de fracciones parciales: Instrucción: >>[r.R. Las entradas son los coeficientes de los polinomios B (b0.: En determinadas ejecuciones de MatLab. de T.. >>G_aprox1=pade(G. p2.. a1..k] = residue (B. el retardo en la F.Conversión de Modelos: Matlab permite que los distintos modelos puedan ser convertidos entre sí.A) Esta instrucción determina los vectores r. de T. por ejemplo.1) %aproximación con orden uno de truncamiento >>G_aprox2=pade(G. bn-1). y k de los valores de residuo (r1... am-1).2) %aproximación con orden dos de truncamiento 5... Ejemplo: Calcular la función de transferencia de fracciones parciales de la siguiente función de transferencia polinómica: . pn) y los términos directos de la expansión de fracciones parciales. Eléctrica Página 26 de 38 F.. p. b1. rn).. equivalente en Lazo Cerrado de un sistema con retardo. de T.. partiendo de la forma de cociente de polinomios.p.. numerador de la expresión polinómica y A (a0. de modo que.. de un sistema generara errores debido al carácter no lineal del termino .. de T.2 . se puede realizar una aproximación mediante el desarrollo de Padé y convertirlo en una función racional de la forma: El comando de MatLab que realiza esta aproximación pade.

pn) y la ganancia correspondiente (k) de la función de transferencia del tipo cero-polo-ganancia.0000 -1. >>[r.2.den) Esta instrucción determina los ceros (z1. z2.0000 -1.R.3.k] = tf2zp (num.k]= residue (B.. Las entradas son los coeficientes en orden descendente de potencias de s del numerador y denominador de la función de transferencia polinómica a convertir.0000 >>p p= -1.0000 2.p. los polos (p1.3]. zm). Eléctrica Página 27 de 38 F.0000 Por lo tanto la solución de este Ejemplo es: Función tf2z: La función tf2zp convierte la función de transferencia polinómica: en la función transferencia cero-polo-ganancia: Instrucción: >>[z. >>r r= 1. >>A=[1.p. Tucumán – Universidad Tecnológica Nacional Ing.1]. p2.A).Control Automático – Ing. Ejemplo: Calcular la función de transferencia cero-polo-ganancia de la siguiente función de transferencia polinómica: .. Juan Jesús Luna >>% Calcular expansión de fracciones parciales.0000 -0...3. … . >>B=[1.

den]=zp2tf(z. p.0000 + 0. … . Juan Jesús Luna >>% Conversión de función de transferencia en cero-polo-ganancia >>num=[1.0000 + 1. zm). >>p=[-1. z2. >>[num.3.p.den] = zp2tf (z. p2.1.4142i].k]=tf2zp(num..p.3.3].4142i -1. >>[z.-1.0000 .0000i k= 1 Por lo tanto la solución de este Ejemplo es: Función zp2tf: La función zp2tf convierte la función de transferencia cero-polo- ganancia: en la función transferencia polinómica: Instrucción: >>[num. de los ceros (z1.k) Esta instrucción determina los vectores num y den de los coeficientes en orden descendente de potencias de s del numerador y denominador de la función de transferencia polinómica a obtener.0000 .0000i -1.R. Tucumán – Universidad Tecnológica Nacional Ing. pn) y la ganancia correspondiente (k) de la función de transferencia del tipo cero-polo- ganancia.4142i. >>den=[1. Eléctrica Página 28 de 38 F.1].0. Las entradas son los vectores z.2. >>k=1.p.1. de los polos (p1.k) .0000 ..-1.4142i p= -1..Control Automático – Ing.0000 + 1.-1].0000 -1.. Ejemplo: Calcular la función de transferencia polinómica de la siguiente función de transferencia cero-polo-ganancia: >>% Conversión de función de transferencia en forma polinómica >>z=[-1.den) z= -1.

existen comandos en MATLAB que facilitan la labor.5) Conexión en serie Usar el operador * o la función series para conectar modelos LTI en serie. ] . crear los siguientes dos modelos SISO de función de transferencia: >>H1 = tf(2.3 . Eléctrica Página 29 de 38 F. Adicionalmente.R.Concatenaciones de entrada y salida ([ .Conexiones en serie y en paralelo (series y parallel) .0000 den = 1331 Por lo tanto la solución de este Ejemplo es: 5.H2) .0000 2.-5.[1 3 0]) >>H2 = zpk([ ]. por ejemplo: >>H = H2 * H1 o equivalentemente: >>H = series(H1. Juan Jesús Luna num = 0 1. tediosa en ocasiones. Tucumán – Universidad Tecnológica Nacional Ing. y append) . Con fines ilustrativos.Construcción general de diagrama de bloques (connect). Estos incluyen funciones para realizar: . de reducir una representación en diagramas de bloques.0000 3. [ . Estas funciones pueden manejar cualquier combinación de las representaciones del modelo. ] .Conexiones de realimentación (feedback y lft) .Reducción de diagrama de bloques con MatLab: MatLab dispone de un amplio abanico de programas especializados de apoyo.Control Automático – Ing.

.R. por ejemplo: >>H = H1 + H2 o equivalentemente >>H = parallel(H1.H2) Tenga en cuenta que feedback supone la realimentación negativa de forma predeterminada.H2) Conexiones de Realimentación: La configuración de realimentación estándar se muestra a continuación: Para construir un modelo de la transferencia a lazo cerrado de la u a la y. Eléctrica Página 30 de 38 F.+1). Tucumán – Universidad Tecnológica Nacional Ing.Control Automático – Ing. parallel y feedback. Para mejor entendimiento de cada una de las funciones utilizadas en la práctica se recomienda utilizar la ayuda de MatLab. Se puede utilizar Matlab para la reducción de diagrama de bloques. Juan Jesús Luna Conexión en paralelo Use el operador + o la función parallel para conectar los modelos LTI en paralelo.) Solución mediante operaciones algebraicas.H2. Para aplicar la realimentación positiva. utilice la siguiente sintaxis: >>H = feedback(H1.) Solución a través de los comandos series. 3. 2.) Solución mediante los comandos append y connect. Se dispone de tres métodos: 1. tipee: >>H = feedback(H1.

% Crea F. % Crea F. deng1=[1]. Tucumán – Universidad Tecnológica Nacional Ing.226 0.T. de lazo cerrado.deng2).125*[1 0.456 s^3 + 3. % Calcula realimentación. de T. de los lazos internos. H1=tf(numh1. >>%T(s) a través de operaciones algebraicas >>T=Ge/(1+Ge).% Crea F. G2(s) >>numg3=-0.25 s + 0. >>G3=tf(numg3. Parallel y Feedback >>% Solución a través de los comandos Series. % Calcula producto >>G5=feedback(G4. de T. >>G4=series(G2.deng3). de T. % Crea F. % Crea F. H1(s).435]. de T. Juan Jesús Luna Ejemplo: Teniendo el diagrama de bloques de la figura se quiere reducir.deng1). deng3=conv([1 1. Parallel y Feedback >>numg1=[-1].H1). % F.125*[1 0. >>numg1=[-1]. % Calcula producto >>T=feedback(Ge. >>Ge=G5*G1.23]. De T. .23].deng2). De T. deng1=[1]. % Crea F. Se comprueba que se llega al mismo resultado que usando el Método 1. G1(s) >>numg2=[0 2].G3). de T.457 s^2 + 0. % Cancela términos comunes. deng2=[1 2]. G3(s) >>numh1=[-1 0]. 1.denh1).T.) Solución a través de operaciones algebraicas >>% Solución a través de operaciones algebraicas >>clear % Limpia variables. % Multiplica las F.[1 0. G3(s) >>numh1=[-1 0]. denh1=[0 1]. deng2=[1 2]. denh1=[0 1].226 0.1503 2. >>G5=G4/(1+G4*H1).9693 s + 0.denh1). G2=tf(numg2.deng3). G2(s) >>numg3=-0. deng3=conv([1 1. >>G5=minreal(G5). G2=tf(numg2. % Crea F. Solución a través de los comandos Series. H1(s). % Calcula producto.1088 ----------------------------------------------------------- s^4 + 3. G1(s) >>numg2=[0 2]. >>G3=tf(numg3.0169]). % Calcula retroalimentación >>Ge=series(G1.435].1) % Calcula retroalimentación Transfer function: 0.0169]).Control Automático – Ing.deng1). % Crea F. de T. H1=tf(numh1.R. >>G4=G3*G2. G1=tf(numg1.[1 0.G5). G1=tf(numg1. Eléctrica Página 31 de 38 F. >>T=minreal(T) % Cancela términos comunes.

435].[1 0.denh1). de T. >>% Solución a través de connect. % Crea F. . % Crea F. >>% Definir los Sumadores >>Sum1 = sumblk('iG1'.9693 s + 0. H1(s).OutputName = 'oG1'. >>H1.InputName = 'iG2'. >>G3=tf(numg3. Definir todos los bloques y sumadores >>clear % Limpia variables. la función connect ofrece una forma sistemática y sencilla para conectar los bloques entre sí.H1.Seleccione el diagrama de bloques de E/S de la lista de bloque de E/S. G3.23].'+-'). Para usar connect .InputName = 'y'.OutputName = 'oG2'. G1(s) >>numg2=[0 2].'oH1'. >>numg1=[-1].'y'. C. deng1=[1].'oG1'.G3. Juan Jesús Luna 3.457 s^2 + 0. H1=tf(numh1. Tucumán – Universidad Tecnológica Nacional Ing.1087 ----------------------------------------------------------- s^4 + 3. G2. G y S): . G1. denh1=[0 1]. >>Sum2 = sumblk('iG2'.deng2).deng3). >>G3.'y') Transfer function from input "r" to output "y": 0. De T. H1. deng3=conv([1 1. . % Crea F.'r'.InputName = 'iG1'. Otro ejemplo: Se analiza un ejemplo más complicado: Sea el siguiente Diagrama de Bloques: Para el diagrama de bloques anterior. de T.Sum1.InputName = 'oG2'. siga estos pasos: . G2(s) >>numg3=-0. G1=tf(numg1.% Crea F.OutputName = 'y'. deng2=[1 2].125*[1 0.deng1).'r'.Control Automático – Ing. >>% Calcular Funcion de Transferencia r  y >>T = connect(G1. G3(s) >>numh1=[-1 0].Definir todos los bloques del diagrama.'+-').G2.R. Eléctrica Página 32 de 38 F.Nombrar todos los canales de entradas y de salidas del bloque.) Solución con los comandos Append y Connect: Para diagramas de bloques más complicados.226 0. incluidos los sumadores.Sum2. los pasos serian (Se supone que ya están definidos F. >>G2.25 s + 0.0169]).456 s^3 + 3. de T. G2=tf(numg2.1503 Se comprueba que se llega al mismo resultado que usando los Métodos 1 y 2.OutputName = 'oH1'. >>G1.

InputName = 'ym'. >>step(T). de T.Sum2. S.3 . (como objetos tf o zpk). estudiar el comportamiento en Lazo Cerrado (Lugar de las Raíces) y determinar su comportamiento frecuencial (Diagramas de Bode.1 – Extracción de características: 6. a través de su F.C. al escalón unitario.OutputName = 'ym'. de Nyquist y de Nichols).InputName = 'r'.Obtención de la Ganancia Estática: Se usa el comando dcgain. ceros. Tucumán – Universidad Tecnológica Nacional Ing. >>C. Una vez que se han definido todos y cada uno de los bloques que forman el sistema.'r'.'uc'.[1 2]) % definición de G1(s) >>G2=tf(9. >>cerosG2=zero(G2) % obtención de los ceros de G2(s) 6. 6 – Análisis Dinámico: Control System Toolbox proporciona un amplio conjunto de funciones para el análisis de los modelos LTI.S.InputName = 'u'.1. >>S. grid Ejercicio: Encontrar la Función de Transferencia Y(s)/R(s) del siguiente Diagrama de Bloques. es posible calcular algunas de sus características (polos.OutputName = 'uf '. Eléctrica Página 33 de 38 F.[1 1. etc.'y'.'+-').OutputName = 'uc'. >>G. Juan Jesús Luna >>% Definir las Entradas y las Salidas de los Bloques >>F. >>Sum2 = sumblk('u'.G. son: 6.).1.5 9]) % definición de G2(s) >>polosG2=pole(G2) % obtención de los polos de G2(s) 6. de T.Control Automático – Ing.Sum1.InputName = 'e'. >>K=dcgain(G2) % Ganancia de G2 cuando s = 0 .). >>% Definir los Sumadores >>Sum1 = sumblk('e'.1 – Obtención de los Polos: Se usa el comando pole. A lo largo del apartado se usaran sistemas cuya F. ganancia estática. >>G1=tf(2. F. C.'r'.1. etc.'ym').OutputName = 'y'. así como obtener la evolución de la salida ante distintos tipos de entrada (respuesta al impulso.2 – Obtención de los Ceros: Se usa el comando zero. G.R.'uf'). >>% Calcular Funcion de Transferencia r -> ym >>T = connect(F.

tp .G2. pudiéndose leer el valor de la señal en cualquier punto de la misma.1 – Respuesta al Impulso: >>impulse(G2) >>title('Respuesta Impulsional') >>ylabel('Amplitud') >>xlabel('Tiempo') 6.4) % Impulso sobre G1(s) y G2(s). de T. No obstante.4 – Mediciones sobre la respuesta: Es posible medir con el ratón el valor de la respuesta en cualquier punto de la misma.4 – Obtencion de Psi y Wn: Se usa el comando damp. se pueden obtener los valores exactos de algunas características de la respuesta de manera automática.1. etc.2 – Respuestas de Sistemas Continuos: Para analizar el comportamiento transitorio y permanente de la respuesta de los sistemas. Eléctrica Página 34 de 38 F. Tucumán – Universidad Tecnológica Nacional Ing. >>[frec amtg]=damp(G2) Con damp también se puede conocer la ubicación de los polos poniendo una tercera variable: >>[frec amtg polos]=damp(G2) 6.2.5 – Estabilidad Absoluta: Se puede preguntar si este sistema es estable (1) o no (0): >>isstable(G2) 6. Mp (en %) Tiempo de Pico.2.2. de T. indicándolo con un valor numérico dentro del comando a la derecha de las F. Juan Jesús Luna 6. También se puede especificar un tiempo para la simulación. desplegándose una ventana de texto que identifica la respuesta y los valores de tiempo y amplitud en el punto seleccionado en la grafica. Para ello. También es posible determinar automáticamente los valores de las características estáticas y dinámicas mas usuales (Tiempo de Pico.) 6.3 – Respuestas de varios sistemas: Se pueden obtener simulaciones de varios sistemas sobre una misma grafica.1. (Wn en Radianes/Segundo).2. Sobre Oscilación. Valor Final. incorporando al comando las F. 4 Segundos de simulación 6. MatLab permite realizar directamente simulaciones ante dos tipos de entrada: El Impulso (impulse) y el Escalón Unitario (step).Control Automático – Ing.2 – Respuesta al Escalón Unitario: >>step(G2) 6.R. basta con seleccionar con el botón derecho del ratón sobre la grafica generada alguna de las características (Characteristics) mostradas a continuación: Peak Response: Respuesta Pico Amplitud del Pico Máximo Sobre Oscilación. >>impulse(G1. Las graficas generadas muestran la respuesta del sistema y son interactivas con el ratón. separadas por comas.

5 – Respuesta ante cualquier tipo de entrada: Se obtiene mediante el comando lsim. El comando pzmap sirve para obtener la grafica de polos y ceros en el plano complejo. Juan Jesús Luna Settling Time: Tiempo de Establecimiento Tiempo de Establecimiento.R. 1) % Obtención de G3 >>pzmap(G3) % Grafica de polos y ceros de G3(s) >>axis([-6 2 -4 4]) % Escalado de ejes >>sgrid % Activación de rejilla en el plano s El comando sgrid superpone en una rejilla con líneas igual valor para Psi (Coeficiente de Amortiguamiento) y para Wn (Frecuencia Natural). 6. la opción PropertiesOptions. % Señal Parabólica >>lsim(G1. Eléctrica Página 35 de 38 F.[0 -1 -5 p(1) p(2) ].5]). % Señal Rampa >>lsim(G2. brindan información valiosa para determinar la estabilidad del sistema. Tucumán – Universidad Tecnológica Nacional Ing.^2. Este análisis se lleva a cabo . con el botón derecho.x1. 6. de T.Control Automático – Ing. ts Rise Time: Tiempo de Subida o de Crecimiento Tiempo de Subida.t) % Obtención de la respuesta 6. también los es saber cual va a ser la evolución de los polos cunado el sistema va a trabajar en lazo cerrado y predecir el efecto que puede producir la variación de algún parámetro del sistema (generalmente el factor de ganancia K). tr Steady State: Estado Estable o Respuesta Permanente Nota: Los tiempos de establecimiento ts y de subida tr son configurables seleccionando. Ejemplo: Suponga la siguiente F.1:10. % Obtención de raíces de s^2+s+0.t) % Obtención de la respuesta Otro ejemplo: >>x2=t. Por otro lado.4 – El Lugar de las Raíces: Así como es importante conocer las posiciones de los polos y ceros en lazo abierto.2. % Vector de Tiempo >>x1=t. De esta forma. % Obtención de raíces de s^2+4s+13 >>G3=zpk([1 c(1) c(2)]. Los parámetros que se le pasan son la F. se puede saber como va a ser el funcionamiento global del sistema y estudiar cualquier posibilidad de inestabilidad sobre el mismo.3 – Representación de Polos y Ceros: Las posiciones que ocupan los polos y ceros de un sistema en el plano complejo determinan modos transitorios que puede resultar interesante conocer para el análisis y / o diseño de los sistemas. Ejemplo: >>t=0:0.5 >>p=roots([1 4 13]). del sistema. de T. permitiendo así determinar estos parámetros para cada polo del sistema.: >>c=roots([1 1 0. seguido de los vectores de amplitud y tiempo que forman la señal de entrada.x2.

% Vector de frecuencia de 0. Este análisis permite ver como se propaga la señal a través del sistema. de T. [0. Sobre esta grafica. A través del cambio s = jw. de T. 7. siendo especialmente útil en el diseño de filtros.20. G(s) de dominio continuo.[1 1. en una función G(jw) en el dominio de la frecuencia. para valores de K entre 0 y 5 7 – Análisis Frecuencial: Cuando se trabaja con señales de entrada de tipo senoidal. Este comando se ejecuta pasándole como parámetro el objeto tf que contiene la F. Tucumán – Universidad Tecnológica Nacional Ing.1 – Representación grafica de la respuesta en frecuencia: La forma de analizar el comportamiento en frecuencia de un sistema consiste en descomponer la señal de salida del mismo en sus dos componentes: modulo y fase. Ejemplo: >>G1=tf(1. % Modulo de la respuesta >>fas_y1=angle(y1).w).R. de T. obteniendo información de la posición del polo en ese punto. Este tipo de información se suele representar gráficamente mediante distintos diagramas frecuenciales que se estudiaran seguidamente.:). Juan Jesús Luna mediante el Lugar de la Raíces y en MatLab se puede obtener fácilmente mediante el comando rlocus. hay que definir la F.100). Ejemplo: Suponer la siguiente F.1 a 20 rad/seg >>y1=freqresp(G1. Si el rango de variación de la frecuencia empleada se expresa en escala natural.[1 3. se puede medir cualquier punto del lugar.mod_y1) % Representación del Modulo >>xlabel('rad/seg') .1.5 12 18]) % Construcción de G4(s) >>rlocus(G4) % Obtención del Lugar de las Raíces Para determinar el Lugar de las Raíces solo en un determinado rango de valores de K. de R. se obtendrán dos graficas que se conocen como Diagramas de Módulos y Fases. Eléctrica Página 36 de 38 F. el Coeficiente de Amortiguamiento Psi y la Sobre Oscilación Mp (en %). y de los parámetros dinámicos como la Frecuencia natural Wn.Control Automático – Ing. del lazo abierto. >>rlocus(G4. % Respuesta en frecuencia >>mod_y1=abs(y1). % Conversión de Vector 3D a 1D >>plot(w. Aplicando esta transformación a lo largo de un intervalo de frecuencias. de T. se convierte una F.4 1]) % Definición de G1(s) >>w=linspace(0. % Conversión de Vector 3D a 1D >>fas_y1=fas_y1(:.5]) % L. del sistema y el vector correspondiente al rango de frecuencias de interés. y con el ratón. se obtendrá la evolución del modulo y la fase de la salida del sistema. su resultado es una grafica con las trayectorias que seguirán los polos del sistema en lazo cerrado. El comando freqresp permite visualizar estos tipos de diagramas.: >>G4=tf(18. se recurre al análisis frecuencial para estudiar el comportamiento de los sistemas en régimen permanente. La salida de un sistema excitado con una onda senoidal proporcionara a la salida una señal también senoidal en la que su amplitud y fase en general varían respecto de la señal de entrada. el factor de ganancia que se puede añadir al sistema para alcanzar esa posición. basta con incluir en el comando un vector con los valores inicial y final de la ganancia.:). % Fase de la respuesta (en radianes) >>mod_y1=mod_y1(:.

Eléctrica Página 37 de 38 F. Mediante la activación de la rejilla. En la abscisa se muestra la parte real y en la ordenada la parte imaginaria de la respuesta G(jw). se le debe pasar como argumento el objeto tf o zpk del sistema. Juan Jesús Luna >>ylabel('Modulo') >>figure >>plot(w. que resulta de variar la frecuencia en G(jw). G(s). Margen de Fase (en grados) y las respectivas Frecuencias de Cruce de Ganancia y de Fase del sistema realimentado. aparecen las curvas de Modulo y Fase constante . Sobre la grafica se indica marcado con color rojo el punto crítico de estabilidad. El comando bode permite obtener los diagramas de módulos y fases a partir de la F.2 – Diagramas de Bode: Cuando en los diagramas de módulos y fases la frecuencia se expresa en escala logarítmica se obtiene el Diagrama de Bode. así como analizar la Estabilidad Relativa de los mismos. Estos permiten determinar algunos parámetros importantes de los sistemas. El comando nyquist permite obtener dicho diagrama. definida como un objeto tf o zpk. expresando el modulo en decibelios (db) y la fase en grados en un intervalo de frecuencias ajustadas automáticamente. estas se pasaran al comando entre llaves. Mediante el comando margin es posible determinar los parámetros de Margen de Ganancia (en db).3 – Diagrama Polar o de Nyquist: Es un vector representado en el plano complejo.5 9]) % definición de G2(s) >>bode(G2) % Obtención del Diagrama de Bode >>grid on % Activa rejilla sobre la grafica Si se desea representar el Diagrama de Bode en un rango determinado de frecuencias. Ejemplo: >> bode(G2.[1 1. Ejemplo: >>nyquist(G2) >>grid on La activación de la rejilla sobre el diagrama de Nyquist muestra los círculos de modulo constante (en db) en lazo cerrado. indicando los valores mínimo y máximo de frecuencia. >>margin(G2) % Bode + indicación de Margen de Ganancia y de Fase 7. Los diagramas se representan en escala logarítmica. Tucumán – Universidad Tecnológica Nacional Ing.Control Automático – Ing. en la abscisa se muestra la Fase (en grados) y en la ordenada el Modulo (en db).fas_y1) % Representación de Fase (en radianes) >>xlabel('rad/seg') >>ylabel('Fase(rad)') 7. de T.10}) % Rango de Frecuencias entre 1 y 10 rad/seg >>grid on % Activa rejilla sobre la grafica Del Diagrama de Bode se puede obtener información útil para analizar la Estabilidad Relativa de los sistemas realimentados. 7.{1. Ejemplo: >>G2=tf(9. como son las Frecuencias de Corte y el Ancho de Banda.R. cuya representación grafica es la más empleada en todo análisis frecuencial.4 – Diagramas Modulo-Fase o de Nichols: El comando nichols permite obtener dicho diagrama.

Tucumán – Universidad Tecnológica Nacional Ing.R.Control Automático – Ing. Eléctrica Página 38 de 38 F. Juan Jesús Luna en lazo cerrado (Ábaco de Nichols). 180º) marcado en color rojo. Ejemplo: >>nichols(G2) >>grid on . Sobre la grafica se indica el punto critico de estabilidad (0db.