1. Gradiente: vetor coluna -> derivadas primeiras
derivadas parciais de f(x)
Matriz Hessiana: matriz - derivadas segundas
PNL: função objetivo, restições de igualdade, restrições de desigualdade
x = vetor de variáveis de decisão
Restrições de igualdade e desigualdade: delimitam conjunto viável
X = {X|g(x)=0,h(x)<=0}
Programação quadratica: FO=quadratica, restrições=lineares
min f(x) = c^T.x + x^T.Qx
A.x=b
x>=0
Q=matriz definida positiva
Mínimo absoluto ou global: f(x*)<=f(x)
Mínimo relativo ou local - raio d -> 0<=e<=d tal que 0<=|x-x*|<=e tem-se
f(x*)<=f(x)
PNL sem restrições: min f(x)
condição necessária: grad_f(x*)=0
condição suficiente: hes_f(x*)>0
Matriz Hessiana deve ser definida positiva
Matriz definida positiva = xT.A.x > 0 para todo x =/ 0
ou todos os autovalores são positivos ou todos os determinantes são positivos
Otimização irrestrita unidimensional:
min f(x)
x0 = min se f'(x0)=0
Otimização irrestrita em várias dimensões:
min f(x)
x0 = min se grad_f(x0)=0
PNL com restrições de igualdade
min f(x)
s.a g(x)=0
Função Lagrangeana ou Lagrangeano
L(x,lambda) = f(x) + lambda^T.g(x) = f(x) + somatório de (i=1 até p) de
[lambda_i . g_i(x)]
onde lambda = [lambda_1, lambda_2, ..., lambda_n] -> multiplicadores de Lagrange
Condição necessária: grad_L(x*, lambda)
dL(x*, lambda)/dx_i = df(x*)/dx_i + somatório de (j=1 até p) de [lambda_j .
dg_j(x*)/dx_i] = 0
dL(x*, lambda)/dx_i = g_i(x*) = 0
número de equações e variáveis = x+p
grad_f(x*) + somatório de (j=1 até p) de [lambda*_j . grad_g_j(x*)] = 0
g(x*) = 0
Na solução o gradiente da FO pode ser escrito como combinação linear dos
gradientes das funções de restrição.
L(x,y) = f(x,y) + lambda * h(x,y)
grad_L por x = 0
grad_L por y = 0
grad_L por lambda = 0
2. teste:
grad_f(x) = - lambda * grad_h(x)
PNL com restrições de desigualdade
min f(x)
s.a g(x) = 0
h(x) <= 0
Introdução das variáveis de folga -> passa a ser PNL com restrições de igualdade
min f(x)
s.a g_i(x) = 0
h_i(x) + v_i^2 = 0
Langrangeano:
L(x, lambda, u, v) = f(x) + somatorio de (i=1 até p) de [lambda_i * g_i(x)] +
somatorio de (i=1 até q) de [u_i * (h_i(x) + v_i^2)]
Condições necessárias:
dL/dx_i = df(x*)/dx_i + somatorio de (j=1 até p) de [lambda_j * dg_j(x*)/dx_i] +
somatorio de (j=1 até q) de [u_j * dh_j(x*)/dx_i
dL/dlambda_i = g_i(x*) = 0
dL/du_i = h_i(x*) + v_i^2 = 0
dL/dv_i = 2 * v_i * u_i = 0
No ponto x* alma restrições serão ativas [h_i(x*) = 0] e outras inativas
[h_i(x*) <= 0]
Restrições ativas: v_i = 0 , u_i > 0 com i=1, ... , l
Restrições não ativas: v_i =/ 0 , u_i = 0 com i = l+1, ... , q
Novas condições:
dL/dx_i = df(x*)/dx_i + somatorio de (j=1 até p) de [lambda_j * dg_j(x*)/dx_i] +
somatorio de (j=1 até q) de [u_j * dh_j(x*)/dx_i]
dL/dlambda_i = g_i(x*) = 0
dL/du_i = h_i(x*) = 0 e u_i > 0 com i=1, ..., l
dL/du_i = h_i(x*) < 0 e u_i = 0 com i=l+1, ..., q
Condições impostas as restrições de desigualdade
h_i(x*) <= 0 e u_i >= 0 i=1, ..., q
somatório de (i=1 até q) de [u_i * h_i(x*)] = 0
Condições de Karush-Kuhn-Tucker (KKT)
grad_f(x*) + somatorio de (i=1 até p) de [lambda_i * grad_g_i(x*)] + somatorio
de (i=1 até q) de [u_j * grad_h_i(x*)]
g(x*)=0
h(x*)<=0
u>=0
u^T*h(x*)=0
Resolução: apenas condições ativas
L(x, u1, u3) = f(x) + u1 * h1(x) + u3 * h3(x)
grad_L por x1 = 0
grad_L por x2 = 0
grad_L por u1 = 0
grad_L por u3 = 0
FO:
tradicionais - (minimização) custo de geração, perdads ativas, corte de carga,
3. desvio de intercâmbio, número de controles
recentes - (maximização) carga em um conjunto de barras da rede para análise de
colapso de tensão, transferência de potência ativa entre áreas, transferência de
potência ativa entre duas barras da rede para se definir a máxima capacidade de
pedágio, (minimização) corte de carga - evita o colapso de tensão, injeção de
potência ativa - localização de novas térmicas
Restrições de Igualdade = equações do fluxo de potência
Restrições de desigualdade = restrições operativas de tensão, fluxo, geração -
limites físicos ou operacionais
Controles = variáveis usada na condição da solução do FPO
potência ativa gerada, módulo de tensão nas barras de geração, posição dos tap's
de trafos LTC, potência reativa gerada ou alocada, fluxo de intercâmbio entre
áreas, susceptância shunt de bancos de capacitores e reatores, ângulo de fase de
trafos defasadores, carregamento dos circuitos, chaveamento shunt, fator de
potência das interligações, restrições de segurança.
Restrições de desigualdade - canalização
Tensão - Vmin <= V <= Vmax
Potência gerada - PGmin <= PG <= PGmax
Restrições de desigualdade - funcionais
Fluxo em circuuito (MVA) - Pij^2 + Qij^2 <= Sijmax^2
Cálculos análitos = raramente eficientes
Derivada impossível ou pontos estacionários (x0) não pondem ser obtidos
Métodos numéricos: aproximação da localização de ótimos locais -> tolerância
aceitável
Técnicas de busca do ponto ótimo - busca sequencial
PNL sem restrições = resolução do conjunto de equações definidas pelas condições
de otimalidade
Solução indireta:
geração de sequencia {X^k} a partir de um ponto inicial arbitrário x^0
novo ponto promove redução da FO
Escolha da direção conveniente d^k e passo conveniente lambda^k
x^(k+1) = x^k + lambda^k * d^k com k = 0, ..., n
Escolha da direção e do passo:
Passo = valor de lambda^k que minimize f(x) na direção escolhida
problema de minimização unidirecional
min f(x^k + lambda^k * d^k)
Método de redução por intervalo - determina a posição do ponto minímo em um
intervalo [a,b] de comprimento 2p
Avaliação da função para valores consecutivos da variável lambda, espaçados de
um valor p, a partir da condição inicial lambda_0
Algoritmo
i=0 e lambda_0=0
Calcule f(lambda_i)
Enquanto f(lambda_i+1) < f(lambda_i) -> Calcule [lambda_i+1 = lambda_i + p] e
[f(lambda_i+1)]
a = lambda_i-1
b = lambda_i+1
Métoda seção aúrea; intervalo onde está o ponto de mínimo, precisão e
Divisão do intervalo [a,b] em três parte: nº aúreos (0.3820 e 0.6180)
Função avaliada nos novos pontos (w e v) e o novo intervalo determinado
Algoritmo
4. i=0, l_o=b-a, a_0=a e b_0=b
Enquanto l_i<=e -> Calcule [w_i = a_i + 0.3820 * l_i] e [v_i = b_i + 0.6180 *
l_i]
Se f(w_i) < f(v_i) -> [a_i+1 = a_i] e [b_i+1 = v_i]
Se não -> [a_i+1 = v_i] e [b_i+1 = b_i]
[i = i+1] e [l_i = a_i - b_i]
end
lambda* = (a_i + b_i)/2
Método Gradiente - indica a direção de máximo crescimento
Condição inicial x0
Sequência: x^(k+1) = x^k - lambda^k * grad_f(x*)
Algoritmo
escolha de x0 e e, i=0
Enquanto ||gradf(x^i)|| > e -> Calcule [grad_f(x^i)], faça d^i = - grad_f(x^i),
calcule [lambda^i tal que f(x^i - lambda^i * d^i) = min_lambda f(x^i - lambda^i
* d^i)], faça x^(i+1) = x^i + lambda^i * d^i
Método de Neewton - aproximação da Fo por uma função quadrática
f(x) =~ f(x0) + grad_f(x0) * (x-x0) + (1/2) * (x-x0)^T * grad^2_f(x0) * (x-x0)
Mínimo de f(x) -> df(x)/dx = grad_f(x0) + grad^2_f(x0) * (x-x0) = 0
x^(i+1) = x^i - [grad^2_f(x^1)]^(-1) * grad_f(x^i)
Funções quadráticas -> método converge em uma iteração
d^i = - [grad^2_f(x^1)]^(-1) * grad_f(x^i)
lambda^i = 1
Convergência muito rápida próximo ao ponto de solução -> região aproximadamente
quadrática
Regiões distantes -> lambda^i = min_lambda f(x^i - lambda * d^i)
Métodos de soluções de PNL com restrições
Métodos das penalidades: transforma em PNL sem restrições -> adição de termos a
FO
Penalidades exteriores ou interiores/barreiras
Penalidade exteriores:
F(x) = f(x) + w*p(x)
p(x) = 0 se xE[a,b], (x-a)^2 se x<a, (x-b)^2 se x>b
w = ponderação
F(x) = f(x) + somatório de (i=1 até np) de [w_i * p_i(x)]
pi(x) = min [0, h_i(p_i(x))]^2
Penalidades Interiores ou barreiras logaritmicas:
F(x) = f(x) - u*[ln(x-a) + ln(-x+b)]
u = parametro de barreira
Método de pontos interiores - Karmarkar
min f(z)
h(z)=0
l<=z<=u
z = variáveis de estado e controle
l e u = limites inferiores e superiores
min f(z)
h(z)=0
z-u+su=0
z-l-sl=0
su e sl >= 0 -> variávies de folga
5. min f(z) - u*log(su) - u*log(sl)
h(z)=0
z-u+su=0
z-l-sl=0
Lagrangeano:
F(z) - u*log(su) - u*log(sl) - lambda*h(z) - pi_u*(z-u+su) - pi_l*(z-l-sl)
grad_L = 0
grad^2_L x grad_x = - grad_L
Função da barreira: manter as variáveis dentro do limite
Fazer u -> 0
Algoritmo:
Inicializar as variáveis -> testa convergência
Se não: calcula e resolve o sistema de equações lineares -> calcula o máximo
passo -> atualiza variáveis -> atualiza parametros de barreira -> testa
convergência
Sistema de 5 barras
Curva Vc/Eth
Curva Ic/Icurto
Interseção entre Vc/Eth e Ic/Icurto = ponto crítico -> Pc/Pmax = máx
Operação normal = interseção entre as curvas Vc/Eth com Pc/Pmax e Ic/Icurto com
Pc/Pmax
Conexão paralelo e série
Paralelo = P absorvido depende de V
P = V^2/Rp
Ru = (Rp * Sb) / Vb^2 = (V/Vb)^2 * (Sb/P)
Ru = Vu^2 / Pu
Xu = (V/Vb)^2 * (Sb/Q)
Xu = Vu^2/Qu
Série: a corrente em X afeta a potência absorvida P
I = V/(Rs+jXs)
P+jQ = V.I* = V.V* / (Rs+jXs) = |V|^2 / (Rs+jXs)
P^2 + Q^2 = |v|^4 / (Rs^2 + Xs^2)
P+jQ = |V|^2 (Rs+jXs) / (Rs^2 + Xs^2)
P+jQ = (Rs+jXs)(P^2+Q^2) / |V|^2
Rs+jXs = |V|^2 (P+jQ) / (P^2+Q^2)
Ru+jXu = (Rs+jXs).Sb / Vb^2
Ru = Vu^2 Sb (Pwatt) / (P^2+Q^2)
Xu = Vu^2 Sb (Qvar) / (P^2+Q^2)
Zth = (Vl' - Vl) / (I-I')
6. min f(z) - u*log(su) - u*log(sl)
h(z)=0
z-u+su=0
z-l-sl=0
Lagrangeano:
F(z) - u*log(su) - u*log(sl) - lambda*h(z) - pi_u*(z-u+su) - pi_l*(z-l-sl)
grad_L = 0
grad^2_L x grad_x = - grad_L
Função da barreira: manter as variáveis dentro do limite
Fazer u -> 0
Algoritmo:
Inicializar as variáveis -> testa convergência
Se não: calcula e resolve o sistema de equações lineares -> calcula o máximo
passo -> atualiza variáveis -> atualiza parametros de barreira -> testa
convergência
Sistema de 5 barras
Curva Vc/Eth
Curva Ic/Icurto
Interseção entre Vc/Eth e Ic/Icurto = ponto crítico -> Pc/Pmax = máx
Operação normal = interseção entre as curvas Vc/Eth com Pc/Pmax e Ic/Icurto com
Pc/Pmax
Conexão paralelo e série
Paralelo = P absorvido depende de V
P = V^2/Rp
Ru = (Rp * Sb) / Vb^2 = (V/Vb)^2 * (Sb/P)
Ru = Vu^2 / Pu
Xu = (V/Vb)^2 * (Sb/Q)
Xu = Vu^2/Qu
Série: a corrente em X afeta a potência absorvida P
I = V/(Rs+jXs)
P+jQ = V.I* = V.V* / (Rs+jXs) = |V|^2 / (Rs+jXs)
P^2 + Q^2 = |v|^4 / (Rs^2 + Xs^2)
P+jQ = |V|^2 (Rs+jXs) / (Rs^2 + Xs^2)
P+jQ = (Rs+jXs)(P^2+Q^2) / |V|^2
Rs+jXs = |V|^2 (P+jQ) / (P^2+Q^2)
Ru+jXu = (Rs+jXs).Sb / Vb^2
Ru = Vu^2 Sb (Pwatt) / (P^2+Q^2)
Xu = Vu^2 Sb (Qvar) / (P^2+Q^2)
Zth = (Vl' - Vl) / (I-I')