>>
>>
>>Ух... интересно. А в БД фактически граф?
>Ну да две таблицы Узлы (шины) и Ветви. Ветви (линии и трансформаторы) связывают узлы в сеть.
Понятно. Конкретная организация структуры данных не так и важна. Важно на первом этапе понять что за структура в основе.
>>Т.о. вы хотите моделировать все это дело? А движок ваш - это уравнения Кирхгофа в диф. форме?
>Там свои уравнения - фактически закон Ома и первый закон Киргофа. Главная сложность в том, что задаются не источники ЭДС и тока , как в обычной электротехнике, а мощности. Из-за этого уравнения получаются нелинейными, а квадратичными (мощность это U на I). Но их давно умеют решать итерациями , например по методу Ньютона.
>Дифференциальная форма там явно не используется, но в скрытом виде входит в поправки сопротивления длинных линий (длинные это скажем более 300-500 км)
>>Насколько программа, которая, моделирование проводит ваша "родная" или тоже какая-то сторонняя приспособленная разработка? От этого зависят ваши возможности в выборе сценариев.
>Программа расчёта полностью наша. Но она общается только с БД , через ODBC (так кажется это называется). Оболочка работает только с БД.
Ваша, это хорошо. Теперь как я это понял.
Надо:
Читать структуру сети в память (наверное целиком) и проводить некий рассчет с измененными параметрами. Т.е. необходимо создавать копии (проекты) энергосети (ЭС) и проводить с ним процесс "моделирования".
Эксперимент моделирования имеет результаты - набор получаемых характеристик, возможных пределов системы и параметров. Нужно хранить, пусть пока просто "где-то", как этот "экземпляр" ЭС так и результаты его "тестирования" - моделирования нагрузок и всяких "напастей".
Т.е. сами по себе отдельные экземпляры ЭС - изолированны.
Если все именно так, как я понял, и нет никакой дополнительной связи со статистическими данными работы реальных ЭС или они существуют в отдельных структурах (БД и прочее) и программах, то мне кажется, что гораздо удобнее хранить данные не в БД, а в файловой системе. Так как работа тут именно проектная.
>Про графику мне говорить трудно, это разработка моего соседа по комнате, я знаю что она есть :).
>На утилитках , работающих из командной строки - не пойдёт. Такой товар точно не возьмут .
Так это вы на продажу? :)
Я думал сами свои нужны решаете...
>>>По моим наблюдениям - у нас более жизнеспособными оказываются проекты , которые сделаны попроще , побыстрее и меньшим числом людей.
>>
>>Ну, или проекты, на поддержку которых не жалеют средств :)))
>Как показывает мой опыт последних лет, деньги необходимое, но отнюдь не достаточное условие успеха. И наличие квалифицированных программистов и технологов тоже.
>Это отдельная история, можно как-нибудь обсудить .
З.Ы. Стало настолько интересно, что хочу попросить Вас предоставить мне алгоритмы моделирования и структуры ЭС. Я бы поиграл с многопоточной их реализацией (на досуге развлекаюсь обработкой графов многопоточно на Java). Потом подкину Вам библиотеку (пакет). Многопоточно сейчас очень актуально, особенно после того, как можно вполне приобрести рабочую станцию, в которой напихано 4 и больше процессора. А на работе я для своего хобби выпросил себе эккаунт на 16-ти процессорном ящике, где радиоинженеры покрытие рассчитывают. По своему опыту знаю, что вся "старая" реализация математики однопоточная, что несколько удручает.
>
>Ваша, это хорошо. Теперь как я это понял.
>Надо:
>Читать структуру сети в память (наверное целиком) и проводить некий рассчет с измененными параметрами. Т.е. необходимо создавать копии (проекты) энергосети (ЭС) и проводить с ним процесс "моделирования".
>Эксперимент моделирования имеет результаты - набор получаемых характеристик, возможных пределов системы и параметров. Нужно хранить, пусть пока просто "где-то", как этот "экземпляр" ЭС так и результаты его "тестирования" - моделирования нагрузок и всяких "напастей".
>Т.е. сами по себе отдельные экземпляры ЭС - изолированны.
>Если все именно так, как я понял, и нет никакой дополнительной связи со статистическими данными работы реальных ЭС или они существуют в отдельных структурах (БД и прочее) и программах, то мне кажется, что гораздо удобнее хранить данные не в БД, а в файловой системе. Так как работа тут именно проектная.
Да большинство таких программ работают на файлах, в одном случае - используют встроенную БД типа SQLite. В нашем случае переход на БД был вызван следующими обстоятельствами.
1. В программу входил (сейчас уже нет) модуль для работы с телеизмерениями в сети,
2. Планировалась интеграция с БД оборудования. Т.е. не вводить ветку и её сопротивления, а запрашивается параметры скажем воздушной линии длина , марка провода и т.д.
3. Планировалось использовать программу прогнозирования потребления электроэнергии, работающую на статистическом материале.
Т.е. к БД перешли в расчёте на существенное расширение программы.
>Так это вы на продажу? :)
>Я думал сами свои нужны решаете...
Для своих задач вполне хватает, что есть.
>З.Ы. Стало настолько интересно, что хочу попросить Вас предоставить мне алгоритмы моделирования и структуры ЭС. Я бы поиграл с многопоточной их реализацией (на досуге развлекаюсь обработкой графов многопоточно на Java). Потом подкину Вам библиотеку (пакет). Многопоточно сейчас очень актуально, особенно после того, как можно вполне приобрести рабочую станцию, в которой напихано 4 и больше процессора. А на работе я для своего хобби выпросил себе эккаунт на 16-ти процессорном ящике, где радиоинженеры покрытие рассчитывают. По своему опыту знаю, что вся "старая" реализация математики однопоточная, что несколько удручает.
Если кратко, то в тех задачах, что мы делаем сейчас скорость расчётов отнюдь не главная проблема.
В принципе задачи требующие очень большой скорости расчётов в энергетике существуют, они возникают либо при моделировании в режиме реального времени , либо при переборе большого числа вариантов вариантов. Например поиск опасных комбинаций отключений сетевых элементов.
Параллелизацией таких задач занимались и занимаются. Я посмотрю , что есть на этот счёт .
Задача состоит в многократном решении относительно больших (ну скажем 3-10 тысяч переменных) систем линейных уравнений, при слабозаполненности матриц. Там варианта , как мне представляется два. Можно одну систему решать параллельно. Или правильно распределить всю работу между процессорами если нужно перебрать 1000 вариантов , то поставить перебор так , что на одной 500 и на другой 500.