Laboratorio Matlab y Simulink

16
AREA DESARROLLO TECNOLOGICO PRODUCTIVO CARRERA INGENIERÍA ELECTRICA Primer autor, segundo autor, tercer autor,…. Universidad [email protected], [email protected],…. RESUMEN. MATLAB es una herramienta poderosísima para cálculo científico y tiene diversas aplicaciones en el campo de las ingenierías. El presente laboratorio, pretende introducir a los estudiantes en la lógica, los procedimientos y los medios que emplea MATLAB para realizar cálculo científico. Para los estudiantes que conozcan el programa, les servirá para fortalecer conocimientos. I. INTRODUCCIÓN MATLAB es el acrónimo de MATrix LABoratory (Laboratorio Matricial) y es un potente entorno de trabajo, diseñado para el desarrollo de aplicaciones científico-técnicas. Matlab es un entorno abierto, que integra computación numérica y visualización científica; también integra computación matricial, análisis numérico, proceso y análisis de señal, además de gráficos con una sencilla interface visual de usuario. MATLAB posee gran cantidad de librerías más específicas para temas concretos, denominados Toolbox como por ejemplo: Control, Procesamiento de señales, Procesamiento de imágenes, etcétera. La herramienta más interesante y de gran versatilidad, simplicidad y ampliamente utilizada es el Simulink. II. MARCO TEORICO. 1 FORMATO REFERENCIAL DE GUIA LABORATORIO ASIGNATURA: SISTEMAS DE CONTROL II Y LABORATORIO CÓDIGO: ELT 600 TEMA: MATLAB TITULO DEL LABORATORIO: INTRODUCCION AL MATLAB

description

Son algunos ejercicios en matlab para control.

Transcript of Laboratorio Matlab y Simulink

SYLLABUS

AREA DESARROLLO TECNOLOGICO PRODUCTIVOCARRERA INGENIERA ELECTRICAFORMATO REFERENCIAL DE GUIA LABORATORIO

ASIGNATURA:SISTEMAS DE CONTROL II Y LABORATORIO

CDIGO:

ELT 600

TEMA:

MATLAB

TITULO DEL LABORATORIO:INTRODUCCION AL MATLAB

Primer autor, segundo autor, tercer autor,[email protected], [email protected],.

RESUMEN. MATLAB es una herramienta poderossima para clculo cientfico y tiene diversas aplicaciones en el campo de las ingenieras. El presente laboratorio, pretende introducir a los estudiantes en la lgica, los procedimientos y los medios que emplea MATLAB para realizar clculo cientfico. Para los estudiantes que conozcan el programa, les servir para fortalecer conocimientos.I. INTRODUCCINMATLAB es el acrnimo de MATrix LABoratory (Laboratorio Matricial) y es un potente entorno de trabajo, diseado para el desarrollo de aplicaciones cientfico-tcnicas. Matlab es un entorno abierto, que integra computacin numrica y visualizacin cientfica; tambin integra computacin matricial, anlisis numrico, proceso y anlisis de seal, adems de grficos con una sencilla interface visual de usuario.

MATLAB posee gran cantidad de libreras ms especficas para temas concretos, denominados Toolbox como por ejemplo: Control, Procesamiento de seales, Procesamiento de imgenes, etctera.

La herramienta ms interesante y de gran versatilidad, simplicidad y ampliamente utilizada es el Simulink.II. MARCO TEORICO.

La figura1muestra la ventana del MATLAB en versin 7.6 (R2008a), la cual muestra diferentes herramientas y ventanas. De stas ltimas la ms importante es la ventana de comandos (Command Window) en la cual se anotan y ejecutan instrucciones del MATLAB.

La ventana Workspace es un rea de trabajo en el que se muestran las variables que uno crea o almacena en memoria durante una sesin de MATLAB.La ventana Command History muestra una serie de sentencias que usted ha ejecutado en las sesiones actuales y previas de MATLAB.La ventana Current Directory muestra el directorio actual en el que trabaja MATLAB. Esta ventana es frecuentemente minimizada o bien cerrada por el usuario.

II.I MATLAB EN FORMA PRCTICA.

MATLAB es muy sencillo de entender, posee caractersticas muy accesibles en todo nivel y capacidades de clculo poderosas. Para ello lo ms aconsejable es practicar.

II.I.I EJECUCIN DE CLCULOS DESDE LA VENTANA DE COMANDOS.Cuando se realizan clculos en esta ventana, simplemente se deben escribir las instrucciones a continuacin del prompt (>>) y luego presionar la tecla ENTER para obtener un resultado.

Para trabajar en el entorno de la ventana de comandos, se debe tener en cuenta los operadores y funciones elementales que dispone MATLAB. Un listado resumido de los mismos es:

Los operadores matemticos:

+ Suma

- Resta

* Multiplicacin

/ Divisin

\ Divisin inversa

^ Potencias

.* Multiplicacin elemento a elemento

./ Divisin elemento a elemento

.\ Divisin inversa elemento a elemento

.^ Potencia elemento a elemento

Operadores relacionales:

< Menor que

Mayor que

>= Mayor igual que

== Igual

~= Distinto

Operadores Lgicos:

& AND

| OR

~ NOT

Otros smbolos empleados:

: genera rangos.

() define elementos de matrices, indica la precedencia de operadores, empleado para indicar los argumentos de una funcin.

[] Definir matrices.

. Punto decimal.

... Continuacin.

, Separa subelementos de matrices, separa argumentos en las funciones.

% Comentario

! Ejecucin de rdenes externas, comandos del S.O.

' Transpuesta de una matriz

; Empleado dentro de los [] para indicar fin de fila, empleado para separar rdenes, dentro de una misma lnea.

= Asignacin.

Funciones trigonomtricas:

sin

Seno

cos

Coseno

tan

Tangente

asin

Arcoseno

acos

Arcocoseno

atan

Arcotangente

sinh

Seno hiperblico

cosh

Coseno hiperblico

tanh

Tangente hiperblica

asinh

Arcoseno hiperblico

acosh

Arcocoseno hiperblico

atanh

Arcotangente hiperblica

Funciones elementales:

abs

Valor absoluto de un valor o magnitud compleja

angle ngulo de fase

sqrt

Raz cuadrada

real

Parte real

imag

Parte imaginaria

conj

Conjugado

exp

Exponencial base e

log

Logaritmo natural

log10 Logaritmo base 10

Funciones Polinomicas:

roots

Determina las races de un polinomio

poly Determina el polinomio definidas las races del mismo

conv

Multiplicacion de polinomios. Dados los polinomios "a(s)=s+10" y "b(s)=s^2+2"

deconv Divisin polinmica

residue Expansin en fracciones parciales

rlocus

Obtiene el lugar de las races de la ecuacin caracterstica

rlocfind Busca la ganancia (K) del lugar de las races dado para una raz dada

sgrid

Genera en el plano 's', lneas de grid para un lugar de las races

Funciones para el manejo de grficos:

plot

Grficos lineales

loglog

Grfico logartmico en x

semilogx Grfico semilogartmico en x

semilogy Grfico semilogartmico en y

polar

Grfico polar

title

Ttulo de grfico

xlabel

Etiqueta eje x

ylabel

Etiqueta eje y

text

Posicionado arbitrario de texot

grid

Lneas en los ejes (grid)Funciones Generales:

help

Ayuda del sistema.

clc

Borra la pantalla y posiciona el cursor en la primera fila, primera columna de la ventana.

What

Muestra ficheros .M del disco.

size

Determina la dimensin (tamao) de las variables.

clear

Borra el rea de trabajo.

quit

Termina el programa.

exit

Termina el programa.

Valores Especiales:

ans

Variable en la que retorna una expresin cuando no es asignada.

eps

Precisin, tolerancia por defecto.

i

Nmero imaginario.

j

Nmero imaginario.

pi

Nmero pi.

Inf

Infinito.

NaN

No es un nmero. Indefinido.Funciones para Conversin de Modelos en Sistemas de Control:

[num, den]=ss2tf(a,b,c,d,iu)

De variables de estado a funcin de transferencia.

[z,p,k]=sstzp(a,b,c,d,iu)

De variable de estado a polos-ceros.

[a,b,c,d]=tf2ss(num,den)

Funcin de transferencia a variables de estado.

[z,p,k]=tf2zp(num,den)

Funcin de transferencia a polos-ceros.

[a,b,c,d]=zp2ss(z,p,k)

Polos-ceros a variables de estado.

[num,den]=zp2tf(z,p,k)

Polos-ceros a funcin de transferencia.

[r,p,k]=residue(num,den)

Funcin de trasferencia a residuos.

[num,den]=residue(r,p,k)

Residuos a funcin de transferencia.

II.I.II ELABORANDO SCRIPTS CON MATLAB.

