Salta al contenuto principale

Ecco una proposta di soluzione per la prova suppletiva del 2016 dell'esame di Sistemi Automatici.

 

Da questo link si può scaricare l'esercitazione.


Soluzione della Prima Parte.


In uno stabilimento alimentare è presente una linea di inscatolamento e pesatura automatica del prodotto. I barattoli aperti arrivano su di un nastro trasportatore incorrispondenza del punto di riempimento dove sono poste due elettrovalvole

che convogliano contemporaneamente il prodotto prelevato da un serbatoio.
La prima elettrovalvola permette di introdurre 1,4 litri al secondo, la seconda elettrovalvola 0,15 litri al secondo.
Al di sotto del punto di riempimento è presente una cella di carico che permette di valutare il peso raggiunto dal barattolo durante l’operazione di riempimento.
La cella di carico ha una portata massima a fondo scala di 50 N e in corrispondenza di questa forza produce una tensione di uscita differenziale pari a 20 mV se alimentata con 10 VDC
.
Il sistema deve svolgere le seguenti funzioni:
Rilevare l’arrivo del barattolo nel punto di riempimento e fermare il nastro trasportatore.

 

 

 


Attivare entrambe le elettrovalvole fino al raggiungimento del peso di 10 N.
Bloccare la prima elettrovalvola e lasciare attiva solo la seconda fino al riempimento completo (peso pari a 12 N).
Riavviare il nastro trasportatore.

Si fanno le seguenti ipotesi aggiuntive:

1) Ecco il disegno dello schema a blocchi del sistema di controllo dell’intera apparecchiatura.

schema a Blocchi
Schema a blocchi dell'intero sistema di Acquisizione e Distribuzione dati

Conviene spiegare il comportamento e il significato dei vari blocchi, nella soluzione da consegnare alla commissione d'esame.

2) Come già detto si è scelto come tipo di sensore di posizione da impiegare un sensore ad ultrasuoni, perché abbinato ad Arduino o ad un microcontrollore è estremamente preciso ed economico

 


3) Si deve dimensionare il circuito di condizionamento del segnale proveniente dalla cella di carico. Si puo' usare un amplificatore differenziale

Ampl Strumentazioni
Amplificatore per strumentazione

Si possono operare diverse scelte. Considerare o meno la "tara" del barattolo, oppure togliere la "tara" via Software.

Comunque l'amplificazione deve essere circa 1000 per sfruttare al massimo la dinamica di ingresso dell'ADC integrato di Arduino o del PIC.

Si preferisce usare il circuito integrato INA111 e dal datasheet si trova la formula di progetto.

La formula $$A=1+\frac{50000}{R_G}  = 1000 $$

permette di ricavare la RG=50 Ω.


4) Si indica l’algoritmo di gestione del segnale proveniente dalla cella di carico, dei segnali di comando  delle  elettrovalvole  e  del  motore  del  nastro  trasportatore,  utilizzando  un  sistema  di controllo a propria scelta.

Flowchar
Diagramma di Flusso - Flowchart

Si mette qui una porzione di codice per Arduino:

/* Hardware Connections:
 *  Arduino | HC-SR04 
 *  -------------------
 *    5V    |   VCC     
 *    9     |   Trig     
 *    8     |   Echo     
 *    GND   |   GND
 */

#include <LiquidCrystal.h>

// Pins
const int TRIG_PIN = 9;
const int ECHO_PIN = 8;
// Anything over 400 cm (23200 us pulse) is "out of range"
const unsigned int MAX_DIST = 23200;
LiquidCrystal lcd(6, 7, 2, 3, 4, 5);
int EV1 = 13;
int EV2 = 12;
int Motore = 11;
int Lettura = 0;
unsigned long t1;
unsigned long t2;
unsigned long pulse_width;
int mm;
float inches;
void setup() {
           lcd.begin(16, 2);
           lcd.setCursor(0,0);
           lcd.print("Distanza");
           lcd.setCursor(0,1);
           lcd.print("mm: ");
           pinMode(Motore, OUTPUT);
           pinMode(EV1, OUTPUT);
           pinMode(EV2, OUTPUT);
          // The Trigger pin will tell the sensor to range find
           pinMode(TRIG_PIN, OUTPUT);
          digitalWrite(TRIG_PIN, LOW);  
         // We'll use the serial monitor to view the sensor output
         Serial.begin(9600);
}
void loop() {
           analogWrite(Motore,255);
           DistanceCounter();
  // Print out results
  if ( pulse_width > MAX_DIST ) {
    Serial.println("Out of range");
  } else {
	    lcd.setCursor(8,8);
    	lcd.print("        ");
    	lcd.setCursor(8,8);
    	lcd.print(mm);

    Serial.print(mm);
    Serial.print(" mm");
           if (mm <=10)  // this part have to be tested in a real prototype
           {
                   analogWrite(Motore,0);
                   digitalWrite(EV1, HIGH);
                   digitalWrite(EV2, HIGH);
                   do
                    {}
                   while(analogRead(A1)< 865);
                   digitalWrite(EV1, LOW);
                   do
                   {}
                   while(analogRead(A1)< 1023);
                    digitalWrite(EV2, LOW); 
          }
  // Wait at least 60ms before next measurement
  delay(60);
}
void DistanceCounter(){
  long duration;
  // The PING))) is triggered by a HIGH pulse of 2 or more microseconds.
  // Give a short LOW pulse beforehand to ensure a clean HIGH pulse:
  pinMode(pingPin, OUTPUT);
  digitalWrite(pingPin, LOW);
  delayMicroseconds(2);
  digitalWrite(pingPin, HIGH);
  delayMicroseconds(5);
  digitalWrite(pingPin, LOW);

  // The same pin is used to read the signal from the PING))): a HIGH
  // pulse whose duration is the time (in microseconds) from the sending
  // of the ping to the reception of its echo off of an object.
  pinMode(pingPin, INPUT);
  duration = pulseIn(pingPin, HIGH);
  mm = duration * 0.345/2;
}

 


5) La  strumentazione  più  idonea  per  collaudare  il  funzionamento  del  circuito  di condizionamento è quella normalmente presente in un laboratorio di elettronica: multimetro, oscilloscopio, analizzatore di spettro.

 




Soluzione della Seconda Parte.

Si devono risolvere solo due quesiti. Per completezza in questo sito riporto la soluzione a tutti e quattro i quesiti, fermo restando che in una prova d'esame, per evitare discussioni e penalizzazioni solo due dei quesiti devono essere risolti dal candidato.

Quesito n°1

Con riferimento al tema proposto nella prima parte, ipotizzando che sia necessario visualizzare il peso del barattolo su un display a cristalli liquidi, il candidato proponga una soluzione relativa al tipo di collegamento con la scheda di controllo e ne descriva l’algoritmo software per la rappresentazione.

 

 

display 16x2
Collegamento ad un display 16x2 del microcontrollore standard Hitachi HD44780

Quesito n°2

Con riferimento al tema proposto nella prima parte, avendo la necessità di misurare il peso del barattolo con un errore massimo di 0,2 %, il candidato indichi il tipo di convertitore analogico - digitale da impiegare e determini la relativa risoluzione.

La necessità di misurare il peso del barattolo con un errore massimo dello 0,2% è soddisfatta con un convertitore ADC a 10 bit come quello di Arduino. Con esso, avendo come fondo scala VFS=5V il valore del "quanto" espresso in millivolt è 5/1024 = 4,8mV.

Tale valore va diviso per il fattore di amplificazione del circuito di condizionamento, ossia 1000.

L'ingresso del circuito di condizionamento minimo rilevabile è dunque 4,8μV.

Nel caso del peso di 12N a cui corrispondono 1223,242 grammi la tensione che fornisce la cella di carico supposta lineare sarà 4,8mV.

Lo 0,2% di 12N sono 0,024N a cui corrispondono 2,446 grammi ed una tensione 9,6μV.

Dunque l'errore dello 0,2% è rispettato.

 

Quesito n°3

Dell’impianto lineare rappresentato in figura, utilizzando l’algebra degli schemi a blocchi, calcolare: la funzione di trasferimento ad anello chiuso, il valore dell’uscita a regime quando in ingresso è applicato un segnale a gradino unitario.

Esame Supplettiva 2016 quesito 3
Esame Supplettiva 2016 quesito 3

Dove:

$$ H1 (s)= \frac {1}{s} $$

$$ H2 (s)= \frac {1}{s+5} $$

$$ H3 (s)= \frac {1}{s+8} $$

$$ H4 (s)= 2 $$

 

Si indica con E(s) nel dominio di Laplace l'uscita del sommatore più interno, con I(s) il suo ingresso, con R(s) l'uscita di H3(s).

Pertanto

$$ E (s)= I (s) + R (s) $$

$$ R (s)=\frac {1}{s+8} Y(s) $$

$$ E (s)= I (s) + \frac {1}{s+8} Y(s) $$

$$ Y (s)=\frac {1}{s+5} [I (s) + \frac {1}{s+8} Y(s)] $$

$$ Y (s)=\frac {1}{s+5} I (s) + \frac {1}{(s+5)(s+8)} Y(s)] $$

$$ Y (s) - \frac {1}{(s+5)(s+8)} Y(s)=\frac {1}{s+5} I (s) $$

$$ Y (s) [1 - \frac {1}{(s+5)(s+8)} ] =\frac {1}{s+5} I (s) $$

Chiamo G2(s) la funzione di trasferimento ad anello chiuso più interna della reazione "positiva"

$$ G_2(s) = \frac{Y(s)}{I(s)} =  \frac{\frac{1}{s+5} }{1- \frac {1}{(s+5)(s+8)}}   $$

chiamo G(s) la fdt del ramo diretto complessiva

$$ G(s) = \frac {1}{s} \frac {\frac {1}{s+5}}{ \frac {1}{1- \frac{1}{(s+5)(s+8)} }} $$

chiamo Gcl(s) la funzione di trasferimento complessiva ad anello chiuso

$$G_{cl} (s) = \frac {Y(s)}{X(s)} = \frac {G(s)} {1+2G(s)}  $$

Svolgendo i calcoli viene

$$G_{cl} (s) = \frac {\frac {1}{s} \frac {\frac {1}{s+5}}{ \frac {1}{1- \frac{1}{(s+5)(s+8)} }} } {1+2 \frac {1}{s} \frac {\frac {1}{s+5}}{ \frac {1}{1- \frac{1}{(s+5)(s+8)} }} }  $$

Posso applicare il terorema del valore finale

$$ lim _ {t \to \infty } {y(t)} = lim_ {s \to 0}  {s Y(s)} $$

per arrivare dunque al valore richiesto tenuto conto che l'ingresso è un gradino unitario la cui trasformata di Laplace $$X(s) = \frac  {1}{s} $$

$$ y(\infty)=lim_ {s \to 0}    {s \frac {1}{s} G_{cl}(s)} = G_{cl}(0) =  \frac {1}{2} $$

Quesito n°4

Disegnare in modo qualitativo il diagramma di Bode (del solo modulo) della seguente funzione di trasferimento d’anello:

$$ G_a (s)= \frac {8100000 (s+1)}{(s+60)(s+2700)} $$

 

Quello che viene chiesto dal testo di esame è il grafico "asintotico" del modulo del diagramma di Bode.

$$ G_a (s)= \frac {8100000 (1+sT)}{60 * 2700 (1+sτ_1)(1+sτ_2)} $$

$$ G_a (s)= \frac {50 (1+sT)}{(1+sτ_1)(1+sτ_2)} $$

Si tratta di una Funzione di Trasferimento FdT con guadagno statico KST=50 e con uno zero e due poli.

$$T=1 secondo$$ $$τ_1 = \frac {1}{60} = 0,01666 secondi $$ $$τ_2 = \frac {1}{2700} = 0,0003704 secondi $$

 

Per definizione di diagramma di Bode $$|G(j\omega)|_{d\beta} = 20 Log |50 \frac {1+j\omega T}{(1+j\omega τ_1)(1+j\omega τ_2)} | $$

Sviluppando il Logaritmo

$$|G(j\omega)|_{d\beta} = 20Log K_{ST} + 20Log|1+j\omega T| - 20Log|1+j\omega τ_1| -20Log|1+j\omega τ_2| $$

Costante Moltiplicativa

Bode Costante Moltiplicativa
Bode Costante Moltiplicativa

 

Zeri Reali Negativi (T=1)

Bode Zero
Bode: zero reale negativo

 

Poli Reali Negativi

$$\omega τ_1 =1 $$

$$\omega = \frac{1}{τ_1} $$

Bode Polo 1
Bode Polo 1
Bode Polo 2
Bode Polo 2

 

 

Complessivamente

Diagramma di Bode complessivo ed asintotico
Diagramma di Bode complessivo ed asintotico

 

Per la verifica finale ci si puo' servire di Multisim con uno schema tipo quello in figura:

Bode Plotter
Uso di Multisim per la verifica del Diagramma Di Bode

 

I componenti da usare sono:

  • AC_VOLTAGE
  • TRANSFER_FUNCTION_BLOCK
  • GROUND

e come strumento virtuale usare BODE_PLOTTER.

E' conveniente consultare il sito Wolfram Alpha per vedere il diagramma di Bode. Nel testo si chiede quello asintotico ed approssimato e non quello reale che viene disegnato con Multisim o Wolfram Alpha

Buono studio!