Cvxv
Optimización, Identificación y MPC
Gabriel Tejeda A.
Marzo 2010
Contenidos
1
Optimización Identificación MPC
2
3
Parte I Optimización
Optimización
Objetivo Aprender a ocupar las distintas herramientas que tiene Matlab para la optimización de sistemas Minimización no lineal con o sin restricciones. Programación lineal y cuadrática.Minimización por mínimos cuadrados y ajuste de curvas. Mínimos cuadrados con restricciones Problemas con matrices ralas y estructuradas, incluyendo programación lineal y no lineal con restricciones. Optimización multiobjetivo.
Optimización
Solvers: linprog
Problema m´ f T x ın s.a. Ax ≤ b Aeq x = beq lb ≤ x ≤ u b Modo de uso x = linprog(f,A,b,Aeq,beq,lb,ub,x0,options)
Optimización
Solvers:quadprog
Problema 1 m´ xT Hx + f T x ın 2 s.a. Ax ≤ b Aeq x = beq lb ≤ x ≤ u b Modo de uso x = quadprog(H,f,A,b,Aeq,beq,lb,ub,x0,options)
Optimización
Solvers: qpdantz (más eficiente!)
Problema 1 m´ xT Hx + f T x ın 2 s.a. Ax ≤ b x ≥ lb Modo de uso [xopt,lambda,how]=qpdantz(H,f,A,b,lb)
Optimización
Solvers: fmincon
Problema m´ f (x) ın s.a. c(x) ≤ 0 ceq (x) = 0 Ax ≤ b Aeq x = beq lb ≤x ≤ u b Modo de uso x = fmincon(@myfun,x0,A,b,Aeq,beq,lb,ub,@mycon) Considerando function [c,ceq] = mycon(x) c = ... % Desigualdad no lineal para x. ceq = ... % Igualdad no lineal para x.
Optimización
Solvers: lsqlin
Problema 1 m´ ın Cx − d 2
2 2
1 = m´ ın 2
m
n
2
cij xi − dj
j=1 i=1
s.a. Ax ≤ b Aeq x = beq lb ≤ x ≤ u b Modo de uso x =lsqlin(C,d,A,b,Aeq,beq,lb,ub,x0,options)
Optimización
Solvers: lsqnonlin
Problema
n
m´ f (x) ın
2 2
= m´ ın
i=1
(fi (x))2
Modo de uso x = lsqnonlin(fun,x0,lb,ub,options)
Optimización
Ejemplo 1
m´ (2x1 − 1)2 + (3x2 − 4)2 ın s.a. x1 + x2 ≤ 3 0 ≤ x1 ≤ 1 −1 ≤ x2 ≤ 1
Optimización
Ejemplo 1
m´ (2x1 − 1)2 + (3x2 − 4)2 ın s.a. x1 + x2 ≤ 3 0 ≤ x1 ≤ 1 −1 ≤ x2 ≤ 1 Mediante el siguiente código se llegaal óptimo en (0,5, 1) C=diag([2 3]); d=[1;4]; A=[1 1]; b=3; lb=[0;-1]; ub=[1;1]; x = lsqlin(C,d,A,b,[],[],lb,ub,[0;0]);
Optimización
Ejemplo 2
m´ (2 cos(x1 ) − 1)2 + (3 cos(x2 ) − 4)2 ın s.a. 0,5 ≤ x1 ≤ 1 −1 ≤ x2 ≤ 1
Optimización
Ejemplo 2
m´ (2 cos(x1 ) − 1)2 + (3 cos(x2 ) − 4)2 ın s.a. 0,5 ≤ x1 ≤ 1 −1 ≤ x2 ≤ 1 Primero se define la función function f=ej2(x) f(1)=2*cos(x(1))-1;f(2)=3*cos(x(2))-4; Luego se llama al optimizador mediante: x = lsqnonlin(’ej2’,[0;0],[0.5;-1],[1;1]);
Parte II Identificación
Identificación
Objetivo Aprender a ocupar las distintas herramientas que tiene Matlab para identificación de sistemas. Problema general Dado un conjunto de datos (x(t), u(t)) encontrar el modelo que mejor representa al sistema. AR: A(z)y(t) = e(t) ARX: A(z)y(t) =B(z)u(t − d) + e(t) ARMAX: A(z)y(t) = B(z)u(t) + C(z)e(t) Box-Jenkins: y(t) =
B(z) u(t F (z)
− d) +
C(z) e(t) D(z)
Identificación
Pasos para realizar una identificación:
1
Disponer de un conjunto de datos (y(t), u(t)).
Identificación
Pasos para realizar una identificación:
1 2
Disponer de un conjunto de datos (y(t), u(t)). Crear vector de datos: data = iddata(y,u,Ts)Identificación
Pasos para realizar una identificación:
1 2 3
Disponer de un conjunto de datos (y(t), u(t)). Crear vector de datos: data = iddata(y,u,Ts) Seleccionar modelo a ocupar y órdenes. m = arx(data,[na nb nk]) y(t)+a1 y(t−1)+. . .+ana y(t−na ) = b1 u(t−nk )+. . .+bnb u(t−nk −nb +1)+e(t)
Identificación
Pasos para realizar una identificación:
1 2 3
Disponer de un conjunto de datos(y(t), u(t)). Crear vector de datos: data = iddata(y,u,Ts) Seleccionar modelo a ocupar y órdenes. m = arx(data,[na nb nk]) y(t)+a1 y(t−1)+. . .+ana y(t−na ) = b1 u(t−nk )+. . .+bnb u(t−nk −nb +1)+e(t)
4
Validación del modelo.
Parte III Elementos de Model Predictive Control
MPC
Introducción
Formulación
Hp Hu −1
m´ ın
i=1
(w(t + i) − y(t + i))2 + λ
i=0
(∆u(t + i))2...
Regístrate para leer el documento completo.