Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Matlab
Matlab
1. Introduccin
Para el anlisis y diseo de sistemas de control se incluyen diferentes herramientas tales como:
Control System toolbox: Toolbox dedicado al anlisis y diseo de sistemas de control. Dispone
de una herramienta grfica conocida como Sisotool que permite ajustar sistemas de control,
usando el modelo de una planta, caractersticas de los bloques de realimentacin, actuadores,
perturbaciones. Los controladores se pueden ajustar y observar el comportamiento del sistema
ante diversas seales de entrada.
Signal processing toolbox: Este paquete permite procesar seales. Por ejemplo, en ocasiones es
necesario crear filtros para realizar un sistema de control de seguimiento de referencia y es
necesario disear filtros ptimos que, inclusive, pueden ser implementados en hardware.
Curve fitting toolbox (cftool), System identification Toolbox (ident): El primero facilita
la interpolacin de datos. El segundo permite obtener modelos en la variable compleja s de una
serie de datos.
1
2. Objetivos de la prctica
3. Conceptos bsicos
Crear una carpeta con el nombre practica_1, la cual ser el directorio de trabajo en Matlab. Abrir
Matlab, la pantalla principal se compone de 4 secciones principales: Navegador de archivos
(ubicarnos en la carpeta que se acaba de crear), Workspace, Command History y el Command
Window (consola); en esta ltima seccin escribiremos las lneas de comando, cada una es
iniciada por >> y es digitada automticamente por Matlab.
En una sola lnea se puede escribir varios comando separados por ;, sin embargo, esta prctica
no es recomendable debido a que el cdigo pierde legibilidad. Una lnea de comentario inicia por
la combinacin de caracteres %. Si la operacin a realizar es muy extensa para una sola lnea,
es posible digitarla en varias mediante el smbolo ; NO est permitido que el nombre de una
variable o funcin quede en lneas separadas.
>> %A continuacin se digita dos comandos en una lnea, lo cual no se
recomienda
>> z = 2.54; y = [2.09 4551]
>> //comando en varias lneas
> u = 100*(a*sin(A))^2 +
>> 2000*(a*z)
Matlab provee constantes predefinidas tales como: pi, ans, eps, inf, i, j,Nan; estas variables estn
protegidas y no pueden ser modificadas por el usuario.
Nota: Matlab emplea como unidad bsica arreglos numricos (Vectores y matrices).
Escalar: Son nmero reales o complejos. Los valores de los escalares pueden ser asignados a
una variable.
>> 5 + 2*i
>> b = 4-3*j
2
>> c = -3 +5*i
>> d = b + c
Matrices: Las matrices son la estructura fundamental de Matlab. Una matriz es un arreglo
rectangular (o cuadrado) donde cada elemento puede localizarse con dos ndices, el nmero de
fila y el nmero de columna
La forma ms fcil para crear una matriz es especificar cada uno de sus elementos. Los
elementos de cada columna puede separase tanto por espacios o por ,, y para indicar una nueva
fila se utiliza ;, la matriz se especifica dentro de corchetes [ ] .
>>A = [1 2 4; 5 7 9]
Ahora se extraen todos los elementos de la primera columna, y posteriormente los elementos de
la tercera fila:
>> posicion(:,1)
>> posicion(3,:)
A continuacin se debe implementar cada uno de los siguientes comandos, digitar help
nombre_comando.
ones
zeros
eye
diag
det
cond
inv
size
>>A = [ 1 2 3; 5 7 9; 2 8 7]
>>B = [ 1; 5; 9]
>>C = [A B] //concatenar matrices
3
>>L = diag( [1 2 3 4], -1 )
>>R = rand(3,2)
>>W = A' // Transpuesta de una matriz
>>C = 2*B // Multiplicacin por un escalar.
// Suma y resta de matrices. Las matrices deben de ser de igual orden.
>>A = [2, 3; 5,1; 7,9]
>>B = [8,25; 2,37; 5,7]
>>C=A+B
>>D=A-B
// Multiplicacin de matrices.
>>F = [2, 5, 9; 1, 7, 2]
>>G = [0, 5; 10 29; 7 21]
>>H=F*G
//vectores
>>X=0:10
>>Y=2:0.2:3
Para mayor informacin :
http://www.utm.mx/~vero0304/HCPM/2-variables-funciones.pdf
5. Uso de funciones
Para crear un nuevo script se procede a ejecutar la siguiente ruta de comandos (file NewScript)
o por el atajo de teclado Ctrl+N.
Ejemplo para crear una funcin que obtenga la raz cuadrada de un nmero.
function r = cuadrada(x)
%funcin para calcular la raz cuadrada de un numero x
% r: parmetro de salida
% x: parmetro de entrada
% cuadrada: nombre de la funcin
r = sqrt(x);
end
En el ejemplo anterior se crea una funcin con el nombre cuadrada donde recibe un parmetro x
del cual se obtendr su respectiva raz cuadrada. El parmetro de salida r debe ser asignado para
que la funcin retorne el valor deseado.
4
Una vez creado el script, se procede a guardarlo. Es un requisito que el nombre del script
coincida con el nombre de la funcin que se ha creado, para el ejemplo anterior el nombre del
script debe ser cuadrada. Adems se debe tener en cuenta que el script .m creado debe estar
relacionado (guardado) al directorio actual del programa. La ejecucin de la funcin creada se
realiza por lnea de comandos.
>> cuadrada(25)
>> A=[27 8 64];
>> cuadrada(A)
Es posible ingresar una cantidad n de valores de entrada y obtener m valores de salida, para esto
en la edicin de la funcin se deben especificar este tipo de configuraciones. Ejemplo para crear
una funcin con dos parmetros de salida (suma, mult) y tres parmetros de entrada x,y,z.
function [suma, mult] = sum_mult(x,y,z)
%funcin para calcular la suma y la multiplicacin de tres nmeros x,y,z
% sum:parmetro de salida del resultado de la suma de los valores
% mult:parmetro de salida del resultado de la multiplicacin
% sum_mult: nombre de la funcin
suma = x+y+z;
mult = x*y*z;
end
6. Grficos
Se crear una seal senoidal con una frecuencia de 1Hz, una amplitud de 3 y se visualizarn 3
segundos de esta seal. En primer lugar, se crear un vector tiempo de la siguiente manera:
>> tiempo=0:0.05:3;
Esta sintaxis permite crear un vector cuyo valor mnimo es 0, valor mximo 3 y se incrementar
en pasos de 0.05. Ahora, se crear la seal senoidal. Se usa este vector de tiempo para el
respectivo clculo. Escribir lo siguiente:
>> seno=3*sin(2*pi*1*tiempo);
De esta manera se crear el vector que contiene los valores de la funcin seno antes mencionado.
Ahora bien, se emplear el comando plot para realizar las grficas. Se utiliza el comando:
>> plot(tiempo,seno);
La sintaxis del comando plot asigna el primer vector (tiempo) al eje de las abscisas y el segundo
vector (seno) al eje de las ordenadas.
De esta manera, aparecer una ventana emergente que permitir visualizar el grfico Amplitud
Vs Tiempo de la seal senoidal. Ahora, se calcula una seal coseno que se graficar junto a la
seal seno. Las propiedades son las mismas. Usar el comando
>> coseno=3*cos(2*pi*1*tiempo);
5
El comando para graficar las dos curvas en la misma ventana ser el siguiente:
>> figure(2);
>> plot(tiempo,seno,tiempo,coseno);
Se graficarn dos seales desfasadas 90 una de otra. El comando figure(2); crea una nueva
ventana donde se graficarn las seales seno y coseno creadas.
Resolver el sistema:
5 x 1 2 x 2 5 x3 +2 x 4 5 x5 =12
2 x 1 +12 x 2 5 x 3+2 x 4 5 x 5=2
4 x 1+ x 2 5 x3 +22 x 4 5 x5 =1
3 x 1 +2 x2 5 x 3+ 2 x 4 8 x 5=5
3 x 1+ 2 x 2 +15 x 3 +3 x 4 21 x5=5
Para ver los polos y ceros del sistema de la funcin de transferencia, podemos usar:
>>roots(den)
>>roots(num)
La funcin tf2zp devuelve un vector conteniendo los ceros, un vector con los polos del sistema y
un escalar correspondiente a la ganancia esttica.
>>[ceros,polo,gain]=tf2zp(num,,den);
No es necesario recuperar el resultado de la simulacin ante escaln que realiza step para
despus representarlo con plot, sino que el propio comando step, si lo utilizamos sin parmetros
de salida, realiza la representacin.
>>step(H) %Simulacin ante una entrada tipo escaln
>>grid
La respuesta impulsional se puede obtener del mismo modo, pero usando en este caso la funcin
impulse,
>>impulse (num,den,t);
Se puede obtener la respuesta del sistema a cualquier tipo de entrada definiendo la seal de
entrada en un vector de igual dimensin al tiempo.
>>ramp = t;
>>y = lsim (num,den,ramp,t);
>>plot (t,y,t,ramp);
>>title (Respuesta a una rampa);
>>xlabel (tiempo(seg));
7
>>title (Respuesta a un ruido aleatorio);
>>xlabel (tiempo(seg));
Discretizacin de un modelo en tiempo continuo, cuya funcin de transferencia viene dada por
Gs. Como segundo parmetro se especifica el periodo de muestreo. El ltimo parmetro
proporciona una cadena de caracteres que indica el mtodo con el que se va a hacer la
discretizacin, algunas posibilidades son:
zoh: Discretizacin utilizando retenedor de orden cero (ZOH). Es la opcin por defecto.
foh: Discretizacin utilizando retenedor de orden uno (FOH).
tustin: Discretizacin mediante aproximacin trapezoidal.
prewarp: Discretizacin trapezoidal con prewarping.
>>[sysc] = d2c(Gs,metodo)
Se crear una funcin de transferencia de primer orden con constante de tiempo de 2 segundos al
cambio de escaln. Observe la respuesta ante el escaln unitario de esta funcin de transferencia,
se puede usar el comando step(Hs).
8
Es posible realizar una conversin de un modelo expresando en funcin de transferencia al
espacio de estados. El comando que debe emplearse para este ejemplo es:
En este caso, la funcin tf2ss retornar 4 matrices A1,B1,C1,D1 propias del modelo en espacio
de estados del sistema. De igual manera, se pueden obtener el numerador y denominador de las
funciones de transferencia de acuerdo al modelo en espacio de estados.
>> [num1,den1]=ss2tf(A1,B1,C1,D1,1)
11. SIMULINK
9
Ejercicios
Donde:
a. Mostrar la respuesta ante el impulso y escaln unitario para cada uno de los casos. Para el
caso 3 mostrar al menos 5 sistemas diferentes. Concluir.
1
Gp= 2
s +2 s+3
10