1979 – Simulazione miscelatore

In un miscelatore entrano acqua calda alla temperatura TC con acqua fredda alla temperatura TF ed esce acqua ad una temperatura intermedia TM.

Se si indicano con FC ed FF i flussi di acqua calda ed acqua fredda in litri al secondo, la temperatura TM dell’acqua fornita dal miscelatore si può calcolare con la seguente formula:

TM = (TC*FC+TF*FF) / (FC+FF)

Ogni variazione di TC, FC, TF, FF si ripercuote immediatamente in una variazione di TM.

L’acqua fornita dal miscelatore deve percorrere un tubo prima di essere disponibile in uscita.
Le variazioni di TM si avvertono all’uscita del tubo solo dopo un tempo di ritardo RIT, misurato in secondi, che è uguale al tempo che l’acqua impiega a percorrere il tubo stesso.
Generalmente quindi la temperatura T dell’acqua all’uscita del tubo in un momento qualsiasi sarà diversa da TM.
Ad un certo istante, che chiameremo istante iniziale, si suppone che TM sia uguale a T e che tale sia anche il valore della temperatura dell’acqua in tutto il tubo.
Indicheremo questo valore con TZERO. Supponiamo anche che sia noto il valore di FC in tale istante ed indichiamo tale valore con FZERO.
A partire dall’istante iniziale, FF, TF, TC variano nel tempo t e sono dati i loro valori ad intervalli regolari di un secondo.

Nel tentativo di far rimanere la temperatura T dell’acqua che esce dal tubo al valore TZERO, è stato applicato un dispositivo che, ad intervalli regolari di un secondo, misura T e produce istantaneamente una variazione DFC del flusso di acqua calda FC proporzionale alla differenza fra T e TZERO secondo la formula:

DFC = -K*(T-TZERO)

Il candidato dovrà risolvere almeno uno dei seguenti due esercizi.

Esercizio 1

Scrivere in un linguaggio a scelta, ed illustrare, un programma capace di simulare il comportamento del sistema descritto, cioè di calcolare il valore secondo per secondo delle variabili FC, T, TM per una durata di N secondi.

I valori di RIT, K, TZERO, FZERO, N debbono essere introdotti dall’utente del programma all’inizio di ogni simulazione.

Il programma dovrà stampare i valori delle variabili FF, TF, FC, TC, T, TM secondo per secondo in modo tale che siano facilmente confrontabili tra di loro.
Si suppone che le temperature varino nell’intervallo fra 0.0 e 99.9 gradi centigradi ed i flussi nell’intervallo fra 0 e 50 litri al secondo e che per tutte le variabili reali sia significativa solo la prima cifra decimale.
I valori di FF, TF, TC sono dati secondo per secondo e per un massimo di 50 secondi.
Il candidato dovrà definire la forma in cui essi sono disponibili, l’unità di ingresso e, di conseguenza, il modo in cui il programma li dovrà leggere.

Esercizio 2

Supponendo che i valori della temperatura in uscita siano rappresentati in un vettore reale T di lunghezza N, con N non superiore a 50, scrivere in un linguaggio a piacere, ed illustrare, un sottoprogramma capace di stampare un grafico per punti che mostri l’andamento della funzione rappresentata da T.
I valori degli elementi di T possono essere approssimati all’intero più vicino.
Il grafico deve rappresentare valori compresi nell’intervallo TZERO±10.

Nel caso che un valore di T superi TZERO+10 o sia inferiore a TZERO-10 sarà rappresentato come se fosse uguale rispettivamente a TZERO-10.

Si può assumere che TZERO abbia valore intero.
Ogni valore dovrà essere rappresentato nel grafico con il carattere “-” se è inferiore a TZERO, con il carattere “+” se è superiore a TZERO e con il carattere “*” se è uguale a TZERO.
Non è indispensabile rappresentare gli assi cartesiani del grafico e le relative scale ed il grafico può essere stampato, a piacere, sia in senso orizzontale che nel senso di scorrimento della carta da stampa.

È anche ammesso che l’uscita non sia una stampa, ma una rappresentazione su terminale video.