Cvxv

Solo disponible en BuenasTareas
  • Páginas : 6 (1258 palabras )
  • Descarga(s) : 4
  • Publicado : 12 de junio de 2010
Leer documento completo
Vista previa del texto
Herramientas de MATLAB
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...
tracking img