[:it]TPSIT – Windows: server per le reti e per il Web – Server Web – windows server 2012[:]

[:it]Nel caso in cui si volesse installare il server web su Windows server, sempre dal Server Manager si installano i nuovi ruoli.

Quindi con ruolo di identificano i vari servizi che si vogliono attivare.

Ad esempio dopo aver installato il Windows server, il DNS ed il DHCP si presenterà la seguente schermata:

Digitando nel browser

http://localhost si presenterà la seguente schermata:

[:]

Pubblicato in Senza categoria | Lascia un commento

[:it]TPSIT – Windows: server per le reti e per il Web – Impostazione ip statico[:]

[:it]Windows server 2012 si presenta in questa maniera:

La dashboard o pannello di controllo nella seguente:

L’impostazione di un ip statico è fondamentale per impostare il DHCP.

Per farlo, spostando il mouse in alto a destra si apre il pannello che permette di accedere al pannello di controllo.

  • Rete e Internet
  • Centro di connessione di rete e condivisione
  • Modifica impostazione scheda (nella lista a sinistra)
  • Si selezione Ethernet
  • nella lista si sceglie Protocollo Internet versione 4 (TCP/IP v4)
  • Proprietà e si aprirà la seguente maschera:

Si può ad esempio impostare nella seguente maniera:

A questi punto il DHCP risulta funzionante.[:]

Pubblicato in Senza categoria | Lascia un commento

[:it]TPSIT – Programmazione di rete- Esericizi su Programmazione di rete e applicazioni client/server[:]

[:it]

Salvator Dalì

1. Realizzare un’applicazione C/S che simula il distributore di etichette numerate presente in molti negozi o sportelli di uffici pubblici. Il programma server rappresenta il distributore di etichette numerate. I programmi client si connettono al server per ottenere un nuovo numero. Il server gestisce i numeri in maniera incrementale e il contatore viene inizializzato al valore 1 quando il server viene avviato.

2. Modificare il programma client presentato nel Paragrafo 2 per inserire da linea di comando il nome del server e della porta a cui connettersi. Il programma client deve essere poi eseguito usando il comando java ClientClock localhost 3333 (si ricordi che i valori passati da linea di comando al programma Java sono contenuti nell’array args[ ]).

3. Realizzare la classe server e la classe client in modo che, a connessione avvenuta, il server invii al client il messaggio di benvenuto: “Hello, World!”. Il client, ricevuto il messaggio, termina la connessione, mentre il server resta in attesa.

4. Simulare una postazione Bancomat per la distribuzione di banconote. Per semplicità, si suppone che l’apparecchio abbia a disposizione 5000 banconote da 50 euro e che l’utente possa richiedere il prelievo di importi espressi in multipli di 50: 50, 100, 150, 200, ecc. con un massimo di 500. Il programma client invia la cifra e ottiene dal programma server il numero di banconote da 50 euro che possono essere prelevate. Quando le banconote sono esaurite, il server restituisce un messaggio di prelievo non consentito.

5. Realizzare un’applicazione C/S con le seguenti funzionalità: – il client invia al server un numero – il server calcola il doppio del numero e lo restituisce al client. I numeri possono essere inviati come stringhe usando il comando println. Alla ricezione della stringa il programma esegue la conversione in un numero intero.

6. Realizzare un’applicazione C/S con le seguenti funzionalità: – il client invia al server due numeri in sequenza (con due operazioni di println), – il server legge i due numeri (con due operazioni di readLine), calcola il prodotto e lo restituisce al client.[:]

Pubblicato in Senza categoria | Lascia un commento

[:it]TPSIT – Programmazione di rete – Realizzazione di una chat [:]

[:it]

Salvator Dalì

Costruire un’applicazione client/server che realizza una chat, consentendo di scambiare messaggi tra un client e un server. Il client può terminare la connessione inserendo la parola FINE.

La chat viene realizzata con due programmi di rete: un programma server e un programma client. Le due persone che vogliono partecipare alla chat devono disporre di uno dei due programmi. La persona che esegue il programma server resta in attesa che l’altra persona si colleghi usando il programma client. Quando la connessione è stata attivata, la chat può avere inizio.

Si suppone che la chat venga eseguita all’interno della finestra del Prompt dei comandi di Windows o nella finestra Terminale di Linux. I messaggi da inviare vengono letti da tastiera e i messaggi ricevuti vengono visualizzati all’interno della finestra. Dopo aver stabilito la connessione, la chat viene gestita in modo sequenziale, cioè le operazioni sono svolte nel seguente ordine, stabilendo un protocollo di comunicazione:

[client]: legge il messaggio da tastiera e lo invia al server.

[server]: riceve il messaggio e lo visualizza.

[server]: legge il messaggio da tastiera e lo invia al client.

[client]: riceve il messaggio e lo visualizza.

La sequenza precedente viene realizzata con un ciclo infinito sia sul client che sul server. Il ciclo nel programma client termina quando si inserisce da tastiera la parola FINE, come mostra il seguente frammento di codice.

while (true) {

// legge il messaggio da tastiera

msgDaInviare = tastiera.readLine();
// interrompe la chat

if (msgDaInviare.equals(“FINE”))

break;
// invia il messaggio al server
// riceve il messaggio e lo visualizza
}

Si osservi che anche la parola FINE rappresenta un elemento del protocollo di comunicazione.
Il ciclo nel programma server termina quando viene ricevuto il valore null dal flusso di input della socket. Questo indica che il client si è sconnesso.

while (true) {

// riceve il messaggio

msgRicevuto = sIN.readLine();

if (msgRicevuto == null)

{ System.out.println(“Il client ha chiuso la chat.”);

break; }
// visualizza il messaggio
// legge il messaggio da tastiera
// invia il messaggio al client
}

Sia il client che il server devono gestire tre flussi di dati: – flusso di lettura di dati da tastiera – flusso di lettura di dati dalla socket – flusso di scrittura di dati sulla socket.

Questi tre flussi sono gestiti usando i seguenti oggetti:

In particolare il server deve inizializzare i flussi nel seguente ordine:

// flusso in uscita su socket

out = connessione.getOutputStream();

sOUT = new PrintWriter(out);

// flusso in ingresso da socket

in = new InputStreamReader(connessione.getInputStream());

sIN = new BufferedReader(in);

// flusso in ingresso da tastiera

input = new InputStreamReader(System.in);

tastiera = new BufferedReader(input);

Il client deve inizializzare i flussi nel seguente ordine:

// flusso in ingresso da socket

in = new InputStreamReader(connessione.getInputStream());

sIN = new BufferedReader(in);

// flusso in uscita su socket out = connessione.getOutputStream();

sOUT = new PrintWriter(out);

// flusso in ingresso da tastiera

input = new InputStreamReader(System.in);

tastiera = new BufferedReader(input);

Come si può notare il server inizializza prima il flusso in uscita e poi il flusso in ingresso, mentre il client fa l’opposto.

Per fare in modo che l’invio dei messaggi avvenga immediatamente si devono usare le seguenti istruzioni:

sOUT.println(msgDaInviare);

sOUT.flush();

Il metodo flush serve per svuotare il buffer del flusso di output e inviare i dati. Di seguito sono riportati i programmi completi, lato server e lato client.

Ecco il sorgente sa parte server:

// chat con una sola connessione
import java.net.*;
import java.io.*;
public class ServerChat {
public static void main(String args[])
{
ServerSocket sSocket;
Socket connessione = null;
int port = 2345;
InputStreamReader in, input;
BufferedReader sIN, tastiera;
OutputStream out;
PrintWriter sOUT;
String msgDaInviare;
String msgRicevuto;
try
{
sSocket = new ServerSocket(port);
System.out.println(“In attesa di connessioni…”);
// ciclo infinito
while (true)
{
connessione = sSocket.accept();
// flusso in uscita su socket
out = connessione.getOutputStream();
sOUT = new PrintWriter(out);
// flusso in ingresso da socket
in = new InputStreamReader(connessione.getInputStream());
sIN = new BufferedReader(in);
// flusso in ingresso da tastiera
input = new InputStreamReader(System.in);
tastiera = new BufferedReader(input);
System.out.println(“Chat inizializzata.”);
while (true) {
// stampa il messaggio ricevuto
msgRicevuto = sIN.readLine();
if (msgRicevuto == null)
{
System.out.println(“Il client ha chiuso la chat.”);
break;
}
System.out.println(“>> ” + msgRicevuto);
// legge il messaggio da tastiera
msgDaInviare = tastiera.readLine();
// invia il messaggio
sOUT.println(msgDaInviare);
sOUT.flush();
}
}
}
catch (IOException e)
{ System.out.println(e); }
try { connessione.close(); }
catch (IOException e)
{ System.out.println(e); }
}import java.net.*;
import java.io.*;
public class ClientChat {
public static void main(String[] args)
{
Socket connessione = null;
String server = “localhost”;
int port = 2345;
InputStreamReader in, input;
BufferedReader sIN, tastiera;
OutputStream out;
PrintWriter sOUT;
String msgDaInviare;
String msgRicevuto;
try {
connessione = new Socket(server, port);
System.out.println(“Connessione eseguita.”);
}
catch (IOException e)
{
System.out.println(e);
System.exit(-1);
}
try {
// flusso in ingresso da socket
in = new InputStreamReader(connessione.getInputStream());
sIN = new BufferedReader(in);
// flusso in uscita su socket
out = connessione.getOutputStream();
sOUT = new PrintWriter(out);
// flusso in ingresso da tastiera
input = new InputStreamReader(System.in);
tastiera = new BufferedReader(input);
System.out.println(“Chat inizializzata.”);
while (true)
{
// legge il messaggio da tastiera
msgDaInviare = tastiera.readLine();
// interrompe la chat
if (msgDaInviare.equals(“FINE”)) break;
// invia il messaggio
sOUT.println(msgDaInviare);
sOUT.flush();
// stampa il messaggio ricevuto
msgRicevuto = sIN.readLine();
System.out.println(“>> ” + msgRicevuto);
}
}
catch (IOException e)
{
System.out.println(e);
}
try {
connessione.close();
}
catch (IOException e)
{
System.out.println(e);
}
}
}

Ecco il sorgente da parte client:

import java.net.*;
import java.io.*;
public class ClientChat {
public static void main(String[] args)
{
Socket connessione = null;
String server = “localhost”;
int port = 2345;
InputStreamReader in, input;
BufferedReader sIN, tastiera;
OutputStream out;
PrintWriter sOUT;
String msgDaInviare;
String msgRicevuto;
try {
connessione = new Socket(server, port);
System.out.println(“Connessione eseguita.”);
}
catch (IOException e)
{
System.out.println(e);
System.exit(-1);
}
try {
// flusso in ingresso da socket
in = new InputStreamReader(connessione.getInputStream());
sIN = new BufferedReader(in);
// flusso in uscita su socket
out = connessione.getOutputStream();
sOUT = new PrintWriter(out);
// flusso in ingresso da tastiera
input = new InputStreamReader(System.in);
tastiera = new BufferedReader(input);
System.out.println(“Chat inizializzata.”);
while (true)
{
// legge il messaggio da tastiera
msgDaInviare = tastiera.readLine();
// interrompe la chat
if (msgDaInviare.equals(“FINE”)) break;
// invia il messaggio
sOUT.println(msgDaInviare);
sOUT.flush();
// stampa il messaggio ricevuto
msgRicevuto = sIN.readLine();
System.out.println(“>> ” + msgRicevuto);
}
}
catch (IOException e)
{
System.out.println(e);
}
try {
connessione.close();
}
catch (IOException e)
{
System.out.println(e);
}
}
}

 [:]

Pubblicato in Senza categoria | Lascia un commento

[:it]TPSIT – Programmazione di rete – Esempio applicazione client-server[:]

[:it]

Hans Arp

Realizzare un’applicazione client/server utile ai client per sincronizzare la data e l’ora con quella di un server. Il programma client si collega al server per ottenere le informazioni sulla data e sull’ora correnti. Il server, ogni volta che riceve una richiesta di connessione, invia al programma client l’informazione richiesta.

Programma Server (ServerClock.java)

Programma client

Per eseguire la precedente applicazione si devono usare due finestre del Prompt dei comandi in Windows, oppure due finestre Terminale in Linux. Nella prima finestra si esegue il programma server. Il server si ferma in attesa di ricevere le connessioni. A questo punto, nella seconda finestra, si esegue il programma client. Il risultato è che il client si collega al server sulla porta 3333. Il server crea una nuova connessione e invia al client l’informazione sulla data corrente. Successivamente interrompe la connessione e si mette in attesa di una nuova richiesta. Il client legge i dati che sono stati inviati dal server, li mostra a video e poi termina la connessione. Per interrompere l’esecuzione del programma server si deve digitare la combinazione di tasti Ctrl + C.

Oppure usando eclipse si riesce a riesce a simulare il comportamento.

Se si dispone di una rete con almeno due computer collegati, si può eseguire l’applicazione C/S in modo distribuito. Il programma server può essere eseguito su un computer di cui si conosce l’indirizzo IP oppure il nome.

Prima di eseguire il programma client si deve impostare nel codice il corretto parametro di connessione per l’indirizzo del server.

Per esempio:

String server = “192.168.1.2”;

Il programma client ricompilato può essere eseguito su un computer diverso da quello del server.
Ricapitolando, le fasi che portano alla creazione di una connessione possono essere schematizzate con la seguente sequenza di operazioni.

• Lato server: il programma server resta in attesa di una connessione su una determinata porta, mediante il comando accept della ServerSocket.

• Lato client: il programma client avvia un tentativo di connessione.

• Lato server: il programma server accetta la connessione e crea un oggetto Socket per comunicare con il client.

• Lato client: quando la connessione viene accettata, il programma client crea un oggetto Socket per comunicare con il server

Dopo aver stabilito la connessione, il programma client e server possono comunicare scrivendo e leggendo dagli stream associati alle rispettive socket.

Al termine della comunicazione, entrambi chiudono il canale di connessione.

 [:]

Pubblicato in Senza categoria | Lascia un commento

[:it]TPSIT – Programmazione di rete – Applicazioni client/server[:]

[:it]

Hans Arp

La realizzazione di applicazioni client/server in Java si basa sulle classi contenute nel package java.net.

In quasi tutte le applicazioni di rete viene anche utilizzato il package java.io per gestire i flussi di comunicazione in input e output.

È quindi necessario importare i precedenti package in ogni programma in cui si vogliono eseguire operazioni con la rete.

import java.net.*;

import java.io.*;

I programmi client si differenziano dai programmi server per la loro struttura; la loro implementazione in Java è leggermente diversa. La comunicazione avviene tramite le entità chiamate socket (letteralmente, presa di corrente).
La socket è un punto da cui il programma può inviare i dati in rete e può ricevere i dati dalla rete.

Programma client

L’apertura di una connessione corrisponde a una richiesta inviata al programma server tramite la classe Socket.

connessione = new Socket(server, porta);

I due parametri da indicare al costruttore sono l’indirizzo del server, specificato come nome oppure come indirizzo IP del server, e la porta. Il risultato dell’apertura di una connessione è la creazione di una socket sul computer client che permette al programma di comunicare con la corrispondente socket presente sul computer server.

L’invio e la ricezione dei dati sono gestite in maniera simile alla scrittura e alla lettura dei file di dati, tramite uno stream. A ogni socket sono associati un flusso di input, da cui i programmi possono ricevere i dati, e un flusso di output, su cui i programmi possono inviare i dati in rete. Le seguenti istruzioni mostrano come viene impostato il flusso di input nel caso in cui la comunicazione avvenga con sequenze di caratteri:

InputStream in = connessione.getInputStream();

InputStreamReader input = new InputStreamReader(in);

BufferedReader sIN = new BufferedReader(input);

Il metodo getInputStream restituisce il flusso in input associato alla socket. Il programma utilizza il metodo readLine della classe BufferedReader per ricevere i dati.

Le seguenti istruzioni mostrano come viene impostato il flusso di output nel caso in cui la comunicazione avvenga con sequenze di caratteri:

OutputStream out = connessione.getOutputStream();

PrintWriter sOUT = new PrintWriter(out);

Il metodo getOutputStream restituisce il flusso in output associato alla socket.

Il programma utilizza il metodo println della classe PrintWriter per inviare i dati.

La chiusura della connessione viene eseguita quando si vuole interrompere la comunicazione di rete. Si deve richiamare il metodo close nel seguente modo:

connessione.close();

Programma server

I programmi server hanno la caratteristica di restare attivi in attesa di ricevere una richiesta di connessione da parte dei client. Questo comportamento viene realizzato con una socket particolare implementata con la classe ServerSocket.

La creazione di una socket di tipo server viene eseguita con la seguente istruzione:

ServerSocket sSocket = new ServerSocket(porta);

Il parametro indica la porta che viene riservata all’applicazione per ricevere le richieste dagli altri computer. Il numero di porta deve essere superiore a 1023.

Dopo aver creato la ServerSocket, il programma server si mette in attesa che un client si colleghi. Il metodo accept della classe ServerSocket è utilizzato per bloccare il programma server finché viene intercettata una richiesta di connessione. Quando giunge la richiesta, il metodo accept restituisce una socket che gestirà la connessione con il client.

Tramite questa nuova socket, il programma server potrà inviare e ricevere dati dal programma client.

La connessione viene chiusa con il metodo close. Il codice che riassume il comportamento del server è il seguente:

while (true) { Socket connessione = sSocket.accept();

// invio-ricezione dati tramite la connessione

connessione.close(); }

Tutte le operazioni eseguite con le socket possono generare delle eccezioni, principalmente eccezioni di tipo IOException. È quindi necessario racchiudere le istruzioni nei blocchi try…catch per evitare che il programma venga interrotto bruscamente.[:]

Pubblicato in Senza categoria | Lascia un commento

[:it]TPSIT – Programmazione di rete – programmi e applicazioni per le reti[:]

[:it]

Hans Arp

Java è un linguaggio nato per realizzare applicazioni in rete e quindi supporta tutte le funzionalità necessarie per gestire la programmazione distribuita tra i computer di una rete (network programming). Si possono creare programmi che utilizzano il modello client/server e che si basano sui protocolli di rete TCP/IP.

L’obiettivo della programmazione di rete è quello di far comunicare tra loro due o più programmi, in esecuzione su elaboratori differenti e collegati tra loro tramite i dispositivi di rete. Non importa se la rete è LAN, WAN oppure è Internet.

Per costruire un’applicazione in rete si devono realizzare almeno un programma server e un programma client. La comunicazione tra i due programmi viene gestita tramite un insieme ben definito di regole, chiamate protocolli.

In un’architettura TCP/IP, i programmi server e client si posizionano sul livello 5 e riescono a comunicare utilizzando i servizi offerti dagli altri livelli dell’architettura. I programmi si interfacciano direttamente solo con il livello 4, devono quindi conoscere come interagire con questo livello. Per quanto riguarda i livelli sottostanti, le applicazioni possono non interessarsi di come sono realizzati.

In un’architettura TCP/IP, le informazioni vengono spedite indicando il computer di destinazione con un indirizzo IP. Questa informazione non è però sufficiente per far comunicare tra loro due programmi client/server. Infatti su uno stesso computer potrebbero essere in esecuzione diverse applicazioni e quindi è necessario un modo per poter indicare quale di questi programmi è il corretto destinatario. Questo problema viene risolto dal livello 4 utilizzando le porte. Come abbiamo visto nei capitoli precedenti, una porta è un meccanismo utilizzato per identificare una specifica applicazione di rete su un computer. Si ricordi che le porte sono identificate con numeri da 0 a 65.535 e che le porte da 0 a 1023, dette well known ports, sono riservate per protocolli predefiniti e pertanto non possono essere utilizzate dalle applicazioni di rete.[:]

Pubblicato in Senza categoria | Lascia un commento

[:it]TPSIT – Windows: server per le reti e per il Web – Il trasferimento dei file [:]

[:it]Il protocollo che consente di trasferire i file in una rete si chiama FTP (File Transfer Protocol, protocollo per il trasferimento dei dati): esso viene utilizzato sia nelle reti locali che in Internet ed è solitamente associato alla porta 21.

L’operazione di trasferimento dei file da un computer host prende il nome di download (scaricare), mentre l’operazione opposta, con la quale si mandano i file ad un host, si chiama upload (caricare). Sul computer remoto deve essere attivo un server FTP, mentre l’utente effettua le operazioni di trasferimento da o verso il proprio computer attraverso un pogramma denominato client FTP.

Sono disponibili molti software con le funzionalità di client FTP, alcuni dei quali possono essere liberamente scaricati da Internet. Il browser Internet Explorer permette di trasferire file da una cartella remota a una locale, o viceversa, utilizzando un’interfaccia simile a quella che si utilizza per la gestione dei file sul disco del proprio computer (Esplora risorse).

Tuttavia, quando si devono eseguire operazioni complesse, è opportuno utilizzare uno specifico programma client FTP.

Installare il server FTP

Nel sistema operativo Windows Server il protocollo FTP dipende dal server Web IIS: quindi per attivare il servizio FTP è necessario che il server Web sia installato e correttamente configurato. La procedura da seguire comprende i seguenti passi:

1) Scegliere l’opzione Aggiungi ruoli e funzionalità (nella finestra Dashboard di Server Manager, oppure dal menu Gestione in alto a destra) che attiva la procedura guidata per l’installazione.

