Академический Документы
Профессиональный Документы
Культура Документы
2016
Introducción a la Teoría de
Control: Guías de Laboratorio
Objetivos:
a) Familiarizarse en el entorno de MATLAB como herramienta de asistencia para cálculos
matemáticos.
b) Reforzar conceptos de sistemas de ecuaciones lineales y de matrices.
c) Resolver ejercicios matemáticos con mayor rapidez gracias al uso de MATLAB
Marco Teórico:
Uno de los tipos de ecuaciones que más comúnmente se emplean son las ecuaciones de tipo
lineal. La forma matemática de las mismas corresponde a la de un polinomio de primer grado.
Esto significa que las incógnitas no se encuentran ni elevadas a potencias, ni multiplicadas o
divididas entre sí. Cuando se tienen múltiples variables y también múltiples ecuaciones lineales,
podemos decir que estamos tratando con un sistema de ecuaciones lineales. Una ecuación de
tipo lineal que tiene dos incógnitas será vista en un plano como una línea recta. Cualquiera de
los puntos infinitos que están sobre esa recta podrá satisfacer la ecuación. Sin embargo, si
tenemos otra ecuación más que también tiene las dos mismas incógnitas, entonces sobre el
plano existirán dos líneas rectas. El punto en que se intersecten ambas rectas será la única
solución posible que satisfaga simultáneamente ambas ecuaciones. Podemos extender este
concepto a 3 incógnitas en un espacio tridimensional y, de manera meramente matemática,
también trabajar con 4, 5 o más incógnitas inclusive. De manera generalizada, un sistema de
ecuaciones se puede representar como:
Una manera cómoda de agrupar todos estos coeficientes es emplear la notación matricial:
𝑨𝒙 = 𝒃
Para casos pequeños, puede ser factible la idea de resolver estos sistemas a mano; no obstante,
a medida que se van tornando más grandes cada vez es más difícil y largo este proceso. Se
estudiará cómo se emplean y se opera con matrices en MATLAB para posteriormente aplicar el
concepto a la resolución de sistemas de ecuaciones lineales.
Ejemplos
2 5 −3
𝐴= [ ]
3 4 0
En Matlab, esta matriz se escribiría de la siguiente forma:
A=
2 5 -3
3 4 0
2 3 1 0
𝐵=( ) 𝑦𝐶 =( )
−4 5 −2 −3
Supongamos que queremos obtener tanto la suma de las dos matrices B+C, como el
producto matricial B*C:
ans =
3 3
-6 2
>> B*C
ans =
-4 -9
-14 -15
Para las matrices mostradas anteriormente, digamos que deseamos conocer la matriz
transpuesta de cada una de ellas:
>> B'
ans =
2 -4
3 5
>> C'
ans =
1 -2
0 -3
>> inv(B)
ans =
0.2273 -0.1364
0.1818 0.0909
>> inv(C)
ans =
1.0000 0
-0.6667 -0.3333
>> det(C)
ans =
-3
Ahora bien, resolvamos el siguiente sistema de ecuaciones lineales:
2𝑥1 − 𝑥2 + 𝑥3 = 8
𝑥1 + 2𝑥2 + 3𝑥3 = 9
3𝑥1 − 𝑥3 = 3
Lo primero que debemos hacer es llevar este sistema a notación matricial:
2 −1 1 𝑥1 8
(1 2 3 ) (𝑥2 ) = (9)
3 0 −1 𝑥3 3
A=
2 -1 1
1 2 3
3 0 -1
>> b=[8;9;3]
b=
8
9
3
>> x=A\b
x=
2.0000
-1.0000
3.0000
Asignación
10 −4 2 1 0 0 1 1 2 2 2 2
𝐴 = (−13 5 12) ; 𝐵 = (0 1 0) ; 𝐶 = (4 −3 0) ; 𝐷 = (3 3 4)
0 12 7 0 0 1 5 3 0 3 4 4
3𝑥 + 2𝑦 + 𝑧 = 1
5𝑥 + 3𝑦 + 4𝑧 = 2
𝑥+𝑦−𝑧 =1
2𝑥 − 𝑦 + 2𝑧 = 6
3𝑥 + 2𝑦 − 𝑧 = 4
4𝑥 + 3𝑦 − 3𝑧 = 1
Experiencia nº2: Uso de MATLAB para análisis de números
complejos
Objetivos:
a) Familiarizarse en el entorno de MATLAB como herramienta de asistencia para cálculos
matemáticos.
b) Reforzar conceptos de números complejos
c) Resolver ejercicios matemáticos con mayor rapidez gracias al uso de MATLAB
Marco Teórico:
√−1 = 𝑖
De manera general podemos expresar un número imaginario como:
𝑎 + 𝑏𝑖
Esta forma de expresar un número complejo recibe el nombre de “forma rectangular”. Pueden
ser representados gráficamente en un sistema de ejes coordenados, donde uno de ellos será el
eje real y el otro el imaginario.
Para sumar o restar dos números complejos, sumamos o restamos las partes reales y las
imaginarias por separado.
𝐶 = 𝑎 + 𝑏𝑖
𝐶 ∗ = 𝑎 − 𝑏𝑖
Haciendo uso del concepto del conjugado complejo podemos entonces efectuar la división de
dos números complejos:
Describimos el número complejo empleando la magnitud “r” y el ángulo que se crea con el eje
real. Este ángulo recibe el nombre de “argumento” del número complejo Z, mientras que “r”
es la magnitud del número Z.
Ejemplos
Con MATLAB, existen varias formas de escribir números complejos. Supongamos que queremos
escribir el número 2 + 3i y nombrarlo como “z”:
>> z= 2+ 3i
z=
2.0000 + 3.0000i
>> complex(2,3)
ans =
2.0000 + 3.0000i
Podemos obtener también el conjugado complejo de este número:
>> conj(z)
ans =
2.0000 - 3.0000i
>> z= 2+3i;
>> r=real(z);
>> i=imag(z);
>> [th,r]=cart2pol(r,i)
th =
0.9828
r=
3.6056
>> r=3.6056;
>> th=0.9828;
>> [x,y]=pol2cart(th,r)
x=
2.0000
y=
3.0001
Obsérvese que el ángulo que nos da el programa está en radianes. Para efectuar operaciones
con números complejos, solamente se declaran los números que se trabajan y se emplean los
mismos operadores aritméticos comunes.
Asignación
Obtenga para cada uno de los siguientes números complejos su argumento, su magnitud
y su conjugado complejo. Escriba cada uno de los números en notación polar.
𝑎 = 1 + 2𝑖
𝑏 = 3 + 4𝑖
𝑐 = 5 − 7𝑖
𝑑 = 4 − 2𝑖
Efectúe las siguientes operaciones empleando los números complejos del punto anterior.
Exprese cada respuesta tanto en notación rectangular como en polar.
𝑎+𝑏+𝑐−𝑑
1
(𝑎 ∗ 𝑐 ∗ ) +
𝑐
𝑏 𝑎
+
𝑑 𝑏
1
(𝑎∗ + 𝑐) ∗ 𝑑 ∗
𝑏∗
𝑎
(𝑏 ∗ 𝑏 ∗ ) + + (𝑐 ∗ 𝑑)
𝑐
Experiencia nº3: Uso de MATLAB para creación de gráficas
Objetivos:
Marco Teórico:
El concepto de función permite relacionar conjuntos de números entre sí. A su vez, en ingeniería,
las funciones se emplean para estudiar la relación que puede existir entre diversas variables.
Uno de los tipos más sencillos de funciones que existen son aquellas que dependen de una única
variable. En este caso, existe una variable dependiente y una independiente. De manera general
pudiéramos escribir lo siguiente:
𝑦 = 𝑓(𝑥)
También pueden existir funciones de múltiples variables. En estos casos la variable y no depende
de una única variable x, sino que puede depender de múltiples factores diversos.
ℎ = 𝑓(𝑠, 𝑇, 𝑃, 𝑣)
En este caso, la variable dependiente “h” depende de “s”, “T”, “P” y “v”.
Para el caso de funciones de una sola variable, es común el uso de gráficas. En un sistema de
ejes (que puede ser cartesiano, aunque no es la única opción) se representan ambas variables.
Para cada valor de la variable independiente, existe un valor correspondiente de la dependiente.
La gráfica es el conjunto de todos estos puntos.
Otro caso común en ingeniería es cuando una variable es función de otras dos. En este caso se
pueden emplear gráficos tridimensionales para observar la relación entre dichas variables.
Ejemplo
>> f=sin(2*x)+cos(3*x);
>> plot(x,f)
Si bien este código nos arroja el gráfico, carece de título, tanto de la gráfica como de los ejes.
Supongamos que la gráfica que tenemos es una gráfica de posición vs tiempo. El eje y representa
alguna distancia en metros, mientras que el x el tiempo en segundos. Entonces, para colocar
estas etiquetas en el gráfico, adicionamos al código previo las siguientes líneas:
Ahora supongamos que deseamos graficar estas dos funciones en un mismo plano para
compararlas entre sí:
𝑓1 (𝑥) = 𝑒 −𝑥
𝑓2 (𝑥) = √𝑥
A su vez, deseamos que la primera función aparezca en azul y la segunda en color verde.
>> x=0:0.01:5;
>> f1=exp(-x);
>> f2=sqrt(x);
>> plot(x,f1,'blue',x,f2,'green')
Para distinguir cada gráfica, podemos agregar una leyenda colocando esta línea adicional de
código:
>> legend('ensayo1','ensayo2')
Puede darse el caso de que no queramos que ambas funciones aparezcan en un mismo plano,
sino que cada una aparezca en su plano por separado. Para ese caso empleamos el comando
“subplot”:
>> subplot(1,2,1)
>> plot(x,f1)
>> subplot(1,2,2)
>> plot(x,f2)
La herramienta subplot(a,b,c) divide la pantalla donde se proyectan las gráficas en un arreglo de
“a” filas y “b” columnas donde la gráfica que deseamos colocar aparecerá en la posición “c”.
Digamos que ahora vamos a estudiar un caso con 3 variables. Las relaciones entre estas variables
son como sigue:
𝑦=𝑥
𝑧 = 𝑥2 + 𝑦2
>> [x,y]=meshgrid([-10:0.1:10]);
>> surf(x,y,z);
>> z=(x.^2)+(y.^2);
>> surf(x,y,z);
Asignación
Cada una de las siguientes gráficas representa una función de temperatura en grados
Celsius versus el tiempo en segundos. Grafique las cuatro gráficas en un mismo plano,
utilizando leyendas para diferenciar cada función. Grafique desde 0 hasta 2π.
Grafique las cuatro funciones previas utilizando el comando subplot. Se desea que las
gráficas aparezcan en un arreglo 2x2.
𝑦=𝑥
𝑧 = 𝑥2 + 𝑦
𝑦=𝑥
𝑧 = 𝑥 + 𝑦2
Experiencia nº4: La Transformada de Laplace
Objetivos:
- Reforzar los conceptos relacionados con la transformada de Laplace y la transformada
inversa.
- Implementar códigos de MATLAB para expandir expresiones en fracciones parciales
- Implementar códigos de MATLAB para obtener transformadas de Laplace y
transformadas inversas de Laplace.
Marco Teórico:
A medida que se hacen estudios de diversos sistemas dinámicos, se presenta una dificultad en
el manejo matemático de los mismos. Esto se da debido a la aparición de múltiples ecuaciones
diferenciales. Ante la inmensa laboriosidad de los cálculos que se deben realizar para poder
estudiar sistemas en el dominio del tiempo t, se opta por buscar una alternativa. Esa alternativa
es lo que conocemos como la Transformada de Laplace, la cual se encarga de transformar
expresiones que se encuentran en el dominio del tiempo a lo que llamamos dominio de Laplace.
En este dominio, la variable que se emplea es s, la cual se define formalmente como un número
complejo:
𝑠 = 𝜎 + 𝑗𝑤
La transformada de Laplace de una función del tiempo se define como:
∞
𝐿[𝑓(𝑡)] = 𝐹(𝑠) = ∫ 𝑓(𝑡)𝑒 −𝑠𝑡 𝑑𝑡
0
1 𝜎+𝑗𝑤
𝐿−1 [𝐹(𝑠)] = ∫ 𝐹(𝑠)𝑒 𝑠𝑡 𝑑𝑠 = 𝑓(𝑡)𝑢(𝑡)
2𝜋𝑗 𝜎−𝑗𝑤
𝑛
𝑑𝑛 𝑓
𝐿 [ 𝑛 ] = 𝑠 𝑛 𝐹(𝑠) − ∑ 𝑠 𝑛−𝑘 𝑓 𝑘−1 (0−)
𝑑𝑡
𝑘=1
𝑡
𝐹(𝑠)
𝐿 [∫ 𝑓(𝑡)𝑑𝑡] =
0− 𝑠
Ejemplos
>> syms s t
>> f1=-1.25*exp(-2*t);
>> laplace(f1,t,s)
ans =
-5/(4*(s + 2))
>> pretty(ans)
- ---------
4 (s + 2)
Ahora, digamos que tenemos una función de tipo escalón unitario como la que sigue:
𝑓2 (𝑡) = 10𝑢(𝑡 − 3)
En MATLAB, esta función se conoce como “heaviside” y ese es el comando que se utilizar para
declararla.
>> f2=10*heaviside(t-3);
>> laplace(f2,t,s)
ans =
(10*exp(-3*s))/s
>> pretty(ans)
10 exp(-3 s)
------------
Ahora bien, también es posible obtener transformadas inversas de Laplace. Digamos que
tenemos la siguiente expresión:
(𝑠 2 + 3𝑠 + 10)(𝑠 + 5)
𝐺(𝑠) =
(𝑠 + 3)(𝑠 + 4)(𝑠 2 + 2𝑠 + 100)
>> G=(s^2+3*s+10)*(s+5)/[(s+3)*(s+4)*(s^2+2*s+100)];
>> g1=ilaplace(G);
>> pretty(g1)
Con MATLAB también podemos calcular las transformadas de Laplace de derivadas o integrales
de funciones. Sin embargo, para el caso de derivadas, este cálculo no contemplará las
condiciones iniciales, las cuales deberán ser adicionadas posteriormente. Sin embargo, en
muchos casos de teoría de control clásica, una asunción común es que los sistemas tienen
condiciones iniciales iguales a cero, por lo cual no es una mala consideración obviarlas.
Supongamos que tenemos la siguiente función:
>> h=-3*exp(-3*t)*cos(t);
>> derivh=diff(h,t)
derivh =
9*exp(-3*t)*cos(t) + 3*exp(-3*t)*sin(t)
>> H2=laplace(derivh);
>> pretty(H2)
9 (s + 3) 3
------------ + ------------
2 2
(s + 3) + 1 (s + 3) + 1
>> inth=int(h,t);
>> H3=laplace(inth);
>> pretty(H3)
9 (s + 3) 3
----------------- - -----------------
2 2
10 ((s + 3) + 1) 10 ((s + 3) + 1)
Digamos ahora que queremos asistirnos con MATLAB para resolver en dominio del tiempo la
siguiente ecuación diferencial (con condiciones iniciales nulas):
𝑑2 𝑦
+ 4𝑦 = 𝑐𝑜𝑠𝑡 ∗ 𝑈(𝑡 − 𝜋)
𝑑𝑡 2
Con el teorema de la derivada, sabemos que el miembro izquierdo de la ecuación quedará como:
𝑠 2 𝑌(𝑠) + 4𝑌(𝑠)
>> K=cos(t)*heaviside(t-pi);
>> laplace(K,t,s)
ans =
-(s*exp(-pi*s))/(s^2 + 1)
>> pretty(ans)
s exp(-pi s)
- ------------
s +1
Entonces:
𝑠𝑒 −𝜋𝑠
(𝑠 2 + 4)𝑌(𝑠) = −
𝑠2 + 1
𝑠𝑒 −𝜋𝑠
𝑌(𝑠) = −
(𝑠 2 + 1) ∗ (𝑠 2 + 4)
Buscamos y(t):
>> Y=-s*exp(-pi*s)/[(s^2+1)*(s^2+4)];
>> yt=ilaplace(Y);
>> pretty(yt)
/ cos(2 t) cos(t) \
\ 3 3 /
Asignación
Obtenga, tanto por tablas como por MATLAB, las transformadas de Laplace de las
siguientes funciones:
𝑓(𝑡) = 𝑡𝑒 −5𝑡
𝑐𝑜𝑠ℎ𝑡
𝑓(𝑡) =
𝑒𝑡
𝑓(𝑡) = (1 + 𝑒 2𝑡 )2
Obtenga, tanto por tablas como por MATLAB, las transformadas inversas de Laplace de
las siguientes funciones:
1
𝐹(𝑠) =
(𝑠 − 4)4
2𝑠 − 1
𝐹(𝑠) =
𝑠 2 (𝑠+ 1)2
𝑒 −2𝑠
𝐹(𝑠) =
𝑠 2 (𝑠 − 1)
1
𝐹(𝑠) =
(𝑠 − 1)(𝑠 + 4)
4
𝐹(𝑠) =
(𝑠 + 4)(𝑠 + 5)(𝑠 + 10)
𝑦 ′′ + 5𝑦 ′ + 4𝑦 = 0
𝑦 ′′ − 2𝑦 ′ = 𝑒 𝑡 𝑠𝑖𝑛ℎ𝑡
𝑦 ′′ − 2𝑦 ′ + 𝑦 = 𝑡𝑒 𝑡 𝑠𝑖𝑛𝑡
𝑦 ′′ − 4𝑦 ′ + 4𝑦 = 𝑡𝑠𝑖𝑛2𝑡