This commit is contained in:
2026-01-07 19:20:04 +03:00
parent 69fa94600a
commit 4b438824ee
195 changed files with 0 additions and 0 deletions

View File

@@ -0,0 +1,326 @@
#import "@preview/tablex:0.0.9": tablex, colspanx, rowspanx
#set text(size: 1.3em)
#set page(footer: context {
if counter(page).get().first() > 1 [
#align(left)[
#counter(page).display("1")
]
]
})
#table(stroke: none, fill: none, columns: 2, gutter: 70pt)[#text(size: 0.7em)[#align(bottom)[#align(center)[*Университет ИТМО \ Физико-технический мегафакультет \ Физический факультет*]]]][#image("assets/1.svg")]
#line(length: 100%)
#align(center)[
#table(stroke: none, fill: none, columns: 2, column-gutter: 50pt)[
#align(left)[Группа: _К3221_]
][
#align(left)[К работе допущен: ]
][
#align(left)[Студент: ощенников Никита_]
][
#align(left)[Работа выполнена: ]
][
#align(left)[Преподаватель: опов Антон Сергеевич_]
][
#align(left)[Отчет принят: ]
]
]
#align(center)[= Рабочий протокол и отчет по \ лабораторной работе №3.01]
#line(length: 100%)
#line(length: 100%)
=== 1. Цель работы.
Построение сечений эквипотенциальных поверхностей и силовых линий электростатического поля на основе экспериментального моделирования распределения потенциала в слабопроводящей среде.
=== 2. Задачи, решаемые при выполнении работы.
- Экспериментально построить сечения эквипотенциальных поверхностей и силовых линий электростатического поля для плоского конденсатора и поскости с дополнительным проводящим кольцом.
- Измерить распределение потенциала в слабопроводящей среде и по данным построить эквипотенциальные линии.
- По свойству ортогональности эквипотенциалей и линий напряжённости построить картину силовых линий и указать их направление.
- Рассчитать величины напряжённости поля в центре ванны и вблизи электрода.
- По данным измерений оценить поверхностную плотность зарядов на электродах.
- Для эксперимента с кольцом определить области минимальной и максимальной напряжённости и оценить $E_min$ и $E_max$.
- Построить и сравнить графики $phi(X)$ для горизонтали $Y = 10 "см"$ для двух экспериментов.
=== 3. Объект исследования.
Электростатическое поле между двумя плоскими электродами в однородной слабопроводящей среде и изменение распределения потенциала при установке в ванну проводящего кольца.
=== 4. Метод экспериментального исследования.
Моделирование электростатического поля в слабопроводящей среде с использованием двух плоских электродов, подключённых к генератору переменного напряжения. Потенциал внутри ванны измеряют зондом, подключённым к вольтметру. По набору точечных измерений потенциала строят эквипотенциальные линии, затем по ортогональности строят силовые линии.
=== 5. Рабочие формулы и исходные данные.
#align(center)[
#table(columns: 2, inset: 15pt)[*Формула*][*Пояснения*][$arrow(E)(arrow(r)) = frac(arrow(F)(arrow(r)), q)$][Вектор напряженности электрического поля. $arrow(F)$ - сила, действующая на неподвижный заряд $q$, помещенный в данную точку. Заряд $q$ - пробный. $arrow(r)$ - радиус-вектор точки.][$phi(arrow(r)) = frac(W_"П" (arrow(r)), q)$][Потенициал в данном точке поля. $W_"П"$ - потенциальная энергия заряда $q$, помещенного в данную точку.][$A_(12) = q(phi_1 - phi_2)$.][Работа сил электростатического поля над зарядом $q$ при его перемещении из точки с потенциалом $phi_1$ в точку с потенциалом $phi_2$.][$arrow(E) = -"grad" phi eq.triple -arrow(gradient) phi \ phi_2 - phi_1 = -integral_1^2 arrow(E) space d arrow(l)$][Связь напряженности и потенциала электростатического поля.][$arrow(gradient) phi = hat(e)_x frac(diff phi, diff x) + hat(e)_y frac(diff phi, diff y) + hat(e)_z frac(diff phi, diff z)$][Вектор градиента потенциала. $x, y, z$ - декартовы координаты. $hat(e)_x, hat(e)_y, hat(e)_z$ - единичные вектора положительных направлений (орты) координатных осей $O x, O y, O z$][$angle.l E_(12) angle.r approx.eq frac(phi_1 - phi_2, l_(12))$][Средняя напряженность между точками на одной силовой линии с потенциалами $phi_1$ и $phi_2$, где $l_(12)$ - длина участка силовой линии между точками.][$arrow(j) = sigma arrow(E)$][Закон Ома в дифференциальной форме, где $arrow(j)$ - вектор плотности тока в проводящей среде, $sigma$ - удельная электропроводность среды.][$arrow(gradient) dot arrow(j) eq.triple "div" arrow(j) = frac(diff j_x, diff x) + frac(diff j_y, diff y) + frac(diff j_z, diff z) = -frac(diff rho, diff t)$][Плотность тока в любой проводащей среде удовлетворяет уравнению неразрывности. $rho$ - объемная плотность заряда. Для стационарного тока $rho = "const", space frac(diff rho, diff t) = 0$ и в этом случае $arrow(gradient) dot arrow(j) = 0$.][$sigma(arrow(gradient) dot arrow(E)) = 0 arrow.double arrow(gradient) dot arrow(E) = 0$][Следует из однородности $sigma$.][$"rot" arrow(j) eq.triple arrow(gradient) times arrow(j) = 0$][Получено путем применения к $arrow(j) = sigma arrow(E)$ операцию нахождения ротора и учитывая безвихревой характер постоянного тока.][$arrow(gradient) times arrow(E) = 0$][Подставили $arrow(j) = sigma arrow(E)$ в $"rot" arrow(j) eq.triple arrow(gradient) times arrow(j) = 0$]
]
Исходные данные:
- Межэлектродная установленная амплитуда напряжения $U = 14 "В"$.
- Частота переменного напряжения генератора $f = 400 plus.minus 50 "Гц"$
- Диапазон вольтметра $0 div 20 "В"$.
- Координатная сетка на миллиметровой бумаге шаги по $Y$ используются: $2, 6, 10, 14, 18 "см"$; при конфигурации с кольцом рекомендуется уменьшить шаг потенциала и шаг $Y$ рядом с кольцом до $12 "см"$.
- Шаг изменения потенциала для первого эксперимента $delta phi = 2 "В"$
- Для эксперимента с кольцом $Delta phi = 1 "В"$
- Погрешности измерения координат $Delta X = plus.minus 1 "мм", Delta Y = plus.minus 0.5 "мм"$.
=== 6. Измерительные приборы
#table(columns: 5)[ п/п][Наименование][Тип прибора][Используемый диапазон][Погрешность прибора][1][Вольтметр][AB1][0-20 В][$plus.minus 0.5 %$][2][Амперметр][AB1][0-5 А][$plus.minus 1.0% $][3][Резистор][ГН1][0-10 к$Omega$][$plus.minus 5%$]
=== 7. Схема установки (перечень схем, которые составляют Приложение 1).
=== 8. Результаты прямых измерений.
Без диска.
#align(center)[
#tablex(
columns: 9,
[*$phi_1$*], [*$X_1$*], [*$Y_1$*], [*$phi_2$*], [*$X_2$*], [*$Y_2$*], [*$phi_3$*], [*$X_3$*], [*$Y_3$*],
rowspanx(5)[*$1.89$*], $2.0$, $2$, rowspanx(5)[*$3.89$*], [$6.8$], [$2$], rowspanx(5)[*$5.89$*], [$11.8$], [$2$],
(), [$2.5$], [$6$], (), [$6.8$], [$6$], (), [$12.2$], [$6$],
(), [$2.8$], [$10$], (), [$7.0$], [$10$], (), [$12.5$], [$10$],
(), [$2.7$], [$14$], (), [$6.9$], [$14$], (), [$12.8$], [$14$],
(), [$2.0$], [$18$], (), [$7.2$], [$18$], (), [$12.6$], [$18$]
)
]
#align(center)[
#tablex(
columns: 9,
[*$phi_4$*], [*$X_4$*], [*$Y_4$*], [*$phi_5$*], [*$X_5$*], [*$Y_5$*], [*$phi_6$*], [*$X_6$*], [*$Y_6$*],
rowspanx(5)[*$7.89$*], [$16.7$], [$2$], rowspanx(5)[*$9.89$*], [$21.3$], [$2$], rowspanx(5)[*$11.89$*], [$26.1$], [$2$],
(), [$16.8$], [$6$], (), [$21.3$], [$6$], (), [$25.7$], [$6$],
(), [$16.5$], [$10$], (), [$21.3$], [$10$], (), [$25.6$], [$10$],
(), [$16.3$], [$14$], (), [$21.1$], [$14$], (), [$25.7$], [$14$],
(), [$16.3$], [$18$], (), [$21.0$], [$18$], (), [$26.0$], [$18$]
)
]
С диском.
#align(center)[
#tablex(
columns: 12,
[*$phi_1$*], [*$X_1$*], [*$Y_1$*], [*$phi_2$*], [*$X_2$*], [*$Y_2$*], [*$phi_3$*], [*$X_3$*], [*$Y_3$*], [*$phi_4$*], [*$X_4$*], [*$Y_4$*],
rowspanx(9)[*$2.4$*], [$2.0$], [$2$], rowspanx(9)[*$3.4$*], [$4.1$], [$2$], rowspanx(9)[*$4.4$*], [$6.1$], [$2$], rowspanx(9)[*$5.4$*], [$8.4$], [$2$],
(), [$2.1$], [$4$], (), [$4.0$], [$4$], (), [$5.9$], [$4$], (), [$7.8$], [$4$],
(), [$2.6$], [$6$], (), [$4.1$], [$6$], (), [$5.9$], [$6$], (), [$7.4$], [$6$],
(), [$2.8$], [$8$], (), [$4.0$], [$8$], (), [$5.5$], [$8$], (), [$7.2$], [$8$],
(), [$3.0$], [$10$], (), [$4.2$], [$10$], (), [$5.8$], [$10$], (), [$7.2$], [$10$],
(), [$2.8$], [$12$], (), [$4.2$], [$12$], (), [$5.7$], [$12$], (), [$7.7$], [$12$],
(), [$3.1$], [$14$], (), [$4.6$], [$14$], (), [$6.3$], [$14$], (), [$8.2$], [$14$],
(), [$2.7$], [$16$], (), [$4.5$], [$16$], (), [$7.0$], [$16$], (), [$-$], [$16$],
(), [$2.8$], [$18$], (), [$4.8$], [$18$], (), [$7.5$], [$18$], (), [$9.8$], [$18$]
)
]
#pagebreak()
#align(center)[
#tablex(
columns: 12,
[*$phi_5$*], [*$X_5$*], [*$Y_5$*], [*$phi_6$*], [*$X_6$*], [*$Y_6$*], [*$phi_7$*], [*$X_7$*], [*$Y_7$*], [*$phi_8$*], [*$X_8$*], [*$Y_8$*],
rowspanx(9)[*$6.4$*], [$11.2$], [$2$], rowspanx(9)[*$7.4$*], [$16.0$], [$2$], rowspanx(9)[*$8.4$*], [$19.8$], [$2$], rowspanx(9)[*$9.4$*], [$22.2$], [$2$],
(), [$-$], [$4$], (), [$-$], [$4$], (), [$20.3$], [$4$], (), [$-$], [$4$],
(), [$9.0$], [$6$], (), [$-$], [$6$], (), [$21.3$], [$6$], (), [$22.8$], [$6$],
(), [$-$], [$8$], (), [$-$], [$8$], (), [$21.7$], [$8$], (), [$-$], [$8$],
(), [$8.8$], [$10$], (), [$-$], [$10$], (), [$21.8$], [$10$], (), [$22.9$], [$10$],
(), [$-$], [$12$], (), [$-$], [$12$], (), [$21.3$], [$12$], (), [$-$], [$12$],
(), [$11.0$], [$14$], (), [$-$], [$14$], (), [$20.7$], [$14$], (), [$22.5$], [$14$],
(), [$-$], [$16$], (), [$-$], [$16$], (), [$19.7$], [$16$], (), [$-$], [$16$],
(), [$12.3$], [$18$], (), [$15.5$], [$18$], (), [$18.0$], [$18$], (), [$21.7$], [$18$]
)
]
#align(center)[
#tablex(
columns: 6,
[*$phi_9$*], [*$X_9$*], [*$Y_9$*], [*$phi_10$*], [*$X_10$*], [*$Y_10$*],
rowspanx(9)[*$10.4$*], [$24.5$], [$2$], rowspanx(9)[*$11.4$*], [$26.7$], [$2$],
(), [$-$], [$4$], (), [$-$], [$4$],
(), [$24.4$], [$6$], (), [$26.2$], [$6$],
(), [$-$], [$8$], (), [$-$], [$8$],
(), [$24.6$], [$10$], (), [$26.2$], [$10$],
(), [$-$], [$12$], (), [$-$], [$12$],
(), [$24.2$], [$14$], (), [$26.0$], [$14$],
(), [$-$], [$16$], (), [$-$], [$16$],
(), [$23.9$], [$18$], (), [$26.1$], [$18$],
)
]
=== 9. Построение эквипотенциальных линий.
Сначала точки с миллиметровой бумаги были перенесены в компьютер при помощи программы в Приложении.
#align(center)[#image("assets/1.png")]
#align(center)[#image("assets/2.png")]
Затем я соединил их эквипотенциальными линиями.
#align(center)[#image("assets/3.png")]
#align(center)[#image("assets/4.png")]
После, я добавил систему линий поля:
#align(center)[#image("assets/5.png")]
#align(center)[#image("assets/6.png")]
=== 10. Расчет величины напряженности.
Напряженность в центре ванны и поверхностная плотность заряда.
По формуле $angle.l E_(12) angle.r approx.eq frac(phi_1 - phi_2, l_(12))$ величина напряженности в центре электролитической ванны между линиями с $phi = 5.89 " и " phi = 7.89$:
При $y = 10 "см"$: $phi_4 = 5.89 "В"$ при $x = 12.5 "см"$; $phi_5 = 7.89 "В"$ при $x = 16.5 "см"$.
$
angle.l E_"ц" angle.r approx frac(phi_5 - phi_4, l_(45)) = frac(7.89 - 5.89, (165 - 125) times 10^(-3)) = 50.0 "В/м"
$
В окрестности одного из электродов
Аналогично в окрестности правого электрода между линиями с $phi = 9.89$ и $phi = 11.89$
Смотрим точки при $y = 10 "см"$: $phi = 9.89 "В"$ при $x = 21.3 "см"$; $phi = 11.89 "В"$ при $x = 25.6 "см"$.
$
angle.l E_"э" angle.r approx frac(11.89 - 9.89, (256 - 213) times 10^(-3)) = 46.5 "В/м"
$
Поверхностная плотность
Правый электрод находится при $X = 30 "см"$ с потенциалом $phi = 14 "В"$.
Ближайшая измеренная точка: $phi = 11.89 "В"$ при $x = 25.6 "см"$
По нормали к электроду:
$
Delta phi = 14 - 11.89 = 2.11 "В" \
Delta l_n = (300 - 256) times 10^(-3) = 44 × 10^(-3) "м"
$
$
sigma' = -frac(epsilon - 1, epsilon) sigma
$
Возьмём $epsilon = 79$. Тогда множитель
$
frac(epsilon - 1, epsilon) = frac(79-1, 79) = frac(78, 79) approx 0.987341772.
$
Следовательно
$
sigma' approx -0.987342 sigma
$
Если учитывать максимальное значение $epsilon = 81$:
$
frac(80, 81) approx 0.987654321 space.quad arrow.double space.quad sigma' approx -0.987654 sigma.
$
=== 12. Нахождение $E_min$ и $E_max$.
Между $phi = 8.4$ и $phi = 9.4$ справа от кольца.
$
Delta x = 1.1 "см" = 0.011 "м"
$
$
E = frac(1.0, 0.011) = 90.9 "В/м"
$
$
E_max = 91 "В/м", space (22.4, 10)
$
Между $φ = 6.4$ и $φ = 8.4$
Путь $approx 6 "см" = 0.06 "м"$
$
E = frac(2.0, 0.06) = 33.3 "В/м"
$
$
E_min = 33 "В/м", space (15, 9)
$
Точки $E_min$ и $E_max$:
#align(center)[#image("assets/7.png")]
=== 13. Построение графика $phi = phi(x), space y = 10 "см"$.
#align(center)[#image("assets/8.png")]
=== 14. Вывод.
В ходе работы экспериментально построены эквипотенциальные линии и силовые линии поля для двух конфигураций без кольца и с кольцом.
В центре ванны напряжённость составила $E_"ц" approx 50 "В/м"$, у правого электрода $E_"э" approx 46.5 "В/м"$.
Для системы с кольцом найдены:
$E_max approx 91 "В/м"$ и $E_"min" approx 33 "В/м"$.
Поверхностная плотность наведённого заряда определяется как $sigma' = -frac(epsilon-1, epsilon) sigma approx -0.987 sigma$ при $epsilon = 79$, что показывает почти полное экранирование поля водой.

Binary file not shown.

After

Width:  |  Height:  |  Size: 144 KiB

View File

@@ -0,0 +1,16 @@
<svg width="236" height="64" viewBox="0 0 236 64" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_145_1646)">
<path d="M61.8346 28.1432H79.1647V63.5715H91.8565V28.1432H109.512V16.809H61.8346V28.1432Z" fill="#1D1D1B"/>
<path d="M57.7332 16.7128H44.927V63.5715H57.7332V16.7128Z" fill="#1D1D1B"/>
<path d="M0.338501 16.7128V63.5715H13.1447V16.7128H0.338501Z" fill="#1D1D1B"/>
<path d="M32.455 16.7128L13.1445 63.5715H26.3468L44.9179 16.7128H39.8219H32.455Z" fill="#1D1D1B"/>
<path d="M169.979 16.7128H168.28H160.904L148.195 47.5584L135.486 16.7128H128.119H123.023H113.605V63.5715H126.411V25.2659L141.594 63.5715H154.796L169.979 25.2659V63.5715H182.785V16.7128H173.367H169.979Z" fill="#1D1D1B"/>
<path d="M51.3257 -3.83679e-06C50.088 0.024117 48.885 0.410962 47.8677 1.11198C46.8504 1.813 46.0642 2.79696 45.6076 3.94038C45.1511 5.0838 45.0446 6.33573 45.3015 7.53906C45.5584 8.7424 46.1673 9.84353 47.0518 10.7043C47.9363 11.565 49.0569 12.147 50.273 12.3771C51.4891 12.6073 52.7465 12.4755 53.8875 11.9982C55.0285 11.5208 56.0022 10.7192 56.6864 9.69404C57.3705 8.66884 57.7347 7.4657 57.7332 6.23558C57.7147 4.56475 57.0294 2.96955 55.828 1.80038C54.6266 0.631208 53.0073 -0.0163285 51.3257 -3.83679e-06Z" fill="#1D1D1B"/>
<path d="M222.919 40.7991C222.752 48.0054 217.894 52.8417 210.844 52.8417H210.58C206.786 52.7717 203.662 51.5561 201.541 49.3435C199.419 47.1309 198.328 43.86 198.398 39.977C198.316 38.3586 198.58 36.7412 199.173 35.2317C199.767 33.7223 200.676 32.3553 201.841 31.221C203.006 30.0868 204.399 29.2112 205.93 28.6521C207.461 28.0931 209.094 27.8633 210.721 27.9781C212.342 27.9213 213.959 28.1928 215.472 28.7761C216.985 29.3594 218.363 30.2424 219.522 31.3714C220.695 32.6415 221.6 34.1327 222.182 35.7567C222.764 37.3807 223.012 39.1043 222.911 40.8253L222.919 40.7991ZM223.914 19.9934C219.994 17.7426 215.538 16.5769 211.011 16.6176C209.835 16.6204 208.659 16.6876 207.49 16.8187C200.616 17.5709 195.089 20.4219 191.058 25.2932C187.273 29.8671 185.636 35.4468 186.059 42.3295C186.217 47.0961 187.932 51.6821 190.944 55.3954C195.784 61.2724 202.386 64.0797 211.812 64.2284H211.918H212.023L213.247 64.071C214.89 63.8888 216.519 63.5966 218.123 63.1964C222.931 62.0028 227.227 59.3047 230.374 55.5004C233.437 51.6638 235.166 46.9446 235.303 42.0497C235.717 32.0185 231.888 24.5586 223.923 19.9934" fill="#1D1D1B"/>
</g>
<defs>
<clipPath id="clip0_145_1646">
<rect width="235" height="64" fill="white" transform="translate(0.338501)"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 222 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 193 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 318 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 216 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 365 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 327 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 137 KiB

View File

@@ -0,0 +1,121 @@
#import "@preview/tablex:0.0.9": tablex, colspanx, rowspanx
#set page(numbering: "1")
#set text(size: 1.3em)
#align(center)[=== анные измерений для лабораторной работы 3.01_]
#align(center)[===== ез диска_]
#align(center)[
#tablex(
columns: 9,
[*$phi_1$*], [*$X_1$*], [*$Y_1$*], [*$phi_2$*], [*$X_2$*], [*$Y_2$*], [*$phi_3$*], [*$X_3$*], [*$Y_3$*],
rowspanx(5)[*$1.89$*], $2.0$, $2$, rowspanx(5)[*$3.89$*], [$6.8$], [$2$], rowspanx(5)[*$5.89$*], [$11.8$], [$2$],
(), [$2.5$], [$6$], (), [$6.8$], [$6$], (), [$12.2$], [$6$],
(), [$2.8$], [$10$], (), [$7.0$], [$10$], (), [$12.5$], [$10$],
(), [$2.7$], [$14$], (), [$6.9$], [$14$], (), [$12.8$], [$14$],
(), [$2.0$], [$18$], (), [$7.2$], [$18$], (), [$12.6$], [$18$]
)
]
#align(center)[
#tablex(
columns: 9,
[*$phi_4$*], [*$X_4$*], [*$Y_4$*], [*$phi_5$*], [*$X_5$*], [*$Y_5$*], [*$phi_6$*], [*$X_6$*], [*$Y_6$*],
rowspanx(5)[*$7.89$*], [$16.7$], [$2$], rowspanx(5)[*$9.89$*], [$21.3$], [$2$], rowspanx(5)[*$11.89$*], [$26.1$], [$2$],
(), [$16.8$], [$6$], (), [$21.3$], [$6$], (), [$25.7$], [$6$],
(), [$16.5$], [$10$], (), [$21.3$], [$10$], (), [$25.6$], [$10$],
(), [$16.3$], [$14$], (), [$21.1$], [$14$], (), [$25.7$], [$14$],
(), [$16.3$], [$18$], (), [$21.0$], [$18$], (), [$26.0$], [$18$]
)
]
#align(center)[===== _С диском_]
#align(center)[
#tablex(
columns: 12,
[*$phi_1$*], [*$X_1$*], [*$Y_1$*], [*$phi_2$*], [*$X_2$*], [*$Y_2$*], [*$phi_3$*], [*$X_3$*], [*$Y_3$*], [*$phi_4$*], [*$X_4$*], [*$Y_4$*],
rowspanx(9)[*$2.4$*], [$2.0$], [$2$], rowspanx(9)[*$3.4$*], [$4.1$], [$2$], rowspanx(9)[*$4.4$*], [$6.1$], [$2$], rowspanx(9)[*$5.4$*], [$8.4$], [$2$],
(), [$2.1$], [$4$], (), [$4.0$], [$4$], (), [$5.9$], [$4$], (), [$7.8$], [$4$],
(), [$2.6$], [$6$], (), [$4.1$], [$6$], (), [$5.9$], [$6$], (), [$7.4$], [$6$],
(), [$2.8$], [$8$], (), [$4.0$], [$8$], (), [$5.5$], [$8$], (), [$7.2$], [$8$],
(), [$3.0$], [$10$], (), [$4.2$], [$10$], (), [$5.8$], [$10$], (), [$7.2$], [$10$],
(), [$2.8$], [$12$], (), [$4.2$], [$12$], (), [$5.7$], [$12$], (), [$7.7$], [$12$],
(), [$3.1$], [$14$], (), [$4.6$], [$14$], (), [$6.3$], [$14$], (), [$8.2$], [$14$],
(), [$2.7$], [$16$], (), [$4.5$], [$16$], (), [$7.0$], [$16$], (), [$-$], [$16$],
(), [$2.8$], [$18$], (), [$4.8$], [$18$], (), [$7.5$], [$18$], (), [$9.8$], [$18$]
)
]
#pagebreak()
#align(center)[
#tablex(
columns: 12,
[*$phi_5$*], [*$X_5$*], [*$Y_5$*], [*$phi_6$*], [*$X_6$*], [*$Y_6$*], [*$phi_7$*], [*$X_7$*], [*$Y_7$*], [*$phi_8$*], [*$X_8$*], [*$Y_8$*],
rowspanx(9)[*$6.4$*], [$11.2$], [$2$], rowspanx(9)[*$7.4$*], [$16.0$], [$2$], rowspanx(9)[*$8.4$*], [$19.8$], [$2$], rowspanx(9)[*$9.4$*], [$22.2$], [$2$],
(), [$-$], [$4$], (), [$-$], [$4$], (), [$20.3$], [$4$], (), [$-$], [$4$],
(), [$9.0$], [$6$], (), [$-$], [$6$], (), [$21.3$], [$6$], (), [$22.8$], [$6$],
(), [$-$], [$8$], (), [$-$], [$8$], (), [$21.7$], [$8$], (), [$-$], [$8$],
(), [$8.8$], [$10$], (), [$-$], [$10$], (), [$21.8$], [$10$], (), [$22.9$], [$10$],
(), [$-$], [$12$], (), [$-$], [$12$], (), [$21.3$], [$12$], (), [$-$], [$12$],
(), [$11.0$], [$14$], (), [$-$], [$14$], (), [$20.7$], [$14$], (), [$22.5$], [$14$],
(), [$-$], [$16$], (), [$-$], [$16$], (), [$19.7$], [$16$], (), [$-$], [$16$],
(), [$12.3$], [$18$], (), [$15.5$], [$18$], (), [$18.0$], [$18$], (), [$21.7$], [$18$]
)
]
#align(center)[
#tablex(
columns: 6,
[*$phi_9$*], [*$X_9$*], [*$Y_9$*], [*$phi_10$*], [*$X_10$*], [*$Y_10$*],
rowspanx(9)[*$10.4$*], [$24.5$], [$2$], rowspanx(9)[*$11.4$*], [$26.7$], [$2$],
(), [$-$], [$4$], (), [$-$], [$4$],
(), [$24.4$], [$6$], (), [$26.2$], [$6$],
(), [$-$], [$8$], (), [$-$], [$8$],
(), [$24.6$], [$10$], (), [$26.2$], [$10$],
(), [$-$], [$12$], (), [$-$], [$12$],
(), [$24.2$], [$14$], (), [$26.0$], [$14$],
(), [$-$], [$16$], (), [$-$], [$16$],
(), [$23.9$], [$18$], (), [$26.1$], [$18$],
)
]

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,346 @@
#import "@preview/tablex:0.0.9": tablex, colspanx, rowspanx
#set text(size: 1.3em)
#set page(footer: context {
if counter(page).get().first() > 1 [
#align(left)[
#counter(page).display("1")
]
]
})
#table(stroke: none, fill: none, columns: 2, gutter: 70pt)[#text(size: 0.7em)[#align(bottom)[#align(center)[*Университет ИТМО \ Физико-технический мегафакультет \ Физический факультет*]]]][#image("assets/1.svg")]
#line(length: 100%)
#align(center)[
#table(stroke: none, fill: none, columns: 2, column-gutter: 50pt)[
#align(left)[Группа: _К3221_]
][
#align(left)[К работе допущен: ]
][
#align(left)[Студент: ощенников Никита, Карпов Иван_]
][
#align(left)[Работа выполнена: ]
][
#align(left)[Преподаватель: опов Антон Сергеевич_]
][
#align(left)[Отчет принят: ]
]
]
#align(center)[= Рабочий протокол и отчет по \ лабораторной работе №3.01]
#line(length: 100%)
#line(length: 100%)
=== 1. Цель работы.
Построение сечений эквипотенциальных поверхностей и силовых линий электростатического поля на основе экспериментального моделирования распределения потенциала в слабопроводящей среде.
=== 2. Задачи, решаемые при выполнении работы.
- Экспериментально построить сечения эквипотенциальных поверхностей и силовых линий электростатического поля для плоского конденсатора и плоскости с дополнительным проводящим кольцом.
- Измерить распределение потенциала в слабопроводящей среде и по данным построить эквипотенциальные линии.
- По свойству ортогональности эквипотенциалей и линий напряжённости построить картину силовых линий и указать их направление.
- Рассчитать величины напряжённости поля в центре ванны и вблизи электрода.
- По данным измерений оценить поверхностную плотность зарядов на электродах.
- Для эксперимента с кольцом определить области минимальной и максимальной напряжённости и оценить $E_min$ и $E_max$.
- Построить и сравнить графики $phi(X)$ для горизонтали $Y = 10 "см"$ для двух экспериментов.
=== 3. Объект исследования.
Электростатическое поле между двумя плоскими электродами в однородной слабопроводящей среде и изменение распределения потенциала при установке в ванну проводящего кольца.
=== 4. Метод экспериментального исследования.
Моделирование электростатического поля в слабопроводящей среде с использованием двух плоских электродов, подключённых к генератору переменного напряжения. Потенциал внутри ванны измеряют зондом, подключённым к вольтметру. По набору точечных измерений потенциала строят эквипотенциальные линии, затем по ортогональности строят силовые линии.
=== 5. Рабочие формулы и исходные данные.
#align(center)[
#table(columns: 2, inset: 15pt)[*Формула*][*Пояснения*][$arrow(E)(arrow(r)) = frac(arrow(F)(arrow(r)), q)$][Вектор напряженности электрического поля. $arrow(F)$ - сила, действующая на неподвижный заряд $q$, помещенный в данную точку. Заряд $q$ - пробный. $arrow(r)$ - радиус-вектор точки.][$phi(arrow(r)) = frac(W_"П" (arrow(r)), q)$][Потенициал в данном точке поля. $W_"П"$ - потенциальная энергия заряда $q$, помещенного в данную точку.][$A_(12) = q(phi_1 - phi_2)$.][Работа сил электростатического поля над зарядом $q$ при его перемещении из точки с потенциалом $phi_1$ в точку с потенциалом $phi_2$.][$arrow(E) = -"grad" phi eq.triple -arrow(gradient) phi \ phi_2 - phi_1 = -integral_1^2 arrow(E) space d arrow(l)$][Связь напряженности и потенциала электростатического поля.][$arrow(gradient) phi = hat(e)_x frac(partial phi, partial x) + hat(e)_y frac(partial phi, partial y) + hat(e)_z frac(partial phi, partial z)$][Вектор градиента потенциала. $x, y, z$ - декартовы координаты. $hat(e)_x, hat(e)_y, hat(e)_z$ - единичные вектора положительных направлений (орты) координатных осей $O x, O y, O z$][$chevron.l E_(12) chevron.r approx.eq frac(phi_1 - phi_2, l_(12))$][Средняя напряженность между точками на одной силовой линии с потенциалами $phi_1$ и $phi_2$, где $l_(12)$ - длина участка силовой линии между точками.][$arrow(j) = sigma arrow(E)$][Закон Ома в дифференциальной форме, где $arrow(j)$ - вектор плотности тока в проводящей среде, $sigma$ - удельная электропроводность среды.][$arrow(gradient) dot arrow(j) eq.triple "div" arrow(j) = frac(partial j_x, partial x) + frac(partial j_y, partial y) + frac(partial j_z, partial z) = -frac(partial rho, partial t)$][Плотность тока в любой проводащей среде удовлетворяет уравнению неразрывности. $rho$ - объемная плотность заряда. Для стационарного тока $rho = "const", space frac(partial rho, partial t) = 0$ и в этом случае $arrow(gradient) dot arrow(j) = 0$.][$sigma(arrow(gradient) dot arrow(E)) = 0 arrow.double arrow(gradient) dot arrow(E) = 0$][Следует из однородности $sigma$.][$"rot" arrow(j) eq.triple arrow(gradient) times arrow(j) = 0$][Получено путем применения к $arrow(j) = sigma arrow(E)$ операцию нахождения ротора и учитывая безвихревой характер постоянного тока.][$arrow(gradient) times arrow(E) = 0$][Подставили $arrow(j) = sigma arrow(E)$ в $"rot" arrow(j) eq.triple arrow(gradient) times arrow(j) = 0$]
]
Исходные данные:
- Межэлектродная установленная амплитуда напряжения $U = 14 "В"$.
- Частота переменного напряжения генератора $f = 400 plus.minus 50 "Гц"$
- Диапазон вольтметра $0 div 20 "В"$.
- Координатная сетка на миллиметровой бумаге шаги по $Y$ используются: $2, 6, 10, 14, 18 "см"$; при конфигурации с кольцом рекомендуется уменьшить шаг потенциала и шаг $Y$ рядом с кольцом до $12 "см"$.
- Шаг изменения потенциала для первого эксперимента $delta phi = 2 "В"$
- Для эксперимента с кольцом $Delta phi = 1 "В"$
- Погрешности измерения координат $Delta X = plus.minus 1 "мм", Delta Y = plus.minus 0.5 "мм"$.
=== 6. Измерительные приборы
#table(columns: 5)[ п/п][Наименование][Тип прибора][Используемый диапазон][Погрешность прибора][1][Вольтметр][AB1][0-20 В][$plus.minus 0.5 %$][2][Амперметр][AB1][0-5 А][$plus.minus 1.0% $][3][Резистор][ГН1][0-10 к$Omega$][$plus.minus 5%$]
=== 7. Схема установки (перечень схем, которые составляют Приложение 1).
=== 8. Результаты прямых измерений.
Без диска.
#align(center)[
#tablex(
columns: 9,
[*$phi_1$*], [*$X_1$*], [*$Y_1$*], [*$phi_2$*], [*$X_2$*], [*$Y_2$*], [*$phi_3$*], [*$X_3$*], [*$Y_3$*],
rowspanx(5)[*$1.89$*], $2.0$, $2$, rowspanx(5)[*$3.89$*], [$6.8$], [$2$], rowspanx(5)[*$5.89$*], [$11.8$], [$2$],
(), [$2.5$], [$6$], (), [$6.8$], [$6$], (), [$12.2$], [$6$],
(), [$2.8$], [$10$], (), [$7.0$], [$10$], (), [$12.5$], [$10$],
(), [$2.7$], [$14$], (), [$6.9$], [$14$], (), [$12.8$], [$14$],
(), [$2.0$], [$18$], (), [$7.2$], [$18$], (), [$12.6$], [$18$]
)
]
#align(center)[
#tablex(
columns: 9,
[*$phi_4$*], [*$X_4$*], [*$Y_4$*], [*$phi_5$*], [*$X_5$*], [*$Y_5$*], [*$phi_6$*], [*$X_6$*], [*$Y_6$*],
rowspanx(5)[*$7.89$*], [$16.7$], [$2$], rowspanx(5)[*$9.89$*], [$21.3$], [$2$], rowspanx(5)[*$11.89$*], [$26.1$], [$2$],
(), [$16.8$], [$6$], (), [$21.3$], [$6$], (), [$25.7$], [$6$],
(), [$16.5$], [$10$], (), [$21.3$], [$10$], (), [$25.6$], [$10$],
(), [$16.3$], [$14$], (), [$21.1$], [$14$], (), [$25.7$], [$14$],
(), [$16.3$], [$18$], (), [$21.0$], [$18$], (), [$26.0$], [$18$]
)
]
С диском.
#align(center)[
#tablex(
columns: 12,
[*$phi_1$*], [*$X_1$*], [*$Y_1$*], [*$phi_2$*], [*$X_2$*], [*$Y_2$*], [*$phi_3$*], [*$X_3$*], [*$Y_3$*], [*$phi_4$*], [*$X_4$*], [*$Y_4$*],
rowspanx(9)[*$2.4$*], [$2.0$], [$2$], rowspanx(9)[*$3.4$*], [$4.1$], [$2$], rowspanx(9)[*$4.4$*], [$6.1$], [$2$], rowspanx(9)[*$5.4$*], [$8.4$], [$2$],
(), [$2.1$], [$4$], (), [$4.0$], [$4$], (), [$5.9$], [$4$], (), [$7.8$], [$4$],
(), [$2.6$], [$6$], (), [$4.1$], [$6$], (), [$5.9$], [$6$], (), [$7.4$], [$6$],
(), [$2.8$], [$8$], (), [$4.0$], [$8$], (), [$5.5$], [$8$], (), [$7.2$], [$8$],
(), [$3.0$], [$10$], (), [$4.2$], [$10$], (), [$5.8$], [$10$], (), [$7.2$], [$10$],
(), [$2.8$], [$12$], (), [$4.2$], [$12$], (), [$5.7$], [$12$], (), [$7.7$], [$12$],
(), [$3.1$], [$14$], (), [$4.6$], [$14$], (), [$6.3$], [$14$], (), [$8.2$], [$14$],
(), [$2.7$], [$16$], (), [$4.5$], [$16$], (), [$7.0$], [$16$], (), [$-$], [$16$],
(), [$2.8$], [$18$], (), [$4.8$], [$18$], (), [$7.5$], [$18$], (), [$9.8$], [$18$]
)
]
#pagebreak()
#align(center)[
#tablex(
columns: 12,
[*$phi_5$*], [*$X_5$*], [*$Y_5$*], [*$phi_6$*], [*$X_6$*], [*$Y_6$*], [*$phi_7$*], [*$X_7$*], [*$Y_7$*], [*$phi_8$*], [*$X_8$*], [*$Y_8$*],
rowspanx(9)[*$6.4$*], [$11.2$], [$2$], rowspanx(9)[*$7.4$*], [$16.0$], [$2$], rowspanx(9)[*$8.4$*], [$19.8$], [$2$], rowspanx(9)[*$9.4$*], [$22.2$], [$2$],
(), [$-$], [$4$], (), [$-$], [$4$], (), [$20.3$], [$4$], (), [$-$], [$4$],
(), [$9.0$], [$6$], (), [$-$], [$6$], (), [$21.3$], [$6$], (), [$22.8$], [$6$],
(), [$-$], [$8$], (), [$-$], [$8$], (), [$21.7$], [$8$], (), [$-$], [$8$],
(), [$8.8$], [$10$], (), [$-$], [$10$], (), [$21.8$], [$10$], (), [$22.9$], [$10$],
(), [$-$], [$12$], (), [$-$], [$12$], (), [$21.3$], [$12$], (), [$-$], [$12$],
(), [$11.0$], [$14$], (), [$-$], [$14$], (), [$20.7$], [$14$], (), [$22.5$], [$14$],
(), [$-$], [$16$], (), [$-$], [$16$], (), [$19.7$], [$16$], (), [$-$], [$16$],
(), [$12.3$], [$18$], (), [$15.5$], [$18$], (), [$18.0$], [$18$], (), [$21.7$], [$18$]
)
]
#align(center)[
#tablex(
columns: 6,
[*$phi_9$*], [*$X_9$*], [*$Y_9$*], [*$phi_10$*], [*$X_10$*], [*$Y_10$*],
rowspanx(9)[*$10.4$*], [$24.5$], [$2$], rowspanx(9)[*$11.4$*], [$26.7$], [$2$],
(), [$-$], [$4$], (), [$-$], [$4$],
(), [$24.4$], [$6$], (), [$26.2$], [$6$],
(), [$-$], [$8$], (), [$-$], [$8$],
(), [$24.6$], [$10$], (), [$26.2$], [$10$],
(), [$-$], [$12$], (), [$-$], [$12$],
(), [$24.2$], [$14$], (), [$26.0$], [$14$],
(), [$-$], [$16$], (), [$-$], [$16$],
(), [$23.9$], [$18$], (), [$26.1$], [$18$],
)
]
=== 9. Построение эквипотенциальных линий.
Сначала точки с миллиметровой бумаги были перенесены в компьютер при помощи программы в Приложении.
#align(center)[#image("assets/1.png")]
#align(center)[#image("assets/2.png")]
Затем я соединил их эквипотенциальными линиями.
#align(center)[#image("assets/3.png")]
#align(center)[#image("assets/4.png")]
После, я добавил систему линий поля:
#align(center)[#image("assets/5.png")]
#align(center)[#image("assets/6.png")]
=== 10. Расчет величины напряженности.
Напряженность в центре ванны и поверхностная плотность заряда.
По формуле $chevron.l E_(12) chevron.r approx.eq frac(phi_1 - phi_2, l_(12))$ величина напряженности в центре электролитической ванны между линиями с $phi = 5.89 " и " phi = 7.89$:
При $y = 10 "см"$: $phi_4 = 5.89 "В"$ при $x = 12.5 "см"$; $phi_5 = 7.89 "В"$ при $x = 16.5 "см"$.
$
chevron.l E_"ц" chevron.r approx frac(phi_5 - phi_4, l_(45)) = frac(7.89 - 5.89, (165 - 125) times 10^(-3)) = 50.0 "В/м"
$
Рассчитаем погрешность $ chevron.l E_"ц" chevron.r$
$Delta x = 1 м м$
$Delta phi_4 = Delta phi_5 = 0.1В$
$Delta l_45 = 2 Delta x = 0.002 м$
$Delta chevron.l E_"ц" chevron.r = sqrt(((delta E_"ц")/ (delta phi_5) Delta phi_5)^2 + ((delta E_"ц")/ (delta phi_4) Delta phi_4)^2 + ((delta E_"ц")/ (delta l_45) Delta l_45)^2) = sqrt((1/l_45 Delta phi_5)^2 + (1/l_45 Delta phi_4)^2 + ((phi_4 - phi_5)/l_45^2 Delta l_45)^2) = sqrt((0.1/0.04)^2 + (0.1/0.04)^2 + (-2/0.04^2 times 0.002)^2) = 4.3 "В/м"$
$chevron.l E_ц chevron.r = (50 plus.minus 4) В/м$
В окрестности одного из электродов
Аналогично в окрестности правого электрода между линиями с $phi = 9.89$ и $phi = 11.89$
Смотрим точки при $y = 10 "см"$: $phi_6 = 9.89 "В"$ при $x = 21.3 "см"$; $phi_7 = 11.89 "В"$ при $x = 25.6 "см"$.
$
chevron.l E_"э" chevron.r approx frac(11.89 - 9.89, (256 - 213) times 10^(-3)) = 46.5 "В/м"
$
Посчитаем погрешность $chevron.l E_"э" chevron.r$
$Delta chevron.l E_"э" chevron.r = sqrt(((delta E_"э")/ (delta phi_6) Delta phi_6)^2 + ((delta E_"э")/ (delta phi_7) Delta phi_7)^2 + ((delta E_"э")/ (delta l_67) Delta l_67)^2) = sqrt((1/l_67 Delta phi_6)^2 + (1/l_67 Delta phi_7)^2 + ((phi_6 - phi_7)/l_67^2 Delta l_67)^2) = sqrt((0.1/0.043)^2 + (0.1/0.043)^2 + (-2/0.043^2 times 0.002)^2) = 3.94 В/м
$
$chevron.l E_э chevron.r = (46.5 plus.minus 3.9) В/м$
Поверхностная плотность
Правый электрод находится при $X = 30 "см"$ с потенциалом $phi = 14 "В"$.
Ближайшая измеренная точка: $phi = 11.89 "В"$ при $x = 25.6 "см"$
По нормали к электроду:
$
Delta phi = 14 - 11.89 = 2.11 "В" \
Delta l_n = (300 - 256) times 10^(-3) = 44 × 10^(-3) "м"
$
$
sigma' = -frac(epsilon - 1, epsilon) sigma
$
Возьмём $epsilon = 79$. Тогда множитель
$
frac(epsilon - 1, epsilon) = frac(79-1, 79) = frac(78, 79) approx 0.987341772.
$
Следовательно
$
sigma' approx -0.987342 sigma
$
Если учитывать максимальное значение $epsilon = 81$:
$
frac(80, 81) approx 0.987654321 space.quad arrow.double space.quad sigma' approx -0.987654 sigma.
$
=== 12. Нахождение $E_min$ и $E_max$.
Между $phi = 8.4$ и $phi = 9.4$ справа от кольца.
$
Delta x = 1.1 "см" = 0.011 "м"
$
$
E = frac(1.0, 0.011) = 90.9 "В/м"
$
$
E_max = 91 "В/м", space (22.4, 10)
$
Между $φ = 6.4$ и $φ = 8.4$
Путь $approx 6 "см" = 0.06 "м"$
$
E = frac(2.0, 0.06) = 33.3 "В/м"
$
$
E_min = 33 "В/м", space (15, 9)
$
Точки $E_min$ и $E_max$:
#align(center)[#image("assets/7.png")]
=== 13. Построение графика $phi = phi(x), space y = 10 "см"$.
#align(center)[#image("assets/8.png")]
=== 14. Вывод.
В ходе работы экспериментально построены эквипотенциальные линии и силовые линии поля для двух конфигураций без кольца и с кольцом.
В центре ванны напряжённость составила $E_"ц" approx 50 "В/м"$, у правого электрода $E_"э" approx 46.5 "В/м"$.
Для системы с кольцом найдены:
$E_max approx 91 "В/м"$ и $E_"min" approx 33 "В/м"$.
Поверхностная плотность наведённого заряда определяется как $sigma' = -frac(epsilon-1, epsilon) sigma approx -0.987 sigma$ при $epsilon = 79$, что показывает почти полное экранирование поля водой.

View File

@@ -0,0 +1,54 @@
from sys import argv
import matplotlib.pyplot as plt
import numpy as np
def read_points(filename: str) -> list[tuple[float, float, str]]:
points = []
with open(filename, "r", encoding="utf-8") as f:
for line in f:
line = line.strip()
if line and not line.startswith("#"):
parts = line.split()
if len(parts) >= 3:
x = float(parts[0])
y = float(parts[1])
label = parts[2]
points.append((x, y, label))
return points
def main() -> None:
points = read_points(argv[1])
plt.figure(figsize=(8.27, 11.69))
plt.xlim(0, 30)
plt.ylim(0, 20)
plt.gca().set_aspect("equal", adjustable="box")
plt.grid(True, linewidth=0.3)
plt.xticks(range(0, 31, 2))
plt.yticks(range(0, 21, 2))
for x, y, label in points:
plt.scatter(x, y, color="red", s=15)
plt.text(x + 0.3, y + 0.3, label, fontsize=9)
if int(argv[2]):
theta = np.linspace(0, 2 * np.pi, 200)
cx, cy = 15, 9
for r in [5, 6]:
x = cx + r * np.cos(theta)
y = cy + r * np.sin(theta)
plt.plot(x, y, color="blue", linewidth=1)
plt.xlabel("X (см)")
plt.ylabel("Y (см)")
plt.title("Эквипотенциальные точки")
plt.tight_layout()
plt.savefig("points.png", dpi=300)
if __name__ == "__main__":
main()

View File

@@ -0,0 +1,63 @@
from collections import defaultdict
from sys import argv
import matplotlib.pyplot as plt
import numpy as np
def read_points(filename: str) -> list[tuple[float, float, str]]:
points = []
with open(filename, "r", encoding="utf-8") as f:
for line in f:
line = line.strip()
if line and not line.startswith("#"):
parts = line.split()
if len(parts) >= 3:
x = float(parts[0])
y = float(parts[1])
label = parts[2]
points.append((x, y, label))
return points
def main() -> None:
points = read_points(argv[1])
plt.figure(figsize=(8.27, 11.69))
plt.xlim(0, 30)
plt.ylim(0, 20)
plt.gca().set_aspect("equal", adjustable="box")
plt.grid(True, linewidth=0.3)
plt.xticks(range(0, 31, 2))
plt.yticks(range(0, 21, 2))
grouped = defaultdict(list)
for x, y, phi in points:
grouped[phi].append((x, y))
for x, y, label in points:
plt.scatter(x, y, color="red", s=15)
plt.text(x + 0.3, y + 0.3, label, fontsize=9)
for phi, coords in grouped.items():
coords.sort(key=lambda p: p[1])
xs, ys = zip(*coords)
plt.plot(xs, ys, linewidth=0.8, label=f"φ={phi} В")
if int(argv[2]):
theta = np.linspace(0, 2 * np.pi, 200)
cx, cy = 15, 9
for r in [5, 6]:
x = cx + r * np.cos(theta)
y = cy + r * np.sin(theta)
plt.plot(x, y, color="blue", linewidth=1)
plt.xlabel("X (см)")
plt.ylabel("Y (см)")
plt.title("Эквипотенциальные линии")
plt.savefig("points.png", dpi=300)
if __name__ == "__main__":
main()

View File

@@ -0,0 +1,94 @@
from collections import defaultdict
from sys import argv
import matplotlib.pyplot as plt
import numpy as np
def read_points(filename: str) -> list[tuple[float, float, str]]:
points = []
with open(filename, "r", encoding="utf-8") as f:
for line in f:
line = line.strip()
if line and not line.startswith("#"):
parts = line.split()
if len(parts) >= 3:
x = float(parts[0])
y = float(parts[1])
label = parts[2]
points.append((x, y, label))
return points
def main() -> None:
points = read_points(argv[1])
plt.figure(figsize=(8.27, 11.69))
plt.xlim(0, 30)
plt.ylim(0, 20)
plt.gca().set_aspect("equal", adjustable="box")
plt.grid(True, linewidth=0.3)
plt.xticks(range(0, 31, 2))
plt.yticks(range(0, 21, 2))
grouped = defaultdict(list)
for x, y, phi in points:
grouped[phi].append((x, y))
for x, y, label in points:
plt.scatter(x, y, color="red", s=15)
plt.text(x + 0.3, y + 0.3, label, fontsize=9)
for phi, coords in grouped.items():
coords.sort(key=lambda p: p[1])
xs, ys = zip(*coords)
plt.plot(xs, ys, linewidth=0.8, label=f"φ={phi} В")
for i in range(len(coords) - 1):
x1, y1 = coords[i]
x2, y2 = coords[i + 1]
mid_x = (x1 + x2) / 2
mid_y = (y1 + y2) / 2
dx = x2 - x1
dy = y2 - y1
perp_dx = -dy
perp_dy = dx
length = np.sqrt(perp_dx**2 + perp_dy**2)
if length > 0:
arrow_length = 0.5
perp_dx = perp_dx / length * arrow_length
perp_dy = perp_dy / length * arrow_length
plt.arrow(
mid_x,
mid_y,
perp_dx,
perp_dy,
head_width=0.2,
head_length=0.15,
fc="green",
ec="green",
linewidth=1.5,
)
if int(argv[2]):
theta = np.linspace(0, 2 * np.pi, 200)
cx, cy = 15, 9
for r in [5, 6]:
x = cx + r * np.cos(theta)
y = cy + r * np.sin(theta)
plt.plot(x, y, color="blue", linewidth=1)
plt.xlabel("X (см)")
plt.ylabel("Y (см)")
plt.title("Эквипотенциальные линии с силовыми стрелками")
plt.savefig("points.png", dpi=300)
if __name__ == "__main__":
main()

View File

@@ -0,0 +1,92 @@
from collections import defaultdict
from sys import argv
import matplotlib.pyplot as plt
import numpy as np
def read_points(filename: str) -> list[tuple[float, float, str]]:
points = []
with open(filename, "r", encoding="utf-8") as f:
for line in f:
line = line.strip()
if line and not line.startswith("#"):
parts = line.split()
if len(parts) >= 3:
x = float(parts[0])
y = float(parts[1])
label = parts[2]
points.append((x, y, label))
return points
def main() -> None:
points = read_points(argv[1])
plt.figure(figsize=(8.27, 11.69))
plt.xlim(0, 30)
plt.ylim(0, 20)
plt.gca().set_aspect("equal", adjustable="box")
plt.grid(True, linewidth=0.3)
plt.xticks(range(0, 31, 2))
plt.yticks(range(0, 21, 2))
grouped = defaultdict(list)
for x, y, phi in points:
grouped[phi].append((x, y))
for x, y, label in points:
plt.scatter(x, y, color="red", s=15)
plt.text(x + 0.3, y + 0.3, label, fontsize=9)
for phi, coords in grouped.items():
coords.sort(key=lambda p: p[1])
xs, ys = zip(*coords)
plt.plot(xs, ys, linewidth=0.8, label=f"φ={phi} В")
if int(argv[2]):
theta = np.linspace(0, 2 * np.pi, 200)
cx, cy = 15, 9
for r in [5, 6]:
x = cx + r * np.cos(theta)
y = cy + r * np.sin(theta)
plt.plot(x, y, color="blue", linewidth=1)
emax_x, emax_y = 22.4, 10
emin_x, emin_y = 15, 9
plt.arrow(
emax_x + 2,
emax_y + 2,
-1.5,
-1.2,
head_width=0.4,
head_length=0.3,
fc="darkgreen",
ec="darkgreen",
linewidth=2,
)
plt.text(emax_x + 2.3, emax_y + 2.3, "E_max", fontsize=11, color="darkgreen")
plt.arrow(
emin_x - 3,
emin_y + 3,
1.5,
-1.5,
head_width=0.4,
head_length=0.3,
fc="darkgreen",
ec="darkgreen",
linewidth=2,
)
plt.text(emin_x - 4.2, emin_y + 3.2, "E_min", fontsize=11, color="darkgreen")
plt.xlabel("X (см)")
plt.ylabel("Y (см)")
plt.title("Эквипотенциальные линии")
plt.savefig("points.png", dpi=300)
if __name__ == "__main__":
main()

