Está en la página 1de 8

FIEE-UNMSM. Reyes, Villafuerte.

Sistemas de Control I

Sistemas de Control I
Villafuerte Huaylinos Jhulian; jhulian.villafuerte@unmsm.edu.pe
Reyes Jorge Jose Julian; jose.reyes1@unmsm.edu.pe

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

>>d = cos(a)

Laboratorio 1 Sistemas de Control I


FIEE-UNMSM. Reyes, Villafuerte. Sistemas de Control I
d= ans =
0.5403
Cuando no se especifica una variable de salida, 1 4 7
MATLAB utiliza la variable ans, 2 5 8
abreviatura de answer (respuesta), para almacenar 3 6 10
los resultados del cálculo. • y.*y
ans =
>>sin(a)
1 4 9
ans = 16 25 36
0.8415 49 64 100
Si una instrucción finaliza con punto y coma, • A = [y, y]
MATLAB realiza el cálculo, pero elimina A=
la visualización de la salida en la ventana de
comandos. 1 2 3 1 2 3
4 5 6 4 5 6
>>e = a*b; 7 8 10 7 8 10

También se puede asignar caracteres o secuencia de • sin(y)


caracteres a una variable. Se debe ans =
incluir los caracteres dentro de comillas, tal como
se muestra en la siguiente línea: 0.8415 0.9093 0.1411
-0.7568 -0.9589 -0.2794
>> t="Hola Mundo" 0.6570 0.9894 -0.5440

t= •z=
"Hola Mundo"
Para crear un arreglo con cuatro elementos en una 1.0000 0 -0.0000
fila única, separe los elementos con 0 1.0000 0
una coma (,) o un espacio. 0 0 1.0000

>> x = [1 2 3 4] % x= [1,2,3,4] • y.^3


ans =
x=
1234 1 8 27
Este tipo de arreglo es un vector fila. 64 125 216
Para crear una matriz con varias filas, separe las 343 512 1000
filas con punto y coma.
• B = [x; y]
>>y = [1 2 3; 4 5 6; 7 8 10]
Error using vertcat
y= Dimensions of matrices being concatenated are
123 not consistent.
456
7 8 10 (Esto se explica debido a que el vector X es de 1*4
Realice las siguientes operaciones y explique el y el vector Y es de 3*3
resultado obtenido:

• y + 10
ans =

11 12 13
14 15 16
17 18 20

• y' b. Parte 2: Comandos básicos


Laboratorio 1 Sistemas de Control I
FIEE-UNMSM. Reyes, Villafuerte. Sistemas de Control I
P(s) = s
Describa en sus propias palabras las siguientes 4 + 2s
instrucciones y muestre un ejemplo de su 3 − 9s
utilización: 2 − 2s + 8

• help Se representaría en Matlab de la siguiente manera:


HELP topics: >> P=[1 , 2, -9 , -2 ,8];%
Nos detalla cada función y su forma de trabajo que Para extraer las raíces de un polinomio
nos permite Matlab >> r=roots(P);

• who Para hallar el polinomio.122111 cuyas raíces sean


Nos indica cuales son las variables que tenemos en r1=0.5, r2=1 y r3=3
el workspace
>> P2=poly([1 0.5 3]);
• clear all
Limpia todas las variables del workspace Para multiplicar polinomios
>> P3=conv(P,P2);
• clc
Limpia la ventana de comandos Para dividir:
• clear
Limpia todas las variables del workspace >> [Q,R]=deconv(P3,P);
Ahora defina el siguiente polinomio: Q(s) = sˆ5 +
• close all 2s 4 – sˆ2 + 3s + 2 y obtenga los resultados de las
siguientes operaciones:
• P(s)+Q(s)
c. Parte 3: Guardar y Recuperar variables ans =

Las variables generadas en el workspace se borran 1 3 2 -10 1 10


cuando se cierra la sesión de Matlab. Se
pueden guardar dichas variables en un archivo de • P(s)xQ(s)
extensión “.mat” usando el comando
sabe, el cual se puede usar de las siguientes PQ =
maneras:
Para guardar todas las variables del workspace en el 0 1 4 -5 -21 5 33 -21 -32 20
archivo datos1.mat , se ejecuta: 16
>> save datos1.mat;
Sí sólo se desea guardar algunas variables, se • P(s)/Q(s)
escriben estas a continuación del nombre
del fichero, tal como se muestra C=
>> save datos2.mat x;
Para recuperar variables guardadas previamente en 0 %%C es Cociente
un archivo, se ejecuta lo siguiente:
>>load(‘datos1.mat’) %load datos1
Para el informe final adjunte un archivo R=
variables.mat que contenga 2 variables: Una
variable nombrada codigo a la cual se le asignará 1 2 -9 -2 8 %%R es Residuo
los códigos de los integrantes del
grupo y otra variable nombres, donde estarán
asignados los nombres de estos.

d. Parte 4: Polinomios

En Matlab los polinomios son representados por


vectores, conteniendo los coeficientes e. Parte 5: Gráficas
en orden descendentes. Por ejemplo, el siguiente
polinomio: Para realizar gráficos en dos dimensiones (2D), se
utiliza el comando plot, el cual grafica
Laboratorio 1 Sistemas de Control I
FIEE-UNMSM. Reyes, Villafuerte. Sistemas de Control I
dos vectores de la misma longitud. Por ejemplo, al >> title('sino y coseno en un sólo gráfico')
ejecutar las líneas de código, se
dibuja el vector y frente al vector x, la cual se %%Titulo de la grafica
aprecia en la figura 2.

>> x = 0:0.05:5;
>> y = sin(x.^2);
>> plot(x,y)

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

f. Parte 6: Programación
Matlab proporciona un potente lenguaje de
Figura 2.1 Grafica de X vs Y programación, tanto como un entorno
computacional interactivo. La programación se
Se pueden cambiar las propiedades de los elementos realiza mediante ficheros “.m” desde el
que constituyen las distintas gráficas, como el color, el Editor de Matlab. Existen dos tipos de archivos de
tipo de línea, etc. Para poder apreciar estas programación que se pueden realizar:
características ejecute las siguientes líneas de código,
Scripts, que no aceptan argumentos de entrada ni
lo cual da como resultado la figura 2.2. devuelven argumentos de salida.
>> x = 0: 2*pi/40: 2*pi; %%El 0 inicial marca desde Estos operan con variables del workspace.
que valor empieza x, lo que esta entre : y : como va Funciones, que aceptan argumentos de entrada y
creciendo el valor de x y el 2*pi el valor final de x devuelven argumentos de salida. Las

>> y = sin(x); %%El valor de y es seno de x variables internas son locales para la función.
Clarifiquemos esto con el siguiente ejemplo:
>> plot(x,y,'ro') %%Grafica x vs y, la “r” significa
En el Editor de Matlab (HOME>New>Script)
que el indicador será de color rojo, y el o, que el
creamos el siguiente script llamando:
indicador será un punto.
triarea1.m que calcula el área del triángulo:
>> hold on %%Mantiene la grafica contra futuros b = 5;
cambios
h = 3;
>> y = cos(x); %%El nuevo valor de y será coseno de a = 0.5*(b.*h)
x
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
siguiente manera:
pentagramas azules
>> triarea
>> legend('sin', 'cos') %%Agrega leyenda a la grafica
a=
>> grid on %%Se agrega la parrilla (fondo) a la 7.5000
grafica Nótese que si queremos calcular el área de otro
triangulo usando el mismo script, se debería
>> xlabel('x') %% Texto Indicador del eje x
actualizar los nuevos valores de b y h modificando
el código del script.
>> ylabel('sin(x) o cos(x)') %% Texto Indicador del eje
y

Laboratorio 1 Sistemas de Control I


FIEE-UNMSM. Reyes, Villafuerte. Sistemas de Control I
Sin embargo, en lugar de actualizarlo manualmente >>den= [1, 3, 3, 1]; % declaramos el denominador
cada vez, se puede hacer un programa más flexible como un polinomio
convirtiéndolo en una función. Para lo cual abrimos
una plantilla de la estructura de una función >>sys=tf(num,den) % declaramos la función de
(HOME>New>Function). Luego, modifique el transferencia
nombre de la función, las asignaciones de variables
de entrada y salidas; así mismo, defina la sys = (s^2 + 2 s + 3)/(s^3 + 3 s^2 + 3 s + 1)
expresión del cálculo del área, tal como se presenta
en las siguientes líneas: Continuous-time transfer function.

function a = triarea2(b,h) Considerando la siguiente función de transferencia


a = 0.5*(b.*h); G(s)
end G(s) =sˆ2 + 64/(s + 1)(sˆ2 + 6s + 8)
Después de guardar la función con el nombre de
triarea2, puede ser llamada con diferentes valores i. Defínala en Matlab.
de base y altura, desde la línea de comandos sin
modificar su codificación, de la siguiente manera: >> num = [1,0,64]

>>a1 = triarea2(1,5) num =


>>a2 = triarea2(2,10)
1 0 64
>>a3 = triarea2(3,6)
>> den = [1,7,14,8]
a1 =
2.5000 den =
a2 =
1 7 14 8
10
ii. Encontrar el equivalente en funciones parciales de
a3 = 9
G(s).
Cree un script que pida al usuario que ingrese
loscoeficientes de una ecuación cuadrática >> sys=tf(num,den)
(axˆ2 + bx + c) y que arroje como resultado las
sys =
soluciones siempre y cuando sean reales caso
contrario que muestre un mensaje que las
s^2 + 64
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
Para definir una función de transferencia en Matlab,
numerador se hace cero).
lo hacemos con el comando tf,
>> z =zero(sys)
considerando el par de polinomios numerador-
denominador. Por ejemplo, para definir z=

la siguiente función de transferencia H(s): 0.0000 + 8.0000i

H(s) =sˆ2 + 2s + 3/sˆ3 + 3sˆ2 + 3s + 1 0.0000 - 8.0000i

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

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

>> p=pole(sys)
Laboratorio 1 Sistemas de Control I
FIEE-UNMSM. Reyes, Villafuerte. Sistemas de Control I
p= pies='18';
incorrect=0;
-4.0000 break;
else
incorrect=1;
-2.0000
disp('Ha ingresado un valor fuera de
los parametros, por favor ingresar
-1.0000 nuevamente');
end
end
hur= ['El Huracan es de
III.CUESTIONARIO FINAL categoria',num2str(cat)];
disp(hur);
a. Los huracanes son categorizados con base a la mar= ['El aumento de la marejada
velocidad de los vientos. La siguiente tabla ciclonica esta de ',pies, ' pies por
encima del nivel del mar'];
muestra el número de categoría para los huracanes disp(mar)
con los rangos de variación del viento
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 b. El factor de enfriamiento del viento (WCF) mide
cat=2; que tan frio se siente con una
pies='6 a 8'; temperatura (T) de aire dada (en grados Fahrenheit) y
incorrect=0;
la velocidad del viento V (in millas por hora). Una
break;
elseif 110<x && x<=130 fórmula para WCF es:
cat=3; WCF = 35.7 + 0.6T − 35.7(V0.16) + 0.43T(V0.16)
pies='9 a 12';
incorrect=0; Escribe una función para recibir un vector
break; conteniendo distintas velocidades de viento
elseif 130<x && x<=155 como argumento de entrada y retornar el WCF para
cat=4; todas las distintas velocidades de
pies='13 a 18'; vientos, además que muestre un gráfico WCF vs V.
incorrect=0;
Considere T como la temperatura
break;
elseif 155<x ambiental.
cat=5;
Laboratorio 1 Sistemas de Control I
FIEE-UNMSM.Reyes, Villafuerte. Sistemas de Control I
Código en Matlab disp('Se considera la temperatura
ambiental a 80.33 Farenheit')
clear all; clc
WCF= 35.7+0.6*T-
T= 80.33; %Se tomara el valor fijo de 35.7*(V.^0.16)+0.43*T*(V.^0.16); %%Se
la Temperatura Ambiente% procede a hallar el factor de
p=1; error=1; %Valores predeterminados enfriamiento del viento
que nos permitira funcionar las WCF
iteraciones%
disp('Bienvenido') plot(V,WCF)
while p==1; %%El valor p grid on
predeterminado es 1, cuando el usuario xlabel('Velocidad del viento');
no desee ylabel('Factor de Enfriamiento del
%%agregar un nuevo Viento');
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
columna debido a un error que provocaba BIBLIOGRAFIA
%%que el ultimo registro se Documentación de Matlab
agregue nuevamente al inicio del (https://es.mathworks.com/help/matlab/)
%%vector
https://es.mathworks.com/help/matlab/ref/colon.html
V = sort(V) %%Se ordena los valores del
https://es.mathworks.com/help/matlab/ref/input.html
vector V en forma ascendente, para
facilitar su grafica

Laboratorio 1 Sistemas de Control I


FIEE-UNMSM. Reyes, Villafuerte. Sistemas de Control I
https://la.mathworks.com/help/matlab/math/removing-
rows-or-columns-from-a-matrix.html
https://es.mathworks.com/help/matlab/math/creating-
and-concatenating-matrices.html

Laboratorio 1 Sistemas de Control I

También podría gustarte