Indice |
Abstract
Ritorno alla preistoria ... dopo le Feste andiamo sul "light" anche con la simulazione al PC.
Introduzione
Forse la simulazione in Scilab a qualcuno e' rimasta un po' "sullo stomaco" per diverse ragioni: per i 50M di file di installazione ed i 150M di HD, per lo scomodo input dei dati, o perche' i Francesi gli stanno antipatici; ... non lo sapremo mai.
Come alternativa ho pensato di proporvi per il 2009 una soluzione "extra light"; dalla preistoria della programmazione ecco CIRCE.BAS, un programma per la simulazione di circuiti elettrici in ca/cc che funziona tranquillamente anche su questo PC ...
no no, non e' il computer dei Flinstones, e' il primo computer della APPLE, in ciliegio massiccio. Un prezzo a cinque cifre significative $ 666.66. Notare le staffe a "L" per le future espansioni, le due trapanate per le "P" del logo ed i fantastici "4 buchi" ... precursori del nuovo brevetto di raffreddamento della societa' di Cupertino.
Per far girare la simulazione in BASIC sui nostri PC, dobbiamo per prima cosa scaricare i seguenti 3 files:
- CIRCE.BAS il programma.
- QBasic,EXE l'eseguibile per il linguaggio,
- QBasic.HLP il suo Help,
Oppure in un archivio compresso bas.rar.
Salvati i 3 files in una cartella, trascinate con il mouse CIRCE.BAS sopra QBASIC.EXE e all'apertura della finestra DOS andate su Esegui -> Avvia.
BASIC
Ovvero il migliore linguaggio di programmazione che io abbia mai usato!
Dopo essere passato attraverso una iniziazione con il PL/1 (probabilmente non ne avrete mai sentito parlare) su IBM 360, il passaggio a Apple 2 con BASIC, CPU 6502 a 1MHz, 48K di RAM (non e' un errore di battitura ... ho scritto proprio "K") e salvataggio sulla cassetta "audio" (di un normale registratore), fu davvero l'inizio di una nuova era.
In effetti la potenza di calcolo disponibile passava dai 5MFLOPS dell'IBM al KFLOPS dell'Apple, 5000 volte inferiore (ma comunque sempre il doppio dell'ENIAC ;). Ricordo che con il Pentium III si e' superato il GFLOPS (FLoating point Operations Per Second).
La soddisfazione di non dover aspettare 3-4 giorni per avere il risultato dell'elaborazione (minimo una decina di fogli A3 a fisarmonica) e le imprecazioni risparmiate per non dover riscrivere un punto e virgola sulla scheda perforata e ricominciare l'attesa, fu impagabile!
QBasic
Uno dei dialetti del Basic creato nel '85 dalla Microsoft ci sara' utile per eseguire il programma e sostituire l'interprete dell'Apple. Il file CIRCE.BAS (8k) e' un adattamento della versione originale tradotta in QBasic.
Come detto sopra un semplice drag&drop del file CIRCE.BAS su QBASIC.EXE fara' aprire una finestra DOS dalla quale Esegui -> Avvia.
Useremo come esempio il solito circuito di fig.1; unica differenza e' la numerazione dei nodi che per "ragioni tecniche" in questo caso parte da 0. Il nodo "0" sara' il nodo di riferimento per i potenziali e come al solito si inseriranno i vari rami indicando nell'ordine: (dopo ogni input premere "ENTER"!)
- nodo iniziale "A"
- nodo finale "B"
- resistenza del ramo "R"
- reattanza del ramo (senza j !) "+jX"
- parte reale del generatore di tensione (verso positivo da nodo iniz. verso nodo fin.) "ER"
- parte immaginaria gen. di tensione "+jEX"
per il nostro esempio il numero di nodi della rete = 4 (0,1,2,3); inseriamo e orientiamo il ramo seguendo la successione delle correnti. La correzione, con "C", sara' possibile a fine riga (e solo per l'ultima riga inserita :(
Il risultato sara':
a inserimento terminato premeremo "S", per risolvere e la schermata sara':
a questo punto potremo aggiungere altri rami ai precedenti e risolvere ancora. I risultati saranno in forma cartesiana e polare per le correnti; solo cartesiana per i potenziali.
DOS
Per entrare realmente in questo mondo la procedura e' la seguente (per XP)
- START
- RUN
per Vista
- Tasto Windows+ R
per entambe inserire
- cmd
- <INVIO>
(supponiamo di aver salvato i files in oggetto nella cartella "BAS" sul Desktop )
all'apertura della finestra dos digitiamo il comando
>cd desktop
e avremo probabilmente
potete allungare la finestra con il mouse ... e poi entrare nella cartella "BAS" con
>cd bas
e quindi "un antico comando" ...
>dir
portera' al risultato seguente
a questo punto bastera' un
>qbasic
un ultimo "esc"
... File -> Apri ... CIRCE.BAS ->OK ... Esegui -> Avvia
e il gioco e' fatto :)
Per chi volesse una finestra DOS full screen basta un
ALT-ENTER
sia per entrare che per uscire
CIRCE.BAS
La maggiore lunghezza del codice di CIRCE rispetto a quello per Scilab e' dovuta:
alla gestione dell'input dei dati,
all'assenza nel BASIC di implementazione per il calcolo complesso,
alla necessita' di risolvere il sistema lineare a partire "da zero".
La sequenza delle operazioni per la formazione della matrice e' uguale a quella descritta per la Simulazione reti in Scilab alla quale si fa riferimento.
Il metodo numerico usato per la risoluzione e' quello di Gauss-Jordan con ricerca pivotale che, sempre a causa della mancanza dell'algebra complessa, e' chiamato a risolvere un sistema di dimensioni doppie.
... e sulla soluzione dei sistemi lineari ci sarebbero un sacco di cose da dire ... ma questa e' un'altra storia ...
... e forse un altro articolo di Electroportal.