2) Nella finestra Selezione ruoli server, espandere la voce Server Web (IIS) (Installato), facendo clic sulla freccia bianca.

3) Selezionare Server FTP.

Dopo l’installazione, la configurazione e la gestione del server FTP avviene dallo stesso strumento Gestione Internet Information Services (IIS), nel menu Strumenti in alto a destra, utilizzato nel paragrafo precedente per il server Web. Nel pannello centrale è ora presente una nuova sezione di icone identificata con il nome FTP. In particolare l’opzione Autenticazione FTP consente di abilitare l’autenticazione dell’utente anonymous.

Vediamo ora come creare una cartella sul disco fisso e renderla disponibile attraverso il servizio FTP. Prima di tutto occorre creare la cartella, per esempio C:/FTP. Nel riquadro di spostamento Connessioni, a sinistra, facciamo clic con il tasto destro del mouse sul nome del server e, dal menu che si apre, scegliamo Aggiungi sito FTP.

Nelle finestre di dialogo successive per la creazione guidata del sito FTP, occorre effettuare le seguenti impostazioni:

• fornire un nome al sito, per esempio Default FTP;

• associare ad esso il percorso fisico di una cartella, per esempio la cartella C:/FTP, creata sul disco del server in precedenza;

• associare un indirizzo IP oppure un nome di host virtuale;

• mettere il segno di spunta all’opzione Avvia sito FTP automaticamente;

• impostare la connessione protetta SSL se si possiede un certificato oppure scegliere Nessuna connessione SSL;

• decidere il tipo di autenticazione (Anonimo e Di base);

• consentire l’accesso a tutti gli utenti o ad utenti specificati;

• impostare l’autorizzazione in lettura o anche in scrittura.

Dopo questa creazione, il sito FTP compare a sinistra nel riquadro di spostamento. Dopo averlo selezionato, si può scegliere l’opzione Esplora, nel riquadro Azioni a destra, per visualizzare il contenuto della cartella fisica associata al sito FTP.

Possiamo ora verificare il corretto funzionamento della condivisione, attraverso la seguente linea di comando, che specifica l’indirizzo del server sul quale è attivo il servizio FTP:

ftp IndirizzoServer

Inserendo il nome utente anonymous e la password anonymous, si ottiene l’accesso al sistema. La connessione termina con il comando quit.
L’accesso al servizio può essere fatto anche dal browser, scrivendo nella casella dell’indirizzo

ftp:// seguito dall’indirizzo del server; per esempio, per il server locale si deve scrivere:
ftp://localhost
Nel browser Internet Explorer, per visualizzare la barra dei menu occorre premere il tasto Alt. Nel menu Visualizza si può scegliere Apri sito FTP in Esplora file per ottenere la visualizzazione del sito FTP come se fosse una cartella del disco. Su di essa si possono fare le stesse operazioni che si fanno sulle normali cartelle di Windows.
Per avviare (o riavviare o arrestare) il server FTP, nella finestra di Gestione IIS, occorre selezionare il sito FTP nel riquadro di spostamento a sinistra e poi scegliere l’opzione Avvia (o Riavvia o Arresta) nella sezione Gestisci sito FTP nel riquadro Azioni a destra.

Principali comandi ftp[:]

Pubblicato in Senza categoria | Lascia un commento

[:it]TPSIT – Fisica – Scarica di un condensatore[:]

[:it]Dopo aver caricato un condensatore per mezzo di un generatore, si disinserisce il generatore. Il condensatore si scarica sulla resistenza R, dando origine per un intervallo di tempo, la cui durata dipende dai valori di R e C inseriti nel circuito, a una corrente d’intensità i variabile nel tempo. Contemporaneamente la carica sulle armature e la d.d.p. tra le stesse, diminuiscono dai valori massimi iniziali, Cf ed f rispettivamente, a zero.

