0% encontró este documento útil (0 votos)
103 vistas10 páginas

Introducción a Matlab en Control I

Este documento resume el primer laboratorio de Sistemas de Control I. El objetivo fue familiarizarse con el entorno de trabajo en Matlab, incluyendo la creación de variables, vectores y matrices, y operaciones básicas con ellos. También se explican comandos básicos como help, who, clear, clc y close para obtener ayuda, ver variables existentes, y limpiar el espacio de trabajo y ventanas.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
103 vistas10 páginas

Introducción a Matlab en Control I

Este documento resume el primer laboratorio de Sistemas de Control I. El objetivo fue familiarizarse con el entorno de trabajo en Matlab, incluyendo la creación de variables, vectores y matrices, y operaciones básicas con ellos. También se explican comandos básicos como help, who, clear, clc y close para obtener ayuda, ver variables existentes, y limpiar el espacio de trabajo y ventanas.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

lOMoARcPSD|3347671

Laboratorio 1

Sistema de Control I (Universidad Nacional Mayor de San Marcos)

StuDocu no está patrocinado ni avalado por ningún colegio o universidad.


Descargado por Ricardo Alca (alcamejia@[Link])
lOMoARcPSD|3347671

FIEE-UNMSM. Reyes, Villafuerte. Sistemas de Control I

Sistemas de Control I
Villafuerte Huaylinos Jhulian; [Link]@[Link]
Reyes Jorge Jose Julian; jose.reyes1@[Link]

Resumen—En este laboratorio se tuvo como objetivo


familiarizarnos con el entorno de trabajo en Matlab.
También se desarrollo las funciones básicas del Matlab
como el ingreso de variables, operaciones básicas y
creación de archivos de trabajo.
Índice de Términos—Matlab, ingreso de variables,
workspace, gráficos, programación.

Abstract- The objective of this laboratory was to


familiarize ourselves with the work environment in
Matlab. It also developed the basic functions of
Matlab such as the input of variables, basic operations
and creation of work files. Figura 1.1 Entorno de Matlab
Keywords-- Matlab, input of variables, workspace,
graphics, programming.

I. INTRODUCCION II. DESARROLLO

Interruptor magnetotérmico: a. Parte 1: Variables, vectores y matrices

MATLAB (MATrix LABoratory) es una plataforma


optimizada para resolver problemas de Para crear una variable, se usa la sentencia de
ingeniería y científicos orientado al cálculo con asignación con el siguiente formato:
matrices. Desde el punto de vista del curso,
Matlab se puede considerar como un entorno de
simulación que puede utilizarse para >> NombreDeLaVariable= expresión
modelar, analizar y diseñar sistemas de control.
Una vez iniciado Matlab, nos encontramos con en el
entorno presentado en la figura 1. En Entonces para crear una variable a con un valor de
el cual se incluye los siguientes paneles: 1, debe ejecutar la siguiente
-Current Folder (Directorio actual de trabajo): Muestra
instrucción en la línea de comandos:
el folder donde todos los archivos
generados se guardarán. Además, es el lugar donde >> a = 1
Matlab buscará un determinado archivo
en caso de necesitarlo.
-Command Windows (Ventana de comandos): donde a=
se ingresan y se ejecutan los comandos,
1
identificada por el indicador (>>).
-Workspace (Espacio de trabajo): Muestra las variables El resultado se muestra automáticamente y la
que han sido creadas en la ventana de variable creada se registra en el Workspace.
comandos de la sesión actual. Ahora cree las variables b, c y d utilizando las
Además, también podemos incorporar un panel más: siguientes instrucciones:
Command History (Historial de comandos), el cual nos
permitirá ver el histórico de los comandos que se ha
utilizado. >>b = 2

b=

Laboratorio 1 Sistemas de Control I

Descargado por Ricardo Alca (alcamejia@[Link])


lOMoARcPSD|3347671

FIEE-UNMSM. Reyes, Villafuerte. Sistemas de Control I


