PDF de programación - Optimización con Matlab

Imágen de pdf Optimización con Matlab

Optimización con Matlabgráfica de visualizaciones

Publicado el 27 de Mayo del 2018
1.545 visualizaciones desde el 27 de Mayo del 2018
167,7 KB
13 paginas
Creado hace 17a (11/10/2006)
UNIVERSIDAD TÉCNICA DE ORURO
FACULTAD NACIONAL DE INGENIERÍA

INGENIERÍA ELÉCTRICA Y ELECTRÓNICA



OPTIMIZACIÓN CON MATLAB®

MCs. Ing. Armengol Blanco Benito



Oruro, octubre 2004

1



OPTIMIZACIÓN CON MATLAB®

Armengol Blanco



L

a optimización, es una herramienta matemática poderosa que emplea el enfoque
científico para la asignación de recursos económicos y materiales para el logro de un
determinado objetivo al resolver problemas prácticos y reales. El tool box de
optimización de Matlab®, es una herramienta computacional interesante para resolver
problemas de optimización lineal y no-lineal.

Lo interesante de la solución de un problema de optimización, no es la solución misma, lo
importante son los multiplicadores de Lagrange-Karush-Kuhn-Tucker asociados con cada
restricción, es decir, los precios duales. Estos últimos permiten tomar decisiones para
mejorar la solución o considerar el cambio de las restricciones que pueden mejorar (ó
empeorar) la solución hallada.

En este texto, se presenta una aplicación a problemas típicos de la operación económica de
sistemas eléctricos, se hace hincapié en la interpretación de los parámetros del tool box de
optimización de Matlab®.

Un problema de optimización, queda formulado como:



(1)



0
0

(2)
(3)

)x(fmin
:a.s



g(x)
h(x)

=



donde:


f() Función objetivo
g() Restricción de igualdad
h() Restricción de desigualdad
x Variable de decisión


Las funciones f(), g() y h() pueden ser funciones lineales y/ó no lineales. Las restricciones de
igualdad y de desigualdad pueden ser lineales y/o no lineales, entonces, el modelo se puede
explicitar con mayor detalle, por ejemplo para trabajar con Matlab [1], se utiliza la formulación
siguiente:



2





(4)



(5)

0
(x)
=
x
b

(6)
=⋅
eq
eq
C(x)

(7)
0

xA
b

(8)
≤⋅
UxL

(9)
≤≤

eq

)x(fmin
:a.s
C
A



donde:

Matriz de las restricciones de desigualdad lineales.

Ceq() Restricciones de igualdad, estrictamente no lineales.
Aeq Matriz de las restricciones de igualdad lineales.
C() Restricciones de desigualdad, estrictamente no lineales.
A
beq Lado derecho de las restricciones de igualdad.
b
L, U Vectores de límites inferior y superior de las variables de decisión x.
x

Lado derecho de las restricciones de desigualdad.

Variables de decisión del problema.


Este modelo, se puede clasificar como un problema de optimización no lineal que
corresponde al ámbito de la programación matemática. Se tienen varios métodos de la
programación matemática para su resolución.

Este modelo, se puede resolver mediante la caja de herramientas de optimización del
MATLAB® [2], que tiene un comando fmincon para ese propósito.

fmincon

Determina el mínimo de una función multivariable con restricciones de igualdad y
desigualdad, lineales y no lineales. Todo problema de maximización puede ser convertido en
un problema de minimización al cambiar el signo la función objetivo.

Sintaxis

Las diferentes formas de emplear el comando fmincon, son las siguientes:


x = fmincon(fun,x0,A,b)
x = fmincon(fun,x0,A,b,Aeq,beq)
x = fmincon(fun,x0,A,b,Aeq,beq,lb,ub)
x = fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon)
x = fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon,options)
x = fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon,options,P1,P2, ...)
[x,fval] = fmincon(...)
[x,fval,exitflag] = fmincon(...)
[x,fval,exitflag,output] = fmincon(...)
[x,fval,exitflag,output,lambda] = fmincon(...)



3

[x,fval,exitflag,output,lambda,grad] = fmincon(...)
[x,fval,exitflag,output,lambda,grad,hessian] = fmincon(...)


Descripción [1]

Argumentos

Los argumentos que toma el comando fmincon, son los siguientes:

fun es un archivo de texto ASCII, con la extensión m, que contiene la función objetivo a
minimizar.
x0 punto inicial para la búsqueda de la solución.
A, b, Aeq, beq, lb, ub, definidas en el problema de optimización, corresponden a las
restricciones lineales.
nonlcon archivo extensión m que contiene las restricciones no lineales.
options opciones de los parámetros de optimización.
P1, P2, … parámetros de fun y nonlcon

Salidas

Las salidas que entrega el comando fmincon, son las siguientes

x vector solución
fval valor de la función objetivo
exitflag condición de terminación de fmincon
output estructura de la salida
lambda multiplicadores de Lagrange
grad gradiente de la función fun evaluada en el punto solución
hessian valor de la Hessiana

Mayores detalles, se puede consultar en el manual [1], páginas 4-30 al 4-42.

Las variables de los argumentos y salidas pueden tomar nombres cualesquiera, solamente
es necesario respetar el lugar de su ubicación.

Ejemplo 1 Problema de Programación no Lineal

Determinar el Despacho Económico de Carga de un Sistema Eléctrico de Potencia, cuyas
funciones de costos de generación, son las que siguen:



4

de

Generación



min


P
[
MW



P
]
[
MW


max



]



Función



de
Costo
$



⎢⎣
⎥⎦
h
P1.10

1

+



=

+

+

+

+

+

+





















+

+

=

=









+

+

=

800

+

800

350

350

.0

006

.0

006

.0

006

.0

007



47



45



35



50

100


125


200


200



P0.6
2

3
P
1
3
P
2
3
P
3
3
P
4

P1.7
3
P2.7
4

2
P06.0
1
2
P07.0
2
2
P06.0
3
2
P07.0
4

F
1
F
2
F
3
F
4

La formula de pérdidas, es:

P
perd

Ésta expresión significa que las unidades 1 y 2, son responsable de las pérdidas solamente.
La unidad 2 más que la 1.

La demanda:

PD =

EL modelo de optimización, es:


00008

00009

MW

200

2
P
1

=

.0

2
P
2

+

.0







= F Min

T

)P(F
i

i

N

1=i

:a .s

perd

=



P + PG

D
min

iP


iP Pi





-

P

N
0i
=∑
1=i
max


La función objetivo, está dado por:


N
= ∑
1i
=

)P(F
i
i

F
T



=

2300

+

P1.10
1



+

2
P06.0
1



+

006.0



3
P
1

+

+



P0.6
2
P2.7
4



+

+



2
P07.0
2
2
P07.0
4



+

P1.7
3



+

2
P06.0
3



+

007.0



3
P
3

+



+

.0

006

+

.0

006





3
P
2
3
P
4

5

La restricción de igualdad:


P + PG

=

D

perd

0

i

P

-

N
=∑
1=i
2
00008
1P



=

+

+

.0

.0

200

G

Las restricciones de desigualdad, se reducen al acotamiento de las potencias generadas por
cada unidad:


04P3P2P1P2
2P

=

00009











max



min

iP
iP Pi



P
100
35


1

P2
45
125



P3
50
200



P4
47
200




El modelo de optimización se implementó en tres archivos tipo m: funobj.m, restricnl.m y
resolucion.m [1]. La primera contiene la función objetivo del problema, la segunda las
restricción de igualdad no lineal y la tercera contienen los parámetros del problema,
respectivamente.

En los parágrafos siguientes, se lista estos archivos.

funobj.m

function f=funobj(p)

F1=800+10.1*p(1)+0.06*p(1)^2+0.006*p(1)^3;
F2=350+6.0*p(2)+0.07*p(2)^2+0.006*p(2)^3;
F3=350+7.1*p(3)+0.06*p(3)^2+0.007*p(3)^3;
F4=800+7.2*p(4)+0.07*p(4)^2+0.006*p(4)^3;

f=F1+F2+F3+F4;

restricnl.m

function [c,ceq]=restricnl(p)

c=[]; % El problema no tiene restricciones de desigualdad no lineales
pd=200; % Demanda
ceq=[pd+0.00008*p(1)^2+0.00009*p(2)^2-p(1)-p(2)-p(3)-p(4)];
% Restricción de igualdad no lineal

solucion.m


6


% Programa para resolver los problemas del 1er parcial de ELT3811 1/2003
p0=[40 50 55 55]'; % Punto de partida
A=[]; b=[]; Aeq=[]; beq=[]; % Matrices y vectores de las restricciones lineales: Vacio
lb=[35 45 50 47]'; % Límite inferior de generación
ub=[100 125 200 200]'; % Límite superior de generación

[p,fval,exitflag,output,lambda]=fmincon('funobj',p0,A,b,Aeq,beq,lb,ub, 'restricnl')

La ejecución del programa solucion.m, entrega la siguiente solución:

» solucion
Warning: Trust region method does not currently solve this type of problem,
switching to line search.
> In C:\MATLABR11\toolbox\optim\fmincon.m at line 190
In C:\MATLABR11\work\solu1.m at line 9
Optimization terminated successfully:
Magnitude of directional derivative in search direction
less than 2*options.TolFun and maximum constraint violation
is less than options.TolCon
Active Constraints:
1
4

p =

49.2078
50.7749
50.0000
50.4431

fval =

7.6191e+003


exitflag =

1


output =

iterations: 7
funcCount: 43
stepsize: 1
algorithm: 'medium-scale: SQP, Quasi-Newton, line-search'
firstorderopt: []
cgiterations: []



7



lambda =

lower: [4x1 double]
upper: [4x1 double]
eqlin: [0x1 double]
eqnonlin: 60.0631
ineqlin: [0x1 double]
ineqnonlin: [0x1 double]

»

Interpretación de los Resultados


Las primeras líneas indican que el método empleado no es el más adecuado para este

problema, pero la optimización fue exitosa.


Las restricciones 1 y 4 están activas:

La restricción 1 corresponde a la restricción de igualdad, G: el cual debe satisfacerse.
La restricción 4 es la restricción de desigualdad de 3P se activa a su valor mínimo.

Los resultados, son:

1P = 49.2078
2P = 50.7749
3P = 50.0000
4P = 50.4431

El valor de la función objetivo, es:

=TF

7619.1 $/h



La optimización terminó exitosamente: exitflag = 1, en 7 iteraciones y se utilizó un

algoritmo para tamaño medio; el método de búsqueda Cuasi Newton.


El multipl
  • Links de descarga
http://lwp-l.com/pdf11347

Comentarios de: Optimización con Matlab (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad