Перейти к содержанию

Как работает регулятор

Раз в N минут:

нужно_кВтч   = (цель % − текущий %) / 100 × ёмкость / КПД
осталось_ч   = до конца окна − резерв          (переход через полночь учтён)
ток          = нужно_кВтч × 1000 / осталось_ч / (U × число фаз)
ток          = ток × (1 + запас по току)
ток          = округлить вверх до шага, зажать в [минимум, максимум]
ток          = не выше текущей уставки, если заряд достиг порога щадящего финиша

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

Поводы не смешиваются. Аварийная дозарядка заканчивается, как только заряд перерастёт порог с запасом, — это исключение ради того, чтобы утром было на чём уехать, а не разрешение доливать до цели по дневному тарифу. «Доработать начатое» продлевает только ту сессию, что шла ещё внутри окна.

Обратная связь

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

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

Почему подъём тока ждёт свежий процент

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

Между двумя сообщениями машины числитель формулы стоит на месте, а знаменатель уменьшается. Расчёт от этого растёт сам по себе, примерно на четверть ампера в минуту, и выглядит это как «мы отстаём» — хотя на самом деле не произошло ничего, кроме хода часов.

Если в этот момент поднять ток, картина повторится через минуту, потом ещё через минуту. А когда машина наконец отчитается, расчёт разом упадёт — и придётся так же резко снижать. На реальной установке так и вышло: 18 → 19 → 20 → 17 → 18 А за четыре минуты, ни одного осмысленного шага.

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

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

Откуда берётся план

Есть два независимых способа посчитать, сколько ещё нужно залить:

Источник плана Что нужно Когда применяется
soc сенсор процента заряда машины основной
energy сенсор энергии сессии станции + цель в кВт·ч если процент недоступен
none ничего резервный ток до конца окна

Второй способ работает вообще без интеграции с автомобилем.

Что делать, если станция отдаёт меньше, чем просили

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