Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

4
voti

Un esercizio di elettrotecnica

Indice

Abstract

Risoluzione di una rete monofase in regime sinusoidale con approccio manuale e numerico con il codice Fortran Carichi_monofase.f90.

Introduzione

Come sa chi da qualche tempo frequenta Electroportal, l'obiettivo che il sito si propone è dar vita ad una community nella quale si possa creare l'unione, troppo spesso dimenticata, tra il mondo tecnico produttivo ed il mondo della scuola. In quest'ottica i partecipanti propongono loro articoli, che in genere emanano dalle discussioni del forum, dove il contatto, almeno virtualmente, si realizza. Possono essere relativi a chiarimenti od approfondimenti tecnici, affrontare analisi teoriche di un tema tecnico-scientifico, presentare un progetto, oppure risolvere classici esercizi di base, come quello qui proposto, affrontandoli sia con il tradizionale metodo manuale, che conserva ancora una profonda efficacia didattica, sia ricorrendo a implementazioni software ed a simulazioni, che moltiplicano enormemente le possibilità di analisi.

L'esercizio

Partendo da una richiesta del forum di Elettrotecnica, risolviamo il seguente esercizio.


Testo esercizio

Nel circuito di figura, alimentato dalla tensione V, si determinino le correnti assorbite dai due carichi e la corrente totale. I dati del problema sono:

  • Tensione di alimentazione \overline{V}=220\angle 10^{\circ} V
  • frequenza f = 50Hz

Dati del primo primo carico:

  • R = 10Ω;
  • X = 13,19Ω.

Dati nominali del secondo carico:

  • Pn = 1800W;
  • Vn = 230V;
  • cos\varphi=0,76 (induttivo).

Soluzione manuale

Iniziamo, calcolando l'impedenza del primo carico:


\dot{Z_{1}}=R+jX=10+j13,2\Omega =16,6\angle 52,8^{\circ} \Omega


La corrente assorbita dal carico di impedenza \dot{Z_{1}} vale:


\overline{I}_{1}=\dfrac{\overline{V}}{\dot{Z_{1}}}=\dfrac{220\angle 10^{°}}{16,6\angle 52,83^{\circ}}=13,3\angle -42,8^{\circ} A


Calcolata la corrente, possiamo determinare la potenza attiva e reattiva assorbita dal carico:


P_{1}=I^{2}_{1}R=13,3^{2}*10=1769 W


Q_{1}=I^{2}_{1}X=13,3^{2}*13,2=2335 var


Assumendo, per ipotesi, che il secondo carico abbia una impedenza costante, è lecito scrivere:


P_{2}=P_{n}\left (\dfrac{V}{V_{n}}  \right )^{2}=1800\left (\dfrac{220}{230}  \right )^{2}=1647 W


Q_{2}=P_{2}tan\varphi =1647*0,85=1400 var


La corrente assorbita dal secondo carico:


\overline{I}_{2}=\dfrac{P_{2}}{Vcos\varphi}=\dfrac{1647}{220*0,76}=9,85 A


Calcolate le potenze assorbite dai carichi, determiniamo la potenza attiva e rettiva assorbita dal circuito:


PT = P1 + P2 = 1769 + 1647 = 3416W


QT = Q1 + Q2 = 2335 + 1400 = 3735var


Nota la potenza attiva e reattiva assorbita dal sistema, possiamo calcolare la corrente assorbita:


I_{T}=\frac{\sqrt{P_{T}^{2}+Q_{T}^{2}}}{V}=\frac{\sqrt{3416^{2}+3735^{2}}}{220}=23 A


Abbiamo risolto l'esercizio.

Convenzione sui carichi

L'esercizio presenta due tipologie di carico.

Prima tipologia di carico.

Carico del quale è nota l'impedenza (resistenza e reattanza).

Seconda tipologia di carico.

Carico del quale è noto: tensione nominale, potenza nominale e fattore di potenza.

Nel seguito i due carichi saranno distinti in carico del primo tipo e carico del secondo tipo.

Il codice Fortran 90/95

Analizziamo l'approccio numerico, utilizzando il codice Fortran Carichi_monofase.f90.

!*********************************************************************************
!*																				 *
!* Programmatore: EdmondDantes											         *
!* 																				 *
!* Copyright: Nessuno															 *
!*																				 *
!* Data: 23 ottobre 2009														 *
!*																				 *
!*********************************************************************************
!
!*********************************************************************************
!* Descrizione:																	 *
!*                                                                  	         *
!* Questo codice Fortran risolve una rete monofase    			                 *
!*                                                      	                     *
!*  in regime sinusoidale con carichi collegati in parallelo.              	     *
!* 								                                                 *
!*********************************************************************************

PROGRAM Carichi_monofase

IMPLICIT NONE

REAL*8    :: Z(50,50), C(50,50), Impedenza(50), Ang_Z(50), V, Theta, &
			 Corrente(50), Fase_I(50), Potenza_P(50), &
                         Potenza_Q(50),  Potenza_PT, Potenza_QT, &
                          cosfi_T, pi
			 
INTEGER*4 :: i, j, N, M, num_tot, a

OPEN(100,FILE='Ingressi.txt',STATUS='OLD',ACTION='READ',FORM='FORMATTED')
OPEN(200,FILE='Uscite.txt',STATUS='REPLACE',ACTION='WRITE')

!----------------------------------------------------------------------------------------

!*====================================================================================
! Dizionario:
! N: numero di carichi (primo tipo) con impedenza nota;
! M: numero di carichi (secondo tipo) con dati di targa;
! N+M: carichi totali;
! V: tensione di alimentazione [V];
! Theta: fase della tensione di alimentazione [rad];
! Z: matrice che contiene le impedenze note dei carichi[ohm];
! C: matrice che contiene i dati di targa dei carichi (secondo tipo);
! Impedenza: vettore che contiene il modulo delle impedenze di 
!                 carico (primo tipo);
! Ang_Z: vettore che contiene l'argomento dell'impedenza precedente;
! Corrente e Fase_I: vettori che contengono le correnti [A] e 
!                           le fasi delle diverse correnti;
! Potenza_P e Potenza_Q: potenza attiva e reattiva assorbita dai carichi;
! Potenza_PT e Potenza_QT: potenza attiva e reattiva del sistema [W], [var];
! cosfi_T: fattore di potenza complessivo
!*======================================================================================

!---------------FASE LETTURA---------------------	
READ(100,*) N
READ(100,*) M
READ(100,*) V,Theta

num_tot=N+M

DO i=1,N

	READ(100,*) (Z(i,j), j=1,2)

END DO

DO i=1,M

	READ(100,*) (C(i,j), j=1,3)	
	
END DO
!-----------------FINE LETTURA------------------

!---------------------------------------------------------------------
! Definizione del pi-greco
pi=4*ATAN(1.)
! Calcolo mudulo e argomento delle impedenze dei carichi (primo tipo)

DO i=1,N
	
	Impedenza(i)=SQRT(Z(i,1)**2+Z(i,2)**2)

END DO

a=0
DO i=1,N

	a=a+1
	Ang_Z(i)=ATAN(Z(i,2)/Z(a,1))

END DO

!-------------------------------------------------------------

! Calcolo le correnti assorbite dai carichi (primo tipo)

DO i=1,N

	Corrente(i)= V/Impedenza(i)
	Fase_I(i)=Theta-Ang_Z(i)
    Fase_I(i)=(Fase_I(i)*180)/pi

END DO

! e la potenza assorbita

DO i=1,M

	Potenza_P(i)=C(i,2)*(V/C(i,1))**2
	Potenza_Q(i)=Potenza_P(i)*TAN(ACOS(C(I,3)))

END DO

!-------------------------------------------------------------

! Calcolo la corrente assorbita dai carichi (secondo tipo)

DO i=1,M

	Corrente(i+N)=Potenza_P(i)/(V*C(i,3))
	Fase_I(i+N)=Theta-ACOS(C(i,3))
    Fase_I(i+N)=(Fase_I(i+N)*180)/pi

END DO

! e la potenza assorbita

DO i=1,N

	Potenza_P(i+M)=Z(i,1)*Corrente(i)**2
	Potenza_Q(i+M)=Z(i,2)*Corrente(i)**2

END DO

!------------------------------------------------------------

! Calcolo della potenza totale

Potenza_PT=0
Potenza_QT=0
DO i=1,num_tot

	Potenza_PT=Potenza_PT+Potenza_P(i)
	Potenza_QT=Potenza_QT+Potenza_Q(i)

END DO

! del fattore di potenza e della corrente

cosfi_T=COS(ATAN(Potenza_QT/Potenza_PT))
Corrente(num_tot+1)=Potenza_PT/(V*cosfi_T)

!----------------------FASE DEI CALCOLI CONCLUSA--------------

!------------------Stampa dei risultati----------------------

WRITE(200,*) 'Correnti assorbite'
DO i=1,num_tot

	WRITE(200,1100) i,Corrente(i), Fase_I(i)

END DO

1100 FORMAT(1X,'I(',I2,')=',F7.2,3X,'A,',3X,'Fase =',F7.2,'°')

WRITE(200,*)
WRITE(200,*) 'Risultati totali'
WRITE(200,1200) Potenza_PT, Potenza_QT, Corrente(num_tot+1), cosfi_T
1200 FORMAT(1X,'Potenza attiva totale =',F15.2,3X,'W',/,1X,&
                     'Potenza reattiva totale =', F15.2,3X,'var',/,1X,&
                     'Corrente totale =',F10.2,3X,'A',/,1X,&
                      'cos fi_tot =',F5.2)

!------------------------------------------------------------------------------------------

CLOSE(100)
CLOSE(200)

STOP
END PROGRAM Carichi_monofase

L'utilizzo del codice è molto semplice. All'interno di una cartella salviamo il codice precedente e un file testo Ingressi.txt.


Il file Ingressi.txt contiene i dati di ingresso del nostro problema, inseriti nel seguente ordine.

  • Nella prima riga scriviamo il numero N dei carichi del primo tipo;
  • nella seconda riga scriviamo il numero M dei carichi del secondo tipo;
  • nella terza riga scriviamo i dati relativi alla tensione di alimentazione: Modulo [V] e fase [radianti];
  • nella quarta (e righe successive) scriviamo i dati relativi ai carichi del primo tipo: resistenza [Ω] e reattanza [Ω];
  • dopo aver inserito tutti i carichi del primo tipo, scriviamo i dati relati ai carichi del secondo tipo: tensione nominale [V], potenza nominale [W] e fattore di potenza (positivo se induttivo, negativo se capacitico).


Per l'esercizio in esame, il file Ingressi.txt si presenta così:

1
1
220 0.174
10 13.19
230 1800 0.76

Dopo aver compilato ed eseguito il codice Carichi_monofase.f90, apriamo il file Uscite.txt, creato dal codice stesso all'interno della cartella. Si presenta così:

 Correnti assorbite
 I( 1)=  13.29   A,   Fase = -42.86°
 I( 2)=   9.85   A,   Fase = -30.57°
 
 Risultati totali
 Potenza attiva totale =        3413.46   W
 Potenza reattiva totale =      3738.47   var
 Corrente totale =              23.01   A
 cos fi_tot = 0.67
 

Abbiamo risolto il problema.

3

Commenti e note

Inserisci un commento

di ,

Vi ringrazio per i complimenti e ringrazio admin per aver reso presentabile il mio articolo... g.schgor non so rispondere alla sua domanda con certezza assoluta. Sono giovane e ho poca esperienza. Di certo il Fortran (esiste anche la versione 2003) è uno dei linguaggi ad alto livello utilizzato nei DSP (C domina). Il Fortran ha il vantaggio di non essere aggiornato continuamente ed esiste sempre la compatibilità retroattiva con le versioni precedenti. Questo è importante in ambito scientifico...e poi continua ad essere insegnato in alcune facoltà. Il mio prossimo lavoro sarà un esercizio di impianti dove dimensionerò una linea in cavo "manualmente" (lavoro didattico) e poi scriverò un codice Fortran, il quale sceglierà anche la sezione commerciale (che fatica copiare la tabella su un file testo...), per il calcolo automatico.

Rispondi

di ,

Mi associo ai complimenti: mi hai fatto ringiovanire di quarant'anni! Ma permettimi una perplessità: è ancora attuale proporre FORTRAN? Da oltre 20anni linguaggi immediati (non "programmi") facilitano enormemente il lavoro: io per esempio sono un patito di MathCad (che uso da quando è nato, 1a edizione in DOS 1985!). Che ne pensi?

Rispondi

di ,

Complimenti, articolo davvero ben fatto! Un compito simile l'ho fatto a scuola un mesetto fa! ^^

Rispondi

Inserisci un commento

Per inserire commenti è necessario iscriversi ad ElectroYou. Se sei già iscritto, effettua il login.