Графический редактор структурных схем

Практика моделирования реальных технических систем показывает, что их структурные схемы включают в себя даже тысячи блоков с многочисленными связями между ними. Поэтому большое значение имеет простота, удобство, наглядность и широкие функциональные возможности режима взаимодействия и диалога человека с программой при создании и редактировании структурной схемы модели объекта. Эти возможности обеспечивает графический редактор структурных схем. Пример работы в SimInTech представлен на рисунке (Рисунок 3). В окне графического редактора в виде структурной схемы набрана математическая модель следящего привода с двухступенчатым редуктором.

Командные кнопки, команды меню, функции работы с мышью и клавиатурой создают среду (интерфейс) для общения Пользователя со средой моделирования. Графический редактор поддерживает более сорока функций редактирования. В окне редактора Пользователь может перемещать, копировать, удалять, вставлять отдельные фрагменты структурной схемы. Возможно изменение размеров, ориентации, цветового, текстового оформления отдельных блоков. Графический редактор позволяет масштабировать структурную схему, привязывать блоки и линии к сетке. Часть схемы можно исключить из процесса моделирования, не удаляя из самой схемы, что резко упрощает отладку больших проектов. SimInTech позволяет сохранять структурные схемы и результаты расчетов в файлах, выводить на печать в виде рисунков схемы, графики или таблицы результатов расчетов.

Рисунок 1. Главная Панель Управления

Рисунок 2. Главное Схемное Окно (Окно графического редактора)

Рисунок 3. Структурная схема Двигатель ПТ. Графическое окно.

Графический редактор позволяет формировать многоуровневые структурные схемы. При этом на структурной схеме уровня N, подструктуры уровня N-1 представлены в виде блоков, называемых субмоделями. В отличие от обычных блоков, математическая модель блока субмодели записана не в виде уравнений, а представлена внутренней структурной схемой субмодели. Переход с уровня на уровень позволяет редактировать каждую подструктуру в отдельности. На рисунке (Рисунок 2) показан пример двухуровневой схемы, где некоторые блоки представлены в виде субмоделей (субструктур, макроблоков). Например, Двигатель ПТ в Главном Схемном окне – подструктура нижнего уровня. В субмодельном схемном окне показана внутренняя структурная схема этого блока. Принцип вложенности позволяет представить структурную схему сложной системы в удобном, легко читаемом виде, при этом уровень вложенности субструктур неограничен. В Главном меню (Поиск – Структура) доступен инструмент, позволяющий в древовидном виде осуществлять навигацию по структурной схеме как текущего проекта, так и любого другого проекта, открытого в текущем экземпляре программы.

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

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

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

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

Необходимость использования глобальных свойств субмодели диктуется следующими соображениями:

  1. При выполнении вариантных расчетов необходимо часто изменять некоторые параметры модели. Это удобнее делать, когда все такие параметры поименованы и их описания сосредоточены в одном месте.

  2. Один и тот же параметр (например, период квантования дискретной системы) может присутствовать в нескольких блоках модели. В этом случае изменение этого параметра потребовало бы внесения изменений во все эти блоки. Если задать этот параметр глобальным, то все изменения сводятся к изменению одного параметра.

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

  4. С помощью глобальных сигналов удобно задавать оптимизируемые параметры в задачах параметрической оптимизации и оптимального управления.

Рисунок 4. Состав, структура и параметры субмодели

Наряду с глобальными параметрами модели в SimInTech введено понятие глобальных переменных модели. Глобальные переменные формируются путем использования типового блока В память, входной сигнал которого Пользователь может сделать именованным. По сути блок В память задаёт имя для подключенной к нему линии связи.

Кроме того, глобальными переменными проекта являются элементы списка сигналов проекта и/или элементы подключенной к проекту базы данных сигналов (например, базы сигналов SDB), запись и чтение значений которых производится с помощью блоков Чтение из списка сигналов, Запись в список сигналов. Переменные, записанные с помощью блока В память, и глобальные сигналы проекта не пересекаются друг с другом и представляют из себя два разных списка, потому что предназначены они для разных задач, а именно: глобальные переменные, записываемые с помощью блока В память, передаются без запаздывания на один расчетный шаг, которое возникает при записи и чтении сигналов проекта. Однако использование сигналов проекта более предпочтительно в некоторых случаях, так как позволяет получать доступ к сигналам из любого места проекта (из скрипта, графического контейнера и т. д.), либо из любого места комплексной модели, в случае использования пакета проектов или сетевого расчета. В обоих случаях, конструкция блока записи глобальной переменной описывается в виде:

K = {U, PU}; PU º U,

где PU - именованный глобальный параметр или сигнал модели, являющийся внутренним параметром типового блока В память или блока Запись в список сигналов.

Глобальные переменные и сигналы модели задаются, а затем используются в любой части структурной схемы проекта. Сигналы базы сигналов могут быть общими между несколькими проектами. Типовой блок Из памяти позволяет просмотреть список всех имеющихся в структурной схеме глобальных переменных. Перечень доступных глобальных сигналов можно увидеть в перечне сигналов проекта (пункт Главного меню Сервис – Сигналы), а также в подключенной базе сигналов при наличии такого подключения.

Выбранную Пользователем глобальную переменную либо сигнал проекта можно назначить выходом блока Из памяти или Чтение из списка сигналов соответственно. Конструкция данных блоков похожа и имеет описание:

K = {Y, PY}; PY º PU; Y º PY,

где PY – внутренний параметр блоков Из памяти или Чтение из списка сигналов, обозначающий имя считываемой переменной.

Именованные глобальные переменные широко используются в различных режимах работы. Такой механизм является удобным средством для проведения «невидимых» линий связи между любыми уровнями структурной схемы в любом направлении (с верхних уровней на нижние и наоборот), что позволяет улучшить читаемость сложных многосвязных моделей. Также механизм передачи сигналов и переменных используется при реализации функций КОНТРОЛЯ и УПРАВЛЕНИЯ при помощи построения динамических видеокадров и щитов управления.

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

На рисунке (Рисунок 5) представлена экранная копия закладки Свойства типового диалогового окна редактирования свойств, на примере блока Инерционное звено 1-го порядка, которое на рисунке (Рисунок 3) в субмодели Двигатель ПТ использовано для описания динамики основной составляющей тока якоря. Свойства математической модели, реализуемой типовым блоком, могут быть заданы как в численном виде, так и с использованием интерпретируемого выражения. Так, на рисунке (Рисунок 5) свойство Начальные условия задано в численном виде ([0]), а свойства Коэффициенты усиления и Постоянные времени введены с использованием глобальных сигналов (k_i иt_i, соответственно).

Рисунок 5. Копия диалогового окна (закладка Свойства)

Примечание: запись вектора единичной длины [0] в данном случае идентична записи действительного числа 0. Но, если бы глобальные переменные k_i и t_i были бы векторами из 2-х и более элементов (например, векторами с кол-вом элементов, равным 4), то и начальные условия необходимо было бы сформировать вектором (из 4-х элементов, и записать его как [0,0,0,0] или 4#0, при нулевых начальных условиях). Таким образом, в колонке «значение» в действительности всегда записывается строковое начальное интерпретируемое выражение, которое в момент инициализации блока вычисляется, а вычисленное значение присваивается текущему значению свойства.

Закладка Общие (Рисунок 6) того же окна позволяет производить редактирование свойств, являющихся общими для всех блоков, например:

Рисунок 6. Копия диалогового окна (закладка Общие)

- изменять имя блока (уникальный идентификатор в пределах проекта);

- добавлять скрипты инициализации и исполнения объекта;

- изменять поясняющую подпись, ее положение и шрифт;

- изменять цвет фона блока, его прозрачность и положение;

- редактировать изображение блока и др.

Рисунок 7. Копия диалогового окна (закладка Входы)

Закладка Порты – содержит инструменты управления расположением входных и выходных портов (Рисунок 7).

Закладка Визуальные слоипозволяет размещать блок на различных визуальных слоях. Отображением и активностью визуальных слоев расчетной схемы можно управлять, включая или выключая видимость соответствующих наборов блоков. Расчет математической модели блока происходит одинаково, независимо от того, на каком визуальном слое расположен блок. Управление видимостью и активностью слоёв происходит в панели инструментов проекта. Там же возможно переименование слоёв.

Рисунок 8. Копия диалогового окна (закладка Визуальные слои)