Emulació d’un controlador PID amb memòria a curt termini

Bloc

Emulació d’un controlador PID amb memòria a curt termini

Benvingut a la tercera part d’aquest projecte! A hores d'ara, el vostre empresari està mirant els vostres resultats i dient, i què? Heu fet moltes tasques a l’hora de fer funcionar les coses, però fins ara només queda bé a l’ordinador. Bé, aquí teniu la part de què. Aquí és on finalment arribem a implementar aquesta xarxa neuronal LSTM per emular el comportament del controlador PID. Com a resum breu, aquí hem estat i cap a on anem:

empreses de desenvolupament d'aplicacions de fitness
  1. Utilització del laboratori de control de temperatura per crear dades del controlador derivat-integral-proporcional
  2. Formació d’una xarxa neuronal de memòria a curt termini a Keras per emular un controlador PID
  3. Control del laboratori de control de temperatura amb un LSTM (aquest article)
  4. Aplicacions pràctiques del control de temperatura mitjançant controlador LSTM en lloc del controlador PID (proper a octubre de 2020)

Com sempre, no dubteu a executar el codi pel vostre compte, idealment amb el Laboratori de control de temperatura perquè pugueu veure dades en directe.

Un darrer control

Tot i que vam comprovar la sortida del controlador LSTM l'última vegada, encara volem practicar la seguretat. No volem depurar el nostre bucle de control mentre executem una cosa tan sensible com la temperatura del reactor. Per tant, per començar, conservarem el nostre controlador PID, però també calcularem la sortida del controlador LSTM. Això ens permet veure què fa el controlador LSTM que hem programat en comparació amb el controlador PID i també depurar-lo.

Ja esteu familiaritzat amb això, però per configurar la prova només cal fer alguns canvis:

##### Set up run #### ## Import model and model parameters model = load_model('pid_emulate.h5') model_params = pickle.load(open('model_params.pkl', 'rb')) s_x = model_params['Xscale'] s_y = model_params['yscale'] window = model_params['window'] ## Run time in minutes run_time = 30.0 ## Number of cycles loops = int(60.0*run_time) ## arrays for storing data T1 = np.zeros(loops) ## measured T (degC) Qpid = np.zeros(loops) ## Heater values for PID controller Qlstm = np.zeros(loops) ## Heater values for LSTM controller tm = np.zeros(loops) ## Time ## Temperature set point (degC) with tclab.TCLab() as lab: Tsp = np.ones(loops) * lab.T1 ## vary temperature setpoint ## leave 1st window + 15 seconds of temp set point as room temp end = window + 15 while end <= loops: start = end ## keep new temp set point value for anywhere from 4 to 10 min end += random.randint(240,600) Tsp[start:end] = random.randint(30,70) ## leave last 120 seconds as room temp Tsp[-120:] = Tsp[0]

#pid # machine-learning #lstm #python

towardsdatascience.com

Emulació d’un controlador PID amb memòria a curt termini

Control del laboratori de control de temperatura amb un LSTM. Bé, aquí teniu la part de què. Aquí és on finalment arribem a implementar aquesta xarxa neuronal LSTM per emular el comportament del controlador PID.