Нажмите ESC, чтобы закрыть

Майнинг и солнечные панели: почему горят инверторы и реальный ROI

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

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

Архитектурные грабли: Off-grid против гибрида

Если вы думаете поставить панели, контроллер заряда, пару аккумов и сразу воткнуть туда условный Antminer S21 — у меня для вас плохие новости. Асик — это не домашний холодильник. Это абсолютно статическая, тупая нагрузка, которая требует, например, 3.5 кВт здесь и сейчас, непрерывно, 24/7. Солнце так не умеет. Его кривая генерации — это колокол, который постоянно режется на куски пролетающими облаками. В этот момент генерация PV падает на 80% за пару секунд.

Полная автономия (Off-grid) без связи с внешней сетью — это чистый мазохизм. Чтобы система жила, вам придется собирать гигантский банк LiFePO4 аккумуляторов. При этом реальный КПД по цепочке «панели — контроллер — АКБ — инвертор — БП асика» просядет где-то до 75–83%. Куча энергии просто уйдет в тепло на этапе преобразования.

Гибридная схема (Grid-tied с буфером) работает адекватнее. Сеть здесь выступает в роли бесконечного демпфера. Пошло солнце — берем из него, пошла туча — инвертор мгновенно (или не очень) добирает дельту из розетки. Тут КПД нормальный, под 95%, потому что идет прямое преобразование DC в AC. Но если розетки нет вообще, вы остаетесь один на один с силовой электроникой.

Что происходит внутри блока питания, когда инвертор начинает «икать»

Родные блоки питания майнеров (взять те же APW12 или APW17) спроектированы под чистый синус с минимальным коэффициентом гармоник (THD < 3%). Большинство бюджетных инверторов, даже если на них написано Pure Sine Wave, под реальной нагрузкой выдают ломаную трапецию.

  • Первое, на чем вы споткнетесь — это работа активного корректора коэффициента мощности (APFC) внутри блока питания асика. Алгоритм APFC пытается подстроить потребление тока под форму напряжения. Инвертор в свою очередь пытается выровнять напряжение под нагрузку. Когда они сходятся вместе, их ШИМ-контроллеры начинают раскачивать друг друга. В итоге система уходит в автоколебательный резонанс: инвертор начинает дико выть, асик свистит, а через пару минут силовые ключи на инверторе просто пыхнут от перегрева.
  • Вторая проблема — динамический наброс нагрузки. Когда контролька асика дает команду на запуск хэшборд, потребление взлетает с пары сотен ватт до трех-четырех киловатт почти мгновенно. Инвертор не успевает отработать этот скачок, напряжение на выходе падает ниже 180V. На блоке питания срабатывает защита по пониженному напряжению (UVP), асик уходит в ребут. На этапе тестирования мы получали циклический ребут каждые 10 минут, который за пару дней напрочь убивает флеш-память контрольной платы.

Поэтому емкость батарейного буфера должна рассчитываться жестко: E_bat >= P_asic * 0.5 часа. Это тот минимум, который позволит сгладить просадку, пока инвертор переваривает изменение генерации от панелей. А номинал самого инвертора должен быть минимум на 35–50% выше, чем максимальное потребление фермы. Если у вас ферма на 10 кВт, инвертор нужен на 15 кВт, иначе его защита будет вылетать по любому чиху.

Автоматизируем этот зоопарк через RPC и Modbus

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

Ниже рабочий скрипт на Python. Он стучится в инвертор по Modbus TCP (адреса регистров приведены для популярных китайских гибридников типа Deye/Sunways), забирает текущую генерацию PV и через JSON-RPC переключает профили потребления на асиках под управлением кастомных прошивок (Braiins OS или VNISH).

import time
import logging
import requests
from pymodbus.client import ModbusTcpClient
# Настройки логирования (без лишней мишуры)
logging.basicConfig(level=logging.INFO, format='%(asctime)s [%(levelname)s] %(message)s')
# Config
INVERTER_IP = "192.168.1.50"
INVERTER_PORT = 502
REG_SOLAR_POWER = 40082  # Регистр мощности PV для Deye/Sunways
ASIC_IP = "192.168.1.100"
ASIC_URL = f"http://{ASIC_IP}:4028/api"  # Стандартный эндпоинт для кастомных прошивок
SHUTDOWN_THRESHOLD = 1000  # Меньше 1кВт — тушим майнинг
# Профили (сортируем по убыванию, чтобы проще было перебирать)
POWER_PROFILES = [
    {"min_watt": 3200, "profile": "Performance_3500W"},
    {"min_watt": 2200, "profile": "Balanced_2400W"},
    {"min_watt": 1100, "profile": "Eco_1200W"}
]
def get_solar_power():
    """Дергаем инвертор по человечески через pymodbus"""
    client = ModbusTcpClient(INVERTER_IP, port=INVERTER_PORT)
    try:
        if client.connect():
            # Читаем 1 регистр (holding register = 3)
            res = client.read_holding_registers(REG_SOLAR_POWER, 1, slave=1)
            if not res.isError():
                return res.registers[0]
            logging.error(f"Modbus error: {res}")
    except Exception as e:
        logging.error(f"Инвертор отвалился: {e}")
    finally:
        client.close()
    return 0
