Подобный вид моделирования весьма широко распространен и в настоящее время
Download 1.49 Mb.
|
Лекции
- Bu sahifa navigatsiya:
- 7.2. Блоки и связи
- 7.3. Ориентированные блоки и связи
7.1. Иерархические системы
Основой любой системы моделирования является блок, аналог реального устройства или компонента. Блоки можно соединять между собой, образуя расположенные на плоскости функциональные схемы. Любая функциональная схема может рассматриваться как сложный блок. Такие сложные блоки, со своей внутренней структурой, вновь можно соединять между собой, строя иерархические, многоуровневые системы. Блок – это независимый, функционирующий по своим внутренним законам, элемент, взаимодействующий с внешним миром (другими блоками) через заданный набор переменных, называемых интерфейсными. Блок обычно рисуют в виде прямоугольника, изображая рядом с ним интерфейсные переменные различных видов, например, эти переменные могут быть "входами-выходами" или «контактами» (рис. 24). Вид интерфейсных переменных определяет способ автоматического построения совокупной системы по заданному описанию отдельных блоков и их связей. Рис. 24. Блок с входами и выходами и блок с контактами Будем различать задачу построения классификации компонентов, из которых строится будущая система, и задачу конструирования конкретной системы из имеющихся компонентов. В мире реальных физических объектов существует набор стандартных компонентов и множество устройств, в которых они используются как готовые элементы. В пакетах моделирования им соответствуют библиотеки классов, и блочно-функциональные схемы проектируемых устройств, построенные из экземпляров имеющихся классов. В любой функциональной схеме можно различать использованные для ее построения типы блоков (классы) и конкретные блоки (экземпляры классов). Простейшей системой является совокупность не взаимосвязанных элементов, а ее математической моделью может служить конечное множество Система ={блок_1, блок_2, … , блок_N} Если изобразить элемент в виде прямоугольника, то простейшая система будет выглядеть так Рис. 25. Блок контейнер или охватывающий блок, содержащий четыре независимых компонента Заметим, что на рис. 25 присутствуют не только четыре независимых элемента, которые мы и называем блоками, но и «охватывающий» блок (блок-контейнер) или система. Нас также может интересовать только список классов, экземпляры которых использованы при конструировании функциональной схемы, и тогда система будет представлена в следующем виде Система ={класс_1, класс_2, …, класс_M}, M <= N. На функциональных схемах обычно изображаются взаимосвязанные элементы. Связи несут информацию о том, какие интерфейсные переменные следует считать эквивалентными, и что эта эквивалентность означает. Математической моделью системы, состоящей из взаимосвязанных элементов, является граф: Функциональная_схема = {{Множество блоков}, {Множество связей}} или Функциональная_схема = {{Множество контактов}, {Множество компонентов}}. Граф может быть неориентированным (используются только блоки с «контактами»), и ориентированным (используются блоки с «входами - выходами»), в зависимости от того, имеем ли мы дело с ориентированными или неориентированными связями. В случае, если на функциональных схемах разрешается использовать блоки как с «контактами», так и с «входами-выходами», у графа появляется два типа дуг – ориентированные и неориентированные. Представив систему в виде взаимосвязанных простых, не имеющих собственной внутренней структуры элементов, можно пойти дальше, и рассматривать каждый такой блок как новую подсистему, если в этом возникает необходимость. Пусть нам дано множество элементов Элементная_база = {блок_1, блок_2, блок_1,.... блок_N}. Построим множество подсистем, новую укрупненную элементную базу, объединив все блоки в непересекающиеся группы, которые назовем подсистемами: Элементная база_1 = {подсистема_11, подсистема_12,.... подсистема_1K} Продолжая этот процесс, построим новую элементную базу: Элементная база_2 = {подсистема21_, подсистема_22,.... подсистема_2L} Будем действовать так, пока в нашем множестве подсистем не останется одна подсистема. Ее то мы и назовем иерархической системой. Если таких шагов было проделано M, то мы получили M- уровневую иерархическую систему, которую удобно изображать в виде дерева (рис. 26), если опять таки нас интересует ее состав (входящие в нее блоки или классы). Рис. 26. Многоуровневая иерархическая система 7.2. Блоки и связи Наличие связи между двумя интерфейсными переменными всегда предполагает как минимум равенство значений этих переменных в любой момент времени, будь то «вход-выход» или «контакт». То есть, наличие связи между двумя интерфейсными переменными A и B эквивалентно в общем случае появлению в поведении охватывающего блока-контейнера одного алгебраического уравнения . Рассмотрим три характерных подхода к компонентному моделированию, которые мы условно назовем по наименованиям соответствующих пакетов «подходом Simulink», «подходом Modelica» и «подходом MVS». Они различаются допустимым видом интерфейсных переменных и типом используемых блоков. Различия в подходах к компонентному моделированию состоят в основном в разных ответах на два вопроса: Как задается математическая модель элементарного блока? Какие ограничения накладываются на интерфейсные переменные блоков? На первый вопрос существует два ответа: Пользователь может задать математическую модель блока, используя естественные математические нотации (алгебро-дифференциальные уравнения и формулы в естественной математической записи, карты состояния, графы – в традиционной графической форме). Такого подхода придерживаются авторы языка Modelica и авторы графической среды MVS. Их пользователи получают возможность строить произвольные новые блоки с помощью почти «естественного языка». Пользователь может собрать прикладной элементарный блок из типовых универсальных блоков (таких как интегратор, дифференциатор или сумматор) или вынужден писать новый программный код на одном из процедурных языков. Такой ответ дается авторами пакета Simulink и других аналогичных пакетов, использующих предопределенные блоки и графические аналоги электронных схем. На второй вопрос также существует два ответа: На интерфейсные переменные не накладывается никаких ограничений. С математической точки зрения это означает, что связываемые переменные могут находиться и в левой, и в правой частях уравнений своего блока, а с «физической», что их значения могут изменяться как «изнутри» блока, так и «снаружи». Это подход часто называется «физическим» подходом, не требующим явного указания причинно-следственных отношений («non-casual») между связываемыми переменными, а блок с такими внешними переменными – неориентированным. Внешние переменные четко разделяются на входные, которые могут быть изменены только вне блока, и выходные, которые могут быть изменены только внутри блока. С математической точки зрения это означает, что передаваемые «извне» переменные могут находиться только в правой части уравнений своего блока. Такой подход часто называют блочным подходом, требующим явного описания причинно-следственных отношений («casual»), а блок – ориентированным. 7.3. Ориентированные блоки и связи Ориентированный блок служит для проектирования систем «вход-состояние-выход». Какие бы конкретно блоки не были выбраны, предопределенные как в Simulink, или «произвольные», основанные на гибридных автоматах, как в MVS. Применение ориентированных блоков предполагает введение ограничений на использование переменных фазового вектора при составлении уравнений, описывающих поведение. «Переменная состояния» (state variable) – это внутренняя переменная блока, которой можно присвоить новое значение только «внутри» блока. Переменная состояния может стоять в левой части оператора присваивания в действиях переходов, в левой части формул и дифференциальных уравнений, а также являться искомой переменной в алгебраических уравнениях. «Вход» (input) – это внешняя переменная, которой можно присвоить значение только «извне». Переменная этого вида может стоять только в правых частях дифференциальных уравнений, формул и операторов присваивания, и не может быть искомой в алгебраических уравнениях. Собственное поведение блока не может изменить значение входа. «Вход» может являться приемником в функциональной связи (только в одной!). В этом случае значение входа-приемника всегда равно значению источника в этой связи. «Входы» блока, не участвующие в функциональных связях, называются свободными. Значения свободных «входов» могут изменяться поведением охватывающего блока или менеджером вычислительного эксперимента. «Вход» обычно изображается входящей стрелкой или треугольником (рис. 27). Рис. 27. Ориентированный блок «вход-выход» «Выход» (output) - это внешняя переменная, которой можно присвоить значение только «внутри» блока. Выходная переменная, как и переменная состояния, может стоять в левой части оператора присваивания в действиях переходов, в левой части формул и дифференциальных уравнений, а также являться искомой переменной в алгебраических уравнениях. «Выход» может являться источником в функциональных связях (из одного выхода может исходить сколько угодно связей!). «Выход» обычно изображается исходящей стрелкой или треугольником (рис.27). Функциональные связи, соединяющие «входы» и «выходы» ориентированных блоков, в силу свойств этих внешних переменных являются ориентированными. Описание взаимодействий с помощью «входов» и «выходов» поэтому и называют «причинно-следственным» (casual) подходом в проектировании, так как в направленной связи только источник может влиять на приемники, но не наоборот. Ориентированные связи являются естественной абстракцией для описания информационных связей в технических системах, в которых принимаются специальные меры для исключения обратного влияния. Такие связи изначально вводятся как однонаправленные. Download 1.49 Mb. Do'stlaringiz bilan baham: |
ma'muriyatiga murojaat qiling