Un SCRIPT no es otra cosa que un conjunto de instrucciones (de cualquier lenguaje) guardadas en un fichero (usualmente de texto) que son ejecutadas normalmente mediante un intrprete. Son tiles para automatizar pequeas tareas. Tambin puede hacer las veces de un "programa principal" para ejecutar una aplicacin. MATLAB posee adems un lenguaje de programacin propio, muy prximo a los habituales en clculo numrico (Fortran, C,...) que permite al usuario escribir sus propios scripts para resolver un problema concreto y tambin escribir nuevas funciones con, por ejemplo, sus propios algoritmos. MATLAB dispone, adems, de numerosas Toolboxes, que le aaden funcionalidades especializadas. La forma como MATLAB almacena estos archivos es como archivo tipo m o m-file Matlab lee los comandos y los ejecuta secuencialmente exactamente como si se los estuviera typeando en ese momento en el prompt. Todo archivo-m debe tener extensin '.m' (ej. plot.m). Si crea un nuevo archivo-m con el nombre de uno que ya existe, Matlab elegir aquel que aparezca primero en el listado de paths (help path para ms informacin). Para facilitarse la vida, siempre deber crear sus archivos-m con nombre distinto que los existentes.Los instrumentos bsicos de programacin son:

% Este smbolo deber ser empleado para anotar un comentario

; Con este smbolo no se muestran los resultados de una lnea de codigo en pantalla

Sentencia IF

En su forma ms simple se escribe en la forma siguiente:

if condicin

sentencias

end

Sentencia SWITCH

Es anloga a un conjunto de if ... elseif concatenados. Su forma general es:

switch expresion

case caso-1

sentencias-1

case caso-2

sentencias-2

case {caso-3, caso-4,caso-5,...}

sentencias-3

otherwise

sentencias-4

end

Sentencia FOR Repite un conjunto de sentencias un nmero predeterminado de veces. Su forma general es la siguiente:

for variable=vector-fila

sentencias

end

Sentencia WHILE Repite la ejecucin de un conjunto de sentencias mientras que una determinada condicin se verifique. Su forma general es:

while condicion

sentencias

end

Sentencia CONTINUE

Detiene la ejecucin de la iteracin actual en un bucle for o while y pasa el control a la siguiente iteracin.

Sentencia BREAK Detiene completamente la ejecucin de un bucle for o while. Si hay bucles anidados, se detiene la ejecucin del ms interno

Operadores de relacin o comparacin

== Igual a

~= No igual a

< Menor que

> Mayor que

= Mayor o igual que

Operadores lgicos

Son operadores que actan entre valores lgicos:

& Y lgico

A&B produce los resultados que se reflejan en la tabla

A&B es equivalente a and(A,B)

| O lgico

A|B produce los resultados que se reflejan en la tabla

A|B es equivalente a or(A,B)

~ Negacin lgica

~A produce los resultados que se reflejan en la tabla

~A es equivalente a not(A)

Funcin INPUT

Permite imprimir un mensaje en la linea de comandos y leer datos desde el teclado. La instruccin

>> resp=input(Mensaje que se imprime)

imprime Mensaje que se imprime en una linea de la ventana de comandos y se queda esperando a que el usuario teclee un valor o una expresin

Funcin DISP

Permite imprimir en la pantalla un mensaje de texto:

>> disp(Mensaje que se imprime)III. MONTAJE EXPERIMENTALEjercicios a medio resolver:

Todos siguientes cdigos debern ser escritos en la ventana de comandos. El docente har Generar vectores fila y columna de nmeros consecutivos.

>> x=1:10

Genera vectores con un paso definido.

>> x=1:.5:4 Realizar las cuatro operaciones bsicas entre dos cantidades cualquiera.

Expresar en forma vectorial el siguiente polinomio:

Lo expresamos en Matlab como:

>> p=[1 2 12 10]

Determine las races del anterior polinomio.>> r=roots(p)

Determine el polinomio a partir de las races>> a=poly(r)

Dados los polinomios a(s)=s+10 y b(s)=s^2+2, realizar el producto de ambos.>> a=[1 10];

>> b=[1 0 2];

>> c=conv(a,b)

Para los mismos polinomios del anterior ejercicio, realizar la divisin.>> u=deconv(a,b); Dado los polinomios en forma vectorial A=[2 4 5 7] y B=[1 2 3], realizar la expansin en fracciones:

>> B=[1 2 3];

>> A=[2 4 5 7];

>> [r,p,k]=residue(B,A)

Graficar en el intervalo de 0 a 5*pi con un paso de 0.1 segundos, la funcin sin(t)>> t=0:.01:5*pi;

>> y=sin(t);