def send_asic_cmd(cmd, param=None):
    """Шлем RPC запрос в асик"""
    payload = {"command": cmd}
    if param:
        payload["parameter"] = param
        
    try:
        # Обычно кастомные прошивки (Vnish/Braiins) хавают обычный POST с JSON
        r = requests.post(ASIC_URL, json=payload, timeout=3)
        if r.status_code == 200:
            return r.json()
    except Exception as e:
        logging.error(f"Запрос к асику {cmd} упал: {e}")
    return {}
def main():
    logging.info("Скрипт балансировки Solar-Mining запущен.")
    last_profile = None
    
    while True:
        solar_pwr = get_solar_power()
        logging.info(f"Солнце выдает: {solar_pwr}W")
        
        if solar_pwr < SHUTDOWN_THRESHOLD:
            if last_profile != "paused":
                logging.warning("Солнца мало. Стопаем хэшборды.")
                send_asic_cmd("pause")
                last_profile = "paused"
        else:
            # Ищем подходящий профиль под текущую мощность
            selected_profile = None
            for p in POWER_PROFILES:
                if solar_pwr >= p["min_watt"]:
                    selected_profile = p["profile"]
                    break
            
            if selected_profile and selected_profile != last_profile:
                logging.info(f"Переключаем на профиль: {selected_profile}")
                send_asic_cmd("resume")
                res = send_asic_cmd("setprofile", param=selected_profile)
                
                # Проверка статуса (для VNISH / Braiins)
                if res.get("STATUS", [{}])[0].get("STATUS") == "S":
                    last_profile = selected_profile
                    logging.info("Профиль изменен успешно.")
                else:
                    logging.error(f"Асик не принял профиль: {res}")
                    
        # 30 сек пауза, чтобы не задрочить контрольку асика частотами
        time.sleep(30)
if __name__ == "__main__":
    main()

Опыт выживания: как собрать систему и не прогореть

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

  • Во-первых, забудьте про высокочастотные (бестрансформаторные) инверторы, если строите чистый off-grid. Нужны тяжелые низкочастотные железки с массивными тороидальными трансформаторами на выходе (типа Victron MultiPlus или тяжелых пром-серий). Они за счет своей индуктивности прощают блокам питания асиков их кривой коэффициент мощности и жесткие броски тока.
  • Во-вторых, заземление должно быть раздельным. Хэшборды генерируют колоссальное количество высокочастотных наводок на корпус. Если посадить рамы солнечных панелей, трекеры и стойку с майнерами на один физический контур земли, эти наводки начнут сводить с ума контроллеры заряда панелей (MPPT). В один прекрасный день они просто зависнут в открытом состоянии, выдав на инвертор максимальный вольтаж с панелей.
  • В-третьих, обязательно ставьте УЗИП (устройства защиты от импульсных перенапряжений) класса B+C как на стороне постоянного тока от стрингов панелей, так и на переменке после инвертора. Блоки питания майнеров при падении напряжения любят выплевывать в сеть обратные импульсы. Без хорошей защиты инвертор со временем начнет стабильно уходить в ошибку по перегрузке по току (Overcurrent), даже когда нагрузки почти нет.

Реальная экономика: почему классический расчет окупаемости — сказка

Если вы откроете любой калькулятор солнечных систем, вам насчитают окупаемость в районе 3–4 лет. Маркетологи берут общую установленную мощность панелей, умножают на среднее количество солнечных часов в регионе и заявляют, что «розетка» бесплатная. В майнинге эта математика разбивается о суровую реальность неравномерности генерации.

Представим стандартный сетап: массив панелей на 15 кВт и три асика суммарной мощностью 10.5 кВт. Вот как распределяется реальная утилизация энергии в течение суток в идеальный летний день:

Временной интервалГенерация PV (средняя)Потребление фермыНаправление потоков энергии
00:00 – 06:000 кВт0 кВт (или 10.5 кВт из сети)Ферма либо простаивает, либо жрет дорогую ночную розетку. Аккумуляторы высаживать нельзя — убьете их за 300 циклов.
06:00 – 09:003 – 6 кВт3.5 кВт (1 асик)Скрипт автоматизации запускает первый майнер. Остаток генерации идет на вялую зарядку АКБ после ночного саморазряда системы.
09:00 – 15:0012 – 14 кВт10.5 кВт (3 асика)Пик эффективности. Все три аппарата хэшируют на полную. Излишек в 1.5–3.5 кВт дозаряжает буферные батареи.
15:00 – 18:005 – 8 кВт7.0 кВт (2 асика)Солнце падает. Скрипт тушит один асик, чтобы инвертор не начал высаживать аккумуляторы.
18:00 – 24:000 – 2 кВт0 кВт (или 10.5 кВт из сети)Полный стоп автономной системы.

