Lab4 CO Morán Samamé Jorge Aarón

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 24

U N I V E R S I D A D DE P I U R A

FACULTAD DE INGENIERÍA

Programa Académico de Ingeniería Mecánico - Eléctrica

Informe de Laboratorio

Curso: Control Industrial (CO)

Profesor: Dr. Ing. Willian Ipanaque

Alumno: Jorge Aarón Morán Samamé

Jefe de Laboratorio: Ing. Jorge Manrique Silupu

Tema: Model Predictive Control (MPC) .

Piura 26 de octubre del 2021.


TRABAJO PARA REALIZAR

1) Seleccione la función de transferencia de un proceso, encontrar los


polinomios A, B, C y retardo.

Función de transferencia:
𝑠+5
𝐹(𝑠) =
𝑠2 + 6𝑠 + 10

Respuesta a señal ecalon.

Para la discretización he utilizado la función c2d de Matlab, para obtener una función
más aceptable. Como se muestra en la siguiente imagen.
0.1453𝑧 − 0.0647 𝑦(𝑘)
𝐹(𝑧) = =
𝑧 2 − 1.222𝑧 + 0.3829 𝑢(𝑘)

(𝑧 2 − 1.222𝑧 + 0.3829) ∗ 𝑦(𝑘) = (0.1453𝑧 − 0.0647) ∗ 𝑢(𝑘)


Multiplicamos por 𝑧 −2 , toda la ecuación:

(1 − 1.222𝑧 −1 + 0.3829𝑧 −2 ) ∗ 𝑦(𝑘) = (0.1453𝑧 −1 − 0.0647𝑧 −2 ) ∗ 𝑢(𝑘)


(1 − 1.222𝑧 −1 + 0.3829𝑧 −2 ) ∗ 𝑦(𝑘) = (0.1453 − 0.0647𝑧 −1 )𝑧 −1 ∗ 𝑢(𝑘)
(1 − 1.222𝑧 −1 + 0.3829𝑧 −2 ) ∗ 𝑦(𝑘) = (0.1453 − 0.0647𝑧 −1 )𝑢(𝑘 − 1)

Quedando mis polinomios:

𝐴 = (1 − 1.222𝑧 −1 + 0.3829𝑧 −2 )
𝐵 = (0.1453 − 0.0647𝑧 −1 )
𝐶=1
𝑅𝑒𝑡𝑎𝑟𝑑𝑜 = 0
∆𝐴 = (1 − 𝑧 ) ∗ (1 − 1.222𝑧 −1 + 0.3829𝑧 −2 )
−1

∆𝐴 = 1 − 2.222𝑧 −1 + 1.605𝑧 −2 − 0.3829𝑧 −3

2) Diseñe 3 controladores GPC de un proceso real con N2=3; N2=5; N2=7. Para
caso

a) Calcular y mostrar las operaciones de los polinomios E, F, G y G’.

Realizamos el método de la división:

1 |1 − 2.222𝑧 −1 + 1.605𝑧 −2 − 0.3829𝑧 −3


−1 + 2.222𝑧 −1 − 1.605𝑧 −2 + 0.3829𝑧 −3
2.222𝑧 −1 − 1.605𝑧 −2 + 0.3829𝑧 −3
−2.222𝑧 −1 + 4.937𝑧 −2 − 3.5663𝑧 −3 + 0.85𝑧 −4
3.332𝑧 −2 − 3.1834𝑧 −3 + 0.85𝑧 −4
−3.332𝑧 −2 + 7.404𝑧 −3 − 5.348𝑧 −4 + 1.276𝑧 −5
4.22𝑧 −3 − 4.498𝑧 −4 + 1.276𝑧 −5
−4.22𝑧 −3 + 9.377𝑧 −4 − 6.773𝑧 −5 + 1.616𝑧 −6
4.879𝑧 −4 − 5.497𝑧 −5 + 1.616𝑧 −6
−4.879𝑧 −4 + 10.841𝑧 −5 − 7.837𝑧 −6 + 1.868𝑧 −7
5.344𝑧 −5 − 6. 214𝑧 −6 + 1.868𝑧 −7
−5.344𝑧 −5 + 11.874𝑧 −6 − 8.577𝑧 −7 + 2.046𝑧 −8
5.66𝑧 −6 − 6.709𝑧 −7 + 2.046𝑧 −8
−5.66𝑧 −6 + 12.576𝑧 −7 − 9.084𝑧 −8 + 2.167𝑧 −9
5.867𝑧 −7 − 7.038𝑧 −8 + 2.167𝑧 −9

Dando como cociente:


1 + 2.222𝑧 −1 + 3.332𝑧 −2 + 4.222𝑧 −3 + 4.879𝑧 −4 + 5.344𝑧 −5 + 5.66𝑧 −6
➢ Para N2=3:
Polinomio E
𝐸1 = 1
𝐸2 = 1 + 2.222𝑧−1
𝐸3 = 1 + 2.222𝑧−1 + 3.332𝑧−2

Polinomio F
𝐹1 = 𝑧−1 (2.222 − 1.605𝑧−1 + 0.3829𝑧−2 )
𝐹2 = 𝑧−2 (3.332 − 3.1834𝑧−1 + 0.85𝑧−2 )
𝐹3 = 𝑧−3 (4.22 − 4.498𝑧−1 + 1.276𝑧−2 )

Polinomio G
𝐺 (𝑧−1 ) = 𝐸(𝑧−1 ) ∗ 𝐵(𝑧−1 )

𝐺1 = (1)(0.1453 − 0.0647𝑧−1 ) = 0.1453 − 0.0647𝑧−1


𝐺2 = (1 + 2.222𝑧−1 )(0.1453 − 0.0647𝑧−1 ) = 0.1453 + 0.2559𝑧−1 − 0.1488𝑧−2
𝐺3 = (1 + 2.222𝑧−1 + 3.332𝑧−2 )(0.1453 − 0.0647𝑧−1 )
= 0.1453 + 0.2559𝑧−1 + 0.3353𝑧−2 − 0.2232𝑧−3

0.1453 0 0
𝐺 = [0.2559 0.1453 0 ]
0.3353 0.2559 0.1453
G’
−0.0647
𝐺′ = [−0.1488]
−0.2232

➢ Para N2=5:
Polinomio E
𝐸1 = 1
𝐸2 = 1 + 2.222𝑧−1
𝐸3 = 1 + 2.222𝑧−1 + 3.332𝑧−2
𝐸4 = 1 + 2.222𝑧−1 + 3.332𝑧−2 + 4.222𝑧−3
𝐸5 = 1 + 2.222𝑧−1 + 3.332𝑧−2 + 4.222𝑧−3 + 4.879𝑧−4

Polinomio F
𝐹1 = 𝑧−1 (2.222 − 1.605𝑧−1 + 0.3829𝑧−2 )
𝐹2 = 𝑧−2 (3.332 − 3.1834𝑧−1 + 0.85𝑧−2 )
𝐹3 = 𝑧−3 (4.22 − 4.498𝑧−1 + 1.276𝑧−2 )
𝐹4 = 𝑧−4 (4.879 − 5.497𝑧−1 + 1.616𝑧−2 )
𝐹5 = 𝑧−5 (5.344 − 6.214𝑧−1 + 1.868𝑧−2 )

Polinomio G
𝐺 (𝑧−1 ) = 𝐸(𝑧−1 ) ∗ 𝐵(𝑧−1 )

𝐺1 = (1)(0.1453 − 0.0647𝑧−1 ) = 0.1453 − 0.0647𝑧−1


𝐺2 = (1 + 2.222𝑧−1 )(0.1453 − 0.0647𝑧−1 ) = 0.1453 + 0.2559𝑧−1 − 0.1488𝑧−2
𝐺3 = (1 + 2.222𝑧−1 + 3.332𝑧−2 )(0.1453 − 0.0647𝑧−1 )
= 0.1453 + 0.2559𝑧−1 + 0.3353𝑧−2 − 0.2232𝑧−3
𝐺4 = (1 + 2.222𝑧−1 + 3.332𝑧−2 + 4.222𝑧−3 )(0.1453 − 0.0647𝑧−1 )
= 0.1453 + 0.2559𝑧−1 + 0.3353𝑧−2 + 0.3902𝑧−3 − 0.2829𝑧−4
𝐺5 = (1 + 2.222𝑧−1 + 3.332𝑧−2 + 4.222𝑧−3 + 4.879𝑧−4 )(0.1453 − 0.0647𝑧−1 )
= 0.1453 + 0.2559𝑧−1 + 0.3353𝑧−2 + 0.3902𝑧−3 + 0.4260𝑧−4
− 0.3269𝑧−5

0.1453 0 0 0 0
0.2559 0.1453 0 0 0
𝐺 = 0.3353 0.2559 0.1453 0 0
0.3902 0.3353 0.2559 0.1453 0
[0.4260 0.3902 0.3353 0.2559 0.1453]

−0.0647
−0.1488
𝐺 = −0.2232
−0.2829
[−0.3269]
➢ Para N2=7:
Polinomio E

