Text
                    ВЫСШЕЕ ПРОФЕССИОНАЛЬНОЕ ОБРАЗОВАНИЕ

В. К. МОРОЗОВ, Г. Н. РОГАЧЕВ

МОДЕЛИРОВАНИЕ
ИНФОРМАЦИОННЫХ
И ДИНАМИЧЕСКИХ
СИСТЕМ

Рекомендовано

Учебно-методическим объединением по образованию
в области радиотехники, электроники, биомедицинской техники
и автоматизации в качестве учебного пособия для студентов
высших учебных заведений, обучающихся по направлению
подготовки «Автоматизация и управление»

ACADEMA

Москва
Издательский центр «Академия*
2011

УДК 681.332(075.8) ББК 32.973.26-018.1я73 М801 Рецензенты: директор ФГНУ НИИ проблем надежности механических систем, зав. кафедрой «Электропривод и промышленная автоматика» СамГТУ, д-р техн, наук, проф. ПК. Кузнецов; зав. кафедрой автоматики и телемеханики Южно-Российского государственного технического университета (Новочеркасского политехнического института), д-р техн, наук, проф. В. И. Ланин; ст. науч. corp. ВЦ им А. А. Дородницына РАН, канд. физ.-мат. наук Ю. И. Бродский Морозов В. К. М801 Моделирование информационных и динамических систем : учеб, пособие для студ. высш. учеб, заведений / В. К. Морозов, Г. Н. Рогачев. — М.: Издательский центр «Академия», 2011.— 384 с. ISBN 978-5-7695-4221-3 Изложены основные понятия теории моделирования, приведена клас- сификация моделей, рассмотрены модели непрерывных, дискретных и гиб- ридных (агрегативных) систем. Рассмотрены особенности применения па- кета MATLAB для решения круга задач моделирования систем. Содержатся примеры построения и применения моделей различных систем. Для студентов высших учебных заведений. УДК 681.332(075.8) ББК 32.973.26-018.1я73 © Морозов В. К., Рогачев Г. Н. 2011 © Образовательно-издательский центр «Академия», 2011 ДООД597^-5-7695-4221-3 ©Оформление. Издательский центр «Академия», 2011
ПРЕДИСЛОВИЕ Моделирование является методологической основой и инст- рументом создания и исследования любых сложных технических и других систем. Оно позволяет отобразить структуру и связи в си- стемах — объектах моделирования, проанализировать их поведе- ние специальными средствами, изучить свойства и выявить наи- более существенные закономерности. Цель учебного пособия — ознакомить студентов с актуальны- ми проблемами и современными методами анализа, исследова- ния и проектирования систем информатики и автоматизирован- ного управления на основе моделирования, рассмотреть наибо- лее характерные примеры, методы и алгоритмы прикладного мо- делирования технического, программного и информационного обеспечения этих систем. Все основные теоретические положе- ния, рассматриваемые в книге, объясняются на соответствую- щих, тщательно подобранных примерах. Ведь еще Исаак Ньютон утверждал, что «...при изучении наук примеры полезнее правил». Пример — это яркий образ, правило же — сухая схема. Предполагается, что студентами усвоены курсы основ теории управления и информационных процессов, и для понимания ма- териала не требуется дополнительной математической подготов- ки, выходящей за рамки курса математики технического вуза. В ка- честве руководства по дополнительным разделам математики (ма- тематической статистике, теории графов и др.), а также для орга- низации и выполнения лабораторных работ по данной дисципли- не рекомендуется использовать работы [42], [43], [44]. Кроме того, для успешного освоения материала и приобрете- ния практических навыков моделирования с применением ком- пьютерных технологий рекомендуется предварительно получить начальные сведения о работе с имитационными программами, создаваемыми средствами системы GPSS и математического па- кета MATLAB. Несколько слов об этих средствах. GPSS является популярной системой имитационного моделирования, имеющей давнюю историю применения. Менялись поколения компьютеров, технологии и архитектуры, и для каждой из них система GPSS находила свое место. Современная ее версия GPSS World с успе- хом применяется в научных исследованиях и учебном процессе во многих вузах страны. MATLAB — также одна из лучших на сегод- няшний день систем программирования для научно-технических
расчетов, уникальная коллекция современных методов вычисле- ний и графической визуализации их результатов. К настоящему времени эта система дополнена десятками частных приложений (toolbox-ов), относящихся к обработке информации, конструи- рованию систем управления, экономике и т.д. В учебное пособие также включены материалы, связанные со спецификой некоторых объектов моделирования, в частности моде- лей систем передачи данных и потоков в них, моделей данных и процессов доступа к ним в распределенных информационных фон- дах и т. п. Для этих объектов рассмотрены специальные вопросы так называемой дискретной математики, такие, как теория множеств и отношений, алгебра логики, теория графов, сетей Петри, конечных автоматов. В рамках данной книги невозможно поставить, рассмот- реть и тем более решить все практически важные задачи моделиро- вания систем. Поэтому в большей степени уделено внимание самим принципам моделирования, выделению наиболее встречаемых в практике моделирования объектов, работе с моделями. За рамки пособия выходят многочисленные вопросы, как обшей теории моделей, так и разнообразных задач моделирования объек- тов уникального вида (нестационарных, эргатических, семантиче- ских, лингвистических, задаваемых нечеткими множествами и т.п.). Структурно материал книги изложен в такой последователь- ности. В гл. 1,2 даются основные понятия о разновидностях си- стем и процессах моделирования их, определяются цели, задачи, технология и этапы этих процессов, приводятся примеры, пояс- няющие применение моделей. В гл. 3, 4 рассматриваются эмпирические модели и примеры их построения с использованием пакета программных средств си- стемы MATLAB. Они касаются главным образом систем, имеющих в своей основе в качестве исходных математических моделей не- прерывные функциональные соотношения (непрерывные модели). Гл. 5, 6 и 7 отражают содержание основ теории моделирования дискретных систем и событий, рассматриваемых как в статике (теория множеств, алгебра логики, теория графов и т.п.), так и в динамике (теория и математический аппарат сетей Петри, слу- чайных марковских процессов и сетей массового обслуживания). Здесь же даны методы и средства моделирования, базирующиеся на использовании машинной имитации объектов и процессов. Эти главы, а также гл. 8 — 11 содержат множество примеров работы с готовыми моделями, включая этапы программирования с приме- нением пакетов GPSS и MATLAB, планирования и проведения экспериментов, а также анализа и обработки экспериментальных данных.
ВВЕДЕНИЕ В настоящее время в различных областях человеческой деятель- ности широкое распространение получили разнообразные авто- матизированные системы управления и обработки информации (управляющие комплексы, вычислительные центры коллектив- ного пользования, банки данных, информационные и информа- ционно-вычислительные сети). Они применяются в промышлен- ности, сельском хозяйстве, медицине, научных исследованиях, образовании и социальной сфере. Наиболее развитая интеграль- ная разновидность таких систем — информационно-вычислитель- ные и управляющие компьютерные сети — вобрали в себя все прогрессивное, что было заложено в принципы построения и фун- кционирования отдельных (автономных) автоматизированных си- стем, в их архитектурные решения, и обеспечили переход на ка- чественно новый уровень. Ввиду большого многообразия и необычайной сложности со- временных автоматизированных систем их функциональные воз- можности далеко не всегда реализуются в полной мере, а эффек- тивность и качество функционирования остаются ниже потенци- ально возможных. В связи с этим задача теоретических исследова- ний, являющихся основой для расчетов и обоснований требуе- мых показателей и характеристик действующих и вновь создавае- мых систем, представляет важную часть множества мер и техни- ческих решений, направленных на их совершенствование. Методы и средства моделирования в приложении к проблемам исследований, проектирования и оптимизации управления си- стемами могут оказать несомненную пользу. Они позволяют выде- лить особенности и наиболее существенные закономерности про- исходящих в системах процессов, профильтровать огромный объем данных об исследуемых объектах, сэкономить время на исследо- вание. Методы моделирования в различных областях приложений стали применяться практически одновременно с началом разработок самих автоматизированных систем. Широко использовались моде- ли, базирующиеся как на аналитических соотношениях, так и на имитационных алгоритмах, в частности воспроизводилась работа устройств, оценивались их оптимальные параметры, определялась производительность, решались различные проектные задачи. Но еще до появления современных эффективных компьютерных ап-
паратных и программных средств методы моделирования, особенно основывающиеся на имитации случайных непрерывных и диск- ретных процессов и потоков событий, успешно применялись для системных исследований. Этому, безусловно, способствовали ус- пехи в области математики, в таких разделах, как теория случай- ных функций, функциональный анализ, теория массового обслу- живания и др. Большой вклад в развитие моделирования внесли отечествен- ные ученые. Широко известны работы математиков В. В. Гнеден- ко, А. Н. Колмогорова, В.С. Пугачева [21]. Их труды послужили теоретической основой для решения ряда прикладных проблем, касающихся моделирования и построения сложных систем. Полу- ченные результаты не утратили своего научного и практического значения и в наши дни. Огромную роль в развитии методологии моделирования сыграли работы советских ученых Н.В.Бусленко, В. М. Глушкова, А. Г. Иваненко, В. Н. Котельникова. Специфику моделирования современных сложных (больших) систем определяет то, что они являются крупными организаци- онно-техническими комплексами и характеризуются многообра- зием составляющих компонентов, наличием ресурсов различных видов, многосвязностью между объектами внутри и между под- системами, распределенностью, многообразием возможных ва- риантов структуры, способов функционирования и методов уп- равления. Задачи, связанные с проектированием и оптимизацией сложных систем отличаются многокритериальностью, динамич- ностью, асинхронностью процессов, вызванной непредсказуемы- ми задержками, отказами элементов, непредусмотренными ви- дами запросов и ситуаций. Такие особенности указанных объектов требуют использова- ния широкого спектра методов и средств моделирования, к кото- рому прибегают как при определении качества и эффективности существующих систем, так и при разработке вариантов новых проектируемых систем. Подобные задачи могут возникнуть в лю- бой организации производственного, коммерческого профиля, а также в социально-культурной сфере, где автоматизированное управление и обработка информации уже широко используются. Здесь наметился переход к распределенным формам и структурам подобных систем, причем с развитием информационных техно- логий распространение, круг и значение решаемых задач модели- рования будут, несомненно, возрастать.
ГЛАВА 1 ПРЕДМЕТ И БАЗОВЫЕ ПОНЯТИЯ ДИСЦИПЛИНЫ 1.1. Основные представления о моделировании процессов и систем 1.1.1. Общие положения Воспринимая информацию о мире, его объектах и происходя- щих процессах, человек в своем сознании формирует образы пред- метов и явлений, создает концепции, представления и знания, которыми в дальнейшем оперирует, принимая разнообразные решения и осуществляя воздействия на окружающий мир. Резуль- тат этих воздействий подтверждает на практике истинность одних представлений и опровергает верность других. Взаимодействие объектов S внешнего мира и человеческого сознания можно пред- ставить схематически (рис. 1.1). Процесс взаимодействия опреде- ляют разнообразные связи: прямые, обратные, внешние и др. Прямые связи соответствуют отображению объектов 5 в созна- нии человека в виде множества образов Os\ обратные связи пред- ставляют активное воздействие человека на окружающий мир. Другие связи оказываются вне поля зрения человека. Они обозна- чены на схеме внешними незамкнутыми линиями. Представленная схема является общей для случая непосред- ственного восприятия человеком отдельных объектов. На практи- ке значительно чаще встречаются случаи, когда естественных мыслительных ресурсов, возможностей интеллекта недостаточно для того, чтобы по внешнему восприятию полно и точно пред- Человеческое \ сознание / Рис. 1.1. Отражение объектов внешнего мира в сознании человека: 5— объект; Os— образы объекта; 1, 2, 3— соответственно прямые, обратные и внешние связи
ставить исследуемый объект 5 и правильно понять, как он устро- ен. Поэтому в процессе своей целенаправленной деятельности че- ловек создавал искусственные (вспомогательные) абстрактные представления и концепции, а также специальные материальные и логические конструкции, позволяющие ему решать все более сложные задачи познания объектов окружающего мира. Опосре- дованное отражение в сознании объектов окружающего мира — закономерный естественный процесс, сопровождающийся пере- ходом к качественно новым формам мышления в ходе его эволю- ции. Формирование специальных понятий, логических или(и) ма- териальных средств, используемых человеком в целях более глу- бокого, полного восприятия и понимания объектов мира, по су- ществу представляет особым образом организованный процесс — процесс моделирования. При этом модели это либо всевозмож- ные абстрактные логические представления, либо физические средства, описывающие систему выбранным способом (либо и те и другие). Они используются человеком для более полного и до- ступного понимания свойств процессов и систем, трудно или принципиально не исследуемых непосредственно. Изучаемые си- стемы или процессы называются объектами моделирования. Понятие «моделирование» включает создание и использова- ние моделей. Моделирование есть не отдельный акт или событие, а достаточно сложный развивающийся процесс, имеющий целью получение новых сведений, знаний и представлений об исследу- емых объектах. В соответствии с этим моделирование можно оп- ределить как познавательный творческий процесс выделения су- щественных свойств некоторой трудно исследуемой системы (объекта моделирования), привнесения этих свойств в другую систему (модель) с последующим логическим воздействием на нее. Такое воздействие можно осуществить, например, путем из- менения тех или иных элементов в модели, варьирования их пара- метров и анализе наблюдаемых соответствующих свойств. Таким образом, при моделировании объектов 5 внешнего мира взаимодействие их с человеческим сознанием осуществляется не непосредственно, как при обычном восприятии, а через проме- жуточные средства — модели Ms> включаемые в канал прямой Рис. 1.2. Отображение объектов 5 с помощью модели М$
связи от объекта S к сознанию человека. Это позволяет сформи- ровать более полное и глубокое представление об объекте и пред- сказывать его свойства (рис. 1.2). Заметим, что процесс мышле- ния также рассматривается как соответствующая логическая (по- нятийная) модель Os объектов внешнего мира, но отображаемая в сознании в виде их информационных образов. Процесс моделирования можно осуществлять различными пу- тями. В частности, можно построить логическую цепочку перехо- дов, в результате которых будет получено множество (Л/j-, / = 1, ..., т) из т моделей различного порядка для одного и того же объек- та (рис. 1.3, а). Предположим, что некоторому объекту, например электри- ческой цепи, соответствует то или иное математическое соотно- шение, которое является моделью первого порядка Mls. Для рас- чета цепи разрабатывается схема алгоритма, которую будем рас- сматривать как модель второго порядка. Составив программу, получим модель М$ третьего порядка. Очевидным является положение о том, что любой объект мо- жет иметь множество различных моделей. Например, любая ком- пьютерная сеть имеет ряд структурных представлений — физиче- скую и логическую структуру, топологию, структуры комплекса технических и программных средств, информационного лингви- стического обеспечения. Все они в принципе равноправны, и каж- дая модель, соответствующая этим представлениям, может оди- наково хорошо и достаточно полно отображать сеть. Моделирование в подобных случаях может идти одновременно в различных направлениях, причем каждая модель отображает оп- ределенные свойства объекта (рис. 1.3, б). Здесь объект может быть представлен множеством равноправных моделей (Ms,i = 1, ..., п) одного порядка. Важным понятием является уровень абстрагирования в моделях. Задавая кон- кретные значения на множестве аргу- ментов функционала или конкретный вид функции, можно понизить уровень абстрагирования. Если же осуществить дальнейшую идеализацию объекта (на- пример, обобщив действия переменных или параметров на функционирование объекта), то уровень абстрагирования модели повысится. При построении модели постоянно возникает проблема выбора уровня абстрагирования и де- тализации. Обычно исходная модель яв- ляется обобщенной абстракцией высо- Рис. 1.3. Последовательный (а) и параллельный (б) про- цессы моделирования
кого уровня. В процессе разработки модели она обрастает деталя- ми, причем чем больше деталей включается в модель, тем боль- шее она имеет сходство с реальным объектом. Однако детализа- ция увеличивает затраты на моделирование. И это является глав- ным фактором, ограничивающим степень детализации. В начале моделирования о системе известно обычно слишком мало, чтобы выделить все ее основные характеристики. По мере обработки дан- ных моделирования объем сведений увеличивается, но при этом резко возрастают и затраты. 1.1.2. Основные свойства моделей Одним из наиболее важных свойств любой модели является ее адекватность, т.е. соответствие, подобие свойств модели суще- ственным свойствам объекта. Будем обозначать свойство адекват- ности знаком «~». Оценивая адекватность, необходимо иметь в виду, что данное свойство модели должно быть проверяемо на практике прямым или косвенным образом, причем адекватная модель потенциально может обеспечить тот или иной положи- тельный эффект при использовании. Именно это условие позво- ляет найти способ оценки данного свойства модели и установить истинность утверждения Ms ~ S. Адекватность модели и объекта вовсе не означает необходи- мость полного совпадения всех свойств модели и объекта. Более того, к числу моделей обычно не относят так называемые копии и тому подобные тождественные объекты, поскольку при их рас- смотрении нельзя получить качественно новой информации. В то же время справедливость общих положений о том, что каждый объект адекватен себе самому и каждая модель адекватна себе самой, является несомненной. Необходимо также иметь в виду, что свойство адекватности может быть несимметричным, т.е. из того, что Ms~ S, необязательно следует S ~ Ms. Адекватность модели обеспечивается следующими условиями: некоторое внешнее воздействие, оказываемое на модель, дол- жно приводить к формированию внутри модели соответствующих адекватных изменений, аналогичных непосредственному воздей- ствию на объект; на каждое предусмотренное воздействие в модели должна быть заложена априорная информация, хранимая в виде исходных об- разов объекта; при этом полная информация об объекте в его модели оценивается по множеству как исходных, так и изменя- ющихся образов; модель должна содержать в себе информацию о своих функци- ональных и морфологических свойствах (информацию о своем строении). Ю
1.1.3. Морфологические свойства модели Эти свойства обусловлены целью создания и задачами, кото- рые должны решаться при использовании модели. В модели могут воспроизводиться как отдельные свойства объекта, так и некото- рые их множества, причем в различных сочетаниях и взаимоотно- шениях между собой. Требование адекватности свойств объекта и его моделей определяет ее внутреннее строение (морфизм или морфологические свойства). В процессе моделирования необхо- димо исходить из предположения, что виды морфизмов моделей должны соответствовать морфологическим свойствам объектов, поскольку в противном случае невозможно будет судить об их адек- ватности. Среди морфизмов объектов в теории систем различают следу- ющие их виды. Гомоморфизм Ms - USk\ Sk - Ms, применительно к моделиро- ванию означает, что каждая подсистема Sk моделируемого объек- та отображается с помощью одной и той же модели (рис. 1.4, а). Например, в топологической модели сети каждый узел представ- ляется в виде вершины графа, а каждый канал — в виде ребра. Гетероморфизм М$ - UMSi - USk означает, что отдельные под- системы Sk объекта моделирования представляются различными Рис. 1.4. К пояснению морфологиче- ских свойств моделей: а— гомоморфизм; б— гетероморфизм; в — полиморфизм; г — центроморфизм; д — автоморфизм
моделями, причем некоторые из них отображают объект неодноз- начным образом (рис. 1.4, б). Примером гетерогенных моделей могут служить различные языковые средства, представляющие класс лингвистических моделей. Полиморфизм UMS. ~ USj имеет место при взаимно однознач- ном соответствии множества подсистем и отображающих их мо- делей. Подобная ситуация характерна для большинства распреде- ленных децентрализованных структур, состоящих из однородных (или неоднородных частей (рис. 1.4, в). Центроморфизм UMSi - S* означает, что несколько моделей Ms. одинаково правомерно отображают один и тот же объект моделирования Sk9 обеспечивая соответствующую адекватность отображения (рис. 1.4, г). Автоморфизм Sk ~ Sk, Mj ~ Мк соответствует случаю, когда объект моделирования и модель содержат множество взаимосвязанных частей, между которыми в рамках модели имеет место взаимно однозначное отображение (рис. 1.4, д). Анализ морфологических свойств разрабатываемых моделей важен не только с точки зрения адекватности. Он позволяет оце- нить их полноту, чувствительность, универсальность, гибкость и в конечном счете дать комплексную оценку качества и эффектив- ности моделей. Полнота определяет способность модели решать весь круг за- дач, которые были поставлены при ее разработке. Это свойство является относительным, так как никакая модель не может быть абсолютно полной. При этом следует иметь в виду, что не каждая адекватная модель обладает свойством полноты, а многие полные модели из-за избыточности неадекватны или неэффективны. Важным свойством модели является универсальность — неза- висимость от изменений постановки задач моделирования, а в некоторых случаях — и от вида моделируемых объектов (разумеет- ся, в пределах возможных ограничений, так как при оценке уни- версальности необходимо одновременно рассматривать свойства адекватности сравниваемых моделей). С универсальностью очень сходна гибкость модели, однако между ними имеется существенное различие. Если для универ- сальной модели не требуется изменений при переходе к новым задачам, то для гибкой модели наоборот. Возможность внесения изменений позволяет использовать модель для различных приме- нений. Изменения гибкой модели легко осуществимы и не ухуд- шают других ее свойств. Чувствительность модели определяет степень изменения ре- зультатов при незначительных изменениях ее исходных парамет- ров. Если изменения результатов слишком малы и не соответству- ют изменению исходных данных, то модель нечувствительна, если
слишком велики, то модель чувствительна, но может быть неус- тойчива. Наконец, модель должна оцениваться соответствующими по- казателями эффективности и качества, которые определяют зна- чения при равных требованиях адекватности, полноты, универ- сальности, чувствительности, работоспособности и обеспечива- ют лучший результат их применения или дают одинаковый ре- зультат, но с меньшими либо большими затратами. 1.1.4. Основные положения общей теории систем Система — совокупность компонентов, взаимосвязанных между собой и образующих единое целое. Из определения сле- дует, что системы образуются при объединении составных час- тей (компонентов), но одновременно предполагается, что объеди- нение имеет целенаправленный характер, и что объединяемые части функционируют и взаимодействуют. При этом количе- ство элементов, из которых состоит система, может быть лю- бым, но важно, чтобы имеющиеся связи в рамках образован- ной целостности сохранялись. Составными частями системы мо- гут быть объекты, которые сами по себе являются достаточно сложными и образуют так называемые подсистемы. Например, компьютерная сеть как сложная система разделяется на инфор- мационные узлы и коммуникационные подсистемы, представ- ляющие собой достаточно сложные программно-технические компоненты. Они тоже могут быть разделены на части, а имен- но: накопительные устройства, процессоры, программное обес- печение и другие средства. Такое последовательное разделение системы на подсистемы и на более мелкие компоненты приво- дит к понятию «элемент». Элемент рассматривается как неде- лимая при анализе часть системы. Для данного примера эле- ментами можно считать микросхемы, элементарные програм- мы или элементы данных. Внешние связи любой системы можно представить в виде схемы (рис. 1.5). Для со- здания модели используют полученные опыт- ным путем данные, связывающие входные и выходные параметры объекта. Входные пара- метры можно разделить на контролируемые параметры й и неконтролируемые парамет- ры (возмущения) Z. Модель в концепции «черного яшика» со- здается безотносительно внутренних свойств объекта, без учета физической сущности про- цессов, протекающих в нем, но при этом она Объект ♦черный ящик» и У Рис. 1.5. Представ- ление системы (объ- екта моделирова- ния) с помощью концепции «чер- ный ящик»
отражает зависимость значений одних параметров от других (обыч- но выходных от входных). В сложных (больших) системах моде- ли задают многочисленные зависимости между управляемыми параметрами (и,), неуправляемыми переменными (у,), парамет- рами (г) и исследуемыми показателями функционирования объекта (w,). Делается это с помощью подходящих математиче- ских выражений, например с помощью множества уравнений или функционалов вида: {у,}, {гЛ}). При этом определя- емый исследуемый показатель функционирования может быть представлен в неявном виде или в виде явной функции. Для вы- яснения рассматриваемого вопроса необходимо вначале более детально ознакомиться с понятием «система», многообразием видов систем и множеством возможных задач, решаемых на ос- нове моделирования. Как было выше отмечено, система представляет собой объ- единение отдельных составных частей, в процессе функциониро- вания которых создаются новые качественные свойства. При ана- лизе системы, который необходим как неотъемлемый этап про- цесса моделирования, происходит логическое разделение систе- мы как единого целого на составные части. Оно является гипоте- тическим (условным, мысленным), и связи между составными частями фактически при этом сохраняются и определяют струк- туру системы. 1.1.5. Примеры и разновидности систем Все известные человечеству системы можно условно разделить на два больших множества: естественные и искусственные. Пер- вые (их также называют природными) подразделяются на физи- ческие, химические, энергетические, биологические, социоло- гические в соответствии с делением науки и человеческих знаний на те или иные предметные области. Ко вторым относят системы и их компоненты, которые возникли в результате деятельности человека и общества. Это, например, технические и технологи- ческие системы, если иметь в виду их материальную, веществен- ную или энергетическую основу; а также системы, возникшие при совершенствовании форм организации жизнедеятельности общества, условий его существования. В данном случае речь идет о системах, представляющих собой, например, государственные, административные, правовые и другие органы, различные орга- низации, коллективы, группы и т.п. Это так называемые соци- альные (организационные) системы. При классификации систем в качестве объектов моделирова- ния будем рассматривать различные признаки, в соответствии с которыми они будут относиться к тому или иному классу (рис. 1.6).
Рис. 1.6. Классификация систем — объектов моделирования Во-первых, можно различать системы (объекты) по масштабу. В этом плане можно выделить глобальные, региональные, локаль- ные объекты. Глобальные системы занимают территорию одной или несколь- ких стран или даже всего земного шара. Например, в числе при- родных систем будут метеорологическая система (атмосфера и по- верхность Земли), Мировой океан и т.п., а в число технических войдут системы спутниковой связи, Интернет, сети железных или автомобильных дорог и т. п. Примерами региональных систем могут служить системы уп- равления транспортом, жилищнокоммунальным хозяйством, го- родские телефонные сети и др. Локальными системами являются вычислительные комплек- сы, автоматизированные системы управления технологически- ми процессами или другие подобные объекты, занимающие небольшую территорию (в пределах одного здания, предприя- тия или организации). Во-вторых, системы классифицируют по структуре: сосредо- точенные, распределенные, иерархические, односвязные, мно- госвязные.
Сосредоточенные системы характеризуются тем, что их отдель- ные части непосредственно связаны друг с другом и расположе- ны в одном месте. Например, отдельные файлы одной базы дан- ных, хранящиеся в одной системе накопителей. Распределенные системы соответственно состоят из частей, ко- торые размещаются в разных местах, но между ними имеются связи, позволяющие им взаимодействовать в рамках единой сис- темы целей и функций. В-третьих, всевозможные системы можно разделить по струк- туре связей и целям, ради которых они созданы. По структуре связей наиболее распространенными являются так называемые иерархические системы. Они имеют ступенчатое (многоуровневое) строение. В иерархических системах просмат- риваются четкая взаимосвязь и подчиненность одного уровня дру- гому (обычно нижний уровень подчинен верхнему, хотя в общем случае это необязательно). По целям системы разделяются: на одноцелевые, многоцеле- вые, с иерархией целей, а кроме того цели, ради которых систе- мы создаются, могут быть формальные, неформальные, зависи- мые, независимые, комплексные. В-четвертых, возможно деление систем на разновидности по виду информации, которая в этих системах циркулирует. По дан- ному признаку классификации они могут быть разделены на тех- нические, технико-экономические, научные, научно-технические, социальные, медицинские, биологические, физические и т.п. Сущность данных разновидностей вполне понятна из их назва- ний. В-пятых, возможно деление больших систем по морфологи- ческим свойствам: однородные, неоднородные. Примером боль- шой однородной системы может служить сеть банков, осуще- ствляющих финансовые операции, а неоднородной — напри- мер транспортная система, включающая наземный транспорт, авиацию, морской и речной транспорт. К уже рассмотренным системам можно добавить признаки различия их по математи- ческим моделям, в соответствии с которыми можно выделить так называемые дискретные (прерывистые) и аналоговые (не- прерывные) объекты, детерминированные и стохастические объекты и т.д. Примером типичной дискретной большой системы может слу- жить автомобилестроительное производство, а непрерывной — система энергоснабжения страны. Детерминированные модели применимы для многих технологических процессов, которые орга- низуются по жестким алгоритмам управления, состоят из множе- ства заранее определенных операций. В противоположность им типичными стохастическими объектами, имеющими соответству-
ющие стохастические модели, являются, например, метеороло- гическая система и сильно зависящее от нее сельскохозяйствен- ное производство, в частности такие его отрасли, как производ- ство зерна, овощеводство, растениеводство. 1.2. Общие цели и задачи моделирования систем Цели и конкретные задачи моделирования во многом зависят от особенностей и специфики моделируемых систем, условий, в которых они функционируют. Тем не менее независимо от конк- ретного содержания решаемой задачи, ее исходных данных, а также от вида применяемых моделей и методов моделирования можно указать общие цели, которые ставятся при их использовании. Та- кими целями являются следующие: упорядочение представлений о системе — объекте моделиро- вания, получаемых из теории и натурного эксперимента, уточне- ние известных и выявление новых свойств исследуемого объекта, повышение ценности и полноты сведений об объекте; выяснение возможностей и путей изменения или выбора зна- чений параметров и переменных для эффективного управления объектом или его проектирования; снижение затрат на исследование свойств объекта, на проект- ные работы, испытания и т.п.; оптимизация; прогнозирование. Поясним смысл и содержание вышеуказанных применений мо- делей, в частности, сначала трех первых пунктов, касающихся упо- рядочения представлений о системе, выяснения возможностей выбора значений ее параметров и снижения затрат при обоснова- ниях проектных и управленческих решений. Предположим, что имеется некоторый технологический агрегат (станок), для которо- го разрабатывается автоматизированная система управления. Ранее станок эксплуатировался вручную, и о нем имеются данные по основным характеристикам — мощности, оборотам, геометриче- ским параметрам (размерам обрабатываемых деталей, точности) и др. Необходимо оценить динамические свойства и параметры рас- сматриваемого агрегата, управляемого автоматизированной систе- мой, например такие, как время разгона — /р, время останова — /0, отсутствие при переключении и в процессе работы возможных вибраций (или их уровень — а, если они неизбежно возникают) и т. п.; разработать алгоритмы эффективного управления. Традиционный способ решения подобной задачи — расчеты и обоснования предлагаемых вариантов схем разрабатываемой си- стемы, например, на основе теории автоматизированного управ-
лении, положений теории механики (кинематики) и других со- ответствующих технических дисциплин. Но расчеты обычно по- зволяют рассматривать некоторый фиксированный набор усло- вий, исходных данных и предложенный или выбранный вариант решения. Они необязательно приводят к желаемому результату. Тогда возникает вопрос, что и как следует изменить в параметрах разрабатываемой системы или в возможном варианте ее схемы, чтобы приблизиться к выдвинутым требованиям. Поиск ответов на поставленные вопросы можно осуществить на основе экспе- римента, но это, как правило, связано с достаточно большими временными и денежными затратами. Подход, определяемый технологией и приемами моделирова- ния, позволяет в данном случае расширить возможности поиска, сократить затраты и уменьшить область значений искомых пара- метров. Это достигается в результате детального анализа выбран- ных математических и эмпирических моделей, дающих пусть только некоторые ответы, но именно те, которые способствуют концен- трации усилий на дальнейшие целенаправленные действия. До- полнение аналитических исследований спланированными имита- ционными экспериментами позволяет оценить эффективность и адекватность исходных математических и эмпирических моделей, подтвердить или опровергнуть их достоверность. Адекватные модели в дальнейшем используются для более зна- чимых целей и задач, чем первоначальное обоснование проект- ных решений или уточнение представлений о свойствах исследуе- мых систем; они позволяют решать, как правило, достаточно слож- ные задачи оптимизации систем. Главная особенность и отличие задач оптимизации от задач анализа или расчета состоят в том, что здесь ставится определен- ная цель (целевая функция или критерий), в соответствии с ко- торой отыскиваются лучшие (точнее, самые лучшие) оптималь- ные варианты решений. При поиске таких решений модель систе- мы выступает как некоторый механизм, связывающий в единое целое (ядро) переменные, характеризующие систему, происхо- дящие в ней процессы и параметры внешней среды (ограниче- ния). Без использования тех или иных моделей постановка и ре- шение оптимизационных задач бессмысленна и неосуществима. И, наоборот, для корректной постановки и правильного реше- ния необходимы адекватные и эффективные модели, найти или построить которые часто бывает достаточно сложно, хотя в ряде случаев в этом плане уже накоплен определенный опыт [4]. Более подробно суть и содержание оптимизационных задач, их разно- видности рассматриваются в следующем подразделе. Еще одно важное применение моделей систем и связанных с ними процессов — прогнозирование. Логическую сущность задач
прогнозирования удобно рассмотреть на примере непрерывной системы и процессов, которые с ней связаны. В этом случае при- менима математическая модель общего вида, задаваемая с помо- щью некоторого функционала Лх(/, a), y(s, 0), ...], где x(t, а), Х-5, Р), ... — функциональные зависимости, определяющие свя- зи между переменными t, s и параметрами а, р, характеризу- ющими свойства системы. Принятая модель является гипотети- ческой (предполагаемой), но ее адекватность и достоверность под- тверждены предшествующей практикой применения для той или иной области значений переменных t < гнач (г > /кон), s < $ниж (5 > > 5KpX) и параметров а = с^; р = р0. В дальнейшем соответствие свойств модели свойствам объекта либо еще больше подтвержда- ется, либо приводит к необходимости пересмотра исходных мо- делей. Типичным примером задачи прогнозирования является про- гнозирование погоды. В этом случае переменными моделируемой системы будут, например, t — текущее время, Т °C — температу- ра воздуха (атмосферное давление или любые другие метеороло- гические переменные), а в качестве параметров а, р (х, у) могут выступать географические координаты, высота местности над уров- нем моря — Ям и т.п. Модели, положенные в основу расчетов прогнозируемых значений параметров и переменных, строятся на основе накопленного опыта, методов статистического анализа и, возможно, некоторых соответствующих имитационных экспери- ментов. 1.3. Моделирование, оптимизация и принятие решений Оптимизация и связанный с этим процесс принятия решений (поведенческих, управленческих, проектных и др.) являются од- ним из наиболее распространенных направлений теории и прак- тики моделирования. Назначение моделей в данном случае, как и во многих других, — установление связей (соотношений) между переменными (параметрами) системы или процесса, включение этих соотношений в целевые функции (критерии оптимизации), которые в дальнейшем подлежат исследованию на поиск мини- мумов либо максимумов при заданных ограничениях. Задача оптимизации, таким образом, сводится к исследова- нию целевой функции на поиск экстремумов: G= G(X|, х2, ..., х„) при ограничениях Qp (хь х2,..., хя) = 0. Однако и целевая функция, и ограничения должны отвечать определенным требованиям, на- пример — свойствам непрерывности, дифференцируемости и т.п. Это, во-первых, не всегда имеет место, а во-вторых, зависимос- ти между переменными {у,} и {ху} могут носить стохастический (случайный) характер. Сами переменные часто не являются чис-
ловыми, а представляют собой логические либо смысловые пока- затели. При решении задач оптимизации с числовыми переменными, задавая целевые функции (ЦФ) и ограничения, руководствуются следующими принципами. 1. Принцип соответствия, состоящий в таком выборе целевой функции, чтобы выбранная модель существенно влияла на изме- нение значений ЦФ и обеспечивала хорошие в том или ином смыс- ле результаты оптимизации. 2. Принцип однозначности, заключающийся в том, что, если имеются две ЦФ, причем одна функция Р|(х, у) должна макси- мизироваться, а другая Р2(х, у) минимизироваться, то целесооб- разно одну из них заменить на обратную И(х, у) = 1/Л(х, у), чтобы можно было искать общий максимум Дх, у) = Л1Р|(х, у) + + А2Р2(х, у), где и А2 — весовые коэффициенты. 3. Принцип модификации, означающий, что целевая функция должна задаваться через переменные, на которые можно целе- направленно воздействовать и изменять. 4. Принцип подходящей формы — функции, имеющие разры- вы, локальные экстремумы и неоднозначности, являются неже- лательными для выбора их в качестве ЦФ. Наиболее распространенными видами целевых функций явля- ются: ЦФ экономической эффективности (прибыли): РИ = ХИЛ” где Vj — коэффициент эффективности /-го компонента процесса (системы); Р,— /-й положительный эффект процесса; Fj— стоимость /‘-го ресурса; Rj— pawoaJ-VQ ресурса; ЦФ стоимости И/= где F} — стоимость получения ре- зультата z’-ro выхода; Я,- — результат по Z-му выходу; ЦФ качества W - 2Л( - У/)2, где Л, — положительные весо- вые коэффициенты; Yj — установочные значения переменных со- стояния yh Практически все задачи оптимизации так или иначе связаны с определенными ограничениями, среди которых различают: жесткие ограничения на переменные управления xh общая формула которых может быть представлена неравенствами (в част- ном случае — уравнениями) х, > R^; х, < R^\ RM, R^ — нижний и верхний пределы ограничений; нежесткие ограничения, которые могут быть заданы через так называемые функции штрафа, например: р\ = к,{х,/Р^)МЬ где kh М,— положительные числа; R^— величина ограничения; ограничения на переменные состояния и переменные управ- ления, выраженные как функции переменных управления: Зр^УъУъ 9 Ут, Х\♦ -Уь Хл) Лрд,
Sp(yt, y2,..., ym; xb x2,..., x„) > S». Итак, можно представить, что модель определяет ЦФ как по- казатель эффективности системы FF(x, а), который необходимо максимизировать (минимизировать): РИ(х, а) = И^ан а2, ..., аъ хн х2, х„) -> max (min). Тогда можно сформулировать общую задачу оптимизации: при заданных условиях и значениях параметров аь а2, ак найти такие элементы решения хн х2, хл, которые обращают И^х, а) в максимум (минимум). Одна из причин невозможности применения классических ма- тематических методов для решения некоторых оптимизационных задач — то, что области ограничений искомых переменных, оп- ределяющих минимумы (максимумы) целевых функций, задают- ся прямыми (ломаными) линиями. Соответствующие задачи на- зываются задачами линейного программирования (ЛП). Они име- ют место при оптимизации структур систем обработки данных и управления, например, при выборе оптимальных пропускных спо- собностей каналов компьютерной сети, оптимизации распреде- ления информационных ресурсов между множеством пользовате- лей и в ряде других конкретных задач. Для задач линейного про- граммирования характерны следующие свойства: пропорциональность — отдельные затраты пропорциональны количеству потребляемого ресурса х,; аддитивность — общие затраты = ХСд,, которые опре- деляют ЦФ, обычно складываются из отдельных затрат; неотрицательность — потребление ресурса не может быть от- рицательным (однако а^— коэффициенты пропорциональности могут быть отрицательными). Ограничения в задачах ЛП в общем случае могут быть заданы как в виде неравенств, так и в виде уравнений. При этом обще- принятым методом решения является так называемый симплекс- метод [6]. Согласно данному методу в задачах ЛП общего вида всегда можно выделить так называемое ядро (основу или частный случай), когда ограничения определяются равенствами: 5Х = />,; / = 1,..., /и, 7=1 где а у — запасы ресурсов у-го вида в Z-м источнике; Ь, — потребность ресурсов из /-го источника; п — число потребителей; т — число источников (от т и п зависит число ограничений, т.е. размерность задачи). Задача в этом случае называется основной задачей ЛП. Допустимым решением задач ЛП является множество {хд} ис- комых величин, для которых хь ..., хп > 0. Оптимальным решени-
ем будет то из множеств {хд}, при которых И/(А) обращается в min. В основной задаче ЛП (ограничения заданы равенствами) рас- смотрим три возможные случая: т < л; т = п\ т > п. Если т = л, то допустимые решения {хд} возможны и един- ственны, при этом {хд} = {хопт}, т.е. то или иное допустимое реше- ние является и оптимальным. Пусть теперь т * л, т.е. либо т < л, либо т > л. Тогда получаем бесчисленное множество решений, причем л - /и, либо т - л переменные образуют множество свободных переменных, а т яв- ляются так называемыми базисными. Если среди решений (xh х2, ...» хя)аднет таких множеств, для которых все xz > 0, то задача не имеет допустимого решения. Если же найдется множество (одно или несколько) (хь х2, ..., хл), для которых xf > 0, то решение допустимо, и нужно среди них выбрать такое множество значений (х1о, х2о, хло), при котором достигается минимум целевой функции Для лучшего понимания смысла задачи рассмотрим ее геомет- рическую интерпретацию. Это удобно сделать для случая, когда л — т = 2. Предположим, что хь х2 являются свободными. Тогда все остальные т = л — 2 базисные х3, х4, ..., хп можно выразить в общем виде через Xj и х2 следующим образом: х3 = а3|Х] + а32х2 + Р3 = 0; х4 = а4|Х! + а42х2 + р4 = 0; х„ = ая1Х) + ая2х2 + р„ = 0. Любое выражение из этой системы, когда переменная хА, рав- ная нулю и задаваемая уравнением хк = a^Xj + а*2х2 + р* =0, оп- Рис. 1.7. Графическая интерпретация задачи
ределяет некоторую прямую на плоскости Х|0х2. Далее, меняя к от п - т до п и строя соответствующие линии, получим выпуклый многоугольник на плоскости Х|0х2 (рис. 1.7.) Если внутри него значения переменных соответствуют условию хк > 0 (т.е. неотри- цательны), то задача имеет область допустимых решений (ОДР). Но ОДР может не существовать. Значит, уравнения несовмест- ны для условия хк > 0. Рассмотрим, как геометрически выглядит целевая функция И^(хь х2) на плоскости Х|0х2. Исходное выражение для п И'ЧХ) = У CjXj. Подставим в него вместо х3 - хп соответствующие выражения, где эти переменные вычисляются через х, и х2, и, приведя подобные члены, получим: И/(х,,х2) = у|х| +у2х2+у0, где уь у2 — коэффициенты; у0 — свободный член целевой функ- ции. Сравним ИИ(хь х2) с МИ(Х|, х2) = у^ + у2х2 (здесь у0 = 0). Функция W'Kxj, х2) так же, как и JK(X|, х2), достигает минимума (или максимума) при одинаковых изменениях хь х2, так как от- личие друг от друга только в постоянной у0, независимой от х. Можно на плоскости Х|0х2 изобразить также и ^(xj, х2). Соот- ветствующая линия будет параллельна линии И^(хь х2). Пусть при некоторых Х| и х2 ^(xh х2) = С, а при изменении С будет перемещаться параллельно самой себе, так же, как и при изменениях х, и х2. Поэтому для построения ИК(хь х2) можно построить линию (Х|, х2) = у|Х| + у2х2 и перемещать ее в опре- деленном направлении в соответствии со значениями коэффици- ентов уь у2 параллельно самой себе. При этом увеличение хь х2 приводит к перемещению Щх], х2) в одну сторону, а уменьше- ние — в другую. Это помечается на рис. 1.7 стрелками, показыва- ющими направление возрастания или убывания. Если условия-ограничения не соответствуют основной задаче ЛП, то используют метод замены переменных, позволяющий при- вести задачу к условиям основного вида, при этом, однако, про- исходит увеличение размерности такой задачи. Отметим некоторые важные положения, связанные с основ- ными задачами линейного программирования. 1. Оптимальное решение задачи, если оно существует, распо- лагается только на границе ОДР (а не внутри области допустимых решений ОДР, поскольку имеется возможность улучшать его вплоть до самых границ). 2. Оно (решение) может быть не единственным (если какая- либо линия ОДР параллельна линии ЦФ W(xh х2) — это беско- нечное множество оптимальных решений).
3. Задача может не иметь решения. Тогда со стороны изменения ЦФ Ифсь х2) в направлении стрелок ОДР не ограничена. 4. Решение, минимизирующее (максимизирующее) Ифсь х2), достигается в одной из вершин многоугольника ОДР. 5. Для нахождения оптимального решения достаточно последо- вательно перебрать и рассмотреть вершины ОДР (часто необяза- тельно все) и выбрать ту, где И^(х19 х2) = И^. Идея симплекс-метода как раз и состоит в последовательном улучшении достигаемого результата на основе перехода от одной вершины ОДР к другой (смежной), при сохранении допустимых значений базисных переменных. Каждый такой переход означает одновременно замену одних свободных переменных на другие. Компьютерная программа, реализующая симплекс-метод, про- веряет значения коэффициентов целевой функции, находит один из них, для которого у, < 0, определяя тем самым разрешающий столбец; вычисляет в этом столбце попарные отношения p//aZ/ для всех элементов (/— номер строки таблицы / = 1, ..., т) и выбирает /, для которого (р/аДпт; после чего производит замену переменных и вновь пересчитывает коэффициенты целевой функ- ции и системы ограничений. Данная процедура циклически вы- полняется до тех пор, пока все новые коэффициенты при свобод- ных переменных в целевой функции не станут положительными. При этом каждый раз проверяется, чтобы все р; (свободные чле- ны в выражении для базисных переменных) были положитель- ны, т.е. решение было допустимо. В теории оптимизации существует также ряд задач, в которых целевая функция ГЦх) — нелинейная, а решение удобно нахо- дить специальными методами, отличающимися от тех, которые применяются в задачах линейного программирования. Типичным подобным примером является поиск экстремумов и других харак- терных точек нелинейных функций. Методы решения этих задач известны из курса высшей мате- матики, в частности, из такого ее раздела, как вариационное ис- числение, теория экстремумов. Для оптимизационных задач с не- линейными целевыми функциями и с нелинейными ограничени- ями чаще всего применяется метод неопределенных множителей Лагранжа [34]. В общем виде задача нелинейного программирования форму- лируется следующим образом. Минимизировать Дх) -> min при ограничениях1: 1 Здесь применены новые обозначения: целевая функция — Дх); ограниче- ния — g/x) (для неравенств), Л/х) (для равенств).
gi (x) < 0, /= 1.m; h,{x) = 0,/ = 1, p. С помощью метода Лагранжа эта задача может быть сведена к задаче отыскания безусловного экстремума. Для этого вводят мо- дифицированную целевую функцию Лагранжа: т р Цх, и. А.) = /(х) + £и,&(х) + £А.Д(х), /I J»! где uh \j — множители Лагранжа, причем Ху могут иметь любой знак, a Uj > 0. Доказывается, что, если функции Дх), g,{x) и hj(x) — диффе- ренцируемы в точке х*, то градиент (VA(x*, у*, X*), х - х*) = 0, где х* — оптимальное значение (локальное или глобальное), причем V/x) градиент самой функции Дх) по определению: V/(x) = дх, У (X) 7 Эх, J Э/(х) -т— Эх„ где /, у, ..., п — ортогональные единичные векторы. Это как раз и является условием существования оптимального решения. Таким образом, нулю должна быть равна сумма гради- ентов целевой функции Дх) и ограничений g(x) и Л(х): т р W) + £M,Vg/(x) + £x,VA(x) = 0, (1.6) /=1 y=i где Uf gi(x) = 0, 7 = 1, ..., /и; g(x) < 0, Л(х) = 0, и > 0. Выражение (1.6) называется условием существования реше- ния — такого множества значений {х*}, которые обеспечивают ггйпДх) (условием Куна —Таккера). Приведенные примеры показывают, что выбор той или иной исходной математической модели для дальнейшего ее примене- ния очень важен. От этого, в частности, целиком и полностью зависит метод решения рассматриваемых задач оптимизации, ва- рианты принимаемых оптимальных решений при управлении и в других сферах интеллектуальной деятельности человека. В какой- то мере выбору возможного варианта соответствующего метода может способствовать табл. 1.1, где указаны наиболее распростра- ненные виды моделей, которые находят применение, как в науч- ных исследованиях, так и для практического решения задач опти- мизации. Линейные и нелинейные модели и связанные с ними методы оптимизации — обширная, но далеко неполная сфера примене-
Модели в задачах оптимизации Таблица 1.1 Виды моделей Типовые задачи Основные методы решений Линейная Линейное програм- мирование Симплекс-метод Нелинейная Нелинейное програм- мирование Метод неопределенных множителей Лагранжа Целочисленная Целочисленное про- граммирование Комбинаторные, методы отсечений, ветвей и границ Игровая (матричная) Парные игры с нуле- вой суммой Симплекс-метод, смешанные стратегии, игры с обучением Графо-матричная Задачи о покрытии, кратчайших расстоя- ниях, о медианах Алгоритмы Литтла, Краскала, Дейкстры и др. Потоковая (на графах) О максимальном по- токе (минимальном разрезе) Алгоритм Форда —Фал- ке рсона Марковские про- цессы (процессы гибел и -размноже - ния) Определение веро- ятностей состояний стохастических сетей Уравнения Эрланга, имитационное моделирование Многоэтапные процессы с пере- менными времени Динамическое программирование Принцип Понтряги- на-Беллмана С логическими переменными Минимизация булевых функций Основные законы булевой алгебры Со смысловыми переменными Оптимизация прини- маемых решений Парето-оптимизация ния технологии моделирования. Разновидностью рассматриваемых моделей и одновременно достаточно крупным самостоятельным направлением задач оптимизации являются задачи целочислен- ного программирования. Здесь дополнительным ограничением выступает требование, предъявляемое к некоторым, а иногда и ко всем переменным о том, чтобы они принимали только цело-
численные значения. Это приводит к необходимости применения особых методов, причем как дополняющих методы, применяе- мые в решении задач линейного и нелинейного программирова- ния, так и заменяющих их. Другими широко встречающимися в научных исследованиях и инженерной практике направлениями моделирования, и это от- мечено в таблице, являются игровые и графо-матричные модели, потоковые модели, модели с логическими переменными и пере- менными времени, модели марковских процессов и др. Их и свя- занные с ними задачи исследований предполагается рассмотреть в последующих главах учебного пособия. Более подробно примеры, виды моделей и содержание про- цессов моделирования, связанных с решением данных и некото- рых других задач, рассматриваются также в следующих подразде- лах этой главы. 1.4. Использование моделей в инженерной практике и прикладных научных исследованиях 1.4.1. Моделирование технических и производственных объектов Диапазон практического применения методов моделирования необычайно широк. Для такого утверждения обратимся к некото- рым примерам. В первую очередь они касаются сферы инженер- но-технической деятельности и близких к этой сфере прикладных научных исследований. Здесь для реализации моделирования до- статочно сложных технических объектов применяются компью- терные технологии и разнообразные пакеты моделирующих про- граммных средств, оригинальные методики, позволяющие решать сложные задачи проектирования и оптимизации. Наиболее рас- пространенным вариантом таких программных средств моделиро- вания является упоминаемый выше пакет MATLAB. Рассмотрим некоторые примеры его применения и других моделирующих па- кетов в указанных областях. В пакете MATLAB и его расширениях имеются возможности моделирования и расчета машиностроительных конструкций, в частности методом конечных элементов (МКЭ), и средства для решения задач оптимизации. Для различных типов конечных эле- ментов есть возможность вычислять производные от матриц жест- кости, масс и вектора узловых усилий по координатам узлов. Одной из задач подобного типа является задача определения формы трюма грузового судна, при которой минимизируются концентрации напряжений в палубных конструкциях, при раз-
личных ограничениях на прочность и при условии, что в трюм должен проходить груз заданных размеров. Исходными данными для расчета МКЭ обычно являются гео- метрия области, занимаемой телом, физические характеристики материала и данные о нагрузках. Общий алгоритм решения такого рода оптимизационных задач состоит в последовательности сле- дующих этапов. По геометрическим данным производится разбивка области на конечные элементы. По ним заполняются массивы матриц жесткости Ке, матрица моментов М, матрица переходов от перемещений к напряжениям Ge и вектор узловых усилий f, для всей конструкции судна. Обработка этих массивов осуществ- ляется с помощью механизма sparse пакета MATLAB. Следующим этапом процесса моделирования является вычисление целевой функции. Возможные варианты таких вычислений зависят от со- держания и постановки задач оптимизации, в частности, — это могут быть исследование статических нагрузок, определение вы- нужденных и собственных колебаний. Каждый из этапов вычислений предполагает применение не- которых предварительно выбираемых исходных математических моделей. По ним в дальнейшем определяются производные и гра- диенты целевых функций и ограничений. В большинстве рассмат- риваемых случаев они с помощью MATLAB могут быть аналити- чески вычислены без численного дифференцирования. В расчетах МКЭ матрицы жесткости, масс, демпфирования и векторы узловых усилий конечных элементов также вычисляются по заданным формулам. Матрицы и векторы-производные для всей конструкции получаются суммированием соответствующих мат- риц и векторов-производных отдельных элементов. Еще один вариант применения моделирования в инженерной практике, в частности в машиностроении, можно рассмотреть на примере моделирования движений автокрана при помощи паке- тов SimMechanics и Virtual Reality Toolbox системы MATLAB. В со- Рис. 1.8. Структура обшей имитационной модели
став пяти основных компонентов динамической системы авто- крана вошли: базовое шасси, поворотная колонка, стрела, теле- скопическое выдвижное звено и груз (рис. 1.8). Для расширения возможностей анализа результатов моделиро- вания предусмотрена визуализация исследуемых параметров в форме временных диаграмм, графиков функций как в прямо- угольной, так и полярной системах координат, фазовые портреты процессов и т.п. Модель позволяет решать расчетные задачи ста- тики, кинематики и динамики движения крана. Кроме того, большую группу задач моделирования данного объекта составляют задачи анализа процессов его сложного мно- гомерного движения, связанные с необходимостью их анимации. Для анимации использовался пакет Virtual Reality Toolbox си- стемы MATLAB, позволяющий создавать наглядные анимацион- ные сцены для множества систем координат и исследовать дви- жение крана, как с качественной стороны и общей картины, так и с возможностью количественной оценки параметров, интере- сующих исследователя. 1.4.2. Модели экономических процессов и систем Вышеприведенные примеры относятся к инженерно-техниче- ским и научно-исследовательским моделям, применяемым для решения задач в сфере производства. Здесь, однако, исторически первым было применение методов моделирования для экономи- ческих задач, как непосредственно связанных с производством (с технологией), так и относящихся к управлению им. Рассмотрим примеры из этой области, и коснемся некоторых общих важных представлений об экономических процессах и их моделях. В этих моделях многие свойства объектов базируются на таких понятиях, как спрос и предложение. Спрос на какой-либо товар характеризует желание множества лиц купить то или иное количество этого товара. Одновременно наличие спроса на какой-то товар предполагает согласие упла- тить за него определенную цену. За цену спроса принимают мак- симальную цену, которую покупатели согласны заплатить за оп- ределенное количество данного товара. Зависимость объема спроса от определяющих его факторов на- зывают функцией спроса. В общем виде функция спроса может быть представлена следующим образом: ^,..., Л; £;...), (1.7) где объем спроса на Z-й товар (/ = I, 2, ..., к); Т— вкусы и предпочтения; Рь ..., Рк — цены всех товаров, включая z-й; L — денежный доход.
Рис. 1.9 Линии спроса и изменение объема (сдвиг линии) спроса Если все факторы, определяющие объем спроса, кроме цены интересующего нас товара (Р,), положить неизменными, то от функции (1.7) можно перейти к функции спроса от цены, харак- теризующей зависимость спроса на /-й товар лишь от его соб- ственной цены (рис. 1.9): Qf-QfW). (1.8) Предложение характеризует готовность продавца продать определенное количество того или иного товара в определенный период времени за соответствующую цену. За цену предложения принимается минимальная цена, по ко- торой продавец согласен продать определенное количество дан- ного товара. Зависимость объема предложения от определяющих его факто- ров называется функцией предложения. В общем виде функция предложения имеет вид .. Рк\т„ /V;...), (1.9) Рис. 1.10. Линия предло- жения где Qf— объем предложения /-го товара (/ = 1, 2, к)\ L,— характер применя- емой в производстве /-го товара техно- логии; Рь ..., Рк — цены товаров, вклю- чая /-й товар; 7} — налоги и дотации, установленные по /-му товару; N— при- родные условия. При неизменных факторах, опреде- ляющих объем предложения, можно пе- рейти к функции, характеризующей за- висимость объема предложения товара только от его цены (рис. 1.10):
Qf=Q?(P.)- (1.Ю) При экономическом анализе часто возникает необходимость оце- нивать состояние и стабильность рынка, его равновесие. Рыночное равновесие определяется координатами точки пересечения линий DD и 55, которым соответствуют объем QE и цена РЕ (рис. 1.11, а, б). Для этого применяются так называемые динамические эконо- мические модели. В отличие от статических моделей, которые со- ответствуют выражениям (1.7), (1.9), динамические экономичес- кие модели, непосредственно учитывают фактор времени, что, не- сомненно, представляет большой интерес. В этих моделях многие переменные являются функциями времени, которые в итоге опре- деляют свойства исследуемых процессов и объектов. Приближение рынка к равновесию можно представить двумя уравнениями [35]: = h[QD(P)-Qs(P)] = hbQD(P), h>0, (1.11) at где &QD(P) — избыток спроса при цене Р; = k[PD(Q) - PS(Q)] = k^P(Q), к > 0, (1.12) at где AP(Q)— превышение ценой спроса PD(Q) цены предложе- ния PS(Q) при некотором объеме продаж Q. Рис. 1.11. Равновесие: а — по Вальрасу; б— по Маршаллу
1.4.3. Паутинообразная модель Если объем предложения реагирует на изменения цен с неко- торым запаздыванием, анализ стабильности равновесия существен- но усложняется. Допустим, что объем спроса зависит от уровня цен текущего периода, тогда как объем предложения — от уровня цен предыдущего периода: Q>=Q'^ (1.13) Qi5=Q^Pl-l), где / — определенный период времени (г = 0, 1, 2, , 7). Это значит, что производители определяют в период t - 1 объем пред- ложения следующего периода /, предполагая, что цены периода t - 1 сохранятся и в период t. Рассмотрим некоторую упрощенную модель, в которой пере- менные, уравнения функционирования и условие локального рав- новесия рынка имеют следующий вид: DT=A- ВРТ+ UT\ (1.14) 5Г= С+ DPT. j + VT\ (1.15) ST=DT+WT. (1.16) Здесь DT— спрос на Г-м отрезке времени; Рт — цена на Г-м отрезке времени; ST— предложение на Т-м отрезке времени; UT — случайная величина с заданными законом распределения, мате- матическим ожиданием, равным нулю, и дисперсией DUy VT — случайная величина с заданными законом распределения, мате- матическим ожиданием, равным нулю, и дисперсией Dv\ IVT — случайная величина с заданными законом распределения, мате- матическим ожиданием, равным нулю, и дисперсией Уравнения функционирования допускают следующую интер- претацию. Спрос на Т-м отрезке времени линейно зависит от те- кущей цены и случайной величины UT, которая задает непредви- денные колебания предпочтений и доходов потребителей, а так- же другие случайные факторы, влияющие на величину спроса. Предложение на Т-м отрезке времени зависит от цены на (Т- 1)-м отрезке и значения случайной величины VT. Условие локального равновесия рынка означает совпадение спроса и предложения с точностью до случайной величины Ут. Подставляя выражения для DT и ST в (1.16) и решая это урав- нение относительно Рт, получаем: А-С-РРт.^ит + ^т+Ут 17.
Рис. 1.12. Блок-схема паутинообразной модели Это соотношение позволяет по заданному начальному значе- нию цены PQ и законам распределения случайных величин UT, VT и WT моделировать на ЭВМ траектории переменных Л7, 5ги DT. Схема соответствующего алгоритма показана на рис. 1.12. В зависимости от колебания цен Рт траектории других пере- менных могут быть раскачивающимися, с постоянной амплиту- дой или затухающими: если D> В, амплитуда колебаний неогра- ниченно растет, если D = В, колебания имеют постоянную ампли- туду, если D < В, колебания затухают. В рассмотренной модели предполагается, что цены предыду- щего периода сохранятся и в последующем. Можно учесть тенден- цию изменения цен и спланировать выпуск на очередной отрезок времени, ожидая, что цена Рт на этом отрезке изменится следу- ющим образом: Лг-1 - рДРт-_2, (1-18) где &РТ_2 = Рт_j - Рт 2, а р — константа (0 < р < 1), характеризу- ющая значение, которое соответствует наблюдаемым колебаниям цен. Уравнения, аналогичные (1.17), в этом случае будут иметь вид ST = С+ D(PT_}-pbPT_2) + VT. (1.19) Еще одно направление моделирования объектов производства и экономики различного уровня касается класса моделей, бази- рующихся на теории массового обслуживания (ее также называ- ют теорией очередей). Основная особенность данных моделей — 2 Морозов 33
наличие в объектах моделирования большого числа стохастиче- ских процессов, случайных функций и переменных. Обычные клас- сические методы математического анализа оказываются не всегда применимыми для решения возникающих задач и приводят к не- обходимости использования специальных методов, получивших название методов Монте-Карло, и приведших впоследствии к появлению имитационного моделирования. Теория очередей, как это может показаться на первый взгляд, имеет отношение только к социальным системам, которые пред- ставлены группами людей, порой очень большими группами, и что именно здесь возникают очереди и организуются те или иные варианты процедур массового обслуживания. На самом деле оче- реди создаются, образуются и возникают как в социальных эко- номических, коммерческих и других системах, так и в техничес- ких, технологических, производственных. Здесь можно говорить об очередях деталей на обработку, узлов на сборку, загрузке стан- ков, агрегатов и т. п. Приведем пример моделирования систем массового обслужи- вания (СМО) в производственно-экономической сфере и в свя- занных с этой сферой предметных областях. На рис. 1.13 показана относительно простая схема технологи- ческого процесса, который выполняется группой последователь- но соединенных станков, агрегатов (это может быть также ряд последовательных участков сборочного конвейера). В своей логи- ческой основе рассматриваемые объекты базируются на модели одноканальной многофазной СМО (подробная классификация возможных СМО, их свойства и характеристики рассматриваются в гл. 7). Детали, поступающие на обработку к агрегатам (или узлы на участки сборки), образуют в совокупности поток так называе- мых заявок. Обрабатываемые Рис. 1.13. Технологический процесс как система массового обслуживания 34
При этом моменты поступления каждой заявки в общем слу- чае не постоянны, а имеют случайный разброс относительно не- которых средних значений. Времена обработки деталей (сборки узлов) также могут колебаться в тех или иных пределах. При со- ставлении программы обработки или определении темпа работы конвейера важно оценить, какие возможны задержки (какая про- должительность всего процесса обработки или сборки), а также, сколько может накапливаться деталей в ожидании начала обра- ботки на каждом агрегате и т. п. Расчетные формулы, по которым можно определить вышеука- занные величины, существуют только для определенного вида СМО, потоков заявок и распределений времени обслуживания. Имитационное моделирование позволяет это сделать практиче- ски для любой технологической, производственной или эконо- мической системы. Хорошим примером системы, где в едином комплексе объ- единяются и совместно участвуют технологические характерис- тики и экономические показатели, является склад продукции. Не- обходимость складирования и хранения продукции часто возни- кает в различных производствах, так как, во-первых, по многим объективным причинам не всегда возможно организовать согла- сованный выпуск продукции и ее сбыт; во-вторых, часто выгод- но иметь запасы для тех или иных целей. При складировании про- дукции возникает задача оптимального управления запасами, в соответствии с которой необходимо знать, сколько следует про- изводить или заказывать (или как часто производить либо повто- рять заказы), чтобы минимизировать издержки хранения, поста- вок и потерь вследствие недостатка продукции на складе. Имита- ционная модель процессов управления запасами на складе под- робно рассматривается в гл. 7. Существуют три подхода, сложившиеся в современном ими- тационном моделировании — системная динамика (СД), диск- ретно-событийное (ДС) и агентное моделирование (АМ). Отме- тим, что исторически первым направлением являлась системная динамика, и в этом плане она соответствует классическим подхо- дам, применявшимся в науке еще до появления компьютерных технологий. Появившиеся впоследствии практические задачи не- четко формализуемых систем, например для систем, встречаю- щихся в биологии, медицине, социологии и других областях на- уки, указали на некоторые проблемы использования имеющихся традиционных средств имитации случайных процессов. Для этих систем с большим количеством активных объектов (людей, животных, проектных решений, денежных активов, дви- жущихся транспортных средств), которые объединяет наличие свойств индивидуального поведения, агентное моделирование
является подходом более универсальным и мощным, так как оно позволяет учесть любые сложные структуры и их особенности. Другим важным достоинством АМ является возможность разра- ботки модели даже при отсутствии точной информации о гло- бальных зависимостях между переменными или о последователь- ности глобальных операций, осуществляемых системой. Как след- ствие этого, агентную модель легче поддерживать и развивать, уточняя соответствующие связи и внося изменения на локальном уровне. Подходы и принципы, используемые в агентном моделирова- нии, позволили расширить круг предметных областей, где стало возможным его применять для новых классов исследуемых систем и более сложных задач. 1.5. Моделирование в больших системах и фундаментальных исследованиях Масштабы современных объектов моделирования в последнее время заметно расширились. Если ранее моделирование касалось в основном отдельных предприятий и организаций (производствен- ных, коммерческих, банковских и других локальных объектов), то в настоящее время в рамки анализа попадают целые отрасли промышленности, сельского хозяйства, крупные города, регио- ны и даже целые страны. Типичным примером крупномасштабных и сложных объектов моделирования могут служить так называемые логистические си- стемы. Они включают в себя сети поставщиков и потребителей ресурсов. Под ресурсами понимаются различные товары, грузы, сырьевые и строительные материалы, энергоносители и т.д. В ро- ли получателей и поставщиков выступают государства, страны, регионы, области, города и т.д. Но это также могут быть и круп- ные корпорации, большие и малые фирмы, предприятия, орга- низации и частные лица, причем число их в составе логистичес- кой системы может быть достаточно большим. Второй составляющей логистической системы является мно- жество транспортных объектов различного вида (средств морско- го, речного, железнодорожного, авиа-, автомобильного транс- порта), предназначенных для перемещения ресурсов и доставки их получателям. При этом возможны варианты, когда рассматри- вается только один вид транспорта и когда необходимо использо- вать несколько различных видов. Третьим компонентом каждой логистической системы являет- ся множество организаций-посредников, занимающихся плани- рованием, управлением, распределением и сопровождением транс-
портируемых ресурсов (консалтинговых фирм, торговых бирж, охранных предприятий и т.п.). Задачи моделирования логистических систем связаны, во-пер- вых, с определением рамок (границ) данных объектов моделиро- вания, от которых зависят как масштабы исследуемой или проек- тируемой логистической системы, так и ее сложность (размер- ность, количество и состав переменных и связей). Во-вторых, важными характеристиками процесса моделиро- вания логистических систем являются сущность и содержание ре- шаемых задач. Как и для других случаев и объектов моделирова- ния, это могут быть задачи анализа и расчета параметров приме- няемых транспортных схем и технологий, например оценка сто- имостей перевозок заданного вида товаров с использованием оп- ределенных видов транспортных средств, либо это могут быть за- дачи оптимизации и прогнозирования. В-третьих, различают задачи моделирования действующих ло- гистических систем, для которых существует накопленный опыт и достаточный статистический материал, и задачи разработки перспективных проектов таких систем. Следующим примером крупномасштабного моделирования яв- ляются экологические системы. Сейчас считаются общепризнан- ными важность и значение этих систем в жизни современного человечества и еще более важным значение их для жизни будущих поколений. Чтобы правильно и эффективно распоряжаться при- родными ресурсами всей планеты или части ее территорий, не- обходимо опираться на реальные закономерности и связи, суще- ствующие в окружающей среде нашего обитания. Эти закономер- ности и связи в данном случае, по сути, и есть соответствующие модели экологических систем. Проблема же состоит в том, чтобы эти модели были адекватными, достоверными и эффективными, давали возможность сохранять природу и ее ресурсы и одновре- менно целенаправленно использовать их. Одним из прогрессивных направлений развития экологических систем является создание производственных систем с замкнутым технологическим циклом (так называемые безотходные техноло- гии). Подобные системы осуществляют контроль и регулирование экологических параметров, очистку выбросов и переработку от- ходов. Кроме этого, создается соответствующая инфраструктура, включающая средства экологически чистого транспорта, источ- ники питьевой воды, продукты питания и т.д. Таким образом, связи в экологических системах очень многочисленны и сильно переплетены. Моделирование экологических систем в связи с этим услож- няется, так как, с одной стороны, исключать новые связи, кото- рых не было в отдельных составляющих подсистемах, нельзя, с
другой изменяются условия и характер протекания исследуемых процессов. Вот, например, один из важных вопросов, связанных с экологией, который можно было бы решать не только на осно- ве логического анализа имеющихся фактов, но с применением эффективных методов моделирования, вопрос о том, как связа- ны между собой развитие энергетики и изменение климата, вы- зываемое данным фактором. Климат, бесспорно, оказывает силь- нейшее влияние на жизнь и здоровье людей, условия размноже- ния и воспроизводства животных, произрастание растений. С точ- ки зрения роли и возможностей моделирования можно сформу- лировать многочисленные задачи установления связей, например, между количеством генерируемой (потребляемой или теряемой энергии), значениями среднегодовых (или сезонных) темпера- тур, атмосферных давлений, количеств осадков, состава атмо- сферы и т.п. В свою очередь, каждый из перечисленных выше ме- теорологических факторов влияет на биологические параметры флоры и фауны или, как их еще называют, биосферы. Здесь осо- бенно важно, чтобы создаваемые модели были точными и адек- ватными, поскольку только при этом условии они становятся при- менимыми для правильной оценки крупномасштабных проектов перспективного строительства и развития городов, регионов, до- рог, объектов промышленности и агротехники. Обеспечить дан- ные требования можно, с одной стороны, накапливая как можно более полный материал (набор) экологических и других, связан- ных с ними данных, с другой стороны, развивая и совершен- ствуя методы, средства и технологии моделирования, что и мож- но видеть в данной области. Еще одна область приложений и широкого использования ме- тодов моделирования — фундаментальные научные исследования, их различные формы проведения (теоретические и эксперимен- тальные). В широком смысле слова методы моделирования объек- тов природы используются с глубины веков, так как познавание уже само по себе есть отражение окружающего мира в форме на- копленных знаний и представлений (т.е. логическое смысловое моделирование). Но здесь, по-видимому, необходимо отметить то, что фундаментальные исследования — не просто важное направ- ление моделирования, а то, что именно здесь, ранее, чем в дру- гих областях знаний, уже давно и эффективно применяются ме- тоды моделирования, основывающиеся на использовании ком- пьютерных технологий. Это касается многих основных областей фундаментальных исследований, в частности, космоса, физики Земли (геофизики), физики элементарных частиц. Типичными примерами моделирования объектов Космоса яв- ляются как общие космологические модели Вселенной в целом, так и модели отдельных космических систем, ее (Вселенную) об-
разующих. В число таких систем входят космический вакуум, га- лактики, звездные скопления, многообразия, планетные систе- мы, в том числе Земля и ее орбита, и многие другие объекты. В теоретической и практической астрономии существует множе- ство достаточно правдоподобных гипотез, играющих роль логи- ческого основания для построения того или иного вида моделей различных объектов. Многие модели из этого числа получили раз- витие в форме компьютерных реализаций и представляют собой программы имитации и (или) аналитической обработки, анима- ции и визуализации процессов, происходящих в рассматривае- мых объектах. Например, с помощью моделирования и средств ком- пьютерной анимации можно визуально воспроизводить картины процессов, происходящих на Солнце («наблюдать» солнечную ко- рону, протуберанцы, солнечный ветер и т.п.), а по этим картинам анализировать, какое влияние оказывают они на магнитное поле и атмосферу Земли, погодные явления и другие процессы. Что касается такого объекта моделирования как Земля, то это — самостоятельное направление фундаментальной науки, занима- ющееся вопросами как истории жизни нашей планеты, так и воп- росами о том, как она устроена, из чего состоит, какие процессы происходят в ее недрах и т. п. Существует множество гипотез о происхождении и строении Земли. Некоторые из них по мере развития технологии получают, по крайней мере, частичное подтверждение; другие, вероятно, со временем также будут проверены на достоверность и либо под- твердятся, либо будут опровергнуты. В любом случае каждая из рассматриваемых гипотез, безусловно, имеет определенную тео- ретическую ценность и соответствующее практическое значение. В свою очередь эти гипотезы являются той логической основой, на которой в целях практического использования знаний о при- роде Земли можно строить реальные геофизические модели. Ка- кую практическую пользу могут дать такие модели? Во-первых, с помощью подходящих и достаточно точных моделей, определя- ющих свойства верхних поверхностных слоев Земли (земной коры), представляется возможным более эффективно решать вопросы до- бычи и использования полезных ископаемых и природных энер- горесурсов. Во-вторых, можно развивать имеющиеся модели и со- здавать на их основе такие новые модели, которые позволили бы решать новые сложные задачи, например, прогнозировать земле- трясения, цунами, катастрофические явления. Важность этого вряд ли кто-нибудь стал бы отрицать. И, наконец, еще одно важное направление моделирования в фундаментальных исследованиях — физика элементарных частиц. Пример подобного моделирования с применением средств паке- та MATLAB подробно рассмотрен в подразд. 3.4. И этот пример
совместно с другими, рассмотренными в данном подразделе, по- казывает, насколько широки и разнообразны предметные облас- ти применения методов моделирования в научных исследованиях и практической деятельности (экономике, бизнесе, производстве). Но несмотря на такое разнообразие объектов моделирования, их специфику и особенности решаемых задач, можно говорить о не- кой обшей (типизированной) технологии моделирования. 1.6. Общая технология моделирования и основные этапы процессов моделирования 1.6.1. Этапы в управлении процессом моделирования Технологическая схема моделирования определяет основные этапы этого процесса и связь их между собой (рис. 1.14). Разработке любой модели и содержанию любого процесса моделирования пред- шествуют четкое понимание и формулировка целей и задач с обо- снованием необходимости проведения процесса моделирования. Получение исходной информации об объекте для построения модели осуществляется на основе изучения объекта моделирова- ния в рамках теоретических исследований или эксперименталь- ных работ. В дальнейшем в результате анализа исходной (априорной) и дополнительной информации, полученной в ходе теоретических и экспериментальных исследований, осуществляется выделение исследуемого объекта из некоторого класса родственных объек- тов и формируется так называемая концептуальная модель. Она составляется в основном в виде текстового словесного концепту- ального описания, содержащего ряд исходных представлений, пе- ременных и параметров, указания на возможные виды функцио- нальных зависимостей и на возможные связи между ними. Кон- цептуальное описание необходимо для создания в последующем более развитой формализованной модели. Формализованная модель это множество математических со- отношений, выражений, уравнений или неравенств, с помощью которых абстрактно выражается сущность моделируемой системы. Основной целью формализации является разработка математи- ческих моделей, которые бы наиболее полно и адекватно отобра- жали свойства моделируемых систем и позволяли варьировать все- возможными параметрами и переменными, характеризующими объект, прогнозировать, как влияют их изменения на его свой- ства и поведение. Выбор той или иной модели определяется нали- чием исходной информации об объекте, требуемым уровнем де- тализации на данном этапе исследования и возможностью полу-
Рис. 1.14. Основные этапы моделирования чения достоверного результата за приемлемое время с использо- ванием имеющихся вычислительных средств и программного обес- печения. Для формализации концептуального описания и составления формализованной модели выбирают подходящий язык и матема- тический аппарат. При построении формализованной модели не- обходимо сделать правильный выбор средств математического мо- делирования, что зависит от объекта моделирования и содержа- ния решаемых задач. Формализованная модель может разрабатываться в виде ана- литических соотношений и (или) в виде программ машинной ими- тации. В последнем случае разрабатывается план проведения ими- тационных экспериментов, определяющих последовательность,
число прогонов программ, значения варьируемых переменных. В имитационную модель обычно включены аналитические соот- ношения, отражающие отдельные аспекты работы системы. Анализ и интерпретация результатов моделирования позволя- ют сделать вывод об адекватности модели, использовать их для принятия решений при оценке объекта и выборе его вариантов. Проверка модели должна быть связана с использованием кон- трольных данных с учетом реальных условий. Выводы и рекомен- дации делаются после критического осмысления полученных ре- зультатов и после проверки допустимости сделанных предполо- жений о модели. Одним из методов оценки модели является срав- нение экспериментальных данных с результатами, полученными при использовании другой модели или методики. Содержание этапов планирования, проведения эксперимен- тов и методов анализа результатов рассмотрено в гл. 3 и 4. 1.6.2. Обработка полученных результатов Полученные после моделирования результаты применяют в дальнейшем для обоснования конкретных решений в области уп- равления, проектирования и осуществления мероприятий для более рациональной организации работ и процессов в исследуе- мой системе. Методы регрессионного, дисперсионного, корреляционного и статистического анализа представляют основу правильной интер- претации получаемых результатов. Регрессионный анализ позволя- ет найти оптимальные значения параметров моделей, дисперсион- ный анализ — количественно оценить сходимость результатов в среднем и определить, как можно ее обеспечить, а также судить о степени влияния отдельных факторов на реакцию и об их взаимо- влиянии. Чтобы установить взаимовлияние и различные виды за- висимостей между параметрами и переменным в моделях, приме- няют корреляционный анализ. Методы статистического анализа позволяют исследовать различные законы распределения случай- ных параметров и переменных для моделей, находить их числовые характеристики, статистические оценки и свойства. Рассмотренная последовательность этапов моделирования си- стем определяет соответствующую организацию и технологию ра- бот. Как следует из содержания этих этапов работы, для реализа- ции процесса моделирования требуются специалисты соответству- ющего профиля (постановщики задач, программисты, специали- сты по обработке данных) и достаточно развитые средства вы- числительной техники и программного обеспечения. Управление процессом моделирования заключается в своевре- менном и ответственном, т.е. обоснованном, принятии решений
при возникновении спорных вопросов, в устранении нестыковок и соблюдении программы работ, эффективном использовании вычислительных ресурсов. Осуществляется управление менедже- рами и администратором рабочих групп. Контрольные вопросы 1. Раскройте ваши представления о процессах моделирования. Дайте определение этому понятию, рассматривая понятие «система» как уже известное. 2. Что такое объект моделирования? 3. Что в самом общем смысле представляет собой модель объекта? 4. Какие в принципе возможны пути процесса моделирования? 5. Что такое уровень абстрагирования, и каковы ваши представления по данному вопросу? Сделайте пояснения. 6. Перечислите основные характеристики моделей и раскройте их смысл. 7. Каковы в общем случае цели и задачи моделирования? 8. Что такое критерии оптимизации? Какую роль играют ограниче- ния при моделировании и решении оптимизационных задач? 9. Приведите примеры применения моделирования в теории и на практике. 10. Объясните важность и значение компьютерных технологий в моде- лировании. 11. Что понимается под термином «технология моделирования»? 12. Какова последовательность этапов общего процесса моделирова- ния в целом и содержание каждого из них в отдельности?
ГЛАВА 2 КЛАССИФИКАЦИЯ МОДЕЛЕЙ 2.1. Классификационные признаки моделей Классификация в любой области знаний чрезвычайно важ- на. Она позволяет обобщить накопленный опыт, упорядочить понятия предметной области. Не является исключением в этом смысле и моделирование. В литературе можно найти самые раз- личные варианты классификации моделей [2, 4, 36, 42]. Это говорит о трудности создания универсальной классификации. Способы классификации определяются и точкой зрения авто- ров на предмет, и их личными предпочтениями. Важно лишь чувство меры, иначе может получиться «классификация» по- добная той, что приведена в рассказе X.Л. Борхеса. Это класси- фикация, приписываемая некой китайской энциклопедии под названием «Небесная империя благодетельных знаний». «На ее древних страницах написано, что животные делятся на а) при- надлежащих императору, б) набальзамированных, в) приру- ченных, г) сосунков, д) сирен, е) сказочных, ж) отдельных собак, з) включенных в эту классификацию, и) бегающих как сумасшедшие, к) бесчисленных, л) нарисованных тончайшей кистью из верблюжьей шерсти, м) прочих, н) разбивших цве- точную вазу, о) похожих издали на мух». Впрочем, отмечает далее X.Л. Борхес, подобные неуклюжие классификации при- сущи не только древним китайцам, и очевидно, трудно найти классификацию, которая не была бы в чем-то произвольной. И все же, как-то ориентируясь в мире неопределенностей, че- ловечество время от времени создает в какой-то степени удач- ные классификации, обусловленные возникновением более вы- сокого уровня познания и ведущие, в свою очередь, к более углубленному пониманию природы вещей. В современной научной методологии классификации подраз- деляются на искусственные и естественные. В основе первых ле- жат, как правило, несущественные признаки объектов, имею- щие произвольный или искусственный характер. Во втором слу- 44
чае учитываются существенные признаки, выявленные на основе много раз проверяемых объективных закономерностей и одно- значно определяющие положение объекта в классификацион- ной системе. Такие классификации называют еще «системати- кой». Примером ее может служить периодическая система эле- ментов Д. И. Менделеева. В силу многозначности понятия «модель» в науке и технике не существует единой классификации видов моделирования: клас- сификацию можно проводить по характеру моделей, характеру моделируемых объектов, сферам приложения моделирования (в технике, физических науках, кибернетике и т.д.). Например, можно выделить следующие виды моделирования: математическое; эконом ико-математическое; математико-картографическое; статистическое. Модели также классифицируют, исходя из наиболее существен- ных признаков объектов. Этими признаками являются: закон функционирования и характерные особенности выраже- ния свойств и отношений оригинала; основания для преобразования свойств и отношений модели в свойства и отношения оригинала. Таким образом, модели можно разделить: по первому признаку на логические (по законам логики в со- знании человека) и материальные (по объективным законам при- роды) модели. В свою очередь логические модели делятся на об- разные, знаковые, образно-знаковые (смешанные), а материаль- ные модели — на функциональные, геометрические, функциональ- но-геометрические. Функциональные и функционально-геометри- ческие модели в зависимости от физической однородности и раз- нородности с оригиналом разделяются на физические и формаль- ные; по второму признаку различают условные (на основании усло- вия или соглашения), аналоговые (на основании умозаключения по аналогии, непрерывные) и математические (математические методы выражения) модели. Из математических моделей можно выделить расчетные (математические представления — формулы, уравнения, графики, алгоритмы и т.д.) и соответственные (ма- тематические зависимости) модели. Из соответственных выделя- ются подобные модели (пропорциональность переменных вели- чин к соответствующим переменным оригинала). Подобные мо- дели могут быть логическими и материальными. Подобные мате- риальные модели разделяют на аналоговые (непрерывные), циф- ровые (дискретные) и аналого-цифровые (комбинированные и гибридные) модели.
Под аналоговой моделью понимается подобная модель, кото- рая описывается уравнениями, связывающими непрерывные ве- личины. Под цифровой понимают модель, которая описывается уравнениями, связывающими дискретные величины, представ- ленные в цифровом виде. Под аналого-цифровой понимается мо- дель, которая может быть описана уравнениями, связывающими непрерывные и дискретные величины. Особое место в моделировании занимает кибернетическое мо- делирование, в котором отсутствует непосредственное подобие физических процессов, происходящих в моделях, реальным про- цессам. В этом случае стремятся отобразить лишь некоторую фун- кцию и рассматривают реальный объект как «черный ящик», име- ющий ряд входов и выходов, и моделируются некоторые связи между выходами и входами. Чаше всего при использовании ки- бернетических моделей проводят анализ поведенческой стороны объекта при различных воздействиях внешней среды. Таким обра- зом, в основе кибернетических моделей лежит отражение некото- рых информационных процессов управления, что позволяет оце- нить поведение реального объекта. Для построения имитацион- ной модели в этом случае необходимо выделить исследуемую фун- кцию реального объекта, попытаться формализовать эту функ- цию в виде некоторых операторов связи между входом и выходом и воспроизвести на имитационной модели данную функцию, при- чем на базе совершенно иных математических соотношений и, естественно, иной физической реализации процесса. 2.2. Мысленное и реальное моделирование Имеет место также и подход, в котором модели классифици- руют, исходя из наиболее существенных признаков процесса мо- делирования. Здесь можно выделить мысленное и реальное моде- лирование. Мысленное моделирование часто является единственным спосо- бом моделирования объектов, которые либо практически нереа- лизуемы в заданном интервале времени, либо существуют вне условий, возможных для их физического создания. Например, на базе мысленного моделирования проанализированы многие яв- ления микромира, которые не поддаются физическому экспери- менту. Мысленное моделирование можно разделить на наглядное и символическое. При реальном моделировании используется возможность иссле- дования различных характеристик либо на реальном объекте це- ликом, либо на его части. Такие исследования могут проводиться
как на объектах, работающих в нормальных режимах, так и при организации специальных режимов для оценки интересующих исследователя характеристик (при других значениях переменных и параметров, в другом масштабе времени и т.д.). Реальное моде- лирование является наиболее адекватным, но при этом его воз- можности с учетом особенностей реальных объектов ограничены. Например, проведение реального моделирования АСУ предпри- ятием потребует, во-первых, создания такой АСУ, а во-вторых, проведения экспериментов с управляемым объектом, т.е. пред- приятием, что в большинстве случаев невозможно. 2.2.1. Наглядное моделирование При наглядном моделировании на базе представлений о ре- альных объектах создаются различные наглядные модели, ото- бражающие процессы, протекающие в объекте. Наглядное мо- делирование делят на гипотетическое, аналоговое и макетиро- вание. Гипотетическое моделирование используется, когда знаний об объекте недостаточно для построения формальной модели, и тог- да в основу модели закладывается гипотеза, которая отражает уро- вень знаний исследователя об объекте. Аналоговое моделирование основывается на применении анало- гий различных уровней. Наивысшим уровнем аналогии является полная, имеющая место только для достаточно простых объектов. С усложнением объекта используют аналогии низших уровней, когда аналоговая модель отображает несколько или одну сторону функционирования объекта. Макетирование (мысленный макет) может применяться в слу- чаях, когда протекающие в реальном объекте процессы не подда- ются физическому моделированию, либо может предшествовать проведению других видов моделирования. 2.2.2. Символическое моделирование Символическое моделирование можно разделить на языковое и знаковое. В основе языкового моделирования лежит некоторый тезаурус (т.е. словарь), который очищен от неоднозначности — каждому слову соответствует единственное понятие. Знаковое моделирование оперирует условными обозначениями понятий. К знаковому виду моделирования можно отнести мате- матическое моделирование.
Под математическим моделированием будем понимать процесс установления соответствия данному реальному объекту некото- рого математического объекта, называемого математической мо- делью, и исследование этой модели, позволяющее получать ха- рактеристики рассматриваемого реального объекта. Вид матема- тической модели зависит как от природы реального объекта, так и от задач исследования объекта и требуемой достоверности и точности решения этой задачи. Любая математическая модель, как и всякая другая, описывает реальный объект лишь с некоторой степенью приближения к действительности. Математическое моделирование — важнейший метод совре- менного научного исследования, основной аппарат системного анализа. Математическое моделирование —- это изучение пове- дения объекта в тех или иных условиях путем решения уравне- ний его математической модели. Математическое моделирова- ние можно разделить на аналитическое, имитационное и ком- бинированное. Для аналитического моделирования характерно то, что процес- сы функционирования элементов системы записываются в виде некоторых функциональных соотношений (алгебраических, ин- тегро-дифференциальных, конечно-разностных и т.п.) или логи- ческих условий. Аналитическая модель может быть исследована следующими методами: аналитическим, когда стремятся получить в общем виде явные зависимости для искомых характеристик; численным, когда, не умея решать уравнений в общем виде, стремятся получить числовые результаты при конкретных началь- ных данных; качественным, когда, не имея решения в явном виде, можно найти некоторые свойства решения (например, оценить устойчи- вость решения). Наиболее полное исследование процесса функционирования системы можно провести, если известны явные зависимости, свя- зывающие искомые характеристики с начальными условиями, параметрами и переменными системы. Однако такие зависимости удается получить только для сравнительно простых систем. При усложнении систем исследование их аналитическим методом на- талкивается на значительные трудности, которые часто бывают непреодолимыми. Поэтому, желая использовать аналитический метод, в этом случае идут на существенное упрощение первоначальной моде- ли, чтобы иметь возможность изучить хотя бы общие свойства системы. Такое исследование на упрощенной модели аналитиче- ским методом помогает получить ориентировочные результаты для определения более точных оценок другими методами. Численный
метод позволяет исследовать по сравнению с аналитическим ме- тодом более широкий класс систем, но при этом полученные решения носят частный характер. Численный метод особенно эф- фективен при использовании электронно-вычислительных машин (ЭВМ). В отдельных случаях исследователя системы могут удовлетво- рить и те выводы, которые можно сделать при использовании качественного метода анализа математической модели. Такие ка- чественные методы широко используются, например в теории ав- томатического управления для оценки эффективности различных вариантов систем управления. В настоящее время распространены методы машинной реали- зации исследования характеристик процесса функционирования больших систем. Для реализации математической модели на ЭВМ необходимо построить соответствующий моделирующий алгоритм. При имитационном моделировании реализующий модель алго- ритм воспроизводит процесс функционирования системы во вре- мени, причем имитируются элементарные явления, составляю- щие процесс, с сохранением их логической структуры и последо- вательности протекания во времени, что позволяет по исходным данным получить сведения о состояниях процесса в определен- ные моменты времени, дающие возможность оценить характери- стики системы. Основным преимуществом имитационного моделирования по сравнению с аналитическим является возможность решения бо- лее сложных задач. Имитационные модели позволяют достаточ- но просто учитывать такие факторы, как наличие дискретных и непрерывных элементов, нелинейные характеристики элемен- тов системы, многочисленные случайные воздействия, которые часто создают трудности при аналитических исследованиях. В на- стоящее время имитационное моделирование — наиболее эффек- тивный метод исследования больших систем, а часто и един- ственный практически доступный метод получения информа- ции о поведении системы, особенно на этапе ее проектирова- ния. Если результаты, полученные при воспроизведении на ими- тационной модели процесса функционирования системы, явля- ются реализациями случайных величин и функций, то для на- хождения характеристик процесса требуется его многократное воспроизведение с последующей статистической обработкой информации. Метод имитационного моделирования позволяет решать зада- чи анализа больших систем, включая задачи оценки вариантов структуры системы, эффективности различных алгоритмов управ- ления системой, влияния изменения различных параметров си- стемы. Имитационное моделирование может быть положено так-
же в основу структурного, алгоритмического и параметрического синтеза больших систем, когда требуется создать систему с задан- ными характеристиками при определенных ограничениях, кото- рая является оптимальной по некоторым критериям оценки эф- фективности. При решении задач машинного синтеза систем на основе их имитационных моделей помимо разработки моделиру- ющих алгоритмов для анализа фиксированной системы необхо- димо также разработать алгоритмы поиска оптимального вариан- та системы. В этом случае оптимизационная задача характеризует- ся большой размерностью и наличием значительного числа ло- кальных экстремумов. Одним из наиболее перспективных методов поиска решений таких задач является генетический алгоритм. Комбинированное (аналитико-имитационное) моделирование при анализе и синтезе систем позволяет объединять достоинства ана- литического и имитационного моделирования. При построении комбинированных моделей проводится предварительная деком- позиция процесса функционирования объекта на составляющие подпроцессы. Там, где это возможно, используются аналитиче- ские модели. Для остальных подпроцессов строятся имитацион- ные модели. Такой комбинированный подход позволяет охватить качественно новые классы систем, которые не могут быть иссле- дованы с использованием только аналитического и имитацион- ного моделирования в отдельности. 2.2.3. Реальное моделирование и его виды При реальном моделировании исследования проводятся на ре- альном объекте целиком либо на его части. Реальное моделирова- ние подразделяется на натурное и физическое. Натурным моделированием называют проведение исследования на реальном объекте с последующей обработкой результатов экс- перимента на основе теории подобия. При функционировании объекта в соответствии с поставленной целью удается выявить закономерности протекания реального процесса. Надо отметить, что такие разновидности натурного эксперимента, как производ- ственный эксперимент и комплексные испытания, обладают вы- сокой степенью достоверности. С развитием техники и проникновением в глубь процессов, протекающих в реальных системах, возрастает техническая осна- щенность современного научного эксперимента. Он характеризу- ется широким использованием средств автоматизации проведе- ния, применением весьма разнообразных средств обработки ин- формации, возможностью вмешательства человека в процесс про- ведения эксперимента, и в соответствии с этим появилось новое научное направление — автоматизация научных экспериментов.
Отличие эксперимента от реального протекания процесса за- ключается в том, что в нем могут появиться отдельные критиче- ские ситуации и определяться границы устойчивости процесса. В ходе эксперимента вводятся новые факторы и возмущающие воздействия в процессе функционирования объекта. Одна из раз- новидностей эксперимента — комплексные испытания, которые также можно отнести к натурному моделированию, когда вслед- ствие повторения испытаний изделий выявляются общие законо- мерности о надежности этих изделий, о характеристиках качества и т.д. В этом случае моделирование осуществляется путем обра- ботки и обобщения сведений, проходящих в группе однородных явлений. Наряду со специально организованными испытаниями возможна реализация натурного моделирования путем обобще- ния опыта, накопленного в ходе производственного процесса, т.е. можно говорить о производственном эксперименте. Здесь на базе теории подобия обрабатывают статистический материал по производственному процессу и получают его обобщенные харак- теристики. Физическое моделирование, отличающееся от натурного тем, что исследование проводится на установках, которые сохраня- ют природу явлений и обладают физическим подобием. В про- цессе физического моделирования задаются некоторые характе- ристики внешней среды и исследуется поведение либо реально- го объекта, либо его модели при заданных или создаваемых ис- кусственно воздействиях внешней среды. Физическое моделиро- вание может протекать в реальном и нереальном (псевдореаль- ном) масштабах времени, а также может рассматриваться без учета времени. В последнем случае изучению подлежат так назы- ваемые «замороженные» процессы, которые фиксируются в не- который момент времени. Наибольшие сложность и интерес с точки зрения верности получаемых результатов представляет физическое моделирование в реальном масштабе времени. 2.3. Классификация моделей по точности По степени соответствия модели реальному объекту модели можно разделить: на состоятельные — опирающиеся на законы, характеризующие объект моделирования в области их применимости; аппроксимации — построенные на основе приближенных или эмпирических формул, характеризующих объект (их, в отличие от первых, называют несостоятельными). По степени точности решателя можно выделить следующие виды моделей: графические — их точность составляет 10...5 %;
аналоговые — точность 1 ...0,01 %; компьютерные — рассчитываемые процессором с плавающей точкой (не проявляется эффект квантования параметров) — точ- ность 0,00...01 % (в мантиссе до 20 десятичных разрядов); компьютерные — рассчитываемые процессором с фиксирован- ной точкой (проявляется эффект квантования параметров) — точ- ность 10...0,01 %. Так, геоцентрическая модель мира Птолемея — адекватная гра- фоаналитическая аппроксимация движения объектов (Солнца, планет и Луны) в неинерциальной геоцентрической системе ко- ординат, пределы погрешностей которой известны, справедли- вая в пределах Солнечной системы и несостоятельная. Модель, представленная в виде дифференциального уравне- ния или передаточной функции (см. гл. 9) аналитическая, адек- ватная по точности и состоятельная при малых воздействиях. Контрольные вопросы 1. Перечислите виды научных классификаций. 2. Что такое мысленное моделирование? Какие его типы вам извест- ны? 3. Что такое реальное моделирование? Назовите его типы. 4. Какие виды математических моделей вы знаете? 5. Как делятся модели по точности? 6. Перечислите достоинства и недостатки аналитического и имита- ционного методов моделирования.
ГЛАВА 3 ЭМПИРИЧЕСКИЕ МАТЕМАТИЧЕСКИЕ МОДЕЛИ 3.1. Область применения эмпирических моделей Эмпирический (от гр. epnapia — опыт) метод используется, когда процесс чрезвычайно сложен, недостаточно изучен теоре- тически или о его природе вообще ничего неизвестно. Этот метод позволяет получить математическое описание имеющегося объекта без исследования его внутренней структуры. Внешние связи любой системы можно представить в виде схе- мы, приведенной на рис. 1.5 в подразд. 1.1. Для создания модели используют полученные опытным путем данные, связывающие входные и выходные параметры объекта. Входные параметры можно разделить на контролируемые па- раметры и и неконтролируемые параметры (возмущения) г. Модель в виде «черного ящика» — модель объекта, созданная безотносительно внутренних свойств объекта, без учета физиче- ской сущности процессов, протекающих в нем. Данная модель от- ражает зависимость значений выходных параметров от входных. В общем виде математическое описание представляет систему урав- нений у = ^(й, г). Эти уравнения определяют зависимость выхо- да от всех входных воздействий. Но установить вид функций ¥ принципиально невозможно, ведь возмущения z нам неизвест- ны. Однако в большинстве случаев уравнения можно представить в виде у = F(u) + Ф(г). Здесь функция 'К разбита на два слагае- мых: зависимость F выхода от контролируемых параметров и погрешность, «шум» Ф. Теперь задача ставится таким образом: установить вид функции F и оценить шум Ф. Под эмпирической математической моделью будем понимать именно зависимость у = F(u). Это уравнение, устанавливающее связь между выходными и входными параметрами, называют в статистике уравнением регрессии. Задача определения функции у = F(u) по наборам входных параметров й и соответствующим им значениям выходных параметров у является задачей регрес- сионного анализа.
3.2. Общая процедура построения эмпирической модели При использовании эмпирических методов математическое описание составляется следующим образом: проводятся эксперименты по изучению объекта как «черного ящика», т.е. изучается реакция объекта на различные возмуще- ния; осуществляется статистическая обработка результатов; проводится поиск подходящей формы аппроксимации по- лученных данных в виде некоторой функциональной зависимо- сти; полученная модель анализируется. Под экспериментом понимают совокупность операций, совер- шаемых над объектом исследования с целью получить информа- цию о свойствах этого объекта. Эксперимент, в котором исследо- ватель по своему усмотрению может изменять условия его прове- дения, называется активным экспериментом. Если исследователь не может самостоятельно изменять условия проведения экспери- мента, то такой эксперимент называется пассивным. В ходе экс- периментов происходит сбор информации о поведении объекта, формируется совокупность данных «вход-выход» в виде таблицы, где каждому набору входных соответствует набор выходных вели- чин. Статистическая обработка предусматривает установление фак- та корреляции («связи») той или иной входной величины с неко- торой выходной. Кроме того, на этом этапе можно провести филь- трацию данных, исключение «выбросов» (результатов, возник- ших вследствие ошибок эксперимента) и т.д. Завершающий этап — поиск подходящей формы аппроксима- ции полученных данных. Исходными данными для этого этапа являются наборы пар значений ц -> у,, полученные в ходе экс- периментов и последующей обработки экспериментальных дан- ных. Искомая эмпирическая модель должна точно или прибли- женно следовать за этими данными (аппроксимировать их). Как правило, таких моделей может существовать достаточно много. Тогда можно дополнить задачу требованием, чтобы модель была наилучшей в том или ином смысле. Чаще всего для поиска наилучшей формы аппроксимации за- даются видом функциональной зависимости (полиномиальная, показательная, логарифмическая, тригонометрическая, комбини- рованная). Искомыми являются порядок модели и ее параметры. Например, если выбрана полиномиальная форма приближения опытных данных, то необходимо определиться с порядком поли-
нома и его коэффициентами. Если предпочтение отдано тригоно- метрической форме модели, то определяется число гармоник, их частота и амплитуда. Наиболее часто функцию F(u) представля- ют алгебраическими многочленами, осуществляя ее разложение в степенной ряд. Как правило, вначале рассматривают наиболее простые многочлены — полиномы первой степени. Для этой мо- дели отклонение опытных точек от расчетных значений сравнива- ют со случайной ошибкой эксперимента. Если обе величины од- ного порядка, то описание считают удовлетворительным. Если отклонение нельзя объяснить случайной ошибкой, то рассматри- вают более сложные многочлены. По мере увеличения порядка многочлена точность описания возрастает, но одновременно, во- первых, увеличивается требуемое число опытов для нахождения коэффициентов многочлена, а, во-вторых, усложняется трактов- ка модели. Полученная модель должна удовлетворять ряду требований (про- стота, дифференцируемость, наличие экстраполирующих свойств и т.д.). Некоторые из этих требований можно формализовать, а качество модели оценить числовым значением. В этом случае за- дача поиска наилучшей аппроксимации становится проблемой па- раметрической оптимизации. В качестве основного критерия качества эмпирической моде- ли выступает ошибка приближения. Ее стремятся минимизиро- вать в первую очередь, подбирая для этого параметры модели. 3.3. Методы получения экспериментальных данных Для создания эмпирической модели используются наборы дан- ных, получаемые в результате экспериментов или наблюдений. В ходе наблюдения (пассивного эксперимента) проводится сбор и анализ информации об объекте без специального изменения входных параметров протекающих в нем процессов. Достоинством данного метода является его низкая стоимость. Недостатком — то, что в нормальных условиях эксплуатации колебания технологи- ческого режима невелики и поэтому экспериментальные точки близки друг к другу. В этих условиях на точность описания могут сильно повлиять случайные ошибки. Активный эксперимент состоит в целенаправленном измене- нии входных параметров технологического процесса. В основе этого метода лежит теория планирования эксперимента. Основополож- никами теории планирования эксперимента являются Р.А.Фи- шер и Ф. Йетс. Далее идеи планирования эксперимента формиро- вались в трудах Дж.Бокса, Дж.Кифера, а в нашей стране — в тру- дах Г. К. Круга, Е. В. Маркова и др.
В настоящее время методы планирования эксперимента зало- жены в специализированных пакетах, широко представленных на рынке программных продуктов, например: StatGrapfics, Statistica, SPSS, SYSTAT. He обойден вниманием этот вопрос и разработчи- ками пакета MATLAB. План эксперимента — совокупность данных, определяющих число, условия и порядок проведения опытов (отдельных, само- стоятельных частей эксперимента). Планирование эксперимента — выбор плана эксперимента, удовлетворяющего заданным требо- ваниям, стратегии экспериментирования; целенаправленное уп- равление экспериментом, реализуемое в условиях неполного зна- ния механизма изучаемого явления. В процессе измерений, последующей обработки данных, а так- же формализации результатов в виде математической модели воз- никают погрешности и теряется часть информации, содержащей- ся в исходных данных. Применение методов планирования экспе- римента позволяет определить погрешность математической мо- дели и судить об адекватности модели. Если точность модели ока- зывается недостаточной, то применение методов планирова- ния эксперимента позволяет модернизировать математическую модель с проведением дополнительных опытов без потери преды- дущей информации и с минимальными затратами. Цель планирования эксперимента — нахождение таких усло- вий и правил проведения опытов, при которых удается получить надежную и достоверную информацию об объекте с наименьши- ми затратами труда. Пусть интересующее нас свойство у объекта зависит от п неза- висимых переменных иь и2, ..., ип и необходимо выяснить харак- тер этой зависимости у = F(u}y иъ ..., ип), о которой мы имеем лишь общее представление. Величина у называется откликом, а сама зависимость у = иъ ..., ип) — функция отклика. Отклик должен быть определен количественно. Однако могут встречаться и качественные признаки у. В этом случае возможно применение рангового подхода. Пример рангового подхода — оцен- ка на экзамене, когда одним числом оценивается сложный комп- лекс полученных сведений о знаниях студента. Независимые переменные w2, ..., мЛ, или факторы, также должны иметь количественную оценку. Если используются каче- ственные факторы, то каждому их уровню должно быть присвое- но какое-либо число. Важно выбирать в качестве факторов лишь независимые переменные, т.е. только те, которые можно изме- нять, не затрагивая другие факторы. Для построения эффектив- ной математической модели целесообразно провести предвари- тельный анализ значимости факторов (степени влияния на функ- цию), их ранжирование и исключить малозначащие факторы.
Диапазоны изменения факторов задают область определения у. Если принять, что каждому фактору соответствует координатная ось, то полученное пространство называется факторным простран- ством. При п = 2 область определения у представляет собой пря- моугольник, при п = 3 — параллелепипед, при п > 3 — гиперпа- раллелепипед. При выборе диапазонов изменения факторов нужно учитывать их совместимость, т.е. контролировать, чтобы в этих диапазонах любые сочетания факторов были бы реализуемы в опытах. Для каждого из факторов указывают граничные значения и, min < и, < — Ui max» ~ К 2, ..., П. Практически все современные технологические процессы яв- ляются сложными и на показатели процесса оказывает влияние большое число факторов. Имеется несколько подходов к исследо- ванию таких многофакторных систем, они реализованы в соот- ветствующих планах экспериментов. Первый, наиболее очевидный подход состоит в полном пере- боре комбинаций уровней интересующих факторов. Это полный факторный эксперимент (ПФЭ). Исследование объекта разбива- ется на серии, в каждой из которых исследуется изменение толь- ко одного параметра при фиксированных остальных. Для генера- ции плана ПФЭ можно использовать MATLAB команду fulfact. Ее синтаксис: design = fulfact(levels), где levels — вектор, каждый эле- мент которого равен количеству предполагаемых изменений со- ответствующего фактора; design — матрица плана. Например, если имеется три входных воздействия, первое из которых будет при- нимать четыре различных значения, второе — три и третье — два, то команда » D = fulfact ([4 3 2|) сгенерирует следующую матри- цу плана (см. с. 58). Каждая строка матрицы D показывает, какая комбинация зна- чений входных сигналов должна использоваться в соответству- ющем эксперименте. Часто бывает достаточно рассмотреть всего два уровня факто- ров, влияющих на ход исследуемого процесса. Так, температура проведения химического процесса может быть установлена чуть ниже или чуть выше заданного уровня, количество растворителя при производстве красителя можно немного увеличить или умень- шить и т.д. В ходе эксперимента нужно установить, влияют ли, и каким образом, эти изменения на результат производственного процесса. В этом случае можно использовать команду двухуровневого полного плана ff2n. Ее синтаксис: design = fT2n(n), где п — число факторов, design — матрица плана. При трех факторах (п = 3) ко- манда » X = fE2n(3) сгенерирует матрицу плана другого вида (см. с. 58).
1 1 1 2 1 1 3 1 1 4 1 1 1 2 1 2 2 1 3 2 1 4 2 1 1 3 1 2 3 1 3 3 1 4 3 1 1 1 2 2 1 2 3 1 2 4 1 2 I 2 2 2 2 2 3 2 2 4 2 2 1 3 2 2 3 2 3 3 2 4 3 2. ООО О О 1 О 1 О О 1 1 1 О О 1 О 1 1 1 О 1 1 1. В этой матрице «О» соответствует низкому уровню соответству- ющего входного сигнала, а «1» — высокому. Кроме того, наблю- дательный взгляд заметит, что строки матрицы X являются целы- ми числами от 0 до 2" - 1, записанными в двоичной системе счис- ления. Полный план требует весьма большого количества экспери- ментов, которое растет с числом факторов экспоненциально. На- пример, если нужно провести эксперимент с семью факторами, каждый из которых имеет два уровня, то необходимое число опы- тов равно 27 = 128. Чтобы изучить 10 факторов, потребуется уже
210 = 1 024 опыта. Поскольку для проведения каждого опыта необ- ходимо некоторое время, то на практике осуществить столь боль- шое число опытов удается не всегда. В этом случае при планировании эксперимента обычно исполь- зуют дробные планы, отбрасывающие взаимодействия высокого порядка и уделяющие наибольшее внимание главным эффектам. Так, например, если при наличии семи факторов требуется опре- делить лишь коэффициенты при самих факторах, то число неиз- вестных />0» 6|, Ь2. .... bj регрессионной модели у = £0 + Ь}щ + Ь2и2 + +... + b-ju-] и число требуемых для их определения уравнений, рав- но восьми. Если имеющаяся априорная информация свидетель- ствует, что функция отклика включает и двойные сочетания фак- торов, а также квадраты факторов, то регрессионная модель бу- дет иметь вид у = Ь^ + + />2^2 + ••• + bjU7 + + h)U22 +... + +/j|4U72 + ij5M1«2 4- Z>i6W1W3 + ••• + ^5^6W7- Даже в этом случае число неизвестных коэффициентов равно 36. Полный план с числом опытов 27 = 128 явно дает избыточную информацию. Эта избыточная информация не является бесполез- ной (она позволяет более точно определить коэффициенты). Тем не менее, взамен ПФЭ часто используют планы дробного фак- торного эксперимента (ДФЭ). План ДФЭ строится, как и план ПФЭ, но с меньшим числом факторов. Оставшиеся факторы ва- рьируются по выбранному генерирующему соотношению, напри- мер как произведение каких-либо факторов из первой группы. Для генерации полного плана эксперимента можно использо- вать MATLAB команду fracfact. Ее синтаксис: х = fracfact('gen’) Эта команда служит для генерации матрицы X плана дробно- го факторного эксперимента согласно генератору ’gen’. Значения факторов в матрице плана эксперимента х равны 1 и -1. Есте- ственно, что 1 соответствует максимальному уровню фактора, а -1 — минимальному уровню. Генератор gen' является строковой переменной, состоящей из подстрок, разделенных пробелами. Подстрока может состоять из одной и более букв латинского алфавита. В первую очередь задаются односимвольные подстро- ки, кодирующие факторы для матрицы полного факторного эк- сперимента. Эта матрица является основой дробного факторного плана. Правила определения значений остальных факторов в мат- рице дробного плана задаются в виде сочетаний символов, ко- дирующих факторы полного факторного эксперимента. Для этих факторов значения определяются как произведения значений ко- дированных переменных, соответствующих первой группе фак- торов. Например, для генератора ’gen' = ’a b ab' первые два факто-
pa: а и b, образуют матрицу полного факторного плана вида: » х = ff2n(2) О О О 1 1 О 1 1. Подстрока ab определяет значение третьего фактора как по- строчное произведение а и Ь. » х = fracfactfa b ab') -1 -1 1 -1 1 -1 1 -1 -1 1 1 1. Для факторов второй группы комбинация символов в подстроке определяет вид смешивания их главных (линейных) эффектов, т.е. в предыдущем примере главный эффект третьего фактора будет смешан с парным эффектом первых двух факторов щи2. Матрица дробного факторного плана х является частью мат- рицы полного факторного плана эксперимента, образованного всеми факторами. Число строк матрицы плана х равно 2п, где п — количество односимвольных подстрок в генераторе. Количе- ство столбцов в матрице плана должно быть равно числу под- строк в генераторе. Если использовать вариант синтаксиса функ- ции в виде [х, conf] = fracfact('gen'), то матрица conf показывает способ смешивания главных эффектов факторов и их парных вза- имодействий. Рассмотрим примеры использования функции fracfact генера- ции матрицы дробного факторного эксперимента. Пусть целью эксперимента является оценка величин главных эффектов четырех факторов на функцию отклика при проведе- нии восьми опытов. Каждый опыт проводится без повторений. Про- ведение полного факторного эксперимента потребует 24 = 16 опы- тов. Однако если на основании априорных данных предположить незначимость тройных взаимодействий, то можно оценить вели- чины главных эффектов четырех факторов в восьми опытах. Ока- зывается, что при этом получается частичная модель второго по- рядка (нельзя выявить влияние квадратов факторов xl*xl, х2*х2 и т.д. Да и факторы xi*xj иногда попарно смешиваются. Какие имен- но — отражено в матрице conf). Матрица планирования дробного факторного эксперимента х в этом случае примет вид » [х, conf] = fracfactfa b с abc')
-1 -1 -1 -1 -1-1 11 -1 1-11 -111-1 1-1-1 1 1-1 1-1 1 1-1-1 1111 conf = 'Term' 'Generator' 'Confounding' хг 'a' 'ХГ 'XT ’b' 'XT 'XT 'c' 'XT 'X4' 'abc' 'X4' ’X1*X2’ 'ab' •X1*X2 + X3*X4' X1*X3’ 'ac' •X1*X3 + X2*X4‘ ’X1*X4' 'be' ’X1*X4 + X2*X3' 'X2*X3' 'be' 'X1*X4 + X2*X3' 'X2*X4' 'ac' 'X1*X3 + X2*X4‘ 'X3*X4' 'ab' 'X1*X2 + X3*X4' Первые три столбца матрицы х представляют матрицу полного факторного эксперимента для трех факторов а, Ь, с. Четвертый столбец получен построчным перемножением значений первых трех факторов. Матрица conf показывает, что такое планирование эксперимента позволяет оценить не смешанные главные эффек- ты для всех четырех факторов. Парные взаимодействия смешаны друг с другом. Например, эффект от парного взаимодействия пер- вого и второго факторов смешан с эффектом парного взаимодей- ствия третьего и четвертого факторов: Х1*Х2 + ХЗ*Х4. Это не по- зволяет раздельно оценить их эффекты. Действительно, пусть означенные восемь экспериментов дали следующие результаты: »у=[1 2 3 1 2 3 -9 -9]’ У = 1 2 3 1 2 3 -9 -9
» xl = (ones(size(x,l),l) x (x(:,l).*x(:,2) + x(:,3).*x(:,4))/2 (x(:,l).*x(:,3) + x(:,2).*x(:,4))/2 (x(:,l).*x(:,4) + x(:,2).*x(:,3))/2] xl = 1 -1 -1 -1 -1 1 1 1 1-1-1 1 1 1-1-1 1-1 1-1 1-1 1-1 1-1 1 1 -1 -1 -1 1 1 1-1-1 1-1-1 1 I 1-1 1-1-1 1-1 1 1 1-1-1 1-1-1 11111111. Решая систему линейных алгебраических уравнений ах- у, оп- ределим коэффициенты модели а. Для решения СЛАУ в MATLAB используется оператор \ (backslash или наклонная черта влево). »а = х1\у -0,7500 -2,5000 -2,7500 0 0,2500 -3,0000 0,2500 -0,5000 Из найденных значений следует, что модель имеет вид у = -0,7500 - 2,5000*х 1 - 2,7500*х2 + 0*хЗ + 0,2500#х4 + ... Отличие от нуля последних трех коэффициентов говорит о зна- чимости влияния парных коэффициентов. Однако дальнейшее построение модели затруднено, данный ДФЭ не дает достаточно информации. В случае, если после проведения указанных восьми опытов выяснится, что суммарный эффект от взаимодействия Х1*Х2 + + ХЗ*Х4 значим, то целесообразно определить, какое парное вза- имодействие значимо: Х1*Х2 или ХЗ*Х4. Для этого ДФЭ (или дроб- ную реплику) из первых восьми опытов можно дополнить второй репликой до полного факторного эксперимента. Матрица второй реплики задается тем же генератором, но с обратным знаком для четвертого фактора:
» fracfactfa b c -abc’) ans = - I -I -1 I - 1 -I 1 -I - 1 1 -I -1 -1111 1 -1 -1 -1 1-111 11-11 111-1. С точки зрения линейной алгебры — это дополнение числа уравнений системы линейных алгебраических уравнений до числа неизвестных. Рассмотрим еще один пример. Пусть необходимо оценить ве- личины линейных эффектов восьми факторов. Поскольку в боль- шинстве случаев парные эффекты взаимодействия больше эф- фектов взаимодействия высших порядков, то необходимо так со- ставить дробную реплику, чтобы линейные эффекты не были сме- шаны с ними при минимальном количестве опытов. Проведение полного факторного эксперимента потребовало бы 28 = 256 опы- тов. Использование дробной реплики полного факторного экспе- римента позволяет при 16 опытах получить оценки главных эф- фектов 8 факторов, не смешанных с парными взаимодействиями. Реплику 16/256 для названных условий можно получить с исполь- зованием следующего генератора » [х, conf] = fracfactfa bed abc acd abd bed') - 1 -1 -1 -1 -1 -1 -1 -1 - 1-1-1 1-1 1 I 1 - 1-1 1-1 1 1-1 1 - 1-1 1 1 1-1 1-1 - 1 1-1-1 1-1 1 1 - 1 1-1 1 1 1-1-1 - 1 1 1-1-1 1 1-1 -1111-1-1-11 1 -1 -1 -1 1 1 1-1 1-1-1 1 1-1-1 1 1-1 1 -1 -1 -1 1 1 1-1 1 1-1 1-1-1 1 1 -1 -1 -1 1-1 1 1 1-1 1 -1 -l 1-1 1 1 1-1 1 -1 -1 -1 11111111.
conf = Term Generator Confounding XI а XI Х2 b X2 ХЗ с X3 Х4 d X4 Х5 abc X5 Х6 acd X6 Х7 abd X7 Х8 bed X8 Х1*Х2 ab X1*X2 + X3*X5 + X4*X7 + X6*X8 Х1*ХЗ ac X1*X3 + X2*X5 + X4*X6 + X7*X8 Х1*Х4 ad X1*X4 + X2*X7 + X3*X6 + X5*X8 Х1*Х5 be X1*X5 + X2*X3 + X4*X8 + X6*X7 Х1‘Х6 cd X1*X6 + X2*X8 + X3*X4 + X5*X7 Х1*Х7 bd X1*X7 + X2*X4 + X3*X8 + X5*X6 Х1*Х8 abed X1*X8 + X2*X6 + X3*X7 + X4*X5 Х2*ХЗ be X1*X5 + X2*X3 + X4*X8 + X6*X7 Х2*Х4 bd X1*X7 + X2*X4 + X3*X8 + X5*X6 Х2*Х5 ac X1*X3 + X2*X5 + X4*X6 + X7*X8 Х2*Х6 abed X1*X8 + X2*X6 + X3*X7 + X4*X5 Х2*Х7 ad X1*X4 + X2*X7 + X3*X6 + X5*X8 Х2*Х8 cd X1*X6 + X2*X8 + X3*X4 + X5*X7 ХЗ*Х4 cd X1*X6 + X2*X8 + X3*X4 + X5*X7 ХЗ*Х5 ab X1*X2 + X3*X5 + X4*X7 + X6*X8 ХЗ*Х6 ad X1*X4 + X2*X7 + X3*X6 + X5*X8 ХЗ*Х7 abed X1*X8 + X2*X6 + X3*X7 + X4*X5 ХЗ*Х8 bd X1*X7 + X2*X4 + X3*X8 + X5*X6 Х4*Х5 abed X1*X8 + X2*X6 + X3*X7 + X4*X5 Х4*Х6 ac X1*X3 + X2*X5 + X4*X6 + X7*X8 Х4*Х7 ab X1*X2 + X3*X5 + X4*X7 + X6*X8 Х4*Х8 be X1*X5 + X2*X3 + X4*X8 + X6*X7 Х5*Х6 bd X1*X7 + X2*X4 + X3*X8 + X5*X6 Х5*Х7 cd X1*X6 + X2*X8 + X3*X4 + X5‘X7 Х5*Х8 ad X1*X4 + X2*X7 + X3*X6 + X5*X8 Х6*Х7 be X1*X5 + X2*X3 + X4*X8 + X6*X7 Х6*Х8 ab XI*X2 + X3*X5 + X4*X7 + X6*X8 Х7*Х8 ac X1*X3 + X2*X5 + X4*X6 + X7*X8. Матрица conf показывает, что линейные эффекты восьми фак- торов не смешаны с парными взаимодействиями. Парные взаи- модействия смешаны друг с другом. Применение других генераторов не всегда позволяет достичь такого смешивания, например
» [x, conf] = fracfactfa b c d ab cd ad be’) x= -1 -1 • -1 -1 1 1 1 1 -1 -1 -1 1 1 -1 -1 1 -1 -1 1 -1 1 -1 1 -1 -1 -1 1 1 1 1 -1 -1 -1 1 -1 -1 -1 1 1 -1 -1 1 -1 1 -1 -1 -1 -1 -1 1 1 -1 -1 -1 1 1 -1 1 1 1 -1 1 -1 1 1 -1 • -1 -1 -1 1 -1 1 1 -1 -1 1 -1 -1 1 1 1 -1 1 -1 -1 -1 -1 -1 1 -1 1 1 -1 1 1 -1 1 1 - -1 -1 1 1 -1 -1 1 1 -1 1 1 -1 1 -1 1 1 1 -1 1 -1 -1 1 1 1 1 1 1 1 1 1 conf = 'Term' ’Generator’ 'Confounding' 'Xl' ’a’ 'Xl + X2*X5 + X4*X7' 'X2' 'b' 'X2 + X1*X5 + X3*X8' 'X3' 'c' 'X3 + X2*X8 + X4*X6' 'X4' 'd' 'X4 + X1*X7 + X3*X6' 'X5' ’ab’ 'X5 + X1*X2' 'X6' 'cd' 'X6 + X3*X4‘ 'XT 'ad' 'X7 + X1*X4’ 'X8' ’be’ 'X8 + X2*X3' X1*X2‘ 'ab' 'X5 + X1*X2' 'X1*X3' ’ac’ 'X1*X3 + X5*X8 + X6*X7' 'X1*X4' 'ad' 'X7 + X1*X4‘ 'X1*X5' 'b' 'X2 + X1*X5 + X3*X8‘ 'X1*X6' 'acd' 'X1*X6 + X3*X7' 'X1*X7' 'd' 'X4 + X1*X7 + X3*X6' 'X1*X8' 'abc' 'X1*X8 + X3*X5' 'X2*X3' 'be' 'X8 + X2*X3' 'X2*X4' *bd' 'X2*X4 + X5*X7 + X6*X8' 'X2*X5' *a' 'Xl + X2*X5 + X4*X7' 'X2*X6' 'bed' 'X2*X6 + X4*X8' 'X2*X7' *abd’ 'X2*X7 + X4*X5' 'X2*X8' *c' 'X3 + X2*X8 + X4*X6' 'X3*X4' *cd’ 'X6 + X3*X4' 'X3*X5' ’abc' 'X1*X8 + X3*X5' 'X3*X6' *d' 'X4 + X1*X7 + X3*X6' 'X3*X7' 'acd' 'X1*X6 + X3*X7’ 3 Морозов 65
’ХЗ*Х8’ Ъ' 'Х2 + Х1*Х5 + ХЗ*Х8' ’Х4*Х5' 'abd' 'Х2*Х7 + Х4*Х5' 'Х4*Х6' с' 'ХЗ + Х2*Х8 + Х4*Х6' 'Х4*Х7' ’а’ 'XI + Х2*Х5 + Х4*Х7' 'Х4*Х8' ’bed' 'Х2*Х6 + Х4*Х8‘ 'Х5*Х6' ’abed’ ’Х5*Х6 + Х7*Х8‘ 'Х5*Х7' 'bd' 'Х2*Х4 + Х5*Х7 + Х6*Х8‘ 'Х5*Х8' ’ас' 'Х1*ХЗ + Х5*Х8 + Х6*Х7' 'Х6*Х7' ’ас' 'Х1*ХЗ + Х5*Х8 + Х6*Х7' 'Х6*Х8' 'bd' 'Х2*Х4 + Х5*Х7 + Х6*Х8' 'Х7*Х8' 'abed' 'Х5*Х6 + Х7*Х8'. Как следует из анализа матрицы conf, использование генера- тора 'a b с d ab cd ad be’ приводит к получению главных эффектов, смешанных с парными взаимодействиями. Достоинством подхода ПФЭ является его наглядность и про- стота интерпретации получаемых результатов. Подход ДФЭ значи- тельно эффективнее — при том же объеме экспериментальных исследований и той же точности опытов получается существенно большая точность результатов. В любом случае активный эксперимент позволяет за счет це- ленаправленного изменения входных параметров получать необ- ходимый объем информации при существенно меньшем числе опытов, чем пассивный эксперимент. 3.4. Критерии точности эмпирических моделей Отложив изучение вопросов статистической обработки резуль- татов эксперимента и поиска подходящей формы аппроксимации полученных данных до следующей главы, рассмотрим вначале су- ществующие способы оценки точности модели. Известно, что расстояние между двумя числами (или изобра- жающими их точками на числовой оси) может быть определено как абсолютная величина разности этих чисел. Аналогично в ма- тематике вводится понятие расстояния между двумя векторами, матрицами, функциями. Только вместо термина «абсолютная ве- личина» используется более общее понятие «норма». Норма (от лат. norma — правило, образец) — обобщение поня- тия абсолютной величины числа на иные математические объек- ты — векторы, матрицы, функции. Подобно тому, как абсолют- ная величина числа выражает расстояние от изображающей точ- ки до нулевой точки числовой оси, нормой ||х|| и-мерного векто- ра х = [хь х2,..., х„] будет число, выражающее его расстояние до
начала координат (нулевого вектора). Норму вектора можно ввес- ти различными способами. Норма, вычисляемая по формуле называется эвклидовой. Эвклидова норма явля- ется математической формализацией естественного понятия рас- стояния в случае «-мерного пространства. Обобщением эвклидо- вой нормы служит норма л I1/"1 £|х,|'я , которая при m оо /=| приобретает следующий вид: ||х||_ = max|х,|. Аналогично нормой ||/(х)|| некоторой функции будет число, выражающее ее расстоя- ние до нулевой функции. Используя понятие «норма», можно вычислить расстояние меж- ду двумя векторами или функциями как норму их разности. Сте- пень «близости» векторов или функций можно определить по тому, насколько норма их разности близка к нулю. Причем в зависимо- сти от того, по какому правилу будет производиться вычисление нормы, можно говорить либо об отклонении в среднем, либо о максимальном отклонении. Выполним следующую последователь- ность команд: х = 0:.001:pi/2; yl = sin(x); у2 = yl + 0.02; у2(30) = 1; уЗ = x/(pi/2); plot(x,y 1-k* ,х,у2 ,'-k*,x,y3 ,*-.k*) h = Iegend(*yr,’y2’,’y3*,3); Результатом этого будут представленные на рис. 3.1 графики решетчатых функций у =/(х), у = /?(х) и у = /3(х), х = [0, 0.05, 0.1, 0.15, ..., 1.55]. График функции у = /2(*) везде, за исключением единственной точки, практически совпадает с графиком функ- ции у =/(х). Но в этой единственной точке расхождение функций велико. Наоборот, график функции у = /3(х) нигде не совпадает с графиком функции у =/j(x), но эти отклонения не столь суще- ственны, как у функции у = У^(х). Поэтому однозначно сказать, какая из двух функций, у = f2(x) или у = /3(х), ближе к функции у =/(х), нельзя. Функция у = f2(x) ближе к у = /(х) в среднем, максимальное же отклонение от функции у =/(х) меньше у функ- ции .у =/3(х). Из двух эмпирических моделей более точной считают ту, нор- ма отклонения которой от результатов эксперимента меньше. В аб-
У 1,2 Рис. 3.1. Графики функций^ =/|(х),у =/2(х) иу = /3(х) солютном большинстве случаев речь идет об отклонении в сред- нем, поэтому в большинстве математических пакетов реализова- ны процедуры построения регрессионных моделей методом наи- меньших квадратов. В тех редких ситуациях, когда необходимо найти модель, оп- тимальную по минимаксному критерию (т.е. обеспечивающую ми- нимальное по норме £* отклонение от опытных данных), соот- ветствующую задачу приходится решать самостоятельно. Эта зада- ча в вычислительном плане намного труднее, для ее решения ча- сто приходится использовать нестандартные методы. 3.5. Вычисление нормы вектора в пакете MATLAB Команда norm пакета MATLAB реализует вычисление нормы вектора или матрицы. Если А — вектор, А = (аь аъ ..., а„), то команда » попп(А,р) возвращает в зависимости от величины р различные варианты нормы. Команда погт(А,р) возвращает /=1 < р < оо. Команда погт(А) эквивалентна команде погт(А,2), это — эвклидова или «естественная» норма вектора. Команда norm(A,in0 возвращает тах(|а,|). Наконец, команда погт(Л,-/и/) возвращает гпт(Ы). Рассчитаем отклонения функций у = f2(x) и у = f3(x) от функции у =/](х).
» L2_yl_y2 = norm(yl-y2) L2_yl_y2 = 1,2533 » L2_yl_y3 = norm(yl-y3) L2_yl_y3 = 5.9797 » Linf_yl_y2 = norm(yl-y2,inf) Linf_yl_y2 = 0.9710 » Linf_yl_y3 = norm(yl-y3,inf) Linf_yl_y3 = 0.2105. Эти результаты подтверждают, что функция у =^(х) ближе к У = f\(x) в среднем, максимальное же отклонение от функции У = /(х) меньше у функции у =/^(х). Подавляющее большинство программных средств построе- ния регрессионных моделей ориентировано на поиск наилуч- ших в среднем моделей, что не позволяет найти наилучшее при- ближение по норме L°°. При необходимости построения наи- лучшего равномерного приближения нужно самостоятельно организовать процедуру решения соответствующей оптимиза- ционной задачи. ции Рис. 3.2. Наилучшее равномерное приближение кусочно-линейной функ- 1 - х,х € [0,1] х - 1,х 6 [1,2] параболой у2 = 1,0867 -1,9102х + 0,9542х2
Рис. 3.3. Ошибка наилучшего равномерного приближения кусочно-линей- 1 -х,х е [0,1] параболой у2 = 1х - 1,х € [1,2] 1,0867 -1,9102х 4-0,9542х2 ной функции У1 = Рис. 3.4. Наилучшее средне- квадратичное приближение кусочно-линейной функции 1 - х, х е [0,1| х-1,хе[1,2] парабо- лой у2 =0,91627-1,8325x4- +1,1078х2 У 0,1 0,05 0 -0,05 -0,1 -0,15 -0,2 Рис. 3.5. Ошибка наилучшего среднеквадратичного приближения кусочно- линейной функции я = 4-1,1078х2 0,2 0,4 0,6 0,8 1,0 1,2 1,4 1,6 1,8 х 1—х, хе[0,1] параболой у2 = 0,91627 - 1,8325х + х- 1,хе[1,2]
Пусть требуется кусочно-линейную функцию У\ = 1 - X, X € [0,1] X -1, X G [1,2] аппроксимировать параболой. Наилучшее равномерное прибли- жение дает парабола у2 = 1,0867 - 1,9102х + 0,9542х2. Максимальное отклонение -у2||г ~ 0,1312, оно достигает- ся в точках х « 0,5; х = 1; х « 1,5, которые называются точками че- бышевского альтернанса. Знак максимального отклонения чере- дуется. Отклонение по норме L2 для этой пары функций равно 0,5685 (рис. 3.2, 3.3). Наилучшее среднеквадратичное приближение будет обеспечи- вать парабола у2 = 0,91627 - 1,8325х + 1,1078л2, отклонение по норме L2 для этой пары функций равно 0,4760. Максимальное отклонение при этом -y2|L- =0,1916 (рис. 3.4, 3.5). 3.6. Визуальная оценка качества модели При построении аппроксимирующих моделей довольно часто встречается ситуация, когда на исходные данные наложены шумы. Эти ошибки, как правило, носят случайный характер. Оценить качество моделей в этом случае помогает визуальная экспертиза. Она позволяет обозревать сразу весь набор данных, тогда как норма «сжимает» информацию о расхождении между фактическими дан- ными и моделью в единственное число. На практике для опреде- ления качества моделей должны использоваться оба подхода, они удачно дополняют друг друга. Входе визуальной оценки качества модели рассматривается график ошибки модели. Эта ошибка вычисляется как разность Рис. 3.6. Модель в виде полинома первой степени и ее отклонения
Рис. 3.7. Модель в виде полинома вто- рой степени и ее отклонения между фактическими данными и данными, предсказанными при использовании модели. Если найденная модель верна, то эта разность аппроксимирует случайные ошибки. Поэтому, если отклонения ведут себя беспо- рядочным образом, это предполагает, что модель соответствует данным. Однако если отклонения носят систематический харак- тер, это признак того, что модель плохо соответствует данным. Графики отклонений экспериментального набора данных и наи- лучшей среднеквадратичной полиномиальной модели первой сте- пени показаны на рис. 3.6. Отклонения беспорядочно рассеяны относительно нулевой оси, что косвенно указывает на хорошее качество модели. Для сравнения на рис. 3.7 показаны графики отклонения наи- лучшего в среднем полинома второй степени от эксперименталь- ных данных. Отклонения носят систематический характер и поло- жительны для большей части диапазона изменения данных. Это указывает на то, что такая модель является не слишком удачным вариантом приближения данных. 3.7. Достоинства и недостатки эмпирического моделирования Экспериментальные методы моделирования имеют как досто- инства, так и недостатки. К достоинствам можно отнести просто- ту самих моделей и доступность их получения, в том числе при отсутствии теории процесса. К недостаткам — невозможность при- менения модели для режимов, отличных от тех, для которых про- водились измерения, невозможность применения модели при пе- реходе к другим установкам, невозможность экстраполяции ре- зультатов.
Эмпирические методы полезны и применимы для изучения сложных систем, если их структура не изменяется во времени, теория процесса неизвестна и(или) когда необходимо быстро получить модель без исследования процесса. Контрольные вопросы 1. Назовите область применения эмпирических моделей. 2. Какова последовательность этапов построения эмпирической мо- дели? Каково содержание каждого из этапов? 3. Перечислите основные методы получения экспериментальных дан- ных. 4. Что такое полный факторный эксперимент? Как получить план ПФЭ? 5. Что такое дробный факторный эксперимент? Как получить план ДФЭ? 6. Назовите критерии качества эмпирической модели. 7. Перечислите основные методы оценки качества эмпирической модели. 8. Как осуществляется визуальная оценка качества модели? 9. Расскажите о достоинствах и недостатках эмпирического метода мо- делирования.
ГЛАВА 4 ПОСТРОЕНИЕ ЭМПИРИЧЕСКИХ МОДЕЛЕЙ С ПРИМЕНЕНИЕМ ПАКЕТА MATLAB 4.1. Полиномиальная регрессия После того, как проведены наблюдения или эксперименты по изучению объекта — «черного ящика», в руках исследователя ока- зывается информация о реакциях объекта на различные возмуще- ния. Далее необходимо провести статистическую обработку ре- зультатов, поиск подходящей формы аппроксимации получен- ных данных в виде некоторой функциональной зависимости и анализ полученной модели. Использование пакета MATLAB существенно упрощает рас- четную часть процедуры построения эмпирических моделей, по- зволяя всецело сосредоточиться на содержательной стороне ре- шаемой задачи. Рассмотрим следующий пример. Пусть измерялось количество вещества у, произведенного в химическом реакторе за единицу времени, при изменении в некотором диапазоне зна- чений количества катализатора х. Было произведено шесть заме- ров. Получены результаты, отображенные в табл. 4.1. Считая, что в этом процессе существует связь количества про- изведенной продукции с количеством внесенного катализатора, построим математическую модель реакции в виде зависимости у отх. Введем исходные данные » х = [0 0.3 0.8 1.1 1.6 2.3]’; » у = [0.5 0.82 1.14 1.25 1.35 1.40]’; Прежде чем заниматься построением модели, необходимо убе- диться, что между входом х и выходом у действительно имеется Таблица 4.1 / 1 2 3 4 5 6 0 0,3 0,8 1,1 1,6 2,3 У/ 0,50 0,82 1,14 1,25 1,35 1,40
взаимосвязь, т.е. выбранная нами в качестве входной величина реально оказывает влияние на интересующую нас выходную ве- личину. Взаимосвязь некоторых зависимостей, представленных данными (векторами или матрицами), называется корреляцией. Общепринятой мерой этой связи является коэффициент корре- ляции. Его близость к единице указывает на высокую степень та- кой зависимости. Выясним, имеется ли зависимость между пере- менными хи у. » С = corrcoef(x,y) С = 1.0000 0.9080 0.9080 1.0000. Диагональные элементы С(/, /) представляют дисперсии для столбцов. Не лежащие на главной диагонали элементы C(i,j) пред- ставляют ковариации столбцов i и j. В данном случае зависимость является сильной, наше предположение о влиянии х на у под- твердилось. Найдем теперь функцию Fh описывающую отношение между переменными. Для ее определения имеется шесть уравнений, .и = Л(^); Уг = Л(х2); (4.1) Уб = ^1 (*<>)• Одним из вариантов решения задачи нахождения функции F} является построение интерполяционного многочлена — полино- ма степени на единицу меньшей, чем количество эксперимен- тальных точек. Задаваемая этим полиномом кривая проходит че- рез все точки, которые представляют исходные данные. В рассмат- риваемом случае это будет полином пятой степени у = а0 + ахх + + а2х^ + ар? + ар? + а^. Шесть его коэффициентов а0, аь а2, а3, а4, а5 однозначно определяются из системы Ц) + Я| %! + а2*12 + Яз*|3 + а4х14 + ^5Х|5 = Я*]); А, + а,х2 + а2х22 + а3х23 + д4х24 + = у(х2)\ ас + <31 х3 + д2х32 + а3х33 + д4х34 + = j»(x3); до + + д2х42 + д3х43 + д4х44 + д5х45 = у(х4); ао + д,х5 + д2х52 + д3х53 + а4х54 + Д5Х55 = у(х5); До + OfXf, + Д2Х62 + Д3Х<;3 + Д4Х64 + O^Xf,5 = _И(х6), являющейся системой линейных алгебраических уравнений (СЛАУ).
У 1,4 1,3 1,2 1,1 1,0 0,9 0,8 0,7 0,6 0,5 Рис. 4.2. График интерполяцион- ного многочлена пятой степени Рис. 4.1. График зависимости коли- чества произведенного вещества у от количества катализатора х Сформируем и решим эту СЛАУ » X = [ones(size(x)) х х.А2 х.А3 х.А4 х.А5] Х = 1.0000 0 0 0 0 0 1.0000 0.3000 0.0900 0.0270 0.0081 0.0024 1.0000 0.8000 0.6400 0.5120 0.4096 0.3277 1.0000 1.1000 1.2100 1.3310 1.4641 1.6105 1.0000 1.6000 2.5600 4.0960 6.5536 10.4858 1.0000 2.3000 5.2900 12.1670 27.9841 64.3634 »а = Х\у а= 0.5000 1.2853 -0.8206 0.3317 -0.0898 0.0118. Таким образом, найденная модель имеет вид F{(x) = 0,5 + 1,2853л — 08206л2 + 0,3317л3 - 0,0898л4 + 0,0118л5. Построим график зависимости количества произведенного ве- щества у от количества катализатора л » plot(x,y,'*k’); axis([0 3 0.5 1.5]). Этот график представлен на рис. 4.1. Добавим график интерполяционного многочлена. » hold on » хх = (0:0.1:3)';
» Y = [ones(size(xx)) xx хх.л2 хх.л3 хх.л4 хх.л5]*а; » plot(xx,Y,'-k’). Действительно, полученная кривая интерполяционного мно- гочлена (рис. 4.2) проходит через все экспериментальные точки. Однако в случае, когда количество экспериментов велико, по- рядок многочлена, а значит и сложность эмпирической модели, оказываются чрезмерно высокими. Кроме того, исходные дан- ные часто бывают «зашумлены» вследствие погрешностей экс- перимента. При этом требование, чтобы интерполяционный по- лином проходил через все заданные точки, оказывается слиш- ком обременительным. Искусственно добавим «шум» в наши дан- ные. » у = у 4- 0.1*(rand(size(y))-0.5*ones(size(y))) У = 0.4515 0.8447 1.1345 1.2932 1.3466 1.3919. Построим график «зашумленного» эксперимента (рис. 4.3) » plot(x,y,'*k’); На первый взгляд расположение точек не слишком измени- лось. Определим вновь коэффициенты полинома. » а = Х\у а= 0.4515 2.1491 -3.9659 4.5928 -2.4390 0.4560. Построим график интерполяционного многочлена (рис. 4.4). Теперь кривая, следуя за экспериментально полученными дан- ными, неверно интерпретирует их поведение (провал в районе х ~ 2,2). Убедимся теперь, что отмена требования i = 1, 2, ..., 6 не только упрощает модель, но нередко и улучшает ее свойства. Исходя из вида зависимости, можно предположить, что дан- ные могут быть приближены параболой, т.е. полиномиальной функцией вида у = aQ + а}х + а-рё. Нам неизвестны коэффициенты
У 1,0 0,5 Рис. 4.3. График зависимости коли- чества произведенного вещества у от количества катализатора х («за- шумленный» эксперимент) 0 0,5 1,0 1,5 2,0 2,5 х Рис. 4.4. График интерполяционно- го многочлена пятой степени («за- шумленный» эксперимент) модели а0, а\ и а> Вновь используем для определения параметров системы все экспериментальные данные X*i) = а0 + atXi + а^12; У(х2) = а0 + atx2 + а2х22; у(х6) = а0 + + а2х62. Теперь число неизвестных (которых стало три) меньше числа уравнений (их шесть). Такая система называется переопределен- ной (построение эмпирических моделей довольно часто приводит к переопределенным системам уравнений). Переопределенные си- стемы за редким исключением не имеют точного решения. При- ближенное решение позволит найти так называемую регрессион- ную модель. В отличие от интерполяции при регрессии найденная функция не дает точного значения ординат в узловых точках — она просто минимизирует погрешность вычислений в этих точках. Для нас это означает, что график функции может проходить вблизи узловых точек. Неизвестные параметры регрессионной модели можно вычислить методом наименьших квадратов, минимизируя сумму квадратов отклонений экспериментальных данных от вы- численных по модели. Вновь, используя оператор \ (backslash или наклонная черта влево), можно легко найти неизвестные1. Сфор- мируем матрицу коэффициентов системы 1 Оператор решения СЛАУ \ системы MATLAB можно использовать для ре- шения переопределенных или недоопределенных СЛАУ, в этом случае прибли- женное решение ищется методом наименьших квадратов.
» Xi |т<Мшеи)> ж а.*2| X • IWDD 0 0 1ОТ» 030» 0.09СЮ 1 СО» оюх» 1 СО» LIOOO и ню 1 LIM 1 ГОХ* гзде 1 сша 23000 $.ЖИ Решим систем! »а* Х\у а • 05318 09191 -Ф.2МТ. г Рис. 4Л I »<TT^<>xtioij*Hz- к» иныичжемж саепеш 7 ДНЯМ ll6fMOM, ЖЖ1ШЛа |<1 prWMMOCCl MtLlClb имеет К» -I F• • 0,$31К ♦ 0.9191а - ОДЛИг1. ПрнжленнмВ грефна <рис 4 5| гм>- 1ва.игт ииггж1м«|] ткмгтъ огеипсиж ресметнмя жммыж от мсс- tKfWMC нтжлъмых ИДГНПННЫЙ fWTVWbTWT МПЖГТ бЫП ПЛЖУЧГН Г<5ТИЫ спогпЛоы. 1 именно м счет нспажыомнми GUI (GravbKal 19ег Iwertice — Грэфичесии* Интерфейс Пагаэомтегя) Basic Fining пакета Рас, 4.4. Пестреете •с*м1юм>с,ика «им гкшсая GL1 Ванс Пп>м ^аагтэ МАП АВ
MATLAB. Вновь построим график экспериментальной зависимо- сти. Далее выберем в графическом окне команду Tools > Basic Fitting. В раскрывшемся окне отметим требуемый порядок полинома (quadratic) и получим графики интерполяционного многочлена второй степени и ошибки приближения (рис. 4.6). Из этих графи- ков следует, что полином второго порядка аппроксимирует дан- ные с некоторой погрешностью. Для снижения ошибки можно увеличить порядок полинома или использовать другой набор ба- зисных функций (приближать экспериментальные данные не сте- пенным рядом, а, например, показательным или тригонометри- ческим). 4.2. Линейная по параметрам регрессия Рассмотрим линейную относительно неизвестных параметров показательную модель следующего вида: у(х) = а0 + ахе~х + а2хе~х. Несмотря на использование трансцендентной функции, данная модель остается линейной относительно неизвестных коэффици- ентов aQ, и а2- Следовательно, в вычислительном плане проце- дура построения модели не стала сложнее. Неизвестные коэффициенты вычислим, используя метод наи- меньших квадратов. Для этого создадим и решим систему уравне- ний, формируя матрицу X и используя оператор \ (backslash). » X = [ones(size(x)) ехр(-х) x.*exp(-x)J; » а = Х\у 1.3974 -0.8988 0.4097. у 1,4 Рис. 4.7. График показательной мо- дели вида у(х) = 1,3974 - 0,8988е-х + +0,4097хе~*
Следовательно, модель имеет вид у(х) = 1,3974 - 0,8988е-х + + 0,4097хе"Л. Оценим качество модели визуально по графику (рис. 4.7). В данном случае показательная модель оказалась точ- нее, чем полиномиальная модель второго порядка. 4.3. Многомерная регрессия Если у — функция более чем одной независимой переменной, матричные уравнения, которые выражают отношение между пе- ременными, могут быть расширены, чтобы учесть дополнитель- ные данные. Предположим, что измерялось количество у произведенного вещества для нескольких значений параметров процесса X! и х2. Наблюдения выглядят следующим образом » х1 = [0.2 0.5 0.6 0.8 1.0 1.1 » х2 = [0.1 0.3 0.4 0.9 1.1 1.4]'; » у = [0.17 0.26 0.28 0.23 0.27 0.24]'; Многомерная регрессионная модель этой системы в простей- шем случае полинома первой степени будет иметь вид у = а0 + + Д|Х| + а2х2. Неизвестные коэффициенты а0, ai и а2 по-прежнему определяются методом наименьших квадратов. Создадим систему уравнений, формируя регрессионную матрицу X, и решим ее от- носительно коэффициентов ах и аъ используя оператор \ (backslash). » xl = [0.2 0.5 0.6 0.8 1.0 1.1]'; » х2 = [0.1 0.3 0.4 0.9 1.1 1.4]'; » у = [0.17 0.26 0.28 0.23 0.27 0.24]'; » X = [ones(size(xl)) xl х2]; » а = Х\у а= 0.1018 0.4844 -0.2847. Это значит, что линейная модель имеет вид у = 0,1018 + + 0,4844Х| - 0,2847х2. Построим трехмерный график модели » [XI,Yl] = meshgrid(0:0.1:1.5); » ZI = а(1) + а(2)*Х1 + a(3)*Yl; » mesh(Xl,YI,Zl) » hold on » plot3(xl,x2,y,'ok’).
Рис. 4.8. График многомерной регрессионной модели Из графика (рис. 4.8) видно, что все экспериментальные точ- ки лежат в непосредственной близости от найденной нами плос- кости. Проверим модель, вычислив максимум модуля отклонения вы- численных данных от эксперимента » Y = Х*а; » MaxErr = max(abs(Y-y)) МахЕгг = 0.0038. Такую максимальную ошибку можно считать удовлетворитель- ной. 4.4. Построение регрессионных моделей в Curve Fitting Toolbox 4.4.1. Пример использования Basic Fitting и Curve Fitting Toolbox Зависимость между диаметрами и высотами стволов северной сосны согласно [6] имеет вид, представленный на рис. 4.9 55 50 45 40 35 30 25 20 15 6 18 20 22 24 26 28 30 Рис. 4.9. Зависимость между диамет- рами и высотами стволов северной сосны
»t = 17:30; » у = [18.5 18.6 17.7 20.0 22.9 25.0 27.2 30.1 32.7 38.3 40.0 41.8 49.5 43.5]; » plot(t,y,'*k’) » axis([ 16 31 15 55]) » C = corrcoef(t,y) C = 1.0000 0.9718 0.9718 1.0000. Коэффициент корреляции близок к 1, что свидетельствует о высокой степени зависимости между высотой и диаметром ство- ла сосны. Попытка найти функцию, описывающую отношения между переменными, средствами графического интерфейса Basic Fitting дает регрессионную модель пятого порядка, показанную на рис. 4.10. Обратите внимание на низкие экстраполирующие свойства ап- проксимации, при использовании найденной функциональной зависимости за пределами диапазона [17, 30] результат противо- речит здравому смыслу. Причина в том, что на исследуемую зави- симость наложились случайные факторы, данные «зашумлены». Желательно произвести фильтрацию данных. Для осуществления этой процедуры можно порекомендовать Curve Fitting Toolbox, комплект инструментов для поиска по экс- периментальным данным подходящих зависимостей. Этот тулбокс позволяет производить параметрическую и непа- раметрическую интерполяцию, предварительное сглаживание дан- ных, включая различные виды фильтрации и исключение неко- у=-0,0014х5+0,16х4-7,Зх3+ 1,7е+ +0,02х2- 1,9 е+0,03х+ 8,5е+0,03 16 18 20 22 24 26 28 30 Residuals J----------1----------1---------1----------1---------1__________L 16 18 20 22 24 26 28 30 Рис. 4.10. Полиномиальная модель зависимости высоты ствола северной сосны от диаметра в GUI Basic Fitting пакета MATLAB
5=J 2bJ Г* 4 11 ЯЖМШ ммпггмнтж Smcct торы* ившп Нилсрые wenun и1Хдижлйм<1ь hi-ж ihjm« ггльниЛ л uuWjkmI, секцжжмрсаммяе длины* (если ршнчмыс чмстж «- бс^а .tiHHNi шнкмваютгя (wnwwwww мпдгламМ, Нигн модно лнгжо «▼мтетожтъ яппфмфмм'мскос. гттпеинпг и году поооб Рас. 4 13 И с манне < • и <лфа.мь Гоаавммв РН 1>нны» и г>а<мш пааямомвшьной аемсли lined* muiellW Р»с. 412. Нк«амме I • I и пхжвм«ы« РН <*»НЫ< М
ные преобразования данных (за счет этого нелинейные модели могут быть линеаризованы). Применим входящий в состав Curve Fitting Toolbox графиче- ский интерфейс пользователя GUI cftool. Вначале отфильтруем данные методом Савицкого — Голея (Savitzky — Golay), восполь- зовавшись инструментом Smooth — Сглаживание (рис. 4.11). Ре- зультаты работы этого инструмента представлены на рис. 4.12. Да- лее при помощи GUI cftool найдем регрессионную модель fitted- model 1. Результаты работы GUI cftool выдаются в виде графика (рис. 4.13) и следующего сообщения. fittedmodell = Linear model Poly5: fittedmodell (х) = pl*xA5 + р2*хл4 + рЗ*хлЗ + р4*хл2 + р5*х + рб Coefficients (with 95 % confidence bounds): pl = 0.0001675 (-0.0001085, 0.0004434) p2 = -0.02105 (-0.05349, 0.01139) p3 = 1.028 (-0.484, 2.54) p4 = -24.34 (-59.27, 10.58) p5 = 281.1 (-118.5, 680.8) p6 = -1257 (-3069, 554.7). Выведем на печать данные об ошибке в узловых точках. » output I.residuals ans = -0.0034 0.0164 0.0023 -0.0305 -0.0832 0.1460 0.0022 0.0735 -0.1088 -0.3709 0.5042 -0.0041 -0.2237 0.0801. В качестве альтернативного подхода рассмотрим те же данные, но исключим те из них, которые «выбиваются из ряда» (обозна- чены на рис. 4.14 крестиками). График модели fittedmode!2, по- строенной без учета этих данных, представлен на рис. 4.15
hi. 4 14 И< lunthm mi »<* пгрммсогтжль»ык и>нк*з htinirrwxkrl? w l-жхэг rxadei Нп«1пжХЙГЛх1 - р!Ч'3 ♦ р2*ж*4 ♦ рЛЧ‘3 ♦ p4***J ♦ pV« ♦ рб I iKfbcKtO <w<h 4S4 сх«1Г>|1си.г touatbi pl - 4 JTJe-W5 (-О.4О123Э. 0041034) p2 - 0 0С4И92 (-012W. 0.14321 Г4Г 4 И kV*CfHMr 1*1 H грл0н< r>UH>ilMKXU.(lJ ЫПКХИ &iixdr«udcl2 (*«4 S6
рЗ = -0.3262 (-6.609, 5.957) р4 = 6.641 (-138.6, 151.8) р5 = -72.6 (-1735, 1590) р6 = 354.3 (-7191, 7899) » output2.residuals; ans = 0.0190 0.0288 -0.5278 0.5682 0.3673 -0.1652 -0.3307 -0.9869 1.3630 0.0813 -0.4935 0.0766. Анализ величины ошибок и визуальный анализ кривых позво- ляет сделать вывод, что фильтрация дает несколько лучший ре- зультат, чем исключение «выбросов» из экспериментальных дан- ных. В заключение найдем еще один вариант модели общего вида — показательную модель fittedmodel3 = General model Gauss4: fittedmodel3(x) = а1*ехр(-((х-Ь1)/с1)Л2) + а2*ехр(-((х-Ь2)/с2)л2) + аЗ*ехр(-((х-ЬЗ)/ сЗ)л2) + а4*ехр(-((х-Ь4)/с4)л2) Coefficients (with 95 % confidence bounds): al = -8.291 (-3358, 3342) bl = 29.66 (-105.5, 164.8) cl = 2.12 (-138.4, 142.7) a2 = 108.2 (-1.623e + 005, 1.625e + 005) b2 = 25.37 (-2621, 2672) c2 = 8.719 (-2986, 3004) a3 = -18.22 (-7750, 7714) ЬЗ = 26.93 (-375, 428.8) сЗ = 3.507 (-157.8, 164.8) a4 = -67.54 (-1.61 le + 005, 1.61e + 005) b4 = 23.03 (-1716, 1762) c4 = 6.117 (-1941, 1953).
Рис. 4.16. Исходные (♦), отфильтрованные (---) данные и график пока- зательной модели общего вида fittedmode!3 (—) График модели fittedmodel3 представлен на рис. 4.16. Ее ошиб- ка » output3.residuals ans = 0.0317 -0.0372 -0.0129 0.0390 -0.0293 0.0711 -0.1406 0.0817 0.1125 -0.2585 0.2547 -0.1641 0.0743 -0.0196. Итак, Curve Fitting Toolbox позволяет получать регрессионные модели по зашумленным наборам данных. Познакомимся далее с некоторыми другими возможностями этого пакета. 4.4.2. Пример построения в Curve Fitting Toolbox дробно-рациональной модели Это — пример использования дробно-рациональной модели. Данные, по которым будет строиться модель — зависимость ко- эффициента теплового расширения меди от температуры. Внача- ле загрузим данные из файла hahnl.mat посредством команды load
hih> I txww* нр к грима во Tint pi оаофокхт дм нстм nr pt иг* ные. fcwip м ihemwv itmp — »П€С тошертут в rptiy<4i ВСеивмил tbffmei — uenup »х> ^ДОминен! л 1еп.юей<й (миимреним 1« медм. Им1МН1ДОм ли 1г;сн:нныс в грефи^пкмй мисгруменг Curst FftlMg ГиЫ и ирнишим н^биру .и и и мд кдесс-лмби мма ншр»- мср СиТЧсгвЕл Ьк 4 IT. (Жж) тт^рфсКд GL'I Cir*t FttM* Тос4. сэшфкгтрериамн»- гем Всмсм ам>.«М1«.лм Км22 • t•гчменгв KRWIMU г».<>*(««** wtw м т»шгнр«г»тм
teaaadrto Гис 4 11 tea ird liu — м£гмрашнтжгжмы« ымы» (•) • мо- дель йл<22 I—1. Графе* ИеаНваЬ — ouWbu мгсегн йаШ (-) Нлйлгм .триеми-рошжпнагаьмпг аыряагэпвг. кдетпрпе <d)»cnrw~ wr дуют пр»г<т»гагхмг уптт nrtrpj ланныг Дробнораино манные мооедм определены как cm*?weмне гкктинонов, к* * — степень пол мной «слитом. аж- степень латином) эиаменатоля Обратим мимание, тто рыдеоналынде уравнение не см ины < фюммесамме параметрами ипнш Вместо этого ми ибемпечмсыиг проспи и гнСдечю эмпирдеееск^и акыель айтор>ю намни ж полькам г ь дла иитерпоиими и дехтранаиимм. И) фирмы ipaCmaa и<1ы1мш шмммл мсиами акагтк что |ыгум> мА himximmA аьабир цлм дри6м>-равхм<1НАлмюЯ ыивелм дес мскдехш fUi?2 (rrtipuft гн^калк чмслтслв и жтсрМ порядок м«а- мангтгт) Окно ннгтрфгАг* GUI < опт f<m< I <к4. г»-«фнптм- роынного дяк этой могаи. покампо на рик. 4 11 Дамме, при- Омменме и оииОюв поклэмы на рж. 4 II Ветчина сшибки эна читоаые. особенно на граниша дгагшона. Кроме тххо. <шн€<а суместоенно свлш—i с kimmboa меим —icdl переменной Все это |iMWmw на то» *tu muamd нэйги биие адесестмеммсе яры бемиаемме. Дхм иаедншеш 1<деблнленка айаьмем л • 3, т • 2 (рес. 4.19 и 4Xi). Прн&шаэмс «всфтш аглет себе» во весы а мал аванс давь- mil, а ошибка е<иг«фшдемм> рассс imqi «сдерут иулгакэгп манен и в
FS»< 4 |Q О» нс нит»(<vn.4 GUI С^гм F«lr» Топ» л»* г»*м »mkm> ы.сп Чмсловме ргпг.юты таюсям General »х*й1 Hat32 Я1) - <pl*x’ J • p2’»'J ♦ pJ4 ♦ р«>Л**2 ♦ Ф*’ ♦ Coefficients (with 95 9 coafldenoe bounds): pl - 7.4C9e 005 (4.40Q9IJS. 0 0010») 92 • 22.0* <21-26. 229J> p3 • 974 I (-Ю10, 93i) p4 > LOS4e * 004 <l.003e 4 0M. 1.105e * 004i qi • 44 SI (ЖЯ. SW) qi - -H6t<.|M2 -1*10
Data and fits Рис. 4.20. График Data and Fits — экспериментальные данные (♦) и мо- дель Rat32 (—). График Residuals — ошибка модели Rat32 (•) Такое приближение вида Rat32 можно считать вполне удовлетво- рительным. 4.4.3. Приближение в Curve Fitting Toolbox экспериментальных данных моделью пользователя Используя инструмент Create Custom Equation, можно опреде- лять собственные уравнения модели. Открывается этот интерфейс одним из двух способов: из инструмента Curve Fitting Tool, выбирая команду Tools-> ->Custom Equation; из Fitting GUI, выбирая Custom Equations из списка Type of fit, а затем нажимая кнопку New Equation. GUI Create Custom Equation содержит две области: для созда- ния линейных уравнений и для создания уравнений общего вида (нелинейных). Эти области описаны в следующих примерах. 4.4.4. Линейная модель пользователя — полином Лежандра Для этого примера данные получены на основе ядерной реак- ции 12С(е, е'а) -> 8Ве. Рассматривается эксперимент, в котором 124 МВт электроны рассеиваются ядрами элемента 12С. В резуль- тате этой реакции испускаются альфа-частицы и производятся ядра 8Ве. Анализируя число испускаемых под разными углами аль-
Рис. 4.21. Кинематическая диаграмма ядерной реакции |2С(е, е'а) -> 8Ве фа-частиц, можно получить некоторую информацию относитель- но ядерной динамики ,2С. Кинематическая диаграмма реакции по- казана на рис. 4.21. Данные собирают, помещая твердотелые дат- чики угла 0а в пределах от 10 до 240° с шагом 10е. Модель будет строиться в виде комбинации полиномов Ле- жандра. Опишем полученные данные как функцию угла в терми- нах полиномов Лежандра у(*) = где Рп(х) — полином л=0 Лежандра степени л, х= cos(Oa); ап — коэффициенты модели. Дан- ные по эмиссии альфа-частиц можно непосредственно сопоста- вить с известной теоретической моделью. Эта теоретическая мо- дель позволяет ограничить бесконечную сумму. В частности, при рассмотрении углового импульса реакции полином четвертой сте- пени, использующий полиномы Лежандра только четных степе- ней, должен эффективно описать данные. Сгенерировать полино- мы Лежандра можно по формуле Родригеса: 1 Г d Г 2"rt!ldx, Л(*) = (х2 -1)л. Полиномы Лежандра до четвертой степени включительно при- водятся в табл. 4.2. Первый шаг построения модели — загрузить данные по эмис- сии альфа-частиц углеродом ,2С из файла carbonl2alpha.mat, ко- торый поставляется с комплектом инструментов. Для этого нуж- Таблица 4.2 п Л(х) 0 1 1 X 2 (l/DOx2-» 3 (1/2)(5л? - Зх) 4 (1/8Х35Х4 - ЗОх2 + 3)
Яж. 4.22 Г рв<м» mmhmikjh ы>- <9МСТИ* 09 >Tli wkimi MO viuitb димлмл/ bad utftonllaipte Рабсмее гцякдмкгво те пера имержмг лее переменные. ие<4е сомлш ацдк — агх&гр ji.hu <а рома мал > и пределы* л 1(Г л> 240* с ццгом К \ umxiU — катер ciuH^cvm мльфа-чжлмп, ссжмаеплму- кш»сго >тааы imhccmm а псрсыеммоЯ лг^с. Имгюргжруеы лтм перг- мснныг • < двпс Гахид Т«х4Ьз< и накжм наГюр данные CllXptm I р«|мк мажзтоггм юоягмитт дпфа-мастто* ух» мтсхни прсх> стшинн на рис 4 22 Атрсшснншруем данные. еттниыуа пшмнсь мы Лсланора » •*тнртой степени с нгтныыи степенным л(«> •«. ->н* Гмс 4 71 Слыг Симою Г^ММЬо GUI дм сттшнва явнЫные ммсас*
Поскольку эта модель зависит от неизвестных параметров а0, а4 линейно, используем ту область Create Custom Equation GUI, которая предназначена для создания линейных уравне- ний. Эта область окна для модели вида показывается на рис. 4.23. Обратим внимание, что, поскольку угол angle выра- жен в радианах, аргумент полиномов Лежандра задается выра- жением cos(Oa) (l/2)*(3*cos(x)A2-l) (l/8)*(35*cos(x)A4-30*cos(x)A2 + 3) а2*(( l/2)*(3*cos(x)A2-1)) + a4*((l/8)*(35*cos(x)A4-30*cos(x)A2 + + 3)) + а0. Приближение и ошибка модели Leg4Even показаны на рис. 4.24. Приближение достаточно точно отображает тенденцию пове- дения данных, в то время как ошибка (residuals) распределена случайным образом и не демонстрирует систематического пове- дения. Числовые результаты таковы. Linear model: f(x) = a2*((l/2)*(3*cos(x)A2-l)) + a4*((l/8)*(35*cos(x)A4 - - 30*cos(x)A2 + 3)) + aO Coefficients (with 95 % confidence bounds): a2 = 23.86 (4.436, 43.29) a4 = 201.9 (180.2, 223.6) aO = 102.9 (93.21, 112.5). Residuals 401------------------------ Рис. 4.24. График Data and Fits — экспериментальные данные (4) и мо- дель Leg4Even (—). График Residuals — ошибка модели Leg4Even (—)
Границы доверительного интервала 95% указывают, что ко- эффициенты при полиномах нулевой и четвертой степени извест- ны довольно точно, но коэффициент при полиноме второй сте- пени имеет относительно большую неопределенность. Полученная эмпирическая модель подтверждает теоретические выводы, что данные эмиссии хорошо описываются полином Ле- жандра четвертой степени с четными степенями. 4.4.5. Модель пользователя общего вида (нелинейная) — приближение данных рядом Фурье Обрабатываемые данные соответствуют усредненной помесяч- но разности атмосферных давлений в районе о. Пасхи и г. Дарвин, Австралия. Эта разность определяет направление ветра в южном полушарии. Первый шаг состоит в загрузке данных из файла enso.mat, который поставляется с комплектом инструментов. Для этого выполним команду load enso. Рабочее пространство теперь содержит две новые переменные, pressure и month: pressure — вектор усредненной помесячно разности атмосфер- ных давлений; month — относительное время (выраженное в месяцах). Импортируем эти переменные в Curve Fitting Toolbox и назо- вем набор данных enso (рис. 4.25). Прежде всего подвергнем данные фильтрации (рис. 4.26). Рис. 4.25. Данные о разности атмосферных давлений в районе о. Пасхи и г. Дарвин
—*- enso (ma) It A г И * I t 1 ' i fy V f t t 16 14 12 10 8 6 4 0 20 40 60 80 100 120 140 160 Рис. 4.26. Отфильтрованные данные о разности атмосферных давлений в районе о. Пасхи и г. Дарвин Теперь очевидно, что эти данные периодические, т.е. они мо- гут быть описаны рядом Фурье X IX у(х) = Яо + У я, cos 2л — + b, sin 2л — »=1 С; \ С; с где с, — период изменения данных. Вопрос, на который нужно ответить в этом примере — сколько различных временных циклов существует? В качестве первой попытки примем 12-месячный цикл и попытаемся аппроксимировать данные, используя одну гармо- нику. У] (х) = ц + Я| cos 2л — + sin k ci J Если такое приближение не сможет описать данные достаточ- но точно, будем добавлять дополнительные гармоники, пока не получим удовлетворительную точность. Поскольку неизвестный коэффициент с, входит в модель как аргумент тригонометрической функции, уравнение модели нели- нейно. Поэтому нужно определить уравнение, используя в Create Custom Equation GUI область General Equations создания уравне- ний общего вида (нелинейных). Эта область окна показывается на рис. 4.27. Найденное приближение и ошибка модели EnsolPeriod пока- заны на рис. 4.28. Числовые данные имеют следующий вид. General model: f(x) = aO + al*cos(2*pi*x/cl) + bl*sin(2*pi*x/cl) 4 Морозов
Гис 4 С'лгаМ СамЮл Fqm«W<i GUI ЛИ («ШММ «и«ж*«4 ftl«bM«>ferai сЛ жхгт мсха СоеПккг» <*<* 9S* сс^Лймкс t*jux*bi 0 ж 1064 (ЮЖ ЮЮ1 •1-2 122 <1 2 Ml) Ы - 0 972Я ГО11Я1. 1.677) Cl - II 94 (II М. I2.(Q) Р* *3 Н<Я>-чи» '|[^<и»гн« И1СГГМ Lnx irrrwd
poujj*un-| М1ПИ г><>4г»г> в мнхжмлдо&4 Г» -*М г мл и q*i i - г ««01 koi> i«oi - (Я 14*014 mijpui*» *(£ до> «и^зиж.э •г’Л.лг1“?чгч ♦ <р .'Ч^.г впэ.П' • • (|Э№СЁ>в.|* ♦ (я - <»о |фШ1 (CJ3UXJ mnwi mUjtmlrii jg f rwd vh rrt irwnii ргшэдастгд тпгпн vwjurvn м □и*ожы1^11и занизили 'I——»l |*>!'•«<jr)¥ -(rI" *V4HIIO*l(taj )R»n»lNI«LXMJOT ПМКрГ AMIMUOU оХккив MKHIUURS iWOXCOti il'^VDn в Я1лла11« оккЛм a«o«ti tnJiiUM <h»knm>li mtHVii—и»>г tNHHtr a i«mnw im ueifMiA 1U4. зммм^моя «cntMHitfuMlMi млзмаиххпаиии хямгж «лета «fcrprou «жито оч»н1\) *4 11 1J ^зя ; | омчизл* -«ugpdti 1тв<«*зт пып ^хацчп и >г-^ жмкекг* мямажне! па lai WOT 4 -1 «Rwtwrr cfcajrM jawrMUO з»< 1*.кгзп • <Ж ЧгижнЫмя nxi 4-r»rtiu?v»u м-r ин-пл^т* cmhmuw деп jn« жн janmjHtftj RI I T5MW 5П 0 «•»**-» |»»«n*PV S5»X> «W 3SS
hn 4 M Iwiirwic г|**€гнаг»мг M UU»(1U WCUC.'H LtM)3ftn«J •2 II .’Ite <-| J44. -01К.1» Ы . U9J9 <02400. 16П| Ь2 - О 4919 (41 1SU, I 1421 cl - II9J(1IM. 12.01b c2- 21 92 <2124. 22 6» Gcodbte o( fir R-Mfua*: O.SI Sk Adlutftd R-««urr 0 4971 UMM I J4H npwbiHAcxwr itFCuutuaxNctv* lirtxn>eu tv>a>MM at» билыинн- ctiM 4*х1>е(мыенес2ъ»мм ланнм», ни нс xtst кхх Графи» ошибка rojiki»!» уишигт чк> неибвисммо пякинити**® никинп ciar один 1П«*л к граммснит м<кх л» Вмгкинии тргтжт «тпытху I |рн- ftwia»HHf. оша<«» и чиг1лпы< рттультаты гкжвуымкпх» на рис 4 30. Gcnrnl model fl»| Hl ♦ al‘cr»<rp«*X'cl) . bl*wr()Wcl) • яГггжСГртЧ' c2| ♦ h2*»in(?*p«*’A2l ♦ a)’co<)ep<*X<,c)) ♦ h.Html^^x/cJl Cueffktefo iwHl» 9$* ccHfidettx bouathi Hl - I05J (I03J. 1*7)1 al - 2 IIJ <I.T23. 2.JOJI a2- 416205 4-1.16. 0 1932>
аЗ = -1.536 (-1.85, -1.222) bl = 1.134 (0.5808, 1.687) Ь2 = 0.7224 (0.2643, 1.181) Ь3 = 0.2821 (-0.3043, 0.8684) cl = 11.91 (11.86, 11.97) с2 = 22.1 (21.62, 22.58) сЗ = 43.81 (42.63, 44.99) Goodness of fit: SSE: 298 R-square: 0.7068 Adjusted R-square: 0.69 RMSE: 1.373. Это приближение более качественно, чем два предыдущих и объясняет большинство циклов в наборе данных ENSO. Ошибка выглядит случайной для большинства данных, хотя наблюдаемые по-прежнему отклонения указывают на то, что дополнительные циклы могут присутствовать. Итак, фурье-анализ данных свиде- тельствует о наличии трех существенных циклов. Ежегодный цикл самый сильный, но циклические повторения с периодами при- близительно в 22 и 44 мес также имеют место. Эти циклы соответ- ствуют явлению Эль-Ниньо— Южная осцилляция1. 4.4.6. Пример робастного приближения Этот пример соответствует данным, которые предположитель- но содержат один «выброс» (outlier). Данные соответствуют ре- зультатам президентских выборов в США в 2000 г. в штате Флори- да. Аппроксимирующая модель — полином первой степени, а ме- тод приближения — робастный метод наименьших квадратов с биквадратными весами. После президентских выборов 2000 г. многие избиратели в Палм Бич, Флорида, жаловалась, что дизайн избирательного бюллете- ня был крайне запутан. Не разобравшись в нем, они по ошибке проголосовали за кандидата партии реформаторов Пата Бьюкене- на вместо кандидата демократов Ала Гора. Так называемый изби- рательный бюллетень «бабочка» («butterfly ballot»), изображенный на рис. 4.31, использовался только в Палм Бич и только в ходе предвыборной борьбы за пост президента. Как будет показано да- 1 ENSO или El Nino — Southern Oscilation. Данное явление включает крупно- масштабную реакцию океана в виде потепления поверхностных вод у берегов Перу (Эль-Ниньо) и вызванное этим сильное нарушение атмосферной циркуля- ции в тропических широтах Тихого океана (Южная осцилляция).
.тес. пдошп просакксмвимх эд Пт Ьыоахмема а Паш Биа йуыплвенно отлишеге! от этого пошттда по основной мсти .UHHKt. 3w 1ШЖМ1П СНЕЛЛТЬ ВЫ МЫ, ЧТО ДЛИНЫ? .кНКНЫ быть |^<!|ктт>ны 1Гслж.1Н)им обрати. Дш начала нгнетзсмвао tarpr вгтъ pciymnma выветрив mj Фло- рндг hi rfart Ti •ЧтМг A rsM, ксттпрмн гюс-пвалпстса с ештлсктиы шнсгтумгнтпа Дтц лтгчп нггГлпгмыг. выполнить кпмаил> 1«ых1 fhowЛ. Рабочее пространство теперь содержит три переменные Ьисймал вектор гоыхоа та парта реформаторов 11m Ьыояе- псы. НЫ1 — вектор гсоосоа» м ишмлата респьйчимниев Лж* р лжл Бумы, ряе — мовнс силах* м иминллта леыокрвтое Ам (пр*. Клала* переменнее сети рж иг М жасмехтом влгпрые ихттшгг- сттткп 6? пкрчтжы Irma Флпрмдж птюс W>H7<'rr tiHM< Ьжклстс- ив нспросаавдшвшнг Нтання аартттш миы в мрвыгинпи counUek Ит ммж переменны! с prune дм ивборз ланныа в raw* сами, отданными та Бьюкенена. качестве таанеммой перемен- ней: bmhanan ы. ЬшЬ и but ha гит tore Для тихо примере прел £*л»жим. что отмииснмя мешу м>ясим:41 гтерсменной и нем •mlmmaXI переменное мнеАмы с мувеьыч смешением, пли ЬисЫшл • 4httkj*ml. hachanan ыдеь №><е1*т2. ЧтпВм слютъ ура ин гни г тымннма nrpMift итм и мулеимм смгокннгы. тегттыутмев амнгйныы >т«внгннгы панляпем. Перед гкмсксы прнМкаг-жм нужно искдкмнп данные, пиин WM V- г^ми latfvt «маа« *>ra*wwT ЛН» М«1!>ГЛ1Э<ЧНГ Рж. <31. Наемртаьнмй Милтгтлт «ЫЫяю» <^>at>e*fy ЫЫ»1 HMiao ia.^41 гнзтлг ат хи»та .кт hkiiim 1ИИ1» ЧЛТЧЧШrWfta>l ныугм аса in vk> пмгахт ма>«Ю MWH Г* M[< *< i<i am luaii ma tmaaro? r*r«AJK> W7«ir- ЮИЧ-ПТ WVSL&Bb у^имуеем
Рис. 4.32. Модель buchanan vs. bush ные с избирательными бюллетенями непроголосовавших. Затем для каждого набора данных найдем робастное приближение с би- квадратными (bisquare) весами. Результаты построения модели buchanan vs. bush показаны на рис. 4.32. Linear model: f(x) = ml*x Coefficients (with 95 % confidence bounds): ml = 0.005066 (0.004794, 0.005337) Goodness of fit: SSE: 4.183e + 005 R-square: 0.9688 Adjusted R-square: 0.9688 RMSE: 79.61. А результаты построения модели buchanan vs. gore показаны на рис. 4.33. Linear model: f(x) = m2*x Coefficients (with 95 % confidence bounds): m2 = 0.005284 (0.00504, 0.005528) Goodness of fit: SSE: 4.914e + 005 R-square: 0.9633 Adjusted R-square: 0.9633 RMSE: 86.29.
Data and Fits Рис. 4.33. Модель buchanan vs. gore Результаты свидетельствуют, что линейная модель достаточно точна в большинстве точек, где ошибка располагается случайным образом в окрестностях нулевой оси. Однако некоторые ошибки выделяются из общего ряда. Самая большая соответствует району Палм Бич. Значения коэффициентов ml и m2 указывают, что Бью- кенен должен был бы получать повсеместно в среднем один го- лос на каждые 197 голосов, отданных за Буша и один голос на каждые 189 голосов, отданных за Гора. Используя эти значения, можно спрогнозировать число голо- сов, которые Бьюкенен должен был бы получить. Из модели buchanan vs. bush следует, что Бьюкенен получил 3 411 - 775 = 2 636 «чужих» голосов. Из модели buchanan vs. gore следует, что Бьюкенен получил 3 411 - 1 425 = 1 986 «чужих» голосов. Вид бюллетеня явно говорит о том, что это были в основном голоса кандидата демократов Ала Гора. С другой стороны, суммируя все голоса, отданные за основных кандидатов, можно определить, что перевес Джорджа Буша над Алом Гором в штате Флорида составил 537 голосов. Это меньше, чем то количество голосов, которое было отдано Бьюкенену в результате недоразумения. А поскольку результат выборов во Флориде был критическим моментом в определении итогов выборов в США в целом, их результаты подвергались сомнению. Однако прежде чем конечное заключение может быть сделано, требуется дополнительный ана- лиз.
4.5. Авторегрессионные модели Рассмотрим набор экспериментальных данных, представлен- ный на рис. 4.34. Это график изменения во времени сигнала на выходе динамической системы. Используя рассмотренный в раз- деле 4.1 GUI Basic Filling пакета MATLAB, рассчитаем полино- миальную модель для этого набора данных (рис. 4.35). Результаты не слишком радуют. Теперь даже десятый порядок полинома дает весьма значительную погрешность. Что же можно сделать в данном случае? Заметим, что график этого набора экспериментальных данных весьма сильно напоминает переходную характеристику колеба- тельного звена или, иначе, решение дифференциального уравне- ния второго порядка о2 d2y dy dr7 + °' d7 + °°У = bU ЛЛЯ = Заменим производные на конечные разности по формулам — « ——+ Ук-2 или аналогичным. Диффе- d/ т dr2 т2 ренциальное уравнение второго порядка преобразуется в разно- стное уравнение вида ук + а*ук.1 + а2*ул - 2 - Ь*и или иначе (1 + + + a2*r2)Hz) = b*U(z) с подлежащими определению пара- метрами модели а*, а2* и Ь*. Отсюда ук = -а*ук _ । — а2*ук _ 2 + Ь*и. Теперь хорошо видна связь текущего значения функции не только с текущим значени- ем аргумента, но и с предыдущими значениями функции. Таково фундаментальное свойство динамических систем — «память», т.е. зависимость текущего состояния системы от предыстории. Рис. 4.34. График изменения во времени сигнала на выходе динамиче- ской системы
Pre <J5 wrttnaMrmtir.ki* <м:эгмм Рйс. <М ГЪспиенк жт^эре-тсол*гн*т<> нше1и irwcwi GUI SfHeffi 1«к^|Лс-г<и Тм*Ж rwn MATLAB
Найдем неизвестные коэффициенты а*, аъ Ь* Для этого исполь- зуем инструментальное средство пакет MATLAB, предназначен- ное для идентификации систем — System Identification Toolbox. Гра- фический интерфейс пакета System Identification Toolbox запуска- ется из командной строки командой ident (рис. 4.36). Открыв его, импортируем данные (tout — время, simout — выходной сигнал). Затем оценим параметры модели, задав ее структуру. Для этого в раскрывающемся списке Estimate (Выбор) остановимся на вари- анте Parametric models (Параметрические модели). Данный выбор приведет к открытию диалогового окна задания структуры модели. По умолчанию пользователю предлагается ARX-модель (ARX — Auto Regressive with eXtemal input — авторегрессионная с внешним входом). Эта модель описывается следующим образом: У к + а\Ук-\ + - + а*паук.„а = 64 + Ь$икА +... + b*buk_nM + е(Г), где е(Г) — белый шум. Выберем простейший вариант ARX-модели с параметрами па = = 2, nb = 1, nk = О (nk— количество звеньев с запаздыванием). Результатом будет агх210-модель. Выполнив команду » агх210, получим следующий отклик пакета MATLAB: Discrete-time IDPOLY model: A(q)y(t) = B(q)u(t) + e(t) A(q) = 1 - 1.753 qA-l + 0.9029 qA-2 B(q) = 0.15 Estimated using ARX from data set mydata Loss function 1.19427e-032 and FPE 1.34355e-032 Sampling interval: 0.4. Следовательно, полученная модель выглядит так: ук = 1,753л-! -0,9029^.2 +0,15ик. Рис. 4.37. График ошибки авторегрессионной модели агх210
Рассчитаем выходной сигнал ARX-модели. » simoutl = simout; » for i = 3:51 » simoutl(i) = 0.15 + 1.753*simoutl(i-l)-0.9029*simoutl(i-2); » end; Построим график ошибки приближения » plot(tout,simout-simoutl,'*'). Ошибка модели, как следует из рис. 4.37, в 100 раз меньше, чем у полиномиальной модели десятого порядка, при существен- но меньшем объеме вычислений. Контрольные вопросы 1. Что такое полиномиальная регрессия? 2. Расскажите о порядке построения полиномиальной регрессии в пакете MATLAB с использованием инструментария Basic Fitting. 3. Расскажите о других способах построения полиномиальной регрес- сии в пакете MATLAB. 4. Что такое линейная по параметрам регрессия? 5. Расскажите о порядке построения линейной по параметрам рег- рессии в пакете MATLAB.
ГЛАВА 5 МАТЕМАТИЧЕСКИЕ МОДЕЛИ ДИСКРЕТНЫХ СИСТЕМ 5.1. Математические модели, основывающиеся на алгебре логики 5.1.1. Представления о теории множеств и ее применении для моделирования систем В предыдущих главах были рассмотрены модели систем, в ко- торых в качестве основных переменных фигурировали числовые переменные. Они соответствуют некоторым реальным физическим величинам, непосредственно связанным с моделируемыми си- стемами. Применение в моделях числовых переменных позволяет доста- точно хорошо представить количественные характеристики си- стем и происходящих процессов. Однако часто этого бывает со- вершенно недостаточно, чтобы адекватно отобразить всевозмож- ные стороны и свойства некоторых систем. Дополнительные воз- можности в этом отношении дает аппарат теории множеств, где главным является понятие множество. Оно обладает аксиомати- ческим свойством, т.е. не подлежит строгому формальному опре- делению, являясь первоосновным понятием, через которое могут быть определены другие — производные. На основе теории множеств базируется математический аппа- рат, с помощью которого можно отобразить разнообразные свой- ства большого класса объектов, в частности дискретных систем. Среди многочисленных разделов указанного аппарата наиболее интересными для моделирования являются два раздела: алгебра логики и теория графов. Они широко встречаются в научных ис- следованиях и инженерной практике и служат теоретической ос- новой для реализации компьютерных технологий, моделирова- ния программных и аппаратных средств систем. Рассмотрим некоторые базовые положения теории множеств и вопросы применения их при моделировании систем. Множество (обозначаемое М или другими заглавными буква- ми — Л, В, С, ...) определяется составляющими (образующи- ми) его (или входящими в него) элементами а, Ьу ..., с, что другими словами может быть выражено так: «множество М со- стоит из элементов а, Ьу ..., с».
Количество элементов, входящих в множество Л/, может быть как конечным, так и бесконечным, как, например множество всех натуральных чисел или точек на числовой оси 0 -»х, отрезке (Х|, х2) и т.п. Основное отношение элемента а к множеству А состоит в том, что он принадлежит А, обозначается а е А; в противном случае, когда а не входит в множество А, соответствующее отношение записывается: а* А. Так как на практике существует огромное (несчетное) количе- ство всевозможных множеств, то возникает необходимость рассмат- ривать различные отношения, имеющие место между ними. Если имеются два множества А и В, то можно выяснить, как они соот- носятся друг с другом, например, равны они или нет, чем опреде- ляется такое равенство и т. п. Два множества А и В по определению считаются равными тогда и только тогда, когда каждый элемент множества А является также элементом множества В. В принципе для рассматриваемого случая с двумя множествами А и В возмож- ны следующие четыре варианта отношений: 1) каждое а е В, каж- дое b е А; 2) каждое а е В, не каждое be А;3) не каждое а е В, каждое b g Л; 4) не каждое a g В, не каждое b g А. В первом варианте множества равны по данному выше опре- делению (А = В); во втором множество А состоит из части эле- ментов В, что характеризует А как меньшее по отношению к мно- жеству В (обозначается Л с В); в третьем, наоборот, множество В является меньшим по отношению к А (В а А или A z> В ); нако- нец, четвертый вариант как более сложный приводит к необхо- димости рассмотреть представления об операциях (действиях) над множествами. Первые же три варианта из рассмотренных выше позволяют ввести понятие «подмножество», которое определяется следую- щим образом: А — подмножество множества В, если оно (множе- ство А) целиком (со всеми элементами) содержится в В. Другими словами, подмножество А — правильная часть В. К числу всех подмножеств данного множества 2? относятся так же как оно само, так и одно из уникальных множеств, вообще не содержащее ни одного элемента (оно называется пустым и обо- значается 0). Другим уникальным множеством является так назы- ваемое универсальное множество Uy включающее в себя все рас- сматриваемые подмножества и элементы. Операции, выполняемые над некоторыми заданными множе- ствами, ведут к образованию новых множеств (подмножеств). Среди всевозможных операций можно выделить как основные следующие: объединение, пересечение, дополнение и разность. Объединением (суммой) множеств А и 2? называется множе- ство С, составленное из всех элементов, принадлежащих тому и ПО
Рис. 5.1. Диаграммы Венна для операций над множествами: а — для объединения; б — для пересечения другому множествам А и В (или им обоим). Данная операция обо- значается знаком U (С = A U В). Для лучшего понимания сущно- сти выполняемых операций применяются так называемые диа- граммы Венна (рис. 5.1, а —в) (21]. Пересечением (произведением) множеств А и 2? называется множество Z), составленное только из общих для Аи В элементов, т.е. одновременно принадлежащих и А и В. Обозначается пересе- чение так: D = А А В, Операцию дополнения (см. рис. 5.1) можно определить следу- ющим образом. Если некоторое множество А является подмноже- ством универсального множества 2/, то дополнением к А (обозна- чается Л) будет множество, составленное из тех элементов, при- надлежащих 2/, которые не содержатся в А. Для выполнения тех или иных операций над множествами су- ществуют определенные правила, справедливость которых легко может быть доказана с помощью диаграмм Венна либо на основе логического анализа. Ниже в символах теории множеств приведены выражения, за- дающие такие правила (формулы (5.1) для объединения и пере- сечения, формулы (5.2) для дополнения и (5.3) для разности множеств). Законы для объединений и пересечений: 1)Л и Л = Л; 2)Л АЛ = Л; 3)71 и В = В[)А\ 4)ЛАЯ=ЯЛЛ; 5)/1 U (Я11 О = (A U В) U С; 6)ЛЛ(ЯА С) = (ЛЛЯ)АС; (5.1) 7) Л Л (ЯЛ О = (А Л В) U (ЯЛ О; 8)71 U (ЯЛ С) = (Л U Я) А (Л U О; 9)Л U U= U\ 10) Л Л 0 = Л; 11) Л Л U= U; 12) ЛЛ0 = Л. Законы для дополнений: 1) Л = Л;
2) A\JA = A\ 3)ЯПЛ =0; _ (5.2) 4) Л Ц £ = Л П Я; 5) 4ПЯ = лиВ; 6) t/ = 0. Законы для разностей: 1) А-В = АГ\В; 2) U - А = А; 3) А - £/= 0; (5.3) 4) А - 0 = А\ 5) 0 - Л = 0; 6) А - А = 0. Для понятия отношений между множествами может быть дано формальное определение. Пусть некоторое общее для образующих его подмножеств мно- жество А. составленное из элементов ah аъ ..., ап, принадлежа- щих возможно разным подмножествам Ah А2, ..., Ат соответствен- но, удовлетворяет условию: аь а2, ..., ап е R, где с D— декар- тово произведение множеств (D = А]хА2х...хАп). Элементы D находятся в отношении 7?, что в математической символике за- писывается в виде (а,, аъ ..., ап, R) или R (ah аъ .... ап). В теории систем и при моделировании чаще всего рассматри- ваются бинарные отношения, для которых задаются: множество элементов {аь а2. ..., ап}; множество пар из этих элементов {az, ак]\ свойство R, являющееся средством описания или задания подмножеств. Таким образом, пара (ah ак) принадлежит множе- ству А только в том случае, если элемент ah находится в отно- шении Rik с элементом ак. Над отношениями могут выполняться различные действия (операции): сложение отношений (их сум- ма); умножение и некоторые другие, в частности операции рас- ширения отношения, проекция отношения (или исключение по- зиции). Приведем пример практического применения соотношений теории множеств для моделирования свойств дискретных систем, взятый из области правовой информатики. Здесь очень распро- страненным вариантом автоматизированных систем являются ком- пьютерные системы для поиска нормативных документов, отра- жающих содержание принятых различными органами власти за- конов, указов, постановлений, например системы «Эталон», «Консультант Плюс», «Гарант» и т.п. Поиск документов обычно осуществляется по некоторым ключевым словам (реквизитам), определяющим содержание запрашиваемых искомых документов. При этом возможности системы поиска тем выше, чем полнее логика запроса, в частности поиск можно вести по одному клю- чевому слову, двум, трем и т.д. отдельным словам, но более со-
вершенным вариантом будет такой, который предусматривает ло- гические операции с множеством реквизитов, например их объ- единение, дополнение, пересечение и др. [50]. 5.1.2. Модели алгебры логики в задачах проектирования аппаратных средств автоматизированных систем В моделях рассматриваемого типа для представления свойств исследуемых систем используются множества, составленные из так называемых логических переменных {хь х2, ..., хп} и функций f (*ь х2, ..., хп), определяемых этими переменными. При этом логические функции представляют собой разновидность отноше- ний, возникающих между множествами, образуемыми как отдель- ными логическими переменными {х,-} так и их комбинациями {хь х2, ..., хп}. Таким образом, возможны логические функции одно- го /<х) или нескольких переменных /<хь х2, ..., х„). Одним из общепринятых возможных вариантов задания значений логичес- ких функций и переменных — это составление так называемых таблиц истинности (табл. 5.1). Среди возможных логических функций можно выделить такие, которые одновременно соответствуют понятию операций (дей- ствий), выполняемых либо над независимыми логическими пере- менными, либо над теми или иными функциями. Такими опера- циями являются инверсия (см. табл. 5.1), конъюнкция, дизъюнк- ция и некоторые другие (табл. 5.2). В совокупности логические пе- ременные, функции и возможные правила выполнения операций образуют множество, называемое алгеброй логики. Известны две алгебры возможных разновидностей логических функций. Множество функций, рассматриваемое вместе с опера- циями отрицания, конъюнкцией и дизъюнкцией, называется бу- левой алгеброй. Множество функций, рассматриваемое вместе Таблица 5.1 Логические функции одной переменной Функция Значения Условное обозна- чение Название функции X fM fo(x) 0 0 0 0 Константа нуль /|(х) 0 1 1 X Переменная х Л(х) 1 0 0 О Инверсия fi(x) 1 1 1 1 Константа единица
Логические функции двух переменных к 1 2 3 4 Название функции Обозначе- ние Примечание (как читается) *1 0 0 1 1 *2 0 1 0 1 л 0 0 0 0 Константа нуль 0 f 0 0 0 1 Конъюнкция Xj & х2 X] и х2 л 0 0 1 0 Функция за- прета по х2 Х1 Дх2 Х|, но не х2 л 0 0 1 1 Переменная х. Х| Отх2 не зависит л 0 1 0 0 Функция за- прета ПО X, х2Дх, Нех,, ах2 л 0 1 0 1 Переменная х2 *2 ОтХ| не зависит л 0 1 1 0 Сумма по мо- дулю 2 X] Фх2 х, или х2 (но не вместе) л 0 1 1 1 Дизъюнкция функции рав- нозначность *2 VXlt Х| +Х2 х, или х2 (х, и х2 вместе) л 1 0 0 0 Операция Пир- са (стрелка Пирса) X, 1х2 Не х,, не х2 (универ- сальны) л 1 0 0 1 Эквивалент- ность разно- видности Х|=Х2 х, эквива- лентно х2 /10 Инверсия х2 X 02 Не х2 /и 1 0 1 1 Импликация от х2 к X Х2 ->Х| Если у, то х, из х2 следует х /12 1 1 0 0 Инверсия х Si Не х, /в 1 1 0 1 Импликация от х2 к X Х| ->х2 Если хь то х2 из х, следует /|4 1 1 1 0 Операция Шеффера (штрих) Х| 1 х2 х, и х2 не совместимы /15 1 1 1 1 Константа 1 1 Универ- сальная
конъюнкцией и сложением по модулю два, называется алгеброй Жигалкина. Способ технической реализации булевых функций зависит от выбора физических величин, представляющих логические значе- ния 0 и 1 переменной х. Несложные электронные (или электри- ческие схемы) реализуют булевы функции и независимые пере- менные, в которых «нуль» представляется низким потенциалом, а «единица» — высоким (+£). Константы «нуль» и «единица» реа- лизуются подключением выхода соответственно к «общей шине» и к клемме с потенциалом источника питания. При этом сама переменная «х» представляется отрезком проводника. По техни- ческому выполнению эти функции тривиальны. Только инверсия требует для реализации более сложной электронной схемы (на- пример, транзистора или подобного устройства). В указанных выше алгебрах логики рассматриваются выражения, составленные с по- мощью соответствующих операций, из констант 0 и 1 и из пере- менных х, у, z, , под которыми понимаются как непосредственно произвольные независимые логические переменные (в частности, обычные двоичные переменные), так и функции, зависящие от этих переменных. Имеют место основные тождества, определяющие правила выполнения операций для булевой алгебры: 1) х = х — закон двойного отрицания; 2) xvу = у vх — закон коммутативности; 3) ху = ух; 4) xv(yvz) = xvyvz 5) х(уг) = (ху)г 6) х(у v z) = ху v xz 7) х у yz = (х v у)(х у z) — закон ассоциативности; — 1-й и 2-й законы дистрибутивности; 8) ху у = ху — законы А’де Моргена (1806 — 1878); 9) ху = хуу; 10) 0 = 1, 1=0; 11) х • 1 = х, у-0 = 0; 12) хv0 = х, хv 1 = 1; 13) х v х = 1 — закон исключенного «третьего»; 14) хх = 0; 15) (х -> у) -> (у -> х) = 1 — доказывается с помощью табли- цы истинности; 16) 1(х-> у)(у-> z)]-> (х Д Рассмотрим примеры применения алгебры логики для модели- рования схем устройств и систем микроэлектроники (схемотехни- ки), являющихся технологической основой для построения боль- шинства систем информатики и автоматизированного управления. Пример 5.1. На рис. 5.2 приведены схема логического элемента (дизъюнктора) на четыре входа (рис. 5.2, а) и устройства коди-
о 2 3 4 5 6 7 Рис. 5.2. Логический элемент ИЛИ (дизъюнктор) (а) и кодер на этих элементах как объект моделирования (6) рования информации (кодера) (рис. 5.2, б), построенного на этих элементах. На один (и только на один) из восьми входов кодера (с 0-го по 7-й) могут поступать сигналы, задающие логические значения входных переменных. Множество значений выходных пе- ременных уь у2> уз определяют двоичный код соответствующего номера входа. Например, если на входе с номером 0 кодера дей- ствует сигнал х0 = 1, то такой сигнал не поступит ни на один из дизъюнкторов и, следовательно, на выходах кодера уь у2, у3 сиг- налы будут иметь значения равные 0 (т.е. кодовая комбинация на выходе — ООО). Если же в другой момент времени сигнал со значением 1 будет действовать, например, на входе 3 кодера, то он же будет дей- ствовать и на соответствующих входах первого и третьего дизъюн- кторов, что приведет к появлению сигналов уь у3со значениями, равными 1 соответственно на выходах первого и третьего дизъюн- кторов. Тогда кодовая комбинация на выходе кодера будет следу- ющей 101, что соответствует двоичному коду числа 3. Составить модель (логическую функцию), отображающую про- цесс функционирования устройства в терминах и символах алгеб- ры логики. Решение. В соответствии с основным функциональным назна- чением кодер должен формировать сигналы на выходах, значе- ния которых могут быть заданы с помощью таблицы истинности (табл. 5.3). Из таблицы видно, что, если на каком-либо входе х,- каждого дизъюнктора действует сигнал со значением 1, то вы- ходной сигнал также равен 1 (см. функцию f2 для двух переменных в табл. 5.2).
Таблица 5.3 Таблица истинности для дизъюнкторов Номер входа, на которых х,» 1 Значение сигнала на входе дизъюнктора *1 х2 *3 х4 Ук 0 0 0 0 0 0 1 1 0 0 0 1 2 0 1 0 0 1 3 1 1 0 0 1 4 0 0 1 0 1 5 1 0 1 0 1 6 0 1 1 0 1 7 1 1 1 1 1 В символах алгебры логики это можно записать так: ук = х, v х2 v х3 v х4; к = 1, 2, 3 (номера дизъюнкторов). Общий сигнал на выходе кодера можно представить в виде вектора-строки с элементами у3, у2> У\, которые будут задавать на- боры кодовых значений выходных сигналов кодера (табл. 5.4). Итак, Таблица 5.4 Таблица истинности для всего кодера Номер входа кодера Значение сигнала на выходе кодера Уз У2 У| 0 0 0 0 1 0 0 1 2 0 1 0 3 0 1 1 4 1 0 0 5 1 0 1 6 1 1 0 7 1 1 1
окончательно, с учетом соединений дизъюнкторов в схеме коде- ра, получаем: У, = xt v х3 v х5 v х7; у2 = х2 v х4 v х6 v х7; у3 = х4 v х5 v х6 v х7. Символическая форма представления моделей, задаваемых в виде логических функций, дает возможность оптимизировать по- строение схем систем микроэлектроники. Для этого вводятся по- нятия совершенных и минимальных конъюнктивных и дизъюнк- тивных нормальных форм логических функций [33]. Так, напри- мер, для функции трех аргументов/(хь х2, х3) совершенная дизъ- юнктивная нормальная форма (СДНФ) записывается так: /(Xj, Х2, х3) = Х|Х2Х3 V XjX2X3 V Х|Х2Х3 V Х|Х2Х3, (5.4) а совершенная конъюнктивная нормальная форма (СКНФ) име- ет вид: /(Х|, х2, х3) = (Х| VX2VX3)(Xj VX2VX3)(X| vx2vx3)(xj vx2 vx3). (5.5) Пользуясь тождествами алгебры логики и применяя правила выполнения операций с логическими переменными и функция- ми, можно делать переход от СДНФ к СКНФ, и наоборот. Кроме того, можно находить так называемые сокращенные и минималь- ные формы СДНФ и СКНФ, которые как раз и используются для построения минимальных по количеству элементов интегральных микросхем. Пример 5.2. Составить схему электронного устройства, пред- назначенного для выполнения логических функций, заданных следующей таблицей истинности. Таблица 5.5 Таблица истинности для проектируемого устройства Номер набора на входе Вход Выход *3 *2 *1 Уо У1 У2 Уз У4 Уз Уб У1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 2 0 1 0 0 0 1 0 0 0 0 0 3 0 1 1 0 0 0 1 0 0 0 0 4 1 0 0 0 0 0 0 1 0 0 0 5 1 0 1 0 0 0 0 0 1 0 0 6 1 1 0 0 0 0 0 0 0 1 0 7 1 1 1 0 0 0 0 0 0 0 1
Рис. 5.3. Схема устройства, синтезированная по логической модели (а); условные обозначения элементов инвертора и конъюнктора (б) Решение. Данная задача является обратной по отношению к предыдущей. Здесь по имеющейся табличной модели необходимо реализовать схему проектируемого устройства. Сначала по табли- це истинности составим логические выражения для функций, выполняемых устройством (математические модели). Для этого воспользуемся СКНФ. Запишем их поочередно для каждого выхо- да как конъюнкции сигналов, действующих на входах, причем, имея в виду, что значения выходных сигналов равны 1: у0 = xix2x3; у, = У1 = *1*2*з; Уз = *1*2*з;У4 = *2*з; Уз = х}х~2х3; у6 = xjx2x3; у7 = х,х2х3. Легко проверить, что значения функций Уо~у7, получаемые подстановкой значений переменных хь х2, х3 в эти выражения пол- ностью совпадают с их табличными значениями, следовательно,
их можно применить для синтеза заданной схемы. Из рассматри- ваемых формул также видно, что кроме прямых значений вход- ных сигналов хь х2, х3 в схеме устройствадействуют в различных сочетаниях их инверсные значения хьх2,х3. Их необходимо сфор- мировать из прямых сигналов, пропустив предварительно эти сиг- налы через инверторы. Затем схема выполняет операции конъюн- кции. Для этого в данном случае удобно использовать восемь трех- входовых конъюнкторов, каждый из которых будет реализовать одну из функций Уо~У7- В результате получаем схему, которая приведена на рис. 5.3. Для минимизации этих форм применяются, во-первых, правила выполнения логических операций, приведенные выше; во-вторых, существуют так называемые карты Карно и специальные методы, с которыми более подробно можно ознакомиться в литературе [33]. По картам Карно можно оценить синтезируемые схемы, насколько они получаются сложными и как реализуются (в какой последова- тельности и по какому алгоритму) те или иные функции. Еще одна особенность рассмотренных примеров состоит в том, что в них речь идет о так называемых комбинационных схемах, построенных на, образно говоря, пассивных функциональных ком- понентах (инверторах, дизъюнкторах, конъюнкторах и т.п.). Од- нако в схемотехнике и микроэлектронике существует значитель- но ббльшая доля устройств, модели которых по существу скорее подходят к классу конечных логических автоматов различной слож- ности и функциональности. Они более подробно рассматривают- ся в подразд. 5.4. 5.2. Графовые модели систем 5.2.1. Элементы теории графов Для рассмотрения внутреннего строения (содержимого) той или иной системы требуется не только перечислить входящие в ее состав компоненты (узлы, устройства, подсистемы и др.), но и указать возможные виды связей и взаимодействий между ними. Эти связи и взаимодействия между составляющими можно выра- зить на языке различных математических понятий, одним из ко- торых является упомянутое в подразд. 5.1 понятие отношения R. Отношением ранга п на множестве М называют закон, который выделяет некоторые группы из п элементов этого множества с указанием их порядковой последовательности существующих свя- зей между ними. Элементы теории отношений являются общей логической ос- новой построения графовых моделей, которые находят широкое
Рис. 5.4. Изображения графов: а — неориентированного; б — ориентированного применение в теории и практике моделирования процессов и си- стем, анализе и структурных свойств и характеристик. Основные понятия. Графы обозначаются с помощью сим- волической формы У), где знак G символизирует логичес- кое содержание данного понятия; X — множество некоторых эле- ментов х € X, причем каждый элемент х,- имеет отношение с одним или несколькими элементами у, другого множества Y. Отношения между элементами х, и у, можно выразить с помо- щью такого понятия, как отображение множества X на множе- ство У, т.е. yj = Гх,— оператор отображения. Тогда граф можно записать в виде G(X, /х), где G = G{X, Гх) считается заданным, если задано непустое множество X и отображение Гх множества Хв У (в частности, Х= Y). Наглядно графы изображаются с помо- щью множества точек и множества соединяющих их линий L (рис. 5.4, а, б). Известны три возможных типа графов: направленные или ори- ентированные (рис. 5.4, о); неориентированные (рис. 5.4, 6); гра- фы смешанного типа, в которых имеются как направленные дуги, так и ненаправленные ребра. Число дуг, инцидентных вершине хк, называется степенью вер- шины и обозначается Р(хк). Число дуг, входящих (приходящих) в данную вершину, определяет характеристику Р*(х), называе- мую полустепенью захода. Соответственно полустепень исхода Р(х) означает число дуг, выходящих из данной вершины. в Рис. 5.5. Составные части графа: а — исходный граф; б — его подграф; в — частичный граф
Если рассматривать часть всего множества вершин и часть ото- бражений некоторых из них на подмножество других вершин, то возникают два понятия — подграф и частичный граф (рис. 5.5, а—в). Действия над графами. Правила выполнения различ- ных действий над графами предполагают применение теоретико- множественных соотношений и такого понятия, как «отображе- ние множеств». Одним из таких действий является объединение графов (рис. 5.6, а—в). Оно записывается и определяется следую- щим образом: V, Fv) = G,( Л v) U G2( V2r2v). (5.6) Другое известное действие это пересечение графов (рис. 5.7, а—в): ЖХ Гх) = G,(X, Гхх) П С2(Х2Г2х). (5.7) Результат первого действия получается путем объединения мно- жества вершин, указания существующих связей и введения новых связей, в частности, отображений — (bd), (be), (cd), (cj). Правило построения пересечения следующее: вершинами гра- фа G(X, Гх) является пересечение вершин X = Х\ П Х2, ребра (или дуги, если исходные графы ориентированные) получаются путем пересечения отображений ее в исходных графах: /к, = r}xf П Г2х,. Рис. 5.6. Действия над графами: а, б— исходные графы; в — объединение графов Рис. 5.7. Пересечение графов: а, б — исходные графы; в — пересечение графов
Два графа, показанные на рис. 5.7, а, б, имеют как общие, так и различные вершины и отображения. Из общих вершин и их ото- бражений образуется граф пересечения (рис. 5.7, в). 5.2.2. Структурный анализ систем на базе графовых моделей Основными структурными характеристиками систем явля- ются: связность структуры, избыточность, компактность, сте- пень централизации и др. [23]. Эти характеристики были опре- делены в терминах теории обыкновенных взвешенных графов. Рассмотрим их. Связность структуры. Показатели связности характери- зуют с одной стороны работоспособность системы, с другой — ее надежность. Данные показатели подразделяются на детерминиро- ванные и вероятностные. Детерминированным показателем явля- ется, например, степень связности графа, отображающего струк- туру системы, а вероятностным — вероятность связности графа. В связном графе существует цепь между любой парой вершин. Граф является Л/-связным, если при удалении не более чем М - 1 любых узлов он остается связным. Граф является Л/-реберно-связ- ным, если при удалении не более чем М- 1 ребер он остается связным. Из ЛУ-связности следует Л/-реберная связность (но не всегда справедливо обратное). Для Л/-связного графа существует не менее чем М различных маршрутов между любой парой вер- шин. Поэтому граф станет несвязным, если откажут не менее М его вершин или ребер. Структурная избыточность. Различают абсолютную и относительную структурную избыточность. Абсолютная структур- ная избыточность R характеризует число избыточных связей в связ- ной структуре, без которых структура еще остается связной: Л =| “(л-1) , i * J, (5.8) где Vjj— элемент матрицы смежности вершин. Величина л-1 в правой части формулы определяет минимально необходимое число связей в структуре неориентированного графа для того, чтобы структура была связной. Относительная структурная избыточность г определяется как отношение R/(n- 1). Для несвязных структур R < 0, г < 0, для неизбыточных структур г = R = 0. Показатель структурной избы- точности характеризует экономичность и надежность исследуе- мой структуры объекта. Для оценки неравномерности распределе- ния связей графа от равномерного
п £2 =Z(p,-p)2, /=! (5.9) п где р, — степень вершины / графа; р = / л = 2>и/л — средняя /=| степень вершины; т — число ребер. Этот показатель используется для оценки возможности структуры иметь максимальную связ- ность. Наибольшее значение показателя имеет радиальная струк- тура. Структурная компактность. Этот показатель оцени- вается диаметром графа, под которым понимается следующее. Пусть dij — наименьшее число ребер в сети между вершинами i и j или для взвешенного графа наименьшая длина таких ребер в цепи. Эта величина определяет близость двух вершин. Диамет- ром графа называется наибольшее из всех этих чисел. Структур- ная компактность D может определяться по сумме чисел dy для всех пар узлов: п п D = (5.Ю) / = 1 J=l Если dij определяется по числу ребер, то наименьшее возмож- ное значение Z>min имеет место для полносвязного графа, так как все вершины в нем инцидентны: Z>min = п(п - 1). Наибольшее зна- чение Z)max имеют последовательная, радиальная и кольцевая струк- туры. _ Относительная компактность оценивается по формуле D = (D- Дпт)/Дпт и наряду с другими структурными характе- ристикам и_определяет надежность системы, в частности при уве- личении D возрастает число потенциальных разделяющих свя- зей; следовательно, снижается надежность, и наоборот. Централизация структуры. Показатель централизации структуры используется для оценки обоснования степени цент- рализации или распределенности компонентов. Он определяется формулой: п-\ 8 = п-2 2- — (5.11) Для структур радиального типа степень централизации наи- большая и5 = 1, для полносвязных и кольцевых структур 5 = 0.
5.2.3. Задачи анализа структур по графовым моделям Одной из задач анализа декомпозиции и преобразования струк- тур систем и соответственно их графовых моделей является задача построения минимального дерева, покрывающего граф. Задача о минимальном покрывающем дереве. Алгоритм решения данной задачи положен в основу работы мно- гих маршрутизаторов — устройств, предназначенных для управ- ления потоками данных, передаваемых в компьютерных сетях. В соответствии с условием необходимо для заданного графа И, U), имеющего п вершин и не являющегося деревом, выбрать (л- 1)— дугу (ребро), чтобы образовалась структура, соответ- ствующая дереву. Сумма весов выбранных дуг (ребер) должна иметь минимальное значение. Общий принцип выбора дуг (ребер) для включения их в фор- мируемое дерево можно определить с помощью следующего условия: = min min[p(v„v,)] viGV\yVJev2 (5.12) где И2 — множества вершин двух образующихся поддеревьев Г, и Т2. Это условие означает, что вес дуги (ребра), включаемой в фор- мируемое дерево, должен быть равен минимальному весу из мно- жества дуг (ребер), идущих от каждой /-й вершины поддерева Т\ до каждой у-й вершины поддерева Т2. Поддеревья 7\ и Т2 образу- ются каждый раз, когда выполняется проверка условия (5.12), для этого достаточно в формируемом покрывающем дереве уда- лить любое ребро (дугу), а затем другое из заданных в исходном графе. Допустим, что при добавлении некоторого ребра (дуги), со- единяющего через вершины vs и vk (vse V\, vke И2) два поддере- ва 7| и Г2, имеющего (имеющую) вес p(vs, vk), оказалось 8/? < < p(vs, vk). Тогда дерево, которое рассматривалось в исходном пред- положении, не является минимальным, т.е. имеет место проти- воречие, поэтому необходимо пересмотреть исходные варианты и по-другому соединить вершины. Как указано ранее, удаление любого ребра в каждом из вариантов формируемых покрывающих деревьев разбивает его на два поддерева, причем некоторые из них представляют собой просто отдельные вершины. Необходимо найти, с каким узлом соединить выбранную вер- шину, чтобы 8/?г= тт[р(гь v7)]. Затем в качестве поддерева берется вершина vx с дугой щ - (ц, ц). По условию (5.12) находится новая дуга (ребро) поддерева 7]. На следующих этапах добавляют дуги
(ребра), соответствующие минимальным расстояниям между вер- шинами, и проверяют, чтобы не было контуров или циклов. Процесс решения продолжается до тех пор, пока все вершины не войдут в одно дерево, которое будет покрывающим и кратчай- шим. В этом случае оно обладает минимальной общей длиной. Нахождение минимальных путей. Это еще одна за- дача, которая часто решается при рассмотрении возможных и на- хождении оптимальных вариантов достижения планируемого ре- зультата в том или ином проекте системы или способе управле- ния. Например, это необходимо при выборе политики управле- ния сетевыми потоками, а также для обеспечения требуемой эф- фективности, надежности и экономичности системы. Построение дерева путей по структурной матрице для задан- ной начальной вершины графа v5 проводится следующим обра- зом [45]. Выбирают 5-ю строку структурной матрицы Ли находят мно- жество вершин, для которых bsj * 0, что означает наличие связи данной вершины с другими смежными вершинами. Они образуют пути ранга г= 1. Производят просмотр смежных вершин и опреде- ляют пути ранга г = 2. На схеме дерево путей отображается гра- фом, для чего строят ряд вертикальных линий (ярусов). На левой крайней линии отмечается в виде точки исходная вершина, а на других линиях поочередно обозначаются вершины, соответствующие прохождению путей первого, второго и т.д. ран- гов. Процесс построения путей продолжается либо до достижения максимального заданного ранга, либо до тех пор, когда для неко- торого ранга г и узлов vr_ i на схеме будут отмечены все ранее указанные пути. Пример 5.3. На рис. 5.8, а показан граф, отображающий струк- туру системы, а на рис. 5.8, б приведена схема дерева путей для вершины Vy этого графа. Найти, какие пути, ведущие из этой вершины в другие, на- пример г5, являются минимальными. Решение. Задачу нахождения минимальных путей рассматрива- ют на взвешенных графах, для которых задаются значения дуг и вершин, а определению подлежат значения путей, исходящих из тех или иных вершин. При этом под значениями пути через дуги (или вершины) понимают суммы значений дуг (ребер или вер- шин), образующих рассматриваемые пути. Допустим, имеется граф И, Ги), для которого задана исходная вершина vs и известны значения дуг и вершин. Необходимо найти минимальный путь, ведущий из этой вершины в вершину vt. При решении задачи выполняем следующее:
б Рис. 5.8. Пример построения дерева путей из вершины Vy а — исходный граф; б — дерево путей 1) для исходной вершины v5 рассматриваем множество Fvs вер- шин, связанных с vs путем ранга 1, и определяем их значение gh причем gj = psi — соответствующее значение дуги usi\ 2) из множества Fvs выбираем произвольно одну из вершин vk и находим для нее множество Гvk\ 3) для каждой вершины ц из множества Гик вычисляем значе- ние gjy полагая, что к значениям дуг ukj необходимо прибавить значение пройденных вершин, т.е. gj = gi + Pkj = Psk + Pkj\ 4) проводим уточнение значений вершин; для этого выбираем одну из рассматриваемых вершин, например vm, и для нее опре- деляем множество F~'vm. Если каждая из них имеет значения g2, ..., g„, то значения путей, ведущих в вершины gim, будут равны: glm ~~ gl + Pim, glm ~ gl + РЪт gnm ~ gn + Рпт* 5) повторяем п. 4 для каждой другой произвольно выбираемой вершины ve до тех пор, пока значения путей, ведущих от vs к любой из выбираемых вершин, не перестанут изменяться. Эти значения определят все минимальные пути из заданной вершины в другие, в том числе и в искомой вершине vt. Построение минимального контура. Алгоритм Литтла. В соответствии с этим алгоритмом оценивается сумма минимальных значений весов дуг, образующих контур (называе- мый гамильтоновым) и покрывающий исходный заданный граф. Нижнее значение этой суммы не может быть меньше суммы ми- нимальных значений дуг, инцидентных вершинам ..., v„ (в общем случае не образующих контура). При построении минимального гамильтонова контура вначале определяется совокупность из п дуг, обладающих в сумме мини-
мальным весом. Это можно сделать по матрице весовых коэффи- циентов Цр/yll, соответствующих всем дугам графа. Путем вычита- ния весов минимальных элементов в каждой строке из остальных элементов строится, а затем анализируется матрица с разностны- ми значениями элементов, полученная в результате такого вычи- тания. Далее в этой матрице также проводятся вычитания мини- мальных элементов по каждому из столбцов, в результате чего получается матрица ||ду||, в каждой строке и столбце которой со- держится по одному нулевому элементу, которые показывают, какие вершины соединены дугами минимального веса. Строки и столбцы с нулевыми элементами из матрицы весов дуг удаляют- ся, а процесс поиска других минимальных дуг продолжается ана- логичным образом. В результате многократного повторения ука- занных процедур можно выделить совокупность дуг, соответству- ющих минимальному суммарному их весу, однако эти дуги могут и не образовать направленного контура, который требуется по- строить. Для построения контура некоторые из дуг выделенной совокупности необходимо заменить на такие, которые позволяют создать контур, но при этом незначительно увеличивают его вес. Увеличение веса в принципе неизбежно, так как выделенные дуги являются минимальными по сравнению с другими дугами, но при выполняемой замене рассматривают некоторую величину, свя- занную с этим увеличением Д/ъ называемую допустимой поте- рей при замене дуги (ц, vk). Принцип выбора заменяемых дуг, очевидно, заключается в том, чтобы в создаваемом контуре оста- вить те, удаление которых приводит к большим потерям веса, а исключить дуги, потери от которых незначительны. Задачи о медианах. При анализе структур систем можно выделить два характерных варианта — централизованные и децен- трализованные (распределенные) структуры. Применительно к этим структурам имеют место две задачи построения структуры системы. Первая — задача на определение одного центрального узла в системе централизованной структуры; вторая — на опреде- ление нескольких узлов, играющих особую роль по сравнению с другими. Рассмотрим логическое содержание таких задач. Пусть задана топологическая структура системы и можно построить граф G(V, Fv) — модель, отображающий эту структуру. Центральный узел в системе должен располагаться в такой вершине графа, от которой сумма значений путей до всех остальных вершин была бы минимальной. Такая вершина графа, соответствующая этому узлу, называется медианой данного графа. Понятие медианы графа в свою очередь связано с двумя новыми понятиями, а именно с внутренним и внешним передаточными числами, и внутренней и внешней медианами.
Внутренним Дц) и внешним 1(у,) передаточными числами вершины графа называются величины, вычисляемые по форму- лам: £(у,)= £ minprt, (5.13) Л^) = X (5 14) В этих формулах через min p^(min ць-) обозначено значение ми- нимального пути с началом в вершине ц (ук) и концом в верши- не Ук (Vi). Теперь можно рассмотреть понятия внутренней и внешней ме- диан графа. Внутренней медианой графа G( И, Гу) называется вер- шина уЕ, для которой внутреннее передаточное число Е(у) ми- нимально. Внешней медианой графа G( К Гу) называется верши- на yh для которой внешнее передаточное число 1(у) минимально. Медианой графа называется вершина ут, для которой сумма внут- реннего и внешнего передаточных чисел минимальна. Для нахождения внешнего и внутреннего передаточных чисел составляют матрицу длин путей между вершинами. Затем выбира- ют строку этой матрицы и каждый элемент строки умножают на значение вершины, соответствующей столбцу, в котором нахо- дится данный элемент, а полученные произведения складывают. Они представляют собой внутренние передаточные числа вершин. Аналогично находят и внешние числа, с той разницей, что стол- бцы и строки матрицы длин путей меняются местами. Найденные медианы определяют местоположение центрального узла. Децентрализованная система имеет несколько узлов, в кото- рых возлагаемые функции группируются, концентрируются и пе- рераспределяются. При распределении функции между N узлами возникает необходимость определить, какие из них целесообраз- но сделать особыми узлами, исходя из того, чтобы суммарная длина каналов была минимальной, а на какие возложить функ- ции транзита. Для размещения коммутационных узлов в сети рассматривает- ся задача, получившая название задачи о р-медиане. Множество вершин Vp графа G( И, Гу), для которых передаточ- ное число минимальное, называется р-медианой. Существуют две характеристики, смысл которых аналогичен понятиям внутрен- него и внешнего передаточных чисел для одной вершины это внут- реннее и внешнее передаточные числа множества вершин. Сумма этих характеристик определяет общее передаточное число всего множества. В случае, когда эта сумма минимальна, множе- ство вершин представляет р-медиану графа. 5 Морозов I 29 зов ал и опубликовал на сайте II Е И 11 IE Н ОI |
Чтобы найти из общего множества Vвершин заданного графа р-медиану, выбирают вначале произвольно из р числа вершин, образующих множество Vp, любые две вершины. Одну из них о, вводят в Vp, а другую ъу выводят из Ур. Определяют новое переда- точное число. Если оно меньше предыдущего, то вершину ос- тавляют в Vp, а если больше, то выводят из Vp и заменяют другой. Процесс циклически повторяется до тех пор, пока передаточное число рассматриваемого множества вершин перестает уменьшаться. Вершины, вошедшие в р-медиану, определяют местоположение узлов системы, играющих особую роль. 5.2.4. Потоки в графовых моделях и их анализ Потоки в обычном понимании связаны с представлениями, возникшими из жизненной повседневной действительности, кар- тин природных явлений и т.п. Потоки дождя, талых вод, горных рек — вот то, что каждый мог видеть в природе еще с древних времен; а современная картина сильно дополнена многими но- выми видами их: потоки движущихся транспортных средств, пе- шеходов, перевозимых товаров, грузов, телефонных звонков и т.д. Развитие бытовых представлений о потоках позволило придти к научному пониманию этого понятия и применить его в различ- ных естественных науках, в первую очередь в физике (в теории электромагнитных полей, оптике, динамике движущихся сред и в других приложениях). Весьма плодотворным стало применение данного понятия в математике и в математическом моделирова- нии. Здесь отвлекаются от сущности и физической природы пото- ка и рассматривают его как множество переменных и функций (чаще всего числовых), множество, содержащее как определен- ные (детерминированные) компоненты, так и обладающее неко- торыми порой значительными непредсказуемыми свойствами. На графах потоки концептуально можно задавать числовыми функциями или значениями (детерминированными или случай- ными), указываемыми на дугах (ребрах) или вершинах графов, отображающих ту или иную моделируемую систему и ее структуру. При этом под реальными физическими аналогами потоков подра- зумевается множество воздействий, событий, процессов, каса- ющихся системы и составляющих ее элементов (подсистем, техни- ческих и программных средств, устройств и других компонентов). При задании потоков на графе или при установлении их значе- ний в самой системе должны выполняться следующие условия: поток ф(ц-, vk) по дуге (vh vk) не может превышать ее пропуск- ную способность cik: <р(ц, vk) < с,*.; (5.15)
для всех вершин графа, кроме так называемых точек входа (хн) и выхода (хк), суммарный поток по входящим в вершину дугам должен быть равен суммарному потоку выходящих дуг: X <₽(«)- X <p(w) = о, (5.16) ueU; ueUg где х — некоторая вершина, не являющаяся источником или сто- ком; хн — входная (начальная) вершина (исток); хк — выходная (конечная) вершина (сток); Ux~ Ux+ — множества входящих и выходящих из вершины х дуг. Как следствие условия (5.18) можно сформулировать следу- ющее утверждение: сумма потоков, выходящих из хк, равна сум- ме потоков, входящих в хн: Z <₽(«) = L <р(и) = Ф. (5.17) При этом для задания модели процесса необходимо указать вероятности всех переходов системы из некоторых /-х возможных состояний в возможныеу-е состояния. Множество этих вероятно- стей образует матрицу вероятностей переходов |[р;,||. Для ознакомления с задачами, в которых применяются модели потоков на графах, необходимо рассмотреть некоторые дополни- тельные понятия теории графов, в частности, такие, как, разде- ляющие множества, сечения, разрезы. Они определяют характер потоков в системе распределенной структуры и соответственно в ее графовой модели. 5.2.5. Разделяющие множества, сечения, разрезы Пусть задан граф И, U), имеющий множество t/связных ребер. Подмножество ребер называется разделяющим множеством, если оно определяет подграф G( £/]), причем этот подграф разби- вает исходный граф на два компонента и более. Например, таким разделяющим множеством для графа, показанного на рис. 5.9, а, будет множество дуг (v3, г4), (г^, v5), (v1? v5), (vb Vj). Сечением графа называется такое разделяющее множество, которое не содержит в себе подмножества, разделяющего граф. В общем случае в графе с п вершинами может быть выделено 2Л“1 - 1 сечений. В ориентированных графах рассматриваются так называемые ориентированные сечения. Они задаются указанием вершин исходящих дуг и вершин, в которые направлены эти дуги. Таким образом, ориентированным (/ - j) сечением будет такое сечение, которое прерывает все направленные пути из вершины Vj в вершину Vj.
Рис. 5.9. Структуры анализируемых графов: а — разделяющее множество U для графа G{V, Cl); б — разрезы на графах {и,и3, u,U4, u2u4, u2u5} — (s—/)-разрез; {u3u6, u4u6, u,uj — (г—$)-разрез Разрезы на графах показаны на рис. 5.9, б. Важным для комбинаторных потоковых задач является понятие разреза в сети или на графе. Оно характеризуется тем, что для изменения струк- туры и связности исходного графа G( И, U) из него удаляют от- дельные вершины и связанные с ними исходящие или заходящие дуги. Пусть, например, рассматриваются направленные пути между вершинами и vt. Зададим на графе д( И, U) подмноже- ство вершин В, такое, чтобы вершина vs не являлась его элемен- том (vs е В), a vf принадлежала ему (vt е В). Тогда разрез (s—t) будет образован при удалении вершин, принадлежащих подмно- жеству В, в которые заходят дуги UB~y рассекающие в совокуп- ности все пути Другая совокупность дуг €/В+, также рассекаю- щих все пути на исходящих из удаляемых вершин образует (Г—5)-разрез. 5.2.6. Задача о максимальном потоке Группу задач топологического анализа систем составляют за- дачи определения либо достижимых, либо даже максимально воз- можных значений эффективности системы (или ее надежности). Эти задачи в большинстве своем сводятся к некоторой общей для них, которая носит название задачи о максимальном потоке. За- дача о максимальном потоке формулируется следующим обра- зом: пусть задан так называемый двухполюсный граф (граф, име- ющий две особые вершины: исток — источник потока и сток — получатель), задано исходное допустимое распределение потоков по дугам графа, отображающего топологическую структуру сис- темы, а также пропускные способности дуг. Необходимо найти максимально возможное для данной структуры значение суммар- ного потока между источниками и стоками, т.е. определить, как увеличить поток, если он не достиг этого значения. Для решения применяется одно из важных положений теории потоков, которое сформулировано и доказано в виде теоремы Фор- дом и Фалкерсоном [25].
В символической форме соотношение, отражающее содержа- ние теоремы Форда —Фалкерсона, выглядит следующим образом: Y Y <Р<Ц, Vj) = £ Y c(vn Vj), (5.18) jcB jeB где ф(ц, vj) — значение потока по дугам заданного графа; c(vh vj) — пропускная способность дуги; В — множество вершин подграфа, образующих разрез; В — дополнение 2?до И. Доказательство теоремы строится методом «от противного» на следующих предположениях: граф имеет две характерные верши- ны — исток и сток, а разрез вершины графа делит его на два взаимодополняющих множества В и В. Допустим, что на графе задан максимальный поток Ф, а сток vr не отделен от множества вершин 2?разрезом, т.е. vt е В. Тогда из определения разреза и при данном условии следует, что суще- ствует хотя бы один путь из истока vs в сток — вершину vty для которого должны выполняться условия: для прямых дуг пути (5— t) ф(Ц, vj) < C(VS, V()’f ДЛЯ обратных ф(ц, vj) > 0. Рассуждая аналогично по отношению ко всем возможным пу- тям, ведущим из vs в vh приходим к следующему выводу. При этих условиях и принятом предположении, что vt е В, имеет ме- сто противоречие. Действительно, либо поток Ф не максимален и его в принципе можно увеличить, насыщая отдельные дуги по путям, ведущим от vs к vt; либо Ф максимален, но таких путей не имеется и тогда vt не может принадлежать множеству вершин Ву определяющему разрез, как предполагалось. Иначе, если задан разрез, то он своими дугами однозначно определяет максимально возможный, проходящий через них поток. Принцип, лежащий в основе алгоритма Форда—Фалкерсона, заключается в том, чтобы найти все возможные насыщенные пути (цепи), ведущие от vs к vt. С этой целью последовательно, начи- ная с вершины vs, просматривают сначала все смежные {ц} вер- шины. Из множества дуг {(г>5, ц)}, соединяющих vs с {ц}, выбира- ют одну, у которой значение потока ближе всех подходит к значе- нию насыщения. Помечают вершину v, знаком, показывающим, что она была просмотрена, и приписывают ей величину 5, на которую можно увеличить поток по дуге, ведущей в эту вершину. Затем просматривают все последующие смежные с ц вершины Щ, останавливаются на той, в которую ведет дуга с потоком, ближайшим к значению насыщения. По этой дуге переходят в со- ответствующую вершину Vj. Делают пометки вершин и идут далее в направлении вершины vt. Если путь, на котором будут отмече- ны все пройденные вершины, приведет в вершину vty то это го- ворит о том, что найден один из путей, наиболее близкий к на- сыщению. Нужно довести поток по нему до насыщения, увеличи-
вая тем самым поток на графе. Значение, на которое можно уве- личить поток, находится как минимальное 5 из множества отме- ченных значений в пройденных по данному пути вершинах. Для выяснения вопроса, является ли полученный таким образом по- ток максимальным или нет, необходимо просмотреть все другие возможные пути, ведущие от vs к vr. Для этого необходимо воз- вратиться в v5 и повторить описанные выше действия, но идти следует по еще не помеченным вершинам. В результате выполнения этих действий можно столкнуться с двумя вариантами: пройденный путь снова приводит от v5 к vt, т.е. удается найти ненасыщенные пути и, значит, можно увеличить потоки на их дугах; придя в некоторую вершину, обнаружить, что все смежные с ней вершины помечены и, следовательно, больше путей, веду- щих к vt, нет. Это указывает на то, что найден максимальный поток. Пример 5.4. Найти максимальный поток для графа, изобра- женного на рис. 5.10, а, на котором числа, указанные рядом с дугами, обозначают их пропускные способности. Рис. 5.10. Пример графа для определения максимального потока: а — исходный граф; б— е— выделение насыщенных путей из v, в v,
Решение. Выделим направленный путь v}ьнвд. Дуга (v3v4) имеет минимальную пропускную способность, равную единице. Припишем всем дугам указанного пути значение потока, также равное единице, и пометим кружочком вершину так как дуга О3г4) становится насыщенной (рис. 5.10, б). Аналогичным об- разом поочередно будем выделять направленные пути. Они изоб- ражены на рис. 5.10, в— е жирными стрелками. При насыщении дуг каждого из рассматриваемых путей осуществляем пометку вершин. В результате этого оказываются помеченными вершины v7. Исходящие из них дуги прерывают все пути, ведущие из Vg (исток — 5) в вершину v4 (исток — I). Минимальная про- пускная способность разреза (v9v8), (iw)} на конечных дугах исследуемого графа равна 10. Это значение соответствует максимальному потоку. Проверяя пути, ведущие в v4 из смеж- ных вершин, убеждаемся, что все инцидентные с ней дуги явля- ются насыщенными. Значит, действительно найден максималь- ный поток. Практическая ценность и значение теоремы и алгоритма Фор- да —Фалкерсона очень велики. Применяя концептуальную мо- дель, заложенную в основу рассматриваемых вопросов, можно решать различные задачи оценки проектируемых систем, их оп- тимизации. Большую группу таких задач составляют задачи на- хождения в системе так называемых узких мест, в ее составе струк- туре или в алгоритме функционирования. Для постановки по- добных задач необходимо составить графовую модель системы. Это практически всегда правомерно и допустимо. В частности, само понятие «структура», рассматриваемая с технической точ- ки зрения, имеет в своей логической основе математическую модель, задаваемую графом, вершины которого — составные компоненты системы, а дуги — связи между ними. Единствен- ные ограничения применения данной модели для анализа и оп- тимизации систем, вытекающие из теоремы Форда —Фалкерсо- на — наличие в системе вершин — полюсов и отсутствие петель (контуров) в ее структуре, что на практике часто имеет место. Для корректной постановки задачи требуется испытательное воздействие на систему, а точнее на ее модель, в виде потока, пропускаемого через адекватно составленную графовую модель от истока к стоку. Соблюдая в процессе решения правила, заложенные в основу алгоритма Форда —Фалкерсона, можно установить на графе до- пустимое и одновременно максимальное значение потока, ука- зывающее нате компоненты моделируемой системы, которые «ис- черпали» свои ресурсы и возможности. В графовой модели систе- мы это будут насыщенные дуги, образующие разрезы. Увеличение пропускных способностей этих дуг позволит улучшить свойства
системы именно за счет тех составных частей, которые как раз и образовывали в ней «узкое место»1. Кроме возможности определения «узких мест» в исследуемой системе решение задачи о максимальном потоке позволяет отве- тить на вопрос о том, как следует распределить потоки, т.е. как нагрузить элементы, чтобы достичь максимального эффекта, со- здаваемого системой. В этом плане алгоритм Форда—Фалкерсона можно рассматривать как вариант решения задачи оптимизации. И, наконец, еше одна сторона применения задачи о макси- мальном потоке это определение надежности системы и путей ее повышения. В данном случае пропускные способности дуг соот- ветствуют характеристикам надежности исследуемой системы, а потоки на дугах возможным сбоям в работе, отказам и т.п. С по- мощью алгоритма Форда—Фалкерсона можно найти множество ненадежных элементов и при необходимости решать вопросы по- вышения надежности системы, концентрируя внимание на них. 5.3. Модели процессов функционирования систем на базе теории сетей Петри 5.3.1. Общие положения Любая система так или иначе связана с множеством различ- ных процессов, имеющих к ней непосредственное отношение. Глав- ным из этих процессов является процесс функционирования (вы- полнения функций, возложенных на систему). Для моделирова- ния происходящих в системе процессов нашел применение спе- циальный математический аппарат, называемый теорией сетей Петри (СП). Его применение для моделирования является оправ- данным, особенно в тех случаях, когда в системе одновременно протекает несколько процессов, и они оказываются связанными друг с другом (их называют параллельными), так что протекание одних создает условия (позитивные или негативные) для хода других. Оценить свойства и поведение такой системы, рассматри- вая только возможные состояния и вероятности переходов, по- добно тому, как это делается с помощью моделей марковских случайных процессов (см. подразд. 7.2), часто недостаточно; по- следние дают в основном количественную оценку свойствам си- стемы, например, позволяют оценить нагрузки, длины очередей, 1 В системе этим дугам соответствуют конкретные реальные компоненты, фи- зический смысл которых и параметры, аналогичные пропускным способностям, могут быть самыми разными, например, мощность, производительность, про- цессорное время, ресурсы оперативной памяти и т.д.).
вероятности простоя оборудования и т.п. Однако при этом оста- ются не решенными вопросы качества функционирования, в ча- стности вопросы корректности логики функционирования, ее эффективности, безопасности, безызбыточности, полноты и т.д. Существует много разновидностей сетей Петри, из которых наиболее простыми, но тем не менее конструктивными являются обыкновенные сети Петри. Именно с них начнем знакомство с данным математическим аппаратом, поскольку другие разновид- ности СП являются развитием обыкновенных. 5.3.2. Обыкновенные сети Петри Сетью Петри называют двудольный ориентированный граф, содержащий два типа вершин и направленные (возможно, крат- ные) дуги, соединяющие вершины этих двух типов [37]. К одному типу вершин относятся так называемые позиции, соответствующие условиям выполнения действий и изображаемые кружочками, к другому — переходы, соответствующие выполнению событий (дей- ствиям) и изображаемые черточками (барьерами-планками). По- зиция и переход должны иметь по крайней мере одно соедине- ние. На рис. 5.11 представлен пример обыкновенной СП, модели- рующей некоторые действия, выполняемые системой. Вершины- позиции, соединяемые с вершинами-переходами ребрами, на- правленными к переходам, называют входными. Если ребра на- правлены от перехода к вершинам-позициям, то их называют вы- ходными. Каждой позиции может быть поставлено в соответствие определенное число меток (фишек), обозначаемых точками или цифрами внутри позиции. Наличие метки внутри позиции опре- деляет выполнение условия. Распределение меток по позициям называют маркировкой СП. Маркировка полностью определяет текущее состояние процесса. Начальное распределение меток называют начальной маркиров- Рис. 5.11. Моделирование процессов в системе на основе обыкновенной сети Петри до (а) и после (б) срабатывания переходов и t2
кой. Метки моделируют потоки сигналов управления, команд, дан- ных и т.п. Протекание процессов отображается в СП реализацией (сра- батыванием) переходов и перемещением меток. Запускается (сра- батывает) только активный переход, т.е. такой разрешенный пе- реход, во входных позициях которого содержится число фишек, не меньшее числа инцидентных дуг. Разрешенный переход Г, опре- деляется путем сравнения числа меток /л, в позиции р, с кратно- стью (числом) I(phtj) дуг между д и гу и формально определяется неравенством для всех входных позиций т, >/,(/>,?,). (5.19) При запуске перехода /у маркировка СП изменяется. Метки из каждой входной позиции удаляются и образуются новые метки в каждой выходной позиции. Число удаляемых меток из выходной позиции Pi равно кратности дуги Число образующихся в выходной позиции рк меток равно числу дуг из перехода в эту позицию, т.е. кратности выходных дуг О(гу рк). Таким образом, общее число меток в СП при срабатывании перехода может ме- няться. Помещение меток одновременно в несколько выходных позиций соответствует распараллеливанию процесса. Закон функционирования обыкновенных СП определяется со- отношением V/»,-: m'i = т,- I(p,tj) + О((,p,), (5.20) где m' — новая маркировка после запуска разрешенного перехода гу, т, — старая маркировка z-й позиции р,. Событие в моделируемой системе реализуется, если срабаты- вает переход СП. Последовательность реализаций является моде- лью работы системы и называется исполнительской последова- тельностью. При этом число меток в начальной и последующих маркиров- ках СП, число различных переходов, число входных и выходных дуг в каждой позиции определяется соотношениями (5.19), (5.20). 5.3.3. Свойства сетей Петри Свойства сетей Петри определяются ее элементами — позици- ями, переходами, связями между ними, маркировками. Анализ свойств СП позволяет проверить выполнимость требований к ис- ходному моделируемому объекту. В теории СП рассматривают та- кие свойства, как достижимость разметки, «живость» перехода, разметки и сети, безопасность и ограниченность сети, устойчи- вость, сохраняемость.
Разметка Л/'достижима из разметки Мо, если существует по- следовательность запусков переходов /ук}, срабатыва- ние которых из Мо приводит к Л/'. При этом СП проходит после- довательность маркировок: Л/о -> Л/, -» Л/2 ••• -> Функционирование СП полностью определяется последователь- ностью срабатывающих переходов и последовательностью дости- жимых разметок. Множество достижимости сети R(N) — множе- ство всех разметок, достижимых из начальной маркировки Л/о Для сети Петри N. Задача определения достижимости маркировки яв- ляется основной при анализе свойств СП. Переход /у называют достижимым из разметки Л/, если суще- ствует достижимая из М разметка Л/', при которой этот переход срабатывает. Переход называют живым (37], если он является достижимым из любой достижимой разметки М е R(N). Сеть Петри называется живой, если каждый переход в ней живой. Разметка называется живой, если все переходы при этой разметке живые. Разметка называется тупиковой, если ни один из переходов СП не может сработать. Живость перехода свидетельствует о существовании таких усло- вий, при которых моделируемый процесс может активизировать- ся. Это свойство характеризует работоспособность системы и ис- пользуется для обнаружения тупиковых ситуаций в моделируемой системе, когда ни один из переходов нельзя запустить. 5.3.4. Возможности обыкновенных сетей Петри Рассмотрим, как можно применить обыкновенные СП для моделирования ситуаций, возникающих в системах с параллель- но проходящими процессами. Пусть необходимо представить с помощью СП конфликты, когда запрещено одновременное выполнение событий. Два пере- хода находятся в конфликте, если они связаны с общими вход- ными позициями и активны, при этом срабатывание одного из них делает невозможным срабатывание другого. В единицу модель- ного времени срабатывает только один из переходов, находящих- ся в конфликте, и тем самым запрещается срабатывание другого перехода. На рис. 5.12 изображены две конфликтующие позиции Pi и р2, связанные одним переходом. Конфликт за метку в каждой позиции отражает недетерминированность протекающих в сети процессов, их случайность, так как не показан способ разреше- ния конфликта (если только состояние других позиций в СП не воздействует на конфликтующие переходы). Таким образом, пред- полагается, что путь разрешения конфликтов случаен, он может выбираться какими-либо другими средствами, не содержавши-
Рис. 5.12. Модель конфликтных ситуаций (д); модели блокировки ресур- сов (б); модель взаимодействия процессов чтения и записи (в) мися в обыкновенных СП. Введение приоритетов и логических условий для перехода в целях выбора одного из путей перемеще- ния меток (выходов позиций) приводит к другим моделям, выхо- дящим за рамки обыкновенных сетей Петри. Блокировка ресурса моделируется следующим образом. Разре- шение для доступа к разделяемому ресурсу представляется специ- альной позицией, содержащей метку-разрешение. Она запускает один из конфликтующих переходов, соответствующих операции доступа. После завершения доступа метка возвращается этой по- зиции. С помощью СП легко моделируется взаимодействие процессов чтения и записи. При записи ни один из других процессов не мо- жет получить доступ к информационному ресурсу; процессы чте- ния могут выполняться одновременно. Соответствующая этим усло- виям СП изображена на рис. 5.12, в. При этом число одновремен- ных процессов чтения 5 не должно превышать некоторого задан- ного числа п. К достоинствам СП как средства моделирования следует от- нести широкие возможности моделирования, в том числе парал- лельных, конкурирующих и циклически повторяющихся процес- сов. Их можно использовать для моделирования процедур синхро- низации, имитации потерь и отклонения сообщений, управле- ния потоками и др. Достоинствами СП являются также: легкость интерпретации реальных объектов и процессов как элементов СП, наглядность описания; легкость расширения и детализации сетей; возможность формализованного преобразования (декомпозиции, наложения и др.) и анализа сетевых моделей.
5.3.5. Временные сети Петри Часто необходимо учитывать время выполнения действий, со- ответствующих срабатыванию переходов в СП. Это позволяет рас- сматривать временные характеристики работы системы (произво- дительность, среднее время нахождения заявок в системе и др.). Для адекватного представления таких систем необходимо расши- рение аппарата обыкновенных СП. Для оценки времени выполнения каждому переходу Zy припи- сываются переменные, отражающие время срабатывания перехо- дов t(z7). Задержки прохождения меток могут задаваться в виде параметрического распределения или некоторой функции. Такая временная СП определяется в виде TN(N, т), где т — функция времени срабатывания переходов. В некоторых временных сетях Петри задержки т(д) вводятся для меток в позиции д. Они опре- деляют время, в течение которого метка не может покинуть пози- цию (не действует). При более общем подходе временная СП задается в виде TN(N, ^max), где N — обыкновенная СП; Xmin = {Tymin} — множество минимальных задержек для переходов zy, = {тутах}— множество максимальных задержек для переходов Zy. Таким образом, время в СП вводится путем установления для каждого перехода Zy; пары величин Zyrnin, Zymax (или в другом обозначении т/, Ту**). Всегда вы- полняется условие т/ < Ту**. Значение Tymin дляу-го перехода опре- деляет минимальное время, которое должно пройти от момента выполнения всех входных, необходимых для срабатывания пере- хода tj условий, и до момента, когда переход может сработать (т.е. минимальное время ожидания срабатывания перехода после его возбуждения). Значение тутах определяет максимальное время, при котором входные условия могут выполняться, а переход не сра- батывает, т.е. срабатывание происходит не позднее Тутах, если ус- ловия возбуждения перехода еще выполняются. Если условия воз- буждения выполняются, а в промежутке между Tymin и Тутах пере- ход не сработал, то он должен обязательно сработать в Тутах. За- пуск перехода происходит мгновенно. Значения Tymin и Ту^ опре- деляют временной интервал, в котором переход должен срабо- тать, если условия его возбуждения удовлетворяются. Условием срабатывания перехода zy является одновременное выполнение неравенств: ~~ — О, У/min — — ^утах» где Ту — время с момента возбуждения перехода Zy. Обыкновенные СП являются частным случаем временных СП, когда Tymin = 0; Tymax = «>. Достаточным условием ограниченности временной СП является ограниченность соответствующей СП без
временных параметров. Временные СП удобны для моделирования методов повторной передачи при тайм-аутах; для них переходы, работающие как тайм-ауты, срабатывают даже при потере меток. 5.3.6. Раскрашенные сети Петри В раскрашенной СП каждая дуга помечается множеством сво- бодных переменных (цветов), возможно кратных. Меткам также приписываются определенные атрибуты, называемые цветами. Разметка позиций теперь представляется матрицей ||т(р/, <oz||, эле- менты которой т(рь со') = т\ определяют число меток цвета со7 в позиции р,. Введение цветов — атрибутов расширяет возможности моделирования систем с параллельно протекающими процесса- ми, обладающими к тому же и различающимися свойствами. При- мером такого рода процессов может служить вычислительный процесс в системе многопользовательской обработки, построен- ной на основе технологии многомашинного комплекса, в кото- ром выделяются связанные с ним процессы обработки разнооб- разных заданий и работ, поступающих от пользователей, массивы данных, используемых для выполнения этих работ, и другие не- обходимые компоненты. При этом каждое из заданий имеет мно- жество атрибутов, например, очередность, приоритет, ту или иную категорию сложности, может быть связано с условиями выпол- нения других заданий и находиться в данный момент времени в различных состояниях (этапах обработки). Введение цветов для меток не снижает размерности состояния системы. Обыкновенные и раскрашенные СП с конечным (но раз- ным для каждого из них вида) числом признаков эквивалентны. Более универсальными по сравнению с раскрашенными СП являются так называемые предикатные СП. В обыкновенных и рас- крашенных СП не определен реализуемый переход из множества возбужденных переходов. Для отражения порядка срабатывания возбужденных переходов и разрешения конфликтов между пере- ходами необходимо использовать предикатные СП. 5.4. Модели процессов функционирования систем на базе теории конечных автоматов 5.4.1. Элементы теории конечных автоматов Часто при анализе и синтезе автоматизированных систем и осо- бенно при проектировании управляющих устройств возникает необходимость решать задачи, базирующиеся на представлении данного вида объектов в виде моделей конечных автоматов.
Устройство, определяемое конечными множествами состоя- ний входа и выхода, внутренних состояний и двумя функциями: переходов и выходов, называется конечным автоматом (КА). При- чем функция переходов устанавливает зависимость внутреннего состояния автомата в очередной момент времени । от предыду- щего внутреннего состояния в момент t, и соответствующего со- стояния входа, а функция выходов связывает состояния выходов со входами КА при соответствующих внутренних состояниях. Итак, конечный автомат задается пятеркой множеств: S, /, О, (р, Т, где 5 = /, L} — конечное (или счетное) множество дискретных состояний; /— множество входов (входной алфавит); О— множество выходов (выходной алфавит); (p:/xS->S — функция переходов (текущего состояния); Т : 5 х 1 -> О — функ- ция выхода. Переходы между состояниями зависят от входных параметров (сигналов) и текущих значений переменных КА. Они связаны с какими-либо действиями, соответствующими выходным сигналам КА. Автоматная модель должна реализовать действия, производи- мые одним объектом и взаимодействие их, если оно имеет место. Действия при переходе КА из одного состояния в другое опре- деляются текущими значениями переменных КА и значениями входных параметров, соответствующих так называемому интер- фейсному событию. Эти действия изменяют значения перемен- ных одних КА и представляют выходные величины другим через интерфейсы — связи между объектами или соответствующие им связи в моделях КА. Для взаимодействующих объектов составляется общая автомат- ная модель системы, которая строится на основе неформализо- ванного описания (например, словесного) или с использовани- ем отдельных автоматных моделей взаимодействующих компонен- тов системы. Пример 5.5. Приведем пример автоматной модели называемого протоколом чередующегося бита (рис. 5.13). Предполагается, что система состоит из передающей и принимающей частей и связы- вающей их передающей среды. Dq, D\ — передаваемые данные, Ль Ао — сигналы подтверждения их приема со значениями чере- дующегося бита, равными 0 и 1 соответственно. Состояния автоматной модели обозначены буквами 50— S6. Сигналы, на ко- торые должны реагировать взаимодействующие компоненты: Е — ошибка, возникшая в передающей среде, Т — сигнал таймаута, «-» — реакция игнорирования. При построении общей автоматной модели в виде диаграммы состояний на основе анализа работы отдельных компонентов сети передачи данных выделены: 1) состояния, соответствующие ком-
Рис. 5.13. Автоматная модель протокола чередующего бита для источника (а) и приемника (б) сообщений бинациям взаимодействующих компонентов и среды передачи; 2) независимые переходы, реализуемые для различных компонен- тов; 3) переходы, которые должны выполняться параллельно в разных компонентах; 4) переходы, соответствующие потере со- общений и работе механизма тайм-аута. По обшей диаграмме состояний легко анализируются свойства протокола, управляющего процессом передачи, и обнаружива- ются возможные ошибки в логике его описания. Тупики в диа- грамме всей системы характеризуются отсутствием передачи со- общений между компонентами, а также отсутствием выполнения внутренних событий для перехода из такого состояния. При нали- чии циклов генерируется состояние системы, повторяющееся на пути из начального к текущему. Легко проверить также свойство своевременного завершения процесса передачи, управляемой про- токолом. Оно выполняется, если любой путь из начального состо- яния в диаграмме ведет к конечному (или к начальному) состоя- нию. Общее число сообщений в канале показывает выполнение свойства ограниченности протокола, т.е. удовлетворения ресурс- ных ограничений СПД. 5.4.2. Матричные и логические схемы функционирования систем в моделях конечных автоматов Для задания алгоритма функционирования автомата можно при- менить матрицы (таблицы), в которых необходимо указать перехо- ды его из некоторых исходных внутренних состояний в другие внутренние состояния при воздействиях на входы. Эти переходы могут быть заданы таблицей, строки которой указывают внутрен- нее состояние — Sh столбцы определяют состояние входов — Д;
а в клеточках на пересечении столбцов и строк состояние выхо- дов — Oj (табл. 5.6). Кроме задания таблиц переходов применяют также логические схемы алгоритмов (ЛСА). Выражение, составленное из операторов и составляющих ло- гических условий, называется логической схемой алгоритма. Под оператором понимается содержание соответствующих дей- ствий, выполняемых на отдельных операциях в процессе алгорит- ма коммутации. Обозначаются операторы латинскими заглавны- ми буквами, а в скобках, следующих за этими буквами, указыва- ются различные параметры операторов. Например, оператор Л(/, J) может означать умножение Z-й строки нау-й столбец. При этом параметры это дополнительная информация, раскрывающая со- держание выполняемых оператором действий. Начало действия условия обозначается стрелкой, направленной вверх, Т', а ко- нец — вниз 4/. В выражении ЛСА начало указывается справа за обозначением оператора, а конец — слева перед оператором. Алгоритм функционирования конечного автомата может быть также задан с помощью матричной схемы алгоритма (MCA), под которой понимается квадратная матрица со строками и столбца- ми, соответствующими операторам алгоритма, а значения эле- ментов определяются функциями логических условий: А Л А) «01 «04 А «11 ”• «14 • ♦ • - . . • • • ♦ • ♦ Л-1 «4-1. 1 "• «4-1.4 Таблица 5.6 Таблица выходов конечных автоматов Внутреннее состояние Вход /1 h fl 5. О, Оз О3 S2 о. Оз о2 S} О} о4 о, •$4 о4 О, о4
Элементы матрицы MCA должны удовлетворять следующим к условиям: 1) аоаи = 0, если J = /; 2) Uav = 1-Первое условие у=| означает, что после выполнения оператора Л,, сопоставленного с z-й строкой, должен выполняться один оператор, сопоставлен- ный с у-м столбцом; а второе указывает, что после выполнения оператора 4; выполняется обязательно хотя бы один оператор Лу. Анализ алгоритмов, задаваемых в виде ЛСА или MCA, позво- ляет решать различные задачи проектирования коммутационных схем и их элементов, в частности связанные с разработкой управ- ляющих устройств. Например, по ЛСА можно определить неболь- шое количество функциональных блоков устройства управления, оценить время установления соединения /у, оптимизировать струк- туры и решать другие задачи. Пример 5.7. Рассмотрим применение ЛСА для описания алго- ритма работы коммутационной схемы в режиме «свободного ис- кания» (так называется процедура поиска любой свободной ли- нии, соединяющей группы коммутаторов). В укрупненном виде алгоритм свободного искания (выбора ком- мутируемой линии) можно записать с помощью следующего ло- । । гического выражения: ТИУИ2И3И^ I, где И\ — определение входа Ху, на который поступил вызов; И2 — определение промежуточ- ных линий и между звеньями коммутационной системы; — определение свободного выхода Ygh\ — включение ком- мутационных элементов. В свою очередь каждый из операторов укрупненного алгоритма Я,, Я2, Я3, может быть более детально описан с помощью соответствующих ему отдельных составляющих операторов и условий их взаимосвязи. В частности, для этапа Яь отыскание входа, который осуществляется в два приема: поиск коммутатора с поступившим на него вызовом и отыскание в этом коммутаторе входа, находящегося в состоянии вызова, можно построить более подробную ЛСА. Вход определяется двумя координатами: j — номер коммутато- ра звена, / — номер входа в коммутаторе. Поэтому отыскание вхо- да заключается в последовательном изменении значений коорди- нат 7 и у, выборе входа и проверке его состояния. На языке ЛСА это можно записать следующим образом: 3 1 4 2 1 2 3 / i M=.4=i МрП Т4+1 тг pi<n2 Т 4=14=1т В этом выражении приняты следующие обозначения: 4 = i ~ придать координате i значение, равное 1; 4 = i “ придать коорди-
Рис. 5.14. Схема алгоритма в виде ЛСА нате J значение, равное 1; A‘i' — выбор входа звена А с текущими значениями координат / и у; р% — проверка состояния входа (рЦ = 1 при вызове; р% = 0 при свободном входе); д<Л) — проверка текущего значения координаты J (при j < п2 pj<ni = 1, при I = = Pj<n7 = 0); со — безусловный переход. Схема алгоритма, соответствующего приведенному выше выра- жению в виде ЛСА, показана на рис. 5.14. Переход к очередному оператору происходит при р = 1. Аналогичным образом могут быть подробно расписаны другие укрупненные операторы И2, 5.4.3. Об эквивалентности моделей сетей Петри и конечных автоматов Построение модели системы с помощью СП можно выпол- нить на основе преобразования автоматной модели. При этом каж- дый из взаимодействующих КА предварительно преобразуется в СП. Это упрощает понимание и устраняет неоднозначность пред- ставления модели. Пусть имеется описание работы взаимодействующих компо- нентов системы в виде множеств (КА/, / = 1, п). Необходимо построить модель поведения всей системы на основе СП. Для это- го необходимо выполнить следующие шаги, которые легко под- даются формализации. 1. Построить множество описаний работы компонентов систе- мы в виде множеств (СП,, / = 1, л) путем преобразования КА, > > СП/. Полученные СП относятся к подклассу автоматных СП. Для перехода от автоматной модели к эквивалентной СП не- обходимо каждое состояние автомата заменить позицией СП. По- зиция, соответствующая текущему состоянию, содержит метку. Переход соответствует паре состояние — входное сообщение (сиг- нал). Входные позиции перехода соответствуют предыдущему со- стоянию и входному сообщению, выходные — следующему со-
стоянию автомата и его выходному сообщению. Таким образом, для каждого входного и выходного сообщения вводятся дополни- тельные позиции СП. Преобразование КА в СП может также проводиться без введе- ния дополнительных позиций. Тогда переход СП помечается вход- ным и выходным управляющими символами. 2. Для каждой взаимодействующей пары компонентов опреде- лить множество источников и получателей сообщений, связан- ных с этими взаимодействиями. Для СПЪ передающей некоторое сообщение, создать позиции pkh соответствующие другим СП/, принимающим это сообщение. 3. Каждую такую позицию рк1 для пары взаимодействующих се- тей СП/ и СП* соединить с выходами переходов СП*, (они соот- ветствуют передаче сообщения в процессе-источнике) и со вхо- дами переходов, соответствующих приему сообщения во всех про- цессах-приемниках. При этом проводится совмещение позиций с одинаковыми именами (начальных позиций р*/ и вновь образо- ванных входных позиций, направленных в связывающий переход после преобразования KAZ -> СП/). Таким образом, рассмотренные правила основаны на введе- нии дополнительных состояний, соответствующих передаче сооб- щений. Контрольные вопросы 1. Раскройте ваши представления о множествах и операциях, выпол- няемых над ними. 2. В каких разделах и направлениях моделирования систем применяет- ся аппарат теории множеств? 3. Что такое отношения между множествами? Как это понятие приме- няется на практике при моделировании систем? 4. Изложите ваши представления о логических переменных, функциях и алгебрах логики. 5. Какие объекты можно представить в виде моделей булевой алгеб- ры? В чем их особенности? 6. Перечислите операции, выполняемые над булевыми функциями и логическими переменными. 7. Что такое совершенная конъюнктивная и дизъюнктивная нормаль- ные формы (СКНФ и СДНФ)? 8. Какие объекты можно представить в виде графических моделей? 9. Укажите способы формального задания графических моделей. 10. Какова связность древовидной структуры, полносвязной? И. Дайте определение обыкновенным сетям Петри. 12. Какие реальные свойства и атрибуты объектов соответствуют пе- реходам, позициям и маркировке СП? 13. При каких условиях может сработать переход в СП?
14. Какие свойства объектов анализируются с помощью СП? 15. Что понимают под «узкими местами» в моделируемых системах? Как они выявляются? Какие характеристики структуры при этом ис- пользуются? 16. В каких случаях целесообразно для моделирования взаимодействия процессов использовать предикатные СП, в каких временные СП? Ка- кие дополнительные возможности они предоставляют? 17. Как перейти от автоматной модели к описанию на основе обыкно- венной сети Петри? 18. Опишите протокол чередующегося бита на основе СП. Какие про- цессы и события моделирует каждый ее компонент? 19. Какие дополнительные возможности предоставляют раскрашен- ные СП? В чем смысл введения цветов дуг и меток?
ГЛАВА 6 РАБОТА В SIMULINK И STATEFLOW. РЕАЛИЗАЦИЯ МОДЕЛЕЙ ДИСКРЕТНЫХ СИСТЕМ СРЕДСТВАМИ ПАКЕТА MATLAB 6.1. Работа в Simulink 6.1.1. Общие сведения Simulink — интегрированный с MATLAB интерактивный ин- струмент для моделирования, имитации и анализа динамических систем. Он дает возможность строить графические блок-диаграм- мы, имитировать динамические системы, исследовать работо- способность систем, отлаживать и совершенствовать их. Simulink это платформа для проектирования и имитации работы динами- ческих систем в различных отраслях. В распоряжении пользователей имеются интерактивная гра- фическая среда и настраиваемые библиотеки блоков, которые позволят с высокой точностью проектировать, создавать и тес- тировать модели цифровых устройств, средств коммуникации и других динамических систем. Возможности среды Simulink могут быть расширены путем подключения дополнительных модулей, которые позволят решать специфические задачи, связанные с моделированием и проектированием, а также помогут генери- ровать программный код, реализовывать различные алгоритмы, выполнять тестирование и проверки. Simulink тесно интегрирует- ся с системой MATLAB, предоставляя пользователям мгновен- ный доступ к внушительному набору средств разработки алго- ритмов, визуализации и анализа данных, организации доступа к данным, а также численных расчетов. Имеется возможность бы- стро создавать, моделировать и эксплуатировать подробные блок- схемы систем, собранные из готовых блоков, предлагаемых в среде Simulink. Программа Simulink предоставляет набор инструментов для мо- делирования иерархических структур, управления данными и на- стройки подсистем. Предлагаемые средства существенно упроща- ют создание точных и компактных представлений, независимо от сложности исходной системы. Simulink также интегрируется с Stateflow для моделирования поведения, вызванного событиями. Эти преимущества делают Simulink наиболее популярным инст- 150
рументом для проектирования систем управления и коммуника- ции, цифровой обработки и других приложений моделирования. Для построения блок-схем Simulink имеет обширную библио- теку блочных компонентов и удобный редактор блок-схем, явля- ющийся типичным средством визуально-ориентированного про- граммирования. Программа Simulink является приложением к пакету MATLAB. Однако Simulink является достаточно самостоятельным инстру- ментом MATLAB и при работе с ним совсем не требуется знать сам MATLAB и остальные его приложения. С другой стороны, до- ступ к функциям MATLAB и другим его инструментам остается открытым и их можно использовать в Simulink. Часть входящих в состав пакетов имеет инструменты, встраиваемые в Simulink (на- пример, LTI-Viewer приложения Control System Toolbox-пакета для разработки систем управления). Имеются также дополнитель- ные библиотеки блоков для разных областей применения (напри- мер, Power System Blockset — моделирование электротехнических устройств, Digital Signal Processing Blockset — набор блоков для разработки цифровых устройств и т.д). Simulink может использо- ваться, чтобы исследовать поведение широкого диапазона прак- тических динамических систем, включая электрические цепи, амортизаторы, тормозные системы, и много других электриче- ских, механических и термодинамических систем. При работе с Simulink пользователь имеет возможность модер- низировать библиотечные блоки, создавать свои собственные, а также составлять новые библиотеки блоков. При моделировании пользователь может выбирать метод ре- шения дифференциальных уравнений, а также способ изменения модельного времени (с фиксированным или переменным шагом). В ходе моделирования имеется возможность следить за процесса- ми, происходящими в системе. Для этого используются специ- альные устройства наблюдения, входящие в состав библиотеки Simulink. Результаты моделирования могут быть представлены в виде графиков или таблиц. Преимущество Simulink заключается также в том, что он по- зволяет пополнять библиотеки блоков с помощью подпрограмм, написанных как на языке MATLAB, так и на языках С**, Fortran и Ada. 6.1.2. Как работает Simulink Simulink был и остается наиболее популярным компонентом пакета MATLAB. Секрет успеха Simulink прост. При моделирова- нии с использованием Simulink реализуется принцип визуального программирования, в соответствии с которым пользователь на
экране из библиотеки стандартных блоков создает модель устрой- ства и осуществляет расчеты. При этом, в отличие от классиче- ских способов моделирования, пользователю не нужно доскональ- но изучать язык программирования и численные методы матема- тики, а достаточно общих знаний, требующихся при работе на компьютере и, естественно, знаний той предметной области, в которой он работает. Имеется ряд прекрасных книг, знакомящих с этой средой ви- зуального программирования (9, 13, 48|. Анализ имеющейся и доступной русскоязычному читателю литературы показывает, что при рассмотрении этого пакета основное внимание уделяется внешней стороне дела, принципам работы и порядку действий пользователя. В значительно меньшей степени рассматриваются вопросы работы самого пакета. Считается, что эта информация будет избыточной. Однако разработчики MATLAB — Simulink имен- но ее вынесли в начало технической документации по пакету (к сожалению, пока доступна лишь английская версия полного опи- сания). Рассмотрим и мы, что же происходит, когда в Simulink моделируются динамические системы (Simulink — пакет программ, который дает возможность моделировать и анализировать поведе- ние прежде всего динамических систем, системы, выходные сиг- налы которых изменяются с течением времени). Эта информация может быть полезна при создании моделей и интерпретации ре- зультатов моделирования. Процесс моделирования динамической системы в Simulink со- стоит из двух основных этапов. Сначала, используя редактор мо- делей Simulink, создается графическая модель системы, которую нужно моделировать. Модель изображает зависящие от времени математические отношения входов системы, состояний и выхо- дов. Затем Simulink используется, чтобы рассчитать (смоделиро- вать, сымитировать) поведение системы на заданном промежут- ке времени. При выполнении этих расчетов Simulink использует информацию, которая заключается в графической модели. 6.1.3. Этап создания графической модели динамической системы Для создания графической модели динамической системы в Simulink служит окно обозревателя разделов библиотеки Simulink (Simulink Library Browser), которое позволяет выбирать блоки из библиотек стандартных блоков и графический редактор, в кото- ром собственно и происходит создание графической модели. Он позволяет добавлять блоки и осуществлять соединение блоков друг с другом. Основная библиотека Simulink содержит следующие раз- делы:
1. Continuous — линейные блоки. 2. Discrete — дискретные блоки. 3. Functions & Tables — функции и таблицы. 4. Math — блоки математических операций. 5. Nonlinear — нелинейные блоки. 6. Signals & Systems — сигналы и системы. 7. Sinks — регистрирующие устройства. 8. Sources — источники сигналов и воздействий. 9. Subsystems — блоки подсистем. Кроме того, имеется большое число дополнительных библио- тек, содержащих готовые блоки для моделирования аэрокосми- ческих систем и систем наземного транспорта, энергетических установок, систем связи и т.д. Из сказанного уже ясно, что блок-схема Simulink это модель динамической системы, однако модель, представленная не набо- ром математических уравнений (алгебраических, дифференциаль- ных или разностных), а в графическом виде. Она состоит из неко- торого количества элементов (блоков), связанных линиями, по которым передаются сигналы с одного блока на другой. Истори- чески первыми стали использовать такую форму описания систем еще в докомпьютерную эру представители технических наук. Те- перь это традиционная междисциплинарная форма описания си- стем, что также служит популяризации Simulink. Каждый блок представляет элементарную динамическую си- стему, выходной сигнал которой меняется непрерывно (непре- рывный блок) или в некоторые моменты времени (дискретный блок). Каждый блок в блок-схеме имеет конкретный тип. Тип бло- ка определяет отношения между выходами блока и его входами, состояниями и временем. Блок-схема может содержать такое чис- ло блоков любого типа, какое необходимо, чтобы моделировать систему. Блоки представляют элементарные динамические системы, поведение которых Simulink легко моделирует. Блок содержит в себе (инкапсулирует) один или больше компонентов из следу- ющего набора данных: входы, состояния и выходы (рис. 6.1). Вы- ход блока в общем случае — функция времени, входов блока и состояний. Время обязательно присутствует в Simulink-моделях, хотя бы в виде моментов начала и останова процесса моделирова- ния. Функция, которая связывает выход блока с его входами, со- стояниями и временем (метод блока), зависит от типа блока. Наряду с входами и выходами блоки могут иметь состояния. Состояния — переменные, которые определяют выход блока, те- кущее значение состояния есть функция предыдущих значений состояний блока и(или) входов. Блок, который содержит в себе состояние, должен сохранить предыдущие значения состояния,
и ► входы X состояния —— У выходы Рис. 6.1. Блок как элемен- тарная динамическая си- стема чтобы вычислить свое текущее состоя- ние. Говорят, что блоки с состояниями имеют память, потому что такие блоки должны сохранить предыдущие значе- ния их состояний и(или) входов, что- бы вычислить текущие значения состо- яний. Блок Integrator — пример блока, который содержит (инкапсу- лирует) состояние. На выходе блока Integrator имеется интеграл от входного сигнала с момента начала моделирования до текуще- го момента времени y(t) = Уо + J «(Odr. 'О В любой момент значение интеграла зависит от всех предыду- щих изменений входа блока integrator. Поэтому интеграл — состо- яние блока Integrator и, фактически, его единственное состоя- ние. Другой пример блока с состоянием — блок памяти Memory. Блок Memory запоминает значение входного сигнала в текущий момент времени и выдает его в следующий момент. Состояния блока Memory — предыдущие значения его входов. Блок Gain (усилитель) — пример не имеющего состояния бло- ка. Блок Gain выводит входной сигнал, умноженный на некото- рую константу (коэффициент усиления). Выход блока Gain опре- делен полностью текущим значением входа и коэффициентом усиления, который не изменяется. Поэтому блок Gain не инкап- сулирует состояний. Примерами не имеющих состояния блоков являются также блоки Product (умножение) и Sum (сумма). Выхо- ды этих блоков — функции текущих значений их входов (слагае- мых в одном случае и сомножителей в другом). Таким образом, эти блоки не имеют никаких состояний. Каждый тип блока Simulink связан с набором системных функ- ций, которые определяют зависящие от времени отношения между его входами, состояниями и выходами. Системные функции вклю- чают: • функцию выхода fQ, которая связывает выходные сигналы системы с значениями сигналов на ее входе, ее состояниями и временем; • функцию модификации fd, которая связывает значения дис- кретных состояний системы в следующий дискретный момент времени с текущими временем, входами и состояниями; • функцию производных fc, которая связывает производные непрерывных состояний системы с временем и текущими значе- ниями состояний системы и входов.
Символически системные функции могут быть выражены сле- дующим образом: У = fo(t, х, и); xdk„ = fd(t, х, и); Х'с = fc(t, X, U), где у — выходы блока; t— текущее время; — состояние блока, хс — непрерывные производные состояний блока; xd — дис- кретные состояния; и— входы блока. Входе моделирования Simulink вызывает системные функции, чтобы вычислить значе- ния состояний системы и выходов. Свойства многих стандартных блоков задаются параметрами. Например, коэффициент усиления стандартного блока Gain — параметр. Каждый параметризуемый блок имеет диалоговое окно, которое позволяет устанавливать значения параметров при редак- тировании или исполнении модели. Можно использовать выраже- ния (в операторах языка MATLAB), чтобы определить значения параметра. Simulink оценивает выражения перед выполнением мо- делирования. Можно изменять значения параметров в течение моделирования. Это позволяет определять в интерактивном режи- ме наиболее подходящее значение для параметра. Каждый параметризуемый блок эффективно представляет се- мейство подобных блоков. Например, при создании модели мож- но устанавливать параметр «коэффициент усиления» каждого об- разца блока Gain отдельно так, чтобы каждый образец вел себя по-разному. Поскольку это позволяет каждому стандартному бло- ку представлять семейство блоков, параметризация блока суще- ственно увеличивает мощность стандартных библиотек Simulink. Многие параметры блоков являются настраиваемыми. Настра- иваемый параметр — параметр, значение которого может изме- няться в то время, когда Simulink выполняет модель. Например, параметр «коэффициент усиления» блока Gain — настраиваемый. Можно изменять коэффициент усиления блока в то время, когда выполняется моделирование. Если параметр не настраиваемый и моделирование выполняется, Simulink отключает диалоговое окно, которое устанавливает этот параметр. Simulink позволяет задать все параметры в модели ненастраиваемыми. Это может ускорить вы- полнение больших моделей. Стандартный набор блоков Simulink включает как непрерыв- ные, так и дискретные блоки. Непрерывные блоки реагируют не- прерывным изменением выхода на плавное изменение входного
сигнала. Дискретные блоки, наоборот, реагируют на изменения входного сигнала только в моменты времени, кратные значению фиксированного интервала, называемого временем дискретиза- ции блока (sample time). Дискретные блоки поддерживают на вы- ходе постоянное значение между моментами дискретизации. Каж- дый дискретный блок включает параметр sample time, который позволяет определять его время дискретизации. Примеры непре- рывных блоков — блоки библиотеки Continuous. Примеры диск- ретных блоков — блоки библиотеки Discrete. Многие блоки, например блок Gain, могут быть как непре- рывными, так и дискретными, в зависимости от того, управля- ются ли они непрерывными или дискретными блоками. Блок, который может быть и дискретным и непрерывным, имеет неяв- ное время дискретизации (implicit sample time). Блок с неявным временем дискретизации непрерывен, если какой-либо из входов блока непрерывен. Неявное время дискретизации равно самому короткому входному времени дискретизации, если все входные времена дискретизации кратны самому короткому входному вре- мени дискретизации. В противном случае время дискретизации равно фундаментальному времени дискретизации входов, фунда- ментальное время дискретизации набора времен дискретизации определено как наибольший общий делитель набора времен дис- кретизации. Simulink может осуществлять цветовое кодирование блок-схе- мы, чтобы указывать время дискретизации блоков, которые в ней содержатся: черный (непрерывный), сиреневый (постоянный), желтый (гибридный), красный (самый быстрый дискретный) и т.д. Simulink позволяет моделировать сложную систему как набор связанных подсистем, каждая из которых представлена самостоя- тельной блок-схемой. Для создания подсистем используются блок Subsystem и редактор моделей Simulink. Можно вводить подсисте- мы в подсистемы с любой глубиной вложенности, чтобы создать иерархические модели. Можно создавать выполняемые по услови- ям подсистемы, которые выполняются только тогда, когда про- исходят изменения во времени сигнала на запускающем или от- пирающем входе. Simulink позволяет создавать библиотеки пользовательских бло- ков, которые можно затем использовать в моделях. Можно созда- вать пользовательский блок графически или программно. Чтобы создавать пользовательский блок графически, необходимо нари- совать блок-схему, представляющую поведение блока, перенести эту диаграмму в блок Subsystem, и придать блоку диалоговое окно для ввода параметров, используя средство Simulink block mask (тра- фарет). Чтобы создавать блок программно, нужно создать т-файл
или mex-файл, который содержит системные функции блока. По- лученный файл называется S-функцией. Далее нужно ассоцииро- вать S-функцию с блоком S-function в вашей модели. Можно при- дать диалоговое окно блоку S-function, добавляя диалоговое окно к блоку Subsystem. Термин «сигнал» используется в Simulink, чтобы описать вы- ходные величины блоков. Simulink позволяет определять широкий диапазон атрибутов сигнала, включая имя сигнала, тип данных (например, 8-разрядное, 16-разрядное или 32-разрядное целое число), числовой тип (вещественный или комплексный), размер- ность (одномерный или двухмерный массив). Многие блоки могут принимать или выдавать сигналы любого числового типа и раз- мерности. Другие налагают ограничения на атрибуты сигналов, которые они могут обрабатывать. Термин «тип данных» относится к внутреннему представле- нию данных в компьютерной системе. Simulink может обрабаты- вать параметры и сигналы любого встроенного типа данных, под- держиваемого MATLAB, например, int8, int32 и double. Кроме того, Simulink определяет два собственно Simulink типа данных: Simulink. Parameter; Simulink.Signal. Эти Simulink-типы данных фиксируют Simulink-информацию, которая не зафиксирована универсальными числовыми типами, такими, как int32. Simulink позволяет создавать и использовать об- разцы Simulink-типов данных, называемых информационными объектами, таких как параметры и сигналы в моделях Simulink. Можно расширять оба Simulink типа данных, чтобы создать типы данных, которые фиксируют информацию, необходимую вашим моделям. 6.1.4. Этап выполнения моделирования поведения динамической системы Выполнение моделирования динамической системы относит- ся к процессу вычисления состояний системы и выходов на за- данном промежутке времени с использованием модели системы. Simulink моделирует поведение системы после команды Start из меню Simulation редактора при открытой в его окне модели си- стемы. Моделирование системы происходит в две фазы: инициализа- ция и выполнение. В течение фазы инициализации Simulink выполняет следующие шаги. I. Вычисляет выражения для параметров блоков модели, что- бы определить их значения.
2. Раскрывает иерархию, заменяя виртуальные подсистемы бло- ками, которые они содержат. 3. Сортирует блоки по порядку, в котором они должны быть выполнены в течение фазы выполнения. 4. Определяет атрибуты сигнала, не указанные явно моделью (как то: имя, тип данных, числовой тип, размерность) и убежда- ется, что каждый блок может принимать сигналы, связанные с его входами. Simulink использует процесс, называемый распро- странением атрибута, чтобы определить неопределенные атрибу- ты. Этот процесс заключается в применении атрибутов сигнала источника к входам блоков, к которым он направлен. 5. Определяет время дискретизации всех блоков в модели, вре- мя дискретизации которых явно не определено. 6. Распределяет и инициализирует память для сохранения те- кущих значений состояний и выходов каждого блока. Затем моделирование входит в фазу выполнения. В этой фазе Simulink последовательно вычисляет состояния и выходы систе- мы в интервале от начального момента времени моделирования до конечного момента времени. Последовательные моменты вре- мени, в которых состояния и выходы вычисляются, называются тактами. Отрезок времени между шагами называется размером шага. Размер шага зависит от типа решающего устройства, используе- мого для вычисления непрерывных состояний системы, фунда- ментального времени дискретизации системы и наличия разры- вов состояний системы. Вначале по модели определяются начальные состояния и вы- ходы системы, которую нужно моделировать. На каждом шаге Simulink вычисляет новые значения для входов системы, состоя- ний и выходов и модифицирует модель, чтобы отразить вычис- ленные значения. Simulink имеет блоки регистрации и отображе- ния информации. Можно отображать и регистрировать промежу- точные результаты вычислений включением этих блоков в вашу модель. На каждом временнбм шаге Simulink выполняет следующие эта- пы. 1. Модифицирует выходы блоков моделей в установленном порядке. 2. Вычисляет выходы блока, вызывая функцию выхода блока. Simulink передает текущее время, входы и состояния блока в функ- цию выхода, так как эти параметры могут требоваться для вычис- ления выходов блока. Simulink модифицирует выход дискретного блока, только если текущий шаг кратен типовому времени диск- ретизации блока. 3. Модифицирует состояния блоков модели в определенном порядке. Simulink вычисляет дискретные состояния блока, вызы-
вая функцию модификации его дискретных состояний. Simulink вычисляет непрерывные состояния блока, численно интегрируя производные по времени непрерывных состояний. Он вычисляет производные по времени состояний, вызывая непрерывную функ- цию производных блока. 4. Дополнительно проверяются на наличие разрывов непре- рывные состояния блоков. Simulink использует методику, назы- ваемую обнаружением пересечения сигналом нулевого уровня (zero crossing detection), чтобы обнаружить разрывы в непрерыв- ных состояниях. 5. Вычисляет время начала следующего шага. Эти шаги повторяются вплоть до достижения времени остано- ва моделирования. В процессе моделирования Simulink модифицирует состояния и выходы блоков модели один раз в такт (т.е. один раз на каждом временном шаге). Поэтому правильность результатов зависит от порядка, в котором блоки модифицируются. В частности, если выходы блока — функция его входов в текущем такте, блок дол- жен быть модифицирован после блоков, которые управляют его входами. Иначе выходы блока будут рассчитаны неверно. Поря- док, в котором блоки представлены в файле модели, не обяза- тельно совпадают с порядком, в котором они должны быть моди- фицированы в процессе моделирования. Simulink сортирует блоки по порядку в течение фазы инициализации. Чтобы правильно определить порядок модификации, Simulink- блоки делятся на группы по отношению выходов к входам. Бло- ки, текущие выходы которых зависят от их текущих входов, назы- ваются блоками прямого действия (direct feedthrough blocks). Все другие блоки называются блоками непрямого действия (nondirect - feedthrough blocks). Примеры блоков прямого действия: Gain (уси- литель), Product (умножение), Sum (сумматор). Примеры блоков непрямого действия: блок Integrator (интегратор), его выход — функция его состояния); блок Constant (источник постоянного сигнала, константа), он не инкапсулирует входной сигнал; блок Memory (память), его выход зависит от его входа на предыдущем такте. Simulink использует следующие основные правила сортировки блоков: • каждый блок должен быть модифицирован перед любым из блоков прямого действия, которыми он управляет. Это правило гарантирует, что входы блоков прямого действия будут иметь пра- вильные величины, когда они модифицируются; • блоки непрямого действия могут быть модифицированы в любом порядке перед всеми блоками прямого действия, которы- ми они управляют. Это достигается помещением всех блоков не-
прямого действия в начале списка модификации в любом поряд- ке. Данное правило позволяет Simulink игнорировать блоки непря- мого действия в процессе сортировки. Результат применения этих правил — список модификации, в котором блоки непрямого действия оказываются в начале списка в произвольном порядке, после чего идут блоки прямого дей- ствия в порядке, обеспечивающем снабжение верными входны- ми сигналами блоков, которыми они управляют. В ходе сортировки Simulink проверяет и помечает местонахож- дение алгебраических циклов, т.е. сигнальных петель, в которых выход блока прямого действия связан непосредственно или кос- венно с одним из входов блока. Такие циклы на первый взгляд создают тупиковую ситуацию, так как Simulink нуждается в зна- чении сигнала на входе блока прямого действия, чтобы вычис- лить его выход. Однако алгебраический цикл может быть пред- ставлен как система алгебраических уравнений, где вход и выход блока — неизвестные величины. Эти уравнения могут иметь реше- ние на каждом временном шаге. Соответственно, Simulink пред- полагает, что циклы, включающие блоки прямого действия, фак- тически представляют разрешимый набор алгебраических уравне- ний, и пытается решать их каждый раз по мере необходимости модификации блока. Simulink позволяет назначать приоритеты модификации бло- ков. Simulink модифицирует блоки с более высоким приоритетом прежде блоков с низким приоритетом. Simulink принимает во вни- мание приоритеты, только если они совместимы с его правилами сортировки блоков. 6.1.5. Вычислительные аспекты этапа моделирования поведения динамической системы Simulink моделирует динамическую систему, вычисляя ее со- стояния в последовательные такты заданного промежутка време- ни, используя информацию, которая заключена в модели. Модель Simulink определяет производные по времени от непрерывных со- стояний блоков, но не сами значения состояний. Таким образом, при моделировании системы Simulink должен вычислить непре- рывные состояния, численно интегрируя их производные. Про- цесс вычисления последовательных состояний системы по ее мо- дели известен как решение модели. Универсальных методов реше- ния модели не существует. Поэтому Simulink располагает набором программ, известных как решающие устройства (Solvers). Каждая воплощает специфический подход к решению модели. В частно- сти, существует ряд методов численного интегрирования, каж- дый из которых обладает теми или иными преимуществами. Simulink
позволяет работать с программами — решателями обыкновенных дифференциальных уравнений, реализующими наиболее устой- чивые, эффективные и точные из методов численного интегри- рования. При выполнении моделирования пользователь может выбирать решатель из списка. Диалоговое окно Simulation Parameters позволяет выбирать решающее устройство, наиболее подходящее для конкретной модели. Решатели Simulink относятся к двум основным категориям: ре- шатели с фиксированным шагом и решатели с переменным ша- гом. Решатели с фиксированным шагом решают уравнения модели с постоянным шагом времени от начала до конца моделирования. Можно либо определить размер шага в режиме диалога, либо по- зволить выбрать его решающему устройству исходя из заданной точности решения. Вообще уменьшение размера шага увеличива- ет точность результатов, но увеличивает время моделирования. Решатели с переменным шагом изменяют размер шага в про- цессе моделирования, уменьшая размер шага, чтобы увеличить точность, когда состояния модели изменяются быстро и увели- чивают размер шага, чтобы избежать ненужных вычислений, ког- да состояния модели изменяются медленно. Изменение размера шага увеличивает объем вычислений, но может уменьшить общее количество шагов и, следовательно, время моделирования, тре- буемое, чтобы поддержать заданный уровень точности для моде- лей с быстроизменяюшимися или кусочно-непрерывными состо- яниями. Кроме того, Simulink располагает как непрерывными, так и дискретными решателями. Непрерывные решатели используют численное интегрирова- ние, чтобы вычислить непрерывные состояния модели в текущем такте по состояниям на предыдущих тактах и их производным. Непрерывные решающие устройства используют блоки модели, чтобы вычислить значения дискретных состояний модели на каж- дом шаге. Дискретные решатели служат для вычислений в случае диск- ретных моделей. В этом случае не приходится вычислять непре- рывные состояния. Эти решатели лишь модифицируют дискрет- ные состояния модели на каждом временном шаге. Как уже отмечалось, при моделировании динамических систем Simulink проверяет разрывы в фазовых переменных системы на каждом шаге, используя методику, называемую обнаружением пересечения сигналом нулевого уровня (zero crossing detection). Если Simulink обнаруживает разрыв в пределах текущего такта, он определяет точное время, в которое разрыв происходит и выпол- няет дополнительные такты до и после разрыва.
Почему обнаружение пересечения нулевого уровня так важно? Разрывы в фазовых переменных часто совпадают с существенны- ми событиями в эволюции динамической системы. Например, момент, когда упругий шар достигает пола, совпадает с разры- вом в его состоянии, скорость шара при этом скачком меняется как по величине, так и по знаку. Поскольку разрывы часто указы- вают на существенное изменение в динамической системе, важ- но моделировать точки разрыва точно. Иначе моделирование мо- жет приводить к ложным заключениям относительно поведения системы при исследовании. Вновь рассмотрим модель прыгающе- го шара. Если момент, в который шар достигнет пола, произойдет внутри некоторого шага моделирования, то покажется, что шар изменил направление движения на противоположное либо в воз- духе, либо ниже уровня поверхности, с которой он соударяется. Это может привести исследователя к ложным заключениям отно- сительно поведения шара. Чтобы избежать таких ложных умоза- ключений, необходимо, чтобы шаги моделирования приходились на точки разрыва. Имитатор, который полностью полагается на решающие устройства с постоянным шагом модельного време- ни, не может эффективно выполнять это требование. Рассмотрим решающее устройство с фиксированным шагом. Такое устройство вычисляет значения фазовых переменных в фиксированные мо- менты, кратные размеру шага. Однако не имеется никакой гаран- тии, что точка разрыва придется на один из этих моментов. Мож- но уменьшать размер шага, чтобы увеличить вероятность попада- ния в точку разрыва, но это очень увеличит время выполнения. Хорошим решением является решающее устройство с пере- менным шагом. Такое решающее устройство корректирует размер шага динамически, увеличивая размер шага, когда переменная изменяет медленно и уменьшает размер шага, когда переменная изменяется быстро. Вблизи точки разрыва переменные изменяют- ся чрезвычайно быстро. Таким образом, теоретически решающее устройство с переменным шагом способно находить разрыв точ- но. Проблема состоит в том, что при этом решающее устройство также должно выполнять много маленьких шагов, очень замедляя моделирование. Как же работает метод обнаружения пересечения сигналом нулевого уровня? Оказывается, блок может регистрировать в Simulink набор специальных переменных, каждая из которых есть функция фазовой переменной, которая может иметь разрыв. Каж- дая специальная переменная сконструирована таким образом, что проходит через нуль в том или ином направлении тогда, когда соответствующий разрыв происходит. В конце каждого шага мо- делирования Simulink опрашивает каждый блок, который зареги- стрировал свои специальные переменные пересечения нулевого 162
уровня. При этом Simulink проверяет, изменила ли переменная знак, начиная с прошлого шага. Такое изменение указывает, что разрыв соответствующей фазовой переменной произошел имен- но в текущем такте. Если пересечения нулевого уровня обнаруже- ны, Simulink интерполирует значение переменной, которая изме- нила знак, чтобы приблизительно оценить время пересечения ну- левого уровня (т.е. разрыва). Далее Simulink возвращается к мо- менту пересечения нулевого уровня. Обнаружение пересечения ну- левого уровня дает возможность Simulink точно моделировать раз- рывы без необходимости использования чрезмерно маленьких шагов. Многие Simulink-блоки поддерживают метод zero crossing detection. Результат — быстрое и точное моделирование всех си- стем, включая системы с разрывами. Пример блока Simulink, который использует пересечения ну- левого уровня — блок Saturation (нелинейность типа ограниче- ния). Zero crossing detection обнаруживает следующие события в блоке Saturation: • входной сигнал достигает верхнего предела; • входной сигнал оставляет верхний предел; • входной сигнал достигает нижнего предела; • входной сигнал оставляет нижний предел. Каким образом должны быть сконструированы специальные переменные пересечения нулевого уровня? Для блока Saturation, например, сигнал zcSignal, который используется, чтобы обна- ружить пересечения нулевого уровня для верхнего предела UpperLimit (сигнал zcSignal не доступен из блок-схемы) zcSignal = = UpperLimit-u, где и — входной сигнал. Сигналы пересечения нулевого уровня имеют управляющий атрибут, который может принимать следующие значения: • Rising (возрастание) — пересечение нулевого уровня происхо- дит, когда нарастающий сигнал достигает нулевого значения или превышает нулевое значение и становится положительным; • Falling (убывание) — пересечение нулевого уровня происхо- дит, когда сигнал падает до нулевого значения или переходит через нуль и становится отрицательным; • Either (оба направления) — пересечение нулевого уровня в любом направлении. Для сигнала zcSignal блока Saturation направление пересече- ния нулевого уровня Either. Это дает возможность обнаруживать события входа в насыщение и выхода из него, используя един- ственный сигнал пересечения нулевого уровня. Если допуски ошибок слишком велики, Simulink может и не обнаружить пересечение нулевого уровня. Например, если пере- сечение нулевого уровня происходит в пределах такта, но значе- ния в начало и конец шага не указывают на изменение знака,
решающее устройство не обнаружит пересечение. В этом случае необходимо уменьшать допуски ошибки, чтобы гарантировать, что решающее устройство выберет достаточно маленький шаг. В процессе моделирования систем с переменной структурой (например, при исследовании скользящих режимов работы си- стем управления) и в ряде других случаев может быть создана модель, которая демонстрирует высокочастотные колебания (флук- туации) вокруг точки разрыва, дребезг. Такие системы обычно физически не реализуемы, но излишняя идеализация процесса может привести к этим моделям. Поскольку дребезг вызовет по- вторяющиеся пересечения нулевого уровня, размеры шага моде- лирования станут очень маленькими и моделирование по суще- ству остановится. Если есть подозрение, что это поведение свой- ственно созданной модели, можно отключать работу процедуры обнаружения пересечения нулевого уровня, выбирая опцию Disable zero crossing detection (отключение обнаружения пересечения ну- левого уровня) на Advanced панели диалогового окна Simulation Parameters редактора моделей. Хотя отключение обнаружения пе- ресечения нулевого уровня может ускорить моделирование, но той точности рассчетов, которую обеспечивает обнаружение пе- ресечения нулевого уровня, уже не будет. Лучшее решение состо- ит в том, чтобы попробовать идентифицировать источник основ- ной проблемы в модели. Еще одна проблема, лежащая в области вычислений — алгеб- раические циклы. Напомним, что некоторые Simulink-блоки име- ют входы прямого действия. Выход этих блоков не может быть вычислен без информации о значениях сигналов, входящих в блоки по таким входам. Некоторые примеры блоков со входами прямого действия: • блок Math Function; • блок Gain; • порты начальных условий блока Integrator; • блок Product; • блок State-Space, когда имеется ненулевая матрица D; • блок Sum; • блок Transfer Fen, когда числитель и знаменатель имеют одинаковый порядок; • блок Zero-Pole, когда имеются столько же нулей, как и по- люсов. Алгебраический цикл получается, когда вход прямого действия блока подключается к выходу того же самого блока или непо- средственно, или цепью в виде обратной связи через другие бло- ки прямого действия. Пример алгебраического цикла — простая скалярная петля (рис. 6.2). Математически этот цикл подразуме- вает, что выход блока Sum — алгебраическое состояние г, под-
Рис. 6.2. Пример алгебраического цикла — простая скалярная петля держиваемое равным первому входу и минус г (т.е. z = и- г). Решение этого простого цикла z = w/2, но большинство алгебра- ических циклов не может быть решено таким образом. В обшем случае (векторные алгебраические циклы с многими алгебраическими фазовыми переменными г1, г2, ...) проще со- здать модель так, как показано на рис. 6.3. Здесь используются блоки Algebraic Constraint — удобный способ моделировать алгеб- раические уравнения и определять начальные приближения. Блок Algebraic Constraint поддерживает входной сигнал F\z) нулевым и выдает алгебраическое состояние Z- Этот блок выводит значе- ние, необходимое для поддержания нуля на входе. Выход должен воздействовать на вход через некоторую цепь обратной связи. Мож- но задать начальное приближение алгебраического состояния в диалоговом окне блока, чтобы улучшить эффективность (КПД) алгебраического решающего устройства. Скалярный алгебраический цикл представляет скалярное алгеб- раическое уравнение или связь вида F[z) = 0, где z — выход одного из блоков в цикле, и функция F состоит из цепи обратной связи через другие блоки в цикле к входу блока. В примере (см. рис. 6.2) F(z) = Z-(u-z). В векторном примере (см. рис. 6.3), уравнения выглядят следу- ющим образом: г2 -ь г! — 1 = 0; г2 - zl -1 = 0. Алгебраические циклы возникают, когда модель включает ал- гебраическую связь F[z) = 0. Эта связь может возникать как след- Рис. 6.3. Пример векторного алгебраического цикла
ствие физических связей в моделируемой системе. Кроме того, она может возникать при попытке моделировать дифференциаль- но-алгебраическую систему (ДАС). Когда модель содержит алгебраический цикл, Simulink вызы- вает подпрограмму, решающую этот цикл на каждом временном шаге. Решающее устройство выполняет итерации, чтобы найти решение задачи (если это возможно). В результате модели с алгеб- раическими циклами выполняются медленнее, чем модели без них. Чтобы решить уравнение F\z) = 0, решающее устройство Simulink использует метод Ньютона со слабым поиском строки и одноранговой модификацией матрицы Якоби частных производ- ных. Хотя метод устойчив, все же могут быть созданы циклы, для которых решающее устройство не обеспечит сходимости без хо- рошего начального приближения для состояния Z- Можно опреде- лить начальное приближение для связи в алгебраическом цикле, помещая блок IC (который обычно используется, чтобы задать начальное условие для сигнала) в этой связи. Другой способ оп- ределить начальное приближение для связи в алгебраическом цикле состоит в том, чтобы использовать блок Algebraic Constraint. Всякий раз, когда возможно, используйте блок IC или блок Algebraic Constraint, чтобы определить начальное приближение для алгебраических фазовых переменных в цикле. Общее правило гласит, что все циклы, включающие блоки прямого действия, являются алгебраическими. Однако имеются исключения. Их два: • циклы, включающие управляемые фронтом сигнала подси- стемы (Trigered Subsystems); • цикл от выхода интегратора до порта его сброса. Управляемые фронтом сигнала подсистемы (Triggered Sub- systems) относятся к условно выполняемым подсистемам, выпол- нение которых зависит от значения входного сигнала. Сигнал, который управляет выполнением подсистемы, называется управ- ляющим сигналом. Управляющий сигнал вводится в блок Subsystem через управляющий вход. Условно выполняемые подсистемы мо- гут быть очень полезны при создании сложных моделей, которые содержат компоненты, выполнение которых напрямую зависит от выполнения других компонентов. Simulink поддерживает несколь- ко типов условно выполняемых подсистем. Управляемая уровнем сигнала подсистема Enabled Subsystem (Е-подсистема) выполняется в то время, когда управляющий сиг- нал положителен. Она начинает выполнение во время того шага, на котором управляющий сигнал пересекает нулевой уровень (в направлении от отрицательного к положительному значению) и продолжает выполнение все то время, пока управляющий сигнал остается положительным.
В отличие от нее управляемая фронтом сигнала подсистема Triggered Subsystem (Т-подсистема) начинает выполняться, как только происходит «триггерное событие». «Триггерное событие» может заключаться в превышении управляющим сигналом нуле- вого значения или в снижении сигнала до отрицательного уровня. В интервале времени между «триггерными событиями» Г-подси- стема поддерживает на выходе постоянный уровень сигнала. Та- ким образом, решающее устройство может безопасно использо- вать выход с предыдущего такта системы, чтобы вычислить вход на текущем такте. Именно так и поступает решающее устройство, когда сталкивается с циклом, включающим Т-подсистему, уст- раняя потребность в алгебраическом решающем устройстве. Поскольку решающее устройство использует предыдущий вы- ход Г-подсистемы, чтобы вычислить входы обратной связи, сама Г-подсистема и любой блок в ее цепи обратной связи может де- монстрировать задержку на один шаг дискретизации на выходе. При моделировании системы с Г-контурами обратной связи Simulink выдает предупреждение, чтобы напомнить, что такие за- держки могут происходить. 6.1.6. Анализ результатов моделирования динамической системы Одним из эффективных средств анализа результатов модели- рования является просмотр выходной траектории движения си- стемы. В Simulink можно получать графики выходных траекторий, используя один из трех методов: • подачу сигналов в блоки Scope (осциллограф) или XYGraph (графопостроитель); • запись выходных сигналов в возвращаемые переменные и использование команд MATLAB для построения графиков; • запись выходных сигналов в рабочее пространство с исполь- зованием блоков То Workspace (в рабочее пространство) и по- строение графиков результатов с использованием команд MATLAB для построения графиков. Использование блока Scope обычно не составляет технических проблем. Можно наблюдать выходные траектории на экране бло- ка Scope в процессе моделирования и после его окончания. Блок Scope дает возможность раскрыть области, представляющие ин- терес, или сохранять данные в рабочем пространстве. Блок Scope строит сигналы в функции времени. Блок XYGraph строит гра- фик изменения одного сигнала относительно другого. Использование виртуальных осциллографа и графопостроите- ля — не единственная возможность наблюдать результаты модели- рования. Вместо них можно использовать блок Out (из) — Outport
Step Transfer Fon To Workspace Step Transfer Fon Out Clock Рис. 6.4. Запись выходных сигналов в возвращаемые переменные To Workspace 1 Рис. 6.5. Запись выходных сигналов в рабочее пространство MATLAB блок из библиотеки Signals & Systems (сигналы и системы). Возвра- щая время и хронологию изменения выходных переменных (рис. 6.4), можно затем использовать MATLAB команды построения графи- ков, чтобы отображать и аннотировать траектории выхода. Вывод- ная траектория yout возвращается решающим устройством. Можно также выполнить моделирование через меню Simulation, опреде- ляя переменные: время, выход и состояние на странице Workspace I/O (ввод — вывод в рабочее пространство) диалогового окна Simulation Parameters. В дальнейшем можно построить результиру- ющий график, используя команду » plot(tout, yout). Наконец, блок ToWorkspace может использоваться, чтобы со- хранить траектории в рабочем пространстве MATLAB. Модель (рис. 6.5) иллюстрирует использование этого блока. Переменные у и t появляются в рабочем пространстве, когда моделирование закончено. Вектор времени сохраняется подачей сигнала блока Clock в блок То Workspace. Вектор времени может также быть сохранен, если ввести имя переменной time в область Workspace I/O диало- гового окна Simulation Parameters для моделирования, управляе- мого через меню, или возвращая его, используя команду sim. В блок То Workspace может направляться массив, при этом каждая тра- ектория сохранится в своей части переменной рабочего простран- ства. 6.2. Построение моделей логических элементов в MATLAB-Simulink Для моделирования простых логических устройств комбинаци- онного типа может использоваться библиотека блоков Simulink с названием Logic and Bit Operations, содержащая блоки логических операций и операций над битами. Так, блок логических операций Logical Operator реализует по выбору пользователя любую из базовых логических операций. Его основные параметры:
1. Operator — вид реализуемой логической операции (выбира- ется из списка): AND — логическое умножение (операция И); OR — логическое сложение (операция ИЛИ); NAND— операция И—НЕ; NOR — операция ИЛИ—НЕ; XOR— исключающее ИЛИ (операция сложения по моду- лю 2); NOT — логическое отрицание (операция НЕ). 2. Number of input ports — количество входных портов. Выходным сигналом блока является 1, если результат вычис- ления логической операции есть ИСТИНА, и 0, если результат — ЛОЖЬ. Входные сигналы блока могут быть скалярными, вектор- ными или матричными. Если входные сигналы — векторы или матрицы, то блок выполняет поэлементную логическую опера- цию, при этом размерность входных сигналов должна совпадать. Если часть входных сигналов — векторы или матрицы, а другая часть входных сигналов — скаляры, то блок выполняет логичес- кую операцию для скалярных входных сигналов и каждого эле- мента векторных или матричных сигналов. Размерность выходного сигнала в этом случае будет определяться размерностью вектор- ных или матричных входных сигналов. При выполнении логичес- кой операции отрицания блок будет иметь лишь один входной порт. Входные сигналы могут быть как действительного, так и логического типа. Примеры использования блока Logical Operator показаны на рис. 6.6. В состав библиотеки Logic and Bit Operations входит еще целый ряд полезных блоков, выполняющих логические операции. Один из них — блок комбинаторной логики Combinatorial Logic — пре- образует входные сигналы в соответствии с таблицей истинности. Параметр блока Combinatorial Logic: Truth table — таблица истин- ности. Блок Combinatorial Logic обеспечивает преобразование вход- ного сигнала в соответствии с правилами, определяемыми таб- лицей истинности. Таблица истинности представляет собой спи- сок возможных выходных значений блока. Такое описание работы устройств принято в теории конечных автоматов. Число строк в таблице истинности определяется соотношением number of rows = 2Anumber of inputs, где number of rows — число строк таб- лицы истинности; number of inputs — число входных сигналов. Входные сигналы при составлении таблицы истинности считают- ся заданными. Они определяют индекс (номер) строки, в которой записываются выходные значения блока. Индекс каждой строки оп- ределяется выражением row index = 1 + и(т) • 2° + и(т - 1) • 21 +...+ + w(l)-2m~ где row index — индекс строки; и(т) — последний
Constant 1 Constants Constant6 Operators Рис. 6.6. Примеры использования блока Logical Operator Таблица 6.1 Вход 2 Вход 1 Выражение для индекса строки Значение индекса строки Таблица истинности (Выход) 0 0 1 +0-2° + 0-2| 1 0 1 0 1 + 1 - 2° + 0 2' 2 0 0 1 1 +0-2°+ 1 -21 3 0 1 1 1 + 1 -2°+ 1 -21 4 1
Constant 1 Рис. 6.7. Пример использования блока Combinatorical Logic входной сигнал (последний элемент входного вектора); т — ко- личество входных сигналов (элементов во входном векторе), w(l) — первый входной сигнал (первый элемент входного вектора). Ниже приведен пример формирования таблицы истинности операции логического И (AND) для двух операндов (табл. 6.1). На рис. 6.7 показан пример реализации операции логическо- го И с помощью блока Combinatorical Logic. Параметр Truth table блока задан выражением [0; 0; 0; 1]. Реализованная на блоках библиотеки Logic and Bit Operations модель устройства кодирования информации (кодера) из приме- ра 5.1 показана на рис. 6.8.
•♦3, Аллардтмм модель конечного месыатд Нкхмгпргнныг ринес устроите атмкгти я фунаимсмыы<им Огшмрцмннни < <<раэоавтслам логмчесво* имферммхмн Вы >П1яы< сигналы тж>п >сгрс4стя в клады* помет яремеме мн*- cwt лишь от енпциа посылающей на ионы а мо дг еммие ере м«. м не ммсет <м арелысторым цхобрдмынмд Бшзос слидмый гмн югмжиии yvrpaftL*T> — ncKir.nwrciwn^r «lotHwcv&Mc учггринстш млн нгтюмгы Ржгхмчяятг прогрпиммую и влиаржпою ре 1пвгпирит лгтмгтпд Гж h Н Г(ыфом юмемгимя «хижгг и аывмнясо сигмах* чггмрея- акджтс*т> pci нету саяигти 1П
Простейший вариант аппаратной реализации автоматов пред- усматривает использование двоичных элементов памяти — триг- геров. Триггеры находятся в библиотеке расширений Simulink — Simulink Extras, в разделе FlipFlops. Этот раздел содержит D-триггер, JK-триггер и RS-триггер. Рассмотрим в качестве примера использования блоков раздела RipFlops модель четырехразрядного регистра памяти, построен- ного на D-триггерах (рис. 6.9). Графики изменения входных и выходных сигналов представле- ны на рис. 6.10. Параллельный код (Signal 1 — Signal 4) записыва- ется в регистр памяти не в момент его изменения (/= 3 с), а лишь после поступления тактирующего импульса (Signal 5) при t = 4 с. Далее этот код сохраняется в регистре. 6.4. Программное средство описания конечных автоматов — язык состояний и переходов В настоящее время для моделирования поведения конечных ав- томатов, функционирующих в соответствии с дискретными со- бытиями, широко используется предложенный Д.Харелом визу- альный формализм — диаграммы состояний и переходов [20]. Ос- новные неграфические компоненты таких диаграмм — это собы- тие и действие, основные графические компоненты — состояние и переход. Событие — нечто, происходящее вне рассматриваемой систе- мы, возможно, требующее некоторых ответных действий. Собы- тия могут быть вызваны поступлением каких-либо данных или задающих сигналов со стороны человека или другой части систе- мы. События считаются мгновенными (для выбранного уровня абстрагирования). Действия — реакции моделируемой системы на события. По- добно событиям, действия принято считать мгновенными. Состояние — условия, в которых моделируемая система пре- бывает некоторое время, в течение которого она ведет себя оди- наковым образом. В диаграмме переходов состояния представле- ны прямоугольными полями со скругленными углами. Переход — изменение состояния, обычно вызываемое некото- рым значительным событием. Как правило, состояние соответ- ствует промежутку времени между двумя такими событиями. Пе- реходы показываются в диаграммах переходов линиями со стрел- ками, указывающими направление перехода. Каждому переходу могут быть сопоставлены условия. С каждым переходом и каждым состоянием могут быть соотнесены некото- рые действия.
I nc Button/ Рис. 6.11. Диаграмма состояний и переходов цифровых часов Рассмотрим в качестве примера диаграмму состояний и пере- ходов цифровых часов (рис. 6.11). На часах имеется две кнопки: ModeButton и IneButton (кнопка образа действия и кнопка увели- чения). Нажатие любой из них генерирует событие, которое мо- жет вызывать переход из одного состояния в другое. Имеются три состояния: Display, Set Hours and Set Minutes (дисплей, установка часов и установка минут). Состояние Display (дисплей) — началь- ное состояние (что обозначается стрелкой, направленной от бло- ка «переход по умолчанию» в виде черного круга). В состоянии Set Hours (установка часов) событие ModeButton вызывает переход к состоянию Set Minutes (установка минут), тогда как событие Inc Button увеличивает текущее время (число часов), которое ото- бражается на экране, причем перехода в другое состояние не про- исходит. Каждому состоянию соответствует действие, содержание которого указано внутри графического объекта для соответствую- щего состояния после служебного слова do. Действие начинает выполняться после того, как переход в соответствующее состоя- ние произошел и заключается для состояния Display в отображе- нии текущего времени (display current time), для состояния Set Hours в отображении текущего количества часов (display hours) и для состояния Set Minutes в отображении текущего количества минут (display minutes). 6.5. Моделирование систем в Stateflow Существенно повышает степень наглядности модели исполь- зование анимации, отображающей изменения в системе, сопро- вождающиеся переходами от одного состояния к другому. По- строение таких моделей возможно с использованием программ Stateflow и Simulink, входящих в состав пакета MATLAB, кото-
рый обеспечивает доступ к различным типам данных, высоко- уровневому программированию и инструментальным средствам визуализации. Simulink поддерживает проектирование непрерыв- ных и дискретных динамических систем в графической среде (в виде блок-схем). Stateflow-диаграммы, использующие визуальный фор- мализм Харела, включаются в модели Simulink, чтобы придать Simulink новые возможности по моделированию процессов, уп- равляемых событиями. Stateflow обеспечивает ясное описание по- ведения сложных систем, используя диаграммы состояний и пе- реходов. Stateflow — мощный графический инструмент проектирования и моделирования комплексных систем локального управления и супервизорного логического контроля. Используя Stateflow, мож- но: • визуально моделировать гибридные системы, опираясь на теорию конечных автоматов; • проектировать и совершенствовать детерминированные си- стемы супервизорного управления; • легко изменять проект, оценивать результаты и проверять поведение системы на любой стадии проектирования; • автоматически генерировать программный код (целочислен- ный или с плавающей точкой) непосредственно по проекту (при использовании Stateflow Coder); • пользоваться преимуществами интегрирования с MATLAB и Simulink при моделировании и анализе систем. Stateflow позволяет использовать систему обозначений диа- граммы потоков (flow diagram, блок-схема алгоритма) и систему обозначений переходов состояний (state transition) в одной диа- грамме Stateflow. Система обозначений диаграммы потоков — ло- гика, представленная без использования состояний. В некоторых случаях система обозначений диаграммы потоков ближе логике системы и позволяет избежать использования ненужных состоя- ний. Система обозначений диаграммы потоков — эффективный способ представить общую структуру программного кода как кон- струкцию в виде условных операторов и циклов. Stateflow также обеспечивает ясные, краткие описания пове- дения комплексных систем, используя теорию конечных автома- тов, диаграммы потоков и диаграммы переходов состояний. Stateflow делает описание системы (спецификацию) и проект бли- же друг другу. Создавать проекты, рассматривая различные сцена- рии и выполняя итерации, намного проще, если Stateflow моде- лирует поведение системы. Stateflow состоит из следующих компонентов: • Stateflow графический редактор (Stateflow graphics editor); • Stateflow проводник (Stateflow Explorer);
• Stateflow генератор объектного кода для симуляции (Stateflow Coder); • Stateflow отладчик (Stateflow Debugger); • Stateflow проверочное устройство (Stateflow Dynamic Checker). Stateflow используется вместе c Simulink и по желанию — с Real-Time Workshop (мастерской реального времени RTW), под управлением MATLAB. Возможно проектировать модель, начи- ная с Stateflow (управляющей) части, а позднее скомпоновать Simulink-модель. Можно также проектировать модель, начиная с Simulink (алгоритмической) части, а позже добавить диаграмму Stateflow. Наконец, можно улучшить существующую Simulink-мо- дель, заменяя логические блоки Simulink на Stateflow-диаграммы. Подход, который используется, определяет, в какой последова- тельности разрабатываются различные части модели. Совокупность всех Stateflow блоков в модели Simulink это Stateflow-машина. При использовании Simulink вместе с Stateflow, Stateflow генерирует S-функцию для каждой Stateflow-машины, чтобы поддерживать моделирование. Этот сгенерированный код для моделирования называется sfun кодом Stateflow. Приведем описание отдельных объектов Stateflow, из которых строятся Stateflow-диаграммы. Stateflow-диаграммы составляются из символических объектов языка Stateflow. Изучение этих объек- тов — первый шаг к построению эффективных Stateflow-диаграмм. Перечислим различные типы доступных в Stateflow объектов: • графические объекты — диаграммы, состояния, блоки, функ- ции, переходы и соединения, с которыми вы работаете в редак- торе Stateflow; • неграфические объекты — данные и события, которые пред- ставлены в текстовом виде в редакторе Stateflow-диаграммы или инструментах проводника Stateflow; • словарь данных — объединяет все объекты Stateflow (графи- ческие и неграфические) в иерархическую базу данных; • представление иерархии — отображает иерархию объектов State- flow в словаре данных для графических и неграфических объектов. В табл. 6.2 приводится название (Name) и условное обозначе- ние (Notation) графических объектов Stateflow. Объект появляет- ся, когда вы рисуете диаграмму в редакторе диаграмм, для этого используется соответствующий значок (Toolbar Icon) на панели инструментов. Stateflow определяет следующие неграфические (не имеющие графического представления в редакторе диаграмм Stateflow) объекты: события, данные, коды. Их можно увидеть в проводнике Stateflow. События — объекты Stateflow, которые могут переключать всю диаграмму Stateflow или конкретные действия в диаграмме. Так 176
Таблица 6.2 Name Notation Toolbar Icon State (состояние) > 9 • Transition (переход) \ B Нет History junction (соединение с памятью) (н) Default transition (переход по умолчанию) A ъ Connective junction (подключаемое соединение) Truth Table Function (таблица истинности) truihtable 9 | Graphical function (графическая функция) function () l/()l Embedded MATLAB Function (встроенная MATLAB функция) eM ? Box (блок) ? как выполнение Stateflow-диаграмм является реакцией на собы- тия, необходимо определить и запрограммировать события в диа- граммах, чтобы контролировать их выполнение. Можно распро- странять событие на все объекты либо посылать событие на опре- деленный объект.
Диаграмма Stateflow хранит и восстанавливает данные, кото- рые используются для управления действием диаграммы. Данные Stateflow помещены в собственное рабочее пространство, но воз- можен доступ к данным, которые располагаются в модели Simulink или приложениях, которые встроены в машину Stateflow. Когда создается Stateflow-диаграмма, необходимо определить внутрен- ние и внешние данные, которые используются в языке действий Stateflow-диаграммы. Для выполнения приложений, которые запрограммированы в диаграммах Stateflow и моделях Simulink, строятся Stateflow-коды. Код — программа, которая выполняет Stateflow-диаграммы и мо- дели Simulink, включенные в машину Stateflow. Коды моделиро- вания (называемые sfun) используются для расчетов при выпол- нении моделирования. Коды мастерской реального времени (*.rtw) используются для выполнения на внешнем процессоре. Словарь данных — база данных, включающая в себя всю ин- формацию о графических и неграфических объектах. Словарь дан- ных для графических объектов создается автоматически. Для не- графических объектов необходимо определять данные, используя проводник. Грамматический отладчик анализирует входы и связи между входами в словаре данных, чтобы проверить правильность нотаций. 6.6. Особенности построения моделей в Stateflow Данный подраздел посвящен особенностям построения моде- лей в Stateflow. Эта процедура несколько сложнее, чем построе- ние Simulink-моделей. Далее показано, как использовать Stateflow, чтобы создать, отладить и выполнить простую модель. На рис. 6.12 приведена Stateflow-диаграмма, которая представ- ляет переключатель питания. Там же имеется законченная Simulink- модель. Когда эта модель запускается, входное событие Switch (вы- ключатель) от Simulink переключает активность состояний между Power_on (питание включено) и Power_off (питание отключено). Открытие окна Stateflow-модели — первый шаг к созданию модели Simulink с Stateflow блоком. По умолчанию, untitled (не- названная) Simulink-модель с пустым Stateflow блоком Chart со- здается, когда вы открываете окно Stateflow-модели. Вы можете запустить пустую модель или скопировать Stateflow блок Chart в любую Simulink-модель, чтобы включить диаграмму Stateflow в существующую Simulink-модель. Эти шаги описывают, как создать Simulink-модель с блоком Stateflow, назвать блок Stateflow и сохранить модель.
Fmc л 11 ЯшгПп* иядеь »«|>м»т«тма планка I Ornfipawrv окно Smrrtow-wtxwiM aaninv кеамнхы rtartAiw MATLAB гттпГ<5вж»гг Аивляотст Мгжа Maarfkrw |рж б 1I) 1.»Лг»гтт»ы ргогржнт жлт SiatrAow П»п»л Chart и Атак njn- ме рое L»amp¥5 Suiefkrw также р^пбеиадет ото urr»'trf monkw Sinulit* c Sutefto* &к«ом Chart <p«c 6 H> Рж A 11 1Uf«M* «w cmMMti М»Яо*-а«аас(я
РЖ. 6 И. ШМГ СОМЖМЫ «млели 2 Дмь киник блок) Staieflu*. HatoMKte блж Suirfkr* м ммаМ! uaijfied шслхлн. наиамшы ь гскгтс>маА облает» и мшпотж ttSCT «Chart» тешлеы «On u(T« (jwc <kl 5F J. Соврппгтъ wawm Выберите Six м мт меню File окна и<шли S*niMnk Нкпгтг на модели |рнс.6 Н>) Вы можете такж соареашп» моих», выбрав Sa*e ил» Save Лл и меню File 1|ыфычген«и реламгера ЯмеЛо* Ссецмнемые модели и* * SmuinK тма н a Suiefkn* соарамыет асе ьодераинме модели Sumimk. t*»c. K1S. I рсти* uar OTiwiiM Siatetov-ыихгм
Кк Й16 Чтгртый u«f c€Umh< MAdb* nulk.» Дад» описано, uk сдштъ простую мирамм» 5ыи(км, яс- пижм/уч |рыфмческлй ремктор I ймилк гтаЦммвскай режакюр. Дмалхш щелкнуть ая futiar Stilrfkm а окне манде Smuknk ‘ГггЛы вы таил» окно гр*||ячеексгп рс.1дьтирл |рнс. 6 IJ). 2 СлЩП СПСТГИННГ 11шп на ююпау Чти в ммггрп/гкпъ»гн пями iarrw игл кнутъ левой квотой w^iuh г o&iarn* ржомкма. onto разно: тип. состояние г* этой ctaacm Установить курсор оиутрм состсяа шй, ммкатъ п(мв>к« кнопку мыши и переместить ее. чтобы сое ЛМЬ кюпмю Сйеммииа. Отпилить прмую кнопку мыиая чтобы остатгтъ ссжлсимяс а фанноы ыситс. Рис. 6 IT. Питый шаг сг'хмвня Scarfky* mq*.w
Power_on Рис. 6.19. Седьмой шаг создания Stateflow-модели Рис. 6.18. Шестой шаг создания Stateflow-модели 3. Назвать состояния. Нажать на кнопку ? внутри состояния, чтобы ввести имя со- стояния (метку). Назвать состояния Poweron и Power_off. Снять выделение состояния, чтобы выйти из редактирования. Чтобы снять выделение состояния, нажать левую кнопку мыши где-нибудь вне состояния или нажать клавишу Esc. Stateflow-диаграмма показана на рис. 6.18. 4. Создать переходы. Создать переход, начинающийся в Power_on и заканчивающий- ся в Power_off. Для этого разместить курсор на прямолинейном участке границы состояния Power_on. Нажать курсор, когда он изменится на перекрестие. Не отпуская кнопку мыши, перета- щить курсор к прямолинейному участку на границе состояния Power_off. Когда переход достигнет границы состояния Power_ofT, отпустить кнопку мыши (перекрестие не появится, если располо- жить курсор в уголке состояния, так как углы используются для изменения размеров). 5. Создать другой переход, начинающийся в Power_off и за- канчивающийся в Power_on. Полученная Stateflow-диаграмма по- казана на рис. 6.19. 6. Назвать переходы. Нажать на переходе от Power_on к Power_ofT, чтобы выбрать его. Нажать на кнопку ? рядом с переходом и ввести имя Switch (выключатель). Нажать клавишу Escape, чтобы снять выделение имени перехода и выйти из редактирования. 7. Назвать переход от Power_ofT к Power_on тем же самым име- нем Switch. Полученная Stateflow-диаграмма показана на рис. 6.20. Рис. 6.20. Восьмой шаг создания Рис. 6.21. Девятый шаг создания Stateflow-модели Stateflow-модели
* U Mfcl <Wt Off Гис 6 33 Лссгтый uar truwm Scaaafby»-a<i«c.ia fc Прибавить игреnu i>u умна чан и k> Нажига и отпустите имей на кневтке DeSadi Тгагм1кя и цист* р> мгтгпетьакЯ «мили Переместить сурсср « пг**».-пимп»нпм\ у'»- стку м границе состаяниа Ис«иег_<< Нажап и ответить мыши мети стречи .ыктв»гмет границы Fo*tr о(Т Пату*с»»»ая Swe<o* анаграмма ааохошы на pwc 621. йгл иьХимииачи доСыаита и определить кммжые события ь лаыгрвмыу Sbrtefkft* I Я мера г а Fipx.-rr Iotaцхжггех») а меню ТиоК гры^имзеамго ре пятну* чтиеы выветть Ежркатгг 2 Лмеа.тм щелкнуть на имени машины (свит го же самые, чти има месте гм ЯгглиПп») в списке iHtctt Hierarchy |мсра(пна пЬхк- ТО» ' 5 Выделить элемент Оя_с4Г диаграммы в списке иера^иго об>иктоо |рыс. 6.22). 4 Выбрагь E»ent («ifluntel • меню Add S Д|вг*лы о*сгинуть ам мг«ке ссбытма Slaldlir* Eapairr (n6t>- XMMTr.iei. tti*m пгоОрагчгп. пиатптмм who скойст» собагеиа (рас 6 2J> б Ввести им« Swift* а аоае Narae |мм<) тткиоасго оали tww рпэрслкс IcecCJcHM С<.<б<4тНЙ| 7 ВыС<ыгь 1лр«1 from SinMlirA (нмммише <я SanUink) их ша чение параметра Scope Iвидимости 8 BtZparc Riset* Elfci (тирастаюшм* nepenu) ма. тип Triger ||рыперы|. 9 Haauata на мючтк» ОК, миСм примени та итмсааемам и ы- кр*гп< окно (раас. 6.]4|. 10 , Выбрать Ckwe I как рыть | к» меню Flic пеюаргжатсма
Рн. CkXH-uiirкН nil St^rlk-w Miun Теперь OCyUMMH imih В Sifwlint-tmae^n мгжху бмиом SlMcfuw другими бяжлым Дм rrcm HccfttaiHun I Ввести ияанл) ЧтпиМпк r КМЯЦНОИ <жнг MA 11 ДЖ. чтсЛм RMiKMtb Simdink htc Двс»«&иапМ1 oar tnuiitu Suorflcw-моле.«и
Ни: 6 ±S. 1[шиигын ui- «1ымм«а «шел* J лкЛяытгь Пкес Sirr Waw (jmc- ПОД0«П*Ч1в В ПнМп'-тгке Srtiim блоков Simdlnk) и ncauwewn-ero к аиммюму т*гтчм»1*о 'орту &ы* ИВ Suieflow У ЛсбММТЬ Слж 5С(*С (ркпо доменный • бибик-теже Sub Sk* кем SmiBrnk.l и также амжпимиеь его к иыаодам балка Sine Wawt. Haim модель дплхиа выганжть, как тьжамнп од pm- 67$ Слелуюимй зил - оафелелсмаи пеимметроо Simulink. Для этого нужно вьмшнить с здкодые 1шк I Дважды щелкнуть на Sx<t Star Wave и ргымгцхтпы паркам: I ры, амь пн камни a uhmuiohim пенс |рнс. 6J6) Навягь од BMumor ОК, «тисы применить имененни мкрыть лтаптпепс тип 2 ВыПртгь 1‘irwnrirr <( 1л-выггри । в мен» SmiKOMi окод мо- дели SlmMlir* и риактмромгтъ тшв. ттаСы они соопгтство- 1ыли М1«чениам в дншгсосм мне (рмс S27k С сдукший тгеп - аемтмсмчеСкмА анклнт <РмМг<) Sweflo* kUWfptMMM. СингжхняпжнН ан mi и । 8миП<т-&ммр4ммы парой шруст, чго rwnrwa оба 1н*чгммй коти<шс мы опрг.камин, имггт vm-п н аир- Pik 4 J*. lurcmiiHii Stwfka-iKMiH
ba. 6 27 Пэтмалалгы!' Mil члгдаым 9aief«>* ниан рекпы Чтобы ороаниы шротмтъ дамтунымч 5<меПо*. неоСадо* ал- >ыб(мтъ Parve DiMXart мт ые»«*« 1<юЬ графического реытаторк И»форы*1М1>1Нкс сдебиеыые Рм*4г« suuceufel fc* iruchue «ивхн letl»l*l$) Gfart oruCfMJKHu • аиыааадноы иные MATLAB. .laZue ennNiiCHHa пб сапмбаса» гтгсбраажтд краасимм иагтиы Е<ла со* обшнмв <4 ошибка* •< пгчкиктпя. ппартчдая сим-писси'осапго <тиим мгипина Hitoxieu. чо&мо мпустита мсоель mi «ыгкхтменме Д*я этого акоб«йиммо: I. Убедит к*. *tu Slaie&/w дим(ummi и бшк Scc^e открыты Рм t M Шястгашшыа амгсошмм Уымба* «мм*и 1W>
h*c. B-M СсмкиитыВ ur cniuwaa Suxlkw iKMix Джьвлм ыелвиутъ «а блоке On nff SutHkm. чтобы еггтЛри штъ Subclbv лкагрчмыу > Никлы шеткнуть mb fiance Sccpa, чтобы ото бра ость мамка Sir* Wa»r 2 Ныбра-п. Open NmUarmn larprr <отрыть ом мооелирсва ни») »им» г<кй графического редактора Появится лма.км<*С1е окно SwiuiMKwi larpre ММег (рис ♦ 2Я|. 3. Ныбрать Coder Ории* (параметры acuepat дмишиасм окне S<tTiilaiiufi Target Bukk-:. IIcukiu jhkzuicmx okmo Stmuiaiioa Cud» Option* i.pnc 4 N| 4. Убедиться, что пгрсолжгтатсп. f n*B4r O4tQg|)ri&i'An*natk>r> (annymm. отладку/анимащлп! валют** Нажать на топку СЖ. чтоНы применить юменения Закрыть Simulation Coder Орсмь {параметры коперв! и диалоговое auto Siautetiori Тсдо Buikfct 5. Выбрать ОЙч* kxjoimi а меню Took грвфическсяи редак- тора Пояыгкя лмалогевое само «ммдмаяд дос. 6.30j. Убедитесь, что ЕлдЫЫ раижмиокжл a Annuixat iih—uuhh> амахма, ЧТО релрежмет аниьмп—> Siatefbv-диаграммы Нажать. *ш кнопку Скае, чтобы применить пыснсннс н туче пемь ь Ныбржгь Start ат мена) ЧтиЫмит графичаскссо гелястора. чтоГты итгтить кгюпопн мпдоти набтгежтъ та и гмгненнам* Вии от Смечи Sina оприалан как Inpul from SMuAdi {ваши ot Simulink) ссбытик SwNcti. Косна моделирование мичимыекя, SlMtdktw дмагравма анимирована, огркжди ить«емемм< иоктьмимй, запушенные ikuik< LHHr.mui.iuKC ьтмД Кмжыс кштмие событие Switch ггриош; моыель ю iuc-пиина Реме» оп и со- CTiNMae Po*et off гибо сбригьш Выпрль Slop нт меню Smutoxi трвфнчгехпт рсдагтора что- бы сстшвтмт. ыгчэетырскыиис Suicduw ПсЬьдет (отличив! тидкржикаст тлвмг фумвини. как ореспвчомг ппиагпвлто тсалтожгина л"/ыы1ны и <xtwok ку а впнттогъны» тонки Эти шаги покаоапиоот. как ьчоаелир» ыть. испольтув отличи»-
Гж. &N>. IncawHiiurMft uircovwiHi ЯмгЛгм «mmnw P»< Ml ii# u'Uih<( Sl/HV» чим►
1. Отобразить Debugger (отладчик), выбирая Debug (отладка) в меню Tools графического редактора. 2. Нажать на Breakpoint: Chart Entry (контрольные точки: Вход в диаграмму) в поле выбора, чтобы Debugger (отладчик) остановил выполнение моделирования при входе в диаграмму. 3. Нажать на кнопку Start, чтобы запустить моделирование. Информация и сообщения об ошибках, связанных с генерацией объектного кода для S-функций Stateflow блоков, отображены в командном окне MATLAB. Когда программа сформирована, гра- фический редактор становится доступным только для чтения (диа- грамма замораживается), окно отладчика будет модифицировано и выглядеть как показано на рис. 6.31. 4. Нажать на кнопку Step, чтобы выполнить один шаг модели- рования. Окно Debugger (отладчика) отображает следующую ин- формацию: • на каком этапе моделирование остановлено; • что выполняется; • текущее событие; • время моделирования; • текущий процент выполнения кода. Наблюдать за окном графического редактора, одновременно нажимая на кнопку Step, чтобы видеть каждый переход и аними- рованное состояние в процессе выполнения модели. После того, как Power_ofT и Power_on побывают в активном состоянии, про- цент выполнения кода станет 100%. 5. Выбрать Stop из меню Simulation графического редактора, чтобы остановить моделирование. Как только моделирование ос- танавливается, модель становится доступной для редактирования. 6. Нажать на кнопку Close (закрыть) в окне Debugger. 7. Выбрать Close из меню File в окне модели Simulink. 6.7. Язык Stateflow-диаграмм 6.7.1. Представление иерархии в Stateflow Для того, чтобы иметь возможность создавать собственные Stateflow-диаграммы, необходимо получить представление о син- таксисе языка Stateflow-диаграмм. Язык Stateflow поддерживает представление графических объек- тов в виде иерархии в диаграммах Stateflow. Иерархия данных и со- бытий как неграфических объектов представлена в проводнике и определяется при их создании назначением им объекта — предка. Рассмотрим примеры представления иерархий состояний и пе- реходов в диаграммах Stateflow.
Рис. 6.32. Пример иерархии состояний Рис. 6.33. Пример иерархии переходов В примере представления иерархии состояний (рис. 6.32) одно состояние изображено внутри другого состояния. Это показывает, что внутреннее состояние является подсостоянием или потомком внешнего состояния, тогда внешнее состояние — предок или над- состояние по отношению к внутреннему. Здесь Stateflow-диаграм- ма — предок по отношению к состоянию Car done. Состояние Car_done — предок состояний Car_made и Car_shipped. Состоя- ние Carmade — также предок состояний Parts_assembled и Painted. Вы также можете сказать, что состояния Parts_assembled и Painted — потомки состояния Car_made. Иерархия Stateflow также может быть представлена в текстовом виде, тогда символ слэш (/) представляет диаграмму Stateflow, а каждый уровень иерархии состояний разделяется символом (.). Далее показано текстовое пред- ставление иерархии объектов предыдущего примера. Вот полные имена состояний: /Car_done /Car_done.Car_made /Car_done.Car_shi pped /Car_done.Car_made.Parts_assembled /Car_done.Carmade.Painted. Таблица 6.3 Метка перехода Предок перехода Источник перехода Адресат перехода Switch_off / /Power_on. Low. Heat /PowerofT Switch_high /Power_on /Power_on. Low. Heat /Powe r_on. High Switchcold / Powe r_on. Low /Power_on. Low. Heat /Powe r_on. Low. Col d
На рис. 6.33 показана иерархия переходов. Иерархия переходов описывает предка перехода, источник и адресата. Предок перехо- да — низший уровень в иерархии состояний из тех, которые вклю- чают в себя источник и адресат перехода. Три перехода из рас- сматриваемого примера представлены в табл. 6.3. 6.7.2. Состояния Этот подраздел описывает основные объекты Stateflow — со- стояния. Состояния — режимы системы, представленной в виде конечного автомата. Состояние может быть активным и неактив- ным. Когда состояние активно, диаграмма переходит в соответ- ствующий этому состоянию режим. Когда состояние неактивно, диаграмма не находится в этом режиме. Активность и неактив- ность состояний диаграммы динамически изменяется при наступ- лении неких событий и выполнении определенных условий. По- явление событий управляет выполнением Stateflow-диаграммы по- средством активации и дезактивации состояний. На любой стадии выполнения Stateflow-диаграмма есть комбинация активных и не- активных состояний. Каждое состояние — часть иерархии. Состояние имеет память, которая применима к его уровню иерархии Stateflow-диаграммы. Состояния могут производить действия, которые выполняются в последовательности, определяемой их типом. Типы действий: дей- ствия при входе в состояние (entry), действия в то время, когда состояние активно (during), действия при выходе из состояния (exit) и действия при наступлении события с именем event_name (on event_пате). Кроме того, каждое состояние и диаграмма имеет декомпози- цию, которая определяет, какие виды подсостояний оно может включать в себя. Все подсостояния должны быть такого типа, ко- торый задан декомпозицией надсостояния. Декомпозиция может быть последовательной (ИЛИ) или параллельной (И). Если подсостояния имеют сплошные границы, декомпозиция состояний является последовательной (ИЛИ). Последовательная (ИЛИ) декомпозиция используется для описания режимов си- стемы, которые взаимно последовательны. Когда состояние име- ет последовательную (ИЛИ) декомпозицию, в любой момент вре- мени может быть активно только одно состояние. Потомками ро- дителей с последовательной (ИЛИ) декомпозицией являются состояния ИЛИ. В примере (рис. 6.34) активным может быть или состояние А, или состояние В. Если состояние А активно, то в любой момент времени может быть активным одно из состояний А1 и А2.
Рис. 6.34. Пример последователь- ной декомпозиции состояний Рис. 6.35. Пример параллельной декомпозиции состояний Потомки предка с параллельной (И) декомпозицией это па- раллельные (И) состояния. Если подсостояния имеют пунктир- ную границу, декомпозиция состояний является последователь- ной (ИЛИ). Это представление применяется, если все состояния на этом уровне иерархии всегда активны в одно и то же время. В примере (рис. 6.35), когда состояние А активно, одновременно активны А1 и А2. Активность в параллельных состояниях практически независи- ма, как это показано в следующем примере (рис. 6.36). Когда со- стояние А становится активным, то состояния В и С становятся активными одновременно. Когда состояние С становится активным, активным может стать или состояние С1, или состояние С2. Каждое состояние имеет метку. Метка состояния отображается в верхнем левом углу рамки состояния в следующем основном формате: пате/ entry:entry action duringzduring action exit:exit action on event_name:on event_name action. Рис. 6.36. Пример последователь- но-параллельной декомпозиции состояний Ridel On Off Ride2 On Off Рис. 6.37. Пример уникальности имен состояний
Метки состояний начинаются с имени состояния. Имя состоя- ния может состоять из букв, цифр и может включать знак подчер- кивания (_), например, Transmission или Green_on. Использова- ние в Stateflow иерархии придает гибкость наименованию состоя- ний. Имя, которое вводится в качестве части метки, должно быть уникальным лишь по отношению к именам состояний, находя- щихся на той же ступени иерархии. Ведь имя сохраняется в слова- ре данных в виде полного имени. Несколько состояний могут иметь одинаковые имена, если их полные имена в словаре данных уни- кальны. Иначе при грамматическом разборе выявится ошибка. Сле- дующий пример (рис. 6.37) показывает, как иерархия поддержи- вает уникальность имен состояний. Каждое из состояний имеет уникальное имя в иерархии Stateflow-диаграммы. Полные имена этих состояний, как они выглядят в словаре данных: Ridel.On Ridel.Off Ride2.On Ride2.Off. Кроме того, метка состояния может иметь символ / и одно или несколько ключевых слов. Ключевые слова определяют раз- личные типы действий, связанных с состоянием. Эти ключевые слова приведены в табл. 6.4 (сокращенная форма представлена полужирным шрифтом). После ввода метки, которая определяет тип действия, необхо- димо указать, какие именно действия будут выполняться. Состав- ные действия разделяются одним из символов: возврат на начало строки; точка с запятой; запятая. Каждое ключевое слово опционально и независимо. Вы може- те не определять их вовсе либо определить одно или несколько. После каждого ключевого слова ставится двоеточие. За именем состояния может идти символ / (слэш). Если вы вводите имя и Табл и ца 6.4 Ключевое слово Тип действия Entry Действия при входе в состояние During Действия во время активности состояния Exit Действия при выходе из состояния On event_name Действия при наступлении события event_name 7 Морозов тредакгировал и опубликовал на сайте 11 [ Н 11 I [ М ОI |
Рис. 6.38. Пример меток состояний слэш непосредственно перед действиями, действия интерпрети- руются как действия при входе в состояние. Следующий пример (рис. 6.38) демонстрирует компоненты мет- ки состояния. В этом примере имена состояний — On и Off. Имя состояния формирует первую часть метки состояния. Далее указа- ны следующие действия: Entry Action (действие при входе в состояние). Состояние On имеет действие при входе oncount = 0. Это значит, что значение on_count устанавливается равным 0, когда выполняется вход в состояние On; During Action (действие во время активности состояния). Со- стояние On имеет два During действия: light_on() и oncount-н-. Эти действия выполняются, когда продолжается активность со- стояния On; Exit Action (действие при выходе из состояния). Состояние Of! имеет действие при выходе light_off(). Это действие выполняется, когда выполняется выход из состояния Off; On Event_Name Action (действие при наступлении события Event Name). Состояние On имеет такое действие: когда событие power_outage произойдет во время активности состояния On, дей- ствие handle_outage() выполнится. 6.7.3. Переходы Система в виде конечного автомата изменяет одно свое состо- яние на другое с помощью объекта, называемого переходом. Пе- реход представляет скачок системы из одного режима (состоя- ния) в другой. Графически переход это линия со стрелкой, со- единяющая один графический объект с другим. Переход соединя- ет объект-источник с объектом-адресатом. Объект-источник — ме- сто, где переход начинается, объект-адресат— место, где пере- ход заканчивается. На рис. 6.39 представлен пример перехода из состояния-источника On к состоянию-адресату Off.
Рис. 6.39. Пример перехода Рис. 6.40. Пример сегментирован- ного перехода Connective junction (подключаемое соединение) делит пере- ход на сегменты. Если переход состоит из сегментов, то при оп- ределении того, состоится ли переход, каждый сегмент анали- зируется по отдельности. В следующем примере (рис. 6.40) име- ется два сегментированных перехода: один от состояния On к состоянию Off, а другой — от состояния On обратно к состоя- нию On. Имеется еще один тип перехода — безусловный переход. Без- условный переход — специальный тип перехода, у которого нет объекта-источника. Переходы характеризуются метками. Метка может включать в себя имя события (которое инициирует переход), условие (при выполнении которого переход может осуществиться), действие условия и действие перехода. Переход происходит при наступле- нии события, но с учетом истинности условия, если оно опреде- лено. Определение имени события необязательно. Если имя собы- тия не указано, то переход произойдет при наступлении любого события. Составные события определяются посредством использо- вания логического оператора ИЛИ (|). Условия — это булевы выра- жения, которые должны быть истинны для осуществления перехо- да. Условия заключаются в квадратные скобки ([]). Действия усло- вий следуют за условиями и заключаются в фигурные скобки ({}). Таблица 6.5 Метка перехода Переход возможен Событие Событие произошло Событие и условие Событие произошло и условие истинно Условие Любое событие произошло и условие истинно Действие Любое событие произошло Не определена Любое событие произошло
Рис. 6.41. Пример метки перехода Они выполняются тогда, когда условие становится истинным, но перед тем, как переход осуществится. Если ни одно условие не определено, подразумеваемое условие принимается за истинное и действие выполняется. Действие перехода выполняется после того, как переход стал возможен и при истинности условия, если оно определено. Если переход состоит из сегментов, действие пе- рехода выполняется только когда становится возможен полный путь перехода. Действия перехода обозначаются символом (/). Метка перехода имеет следующий основной формат: eventfcondition] {condition_action}/transition_action. Любая часть метки может от- сутствовать. В большинстве случаев переход возможен, когда со- стояние-источник активно и метка перехода позволяет совершить переход. Критерии определения возможности перехода, приме- нимые как к переходам, так и к безусловным переходам, сведены в табл. 6.5. Действия, которые определяются в метках, составляют часть языка действий Stateflow. Использование метки перехода иллюстрируется следующим примером (рис. 6.41). Пусть в этом примере первоначально актив- но состояние On. Тогда при наступлении события Е должен про- изойти переход из состояния On в состояние Off, если будет ис- тинно условие [off_count==0]. Причем условие [off_count==0] дол- жно быть истинным как для того, чтобы переход стал возможен, так и для того, чтобы произошло действие условия. Если условие [off_count==0] истинно, то действие off_count++ немедленно вы- полняется. После того, как состояние Off достигнуто, осуществ- ляется действие перехода Light_off. 6.7.4. Типы переходов Нотации Stateflow поддерживают самые различные типы пере- ходов: 1. Переходы к последовательным (ИЛИ) состояниям. Рассмот- рим простой пример (рис. 6.42). Переход от On к Off действите- лен, когда состояние On активно и событие Switch off произош- ло. Переход от Off к On действителен, когда состояние Off актив- но и событие Switch_on произошло.
Рис. 6.43. Пример перехода к подключаемому соединению Рис. 6.42. Пример перехода к ИЛИ-состоянию 2. Переходы к подключаемым соединениям. Пример перехода к подключаемому соединению (к точке принятия решения) и из подключаемого соединения (рис. 6.43). В нем рассматривается Stateflow-диаграмма автомата для продажи газированной воды. Stateflow-диаграмма вызывается, когда внешнее событие Selec- tion_made (выбор_сделан) произошло. В начальный момент ак- тивно состояние Waiting (ожидание). Состояние Waiting — общий источник для всех состояний. Когда событие Selection_made про- исходит, переход из состояния Waiting к одному из остальных четырех состояний базируется на значении переменной select (вы- бор). Так, если значение переменной select равно 2, диаграмма переходит в состояние Cola. От состояния Waiting к подключаемо- му соединению ведет один переход, от подключаемого соедине- ния к четырем возможным состояниям ведут четыре различных перехода. 3. Переходы к надсостоянию с последовательной (ИЛИ) де- композицией. Пример (рис. 6.44) показывает переход к последо- вательному (ИЛИ) надсостоянию и из него, а также использова- ние безусловного перехода. Это продолжение двух предыдущих при- меров. Сейчас On (автомат включен) — надсостояние, которое включает состояние Waiting и состояния, соответствующие вы- бранным напиткам. Переход от Off к On действителен, когда со- стояние Off активно и событие Switch on произошло. Однако те- перь, когда On является надсостоянием, мы имеем дело с пере- ходом к надсостоянию. Чтобы переход к надсостоянию был дей- ствителен, подсостояние-адресат также должно быть определено. Такое подсостояние неявно определено посредством безусловно- го перехода к Waiting. Приведенная в этом примере нотация опре- деляет, что переход из состояния Off будет сделан обязательно к состоянию On.Waiting. Состояние Off (автомат выключен) не яв-
Рис. 6.44. Пример перехода к ИЛ И-надсостоянию ляется надсостоянием. Переход от On к Off действителен, когда состояние On активно и событие Switch_ofT произошло. Другими словами, когда событие Switch off произошло, переход к состоя- нию Off выполнится, невзирая на то, какое из подсостояний On активно. Это упрощает наблюдения за переходами внутри Stateflow- диаграмм. 4. Переходы к подсостояниям. Пример (рис. 6.45) объясняет переходы между ИЛИ-подсостояниями. Эта Stateflow-диаграмма иллюстрирует переход от одного ИЛ И-подсостояния к другому ИЛ И-подсостоянию: переход от Waiting. Ready к Orange. Переход к состоянию In_motion действителен, когда состояние Wait- ing.Ready активно, событие Selection made произошло и пере- менная select равна 1. Этот переход определяет явный выход из состояния Waiting.Ready и неявный выход из надсостояния Waiting. На стороне адресата этот переход определяет неявный вход в надсостояние Orange и явный вход в подсостояние Oran- ge.Inmotion. 5. Циклические переходы. Сегмент перехода от состояния к под- ключаемому соединению, а от него назад к тому же самому со- Рис. 6.45. Пример перехода к ИЛ И-надсостоянию
Рис. 6.46. Пример циклического перехода Рис. 6.47. Stateflow-диаграмма без внутрен- них переходов стоянию, называется циклическим переходом. Пример цикличес- кого перехода приведен на рис. 6.46. 6. Внутренние переходы. Внутренние переходы — переходы, которые не покидают состояния-источника. Использование внутренних переходов значительно упрощает диаграмму State- flow. В наибольшей степени это проявляется, когда внутренние пе- реходы определены для надсостояний с последовательной деком- позицией. Рассмотрим Stateflow-диаграмму, которую можно уп- ростить, если применить внутренние переходы (рис. 6.47). Пусть произошло какое-либо событие. При этом происходит безуслов- ный переход к подключаемому соединению. Переход-адресат оп- ределяется после анализа условий [С_опе] и [C_two]. Если [С_опе] истинно, осуществится переход к А1. Если [C_two] истинно, осу- ществится переход к А2. Если ни одно из условий [С_опе] и [C_two] не является истинным, осуществится переход к АЗ. Дальнейшие переходы между Al, А2 и АЗ определены метками Е_опе, Е_опе |С_опе] и E_one [C_two]. А вот как (рис. 6.48) выглядит аналогичная Stateflow-диаграмма после использования внутреннего перехода в подключаемое со- единение. Пусть произошло какое-либо событие. При этом проис- Рис. 6.48. Stateflow-диаграмма с внутренним переходом
Рис. 6.49. Пример внутреннего перехода к соединению с памятью ходит безусловный переход к подключаемому соединению. Далее переход-адресат определяется анализом условий [C one] и [C_two]. Диаграмма упрощается использованием одного внутреннего пере- хода вместо большого числа переходов, как в предыдущем приме- ре. Если состояние А уже активно, внутренний переход использу- ется для определения того, какое из подсостояний А активно. Ког- да событие Е_опе произошло, внутренний переход потенциально действителен. Если [С_опе] истинно, переход к А1 действителен. Если |C_two] истинно, переход к А2 действителен. Если ни усло- вие [С_опе], ни условие [C_two] не является истинным, произой- дет переход к АЗ. Это решение проще, чем предыдущее. Использование внутреннего перехода полезно и в случае со- единения с памятью. Пример (рис. 6.49) показывает внутренний переход к соединению с памятью. Пусть состояние Power_on.High изначально активно. Когда событие Reset происходит, внутрен- ний переход к соединению с памятью действителен. Так как внут- ренний переход действителен, Stateflow-диаграмма выходит из те- кущего состояния Power_on.High. Когда происходит внутренний переход к соединению с памятью, предыдущее активное состоя- ние, Power_on.High, вновь становится активным (осуществится повторный вход). Аналогично, если состояние Power_on.Low было активным, то в результате произойдет выход из Poweron.Low и повторный вход в него. Внутренний переход в этом примере экви- валентен двум циклическим переходам для Power on.Low и Power_on.High. 7. Безусловные переходы. Безусловные переходы используют- ся, чтобы сообщить Stateflow, какое именно (одно из нескольких возможных) состояние должно стать активным, когда активизи- руется состояние или диаграмма, имеющие подсостояния. Безу- словные переходы преимущественно используются для определе- ния того, какое последовательное (ИЛИ) состояние должно стать активным, когда есть неоднозначность между двумя или более ИЛИ-подсостояниями. Безусловные переходы имеют объект-ад- ресат, но у них нет объекта-источника. Безусловный переход оп- ределяет, какое из подсостояний надсостояния с последователь-
ной (ИЛИ) декомпозицией должно стать активным в отсутствие любой другой информации (такой, например, как соединение с памятью). В некоторых случаях есть необходимость в метке безусловного перехода. Можно пометить безусловный переход аналогично тому, как помечаются другие переходы. Когда помечаются безусловные переходы, необходимо позаботиться о том, чтобы всегда мини- мум один безусловный переход был действителен. Иначе Stateflow - диаграмма может перейти в неопределенное состояние. Следующие примеры показывают использование безусловных переходов в Stateflow-диаграммах. Пример безусловных переходов для состояний (рис. 6.50) по- казывает необходимость безусловных переходов. Когда Stateflow- диаграмма первый раз обновляется, должен решиться вопрос, какое из состояний — S или В активировать, так как они являют- ся последовательными (ИЛИ) состояниями. Ответ дается безу- словным переходом к надсостоянию S. Состояние S, которое те- перь активно, имеет два подсостояния, А и D. Только одно из них может быть активным, потому что они — последовательные (ИЛИ) состояния. Какое подсостояние станет активным? Это определя- ется безусловным переходом к подсостоянию D. Пусть теперь Stateflow-диаграмма обновляется событием d при активном со- стоянии В, осуществляется переход от состояния В к состоянию S. Когда система входит в состояние S, она входит в подсостояние D, потому что так определено безусловным переходом. При отсут- ствии безусловного перехода к состоянию S ни одно из состоя- ний не становится активным при обновлении Stateflow-диаграм- мы. Эту ситуацию можно зафиксировать в процессе отладки. В следующем примере (рис. 6.51) безусловный переход к под- ключаемому соединению показывает, что после входа в состоя- ние. 6.50. Пример безусловных переходов для состояний Рис. 6.51. Пример безусловного перехода к подключаемому соединению
Рис. 6.52. Пример безусловного пере- хода с меткой ние Counting подсостояние-адресат определено условиями на сег- ментах перехода. Еше один пример (рис. 6.52) показывает безусловный переход с меткой. Если состояние А изначально активно и произошло ка- кое-то из двух событий el или е2, переход от состояния А к над- состоянию В действителен. Внутри него подсостояния В1 и В2 имеют безусловные переходы. Безусловные переходы помечены событиями, которые активизируют переход. Если произошло со- бытие el, действителен переход от А к В1. Если произошло собы- тие е2, то действителен переход от А к В2. 6.7.5. Подключаемые соединения Подключаемые соединения представляют собой точки, в ко- торых принимаются решения относительно выбора между альтер- нативными путями одного перехода. Они позволяют представить различные возможные пути для одного перехода. Подключаемые соединения используются в нескольких случаях: • для представления в виде фрагментов Stateflow-диаграмм конструкции if-then-else посредством определения условий для некоторых или всех исходящих из подключаемого соединения пе- реходов; • в случае цикличных переходов, возвращающихся к состоя- нию-адресату в том случае, если ни один из остальных исходящих переход не действителен; • при построении различных вариантов конструкции for по- средством возврата перехода из подключаемого соединения в него же; • для организации переходов из общего источника к множе- ству адресатов; • для организации переходов от множества источников к об- щему адресату; • для организации переходов от источника к адресату, если они основываются на общих событиях. Однако есть и ограничения. Так, событие не может иницииро- вать переход из подключаемого соединения в состояние-адресат.
Рис. 6.53. Пример подключаемого соединения с заданием условий перехода Подключаемые соединения могут использоваться для представ- ления структуры алгоритмов (например, конструкций for или if- then-else) в виде блок-схем, т.е. без использования состояний. За счет снижения в Stateflow-диаграмме числа состояний вырабаты- вается более эффективный код, который оптимизирует размер используемой памяти. При этом применяются следующие комби- нации средств: • переходы к подключаемым соединениям и из них; • циклы для подключаемых соединений; • внутренние соединения для подключаемых соединений. Диаграммы в виде состояний и переходов между ними и диа- граммы в виде блок-схем могут сосуществовать в пределах одной Stateflow-диаграммы. Ключ к успешному представлению диа- грамм — в использовании меток переходов, что показано в следу- ющих примерах. На рис. 6.53 приведены варианты диаграммы с использовани- ем подключаемого соединения и без него. На левой диаграмме, если состояние А активно, когда произошло событие е, то пере- ход от состояния А к одному из состояний D, Е или F имеет место, если выполнено одно из условий [cl], [с2] или [сЗ]. В эк- вивалентном представлении справа переход от состояния-источ- ника к подключаемому соединению помечен событием. Переходы от подключаемого соединения к состояниям-адресатам помече- ны условиями. Если состояние А активно, когда происходит со- бытие е, то вначале осуществляется переход от состояния А к подключаемому соединению. Переход от подключаемого соеди- нения к состоянию-адресату происходит, базируясь на истинно- сти условий [cl|, [с2] или [сЗ]. Если ни одно из них не истинно, переход не происходит и состояние А остается активным. На рис. 6.54 представлен пример подключаемого соединения с одним переходом, не ограниченным условиями. Переход от А к В действителен, когда состояние А активно, событие Е_опе произошло и [С_опе] истинно. Переход от А к С действителен, когда А активно, событие Е_опе произошло и [C_two] истинно.
Рис. 6.54. Пример подключаемого соединения с одним переходом, не ограниченным условиями Иначе, если А активно и событие Е_опе произошло, то действи- телен переход от А к D. Если явно не определено условие [C_three], то условие перехода от А к D — ложность [С_опе] и [C_two]. На рис. 6.55 представлены варианты реализации цикла. Пусть событие перехода произошло, но условие перехода ложно. Пере- ход в новое состояние не может произойти, но необходимо, что- бы какое-то действие было произведено. Эту ситуацию можно смо- делировать с использованием либо подключаемого соединения, либо циклического перехода (перехода от состояния к нему же). На левом рисунке, если состояние А активно, событие е про- изошло и условие [cl] истинно, происходит переход от А к В и выполняется действие al. Переход от состояния В к состоянию А действителен, если произошло событие е и условие [cl] ложно. В этом цикличном переходе осуществляется выход и повторяется вход в А, а также выполняется действие а2. В эквивалентном пред- ставлении справа в силу использования подключаемых соедине- ний отпадает необходимость в явном задании условия [~с1]. Следующий пример (рис. 6.56) подключаемого соединения и цикла for показывает комбинацию нотации в виде блок-схемы и нотации в форме состояний и переходов. Цикличные переходы Рис. 6.55. Подключаемое соединение — пример цикла
Рис. 6.56. Пример подключав- Рис. 6.57. Пример подключаемого соеди- мого соединения и цикла for нения при одном источнике и несколь- ких адресатах могут быть использованы в подключаемых соединениях для пред- ставления циклов. Пусть в состоянии А произошло событие Е. Переход от состояния к А к состоянию В действителен, если усло- вия на пути перехода истинны. Первый сегмент перехода не имеет условия, но имеет действие условия. Действие условия {i = 0} вы- полняется. Условие циклического перехода [i < 10] становится ис- тинным и действия условия {i++;funcl()} выполняются. Действия условия выполняются, пока условие [i < 10] не станет ложным (такая диаграмма эффективно выполняет цикл for для значений i от 0 до 9, вызывая каждый раз функцию funcl()). Затем выполня- ется выход из цикла и переход в состояние В. На рис. 6.57 представлен пример подключаемого соединения при одном источнике и нескольких адресатах. В переходах от А к В и от А к С участвует общее состояние-источник А. Альтернатив- ное представление использует одну стрелку от А к подключаемо- му соединению и множество стрелок, помеченных событиями, от соединения к состояниям назначения В и С. На рис. 6.58 представлен пример подключаемого соединения с общим событием. Предположим, что когда происходит событие el, система, в независимости от того, в каком из двух состояний (А или В) она находится, переходит в состояние С. Другими сло- вами, переходы отАкСиотВкС инициируются одним и тем же Рис. 6.58. Пример подключаемого соединения с общим событием
событием el. И состояние-адресат и событие являются общими для двух переходов. Есть три способа, чтобы представить это: • нарисовать переход от А к В и от А к С, пометить каждый событием el; • поместив А и В в одно надсостояние S, нарисовать один пе- реход от S к С, пометив его событием el; • нарисовав переходы от А и В к подключаемому соединению, и один переход от него к С, пометив его событием el. На диаграмме показаны первый и третий варианты. 6.7.6. Соединение с памятью Соединение с памятью запоминает предыдущее активное со- стояние. Соединения с памятью используются, чтобы отметить в Stateflow-диаграмме объекты, где решения принимаются не на основе текущей информации, а опираясь на предысторию. Эта предыстория связана с активностью состояния. Размещение со- единения с памятью в надсостоянии показывает, что информа- ция об активности состояния в прошлом используется при опре- делении состояния, которое станет активным в настоящий мо- мент. Соединения с памятью применяются только к тому уровню иерархии, на котором находятся. На рис. 6.59 представлен пример использования соединения с памятью. Надсостояние Power_on имеет соединение с памятью и два подсостояния. Если состояние Power_ofT активно и событие switch_on произошло, система может попасть либо в состояние Power_on.Low, либо в состояние Power_on.High. Во время перво- го входа в надсостояние Power on осуществляется вход в состоя- ние Power_on.Low, потому что к нему ведет безусловный переход. В некоторый следующий момент, когда состояние Power_on.High активно и происходит событие switch_off, система покидает над- состояние Power_on и состояние Power_ofT становится активным. Пусть затем происходит событие switch on. Так как состояние Power_on.High было активным последним, оно снова становится активным. За исключением первого раза, при активности состоя- ния Power_on выбор между Power_on.Low или Power_on.High оп- ределяется предысторией. Рис. 6.59. Пример использования соединения с памятью
6.7.7. Блоки Блоки используются для улучшения графического представле- ния диаграммы. Помимо этого, блоки участвуют в выполнении Stateflow-диаграммы. На рис. 6.60 показан пример использования Stateflow объекта «блок». В этом примере блок, помеченный как Motor, группирует все объекты, которые необходимы для управления мотором. На диа- грамме наряду с этим блоком могут быть и другие объекты, но теперь все элементы управления мотором выделены в отдельный объект. 6.7.8. Графические функции Графические функции — функции, которые определены гра- фом переходов. Наличие графических функций обеспечивает удобство и повышает выразительность языка действий Stateflow. На рис. 6.61 приведен пример графической функции и Stateflow- диаграммы с переходом, который ее вызывает. Здесь функция z = f(x,y) вызывается действием условия при переходе от состоя- ния А к состоянию В. Функция определена с использованием сим- волов, которые действительны только в ней самой (формальных параметров х, у и z). Функция вызывается с использованием объек- тов (фактических параметров с, а и Ь), доступных состояниям А и В и их состояниям-предкам (если таковые имеются). Графические функции аналогичны текстовым функциям MATLAB и С-функ- циям. Подобно им, графические функции могут иметь аргумент и возвращать результат. Вызываются функции действиями перехо- дов и состояний. В отличие от функций С и MATLAB, графиче- ские функции — это полноправные графические объекты Stateflow. Чтобы создать их, используется редактор Stateflow, они изменя- ются в Stateflow-модели вместе с диаграммами, которые их вызы- вают. Это делает графические функции более простыми в созда- Рис. 6.60. Пример использования блока Рис. 6.61. Графическая функция
нии и управлении, чем текстовые функции, создание которых требует внешних инструментов и которые изменяются отдельно от модели. 6.7.9. Язык действий Язык действий определяет действия, которые можно задать, если использовать нотации меток состояний и переходов. Stateflow сопоставляет действия состояниям или переходам при наличии соответствующих меток. Действия состояний и переходов делятся на несколько типов. Переходы могут иметь в качестве меток име- на событий, вызывающих переходы (event triggers), условия, раз- решающие переходы (conditions), действия условий (condition actions) и действий переходов (transition actions). Действия могут производиться при входе в состояние (entry), во время активно- сти состояния (during), действия при выходе из состояния (exit) и при наступлении события с именем event_пате(on eventname). Действия могут приводить к наступлению событий, установ- лению условий, вызову функций, установлению значений пере- менных и операндов и т.д. Большинство из них аналогично дей- ствиям в С или MATLAB. Язык действий включает метки состояний и переходов, к ко- торым применятся язык действий. В подразд. 6.7.2 приведен спи- сок ключевых слов, определяющих действия для состояний. В под- разд. 6.7.4 определены действия для переходов. Таблица 6.6 Ключевое слово языка действий для состояний Значение change(data_name) Определяет и генерирует локальное событие, когда значение переменной с именем data_name меняется enter(name) Определяет и генерирует локальное событие, когда осуществлен вход в состояние с именем state_name exit (name) Определяет и генерирует локальное событие, когда осуществлен выход из состояния с именем state name tick Определяет и генерирует локальное событие, когда структура активизирована wakeup То же самое, что и tick
Таблица 6.7 Ключевое слово специальной функции Значение in(statename) Функция-условие, будет истинна, ког- да состояние state_name, определенное как ее аргумент, активно m\(evalString, argl, arg 2, ...) Действие определяет вызов MATLAB-функции ml. MA TLAB_workspace_data Действие определяет вызов переменных из рабочего пространства sex\6(event_name, state_name) Пересылка события event name в состояние statename Кроме того, каждое из следующих ключевых слов (табл. 6.6) генерирует событие (сокращенная форма каждого ключевого сло- ва показана полужирным шрифтом). Наконец, каждое из ключевых слов, перечисленных в табл. 6.7, вызывает специальную функцию языка действий для состояний и переходов. 6.8. Stateflow-модели конечных автоматов 6.8.1. Пример диаграммы в виде блок-схемы Комбинация MATLAB-Simulink-Stateflow является мощным универсальным инструментом моделирования систем. Дополни- тельная возможность следить в режиме реального времени за про- цессом выполнения диаграммы путем включения режима анима- ции делает процесс моделирования по-настоящему наглядным. Тезис об универсальности данного подхода можно проиллюстри- ровать несколькими примерами. Пример использования комбинации нотации в виде блок-схе- мы и нотации в форме состояний и переходов. На рис. 6.62 пока- зана Stateflow-диаграмма модели 8-битного аналого-цифрового преобразователя (АЦП). Рассмотрим случай, когда состояние Sensor.Low активно и событие update произошло. Внутренний пе- реход от Sensor к подключаемому соединению действителен. Сле- дующий сегмент перехода имеет действие условия {start_adc()}, которое инициирует чтение с АЦП. Цикл на втором подключае- мом соединении повторяется, пока истинно условие [adc_busy()]. Этот циклический переход используется для представления за-
Sensor s Low 1 £ (sensorValue < 1001 } {sensorValue = read_adc()} г г О Normal update4 {start_adc()} (sensorValue > 200J1 High Рис. 6.62. Пример диаграммы в виде блок-схемы держки, нужной для чтения с АЦП. Задержка может быть пред- ставлена и в виде отдельного состояния, но при этом был бы получен менее эффективный код. Действие условия следующего сегмента перехода {sensorValue=read_adc()} устанавливает новое значение, считываемое с АЦП в переменной sensorValue. Заклю- чительный сегмент перехода определяется значением перемен- ной sensorValue. Если [sensorValue < I00J истинно, то адресат — состояние Sensor.Low. Если [sensorValue > 200] истинно, то адре- сат— состояние Sensor.High. Иначе адресат — состояние Sen- sor.Normal. 6.8.2. Моделирование работы компьютера Построим модель компьютера, реализующего известного алго- ритма Евклида по нахождению наибольшего общего делителя двух натуральных чисел. Этот ставший классическим пример разветв- ляющегося алгоритма можно представить в виде блок-схемы, по- казанной на рис. 6.63. Stateflow-моделью работы этого алгоритма может служить представленная на рис. 6.64 диаграмма. При моде- лировании свободно программируемых устройств Stateflow — эф- Рис. 6.63. Блок-схема алгоритма Евклида
Рис. 6.64. STATEFLOW-диаграмма компьютерной программы, реализу- ющей алгоритм Евклида Рис. 6.65. Simulink-модель программы определения наибольшего общего де- лителя Display фективный способ представить общую структуру программного кода как конструкцию в виде условных операторов и циклов. Далее на основе этой диаграммы создаем Simulink-модель, обес- печивающую ввод и вывод информации. Результат работы модели на заданном ей наборе данных показан на рис. 6.65. 6.8.3. Модель вероятностного конечного автомата Известно, что на Земле Оз погода бывает всего трех типов: дождь, солнечно или снег [17]. Если сегодня солнечный день, то . завтра будет дождь или снег с одинаковой вероятностью. Если сегодня — дождь (или снег), то половина шансов за то, что такая же погода будет завтра. Если же происходит изменение, то только в половине случаев оно приводит к солнечному дню. Требуется построить модель климата этой планеты. Образуем вероятностный конечный автомат с тремя состояни- ями rain, sunny и snow для дождя, солнца и снега соответственно. Ее моделью будет Stateflow-диаграмма (рис. 6.66). Начальное со- стояние — sunny, о чем свидетельствует наличие графического объекта переход по умолчанию (Default transition) к состоянию sunny. Этот переход сопровождается действием перехода (Transition action) /nrain=0;nsunny=0;nsnow=0. Это действие устанавливает в
Рис. 6.66. State flow-модель вероятностного конечного автомата ноль счетчики количества дождливых, солнечных дней и дней, когда идет снег. Заметим, что данном случае это действие являет- ся избыточным, так как начальные значения этих переменных равны нулю по умолчанию. В этом нетрудно убедиться, открыв проводник Stateflow Explorer и просмотрев графу InitVal. При входе в это состояние выполняется действие nsunny-н-, т.е. количество солнечных дней увеличивается на единицу. Следующее событие event (смена суток организована в модели при помощи генерато- ра прямоугольных импульсов Pulse Generator) переводит диаграмму в соединяемое подключение Connective Junction, откуда с веро- ятностью 0.5 диаграмма переходит в состояние snow и с вероят- ностью 0.5 — в состояние rain. Вероятностный переход основан на использовании условия ml(expmd(l)) > 0.5 (вызов MATLAB-фун- кции expmd(l), т.е. генерация случайного числа из диапазона (0,1) и сравнение этого числа с числом 0.5). Остальные переходы орга- низованы аналогичным образом в соответствии с логикой, опи- санной в задаче. Результат работы модели на протяжении 10 лет модельного времени, как это следует из рис. 6.67, дал 728 сол- Рис. 6.67. Результат работы модели вероятностного конечного автомата
нечных, 1 514 снежных и 1408 дождливых дней. Аналитическое решение дает вероятность для солнечной погоды 1/5, а для снега и дождя — 2/5. Контрольные вопросы 1. Назовите последовательность этапов создания графической моде- ли динамической системы в Simulink. 2. Что такое системные функции? Какова их роль? 3. Что такое параметры блоков, как они задаются? Возможно ли их изменение в ходе моделирования? 4. Что такое настраиваемые параметры? 5. Что понимается под термином «непрерывный блок»? 6. Что означает термин «дискретный блок»? 7. Что такое подсистема? Где и с какой целью могут использоваться подсистемы? 8. Что такое блок пользователя? Какова область их применения? 9. Какие типы сигналов допускает Simulink? 10. Какие типы данных возможны в Simulink? 11. Каковы основные этапы процесса выполнения модели динами- ческой системы в Simulink? 12. Что такое решатель (Solver)? Назовите типы решателей. 13. Для чего нужны решатели с фиксированным шагом и решатели с переменным шагом? 14. Где используются непрерывные и дискретные решатели? 15. Почему так важно обнаружение пересечения нулевого уровня? 16. Опишите правила сортировки блоков. 17. Как возникают алгебраические циклы и чем это чревато? Как эта проблема решается в Simulink? 18. Что такое диаграмма состояний и переходов? 19. Расскажите о порядке построения моделей систем с дискретны- ми событиями. 20. Дайте определение обобщенной модели гибридной системы. 21. Расскажите о процедуре моделирования гибридных систем в Stateflow. 22. Какие графические объекты Stateflow вы знаете? В чем их назна- чение? 23. Какие вам известны неграфические объекты Stateflow? Дайте их описание. 24. Опишите основные элементы языка действий Stateflow. 25. Дайте развернутое описание меток состояний. 26. Каковы основные элементы нотации меток переходов?
ГЛАВА 7 МОДЕЛИ СТОХАСТИЧЕСКИХ СИСТЕМ 7.1. Теория массового обслуживания как основа моделирования стохастических систем 7.1.1. Общие положения Теория массового обслуживания (МО) используется для ко- личественного анализа функциональных свойств объектов — мо- делируемых систем, выбора наиболее приемлемого варианта со- става и структуры системы, процедур обслуживания, оценки оп- тимальных характеристик с учетом физических и экономических ограничений. К этой теории прибегают, когда необходимо учи- тывать фактор случайности, описать вероятностный характер по- казателей функционирования системы при поступлении в нее и обслуживании потока заявок. Поток состоит из последовательно- сти событий, происходящих в случайные (иногда определенные) моменты времени. Заявками могут служить запросы пользователей на выполне- ние тех или иных работ, сообщения, поступающие в сети переда- чи данных, перевозки грузов, покупки товаров и т. п. В моделиру- емом объекте обслуживающим прибором может быть любой из элементов архитектуры системы на выбранном уровне детализа- ции описания. В совокупности заявки образуют поток событий. Входных по- токов F} — Fn для некоторых систем массового обслуживания (СМО) в принципе может быть несколько и они могут поступать сразу на несколько входных каналов, число которых лвх также ха- рактеризует систему обслуживания, ее структуру. Характеризуются входные потоки распределением вероятно- стей интервалов времени между двумя последовательными заяв- ками. При анализе СМО обычно используют пуассоновский и эр- ланговский потоки, так как в этом случае можно наиболее про- сто получить аналитические результаты для многих структур мо- делей МО. Обслуживающие приборы (ОП) — один из основных элемен- тов СМО. Они реализуют целевое назначение системы, функцию обслуживания потоков заявок, осуществляют их обработку. Как
правило, обработка происходит в несколько фаз обслуживания {Фм}. Каждой фазе, очевидно, соответствует обслуживающий при- бор или его часть. Содержание каждой фазы определяется физи- ческим смыслом заявки, принципами реализации процесса об- служивания, а также отдельными особенностями самих приборов. Поэтому понятие фазы обслуживания имеет относительный смысл. Один и тот же процесс можно разделить на разное число фаз в зависимости от целей анализа системы. Например, для информа- ционных систем характерны такие фазы или составляющие про- цесса, как сбор, формирование, первичное кодирование, отбор, передача информации и т.д. В то же время можно рассматривать передачу как более сложную составляющую, в которую входят и другие фазы, в частности кодирование, сбор, прием и другие информационные процессы. Выходные потоки F^—FJg** обслуженных заявок — важный элемент любой СМО. Они также как и входные потоки, задаются вероятностными распределениями и характеристиками, учиты- вающими динамику и структуру связанных с ними процессов. 7.1.2. Основные разновидности систем массового обслуживания и дисциплины обслуживания Выделяются следующие характерные разновидности СМО. Системы с отказами в процедуре обслуживания заявок. В этом типе СМО действует следующий принцип: если поступила неко- торая заявка, а система оказывается загруженной полностью (все каналы заняты), то данная заявка безвозвратно удаляется из вход- ного потока, повторный запрос на ее обслуживание не поступает. Другими словами, в системе не предусмотрена возможность ожи- дания момента освобождения обслуживающих приборов и повтор обращения (вызова). Применительно к информационным систе- мам, представляющим собой СМО того или иного вида, и обслу- живанию запросов пользователей в данном случае отсутствуют элементы, выполняющие функции устройств буферной памяти, с помощью которых можно было бы записать и запомнить посту- пающую информацию, и, если каналы системы заняты, то пользо- ватели получают отказ. На практике, однако, в информационных системах специально организуется буферное накопление инфор- мации, чтобы расширить круг пользователей и тем самым увели- чить пропускную способность. При этом возникают процессы ожи- даний и образуются очереди. Системы с очередями (ожиданиями). Возможны две разновид- ности систем массового обслуживания данного типа: СМО с прин- ципиально неограниченной длиной очереди и СМО с ограниче- нием на длину очереди. Очередь образуется в связи с перегрузкой
обслуживающих приборов. В случае СМО с неограниченной дли- ной очереди потери заявок не происходит, так как создается до- статочный запас ресурсов в системе, и, следовательно, в конеч- ном счете будет обслужена каждая поступившая заявка независи- мо от длины очереди. Ограничения на длину определяют условия, при которых на- копление и хранение заявок, ожидающих обслуживания, стано- вится по некоторым соображениям нецелесообразным или не- возможным, поэтому при превышении установленной длины оче- реди вновь поступающие заявки, приходящие в систему на об- служивание, в очередь не устанавливаются. Ограничения в рассматриваемой разновидности СМО могут вводиться также и на время ожидания, по истечении которого заявки покидают систему, так и не дождавшись процесса обслу- живания. Кроме рассмотренных принципов организации функциониро- вания СМО характеризуется и так называемой дисциплиной об- служивания заявок. Различаются следующие дисциплины обслуживания: 1) циклический регулярный опрос каналов, когда через фик- сированные интервалы времени обслуживающая система пооче- редно обращается к входным каналам и принимает поступившие заявки (сообщения) для последующих преобразований. Примером устройств, где применяется этот вид дисциплины обслуживания, являются синхронные мультиплексоры передачи данных (МПД); 2) «первым пришел — первым обслужен» это широко распро- страненная дисциплина обслуживания, при которой из очереди принимается заявка, ранее других поступившая в СМО; так рабо- тает большинство узлов коммутации сообщений, узлов пакетной коммутации; 3) «первым пришел — последним обслужен» эта дисциплина может быть полезна в таких ситуациях, когда имеют место потери некоторых данных (пакетов) из-за отказов аппаратуры; при вос- становлении иногда лучше идти в обратном направлении, чтобы быстрее найти потерянные данные; 4) случайная процедура обращения, при которой процесс об- служивания привязан к поступлению заявок, но так как послед- ние поступают случайно, то и обслуживание не подчиняется ка- кому-либо правилу, как это характерно для других дисциплин; эта дисциплина используется в некоторых локальных компьютер- ных сетях. 5) приоритетное обслуживание, — когда одни заявки имеют преимущества на очередность обслуживания, например команд- ные административные сообщения или сообщения, характеризу- емые той или иной категорией срочности.
7.1.3. Простейшие потоки в системах массового обслуживания Стационарный пуассоновский поток, называемый также про- стейшим, характеризуется распределением вероятностей собы- тий, его образующих, которое можно представить в виде следу- ющей формулы: (Хт)*е’х* (7.1) где рк(х) — вероятность того, что за время т происходит к собы- тий, определяющих поступление в систему обслуживания к тре- бований; X — параметр распределения, называемый интенсивно- стью. При этом полагается, что простейший поток обладает тремя важными свойствами: стационарностью, ординарностью и отсут- ствием последействия. Стационарность простейшего потока экспериментально можно установить путем проверки следующего условия. Число событий, составляющих простейший поток и происходящих за некоторый промежуток ДГ, не зависит от того, когда оно подсчитывалось, и прямо пропорционально величине этого промежутка к = аД/. Ординарность (упорядоченность) обусловливает такую особен- ность простейшего потока, как отсутствие в нем пар, троек, ... одновременно происходящих событий. Отсутствие последействия указывает на то, что каждое из его событий не связано ни с каким другим входящим в него, а веро- ятностные свойства в будущих событиях сохраняются независимо от того, произойдут ли некоторые из них или не произойдут. Из общего закона и свойств простейшего потока вытекает ряд отдельных соотношений, в частности вероятность того, что за время т не происходит ни одного события, равна р0(т) = е Хт. При пуассоновском входящем потоке интервалы между требо- ваниями (заявками) распределены по показательному закону р(х < /) = i - e_?J, где параметр X — средняя частота поступления заявок (интенсивность потока). Для показательной функции рас- пределения математическое ожидание и дисперсия интервалов между заявками равны соответственно Л/(т) = l/Х, £>(т) = 1/Х2. Кроме пуассоновского в теории МО часто рассматриваются эрланговские потоки л-го порядка. Они образуется путем «проре- живания» простейшего потока при сохранении в нем каждого л-го события и характеризуются функцией распределения Р(г </) = (!
с математическим ожиданием М[х\ = пк~{ и дисперсией Х>[т] = = пк~2. Механизм обслуживания характеризуется числом обслужива- ющих приборов, законом распределения времени обслуживания, типом обслуживания (последовательное или параллельное). Время обслуживания — случайная величина, часто распреде- ленная по показательному закону, т.е. вероятность того, что вре- мя обслуживания не превысит г, можно представить так: P(s < t) = 1 - е’и', где р — средняя интенсивность обслуживания. Среднее время об- служивания равно 1/ц, а дисперсия времени обслуживания 1/ц2. Обобщенной характеристикой системы МО является приве- денная интенсивность входящего потока и = Х/Ц- Загрузка одно- го прибора характеризуется вероятностью занятости прибора р = и/с = Х/(це), с~ число приборов в СМО. Если с > 1, то система может обслуживать одновременно несколько заявок. Очереди, образуемые в СМО, характеризуются вместимостью или длиной. Если очередь бесконечной вместимости, то любое требование может быть принято в систему и поставлено в очередь. Если очередь конечна, то заявка ставится в очередь, если она имеет свободные места для ожидания. Разнородным заявкам могут присваиваться приоритеты разно- го типа (абсолютные или относительные), указывающие на поря- док обслуживания. Абсолютный приоритет имеет заявка, которая при поступлении в систему начинает немедленно обслуживаться, прерывая обслуживание заявок с более низким приоритетом. За- явка с ббльшим, чем у других, относительным приоритетом на- чинает обслуживаться после завершения обслуживания очеред- ного требования, ранее поступившего на обработку, в порядке убывания приоритетов. Обычной формой описания структуры СМО служит последо- вательность символов вида А/ В/с/к/т^ где А — тип распределе- ния интервалов времени между поступлениями заявок на обслу- живание; В — тип распределения времени обслуживания; с — число приборов; к — число мест ожидания (допустимая длина очереди); т— число требований в источнике заявок; z — дисциплина об- служивания. Для конкретных законов распределения вместо символов А и В используют символы: G — для произвольного, М — для пока- зательного, Еп — для эрланговского распределения л-го порядка, D— для детерминированного распределения. Из приведенной классификации СМО видно, что они харак- теризуются большим разнообразием. Кроме того, возможны мно- гочисленные модификации моделей МО. В них могут быть, на-
пример, учтены группирование поступающих требований, зави- симость входных потоков от состояний системы, изменение чис- ла обслуживающих приборов, возможность отказов от ожидания и ряд других особенностей, связанных со спецификой исследуе- мого объекта. Для установившегося режима в любой открытой СМО спра- ведливы формулы Литтла [18]: £ = Хн»; Д>ж = Х/ож, (7.2) где L — среднее число заявок в системе (в ожидании и на обслу- живании); X — интенсивность входного тока заявок; w — среднее время пребывания заявки в системе; Аож— среднее число заявок очереди; /ож — среднее время ожидания в очереди. Если известна вероятность рп нахождения в системе п числа заявок, то длина очереди £ож и число заявок L в системе опреде- лятся так: L = £ пр„, Д>ж = Ё ^п-с)р„. л=0 л=0 Пусть среднее время обслуживания !&= 1/ц. Тогда и>= гож + 1/ц. Умножая на X, получаем £ = 4ж+Х/ц. (7.3) Формулы (7.1), (7.2) являются универсальными и могут при- меняться при любом виде распределения времени поступления требований и вероятностей обслуживания. Если очередь ограничена, то часть заявок отклоняется, поэто- му в формулах (7.1), (7.2) используется так называемая эффек- тивная частота поступления X^= рХ, 0 < 0 < 1. Она указывает на фактическое число принятых в систему заявок и определяется из формулы (7.2): ^•эфф = ц(^ ~ Дэж)' 7.1.4. Марковские случайные процессы. Уравнения Колмогорова Марковским называется такой случайный процесс, что для любого момента времени вероятность последующих состояний зависит только от текущего состояния и не зависит от того, как система пришла в это состояние, т.е. от предыстории процессов. Различают марковские процессы с дискретным множеством состояний и непрерывным временем переходов (в них переходы возможны в любые моменты времени), а также процессы с диск-
ретным множеством состояний и переходов, которые могут про- исходить только в отдельные дискретные моменты времени. Марковские процессы с дискретными состояниями изобража- ются графами состояний, в которых вершины соответствуют со- стояниям ..., Sn системы, а дуги (5Z Sj) — возможным перехо- дам из состояния 5/ в Sj\ задержки в состояниях соответствуют петлям, тогда i = j. В марковских процессах состояния системы являются взаимо- исключающими, т.е. система в любой момент времени может на- ходиться только в одном из состояний. В процессе моделирования СМО интерес представляет оценка значений вероятности пребывания системы в том или ином /-м состоянии. Вероятность р* нахождения системы в состоянии S, на к-м шаге ее работы определяется распределением вероятностей на предыдущем (к - 1)-м шаге и вероятностями рк~1 переходов из всех состояний Sj [18]: Pi = I Pji~'< ‘ = 1, «• Л' (7.4) Здесь так называемая переходная вероятность порядка к, т.е. вероятность перехода из Sj в 5, точно за к шагов: Pji ='^Р/Г'> > = «• /=| Переходные вероятности 1-го порядка образуют матрицу Рк = = Цр/,11, элементы которой получаются перемножением матриц: р2 = 1Ы1 Ы1’/>3 =ИИЫи тд- Таким образом, матрица Рк для к > 2 вычисляется как произ- ведение р* = р*-|р = И-,||-||ру,||. где Р= ||ру/|| исходная матрица вероятностей переходов. Раскрывая рекуррентное соотношение (7.4) по индукции, по- лучаем вероятности состояний после фиксированного числа пе- реходов: а* = Z p°j f X Pjr'PH 1 = X PjPji< J \ i J J причем в начале процесса р^ равно 0 или 1.
Для определения абсолютных вероятностей pfj) в любой мо- мент времени t используется система дифференциальных уравне- ний Колмогорова: п п V/: (А(/у = Kjit) + X(7.5) /=0 j=I При начальных условиях д = р?, t = Число уравнений в систе- ме равно л, а неизвестных п + 1. В качестве одного недостающего п уравнения может быть использовано условие £д(Г) = I- / = ! Для предельного стационарного режима вероятности пребыва- ния процесса в определенном состоянии не зависит от времени и определяются системой из (и + 1) числа линейных однородных уравнений: п п = (7.6) /=0 /=1 Неизвестные параметры СМО определяются по найденному стационарному распределению вероятностей. Пример 7.1. В качестве примера использования уравнений Кол- могорова рассмотрим имеющую важное значение СМО, называ- емую схемой гибели и размножения (рис. 7.1). Она характеризу- ется тем что при J * i ± 1 интенсивности переходов из состояния 5, в состояние Sj равны нулю. Переход вправо означает увеличение числа состояний, переход влево — уменьшение. Система МО при- нимает заявки и обслуживает по одной заявке в порядке «первым пришел — первым обслужен». Система в состоянии 50 не имеет заявок; при 5, обслуживает одну заявку и очередь пуста; при 52 очередь содержит одну заявку и т.д. Заявки поступают по пуас- соновскому закону, а время обслуживания — показательно рас- пределенная случайная величина. Для представленного графа состояний уравнения конечных вероятностей (7.5) имеют следующий вид: Wo = PlPli U1 +Ц|)Р1 =*-oPo+H2P2J У-пРп ~ ^п-\Рп-\\ Ро + Р} + Р2 + ” + Р« = Ь
Рис. 7.1. Схема гибели и размножения Из первого уравнения имеем р\ = ЛоРо/щ; во втором уравнении Ц1Р1 = Аойь в третьем Ц2Р2 = и т.д. Поэтому, упростив второе уравнение и подставив в него получим р2 = ХоХ1Р|/(Ц|Ц2). Аналогично получим р3 = кДЛгй) / МчМгИз- ____ Для £-го уравнения: рк = • • • ^-iPo/М1М2 •••ркД = U п- Складывая все выше приведенные вероятности состояния, по- лучаем Ро =[1 + Х0/Ц| +X0A./U1H2 + ... + ХоА., A.„.l/H|g2 • 7.1.5. Сети массового обслуживания Многоэтапный процесс обслуживания заявок и взаимодействие обслуживающих приборов приводят к необходимости рассматри- вать сети МО. Сеть МО — множество приборов или СМО, связан- ных по определенной схеме. Стрелки между узлами сети указыва- ют движение заявок при обслуживании. На схемах, изображающих сети, узлы указывают на источники заявок, очереди, приборы, а также клапаны, управляющие движением заявок (рис. 7.2). Мар- шруты движения заявок определяются детерминированными или стохастическими процессами. Обработка заявок в каждой из систем сети МО может быть разных типов и характеризуется классом заявки, обслуживаемой в узле. Такие сети называют мультиклассовыми или многопро- дуктовыми. В детерминированных сетях при разветвлении обслуженные потоки направляются к определенному узлу по дугам, помечен- ным классом обслуживания, к которому принадлежит тот или иной процесс обслуживания. В стохастических сетях отсутствует определение порядка выполнения этапов обслуживания и меж- Рис. 7.2. Изображение основных элементов в сетях массового обслуживания: а — накопитель; б — источник заявок; в — клапан; г — канал обслуживания. Штри- ховой линией показаны управляющие воздействия на клапан
классовые переходы, однако должны быть определены вероятно- сти переходов между узлами. Сеть называется открытой (разомкнутой) по отношению к за- явкам определенного типа, если эти заявки после обслуживания покидают сеть. В замкнутых сетях заявка не покидает сеть, а ее маршрут является циклическим, т.е. начинается и заканчивается в определенном узле. Состояние сети МО характеризуется вектором 5 = где s, — число заявок на обслуживании в узле i сети. Сеть находится в одном из R возможных состояний с вероятностью р/S'), причем R !>($) = 1. г=| Маршрут движения заявок в стохастической сети МО характе- ризуется матрицей ||pj| вероятностей переходов, где д7— вероят- ность того, что после обслуживания заявки в узле / она переходит на обслуживание в узел у. Потоки заявок в сети должны удовлет- ворять условиям баланса, поэтому интенсивности потока заявок из узла связаны следующими соотношениями: N ____ К = X Ч = X М/' = °’ (7.7) у=о у=о где Х/7 — интенсивность потока заявок, исходящих из узла / в узел у. Для разомкнутой сети уравнения баланса потоков (7.7) при известной матрице ||д7|| вероятностей переходов в стохастических сетях позволяют определить все X, при заданной интенсивности Аф потока из начального узла и, таким образом, специфицировать маршрут движения заявки в сети. Для замкнутой сети система уравнений (7.7) дает бесконеч- ное множество решений, так как Хо не задано. Поэтому специ- фикации маршрута произвести невозможно. В такой сети мож- но определить безразмерную величину а, = которая назы- вается коэффициентом посещения заявки в узле / и определяет общее число обслуживаний заявки при всех поступлениях в узел / сети. Разделив все уравнения (7.7) на Аф, получим систему линей- ных уравнений относительно переменных а, (коэффициентов пе- редач или посещений): Л' ____ а, = Ew / = 0’ (7.8) /=о где «ф = 1. Найденные значения а, после определения Аф использу- ются для подсчета А, = аДф.
Если маршрут детерминирован, то известны а, и уравнение (7.7) можно использовать для определения матрицы переходов IM- В многопродуктовых сетях маршрут характеризуется матрицей вероятностей передач ||р/у.Л||, где Pu,js— вероятность обслужива- ния заявки класса s в узле j после обслуживания класса / в узле i. В текущий момент времени состояние обслуживания заявки ха- рактеризуется номером узла и классом обслуживания. В много- продуктовых сетях уравнения балансов потоков имеют вид .V L ____ К = = ^,/ = 1, L j=Q/=1 Для расчета сетей МО часто используются: метод анализа сред- них, алгоритм свертки, метод вложенных цепей Маркова и др. [8]. Аналитические исследования моделей сетей МО применительно к автоматизированным системам отличаются исключительной сложностью. В практическом отношении они являются менее эф- фективными по сравнению с методами имитации, получающими все большее распространение. Пример 7.2. В качестве примера использования аппарата сетей МО определим среднюю задержку передачи информации в сети передачи данных (СПД) с коммутацией пакетов (коммутацией сообщений), где имеется возможность выбора маршрута переда- чи [34]. Для этого представим отдельный канал СПД в виде систе- мы М/М/1. Для такой системы поток интенсивностью X,- на входе подчиняется пуассоновскому закону. Среднее время обслужива- ния характеризуется показательным распределением и равно 1/(цС;), где 1/ц — средняя длина всех независимых сообщений, распределенная по показательному закону; С,— пропускная спо- собность /-го канала, / = 1, т. Решение. Среднее время, проведенное сообщением в z-м кана- ле можно определить так: ц С, - X, ’ (7.9) В соответствии с формулой Литтла (7.1) среднее число сооб- щений, находящихся в очереди на входе /-го канала, равно Q = = Х,7}. Пусть Т— среднее время, проведенное сообщением во всей СПД, А — полный внешний трафик, поступающий в сеть. Тогда общее число сообщений, находящихся в сети, Q-\Т. От- сюда получаем выражение для средней задержки передачи сооб- щения
1 т л ,=| где Т, определяется выражением (7.9). Поток X, в z-м канале опре- деляется как сумма всех потоков при обмене взаимодействующих пар абонентов. Полный внешний телетрафик1 Л определяется как сумма внешних трафиков ууА, возникающих ву-м узле и адресуемых в к-й узел СПД .V .V Л = ££?/*• j=\ к=\ 7.1.6. Построение сетевых моделей массового обслуживания Для быстрого аналитического определения характеристик сети МО делают упрощающие предположения относительно распре- деления потоков и строят простые сети. Это позволяет оценить влияние изменений выделенных параметров на характеристики моделей исследуемых систем, границы изменения характеристик, а также использовать в последующем в более точных моделях. В целом построение сетевых моделей систем включает в себя решение следующих вопросов: определение множества объектов и их взаимодействий в про- цессе функционирования; определение топологии, эквивалентно отображающей связи между этими объектами; выделение ресурсов и маршрутов движения заявок; выбор временных параметров потоков заявок и работы обслу- живающих приборов; анализ потоков, выдвижение и проверку гипотез о законах рас- пределения случайных величин; установление начального состояния сети; выбор моделируемых параметров сети. При наблюдении за системой проводится проверка того, соот- ветствуют ли случайные потоки поступающих заявок и обслужен- ных требований тому или иному закону распределения. Основные трудности при построении модели СМО состоят в проверке ста- ционарности процессов, независимости событий, подборе зако- на распределения для поступающих заявок и обслуживания. При выдвижении гипотезы о законах распределения необходимо иметь ' Образовано из двух слов: греческого «теле» — далеко, на расстоянии и ла- тинского tra-veho— перевести, переслать.
сведения о количестве поступающих и выходящих заявок в еди- ницу времени. Если среднее значение и дисперсия случайной ве- личины являются приблизительно одинаковыми, то это свиде- тельствует в пользу распределения Пуассона. При подборе закона распределения приходится прибегать к статистическим методам обработки эмпирических данных и проверке выдвигаемых статис- тических гипотез по одному из известных критериев /2 или Кол- могорова-Смирнова [6]. Проверка независимости событий ос- нована на корреляционном анализе структуры процесса. Анализ стационарности может быть проведен путем разбиения рассмат- риваемого интервала времени на периоды со стационарным по- ведением системы и использования рангового критерия Вилкок- сона. 7.2. Аналитические задачи моделирования стохастических систем 7.2.1. Задачи анализа систем на основе моделей стохастических процессов Одной группой задач, связанных с исследованиями потоков, которые учитывают динамику потокообразования, являются зада- чи анализа систем на основе моделей стохастических процессов. Пусть имеется анализируемая система, в которой действуют несколько потоков. Один из потоков, действующих в некотором канале, наблюдается в течение времени а другой — в том же канале, но в течение времени t2, причем в первом наблюдении было зарегистрировано к\ событий, во втором — к2. Насколько вероятно, что эти потоки имеют одинаковые (или различные) распределения? Для того чтобы оценить количественно вероят- ность различия, применяют неравенство [45]: (*i/'i -k2/t2Y >(g2X)/[(r1r2)(r1 +r2)], (7.10) где g — масштабный коэффициент, определяемый в соответствии со статистическими положениями; X — реальная интенсивность потока в канале. Значение величины g зависит от требований погрешности оцен- ки искомой вероятности р события, заключающегося в расхож- дении результатов. Как известно из математической статистики, при достаточно большом числе п наблюдений за некоторым ис- следуемым процессом и наступлении т событий можно пола- гать, что абсолютное значение погрешности \т/п - р\ распределе- но по нормальному закону. Поэтому доверительную вероятность
Ра оценки искомого значения р в соответствии с центральной предельной теоремой можно найти следующим образом [22]: 20(g)- 1. » т рли-р (7.11) Здесь <D(g) — гауссова функция ошибок. Число испытаний л*, необходимое для обеспечения заданной относительной погреш- ности р, можно найти из формулы g /р(1 - р) п* (7.12) где л* = л/р2. Ввиду того, что значение X в (7.10) неизвестно, вместо него берут наиболее близкую подходящую оценку, в частности значе- ние + к2)/(ц + Г2), и практически определяют расхождение в распределении потоков по сходному с (7.10) неравенству (£|Л, -кг/ъ)г >g2/[(ri6)(£, + fc2)]. (7.13) Методику решения данной задачи можно рассмотреть на при- мере. Пример 7.3. Пусть, как и в общей постановке задачи в одном эксперименте, который длился часов, проводились измерения поступающих к узлу сети вызовов и было зарегистрировано число Л, таких вызовов. А в другом эксперименте за t2 часов измерений было зарегистрировано к2 вызовов. Оценить при уровне довери- тельной вероятности, равной 0,95, случайно ли возможное рас- хождение в результатах измерения или закономерно, и что пото- ки, наблюдаемые в первом и во втором случаях, имеют различ- ные характеристики. Так как доверительная вероятность задана, решение задачи упрощается. В этом случае величину g можно найти, воспользо- вавшись соотношением (7.12) и таблицами для нормальной функ- ции распределения <D(g), откуда g = 1,96, которые приводятся в справочниках по высшей математике. Затем проверяется неравенство (7.13). Если оно выполняется при данном g и полученных результатах измерения, то это гово- рит о том, что расхождение не случайно, потоки имеют различ- ные характеристики. При невыполнении неравенства расхожде- ния измерений характеристик потоков объясняются случайны- ми факторами, относящимися к одному и тому же распределе- нию.
7.2.2. Марковская модель вычислительного процесса С помощью данной модели расчетным путем и эксперимен- тально могут определяться важнейшие характеристики той или иной компьютерной программы и соответствующего алгоритма, который она реализует. Комплексной оценкой свойств данных объектов моделирования может служить показатель сложности («трудоемкости» алгоритма или программы), который можно оха- рактеризовать множеством следующих параметров: 0— среднее количество процессорных операций, выполняемых за одну реали- зацию алгоритма; 7Vt, N2, ..., Nh — среднее количество обраще- ний и соответственно количество информации — /н /2, —, 4, поступающее к вычислительному процессу и(или) выдаваемое от процесса к программным (командным) и информационным фай- лам (файлам данных) — F2, ..., Fh, связанным с работой про- граммы [39]. Если принять допущение, что по характеру вычислительный процесс соответствует марковскому процессу, то графическая модель его может быть представлена с помощью диаграммы со- стояний, показанной на рис. 7.3, соответствующая матрица веро- ятностей переходов при этом будет выглядеть так: So 5, S: ... Sh S/,+1 So 0 Po. 1 Po. 2 Po. h Po. h+\ S| 1 0 0 ... o 0 s2 1 0 0 ... о 0 p= ... • • ♦ ... sh 1 0 0 ... 0 0 S/,+1 0 0 0 ... 0 1 Строки матрицы Р соответствуют возможным состояниям Sh в которых может находиться вычислительный процесс; столбцы — состояниям в которые он может переходить, а значения эле- ментов на пересечении столбцов и строк определяют вероятнос- ти переходов pik из одних состояний в другие. Состояние 50 соответствует протеканию вычислительного про- цесса в операционной части компьютерной системы (процессо- рах и устройствах оперативной памяти). Пребывание процесса в данном состоянии называют также этапом счета. Состояние Sh + । означает завершение процесса (прекращение его существования). Все другие состояния S2y — , $h соответствуют обращению к устройствам внешней памяти, на которых размещены програм- мные и(или) информационные файлы Fh F2„ ..., Fh. Вероятности
Рис. 7.3. Диаграмма состояний вычисли- тельного процесса переходов р0,ь Ро.2, •••, Ро.л характеризуют ход процесса «в сред- нем» по множеству его реализаций, показывая, как часто он пе- реходит в те или иные состояния, и соответственно определяя, насколько сложны и «объемны» («трудоемки») выполняемые опе- рации. В качестве оценки трудоемкости всего алгоритма и отдельных его этапов можно рассматривать множество случайных величин {0} с подходящим законом распределения и математическими ожи- даниями 0Л, h = 0, 1, ..., Н. Поясним выше изложенное следу- ющим примером. Пример 7.4. Пусть имеется вычислительный процесс, пред- ставляемый марковской моделью, в ходе которого происходит об- ращение к трем файлам F\, F2, F3 с количеством обращений, рав- ными соответственно: = 17, TV2 = 34, 7V3 = 48. При каждом таком обращении из процесса к файлам и обратно передается в среднем соответственно по /| = 130, /2 = 270 и /3 = 1 600 байтов. Среднее количество процессорных операций, выполняемых за одну реализацию алгоритма — 9, составляет 1 млн операций. Оценить среднюю трудоемкость данного алгоритма для этапов счета и со- ставить матрицу переходных вероятностей этого марковского про- цесса. Решение. Находим общее число этапов счета: N = Nx + N2 + + 7V3+ I = 100. Вероятности переходов можно определить так: Po,h = Nh/N (А = 1, 2, п - 1 / Л/ (7Л4) Ро. Л+1 - 1 / ”. Откуда: р0| = 17/100 = 0,17; р02 = 34/100 = 0,34; р03 = 48/100 = = 0,48; р0.4= 1/100 = 0,01.
Матрица переходов в данном случае будет выглядеть следу- ющим образом *3 54 5| $2 0 0,17 0,34 0,48 0,01 10 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 Далее можно оценить искомую среднюю для этапов счета тру- доемкости рассматриваемого алгоритма как отношение среднего количества операций 0 к общему числу этапов счета. Кроме рассмотренных ранее примеров аналитические модели сетей МО находят применение при оценках характеристик ком- пьютерных сетей и систем. В частности, в работе [3] исследуется сеть ЭВМ, состоящая из информационных процессоров, обмени- вающихся данными через коммуникационную систему (сеть пе- редачи данных) по способу коммутации пакетов. В общем случае для исследуемой сети может быть задана мо- дель, учитывающая в комплексе варианты взаимодействий ин- формационных процессоров с двумя классами заявок. Для анали- тического представления данной модели рассматривается замк- нутая СМО, состоящая в общем случае из М обслуживающих устройств (станций). Каждая станция содержит к. каналов, время обслуживания в которых имеет экспоненциальное распределение со средним значением В сети находится постоянное число зая- вок, принадлежащих различным классам, определяемым марш- рутизацией пакетов. Времена обслуживания заявок различных клас- сов на отдельной станции имеют одинаковые распределения. Процессы маршрутизации описываются R цепями Маркова 1-го порядка с матрицами переходных вероятностей Рг = ||р£||, /, j = 1, М\ г = 1, R, где Ду — вероятность перехода заявки класса г на станцию j после окончания обслуживания на станции /. Определе- ние характеристик функционирования сети МО производится на основе выражений для стационарных вероятностей состояний. В про- цессе решения задачи, получаемого на основе численных методов, определяются основные характеристики функционирования сети: пропускные способности Ir(N) которые определяют среднее количество заявок класса г, прошедших полный цикл обслужива- ния в единицу времени; средние времена задержки Tr(N) заявок различных классов на круговом маршруте замкнутой сети, требующиеся для прохожде- ния полного цикла обслуживания заявки класса г;
коэффициенты использования станций «/для заданного чис- ла каналов на станции / - kh Для кь равного единице — и- < 1; а для kt > 1 и- равны среднему числу занятых каналов на станции / заявками класса г. 7.3. Примеры имитационных моделей стохастических систем 7.3.1. Модель складской системы Имеется склад, для которого в течение заданного срока (день, неделя и т.д.) установлен определенный начальный уровень за- паса — В некоторого товара или продукта (ящиков пива, холо- дильников и т.п.). В каждый последующий период времени на данный продукт ожидается спрос, который ограничен максималь- ной величиной Qm. При наличии нужного количества товара на складе спрос удовлетворяется. При этом склад может получать не- которую прибыль Р, связанную с реализацией товара. При хране- нии товара осуществляются текущие затраты W, связанные с этим хранением (например, арендная плата складских площадей). Если количество продукта на складе становится меньше опре- деленной величины PLT, называемой точкой возобновления за- паса, то делается заявка на пополнение запаса. Организуется по- ставка заранее определенного размера. Поставка может быть вы- полнена только через некоторое время. Это время ограничено мак- симальной величиной. Если на данный момент имеется еще не выполненная заявка на пополнение запаса, то новой не делается. При организации поставок складом затрачиваются некоторые сред- ства. В некоторый момент времени может оказаться, что текущий спрос больше, чем количество имеющейся на складе продукции. Тогда склад несет убытки, связанные с дефицитом продукта. Главным показателем эффективности работы склада можно рассматривать затраты на его функционирование. На величину этих затрат влияют как объективные, так и субъективные факторы. Например, субъективными факторами можно считать то, что ад- министрация склада может изменять точку возобновления запа- сов, их начальный уровень, объем поставок, влиять на сроки вы- полнения этих поставок. Но одновременно должен учитываться имеющийся спрос и различного рода затраты, не зависящие от решений администрации, т.е. объективные условия (стоимость аренды, организация поставки — себестоимость продукта и т.д.). В модели склада выделены различные категории переменных, в частности, — полные издержки системы W, которые представ-
ляютсобой эндогенныёпёрёмённыейс^адываютсяизслёлу^ юших отдельных затрат: W1 — затрат на содержание запасов, W2 — затрат, связанных с организацией поставок, W3 — (затрат) по- терь от дефицита товара на складе; текущее время — CL, время очередной поставки — Т1 и VI — количество запаса на складе от- несены к категории переменные состояния. Dz — спрос в z-й день и Ту — время, необходимое для выпол- нения у-й поставки рассматриваются как экзогенные переменные. Кроме того, в модель введены переменные управления, к кото- рым отнесены QE — объем одной поставки, ТВЗ — точка возоб- новления запасов. В модели фигурируют также такие параметры, как С1 — затраты на хранение единицы продукта в течение одно- го периода времени, С2 — затраты на организацию поставки еди- ницы продукта, СЗ — потери, связанные с нехваткой единицы продукта, В1 — начальный уровень запаса, ТТ — общая продол- жительность в днях работы склада. Наконец, задаются и учитываются такие характеристики функ- ционирования, как функция плотности вероятности спроса — ДО) и функция плотности вероятности времени выполнения заказа — /(TPL), а также то, что различные виды затрат связаны соотно- шением: W = Wl + W2 + W3. Схема алгоритма работы модели приведена на рис. 7.4, в соот- ветствии с которым модель построена и функционирует следу- ющим образом. 1. Вводятся значения переменных EOQ, ROP, параметры Ci, С2, СЗ, Bl, ТТ и законы распределений/(D),/(TPL). 2. Обнуляются переменные CL, Т, Wl, W2, W3, W; текущее значение запаса VI устанавливается на уровне В1. 3. Генерируется спрос Dz; переменная CL увеличивается на 1 (время в системе переводится на 1 день). 4. Блок 7 проверяет, не истек ли установленный период испы- тания модели. 5. Если текущее время превышает ТТ, имитация завершается; подсчитывается W и выводятся результаты. Если нет, то проверя- ется, совпадает или нет текущее время с моментом реализации поставки. 6. При совпадении количество запаса увеличивается на EOQ. После этого из запаса вычитается значение спроса Dz. Получен- ная разность VI - Dz может оказаться отрицательной, т.е. образо- вался дефицит. 7. В этом случае подсчитываются связанные с дефицитом поте- ри. При этом блок 15 обнуляет запасы. Блок 16 пересчитывает пол- ные затраты на сохранившиеся запасы при (VI - Dz*) > 0.
8. Если текущий уровень запасов (блок 17) превышает точку во- зобновления, то управление передается блоку 5 (точка А в схеме). 9. Если запасы не превышают PR, происходит переход к бло- ку 18. Он проверяет наличие на складе нереализованной постав- ки, заказ на которую был сделан ранее. 10. Если же невыполненных заказов нет, то работает блок 19, который подсчитывает затраты, связанные с организацией по- ставок ТС2. 11. Затем генерируется время выполнения поставок TPL (блок 20), и его значение складывается с текущим временем CL (блок 21), после чего снова происходит возвращение программы в блок 5. Приведенный алгоритм имитации функционирования склада не является единственно возможным. В качестве критериев оста- нова прогонов модели могут служить и другие переменные.
7.3.2. Работа с моделью В программе модели имеется понятный пользовательский ин- терфейс, позволяющий ввести начальные параметры и перемен- ные управления: объем одной поставки; точку возобновления за- пасов; затраты на хранение единицы продукта в течение одного периода времени; затраты на организацию поставки единицы про- дукта; потери, связанные с нехваткой единицы продукта; началь- ный уровень запаса; продолжительность в днях. Может быть также введена цена единицы товара при отпуске для возможности оценки прибыли склада. Кроме того, вводятся максимальные значения случайных величин — спроса и времени, необходимые для моде- лирования поставки. Для работы необходимо ввести количество периодов времени, в течение которого будет работать модель, а также количество циклов прохождения моделью испытаний для получения среднего результата. В качестве основных выходных данных модель представляет пользователю полные затраты на ведение склада. При этом для заданного количества циклов испытаний выводятся средние зна- чения полных затрат склада. Кроме того, строятся графики, отра- жающие количество запаса на складе и спрос в любой день, а также графики, отражающие полные затраты на хранение запа- сов, полные затраты, связанные с организацией поставок, пол- ные потери от дефицита продукта на складе и полная прибыль от удовлетворения спроса. Для оценки эффективности работы склада в модели также под- считывается количество дней, в течение которых испытывался дефицит товара и склад пустовал. Рассмотрим один из вариантов исследования. Будем оценивать полные затраты системы в зависимости от установленной точки возобновления запасов относительно начального уровня запаса на складе. Одновременно будем рассматривать затраты при различных значениях спроса относительно величины поставки. Это возмож- но, так как общее количество товара на складе, а следовательно и затраты на его содержание зависят от этого соотношения. Исследование будем проводить на временнбм периоде равном 30 дням (месяц). В качестве объективных параметров, отражающих разного рода затраты Cl, С2, СЗ, для удобства примем их вели- чину за 1 денежную единицу, т.е. Cl = С2 = СЗ = 1. Начальный уровень запаса примем равным 1 000 единиц това- ра, а объем единичной поставки примем равным 100 единицам товара. Точку возобновления запаса и максимальный объем спроса будем рассматривать как безразмерные величины, оцениваемые
относительно начальных значений, т.е. 0,1 *В1,0,5*В1... и 0,1*EOQ, 0,5*EOQ... соответственно. 7.3.3. Анализ результатов Для установленных выше исходных данных модель выдает ре- зультаты, приведенные в табл. 7.1, 7.2, по которым можно сделать следующие выводы. Чем ближе точка ROP пополнения запаса к начальному уровню, тем больше создается запас на складе, так как он постоянно пополняется, и, соответственно, растут затра- ты на его содержание. Эти затраты составляют в данном случае львиную долю от всех других затрат. При этом общие затраты тем больше, чем меньше максимальный спрос относительно объема поставок (рис. 7.5). При превышении точкой возобновления уровня начального запаса затраты заметно возрастают, что связано с необходимо- стью содержать изначально большой объем товара. При повышении уровня спроса (для любой ROP) нал уровнем поставок в разы потери резко сокращаются, что связано с умень- шением в среднем количества товара, который нужно содержать. Чем меньше при этом ROP, тем меньше потери. Наименьшее зна- чение потерь при этом в точке, где спрос превышает EOQ более Таблица 7.1 Зависимость полных затрат W от точки пополнения запаса ROP(Bl) при различных значениях максимального спроса Di ROP(Bl) Di(EOQ) 0,2 0,4 0,6 0,8 1,0 1,5 2,0 3,0 4,0 0,2 25 300 20850 16 520 13 478 11731 8 526 7 507 7 229 7 954 0,4 25 450 20680 17 805 15 674 13 533 9 096 8 096 7 645 8 054 0,6 25 504 22 100 20581 19 550 17480 11289 8 697 7 720 8331 0,8 26 300 25 300 24 750 23 536 21 178 И 514 9 744 8 198 8421 1,0 31 200 31000 30169 28 341 25 335 16 120 10530 8 332 8 534 1,5 42 100 39 650 35412 31 168 26 360 16 584 10620 8 354 8 567 2,0 45 220 40 500 35 300 31 972 26 200 17011 11 320 8450 8 542 3,0 45 300 41 300 35610 31 575 26 464 17231 11 502 8 535 8 504 4,0 45 520 41 500 35 800 31 916 26 574 17 168 11 183 8 548 8510
Таблица 7.2 Продолжительность (в днях) дефицита товаров на складе ROP(Bl) Di(EOQ) 0,1 ... 0,8 0,9 1,0 1,2 1,5 1,6 1,7 1.8 1,9 2.0 3,0 4,0 0,2 0 0 1 2 3 6 10 11 12 13 14 15 18 22 0,4 0 0 0 0 0 3 8 9 10 11 12 13 19 22 0,6 0 0 0 0 0 I 6 8 9 10 11 12 18 21 0,8 0 0 0 0 0 0 4 5 7 9 10 11 17 21 1,0 0 0 0 0 0 0 3 4 5 7 9 10 17 21 1,5 0 0 0 0 0 0 2 3 5 6 8 10 16 21 2,0 0 0 0 0 0 0 2 3 4 6 7 9 16 20 3,0 0 0 0 0 0 0 2 3 5 7 9 10 17 21 4,0 0 0 0 0 0 0 2 3 4 6 8 9 17 21 Д^Мпдппь гкаада чаты сое r.owcrio Мдаид товара Ij , ', ох»**»ошгс>мп*с 1 f— Г сх» « пспог««**<я мпвссе ‘с> 1 Маасмналькм певеаа^слсхжа1 : Начв'»^ч>»< *>oeerfe запаса Ц*м «домны товара при । Irx и Мвржии | Ёоомо оУЧп bi мве<*• е а"' ГЧж«м-Р*С*М Start о«оие имера.и chc'ch*. На» г кильки, «сълес-оэ дней но nono-.v**** >%wca ierjarti на'Л-•«•sac»».'тсс’»• и едоъыь- ’оеар-з П’и»с*. с(*х»нчяес («еа’.эй ай-*«1Ы ПраДуТа Зв'рвТь He»p»<e'*eat>h*«it‘<rw/:’a ' В ’*•«*** адног олер**ав э оре~ег*« » r»t.- . Рис. 7.5. Интерфейс программы имитационной модели склада в.’ЗЗ 4 ис го э • гч*»*-1 ов ’ООО $500 6000 $500 5000 4500 4000 3 500 3000 2500 2000 I 500 1 000 500 о 1 2 3 4 56 7 в 9 10 11 12 13 14 15 16 17 1® 19 X 21 22 23 24 25 26 27 Л 29 X Irt'V < 1021 9 Число айвы а — ввод исходных данных; б — графики результатов; в — управление процессом моделирования
чем в 2 раза. На рис. 7.5 видно, что при значениях D/(EOQ) более чем 2 уровень потерь не меняется. Таким образом, минимальными получились затраты в том слу- чае, когда спрос в несколько раз превышает уровень поставок, а точка пополнения запаса как можно ниже, соответственно запа- сы быстро расходуются и склад простаивает, а восстановление запасов производится крупными партиями товаров. При другом соотношении единичных затрат Cl, С2, СЗ могут получиться другие результаты и выводы. Например, если потери при дефиците товара будут превосходить в несколько раз расходы на текущее содержание товара, то простой станет невыгоден. С другой стороны, чтобы склад продолжал функционировать с минимальной долей дефицита (соответствует точке пополне- ния запаса ниже начального уровня и максимальному спросу, не более чем в 1,3 раза превышающему уровень поставок), мож- но ввести такие отпускные цены, которые покрыли бы излишки затрат. 7.3.4. Имитационная модель для оценки реальной пропускной способности канала передачи данных в компьютерных сетях В этой модели исследуются параметры и характеристики кана- ла передачи данных, как отдельно взятого, так и работающего в локальной сети ЭВМ. Функционирование любого канала сопровождается воздействи- ем достаточно большого числа дестабилизирующих нежелатель- ных факторов — помех. Чтобы устранить или нейтрализовать дей- ствие помех, работа канала поддерживается множеством средств управления, включающим протоколы канального уровня, специ- альную аппаратуру и программное обеспечение [34]. Процесс передачи данных происходит в такой последователь- ности: от источника информации поступает сообщение, которое должно быть передано адресату. Оно поступает на передатчик, где разбивается на части (пакеты или кадры) заданной длины и фор- мата, которые определяются спецификациями применяемого про- токола. После того, как кадры сформированы, они по очереди начинают передаваться по каналу. В канале случайным образом может действовать помеха с вероятностью Рш. Если она действует в момент передачи, то может возникнуть ошибка, и кадр необхо- димо передать повторно. Если же ошибка не возникла, то после передачи данного кадра может передаваться следующий кадр, если он есть. Повторная передача искаженных кадров приводит в ко- нечном счете к снижению реальной (фактической) скорости пе- редачи информации. Очевидно, реальная практическая скорость
всегда бчпет меньше гесретмчекммй сдерхлм («ршусмшй спи- сюбнала /?1. Ви-гвермыл. на пражлимвсжуш свисрсхль будут млматъ ЫДСрЖКН при пгрсхжчс, кшмклилиж NB-C4 НГибоиСОРМПСТ* рЖ1 бнмпъ особи к н нс на амт|ы и пртьгргтк правильность ВХ nrpfW чн Во-вторых на скорость передачи *mtt будут KTWWTb лпмсдм Чгы wvr ыровгность mwr 1и тем * блжмнш чмсае вадрое при перед** будет вспнють ошвОка СННМШ^ тем бош шее число шров привете* мередыыть пивворно Как эво аром. <U*f мм Прмалмме, мйжма выммгш с iiumlximu мьиимамшшкШ М<ие» рсжлк«iweci с аишмньш программы, ныыжагысй I.AN <1 «пса! Алы 4crwnrit — С гтм меггногеь ымштнйаК I |ргтраьыа всло- чэгт асьлй тст>п сгмьстелгтнип w»iryкн мс<ржъ гпмнхо пьмл триграммы 1млИ Mujir Wir<fcm). четыре мсоуит имгпоим» мо- дуль мгкмнениа пАпммы исшялыь данные lunk Frequency), мо- лчт помощи («лй Melpi и ют»ль «О прхтммме* lunft About). После выбора патьхштеаем в глммюм меню прссрмммы «ум- скш Ксшфшурши ест —> Дм аиамаытра ьоджмепл <жж> ммм- 1миам сети, их нишей мл oi»i ихшпыц^ерси (рмс 7.61. Выиниым данными м раедьигроыемий miul.tm мхиюпх сяглтвдшк ггирг тмнесюва скорость передачи щвиных. hwr/t; нтроттлсть мотинк- Гн. Т А Сама нмг-Еынтммпй мггшамегтх елгтащтй и> ат ыьтыогжрт 2Ж
Рис ? f Окно wckxzh urr>. «лагпвшеЯ mj > ai*vik<ner«* момммм сшмйкм. #; ыаясимлииое ж.ю пакетом • сосбигямш роме? iMaurtu. биг. В KAMcvtse сж1мо« hi мышлмыа переыеннма в ниюм выступает фрсюнвыаы (реальна»!) сжиристъ перейми шмнмл Omi ивреяе л аггел и rpciixxxx ирэжленна мсмсаыамо аимрнмежтм с шж МЫМИ 1ОЛ1НММН п,у 1ГГр8Р1И. ФпрЫСЙ 11ПЕ,1ГТМКНМа ШИ1ГТС1 ЛМ грлрго — граф* к еаангиыпгтн гжптогти гэсрг л>« шины* пт вргпгппкш лщаОкм и канат и граф** w*cwn стм эФ<ггтмгиты- скорости repel*।и ла-»ал от п^-ргге’исш^А осп роста передам» jumhui. Ohm фэрмируютса а нижней чк^и ожив ажаигаинм Псжде маЬлы паикшлеаеэа а г.аманоаа меню при рамны мум- кта Kiaapai?y—ма errs —> h анамаатгриа С шааеаиаай werrtua сэсаамасаааа iniaiittettM окно мммашам СГТШ данной той фи ура Ватными жаре*термсгияиыы амМ ипасг* амлакпгя саеа^кжимг ннст апыпхпггчнц амтуга сскдмненма ра\»*сут. тепрЕтачесюа» сапрпт. перс хами даннма. СаатЛс; Д1нма txtpoi (погта), fare маг- смматнсе «где гхтрпг litwcnnik ыакгмымънпг «ртыа магрж- <м nepei псмаорммм обращением а с/тучае мнтхтм какма (рас Т.7|.
В качестве выходных характеристик модели, как и в предыду- щем случае, выступают теоретическая вероятность занятия ли- нии (она определяет уровень загрузки сети без учета помех в про- центах) и практическая вероятность Рпр того, что линия занята, в процентах, которая определяется по результатам имитационно- го эксперимента. Кроме вероятностных характеристик рассматриваемой систе- мы, определяются временные показатели: среднее теоретическое время передачи сообщения, с, и среднее практическое время пе- редачи данных, с, которое определяется в процессе эксперимен- та как отношение общего времени передачи к числу переданных сообщений. Теперь рассмотрим вопросы исследования сети с произволь- ным распределением значений внешних интенсивностей обмена между парами компьютеров. Входными переменными и парамет- рами этой модели являются: число компьютеров; таблица частот соединения; теоретическая скорость передачи данных, бит/с; длина пакета, бит; максимальное число пакетов; максимальное время задержки перед повторным обращением в случае занятости кана- ла, с. Аналогично предыдущей модели, выходными характеристика- ми данной являются: теоретическая вероятность (в процентах) того, что линия занята; практическая вероятность (также в про- центах) того, что линия занята; среднее теоретическое время пе- редачи сообщения, с; среднее практическое время передачи дан- ных, с. Модуль имитации сети, состоящей из Af компьютеров с раз- личной частотой соединения, реализует в цикле процедуру до- ступа их к передающей среде. Каждый из N компьютеров в слу- чайный момент времени, зависящий, однако, от его частоты со- единения, может обратиться к сети. Занятость линии (канала) оп- ределяется значением булевой переменной — true или false. Если канал не занят, начинается имитация передачи сообщения. При этом фиксируется время передачи и увеличивается значение пе- ременной, отвечающей за число переданных сообщений. Эти пе- ременные потом участвуют в вычислении среднего времени пере- дачи сообщения. Кроме того, при каждом проходе по циклу мо- дуль фиксирует, занят или нет канал, и по этим данным в конце своей работы определяет уровень загрузки канала. 7.3.5. Анализ полученных результатов и выводы При выбранных исходных данных, указанных выше, модель дает результат, что эффективная скорость передачи колеблется около значения 9000 бит/с. Действительно, если вероятность помехи
равна 10%, то 10% пакетов будут пересылаться повторно. Таким образом, из 100 отправленных пакетов 10 будут «бракованными», только 90 пройдут без ошибки. Значит, и эффективная скорость передачи будет составлять около 90 % теоретической. В экспери- менте с моделью эффективная скорость получилась несколько меньше 90 % (88 %). Это можно объяснить тем, что время тратит- ся не только на передачу пакетов, но и на их формирование. Исследуем теперь влияние увеличения скорости передачи дан- ных на результирующие характеристики канала. Значительно по- высим теоретическую скорость передачи данных. Сделаем ее рав- ной 100000 бит/с. Остальные параметры оставим неизменными. При таком изменении модель показывает, что эффективная ско- рость передачи данных не превышает 38 000 бит/с, что составляет всего 38 % теоретической скорости. Даже при уменьшении веро- ятности помехи до 0 эффективная скорость увеличилась только до 4300 бит/с, т.е. до 43 % теоретического значения. Таким обра- зом, можно видеть, что эффективная скорость передачи данных растет медленнее, чем происходит рост теоретической скорости при неизменности остальных параметров сети. Рассмотрим влияние размера сообщения (пакета). Эту величи- ну можно регулировать, либо увеличивая число пакетов в сооб- щении, либо увеличивая длину самого пакета. Выберем длину па- кета равной 7 000 бит, максимальное число пакетов равное 3 и пока не будем учитывать помехи. В этом случае модель показыва- ет, что эффективная скорость при таких параметрах равна 87 675 бит/с, т.е. приблизительно те же 88—90% теоретической скорости. Теперь попробуем увеличить еще и число пакетов в сообще- нии, а длину одного пакета оставим прежней (равной 7 000 бит). Пусть максимальное число пакетов в сообщении равно 15. При таких параметрах сети модель показывает, что эффективная ско- рость равна 96 790 бит/с, т.е. примерно 97 % теоретического зна- чения. Это указывает на то, что длина пакета является важной переменной в данной системе, значение которой можно оптими- зировать. 7.4. Имитационные GPSS модели систем и сетей массового обслуживания 7.4.1. Язык моделирования GPSS Рассмотрим содержание обшецелевой системы и языка моде- лирования GPSS [24, 46]. Она применяется в основном для ими- тации динамических, физических и логических объектов при фик-
сированной структуре моделируемых систем и схем функциони- рования. В языке GPSS применяют четыре типа объектов: динамиче- ские, аппаратно-ориентированные, статистические и операцион- ные. Динамические объекты GPSS (так называемые транзакты) имитируют различные процессы, события, потоки. Каждый тран- закт может быть охарактеризован набором различных параметров. Аппаратно-ориентированные объекты соответствуют различным устройствам моделируемых систем и по отношению к транзактам выступают либо как накопители, либо как логические переклю- чатели, принимая, задерживая и пропуская транзакты. Статисти- ческие объекты служат для задания и оценки таких процессов, как очереди и их статистические характеристики. Они формиру- ют различные таблицы, по которым строятся распределения ве- роятностных величин. Операционные объекты представляют бло- ки имитационных программ, управляющих транзактами и други- ми объектами. Интерпретатор языка GPSS назначает для каждого транзакта запись с атрибутом полей, в которых указываются параметры. Во время выполнения имитации необходимо задавать числовые зна- чения этим атрибутам и соответствующим параметрам, что дает возможность получать решения. В качестве примера GPSS модели рассмотрим модель однока- нальной системы массового обслуживания, которая моделирует функционирование источника потока заявок, каналов СМО и ее обслуживающих приборов, устройств памяти и других звеньев. Процесс моделирования можно представить в виде последова- тельности этапов, каждому из которых соответствует определен- ный оператор на языке GPSS. В частности, генерации потока зая- вок соответствует блок GENERATE с требуемыми характеристи- ками потока; статистике о задержанных и прошедших очередь за- явках — QUEUE; имитации с требуемыми характеристиками по- ступления сообщения в устройство обработки — SEIZE; умень- шению длины очереди — DEPART, задержке сообщения на оп- ределенный интервал при обслуживании заявки — ADVANCE, имитации освобождения устройства от обслуживания заявки — RELEASE, занесения статистических данных в таблицу — TABULATE, уничтожения сообщения — TERMINATE. Функцио- нальные характеристики модели определяются аргументами опе- раторов. Для организации разветвлений и параллельных процессов на языке GPSS используются блоки: TRANSFER — при коммутации направлений продвижения сообщений в модели, SPLIT — при создании копий входящих в этот блок сообщений, ASSEMBLE или GATHER — при объединении заданного числа сообщений, 242
MATCH — при синхронизации движения сообщений по парал- лельным цепочкам, GATE — при организации условного или без- условного переходов. Изменение приоритетов сообщений требует использования оператора PRIORITY. Описание основных блоков языка GPSS приведено в [49]. 7.4.2. GPSS модели компонентов компьютерных сетей В любой компьютерной сети действует большое число разно- образных потоков. Из теории потоков известна предельная теоре- ма, которая утверждает, что при сложении нескольких (п -> 8) независимых, ординарных и стационарных потоков суммарный поток стремится к простейшему. Сходимость суммарного потока к простейшему может быть достаточно быстрой, в частности для хорошего приближения требуется, чтобы в суммарном потоке было около пяти или чуть более составляющих. Рис. 7.8. Схема алгоритма сложения потоков
Схема алгоритма одной из таких моделей, составленных на языке GPSS и позволяющих определить свойства суммарного по- тока, приведена на рис. 7.8. Исходные данные суммарного потока можно промоделировать парой блоков GENERATE А,В и TRANSFER. Формируемые и распределяемые этими блоками ди- намические объекты, имитирующие события в потоках (транзак- ты), попадают в дальнейшем в блок MARK. С помощью этого блока в первый параметр каждого транзакта записывается абсо- лютное модельное время, подсчитываемое таймером GPSS. В сле- дующем блоке модели ASSIGN 2, VI во второй параметр тран- закта записывается значение арифметической переменной VI, ко- торая в исходных данных модели обозначается VARIABLE Р1-Х1. В процессе работы интерпретатор вычисляет разность между аб- 1, pi ZE 7^7 TABULATE Рис. 7.9. Схема алгоритма разделения суммарного потока на составляющие
солютным текущим модельным временем, определяемым значе- нием Pi, и содержимым сохраняемой величины XI. Ее значение соответствует абсолютному времени прихода в модель предыду- щего транзакта. Таким образом, в программе задаются интервалы времени меж- ду двумя соседними транзактами. Затем транзакты поступают в блок SAVEVALUE1, Р1, в кото- ром значение Р1 переписывается в поле операнда сохраняемой величины XI. Можно предусмотреть табулирование результатов имитации сло- жения потоков с помощью включения в модель блока TABULATE. Выход транзактов из модели осуществляется через блок TRANSFERI. При этом общее число транзактов, которые необхо- димо пропустить через модель, задается с помощью операнда А в макрокоманде START, а завершение моделирования — с помо- щью TERMINATE. Задачу выделения отдельных составляющих из общего потока можно рассматривать на примере модели разреженного потока. Схема алгоритма GPSS модели такого потока приведена на рис. 7.9. Исходный поток моделируется блоком GENERATE А, В. В моде- ли создан ряд приборов-экранов, предназначенных для выбора и исключения отдельных транзактов. Они создаются парами блоков: EKR (j- I), TRANSFERS EKR j и TERMINATE (j — номер экрана). Если очередному транзакту удается пройти все экраны, он поступает в блок MARK; в противном случае он покидает модель. 7.4.3. Модель внешнего трафика сети При моделировании будем предполагать, что трафики всех (j, к)-пар абонентов являются пуассоновскими, что позволяет ими- тировать их путем разрежения суммарного потока, соответству- ющего полному внешнему графику сети. Следующим этапом моделирования входящего потока сети яв- ляется распределение суммарного потока по узлам сети. Для этого вычисляются вероятности Р, переноса сообщения из суммарного потока в j-й узел как отношение графика j-ro узла к полному внешнему трафику сети и в разделе исходных данных в программе записывается выражение ИМЯ FUNCTION RNj, Dn Pjl,l/Pj2,2/.../PjI,n Трафик определенного 0-го) узла сети состоит из суммы ин- дивидуальных трафиков данного абонента сети со всеми n- 1
абонентами. Для моделирования соответствующих элементарных (j, £)-потоков поток в j-м узле должен быть расщеплен на п - 1 потоков в общем случае. Для этого определяются вероятности Pjk переноса сообщения из трафика j-ro узла (j-ro потока) в (k-й по- ток), как отношение интенсивности потока сообщений (j, к)-пары абонентов к трафику) j-ro узла. Как и в предыдущем случае, распределение вероятностей PjK (k = 1, 2, ..., п\ к * J) представляет закон распределения случай- ной величины, значения которой есть 1, 2, ..., n - I. Информа- ция об этих законах сообщается интерпретатору в виде j FUNCTION RNx, Dn P^,l/Pj2,2/.../Pjn,n Результатом моделирования являются таблицы входящих по- токов для всех пар абонентов. Для описания входного потока нужно определить одну функ- цию, распределяющую суммарный поток по узлам сети, и ряд функций, расщепляющих поток соответствующего узла по осталь- ным узлам-адресатам, используя полную матрицу внешних ин- тенсивностей. При этом можно использовать следующие парамет- ры транзактов: Р1 — для номера узла-входа в сеть; Р2 — для номе- ра узла-выхода из сети. Тогда пара параметров (Pl, Р2) определя- ет абонентов и соответствующий (j, к)-поток. Необходимо также определить еще одну функцию, зависящую от средней длины со- общения. Будем считать, что длина сообщения распределена рав- номерно в некотором интервале с параметром Р4 для записи в модели. При описании матриц целесообразно использовать полуслов- ные формы и задавать следующие числовые имена и параметры транзактов: МН1 — для матрицы маршрутов; МН2— имя мат- рицы пропускных способностей; МНЗ — имя матрицы имен пар абонентов ((j, к)-потоков]; РЗ — номер следующего по маршру- ту узла. Для определения времени передачи сообщения по каналу свя- зи, соответствующего паре (Р1, РЗ), где Р1 — номер узла, из ко- торого сообщение передается; РЗ — номер узла, в который сооб- щение передается (следующий по маршруту узел), необходимо определить арифметическую переменную, используя выражение Р4/МН2 (Р1, РЗ), причем можно использовать для этой перемен- ной имя TIME. В процессе программирования модели необходимо составить схему алгоритма в блоках GPSS, используя в ней для сбора стати- стических данных такие объекты, как очереди QUEUE. Рассмотренные примеры позволяют перейти к более сложным моделям, где также использованы средства GPSS.
7.4.4. Модель узла пакетной коммутации В модели имитируется узел с тремя двунаправленными кана- лами связи, работающими в дуплексном режиме. По каждому ка- налу поступают пакеты (П) информации с определенной сред- ней частотой (интенсивностью), характерной для этого канала. В модели задается пуассоновский входной поток с различными параметрами для каждого канала и имитируется поступление по- тока пакетов в узел коммутации (рис. 7.10). Сначала пакеты попа- дают в буферный накопитель (БН), а оттуда в устройство считы- вания адреса (АДР) (в программе модели оно названо ADRj; j = 1, 2, 3 — номер канала). Затем пакет направляется в нужный выходной канал. Поскольку все каналы аналогичны, рассмотрим схему алго- ритма модели на примере одного ее сегмента (рис. 7.11). В соот- ветствии с логикой работы узла и его модели транзакт, сформи- рованный блоком GENERATE и имитирующий поступление па- кета сообщений, попадает по команде блока SEIZE в прибор ADRj, в котором определяется маршрут. Время задержки в этом приборе определяется в зависимости от многих факторов (интенсивности потоков поступления пакетов, скорости их обработки и др.). При- мем, что задержка распределена по экспоненциальному закону. Она организуется блоком ADVANCE. Перед приборами, назван- ными соответственно VHOD1, ..., VHOD3, установим очередь и выход из нее с помощью блоков QUEUE и DEPART. После выхода из приборов типа VHOD транзакты поступают к приборам, которые названы на схеме алгоритма соответственно ADRI, ADR2, ADR3, причем программа модели случайным об- разом распределяет их по выходным каналам узлов, где они попа- Рис. 7.10. Узел пакетной коммутации: ДЗУ — долговременное запомина- ющее устройство
GENERATE --- 300, ENK EXPON Рис. 7.11. Схема алгоритма моделирования узла пакетной коммутации
дают в многоканальное устройство, которое играет роль ограни- ченной очереди емкостью два транзакта. Многоканальные устройства названы соответственно DVERI, DVER2, DVER3. Если свободных мест в DVERj нет, то транзакты уходят в устройство неограниченной емкости DZU и ждут, пока появится место в DVERj. Из блока GENERATE транзакты входят в узел коммутации каждый со своим номером, соответствующим каналу, а затем в прибор ADR, где определяется маршрут транзакта и, следова- тельно, он задерживается на время, распределенное по экспо- ненциальному или другому закону. Если прибор ADR занят, то транзакт становится в очередь на входе канала VHOD. Можно проследить работу любого канала, узла, которая моде- лируется блоками GENERATE, QUEUE, SEIZE, DEPART, ADVANCE, RELEASE, установленными последовательно. Выйдя из прибора ADRj, транзакт попадает в блок TRANSFER, где определяется его дальнейшее направление. Например, в пер- вом канале 0,6 общего числа транзактов из блока TRANSFER ухо- дит в блок с меткой VHOD2, а остальные 0,4 — блок с меткой VHOD3. Из блока TRANSFER транзакт попадает в блок GATE, работа- ющий в режиме SNF с меткой соответствующего канала UHOD, который позволяет определить, свободно ли многоканальное ус- тройство DVER. Рассмотрим случай, когда мест в блоке DVER нет. Блок с мет- кой DZU является очередью, состоящей из блоков QUEUE и DEPART с операндом А, обозначенным индексом DZUj. Эта оче- редь создана для определения числа транзактов, которые попадут в блок DZUj, и времени их задержки в этом блоке. Прибор-очередь DVERj организован блоками ENTER и LEAVE, между которыми размещен блок SEIZE, являющийся первым бло- ком, образующим прибор CHANi, вместе с блоками ADVANCE и RELEASE. Выйдя из модели, транзакт уничтожается блоком TERMINATE. Блок-схема таймера организована для учета време- ни в модели и для завершения моделирования в заданное время. Таймер организуется блоками GENERATE с необходимым мо- дельным временем в операнде А и TERMINATE с необходимым числом повторений этого времени в операнде А карты START. Контрольные вопросы 1. В каких случаях для исследования характеристик объектов прибега- ют к их описанию в виде моделей системы массового обслуживания? Какие объекты могут быть исследованы с помощью моделей МО?
2. Какими параметрами характеризуется СМО? 3. Как определить характеристики СМО, если выделены их состояния и переходы между ними? 4. Какая сеть МО называется открытой, закрытой? 5. Каковы основные этапы и их особенности при построении сети МО, моделирующей объект? 6. Какие операторы языка GPSS позволяют осуществить суммирова- ние и выделение составляющих потока, моделировать источники сооб- щений и очереди? 7. Как описать распределение потока по узлам сети с помощью средств GPSS?
ГЛАВА 8 РЕАЛИЗАЦИЯ МОДЕЛЕЙ СТОХАСТИЧЕСКИХ СИСТЕМ СРЕДСТВАМИ ПАКЕТА MATLAB 8.1. Расширение SimEvents как средство моделирования в Simulink систем массового обслуживания SimEvents (видимо, от Events Simulation — моделирование со- бытий) — это инструментальное средство, облегчающее процеду- ру моделирования в Simulink систем с дискретными событиями, в первую очередь, систем массового обслуживания (СМО). SimEvents позволяет моделировать прохождение объектов (заявок) через сеть очередей, серверов (аппаратов обслуживания), клапа- нов и выключателей, работа которых зависит от дискретных со- бытий. SimEvents и Simulink создают интегрированную среду для моделирования гибридных динамических систем, содержащих не- прерывные компоненты и компоненты с дискретными события- ми и дискретным временем. Что такое моделирование дискретных событий? При модели- ровании дискретных событий или моделировании на основе со- бытий состояния системы изменяются в результате наступления асинхронных дискретных инцидентов, которые называются со- бытиями. В противоположность этому моделирование, основан- ное исключительно на дифференциальных или разностных урав- нениях, в которых время является независимой переменной, — моделирование на основе времени, потому что состояния систе- мы зависят от времени. Simulink предназначен для моделирования на основе времени, в то время как SimEvents создавался для мо- делирования дискретных событий. Выбор типа моделирования за- висит как от самого изучаемого явления, так и от способа, кото- рым его предполагается изучать. Предположим, что интерес представляет длительность ожи- дания среднестатистическим самолетом своей очереди, чтобы использовать взлетно-посадочную полосу аэропорта. При этом траектория самолета после того, как полоса для него освобож- дена, не важна. В этой ситуации можно использовать модель дискретных событий, в которой рассматриваемые события вклю- чают подход нового самолета к взлетно-посадочной полосе и
разрешение диспетчера на взлет этого самолета. Наоборот, если нужно рассчитать траекторию самолета во время взлета, необ- ходимо использовать моделирование на основе времени, пото- му что определение траектории требует решения системы диф- ференциальных уравнений. Наконец, пусть нужно найти вре- мя, которое самолеты ждут очереди, но при этом для опреде- ления отрезка времени, в течение которого каждый самолет использует взлетно-посадочную полосу, необходимо модели- ровать взлет каждого самолета во всех деталях, а не использо- вать статистическое распределение. Здесь можно использовать комбинацию моделирования на основе времени и моделирова- ния дискретных событий. Описанию таких комбинированных моделей посвящена гл. 11. Моделирование дискретных событий основано на рассмотре- нии дискретных элементов, которые получили в SimEvents назва- ние объектов. Объектам могут быть сопоставлены данные, назы- ваемые в SimEvents атрибутами. Следует различать объекты и со- бытия. Так, если моделируется аэропорт с очередью для доступа к взлетно-посадочной полосе, то самолеты, ожидающие доступа к взлетно-посадочной полосе, будут объектами. В сети связи объек- тами будут пакеты или сообщения, которые необходимо передать. При рассмотрении эскалатора станции метро объектами будут люди на его ступенях. При моделировании работы компьютера объекта- ми будут вычислительные задачи. Блоки SimEvents-модели обрабатывают объекты, но сами объекты не имеют графического представления. Однако при раз- работке и анализе моделей дискретных событий можно рассмат- ривать характеристики как самих объектов, так и процессов, которым они подвергаются. Например, можно определить сред- нее время ожидания для ряда объектов, составляющих очередь, или узнать, какой из этапов многошагового процесса наиболее загружен. В моделировании дискретных событий, события — мгновен- ные дискретные инциденты, которые изменяют переменные со- стояния, выход и/или временной порядок следования других со- бытий. Примеры событий SimEvents: продвижение объекта от одного блока до другого; завершение обслуживания объекта в сервере; пересечение нулевого уровня сигналом; вызов функции. События могут зависеть друг от друга. Некоторое событие мо- жет быть причиной другого события. Например, постановка объекта в очередь заставляет длину очереди увеличиваться на единицу. В других случаях событие позволяет произойти другому событию,
но только при некоторых условиях. Например, при завершении обслуживания сервером объекта он может покинуть сервер, но только если следующий блок готов принять этот объект. В этом случае одно событие делает другое событие возможным, но не обязательным. События не имеют графического представления, но можно наблюдать их последствия. 8.2. Моделирование в Simulink-SimEvents систем массового обслуживания Для построения моделей систем массового обслуживания пред- назначена библиотека блоков Simulink с названием SimEvents. Эта библиотека содержит разнообразные блоки следующих ка- тегорий: Generators — генераторы для создания объектов, событий и сигналов; Attributes — блоки для придания объектам атрибутов (некото- рых дополнительных свойств); Queues — очереди; Servers — серверы для обслуживания объектов; Routing — маршрутизаторы для создания альтернативных пу- тей перемещения объектов; Gates — клапаны для управления допуском объектов в блоки; SimEvents Ports and Subsystems — порты и подсистемы SimEvents; Timing — таймеры; SimEvents Sinks и Probes — блоки отображения информации о процессе моделирования; Even Translation — блоки для преобразования событий. Кроме того, в Simulink имеется ряд примеров использования SimEvents. Рассмотрим некоторые из них. 8.2.1. Модель СМО типа М/М/1 Эта модель (рис. 8.1) содержит систему «единственный сервер и единственная очередь» с единственным источником трафика и бесконечной вместимостью очереди. В обозначении СМО буква М — сокращенное от марковский; М/М/1 означает, что система имеет пуассоновский процесс поступления заявок, показатель- ное распределение времени обслуживания и один сервер. Теория СМО обеспечивает точные теоретические результаты для некото- рых критериев качества работы М/М/1 системы массового обслу- живания. Для М/М/1 очереди со скоростью поступления X и ско- ростью обслуживания ц среднее время ожидания в очереди равно
hell Мсакаъ СМО тика К'М'Ч --------. Псрммн яки — сгглнег <*нппг «рпмв ожидания в сОь- М - А В-________________________________ слиненнпВ система «сарвар-очет*»*. я влдой член — среднее ярема (Лпхични» Кроме того, wpyru ссрмра равна Vp Эта мама» поживет срамить эмпирические результаты с соответ- ствузошичи перстшискмыи ре тут тага ми Мозель ысжпает ри компоавеытовс Так. Time Baaed Emily Generator Nock иенернор сбыекюв мы «хмик и(смснм i моде- лирует пунйХмЯжамЙ нрииссс висвупленив мамок, генсрнруа ikiKK U |*смнсн» и гесенн СМО) оттяни грокни между кптнрмым им сап гкка итг аьнпс рмспре лелеете t xpoeiCMlal I nW гяггту л I Time ГНкпЬиНпп иФятт тпоосистеви гюкжжпель- мого распралгнния времени поступлемам> соиыег сигнал, прел стаымкший времена поступленил сгенер^оаанным объектов. Boerne nocryiueiiHa <бьект«1 Пры пгАхиыом.м.«« хизакicpc «ро- иессв — пмашеаям случайнаа поременнка Ьмж FIFO Queue • оеерель «nepiun вошел - первый аыиел«) cuwepueMt объемы, которые лоллиы Сы«ь о6ил>лсны. Бсаж Suuie Server 1слннстаем- мын ихрыср) никелирует сервер, греаог ибилужнааимм ыгтпросо мисс: пикмис1с.1ннс ркпрслелсмыс. Кроме vtwn, малсп. гвспстчает цлевукнаме upeavnaa ан туа-жмос п сетезраакниа ннферчаыин: лис- плен, атпрыс по ахам гвалт время •гиаиттчмач в с*гереаи н загружу пгреара; <хин> керэф. ггжлтыва»?ше* число лС»ъектое> в опереди; осинл_кар>Ф noajijMtvxiLiMM гесретнчехаое и ампирепеиксе мы
чемае грешен* оашаниа а спереди Этот график подает исгюлью мпъеа дла срмиенма cmmiui лиши» с теоретической ае.нпи* нс* 8.2_2« Момйм СМО типа М/О/1 Эта мопед». {рис К2) спагржлгт систему •сргмгтмхиын СХре<р и имнетминм о-хредь* с rnwwHcecvMM прсиеооч rxcryirma шах и «[аегом с nocvcauMiM цхихя обстукивание СЬерелс имеет бесконешгую аместмссть. В otoэмг+ении СМО б>кы М LutpewcMMue ое маркиесм*, D— дегермимарйаамнь*. M/D/I (ixxuri, что система имеет пум1хж1жый гфсж-rvi. 1кспв.кню< итж, вгттрмнн»<р1»«аннск время обслуживания и ерам серией Эш модель ПОвюбга ИрЕЛМЛУиКЯ, 111НЖП врсим пбсл> ж пи- ния — гкжггшпмтя Ж1>пмнж Согласна теории ( МО среднее цх- ___________ ____ I I _______________________ м ажм.гртия а опереди [шн1гпи —---------------------------— —, где р — схг^сктъ ибс^кныни» мявс*. k — cwfocTV гхетуткиниа ната . Эта про Шимтельнсжяъ рмна погямааие геиретитииф среднею осеме- ни qiuiuhhb а ткреив а.» М/М/1 СМО с wA же самой сжир:- ггып гэостг’хнив и скгрогтмп оЬслтжммниа 8.2. Х Мадиль СМО типа G/G/ l- Хаг» Литтла Эта монель 1/мс 1.31 содержит систем* •единстмммй сер мер и еаи1ктаеимаа очередь*, а которой пост^плениа лы- иж и аремя обслужишниа рмспредеким р<4аммермо с фнасн- Рак. М. Моаедь C MU тага МЛ>/1
Рм 13 Мвлэен СМО УИН GXX'I романными срсриин 1.1 Н I СПОТВГТГТЖИНО OwfTJb НМСГТ бес- кхмсчнуш < мкостъ И оботн^м ним бууы G поыпыют. что pic предс.тенме имеет известные среднее н дисяе|смо; G/G/l оэна чает. что поступление швож и время свслулмыння подчння ются равномерному ыкяыу распределения и что система инее! одни сервер В >1о41 модели Thnc-Btaed Emily Gcncnft* рдбоглст nxi уп- рдюенигм (Jttifurni DuUib&Laxi fur InKerurrrvd Time шЫуМгя Iikjochltcwm времени ш>стувлпамя оаонаж с рамнимсрным слу- чайным рыснрсжслсмясм I- Sinjir Server htoct ыехтглиручт скр- нгр. время обслуживание ж котором имеет ржвмсыерное pic- ПрММВние Эта модель млжст вспжювгткг дев проверен нюеи Дат тти. который устыМинюст линейные отииис*мя иежлт средней Д1ИИСА спереди и средним цммемем овлилниа а очереш. Сред имя ддавы очереди |ъм>ы гривляслсиню средней стшрос гм i«jcfyrt- ленш дымиа на среднее крема о жидами и Ьнж FIFO Qcruc вмык ст текущую длину ичгремв в отеднее феменя cubmzmmim и смете- m Пимжлемд Lillie'» Lmb EsUueiice аьммилагт «ттминсмис срсж- нгЯ JU1HHM ичерсов (поггг^смиий « мгмижмтй длимм с ri г pci и ннтт17мрсп.«ннги I к среднему грсмсни пандами* м ргнпигннг грежигти ар мгин сГслужиынне к среднему вргмеми поспп’с- нии Ути пы лгнпмемми ппепшатгея hi графике Arrval Жпс Пмомнсй и Snntrrfi Rcults При эсстдтомао батмном врештв рибогы ммитишсмюй но □ели мслернмеягтмы1ый результат бомдок к reaperи^есдому
~*ni Mootih Ip нс. X 4) qaiMHHcr смгтеэо мжхпмио ебспуам- мимя с «ятпжннмм сервером с остпмпй. ссперокшисй nw пж- рЛТОЛЫШ ДОСПЮТН! crpwpl OjWWV OWTWHHWl гтрпгр p>- Ml три M 1ИЩ м MMl из трея парплелыи» peOo гаюина серверов. Дисплей юыжмкг, что СМО с ежмстоемиым сервере* обес немимет мемыаее среднее цхяи uajluhha о&лужмюмы, чем СМО с тремя медицинмым серверное Пршсжжштслыюстъ cTScmi систем П ЖГ СЖМЖМ *?п> мешлк (рж 15) срамптгт сиггтто с елмнгпгмвоА оче релио м иескаикимм сероертми с системой с 1Фесколиэмн оче релтми и иесделисимм сертгршм Обе ежтемы имеют <и>ю го ас среднее врем* ибилчлНАанмм м адели1А*я to<l ас самой i^tio М1Д>тдънс<лж Оондьп смстеш с срюатжюкА u^rpcntai агж* ггргр^гт С>лэее виерлткне ндерим, чем lbl-тгю с нгпехименмм ЛМГрсДАМН • Ж »«•«»«»«• »W > 14 Милел» СМО с емжлтетиым сервером и с иесшльиме серее
Qumn wwb 1$ ^hihCMO( iHV4|4HMh IFKPCJMM» PVk •♦. Moucjm CMOe ptuimetMii пл«и1н<лми 1<нлудлм>м>
Сравнение этих двух систем (классическая проблема организа- ции очереди к нескольким кассирам банка) демонстрирует, что формирование единственной очереди к нескольким кассирам уменьшает среднее время ожидания по сравнению с отдельной очередью для каждого кассира. Действительно, результаты моделирования показывают, что за время моделирования 100000 с обе СМО обслужили 49 740 заявок, но среднее время ожидания в случае единственной оче- реди равно 3,44 с, тогда как при трех очередях оно составило 5,908 с. 8.2.6. Модель СМО с различными политиками обслуживания Эта модель (рис. 8.6) использует блок Priority Queue (очередь с приоритетом), чтобы реализовать различные политики массо- вого обслуживания, основанные на времени обслуживания. Срав- нивается эффективность двух политик обслуживания с приори- тетами (Shorter Service Time First — первой из имеющихся об- служивается заявка с самым коротким временем обслуживания и Longer Service Time First — первой из имеющихся обслужива- ется заявка с самым длительным временем обслуживания) с политикой FIFO очереди «первый вошел — первый вышел». Ре- зультаты моделирования говорят о преимуществе политики Shorter Service Time First. 8.2.7. Модель СМО с различными политиками выгрузки Эта модель (рис. 8.7) сравнивает три политики работы с объек- тами, которые выгрузились из сервера: выгрузка с браком — выгружаемый объект не может повторно вводиться в сервер; выгрузка с рестартом — выгружаемый объект повторно вво- дится в сервер и требует того же самого времени обслуживания, что и первый раз; выгрузка с резюме — выгружаемый объект повторно вводится в сервер и требует только остаточного времени обслуживания (вре- мени, которое осталось во время выгрузки).

. L7. Молом СМО € рГОМЧМММИ П04НП1С1МИ ?л»
8.3. Моделирование СМО в Stateflow 8.3.1. Моделирование АСУ продажи железнодорожных билетов Инструментальное средство SimEvents, существенно облегчая процедуру моделирования в Simulink СМО, не позволяет выходить за рамки предписанных создателями алгоритмов работы отдельных блоков. Большую гибкость в этом плане может обеспечить работа в Stateflow. Покажем, как в Stateflow можно создавать модели СМО и проводить с ними вычислительные эксперименты. Автоматизированная система управления (АСУ) состоит из двух параллельно работающих электронно-вычислительных машин (ЭВМ). При выходе из строя одной ЭВМ АСУ продолжает нор- мально функционировать за счет работы другой ЭВМ. Поток отка- зов каждой ЭВМ простейший. Среднее время безотказной работы одной ЭВМ равно 10 суткам. При выходе из строя отказавшую ЭВМ начинают ремонтировать. Время ремонта ЭВМ распределено по показательному закону и в среднем составляет двое суток. В на- чальный момент обе ЭВМ исправны. Найти среднюю производи- тельность АСУ, если при исправности хотя бы ЭВМ ее производи- тельность равна 100%, а при отказе обеих ЭВМ продажа билетов производится вручную, обеспечивая 30% общей производитель- ности АСУ. Провести статистическое испытание модели АСУ. compl T/toutl = ml('expmd(10)'); tvl = t 1 On tvl <toutl] /tout 1 = ml('expmd(2)'); tvl =t; rl++; offl =0 Off [t-tvl ctoutl] /tout 1 = ml('expmmd( 10)'); tvl =t; offl =0 comp2 On /tout2 = ml('expmd( 10)'); tv2 = t | ~ I [t - tv2 < tout2] —। /tout2 = ml('expmd(2)'); tv2 = t; r2++; off2 = 1 Off [t-tv2<tout2] /tout2 = ml('expmd( 10)'); tv2=t; off2=0 Рис. 8.8. Stateflow-диаграмма АСУ продажей железнодорожных билетов
Рйс 19 О*мс StMrfc* Ь|4е*сг Д.« рсикнн» ними иютримы » ЗыкЛсм жмспяшкми^ю мо- дели. SuKflcv iMjijaubu кмигаинсваюМ миссии |рнс X Х| шир- жжт лм Н-оситч—и ccmpl и с«пр2. сготягтгтараиют двум ги- patW.lt-NO poe«TT9K>lWM HIM. Каждое hj соскмнмй «меркят два ИЛИ твооспмммя On и Off । ЭВМ » рабочем ссстома я ЭВМ ремоип^тяК Перемм I» 1 10 $нмИА АС> «ггошя 4к«ен*
по умолчанию в состояние On сопровождается действиями tout=ml(’expmd(10)’); tv=t; (генерация времени безотказной ра- боты и «запуск» таймера). Каждое событие г, а им является из- менение уровня сигнала генератора прямоугольных импульсов Pulse Generator, переводит ЭВМ либо опять в состояние On (если выполняется условие t-tv<tout), либо в состояние Off (в противном случае). Переход в состояние Off вызывает действия tout=ml(’expmd(10)'); tv=t; г**; off=l; (генерация времени ремонта, «запуск» таймера, увеличение на 1 количества сбоев данной ЭВМ и перевод в единичное состояние выходной величины off)- В сос- тоянии Off модель ведет себя аналогично. На рис. 8.9 в открытом окне Stateflow Explorer представлены все переменные и события Stateflow-диаграммы. На рис. 8.10 показана Simulink-модель вмес- те с результатами моделирования в течение 365 суток модельного времени. Первая ЭВМ выходила из строя 25 раз, вторая — 26 раз, одновременно обе ЭВМ выходила из строя 9 раз. Средняя произ- водительность АСУ составила 98,26 %. 8.3.2. Специализированный пост диагностики Пост представляет собой одноканальную СМО. Число стоянок для автомобилей, ожидающих проведения диагностики, ограни- ченно и равно трем. Если все стоянки заняты, то очередной авто- мобиль, прибывший на диагностику, в очередь на обслуживание не становится. Поток автомобилей, прибывающих на диагности- ку, распределен по закону Пуассона и имеет интенсивность 0,85 автомобиля в час. Время диагностики автомобиля распределено по показательному закону и в среднем составляет 1,05 ч. Требует- ся определить вероятностные характеристики поста диагностики, работающего в стационарном режиме. Построим в Stateflow имитационную модель. Stateflow-диаграмма имитационной модели (рис. 8.11) содержит два И-состояния Wait и Serv. Первое из них соответствует состоянию очереди автомоби- лей и имеет ИЛИ-подсостояния Zero, One, Two, Three, Refuse (соответственно 0, 1, 2, 3 автомобиля в очереди и состояние «в обслуживании отказано»). Второе надсостояние Serv, описывающее работу поста диагностики, имеет ИЛИ-подсостояния Wait и Work (ожидание прибытия автомобиля и работа по диагностике авто- мобиля). Переход по умолчанию в состояние Zero приводит к дей- ствям tin=ml('poissmd(70)'); tvl=t; (генерация интервала времени ожидания прибытия первого автомобиля и «запуск» таймера). При активации этого состояния выполняется действие och=0 (служеб- ной переменной och присваиваем значение нуль, что свидетель- ствует об отсутствии автомобилей, нуждающихся в диагностике). Одновременно во втором надсостоянии становится активным под-
редактировал и опубликовал на сайте Н ( И 11 И М ОI | NJ lh Рис. 8.11. Stateflow-диаграмма имитационной модели специализированного поста диагностики
йэгпынне Wirt. При ижгншимм ласти иэсашикв вылсхскдстса иеЛ- ltmmc /ацгЧ! |служе6н<М переменной гщ прнсааиютем iht'chnc мулц *<тп ггжпкт что тп .'тжлп«пеикр нс ингт) Пгрпс\1 в мм:гп.-<|нм Wilt in I | |.7|r г . >-.ч»гw< КрУВКПМ KM'MKOrnWHHf (ПЖЖКММОГ C«JHHfHMf ИЛЫ TOMU приняли решены* I яро нс домят при выполнении рсжвие |t tvl —Ш) Далее воамолмы дам вдмлпа: если справедливо условие [/5<г-•!], n> mj гкимаммемсИ'» иоепмиснкя яереаидим в иостиа- им г м1, прн /тем мкмшвитв асВктжма tia ndi pc<»rnd|70O tv I Р<т>*-*. (последнее — уаслвмсннс на I ncciuHHi счггчжс nncnitHNina ывигми) Если условны (z><fb«|| иг елрмгддивл. то mi ипжлггпимого ссыдинеммя киарвилишсе в сословии' L при угон волалвштмьно лыплгняекя лгйглые noor|-L icowmm условие ди пере ton поста ли агностики в состовиве Wo<tk Дру гимн словами, при поступлении очередной машины опрелглв ем. мнят ли пост диагностики. Если да - во очередь увеличив* erai на I мамину (цри । - О, I, 2 • ней сие есть саибиыыве мести К Если нет — го смерена ме уас.омижаегсм, ио соспинме (мкта ЛК41 ноет жги мен acre в на житии. При i • 3 ияпрешум по- пхтасм я сгкттиммс Rcftac <я п6с.т>^ншман1 стткапавмо). в отгула ми сатдухшгы л те в пхтгнвмм Thrvr (три машины в сим ре ди > P-<ei* шан ам< вн емж *ш» в* ж * шин • Г* «И • ми амг* Вял Л м. f ж «ж» ъМИ И* МММ «а н-мм в •• м ь»»нжм в D ими НЖ1ММЖ t п и |ММж в J И •ми Ии МММ 1 ч *м мвИ •ЖМШ > < ы той и* ими в м «МИ МИМММж 8 J *w мим в >НМЪ и* инм л н 8 ги -н-т» •ж ЖЙИ в е си .‘JWWM1 Иж|11 а 1Н >Н"МП *И|ММ 8 Рйи 1.12 Переменой a c«ewmi SUkHew хмдграмам иывпасмсыииВ кием (пеемжммежммо лет даагисктжл ЭД
Гмс X 11 ^rrrUrti М<С£ГЬ UltkMAW-1*1”l^xta Л«Л1Н€Ч 9W.4 Ikwciwvr cwthhkj wcu miiuwh, urrt—M отилми в ибслу- животик. щглняжжьгтт кв I МЫстсне >riHxne*+,y Персии к нмсогпинми Serv жэ пгадтх-тпомои Will R пмрхто«мж Work промежшгт при вы—i успэ—i |тв©гВ«*|) н «ишягтяй- ствмв luu-mYе«рлмЯ63ГК tv2-<_ <ге нераш-я ере мяв сбслужи— ммм аажждебшы и •—yen* т^мерм. При а»1ммит» этого сосго мнкл выполвиекя лейсеше 2ф-1; (слумебввэй перемени©* ugr присваиваем мгленме I, лто стачает, ЧТО 1К<Л ШМИоиГИам МВ* мвгт> н ггнгрмржгтгм событие —Н. Это ш€ылие прпюимт я 1Ире mere F юпгпстсшнт1 Wail п ппдехх-таннв Mi • I, 2, 3> • ikUco- rrrwnfr Ы, Пгргтгд r HKKrrniw Sen к i ntiawcTtniHHi Wurk м KMWCDCnUMWf •пгиктгмвгжпе гпелмнгмиг» промсзимгт tip* вы- naw— yen©—i |e-<i2>U0ui| (ярем пГслужи— игпхло) Лл.ке пслыэкнм хва мри игл <c.wn спрвведшго ж—ж то из ₽|цисп:««мсго соединения ПГрГЬ'ОН в ГСМ-ТПВХиг W.1 г Fxjw условие |ocb—0| —пр—и—о. то ю ——к—*х> —и* —I вей—швешл в сосмвшие W«L при этом пи—кжп пей' сгвив /1т1-лЫ|’ежртД(€ЛП; п2н. (генерашы времени обслужи жлние •тпмбв.тв и «тпсвс» гмИмгрО. Другими имыми, при <Ж«
вобождении поста диагностики определяем, есть ли машины в очереди. Если да — то пост начинает обслуживать очередную ма- шину. Если нет — то пост ожидает ее прибытия. На рис. 8.12 в открытом окне Stateflow Explorer представлены все переменные и события Stateflow-диаграммы. На рис. 8.13 видим Simulink-модель вместе с результатами моделирования в течение 50 000 мин мо- дельного времени. За это время поступило на обслуживание 710 ав- томобилей, из них 48 было отказано в обслуживании. Длитель- ность периода, когда в очереди находилась одна машина, равня- ется 1 1 550 мин, две машины — 11300 мин, три машины — 7084 мин. Контрольные вопросы 1. Объясните назначение инструментального средства SimEvents. 2. Раскройте ваши представления о системах с дискретными событи- ями. Приведите примеры существенных событий. 3. Какие категории блоков содержит библиотека SimEvents? 4. Какие виды СМО существуют? Дайте их описание. 5. Что означает М/М/1? 6. Что означает M/D/1? 7. Что означает G/G/1? 8. Какие еще возможны способы моделирования систем с дискрет- ными событиями?
ГЛАВА 9 АНАЛИТИЧЕСКИЕ МАТЕМАТИЧЕСКИЕ МОДЕЛИ НЕПРЕРЫВНЫХ ДЕТЕРМИНИРОВАННЫХ СИСТЕМ 9.1. Дифференциальные уравнения динамических систем Динамическая система в первоначальном значении термина — механическая система с конечным числом степеней свободы. Со- стояние динамической системы характеризуется положением (в простейшем случае — набором величин х2, ..., хп, которые могут принимать произвольные действительные значения) и ско- ростью его изменения. Движение динамической системы может быть описано системой обыкновенных дифференциальных урав- нений (ОДУ) х, = //(*ь х2,х„), i = 1, 2,п. (9.1) Рассматривая х, как координаты точки в эвклидовом простран- стве Rn, можно геометрически представить состояние динами- ческой системы посредством точки х. Эту точку называют фазо- вой точкой, а пространство — фазовым пространством динами- ческой системы. Изменение состояния со временем изображается как движение фазовой точки по некоторой линии (фазовой тра- ектории). В широком смысле термин «динамическая система» означает произвольную физическую систему (например, систему автома- тического управления или радиотехническую систему), описыва- емую системой дифференциальных уравнений (9.1) или саму си- стему ОДУ (9.1) безотносительно ее происхождения. Введение в математику идей движения и изменения, что озна- меновало собой новый период ее развития, относится к XVII в. «Поворотным пунктом в математике была Декартова переменная величина. Благодаря этому в математику вошли движение и тем самым диалектика и благодаря этому же стало немедленно необ- ходимым дифференциальное и интегральное исчисление...» [29]. Оформление дифференциального исчисления в самостоятель- ную математическую дисциплину связано с именами И. Нью- тона и Г. Лейбница и произошло во 2-й половине XVII в. С это-
го момента неизмеримо расширилась область приложений ма- тематики к вопросам естествознания и техники. «Лишь диффе- ренциальное исчисление дает естествознанию возможность изоб- ражать математически не только состояния, но и процессы: движение» [29]. 9.2. Использование дифференциальных уравнений в теории управления Проникновение дифференциальных уравнений в теорию авто- матического регулирования связывают с именами Д. К. Максвел- ла и И. А. Вышнеградского. С момента построения Д. Уаттом паро- вой машины с центробежным регулятором скорости вращения (1784 г.) и до середины второй половины XIX в. какая-либо тео- рия регулирования просто отсутствовала. Однако с ростом мощ- ности паровых машин участились аварии, вызванные плохим ка- чеством регулирования. Д. К. Максвелл и И.А. Вышнеградский почти одновременно и независимо друг от друга осуществили те- оретический анализ этой системы. Оба использовали теорию ма- лых колебаний, берущую начало в трудах Ж. Л. Лагранжа. Записав уравнения Лагранжа для паровой машины и выразив в них фазо- вые переменные через возмущения относительно некоторых рав- новесных значений, Д. К. Максвелл и И. А. Вышнеградский лине- аризовали уравнения относительно возмущений и исследовали условия устойчивости состояния равновесия. Так начался первый этап в развитии теории автоматического управления, этап рас- цвета классических методов анализа. Продолжался он довольно долго — до 40-х гг. XX в., но в содержательном отношении не отличался большим разнообразием подходов. В рамках этой тео- рии использовались методы, основанные на частотном анализе, алгебре передаточных функций, преобразовании Лапласа. Задача управления технологическими процессами и движущимися объек- тами решалась в «малом». Исследование устойчивости, а также качества переходных процессов продолжали оставаться основны- ми задачами всего этого периода. В середине XX в. некоторые исследователи обратились к опи- санию систем обыкновенными дифференциальными уравнени- ями. Это направление было стимулировано американской и со- ветской космическими программами, поскольку обыкновенные дифференциальные уравнения представляют собой естественную форму описания динамики космических кораблей. Тенденция уси- лилась с появлением цифровых ЭВМ, которые позволили про- водить расчеты, ранее практически не применявшиеся из-за ог- ромных затрат времени. Цифровые ЭВМ требовали, в свою оче-
редь, новой математики. Инженеры работали с дифференциаль- ными уравнениями состояния, а не впрямую с частотными или характеристическими уравнениями. Были введены новые фунда- ментальные понятия — управляемость, наблюдаемость и обрат- ная связь по переменным состояния. Для решения задачи опти- мизации траектории полета были разработаны новые разделы вариационного исчисления. В конце 50-х—начале 60-х гг. XX в., когда Л. С. Понтрягиным была создана математическая теория оптимальных процессов, Р. Беллман предложил метод динами- ческого программирования, а Р. Калман разработал общую тео- рию фильтрации и управления, были заложены основы совре- менной теории автоматического управления. Основными харак- терными признаками ее являются описание процессов в виде дифференциальных уравнений в пространстве состояний и при- менение для решения задач анализа и синтеза систем методов пространства состояний. Однако говорить о преобладании того или иного подхода нельзя. В химии и механике, социальной сфере и финансах естествен- ным является вывод дифференциальных уравнении модели на базе физических свойств системы. Описания в частотной области по- прежнему популярны в электротехнике и электронике и совер- шенно естественны для многих приложений. Поэтому обычной практикой является применение и дифференциальных уравнений, и частотных характеристик. 9.3. Эмпиризм и фундаментализм Эмпирические (регрессионные, нейросетевые) и аналитиче- ские модели (в виде дифференциальных уравнений) относятся к двум различным ветвям в моделировании, известным как эмпи- ризм и фундаментализм. Первая ветвь, эмпиризм, восходит к ра- ботам Аристотеля и Леонардо да Винчи, вторая, фундаментализм, обязана своим рождением Галилею, пытавшемуся реализовать в моделировании теологические представления Платона о мире идей и учение о душе. Дифференциальные уравнения описывают «душу» объекта, в то время как, например, нейронная сеть [32] оказыва- ется в состоянии запомнить, а потом воспроизвести динамиче- ское поведение объекта в ситуациях, которые ей известны. Ана- литическая форма представления знаний ей недоступна, она спо- собна запомнить и обобщить только конкретные эмпирические зависимости, хотя речь здесь идет, конечно, не о запоминании данных в табличном виде. Нейронная сеть «хранит» информацию в виде матрицы весовых коэффициентов синаптических связей, которая определяется в процессе обучения.
9.4. Сила и слабость аналитических моделей Для классической парадигмы характерно то, что синтезу мате- матической модели объекта или процесса обязательно предше- ствует фаза анализа, в течение которой процесс умозрительно декомпозируется на элементарные явления, каждое из которых подвергается затем тщательному исследованию. Сначала всегда планируется «очищенный» эксперимент, в котором исследуемая составляющая процесса обособляется от влияния остальных, а затем, по мере реальных возможностей, этот эксперимент вы- полняется. Как результат, выдвигается предельно простая, обык- новенно линейная, с постоянными коэффициентами модель яв- ления, для которой либо из условий проведения эксперимента, либо из каких-то третьих условий подбирается прозрачная физи- ческая интерпретация. Наконец, осуществляют синтез полной модели, складывая из частных линейных моделей как из кирпи- чиков цельную картину процесса, правда, с оговоркой, что ко- эффициенты, в действительности, могут быть нелинейными. Примеров таких процедур можно привести множество. Огра- ничимся одним предельно простым явлением — разрядом бата- реи конденсаторов на катушку с воздушным сердечником. Как известно, процесс разряда описывается дифференциаль- ным уравнением L^- + iR + ^\idt = U. (9.2) dz CJ0 Хотя цепь собрана всего из двух узлов — батареи и катушки, членов в уравнении мы видим три. Все они содержат постоянные коэффициенты. Коэффициент при токе Л, известный как актив- ное сопротивление катушки, представляет собой не что иное, как коэффициент пропорциональности между напряжением на катушке и током, при условии того, что катушка запитана от источника постоянного напряжения («очищенный» эксперимент № 1). Коэффициент при производной тока L— собственная ин- дуктивность катушки — имеет отношение к другому эксперимен- ту: если запитать катушку от источника гармонически изменя- ющегося напряжения достаточно высокой частоты («очищенный» эксперимент № 2), то произведение круговой частоты колебаний и собственной индуктивности катушки опять даст нам коэффи- циент пропорциональности между амплитудами тока и напряже- ния на зажимах катушки. Наконец, емкость конденсатора С тоже нуждается в определении и появляется она как понятие, опять- таки, из какого-то «очищенного» эксперимента № 3, вскрыва- ющего связь тока и напряжения на обкладках конденсатора.
Предположения в отношении постоянства всех этих коэффи- циентов представляются справедливыми лишь с некоторой на- тяжкой. Мы закрыли глаза на внутренние тепловыделения в провод- нике, условия охлаждения катушки, потери в диэлектрике кон- денсатора. Перечень неучтенных факторов расширится, если мы возьмем катушку с железным сердечником, который не только сможет влиять на индуктивность, но и откроет дополнительные возможности для увеличения тепловых потерь в системе (от вих- ревых токов, на перемагничивание и т.д.). Ничего этого в модели нет. Всякий раз, чтобы учесть тот или иной фактор, нам придется конструировать новый эксперимент, предлагать модель явления, определять и интерпретировать ее па- раметры. При отсутствии модели мы не сможем описать эффект, следовательно, шаблон уравнения, описывающего процесс, будет заведомо неполным. Тем не менее, никто не мешает нам выполнить идентифика- цию той модели, которая у нас есть. Правда, для этого нам все равно придется выполнить эксперименты со всей цепью, после чего подобрать значения коэффициентов так, чтобы погрешность предсказания поведения тока была минимальной. Не важно, на- сколько точно найденные значения коэффициентов совпадут с теми, что получились бы из частичных исследований. Мы и не можем ожидать, что они совпадут — члены, присутствующие в шаблоне, должны взять на себя вклад отсутствующих. Как след- ствие, значения коэффициентов получат некоторые приращения, зависящие, по-видимому, еще и от того, например, в каком ди- апазоне токов проводились эксперименты со всей цепью. Ясно, что идентифицированная модель будет достоверна только в этом диапазоне, но вряд ли мы можем надеяться, что при других токах параметры модели останутся прежними. Все это необходимо иметь ввиду при использовании аналитических моделей. 9.5. Получение дифференциальных уравнений динамических систем 9.5.1. Механические системы. Поступательное движение Аналитический подход к моделированию динамических си- стем основан на уравнениях баланса сил, массы, энергии и мо- ментов. Рассмотрим на нескольких простых примерах общие прин- ципы получения дифференциальных уравнений динамических систем. Для составления динамической модели любой механической системы используется второй закон Ньютона. Для применения
второго закона Ньютона необходимо задать некоторую систему отсчета, относительно которой будут определяться положение, скорость и ускорение. Пусть вектор F— сумма всех сил, действу- ющих на тело, т — масса тела, а вектор z характеризует его поло- жение. Ускорение а — вектор с тем же направлением, что и век- тор F. Уравнение баланса сил имеет вид F = та = . (9.3) dr2 В действительности Ньютон сформулировал свое утверждение относительно импульса mv следующим образом: F = ^-(mv). (9.4) dt Второй закон Ньютона можно записать как систему диффе- ренциальных уравнений первого порядка, в форме уравнений со- стояния. При прямолинейном движении координата z и ско- dz dv F рость v выражаются как скаляры — = v и — = —. dt dt т Рассмотрим механическую систему с пружиной и амортизато- ром (рис. 9.1). Тело массой т связано с неподвижной стеной пру- жиной и амортизатором. Сила реакции пружины пропорциональ- на ее относительному растяжению, а сопротивление амортизато- ра — скорости тела. Закон Ньютона в этом случае записывается в виде d2z ,dz . , г m—y = -b—-kz + F. dt2 dt После простых преобразований получим d2^ + b dz + к _ F dt2 m dt m m' (9.5) Считая переменными состояния системы положение тела z = = Х\ и скорость его изменения v - = х2, запишем модель систе- мы в виде: — Xi - —х2 т т dx2 dz2 т
Рис. 9.1. Пример механической системы или в матричной форме d/ О т где А = к ту Качественно решение уравнения зависит от относительной ве- личины коэффициентов Ь, к и т. При малом коэффициенте демп- фирования b уравнение описывает колебательный процесс, а при больших значениях b колебания отсутствуют. Это уравнение мож- но использовать для описания многих сервомеханизмов. Системы такого рода часто характеризуются относительным демпфирова- нием, частотой собственных колебаний, шириной полосы про- пускания и коэффициентом усиления. 9.5.2. Механические системы. Вращательное движение Закон Ньютона для вращательного движения имеет вид = Т, (9.6) d/ где /— момент инерции; со — угловая скорость; Т— сумма всех моментов, действующих на тело. Часто J— непостоянная величи- на, например, при работе промышленного робота или прокатно- го стана, и нужно учитывать его зависимость от времени. Если ввести понятие угла поворота е, то динамику вращения можно описать в форме уравнений состояния. При этом полагают, что известно направление вращения и что величина J постоянна. Тог- , . de да дифференциальные уравнения записываются в виде: — = со и d/ dco Т d7“7‘ Составим, например, дифференциальные уравнения для вра- щающегося электродвигателя. Пусть электрический двигатель свя-
зан с нагрузкой жестким валом. Результирующий момент Т — раз- ность между вращающим моментом Тт и моментом сопротивле- ния нагрузки TL. Момент двигателя Тт является функцией тока ротора, магнитного потока и, в некоторых типах двигателей, уг- ловой скорости и угла поворота. Ток зависит от переходного про- цесса в цепи ротора. Момент сопротивления нагрузки TL также зависит от многих факторов. Кулоновское трение вызывает момент который за- висит не от скорости, а только от направления вращения и дей- ствует всегда против него. В некоторых системах есть вязкое со- противление с моментом характеризующееся параметром d\. В компрессоре или насосе момент сопротивления нагрузки также зависит от турбулентности жидкости и пропорционален квадрату скорости — d2<£>\ vjifi d2 зависит от условий работы. В итоге пол- ный момент сопротивления нагрузки можно представить суммой упомянутых моментов и момента внешней нагрузки TL = dQ sign со + t/](o + d2(&2 + T^. (9.7) Функция sign со принимает значение +1 для положительного аргумента со и -1 для отрицательного и используется для обозна- чения направления. Общий баланс моментов ротора ^2 = 4 - TL, (9.8) где J — полный момент инерции двигателя и нагрузки. 9.5.3. Электрические цепи Динамика электрических цепей определяется несколькими ос- новными законами. Законы Кирхгофа описывают связь между напряжениями и токами в электрической цепи. Электрические цепи образуются ветвями и узлами. Ветвь определяется как проводник или элемент с двумя концами. Элемент ветви может быть пассив- ным, т.е. сохраняющим или потребляющим ток, или активным, т.е. генерирующим напряжение или ток. Узел — точка, в которой соединяются три или более ветвей. Закон Кирхгофа для тока утверждает, что сумма всех токов в любом узле равна нулю, а закон Кирхгофа для напряжений — что сумма падений напряжения по любому замкнутому контуру рав- на нулю. Закон Кирхгофа для напряжения есть следствие принци- па сохранения энергии. При записи баланса напряжений можно идти вокруг замкну- того контура в любом направлении и суммировать падения на-
Рис. 9.2. Пассивный низкочастотный ЯС-фильтр первого порядка пряжения при условии, что каждый элемент учитывается только один раз. Основы электромагнитной теории сформулированы в уравне- ниях Максвелла. Имеется два элемента с зависимым от времени состоянием: конденсатор — для накопления электрического за- ряда и индуктивность — для накопления энергии магнитного поля. Конденсатор в цепи накапливает электрический заряд, т.е. энер- гия сохраняется в электрическом поле. Ток, текущий через кон- денсатор, пропорционален производной от напряжения на кон- денсаторе по времени / = С—, где С— емкость конденсатора. о/ Рассмотрим простую резистивно-емкостную ЯС-цепь (рис. 9.2) и проанализируем зависимость напряжения на конденсаторе от напряжения источника. Закон Кирхгофа для напряжений цепи дает и, - R,~ w0 = 0, где R — активное сопротивление; w0 — напряжение на конденсаторе, определяемое уравнением: d«o _ 1 • d/ С (9.9) после исключения тока / из дифференциального уравнения имеем: RC^- = -u0+ui. (9.10) Это дифференциальное уравнение первого порядка характери- зуется постоянной времени Т = RC. Если начальное напряжение на конденсаторе равно нулю, то скачок входного напряжения и, вызовет экспоненциальный рост напряжения на конденсаторе Ц>(0 = ц(1 -е’//г). (9.11) В электронике и технике связи обычной практикой анализа систем является использование синусоидального входного сигна- ла. Предположим, что входное напряжение цепи имеет вид w/(r) = i/<sin(cor), (9.12) где Uj — максимальное значение амплитуды. Выходное напряже- ние на конденсаторе через некоторое время также станет синусо- идальным.
Выходной сигнал имеет такую же частоту, что и входной, но другие амплитуду и фазу «о(0 = Uo sin(<or - ф), (9.13) где Uo = (7, / 71 + (шЯС)2 (9.14) И Ф = arctg(co7?C). (9.15) С ростом частоты амплитуда выходного напряжения падает и все больше и больше отстает по фазе. Цепь с такими свойствами называется низкочастотным фильтром, поскольку она пропуска- ет низкие, но гасит высокие частоты. Приведенный пример иллюстрирует два основных метода опи- сания линейных систем — во временнбй области и в частотной области. Анализ во временнбй области рассматривает поведение системы во времени, т.е. зависимость от времени ее реакции на конкретный входной сигнал — скачок. Частотный анализ иссле- дует поведение системы под воздействием внешних возмущений различной частоты. 9.5.4. Электромагнитные процессы При изменении магнитного поля во времени возникает элект- рическое поле. Это закон Фарадея (закон электромагнитной ин- дукции), который описывается одним из уравнений Максвелла. В соответствием с законом индукции напряжение е (ЭДС индук- ции), наведенное на концах идеальной катушки, т.е. катушки без активного сопротивления, = е, где у — потокосцепление вит- df ков катушки (потокосцепление — произведение магнитного по- тока Ф через один виток на число витков N). Потокосцепление катушки с током I и индуктивностью L определяется по формуле V= LI. Другими словами, в катушке индуктивности энергия сохраня- ется в магнитном поле. Дифференциальные уравнения для емкос- ти и индуктивности представляют собой основу для описания элек- тромагнитных цепей. Другие отношения можно получить из этих основных уравнений с помощью алгебраических преобразований. Соотношение между магнитной индукцией В и напряженностью магнитного поля Н определяется свойствами среды
Рис. 9.3. Простая электромагнитная цепь (а) и типовая кривая намагни- чивания без гистерезиса (б) B = (916) где ц — магнитная проницаемость материала. В ферромагнитных материалах проницаемость не постоянна и для больших значений Н величина магнитного потока Ф, про- порциональная магнитной индукции В, будет достигать насыще- ния. Связь между магнитным потоком и током, создающим на- пряженность магнитного поля, показана на рис. 9.3, б. Часто при описании магнитных цепей необходимо учитывать явление гистерезиса, из-за которого магнитная индукция не только является функцией тока, но зависит еще и от предыстории на- магничивания. 9.5.5. Двигатель постоянного тока с независимым возбуждением Двигатель постоянного тока (рис. 9.4) преобразует электриче- скую энергию в механическую в виде вращающего момента. В двигателе существуют два магнитных поля. Поле статора со- здается или постоянным магнитом, или электромагнитом; послед- Рис. 9.4. Схема двигателя посто- янного тока
ний должен быть соединен с отдельным источником напряжения. Для простоты будем здесь полагать, что поле статора постоянно во времени. Магнитное поле ротора возникает при подаче напря- жения в цепь ротора. Обмотки размещаются таким образом, что поле ротора всегда перпендикулярно полю статора. Известно, что если два магнит- ных поля расположены под углом друг относительно друга, то возникает момент, который стремится сделать их параллельны- ми. Это принцип работы стрелки компаса — если стрелка компаса не параллельна линиям магнитного поля Земли, то она повора- чивается, пока не установится параллельно. Ротор под воздей- ствием возникшего момента поворачивается, и его обмотки ме- ханически переключаются коммутатором, что приводит к изме- нению направления поля ротора. Таким образом, в результате ориентация поля ротора в пространстве всегда одинакова и пер- пендикулярна по отношению к полю статора. Момент же сохра- няется постоянным для углов поворота ротора. Момент, генерируемый двигателем, пропорционален магнит- ной индукции поля статора к току ротора /. Поскольку в этом примере мы предполагаем, что магнитная индукция постоянна, то момент двигателя Тт = kmi, где кт — константа, зависящая от двигателя. Учитывая момент сопротивления нагрузки TL механи- ческую часть можно записать следующим образом: ^~- = kmi-TL, (9.17) где J — полный момент инерции двигателя и нагрузки. В резуль- тате вращения в магнитном поле статора в обмотках ротора наво- дится ЭДС индукции е. При постоянном поле статора ЭДС индук- ции пропорциональна скорости вращения со; е = к^ь, где kg — константа. Если единицы согласованы и потери пренебрежимо малы, то kg = кт = к. В соответствии с законом Ленца магнитный поток, вызван- ный ЭДС индукции е, будет ориентирован против потока, выз- ванного исходным током проводника. Электрическая цепь ротора характеризуется ее активным сопро- тивлением R и индуктивностью L. Предполагая, что L — констан- та, закон индукции определяет напряжения вдоль контура как: d^P d(£/‘) dr D. , zq = . = L— = u- Ri-ku, (9.18) dr dr dr где i — ток ротора; и — приложенное напряжение. Динамика дви- гателя показана на рис. 9.5.
Рис. 9.5. Блок-схема двигателя постоянного тока Приложенное напряжение вызывает ток ротора, создавая мо- мент двигателя. Момент воздействует на ротор, который начинает вращаться с определенной угловой скоростью. Наведенная ЭДС индукции действует как обратная связь между механикой ротора и его электрической цепью. 9.5.6. Баланс масс Для многих промышленных процессов существенным является моделирование баланса массы различных компонентов. В откры- той системе, где происходит обмен с внешним миром, все урав- нения баланса массы имеют одинаковую структуру: приращение массы = приход массы — расход массы. Такое уравнение можно сформулировать как для каждого от- дельного компонента, так и для всей массы в целом. Приход (расход) массы может быть следствием как входного (выходно- го) потока, так и химических реакций или биологического рос- та. Несколько примеров иллюстрируют принципы уравнения ба- ланса. Баланс общей массы. Бак заполняется однородной несжимае- мой жидкостью (рис. 9.6). Приход и расход массы обозначаются как qin и q0UI соответственно. Уравнение баланса имеет вид — (9-19) СИ где М — полная масса. Баланс массы компонентов. Пусть теперь бак наполнен раство- ром с концентрацией одного из компонентов с (рис. 9.7).
Qin — Рис. 9.6. Емкость с однородной жидкостью Q— Рис. 9.7. Простой смеситель Сформулируем баланс массы компонента. Концентрация рас- твора во входном потоке с, может меняться заданным образом. Расходы входного и выходного потоков считаются постоянными и равны q. Полная масса компонента в баке определяется объе- мом Vи равна Р*с. Будем считать концентрацию в выходном по- токе такой же, как в баке. Тогда баланс массы компонента запи- сывается в виде d(Kc) dr = QC, - qc. (9.20) Поскольку объем V постоянен, И de q d/ = -c + cy. (9.21) Вид этого дифференциального уравнения такой же, как и для электрической АС-цепи. Постоянная времени определяется как Т = V/q. Решение дифференциального уравнения имеет вид с(Г) = сД1(9.22) Интуитивно ясно, что концентрация будет меняться медлен- нее, если расход жидкости во входном потоке мал по сравнению с объемом V (это соответствует большому значению 7). То есть баланс массы компонента имеет такие же динамические свой- ства, что и низкочастотный фильтр. В принципе, анализ рассмотренной системы можно выполнить и в частотной области, аналогично электрическому низкочастот- ному фильтру. В этом случае концентрация входного потока из- меняется (модулируется) по синусоидальному закону и изучается частотный отклик концентрации в выходном потоке. Этот под- ход, однако, не очень практичен для химических процессов, так как постоянная времени может составлять несколько часов и, следовательно, такой эксперимент продлится много дней.
9.5.7. Уравнение сохранения энергии В некоторых процессах необходимо регулировать температуру. Динамическая модель системы управления температурой должна учитывать тепловые потоки и накопление тепловой энергии. Во многих случаях поток теплоты через объект пропорционален раз- ности температур на его границах = Л где тепловой поток; R — тепловое сопротивление; Т— тем- пература. Перенос теплоты часто моделируется как величина, пропор- циональная площади поверхности А и обратно пропорциональ- ная длине пути / теплового потока где к — теплопроводность. Сохранение тепловой энергии можно описать как dz где С — теплоемкость; q— алгебраическая сумма потоков. 9.5.8. Тепловой баланс жидкости в баке Тепловой баланс жидкости в баке служит иллюстрацией зако- на сохранения энергии (рис. 9.8). Температура жидкости Т одно- родна внутри бака, температура окружающей среды Та, а тепло- емкость бака С/. Суммарное тепловое сопротивление верхней и нижней частей Яь а боковых стенок — R2. Нагревательный эле- мент подводит к жидкости тепловую энергию uq. Рис. 9.8. Тепловой баланс жидкости в баке
Тепловой баланс С-^ = ^-^ + ^(7'-7'а>- <9-23> ОГ \ А| 1\2 ) Большая разница температур на внутренних и внешних поверх- ностях стенок будет вызывать быстрые температурные изменения в баке. Чем больше и /?2, тем медленнее будут изменения. 9.6. Непрерывные модели динамических систем 9.6.1. Общие положения Дифференциальные уравнения, описывающие физический процесс, всегда можно преобразовать к системе обыкновенных дифференциальных уравнений первого порядка. В этом случае го- ворят, что это описание в виде уравнений состояния или в про- странстве состояний (state — space form). Главное преимущество такой формы записи в том, что для решения этих уравнений можно использовать численные методы. Кроме того, четко прослеживается физическая сущность про- цесса, в частности связь между внутренними переменными и вне- шними входным и выходным сигналами. Аналогично, изучение систем управления с более чем одним входом и выходом, проще в форме уравнений состояния. Основой математического аппара- та для моделей в пространстве состояний служит, главным обра- зом, линейная алгебра — векторная и матричная нотации значи- тельно упрощают описание. Однако методы линейной алгебры не требуются, чтобы получить основные представления о динамике системы. Большинство физических процессов можно моделировать на основе функциональных блоков, аналогичных рассмотренным в примерах подразд. 9.1. В общем случае уравнения баланса нели- нейны и, как правило, связаны друг с другом. Таким образом, описание динамики процесса может представлять собой набор не- линейных, связанных между собой дифференциальных уравнений первого порядка для баланса энергии, общей массы, массы ком- понентов, сил и моментов. Уравнения состояния представляют собой практичный и удоб- ный способ описания динамических систем. Состоянием называ- ется набор всех переменных — так называемых переменных состо- яния, производные первого порядка от которых входят в уравне- ния описания динамической системы. Концепция уравнений со- стояния имеет фундаментальное значение. Если известны теку-
щее состояние системы (переменные состояния) и входные сиг- налы, то можно предсказать ее дальнейшее поведение. При этом предысторию, т.е. то, как было достигнуто текущее состояние, знать не нужно. Другими словами, состояние — минимальное ко- личество информации о системе, которое необходимо, чтобы предсказать ее будущее поведение. Состояние х можно представить как вектор-столбец, компо- ненты которого — переменные состояния: Х=(Х|Х2...Х„)Г. Непосредственно измерить все переменные состояния можно в редких случаях, т.е. существуют внутренние переменные, за ко- торыми не удается следить с помощью датчиков. Поэтому описа- ние в пространстве состояний называют также внутренним опи- санием. Выходные величины — измерения, обозначаются через Уъ •••» Ур и составляют вектор у У = (У\У2-Ур)т- В общем случае число датчиков р, связанных с техническим процессом, меньше числа переменных состояния п. Поэтому вы- числение х по у — нетривиальная задача. На любую техническую систему влияют входные сигналы двух типов — сигналы, которые можно изменять вручную или авто- матически какими-либо техническими средствами, и сигналы, которыми управлять невозможно. Сигналы первого типа называ- ются управляющими сигналами или переменными управления «2, ••• » иги составляют вектор и и = (М|И2... «г)г. Входные сигналы второго типа могут влиять на систему, но не поддаются управлению. Величина этих сигналов отражает влия- ние внешней среды на систему, например изменение (возмуще- ние) нагрузки, вызванное температурой, радиацией, нежелатель- ным магнитным воздействием («наводками») и т.п. Все эти сиг- налы обозначаются вектором v v Возмущения Опорные значения — управляющие переменные и Переменные х состояния — внутренние Выходные сигналы — результаты измерений У Рис. 9.9. Блок-схема управляемой системы
V = (v,v2...vm)r. Целью системы управления является вычисление на основе имеющихся измерений у таких управляющие сигналов и, чтобы, несмотря на влияние возмущений у, техническая система выпол- няла поставленные задачи. Управляемую систему можно предста- вить в виде блок-схемы (рис. 9.9), на которой показаны управля- ющие сигналы, возмущения и выходные переменные. Эта концепция объясняется на следующем простом примере. 9.6.2. Механическая система Система с пружиной и амортизатором с рис. 9.1 имеет две пе- ременные состояния — положение z и скорость v. Входная пере- менная и — это сила F. Положение z (выходная переменная) можно измерить. В векторной форме система описывается: X = (z v)T\ и = F; у = Z = (1 0)х. Уравнения состояния имеют вид: к т (9.24) у = (1 0)w. 9.6.3. Описание линейной системы в пространстве состояний Большинство примеров из подразд. 9.1 представляют собой ли- нейные динамические системы, и поэтому их можно смоделиро- вать линейными дифференциальными уравнениями, в которых отсутствуют члены, содержащие произведения переменных состо- яния, входных и выходных сигналов — типа xj, х2и или х}х2. Ли- нейная система, имеющая п переменных состояния и г входных переменных, описывается следующими уравнениями состояния с постоянными коэффициентами: ^- = а1|х| + ... + а{пх„ + + ... + А,гиг; (9.25) = а„1х| +... + а„„х„ +b„lul+... + bnru, at
где параметры а9и by — константы. Поскольку эти уравнения яв- ляются дифференциальными уравнениями с постоянными коэф- фициентами, они обладают рядом привлекательных свойств. На- пример, всегда можно найти аналитическое решение x(t) при произвольных входных сигналах w(r). Начальные условия опреде- ляются п константами х(0) = (Х|оХ2о- х/ю)г- В матричном виде уравнения состояния описываются значи- тельно проще — = Ах + Ви, (9.26) dr где А и В — матрицы, содержащие постоянные коэффициенты *п *12 ... Я,/ fAi ^12 ... м А = *21 *22 ... а2л ;в = ^2\ ^22 ... Ь}г (9.27) • • • • • • • ♦ • • • • • • • • • • • • • к*Л1 *л2 • • • *лл > <^Л1 ^л2 ... ь„г. При единственном управляющем сигнале матрица В имеет толь- ко один столбец. Между внутренними переменными состояния х и измерения- ми у существует линейная зависимость. Кроме того, иногда име- ется прямая связь между управляющими переменными и и вы- ходными переменными у. У| =<41*1 + - + ЛЛ+</„«, + ... + </|гиг; (9.28) УР = + ••• + српхп + dpM +... + dprur или в векторно-матричных обозначениях у = Сх + Du, где С11 С12 • • • *1/ ( </|2 • • dlr' С = Q1 с22 • • • О = ^21 J22 • • • ^2r • • ♦ • • • ♦ ♦ • • • • • • ♦ Ср2 • • • Срл, dp2 • • ♦ dpr A Если имеется только одна выходная переменная, то С состоит из одной строки. Обычно нет прямой связи между входными и выходными переменными, и тогда матрица D — нулевая. Линейная система имеет много преимуществ. Наиболее важ- ным свойством линейных систем является принцип суперпози- ции. Это означает, в частности, что если при каком-либо измене-
нии амплитуды входного сигнала Aw выходной сигнал изменится на величину Ду, то при удвоенном изменении входного сигнала 2Ди выходной сигнал изменится на величину 2Ду. Кроме того, линейные системы обладают свойством аддитив- ности входных сигналов, т.е. если входной сигнал щ вызывает выходной сигнал уь а и2 — сигнал y2t то общий сигнал W| + и2 на входе приведет на выходе ку} + у2. Как следствие, влияние сигна- лов управления и возмущений можно анализировать отдельно. Несмотря на все достоинства линейного описания, применять его следует с большой осторожностью, поскольку большинство технических процессов существенно нелинейны. Если нелиней- ности «гладкие», т.е. отсутствуют скачки, то при определенных условиях нелинейную систему можно рассматривать как линей- ную. Тогда линейное описание справедливо для малых отклоне- ний вокруг точки равновесия. Многие параметры промышленных процессов должны поддер- живаться вблизи некоторых постоянных — опорных значений; целью систем управления является приведение параметров про- цесса к их опорным значениям. Пока отклонения от опорного зна- чения малы, линейное описание является адекватным. Однако при больших отклонениях могут потребоваться более точные модели, поскольку влияние нелинейности будет существенным. 9.7. Описание в виде отношений входных и выходных переменных 9.7.1. Общие положения Частотные методы используют анализ функций комплексной переменной и преобразование Лапласа. Главные элементы этого подхода — передаточные функции, функциональные блок-схемы и их преобразование, анализ нулей и полюсов. К преимуществам анализа систем в частотной области относится возможность со- брать соответствующие экспериментальные данные, позволяющие непосредственно по ним построить удовлетворительную модель системы. Из-за этого метод частотных характеристик обычно ис- пользуют при описании сложных систем, например усилителей с обратной связью, а также многих электромеханических устройств и систем. Если описывается только связь между входными и выходными сигналами, то некоторые внутренние переменные и их взаимо- связи остаются скрытыми, представление системы становится более компактным и имеет меньшее число параметров, чем опи- сание в пространстве состояний. Поскольку в модель включены
только входные и выходные переменные, то она называется вне- шним описанием в противоположность внутреннему представле- нию уравнениями состояния. Многие регуляторы, например про- порционально-интегрально-дифференциальный регулятор (ПИД- регулятор), настраиваются по моделям технических процессов в виде отношений входных и выходных переменных. Из внутренне- го описания системы можно исключить вектор х и получить опи- сание системы в виде сРу —+ а dr" dw“’y , dmu , dm~lu , л -—т + -- + а*У - А)-;— + А ”7—г + —+ (9.29) где коэффициенты а,- и bi могут быть получены из матриц Л, В, С и D. В системах со многими входными и выходными переменными для каждой пары вход/выход существует своя зависимость (в даль- нейшем рассмотрение будет ограничено системами только с од- ним входом и одним выходом у). Для дифференциального уравне- ния порядка п можно выполнить преобразование Лапласа (sn + a|Sn-1 +... + an)Y(s) = (b^sm + Zv'”"1 + • + bm)U(s), (9.30) где 5 — оператор Лапласа; У($) и U(s) — результат преобразова- ния Лапласа (изображение) для y(t) и u(t) соответственно. Пре- имущество этого метода в том, что комплексными переменными 5, которые представляют собой операторы дифференцирования, можно манипулировать алгебраическими методами. Здесь полага- ется, что начальные значения переменных состояния — нулевые. Связь между входными и выходными переменными линейной системы можно выразить ее передаточной функцией, которая определяется как отношение между изображениями Лапласа вы- ходного и входного сигналов системы 0(5) = Г(5) = У" + ... + />„ U(s) sn +a\Sn~x + ... + ап (9.31) Передаточную функцию также можно рассчитать непосред- ственно из внутреннего описания в переменных состояниях. Име- ет место следующее соотношение G(s) = ^ = C(sI-A)'B+D, (9.32) 6/(5) где I — единичная матрица порядка п. Вывод этого выражения очень прост и приводится в большинстве книг по управлению. В системе с одним входом и одним выходом матрица С состоит из одной строки, а матрица В— из одного столбца, матрица А
имеет размерность их л. Обычно матрица D (имеющая при этом размерность 1x1) — нулевая. В этом случае G становится скаля- ром. Для нескольких входов и выходов G(s) является матрицей с элементами G^s), которые суть передаточные функции для каж- дой пары вход и, и выход 9.7.2. Передаточная функция механической системы Передаточная функция системы (см. рис. 9.1) имеет вид F(s) ms2 + bs + к’ (9.33) где Z(s) и F(s) — изображения Лапласа для координаты z и силы F соответственно. Уравнения состояния были получены ранее. Пе- редаточную функцию можно также вычислить непосредственно из уравнений состояния G(s) = C(sI-АУ'В = (\ 0) к s + — т) 9.7.3. Низкочастотный фильтр Низкочастотный АС-фильтр (см. рис. 9.2) можно характеризо- вать его передаточной функцией. Предположив, что начальные напряжения равны нулю, связь вход/выход можно записать как (9.35) Зависимости амплитуды и фазового сдвига выходного сигнала от частоты синусоидального входного сигнала получаются при замене в передаточной функции 5 на /со. 9.7.4. Область применения линейных моделей Существуют динамические явления, которые нельзя описать линейными дифференциальными уравнениями с постоянными коэффициентами. Рассмотрим влияние нелинейности на примере. Системы, описанные ниже, ведут себя как линейные при малых значениях входных сигналов, а при больших — появляется нели- нейность.
9.7.5. Ограничения сигнала В реальных условиях все сигналы ограничены. Во многих тех- нических системах в качестве конечных управляющих элементов используются клапаны. Поскольку клапан не может быть открыт больше, чем на 100%, рассчитанный математически сигнал уп- равления иногда просто нельзя реализовать (рис. 9.10). Другой пример ограничения сигнала — ток ротора электриче- ского двигателя. Ток должен быть ограничен, иначе двигатель сго- рит. Соответственно, система управления двигателем не может быть линейной, особенно при больших ускорениях и моментах, когда ток тоже должен быть большим. Системы, описанные выше, имеют «слабые» нелинейности, т.е. ведут себя практически линейно при малых значениях входно- го сигнала. Многие системы при больших отклонениях от точки равновесия требуют более точного описания, чем линейные диф- ференциальные уравнения, поэтому необходимо добавлять нели- нейные слагаемые. При моделировании должны быть четко опре- делены границы, в рамках которых линейное описание является адекватным. 9.7.6. Нелинейные системы Системы, описанные ранее, являются нелинейными, но при некоторых допущениях их можно аппроксимировать линейными уравнениями. Другие типы нелинейностей нельзя свести к линей- ному описанию. Наиболее часто встречающийся пример — релей- ные системы. Реле вырабатывают бинарные сигналы типа «вклю- чено/выключено»; идеальное реле для любого положительного входного сигнала имеет фиксированный положительный выход и, соответственно, фиксированный отрицательный выход при любом отрицательном входе. Очевидно, что в такой системе не выполняется принцип суперпозиции. Примеры систем с существенными нелинейностями: различные виды реле (с зоной нечувствительности, гистерези- сом и т.д.); Рис. 9.10. Выходной сигнал исполнительного механизма с ограничениями
клапаны (зоны нечувствительности, насыщение); нелинейные деформации механических пружин; падение давления в сужении трубы; силы трения; аэродинамическое сопротивление; свойства пара; двигатели постоянного тока с последовательной обмоткой воз- буждения (момент — функция квадрата тока роторной цепи). Нелинейные системы можно описать в следующем виде: dx, . -77 = ZU1, х2, х„, ult ...и,); Си (9.36) dx„ -^- = /nUb *2, •••» хп, щ. ...иг)у dr где определены п переменных состояния и г входов, или в ком- пактной векторной форме dx — = /(X, «), (9.37) dr где х — вектор состояний; и — вектор управления, а каждый ком- понент вектора f является функцией: / = (А fl...f„)T- (9-38) В состоянии равновесия производные dx^/dr равны нулю. Пусть точке равновесия х соответствует постоянный управляющий сиг- нал й, тогда условие равновесия /(х, й) = 0. Заметим, что это уравнение эквивалентно п скалярным урав- нениям. Эти уравнения могут иметь несколько решений, каждое из которых соответствует некоторой точке равновесия. Датчики тоже могут вести себя нелинейно. В частности, у дат- чиков температуры или давления выходной сигнал зависит от измеряемой физической величины. Такая зависимость может быть линейной для малых значений сигнала и нелинейной для боль- ших. Поэтому уравнение для выходных сигналов также нужно пе- реписать в более общем виде: Ti = £|(*Ь *2» • хп, иь (9.39) Ур — g\(Х|, Х2, ..., Хя, W|, ...l/r). Или более компактно в матричных обозначениях:
у(0 = g(*(0X0h (9.40) где компоненты вектора g — функции gh g2y gp. Обычно для нелинейных систем аналитическое решение не известно, поэтому используются численные методы, что вполне приемлемо в большинстве случаев. 9.7.7. Численное моделирование динамических систем Для решения нелинейных дифференциальных уравнений в боль- шинстве случаев используются численные методы. Основной ме- тод решения дифференциальных уравнений — аппроксимации производных по времени простыми разностными уравнениями. Этот метод называется аппроксимацией Эйлера с правыми раз- ностями х(Г + А) » x(r) +A/(x(r),w(r)). (9.41) Если известно начальное условие х(0), то можно рассчитать состояния х(Л), х(2Л), х(ЗЛ), ..., которые являются приближения- ми точного решения в моменты времени Л, 2А, ЗА и т.д. Здесь очень важно выбрать шаг интегрирования Л, который в принципе дол- жен быть как можно меньше, однако на практике выбирается некая компромиссная величина. Слишком маленький шаг приве- дет к неоправданно большому времени вычисления (которое, есте- ственно, еще серьезно зависит от сложности вычислений, типа уравнений, числа переменных и мощности процессора). С другой стороны, слишком большое значение h вызывает проблемы схо- димости решения и приводит к нежелательным результатам. Эф- фект неправильно выбранного шага может оказаться очень суще- ственным, особенно если моделируемая система включает в себя быстрые и медленные динамические процессы. 9.7.8. Проблема слишком большого шага Для иллюстрации проблемы слишком большого шага рассмот- рим простую систему, описываемую уравнением первого поряд- ка: где х(0) = 1 и а > 0. Уравнение имеет аналитическое решение х(г) = е"*'. Это же дифференциальное уравнение можно решить численно методом Эйлера.
При аппроксимации производной конечной разностью dx(r) x(t ч- h) - x(r) —;— ~------------- решение имеет вид dr h x(t + h) ~ x(r) - hax(t) = (1 - ha)x(t). (9.42) Существует много методов численного интегрирования, каж- дый из которых имеет свои достоинства и недостатки; наиболь- шее распространение получили методы Рунге-Кутта. Большинство методов интегрирования допускают варьируемую величину шага, которая выбирается автоматически, чтобы удовлетворить наперед заданному критерию погрешности. Имеется несколько коммерческих пакетов программ для моде- лирования, позволяющих решать нелинейные дифференциальные уравнения. Под «решением» здесь понимается, что значения пе- ременных состояния можно получить численным интегрировани- ем дифференциальных уравнений при заданных начальных усло- виях и входных сигналах, являющихся функцией от времени. При использовании таких программ необходимо задать дифференци- альные уравнения и некоторые параметры численного интегри- рования — метод, размер шага, форму представления решения (таблица или график) и т.п. Хорошие программы должны быть способны как минимум: • проверять согласованность уравнений; • переупорядочивать уравнения для оптимизации итерацион- ного процесса; • интегрировать уравнения; • отображать результаты в требуемой форме (таблица или гра- фик). Современные пакеты моделирования обеспечивают набор про- стых команд для изменения параметров или начальных условий и несколько алгоритмов интегрирования, из которых можно вы- брать наиболее подходящий для конкретной задачи. Они также имеют развитые возможности отображения результатов в легко воспринимаемой графической форме. На рынке есть несколько мощных пакетов моделирования — Mathematica, MathCad, MATLAB + Simulink и Maple существуют в версиях для различных вычислительных платформ. Программа MATLAB быстро приобре- ла большую популярность как аналитический инструмент, посколь- ку она поддерживает несколько математических методов: матрич- ные вычисления, методы линейной алгебры, идентификацию па- раметров, анализ временных рядов и синтез систем управления. Программа MATLAB является пакетом моделирования, ори- ентированным на уравнения, т.е. системы в них описываются обык-
новенными дифференциальными уравнениями. Другие програм- мы моделирования, например Simulink, снабжены готовыми мо- дулями описания элементов процессов; пользователь имеет воз- можность добавить к пакету свои собственные модули. Идея таких пакетов заключается в объединении нескольких модулей в еди- ный процесс. В остальном они содержат те же самые средства чис- ленного интегрирования и взаимодействия с пользователем, что и программы, ориентированные на уравнения. 9.8. Дискретные модели динамических систем 9.8.1. Общие положения Цифровая ЭВМ не может обрабатывать постоянно меняющие- ся аналоговые данные. Соответственно, и сбор данных, и выра- ботка управляющих сигналов происходят только в определенные моменты времени. Ситуация принципиально не меняется при по- вышении скорости процессора. Более быстрый процессор работа- ет по тому же принципу, что и более медленный, — он просто обрабатывает больше данных за тот же интервал времени, но дан- ные при этом остаются дискретными. Ниже излагается модель физического процесса, пригодная для приложений компьютерного управления. В соответствии с рассмат- риваемой моделью измеряемые данные процесса собираются че- рез регулярные интервалы времени. Эти интервалы не обязатель- но должны быть одинаковыми, однако описание дискретной ди- намической модели становится проще при постоянном интерва- ле. Данный процесс называется выборкой, дискретизацией (sampling) или квантованием, длина интервала — временем (пе- риодом, интервалом) выборки, дискретизации (sampling time) или квантования. Другое упрощение, используемое при разработ- ке дискретно-временных моделей процессов, состоит в том, что измеряемые данные и сигналы управления остаются постоянны- ми в течение интервала выборки. Фактически таким же образом работают схемы выборки и хранения интерфейса компьютера. 9.8.2. Описание в пространстве состояний Нелинейный процесс, описываемый непрерывным уравнени- ем = Ж и) (9.43) dr
можно аппроксимировать разностным уравнением: х[(к + 1 )А] « x(kh) + hf (х, w), (9.44) где h — интервал выборки и к — его порядковый номер; Дх, и) — производная по времени вектора состояния системы х в соответ- ствии с непрерывным уравнением. Аппроксимация справедлива, если шаг h достаточно мал и производная «гладкая». Разностное уравнение по существу такое же, что и при численном моделиро- вании. Линейная система с постоянными коэффициентами в дис- кретном виде представляется следующим образом: Х| [(А + 1) А] = (1 + ha\।)Х| (ЛА) +... + +haXnxn (kh) + hbi}Ui (kh) +... + h^rur (kh); xn [(Л +1) A] = (1 + Аал| )x, (AA) +... + (9'45) +ha„nxn (kh) + AAnltt, (kh) +... + hbnrur (kh). В матричных обозначениях это можно записать х[(Л + 1) А] = х(АА) + АЛх(ЛА) + hBu(kh) = = (/ + АЛ)х(ЛА) + АЯи(АА). Для линейной или линеаризованной системы аппроксимация не обязательна. Поскольку линейные дифференциальные уравне- ния можно решить аналитически, соответствующие уравнения для дискретного представления можно получить из решения. Пред- полагается, что сигнал управления u(t) остается постоянным меж- ду моментами выборки, т.е. система включает в себя схему удер- жания. Дискретную модель можно записать в матричном виде х[(А+1)А] = Фг(АА) + Tu(kh). (9.46) где Ф— матрица размерности пх п; Г— матрица размерности пхг. Связь между матрицами А и В и матрицами Ф и Г следующая: ф = елл = / + АЛ + 2! Г = [»М + ...к где I — единичная матрица.
Преобразование между матрицами для непрерывной и диск- ретной моделей можно выполнить с использованием стандартных программ. Аппроксимация конечными разностями Ф ~ 1 + hA и Г « ИВ стремится к точному решению при малых значениях ин- тервала выборки И. Поскольку измерения происходят периоди- чески, то уравнение для дискретной модели справедливо только в моменты выборки: у (kh) = Сх (кИ) + Du (кН). (9.47) Решение уравнений дискретной модели на цифровой ЭВМ получается довольно просто: решение x(kh) в последовательные моменты времени вычисляются шаг за шагом на основе разно- стных уравнений. 9.8.3. Отношение вход/выход и оператор сдвига В дискретных моделях, так же как в непрерывных, часто удоб- но напрямую связать вход процесса и с его выходом у, в особен- ности, когда регулятор записан в такой же форме, т.е. он опери- рует выходной величиной процесса для подсчета управляющего сигнала. Дискретно — временной анализ проще выполнить с по- мощью оператора сдвига q. Эффект применения оператора q к зависящей от времени переменной z(t) такой же, что и сдвиг по времени на интервал И — его также называют сдвигом вперед: qz{kh) = г[(л + 1)й]. (9.48) С помощью оператора сдвига разностные уравнения можно за- менить на алгебраические, которые проще преобразовывать и ре- шать. Здесь использован принцип, аналогичный преобразованию Лапласа для упрощения дифференциальных уравнений с помо- щью комплексной переменной s. Оператор обратного сдвига q~l сдвигает функцию времени на шаг назад 9-'г(Ай) = г[(А:-1)А]. (9.49) В общем случае оператор сдвига можно применять несколько раз qnz(kh) = qq...qz(kh) = г[(Аг + п)И]. Оператор сдвига q можно применять и к вектору x(kh), что эквивалентно использованию этого оператора к каждому его ком- поненту. Если существует дискретная модель в пространстве состояний (уравнения 9.45 и 9.47), то исключив вектор х и приведя подоб- ные члены, получим связь между входом и выходом в виде:
У [(* + п) Л] + а,у [(Л + п - 1) h\ +... + апу (kh) = = + л)Л] + ... + bnu(kh). Применение оператора сдвига q дает более компактную запись: (qn + a}qn~' +... + an)y(kh) = (b^qn + Ь&пА +... +b„)u(kh). (9.50) Выше было показано, что зависимость между входными и вы- ходными переменными линейной системы можно представить передаточной функцией G(s), определяемой как изображение Лапласа входных и выходных сигналов системы. Дискретный пе- редаточный оператор H(q) определяется из уравнения (9.50) сле- дующим образом (9.5!) и(кп) qn + +... + ап Выражения в обеих частях уравнения можно сдвинуть на п пе- риодов назад, что эквивалентно их умножению на q~n. Тогда отно- шение вход/выход выражается в виде y(kh) + aty[(Л -1) А] +... + а„у [(А - л)А] = = bou(kh) + ... + A„u[(A - л)А]. Используя оператор обратного сдвига, это отношение можно записать проще: (1+Д!?-1 +... + ад-я)^(АА) = (Д, + byq~' +... + b„q-")u(kh). Соответствующий дискретный передаточный оператор имеет вид Я( -ij = +- + Ь„д-'' u(kh) 1 ч- a{q~x +... + anq~n (9.52) Если числитель и знаменатель уравнения (9.52) умножить на то в результате получим уравнение (9.51), т.е. H(q - 1) = = H(q). Дискретный передаточный оператор можно получить непос- редственно из описания в пространстве состояний. Связь между дискретным передаточным оператором и матрицей в простран- стве состояний определяется следующим соотношением H(q) = H(q-') = = C(qI- Ф)'1 Г + D. u(kh) (9.53)
При получении выражения q рассматривается как комплексное число, хотя формально является оператором. Для системы с одним входом и и выходом у матрица С имеет одну строку, матрица Г— один столбец, а матрица Ф — размерность п х п. Обычно матрица D нулевая, что означает отсутствие алгебраических (т.е. прямых фи- зических) связей между входом и выходом технического процесса. В дискретном случае, как и для непрерывной передаточной функции, коэффициенты однозначно определяются из внутрен- него описания в пространстве состояний. Аналогично, поскольку вектор переменных состояния х можно сформировать, используя разные варианты представления, из H(q) можно получить мно- жество различных матриц Ф, Г, С, D. Описание системы в виде передаточного оператора является однозначным, с помощью мат- риц переменных состояния — нет. 9.8.4. Дискретное описание механической системы в пространстве состояний В качестве примера дискретного описания в пространстве со- стояний просмотрим еще раз механическую систему. Сначала определяется шаг выборки h. После этого можно вы- числить матрицы Фи Г. ф = ем = I + Ah + ^(A/i)2 + г (r. 1 \ (h1K2m\'\ Г = \Ih + - +Ah2 + ...\Ь = ' к 2 ) к h т J fl /Л .0 I/ Дискретная модель механической системы приобретает вид: х[(* + 1)Л] = х(^) + АГЛ/2 т{ 1 \ 7 м(Лй); у(Лй) = Сх(Лй) = (1 0)х(йй). Теперь передаточный оператор можно вычислить, используя уравнение. Заметим, что q мы рассматриваем как комплексное число. Тогда #(*) = (! О)^'1 -h ' 1 ' ht/ilm)' _ h2 q +1 q-lj h/m J 2m (^ _ l)2’ Это выражение можно переписать в следующем виде р-(<72 - 2? + l)y(kh) = + 1)и(йй)
или, подставляя q, ^(АА)-2у[(А;-1)А] + ^-2)Л]} = = |{«[(* - 1)А]+ «[(*-2)*]} - Это дискретная модель механической системы. Приведем для сравнения простую разностную аппроксимацию непрерывной модели. Разностная аппроксимация назад дает ^{y(kh) - 2у[(Л - 1)Л] + ,у[(* - 2)Л]} = u(kh). А при разностной аппроксимации вперед имеем %{у[(к + 2)А] - 2^[(А + 1)Л] + y(kh)} = u(kh). Аппроксимации, получение разностями вперед и назад, ана- логичны и отличаются сдвигом по времени на 2А. При малых зна- чениях А дискретная модель в пространстве состояний стремится к разностным аппроксимациям. Для того чтобы получить дискретную модель аналоговой си- стемы, мы можем использовать два способа. Первый — представ- ление исходных уравнений разностными уравнениями; если ис- ходная система линейна, то Ф и Г можно получить из А и В. Вто- рой — получить передаточный оператор Н на основе дискретного описания системы в пространстве состояний с помощью уравне- ния (9.45). Ранее отмечалось, что полюса непрерывной модели идентич- ны собственным числам матрицы А. Аналогично, полюса диск- ретной модели системы идентичны собственным числам матри- цы Ф. Рассмотрим непрерывную систему первого порядка dx/dr = = -ах. При а > 0 система устойчива и сходится к нулю независимо от начальных условий, т.е. x(t) = e’d'x(0). Дискретное описание си- стемы имеет вид х[(& + 1)й = cahx(kh) - qx(kh). Пусть h так мало, что произведение ah стремится к нулю. Тог- да ф стремится к 1. Физически это означает, что состояние си- стемы между последовательными моментами выборки изменяет- ся очень незначительно. С другой стороны, если h велико, то ф стремится к нулю. Это означает, что между двумя выборками си- стема практически ничего не «помнит». Поэтому очевидно, что интервал выборки h связан со значением коэффициента а и дол- жен выбираться так, чтобы избежать неустойчивости решения.
Собственные числа X матрицы А соответствуют собственным числам е^ матрицы Ф. Для вышеприведенного примера системы первого порядка мы видели, что для ее устойчивости необходимо и достаточно, чтобы собственное число (-а) было вещественным и меньше нуля. Соответственно для дискретной системы собственное число е-0* будет лежать в диапазоне вещественных чисел от 0 до 1. В колебательной системе второго порядка собственные числа рав- ны —о ±j(o. Колебания будут устойчивы при о > 0. Соответствующие собственные числа дискретной модели равны е"°Л + и е-ол-уюЛ Очевидно, что, поскольку мы рассматриваем одну и ту же физическую систему, эти собственные числа соответствуют тому же самому колебательному процессу, но только наблюдаемому в мо- мент времени с интервалом h. Заметим, что при о > 0 собственные числа дискретной модели расположены внутри единичного круга. Приведенные примеры уравнений первого и второго порядков можно обобщить для систем более высоких порядков: если соб- ственные числа и, соответственно, полюса дискретной модели расположены внутри единичного круга, то система устойчива. Таким образом, внутренность единичного круга соответствует левой части комплексной плоскости для непрерывных систем. 9.9. Структурные схемы Динамические системы, в том числе и системы автоматиче- ского управления, на языке математики описываются системой обыкновенных дифференциальных уравнений. Как было отмечено в предыдущих подразделах, использование преобразования Лап- ласа сводит задачу решения дифференциальных уравнений к ре- шению системы линейных алгебраических уравнений. Поскольку в системах управления путем изменения одних переменных про- изводится целенаправленное воздействие на другие переменные, то необходимо установить связь между этими переменными. Дан- ную связь обычно представляют в виде передаточной функции, которая является одним из основных понятий теории управления. Преимущество передаточной функции заключается в том, что она позволяет изобразить причинно-следственную связь между пере- менными в наглядной схематической форме. В теории управления преобладает представление различных динамических систем в виде структурных схем. Структурные схе- мы состоят из блоков направленного действия, каждому из кото- рых соответствует определенная передаточная функция. На рис. 9.11 изображена структурная схема двигателя постоянного тока, уп- равляемого по цепи возбуждения, которая отражает связь между углом поворота 0(5) и приложенным напряжением U(s).
г и ч СЛ <\ - * ВЫХОД п. . ад-* ад *ад Выходы vz . ----- ВД Л2(у)--------- Система Рис. 9.11. Структурная схема двигателя постоянного тока Рис. 9.12. Система с двумя входа- ми и двумя выходами Для описания системы с несколькими управляемыми пере- менными используется структурная схема с перекрестными свя- зями. Например, в системе (рис. 9.12) имеются две входные и две выходные переменные. С помощью передаточных функций мы мо- жем записать связывающие их уравнения: Г,(5) = Czn(5)A,(s) + 6,2(5)Я2($); (9.54) Г2(5) = G^s)R,(s) + (722(5)Л2(5), (9.55) где Gjj{s) — передаточная функция от у-го входа к /-му выходу. Структурная схема, отражающая записанные выше уравнения, представлена на рис. 9.13. В общем случае, при наличии несколь- ких входов и выходов связывающие их уравнения можно записать в матричной форме Y= GR. (9.56) Здесь У и R — матрицы-столбцы, элементами которых являют- ся I выходных и J входных переменных; G— матричная переда- точная функция размерности /х/ Анализ систем путем преобразования структурных схем дает гораздо лучшее представление о роли каждого элемента, чем это было бы при рассмотрении уравнений. Метод структурных схем широко распространен в теории и прак- тике автоматического управления. Он дает очень наглядное гра- фическое представление о взаимосвязи управляемых и входных переменных. Кроме того, проектировщик легко может обнаружить необходимость введения в существующую структурную схему до- полнительных блоков в целях улучшения характеристик системы. Наряду со структурными схемами существует альтернативный Рис. 9.13. Структурная схема системы с перекрестными связями
метод представления модели систем в виде сигнального графа. Этот метод будет представлен в следующем подразделе. Что касается MATLAB, то такие многомерные или многосвязные системы описываются матричными передаточными функциями. 9.10. Модели в виде сигнальных графов Этот метод является еще одним способом представления мо- дели в наглядном графическом виде, и во время широкого ис- пользования компьютерных средств приобрел особую популяр- ность. Сигнальный граф представляет собой диаграмму, состоя- щую из узлов, соединенных между собой отдельными направлен- ными ветвями, и является графическим средством описания ли- нейных соотношений между переменными. Сигнальный граф — просто наглядный метод записи системы алгебраических уравне- ний, показывающий взаимосвязь между переменными. Сигналь- ный граф для системы (9.54) —(9.55) показан на рис. 9.14. Структурные схемы адекватно представляют взаимосвязь меж- ду управляемыми и входными переменными. Однако для систем достаточно сложной конфигурации процедура упрощения их струк- турных схем является весьма трудоемкой и часто трудно выпол- нимой. Мейсоном был предложен альтернативный метод пред- ставления взаимосвязи между переменными системы, основан- ный на использовании сигнальных графов. Преимущество этого метода состоит в том, что по сигнальному графу, без каких-либо его преобразований, с помощью специальной формулы сразу можно установить связь между переменными системы. В общем случае линейная зависимость 7^ между независимой переменной х, (часто называемой входной переменной) и зави- симой переменной ху определяется по формуле Мейсона ^^ijk^ijk ---> (9-57) где Р^к — коэффициент передачи £-го пути от переменной х, к пе- ременной х/ SiJk — дополнительный множитель для пути PiJk а сум- мирование производится по всем возможным к путям от х, кх,; Д — определитель графа. Рис. 9.14. Сигнальный граф для системы с перекрестными связями
Дополнительный множитель равен определителю графа при удалении всех касающихся £-го пути контуров. Определитель Д находится по формуле * M.Q = + (9.58) <7=1 <л=1. <7=1 где Lq — коэффициент передачи ^-го контура. Таким образом, правило вычисления Д через значения Lb Л2, £3, Ln таково: Д = 1 - (сумма коэффициентов передачи всех отдельных конту- ров) + (сумма произведений всех возможных комбинаций из двух не касающихся контуров) - (сумма произведений всех возможных комбинаций из трех не касающихся контуров) + ... Коэффициент передачи пути Рк (или Pijk) определяется как непрерывная последовательность ветвей, простирающихся в на- правлении, указанном стрелками, причем ни один узел не встре- чается в этой цепи более одного раза. Формула Мейсона часто используется в несколько упрощен- ном виде для определения связи между выходной переменной У(5) и входной переменной R(s), т.е. Т = ^Рк^к^, (9.59) где T\s) = Y(s)/R(s). Контрольные вопросы 1. Назовите варианты использования дифференциальных уравнений в теории управления. 2. Приведите пример дифференциальных уравнений механических си- стем. 3. Приведите пример дифференциальных уравнений электрических це- пей. 4. Составьте дифференциальные уравнения двигателя постоянного тока с независимым возбуждением. 5. Запишите уравнение сохранения массы. 6. Запишите уравнение сохранения энергии. 7. Обоснуйте важность методов описания систем во временной и ча- стной областях. 8. Что такое уравнение состояния? Как его получить? 9. Дайте описание в виде отношений входных и выходных переменных. 10. Где и как используют нелинейные модели систем? 11. Как реализуется численное моделирование динамических систем? 12. Расскажите о видах дискретных моделей динамических систем. 13. Приведите пример модели в виде структурной схемы системы. 14. Составьте модель той же системы в виде сигнального графа.
ГЛАВА 10 ИСПОЛЬЗОВАНИЕ ПАКЕТА MATLAB ПРИ ПОСТРОЕНИИ МАТЕМАТИЧЕСКИХ МОДЕЛЕЙ НЕПРЕРЫВНЫХ ДЕТЕРМИНИРОВАННЫХ СИСТЕМ 10.1. Аналитическое решение дифференциальных уравнений динамических систем. Пакет Symbolic Math Toolbox Пакет символьных расчетов Symbolic Math Toolbox позволяет осуществлять в MATLAB символьные вычисления. Пакет включа- ет вычислительное ядро пакета Maple, разработанного фирмой Waterloo Maple Software, лидера в области автоматизации анали- тических решений. Extended Symbolic Math Toolbox предоставляет пользователю дополнительную возможность программирования на Maple и обеспечивает доступ к специализированным библиоте- кам Maple. Пакеты Symbolic Math и Extended Symbolic Math по- зволяют пользователю легко комбинировать численные и сим- вольные вычисления воедино без потери скорости и точности вычислений. Пакет Symbolic Math Toolbox добавил MATLAB каче- ственно новое свойство — возможность выполнения символьных вычислений и преобразований. До введения этого пакета система MATLAB считалась наиболее мощной системой решения матема- тических задач и математического моделирования в численном виде. Теперь MATLAB стал универсальной системой. Пакет Symbolic Math Toolbox снабжен более чем 100 /«-файлами MATLAB для примене- ния символьной алгебры и вычислительных процедур Maple V. Па- кет полностью интегрирован в среду и язык MATLAB. Таким обра- зом, результаты символьных вычислений могут быть переданы для дальнейшей обработки в среду MATLAB. Рассмотрим использование этого пакета на примере решения уравнения одномассовой колебательной системы (см. рис. 9.1). На- помним, что движение этой системы может быть описано либо дифференциальным уравнением второго порядка m^- = -b^--kz + F, (ЮЛ) d/2 dt либо системой двух дифференциальных уравнений первого по- рядка в нормальной форме Коши (представление в пространстве состояний)
(Ю.2) либо передаточной функцией C(5) = jR= 2 Л <10-3> F(s) ms2 +bs +к В уравнениях (10.1) —(10.3) /л — масса тела, z — его положе- ние, Ь — коэффициент вязкого трения, к — жесткость пружины, Г— внешняя сила. В выражении (10.2) х = (z dz/dt)r = (z у) ; и = F; у = z = (1 0)х. В (10.3) Z(s) и F[s) — изображения по Лап- ласу для координаты z и силы F соответственно. Получить аналитические выражения и графики переходных процессов в этой системе можно непосредственно по передаточ- ной функции. Аналитическое выражение для переходного про- цесса находится обратным преобразованием Лапласа произведе- ния передаточной функции на изображение входного сигнала, что предполагает использование команды ilaplace. Для построе- ния графика сигнала по его символьному выражению использу- ется команда ezplot. Найдем, например, импульсную переходную характеристику. Пусть т = 0,5, b = к = 0,1. Вводим команду » syms s; ilaplace (l/(0.5*sA2 + 0.1 *s + 0.1)). Получаем отклик в виде аналитического выражения для им- пульсной переходной характеристики. ans = 20/19*exp(-l/10*t)*19A(l/2)*sin(l/10*19^(l/2)*t). Чтобы представить данное выражение в более наглядном виде, введем команду » pretty(ans). Получим следующий ответ: 20 1/2 1/2 - ехр(-1/10 t)19sin(l/10 19 t). 19 График импульсной переходной характеристики на интервале 0—20 с (рис. 10.1) получим следующим образом: » ezplot(ans,0,20).
20/19 exp(-l/10r) 19ймп(1/10 19й/) Рис. 10.1. График импульсной переходной характеристики 10-...-10/19ехр(-1/10г) 19l/?sin(l/10 19'Лг) Рис. 10.2. График переходной характеристики Построим теперь переходную характеристику (рис. 10.2). » ilaplace (l/s/(0.5*sA2 + 0.1 *s + 0.1)) ans = 10-10*exp(-l/10*t)*cos(l/10*19A(l/2)*t)-10/19*exp (-l/10*t)*19~(l/2)*sin(l/10*19~(l/2)*t) » ezplot(ans,0,20) Этого же результата можно добиться и другим способом: ана- литически решить дифференциальное уравнение системы. Для ана- литического решения дифференциальных уравнений и систем слу- жит команда dsolve. » syms y;dsolve(’0.5*D2y + 0.1*Dy + 0.1 *y = Г, 'y(O) = O', 'Dy(O) = 0') ans = 10-10*exp(-l/10*t)*cos(l/10*19A(l/2)*t)-10/19*exp (-l/10*t)*19A(l/2)*sin(l/10*19A(l/2)*t) » ezplot(ans,0,20) Полученный график приведен на рис. 10.3. Как нетрудно заме- тить, результаты полностью совпадают. Предположим теперь, что нас интересует влияние коэффици- ента вязкого трения b на характер переходного процесса. Получим аналитически, а затем и построим трехмерный график, отража- ющий зависимость переходной характеристики от коэффициента вязкого трения Ь. » syms b; ilaplace(l/s/(0.5*sA2 + b*s + 0.1))
Нас. 10. J. ! (вфяк рс&ммом хнффс- inUMlUMJHi )|1аЫГИ41 LHHWM am в 10 ♦ ХГс^ч-VtM-J ♦ 11»>Пв<<Н1/Г(*-25^'2П1/2ГП- П>*гф -Ч I • ♦ Hl** '.** -'..Hl ••*.' ?V* Il 11 .Cl-1 . aw (4«Wt-2 ♦ 1<ГЪ‘2ГГ5 25*Г'2Г<1,'2ГЬ*^гЯ1/5Л5- » mwRNHjOJ .0.201), H t ixrrprawK’ грвфм»» <pнс 10 4) num». *m» яри d - 0 име- ют место немтутзамаме «аееОанна. > прг » 1 пе|«мммй про нес с ток нт er ер hajhiti *иН мрмтер Рж. l<J 4 I fte)>c (гцжжжим! •»!<» Htfl «XU >f ffkllHlfn пр«1*1> ОТ «Я»«И1ЖИ|1 тексте греамт » ш
Итак, паяет гаымикмы! (псястия S>nixiu MmU> Tixibca малм- стса яорйнам срс.тетыям аналвтичесаскя расчете* к сежалсмяав!, не гмаЛог амффергяопмамог яряенснис макет анаяитмчссаое* рс- uewe Алыер»«тя*са1 является тис хнисе реи<ине .1нСфт»нпи- шаоак урамаениМ. 10.2. Числимное ратин дифференциальных Амалю гкееасниа смени и яс тракта а динамике сСшчио ба мадоня на решения иаатем сбаммовенима лиОфереяшм*иныа «равнений |ОЛУ>. Ня «бытии нреисикгакч а нормальное фираае Кешм Дм решенка смски ОЛУ к MATLAB мспаяьду*>1я.х рат яичные ыстиаы. Ия рсалкяимм игчнм решжтеиша ОДУ (ODE мякетч! fi MAT IAfi имеете» нссашмп рсижтг.тсй ОЛУ Дяв реше- ния нгжястхия смски ОДУ мсптьт>ю«са рсимтсяи nd<4S, ndcЯ, odell? Дай решение жест»»» гметем испояымятгсе г* пятттн ode 15к («Я2Н. ode2.ii. odeZMk О мретрнсттак этик рммпяеЯ мязаию оснитап аспряас'нны гигтсрапре по пакет» MAI LAH 110. 2Ъ| Ртимы дифя>ере**ша.ты*х урааыенме < 10 21 численна Дм этх> 1о иоиаини a*-<a<lu — 0>И1 i — i fooction »&ч - mastt.O Mtoc - |w(Z);-O2*tllh« 2”N(2) ♦ Пграаи crptxai спасралт яляяеаос елпап бялейеш жип ням |та*>. кпянтгетао и псф«,хас слиллаанна аыяпаныа IxxtaO и аапа- иыа Ж> арпиопп* Itropaa стрсяса — те in фмиспии — препаям- КО1. рса мтмгеинй аымигягнни и пгмгшимв'сии* иегяг- нна амасоным арграсктам Уловка с соивып, т <te*-iw е реяк- геречн.аксчике к фай. «ее Огярмтое оасио решялорй опедаика ttpejetaacKHO на рие. 105. Дмее aaeoeu н сиыыьнкаа сериях MATLAB Миаанеу » Ю - O.tf - ПлО - |0 O|:|LX| - odeZ3<*aM»'j0.ir.kVK pAceXtjL» Рая. П$.О|*1ым* ежмереяая гор* гляадамяя »-<аК»>я
Рис. 10.6. График численного решения На рис. 10.6 показан график численного решения. Вновь полу- ченные результаты аналогичны тем, что получены другими мето- дами. 10.3. Пакет Control System Toolbox как средство моделирования систем Пакет Control System Toolbox [31] — основной пакет MATLAB для моделирования, анализа и проектирования систем автомати- ческого управления. Функции пакета включают как традицион- ные методы, базирующиеся на передаточных функциях, так и со- временные методы пространства состояний. С помощью пакета Control System Toolbox (CST) можно моделировать и анализиро- вать как непрерывные, так и дискретные системы. Основным клас- сом объектов пакета CST является LTI-объект. LTI или Linear Time Invariant — линейная система с постоянными параметрами. Подклассами этого класса являются непрерывные или дискрет- ные системы, одномерные — SISO (Single Input Single Output) или многомерные — MIMO (Multiple Input Multiple Output). Известно, что линейные системы с постоянными параметра- ми могут быть заданы одним из следующих способов: 1. Четверкой матриц Л, Д С, Д которая описывает дифферен- циальные или разностные уравнения в пространстве состояний в явной форме Коши = Ах + Вй\ dr у = Сх + Du. Это ss (state-space) форма LTI-объекта. (Ю.4)
2. Двумя векторами, задающими коэффициенты многочленов числителя и знаменателя передаточной функции системы. Это tf (transfer function) форма LTI-объекта. 3. Двумя векторами и числом, задающими нули, полюсы и обобщенный коэффициент передачи передаточной функции си- стемы. Это zpk (zero-pole-gain) форма LTI-объекта. 4. Набором экспериментально снятых зависимостей коэффи- циента передачи и фазового сдвига системы от частоты гармони- ческого входного сигнала. Это frd (frequency response data) форма LTI-объекта. Хотя в MATLABe имеется четыре способа описания LTI-си- стем, далее в основном будет рассматриваться представление LTI- систем в пространстве состояний (ss) и в виде передаточных функ- ций (tf). Команда tf, определяющая непрерывную систему ее переда- точной функцией, имеет синтаксис » Sys 1 = tf(num,den). Здесь num и den — коэффициенты полиномов числителя и зна- менателя передаточной функции. Эс 4* 2 Пусть передаточная функция системы Sysl = —;-------. 52+35+2 Чтобы создать систему Sysl в MATLAB, нужно ввести команду » Sysl = tf([2 2],[1 3 2]). Последует отклик вида Transfer function: 2s+2 sA2 + 3 s + 2 Предыдущая команда определяет объект языка программиро- вания MATLAB — LTI-систему. Этот объект имеет некоторые рек- визиты или свойства. Выведем эти реквизиты » get(Sysl) num = {[0 2 2]} den = {[1 3 2]} Variable = ‘s’ Ts = О Td = О InputName = {"} OutputName = {"} Notes = {} UserData = [].
Заметим, что многочлены числитель и знаменатель находятся в фигурных скобках { }. Это признак такого типа переменных MATLAB, как массив ячеек, что важно при рассмотрении MIMO систем. Если нужно получить числитель передаточной функции системы, напечатайте: » n = Sysl.num{l}. Реакция будет такой: п = 0 2 2. Чтобы получить и числитель, и знаменатель, можно использо- вать команду tfdata: > > [n,d] = tfdata(Sysl,V); Параметр V обеспечивает получение фактических числителя и знаменателя для SISO систем. Еще одни реквизиты объекта, кото- рые можно использовать это InputName и OutputName. Если на- значить эти реквизиты, имена входа и выхода будут печататься на всех диаграммах (графиках), а также всякий раз, когда отобра- жается передаточная функция. Назовем вход и выход, а затем ото- бразим передаточную функцию: » Sysl.InputName = ’Mylnpuf; » Sysl.OutputName = 'MyOutput’; » Sysl Transfer function from input «Mylnput» to output «MyOutput»: 2s+2 sA2 + 3 s + 2 Для определения системы в пространстве состояний применя- ется команда ss: » Sys2 = ss(a,b,c,d). Создадим новую систему, определяя четверку матриц ее пред- ставления в пространстве состояний » а = [0 1; -2 -3]; b = [0 If; с = [1 0]; d = 0; » Sys2 = ss(a,b,c,d); Тем самым была создана система dx dr 0 1 -2 -3 (Н у = (1 о)х
или в скалярном виде dx2 “d7 = -2х, - Зх2 + w; У = *!• Рассмотрим реквизиты объекта: » get(Sys2) а = [2x2 double] b = [2x1 double] с = Ц 0] d = 0 е = [] StateName = {2x1 cell} Ts = 0 Td = 0 InputName = {"} OutputName = {"} Notes = {} UserData = []. Переменным состояния, входам и выходам могут быть при- своены имена: > > Sys2.InputName = 'S2 In’; > > Sys2.OutputName = ’S2 Out’; » Sys2.StateName = {’S2 State Г ’S2 State2’}; Эти имена теперь используются при просмотре объекта: » Sys2 а = S2 State 1 S2 State2 S2 State 1 0 1 S2 State2 -2 -3 b = S2 In S2 State 1 0 S2 State2 1 с = S2 State 1 S2 State2 S2 Out 1 0
d = S2 In S2 Out 0 Continuous-time system. Как и для систем, определенных в терминах передаточной функ- ции, здесь также возможно получить реквизит представления в пространстве состояний. Выведем, например, матрицу а: » amatrix = Sys2.a amatrix = О 1 -2 -3 или получим все матрицы одновременно » [amatrix,bmatrix,cmatrix,dmatrix] = ssdata(Sys2); В CST возможен быстрый перевод LTI систем из одной формы представления в другую. Напомним, что Sysl была определена в терминах передаточных функций, a Sys2 — в терминах простран- ства состояний. Команда перехода к представлению в виде пере- даточной функции » Sys4 = tf(Sys2); создает новую систему Sys4, описанную своей передаточной функ- цией, которая эквивалентна системе Sys2 в пространстве состоя- ний. Команда перехода к представлению в пространстве состояний » Sys3 = ss(Sysl); создает новую систему в пространстве состояний Sys3, которая эквивалентна системе Sysl. Если переход от ss-формы к tf-форме единственен, то обратный может иметь бесконечно много вари- антов, из которых осуществляется один. Поэтому в CST преду- смотрена команда перехода от одного пространства состояний к другому пространству состояний » Sys5 = ss2ss(Sys2,T); MATLAB выполняет подобное преобразование, используя мат- рицу перехода Т. Наряду с возможностью создания различных систем и преоб- разования систем из одной формы представления в другую, в CST предусмотрен ряд команд, позволяющих строить из простых си- стем путем их соединения более сложные. Так, результатом дей- ствия команды » SysP = parallel(Sysl,Sys2,...,SysN) будет созда- ние системы SysP, образованной из систем Sysl,Sys2,...,SysN пу- тем их параллельного соединения. Команда » SysS = seri- es(Sysl,Sys2,...,SysN) создаст из систем Sysl,Sys2,...,SysN систе-
му SysS за счет их последовательного соединения. Соединение с обратной связью позволит осуществить команда » SysF = feed- back(Sysl,Sys2), причем система Sysl будет образовывать прямую цепь, a Sys2 — обратную связь. Наконец, наиболее универсаль- ным способом построения сложных систем является вариант при- менения команд append и connect. Команда » SysA = арр- end(Sysl,Sys2,...,SysN) объединит системы Sysl,Sys2,...,SysN в единую систему SysA, входами и выходами которой будут прону- мерованные по порядку входы и выходы всех систем, перечис- ленных в качестве аргументов. При этом первый входной сигнал системы Sysl становится входом номер 1 системы SysA, второй входной сигнал системы Sysl — входом номер 2 и т.д., далее идут входы системы Sys2. Аналогично определяются и выходы. Команда » SysC = connect(SysA,Con,in,out) служит установ- лению связей в системе SysA. В функции connect параметр Con — это матрица связей структурной схемы. Матрица формируется по следующему правилу: каждая строка представляет собой один вход системы SysA, первый элемент — номер входа (в соответствии с порядком, который определен выполнением команды append), затем идут номера выходов, которые суммируются и подаются на рассматриваемый вход. Параметры in и out — строки из номеров входов и выходов системы SysA, являющиеся внешними. Соединять в общую систему можно подсистемы различных форм представления (ss, tf, zpk, frd). Встает вопрос, какую форму пред- ставления будет иметь в этом случае результирующая система? Оказывается, что это определяется правилом предпочтений вида frd » ss » zpk » tf. Это означает, что frd-форма предпочтительнее всех остальных, далее идет ss-форма, за ней zpk-форма и на последнем месте — tf-форма. Пусть, например, хотя бы одна подсистема имеет ss- форму, а frd-форма отсутствует. Тогда результирующая система будет представлена своей ss-формой. Объяснение этого на первый взгляд неожиданного выбора кроется в возможной потере точно- сти вычислений при использовании передаточных функций с от- личающимися на порядки коэффициентами. Широко представлены в CST команды, вычисляющие систем- ные характеристики во временной области. 1. Импульсная переходная характеристика системы вычисляет- ся при помощи команды impulse, имеющей несколько вариантов обращения. Команда » impulse(sys); строит график импульсной переходной характеристики системы. Если даны имена входам и выходам, они будут отображены на графике. Команда
» impulse(sys,t); вычисляет импульсную переходную характеристику в моменты времени, заданные вектором t. Наконец, команда » |y,t,x| = impulse(sys); не строит графика импульсной переходной функции, а возвра- щает значения выхода, вектор времени и фазовые переменные. 2. Переходная характеристика системы вычисляется с помо- щью команды step, которая, как и команда impulse, имеет не- сколько вариантов обращения. Команда » step(sys); строит график переходной характеристики системы. Если даны имена входам и выходам, они будут отображены на графике. Ко- манда » step(sys,t); вычисляет импульсную переходную характеристику в моменты времени, заданные вектором t. Команда » [y,t,x] = Step(sys); не строит графика импульсной переходной функции, а возвра- щает значения выхода, вектор времени и фазовые переменные. 3. Отклик на произвольное входное воздействие вычисляется при помощи команды Isim. И вновь имеет место многообразие вариантов использования команды. Так, » lsim(sys,u,t); строит график отклика системы на входной сигнал, который за- дан вектором и своих значений, которые он принимает в опреде- ленные моменты времени, хранящиеся в векторе t. Команда » [y,t,x] = lsim(sys,u,t); не строит график, а возвращает значения векторов выхода у, вре- мени t и (если система представлена в форме пространства состо- яний) переменных состояния х. Если система представлена в ss- форме, входные данные должны содержать вектор начальных зна- чений переменных состояния хО. 4. Отклик на начальные условия вычисляется командой initial. Если обращение к ней имеет вид » initial(sys,xO); то строится график отклика системы sys на начальные условия, определенные вектором хО. Система должна быть в ss-форме. Ко- манда
» 1УЛ,х] = initial(sys,xO); не строит график отклика системы, но возвращает значения век- торов выхода у, времени t и переменных состояния х. Столь же разнообразны и CST команды, вычисляющие си- стемные характеристики в частотной области. Рассмотрим лишь две из них. 1. Карту расположения нулей и полюсов системы на комплек- сной плоскости можно получить, если воспользоваться коман- дой » pzmap(sys); Числовые значения нулей и полюсов системы позволит полу- чить команда » |p,z] = pzmap(sys); 2. Диаграмму Боде или логарифмические амплитудочастотную и фазочастотную характеристики системы sys строит команда » bode(sys); Если даны имена входам и выходам, они будут отображены на диаграммах. Команда » bode(sys,w); строит диаграмму Боде для частот, указанных в векторе w. Команда » [m,p,w] = bode(sys); не строит графиков, но возвращает амплитуду m и фазу р, соот- ветствующие частотам, указанным в векторе частот w. 10.4. Решение задач моделирования систем в пакете Control System Toolbox Решим задачу из подразд. 10.1 еще одним способом — с помо- щью пакета Control System Toolbox. Для формирования tf-формы LTI-объекта используем команду » h = tf([ 1 ],[0.5 0.1 0.1]). Получаем реакцию системы вида Transfer function: 1 0.5 sA2 4- 0.1 s+0.1 С помощью этой команды формируется объект с передаточной функцией 1 0.5s Л 2-ь 0.1s ч-О. Г
Ьк 10 В Персшама «филеры.- тмж> 1Т1ЧИСГДО4 Гн in 7 Имглюсдо гергшэдо ирев-тетистэсс! ЦП системы Пол ромы мм1гулысмуи игреним»» клрк теристмжу (рис 10.7) » mpdae(h(Hil П<тетроны теперь переженит» вярлгггристнку I рж. 10 И) » rtrjMh.XH Ннсль Китие. KctKTirrvpcejrv. тго результаты еншоопны тем. •<то >эое патчены лр?гмм мекшым. 10 5. Моделмрованмс смстом с исодльэошннфы пйкыт! SimulinM tO.fr 1< SmuMi-«юдоль дододооомой модоб>г«|доой долдоиюсдой сисе Уже угхэыи»свш|ж«сн • гл 6 и К нжп ЧтиЬпк ппwaiter иодо- лнрзшгтх лмиейндо и нелинейные системы и уггреЛспи. г^сл- стлытгнмыг > BUf Пгпь-оогы. Рас Ю1 С сЕКриммж CuflMl Stum ТгюОс* ОДОвысгтек* ПК*Л1 SlndfU
иомассавоА сааеОвтслвмпВ вешмитй ск гтмы Гн. IQ II. Пмхлпнг41 сапшя ш>- joh скноыахтжй вшстегегыжэВ мемивчеоле сютемм Нгшнм уж г шакс*о*> нам адчу сиг самим cnrcne<iv — < по- мсмимп S гп Ji-1 (мвчжи в сжит гЛиртттг ля ОаЛвмпттк прпсрвммы SirruirM шЙфмрнввСомЫ Spiem Todboa ipn: IC Ъ ДММ в <жно сошнив нолей моклм «nfpeTKuiBMw* LT1 s>uea м шлем ему несОкаммые параметру <рмс 10 Ю) Построим rpt- фнь перешмхо нхмеоса м системе <рмс 10 11) и убелныиа, что ин шей «е, как и прм другма иякнбжа решен на аждачи, >!♦
10.5.2. Simulink-модель нелинейной системы В отличие от пакета CST, область использования которого огра- ничена лишь линейными системами, Simulink позволяет строить модели нелинейных систем. Вот как в пакете Simulink может быть реализована модель маятника, являющегося нелинейной дина- мической системой. Уравнение движения маятника без учета тре- ния имеет вид d20 g . —7- = -vSinO. dz2 / Учет трения, а при малых скоростях сила трения пропорцио- нальна линейной скорости И, которая связана с угловой скоро- d0 стью — зависимостью dz приводит к уравнению dr2 т dz Наличие внешней вынуждающей силы F(j) приводит к урав- нению вида Trigonometric Function Рис. 10.12. Simulink-модель маятника
Гн. М И Пыкгяг4< chifui \гпЛг4-мга-н юпнп • futrrc Simdink микль ижгннах Дж кого, м пугтин Simiihnt. в <нм лЪстфгя>тт1я hHfivwmrt прс*-р>миы Slmuhrfc RWfW ргм Г^ГПНСПТМЧ НГ ПрГрЫВНЫЭ nt ntOR (_СЛ11ГМЛ|Л Hi ммеюижкл в ней Пэтов сошлим моогль мжтмта (р*с 10 IЛ Грэфи» изменения угла мэггммкэ а функции времени пределе лен п окне виртуалмкии осинл хсрэ|« <рнс. 10.15). 10 5 3 ПсмлСрлэлмнмя 5йтЛлк-мвделм а 1Т1-м<шелк Simabek лреххегэалеет реи дотиметемнмш эо1можиосте< ийлеечэкжмь примере мйлелнречынмм. Среин ннж — цреобрэк!- клнне Siraulinfc-MMemi LTI-ыижж Вксмспрнм мнпгхжинг>Р •тую СИГГСШО. ф>4 ««ТГПрпЯ ППКЭШВ Н1 рнг 111 14 3t»HFCtirxT- нив runK>cww>. пхтрси*л1 и Sirrrdint lefipgmrTT 1нимжмг. «гм> Q «G, «С, -rC ▼ f ути wHNi— интжгргттм). nowrww на 1Ф.15. Itou и тки системы огршлены при помоии |вро<т и пнрол Пн*пг |мх можно Hjkrw а СыПлмотеае ComecttonO Эго Ьк 10 14. Грьж> ын9«шоомпгтмла сигтснм
Рис. 10.15. Simulink-модель многоконтурной системы показывает, какие сигналы Simulink-модели необходимо брать за вход и выход ss-модели. Чтобы найти передаточную функцию сначала получим модель в пространстве состояний. Для этого сохраним модель в файле MyModel.mdl, а затем используем следующие команды: » [a,b,c,d] = linmod(’MyModel'); » ss_sys = ss(a,b,c,d); Используем команду minreal, чтобы найти минимальную реа- лизацию. Этот шаг обычно пропускают, но иногда MATLAB гене- рирует систему, передаточная функция которой имеет полюса и нули, которые могут уничтожить друг друга. В этом случае опре- деление минимальной реализации необходимо >> ss_sys = minreal(ss_sys); Теперь конвертируем ss-модель в tf-форму >> tf sys = tf(ss_sys) Transfer function: -sA4- 1.544e—016 sA3 4- sA2- 2.468e-016 s + 1 sA4 + 2 sA3 + sA2 - 1.554e—015 s + 1 Заметим, что 1-й и 3-й коэффициенты в числителе и 1-й ко- эффициент в знаменателе практически равны нулю. Если мы рас- печатаем числитель и знаменатель, эти параметры будут равны нулю (с точностью до 5-го знака). » [n,d] = tfdata(tf_sys,V) n = -1.0000 -0.0000 1.0000 -0.0000 1.0000 d = 1.0000 2.0000 1.0000 -0.0000 1.0000. Сравним теперь с результатом, полученным с помощью фор- мулы Мейсона. Система имеет 5 контуров:
Ц = 6j626364, Д1 = U ^2 = 6j, Lq = 6364, Д3 = 1 +(?ь Л4 = -1, Д4 = 1 + G| ; £5 = -6|6364, Д5 = 1; Д = 1 - (-(7|626564 -* 6] - 62) + 6)62 = 1 + 6| + 62 + 6j62 + 6)626564. Отсюда передаточная функция ц/ = -1 + 6564 + <?1626364 1 + 6| + 62 + G\Gi + 6)626564 ’ что при _ (;2 _ (у3 _ (;4 _ 5-i дает тот же результат, что и Simulink. 10.5.4. Линеаризация Еще одна дополнительная возможность Simulink — линеариза- ция моделей. Simulink располагает функциями linmod и diinmod для извлечения линейных моделей в форме матриц пространства состояний Д Д Си D. Матрицы пространства состояний описыва- ют линейные отношения входа — выхода как систему: dx — = Ах + Ви\ dr у - Сх 4- Du, где х, и, и у векторы состояний, входной и выходной соответ- ственно. Создадим, например, следующую модель системы ста- билизации (рис. 10.16) и назовем ее Imod. Входы и выходы опре- делим, используя Inport и Outport блоки библиотеки Signals & Feedback Рис. 10.16. Модель Imod
Systems. Блоки библиотеки Sources (источники сигналов) и блоки библиотеки Sinks (приемники сигналов) не действуют как входы и выходы. Inport блоки могут использоваться вместе с блоками — источниками, в этом случае необходимо дополнительно исполь- зовать блок Sum. Чтобы извлечь линейную модель этой Simulink системы, введем команду >> [ А, В, С, D] = linmod ('Imod') А = -2 -1 -1 I О О О 1 -1 в = 1 о о с = О 1 о 0 0-1 D = о 1. Система имеет один вход и два выхода (сигнал ошибки и вы- ходной сигнал системы стабилизации). Чтобы перейти от систе- мы, в прямой и обратной цепях которой присутствуют tf-формы представления LTI-систем к ss-форме замкнутой системы, ис- пользуя команды CST, потребовалось бы несколько большее вре- мя и терпение. Как только система преобразуется в форму про- странства состояний, т.е. конвертируется в LTI-объект, можно применять функции из Control System Toolbox для дальнейшего анализа. Когда модель нелинейна, может быть задана рабочая точка, в которой будет извлекаться линеаризованная модель. От положе- ния рабочей точки существенно зависит то, какая линеаризован- ная модель будет получена. Нелинейные модели также чувстви- тельны к размерам возмущений, при которых модель извлечена. Возмущения должны быть выбраны так, чтобы обеспечить ба- ланс между ошибкой округления и ошибкой усечения. Дополни- тельные параметры команды linmod определяют рабочую точку и возмущения [A,B,C,D] = linmodfsys', х, u, pert, Xpert, upert). В случае дискретных систем или смешанных непрерывных и дискретных систем для линеаризации используют функцию dlinmod. Она имеет тот же самый синтаксис обращения, что и linmod, за
Рис. 10.17. Эквивалентные системы единственным исключением. Второй аргумент в правой части дол- жен содержать шаг дискретизации. Применение linmod к модели, которая содержит блоки Derivative (производная) или Transport Delay (транспортное запаздывание), может быть некорректно. До линеаризации необходимо заменить эти блоки специально разра- ботанными блоками, которые предотвращают появление проблем. Эти блоки находятся в Simulink библиотеке Extras (дополнения) в подбиблиотеке Linearization (линеаризация). • Вместо блока Derivative при линеаризации используют блок Switched derivative. • Вместо блока Transport Delay при линеаризации используют блок Switched transport delay. При использовании блока Derivative можно также включить (т.е. «спрятать») производную в другие блоки. Например, если блок Derivative включен последовательно с блоком Transfer Fen, лучше объединить (хотя это не всегда возможно) производную с блоком Transfer Fen. В примере (рис. 10.17) блоки на рисунке слева могут быть заменены одним блоком. Точка равновесия может не назначаться принудительно, а быть определена по некоторым косвенным признакам. Функция trim Simulink определяет установившиеся точки равновесия. Вновь рас- смотрим модель Imod. Возможно использовать функцию trim, чтобы найти, например, значения входа и состояния, которые устанав- ливают оба выхода. Сначала задают начальные приближения для переменных со- стояния х и входа и, а затем устанавливают требуемое значение для выхода у » х = [0; 0; 0]; » и = 0; » у = [1; И; Используют индексные переменные, чтобы указать, какие пе- ременные фиксированы и какие могут изменяться » 1х = []; % Не фиксируем состояния » lu = []; % Не фиксируем вход » 1у = [ ; 2]; % Фиксируем выход 1 и выход 2. Вызов функции trim возвращает решение (результаты могут незначительно отличиться из-за ошибки округления). [x,u,y,dx] = trim(’lmod’,x,u,y,ix,iu,iy)
Рис. 10.18. Simulink-модель нелинейной системы х= 0.0000 1.0000 1.0000 U = 2 У = 1.0000 1.0000 dx = 1.0е-015* -0.2220 -0.0227 0.3331. Обратите внимание, что иногда проблема определения точки равновесия может не иметь никакого решения. Тогда trim возвра- щает решение, которое минимизирует максимальное отклонение от желательного результата после первой же попытки обнулить отклонение. Рассмотрим в качестве примера модель нелинейной системы «(/)) = аг з Создадим модель этой системы в Simulink (рис. 10.18) и сохра- ним ее с именем Imodl. Найдем линеаризованную модель в окре- стностях точки u(t) = 2. »[А, В, С, D] = linmodf Imodl', 16/9, 2) А = -0.3750 В = 1.3333 С = 0.3750 D = 0 Рис. 10.19. Результат процедуры линеаризации нелинейной системы
Для линеаризации моделей используется команда lin- mod(’sys’,x,y), где sys — имя модели, х и у — соответственно век- тор состояния и входной вектор. Фрагмент командного окна пос- ле использования этой команды выглядит как на рис. 10.19. Это означает, что результатом явилась линеаризованная модель Нетрудно заметить, что аналитическая процедура линеариза- ции дает тот же самый результат. 10.5.5. Расчет и моделирование в MATLAB-Simulink-Power System Blockset электрической цепи постоянного тока Дана электрическая цепь постоянного тока (рис. 10.20). На этой схеме 7?! = 260 Ом, R2 = 80 Ом, R3 = 120 Ом, R\ = 200 Ом, R^ = = 800 Ом, R5 = 220 Ом, R^ = 70 Ом, R£ = 20 Ом, Е\ = 24 В, Е2 = = 34 В, /2 = 0,2 А, /, = 0 А. Требуется. 1. Упростить схему, заменив последовательно и параллельно соединенные резисторы эквивалентными. 2. Определить токи в ветвях по законам Кирхгофа. 3. Определить токи в ветвях методом контурных токов. 4. Определить токи в ветвях методом узловых потенциалов. 5. Составить баланс мощностей в исходной схеме с источни- ком тока. 6. Определить ток /ь используя метод эквивалентного генера- тора. 7. Начертить потенциальную диаграмму для любого контура, включающего обе ЭДС. Рис. 10.20. Схема электрической цепи постоянного тока
8. Построить модель электрической цепи в пакете Simulink. Упростим схему, заменив последовательно и параллельно со- единенные резисторы эквивалентными. Резисторы Ад' и Ад' соединены параллельно, заменим их на эквивалентный Ад'АГ 200-800 AJ + Ад" 200 + 800 160 Ом. Резисторы Ае и А'6'соединены последовательно, заменим их на эквивалентный 70 + 20 = 90 Ом. Далее будем работать с упрощенной схемой рис. 10.21. Рассчитаем токи в ветвях по законам Кирхгофа. Выберем ус- ловно положительные направления токов в ветвях и обозначим их (см. рис. 10.21). Ток в контуре с источником тока /2" = /2 =0,2 А. Первые четыре уравнения составим по первому закону для узлов a, b, du т. Остальные три уравнения составим по второму закону для контуров I, II и III (направления обхода указаны на схеме (см. рис. 10.21). В результате получим систему уравнений: /3-/5-/б=0; /5-/2 + Л =0; “Л + 4 - Л =0; /2' + /2"- /2 = 0; /|А] - /5А5 + /6Аб = Е\\ /2А2 + /3А3 + /5А5 = Е2; -/3А3 - /4Ад - /$Аб = 0; Л-Л-/б=0; + =0; -/^/6-/4=0; ц - Л = -/г; + = /2А2 + /3А3 + /5А5 = Е2; -/3А3 - ЛЛд - /6Аб = 0. Решим эту систему линейных алгебраических уравнений с по- мощью MATLAB. Введем матрицу из коэффициентов при неизве- стных токах (в седьмом столбце коэффициенты при /2): J2 Рис. 10.21. Схема расчета токов в ветвях по законам Кирхгофа
» A = |0 О 1 0 -1 -1 0; 1 -1 О О 1 0 0; -1 О О -1 О 1 0; О -1 О О О 0 1; 260 О О 0 -220 90 0; О 0 120 0 220 0 80; О 0 -120 -160 0 -90 0]; и матрицу из свободных членов: » В = [0; 0; 0; -0.2; 24; 34; 0|; Найдем токи: » 1 = inv(A)*B I = 0.1472 0.2275 0.1179 -0.1096 0.0803 0.0376 0.0275 (/, = 0,1472 А) (4 = 0,2275 А) (4 = 0,1179 А) (4 = -0,1096 А) (75 = 0,0803 А) (/6 = 0,0376 А) (4 = 0,0275 А). Определим токи в ветвях методом контурных токов. Преобразу- ем источник тока в источник ЭДС Е = 4 Л = 0,2 • 80 = 16 В. Далее будем работать с упрощенной схемой (рис. 10.22). Обозначим направления контурных токов /,,, /22, 4з для трех независимых контуров (см. рис. 10.22). Запишем систему уравнений в общем виде: + ^22^12 + Лз^З ~ /ц/?21 + ^22^22 + Лз^23 ~ Л 1^31 + /22^32 + Лз^зз = ^33- Найдем коэффициенты и свободные члены. Лц, /?22, Я33— собственные сопротивления контуров: 7?! । = /?| + R5 + /4 = 260 + 220 + 90 = 570 Ом; 7?22 = ^2 + /4 + ^5 = 80 4-120 4- 220 = 420 Ом Я33 = 74 + 74 + 74 = 120 4-160 4-90 = 370 Ом; Рис. 10.22. Схема электрической цепи постоянного тока (упрошенная)
Л|2, /?2i, Я13 У?},, R22, R22 — взаимные сопротивления между кон- турами: Я|2 = Я2| = -R5 = -220 Ом; Л.з = «з. = = _90 Ом; Л2з = Л32 = ~&з = “120 Ом; £ц, Е22, Езз~ контурные ЭДС: £н =£, =24 В; Е22 = Е2 + £ = 34 +16 = 50 В; £3з = 0 В. Решим эту систему линейных алгебраических уравнений с по- мощью MATLAB. Введем матрицу из коэффициентов при неизвестных и матри- цу из свободных членов: » А = [570 -220 -90; -220 420 -120; -90 -120 370]; » В = [24; 50; 0]; » I = inv(A)*B 1 = 0.1472 0.2275 0.1096. В данном случае решение системы уравнений определяет кон- турные токи: /п =0,1472 А, /22 = 0,2275 А, /33 = 0,1096 А. Зная контурные токи, найдем токи в ветвях: /, = /н =0,1472 А; /2 = 122 = 0,2275 А; /3 =/22 -/33 =0,1179 А; =-/„ = -0,1096 А; А = /22 - /и = 0,0803 А; /6 = /н -/33 =0,0376 А. Рис. 10.23. Схема определения токов в ветвях методом узловых потенци- алов
Ток 12 в исходной схеме (см. рис. 10.21) найдем с помощью I закона Кирхгофа для узла т: /2Ч/2*-/2=0А; Ц = /2 - /" = о, 2275 - 0,2 = 0,0275 А. Определим токи в ветвях методом узловых потенциалов (рис. 10.23). Примем потенциал точки 4р4 = 0. Составим систему уравнений в общем виде: £||Ф1 + &12Ф2 + &13Фз = Ab &2|ф| + &22Ф2 + &23ФЗ = ^22> #31Ф| +&32Ф2 +&ЗЗФЗ = Лз- Найдем коэффициенты и свободные члены: «..=т+4-4=°>02089 См; *4 л2 Л5 ^=4-+4-+4-=0’027083См’ к2 л3 Лд «зз = т + Ъ- + 4- = °’021207 См; Kj Лд /<6 «12 =«2i =-4-= -0,0125 См; «13 = «31 = —L = -0,003846 См; «23 = «32 = = -0,00625 См; Ai = Е\&\ -g2<E2 + E) = -0,5327 А; /22 = g2(£2 + £) = 0,625 А; Лз = -Elgl = -0,0923 А. Решим эту систему линейных алгебраических уравнений с по- мощью MATLAB. Зададим матрицу из коэффициентов при неизвестных и мат- рицу из свободных членов: » А = [0.02089 -0.0125 -0.0038846; -0.0125 0.027083 -0.00625; -0.003846 -0.00625 0.021207]; » В = [-0.5327; 0.625; -0.0923]; » U = inv(A)*B
и = -17.6699 14.1395 -3.3897. Решение системы уравнений определяет потенциалы точек 1, 2, 3: Ф, = -17,6699 В; Ф2 =-14,1395 В; Ф, = -3,3897 В. Токи в ветвях найдем по закону Ома: /|.&SilA.0,|472A; К\ л = Ф,-Ф2 + £2 + Е=0)2275 а. Л2 /з = Ф2^Ф4=0>Н79 а. /4 = фз~ф? = _0,1096 А; /5 = = 0,0803 А; Ц = - = 0,0376 А. Аб Ток /2 в исходной схеме найдем с помощью I закона Кирхгофа для узла т: Ц + /2"- /2 = 0; Ц = /2 - I" = 0,2275 - 0,2 = 0,0275 А. Проверим правильность наших расчетов. Для этого составим баланс мощностей для исходной схемы: /) + £2/2 +Umbll - 2^2 + Л2^3 + + Ц^б + Д2Я|'> Umb = -Л2Л'; £,/, + Е2/2 - Я2/2'/2 = /2'2Л2 + /32Л3 + /2Л, + /52Л5 + /6Х + /,2Я,. Подставим числовые значения: 0,1472 24 + 34 0,2275 - 80 0,0275 0,2 = = 0,02752 • 80 + 0,11792 120 + (-0,1096)2 160 + + 0,08032 220 + 0,03762 90 + 0,14722 • 260.
Рис. 10.24. Схема использования метода эквивалентного генератора тока Получили верное равенство: 10,828 = 10,828. Это подтверждает правильность наших рассчетов. Найдем ток /ь используя метод эквивалентного генератора тока (рис. 10.24). Закоротим ветвь nb и найдем ток короткого замыка- ния /кз методом контурных токов. Обозначим направления кон- турных токов /1Н /22> ЛзДЛЯ трех независимых контуров. Запишем систему уравнений в общем виде: А 1^11 + ^22^12 + Лз*13 = ^11» Л 1^21 + Лг^22 + Лз-^23 = ^225 Л i^3i + Лг^зг + Лз^зз = ^зз- Найдем коэффициенты и свободные члены. £м, 7?22, ^зз“ собственные сопротивления контуров: = /?5 + /^ = 220+ 90 = 310 Ом; /?22 = ^2 + /?з 4* £5 = 80 +120 + 220 = 420 Ом; /?зз = R3 + Й4 + = 120 + 160 + 90 = 370 Ом. /?12, Лгь Лзь £23, ^32“ взаимные сопротивления между контурами: £12 = £21 = ~ ”220 Ом; /?13 = 7?з| = — = —90 Ом; £23 = ^32 = ~£з = ”120 Ом. £м, Е2Ъ Е33- контурные ЭДС: £п =£, =24В; £22 = £2 + £ = 34 + 16 = 50 В; £33 = 0 В. Составим матрицу: » А = [310 -220 -90; -220 420 -120; -90 -120 370]; » В = [24; 50; 0];
» I = inv(A)*B I = 0.4530 0.4274 0.2488. Решение системы уравнений определяет контурные токи. Ин- тересующий нас контурный ток /м = 0,453 А. Ток короткого замыкания /^ = /н = 0,453 А. Определим входное сопротивление схемы R^ относительно nb: Заменим источники их внутренними сопротивлениями (рис. 10.25). Преобразуем треугольник в звезду (рис. 10.26, 10.27): *н = *2*5 Т?22 = *2 + *3 + *5 *3*2 = 41,9 Ом; R2 + Ry + Ry = 22,857 Ом; *33 “ Т?2 + A3 + = 62,857 Ом. Найдем входное сопротивление = Л|1 + + у = 4^152,8^182,857 = щ Ом R^ + Ryy + R22 + R4 335,714 Найдем ток 0,453 125’158 ’ 260 + 125,158 = 0,1472 А. Рис. 10.25. Схема за- мены источников их внутренними сопро- тивлениями Рис. 10.26. Соединение треугольник Рис. 10.27. Соедине- ние звезда
I*»c. IU11 Пспгвимдгдем гкаграыы! до кпктурв ЬтжсЪг Hi чертим пгттгн11маи*гую лмжграмьгу дп< шнтурн ЛпмчХлР (рж: III 11). Дли тип примем пптт-хгмж! TWI» Л ДОиым Н> ПО V КлМг* ГТПГСН11Н.1ТЫ rvn-bWl ТЖС Л «Л о. - «. • ЦЛ, - -А0275 80 - -2,2 В, - А ♦ Л*. - Я» ♦ (-АКЯ6» 1М-14.2Ы& .w>£, • 14,364 + 24-Ж2Ы & Фь««.~/|А а Ж2Ы + 0.МП №)>0R Рж. 1019 II кзмеггж рпигп<*м АМШ1НТ XfTWA R IC frVK1 ю ЬеЫнтха EJmeat* >м
а\ Рис. 10.30. Схема получившейся модели цепи
Построим модель электрической цепи в пакете Simulink. Для этого запустим Simulink Library Browser (кнопка на панели инст- рументов MATLAB). Создадим новую модель (File -> New -> Model). Для моделирования нашей схемы будем использовать Power System Blockset. В качестве резисторов будем использовать элемент Series RLC Branch (последовательно соединенные сопротивление, ин- дуктивность и емкость) из библиотеки Elements (рис. 10.29). Пос- ле перетаскивания иконки элемента в окно редактирования со- зданной модели изменим его параметры: Inductance L на 0 Capacitance С на Inf (бесконечность) Resistance R на требуемое нам сопротивление (в Омах). Обозначим созданные элементы RI, R2 и т.д. Далее создадим два источника ЭДС. Для этого используется элемент DC Voltage Source из библиотеки Electrical Sources. Изме- ним параметр Amplitude на требуемое значение ЭДС — 24 и 34 В. Обозначим созданные ЭДС Е1 и Е2. В Power System Blockset нет источника постоянного тока, поэтому будем использовать эле- мент AC Current Source (идеальный источник переменного тока), установив параметры: Peak amplitude — 0,2; Phase (фаза) — 90; Frequency (частота) — 0. Для узлов, в которые входят 2 тока, используется элемент Т connector из библиотеки Connectors. Для того, чтобы узнать токи в ветвях, нужно включить в эти ветви элементы Current Measu- rement из библиотеки Measurements. Этот элемент имеет один вход- ной зажим «+» и два выходных зажима «-» и «i». Зажимы «+» и «-» служат для включения элемента в цепь, а от зажима «1» идет сиг- нал со значением силы тока, который можно подать на дисплей (элемент Display, расположенный в библиотеке Simulink -» Sinks). Обозначим элементы Current Measurement il, i2, ... в соответ- ствии с измеряемыми токами, а элементы Display i 1, i 2, ... Соединив все созданные элементы в соответствии с нашей схе- мой, получим модель цепи (рис. 10.30). После запуска симуляции на дисплеях отобразятся значения токов в ветвях. Дисплей с именем \п индицирует ток 1л нашей цепи. 10.5.6. Расчет и моделирование в MATLAB-Simulink- SimMechanics Blockset механической системы SimMechanics представляет собой Blockset (набор блоков) к Simulink и предназначен для моделирования поступательного и вращательного движения физических тел. Набор появился в Mat- lab 6.5 (Release 13), в версии 7.0 (Release 14) изменения косну-
Рас И II Раоотвми» ос» пас* линь интерфейс*. Ом спи т*мЕнее SmtMedMaki нспатктует трсжмгрн>»о систему кетфпапеп Он* »»t»rn> бекяасП и нкмамет- СЯ WORLD Лупи* рмin«in l оси кя* при репсагев клмлгичеС- кш МОП по сингютти <р*с »< II | Ос* t напгмлгна к поп*»*» телю гкрле»лн»ут*рно экрану Л»ннми факт моннтетыт упрос- тит арежтааемие о погожем»*» обметете в (иргмтъмгы прпстрав»- сттее Sire Methanes. Нмтрсйкд Siaiutotkm Panrrcren jocttx»iho трест* Н>жно литеь учесть. л то * StmMevWikt релу.ть'аты го mikcom игеиегт от вы tkp* параметров Sdstr Орлоп*. тми» и* Туре и Sdw. Всяучае ,лнс«ре'н«1> системы мрвле *мм*с*1елыаи ikaKAim *. иыбедо пери пса цссрггиипм* Fi«e-<xp ил Рмтылтртмс fiincM Нг»1»еч'МмТпгг Епчпптс-1 и Gmund. В fc»t>- ке MKhree 1_лгнп»т<петг 1рж 1Ф.Й1 штаюхм ссмпцмыг парамет- ры ыосе.тм В Release 13 лаимого блока пгт. доступ к параметрам вымажем ь мемю Scmdanof/Methantal Lnvewimer* Ссыжа пп я*.веется автоматически посте лсАапинн« любого *омпп"емт.т »л библиотеки StreMecbuacs. Gfa»iry чгосс шает вектор смЛшю го вааемма a WORLD Ам1уы* mode: I Forawd dpxanac*. Bjummom режиме лыак.г>^ необасаммаае скш момэгты, асйствуаиамс на те.н> на* систему тес Усзхрених, ско- рме ЮЛ Блоки Еп ваопжпт » Cn*«nd
h< ЖЗЗ Бжж GoouM — йЛГЖГТ rwrrtl стары РПГТИ H nrprvnijonfw КЖ «twinOVN грсыгни ЙНЖЛЮТ! QOCUCHO irmpcwn юту Ныотона основному уравнению дммжи ршв TVMoro дамжсина. Таше месЛкиам? жил тишъмучо псоншю теп и при к плЧйлкчск та мыфс<та. если «и иемулежи. 1 кпепе фвалисж В данном режиме необацдимо мшть пары метры хмнлшыов tea* жта системы пл a i малый момент цкмсм* дти сюсгй неивмсиыой степени сжэМиш У отжлмтго тега ыо жгт выть. ыеста нгтатагеыыт степеней патГаши iDofaX три посту нательных и три арадое-льных Опивал а мскммт нт траппе и тэта- им Ск<ы и моменты. нвсОагммымг дти «иоанне жмкнегл ил» женив, вытиспакиги 3 Kinemrtkv То же. что и 1п*епе фтитжл. Ддемый режим вс пользуется для ымкнукВ системы тел (ckaed locp доем) < ТгМмп11< ПрмвииттааН режим Faiwd ЦумвМсе с аошаж йисемо /прмыемми ымглыо е пиыимыи cml налыааемой trim- ксшанам. Lena Gmvnd <рнс, стужтгт пжапй окпры.. т ♦, ттпкой пгнтгтглтнп итгорсЖ Птткт спреддоггъси лякжгммг ТУ Л1 НГИ О’ стены тал е WORLD Дта коррпгптЯ ребепы моотли в Release М нужно оОяэтамо один too« Machine Emvoeunert свамтас Сдо кем Gmnd (рнс 10.34). Ькж Воф |рж. 10.353 — осноаной Ожж SimMecfunki Бита описывает рьхтатаые (тиагиские теи. ксоорые роспак* жены в виртуымюы пространстве StaMeUunici. Веруппе Мам ртцрептеа уажииметсв ммо пли и моавемт инерими оамисителы- Нй системы шииридеит CG <сех1гт <>Г ртг<?). Hihaiii жптА сисп- мы их^смнмт наммито а центре масс те.и, а кд!г?*млгмые <хгЯ | tar г"~ле~Г Рис» 10 М Прмсмлмммм (ижгоблваа МмНге — Lmrroaracei к хюс |<«Н«мМ 1
IN«z H'.H tin» Ikd, - XHiitfii flwa ^nM<kh*in Fta.. It'.M Buuu ОпепМмв (►пгт пням aw. как • системе WORLD. юн ничего м менггь на гж/vuxe Огигпинти |рж 1Ф Ч| гтлппы Bndy coonMaie Таким cApaww нужно росоитатъ мемент Hiwpai» n.vi к начмь ном пхкжении отмссителыю «е* CG и жмкжтъ результаты на глйм1)Юаммоныь магрмиы момента ннерамм. Всшин с хмм *- прикк-ннс или CG н»лно б|ШЬ ммкныжини ила рми •«eta минемш мнершш Нш««м.кмие охМ .кж*.1ынсЫ ьмисмм ж<>- ор.|иш1 иирслинетса iijtcm i^uuxxvm <хгй WORLD на >t in, т»»- ииныг « Dnmtxrn «ТС1ОГ Нригимг еяюагтгн птпажтгихнм против стрела и,
8 i (ry f if К Bed) «дхййыИ иуж-мо ixvti гнио- лгниг йен 1|Ы ыжх тс ям ж WOftLD О’и/in pmilOB чтгьег tпа nirrr CGK Встргаш CSI. CS2 и ti (hi мпамг> лсОмггЫ ikuhki wti-ruKT rmmarwir irrfiwx тп*гж wm. < который влос.теаствм» мланп гтрнелглнннп ракмчньи Оаокм Slrr Mechano^ такие КАК ооеммпелк жтчик и V.JL Пмоашм тпа точек можно жымтъ системе мхдоюш WORLD иди CG. Ти*<м CSi wuQT mikuhim;» totytpn, »«4 пикрмкал* или юсг ie.u. » гнобим слуаме инн сскдннаюнл с иентрим масс гюсрсл- utacM hcmoccjmcHL >Ki<uiu4aiurOi3i и мерактагнаавинейев ctiiifH ffWxMirnwM qiHwrporwriMiH тела a WlMtl JJ<jwc 111)1) Pac- емптрны ||няамл|мн€скге ггло чмтхзА 0.1 er. Ф.1 w. ptfnnintnmx CVHHW кгецпч f. himiv ьпсфаммтт |0 • Of*31111. дАущш в ww ( i -i рх’^та ыошттв морими тем cwrtwy KoofUMwarr CO поверншпи на 225* аокр^т ос» Z*0110. Н no* cjvw момент инерции о'тноситслвмо оси Zfi раегчигы- мегса по формуле ила цмлинцм. ось вршшмм Kviupuio иошш> лае! с осмо ошиетрии <rJS'/2|. Минем! ннерцм слмооггсльно осей >*°. д5с рмисммымсил но формуж дам игсржнж, ось «Гн- UKHK4 airtVfWMOCMy t>€fro<AMC>TWpni И nprwjHTT «МрГ5 центр масг (aa/Vl 2, Дрмн> г-гтравм! Гкхипокгнне иачг»* мхрои in СО • WVMCLOMi оморомюто цилммр» «чмхглегтге прсстп Нс. Н15Т. Ираке? асмсаама тела в UXMLD
Рис. 10.38. Начальное положение заданного тела На рис. 10.38 показано начальное положение заданного тела. Варианты соединения тел между собой и с землей. Различные варианты соединения находятся в разделе Соединители (Joints) (рис. 10.39). Они определяют число степеней свободы присоеди- ненного к нему тела (точка F — follower) относительно базы (точ- ка В — base). К базе может быть присоединено другое тело или земля. Пример 10.1. Физический маятник (рис. 10.40). Режим Forward dynamics. В модели использовано тело, показанное на рис. 10.38. Тело имеет одну степень свободы, а именно возможность враще- Bearing Bushing Custom Joint Cylindrical Gimbal Six-DoF Spherical Telescoping Universal Weld Рис. 10.39. Раздел Соединители (Joints)
ИМЯ ММфЬТ СЛШОЯ «• I*1" Г »ИЛС' П1(Ч’ X< И I 1ерп:аы ко леГйний Tttpe’wtet»мм и t> моим с<ог*иают и равны пример»*? 2 L На рис 10.41 аоккым скрннши с аяымаиноааюго окт, коео рак иоттете» аактагтскжм при млдос мидели, еслм уч-тмысе *ены мх омички и МмЪггк ЕлмкштеМ,' V шхаксМнк. и Sirr-ubajin, СлпЕ*1ГЖах1 Parameter» ../ ЧтМесГатсд/ VwAnilxiri gum МАТ- I АВ ТО) ПрНин«гт* пгрмм ыхтебкнка ***т»ми в реикнсш* ыож- мр. ivrxniM луысгр Fnnl Mrp <l« |»гм vtMMK u« гсм так- ие процесс моилнрпмним) Дм шбеамямя в Miiue.iL сиг и шсмеитса. няш1Ы»и« кслоеив. р*11нчны« датчике* предназначены блоки валики Semoc А Acmaion. Рассмотрим есмоамые блоки |р«к. 10.42). Блоки ВоОу AcUuitu и Виф Scraaw rm*LiKJN>iMO(va MenocpeiviaeHiKi к аеау. Блсжпы Body Actuator ысхжип олмоватьсм только в режиме Гис In 41 ('(рымптт с 1иьмаивг«о«т сима
Bocty Sensor Joint Sensor Рис. 10.42. Блоки Body Actuator и Body Sensor Forward dynamics. На его вход подается Simulink-сигнал в виде трех- или шести компонентного вектора, несущего информацию о мо- менте и силе, приложенных относительно выбранной системы ко- ординат, по умолчанию WORLD. Система координат Local (Body CS) — локальная система координат той точки тела, к которой присоединен блок. Выбор данной системы координат нужно про- изводить внимательно. Система координат CG не будет выступать в роли Local (Body CS) для точки центра масс, поэтому присоеди- нять к данной точке блок Body Actuator, так же как и блок Body Sensor, желательно с использованием системы координат WORLD. Блок Body Sensor производит выбранные галочками измере- ния в присоединенной точке тела в системе координат WORLD или CS. Результаты доступны для обработки в Simulink. Position — положение, Velocity — скорость, Acceleration — уско- рение, Angular velocity — угловая скорость, Angular acceleration — угловое ускорение, [3x3] Rotation matrix — особый формат дан- ных о положении тела, предназначенный, например, для обра- ботки в Virtual Reality Toolbox. Блоки Joint Sensor, Joint Actuator, Joint Initial Condition при- соединяются к любому Joint (Соединителю). Для этого в послед- нем есть параметр number of sensor / actuator ports. В зависимости от присоединенного примитива и режима мо- делирования блок Joint Sensor будет производить разные измере- ния. В любом режиме можно измерить угол, позицию, кватернион и/или их производные в зависимости от присоединенного при- митива. В режиме Inverse dynamics и Kinematics можно измерить мо- мент (computed torque) и силу (computed force). В зависимости от использующегося режима и присоединенно- го примитива блок Joint Actuator позволяет задать силу, момент или движение. В режимах Inverse dynamics и Kinematics использование данно- го блока будет обязательным, так как он будет задавать парамет-
ры движения тела или системы тел. Количество данных блоков будет равно числу независимых степеней свободы тела или систе- мы тел. Блок Joint Initial Condition задает начальные условия в соеди- нителе (по умолчанию они нулевые). Например, это может быть линейное расстояние между точками В и F соединителя (Position для Pi примитива). Контрольные вопросы 1. Как осуществляется аналитическое решение дифференциальных уравнений динамических систем в пакете MATLAB? 2. Как осуществляется численное решение дифференциальных урав- нений динамических систем в пакете MATLAB? 3. Расскажите о возможностях пакета Control System Toolbox. 4. Как решаются задачи по моделированию систем в пакете Control System Toolbox? 5. Сравните подходы к моделированию систем с использованием па- кета Control System Toolbox и с использованием Simulink. 6. Как осуществить преобразование Simulink-модели в LTI-модель? 7. Как осуществить линеаризацию Simulink-модели? 8. Как строится модель электрической цепи в Power System Blockset? 9. Расскажите об основных этапах моделирования механических сис- тем в SimMechanics Blokset.
ГЛАВА 11 МОДЕЛИРОВАНИЕ ГИБРИДНЫХ СИСТЕМ 11.1. Гибридные системы как особый класс систем В настоящее время повсеместно распространяются гибридные системы. Они возникают, например, когда компьютерные управ- ляющие системы взаимодействуют с физическим миром в реаль- ном масштабе времени. Гибридные системы характеризуются как постоянным непрерывным изменением состояния системы, так и внезапными, в соответствии с логикой работы системы, изме- нениями в некоторые моменты времени. Как правило, они гете- рогенны и состоят из цифровых и аналоговых компонентов, а также из компонентов, которые не могут быть отнесены однозначно ни к одному из этих двух типов. Для описания таких систем недоста- точно одного языка (языка дифференциальных уравнений, как для непрерывных систем или языка конечных автоматов, как для дискретных). Их смешанная цифро-аналоговая природа делает гиб- ридные системы междисциплинарными, лежащими на стыке те- ории управления и информатики. Гибридные системы часто описываются в литературе как си- стемы со сложным взаимодействием дискретной и непрерывной динамики. Поскольку понятия «дискретный» и «непрерывный» неоднозначны, разъясним их. Необходимо провести грань разли- чия между непрерывными по времени системами, дискретными по времени системами и системами с дискретными событиями. При использовании оси вещественных чисел для отображения времени считается, что непрерывные системы активно обрабаты- вают входные сигналы и создают выходные на всей оси времени. Дискретные системы могут реагировать на входные сигналы и продуцировать выходы в дискретные, наперед заданные моменты времени. Системы с дискретными событиями производят выход- ные события всякий раз, когда происходят входные события или наступают ожидаемые моменты времени. События могут расце- ниваться как единичные мгновенные сигналы. Реакции системы различны и сами зависят как от воздействий, так и от состояния,
в котором система находится. Так, видеомагнитофон реагирует на команды пользователя, управляющего им посредством пульта дистанционного управления. Причем эти реакции различны и за- висят от того, находится видеомагнитофон в состоянии записи, воспроизведения или ожидания. Примеры гибридных систем: си- стема массового обслуживания, выполняющий программу ком- пьютер, конечный автомат с памятью. Значительная доля гибрид- ных систем — технологические процессы, управляемые контрол- лерами, в том числе и программируемыми. В отличие от дискрет- ных по времени систем системы с дискретными событиями не привязаны к равномерной временнбй сетке. 11.2. Моделирование систем с дискретными событиями 11.2.1. Общие сведения В соответствии с изменением окружающего нас мира меняют- ся и подходы к его анализу. Моделирование физики технологи- ческих процессов дополняется моделированием логики работы управляющих ими устройств. Математический аппарат описания в данном случае это система уравнений, но не дифференциаль- ных, а дифференциально-алгебраическо-логических, для кото- рых отсутствует стройная теория и единый подход. Так же обстоит дело и с наглядностью. Визуализация протекания физических про- цессов обеспечивалась графиками изменения во времени тех или иных величин. Попытка такого графического представления про- цессов в реактивных системах может закончиться неудачно. Ос- новными причинами этого являются многократное возрастание количества отображаемых величин и отсутствие на графиках ин- формации о причинно-следственных связях между изменяющи- мися переменными состояния. В настоящее время для моделирования той части гибридных систем, которая функционирует в соответствии с дискретными событиями, также используются диаграммы состояний и перехо- дов (см. подразд. 6.3). 11.2.2. Модели гибридных систем Для описания всей гибридной системы принято использовать язык гибридных автоматов. Гибридный автомат (рис. I l.l) — ко- нечный автомат, дополненный набором вещественных перемен- ных. Состояние автомата изменяется или мгновенно (дискретный переход) или непрерывно. Приведем формальное определение.
<?l=(91, 41) х'еЛ(в|, х)<-хб6(в2) Рис. 11.1. Обобщенная модель гибридной системы Off х = -х х>68 х<70->х: =х Г On ' х = -х +100 х:=х<-80<х х<82 Рис. 11.2. Модель термостата Гибридной системой называется кортеж Н = (C,A,lnit,f,lnv, E,G,R), где Q = {#,, tf/v) — множество дискретных состоя- ний; Х= Rn— множество непрерывных состояний; Init с QxRn~ совмещенный вектор начальных условий для дискретного и не- прерывного состояний;/ QxX-> X— векторное поле (непрерыв- ная динамика); Inv: Q Р(Х) — инварианты (неизменности); Eq QxQ — матрица переходов из одного состояния в другое (мно- жество ориентированных дуг); G: Е Р(Х) — условия перехода; R: Е -> Р(ХхХ) — отношение сброса. 11.2.3. Термостат как гибридная система В этой системе имеет место дискретное управление со сторо- ны ПЛ К непрерывным процессом. Цель состоит в том, чтобы поддерживать температуру х воды в баке около 75 °C, включая и отключая нагреватель. Когда нагреватель включен, процесс на- грева описывается уравнением х = -х + 100. Когда нагреватель выключен, процесс охлаждения описывается уравнением х = -х. Нагреватель включается при температуре от 68 до 70 °C. Нагрева- Рис. 11.3. Траектория термостата
I IH H ( НИ! li aiyeo ен ивзояиидДио и Мп ол»>«гнк)<4 1П dU«»Xl MhU'iI •$ 11 мЯимпМ илнЛК! immljoca у || э*у 1 ММЯЙШ ИЛ Z' 49MVU | H4M1MJ «ИГ |Х dM^Bl *j odoioavd воияхинм «мнммхе жит)«аи| ( iMipnvp nU -!wd <Е««*Ж«Х» '(fputy) bj*jU-iixmi -За '(ipufli чнгжхЪхэ u-| кз1Жг'им1ЭН im ияаи ин кэи41^км1эн ли 'ШМИШЭДЭ лямиМхла^ iHHmium лмнвм<1эЛ|3** Mil н nwm лихи xmaxinin чкгзгт iwrwna rtj\ 1СТОИГЧВН -•iw dontod ojmt •|»<1€1>>т iptcadMj СИ нм го «gwroa A(K$ ип] <»ллюм? MtiiMopdii илпнфмшиэ ним of a—»»ii «mumocwchcm шхж jm ho 'wnei Mtadio жг>з омналлНоижо мдмосчк'оиэн хЛлж jm { и | мнжЛах.) 01 I - M3<«d)iJ 1 "•W W'l • J. । э {& -ly • 4 и»нн»1Мй1\ взимая змии мкиявм! и г*&и«1винм jhmjhbmm цлокЬп ug | у 11 лж!) iMKiiiiu ir«»juMt>*iL khimki wtitu at 3, Ф55 —Q|i BMX«ua« KkxMtai .414 iMt»m vmM«dbr«m м^снь мм и квилйэ wi| 1 f || энЛвн hjbmIi/mи ннвпгэЛ сЬвw?d •маюмэ емпа^ри яса йоияеав рмиАвкТц fg ц £ II 3Md (Ы <И»кЧ1иГй1и RMUJHJ MMiOLUMdl Z'l I 3«*d »М MJUrtlUJOBAl ЧГМШИ MBHOilijHJ вам ULLXHwl»£ ЭиСВ °® Л W АМивЬиММ Hdll ЖИЛ«<иМ1ХГМ ии
кинтриглгр iiHiifufWB К4 рис. 11 .€. Перм» •спяль но поем микдося rw дойнеЯ мерс а 2 ОСЮ м и« шлм€*гу~ мв Попа лмгжстги оо схпроггыо О — ЯО м/с Шгыпмуы пенное- тъю осангг Koras noria hiwcuktc* 0 IUQO м« итня госыдот сигнал яонгроалеру После жэермки максимум d ceayu юн fpauep оосммет uou iu опь<кл>ме шлагёауъа* Шлагбаум опус ааепя co саоростмо 9 rpu/c- Поем миехист млате посте г^шаалемаы лагмми mi CMopc^ra не немее ЗЮ м/с< Кош поеж скиьшгпм it ИЮ м лл шлм^агуыим mi mi enact с|ибв1ымвмае Д|ЛГПМ^ tSTMfM* W tUHH«3A.t€p попиимагт ы<кт сп сксрсжтъш 9 ФадЛр ( лгияфоаин* ♦ мпагПвчм Doasrw Cam. п-утин. югл> ncria наадхмтги в пре* Лели 10 м от него; • меобоиодммо аермигь шигёсум в наснятом состоянии настыв ш лаио, меашмо /то есомоана (Л&Мф 1ЖТСЫЫ. ♦ система сопсржмт tjm ггаажжлемм Inncu. uxiw6s>u, *ин- rpacwpi; FMu 114. Шм^гоисг
Рис. 11.8. Шлагбаум как гибридная система у: = 0 approach Рис. 11.9. Контроллер как гибридная система • между ними имеется связь (синхронизация работы); • подсистемы должны выполняться параллельно (иметь парал- лельную декомпозицию). Поведение контроллера железнодорожного шлагбаума как слож- ной гибридной системы иллюстрируется рис. 11.7 — 11.9. Детальные испытания имитационных моделей гибридных сис- тем возможны средствами MATLAB —Simulink —Stateflow.
11.2.6. Моделирование в Stateflow гибридных систем Комбинация MATLAB-Simulink-Stateflow является мощным универсальным инструментом моделирования реактивных систем. Дополнительная возможность следить в режиме реального време- ни за процессом выполнения диаграммы путем включения режи- ма анимации делает процесс моделирования реактивных систем по-настоящему наглядным. Тезис об универсальности данного подхода можно проиллюс- трировать несколькими примерами. 11.2.7. Моделирование работы релейной системы стабилизации температуры на базе программируемого логического контроллера Premium Система включает нагреватель при снижении температуры ниже xmin и выключает при повышении выше хтах. Диаграмма состо- яний и переходов такой системы показана на рис. 11.Ю. В общих чертах она соответствует GRAFCET-программе реальной систе- мы. На рис. I l.l I представлена Simulink-модель системы стабили- зации, а на рис. 11.I2 — результат работы модели. Данный подход позволяет разработчику реальных систем производить их модель- ные испытания, не меняя принципов работы программной части управляющих устройств. 11.2.8. Модель цифровой системы управления Рассмотрим пример моделирования цифровой системы управ- ления. Цифровые системы, осуществляющие управление в реаль- ном масштабе времени и использующие ЭВМ для формирования закона управления, являются весьма сложными для анализа гиб- ридными объектами. Такие системы, как правило, выполняются Рис. 11.10. STATEFLOW-диаграмма релейной системы стабилизации тем- пературы
Рис. 11.11. SI MU LIN К-модель релейной системы стабилизации температуры Рис. 11.12. Изменение температуры на выходе релейной системы стаби- лизации на базе многозадачных управляющих контроллеров и имеют сете- вую организацию. Различные части системы имеют разную приро- ду (непрерывный объект и дискретная управляющая часть), а сис- тема в целом описывается сложной комбинацией дифференциаль- ных уравнений, алгебраических уравнений и неравенств и логичес- ких условий. Поскольку для преобразований аналог-код и код-ана- лог и других вычислений, а также для передачи информации по сети требуется определенное время, при реализации цифрового управления возникает временная задержка. Это приводит к сниже- нию качества управления, иногда до недопустимо низкого уровня. Чтобы избежать негативного влияния такого запаздывания и опти- мально использовать доступные системе управления вычислитель- ные ресурсы, проектирование алгоритмов управления и программ- ного обеспечения должно вестись с учетом данного фактора. 12 Морозов
В теории цифрового управления интервалы осуществления вы- борки обычно принимаются одинаковыми, а задержка управле- ния считается несущественной или постоянной. Однако на прак- тике это имеет место лишь в редких случаях. В контроллере задачи накладываются друг на друга и блокируются в ожидании общих ресурсов. Время выполнения самих задач может изменяться. Пере- дача данных по сети происходит с задержками, величина и ста- бильность которых зависит как от протокола связи, так и от заг- руженности каналов. В этих условиях аналитический анализ по- ведения цифровых систем управления затруднен, наиболее есте- ственным представляется путь имитационного моделирования. Разработка имитационной модели гибридной системы, харак- теризующейся переменным значением шага квантования, может вестись различными способами. Среди готовых инструментов мо- делирования можно выделить построенный на базе пакета MATLAB симулятор TrueTime. Желающие оставаться в рамках стандартного набора MATLAB могут построить Simulink-модель, используя в качестве примера модель дискретной системы с переменным так- том квантования [48]. Еще один вариант, представляющийся наиболее естественным, заключается в применении наряду с Simulink программы Stateflow. Специально разработанный для моделирования дискретных уп- равляющих устройств и систем, Stateflow дополняет и расширяет возможности Simulink. В Simulink достаточно просто моделируют- ся непрерывные объекты. Используя язык диаграмм состояний и переходов, можно получить в Stateflow описание управляющей части моделируемой системы. При этом алгоритм управления мо- жет иметь сколь угодно высокую сложность, временные задержки могут быть как детерминированными, так и носить случайный характер. Дополнительная возможность следить в режиме реаль- ного времени за процессом выполнения Stateflow-диаграммы пу- тем включения режима анимации делает процесс моделирования по-настоящему наглядным. Рис. 11.13. Модель непрерывной системы стабилизации маятника
Рис. 11.14. Переходный процесс в непрерывной системе стабилизации маятника Рассмотрим в качестве примера модель цифровой системы уп- равления объектом «перевернутый маятник». Передаточная функ- ция объекта имеет вид ^(5) = -^-. 52 -4 В качестве регулятора выберем звено с передаточной функци- ей = 5+5. Модель непрерывной системы приведена на рис. 11.13, а пере- ходный процесс в системе стабилизации маятника в вертикаль- ном положении — на рис. 11.14. Рассмотрим теперь цифровую систему управления, реализуя регулятор средствами Stateflow. Модель системы управления при- мет следующий вид (рис. 11.15). Цифровой вариант регулятора будет иметь передаточную функцию И'(г) = 5 + (1 - z-1) / А, где h — шаг квантования. Stateflow-модель цифрового регулятора представле- на на рис. 11.16. Рис. 11.15. Модель цифровой системы стабилизации маятника
din! =din; Рис. 11.16. State flow-модель цифрового регулятора Рис. 11.17. Переходный процесс в дискретной системе с переменной вре- меннбй задержкой Эта модель реализует переменную временную задержку в ка- нале управления, изменяющуюся случайным образом в соответ- ствии с нормальным законом с параметрами 0,2 и 0,08 с. Переход из одного состояния в другое сопровождается вычислением ново- го значения сигнала управления, который действует на объект в течение следующего такта. Переходные процессы в системе пред- ставлены на рис. 11.17. Для сравнения на рис. 11.18 представлены переходные процессы в системе с постоянным шагом квантова- ния 0,2 с. Результат работы системы может оцениваться по интегрально- му среднеквадратичному критерию качества т I = J e2dz, о
0,2 Рис. 11.18. Переходный процесс в дискретной системе с постоянной вре- меннбй задержкой где Т— время окончания процесса регулирования; е — ошибка системы. Исследование рассмотренных выше моделей показало, что наилучшим качеством обладает непрерывная система, для которой / = 0,009985. У цифровой системы с постоянным шагом квантования 0,2 с /=0,01032. В случае цифровой системы с непо- стоянным шагом квантования среднее значение критерия равня- лось 0,01061, хотя в некоторых редких случаях оно было меньше, чем у непрерывной системы. 11.2.9. Описание демонстрационного примера Stick-Slip Friction Demonstration Данный пример находится в разделе Stateflow-Demos-Examples. Модель описывает поведение бруска, скользящего под влиянием некоторой силы по твердой поверхности и сжимающего пружину. В отсутствии трения эта механическая система ведет себя подоб- но классической одномассовой системе, положение бруска в уста- новившемся состоянии при этом пропорционально прикладыва- емой силе. Когда трением пренебречь нельзя, модель становится значительно более сложной. Трение между бруском и поверхнос- тью препятствует движению; кроме того сила трения зависит от скорости и максимальна в стационарном режиме. В результате бру- сок приходит в движение, поочередно «покоясь» и «скользя», как того требует баланс сил. Это явление имеет место во многих меха- нических системах. В данной модели Stateflow используется, что- бы описать некоторые из физических состояний системы. Сила трения между двумя поверхностями пропорциональна их мгно-
I Рис. 11.19. Механическая система движения бруска венной относительной скорости. Скорость и положение подвер- жены изменениям в моменты, соответствующие переходам меж- ду дискретными состояниями «покой» и «скольжение». Simulink представляет инструмент для моделирования непрерывной дина- мики, a Stateflow — среда моделирования дискретных физических состояний. На рис. 11.19 показана эта механическая система. Уравнение движения бруска Mx = F' - F - F^ л 1П л spang л friction > (11.1) где М — масса бруска; х — ускорение; Fin — внешняя сила. Для линейной пружины (или в случае небольшой массы) бу- дет справедливо соотношение spnng (11.2) где К— коэффициент упругости пружины; х — удлинение пру- жины, равное перемещению бруска. Сила трения описывается более сложной зависимостью Ffriction sign(x)nF„, 1 stationary’ IFstationary | > при x = О, (И.З) где х — скорость; ц = р(х) — коэффициент трения; Fn — нормаль- ная или прижимающая сила; Fslalionary — мгновенная сила, для ко- торой х = 0. Во многих прикладных программах коэффициент трения опи- сан его статическим и кинетическим коэффициентами. Этот под- ход используется в существующей модели. Также считается, что нормальная сила постоянна Н static1 п 1 static > И kinetic ^п ~ ^sliding s х = 0; х * 0. (11.4) Следующая логика определяет Fsiationary. Когда скорость отлична от нуля, это сила, необходимая, чтобы мгновенно сделать ско- рость нулевой. Когда скорость уже равна нулю, Fstationary — сила, которая поддерживает это условие, обеспечивая нулевое ускоре- ние stationary spring 1 sum (11.5) Сила трения может теперь быть описана так
Рис. 11.20. Simulink-модель, которая демонстрирует силу трения (sf_stickslip.mdl) friction sign(x) Fslidlngy Fsum, x = 0, sign(/^z/n )/^вЛС, x — 0, x * 0; static > — ^stanc* (116) На рис. 11.20 показана Simulink-модель sf_stickslip.mdl. Надпись вверху. Внешняя сила входа линейно сжимает пружи- ну, но трение сопротивляется этому движению. Величина трения зависит от состояния движения. Совет от разработчиков. С параметрами по умолчанию собствен- ная частота намного выше, чем частота изменения внешней силы. Для сравнения измените параметры следующим образом: М - = 0,1 кг и Fsliding = 0,1 Н. Два главных компонента модели — блок mechanical motion (ме- ханическое движение) и блок state_logic (логика состояний). Пер- вый составлен из иерархических Simulink-подсистем, а второй реализован в Stateflow. Simulink идеален для решения обыкновен- ных дифференциальных уравнений и соответствующих вычисле- ний линейных и нелинейных сигналов. Stateflow способен распоз- навать в системе события, которые требуют изменений в режиме работы этой системы. Блок mechanical motion осуществляет моделирование движе- ния в соответствии с уравнением (11.2). Двойной щелчок на этом блоке показывает его основные подсистемы, изображенные на рис. 11.21. Сумма сил, разделенная на массу, определяет ускоре- ние бруска. Для того чтобы вычислить скорость и положение, ус- корение дважды интегрируется. Подсистема силы трения, показанная на рис. 11.22, выполня- ет ряд нелинейных операций над сигналами, моделируя уравне-
Рис. 11.21. Блок Mechanical Motion Рис. 11.22. Подсистема силы трения ние (11.6). Блок переключателя выбирает требуемое значение силы трения, управляясь сигналом «stuck». Сигнал «stuck» — выходной сигнал Stateflow-блока control logic. Обратите внимание, что этот же сигнал используется в блоке mechanical motion для сброса пер- stat e_of_mot ion [ fabs( Fsu m )> Fsta t i c ] [novelocity & (fabs(Fsum)<=Fstatic)J Рис. 11.23. Stateflow-диаграмма, опи- сывающая поведение системы
вого интегратора. Это гарантирует нулевое значение скорости для состояния stuck (покой). Stateflow-диаграмма на рис. 11.23 описывает поведение систе- мы. Входные сигналы — Fsum и novelocity. Fsum — суммарная сила, действующая на брусок (см. рис. 11.20, 11.21), a novelocity — дво- ичный сигнал, который принимает значение «1» в момент пере- хода скоростью через нуль. Выход Stateflow-диаграммы — сигнал управления stuck. Параметр Fstatic поступает из рабочего простран- ства MATLAB. Два взаимно исключающих ИЛИ-подсостояния использу- ются, чтобы представить состояния stuck (покой) и sliding (скольжение). Предполагается что система первоначально пре- бывает в покое. Поэтому вначале активизируется состояние stuck через заданный по умолчанию переход. Переход из состо- яния stuck в состояние sliding (верхняя дуга слева направо) происходит, когда внешние силы превышают статическое тре- ние (условие [fabs(Fsum) > Fstatic]). Состояние sliding остается ак- тивным, пока блок перемещается, т.е. его скорость отлична от нуля. Когда скорость достигает нуля, направление перемещения изменяется на противоположное, если внешняя сила по абсо- лютной величине превысит силу статического трения. Следова- тельно, переход из состояния sliding (скольжение) в состояние stuck (покой) произойдет, когда выполнено логическое условие [novelocity & (fabs(Fsum)<= Fstatic)], т.е. скорость нулевая и вне- шняя сила меньше, чем сила статического трения. Выходной сигнал stuck является двоичным представлением состояния. При входе в со- стояние stuck этот сигнал устанавливается равным единице, а при входе в состояние sliding — равным нулю. Это позволяет использо- вать сигнал stuck как сигнал управления другими Simulink-блоками, как показано ранее. Таким образом Stateflow-диаграмма должна мо- делировать переход системы из одного состояния в другое. Результаты моделирования. Заданные по умолчанию парамет- ры, используемые в этой модели: М - 0,001 кг; К= 1 Н/м; Fstatic = = 1 Н; Fi/iding = 1 Н. Внешняя сила меняется линейно от нуля до 5 Н и обратно до нуля с периодом 5 с. Две примечательные характеристики пара- метров: 1. Собственная частота системы о)„ = / М =31,5 рад/с на- много выше, чем у возбуждающей силы (2л/10 рад/с). Модель ис- пользует очень низкую частоту возбуждения, чтобы определить статическую выходную характеристику системы. 2. Статический и кинетический коэффициенты трения равны. Рис. 11.24 отображает установленные по умолчанию параметры. Рис. 11.25 и 11.26 показывают результаты моделирования с уста- новленными по умолчанию параметрами.
Fwc 11 X гмрвамчв*» 1*яс 1115 np*.u пишет имея» во вреыеам внешне*) сшш О1трн»пыа ЛИНИЯ> П0.10МШЫ бру^КМ UnntMUMM — Mil*. Вше мм сила лслажа преамситьенлу етагычесжеги трение чтобы бру- сем ШЧМ движение Это лроысаижит и чпчгмт ч^с*«снн t « I 1 В имтераа-те 1 < /< S шииаеиж еруткл ааснвгпм тмни <"*4*- <>ы что ин пружины иткми нки-чг» сит тиитлнчг сяду -ремгн При ттом «кпннвавтг наСолыоне вдпСвниа с соб стжсннп* чвг-гттггЛ •*.. ггтрежтгии*- ижчгненна своросгн Здтеч чнспни» гм.-и тмаынвгт уыгhhihtvci t<*voK немедленно <хт» ашинвгтся и мпшигся » жи соспжми ло моменля времени • - 7. кош мешнм смл> снова прммшаст стмишкум свеп трения, теперь обратом ва*драа.1еммм. Кмяа и«еашм сива уменышется а> нули, вами гкмгараеия. h*c I I.2S. H1WCXHK ве ярезыеми ансввасЖ снам а поамЕснам Груска MJ
Рис. 11.26. Характеристика вход-выход системы Рис. 11.26 показывает характеристику вход-выход системы, ото- бражая изменение положения в функции прикладываемой силы. График имеет вид петли гистерезиса, при этом положение отста- ет от силы. Статическая характеристика вход-выход не может быть представлена однозначной функцией, потому что система имеет память. Непрерывные состояния, положение и скорость, имеют па- мять в том смысле, что модель сохраняет энергию согласно их величинам. Потенциальная энергия пружины пропорциональна квадрату растяжения, т.е. положения бруска, а кинетическая энер- гия бруска пропорциональна квадрату его скорости. Эти величи- ны не могут изменяться мгновенно, так как мощность не может быть бесконечно большой величиной. Поведение системы зависит не только от упругости пружины, но и от положения и скорости бруска в момент перехода из одно- го состояния в другое. При переходе в состояние покоя (stuck) положение останется неизменным и равным тому, что было в точке входа в это состояние. В состоянии sliding (скольжение) по- ложение зависит от характеристик пружины, направления скоро- сти и положения бруска в момент начала скольжения. Это поведе- ние зафиксировано естественным и интуитивно понятным спо- собом в Stateflow-модели. Мы можем наблюдать иной характер динамического поведения, изменяя системные параметры следующим образом (рис. 11.27): м= 0,1 кг, Fsliding = 0,1 Н. Если статическое трение превосходит по величине кинетиче- ское трение, ускорение меняется скачком при переходах из со-
Гж 11 V Угтансжмм**** «авамгтрь СТОМММ» С«П«ЬЖГИМИ в rnrrrWHH* япюгм. И нжЛорст Копя ЖО- рост» лгктигагт мула, усмирение часто отлишо ст мул*. Ьсли смс тем* гкчтьмет состояние поем. ус»орс*««с немедленно стало •иге* нулевым. Эво существенно нелинейное поаепенне гмамчно Д*Ж ММиЧ И.С LMCTCta. ыгрулма ItHHUt • ИрЖМкГННС 1НИ11НГННГЧ Рж II.2K и cvufcxo рнс. 11.29 жмнистрмружл лижхтс системы ирв пмпч *с^м>рг с1тиХ1нипеитс«1 Матгггнрпмикг ynpnuRcrcw орн неппакжнвпп* ипжлн «ж- UHWWcnMI с»»гтгмы SiMrAr^» Ко*ннптуя«м«> АсжтсЛгтм <*нп*и- уугт сложное оитминнгскос н ««мйнм оежаанме в hmOhw* стой дтиграмше с улпСоятгпммымн <гункиисма.и4<ыми лнагрвм- м*ми Мм можем вспьлггъ иу линщин* непкретхтмнно в днацмчм* Sunukflk. и швчм гемершмм объекпюсо кои. ком a j • •aiotrHwwjB he. I Ui Дмжгнг ежгавы yettMua«t«Btei IM
Рис. 11.29. Характеристика вход-выход системы при установленном набо- ре коэффициентов пилирования и объединение автоматизированы. Таким образом, комбинация Simulink-Stateflow обеспечивает мощную среду мо- делирования. Контрольные вопросы 1. В чем особенность гибридных систем? 2. Что представляет собой гибридный автомат? 3. Опишите термостат как гибридную систему. Постройте Stateflow- модель термостата. 4. Опишите ядерный реактор как гибридную систему. Постройте Stateflow-модель ядерного реактора. 5. Опишите контроллер железнодорожного шлагбаума как гибрид- ную систему. Постройте Stat eflow-модель контроллера железнодорожно- го шлагбаума. 6. Опишите контроллер цифровой системы управления как гибрид- ную систему. Постройте Stateflow-модель контроллера цифровой систе- мы управления. 7. Опишите механическую систему с сухим трением как гибридную систему.
ЗАКЛЮЧЕНИЕ Моделирование систем автоматического и автоматизированно- го управления имеет ряд особенностей, отличающих его от моде- лирования других систем. Специфичны задачи, разнообразны объек- ты моделирования, широк спектр их характеристик. Весьма разно- образен применяемый математический аппарат— от традицион- ных разделов до современных направлений математики. Тем не ме- нее, эффективные методы моделирования, которые хорошо заре- комендовали себя при анализе сложных (больших) систем, с ус- пехом могут быть применены и здесь. Это обстоятельство важно потому, что создает основу для построения эффективных инстру- ментальных средств, необходимых инженерам по проектированию и эксплуатации систем, использующих компьютерные технологии. Еще один важный тезис, смысл которого авторы пытались подчеркнуть в книге,— связь задач оптимизации систем и их мо- делирования. Это актуально в современных условиях, когда на рынке программных продуктов имеется много готовых средств, и многие разработчики часто отходят от постановки оптимизаци- онных задач проектирования, строя их по аналогии, принципу подобия, не проводя соответствующего анализа. В то же время далеко не все оптимизационные задачи проек- тирования могут быть поставлены и тем более решены главным образом из-за того, что пока еще не разработаны соответству- ющие модели процессов и объектов. В перспективе следует ожидать, что такие модели будут со- зданы и найдут применение при решении не только отдельных оптимизационных задач, но и как составная часть программного обеспечения систем автоматизированного проектирования. Сле- дует также ожидать, что появятся и новые задачи моделирова- ния и оптимизации. В учебном пособии основное внимание было уделено как принципам моделирования, так и работе с моделя- ми. К сожалению, за рамки книги вышли многочисленные воп- росы как общей теории моделей, так и многообразных задач мо- делирования объектов сетевой технологии хранения, обработки и передачи данных. Тем не менее авторы надеются, что предло- женная методология создает необходимые предпосылки для даль- нейшего освоения и развития новых методов решения сложных задач проектирования и оптимизации различных технологичес- ких процессов.
В настоящее время имитационное моделирование играет боль- шую роль в проектировании работы различных организаций, пред- приятий, моделировании различных технических процессов. Это обусловливает появление различных языков моделирования. Ши- рокое распространение приобрел язык моделирования GPSS/PS (для ОС MS DOS) и GPSS World (для ОС MS Windows). Его ис- пользование значительно упрощает задачи моделирования различ- ных систем, в частности систем массового обслуживания, что особенно актуально в наше время. Огромной популярностью в научной и образовательной среде пользуется математическая система MATLAB. К разработке этой системы были привлечены крупнейшие научные школы мира. Применяемый более чем 1 млн пользователей в промышленнос- ти, государственных, академических и учебных организациях MATLAB фактически стал стандартом для вычислений. Авторы хотели бы еще раз подчеркнуть, что моделирование информационных динамических систем является эффективным средством анализа, проектирования и исследований в инженер- ной деятельности. Специалистам по автоматизированным и слож- ным системам, безусловно, важно овладеть современным аппа- ратом моделирования, уметь правильно оценить его возможности и квалифицированно применять технологию и приемы.
СПИСОК ЛИТЕРАТУРЫ 1. Альянах И. Н. Моделирование вычислительных систем / И. Н.Аль- янах. — М. : Машиностроение, 1998. — 223 с. 2. Бенькович Е. С. Практическое моделирование динамических сис- тем / Е. С.Бенькович, Ю. Б. Колесов, Ю. Б.Сениченков. — СПб. : БХВ- Петербург, 2002. — 464 с. 3. Богуславский Л. Б. Исследование сети СЕКОП с помощью моде- лирования и измерений / Л. Б. Богуславский, В. И.Дрожжинов, Т.А.Се- менова. — Автоматика и вычислительная техника. — 1983. -№2.- С. 8- 12. 4. Бусленко И. П. Моделирование сложных систем / Н. П. Бусленко. — М. : Наука, 1978.- 400 с. 5. Введение в математическое моделирование / В.Н.Ашихмин, М. Г. Бояршинов, М.Б. Гитман и др.; под ред. П. В.Трусова. — М. : Ин- термет Инжиниринг, 2000. — 336 с. 6. Вентцель Е. С. Прикладные задачи теорий вероятностей / Е.С.Вент- цель, Л.А. Овчаров. — М. : Радио и связь, 1983. — 416 с. 7. Гулыпяев А. Визуальное моделирование вереде MATLAB / А. Гуль- тяев. — СПб. : Питер, 2000. — 432 с. 8. Денисов А. А. Теория больших систем управления / А. А. Денисов, Д.Н. Колесников. — Л. : Энергоиздат, 1982. — 288 с. 9. Дьяконов В. Simulink 4. Специальный справочник / В.Дьяконов. — СПб. : Питер, 2002. — 528 с. 10. Дьяконов В. П. Математическая система MATLAB 5.0/5.3. Систе- ма символьной математики / В. П.Дьяконов, И. В. Абраменкова. — М. : Нолидж, 1999. — 640 с. 11. Дьяконов В. Математические пакеты расширения MATLAB. Спе- циальный справочник / В.Дьяконов, В. Круглов. — СПб.: Питер, 2001. — 480 с. 12. Дьяконов В. MATLAB. Анализ, идентификация и моделирование систем. Специальный справочник / В. Дьяконов, В. Круглов. — СПб. : Питер, 2002. — 448 с. 13. Дэбни Дж. Simulink® 4. Секреты мастерства / Дж. Дэбни, Т.Хар- ман. — М.: БИНОМ. Лаборатория знаний. 2003. — 403 с. 14. Емельянов А.А. Имитационное моделирование экономических процессов / А. А. Емельянов. — М. : Финансы и статистика, 2002. — 365 с. 15. Иванова О.Н. Управляющие устройства квазиэлектронных ком- мутационных систем / О. Н. Иванова, А. Г. Попова, Ю. В.Соловой. — М., 1975. - 352 с. 16. Карпов Ю.Г. Теория автоматов / Ю. Г. Карпов. — СПб. : Питер, 2003. - 208 с.
17. Кемени Дж. Кибернетическое моделирование. Некоторые прило- жения / Дж. Кемени, Дж.Снелл. — М. : Советское радио, 1972. — 192 с. 18. Клейнрок Л. Вычислительные системы с очередями / Л. Клейнрок ; пер. с англ. — М. : Мир, 1979. — 600 с. 19. Кормен Т. Алгоритмы: построение и анализ / Т. Кормен, Ч.Лей- зерсон, Р. Ривест. — М. : Моск, центр непрерывного математического образования, 2000. — 960 с. 20. Колесов Ю. Б. Моделирование систем. Динамические и гибрид- ные системы / Ю. Б. Колесов, Ю. Б.Сениченков. — СПб. : БХВ-Петер- бург, 2006. — 224 с. 21. Колмогоров А. Н. Элементы теории функций и функционального анализа / А. Н. Колмогоров, С. В. Фомин. — М. : Наука, 1976. — 544 с. 22. Корн Г. Справочник по математике для научных работников и инженеров / Г. Корн, Т. Корн. — М. : Наука, 1978. — 832 с. 23. Кристофидес Н. Теория графов / Н. Кристофидес. — М. : Наука, 1978. 24. Кудрявцев Е. М. GPSS World.Основы имитационного моделиро- вания различных систем / Е. М. Кудрявцев. — М. : ДМК Пресс, 2004. — 320 с. 25. Кузин Л. Т. Основы кибернетики. Т.2. Основы кибернетических моделей / Л.Т. Кузин. — М. : Энергия, 1979. — 584 с. 26. Лазарев Ю. MATLAB 5.x. / Ю.Лазарев. — Киев : Издательская группа BHV, 2000. - 384 с. 27. Лазарев Ю. Моделирование процессов и систем в MATLAB / Ю.Лазарев. — СПб. : Питер; Киев : Издательская группа BHV, 2005. — 512 с. 28. Леоненков А. В. Нечеткое моделирование в среде MATLAB и fuzzyTECH / А. В.Леоненков. — СПб. : БХВ-Петербург, 2003. — 736 с. 29. Маркс К. и Энгельс Ф. — Соч., 2 изд. — Т. 20 — С. 573 — 587. 30. Математический энциклопедический словарь / гл. ред. Ю. В. Про- хоров. — М.: Сов. Энциклопедия, 1988. — 847 с. 31. Медведев В. С. Control System Toolbox. MATLAB 5 для студентов / В.С. Медведев, В.Г. Потемкин. — М. : Диалог-МИФИ, 1999.— 287 с. (Пакеты прикладных программ) 32. Медведев В. С. Нейронные сети. MATLAB 6 / В С. Медведев, В. Г. Потемкин. — М. : Диалог-МИФИ, 2002. — 496 с. (Пакеты приклад- ных программ) 33. Миловзоров. В. П. Элементы информационных систем : учеб, для вузов / В. П. Миловзоров. — М. : Высш, шк., 1989. — 440 с. 34. Морозов В. К. Основы теории информационных сетей / В. К. Мо- розов, А. В. Долганов. — М. : Высш, шк., 1987. — 271 с. 35. Нейлор Т. Имитационные эксперименты с моделями экономи- ческих систем / Т. Нейлор. — М., 1975. 36. Пешелъ М. Моделирование сигналов и систем / М.Пешель.— М.: Мир, 1981.- 304 с. 37. Питерсон Дж. Теория сетей Петри и моделирование систем / Дж. Питерсон ; пер. с англ. — М. : Мир, 1984. — 264 с.
38. Пройдаков Э.М. Англо-русский толковый словарь по вычисли- тельной технике, Интернету и программированию / Э. М. Пройдаков, Л. А.Теплинкий. — М. : Русская редакция, 2002. — 640 с. 39. Основы теории вычислительных систем ; под ред. С. А. Майорова ; учеб, пособие для вузов. — М.: Высш, школа, 1978. 40. Самойленко С. И. Вычислительные сети. Адаптивность, помехо- устойчивость, надежность / С. И.Самойленко, А. А. Давыдов. — М. : На- ука, 1981. — 277 с. 41. Справочник по теории автоматического управления / А. Г. Алек- сандров, В.М. Артемьев, Н. Н. Афанасьев и др.; под ред. А. А. Красовско- го. - М. : Наука, 1987. — 712 с. 42. Советов Б.Я. Моделирование систем / Б.Я.Советов, С.А.Яков- лев. — М. : Высш, шк., 2001. — 343 с. 43. Советов Б. Я. Моделирование систем: Курсовое проектирование / Б.Я.Советов, С.А.Яковлев. — М. : Высш, шк., 1988. — 135 с. 44. Советов Б. Я. Моделирование систем : Лабораторный практикум / Б.Я.Советов, С.А.Яковлев. — М. : Высш, шк., 1989. — 80 с. 45. Теория сетей связи / под ред. В. Н. Рогинского. — М. : Радио и связь, 1981. — 192 с. 46. Томашевский В.Н. Имитационное моделирование в среде GPSS / В.Н.Томашевский, Е.Г.Жданова. — М. : Бестселлер, 2003. — 416 с. 47. Чен К. MATLAB в математических исследованиях / К. Чен, П. Джиб- лин, А. Ирвинг. — М. : Мир, 2001. — 346 с. 48. Черных И. В. Simulink: среда создания инженерных приложений / И. В.Черных. — М. : Диалог-МИФИ, 2003. — 496 с. 49. Шрайбер Т.Дж. Моделирование на GPSS / Т.Дж. Шрайбер.— М.: Машиностроение, 1980. — 192 с. 50. Цаленко М.Ш. Моделирование семантики в базах данных / М.Ш.Цаленко. — М. : Наука, 1989. — 288 с.
ОГЛАВЛЕНИЕ Предисловие..................................................3 Введение.....................................................5 Глава 1. Предмет и базовые понятия дисциплины................7 1.1. Основные представления о моделировании процессов и систем.................................................7 1.1.1. Общие положения...............................7 1.1.2. Основные свойства моделей....................10 1.1.3. Морфологические свойства модели...............11 1.1.4. Основные положения общей теории систем.......13 1.1.5. Примеры и разновидности систем...............14 1.2. Общие цели и задачи моделирования систем...........17 1.3. Моделирование, оптимизация и принятие решений.......19 1.4. Использование моделей в инженерной практике и прикладных научных исследованиях......................27 1.4.1. Моделирование технических и производственных объектов............................................27 1.4.2. Модели экономических процессов и систем......29 1.4.3. Паутинообразная модель.......................32 1.5. Моделирование в больших системах и фундаментальных исследованиях...........................................36 1.6. Общая технология моделирования и основные этапы процессов моделирования.................................40 1.6.1. Этапы в управлении процессом моделирования...40 1.6.2. Обработка полученных результатов.............42 Глава 2. Классификация моделей..............................44 2.1. Классификационные признаки моделей.................44 2.2. Мысленное и реальное моделирование.................46 2.2.1. Наглядное моделирование......................47 2.2.2. Символическое моделирование..................47 2.2.3. Реальное моделирование и его виды............50 2.3. Классификация моделей по точности..................51 Глава 3. Эмпирические математические модели.................53 3.1. Область применения эмпирических моделей............53 3.2. Общая процедура построения эмпирической модели......54 3.3. Методы получения экспериментальных данных..........55 3.4. Критерии точности эмпирических моделей.............66
3.5. Вычисление нормы вектора в пакете MATLAB..........68 3.6. Визуальная оценка качества модели.................71 3.7. Достоинства и недостатки эмпирического моделирования.72 Глава 4. Построение эмпирических моделей с применением пакета Matlab.....................................................74 4.1. Полиномиальная регрессия..........................74 4.2. Линейная по параметрам регрессия..................80 4.3. Многомерная регрессия.............................81 4.4. Построение регрессионных моделей в Curve Fitting Toolbox...82 4.4.1. Пример использования Basic Fitting и Curve Fitting Toolbox............................................82 4.4.2. Пример построения в Curve Fitting Toolbox дробно- рациональной модели................................88 4.4.3. Приближение в Curve Fitting Toolbox эксперимен- тальных данных моделью пользователя................92 4.4.4. Линейная модель пользователя — полином Лежандра ..92 4.4.5. Модель пользователя общего вида (нелинейная) — приближение данных рядом Фурье...................................96 4.4.6. Пример робастного приближения...............101 4.5. Авторегрессионные модели.........................105 Глава 5. Математические модели дискретных систем..........109 5.1. Математические модели, основывающиеся на алгебре логики.....................................109 5.1.1. Представления о теории множеств и ее применении для моделирования систем..........................109 5.1.2. Модели алгебры логики в задачах проектирования аппаратных средств автоматизированных систем.......113 5.2. Графовые модели систем...........................120 5.2.1. Элементы теории графов......................120 5.2.2. Структурный анализ систем на базе графовых моделей...................................123 5.2.3. Задачи анализа структур по графовым моделям.125 5.2.4. Потоки в графовых моделях и их анализ.......130 5.2.5. Разделяющие множества, сечения, разрезы.....131 5.2.6. Задача о максимальном потоке................132 5.3. Модели процессов функционирования систем на базе теории сетей Петри............................136 5.3.1. Общие положения.............................136 5.3.2. Обыкновенные сети Петри.....................137 5.3.3. Свойства сетей Петри........................138 5.3.4. Возможности обыкновенных сетей Петри........139
5.3.5. Временные сети Петри........................141 5.3.6. Раскрашенные сети Петри.....................142 5.4. Модели процессов функционирования систем на базе теории конечных автоматов......................142 5.4.1. Элементы теории конечных автоматов..........142 5.4.2. Матричные и логические схемы функционирования систем в моделях конечных автоматов...........144 5.4.3. Об эквивалентности моделей сетей Петри и конечных автоматов...............................147 Глава 6. Работа в Simulink и Stateflow. Реализация моделей дискретных систем средствами пакета MATLAB.................150 6.1. Работа в Simulink.................................150 6.1.1. Общие сведения..............................150 6.1.2. Как работает Simulink.......................151 6.1.3. Этап создания графической модели динамической системы.............................................152 6.1.4. Этап выполнения моделирования поведения динамической системы................................157 6.1.5. Вычислительные аспекты этапа моделирования поведения динамической системы.....................160 6.1.6. Анализ результатов моделирования динамической системы............................................167 6.2. Построение моделей логических элементов в MATLAB-Simulink......................................168 6.3. Аппаратная модель конечного автомата..............172 6.4. Программное средство описания конечных автоматов — язык состояний и переходов.............................173 6.5. Моделирование систем в Stateflow..................174 6.6. Особенности построения моделей в Stateflow........178 6.7. Язык Stateflow-диаграмм...........................189 6.7.1. Представление иерархии в Stateflow..........189 6.7.2. Состояния...................................191 6.7.3. Переходы....................................194 6.7.4. Типы переходов..............................196 6.7.5. Подключаемые соединения.....................202 6.7.6. Соединение с памятью........................206 6.7.7. Блоки.......................................207 6.7.8. Графические функции.........................207 6.7.9. Язык действий...............................208 6.8. Stateflow-модели конечных автоматов...............209 6.8.1. Пример диаграммы в виде блок-схемы..........209 6.8.2. Моделирование работы компьютера.............210 6.8.3. Модель вероятностного конечного автомата....211
Глава 7. Модели стохастических систем........................214 7.1. Теория массового обслуживания как основа моделирования стохастических систем...................................214 7.1.1. Общие положения...............................214 7.1.2. Основные разновидности систем массового обслуживания и дисциплины обслуживания...............215 7.1.3. Простейшие потоки в системах массового обслуживания.........................................217 7.1.4. Марковские случайные процессы. Уравнения Колмогорова..........................................219 7.1.5. Сети массового обслуживания...................222 7.1.6. Построение сетевых моделей массового обслуживания................................225 7.2. Аналитические задачи моделирования стохастических систем....................................................226 7.2.1. Задачи анализа систем на основе моделей стохастических процессов.............................226 7.2.2. Марковская модель вычислительного процесса....228 7.3. Примеры имитационных моделей стохастических систем..231 7.3.1. Модель складской системы......................231 7.3.2. Работа с моделью..............................234 7.3.3. Анализ результатов............................235 7.3.4. Имитационная модель для оценки реальной пропускной способности канала передачи данных в компьютерных сетях................................237 7.3.5. Анализ полученных результатов и выводы........240 7.4. Имитационные GPSS модели систем и сетей массового обслуживания.............................................241 7.4.1. Язык моделирования GPSS.......................241 7.4.2. GPSS модели компонентов компьютерных сетей...................................243 7.4.3. Модель внешнего трафика сети..................245 7.4.4. Модель узла пакетной коммутации...............247 Глава 8. Реализация моделей стохастических систем средствами пакета MATLAB................................................251 8.1. Расширение SimEvents как средство моделирования в Simulink систем массового обслуживания................251 8.2. Моделирование в Simulink-SimEvents систем массового обслуживания.............................................253 8.2.1. Модель СМО типа М/М/1 ........................253 8.2.2. Модель СМО типа M/D/1.........................255 8.2.3. Модель СМО типа G/G/1. Закон Литтла...........255
8.2.4. Модель СМО с единственным сервером и с несколькими серверами............................257 8.2.5. Модель СМО с единственной очередью и с несколькими очередями............................257 8.2.6. Модель СМО с различными политиками обслуживания......................................259 8.2.7. Модель СМО с различными политиками выгрузки...259 8.3. Моделирование СМО в Stateflow...................262 8.3.1. Моделирование АСУ продажи железнодорожных билетов...........................................262 8.3.2. Специализированный пост диагностики........264 Глава 9. Аналитические математические модели непрерывных детерминированных систем...................................269 9.1. Дифференциальные уравнения динамических систем.....................................269 9.2. Использование дифференциальных уравнений в теории управления..................................270 9.3. Эмпиризм и фундаментализм.......................271 9.4. Сила и слабость аналитических моделей...........272 9.5. Получение дифференциальных уравнений динамических систем...............................................273 9.5.1. Механические системы. Поступательное движение.273 9.5.2. Механические системы. Вращательное движение...275 9.5.3. Электрические цепи.........................276 9.5.4. Электромагнитные процессы..................278 9.5.5. Двигатель постоянного тока с независимым возбуждением......................................279 9.5.6. Баланс масс................................281 9.5.7. Уравнение сохранения энергии...............283 9.5.8. Тепловой баланс жидкости в баке............283 9.6. Непрерывные модели динамических систем..........284 9.6.1. Общие положения............................284 9.6.2. Механическая система.......................286 9.6.3. Описание линейной системы в пространстве состояний.........................................286 9.7. Описание в виде отношений входных и выходных переменных..............................................288 9.7.1. Общие положения...............................288 9.7.2. Передаточная функция механической системы...........................................290 9.7.3. Низкочастотный фильтр......................290 9.7.4. Область применения линейных моделей........290 9.7.5. Ограничения сигнала........................291 9.7.6. Нелинейные системы.........................291
9.7.7. Численное моделирование динамических систем.............................................293 9.7.8. Проблема слишком большого шага..............293 9.8. Дискретные модели динамических систем.............295 9.8.1. Общие положения.............................295 9.8.2. Описание в пространстве состояний...........295 9.8.3. Отношение вход/выход и оператор сдвига......297 9.8.4. Дискретное описание механической системы в пространстве состояний...........................299 9.9. Структурные схемы.................................301 9.10. Модели в виде сигнальных графов..................303 Глава 10. Использование пакета MATLAB при построении математических моделей непрерывных детерминированных систем...........................305 10.1. Аналитическое решение дифференциальных уравнений динамических систем. Пакет Symbolic Math Toolbox.......305 10.2. Численное решение дифференциальных уравнений динамических систем......................................309 10.3. Пакет Control System Toolbox как средство моделирование систем...................................................310 10.4. Решение задач моделирования систем в пакете Control System Toolbox..........................317 10.5. Моделирование систем с использованием пакета Simulink.................................................318 10.5.1. Simulink-модель одномассовой колебательной механической системы.............................318 10.5.2. Simulink-модель нелинейной системы........320 10.5.3. Преобразование Simulink-модели в LTI-модель.321 10.5.4. Линеаризация..............................323 10.5.5. Расчет и моделирование в MATLAB-Simulink- Power System Blockset электрической цепи постоянного тока............................327 10.5.6. Расчет и моделирование в MATLAB-Simulink- SimMechanics Blockset механической системы........337 Глава 11. Моделирование гибридных систем...................346 11.1. Гибридные системы как особый класс систем........346 11.2. Моделирование систем с дискретными событиями.....347 11.2.1. Общие сведения............................347 11.2.2. Модели гибридных систем...................347 11.2.3. Термостат как гибридная система...........348 11.2.4. Ядерный реактор как гибридная система.....349 11.2.5. Контроллер железнодорожного шлагбаума как гибридная система.............................350
11.2.6. Моделирование в Stateflow гибридных систем.352 11.2.7. Моделирование работы релейной системы стабилизации температуры на базе программируемого логического контроллера Premium..........................................352 11.2.8. Модель цифровой системы управления.......352 11.2.9. Описание демонстрационного примера Stick-Slip Friction Demonstration...........................357 Заключение................................................366 Список литературы.........................................368
Учебное издание Морозов Владимир Константинович Рогачев Геннадий Николаевич Моделирование информационных и динамических систем Учебное пособие Редактор /О. А. Милютин Технический редактор Е. Ф. Коржуева Компьютерная верстка: Н. В. Протасова Корректоры А. П. Сизова, Ю. В. Гуськова Изд. № 101112264. Подписано в печать 03.12.2010 Формат 60 x 90/16. Гарнитура «Таймс». Бумага офс. № I. Печать офсетная. Усл. печ. л. 24,0. Тираж 1 500 экз. Заказ № 31194. Издательский центр «Академия», www.academia-moscow.ru 125252, Москва, ул. Зорге, д. 15, корп. 1, пом. 266. Адрес для корреспонденции: 129085, Москва, пр-т Мира, 101 В. стр. I, а/я 48. Тел./факс: (495) 648-0507. 616-0029 Санитарно-эпидемиологическое заключение № 77.99.60.953Д.007831.07.09 от 06.07.2009. Отпечатано в соответствии с качеством предоставленных издательством электронных носителей в ОАО «Саратовский полиграфкомбинат». 410004, г. Саратов, ул. Чернышевского, 59. www.sarpk.ru