Vous êtes sur la page 1sur 20

II sem

2016
Introducción a la Teoría de
Control: Guías de Laboratorio

Profesor Jean-François Duhé


Universidad Tecnológica de Panamá
II sem 2016
Contenido
Experiencia nº1: Uso de MATLAB para manejo de sistemas de ecuaciones lineales y matrices
................................................................................................................................................... 2
Experiencia nº2: Uso de MATLAB para análisis de números complejos ................................... 7
Experiencia nº3: Uso de MATLAB para creación de gráficas .................................................. 11
Experiencia nº4: La Transformada de Laplace ........................................................................ 14
Experiencia nº5: La Función de Transferencia ........................................................................ 20
Experiencia nº6: Modelado de Sistemas Mecánicos y Eléctricos ........................................... 26
Experiencia nº7: Característica dinámica de un sensor de temperatura................................ 31
Experiencia nº8: Respuesta en el Tiempo ............................................................................... 35
Experiencia nº9: Diagramas de Bloque ................................................................................... 42
Experiencia nº10: Errores de estado estacionario .................................................................. 51
Experiencia nº1: Uso de MATLAB para manejo de sistemas de
ecuaciones lineales y matrices

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:

La matriz que se encuentra a la izquierda recibe el nombre de matriz de coeficientes; mientras


que la se encuentra más a la derecha es la matriz de términos libres o independientes. La que
contiene todas las incógnitas que queremos saber se denomina matriz de incógnitas. Podemos
entonces, de manera compacta, expresar la ecuación anterior como:

𝑨𝒙 = 𝒃
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

 Deseamos escribir la siguiente matriz en MATLAB:

2 5 −3
𝐴= [ ]
3 4 0
En Matlab, esta matriz se escribiría de la siguiente forma:

>> A=[2 5 -3;3 4 0]

A=

2 5 -3
3 4 0

 Supongamos que tenemos las siguientes dos matrices:

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:

>> B=[2 3;-4 5];


>> C=[1 0;-2 -3];
>> 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

 Ahora bien, también deseamos obtener las matrices inversas de B y de C:

>> inv(B)

ans =

0.2273 -0.1364
0.1818 0.0909

>> inv(C)

ans =

1.0000 0
-0.6667 -0.3333

 Podemos buscar el determinante de la matriz C:

>> 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

Con esta notación, podemos escribir nuestro código y resolver el sistema:

>> A=[2 -1 1;1 2 3;3 0 -1]

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

 Obténgase para cada una de las matrices A,B,C,D y F lo requerido:

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

a) Impresión de cada una de las matrices


b) Transpuesta de cada matriz
c) Determinante de cada matriz
d) A+B; B+C; C+D; A+D
e) A*B; B*D; C*A

 Resuelva los siguientes sistemas de ecuaciones:

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:

Una herramienta de uso muy común en la ingeniería, en particular en diversas ramas


relacionadas con electricidad (dentro de las cuales figura el control) son los números complejos.
Estos números se caracterizan por tener tanto una parte real como una imaginaria. El concepto
del número imaginario surge con el tema de encontrarle una raíz cuadrada a números negativos:

√−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.

(𝑎 + 𝑏𝑖) + (𝑐 + 𝑑𝑖) = (𝑎 + 𝑐) + 𝑗(𝑏 + 𝑑)


(𝑎 + 𝑏𝑖) − (𝑐 + 𝑑𝑖) = (𝑎 − 𝑐) + 𝑗(𝑏 − 𝑑)

Para la multiplicación se hace uso de la propiedad distributiva:

(𝑎 + 𝑏𝑖) ∗ (𝑐 + 𝑑𝑖) = 𝑎𝑐 + 𝑎𝑑𝑖 + 𝑏𝑐𝑖 + 𝑏𝑑𝑖 2 = (𝑎𝑐 − 𝑏𝑑) + (𝑎𝑑 + 𝑏𝑐)𝑖


Otro concepto importante es el conjugado complejo:

𝐶 = 𝑎 + 𝑏𝑖
𝐶 ∗ = 𝑎 − 𝑏𝑖
Haciendo uso del concepto del conjugado complejo podemos entonces efectuar la división de
dos números complejos:

Además de estas operaciones, también cabe mencionar lo que conocemos como


“representación polar” de los 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

Otra forma de lograr esto sería utilizar el comando “complex”:

>> 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

Si deseamos, podemos obtener la magnitud y argumento de este número debemos extraer la


parte real e imaginaria del mismo. Posterior a eso, se emplea el comando cart2pol para pasar a
polar el número:

>> z= 2+3i;

>> r=real(z);

>> i=imag(z);

>> [th,r]=cart2pol(r,i)

th =

0.9828

r=

3.6056

Si queremos realizar el procedimiento inverso:

>> 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:

- Refuerzo de conceptos generales de funciones.


- Utilización de MATLAB para la creación de múltiples gráficas, tanto
bidimensionales como tridimensionales.

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:

