Gekko зависает при моделировании модели ARX с разными словарями параметров.
Я попробовал идентификацию системы GEKKO для двух разных систем. Один описан на веб-сайте APM, а другой — мной, но сохраняет ту же структуру модели с точки зрения количества входов и выходов, а также их коэффициентов. Обе дали хорошие результаты.
Затем я попытался смоделировать обе системы, просто изменив словарь параметров. Систему из APM можно было смоделировать без каких-либо проблем. Когда я попытался смоделировать другую систему, GEKKO зависал, и мне пришлось завершить работу ядра.
Вот код
import numpy as np
from gekko import GEKKO
import matplotlib.pyplot as plt
import json
ny = 2 # Number of outputs
nu = 2 # Number of inputs
jsonString='{"a": [[0.8303155342446392, 0.5680594837853161], [0.165159576576975, 0.42701139848983305]], "b": [[[-0.00021096098851137172, 3.645093996964678e-05], [0.0024479091118252785, -0.00044792104564900166]], [[0.0019627512690716343, 0.0029626945635920095], [-0.0025037845076475, -0.0016812552089966995]]], "c": [0.09880182193077706, 0.14760139668456007]}'
#jsonString='{"a": [[1.5903954085, 1.0030732272], [-0.59039540951, -14.955482692]], "b": [[[-0.1124849303, 0.00192948919904], [0.0070552841573, -0.001869892092]], [[0.003908541590499999, 0.081949113808], [0.009439868924125, 14.859599644]]], "c": [8.428408192, -0.0017416174455]}'
p=json.loads(jsonString)
for key in p:
p[key]=np.array(p[key])
# Create GEKKO model
m = GEKKO(remote=False)
# Build GEKKO ARX model
y,u = m.arx(p)
# load inputs
tf = 600 # final time
u1 = np.zeros(tf+1)
u2 = u1.copy()
u1[5:] = 80.0
u2[100:] = 100.0
u[0].value = u1
u[1].value = u2
# customize names
mv1 = u[0]
mv2 = u[1]
cv1 = y[0]
cv2 = y[1]
# options
m.time = np.linspace(0,tf,tf+1)
m.options.imode = 4
m.options.nodes = 2
# simulate
m.solve()
plt.figure(1)
plt.subplot(2,1,1)
plt.plot(m.time,mv1.value,'r-',label=r'$MV_1$')
plt.plot(m.time,mv2.value,'b--',label=r'$MV_2$')
#plt.plot(m.time,mv3.value,'g--',label=r'$MV_3$')
plt.ylabel('MV')
plt.legend(loc='best')
plt.subplot(2,1,2)
plt.plot(m.time,cv1.value,'r:',label=r'$CV_1$')
plt.plot(m.time,cv2.value,'b.-',label=r'$CV_2$')
plt.ylabel('CV')
plt.xlabel('Time (sec)')
plt.legend(loc='best')
plt.show()
Подробнее здесь: https://stackoverflow.com/questions/793 ... -arx-model
Gekko зависает при моделировании модели ARX ⇐ Python
Программы на Python
-
Anonymous
1737731056
Anonymous
Gekko зависает при моделировании модели ARX с разными словарями параметров.
Я попробовал идентификацию системы GEKKO для двух разных систем. Один описан на веб-сайте APM, а другой — мной, но сохраняет ту же структуру модели с точки зрения количества входов и выходов, а также их коэффициентов. Обе дали хорошие результаты.
Затем я попытался смоделировать обе системы, просто изменив словарь параметров. Систему из APM можно было смоделировать без каких-либо проблем. Когда я попытался смоделировать другую систему, GEKKO зависал, и мне пришлось завершить работу ядра.
Вот код
import numpy as np
from gekko import GEKKO
import matplotlib.pyplot as plt
import json
ny = 2 # Number of outputs
nu = 2 # Number of inputs
jsonString='{"a": [[0.8303155342446392, 0.5680594837853161], [0.165159576576975, 0.42701139848983305]], "b": [[[-0.00021096098851137172, 3.645093996964678e-05], [0.0024479091118252785, -0.00044792104564900166]], [[0.0019627512690716343, 0.0029626945635920095], [-0.0025037845076475, -0.0016812552089966995]]], "c": [0.09880182193077706, 0.14760139668456007]}'
#jsonString='{"a": [[1.5903954085, 1.0030732272], [-0.59039540951, -14.955482692]], "b": [[[-0.1124849303, 0.00192948919904], [0.0070552841573, -0.001869892092]], [[0.003908541590499999, 0.081949113808], [0.009439868924125, 14.859599644]]], "c": [8.428408192, -0.0017416174455]}'
p=json.loads(jsonString)
for key in p:
p[key]=np.array(p[key])
# Create GEKKO model
m = GEKKO(remote=False)
# Build GEKKO ARX model
y,u = m.arx(p)
# load inputs
tf = 600 # final time
u1 = np.zeros(tf+1)
u2 = u1.copy()
u1[5:] = 80.0
u2[100:] = 100.0
u[0].value = u1
u[1].value = u2
# customize names
mv1 = u[0]
mv2 = u[1]
cv1 = y[0]
cv2 = y[1]
# options
m.time = np.linspace(0,tf,tf+1)
m.options.imode = 4
m.options.nodes = 2
# simulate
m.solve()
plt.figure(1)
plt.subplot(2,1,1)
plt.plot(m.time,mv1.value,'r-',label=r'$MV_1$')
plt.plot(m.time,mv2.value,'b--',label=r'$MV_2$')
#plt.plot(m.time,mv3.value,'g--',label=r'$MV_3$')
plt.ylabel('MV')
plt.legend(loc='best')
plt.subplot(2,1,2)
plt.plot(m.time,cv1.value,'r:',label=r'$CV_1$')
plt.plot(m.time,cv2.value,'b.-',label=r'$CV_2$')
plt.ylabel('CV')
plt.xlabel('Time (sec)')
plt.legend(loc='best')
plt.show()
Подробнее здесь: [url]https://stackoverflow.com/questions/79380712/gekko-is-hanging-when-simulating-arx-model[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия