Этот проект был в значительной степени изучением модульной дипетчерской системы модульной системы. Основной проблемой, которая побудила это, заключалась в том, что у каждой микросетки, с которой я столкнулся, имел свой собственный набор целей управления. Силовые системы разделяют многие из тех же целей, но в зависимости от архитектуры они достигают этих целей (или подмножества целей) по -разному. Идея заключалась в том, чтобы разбить систему управления высоким уровнем на модульные части и построить дерево/трубопровод управления диспетчеры, основываясь на том, какие части были загружены.
Я начал работать над проектом после прочтения [Руководство по дизайну алгоритма Стивена Скеины] https://www3.cs.stonybrook.edu/~skiena/. Я думал, что это было бы хорошим применением для закрепления моего понимания (направленных) графиков.
Теперь я склонен выдвигать аргумент во всех микросетках имеет одинаковый набор целей:
Первая цель захвачена в основной цели управления: не затемните. Цели два и три - проблемы с оптимизацией. Поэтому сначала решите проблему оптимизации, и пусть это управляет диспетчерской системой. Попытка учитывать атрибуты каждого компонента на самом высоком уровне диспетчерской разгорет, превзойдет ваш дизайн со сложности (даже если вы написали алгоритм горячего графика, чтобы сразиться с этой сложностью).
Основной отведение: не проектируйте сложные системы.