Lab. Teoría de Control II Práctica 1 Introducción A Matlab
Lab. Teoría de Control II Práctica 1 Introducción A Matlab
LABORATORIO DE
TEORIA DE CONTROL II - SISTEMAS DE CONTROL II
PRÁCTICA No. 1
INTRODUCCIÓN AL PAQUETE COMPUTACIONAL MATLAB
OBJETIVOS:
- Que el alumno conozca la lógica de trabajo utilizada en el paquete MATLAB.
- Que el alumno resuelva una ecuación diferencial ordinaria para diferentes
entradas.
INTRODUCCIÓN
MATLAB trabaja esencialmente con un solo tipo de objeto: una matriz numérica rectangular cuyos
elementos pueden ser complejos. En algunas situaciones especiales, el significado real se encuentra en
matrices de 1X1, las cuales representan escalares; o a matrices con solamente un renglón o una sola
columna, las cuales son de hecho vectores. Las operaciones y comandos en MATLAB suponen que los
elementos con los que trabajan son matrices, esto es, aun cuando la información que se esté manejando
sea un escalar o un vector, dicha información deberá estar contenida en una matriz.
El método más fácil de introducir matrices pequeñas es el de usar una lista explícita. La lista explícita de
elementos se separa por medio de espacios en blanco o de comas, se rodea por corchetes [ ] y se usa el
punto y coma (;) para indicar el fin de renglones. Por ejemplo al introducir el comando:
A = [1 2 3; 4 5 6; 7 8 9]
Resulta en la salida
A=
1 2 3
4 5 6
7 8 9
1
La matriz A se almacena en memoria por default para su uso posterior.
Las matrices grandes se pueden esparcir a través de varias líneas de entrada, con el enter reemplazando los
puntos y comas. Aunque apenas necesario para una matriz de este tamaño, la matriz anterior también se
pudo haber introducido en tres renglones, de la siguiente forma:
A=[123
456
7 8 9]
A=
1 2 3
4 5 6
7 8 9
Las matrices se pueden introducir a partir de archivos con nombres terminados en “.m”. Si un archivo
llamado ejemplo.m contiene las siguientes tres líneas de texto
A = [1 2 3
456
7 8 9]
El comando Load puede leer matrices generadas por sesiones anteriores de MATLAB o matrices en ASCII
importadas de otro programa.
ELEMENTOS DE MATRIZ
Los elementos de una matriz se pueden formar a partir de cualquier expresión de MATLAB, por ejemplo:
Resulta en
x=
Los elementos individuales de una matriz se pueden referenciar por medio de índices dentro de
paréntesis, ( ).
x(5) = abs(x(1))
2
Produce
x=
Notar que el tamaño de x se incrementó automáticamente para acomodar el nuevo elemento y que los
elementos intermedios sin definir son puestos a cero.
Se pueden construir matrices grandes usando otras más pequeñas como elementos. Por ejemplo, se podría
anexar otro renglón a la matriz A con
r = [10 11 12];
A = [A; r]
Que resulta en
A=
1 2 3
4 5 6
7 8 9
10 11 12
Se pueden extraer pequeñas matrices a partir de otras más grandes usando (:) por ejemplo,
A = A(1:3, :)
A=
1 2 3
4 5 6
7 8 9
Toma los primeros tres renglones con todas sus columnas de la matriz A para devolver de vuelta a la A
original.
EXPRESIONES Y VARIABLES
MATLAB es un lenguaje de expresiones. Las expresiones tecleadas por el usuario se interpretan y evalúan
por medio del sistema en línea de MATLAB. Las expresiones en MATLAB frecuentemente son de la forma:
Variable = expresión
O simplemente
3
expresión
Se permiten los números complejos en todas las operaciones y funciones en MATLAB. Los números
complejos se introducen usando las funciones especiales i y j. Alguien podría usar
z = 3 + 4*i
z = 3 + 4*j
otro ejemplo es
w = r*exp(i*theta)
Existen al menos dos formas convenientes para introducir matrices complejas. Estas se ilustran por las
expresiones
A = [1 2; 3 4] + i*[5 6; 7 8]
GENERACIÓN DE VECTORES
x = 1:5
genera un vector renglón conteniendo los números del 1 al 5 con un incremento unitario, que produce:
x=
1 2 3 4 5
lo que resulta en
y=
z = 6: -1:1
lo cual proporciona
z=
6 5 4 3 2 1
LA UTILERÍA HELP
Se encuentra disponible una utilería de ayuda (HELP), que proporciona ayuda en la mayoría de los temas de
MATLAB, para obtener una lista de temas de ayuda, teclear
help
para obtener ayuda en un tema específico, teclear help tema, por ejemplo
help eig
GRAFICADO
Se pueden examinar los datos de manera gráfica en MATLAB usando los comandos de “papel gráfico” para
crear gráficas en la pantalla. Existen muchos tipos diferentes de “papel gráfico” para escoger:
FORMA BÁSICA
Si y es un vector, plot(Y) produce una gráfica lineal de los elementos de Y con respecto al índice de los
elementos de y. Por ejemplo, para graficar los números {0.0, 0.48, 1.0, 0.91, 0.6, 0.14}, se introducen como
vector, y se ejecuta plot:
0.9
0.8
0.7
0.6
0.5
0.4
0.3
0.2
0.1
0
1 2 3 4 5 6
Figura 1.1
Una vez que la línea de comandos es traída de vuelta, se le pueden añadir etiquetas a la gráfica:
6
ylabel(‘ganancias’)
grid
0.9
0.8
0.7
ga 0.6
na
nci
0.5
as
0.4
0.3
0.2
0.1
0
1 2 3 4 5 6
estadios
Figura 1.2
La función gtext(‘texto’) permite que con el mouse o las teclas flecha del teclado se posicione un apuntador
en forma de cruz en la gráfica, en cuyo punto central se colocará texto una vez que se presione cualquier
tecla o botón del mouse.
Si los vectores x y y son de la misma longitud, el comando plot(x,y) dibuja una gráfica x-y de los elementos
de x vs los elementos de y. Por ejemplo:
Figura 1.3
7
Observar lo que sucede con la gráfica al usar la función zoom desde la línea de comandos
Existe una clase de funciones en MATLAB que trabaja no con matrices numéricas, sino con funciones
matemáticas. Donde estas funciones incluyen:
- Integración numérica.
- Ecuaciones no lineales y optimización.
- Solución de Ecuaciones diferenciales.
Las funciones matemáticas se representan en MATLAB por archivos tipo-M función. Por ejemplo, la función
1 1
humps( x ) 6
( x 0.3) 0.01 ( x 0.9) 2 0.04
2
se hace disponible para matlab creando (en editor ascii) un archivo tipo-M llamado humps.m:
function y = humps(x)
y = 1 ./((x-0.3).^2 + 0.01) + 1 ./((x-0.9).^2 + 0.04) - 6;
dónde ./ y .^ indican que la operación / y la operación ^ se efectuarán elemento por elemento de la matriz
o vector en lugar de con la matriz o vector visto como un elemento total.
Se puede hacer una gráfica de la función usando
x = -1: .01:2;
plot(x,humps(x))
80
60
40
20
-20
-1 -0.5 0 0.5 1 1.5 2
Figura 1.4
8
EL TOOLBOX DE CONTROL DE MATLAB.
El toolbox de control, contiene una serie de funciones que son bastante utilizadas en sistemas de control, a
continuación se revisarán algunas de ellas:
Respuesta en el tiempo:
>> y = step(num,den,t)
se obtiene la respuesta a una entrada escalón, dados el vector conteniendo los coeficientes del polinomio
del numerador (num) y el del denominador (den) de una función de transferencia, el parámetro t es un
vector que indica los instantes de tiempo para los que se desea que se obtenga la respuesta.
>> y = impulse(num,den,t)
se obtiene la respuesta a una entrada impulso unitario, dados el vector conteniendo los coeficientes del
polinomio del numerador (num) y el del denominador (den) de una función de transferencia, el parámetro
t es un vector que indica los instantes de tiempo para los que se desea que se obtenga la respuesta.
>> y = lsim(num,den,u,t)
se obtiene la respuesta a una entrada u, que es un vector que contiene puntos de la señal de entrada para
la que se desea obtener la respuesta de salida, dados el numerador (num) y el denominador (den) de una
función de transferencia, el parámetro t es un vector que indica los instantes de tiempo para los que se
desea que se obtenga la respuesta.
Por ejemplo, si se desea obtener la respuesta en el tiempo para una función rampa:
>>t=0:0.01:20;
>>ramp=t;
>> y = lsim([1 0],[1 2 6],ramp,t)
>> plot(t,y);
9
MATERIAL Y EQUIPO
DESARROLLO
2.- Dada la FDT de un motor de CD en la ecuación 2, obtenga la respuesta a una entrada escalón de
magnitud 2 volts, dada la función de transferencia del motor de CD, si se consideran los siguientes
parámetros** (obtener 0.1 segundos de dicha respuesta):
** Los parámetros corresponden a los motores que contienen los módulos de prueba de control del
laboratorio de electrónica
W (S ) K2
(ec. 2)
Va ( S ) J a La S ( J a Ra a La ) S ( K1 K 2 Ra a )
2
3.- Realice 2.-, pero ahora considerando una entrada impulso unitario.
4.- Realice 2.-, pero ahora considerando una entrada rampa de pendiente 2 V/s.
5.- Realice 2.-, pero ahora considerando una señal cuadrada de frecuencia 4 Hz, amplitud 2 V pico y un
tiempo de simulación de 1 segundo.
6.- Realice 2.-, pero ahora considerando una entrada senoidal de frecuencia = 10 Hz, valor pico de 5 V y un
tiempo de simulación de 0.8 segundos.
10