Introduzione al calcolo analogico

Introduzione al calcolo analogico

La simulazione ed i modelli

Da quando si è iniziato a studiare i fenomeni e a progettare i sistemi su una base scientifica si sono sempre usati dei modelli per prevedere prima della realizzazione il risultato di un esperimento oppure il comportamento di un sistema.

Un modello non è altro che un sistema che evolve in modo simile al sistema che vogliamo studiare, e che noi possiamo controllare in modo più semplice rispetto al sistema vero.

La tecnica di studio di un sistema/esperimento tramite l’osservazione del comportamento di modelli prende il nome di Simulazione

I modelli possono essere classificati in base alla natura del modello:

  • Modelli fisici che a loro volta si classificano in
    • Modelli in scala la cui natura è esattamente quella del modello da studiare ma sono di dimensioni più consone allo scopo dello studio, un plastico per modellare un edificio, un impianto pilota per modellare un grosso impianto chimico etc. Questo tipo di modelli ha il vantaggio di poter effettuare immediatamente la simulazione, ma ha lo svantaggio legati a fenomeni di scala, cioè quelli fenomeni che si verificano in modo non proporzionale alle dimensioni.
    • Modelli analogici sono modelli fisici basati su fenomeni fisici diversi da quelli che vogliamo studiare ma in cui possiamo individuare grandezze che evolvono in modo parallelo a quelle del sistema da studiare. Resta la difficoltà di caratterizzare la similitudine o analogia tra il sistema originale ed il sistema modello cioè la corrispondenza tra le variabili dei due sistemi e la scelta dei parametri del modello.
  • Modelli matematici cioè costituiti da un set di equazioni/disequazioni che descrivono in modo analitico l’evoluzione delle variabili caratteristiche del sistema studiato, anche questi si classificano sulla base di come vengono usati
    • Modelli analitici vengono utilizzati mediante la soluzione diretta e esatta delle equazioni, che fornisce direttamente l’evoluzione del sistema, oppure vengono utilizzati per stabilire una corrispondenza tra modelli appartenenti a domini fisici diversi e stabilire analogie da utilizzare per costruire modelli analogici.
    • Modelli numerici che includono la modalità di calcolo per generare una soluzione numerica (in genere approssimata) del modello analitico da eseguire su un calcolatore digitale il modello numerico parte da quello analitico (generalmente, anche se vi sono approcci alternativi) e include lo sviluppo di un algoritmo risolutivo che si concretizza in un programma di calcolo

La Simulazione

Come già detto consiste nella sperimentazione effettuata sui modelli del sistema e ripetuta variando le condizioni che ne influenzano il comportamento e i possibili input applicati che interessano nell’applicazione pratica del sistema. Nella simulazione analogica tali esperimenti si fanno sul modello analogo nella simulazione numerica implementando l’algoritmo risolutivo.

Il computer analogico

Il computer analogico è un qualunque sistema che riunisca componenti, che opportunamente configurati consentano di costruire un modello analogico di una grande quantità di sistemi, siccome questa operazione è più facile usando componenti elettronici, la quasi totalità dei computer analogici si basa su queste tecnologie. Siccome poi la maggior parte dei modelli che è interessante simulare sono modelli descritti (modello matematico) da equazioni differenziali, un computer analogico viene (o veniva nei primi tempi delle loro introduzione) anche denominato analizzatore differenziale. Per meglio comprendere l’uso dei modelli e della simulazione analogica ci occuperemo di un semplice esempio fisico.

Modello della sospensione di un autoveicolo (1/4 di autoveicolo)

1 Modello meccanico della sospensione

Nel modello fisico su rappresentato zr rappresenta il profilo verticale della strada kt la costante elastica dello pneumatico, ks quella della sospensione cs è il coefficiente di attrito dell’ammortizzatore ms la nassa di (un quarto) del veicolo mu la massa delle parti non sospese attinenti alla ruota zs e xu sono gli spostamenti verticali della scocca e della ruota rispettivamente. La seconda legge della dinamica si scrive per la ruota (massa per accelerazione pari alla somma delle forze agenti)

Dove v, v, a, a sono velocità e accelerazione degli spostamenti verticali rispettivamente della scocca e della ruota. Ricordiamo che la velocità e l’accelerazione sono rispettivamente le derivate rispetto al tempo dello spostamento e della velocità quindi le due equazioni scritte costituiscono un sistema di equazioni differenziali

Dove si è utilizzata la notazione classica della fisica di indicare con il puntino la derivata rispetto al tempo di una variabile, e così via per le derivate successive.

, eccetera

L’equazione che abbiamo scritto è un sistema di due equazioni differenziali del secondo ordine in due incognite la cui soluzione può essere calcolata conoscendo il valore dei parametri, l’andamento della funzione forzante  z(t) e le condizioni iniziali zs(0), vs(0), zu(0), vu(0)

Il sistema è un sistema lineare in quanto nelle equazioni compaiono solo le operazioni di derivazione, moltiplicazione per una costante e somma algebrica, un sistema del genere può essere simulato adeguatamente su un calcolatore analogico che disponga di integratori, sommatori, invertitori e moltiplicatori per una costante.

Definizione di un “programma analogico”

Come visto nell’ottimo articolo di Amilcare integratori, sommatori e invertitori possono essere realizzati con operazionali reazionati e i moltiplicatori per una costante, variabile (scusate il bisticcio) tramite potenziometri. Infatti per evitare problemi e troppe tarature gli operazionali sono montati a guadagno fisso (classicamente 1,-1,10) e se per esempi di deve moltiplicare per 3,75 lo si fa tramite un amplificatore per 10 ed un partitore realizzato con un potenziometro che abbassa l’uscita moltiplicandola per 0.375, in questa pagina proveniente da un manuale della EAI (scusate la qualità) la corrispondenza tra circuiti, simboli del calcolo analogico e operazioni matematiche (per il momento solo operazioni lineari).

Scrivere un programma analogico equivale a tracciare un grafo in cui i componenti del calcolatore sono interconnessi in modo opportuno, tutti gli ingressi/uscite dei componenti disponibili sono riportati su opportune prese (classicamente prese per banane da 4mm) su pannello frontale del calcolatore (patch panel) tramite dei cavetti flessibili con le suddette banane (in genere è prevista la possibilità di sovrapporre più prese per creare dei nodi circuitali) è possibile implementare il circuito e quindi il programma di interconnessione.

Tornando al nostro esempio riflettiamo sul fatto che sono disponibili solo integratori singoli, ne dovremo usare due per un’equazione del secondo ordine, il modo più semplice è riscrivere il modello come un sistema di equazioni differenziali del primo ordine, usiamo la tecnica di introdurre le variabili di stato:

Definiamo x1=zs, x2=vs, x3=zu, x4=vu, le equazioni diventano:

Definiamo i coefficienti

il programma sarà illustrato in figura dove i simboli usati sono un poco diversi

2 Simboli di “Analog Computer Design Tool” per LTSPICE

Questi simboli sono usati in un interessante package scritto da Arthur Glazar che gira sotto l’applicativo LTSPICE della Linear Technology la cui descrizione si può trovare a questo link https://www.edn.com/design/design-tools/development-kits/4376478/Analog-computer-design-tool e che può essere scaricato a questa pagina https://www.edn.com/design/design-tools/development-kits/4376478/Analog-computer-design-tool.

In pratica si tratta di uno strumento che consente la simulazione numerica di un programma analogico, io l’ho usato solo sfruttandolo come strumento grafico per l’editing di programmi analogici, per non ricorrere al metodo usato ai tempi della “vera” computazione analogica (matita, squadretta e normografo per i simboli)

Le differenze tra i i simboli del pacchetto e quelli standard sono i seguenti

  1. Uso dei moltiplicatori sia per la moltiplicazione tra segnali che per la moltiplicazione per una costante (questo va evitato nella vera computazione analogica pe l’ovvia differenza di costo e precisione tra un potenziometro ed un circuito moltiplicatore)
  2. Nel pacchetto gli integratori e i sommatori sono tutti non invertenti al contrario della convenzione standard che li prevede invertenti e deriva direttamente dalla realizzazione circuitale.
  3. I sommatori hanno tutti moltiplicatori di ingresso X1 (non sono presenti gli ingressi X10 e X100) in quanta a causa del punto a) non vi è la limitazione, presente nelle calcolatrici reali di coefficienti compresi con valori nell’intervallo 0-1 (ottenuti con potenziometri).
  4. La presenza di un blocco derivatore che in un computer analogico non è mai presente a causa della instabilità intrinseca e della caratteristica di amplificazione del rumore di un tale circuito.

In ogni caso lo schema ottenuto usando i simboli del toolbox è il seguente e sono ovvie le modifiche da apportarvi per mapparlo su un computer analogico reale. Nello schema i simboli da A ad E rappresentano le costanti, le uscite degli integratori sono le variabili di stato x1, x2, x3, x4, e su ogni integratore vi è un ulteriore ingresso che va polarizzato con il valore iniziale della variabile corrispondente necessario per risolvere l’equazione, l’input zr rappresenta il profilo della strada.

3 Modello analogico della sospensione

 

4 Simboli degli operatori analogici e realizzazione circuitale (Documentazione E.A.I.)

Su un vero calcolatore analogico la simulazione si effettuava individuando il numero ed il tipo di componenti necessari cablandoli secondo lo schema sul patch panel settando condizioni iniziali e parametri ai valori corretti applicando l’ingresso voluto tramite un opportuno generatore di funzione ed osservando sull’oscilloscopio dedicato l’andamento delle variabili interessanti. È immediato capire che, nell’esempio che stiamo vedendo si poteva ripetere ciclicamente la simulazione aggiustando tramite la manopola dei potenziometri i coefficienti sotto il controllo del progettista (per esempio la costante elastica delle molle e la costante di dissipazione dell’ammortizzatore) fino ad ottenere la risposta che si riteneva più confortevole.

Componenti ulteriori per il calcolo analogico

I componenti visti finora rappresentano i componenti di base che servono per simulare sistemi lineari vi sono poi dei componenti aggiuntivi ce si possono usare per introdurre fenomeni non lineari nella simulazione, una calcolatrice analogica era più “potente” quanti più di questi componenti e quanto più sofisticati disponesse, vediamo qui una lista non esaustiva:

  1. Moltiplicatori/divisori fra segnali, li abbiamo già visti ma li abbiamo usati solo per effettuare la moltiplicazione per una costante circa le realizzazioni circuitali, per la moltiplicazione si possono usare diverse tecniche
    1. Servomoltiplicatori che usano un potenziometro servocontrollato
    2. Moltiplicatori basati sul rilevamento della deflessione imposta sul raggio di un oscilloscopio dall’applicazione dei due segnali rispettivamente alle placchette per la deflessione elettrostatica e al giogo per la deflessione elettromagnetica.
    3. Circuiti moltiplicatori a divisione di tempo in cui un segnale viene campionato in PWM il cui duty cycle dipende dal valore istantaneo dell’altro segnale all’uscita di un passa basso si ottiene un valore proporzionale al prodotto
    4. Circuiti amplificatori a uscita parabolica che implementano la formula
    5. Circuiti logritmici/antilogaritmici che implementano la formula
  2. Generatori di funzioni arbitrarie, i più comuni dei quali usavano un banco di resistenze regolabili e diodi tramite i quali si approssima la funzione con una spezzata, classicamente in 10 o 20 segmenti, il pannello contenente due di questi generatori è disegnato in figura
  3. Altri blocchi nonlineari che implementano

    1. Limitazione o saturazione
    2. Zona morta
    3. Raddrizzamento
    4. Isteresi
    5. Relè
    6. Funzioni seno e coseno

Altre funzioni presenti erano quelle che servivano per generare gli input da applicare al sistema, (generatori di funzioni x(t) che però potevano essere sostituiti da un generatore a dente di sega la cui uscita era applicata ad un generatore di funzioni e quelle necessarie per osservare i risultati, oscilloscopi sia tradizionali che elettrodinamici a grande schermo, voltmetri sia analogici che digitali (ricordiamo che siamo negli anni 60 e un voltmetro digitale non è lo strumento più comune) e plotter analogici.

5 Pannello di un generatore i funzioni

Sostituti moderni del computer analogico.

Anche se grazie alla disponibilità di circuiti integrati a basso costo ed alta precisione si potrebbe oggi facilmente costruire un computer analogico con prestazioni paragonabili a quelle dei computer analogici impiegati dalla NASA per risolvere i problemi matematici connessi con il programma APOLLO (a questo proposito consiglio di vedere il bellissimo film Il Diritto di Contare) ormai una tale attività può essere solo un simpatico hobby in quanto l’utilizzo, la potenza e la semplicità dei computer digitali a reso semplice effettuare la simulazione di sistemi differenziali complessi con questi ultimi strumenti. Resta il fatto che il modo di ragionare connesso con il calcolo analogico è un modo tuttora diffuso e soprattutto più chiaro per comprendere la struttura del sistema, è per esempio il modo classico di formulazione dei problemi nel campo dei sistemi di controllo automatici. Resta il fatto che il passaggio dal modello differenziale all’algoritmo di soluzione numerico è una operazione involuta e complessivamente innaturale.

Fortunatamente sono nati degli ambienti di programmazione che svolgono automaticamente questa traslazione per cui la programmazione si fa di fatto tracciando uno schema grafico che ricorda da vicino un programma analogico. Ne cito qui un paio, uno a pagamento e uno gratuito come esempi della vasta tipologia di soluzioni esistenti.

Matlab Simulink

Il pacchetto prodotto dalla Mathworks è un sistema molto complesso (e costoso) di software da usare per la didattica, la ricerca e la produzione, in tutti i campi dell’ingegneria e non solo, in genere è a disposizione di chi ha accesso alle risorse di calcolo di Università o altri Istituti di Istruzione (molte scuole superiori) per cui esiste un meccanismo di licenze a prezzi ridotti, oppure per gli studenti che lo acquistano nella Versione Studente che comprende Matlab, Simulink, e una altra decina di Toolbox ad un prezzo simbolico.

Senza soffermarmi qui alla descrizione del software mi limito a mostrare al semplicità dell’ambiente di simulazione (Simulink appunto) mostrando lo schema del programma visto prima.

È facile riconoscere il mpping delle stesse equazioni tenendo conto che in Simulink il simbolo 1/s rappresenta l’integratore, il triangolo il moltiplicatore per una costante e il cerchietto la somma algebrica (a seconda dei segni + o – presenti sull’input) in Simulink esistono una grande quantità di “sorgenti” che rappresentano i modi di generare l’input, in questo caso si è scelta una funzione a gradino. E diverse “sink” a cui inviare i segnali di uscita.

6 Il programma di simulazione in Simulink

Il programma viene eseguito cliccando il tasto run e sul display dell’oscilloscopio virtuale (si apre cliccandoci sopra) si può osservare il risultato della simulazione. In figura il risultato con diversi valori dei parametri

Scilab Xcos

Il secondo software di cui vi voglio parlare è un (semi) clone di Matlab sviluppato e reso disponibile gratuitamente dai ricercatori dell’INRIA, istituto nazionale pubblico Francese per la ricerca in informatica e automatica, il software si scarica senza particolari procedure da questo sito http://www.scilab.org/en dove trovate anche una serie di tutorial e libri che spiegano la natura e l’utilizzo di Scilab in vari contesti, l’analogo strumento rispetto a Simulink è denominato Xcos. Vi sono diverse differenze tra i due software, ovviamente il primo è altamente professionale e completo, però per quello che riguarda la simulazione di semplici sistemi lineari essi si comportano in modo perfettamente identico (a parte alcune differenze sulla rappresentazione grafica dei blocchi. Per questo motivo non vi annoio con il programma scritto (o meglio disegnato) per Scilab.

 

Conclusioni

Per il momento questo è tutto, mi rendo conto che sono stato molto (forse troppo) sintetico, ma non volevo rischiare di annoiarvi. Comunque se la cosa vi dovesse stimolare, fatemelo sapere, io sono disponibile ad approfondire qualsiasi argomento collegato, cenni storici sull’utilizzo e sulla realizzazione della macchine analogiche (a questo riguardo sono interessanti dispositivi meccanici per realizzare operatori analogici)  oppure ancora esempi di modellazione e di simulazione di sistemi un pò più complessi, magari contenenti componenti nonlineari, oppure ancora informazioni ed esempi sui software di simulazione numerica tipo Simulink.

Va da se che se qualcuno volesse costruire il “suo” calcolatore analogico sfruttando l’elettronica moderna la mia consulenza è sempre disponibile, a questo proposito vi propongo interssanti link:  https://www.grappendorf.net/projects/analog-computer/  http://www.analogmuseum.org/library/Webster1965.pdf  https://www.clear.rice.edu/elec301/Projects99/anlgcomp/  http://www.analogmuseum.org/library/PEAC_small.pdf

 

 

VOTO
2 commenti
  1. Just4Fun
    Just4Fun dice:

    Veramente molto, molto, molto interessante. Ho anche apprezzato i quattro link in fondo, in particolare l’ultimo che fa vedere i blocchi funzionali di un possibile “prodotto”. Ovviamente andrebbe opportunamente aggiornato (anche perché usa transitori al germanio…).
    Naturalmente il know-how da “rinfrescare”/integrare non sarebbe banale (almeno per me, abituato come sono a pensare in… “digitale”…).

    Attualmente un “lavoretto” ha completamente azzerato il mio già scarso tempo libero, ed ho dovuto mettere “in pausa” sia la schedina con FPGA che la nuova versione del “retrocomputer” con Z80 (https://hackaday.io/project/19000-a-4-4ics-z80-homemade-computer-on-breadboard).
    Sicuramente se e quando deciderò di imbarcarmi in una qualche realizzazione di questo genere ti chiederò parere e suggerimenti.
    Per il momento non posso che ringraziarti per questa “chicca” che ci hai regalato.

    Approvazioni
  2. Amilcare
    Amilcare dice:

    È sempre un piacere approfondire le proprie conoscenze, se poi chi spiega ha avuto conoscenza diretta dell’argomento la cosa è ancora più piacevole.
    Grazie di averci reso partecipi delle tue esperinze.

    Approvazioni

Lascia un Commento

Vuoi partecipare alla discussione?
Fornisci il tuo contributo!

Lascia un commento