double arrow

XML хранилище модели

Анализ графических примитивов и правил, используемых для выполнения рисунков блок-схем, позволяет выявить ряд объектов и принадлежащих им атрибутов, которые требуется сохранять в файле модели. Отношения между объектами демонстрирует показанная на рис. 4 схема данных. Очевидно, что для поддержания подобной информационной структуры требуется реляционная СУБД с мощными механизмами масштабирования, поиска, сортировки, обеспечения целостности данных и сохранения.


Рис. 4. Схема данных хранилища модели

К большому сожалению разработчики моделирующих программ предпочитают реализовывать собственные СУБД. Судя по функционированию программ, для большинства эта задача оказывается сложной. Вторым досадным моментом является несовместимость хранилищ (рабочих файлов) разных производителей и невозможность их непосредственного восприятия человеком. Как было упомянуто ранее, проблему может снять бесплатный движок реляционной базы данных фирмы Microsoft – COM-сервер msxml*.dll [7], последние версии которого включены в платформу.NET.

Если ориентироваться на Visio, то данный пакет уже использует этот движок для сохранения рисунков. Однако схема данных хранилища объектов Visio отличается от представленной на рис. 4. Это означает, что она не будет оптимальной (речь о нормализации базы данных) для хранения моделей и, в частности, блок-схем. Следует так же отметить, что схема данных для хранения объектов направленного графа (блок-схемы) не подойдет для хранения объектов ненаправленного графа (схемы физической принципиальной). Но различия не существенны, поэтому последнюю не рассматриваем. Более того, при использовании хранилищ с XML-разметкой, производители моделирующих программ могут придерживаться собственных схем данных – это не ограничит пользователя. Таже СУБД предоставляет механизмы XSLT-трансформаций, позволяющие без привлечения производителей переформатировать рабочие файлы одной моделирующей программы (их структуру и синтаксис) в рабочие файлы другой программы.

Одна из возможных XML-схем хранилища направленного графа (блок-схемы) представлена в виде листинга 4 (атрибуты не показаны). Большинство реляционных отношений схемы данных (рис. 4) кодируется инкапсуляцией описания соответствующих объектов внутри тегов объектов-владельцев. Лишь отношение между таблицей входов и таблицей связей задается парными атрибутами тегов <input/> и <wire/>. При отрисовке блок-схем широко используется механизм иерархической инкапсуляции повторяющегося фрагмента модели в одном составном блоке. В хранилище такие блоки имеют тег <space/>. Принцип описания инкапсуляции можно отследить по положению тегов <block/>.

Листинг 4

<!-- XML-схема хранилища направленного графа (рисунка блок-схемы) -->

<!-- Created by ModelStoreGate.WSC.1.00 -->

<directed_bond_graph>

<block>

<space>

<block>...</block>

<block>...</block>

...

<input />

...

<output>

<wire />

...

</output>

...

</space>

<param />

...

<input />

...

<output>

<wire />

...

</output>

...

<model>

<name />

<simproperties />

<autor />

<data />

<description />

<ico />

<library />

</model>

</block>

</directed_bond_graph>

Для создания хранилища и записи его на диск под управлением СУБД msxml*.dll требуется промежуточный COM-сервер, который допустимо написать на скриптах VBScript или JScript [6], но лучше на VB. Листинг 5 демонстрирует порядок использования объекта ModelStoreGate.WSC из этого сервера для экспорта блок-схемы. Сравнение листингов 2 и 5 позволяет выявить их подобие, из которого следует возможность использования шлюза Visio2SimKernel не только для программирования математического ядра, но и для экспорта рисунка блок-схемы в рабочий файл модели той или иной моделирующей программы.

Листинг 5

/* ************************* Head ***************************** */

// Определяем имя рабочего файла блок-схемы

NameMakingFile = "MDL_01c.XML";

// Создаём из COM-сервера объект для работы с хранилищем

var Store = new ActiveXObject("ModelStoreGate.WSC");

Store.reConnectToLibrary("1stSim_Lib_V2b.xml");

Store.ModelName = "K/(1+Ts) on SUB_1/S";

Store.ModelTimeStart = 0;

Store.ModelTimeStep = 0.01;

Store.ModelTimeEnd = 1;

Store.ModelSimMode = 0;

Store.Autor = "Nikolay Klinachyov";

Store.Date = "10.11.2003";

Store.Description = "Модель апериодического звена "

+ "на субмодели дискретного квазианалога интегратора";

Store.Ico = "apper.ico";

// Создаем корневой составной блок

// Определяем указатель на субобласть составного блока

rtB = Store.addBlock("L001", null);

/* ************************* Begin **************************** */

// Создаем блоки внутри корневого составного блока

Store.addBlock("L701", rtB); // 1(t-dT)

Store.addBlock("L101", rtB); // summingJunction

Store.addBlock("L100", rtB); // gain

Store.addModel("SUB_1S.XML", rtB); // 1/S: 6+1 блок

Store.addBlock("L800", rtB); // export

// Добавляем дополнительные входы и выходы блокам

// Store.addInput(2);

// Store.addOutput(0);

// Устанавливаем параметры блоков и начальные условия

Store.setParam(1, 1, 1.0);

Store.setParam(1, 2, 0.05);

Store.setParam(2, 2, -1.0);

Store.setParam(3, 1, 4.0);

// Создаем связи между блоками (схему передачи аргументов)

Store.addWire(1, 1, 1, 2);

Store.addWire(2, 1, 1, 3);

Store.addWire(3, 1, 1, 4);

Store.addWire(4, 1, 2, 2);

Store.addWire(2, 1, 1,11);

Store.addWire(4, 1, 2,11);

/* ************************* End ****************************** */

// Сохраняем хранилище в файле

Store.save(NameMakingFile);

// WScript.Echo("File " + NameMakingFile + " successfully created");

// Store.visualizationInMSIE(NameMakingFile);

Фактически, объект ModelStoreGate.WSC отвечает за трансформацию линейного потока команд в иерархическое хранилище. Безусловно, при считывании рабочего файла в целях визуализации редактором векторной графики или же для прямого программирования математического ядра требуется обратное преобразование. Оно может быть выполнено одной процедурой с соответствующими параметрами, примером которой является командный скрипт XML2SimKernelGate.WSF см. рис. 2.

Резюме

В статье описана модульная структура программ математического моделирования динамических систем. К основными компонентам отнесены: редактор векторной графики, СУБД, математическое ядро, серверы визуализации и Online-воздействий.

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

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

Сформулированы задачи, которые должны решать модули стыковки основных компонент программ математического моделирования динамических систем. Предложена схема данных и XML-схема хранилища направленного графа (рисунка блок-схемы), что может вызвать интерес у разработчиков.

Литература

1. Клиначёв Н. В. Основы моделирования систем или 7 доменов законов Ома и Кирхгофа: Избранные фрагменты. - Offline версия 3.1. - Челябинск, 2000-2004. - 68 файлов, ил.
– Website: https://model.exponenta.ru/oms_lec.html.

2. Клиначёв Н. В. О структурном кризисе в методике преподавания блока дисциплин связанных с расчетом цепей преобразования энергий. - Челябинск, 2003.
– Website: https://model.exponenta.ru/lectures/sml_06.htm.

3. Клиначёв Н. В. Введение в технологию моделирования на основе направленных графов. - Челябинск, 2003.
– Website: https://model.exponenta.ru/lectures/sml_02.htm.

4. Клиначёв Н. В. Введение в технологию мультидоменного физического моделирования с применением ненаправленных графов. - Челябинск, 2003.
– Website: https://model.exponenta.ru/lectures/sml_03.htm.

5. Герберт Шилдт. Самоучитель C/C++: пер. с англ. - 3-е издание. - СПб.: БХВ Петербург, 2001. - 688 с.

6. Microsoft Corporation. Microsoft® Windows Script Technologies Development Center. – Website: https://msdn.microsoft.com/scripting.

7. Microsoft Corporation. Microsoft® XML Development Center. – Website: https://msdn.microsoft.com/xml.

8. Microsoft Corporation. Microsoft® Visio Development Center. – Website: https://msdn.microsoft.com/visio.

9. National Instruments Corporation. NI® Measurement Studio Development Center. – Website: https://www.ni.com/mstudio.

Что же с ТОЭ?
или
О структурном кризисе в методике преподавания блока дисциплин связанных с расчетом цепей преобразования энергий

На первый взгляд признаки кризиса в методике преподавания блока дисциплин связанных с расчетом цепей преобразования энергий, который, как предполагает автор этих строк, проявится к 2015..2020 годам, практически не видны. Более того, каждая из тех 7..9 дисциплин, на которые кризис повлияет, имеет не просто хорошие учебники, а самые лучшие, поскольку их содержимое шлифовалось талантливыми педагогами страны без изменений сути излагаемых вопросов уже более 30..50 лет. Для примера сравните учебники по ТОЭ, электроприводу, гидропневмоавтоматике и т.д., с переводной литературой, которую педагоги вынуждены использовать в качестве учебной по современным технологиям программирования.

Какова же причина грядущего кризиса, если сегодня у названных дисциплин имеется блестящее методическое обеспечение, наработанное на основе совокупности фундаментальных законов, в ряду которых не прогнозируются подвижки? Ответ прост – это появление нового вычислительного инструментария – программ мультидоменного математического моделирования динамических систем. Попробуем обосновать данное утверждение.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



Сейчас читают про: