четверг, 30 января 2025 г.

Про конденсатор и прочую электростатику

Недавно канал GetAClass порадовал нас очередным своим роликом на тему электростатики. Я говорю "порадовал" без всякого ёрничанья -- авторы делают действительно оригинальный и увлекательный контент, недаром, по их же собственным словам, большую часть их аудитории составляют зрители в возрасте, учителя, а также те, кто физику подзабыл -- а может, никогда и не знал -- и теперь заново открывает для себя в ней что-то новое.

В частности, в этом ролике разбиралась задача, имеющая следующее начальное условие. Даны два последовательно соединенных конденсатора, один из котороых заряжен, а второй -- нет, и при замыкании ключа на них как-то перераспределяются заряды, причем в конечном состоянии энергия системы оказывается в два раза меньше первоначальной.

Задача эта, надо сказать, вызвала не только моё любопытство. Но специалистов и вопросы волнуют специальные, меня же заинтересовал совсем дилетантский вопрос: как телеграммы сухими доходят как так получается, что на одном конденсаторе есть заряд, а на другом заряда нет? Они же соединены! В процессе размышления вопрос немного расширился: как вообще это всё работает? Как ключ, замкнувший цепь где-то в Пашино, вызывает разряд конденсатора, расположенного в Кольцово, на "пустой" конденденсатор в верхней зоне Академгородка? Или, упрощая схему: как единичный конденсатор, удерживающий в себе заряд, способен разряжаться при замыкании ключа? Какой материальный носитель обеспечивает обмен информацией между этими устройствами?

Эти свои вопросы я как мог попытался задать на ютубе в комментариях к тому ролику. Надо отметить что там же, в комментариях, мне был дан совершенно правильный ответ, объясняющий это явление через электростатический потенциал, но этот ответ требовалось ещё осмыслить. Потенциал, как некая функция, градиентом которой является векторное поле, которое само является описанием анизотропии пространства вблизи заряженного тела -- всё это чистая математика, но вот какая за ней стоит физика? Как перекинуть мостик от элементарных зарядов, взаимодействующих между собой по закону Кулона, к реагирующим на замыкание ключа конденсаторам?

Захотелось увидеть всё, так сказать, своими глазами, пусть и на грубой модели, и посмотреть, что происходит в проводнике и в конденсаторе. Поэтому я, не долго думая, набросал простенькую программку на JS, в которой "в лоб" моделируется ансамбль точечных элементарных зарядов. Пять тысяч частиц -- это, конечно, не число с двадцатью тремя нулями, но хоть какие-то тени реальных процессов удастся углядеть, надеялся я.

Сначала пара слов о модели. Сразу оговорюсь -- модель средневекового уровня, со свободными положительными и отрицательными зарядами, и, разумеется, без соблюдения всяких масштабов, без количественных оценок, т.е. исключительно в иллюстративных целях. Массы и абсолютные величины положительных и отрицательных зарядов предполагаются одинаковыми, поэтому взаимодействие, подчиняющееся закону обратных квадратов, а также масштабные коэффициенты (шаг дискретного времени и пространственный масштаб) оказалось возможным засунуть в один коэффициент k. На каждом шаге насчитываются новые координаты участвующих во взаимодействии частиц по следующему простому алгоритму:

  • для каждой частицы высчитывается ускорение:
  • затем пересчитываются скорости и координаты частиц:
В общем, ничего сложного. Да ещё и, хвала третьему закону Ньютона, удалось сэкономить половину вычислений взаимных ускорений для пар частиц. Я, правда, не понадеялся на быстродействие алгоритмов возведения в степень и вычисления квадратного корня в JS, поэтому евклидову норму вектора высчитывал по сильно упрощенной формуле:
Короче, всё это частности реализации, не в них суть дела.

Итак, первое, что удалось посмотреть -- это распределение зарядов в линейном заряженном проводнике. Выяснилась важная деталь: распределение зарядов там неравномерное, со слабыми, но четко различимыми пучностями на концах проводника:

Прям даже жалко, что у меня нет электроскопа проверить это на опыте...

Половинка конденсатора -- это тот же проводник, только с уширением на конце, так что некоторое расползание заряда с пучностями на концах наблюдается и тут. Следовательно, гипотеза, что весь заряд заряженного конденсатора заключен внутри этого самого конденсатора, оказалась ошибочной.

Теперь стало понятно, что происходит при замыкании ключа. Замыкающийся ключ сам превращается в этакий конденсаторчик, в котором пучности на концах проводников усиливаются по мере сближения контактов.

При смыкании контактов пучности нейтрализуются, пластины с обеих сторон выталкивают в проводник новые заряды, которые в свою очередь нейтрализуются, и так до тех пор, пока конденсатор не разрядится. Носителем информации о замыкании ключа оказалось распределение заряда в проводнике. Но вот, правда, чтобы посмотреть разряд конденсатора на этой модели, пришлось ждать несколько часов. Конструкция с разведенными в стороны пластинами разряжается гора-а-аздо быстрее.

Кроме того, модель показала, что включенные последовательно конденсаторы действительно взаимодействуют, так что условие задачи "на одном конденсаторе заряд q, а на другом заряд ноль", строго говоря, не имеет места в реальности.

Больше того, на картинке (надеюсь) видно, что второй, слабозаряженный конденсатор передает взаимодействие дальше, на правый проводник, в котором вообще никаких избыточных зарядов нет, поляризуя этот проводник. То есть, для функционирования механизма существенным является то, что в даже нейтральном проводнике есть свободные заряды, на котороые действует индукция от соседней, заряженной пластины конденсатора.

Но вот чего совершенно не описывает данная модель -- это скорость взаимодействия. По слухам, в реальном веществе скорость движения электронов крайне мала, и в этой моей модели я её тоже сильно урезал. Тем не менее, воздействие "из Пашино до Академгородка" передаётся весьма шустро. Здесь же с этим большая проблема, несмотря на то, что в модели изменение положения заряженной частицы мгновенно влияет на все частицы. Это что же, получается, концепция дальнодействия не в состоянии описывать электрический ток?

В общем, спасибо авторам ролика и отзывчивым зрителям за то, что заставляют думать. Вот ссылка на песочницу: https://huh-muh.blogspot.com/p/blog-page_30.html

пятница, 16 августа 2024 г.

TeamViewer 15 и Ubuntu 20.04

После установки:
sudo dpkg --force-all -i teamviewer_15.55.3_amd64.deb
потребовалось ещё выполнить команду:
sudo apt --fix-broken install

среда, 17 июля 2024 г.

VirtualBox 6.1.50 + Ubuntu 22.04LTS заглючил

Сегодня при попытке запуска виртуальной машины стало выпадать окно Guru Meditation, и, соответственно, ничего не запускается. При просмотре логов обнаружилось загадочное:

00:00:00.845699 Changing the VM state from 'RUNNING' to 'GURU_MEDITATION'
00:00:00.845708 Console: Machine state changed to 'GuruMeditation'
00:00:00.847333 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
00:00:00.847334 !!
00:00:00.847334 !!         VCPU0: Guru Meditation -2708 (VERR_VMM_SET_JMP_ABORTED_RESUME)
00:00:00.847344 !!
00:00:00.847351 !! ACTIVE TRAP=0e ERRCD=10 CR2=00000000000fe05b PC=000000000000e05b Type=0 cbInstr=ff fIcebp=false (Guest!)
00:00:00.847355 !!
00:00:00.847356 !! CallRing3JmpBuf:
00:00:00.847356 !!
00:00:00.847356 SavedEsp=ffffb411040935a0 SavedEbp=ffffb411040935a8 SpResume=ffffb41104093578 SpCheck=ffffb41104093968
00:00:00.847359 pvSavedStack=ffffb41104825000 cbSavedStack=0x3f0  fInRing3Call=true 
00:00:00.847360 cbUsedMax=0x0 cbUsedAvg=0x0 cbUsedTotal=0x0 cUsedTotal=0x0
00:00:00.847361 pfn=ffffb411040f1a50 pvUser1=ffffb411045f4000 pvUser2=ffffb41104605000
00:00:00.847363 rax=volatile         rbx=ffffb41104605000 rcx=volatile         rdx=volatile
00:00:00.847363 rsi=volatile         rdi=volatile          r8=volatile          r9=volatile        
00:00:00.847363 r10=volatile         r11=volatile         r12=0000000000000000 r13=ffffb41104633c60
00:00:00.847364 r14=0000000000000000 r15=0000000000141000
00:00:00.847364 rip=ffffb411041198d1 rsp=ffffb41104093598 rbp=ffffb411040935c8 rflags=00000246
00:00:00.849350 ERROR [COM]: aRC=NS_ERROR_INVALID_ARG (0x80070057) aIID={4680b2de-8690-11e9-b83d-5719e53cf1de} aComponent={DisplayWrap} aText={Argument aWidth is invalid (must be aWidth != 0 && aWidth <= 32767)}, preserve=false aResultDetail=0

Оказалось, не я один такой "счастливчик":
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/2073267
Говорят, надо загрузиться на старом ядре:

After trying to go back to previous kernel version 5.15.0-113, all my VM worked again. So, it seems the last kernel version for 5.15 causes that.
Но как это сделать?

Помогло следующее: в начале загрузки нажать Esc, тогда высветится меню загрузчика Grub, там надо выбрать Advanced options for Ubuntu, найти ядро 5.15.0-113 и загрузиться с ним.

Правда, после этого, VirtualBox будет предлагать выполнить команду sudo modprobe vboxdrv, которая у меня выдала ошибку modprobe: FATAL: Module vboxdrv not found in directory /lib/modules/5.15.0-113-generic, но это решается переустановкой одного пакета:

sudo apt install --reinstall virtualbox-dkms

После этого виртуалка у меня, наконец, запустилась.

среда, 27 декабря 2023 г.

Ноутбук ASUS Vivobook 17X M3704YA - установка Windows 11.

Вводная такая: есть ноутбук, который продаётся без предустановленной ОС, требуется эту самую ОС на него установить.

Первая возникающая проблема непосредственно к ноутбуку отношения не имеет. Она такова: получить инсталляционную USB-флэшку с Windows 11. Можно воспользоваться MediaCreationTool.exe с официального сайта Microsoft (пункт "Создание установочного носителя Windows 11"), но запустить эту утилиту, когда вокруг линуксы - отдельный квест. Поэтому мне показалось проще взять установочный iso-образ и на его основе создать нужную флэшку.

Есть некоторое количество утилит, которое помогает в этом вопросе: Rufus (тоже виндовская, так что не подходит), UNetbootin, YUMI Multiboot USB Creator, но я самонадеянно решил, что мне хватит и обычной dd. Однако, результат выполнения команды:

dd if=Windows11.iso of=/dev/sda bs=10M status=progress oflag=sync
не порадовал: ноутбук с флэшки загрузился, но windows с неё устанавливаться отказалась с ошибкой: "Не найден необходимый драйвер носителя. Это может быть драйвер DVD-дисковода, USB-накопителя или жесткого диска. Если у вас есть компакт-диск, DVD-диск или USB-устройство флэш-памяти с этим драйвером, вставьте его". В интернете проблему предлагают решить, взяв другую флэшку, но дело оказалось не в этом.

Выяснилось, что установочную флэшку нужно создавать немного более хитрым способом:

1) Создаём на флэшке таблицу разделов MBR.

2) Создаём раздел размером 1Гб, форматируем его в FAT32, присваиваем метку BOOT

3) Создаём раздел размером не менее 7Гб, форматируем его в NTFS, присваиваем метку INSTALL

Я воспользовался для этих двух пунктов утилитой GParted, а потом через fdisk изменил тип первого раздела на uefi.

4) Примонтируем куда-нибудь iso-образ Windows 11, чтобы получить доступ к его содержимому:

mount Windows11.iso ~/my_iso_mountpoint
Примонтируем куда-нибудь два созданных на флэшке раздела, чтобы получить возможность на них записать нужные файлы:
mount /dev/sda1 ~/my_1_mountpoint
mount /dev/sda2 ~/my_2_mountpoint

5) Перекидываем на первый раздел флэшки всё из образа, за исключением содержимого каталога sources. В sources флэшки потребуется положить единственный файл: boot.wim.

6) Перекидываем на второй раздел флэшки всё из образа. Туда же прямо в корень кидаем папку со скачанными с сайта ASUS и распакованными драйверами на чипсет AMD.

7) Отмонтируем всё:

umount ~/my_1_mountpoint
umount ~/my_2_mountpoint
umount ~/my_iso_mountpoint
При этом приходится ждать довольно приличное время - видимо, линукс кэширует запись на флэшку, и нужно дождаться, пока он завершит операции записи.

8) Отключаем флэшку:

udisksctl power-off -b /dev/sda

В результате получается корректная установочная флэшка.

Дальше всё просто. В комментариях к этому ролику советуют в настройках ноутбука отключить Secure Boot и пользоваться разъёмом USB 2.0 - он единственный, находится слева - я так и поступил, и установка Windows прошла без нареканий.

воскресенье, 9 апреля 2023 г.

Проблема с подключением по ssh к Slackware 12.0

Проблема выглядит так:

$ ssh  huhmuh@192.168.0.13
Unable to negotiate with 192.168.0.13 port 22: no matching host key type found. Their offer: ssh-rsa,ssh-dss

Решение:

ssh  -oHostKeyAlgorithms=+ssh-dss  huhmuh@192.168.0.13

Литература:

Unable to negotiate with port 22: no matching host key type found. Their offer: ssh-dss

пятница, 1 июля 2022 г.

Debian 11 + VirtualBox 6.1.34 + Windows 10 - частые перезагрузки.

С некоторых пор стала глючить виртуальная машина с Windows 10 на моём дебиане.
Симптомы такие: в какой-то момент система начинает притормаживать, иногда появляются на ровном месте в приложениях ошибки выделения памяти, затем система зависает на пару секунд и уходит на перезагрузку.
В системном журнале windows появляются примерно такие сообщения:
Компьютер был перезагружен после критической ошибки. Код ошибки: 0x0000003b (0x00000000c0000005, 0xfffff8050ec1348a, 0xffffbf0efe7f6b10, 0x0000000000000000). Дамп памяти сохранен в: C:\Windows\MEMORY.DMP. Код отчета: 05a343cc-46a1-4a5c-b0a6-4dc93983176d.
с разными кодами ошибок. Или такие:
Система перезагрузилась, завершив работу с ошибками. Возможные причины ошибки: система перестала отвечать на запросы, произошел критический сбой или неожиданно отключилось питание.

Помогло (надеюсь, что помогло) следующее: В свойствах виртуальной машины (Machine -> Settings -> System -> Acceleration) поставить Paravirtualization Interface = None.
UPD: не помогло...

понедельник, 16 мая 2022 г.

ODBC+MSSQL ошибка "certificate verify failed:self signed certificate"

Проблема: pyodbc при подключении к SQL Server-у выдает ошибку

[08001] [Microsoft][ODBC Driver 18 for SQL Server]SSL Provider: [error:1416F086:SSL routines:tls_process_server_certificate:certificate verify failed:self signed certificate] (-1) (SQLDriverConnect)

Решение: прописать в настройках подключения (строке подключения или свойствах соответствующего подключения в файле ~/.odbc.ini) параметр:

TrustServerCertificate=yes