На рисунке ниже показана схема RLC. Схема RLC - это электрическая цепь, состоящая из резистора (R), индуктора (L) и конденсатора (C), соединенных последовательно или параллельно. (1)
Чтобы упростить вычисления, принято работать в частотной (лапласовой) области вместо временной.
Ваша задача:
Возьмите значения R
, L
и в C
качестве входных данных, и возвращать напряжения VR
, VL
иVC
Преобразование в область Лапласа происходит следующим образом:
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
где j = sqrt(-1)
и w = 2*pi*50
(частота 50 Гц).
Совокупное сопротивление, когда компоненты последовательно Z = R + XL + XC
. Возможно, вы помните U = R*I
лекции по физике в средней школе. Это почти то же самое, но немного более сложным в настоящее время: VS = Z*I
. Ток рассчитывается путем деления напряжения VS
на полное сопротивление Z
. Чтобы найти напряжение на одном компоненте, вам нужно знать ток, а затем умножить его на полное сопротивление. Для простоты напряжение предполагается равным VS = 1+0*j
.
Уравнения, которые вам могут понадобиться:
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)
Входные данные либо из STDIN, либо в качестве аргументов функции. Вывод / результат должен состоять из трех комплексных чисел в виде списка, строки или чего-либо более практичного на вашем языке. Не обязательно включать имена (ex VR = ...
), если результаты в том же порядке, что и ниже. Точность должна составлять не менее 3 десятичных знаков как для вещественной, так и для мнимой части. Ввод и вывод / результаты могут быть в научной записи, если это по умолчанию на вашем языке.
R
и L
есть >= 0
, и C > 0
. R, L, C <= inf
(или максимально возможное число на вашем языке).
Простой тестовый пример:
R = 1, L = 1, C = 0.00001
VR = 0.0549 + 0.2277i
VL = -71.5372 +17.2353i
VC = 72.4824 -17.4630i
Для приведенных выше результатов это может быть один (из многих) допустимый формат вывода:
(0.0549 + 0.2277i, -71.5372 +17.2353i, 72.4824 -17.4630i)
Некоторые допустимые выходные форматы для одного значения напряжения:
1.234+i1.234, 1.23456+1.23456i, 1.2345+i*1.2345, 1.234e001+j*1.234e001.
Этот список не является исключительным, поэтому могут использоваться другие варианты, если мнимая часть обозначена символом i
или или j
(обычно используется в электротехнике для обозначения i
тока).
Чтобы проверить результат для других значений R, L и С, следующее должно быть истинным для всех результатов: VR + VL + VC = 1
.
Самый короткий код в байтах выигрывает!
Кстати: Да, это напряжение через компонент, и ток через компонент. Напряжение никогда ничего не проходило. знак равно