𝑦 = 𝑓(𝑥)

Esto significa que la variable “y” depende de la variable “x”.

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

Digamos que deseamos obtener la gráfica de la siguiente función en MATLAB:

𝑓(𝑥) = sin(2𝑥) + cos(3𝑥)


Para la variable independiente, crearemos un vector con múltiples datos. En este caso
colocaremos los límites de x entre 0 y 2π. Además, haremos que cada valor esté a una distancia
de 0.01 del otro.
>> x=0:0.01:2*pi;

>> 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:

>> title('Distancia vs Tiempo')

>> ylabel('Distancia (m)')

>> xlabel('Tiempo (s)')

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

Si deseamos observar gráficamente la relación de estas variables, será necesario el uso de un


gráfico tridimensional. Lo que se obtendrá en lugar de una línea curva o recta será una superficie
en este caso.

>> [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π.

𝑓1 (𝑥) = 𝑠𝑖𝑛𝑥 Azul


𝑓2 (𝑥) = 𝑐𝑜𝑠𝑥 Verde
𝑓3 (𝑥) = 𝑒 −0.5𝑥 Rojo
3
𝑓4 (𝑥) = √𝑥 Negro

 Grafique las cuatro funciones previas utilizando el comando subplot. Se desea que las
gráficas aparezcan en un arreglo 2x2.

 Obtenga las dos gráficas tridimensionales para los siguientes casos:

𝑦=𝑥
𝑧 = 𝑥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

De la misma manera, es posible definir la transformada inversa de Laplace, la cual toma


expresiones en el dominio de Laplace y las devuelve al del tiempo:

1 𝜎+𝑗𝑤
𝐿−1 [𝐹(𝑠)] = ∫ 𝐹(𝑠)𝑒 𝑠𝑡 𝑑𝑠 = 𝑓(𝑡)𝑢(𝑡)
2𝜋𝑗 𝜎−𝑗𝑤

Donde U(t) es la función de escalón unitario o función de Heaviside.

Naturalmente, a partir de estas definiciones formales se pueden obtener ciertos importantes


teoremas relacionados con la transformada. Algunos de los más importantes son:

 Primer Teorema de traslación

𝐿[𝑒 −𝑎𝑡 ∗ 𝑓(𝑡)] = 𝐹(𝑠 + 𝑎)


 Segundo Teorema de traslación
𝐿[𝑓(𝑡 − 𝑇)] = 𝑒 −𝑠𝑇 𝐹(𝑠)

 Transformada de una derivada

𝑛
𝑑𝑛 𝑓
𝐿 [ 𝑛 ] = 𝑠 𝑛 𝐹(𝑠) − ∑ 𝑠 𝑛−𝑘 𝑓 𝑘−1 (0−)
𝑑𝑡
𝑘=1

 Transformada de una integral

𝑡
𝐹(𝑠)
𝐿 [∫ 𝑓(𝑡)𝑑𝑡] =
0− 𝑠

Ejemplos

Supongamos que tenemos la siguiente función:

𝑓1 (𝑡) = −1.25𝑒 −2𝑡

Deseamos conocer la transformada de Laplace de dicha función.

El código de MATLAB en este caso sería:

>> 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)

Queremos obtener la transformada inversa de Laplace:

>> 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:

ℎ(𝑡) = −3𝑒 −3𝑡 𝑐𝑜𝑠𝑡


Y deseamos obtener la transformada de Laplace de la derivada de esta 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

También podemos obtener la transformada de Laplace de la integral de esta función:

>> 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𝑌(𝑠)

Asistidos con MATLAB, buscamos la transformada de Laplace del miembro derecho:

>> 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) \

heaviside(t - pi) | -------- + ------ |

\ 3 3 /
Asignación

 Obtenga, tanto por tablas como por MATLAB, las transformadas de Laplace de las
siguientes funciones:

𝑓(𝑡) = 𝑡𝑒 −5𝑡

𝑓(𝑡) = 𝑒 −2𝑡 𝑐𝑜𝑠𝑡

𝑐𝑜𝑠ℎ𝑡
𝑓(𝑡) =
𝑒𝑡

𝑓(𝑡) = (1 + 𝑒 2𝑡 )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)

 Resuelva con ayuda de MATLAB, las siguientes ecuaciones diferenciales asumiendo


condiciones iniciales nulas:

𝑦 ′′ + 5𝑦 ′ + 4𝑦 = 0

𝑦 ′′ − 2𝑦 ′ = 𝑒 𝑡 𝑠𝑖𝑛ℎ𝑡

𝑦 ′′ − 2𝑦 ′ + 𝑦 = 𝑡𝑒 𝑡 𝑠𝑖𝑛𝑡

𝑦 ′′ − 4𝑦 ′ + 4𝑦 = 𝑡𝑠𝑖𝑛2𝑡

Vous aimerez peut-être aussi