Инструмент моделирования всего

30 июнь, 2006 - 13:40Андрей Зубинский

Эта статья будет в какой-то мере необычной. И хоть она ни в коем случае не носит «исторического» характера (т. е. не попадает в рубрику «Идеи и судьбы»), в ней будут частыми обращения и к чудом сохранившимся книгам 1944 г., и к отделенным от них сорока годами изданиям, и наконец – к более чем современной программной системе.

Поскольку читатель уже предупрежден о необычности статьи, откладывать неожиданности в долгий ящик не будем и начнем издалека, беспардонно копируя... Умберто Эко. То есть начнем, разумеется, с рукописи.

53 года назад, в конце мая (примерно в дни написания этой статьи), а точнее – 27 мая, совершенно неизвестный автору статьи товарищ из города Киева приобрел книгу «Динамические аналогии». Само произведение, увидевшее свет в 1947 г. в Государственном издательстве иностранной литературы в Москве, является переводом американского издания 1944 г. В 1952 г. в советской розничной сети она была уценена на 2 рубля 60 копеек – по-видимому, не пользовалась большим спросом. Впрочем, возможно, книга уже в 1953 г. прошла через букинистический магазин – все-таки с момента ее издания минуло пять лет. Однако можно уверенно утверждать, что тогдашние ее владельцы были молоды и не чужды модного в те непростые послевоенные времена романтизма.

Инструмент моделирования всего
Инструмент моделирования всего
Случайность? Связь времен? Кто тот неизвестный инженер, оставивший автограф на книге Ольсона в далеком 1953 году? И где вообще они, те инженеры, которых хватало и на моделирование систем, и на стихи Бунина?

Прошло бог знает сколько лет. В самом конце смутных 80-х годов в каком-то из доживающих последние дни букинистических магазинов Киева «Динамические аналогии» Гарри Ольсона попали к автору этой статьи. Уже не за сталинские 10 рублей 40 копеек, а за сущие (но такие тяжелые в те времена) копейки – несколько десятков тысяч купоно-карбованцев.

Все эти детективные сведения автор почерпнул из самого издания – в отличие от безликих файлов книги живут и даже умирают, сохраняя логи своей истории на себе. И все эти сведения имеют самое непосредственное отношение к теме статьи. Впрочем, давайте дадим слово самому Гарри Ольсону из 1944 г.: «В этой книге автор пытается изложить основы динамических аналогий, существенные для инженера или ученого, работающего в области прикладных наук. Аналогии, приведенные в этой книге, основаны на идентичности дифференциальных уравнений и не указывают на то, что имеется какая-либо физическая идентичность величин, занимающих одинаковое положение в соответствующих уравнениях. Безусловно, аналогии, приведенные в этой книге, не являются единственно возможными... Всякая аналогия имеет свои преимущества, особенно при решении определенных, специфических задач. Однако аналогии, приводимые в этой книге, соответствуют «Американской стандартной акустической терминологии» от 1942 г. и «Стандартам электроакустики института инженеров-радистов».

Немного ранее, в последние годы СССР, также в букинистическом магазине, автору перепало издание, отделенное более чем сорока годами от книги Ольсона – «Автоматизация моделирования многосвязных механических систем» (Арайс Е. А., Дмитриев В. М.). Она оказалась почти что бесполезной и хранилась в персональной библиотеке просто для памяти или в знак признательности за привлечение внимания к интересной теме. Бесполезность книги вовсе не означает ее бессмысленность – просто она описывает программный комплекс МАРС для ЕС ЭВМ и БЭСМ, который автор статьи никогда в глаза не видел и уже, вероятнее всего, никогда не увидит в силу очевидных причин. Что характерно, бесполезная техническая книга не хранит на себе никакой информации о прежних владельцах и девственно чиста. Впрочем, лишать права голоса разработчиков системы МАРС мы не будем: «В широком спектре методов моделирования вслед за натурным и полунатурным было разработано физическое моделирование, при котором соответственные величины натуры модели имеют одинаковую физическую природу... Следующим шагом в развитии явились методы прямой аналогии, для которых свойственна однотипность математического описания натуры и модели. Возникновение методов прямой аналогии положило начало разработке широкого класса методов эквивалентирования. Моделями прямой аналогии обычно служат электрические модели, отличающиеся большой физической наглядностью».

Инструмент моделирования всего
Ценность хороших идей в том, что они не стареют

Со времен появления этих книг в моей библиотеке прошло почти 20 лет. И однажды, роясь в каком-то турецком (!) форуме в куче ссылок на плохо сканированные старые инженерные книги, я прочел постинг какого-то благодарного за интересную находку бразильца (!), где промелькнула ссылка на сайт vtb.engr.sc.edu. С этого момента программная система VTB, которой и посвящена статья, стала любимой игрушкой (увы, именно игрушкой, но об этом позже), полностью вытеснив давно ожидаемую, но не оправдавшую ожиданий Heroes of Might and Magic V. VTB, по крайней мере, бесплатна, интересна, а про удобство и «очевидность» интерфейса даже и говорить не хочется...

Главный и первый вопрос

Из названия статьи и ее первой части можно понять, что речь в ней будет идти о программе моделирования систем различной природы. И теперь, после пространного историко-детективного вступления, настало самое время перейти к вещам приземленным и более практичным. А именно, к поиску ответа на вопрос «А стоит ли читать статью дальше?» или, иными словами, – «Нужна ли конкретно мне такая "игрушка", как та, о которой рассказывается в статье?». Ведь на самом деле это сложнейшая программная система, и на изучение ее придется затратить время и силы.

Увы, однозначный ответ на этот вопрос может для себя найти только тот специалист, который вдоволь «наигрался» с VTB и пришел к каким-то выводам. И все же есть ряд соображений, позволяющих сформулировать достаточно очевидные рекомендации. Так, если вы программист и разрабатываете программное обеспечение для систем управления различными техническими объектами, VTB, безусловно, заслуживает вашего пристального внимания. От сложности технических объектов здесь зависит на самом деле немногое – VTB одинаково пригодится и разработчикам встраиваемого ПО контроллеров кофемолок и стиральных машин, и командам, создающим программы военного назначения. Напротив, если главными пользователями ваших программ являются не клапаны насосов и электрические машины, а обычные, скромные, но не менее нужные и важные офисные труженики, вам придется придумывать для VTB применения (и нет ничего хуже и тяжелее этого неблагодарного дела). VTB может быть прекрасной платформой для построения обучающих программных систем, но это именно платформа, а не готовое учебное решение. Иными словами, для того чтобы в наших условиях превратить VTB в виртуальную лабораторию для проведения лабораторных работ, придется серьезно потрудиться – хотя бы потому, что нужны локализованная документация, прекрасно знающие систему преподаватели и соответствующие учебные программы. VTB органично вписывается в масштабную систему автоматизации проектирования (САПР) как самостоятельный и очень важный элемент и прекрасно «уживается» с классическими в инженерии программами класса CAE (Computer Aided Engineering). Диапазон моделируемых с помощью VTB систем ограничивается не столько функциональностью программы, сколько степенью знаний использующих ее специалистов о прикладной области и возможностями самостоятельно разрабатывать расширения VTB (для решения этой задачи предусмотрено все необходимое). Масштабы же моделируемых систем могут быть впечатляющими за счет того, что VTB поддерживает модель кооперативных вычислений, превращая несколько ПК с установленной программой в вычислительный «кластер» (кавычки здесь для того, чтобы избежать путаницы с модным термином). В подтверждение сказанному можно просто упомянуть несколько успешных проектов, в которых использовалась система VTB, – это и космические челноки NASA, и боевые роботы, и беспилотные летательные аппараты для ВВС США и Канады, и проекты силовых систем современных судов ВМФ США, и т. д.

В общем, VTB – это инструмент для всех специалистов, предпочитающих эмпирическим приемам использование инструментария, обеспечивающего вычислительную поддержку методов анализа и синтеза систем на основе принципа «Что будет, если?..» VTB позволяет виртуально, на уровне идеи, «обкатать» потенциально возможные решения, не требуя затрат, например, на дорогостоящее натурное моделирование. Как вы догадываетесь, все эти удовольствия достаются далеко не бесплатно, и, вероятно, по этой причине сама программа доступна всем желающим за 0 долларов 0 центов на основе либеральной лицензии Apache Software License, Version 1.1.

Проект VTB

На фоне массовых истерий прошедших двух недель за этот небольшой раздел статьи было просто страшно браться. Потому что своим существованием VTB обязана, как это часто случается с масштабными сложными программными проектами, уж простите, американской военщине. Увы, но это неоспоримый факт (так что считайте, что вы предупреждены – если VTB оскорбляет ваши патриотические чувства, можете смело переходить к следующей статье этого номера). Каждая отдельная программа комплекса по пункту меню Window – About... выдает окно, детально рассказывающее о номерах грантов Центра военно-морских исследований ВМФ США, являющегося одной из трех основных финансирующих организаций (прочие две – также военные).

Инструмент моделирования всего
VTB позволяет связывать вычислительные и геометрические модели, что дает возможность наблюдать анимированное поведение моделируемой системы

Проект VTB можно смело назвать масштабным и транснациональным – в нем наряду с государством (штаты Миссисипи и Флорида) задействованы такие промышленные гиганты, как концерны Northrop Grumman и ABB, производитель полупроводников International Rectifier, и знаменитые центры академической науки – Массачусетский технологический институт (MIT), заокеанские (по отношению к США) Кембридж и Миланский политехнический. Опять же, на фоне истерии, забавно, но поучительно выглядит факт активного субконтрактного участия в столь «милитаризованном» проекте Таганрогского государственного университета.

Жаль только, что наших вузов в перечне участников в VTB нет – впрочем, не все еще потеряно, проект живет и активно развивается, и вакансии в нем (vtb.ee.sc.edu/opportunities.asp) представляют значительный интерес, например, для воспитанников ряда очень хороших старых научных школ Киевского и Львовского политехнических институтов.

Цели и идеи

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

«Цели проекта VTB:

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

Одно из самых важных ключевых слов в перечне целей – «междисциплинарный». Хорошо известно, что с развитием науки и инженерии понятие «квалифицированный» постепенно становилось синонимом «узкоспециализированный». До какой-то поры такая ситуация всех устраивала. Но жизнь вносит свои коррективы, и у «флюсу подобных» (© Козьма Прутков) специалистов обнаружились серьезные недостатки. Например, в командах, занятых разработкой действительно сложных систем, специалистам разных профилей становится все труднее понимать друг друга, что часто влечет за собой такие ошибки проектирования, которые не только крайне трудно найти и устранить, но и даже представить. Соответственно, «междисциплинарные» инструменты, по большому счету, предназначены не столько для устранения барьеров между специалистами в разных областях (эта задача, очевидно, не решаема), сколько для вовлечения их в процесс единой, коллективной работы.

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

Инструмент моделирования всего
Построение модели из пиктограмм, представляющих библиотечные компоненты

По сути, VTB – это комбинация коллекции моделей различных объектов с удобным интерактивным графическим средством формирования из этих моделей-примитивов более сложных конструкций, и наконец, с механизмами расчетов, позволяющими превратить статическую модель в исполняемую, что дает возможность пронаблюдать и оценить поведение моделируемой системы. Модели-примитивы в VTB подразделяются на три основных класса – естественносвязные, сигнальносвязные и гибридные. В самом названии естественносвязных (англоязычный оригинал названия более очевиден – Natural coupled) примитивов кроется их главная характеристика, и разгадать эту загадку очень легко, если вспомнить, что означает слово «естествознание» – речь идет о моделях разнообразных узлов, деталей, механизмов, процессов, связанных с формированием или преобразованием всех известных измеримых видов энергии. Например, электрическим естественносвязным примитивом является модель преобразователя электрической энергии в тепловую, более известного как резистор. Заметьте, нигде не упомянуто, что естесвенносвязные примитивы должны иметь точный аналог в реальности. Например, идеальный источник напряжения (т. е. такой, выходное напряжение которого совершенно не зависит от нагрузки) в природе не встречается, но это полноценный и один из важнейших электрических естественносвязных элементов. Сигнальносвязные примитивы, напротив, никакого отношения к преобразованию энергии не имеют. Они работают с сигналами – периодическими, нарастающими, спадающими, гармоническими и т. д. Сигналы – это, по сути, информация, и сигнальносвязные модели делают то же самое, что естественносвязные, но с информацией. И наконец, гибридные модели. Они объединяют два уже описанных класса в одно целое. А теперь добавим ко всему этому принцип последовательной детализации «сверху вниз» и объясним получившееся на простом примере. Например, на очистителе лобового стекла автомобиля. Его можно рассматривать в конструкции автомобиля как примитив, преобразующий электрическую энергию генератора бортовой сети в механическую энергию щеток, удаляющих воду и грязь со стекла. Этот примитив может образовываться, в свою очередь, моделями электрического двигателя, редуктора, системы рычагов и щеток, т. е. сугубо естественносвязными моделями разных прикладных областей (электромеханика, механика, триботехника). В современных машинах к этим моделям добавляются формирователи управляющих сигналов для двигателя привода и несложная, но все-таки автоматическая, система обнаружения влаги на стекле. Датчики – это уже из области сигнальносвязных примитивов, они преобразуют «неощутимую» для всей системы информацию в существующие в системе сигналы. Все вместе – гибридная модель, в которой учтены существенные для принципиальной оценки эффективности ее работы данные (например, потребление энергии достаточно мощным приводом) и опущены несущественные (милливаттное потребление реализующей сигнальносвязную часть модели электроникой). При этом никто и ничто не запрещает увеличить степень детализации и создать собственные модели гибридных датчиков и обработчиков информации, учитывающие их энергетические характеристики.

Отдельный, четвертый, класс моделей-примитивов VTB заслуживает особого внимания. Речь идет о стандартизированных на уровне интерфейсов в пределах системы компонентах сопряжения с реальными физическими устройствами, позволяющих использовать в масштабных моделях не только вычислительное моделирование, но и, например, элементы натурного эксперимента.

Архитектура и реализация

Инструмент моделирования всего
Средство просмотра моделей из базы данных
Инструмент моделирования всего
Инструмент моделирования всего
Среда VTB интегрирует не только непосредственно средства разработки, но и программы просмотра документации в формате pdf и html

Ключевые элементы архитектуры VTB упрятаны за простым и дружественным интерфейсом основной пользовательской программы системы – редактора схем (Schematic Editor). В их перечень входят расширяемый набор решателей (solvers), овеществляющих ранее неоднократно упомянутый механизм расчетов, подсистема трехмерной визуализации результатов расчетов с поддержкой форматов практически всех популярных пакетов машинной графики и CAD-систем (допускается использование графических моделей, созданных в 3D Studio, AutoCAD, ProEngineer и т. д.) и, наконец, общесистемный механизм автоматизации – интерпретатор встроенного языка расширения функциональности (на жаргоне – скриптового языка). Сразу следует сказать, что для облегчения процедур реализации моделей примитивов в VTB предусмотрено все, что возможно предусмотреть в продуктах самого высокого класса: существуют как хорошо документированные достаточно формализованные процедуры написания моделей на языках высокого уровня (C++), так и способы использования бинарных моделей, разработанных на Fortran и в сторонних пакетах, таких как Matlab/Simulink, Modelica, Spice, Paragon, ACSL.

Для повышения наглядности работы в VTB предусмотрено не только визуальное представление вычислительных моделей в виде пиктограмм (естественно, в пакете присутствуют средства программной поддержки их создания), но и механизмы «обратной связи», позволяющие анимировать созданные в сторонних пакетах геометрические модели.

В отличие от многих бесплатно распространяемых программ VTB великолепно документирована, и это касается всех ее подсистем, включая поддерживающие взаимодействие со сторонними пакетами. Так что решение вопроса расширения базовых немалых возможностей пакета в VTB весьма прозаично – это уже технология, а не необъятное поле для эмпирических исследований. Более того, для сокращения дистанции между знаниями квалифицированного инженера, привыкшего оперировать моделями динамических систем в виде дифференциальных уравнений, и знаниями квалифицированного программиста на С++, в VTB предусмотрен транслятор моделей, описанных в привычных инженерных терминах, в понятный программисту код. Подсистема формирования моделей, заданных пользователем (UDD, User Defined Device), также детально описана в исчерпывающем, но сравнительно небольшом руководстве, а транслятор языка UDD командной строки снабжен примитивной, но разумно достаточной графической пользовательской оболочкой.

Основные принципы моделирования

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

Итак, начнем с самых главных моделей в VTB, ради применения которых и строятся подобные системы. Разумеется, с естественносвязных. Мы уже упоминали о них на уровне идеи, теперь поверхностно обсудим главные принципы ее реализации. Раз естественносвязные модели описывают нечто, выполняющее трансформацию энергии, то первое, что мы должны помнить, – закон ее сохранения. И если энергия, грубо говоря, не исчезает в никуда и не может браться из ниоткуда, то у естественносвязных моделей должно быть предусмотрено нечто, позволяющее моделировать обмен энергией. Это нечто принято называть портами. Соответственно, порты примечательны еще и тем, что они дают возможность измерять. Ведь вся остальная модель – это, по идее, черный ящик, внутренности которого недоступны. Измерять в портах можно величины, характеризующие процесс переноса энергии. В общем случае таких величин может быть всего две – одна измеряется непосредственно в «сечении» порта (если представить себе порт некоей «трубой», по которой движется энергетический поток), вторая – между двумя портами. Такие величины принято называть «поперечными» (through, в русскоязычной тематической литературе часто встречается термин «перпендикулярные») и «продольными» (across, иногда называют «параллельными»). Так, для электрических цепей «поперечной» величиной является электрический ток (его измеряют в сечении проводника), а «продольной» – напряжение (измеряется всегда между двумя точками цепи), в механических цепях «поперечна» сила, а «продольна» – скорость. Подобные аналогии и называются динамическими (вы еще помните начало статьи?), а допустимость их (аналогии всегда опасны!) доказана теоретически.

Инструмент моделирования всего
Инструмент моделирования всего
И оригинальная книга Ольсона, и ее советский перевод, и советская же система МАРС, и, наконец, многонациональный проект VTB – единое целое

Ну а теперь настало время дать слово Гарри Ольсону, лаконично объясняющему самое главное в методе динамических аналогий и в принципах моделирования в VTB: «Математически элементы электрической системы определяют коэффициенты дифференциального уравнения, описывающего движения в системе. Если теория электрической цепи основана на динамической теории Максвелла, то цепь превращается в динамическую систему, в которой токи играют роль скоростей. Коэффициенты в дифференциальных уравнениях механических и акустических систем можно также рассматривать как механические или акустические элементы.

При составлении уравнений электрических цепей закон электродвижущей силы Кирхгофа играет ту же роль, что и принцип Даламбера при составлении уравнений механических или акустических систем. Это значит, что любую электрическую, механическую или акустическую систему можно рассматривать как комбинацию электрических, механических или акустических элементов. Следовательно, любая механическая или акустическая система может быть сведена к электрической цепи, и задача может быть решена на основании теории электрических цепей». Вот, собственно, самое главное, что нужно непременно знать о VTB. Понятное дело, VTB требует от использующего программу специалиста великолепного знания предметной области, объект которой моделируется. Сама программа принципиально неспособна восполнить нехватку этих знаний. Так что квалифицированным разработчикам управляющего и промышленного ПО (в том числе и систем реального времени) VTB добавляет в перечень обязательных знаний физику. Впрочем, затраты времени и труда окупаются с помощью этой программной системы сторицей – достаточно ознакомиться с тематическими публикациями на сайте проекта (vtb.ee.sc.edu/pubs/epubs.asp), чтобы оценить возможности системы и выгоды от ее применения в реальных проектах и прикладных исследованиях.