L'immagine seguente mostra un circuito RLC. Un circuito RLC è un circuito elettrico costituito da un resistore (R), un induttore (L) e un condensatore (C), collegati in serie o in parallelo. (1)
Per semplificare i calcoli, è comune lavorare nel dominio della frequenza (Laplace) anziché nel dominio del tempo.
Il tuo compito è:
Assumere i valori R
, L
e C
come input, e restituire le tensioni VR
, VL
eVC
La conversione al dominio Laplace è la seguente:
R = R
XL = j*w*L // OK, XL = w*L, and ZL = j*XL, but don't mind this here.
XC = 1/(j*w*C) // I haven't ruined physics, it's only a minor terminology tweak
dove j = sqrt(-1)
e w = 2*pi*50
(La frequenza è 50 Hz).
L'impedenza combinata, quando i componenti sono in serie, è Z = R + XL + XC
. Potresti ricordare U = R*I
dalle lezioni di fisica delle superiori. E 'quasi la stessa, ma un po' più complessa ora: VS = Z*I
. La corrente viene calcolata dividendo la tensione VS
per l'impedenza totale Z
. Per trovare la tensione su un singolo componente, è necessario conoscere la corrente, quindi moltiplicarla per l'impedenza. Per semplicità, si presume che la tensione sia VS = 1+0*j
.
Le equazioni di cui potresti aver bisogno sono:
XL = j*w*L
XC = 1/(j*w*C)
Z = R + XL + XC // The combined impedance of the circuit
I = VS / Z // The current I (Voltage divided by impedance)
VR = I * R // Voltage over resistance (Current times resistance)
VL = I * XL // Voltage over inductor (Current times impedance)
VC = I * XC // Voltage over capacitor (Current times impedance)
L'input proviene da STDIN o come argomento di funzione. L'output / risultato deve essere composto da tre numeri complessi, in un elenco, stringa o qualunque cosa sia più pratica nella tua lingua. Non è necessario includere i nomi (ex VR = ...
), purché i risultati siano nello stesso ordine di seguito. La precisione deve essere di almeno 3 punti decimali sia per la parte reale che per quella immaginaria. L'input e l'output / i risultati possono essere in notazione scientifica se è l'impostazione predefinita nella tua lingua.
R
e L
sono >= 0
, e C > 0
. R, L, C <= inf
(o il numero più alto possibile nella tua lingua).
Un semplice test case:
R = 1, L = 1, C = 0.00001
VR = 0.0549 + 0.2277i
VL = -71.5372 +17.2353i
VC = 72.4824 -17.4630i
Per i risultati precedenti, questo potrebbe essere uno (di molti) formati di output validi:
(0.0549 + 0.2277i, -71.5372 +17.2353i, 72.4824 -17.4630i)
Alcuni formati di uscita validi per un valore di tensione sono:
1.234+i1.234, 1.23456+1.23456i, 1.2345+i*1.2345, 1.234e001+j*1.234e001.
Questo elenco non è esclusivo, quindi è possibile utilizzare altre varianti, purché la parte immaginaria sia indicata da un i
o un j
(comune in ingegneria elettrica come i
viene utilizzato per la corrente).
Per verificare il risultato per altri valori di R, L e C, il seguente deve essere vero per tutti i risultati: VR + VL + VC = 1
.
Il codice più corto in byte vince!
A proposito: Sì, è la tensione su un componente e la corrente attraverso un componente. Una tensione non ha mai attraversato nulla. =)