Existem problemas de otimização nos quais os limites de uma dada variável de entrada não são fixos, mas
variam com o valor de outra variável de entrada. Exemplo:
- A escolha do líquido refrigerante (1, 2,3) em um trocador de calor.
O domínio da temperatura de operação permitido é diferente para cada líquido refrigerante:
Líquido 1: 10~60 °C Líquido 2: 5~95 °C Líquido 3: 50~200 °C
Assim, o domínio da variável "Temperatura" depende do valor da variável "Tipo de Refrigerante".
Este tipo de problema pode ser abordado de duas maneiras: definindo restrições ou usando uma função
que mapeie os designs de um domínio conhecido para a região viável.
DEFININDO RESTRIÇÕES (Ver Anexo non_linear_constraint.prj)
Esta metodologia postula a existência de duas funções de restrição contínuas, y=f1(x) é a função que limita
inferiormente o domínio de uma dada variável de entrada e y=f2(x) é a função que o limita superiormente. Onde
x, y são as variáveis de entrada da otimização.
Estas funções são escolhidas como sendo polinomiais de grau n-1, onde n e o número de elementos da variável
independente x. A função deve ser desse grau para garantir a solução única, enquanto a escolha da função
como sendo polinomial foi feita por facilidade, a seleção de outro tipo de funções não interfere no domínio viável
resultante.
1- Determinar os valores dos coeficientes das funções f1 e f2 substituindo cada valor y com seus respectivos
valores limites.
2- Criar dois nós de Restrição dentro do Workflow do modeFRONTIER relacionando as duas variáveis de entrada x, y.
3- Escrever no campo "User Expression" de um dos nós de restrição:
f1(x)-y Less Than 0.0
4- Escrever no campo "User Expression" do outro nó de restrição:
f2(x)-y Greater Than 0.0
MAPEANDO UM CONJUNTO DE VARIÁVEIS NORMALIZADAS PARA A REGIÃO VIÁVEL (Ver Anexo linear_map_to_feasible_domain.prj)
Esta abordagem cria pontos dentro de um conjunto normalizado [0, 1] que mediante a escolha de funções lineares
adequadas serão mapeados para a região viável.
1- Criar no modeFRONTIER duas variáveis de entrada x1 e x2 com limite inferior 0 e limite superior 1.
2- Criar um nó Calculadora e ligá-lo aos nós "Input Variable" do passo 1.
3- Editar as seguintes expressões na calculadora
x=(up-low)*x1 + low
f1= f1(x)
f2= f2(x)
y=(f2-f1)*x2 + f1
Onde:
up: limite superior da variável de entrada x
low: limite inferior da variável de entrada x
x1, x2: variáveis normalizadas
f1(x), f2(x): mesmas funções definidas na metodologia anterior
y: variável de entrada cujo domínio depende do valor de x
Comments
0 comments
Article is closed for comments.