На главную

Построение векторной диаграммы последовательной RLC цепи

> restart:

> with(plottools):

> with(plots):

> R:=75:k:=100: # к - масштабный коэффициент тока на векторной диаграмме
L:=5*10^(-3):C:=10^(-6):# Заданы параметры схемы R,L C.
i:=1: w:=10^4: # Задан ток=1 и круговая частота
Z:=R+I*(w*L-1/(w*C));# Z - полное сопротивление цепи, I - мнимая единица

Z := 75-50*I

> Ubx:=i*Z; # Определение входного напряжения
evalf(abs(Ubx),2);# Расчет модуля входного напряжения

Ubx := 75-50*I

90.

> UR:=i*R;UC:=i*1/(I*w*C);UL:=i*I*w*L;# Определение напряжений на участках цепи

UR := 75

UC := -100*I

UL := 50*I

> evalf(abs(UR),2);# Модуль напряжения на резисторе

75.

> evalf(abs(UC));# Модуль напряжения на конденсаторе

100.

> evalf(abs(UL));# Модуль напряжения на индуктивности

50.

> # Подготовка к построению векторных диаграмм
a:=0:b:=abs(i*100):sm:=b/10:
#sm- смещение надписей
wb:=b/60:# wb - width of the body of the arrow
wh:=b/15:# wh - width of the head of the arrow
hh:=0.1:# hh - height of the head of the arrow as a ratio of the length of the body
l1 := arrow([a,a], [Re(i)*k,Im(i)*k], wb,wh,hh, color=green):
l2 := arrow([a,a], [Re(UC),Im(UC)], wb,wh,hh, color=blue):
l3 := arrow([a,a], [Re(UL),Im(UL)], wb,wh,hh, color=blue):
l4 := arrow([a,a], [Re(UR),Im(UR)], wb,wh,hh, color=blue):
l5 := arrow([a,a], [Re(Ubx),Im(Ubx)], wb,wh,hh, color=red):
l6 := arrow([Re(Ubx),Im(Ubx)], [Re(UR),Im(UR)], 0,0,0, color=blue):
Два варианта:
if abs(UL)<abs(UC) then
l7 := arrow([Re(UC),Im(UC)], [Re(UC)+Re(UL),Im(UC)+Im(UL)], wb,wh,hh, color=blue):
t6:=textplot([Re(UC)+Re(UL)-2*sm,Im(UC)+Im(UL)+sm,`Ul+Uc`],font=[COURIER,BOLD,14]):
else
l7 := arrow([Re(UL),Im(UL)], [Re(UC)+Re(UL),Im(UC)+Im(UL)], wb,wh,hh, color=blue):
t6:=textplot([Re(UC)+Re(UL)-2*sm,Im(UC)+Im(UL)-sm,`Ul+Uc`],font=[COURIER,BOLD,14]):
fi:
Конец вариантов
l8 := arrow([Re(UC)+Re(UL),Im(UC)+Im(UL)], [Re(Ubx),Im(Ubx)], 0,0,0, color=blue):
l9 := arrow([a,a], [Re(UC)+Re(UL),Im(UC)+Im(UL)], wb,wh,hh, color=blue):
t1:=textplot([Re(i)*k+sm,Im(i)*k,`I `],
font=[COURIER,BOLD,14]):
t2:=textplot([Re(UL)+sm,Im(UL),`Ul`],font=[COURIER,BOLD,14]):
t3:=textplot([Re(UC)+sm,Im(UC),`Uc`],font=[COURIER,BOLD,14]):
t4:=textplot([Re(UR)-sm,Im(UR)+sm,`Ur`],font=[COURIER,BOLD,14]):
t5:=textplot([Re(Ubx)+sm,Im(Ubx)-sm,`Uвх`],font=[COURIER,BOLD,14]):
if abs(abs(UL)-abs(UC))<0.11 then
l7 := arrow([Re(UC),Im(UC)], [Re(UC)+Re(UL),Im(UC)+Im(UL)], 0,0,0, color=blue):
t6:=textplot([Re(UC)+Re(UL)-sm,Im(UC)+Im(UL)-sm,``]):
fi:

> # Отображение векторной диаграммы
plots[display](l4,l2,l3,l1,l5,l6,l7,l8,l9,t1,t2,t3,t4,t5,t6,title=`Векторная диаграмма`,
titlefont= [TIMES,ITALIC,14],axes=none,
scaling=constrained);

[Maple Plot]

>

>