2 x=
1234
>>c = a + b Este tipo de arreglo es un vector fila.
Para crear una matriz con varias filas, separe las
filas con punto y coma.
c=
3
>>y = [1 2 3; 4 5 6; 7 8 10]

>>d = cos(a)
y=
123
d=
456
0.5403
7 8 10
Cuando no se especifica una variable de salida,
MATLAB utiliza la variable ans, Realice las siguientes operaciones y explique el
resultado obtenido:
abreviatura de answer (respuesta), para almacenar
los resultados del cálculo.
• y + 10
>>sin(a) ans =

ans = 11 12 13
0.8415 14 15 16
Si una instrucción finaliza con punto y coma, 17 18 20
MATLAB realiza el cálculo, pero elimina
la visualización de la salida en la ventana de
comandos.

• y'
>>e = a*b;
ans =

También se puede asignar caracteres o secuencia de


caracteres a una variable. Se debe 1 4 7
incluir los caracteres dentro de comillas, tal como 2 5 8
se muestra en la siguiente línea: 3 6 10
• y.*y
>> t="Hola Mundo" ans =

t= 1 4 9
"Hola Mundo" 16 25 36
Para crear un arreglo con cuatro elementos en una 49 64 100
fila única, separe los elementos con
• A = [y, y]
una coma (,) o un espacio.
A=

>> x = [1 2 3 4] % x= [1,2,3,4]
1 2 3 1 2 3

Laboratorio 1 Sistemas de Control I

Descargado por Ricardo Alca (alcamejia@[Link])


lOMoARcPSD|3347671

FIEE-UNMSM. Reyes, Villafuerte. Sistemas de Control I


4 5 6 4 5 6
7 8 10 7 8 10 b. Parte 2: Comandos básicos

• sin(y) Describa en sus propias palabras las siguientes


instrucciones y muestre un ejemplo de su
ans =
utilización:

0.8415 0.9093 0.1411


• help
-0.7568 -0.9589 -0.2794
HELP topics:
0.6570 0.9894 -0.5440
Nos detalla cada función y su forma de trabajo que
nos permite Matlab
•z=

• who
1.0000 0 -0.0000
Nos indica cuales son las variables que tenemos en
0 1.0000 0 el workspace
0 0 1.0000
• clear all
• y.^3 Limpia todas las variables del workspace
ans =
• clc
1 8 27 Limpia la ventana de comandos
64 125 216 • clear
343 512 1000 Limpia todas las variables del workspace

• B = [x; y] • close all

Error using vertcat


Dimensions of matrices being concatenated are c. Parte 3: Guardar y Recuperar variables
not consistent.

Las variables generadas en el workspace se borran


