Не работает солнечная батарея в конструкторе

Обновлено: 24.04.2024

Под катом вас ждёт чертёж установки, блок-схемы агента, работающего методом проб и ошибок, а также визуализации, видеоролики и, конечно, код. Материалом делимся к старту нашего флагманского курса по Data Science.

Агент-критик Softmax оптимизирует выработку энергии в моделируемой по реальным данным меняющейся среде освещения.

О моделировании среды

Особенности среды, определяющие лучшее расположение панелей, то есть положение Солнца в любое время суток моделировать легко; труднее моделировать особенности конкретного места или панели. Изменения тени, например от деревьев, дефекты панелей, дрейф осей по мере деградации системы — всё это может сильно повлиять на выработку энергии.

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

Системы управления и обучение с подкреплением

RL — сдвиг парадигмы моделирования и управления сложными системами. Разработчикам агента не нужно моделировать динамику управляемой системы или понимать, как управлять этой динамикой.

Наша задача — предельно увеличить выработку энергии панелью, то есть разместить панель так, чтобы за сутки с учётом изменения освещённости она вырабатывала как можно больше энергии.

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


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


ИИ постоянно взаимодействует со средой и получает награду. Исходя из награды, он обновляет вероятность выбора действий в текущем состоянии:


Зная это, поговорим о конкретной реализации RL в нашей задаче.

Принципы обучения с подкреплением в подробностях.

Реализация

Рассмотрим аппаратную часть системы, затем поговорим об алгоритмах и ПО..

Двухосная панель

Каждая ось управляется сервомотором, который поворачивается на 180°. На каждом временном отрезке через последовательный порт или порт USB панель передаёт агенту RL данные о положении сервомотора и вырабатываемой мощности. Посмотрите чертёж установки:

Взаимодействие агента со средой

На каждом шаге агент решает, как расположить сервомоторы, чтобы вырабатывать наибольшую энергию. Каждый сервомотор можно расположить в диапазоне от 0 до 180°, но используемые в проекте шестерёнки напечатаны на 3D-принтере и дают точность позиционирования только около 5°. Учитывая это, я индексирую 0–180° с шагом в 5°, то есть каждый сервомотор может иметь положения от 0 до 36.

Чтобы упростить структуру памяти агента, преобразуем двумерный индекс положения сервомотора: [36, 1] в одномерный индекс с плоским отображением, например [1333]. Так единственное число передаёт состояние обоих сервомоторов.

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

Здесь шаг времени равен 24 для сопоставления с часами суток.

Связь информации и возможных действий агента по оптимизации энергии

Связь информации и возможных действий агента по оптимизации энергии

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

Архитектура агента

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

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

Уравнения обновления агента Дельта-уравнение

Уравнение обновления актора агента. Подробности об этом упрощении градиента смотрите в RL Agent — Softmax Actor-Critic.

Уравнение обновления критика агента

Уравнение обновления критика агента

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

Вот так агент выбирает действие:

Полученные актором значения каждого действия влияют на вероятность того, что в политике softmax выберут именно его.

Полученные актором значения каждого действия влияют на вероятность того, что в политике softmax выберут именно его.

Измерения сетей акторов и критиков — [время суток, количество состояний, количество действий]. Здесь это [24, 1369, 1369]. Значения внутри сети акторов соответствуют не ожидаемой в каждом состоянии мощности, а скорее вероятности выбора действия. У критика тоже трёхмерная структура памяти, однако он изучает ожидаемую мощность от каждого действия в данном состоянии.

Трёхмерная структура сетей актора и критика

Трёхмерная структура сетей актора и критика

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

О реализации агентов в этом проекте.

Генерация симуляции среды

Агенты RL учатся через исследование, а исследование требует времени. Обычно агента ориентируют в смоделированных средах, где шаг времени намного короче настоящего. Так можно быстро понять, подходит ли агент для задачи, и исследовать гиперпараметры.

Здесь не хочется моделировать всю основную динамику, влияющую на реальную выработку электроэнергии в данном месте и в данное время, поэтому с помощью двухосной панели смоделируем среду, просканировав освещённость батареи Солнцем:


Сбор данных о мощности по всем индексам сервомотора

Съёмка выше покадровая, не в реальном времени:

Преобразование в двумерный массив

Световой скан в 3D из видео выше Сканирование света из видео выше, когда двумерный массив вознаграждений передаётся классу среды

Класс среды

Класс среды эмулирует реальную среду меняющегося освещения. Сдвиг массива каждые N шагов отражает движение Солнца. Каждые M шагов (дней) агент возвращается в исходное положение.

N и M равны 3600 и 86400: 3600 шагов модели — час реального времени; 86 400 шагов — это сутки:

Класс среды штрафует за энергозатраты на вращение сервомоторов.

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

