Я хочу сделать температурный моделирование с моделями ARX и обнаружил Gekko как структуру для него.
Я смог запустить в основном пример Apmonitor и придать моделированию начальное условие при использовании Na = 1 < /strong>. Это мои графики с Na = 1, и использует первое измеренное значение в качестве условия inital в стадильном тесте:
sysid na = 1
step test na = 1 < /p>
выглядит хорошо. Но они фактически начинаются с правильного значения для первого значения. Как я могу начать симуляцию с нескольких прошлых шагов в качестве начального состояния, так что то, что я делаю, работает? Я просто хочу использовать реальные измерения в прошлом в качестве отправной точки.
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from gekko import GEKKO
# Load data
url = 'http://apmonitor.com/dde/uploads/Main/tclab_step_test.txt'
data = pd.read_csv(url)
t = data['Time']
u = data[['Q1', 'Q2']]
y = data[['T1', 'T2']]
# System identification
m = GEKKO(remote=True)
na, nb = 2, 6
yp, p, K = m.sysid(t, u, y, na, nb, diaglevel=1, scale=False)
# Plot input and output data with predictions
plt.figure(figsize=(8, 5))
plt.subplot(2, 1, 1)
plt.plot(t, u)
plt.legend([r'$Q_1$', r'$Q_2$'])
plt.ylabel('Inputs')
plt.subplot(2, 1, 2)
plt.plot(t, y)
plt.plot(t, yp)
plt.legend([r'$T_{1,meas}$', r'$T_{2,meas}$',
r'$T_{1,pred}$', r'$T_{2,pred}$'])
plt.ylabel('Outputs')
plt.xlabel('Time')
# ARX model for simulation
yc, uc = m.arx(p)
m.time = np.linspace(0, 600, 601)
m.options.IMODE = 4
# Set input profiles
uc[0].value = data['Q1']
uc[1].value = data['Q2']
# Set initial output values
yc[0].value = data['T1'][0]
yc[1].value = data['T2'][0]
# Solve and plot simulation results
m.solve(disp=False)
plt.figure(figsize=(10, 6))
plt.subplot(2, 2, 1)
plt.title('Step Test')
plt.plot(m.time, uc[0].value, 'b-', label=r'$Q_1$')
plt.plot(m.time, uc[1].value, 'r-', label=r'$Q_2$')
plt.ylabel('Heater (%)')
plt.legend()
plt.subplot(2, 2, 3)
plt.plot(m.time, yc[0].value, 'b--', label=r'$T_1$')
plt.plot(m.time, yc[1].value, 'r--', label=r'$T_2$')
plt.plot(t, y, 'k-', label='Measured')
plt.ylabel('Temperature (K)')
plt.xlabel('Time (sec)')
plt.legend()
plt.tight_layout()
plt.show()
< /code>
Я уже пытался установить на < /p>
yc[0].value = [20, 20]
yc[1].value = [20, 20]
so 2 past steps are available for the simulation, but then i get an exception that the size is not correct.
When i initialize the values with arrays like [20,20,0,0,0,0,0,...] or [20,20,None,None,None,...] the simulation runs without exception but still with the same completely wrong values and also only one 20 is after the моделирование в значении YC вместо набора два.
Я хочу сделать температурный моделирование с моделями ARX и обнаружил Gekko как структуру для него. Я смог запустить в основном пример Apmonitor и придать моделированию начальное условие при использовании Na = 1 < /strong>. Это мои графики с Na = 1, и использует первое измеренное значение в качестве условия inital в стадильном тесте: sysid na = 1 step test na = 1 < /p> выглядит хорошо. Но они фактически начинаются с правильного значения для первого значения. Как я могу начать симуляцию с нескольких прошлых шагов в качестве начального состояния, так что то, что я делаю, работает? Я просто хочу использовать реальные измерения в прошлом в качестве отправной точки.[code]import numpy as np import pandas as pd import matplotlib.pyplot as plt from gekko import GEKKO
# Load data url = 'http://apmonitor.com/dde/uploads/Main/tclab_step_test.txt' data = pd.read_csv(url) t = data['Time'] u = data[['Q1', 'Q2']] y = data[['T1', 'T2']]
# System identification m = GEKKO(remote=True) na, nb = 2, 6 yp, p, K = m.sysid(t, u, y, na, nb, diaglevel=1, scale=False)
< /code> Я уже пытался установить на < /p> yc[0].value = [20, 20] yc[1].value = [20, 20] [/code] so 2 past steps are available for the simulation, but then i get an exception that the size is not correct. When i initialize the values with arrays like [20,20,0,0,0,0,0,...] or [20,20,None,None,None,...] the simulation runs without exception but still with the same completely wrong values and also only one 20 is after the моделирование в значении YC вместо набора два.
Я хочу сделать температурный моделирование с моделями ARX и обнаружил Gekko как структуру для него.
Я смог запустить в основном пример Apmonitor и придать моделированию начальное условие при использовании Na = 1 . Это мои графики с Na = 1, и...
Я хочу сделать температурный моделирование с моделями ARX и обнаружил Gekko как структуру для него.
Я смог запустить в основном пример Apmonitor и придать моделированию начальное условие при использовании Na = 1 . Это мои графики с Na = 1, и...
Я пытаюсь проверить модель динамического процесса, созданную с помощью системной программы библиотеки Python Gekko, однако результаты, которые я вижу, не имеют смысла или, по крайней мере, не соответствуют моим ожиданиям. p>
Чтобы продемонстрировать...
Я пытаюсь проверить модель динамического процесса, созданную с помощью системной программы библиотеки Python Gekko, однако результаты, которые я вижу, не имеют смысла или, по крайней мере, не соответствуют моим ожиданиям. p>
Чтобы продемонстрировать...
*Отредактировано 23.09.24 с целью добавления дополнительной информации.
Я запустил это снова после перезапуска своего блокнота Jupyter, и он вернул результаты. Я ожидал. Однако если я запущу полный сценарий, указанный в ссылке ниже, который...