Итого: из 24 часов в сутки ваши асики работают на 100% мощности только около 6 часов. Еще около 6 часов они работают на 30–60% от своей мощности. Остальное время железо просто простаивает и теряет свою актуальность (сложность сети-то растет ежедневно).

Если вы работаете в режиме чистого Off-grid, ваш коэффициент утилизации оборудования (Capacity Factor) падает примерно до 35–40%. Это значит, что срок окупаемости самих асиков увеличивается ровно в 2.5 раза. Железо устареет и превратится в тыкву до того, как отобьет свою покупку.

Малоизвестные «подводные камни» (То, о чем молчат вендоры)

Температурный дрейф панелей и асиков

Майнеры выделяют гигантское количество тепла. Солнечные панели эффективнее всего работают при температуре ячейки в 25°C. На каждые 1°C выше этого значения генерация кремния падает примерно на 0.4%.

Если вы расположите выхлоп горячего воздуха от асиков так, что он будет хотя бы частично затягиваться под массив панелей, вы получите падение генерации на 15–20% на ровном месте. На одном объекте под Краснодаром мы долго не могли понять, почему в полдень генерация проседает ниже расчетной, пока не перенаправили поток от вентиляторов охлаждения фермы в противоположную сторону от крыши с PV-массивом.

Токовые петли в хэшбордах при просадках напряжения

Когда инвертор перегружен и напряжение падает, встроенный DC-DC преобразователь на хэшборде асика пытается удержать заданный чипам вольтаж (например, 0.36V). Для этого он начинает компенсировать падение входного напряжения увеличением входного тока.

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

Итоговый вердикт инженера

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

  • У вас бесплатное или условно-бесплатное б/у железо прошлого поколения (например, старые Antminer T17/S19, которые не жалко гонять по 8 часов в сутки). Покупать под солнце флагманские гидро-майнеры или топовые S21 — экономическое самоубийство из-за их долгого простоя ночью.
  • У вас жесткий гибрид с сетью, где солнце используется исключительно для снижения дневного пика потребления, а ночью ферма переходит на дешевый субсидированный тариф.

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


FAQ

Тебе потребуется минимум 30–35 стандартных панелей по 450W на один аппарат мощностью 3.5 кВт (типа S19 или S21). Т.е. номинал всего солнечного массива придется задрать до 14–16 кВт. Звучит как лютый оверкилл, но логика тут простая: за те несчастные 5–6 часов идеального пикового солнца в полдень система обязана не только тащить асик на полную розетку, но и успевать забивать тонну ампер в LiFePO4 сборку. Этот буфер должен быть огромным, чтобы хэшборды не сдохли ночью или во время затяжных туч. Сэкономишь на панелях - БМС-ка аккума будет уходить в защиту по низкому вольтажу при каждой пролетающей тени.

Инвертор падает, потому что встроенный APFC (активный корректор мощности) в блоке питания асика и ШИМ-контроллер инвертора устраивают между собой жесткий махач. Когда контролька майнера дает отмашку и запускает хэшборды, потребление тока мгновенно взлетает с 200W до 3.5 кВт. От такого пинка напряжение на выходе инвертора жестко просаживается. APFC асика пугается и начинает лавинообразно сосать еще больше тока, чтобы удержать вольтаж на чипах, инвертор пытается это погасить, оба контура входят в дикий автоколебательный резонанс, и MOSFET-ы инвертора либо горят синим пламенем, либо выплевывают ошибку overcurrent за пару миллисекунд. Чтобы выжить при таком набросе, тебе нужен тяжелый низкочастотный инвертор с массивным трансом внутри, рассчитанный минимум на 1.5х от максимального аппетита фермы.

Можно, но придется полностью расковырять аппарат и выкинуть к чертям родной блок питания. Хэшборды внутри майнера изначально работают на постоянном токе (DC) низкого напряжения — обычно от 12V до 15V. Чтобы провернуть такой финт, тебе нужно высоковольтную постоянку со стрингов панелей (где-то 400V DC) понижать до жирной шины питания 12V–14V через промышленные импульсные DC-DC преобразователи (buck-boost) и суровые MPPT-контроллеры, завязанные на батарейный блок. Это сбережет тебе около 15% КПД, который обычно тупо уходит в тепло при двойном переобувании (DC-AC-DC), и избавит от геморроя с ловлей чистой синусоиды. Но учти: развлечение требует толстых медных шин ручной формовки и точнейшей настройки вольтажа, иначе чипы на платах сделают «пшик» при первом же пуске.
Sying Yu

I am a blockchain developer specializing in building secure, scalable, and innovative decentralized solutions. My expertise covers smart contracts, payment systems, and integrating crypto with fiat to optimize financial workflows. I thrive on creating modern, efficient tools for the evolving digital economy....

Поделитесь своим мнением

Ваш e-mail не будет опубликован. Обязательные поля отмечены *