Passo Test

import matplotlib.pyplot as plt
import pandas as pd

from tclab import TCLab, clock, Historian, Plotter

Esegui la cella successiva se vuoi solo simulare TCLab

from tclab import setup
TCLab = setup(connected=False, speedup=20)

Esecuzione dello Step Test

Verifica uno stato stazionario iniziale

Uno step test presuppone che il sistema sia inizialmente allo stato stazionario. Nel caso del Laboratorio di Controllo della Temperatura, il valore iniziale stabile senza assorbimento di corrente sarebbe la temperatura ambiente. Generalmente sono necessari 10 minuti o più per raggiungere lo stato stazionario. Faremo una misurazione per confermare la temperatura iniziale.

lab = TCLab()
print(lab.T1, lab.T1)
lab.close()
TCLab version 1.0.0
Simulated TCLab
20.949499999999997 20.949499999999997
TCLab Model disconnected successfully.

Conduci l’esperimento

# experimental parameters
Q1 = 50
tfinal = 800

# perform experiment
with TCLab() as lab:
    h = Historian(lab.sources)
    p = Plotter(h, tfinal)
    lab.Q1(0)
    for t in clock(tfinal):
        p.update(t)
        lab.Q1(Q1)

TCLab Model disconnected successfully.

Verifica i dati sperimentali

h.columns
['Time', 'T1', 'T2', 'Q1', 'Q2']
try:
    t = h.t
    T1 = h.T1
    T2 = h.T2
    Q1 = h.Q1
    Q2 = h.Q2
except:
    t, T1, T2, Q1, Q2 = h.fields
    
plt.plot(t, T1, t, T2, t, Q1, t, Q2)
plt.legend(['T1','T2','Q1','Q2'])
plt.xlabel('time / seconds')
plt.grid()

Converti in un DataFrame

import pandas as pd

df = pd.DataFrame([t, T1, T2, Q1]).T
df.columns = ['Time', 'T1', 'T2', 'Q1']
df = df.set_index('Time')
df.plot(grid=True)

Salva DataFrame come file .csv

df.to_csv('Step_Test_Data.csv')

Verificare il file di dati

pd.read_csv('Step_Test_Data.csv').set_index('Time').plot(grid=True)

df.head()
T1 T2 Q1
Time
0.00 20.6272 20.6272 0.0
9.00 20.9495 20.9495 50.0
10.00 20.9495 20.9495 50.0
12.01 20.9495 20.9495 50.0
13.00 20.9495 20.9495 50.0
df.tail()
T1 T2 Q1
Time
795.01 50.6011 25.784 50.0
796.00 50.6011 25.784 50.0
798.01 50.6011 25.784 50.0
799.01 50.6011 25.784 50.0
800.01 50.6011 25.784 50.0