Сделать для всех каналов общий плавающий "запас" мощности - счётчик
"розданных" периодов сети. Каждый канал рассчитывает требуемую ему
мощность по температуре и фактической, ранее отданной мощности.
Проводится ранжирование: лишь тому каналу, которому более всего
нехватает мощности, даётся квант этой самой мощности - один период
сетевого напряжения. Отдав квант мощности, запас уменьшается.
Регулярное пополнение запаса производится регулятором-ограничителем
максимальной мощности системы. Дать или не дать мощность каналу - определяется сравнением общего запаса мощности с разницей желаемая-фактическая этого канала каналов. Если запаса нет, то мощность не даётся никому. Ждём пополнения.
Если мощности большинству каналов хронически нехватает, подкручиваем ограничитель в плюс.
Всё работает по Брезенхему. Дельта берётся по локальному требованию, а порог - общий. Уверен, с таким подходом пиков будет минимум, так как мощность будут брать по-очереди, само стабилизируется. А если вдруг надо всем сразу, то не даст ограничитель.
Подсказка. Для плавности работы, счётчик и потребности считать минимум в 16 битах, чтобы не было лишнего квантования, могущего приводить к лишней синхронизации запросов.