Так, награда агенту от среды составляет:


Вот потребляемая сервомотором мощность:


Сигма — некоторая константа. Здесь она равна 0,0001 Вт на градус движения на двигатель.

Подробности о среде и создании симуляций:

Результаты

Сначала я исследую гиперпараметры, изменяя температуру агента, размеры шагов актора и критика, а также средний размер шага вознаграждения от 1e-5 до 1e-0 с шагом x10. Это даёт 625 перестановок гиперпараметров агента.

Гиперпараметры я исследую на одном миллионе шагов и в конце симуляции оцениваю производительность по скользящему среднему количеству энергии. Исходя из этого исследования, лучшим признан этот набор гиперпараметров:

Чтобы осмыслить производительность нашей системы, моделируется один год её работы. Полученная энергия сравнивается с энергией, которая была бы выработана, если бы панель всегда была расположена идеально. Шаг симуляции равен одной секунде, поэтому нужно 365 * 86 400 = 31 536 000 шагов.

Запустив код, получим производительность агента:

Выше — энергия за сутки, ниже сравнение предельной и выработанной агентом энергий

Выше — энергия за сутки, ниже сравнение предельной и выработанной агентом энергий

За месяц агент каждый день вырабатывает более 90% максимума энергии без каких-либо моделей или участия человека для сбора данных и управления динамикой среды. Он продолжает учиться и повышать выработку энергии весь год, к его концу достигая 96% суточного предела.

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

Вот первые 5 дней работы по часам:

Сравнивая мощность качения на первом миллионе шагов с последним миллионом шагов, увидим, как поведение агента сходится к оптимальному, в то же время он продолжает учиться.



Чтобы проверить производительность агента ещё раз, снова просканируем свет с тем же алгоритмом и гиперпараметрами агента. И теперь области высокой и низкой мощности выражены намного сильнее:

Отдельное сканирование с более выраженными пиками и провалами Двумерный массив вознаграждений согласно сканированию

К концу года длиной в 31 536 000 шагов агент снова вырабатывает около 95% максимальной энергии:


Заключение

Агент-критик Softmax оптимизирует выработку энергии двухосной солнечной панелью без помощи распределения вероятности перехода или знаний предметной области. Работая с несколькими динамическими световыми средами в симуляции, которая имитировала год работы, агент добивается 95% от максимума.

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

Я считаю, что RL позволяет решать больше задач оптимального управления сложными энергосистемами за меньшее время, меньшими усилиями и более подходящим образом, чем традиционные методы без применения ИИ.

Материалы проекта

Подробную техническую информацию обо всех этапах проекта смотрите в разделе Project Overview.

Код проекта хранится здесь.

Направления дальнейшей работы

Я не стану развивать это исследование, но вижу для него три многообещающих направления:

Обновление Q-Network и сети политики до глубоких нейросетей. Избавившись от табличных представлений состояний и действий, агент приобретает гораздо большую универсальность и может быть легко адаптирован к управлению несколькими панелями.

Управление несколькими панелями. Использовать базовый алгоритм агента для управления несколькими панелями, когда одни панели затеняются другими.

Портирование агента на C/C++ для автономного онлайн-развёртывания. Хотя агент в нынешнем виде технически может работать как онлайн-агент, нужно, чтобы к Arduino был подключен ноутбук с Python. Портированный на C/C++ агент можно прошить на Arduino и запускать автономно, когда Arduino включена.

А мы поможем вам прокачать навыки или с самого начала освоить профессию, актуальную в любое время:


Краткий список курсов и профессий



Увидел на Али такую игрушку, почитал отзывы, все пишут что продавец молодец и всё супер, заказал аж две! Думаю сам наиграюсь и племяннику вручу.
Люблю подобного рода мелочь.
Попутно заказал 2-х долларовую машинку на солнечной батарейке


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


Внутри всё как и ожидалось, куча пластика, для сделай сам и пакетик с моторчиком и мелочью.


Начал быстреньковсё собирать, качество деталей конечно оставляет желать лучшего, всё соединяется через одно место и кое как. короче собрал я движок, всех этих «будущих» конструкций


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


И при соединении движка к солнечному элементу чуда не произошло, движок не заработал.
Как я его не крутил не вертел, бегал по квартире в поисках сверх светал, движок не крутился (((

решил проверить его обычной мизинчиковой батарейкой 1,5 в, работает.
Тогда решил проверить выдаваемое напряжение, данным элементом.

Напряжение которые выдает лежа на столе под лампой было 0,70



Напряжение впритык к лампе, было равно примерно 1 в.

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


А машинка на солнечном элементе кстати, тоже не шевельнулась, но я и не ждал чуда, элемент там ещё меньше.





Оставил продавцу отрицалово и спустя пару дней он пишет мне типа поменяй отзыв на положительный, а я тебе денег половину верну. И тут я понял откуда столько положительных отзывов. Продавца послал, отрицалово оставил.

Кот покупкой не доволен.


P.S. Отзыв у меня первый, чукча читатель, а не писатель, так что пишите если что не так )))

Пожалуй, одна из самых известных китайских игрушек из серии «на солнечной энергии». Чем она привлекательна и как ее собирать?




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


Однако обзоры робота чаще всего ограничиваются анбоксами, перечислением деталей, — в общем, многие, как и мы, долго откладывали самостоятельную сборку. Это казалось, как минимум, долгим процессом: роботов-то 14 штук! На самом деле — все куда проще.

Сама по себе история этого конструктора начинается вроде бы не в Китае. Компания, которая обладает патентом на данный конструктор, продает его за 33 доллара и является частью OWI Inc. Однако до нас этот робот доходит уже в виде реплик, впрочем, весьма достойных.

На сегодняшний день — это и переведенная коробка:

И локализованная инструкция:


14 роботов — это много или мало?

Мы довольно долго сами откладывали сборку: с одной стороны это казалось очень просто, а с другой — неимоверно долго. Но тут, как выясняется есть хитрость. 14 моделей робота имеют общую «базу», поэтому, собрав одного из них, собрать остальных будет уже вопросом нескольких минут.

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

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


И это — первая неизменяемая никогда часть будущих роботов.


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


Моторчик, который будет приводить роботов в движение, находится в корпусе, а вот солнечный элемент питания — на голове.


Голова собирается еще проще, а их «сложных» элементов тут только небольшая солнечная панелька.


Голова состоит из нескольких частей, которые незамысловатым образом крепятся между собой. Панель же дополнительно устанавливается на две небольшие клейкие полоски.


Затем конструкция закрепляется:


Усаживается на «робошею» и…


… И второй этап сборки благополучно оказывается позади. Времени на все про все вроде бы немного — минут 20-30, и то, кажется, большая его часть расходуется на то, что вы вырезаете с панелей деталей нужные элементы, а также придаете роботу «человечные черты», обклеивая его наклейками из комплекта.

А что в этом комплекте?

Коробка вмещает в себя несколько панелей с деталями, набор шестеренок, моторчик, солнечную панель, наклейки и лодку.


Лодка, пожалуй, самая забавная часть этого набора. Она даже вынесена в отдельный этап по сборке после «туловища» и «головы». Так или иначе это — пластмассовый лист, из которого собирается нечто подобное для одного из роботов:


Несколько разноцветных панелей — это детали, их нужно аккуратно «откусывать», чтобы не оставалось зазубрин, что в свою очередь может мешать передвижению роботов.


Некоторые части угадываются сразу, например, фрагменты головы или корпуса, а все остальное любезно пронумеровано и соответствует обозначениям в инструкции.


Закономерностей немного. Однако для простоты, например, вся желтая панель — это скрепляющие элементы. Ну, хоть что-то.


Наклейки — одна из самых «дотошных» частей.


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


Будущих роботов может быть 14

Данная модель считается одной из самых объемных: после роботов аналогичной тематики 3 в 1, 6 в 1, 7 в 1, которые не имели такого проникновения на рынок и успеха, 14 в 1 казался невозможным в плане продаж, однако он и стал самым популярным.

Все модели робота, которые можно собрать для начала вынесены на коробку:


А затем продублированы и в инструкции:


Самой же популярной и узнаваемой моделью из данного комплекта является, кажется, вот эта:


Ее мы и решили повторить. Итак, главные части: механизм и голова у нас были, так что дело оставалось за малым. Собственно, с этого момента начинаются все остальные этапы сборки — сборка разных роботов.


Сам процесс несложный, и как и ранее, самый большой расход времени — это обклеивание деталей. Вот эти тонкие полоски должны украшать колеса, и это слегка утомляет.


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


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


Надежно для воспроизведения заданных движений и перемещений.


Робот-конструктор сделан для того, чтобы его собрать и за ним наблюдать. А вот, чтобы за ним наблюдать, требуется либо галогенное освещение, либо — солнечный свет.


На финальном этапе сборки уже можно соединить механизм с батареей: это делается с тыльной стороны:


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

Организована работа по сборке логично и несложно, и ребенок вполне сможет самостоятельно найти нужные элементы, сопоставив их либо визуально, либо по номерам.

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

Солнечные батареи и солнечные электростанции

Солнечные батареи и солнечные электростанции

Солнечные батареи и солнечные электростанции запись закреплена

Почему солнечная панель не работат?

Так бывает. Вы приобрели солнечную панель, а она не работает.
Давайте разберёмся ПОЧЕМУ?

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

Причина того, единичного случая, была выявлена инженеров в считанные минуты. Панель преодолела расстояние более 3000км на крыше автомобиля и от вибрации в клеммной коробке отошёл контакт. Эта панель и по сей день исправно служит своему владельцу, но иногда мы получаем тревожные звонки от клиентов, утверждающих, что их система не работает. Давайте разберёмся в причинах:

№1 Неправильная коммутация системы. Не корректное подключение к контроллеру заряда или его отсутствие. Увы, самая частая проблема.

🤦‍♂

№2 Солнечная панель с известного "Али-сайта". Чаще всего это гибкие (в пластике) солнченые элекменты, ячейки или контакты которых были повреждены из-за излишнего изгиба. К сожалению кремний очень хрупкий

№3 Не работает не сама панель, а система с заведомо несогласованной нагрузкой. Примером может стать обогреватель, подключенный к солнечным панелям и превосходящий потреблением выработку.

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


1.JPG" />

Сегодняшний обзор будет посвящен конструктору, приобретенному мною на просторах eBay.

Так уж вышло, что я стараюсь развивать свою дочурку во всех направлениях, а потому мы с ней не только учимся бантики вязать, но и стучим молотком, пытаемся освоить шуруповерт, и даже иногда пытаемся учиться паять (под четким руководством отца). А поскольку она с самого раннего детства любит собирать пазлы и конструкторы, то я решил попробовать развить и это направление. Дело в том, что дома у нас полно как обычных блочных конструкторов, так и оригинальных наборов Lego (а так же китайских вариаций на эту тему), но всех их объединяет одно — что бы ты не собрал, приходится двигать машинку/лягушку/кораблик руками. Но ведь все может быть куда интересней, не так ли?

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

Пришел конструктор в обычном полиэтиленовом пакете, без какой-либо оригинальной упаковки.

В комплекте поставки оказалось две пластиковые «панели» с элементами конструктора, небольшой пакетик с солнечной панелью и подключенным к ней моторчиком, небольшой пакетик с наклейками, а так же подробная инструкция, изготовленная в виде книжки. Инструкция черно-белая, вся в китайских иероглифах. Она достаточно подробная, а потому и объемная — 34 страницы.

В целом, к качеству изготовления деталей претензий нет. Все отлито весьма прилично, постороннего запаха пластик не имеет. Больше о комплекте поставки сказать нечего, а значит переходим к пробной сборке :)

Все элементы (а вернее места их крепления) обозначены буквенно-цифровым кодом, так что проблем со сборкой первой игрушки не возникает (если следовать инструкции). Почему первой? — спросите вы. Да потому, что некоторые детали дублируются, а обозначений на самих элементах нет, так что приходится подбирать по внешнему виду, что не очень удобно.

Сперва собирается «приводной» узел, который остается неизменным для любой из 4 игрушек, которые можно собрать из данного конструктора. Состоит он из множества шестерен, моторчика и солнечной панели, закрепленной при помощи двухстороннего скотча на голове будущих зверушек :)

Внутренности (если присмотреться, то видно, что есть некое подобие ВОМ):

В сборе выглядит все это примерно так:

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

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

Как видно, зверушка не только ходит (причем очень даже бодро), но и рот открывает/закрывает. В общем, дочка была в восторге (хотя за то время, что мы ждали солнца, запал в ней немного угас и идея движущегося конструктора начала обретать оттенок недостоверности). Но после того, как динозавр все-таки пошел, все остальные игрушки были собраны в крайне сжатые сроки :)

Вот так выглядит некое насекомое (не только ходит, но и клешней щелкает):

А еще можно собрать робота:

Так же можно собрать машину-бур. Фото ее, к сожалению, нет. Всего 4 разные игрушки. Причем внешний вид можно улучшить за счет наклеек, идущих в комплекте. Можно сделать роботу глаза, а так же украсить колеса :) После такого тюнинга, игрушка становится более интересной внешне.

Подводя итог всему, что тут было написано, могу сказать, что конструктор нам очень понравился. В итоге, в собранном виде у нас остался динозавр, который снова дожидается солнечных деньков, чтобы пуститься в свое путешествие. Данный набор не сложный, так что может подойти детям любой возрастной категории (но без помощи родителей навряд ли удастся обойтись, если им меньше 9-10 лет). Зато собирая его, появляется возможность не только поиграть с ребенком, но и поделиться с ним своими собственными (взятыми незадолго до этого из википедии) познаниями о принципах работы солнечных батарей :) А ребенок сможет не только поиграть, но и узнать что-то новое. А что может быть ценней времени, проведенного рядом со своим ребенком? Так что все мы остались довольны покупкой на 100%. Даже больше. Потому опять был заказан такой же набор, как тот, что был подарен племяннику :) Пока он придет, как раз наступит подходящая погода для запуска все этой живности…

Читайте также: