Решение IPOPT от Gekko по сравнению с алгоритмом GRG, используемым в Excel-SolverPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Решение IPOPT от Gekko по сравнению с алгоритмом GRG, используемым в Excel-Solver

Сообщение Anonymous »

Целью является расчет термодинамически равновесного состава смеси при 1000К на основе энергии Гиббса образования продуктов реакции и эдуктов (пар+C2H6 в молярном соотношении 4:1) для реакции паровой газификации этана как следующее:

Код: Выделить всё

from gekko import GEKKO
m = GEKKO(remote=True)
x = m.Array(m.Var,13,value=1,lb=1e-27,ub=20.0)
H2,H2O,CO,O2,CO2,CH4,C2H6,C2H4,C2H2,lamda1,lamda2,lamda3,summe= x
H2.value = 3.0
H2O.value = 1.0
CO.value = 0.5
O2.value = 0.001
CO2.value = 0.5
CH4.value = 0.1
C2H6.value = 0.000215
C2H4.value = 0.00440125
C2H2.value = 0.0041294
summe.value = 8.0
lamda1.value = 1.0
lamda2.value = 1.0
lamda3.value = 1.0
eq1 = m.Param(value=14)
eq2 = m.Param(value=4)
eq3 = m.Param(value=2)
summe = m.Var(H2 + O2 + H2O + CO + CO2 + CH4 + C2H6 + C2H4 + C2H2)
lamda2 = m.Var((-1)*m.log(H2 / summe) / 2)
lamda1 = m.Var(46.03 / 1.9872 - m.log(H2O / summe) + 2 * lamda2)
lamda3 = m.Var(47.942 / 1.9872 - m.log(CO / summe) + lamda1)
m.Equation(m.exp(-4.61 / 1.9872 - 4 * lamda2 - lamda3) * summe == CH4)
m.Equation(m.exp(-28.249 / 1.9872 - 4 * lamda2 - 2 * lamda3) * summe == C2H4)
m.Equation(m.exp(-40.604 / 1.9872 - 2 * lamda2 - 2 * lamda3) * summe == C2H2)
m.Equation(m.exp(-26.13 / 1.9872 - 6 * lamda2 - 2 * lamda3) * summe == C2H6)
m.Equation(m.exp(94.61 / 1.9872 - 2 * lamda1 - lamda3) * summe == CO2)
m.Equation(m.exp(-2 * lamda1) * summe == O2)
m.Equation(2 * CO2 + CO + 2 * O2 + H2O  == eq2)
m.Equation(4 * CH4 + 4 * C2H4 + 2 * C2H2 + 2 * H2 + 2 * H2O + 6 * C2H6  == eq1)
m.Equation(CH4 + 2 * C2H4 + 2 * C2H2 + CO2 + CO + 2 * C2H6  == eq3)
m.Minimize((summe-(H2 + O2 + H2O + CO + CO2 + CH4 + C2H6 + C2H4 + C2H2))**2)
m.options.IMODE = 3 #IPOPT
m.options.MAX_ITER = 1000
m.options.OTOL = 1e-10
m.options.RTOL = 1e-10
m.solve()
print('x: ', x)
print('Objective: ',m.options.OBJFCNVAL)

Код: Выделить всё

EXIT: Optimal Solution Found.
The solution was found.
The final value of the objective function is    81.0000000000000

---------------------------------------------------
Solver         :  IPOPT (v3.12)
Solution time  :   1.169999998819549E-002 sec
Objective      :    81.0000000000000
Successful solution
---------------------------------------------------

x:  [[5.797458326] [1.202541674] [1.202541674] [1.6791020526e-21]
[0.79745832603] [1.6503662452e-22] [3.2694282596e-27] [1.1255712085e-27]
[1e-27] [2.185089969] [2.185089969] [2.185089969] [9.5605307091]]
Затем используйте GRG в качестве оптимизатора:
Изображение

Оба решения по-прежнему различаются. И что интересно, результат поиска корня (ограничения) по-прежнему отличается, но в то же время сходится:

Код: Выделить всё

Total number of equations:  13
Number of implicit equations:  4
Number of explicit equations:  9
Solution method  CONSTRAINED
Convergence tolerance:  1e-07
# of iterations used:  8

CO  1.685236
H2  5.118105
H2O  1.387357
SUM  8.899115
C2H2  0.0041294
C2H4  0.0044224
C2H6  0.0092403
CH4  0.2269213
CO2  0.0522585
lamda1  1.537016
lamda2  0.2765838
lamda3  2.53957
O2  0.4114448
Вот сравнение решений:


Вектор решения x
GEKKO
EXCEL GRG
Поиск корней




H2: 1
5.797458326
5.344360712
5.118105


H2O: 2
1.202541674
1.521995663
1.387357

CO: 3
1.202541674
1.388351672
1.685236


O2: 4
1.6791020526e-21
5.82E-21
0.4114448


CO2: 5
0.79745832603
0.544826
0.0522585


CH4: 6
1.6503662452e-22
0.0668213
0.2269213


C2H6: 7
3.2694282596e-27
1.70E-07
0.0092403


C2H4: 8
1.1255712085e-27
9.74E-08
0.0044224


C2H2: 9
1e-27
3.25E-10
0.0041294


lamda1: 10
2.185089969
24.3878385
1.537016


lamda2: 11
2.185089969
0.253110984
0.2765838

lamda3: 12
2.185089969
1.558979624
2.53957


сумма: 13
9.5605307091
8.866356107
8.899115




Подробнее здесь: https://stackoverflow.com/questions/792 ... -excel-sol
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Решение IPOPT от Gekko по сравнению с алгоритмом GRG, используемым в Excel-Solver
    Anonymous » » в форуме Python
    0 Ответы
    14 Просмотры
    Последнее сообщение Anonymous
  • Решение IPOPT от Gekko по сравнению с алгоритмом GRG, используемым в Excel-Solver
    Anonymous » » в форуме Python
    0 Ответы
    16 Просмотры
    Последнее сообщение Anonymous
  • Решение IPOPT от Gekko по сравнению с алгоритмом GRG, используемым в Excel-Solver
    Anonymous » » в форуме Python
    0 Ответы
    8 Просмотры
    Последнее сообщение Anonymous
  • Решение IPOPT от Gekko по сравнению с алгоритмом GRG, используемым в Excel-Solver
    Anonymous » » в форуме Python
    0 Ответы
    16 Просмотры
    Последнее сообщение Anonymous
  • Python Gekko mpc ipopt / mummbs Solver Старая версия вызывает оптимизацию не сходиться
    Anonymous » » в форуме Python
    0 Ответы
    3 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»