Вы находитесь на странице: 1из 5

FUNDAMENTOS DE AUTOMÁTICA (2º Tecnologías Industriales) 

Práctica 0: INTRODUCCION AL PROGRAMA MATLAB 
Incluye un formulario que deberá ser entregado cubierto al inicio de la práctica 5. 
CONOCIMIENTOS PREVIOS. 
El objetivo de la práctica es familiarizarse y recordar las órdenes básicas del programa Matlab, que es un entorno de 
trabajo  y  simulación  usado  para  el  análisis  y  síntesis  de  sistemas  dinámicos  utilizado  mayoritariamente  en  algunas 
asignaturas del curso anterior. 
Matlab es un entorno abierto para el que hay disponibles distintos módulos especializados:  Control Systems, Signal 
Processing, System Identification, etc… que puede trabajar con sistemas continuos y discretos, lineales y no lineales. 
Para trabajar con Matlab se utiliza un conjunto de órdenes, a las que se les pueden pasar variables y que en ocasiones 
devuelven  otras  variables  como  resultado.  Es  un  lenguaje  de  expresiones  que  son  introducidas  por  el  usuario  e 
interpretadas y evaluadas por el programa en el que la sintaxis general de las órdenes utilizadas es la siguiente: 
[output1, output2, ...,outputN] = nombre_orden(input1,input2, ...,inputK) 
Las  variables  de  salida  se  escriben  entre  corchetes  y  las  de  entrada  entre  paréntesis  (si  hay  una  sola  salida  los 
corchetes son opcionales). Se recuerdan algunos detalles significativos: 
a) Cada línea es una instrucción. Para ejecutar varias instrucciones en una línea, se separarán con “,” o “;”. 
b) Si al final de cada instrucción se coloca un punto y coma (;) el programa no muestra el resultado. 
c) Para introducir comentarios se escribe el carácter % y a continuación el comentario (hasta el final de la línea). 
d) Las flechas del teclado permiten repetir las instrucciones anteriores. 
e) El programa Matlab distingue entre mayúsculas y minúsculas. 
f) El primer elemento de cualquier vector el vector es el “1”. No existe “elemento 0” 
El elemento básico de Matlab es una matriz de números complejos. La evaluación de las expresiones siempre da como 
resultado  una  matriz.  Esta  representación  es  muy  general  e  incluye  vectores  y  escalares,  reales  y  complejos  y,  de 
forma indirecta, polinomios y funciones de transferencia.  
La matriz se introduce usando corchetes y los elementos de cada fila se separan usando espacios en blanco o comas y 
las diferentes filas se separan con punto y coma o “intro”. Las matrices se pueden trasponer añadiendo una comilla. Si 
tiene una única fila o una única columna se tratará de un vector y podrá representar un polinomio. 
>>x=[1 2 3], y=[3.55,2*pi,sqrt(‐1),2+4j]  x =
     1     2     3 
y = 
3.5500+0.0000i 6.2832+0.0000i 0.0000+1.0000i 2.0000+4.0000i 
>> z = y’  % Traspuesta  z =
o     3.5500 + 0.0000i 
>> z=[3.55;2*pi;sqrt(‐1);2+4j]     6.2832 + 0.0000i 
   0.0000 + 1.0000i 
   2.0000 + 4.0000i 
>>a = [1 2 3;4 4 5;6 7 8;9 10 0]  a =
     1     2     3 
     4     4     5 
     6     7     8 
     9    10     0 
>> b=[2.4 4.55  b =
5.444 pi+2i]     2.4000             4.5500           
   5.4440             3.1416 + 2.0000i 

OPERACIONES Y FUNCIONES. 
Operaciones aritméticas básicas:  +, ‐, *, /, \ , ^ , sqrt 
Operaciones de relación:  >, <, <=, >=, == (igual), ~= (distinto) 
Operaciones lógicas:  & (and),  | (or), ~  (not) 
Funciones trigonométricas básicas:  sin, cos, tan, asin, acos, atan, atan2 
Funciones logarítmicas básicas:  exp, log, log10, log2,... 
OPERACIONES SOBRE MATRICES 
>> A\B   % inv(A)*B; devuelve la matriz X tal que A∙X = B 
>> A/B   % A*inv(B); devuelve la matriz X tal que X∙B = A 
>> inv(A)  % Devuelve la matriz inversa de A 