View File

@@ -0,0 +1,55 @@
from pathlib import Path
from typing import List, Tuple
import matplotlib.pyplot as plt
def read_points(filename: str) -> List[Tuple[float, float, float]]:
pts = []
for line in Path(filename).read_text(encoding="utf-8").splitlines():
line = line.strip()
if not line or line.startswith("#"):
continue
parts = line.split()
if len(parts) < 3:
continue
x = float(parts[0])
y = float(parts[1])
phi = float(parts[2])
pts.append((x, y, phi))
return pts
def phi_vs_x_at_y(
points: List[Tuple[float, float, float]], y_target: float, tol: float = 1e-6
):
xs = []
phis = []
for x, y, phi in points:
if abs(y - y_target) <= tol:
xs.append(x)
phis.append(phi)
paired = sorted(zip(xs, phis), key=lambda p: p[0])
if not paired:
return [], []
xs_sorted, phis_sorted = zip(*paired)
return list(xs_sorted), list(phis_sorted)
p1 = read_points("points1.txt")
p2 = read_points("points2.txt")
x1, yphi1 = phi_vs_x_at_y(p1, 10.0)
x2, yphi2 = phi_vs_x_at_y(p2, 10.0)
plt.figure(figsize=(10, 5))
if x1:
plt.plot(x1, yphi1, marker="o", linestyle="-", label="points1.txt (Y=10)")
if x2:
plt.plot(x2, yphi2, marker="s", linestyle="--", label="points2.txt (Y=10)")
plt.xlabel("X (см)")
plt.ylabel("φ (В)")
plt.title("Зависимость φ = φ(X) при Y = 10 см")
plt.grid(alpha=0.4)
plt.legend()
plt.savefig("phi_vs_x_Y10.png", dpi=300)

View File

@@ -0,0 +1,31 @@
# X Y Label
2 2 1.89
2.5 6 1.89
2.8 10 1.89
2.7 14 1.89
2.0 18 1.89
6.8 2 3.89
6.8 6 3.89
7.0 10 3.89
6.9 14 3.89
7.2 18 3.89
11.8 2 5.89
12.2 6 5.89
12.5 10 5.89
12.8 14 5.89
12.6 18 5.89
16.7 2 7.89
16.8 6 7.89
16.5 10 7.89
16.3 14 7.89
16.3 18 7.89
21.3 2 9.89
21.3 6 9.89
21.3 10 9.89
21.1 14 9.89
21.0 18 9.89
26.1 2 11.89
25.7 6 11.89
25.6 10 11.89
25.7 14 11.89
26.0 18 11.89

View File

@@ -0,0 +1,77 @@
# X Y Label
# phi = 2.4
2.0 2 2.4
2.1 4 2.4
2.6 6 2.4
2.8 8 2.4
3.0 10 2.4
2.8 12 2.4
3.1 14 2.4
2.7 16 2.4
2.8 18 2.4
# phi = 3.4
4.1 2 3.4
4.0 4 3.4
4.1 6 3.4
4.0 8 3.4
4.2 10 3.4
4.2 12 3.4
4.6 14 3.4
4.5 16 3.4
4.8 18 3.4
# phi = 4.4
6.1 2 4.4
5.9 4 4.4
5.9 6 4.4
5.5 8 4.4
5.8 10 4.4
5.7 12 4.4
6.3 14 4.4
7.0 16 4.4
7.5 18 4.4
# phi = 5.4
8.4 2 5.4
7.8 4 5.4
7.4 6 5.4
7.2 8 5.4
7.2 10 5.4
7.7 12 5.4
8.2 14 5.4
9.8 18 5.4
# phi = 6.4
11.2 2 6.4
9.0 6 6.4
8.8 10 6.4
11.0 14 6.4
12.3 18 6.4
# phi = 7.4
16.0 2 7.4
15.5 18 7.4
# phi = 8.4
19.8 2 8.4
20.3 4 8.4
21.3 6 8.4
21.7 8 8.4
21.8 10 8.4
21.3 12 8.4
20.7 14 8.4
19.7 16 8.4
18.0 18 8.4
# phi = 9.4
22.2 2 9.4
22.8 6 9.4
22.9 10 9.4
22.5 14 9.4
21.7 18 9.4
# phi = 10.4
24.5 2 10.4
24.4 6 10.4
24.6 10 10.4
24.2 14 10.4
23.9 18 10.4
# phi = 11.4
26.7 2 11.4
26.2 6 11.4
26.2 10 11.4
26.0 14 11.4
26.1 18 11.4

Binary file not shown.