>> plot(t,y,'-r');title('Grfico funcin seno`);xlabel('Tiempo(t)');ylabel('Salida');grid

Dadas las siguientes funciones, hallar el producto de estas funciones y los polos y ceros del producto de estas funciones.

>> g1n=[1 0]; g1d=[1 2];

>> g2n=[4 4]; g2d=[1 4 5];

>> gn=conv(g1n, g2n);>> polos=roots(gn);

>> ceros=roots(gn);

Describa cual es la function de cada una de las siguientes instrucciones:>> t=0:0.05:10;

>> y=sin(t);

>> z=cos(t);

>> plot(t,y,'o',t,z,'x')

>> grid

>> title('Curvas de las funciones Seno y Coseno')

>> xlabel('segundos')

>> ylabel('y=Seno t; z=Cos t')

>> text('3,0.45, 'seno t')

>> text(0.8,-0.3, 'coseno t'

Representar la funcin :Teclear en Matlab

>> t = 0:.05:10;

>> x2=exp(-2.5*t).*(151000*sin(1.32*t)+30200+sin(1.32*t+41.30*pi/180));

>> plot(t,x2);grid;xlabel('Tiempo');ylabel('Amplitud');

Comentar que realiza cada lnea de las siguientes sentencias:

>> t=(0:500)/500;

>> e1=1.245*exp(-7.21*t).*sin(9.72*t+2.21);

>> e2=1.1*exp(-7.22*t).*sin(15.5*t+2.01);

>> e3=1.8*exp(-7.22*t).*sin(4.59*t+2.58);

>> plot(t,e1,'-r',t,e2,'-g',t,e3,'-b');grid;

>> xlabel('t');ylabel('e(t)');

>> hold on;

>> plot([.7 .8],.9*[1 1]+.02,'-r'); text(.8,.9,'E1');

>> plot([.7 .8],.7*[1 1]+.02,'-g'); text(.8,.7,'E2');

>> plot([.7 .8],.5*[1 1]+.02,'-b'); text(.8,.5,'E3');

>> hold off;

Describa cual es la function de cada una de las siguientes lneas

>>syms x y z a;

>>f = x^2 + sin(y);

>>subs(f,{x,y},{1,pi/2});

>>int(f,x);

>>int(f,x,1,a);

>>diff(f,x,2);

>>limit(f,x,0);

>>f1 = x + y;

>>f2 = x + 2*y + 1;

>>xy_solution = solve(f1,f2,x,y);

>>x_solution = xy_solution.x;

>>y_solution = xy_solution.y;

>>simple(f);

Abra el editor de ficheros m y escriba el siguiente cdigo, guarde como prueba.m y ejectelo. Seale que hace el programa.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%% Ejemplo de Script: prueba.m %

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%

% Operaciones con Matrices

%

%

A=[1 2 3; 4 5 6] B=[1 2; 3 4 ; 5 6]

C=A*B

T=inv(C)^2

Tt=T

Coloque comentarios en cada lnea del anterior script indicando que hace cada lnea.Abra el editor de ficheros m y escriba el siguiente cdigo, guarde como prueba.m y ejectelo. Seale que hace el programa.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%% %

%% Funcion que genera un grafico de 2D %

%% %

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

x = linspace(-8*pi,8*pi,100);

y = sin(x)./x;

% a elemento de dos vectores

figure; plot(x,y,b,x,sin(x/4),r:), title(sin(x)/x & sin(x)),

xlabel(eje x),ylabel(eje y), grid;

De igual manera coloque comentarios en cada lnea e indique que hace dicha linea Escriba el siguiente cdigo e indique que realiza. Coloque comentarios a cada lnea.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%% %

%% Funcion que genera una curva de 3D %

%% %

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

t = 0:pi/50:10*pi;

figure; plot3(sin(t),cos(t),t,b,10*sin(t),cos(t)/2,t,r);

title(Helice), xlabel(eje x),

ylabel(eje y), zlabel(ejez),grid; Escriba el siguiente cdigo e indique que realiza. Coloque comentarios a cada lnea.%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%% %

%% Funcion que genera una superficie de 3D %

%% %

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

x=linspace(-pi,pi,50);

y=linspace(-pi,pi,50);

[X,Y]=meshgrid(x,y);

z=sin(1.1*(X.^2+Y.^2))./(X.^2+Y.^2);

figure; surf(x,y,z);

title(GORRO), xlabel(eje x), ylabel(eje y), zlabel(eje z),

grid;

Ejecute los trabajos que le indique el docente en clase.

IV. RESULTADOSEn esta parte el estudiante debe colocar todos los resultados obtenidos.V. ANALISIS DE RESULTADOSEsta seccin es en donde se desarrolla el anlisis de los resultados obtenidos en el numeral 4, haciendo referencia a cada una de las tablas y grficos.VI. CONCLUSIONES:El propsito de esta seccin es resumir los principales resultados obtenidos en la prctica de laboratorio. Hay que recordar que las conclusiones son enunciados cortos fundamentados en la teora yAltamente relacionados con el objetivo de la prctica. REFERENCIASEl estudiante debe colocar las referencias bibliogrficas empleadas.2