In questo caso l’equazione del circuito risulta:

\cfrac{q}{C}=Ri

ed i=-\cfrac{\delta q}{\delta t}, il segno è negativo in quanto la carica del condensatore tende a diminuire;

per cui l’equazione differenziale diventa:

\cfrac{q}{C}=-R\cfrac{\delta q}{\delta t}

q'=-\cfrac{q}{RC}

applicando il metodo della separazione delle variabili si ha:

\cfrac{dq}{q}=-\cfrac{1}{RC}dt

integrando da entrambi i membri si ha:

\int \cfrac{dq}{q}=\int -\cfrac{1}{RC}dt

\ln q=-\cfrac{1}{RC}t+c

passando dal logaritmo all’esponenziale si ha:

q=ce^{-\frac{1}{RC}}

per calcolare la costante si si che quando tolgo il generatore di tensione la carica sulle armature del condensatore vale: Cf.

Per cui c=Cf.

q=Cfe^{-\frac{1}{RC}} (1)

sapendo sempre che q=CV la relazione precedente diventa:

V=fe^{-\frac{t}{\tau }}

inoltre derivando la (1) mi trovo la corrente che risulta:

i=\cfrac{f}{R}e^{-\frac{t}{\tau }}.

Conclusione

Tutte le grndezze q,V ed i, decrescono esponenzialmente col tempo. In pratica dopo un tempo \tau =RC sono pressoché nulle![:]

Pubblicato in Senza categoria | Lascia un commento

[:it]TPSIT – Fisica- Carica di un condensatore[:]

[:it]Collegando un condensatore di capacità C, inizialmente scarico, attraverso una resistenza R ai poli di una batteria (corrente continua) di f.e.m f, la carica q sulle armature, tende a raggiungere il valore nominale fC.

Tenendo conto che tra le armature del condensatore c’è una caduta i tensione q/C, si ha:

f-\cfrac{q}{C}=Ri

sapendo che:

i=\cfrac{\delta q}{\delta t}

si deve risolvere la seguente equazione differenziale:

f-\cfrac{q}{C}=R\cfrac{\delta q}{\delta t}

è un’equazione differenziale lineare completa che si può risolvere mediante il metodo di Lagrange ossia data:

y'+a(x)y=b(x)

essa ha soluzione generica:

y=e^{-\int a(x)dx}\cdot\left [ \int b(x)e^{\int a(x))dx}+c \right ]

applicandola alle variabili in gioco si ha:

q'+\cfrac{1}{RC}q=\cfrac{f}{R}

dove a(t)=\cfrac{1}{RC} e b(t)=\cfrac{f}{R}

applicando la soluzione generica si ha:

q=e^{-\int \frac{1}{RC}dt}\cdot \left [ \int \frac{f}{R}e^{\int \frac{1}{RC}dt}+c \right ]

q=e^{-\frac{1}{RC}t}\cdot \left [ \int \frac{f}{R}e^{\frac{1}{RC}t}+c \right ]=e^{-\frac{1}{RC}t}\cdot\left [ \frac{f}{R}\cdot RC e^{\frac{1}{RC}t}+c \right ]

q=fC+ce^{-\frac{1}{RC}t}

sapendo che all’inizio, ossia al tempo t, il condensatore è scarico allora q(0)=0 e sostituendo tale condizione all’equazione trovata si ha:

0=fC+c

c=-fC

in definitiva:

q=Cf\left ( 1-e^{-\frac{t}{RC}} \right ) (1)

e si indica con \tau =RC la costante di tempo.

sapendo che C=\cfrac{q}{V} la d.d.p. tra le armature del condensatore è perciò:

V=f\left ( 1-e^{-\frac{t}{\tau }} \right )

La corrente i=\cfrac{\delta q}{\delta t}

per cui derivando la (1) si ha:

i=\frac{Cf}{RC}e^{-\frac{t}{\tau }}=\cfrac{f}{R}e^{-\frac{t}{\tau }}

La rappresentazione grafica è la seguente:

 [:]

Pubblicato in Senza categoria | Lascia un commento