(Esto se explica debido a que el vector X es de 1*4 cuando se cierra la sesión de Matlab. Se
y el vector Y es de 3*3 pueden guardar dichas variables en un archivo de
extensión “.mat” usando el comando
sabe, el cual se puede usar de las siguientes
maneras:
Para guardar todas las variables del workspace en el
archivo [Link] , se ejecuta:
>> save [Link];
Sí sólo se desea guardar algunas variables, se
escriben estas a continuación del nombre
del fichero, tal como se muestra
>> save [Link] x;

Laboratorio 1 Sistemas de Control I

Descargado por Ricardo Alca (alcamejia@[Link])


lOMoARcPSD|3347671

FIEE-UNMSM. Reyes, Villafuerte. Sistemas de Control I


Para recuperar variables guardadas previamente en • P(s)+Q(s)
un archivo, se ejecuta lo siguiente:
ans =
>>load(‘[Link]’) %load datos1
Para el informe final adjunte un archivo
1 3 2 -10 1 10
[Link] que contenga 2 variables: Una
variable nombrada codigo a la cual se le asignará
los códigos de los integrantes del • P(s)xQ(s)
grupo y otra variable nombres, donde estarán
asignados los nombres de estos. PQ =

0 1 4 -5 -21 5 33 -21 -32 20


d. Parte 4: Polinomios 16

En Matlab los polinomios son representados por • P(s)/Q(s)


vectores, conteniendo los coeficientes
en orden descendentes. Por ejemplo, el siguiente C=
polinomio:

0 %%C es Cociente
P(s) = s
4 + 2s
3 − 9s
R=
2 − 2s + 8

1 2 -9 -2 8 %%R es Residuo
Se representaría en Matlab de la siguiente manera:
>> P=[1 , 2, -9 , -2 ,8];%
Para extraer las raíces de un polinomio
>> r=roots(P);

Para hallar el polinomio.122111 cuyas raíces sean


r1=0.5, r2=1 y r3=3

>> P2=poly([1 0.5 3]);


e. Parte 5: Gráficas
Para multiplicar polinomios
>> P3=conv(P,P2); Para realizar gráficos en dos dimensiones (2D), se
utiliza el comando plot, el cual grafica
dos vectores de la misma longitud. Por ejemplo, al
Para dividir:
ejecutar las líneas de código, se
dibuja el vector y frente al vector x, la cual se
>> [Q,R]=deconv(P3,P); aprecia en la figura 2.
Ahora defina el siguiente polinomio: Q(s) = sˆ5 +
2s 4 – sˆ2 + 3s + 2 y obtenga los resultados de las
>> x = 0:0.05:5;
siguientes operaciones:
>> y = sin(x.^2);
Laboratorio 1 Sistemas de Control I

Descargado por Ricardo Alca (alcamejia@[Link])


lOMoARcPSD|3347671

FIEE-UNMSM. Reyes, Villafuerte. Sistemas de Control I


>> plot(x,y)

Figura 2.2. Grafica de Sin(x) vs Cos(x)

f. Parte 6: Programación
Figura 2.1 Grafica de X vs Y Matlab proporciona un potente lenguaje de
programación, tanto como un entorno
Se pueden cambiar las propiedades de los elementos computacional interactivo. La programación se
que constituyen las distintas gráficas, como el color, el realiza mediante ficheros “.m” desde el
tipo de línea, etc. Para poder apreciar estas Editor de Matlab. Existen dos tipos de archivos de
características ejecute las siguientes líneas de código, programación que se pueden realizar:
lo cual da como resultado la figura 2.2. Scripts, que no aceptan argumentos de entrada ni
devuelven argumentos de salida.
>> x = 0: 2*pi/40: 2*pi; %%El 0 inicial marca desde
que valor empieza x, lo que esta entre : y : como va Estos operan con variables del workspace.
creciendo el valor de x y el 2*pi el valor final de x Funciones, que aceptan argumentos de entrada y
devuelven argumentos de salida. Las
>> y = sin(x); %%El valor de y es seno de x variables internas son locales para la función.
>> plot(x,y,'ro') %%Grafica x vs y, la “r” significa que Clarifiquemos esto con el siguiente ejemplo:
el indicador será de color rojo, y el o, que el indicador En el Editor de Matlab (HOME>New>Script)
será un punto. creamos el siguiente script llamando:

>> hold on %%Mantiene la grafica contra futuros triarea1.m que calcula el área del triángulo:
cambios b = 5;
h = 3;
>> y = cos(x); %%El nuevo valor de y será coseno de
x a = 0.5*(b.*h)
Después de guardar el script, este puede ser
>> plot(x,y,'bp') %%Grafica x vs y con indicador de ejecutado desde la línea de comandos, de la
pentagramas azules siguiente manera:
>> legend('sin', 'cos') %%Agrega leyenda a la grafica >> triarea
a=
>> grid on %%Se agrega la parrilla (fondo) a la
grafica 7.5000
Nótese que si queremos calcular el área de otro
>> xlabel('x') %% Texto Indicador del eje x triangulo usando el mismo script, se debería
actualizar los nuevos valores de b y h modificando
>> ylabel('sin(x) o cos(x)') %% Texto Indicador del eje el código del script.
y
Sin embargo, en lugar de actualizarlo manualmente
>> title('sino y coseno en un sólo gráfico') cada vez, se puede hacer un programa más flexible
convirtiéndolo en una función. Para lo cual abrimos
%%Titulo de la grafica una plantilla de la estructura de una función
(HOME>New>Function). Luego, modifique el

Laboratorio 1 Sistemas de Control I

Descargado por Ricardo Alca (alcamejia@[Link])


lOMoARcPSD|3347671

FIEE-UNMSM. Reyes, Villafuerte. Sistemas de Control I


nombre de la función, las asignaciones de variables sys = (s^2 + 2 s + 3)/(s^3 + 3 s^2 + 3 s + 1)
de entrada y salidas; así mismo, defina la
Continuous-time transfer function.
expresión del cálculo del área, tal como se presenta
en las siguientes líneas: Considerando la siguiente función de transferencia
function a = triarea2(b,h) G(s)
a = 0.5*(b.*h);
G(s) =sˆ2 + 64/(s + 1)(sˆ2 + 6s + 8)
end
i. Defínala en Matlab.
Después de guardar la función con el nombre de
triarea2, puede ser llamada con diferentes valores
>> num = [1,0,64]
de base y altura, desde la línea de comandos sin
modificar su codificación, de la siguiente manera: num =
>>a1 = triarea2(1,5)
1 0 64
>>a2 = triarea2(2,10)
>>a3 = triarea2(3,6) >> den = [1,7,14,8]
a1 = den =
2.5000
1 7 14 8
a2 =
10 ii. Encontrar el equivalente en funciones parciales de
G(s).
a3 = 9
Cree un script que pida al usuario que ingrese >> sys=tf(num,den)
loscoeficientes de una ecuación cuadrática
sys =
(axˆ2 + bx + c) y que arroje como resultado las
soluciones siempre y cuando sean reales caso s^2 + 64
contrario que muestre un mensaje que las
soluciones no son reales. Luego convertirla en una ----------------------
función.
s^3 + 7 s^2 + 14 s + 8

g. Parte 7: Funciones de transferencia iii. Encuentre los ceros de G(s). (cuando el


numerador se hace cero).
Para definir una función de transferencia en Matlab,
lo hacemos con el comando tf, >> z =zero(sys)

considerando el par de polinomios numerador- z=


denominador. Por ejemplo, para definir
0.0000 + 8.0000i
la siguiente función de transferencia H(s):
0.0000 - 8.0000i
H(s) =sˆ2 + 2s + 3/sˆ3 + 3sˆ2 + 3s + 1

Se ejecutan las siguientes líneas de código:


iv. Encuentre los polos de G(s) y H(s). (cuando el
>>num= [ 1, 2, 3]; % declaramos el numerador como denominador se hace cero).
un polinomio
>> p=pole(sys)
>>den= [1, 3, 3, 1]; % declaramos el denominador
como un polinomio p=

>>sys=tf(num,den) % declaramos la función de -4.0000


transferencia
-2.0000

Laboratorio 1 Sistemas de Control I

Descargado por Ricardo Alca (alcamejia@[Link])


lOMoARcPSD|3347671

FIEE-UNMSM. Reyes, Villafuerte. Sistemas de Control I


-1.0000 disp('Ha ingresado un valor fuera de
los parametros, por favor ingresar
nuevamente');
end
end
[Link] FINAL
hur= ['El Huracan es de
categoria',num2str(cat)];
a. Los huracanes son categorizados con base a la disp(hur);
velocidad de los vientos. La siguiente tabla mar= ['El aumento de la marejada
muestra el número de categoría para los huracanes ciclonica esta de ',pies, ' pies por
con los rangos de variación del viento encima del nivel del mar'];
disp(mar)
y cuál es el aumento de la marejada ciclónica
(expresada en pies por encima de lo normal).

Código en Matlab:

clear all; clc

incorrect=1;
while (incorrect==1);
x=input('La velocidad del viento en
m/s es: ');
if 74<=x && x<=95
cat=1;
pies='4 a 5';
incorrect=0;
break;
elseif 95<x && x<=110
cat=2;
pies='6 a 8'; b. El factor de enfriamiento del viento (WCF) mide
incorrect=0; que tan frio se siente con una
break; temperatura (T) de aire dada (en grados Fahrenheit) y
elseif 110<x && x<=130 la velocidad del viento V (in millas por hora). Una
cat=3; fórmula para WCF es:
pies='9 a 12'; WCF = 35.7 + 0.6T − 35.7(V0.16) + 0.43T(V0.16)
incorrect=0;
break; Escribe una función para recibir un vector
elseif 130<x && x<=155
cat=4;
conteniendo distintas velocidades de viento
pies='13 a 18'; como argumento de entrada y retornar el WCF para
incorrect=0; todas las distintas velocidades de
break; vientos, además que muestre un gráfico WCF vs V.
elseif 155<x Considere T como la temperatura
cat=5; ambiental.
pies='18';
incorrect=0; Código en Matlab
break;
else clear all; clc
incorrect=1;

Laboratorio 1 Sistemas de Control I

Descargado por Ricardo Alca (alcamejia@[Link])


lOMoARcPSD|3347671

FIEE-UNMSM. Reyes, Villafuerte. Sistemas de Control I


T= 80.33; %Se tomara el valor fijo de procede a hallar el factor de
la Temperatura Ambiente% enfriamiento del viento
p=1; error=1; %Valores predeterminados WCF
que nos permitira funcionar las
iteraciones% plot(V,WCF)
disp('Bienvenido') grid on
while p==1; %%El valor p xlabel('Velocidad del viento');
predeterminado es 1, cuando el usuario ylabel('Factor de Enfriamiento del
no desee Viento');
%%agregar un nuevo
registro, este valor cambiara a 0, y
%%terminara este proceso
while

x= input ('La velocidad del viento en


millas por hora es: ');
V(1)=x; %%Se registra el valor
del viento, y se procede a agregar al
vector V

while error==1; %%Esta iteracion


nos permite solucionar el error
producido al ingresar un valor
%%Diferente a 0
(No) y 1 (Si)
resp= input ('Desea agregar
otro registro (Si=1,No=0): ');
if resp==0
disp ('A continuacion se
mostrara el Factor de Enfriamiento del
Viento variables ya establecidas');
p=0; error=0;
elseif resp==1
p=1; error=0;
else
disp ('Por favor digite un
valor correcto')
error=1;
end
end
error=1; %%Al terminar la iteracion
de pregunta, el valor de error volvera a
ser 1 para empezar el
%%proceso nuevamente desde
agregar el registro

V= [V,x]; %%Al vector V se le iran


agregando los registros indicados

end
V(:,1) = []; %%Se elimina la primera BIBLIOGRAFIA
columna debido a un error que provocaba
%%que el ultimo registro se
Documentación de Matlab
agregue nuevamente al inicio del ([Link]
%%vector [Link]
V = sort(V) %%Se ordena los valores del [Link]
vector V en forma ascendente, para [Link]
facilitar su grafica
[Link]
disp('Se considera la temperatura
ambiental a 80.33 Farenheit') [Link]
[Link]
WCF= 35.7+0.6*T-
35.7*(V.^0.16)+0.43*T*(V.^0.16); %%Se
Laboratorio 1 Sistemas de Control I

Descargado por Ricardo Alca (alcamejia@[Link])


lOMoARcPSD|3347671

FIEE-UNMSM. Reyes, Villafuerte. Sistemas de Control I

Laboratorio 1 Sistemas de Control I

Descargado por Ricardo Alca (alcamejia@[Link])

También podría gustarte