import matplotlib.pyplot as plt
import pandas as pd
from tclab import TCLab, clock, Historian, PlotterPasso Test
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 |