𝐸1 = 1
𝐸2 = 1 + 2.222𝑧−1
𝐸3 = 1 + 2.222𝑧−1 + 3.332𝑧−2
𝐸4 = 1 + 2.222𝑧−1 − 3.332𝑧−2 + 4.222𝑧−3
𝐸5 = 1 + 2.222𝑧−1 − 3.332𝑧−2 + 4.222𝑧−3 + 4.879𝑧−4
𝐸6 = 1 + 2.222𝑧−1 − 3.332𝑧−2 + 4.222𝑧−3 + 4.879𝑧−4 + 5.344𝑧−5
𝐸7 = 1 + 2.222𝑧−1 − 3.332𝑧−2 + 4.222𝑧−3 + 4.879𝑧−4 + 5.344𝑧−5 + 5.66𝑧−6

Polinomio F
𝐹1 = 𝑧−1 (2.222 − 1.605𝑧−1 + 0.3829𝑧−2 )
𝐹2 = 𝑧−2 (3.332 − 3.1834𝑧−1 + 0.85𝑧−2 )
𝐹3 = 𝑧−3 (4.22 − 4.498𝑧−1 + 1.276𝑧−2 )
𝐹4 = 𝑧−4 (4.879 − 5.497𝑧−1 + 1.616𝑧−2 )
𝐹5 = 𝑧−5 (5.344 − 6.214𝑧−1 + 1.868𝑧−2 )
𝐹6 = 𝑧−6 (5.66 − 6.709𝑧−1 + 2.046𝑧−2 )
𝐹7 = 𝑧−7 (5.867 − 7.038𝑧−1 + 2.167𝑧−2 )

Polinomio G
𝐺 (𝑧−1 ) = 𝐸(𝑧−1 ) ∗ 𝐵(𝑧−1 )

𝐺1 = (1)(0.1453 − 0.0647𝑧−1 ) = 0.1453 − 0.0647𝑧−1


𝐺2 = (1 + 2.222𝑧−1 )(0.1453 − 0.0647𝑧−1 ) = 0.1453 − 0.2559𝑧−1 − 0.1488𝑧−2
𝐺3 = (1 + 2.222𝑧−1 − 3.332𝑧−2 )(0.1453 − 0.0647𝑧−1 )
= 0.1453 − 0.2559𝑧−1 − 0.3353𝑧−2 − 0.2232𝑧−3
𝐺4 = (1 + 2.222𝑧−1 + 3.332𝑧−2 + 4.222𝑧−3 )(0.1453 − 0.0647𝑧−1 )
= 0.1453 + 0.2559𝑧−1 + 0.3353𝑧−2 + 0.3353𝑧−3 − 0.2829𝑧−4
𝐺5 = (1 + 2.222𝑧−1 + 3.332𝑧−2 + 4.222𝑧−3 + 4.879𝑧−4 )(0.1453 − 0.0647𝑧−1 )
= 0.1453 + 0.2559𝑧−1 + 0.3353𝑧−2 + 0.3353𝑧−3 + 0.3902𝑧−4
− 0.3269𝑧−5
𝐺6 = (1 + 2.222𝑧−1 + 3.332𝑧−2 + 4.222𝑧−3 + 4.879𝑧−4 + +5.344𝑧−5 )(0.1453
− 0.0647𝑧−1 )
= 0.1453 + 0.2559𝑧−1 + 0.3353𝑧−2 + 0.3902𝑧−3 + 0.426𝑧−4
+ 0.4496𝑧−5 − 0.358𝑧−6
𝐺7 = (1 + 2.222𝑧−1 + 3.332𝑧−2 + 4.222𝑧−3 + 4.879𝑧−4 + 5.344𝑧−5
+ 5.66𝑧−6 )(0.1453 − 0.0647𝑧−1 )
= 0.1453 + 0.2559𝑧−1 + 0.3353𝑧−2 + 0.3902𝑧−3 + 0.426𝑧−4
+ 0.4496𝑧−5 + 0.4644𝑧−6 − 0.3792𝑧−7

0.1453 0 0 0 0 0 0
0.2559 0.1453 0 0 0 0 0
0.3353 0.2559 0.1453 0 0 0 0
𝐺 = 0.3902 0.3353 0.2559 0.1453 0 0 0
0.4260 0.3902 0.3353 0.2559 0.1453 0 0
0.449 0.426 0.3902 0.3353 0.2559 0.1453 0
[0.4644 0.449 0.426 0.3902 0.3353 0.2559 0.1453]

−0.0647
−0.1488
−0.2232
𝐺 = −0.2829
−0.3269
−0.358
[−0.3792]
b) Con ayuda de Matlab calcular las matrices Lambda, R, T y S. Explicar el
código.

➢ Para N2=3:
Para este código, utilizamos los valores antes calculados como A, B, C, F y G. Después
de eso utilizamos una matriz identidad del tamaño de Nu, pues es justo lo que
necesitamos para luego multiplicarlo por el lamba que primeramente es un escalar
para transformarlo en una matriz. Luego para hallar el u utilizamos la ecuación
explica en clase y los demás resultados las operaciones también las encontramos en
la guía del laboratorio.

➢ Para N2=5:

Para este código, utilizamos los valores antes calculados como A, B, C, F y G. Después
de eso utilizamos una matriz identidad del tamaño de Nu, pues es justo lo que
necesitamos para luego multiplicarlo por el lamba que primeramente es un escalar
para transformarlo en una matriz. Luego para hallar el u utilizamos la ecuación
explica en clase y los demás resultados las operaciones también las encontramos en
la guía del laboratorio.

➢ Para N2=7:

Para este código, utilizamos los valores antes calculados como A, B, C, F y G. Después
de eso utilizamos una matriz identidad del tamaño de Nu, pues es justo lo que
necesitamos para luego multiplicarlo por el lamba que primeramente es un escalar
para transformarlo en una matriz. Luego para hallar el u utilizamos la ecuación
explica en clase y los demás resultados las operaciones también las encontramos en
la guía del laboratorio.
c) Hacer las simulaciones en Simulink, tal como se ha enseñado en el
laboratorio con un setpoint creciente y decreciente.

➢ Para N2=3:

➢ Para N2=5:
➢ Para N2=7:
d) Nu=1.

Para todas las simulaciones anteriores vemos que los resultados son muy
parecidos, por que se puede decir que para este proceso no se necita de grandes
N, para poder buenos resultados.

3) Para el controlador GPC de la pregunta 2, realizar 3 diseños diferentes con


valores mayores y 2 valores menores del lambda inicial.

a) Mostrar las simulaciones

Para N2=3:
Lambda=10
Lambda=4
Lambda=0.05

Lambda=0.001
Como podemos observar al disminuir las lambdas, la respuesta es cada vez más rápida
mientras que para más altos la dinámica del proceso se suaviza.

Para N2=5:

Lambda=10

Lambda=4
Lambda=0.05
Lambda=0.001

Como podemos observar al disminuir las lambdas, la respuesta es cada vez más rápida
mientras que para más altos la dinámica del proceso se suaviza.
Para N2=7:

Lambda=10
Lambda=4
Lambda=0.05

Lambda=0.01
Como podemos observar al disminuir las lambdas, la respuesta es cada vez más rápida
mientras que para más altos la dinámica del proceso se suaviza.

Para Nu=1:

Lambda=10

Lambda=4
Lambda=0.04
Lambda=0.01

b) ¿Qué sucede cuando se aumenta el valor de lambda, y cuando se


disminuye?
Al aumentar el valor de lambda, vemos la respuesta se hace más lenta
mientras que cuando se simula valores de lambda más altos la velocidad de la
respuesta con respecto al set point se hace más rápida. Aunque cabe recalcar
que al dar cada vez un lambda menor estamos dándole al sistema un gasto de
entrada bastante alto, es decir no podemos dar un valor tan pequeños pues
en sentido físico estaremos dándoles entradas muy altas al sistemas dándole
un gasto muy alto al proceso.
4) Conclusiones

➢ Al aumentar el lambda en la función, la velocidad de respuesta del sistema


aumenta en gran medida, sin embargo si se sigue disminuyendo el
resultado no es tan grande por lo que se sugiere dar un lambda optimo.
➢ Sin embargo, cabe recalcar que al dar lambdas muy bajos, estamos
priorizando el set point a costo energético, pues eso es la representación
física del lambda.
➢ Al darler lambdas muy pequeños la dinámica del sistema se vuelve cada
ves mas lenta asiendo que las curvas del sistema sean cada vez más suaves.
➢ En nuestro caso al aumentar el Nu no cambia mucho la respuesta de la
salida, pero por teoría se sabe que el al aumentar el valor de Nu la
respuesta debe ser mejor pues tenemos mas valores con los cuales
podemos predecir los valore futuros.
➢ Pero si solo utilizamos 1 en el horizonte de predicción, si se nota la
diferencia pues el modelo se demora mucho en reaccionar para poder
alcanzar el set point rápidamente, también notamos que al darle valores
muy altos de lambdas se vuelve inestable.
➢ Al discretizar las funciones, se debe dar un buen tiempo de muestreo pues
si le damos un tiempo muy grande luego al realizar los polinomios de
predicción, los resultados no serán los más adecuados.

También podría gustarte