Pull to refresh
20
0
Нагорский Николай Михайлович @nikolaynag

CTO

Send message

Трансформатор тока для детектирования включений нагрузки в сети 220В

Reading time8 min
Views24K

Недавно у меня возникла необходимость определять на микроконтроллере моменты включения/выключения погружного насоса с поплавковым выключателем, запитанного от сети 220В, т.е. по сути определять наличие потребляемого тока в цепи подключения насоса. Когда речь идет об измерениях в сети 220В, в первую очередь стоит подумать о том, как обеспечить качественную гальваническую развязку, т.е. отсутствие электрического контакта между высоковольтными и низковольтными цепями.

Пожалуй самым простым и быстрым решением было бы взять готовый модуль на эффекте Холла (например на базе микросхемы ACS712). Однако мне такой вариант не подошёл по двум причинам. Во-первых, он требует питания 5В, а у меня было всё запитано от 3.3В. Во-вторых, он включается в разрыв измеряемой цепи, а мне было очень важно не нарушить работу насоса даже в случае ошибки проектирования или выхода из строя датчика.

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

Читать далее
Total votes 37: ↑37 and ↓0+37
Comments41

Пишем numpy-модуль для ускорения математических функций с помощью SIMD-инструкций

Reading time11 min
Views9.4K
Пакеты numpy и scipy предоставляют прекрасные возможности для быстрого решения различных вычислительных задач. Концепция универсальных функций (ufunc), работающих как со скалярными значениями, так и с массивами различных размерностей, позволяет получить высокую производительность при сохранении присущей языку Python простоты и элегантности. Универсальная функция обычно используются для выполнения одной операции над большим массивом данных, что идеально подходит для оптимизации с помощью SIMD-инструкций, однако мне не удалось найти готового решения, основанного на свободном программном обеспечении и позволяющего использовать SIMD для вычисления в numpy таких математических функций, как синус, косинус и экспонента. Реализовывать алгоритмы вычисления этих функций с нуля совсем не хотелось, но к счастью в интернете нашлось несколько свободных библиотек на языке «С». Преодолев лень сомнения, я решил написать собственный numpy-модуль, предлагающий универсальные функции для синуса, косинуса и экспоненты. За подробностями и результатами тестов добро пожаловать под кат.
Пишем свой numpy-модуль!
Total votes 34: ↑34 and ↓0+34
Comments4

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Registered
Activity