restart:
Комплексное сопротивление емкости
> Zc:=1/(I*w*c);# I - мнимая единица, w - круговая частота, с - емкость
Комплексное сопротивление индуктивности
> Zl:=I*w*l;# l -индуктивность
>
Комплексное сопротивление всей цепи
> Z:=r+Zc+Zl;# r - активное сопротивление цепи
Задаем ток в цепи с нулевой фазой
> i:=I1*exp(I*w*t);# задано в экспоненциальной форме комплексного числа
Напряжения на участках цепи
>
U:=i*Z;#на входе
Ur:=i*r;#на r
Uc:=i*Zc;#на c
Ul:=i*Zl;#на l
Задаем параметры цепи
>
r:=700:c:=1e-6:l:=1.3:w:=1000:I1:=0.1:# k - Масшт.коэфф.тока
#r:=1.1:c:=1:l:=1.5:w:=2:I1:=1:
k:=abs(Z):
Сдвиги фаз в градусах (по отношению к току)
>
fiu:=round(argument(Z)*180/Pi);#фаза напряжения на входе цепи
fic:=round(argument(Zc)*180/Pi);#фаза напряжения на C
fir:=round(argument(r)*180/Pi);#фаза напряжения на r
fil:=round(argument(Zl)*180/Pi);#фаза напряжения на l
Сдвиги фаз, видимые на графиках
Фаза входного напряжения по отношению к току
>
print(evalf(argument(Z)/w,3));#Период равен 2Pi/w, поэтому fiu/w
Фаза напряжения на конденсаторе по отношению к току
> print(evalf(argument(Zc)/w));
Фаза напряжения на индуктивности по отношению к току
> print(evalf(argument(Zl)/w));
Строим синусоиды тока и напряжений (видны все сдвиги фаз)
>
plot([Im(i)*k,Im(Ur),Im(U),Im(Uc),Im(Ul)],t=0..10/w,color=[cyan,blue,red,green,magenta],thickness=2,
title=`Сдвиги фаз в RC цепи: голубой - ток, синий - Ur, красный - U, зеленый - Uc, фиолетовый -Ul `);
Построение векторной диаграммы
> with(plottools):
>
a:=1.5: b:=4:d:=.1:#Параметры стрелки
a:=I1*k/20:b:=2*a:d:=.1:
Вектор тока (множим на k, чтобы длина вектора была сравнима с векторами напряжений)
> l1 := arrow([0, 0], [I1*k, 0], a, b,d, color=cyan):
Вектор входного напряжения
> l2:= arrow([0,0],[I1*Re(Z),I1*Im(Z)],a,b,d, color=red):
Векторы напряжения на емкости, на резисторе и на индуктивности
>
l3:= arrow([0,0],[I1*Re(Zc),I1*Im(Zc)],a,b,d,color=green):
l4:= arrow([0,0],[I1*r,0],a,b,d,color=blue):
l5:= arrow([0,0],[I1*Re(Zl),I1*Im(Zl)],a,b,d,color=magenta):
> with(plots):
Warning, the names arrow and changecoords have been redefined
Надписи на векторной диаграмме
>
t1:=textplot([I1*k,0,"Ток"],color=black):
t2:=textplot([I1*r,0,"Ur"],color=blue):
t3:=textplot([I1*Re(Zc),I1*Im(Zc),"Uc"],color=black):
t4:=textplot([I1*Re(Z),I1*Im(Z),"U"], color=red):
t5:=textplot([I1*Re(Zl),I1*Im(Zl),"Ul"],color=magenta):
>
plots[display](l1,l2,l3,l4,l5,
#t1,t2,t3,t4,t5,
scaling=constrained,
axes=none);
>
>
>