Práctica 0 ‐ 1 
OPERACIONES SOBRE MATRICES (elemento a elemento) 
C = A.*B  % Multiplica elemento a elemento las matrices A y B:  cij = aij * bij 
A./B, A.\B y A.^B  % Devuelve aij/bij, bij/aij y aij bij respectivamente. 
COMANDOS DE INTERÉS SOBRE MATRICES 
D = A(i,:)  % vector fila con todos los datos de la fila “i‐ésima”. 
D = A(:,j)  % vector columna con todos los datos de la columna “j‐ésima”. 
D = A(i1:i2,j1:j2)  % submatriz con las filas i1 a i2 y las columnas j1 a j2. 
B = A’  % traspuesta de A 
det(A)  % determinante de A 
inv(A)  % inversa de A 
rank(A)  % rango de A 
size(A)  % tamaño de A 
p = poly(A)  % polinomio característico de A 
Si  a  una  matriz  se  le  añade  un  número  de  una  dirección  no  existente,  la  matriz  crecerá  hasta  encajar  el  nuevo 
elemento y rellenará con ceros los espacios no especificados. 
Matrices especiales: 
eye(n)  % identidad nxn 
eye(n,m)  % identidad nxm 
ones(n), ones(n,m)  % matriz de 1’s, tamaño correspondiente 
zeros(n), zeros(n,m)  % matriz de 0’s, tamaño correspondiente 
diag([…])  % matriz diagonal de tamaño ‘nº el’ x ‘nº el’ 
COMANDOS GENERALES DE INTERÉS (AYUDA) 
>> who  % Lista todas las variables del espacio de trabajo. 
>> clear  % Borra el espacio de trabajo.
>> help  % Lista todos los comandos de Matlab.
>> help n  % Proporciona ayuda del comando n.
>> clf  % Borra la figura activa.
DESARROLLO DE LA PRÁCTICA 
Repetir los comandos que se destacan y observar los resultados. Se proporcionan de forma escueta para que se utilice 
el comando help cuando sea necesario. Se incluyen, además, otros comandos por su interés. 
Al  final  de  la  práctica  se  propone  un  formulario  para  destacar  algunas  instrucciones  que  por  su  importancia  se 
deberán conocer y que se entregará INDIVIDUALMENTE al principio de la práctica 5. 
La expresión ‘FORMULARIO (?)’ indica que en la casilla del formulario indicada entre paréntesis se deberá cubrir el 
resultado de la instrucción o lo que se señale en la misma. 
1. TRABAJO CON MATRICES. 
>> aux = [1 2 3; 4 5 6; 7 8 0]   
>> D = aux(1:2,2:3)   
>> D(3,4) = 10  FORMULARIO (a) 
>> unoD=ones(size(D))  FORMULARIO (b) 
>> ceroD=zeros(size(unoD))  FORMULARIO (c) 
2. TRABAJO CON VECTORES Y POLINOMIOS. 
>> P = [1 8 15]  % Define el polinomio P = x2 + 8x + 15 
>> roots(P)  % Devuelve las raíces del polinomio P 
>> Q = [1 0 4]  % Define el polinomio Q = x2 + 4  x2 + 0x + 4 
>> roots(Q)  % Obtiene las raíces del polinomio Q 
>> S = conv(P,Q)  % Calcula el producto de polinomios 
>> roots(S)  % Calcula las raíces del polinomio S 
Comprobar la diferencia existente entre las siguientes instrucciones incluyendo las respuestas en el formulario: 
>> F1=conv(P,Q)  FORMULARIO (d) 
>> F2=P*Q  FORMULARIO (e) 
>> F3=P.*Q  FORMULARIO (f) 
>> F4=P*Q’  FORMULARIO (g) 
>> F5=P’*Q  FORMULARIO (h) 
Práctica 0 ‐ 2 
Con objeto de familiarizarse en el manejo de vectores que podrán representar tanto vectores de tiempo como valores 
de  funciones  se  recomienda  prestar  especial  atención  a  los  siguientes  comandos,  aunque  por  su  tamaño  no  se 
soliciten las respuestas en el formulario: 
>> x = 1 : 5  % vector de 5 elementos de 1 a 5, incremento 1 
>> y = 0: 0.5 : 5  % vector de 11 elementos, de 0 a 5, incremento 0.5 
>> z = 5 : ‐1 : 0  % vector de 6 elementos, de 5 a 0, decremento 1. 
>> z(4)  % devuelve el 4º elemento del vector z 
>> ambos=[x y]  % concatenación de vectores 
>> t = 0: 0.2 : 8  % vector de tiempo de 0 a 8 sg con precisión de 0.2 sg 
3. CONTROL DE FLUJO DE  PROGRAMA (for, while, if). 
>> x = [ 1 1 1 1 1 1 1]   
>> for i = 2:4,  x(i) = 0; end; x  % comprobar el nuevo valor de x / FORMULARIO (i) 
>> x = [ 10 20 30 40 50 60 70 80]   
>> i = 1, while x(i) < 45, x(i) = 0; i=   
i+1;end; 
>> x  % comprobar el nuevo valor de x / FORMULARIO (j) 
Las instrucciones del ‘while’, ‘for’ , ‘if’ pueden introducirse en líneas independientes y encadenarse: 

>> x = [‐1 2 ‐3 4 ‐5 6]   
>> for i=1 : 6   
if x(i) < 0, x(i) = 0; 
else x(i) = 22; 
end; 
   end; 
>> x  % comprobar el nuevo valor de x / FORMULARIO (k) 
4. TRABAJO CON GRÁFICAS. 
>> x=[0.0 0.5 1.5 2.0 3.0 4.0 6.0 4.0 4.5]   
>> plot(x)  % gráfico en 2D 
>> grid  % Dibuja una cuadrícula en el gráfico. Observar. 
>> title(‘mi gráfico’)  % Añade un título al gráfico y a los ejes. Verificarlo 
>> xlabel(‘x’), ylabel(‘y’)  % en la ventana gráfica 
Las instrucciones se realizan sobre la ventana gráfica activa. 
>> x = [1 2 4 8 16 32 64]   
>> y = [5.0 6.0 6.5 6.6 6.4 6.2 4.5]   
>> plot(x,y);grid  % Dibuja y en función x 
>> plot(y,x);grid  % Dibuja x en función y 
>> plot(x,y,'b')  % Dibuja y en función de x en color azul (blue) 
>> plot(x,y,'o')  % Dibuja y en función de x usando el símbolo ‘o’ 
>> plot(x,y,'+y')  % Dibuja y en función de x usando ‘+’, color amarillo (yellow) 
>> plot(x,y,'*r')  % Dibuja y en función de x usando ‘*’, color rojo (red) 

>> t=0:0.01:10;   % Define la variable t con valores de 0 y 10 a intervalos de 0.01 
>> y = sin(t);  % Define la variable y como el seno de la variable t. 
>> plot(t,y);grid  % Dibuja la función seno(t) en el rango de la variable t. 

>> z = cos(2*t);  % Define la variable z como el coseno de la variable (2*t) 
>> plot(t,z);grid  % Dibuja la función coseno(2*t) entre t=0 y t = 10. 
>> plot(t,y,'r',t,z,'g')  % Dibuja ambas funciones en una gráfica (rojo y verde) 

>> v = [0 20 ‐2 2]  % [xmin, xmax, ymin, ymax] 
>> axis(v)  % Fija el rango de los ejes (abscisas 0 a 20 y ordenadas –2 a 2) 
>> hold on  % Mantiene el gráfico actual 
>> p = y.*y;  % Define la variable p como y2 
>> plot(t,p,’b’)  % Dibuja sobre el gráfico antiguo la variable p (en color azul) 
>> hold off  % Permite el refresco total del gráfico actual 

Práctica 0 ‐ 3 
Se  puede  hacer  un  ZOOM  sobre  una  zona  del  gráfico  seleccionando  el  icono  que  aparece  en  la  ventana  gráfica.  Es 
posible crear varias figuras para disponer de ellas de forma simultánea. 
5. FUNCIONES Y ALMACENAMIENTO EN DISCO. APLICACIÓN. 
En modo normal, Matlab ejecuta comandos en forma interactiva, tras escribir el comando, Matlab responde. También 
se pueden ejecutar programas que estén almacenados en ficheros en disco. Existen dos requisitos: el programa (en 
formato solo texto) debe residir en el “path” del Matlab y debe tener extensión “.m”. El programa Matlab maneja dos 
tipos básicos de ficheros (M‐files): function files y script files. 
Scripts: Fichero con el conjunto de instrucciones a realizar tras la llamada. Ya que su nombre será la ‘instrucción’, no 
podrá  incluir  espacios  ni  caracteres  ‘extraños’.  Las  instrucciones  se  ejecutan  igual  que  si  se  hubiesen  introducido 
directamente  en  la  ventana  de  comandos.  Las  variables  que  se  usen  en  el  script  afectan  al  espacio  de  trabajo;  son 
globales. 
Functions: Parecido al anterior pero admite el paso de parámetros y puede devolver resultados. Si se usan variables 
auxiliares dentro de la función, éstas serán locales a la función, y no afectan al espacio de trabajo. 
El formato de una función debe ser el siguiente: 
Nombre del fichero: nombre_funcion.m
Instrucciones: 
function [sal1,sal2,sal3, ...] = nombre_funcion(ent1,ent2, ...) 
  ....... 
  [sal1,sal2,sal3, ...] = ...   % Asignación de valores (juntos o separados) 
NOTA: Cuando se eligen los nombres, tanto de funciones como de programas o variables, se debe prestar atención 
a la posible redefinición de funciones propias y valores de Matlab. 
Mediante los botones de Matlab “New script” o “+New…”  crear dos ficheros, uno correspondiente a una función (con 
el nombre fact.m) y el otro a un script (con el nombre programa.m).  
fact.m  programa.m 
function result = fact(dato)  disp('Cálculo del M.C.D. de dos enteros'); 
% devuelve el factorial de dato  a = input('Valor del primer entero '); 
result = 1;  b = input('Valor del segundo entero '); 
for i=1 : dato  data = a; 
  result = result * i;  datb = b; 
end;  while (a ~= b)  % Alt Gr + 44 
     if (a > b) a = a ‐ b; 
     else b = b ‐ a; 
     end; 
  end; 
  fprintf('\nEl mcd de %d y %d es %d \n',data,datb,a); 
Tras crear los dos ficheros y guardarlos en disco con los nombres indicados (fact.m, programa.m) pueden ser utilizados 
de la siguiente forma desde el Matlab. 
>> fact(10)   
>> a = fact(3)  FORMULARIO (l) 
>> b = fact(a)  FORMULARIO (m) 
>> b = fact(2+a)  FORMULARIO (n) 
>> programa  FORMULARIO (o) 
 
6. EJERCICIO. 
Representar gráficamente (y copiar la gráfica en el FORMULARIO (p)) la función y = 2 * seno(5t) * (e‐2t ) entre t = 0 y 
t = 3, utilizando intervalos de tiempo de 0.001 segundos. 
Utilizando las funciones de Matlab max y min, calcular el máximo y el mínimo de la función en ese intervalo, así como 
el instante de tiempo en el que se producen. Comprobar, haciendo zoom, que esos valores son correctos. 
Se sugiere la ejecución de las funciones: exp, sin, max, min, plot. 
   

Práctica 0 ‐ 4 
Práctica 0: FORMULARIO (Trabajo previo práctica 5) 
 
Nombre ............................................................................................................................... Grupo ................. Puesto ......... . 
 
a: D  b: unoD  c: ceroD 

d: F1  e: F2  f: F3 

g: F4  h: F5 

i: x  j: x  k: x 

l: a  m: b  n: b 

o: frase final del programa 
                                                               

p: gráfica final 

 
Fecha ...............................................................   Firma: 
 

Práctica 0 ‐ 5 

Вам также может понравиться