ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ Ãîñóäàðñòâåííîå îáðàçîâàòåëüíîå ó÷ðåæäåíèå âûñøåãî ïðîôåññèîíàëüíîãî îáðàçîâàíèÿ ÑÀ...
133 downloads
234 Views
485KB Size
Report
This content was uploaded by our users and we assume good faith they have the permission to share this book. If you own the copyright to this book and it is wrongfully on our website, we offer a simple DMCA procedure to remove your content from our site. Start by pressing the button below!
Report copyright / DMCA form
ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ Ãîñóäàðñòâåííîå îáðàçîâàòåëüíîå ó÷ðåæäåíèå âûñøåãî ïðîôåññèîíàëüíîãî îáðàçîâàíèÿ ÑÀÍÊÒ-ÏÅÒÅÐÁÓÐÃÑÊÈÉ ÃÎÑÓÄÀÐÑÒÂÅÍÍÛÉ ÓÍÈÂÅÐÑÈÒÅÒ ÀÝÐÎÊÎÑÌÈ×ÅÑÊÎÃÎ ÏÐÈÁÎÐÎÑÒÐÎÅÍÈß
А. С. Карамайкин
МОДЕЛИРОВАНИЕ ПРОЦЕССОВ И СИСТЕМ ИСПОЛЬЗОВАНИЕ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ Текст лекций
Санкт-Петербург 2005
УДК 681.32.06 ББК 32.973 К21 Карамайкин А. С. К21 Моделирование процессов и систем: Текст лекций / СПбГУАП. СПб., 2005. 108 с. Рассматривается использование ряда интегрированных сред прикладных программ при моделировании и исследовании измерительно-вычислительноуправляющих систем и комплексов по учебным дисциплинам "Моделирование процессов и систем" и "Моделирование измерительно-вычислительных комплексов на ЭВМ". Текст лекций предназначен для самостоятельной работы, а также как "шпаргалка" для выполнения лабораторного практикума студентами всех форм обучения специальностей "Аэрокосмические приборы и измерительно-вычислительные комплексы" и "Техническая эксплуатация авиационных электросистем и пилотажно-навигационных комплексов ", обучающихся как по основному учебному плану, так и по планам бакалаврской и магистерской подготовки направления "Приборостроение".
Рецензенты: кафедра процессов управления Балтийского государственного технического университета (ВОЕНМЕХ); доцент, кандидат технических наук В. И.Чуркин
Утверждено редакционно-издательским советом университета в качестве текста лекций
© ГОУ ВПО «Санкт-Петербургский государственный университет аэрокосмического приборостроения», 2005
2
ПРЕДИСЛОВИЕ В настоящее время проблемы построения и исследования математических моделей систем различного назначения и сигналов разнообразной природы занимают одно из видных мест современной науки. Проникновение математических методов в технику, естествознание и гуманитарные науки идет по пути математического проектирования и моделирования соответствующих объектов, а все более возрастающие возможности вычислительной техники обеспечивают большой успех этому научному направлению. Важный аспект построения моделей заключается в том, что модель должна быть адекватным заменителем реального положения вещей, реальной системы. Следовательно, речь идет не только об уменьшающем избыточность запоминании информации, но и о такой семантике (величинах, соответствующих реальному объекту и характеризующих его, которые они должны согласовывать в модели, например в виде входных и выходных величин и состояний) и о таком синтаксисе модели (описании отношений между согласованными величинами в виде формул), при которых ее поведение оказывается сравнимым с поведением реального объекта. Текст лекций "Моделирование процессов и систем", в основном, ориентирован на использование интегрированной среды проектирования и моделирования MATLAB, нашедшей широкое применение в последние годы в университетских и инженерно-технических кругах мира. Для сотен тысяч специалистов, занятых инженерными и научными исследованиями, система MATLAB обеспечила интеллектуальную среду для организации вычислений. Среда MATLAB была создана как язык программирования высокого уровня для технических вычислений. Она вобрала в себя не только передовой опыт развития и компьютерных реализаций численных методов, накопленный за последние четыре десятилетия, но и весь опыт становления математики за историю человечества. 3
Одним из важных достоинств среды является возможность ее расширения с целью решения новых научно-технических задач. Это достигается, прежде всего, созданием целого ряда пакетов расширений, охватывающих все новые и полезные практически направления компьютерных технологий. Текст лекций предназначен для самостоятельной работы студентов, а также как "шпаргалка" для выполнения лабораторного практикума и весьма полезен студентам очно-заочной и заочной форм обучения. Не следует обольщаться простотой прочитанного. Вопросам корректности постановки и решения ряда задач моделирования, использования того или иного математического аппарата, тех или иных численных методов решения будут посвящены отдельные лекции, не вошедшие в данный материал.
4
1. МОДЕЛИРОВАНИЕ НА ПЭВМ С ИСПОЛЬЗОВАНИЕМ СОВРЕМЕННОГО ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ В последние годы понятие "модель" используется широко в самых различных областях науки, техники, естествознания, в гуманитарных областях знания, в искусстве и художественной литературе. Воспользуемся более ограниченным понятием математической модели – описанием изучаемого объекта на формальном языке, т. е. с помощью чисел, уравнений различного вида: конечных, дифференциальных, интегральных, интегродифференциальных, операторных, а также неравенств или логических соотношений. Под термином "математическое моделирование" часто понимается некоторое упрощение и весьма приближенное математическое описание сложной системы. Слово "модель" в этом случае противопоставляется закону науки, относительно которого предполагается, что он описывает явление природы некоторым "безусловным" образом. Одна и та же сложная система может описываться различными моделями, каждая из которых отражает только какую-то сторону изучаемой системы. Это, если угодно, взгляд на сложную систему или комплекс в некотором определенном и заведомо узком ракурсе. В этом случае, естественно, не возникает задача дискриминации – различные модели могут иметь право на одновременное существование. Модель в этом понимании ведет себя в каком-то смысле так же, как и описываемая ею система, а в другом смысле – иначе, ибо модель не полностью идентична (адекватна) описываемой системе или комплексу. Пользуясь лингвистической терминологией, нужно сказать, что математическая модель есть просто метафора. Вспомним, что в лингвистике под словом "метафора" понимают оборот речи, состоящий в употреблении слов и выражений в переносном смысле на основе какой-либо аналогии, сходства, сравнения, контраста. Зачем же нужно строить метафоры столь сложных систем, как измерительно-вычислительно-управляющие комплексы летательных аппа5
ратов? Тем более, что построение таких моделей даром не дается: приходится преодолевать трудности, подчас весьма значительные, и научного, и организационного, и психологического характера. Просто так, в свое удовольствие, строить математические модели не стоит. В то же время основной, после изучения реальных явлений и объектов, способ познания – построение моделей, но не каких-либо, а содержательных, дающих возможность выпукло увидеть какие-то интересные или нужные исследователю стороны изучаемого явления, объекта, процесса, погрузив "в тень" другие стороны. С иных позиций они могут оказаться более важными, и тогда нужно строить другую модель. В практике работы с ПЭВМ следует различать техническую процедуру решения поставленной задачи и существо дела. Нельзя сводить постановку задачи и получение решения лишь к программированным в том или ином виде процедурам: записи или представлению математической модели в форме, удобной для использования в интегрированном комплексе прикладных программ, ввода модели в ПЭВМ, выбора численного метода решения, исходя из соображений реально достижимой точности и длительности решения, регистрации решения и т. д. Между тем человек, следуя формальному подходу, часто считает, что его задача "должна решаться", и разочаровывается в вычислительной технике. Где ошибка, как ее найти, корректно ли поставлена задача? Ответ на эти вопросы лучше всего дает физический подход, при котором проектируемый комплекс или система представляется в виде совокупности заданных физических элементов, агрегатов, подсистем. Комплекс или система расчленяется на части, для которых известны точные решения или экспериментальные характеристики, а соединение этих частей в модели дает новые искомые зависимости. Модель анализируется и корректируется по частям, как бы с помощью постановки дополнительных экспериментов в частных системах, которые можно анализировать в отдельности. Для получения достоверных результатов необходимо связать процесс моделирования с физическим смыслом задачи, чтобы быть убежденным в правильности полученных результатов, либо получить неопровержимые доказательства неправильной постановки задачи и знать, где искать ошибку. Таким образом, моделирование на ПЭВМ – не формальная процедура, а экспериментальный поиск. Поэтому можно говорить об искусстве моделирования так же, как и об искусстве эксперимента. 6
Существенно упростить общение с компьютером позволяет использование универсальных пакетов прикладных программ и интегрированных сред. В последние годы в научно-технических кругах мира получила широкое распространение, известная еще с начала 80-х годов, интегрированная среда для проведения математических расчетов, проектирования и моделирования – MATLAB (версии 5.х и 6.х). Формализация задач синтеза и анализа измерительно-вычислительноуправляющих систем и комплексов, а также применение численных методов решения задач позволяют использовать хорошо изученные приемы решения и стандартное (универсальное) математическое обеспечение ЭВМ. Применение ЭВМ повышает эффективность научных исследований, позволяет проводить моделирование сложных объектов и явлений. Математическое моделирование включает следующие шаги (этапы моделирования): выбор расчетной схемы и определение необходимой детализации; математическое описание (составление системы уравнений); выбор метода решения; приведение модели (включающей уравнения, метод, исходные данные и начальные условия) к виду, удобному для решения на ЭВМ; составление программы для ЭВМ; проведение расчетов (моделирование); при необходимости следует повторить шаги 3–6; анализ полученных результатов; при необходимости следует повторить шаги 1–8; оформление отчета (описание, схемы, рисунки, графики, формулы и т. д); при необходимости следует повторить шаги 1–10, 3–10, 8–10. Развитие ПЭВМ и программного обеспечения приводит к ускорению и облегчению выполнения каждого шага моделирования. До недавнего времени преобладал традиционный подход, отработанный на "больших" ЭВМ. При этом каждый этап был изолирован от других и рассчитан на работу специализированной группы. Так, постановкой задачи занимались "постановщики", разрабатывали методы решения и программировали – математики и программисты, работой на ЭВМ и построением графиков решения занимались операторы и т. д. Большое количество времени (человеческого и машинного) требовалось на отладку программ. Решения на ЭВМ проводились в основном в пакетном режиме. При традиционном подходе решаются многовариант7
ные задачи на хорошо отработанных моделях. Многомодельные системы широко используются в дорогих САПР. Увеличение быстродействия ЭВМ и развитие графического интерфейса позволило получать и отображать результаты в графическом виде в темпе решения, что значительно сократило объем промежуточных распечаток и бумажных отчетов. При выборе метода широко используются стандартные пакеты прикладных программ, для которых есть обоснование применения и контрольные примеры. Пользователи средств ЭВМ со стажем, наверняка, помнят знаменитый пакет прикладных научных программ SSPLIB для ЕС ЭВМ, значительно расширивший вычислительные возможности языка Фортран, пакет TUTSIM с возможностью моделирования любой нелинейности, пакет SIAM c удобной и наглядной графической оболочкой, а также пакеты СС 3.0 и СС 4.0, разработанные в Калифорнийском технологическом институте для промышленности и учебных целей. Модульный состав пакета соответствовал модульной структуре используемых подходов к программированию задач и широко применялся при наработке необходимых методов решения и ряда моделей для определенного класса задач. При системном подходе к моделированию должен рассматриваться весь комплекс вопросов проектирования: планирования, проведения и обработки результатов вычислительного эксперимента. Важной задачей является обработка результатов вычислений. На этом этапе используются методы, хорошо зарекомендовавшие себя при экспериментах с реальными объектами. Результаты, полученные на математических моделях, должны быть сопоставимы с результатами натурного эксперимента. Первые персональные компьютеры в основном облегчали этап оформления результатов моделирования. Здесь использовались текстовые редакторы, графические редакторы, программы построения графиков. Нет смысла перечислять все текстовые редакторы, которые в разное время использовались для оформления научно-технических отчетов. Однако, на наш взгляд, особое (историческое) место занимает Лексикон, с использование которого можно было получить печатный текст, похожий на машинописный, как требовалось по ГОСТу. Для построения графиков-результатов использовался известный многим пакет GRAPHER, первые версии которого работали еще под MS DOS. 8
Современные пакеты подготовки печатной продукции включают средства оформления текста, подготовки математических формул, графиков, схем, таблиц. Современные технологии позволяют подготовить документ, включающий как объекты-документы других типов или гиперссылки на другие документы, так и программы обработки. В настоящее время наибольшее применение в задачах моделирования как этапа проектирования получили персональные компьютеры. Изначально широкое их использование определялось не их быстродействием, а возможностью гармонично настроить рабочее место исследователя, организовать передачу данных между задачами, получить законченный отчет. Современные программы численного моделирования систем и процессов становятся все более автоматизированными, облегчая пользователю процесс постановки и решения широкого класса сложных задач. Еще больший эффект дают современные возможности качественного визуального представления результатов. Среди таких программ, безусловно, одно из лидирующих мест занимает система MATLAB+Simulink компании MathWorks, на основе которой разработано большое количество профессиональных приложений (так называемых тулбоксов) для конкретных областей применения. Эти приложения, собравшие достижения численного моделирования определенного круга задач, являются не просто набором методов и команд, а, без преувеличения, последним словом в данном направлении исследований. Профессиональное овладение специализированным тулбоксом позволит разработчику подняться на уровень мировых достижений и на равных конкурировать с лидерами в этой области. Для проектирования систем регулирования и управления, цифровой обработки сигналов, коммуникационных систем широко используется блок инструментов Simulink, позволяющий моделировать динамические системы, оценивать их работу, модифицировать проект с помощью графических блок-диаграмм. Simulink – интерактивная среда для моделирования и анализа широкого класса динамических систем. Благодаря тесной интеграции с MATLAB Simulink имеет непосредственный доступ к широкому диапазону средств проектирования и анализа. Традиционный подход к проектированию систем обычно заключается в создании прототипа, за которым следует всестороннее тестирование и внесение соответствующих изменений. Этот подход тре9
бует больших временных и финансовых затрат. Эффективной и общепринятой альтернативой является имитационное моделирование. Simulink – мощный инструмент для моделирования, обеспечивающий быстрое построение и тестирование виртуальных прототипов и дающий доступ к любому уровню детализации проекта с минимальными усилиями. Используя Simulink для итеративного исправления проекта до построения прототипа, инженер может разработать проект быстро и эффективно.
10
2. СРЕДСТВА И СИСТЕМЫ МОДЕЛИРОВАНИЯ Попробуем рассмотреть программное обеспечение персональных компьютеров, используемое на различных этапах математического моделирования. В последние годы в развитии программного обеспечения для персональных ЭВМ прослеживается тенденция применения интегрированных пакетов прикладных программ, включающих наряду со специализированными программами и программы подготовки отчетов, и многое др. Пакет MATLAB Модульный подход к моделированию достаточно глубоко реализуется в современных интегрированных средах (пакетах прикладных программ). Одним из них является интегрированная среда (в определенном смысле энциклопедия технических применений при проектировании и моделировании) MATLAB фирмы "The MathWorks Inc" (USA), которая, по существу, переместилась с "больших" машин на персональные компьютеры в конце 80-х годов, а широкое применение получила в 90-х годах в связи с существенным "улучшением" характеристик персональных компьютеров. Система MATLAB предназначена для выполнения инженерных и научных расчетов и высококачественной визуализации получаемых результатов. Эта система применяется в математике, вычислительном эксперименте, имитационном моделировании, финансовых расчетах и ряде других областей. В пакет входит множество хорошо проверенных численных методов (решателей), операторы графического представления результатов, средства создания диалогов. Отличительной особенностью MATLAB по сравнению с рядом других пакетов является матричное представление данных и большие возможности матричных операций над данными. Используя пакет MATLAB, можно, как из кубиков, построить довольно 11
сложную математическую модель, или написать свою программу. А можно, используя SIMULINK и технологию визуального моделирования, составить имитационную модель системы или комплекса и многое др. Гибкий язык MATLAB дает возможность инженерам и ученым легко реализовывать свои идеи. Мощные численные методы и графические возможности позволяют проверять предположения и новые идеи, а интегрированная среда дает возможность быстро получать практические результаты. Сегодня MATLAB используется во множестве областей, среди которых обработка сигналов и изображений, проектирование систем управления, финансовые расчеты и медицинские исследования. Его открытая архитектура делает возможным использование MATLAB и сопутствующих продуктов для исследования данных и создания собственных инструментов, использующих функциональные возможности MATLAB. Источники MATLAB связаны с решением задач линейной алгебры и повышением эффективности использования математических пакетов LINPACK и EISPACK, предназначенных для работы с матрицами. Если вспомнить, что источником математических моделей линейных систем с постоянными параметрами служат линейные дифференциальные или разностные уравнения с постоянными коэффициентами, то становится понятным, что теоретическая основа этих уравнений – линейная алгебра. Поэтому ядро интегрированной системы MATLAB составляет основу для большинства процедур пакетов Control System Toolbox, System Identification Toolbox, Frequency Domain Identification и ряда др. В этой системе упомянутые алгоритмы интегрированы в самосогласованной и удобной для использования форме, что позволяет назвать программу MATLAB симфонией алгоритмов. Применение сочетания программ MATLAB и Simulink привело к разработке широкого класса профессиональных инструментальных приложений (toolboxes – тулбоксы, т. е. наборы инструментов) для создания, анализа и оптимизации систем. Тулбоксы – больше, чем набор полезных функций. Без преувеличения можно сказать, что они представляют собой последнее слово в разработке (исследованиях) в таких областях, как управление, обработка сигналов, идентификация систем и многих др. Поэтому, освоив и применяя в MATLAB тулбоксы, можно достичь уровня разработчиков (исследователей) мирового класса. Некоторые важные характеристики тулбоксов: каждый тулбокс построен на программах, надежность и точность 12
которых проверена многолетним опытом; все тулбоксы совместимы и легко интегрируются не только с MATLAB, но и с Simulink и любым другим тулбоксом, который уже установлен; все тулбоксы написаны в коде открытой архитектуры MATLAB, можно прочитать все m-файлы, сделать к ним свои добавления или использовать их как шаблоны при создании собственных функций; каждый тулбокс может функционировать на любой компьютерной платформе, на которой работает MATLAB. MATLAB – очень удобная система для разработки приложений, позволяя эффективно создавать программы, выполняемые как в среде MATLAB, так и независимо. Помимо богатых возможностей языка MATLAB для создания алгоритмов, в нем содержатся также широкие возможности для проектирования пользовательского интерфейса. В версии 5.х и 6.х для усиления этих возможностей включен модуль Guide (Graphical user interface design), содержащий элементы визуального программирования. В Guide входят следующие взаимосогласованные инструменты для создания и оформления пользовательского интерфейса: редактор свойств для задания и изменения свойств составных частей интерфейса; панель управляющих элементов, позволяющая включать в интерфейс и выбирать расположение различных кнопок управления, окна текста и списков, рамки, средства вертикальной и горизонтальной прокрутки; редактор команд, позволяющий для каждого управляемого элемента интерфейса записать запускаемую им программу; устройство для выравнивания объектов интерфейса; редактор меню для создания строки меню интерфейса. Операции, выполняемые при создании пользовательского интерфейса в среде MATLAB, аналогичны по простоте и наглядности операциям визуального программирования, выполняемым в среде программы Visual Basic. Пакет MATHCAD Другая сторона развития программного обеспечения – ориентация на "непрограммирующего пользователя". В этом случае пользователь такого пакета получает возможность сосредоточиться на сущности самой задачи, а не способах ее программной реализации. В свою очередь, пользователь должен ясно представлять возможности используемого пакета и заложенных в нем методов, а также уметь выбрать необходимый пакет, соответствующий решаемой задаче. 13
Все этапы создания и использования математической модели легко проследить при работе с пакетом MATHCAD фирмы "MathSoft Inc." (USA). MATHCAD – универсальный математический пакет, предназначенный для выполнения инженерных и научных расчетов. Математическое обеспечение пакета позволяет решать многие задачи в объеме вуза. Разработчики этого пакета совершенствуют пакет от версии к версии. В настоящее время существуют версии MATHCAD 2000 и MATHCAD 2001, обладающие большими возможностями. Существуют оригинальная (англоязычная) и русифицированная версии программы. От калькулятора пакет MATHCAD отличает вычисление с произвольной точностью, работа с различными типами данных (комплексные, векторы, матрицы), использование библиотеки математических функций, которая может быть дополнена собственными программами. Основное преимущество пакета перед типичными языками программирования – естественный математический язык, на котором формулируется решаемая задача. Пакет объединяет в себе: редактор математических формул, интерпретатор для вычислений, библиотеку математических функций, процессор символьных преобразований, текстовый редактор, графические средства представления результатов. Пакет MATHCAD относится к интегрированным пакетам, т. е. позволяет не только произвести вычисления, но и получить документ – итоговый отчет с комментариями, формулами, таблицами и графиками. В отличие от издательских систем формулы в MATHCAD работают. К положительным качествам MATHCAD следует отнести открытость – все приведенное в документе может быть воспроизведено, а интеграция в одном документе исходных данных, метода решения и результатов позволяет сохранить настройки для решения подобных задач. Пакет LabVIEW Пакет LabVIEW позволяет работать с виртуальными приборами и инструментами аппаратно-программного комплекса LabVIEW. Комплекс LabVIEW предоставляет возможность одновременного использования функций многих приборов различного назначения, а также функций обработки результатов измерений и многое др. Наработки в области компьютерной графики позволили разработчикам LabVIEW 6.1 доба14
вить новые трехмерные элементы пользовательского интерфейса для создания профессионально оформленных измерительных систем. Пакет прикладных программ LabVIEW обеспечивает программную поддержку автоматизированных систем для научных исследований (АСНИ) и автоматизированных систем управления (АСУ). Персональный компьютер традиционной комплектации дополнен многофункциональными встроенными платами ввода/вывода аналоговой и цифровой информации для стационарных и портативных компьютеров, стандартных интерфейсов (VME, IEEE, RS), сетей промышленных контроллеров (внешних адаптеров). Среда LabVIEW многофункциональна и обеспечивает: обмен информацией с внешними измерительными, следящими, управляющими устройствами; анализ и обработку полученной информации; сбор, хранение и передачу (в том числе и по сетям) информации; поддержку математического эксперимента (работу с виртуальными инструментами); обеспечение пользовательского интерфейса АСУ и АСНИ. Сочетание двух и более функций LabVIEW позволяет создать эффективную систему управления, контроля, передачи данных. Основная особенность LabVIEW с точки зрения пользователя – графическая интерпретация языка программирования этой системы. Графический язык – язык функциональных блок-диаграмм – позволяет значительно упростить создание, например программ управления внешним объектом или обработки данных, полученных от внешнего устройства. Вместе с тем в среде LabVIEW возможно использование программ на Си. Возможности системы расширяются за счет дополнительных библиотек по работе с базами данных (SQL, Toolkit), обработке изображений (Convert VI), PID-регулированию (PID Control). Управление экспериментом – одно из возможных приложений LabVIEW. Для пользователя управление экспериментом сводится к работе с лицевой панелью виртуальной установки на экране монитора, с помощью которой он наблюдает за необходимыми параметрами и управляет программно-аппаратным комплексом. В среде LabVIEW могут быть созданы виртуальные приборы, моделирующие как отдельные функции измерительного или управляющего комплекса, так и весь комплекс в целом; возможно полное моделирование эксперимента. В последнем случае нет необходимости подключать внешние и согласующие устройства. Пользователь работает с виртуальными устройствами, обеспечивающими достаточную степень адекватности моделируемых процессов реальным. 15
Пакет STATISTICA Во многих естественно-научных областях статистические методы были и остаются важной составной частью процедуры обработки результатов измерений. Это касается практически всех отраслей знаний: физики, химии, биологии, геологии, метеорологии и многих др. Современные программы для статистической обработки данных позволяют применять сложные современные методы анализа даже в тех областях, где ранее такие исследования были чрезвычайно трудоемкими и, следовательно, проводились достаточно редко. Некоторые примеры применения системы STATISTICA для обработки экспериментальных данных можно найти в документации на систему. Методы математической статистики изучают не только студенты естественно-научных специальностей, но и экономисты, инженеры, психологи, социологи и многие другие специалисты. Поэтому курс математической статистики входит в программу большинства высших учебных заведений, а неотъемлемой его частью становится освоение соответствующего программного обеспечения. Опыт работы показал, что система STATISTICA может служить не только эффективным инструментом для научных исследований, но и чрезвычайно удобной средой для обучения методам статистического анализа. Перечислим продукты фирмы StatSoft: STATISTICA 5.5 – мощный пакет статистического и графического анализа данных; Quick STATISTICA – базовый набор наиболее часто используемых статистических методов + все графические возможности системы STATISTICA + языки программирования; Power analysis – приложение для анализа необходимых условий получения надежных статистических результатов; Neural Networks – универсальная программа для проведения анализа в нейронных сетях. Student Edition of STATISTICA – краткая версия STATISTICA для студентов. Другие математические пакеты Все многообразие математических пакетов не ограничивается перечисленными выше системами. Не претендуя на полноту, перечислим некоторые: MAPLE VI – система символьных преобразований (входит в MATLAB и частично входит в MATHCAD); MATHEMATICA – мощная система для аналитических решений. 16
Графические пакеты Графические пакеты предназначены для визуализации результатов расчетов. В качестве наиболее известных назовем следующие продукты: компании Golden Software: Surfer 7.0 – для построения пространственных поверхностей, линий уровня и карт; Grapher 2 – для построения двумерных графиков, а также MapViewer 3.0 и Didger 2.0, других компаний: Harvard ChartXL 2.0 – профессиональная программа построения графиков по формулам, Math Plotter 3.6 – программа построения всевозможных графиков, Super Graph 2.14 – программа анализа графических зависимостей, математический пакет, строит графики в любых системах координат, Graphit 2000 Professional Edition – программа построения графиков по математическим выражениям со многими возможностями их редактирования и другие.
17
3. ПРАКТИЧЕСКОЕ ПРИМЕНЕНИЕ MATLAB В этом языке упомянутые алгоритмы интегрированы в самосогласованной и удобной для использования форме, что позволяет назвать программу MATLAB симфонией алгоритмов. Расскажем кратко о многочисленных применениях MATLAB для решения самых разнообразных научных, технических и экономических задач, а также о профессиональных приложениях MATLAB, расширяющих его возможности в конкретных областях. Профессиональные приложения MATLAB Применение сочетания программ MATLAB и Simulink привело к разработке широкого класса профессиональных инструментальных приложений (toolboxes – тулбоксы, т. е. наборы инструментов) для создания, анализа и оптимизации систем. Тулбоксы – больше, чем набор полезных функций. Без преувеличения можно сказать, что они представляют собой последнее слово в разработке (исследованиях) в таких областях, как управление, обработка сигналов, идентификация систем и многих других. Поэтому, освоив и применяя в MATLAB тулбоксы, можно достичь уровня разработчиков (исследователей) мирового класса. Некоторые важные характеристики тулбоксов: каждый тулбокс построен на программах, надежность и точность которых проверена многолетним опытом; все тулбоксы совместимы и легко интегрируются не только с MATLAB, но и с Simulink и любым другим тулбоксом, который уже установлен; все тулбоксы написаны в коде открытой архитектуры MATLAB, можно прочитать все m-файлы, сделать к ним свои добавления или использовать их как шаблоны при создании собственных функций; каждый тулбокс может функционировать на любой компьютерной платформе, на которой работает MATLAB. Для многих тулбоксов (таких, как коммуникация, обработка сигналов, энергетические системы и др.) поставляются наборы блоков 18
(blocksets) для создания динамических моделей при помощи блок-диаграмм программы Simulink. Далее приведен список профессиональных тулбоксов, распространяемых в настоящее время компанией MathWorks. Этот список быстро расширяется, так как каждый год разрабатываются новые пакеты. Тулбокс Communications Коммуникационный тулбокс содержит средства для разработки современных коммуникационных систем, включая моделирование в реальном масштабе времени. Он охватывает такие области применения, как электронные телекоммуникации, телефония, авиация и космонавтика, а также компьютерная периферия. Тулбокс "Системы управления" Тулбокс "Системы управления" – основной пакет MATLAB для моделирования, анализа и проектирования автоматических систем управления. Широко применяется в разработке высокотехнологических систем, как, например, автомобили и аэрокосмическая техника, компьютерная периферия и управление производственными и технологическими процессами. Финансовый тулбокс Финансовый тулбокс программы MATLAB содержит необходимые функции для ввода, обработки и вывода финансовых данных, финансового анализа и прогноза. Применения включают ценовую политику, расчет процентов и доходов, анализ производных и оптимизацию портфелей. Финансовый тулбокс оперирует во взаимодействии с тулбоксами: статистическим и оптимизации. Рекомендуется также графический интерфейс пакета Simulink для моделирования финансовых систем как нестохастическими методами, так и методами Monte-Carlo. Тулбокс идентификации систем методом спектрального анализа (Frequency-Domain System Identification – FDSI) FDSI-Тулбокс включает набор m-файлов для моделирования линейных систем на основе измерений их частотных окликов. Тулбокс "Нечеткая логика" ("The Fuzzy Logic") Пакет "Нечеткая логика" содержит средства, предназначенные для проектирования, моделирования и анализа систем с нечетким откли19
ком. Он имеет легко осваиваемые и в то же время мощные средства для преобразования входных данных в выходные данные системой правил и связей произвольной сложности, выраженных обычным языком. Системы могут быть созданы в MATLAB или включены в блочные диаграммы Simulink с возможностью генерации кода для независимого выполнения. Тулбокс спектрального анализа высокого порядка (Higher-Order Spectral Analysis) Этот тулбокс содержит инструменты для обработки сигналов, являющихся результатом нелинейных процессов или искаженных негауссовским шумом, с использованием спектрального разложения высокого порядка. Тулбокс обработки изображений (Image Processing) Тулбокс содержит функции для анализа, статистической обработки усиления, восстановления и двумерного преобразования изображений (фильтры, цвет, геометрия, морфология). Тулбокс управления (оптимизации) линейными матричными неравенствами (LMI Control) Этот тулбокс позволяет эффективно решать системы линейных матричных неравенств (Linear Matrix Inequalities), которые возникают при решении многих задач в таких областях, как управление, распознавание, фильтрация, проектирование структур, теория графов и линейная алгебра. Тулбокс LMI Control также содержит функции для проектирования и анализа таких характеристик систем управления, как помехоустойчивость, производительность и др. Тулбокс моделирования предсказуемого управления (Model Predictive Control) Тулбокс Model Predictive Control особенно полезен для управления системами с большим количеством входных и выходных переменных, имеющих много связей. Широко применяется в химической инженерии для управления процессами. Тулбокс Мю-анализа и синтеза (Mu-Analysis and Synthesis) Этот пакет содержит набор функций для использования в анализе и проектировании устойчивых линейных систем со многими переменными. Его цель – сделать доступными некоторые последние достижения в теории систем управления в среде MATLAB, а именно H-бесконечное оптимальное управление, m-анализ и синтез. 20
The NAG Foundation Тулбокс Тулбокс The NAG Foundation включает более 200 подпрограмм численного расчета из хорошо известных библиотек NAG Fortran, применяемых для задач пограничного слоя, оптимизации, адаптивной квадратуры, подгонки при помощи кривой или поверхности и многих других. Тулбокс Neural Network (нейронные сети) Пакет Neural Network – набор MATLAB-функций для проектирования и имитации нейронных сетей. Нейронные сети – компьютерные архитектуры, инспирированные биологическими нервными системами. Они применяются в областях, в которых формальный анализ чрезвычайно труден или невозможен, таких, например, как распознавание образов, идентификация и управление нелинейными системами. Тулбокс Optimization Тулбокс Optimization включает методы нахождения экстремумов линейных и нелинейных функционалов при наличии связей и ограничений. Тулбокс уравнений в частных производных (Partial Differential Equation) Тулбокс предназначен для решения уравнений в частных производных в пространстве двух измерений и времени методом конечных элементов. Он включает набор функций и интуитивный графический пользовательский интерфейс для предварительной обработки, решения и последующей визуализации. Тулбокс проектирования управления с применением теории количественных обратных связей (QFT Control Design) Тулбокс предназначен для применения спектрального приближения в проектировании контроллеров для неопределенных систем. Он находит оптимальное решение на основе компромисса между сложностью контроллеров (а следовательно, и возможностью внедрения) и их техническими характеристиками. Тулбокс устойчивого управления (Robust Control) Тулбокс содержит специализированный набор инструментов для анализа и синтеза систем управления, устойчивых по отношению к случайным возмущениям, которые могут возникнуть в реальном мире. 21
Тулбокс обработки сигналов (Signal Processing) Тулбокс содержит средства обработки сигналов. Его применение включают аудиосистемы (аналоговая и цифровая звукозапись), видеосистемы (цифровое телевидение, обработка сигналов и сжатие данных), телекоммуникации (факс и голосовой телефон), медицину (CATсканирование, магниторезонансное изображение), геофизику и эконометрику. Тулбокс Сплайн (Spline) Тулбокс содержит набор m-файлов для конструирования сплайнов, которые используются для кусочно-полиномиальных аппроксимаций других функций. Аппроксимации сплайнами имеют некоторые преимущества по сравнению с другими видами аппроксимаций. Статистический (Statistics) тулбокс Тулбокс содержит набор m-файлов и графических средств для исследования фундаментальных законов статистики и теории вероятностей, статистического анализа данных и моделирования методом Монте-Карло. Тулбокс Символьной математики (Symbolic Math) Тулбокс позволяет в среде MATLAB выполнять аналитические вычисления, используя команды и некоторые дополнительные специализированные функции основной символьной библиотеки программы Maple VI. Тулбокс Идентификации систем (System Identification) Пакет включает набор средств, предназначенных для оценки и идентификации систем. Он позволяет построить математическую модель физической системы (такой, как электрический мотор или даже финансовый рынок) на основе только входных и выходных характеристик. Тулбокс элементарных волн (Wavelet) Тулбокс содержит обширный набор программ, позволяющих повысить производительность методов, использующих технику Фурье-анализа для изучения многомасштабных или нестационарных явлений, а также улучшить их понимание. Он применяется в приложениях обработки сигналов и изображений, включая голосовую и аудио обработку, коммуникации, геофизику, финансы и медицину. 22
Simulink мастерская реального времени (Real-Time Workshop) Пакет автоматически генерирует код прямо из блочных диаграмм пакета Simulink. Это обеспечивает создание непрерывных, дискретных и гибридных систем на широком спектре компьютерных платформ, включая аппаратуру реального времени. Мастерская реального времени может быть использована для быстрого создания программного обеспечения для встроенных контроллеров реального времени. Коды для систем обработки цифровых сигналов могут быть сгенерированы, кросс-компилированы, линкованы и загружены в выбранный вами процессор. Мастерская реального времени поддерживает DSP-платы и широкий диапазон изготовляемой и доступной для пользователей аппаратуры. Современные программы численного моделирования систем и процессов становятся все более автоматизированными, облегчая пользователю процесс постановки и решения широкого класса сложных задач. Еще больший эффект дают современные возможности качественного визуального представления результатов. Среди таких программ, безусловно, одно из лидирующих мест занимает система MATLAB + Simulink компании MathWorks, на основе которой разработано большое количество профессиональных приложений (так называемых тулбоксов) для конкретных областей применения. Эти приложения, собравшие достижения численного моделирования определенного круга задач, являются не просто набором методов и команд, а, без преувеличения, последним словом в данном направлении исследований. Профессиональное овладение специализированным тулбоксом позволит разработчику подняться на уровень мировых достижений и на равных конкурировать с лидерами в этой области.
23
4. ХАРАКТЕРИСТИКА ИНТЕГРИРОВАННОЙ СРЕДЫ MATLAB История существования пакета, название которого происходит от Matrix Laboratory (Матричная лаборатория) насчитывает более двадцати лет. Развитие пакета "шло в ногу" с развитием вычислительной техники: от "больших" ЭВМ с малыми интерактивными возможностями до настольных компьютеров с пятью и более способами восприятия информации. Несмотря на высокую скорость смены поколений вычислительной техники, MATLAB впитывал все лучшее от каждого из них. В результате в настоящее время MATLAB представляет удачное сочетание возможностей математики с последними достижениями в области вычислительной техники. Основное достоинство пакета заключается в том, что для работы пользователю достаточно знать о нем ровно столько, сколько требует решаемая задача. Если же решаемая задача потребует создания новых специальных инструментов, пакет предоставит пользователю универсальный язык объектно-ориентированного программирования в сочетании с интерактивными средствами отладки создаваемых программ. MATLAB – мощное средство математического моделирования, обеспечивающее проведение исследований во всех областях науки и техники. При этом пакет позволяет эффективно сочетать два основных подхода к созданию и исследованию моделей: аналитический и имитационный. Кроме того, в сфере математического моделирования пакет позволяет наиболее полно использовать современные достижения компьютерных технологий, в том числе средства визуализации и озвучивания данных с возможностью обмена данными по сети Internet. Пользователю предоставляется богатая библиотека блоков (порядка 800), единственная проблема работы с которой заключается в умении отыскать нужные для решения задачи. Библиотека функций разбита на разделы, наиболее общие и часто используемые из которых входят в состав ядра пакета. Специфические 24
функции для конкретной области входят в разделы Инструментов (Toolboxes). Кроме того, имеются средства взаимодействия с MS Word и MS Excel. Особое место среди инструментальных приложений занимает система визуального моделирования SIMULINK. В пакете используется несколько типов файлов, для каждого из которых определен набор операций и реализующих их средств. При работе с SIMULINK используются файлы трех типов: М-файлы (расширение .m) содержат текст – программы на языке MATLAB; Mdl-файлы (.mdl) моделей SIMULINK; MAT-файлы (.mat) содержат данные в двоичном коде. Все разделы пакета содержат средства визуализации моделирования, реализуемые с помощью SIMULINK. Все блоки, включенные в состав библиотеки, являются равноправными и могут быть использованы при разработке любой модели независимо от того, к какому разделу они относятся. Запуск MATLAB приводит к появлению на экране цветной заставки. Затем открывается командное окно MATLAB Command Window, состоящее из главного меню пользователя и рабочего поля. Главное меню содержит следующие разделы: File – команды работы с файлами и опции настройки системы; Edit – команды редактирования; Window – список открытых окон приложения; Help – вызов помощи. Из перечисленных разделов наибольший интерес представляет раздел File. Содержащиеся в нем команды разбиты на группы: команды работы с файлами; команды работы с рабочей областью; опции настройки системы; команды вывода на печать; список файлов, использовавшихся в последнее время; команды выхода из пакета. Ниже строки основного меню расположена панель кнопок, обеспечивающих быстрый доступ к часто используемым командам меню и аналогичных офисным приложениям. Седьмая кнопка слева – Workspace Browser – просмотр содержимого рабочей области памяти; восьмая – Path Browser – вывод на экран окна настройки параметров файлов и папок приложения; девятая – New Simulink Model – запуск Simulink. Вторая часть окна – рабочее поле, которое является основным средством взаимодействия пользователя с системой и обеспечивает ведение диалога посредством команд. Любая информация, вводимая пользователем в активной строке, воспринимается как команда к исполнению. Раздел File содержит опции и команды настройки системы: Show GUI Layout Tool – вызов средств разработки графического интерфейса 25
пользователя; Set Path – выбор рабочей папки; Preferences – установка предпочтительных параметров системы. Выбрав Set Path, вы откроете окно MATLAB Path, содержащее: редактируемую строку Current Directory c полным путем к активной папке; окно Path со списком путей доступа к разделам функций пакета; окно Files in cо списком файлов в выделенном каталоге. В правой части окна MATLAB Path вертикально расположены кнопки: Add to Path – добавление раздела библиотеки функций пакета в список Path через диалоговое окно, аналогичное Current Directory; Remove from Path – удаление выделенной строки из списка Path; Undo/ Redo – отмена предыдущей операции обновления списка; Re-fresh – вывод обновленного списка в окно Path; Save Setting – сохранение внесенных изменений; Restore Defaults – восстановление предыдущих значений параметров; Close – закрытие окна Matlab Path. Опция Preferences обеспечивает выбор форматов представления числовой и текстовой информации, формата копирования данных в буфер обмена и настройку ряда параметров системы. Диалоговое окно имеет три вкладки: General – общие параметры системы, Command Window Font – выбор шрифта командного окна и Copying Options – опции копирования. Вкладка General позволяет настроить следующие параметры: 1. Формат Numeric Format – вывод числовых данных по одному из 10 вариантов: Short – вывод в формате с фиксированной точкой пяти значащих цифр (по умолчанию); Long – вывод в формате с фиксированной точкой (15 значащих цифр); Hex – шестнадцатеричный формат; Bank – формат для вывода денежных сумм; Plus – вывод без мнимой части положительных и отрицательных чисел со знаком; Short E – вывод в экспоненциальной форме дробных чисел в формате с плавающей запятой, мантисса с пятью значащими цифрами; Long E – вывод в экспоненциальной форме дробных чисел, в дробной части мантиссы 15-ти значащих цифр; Short G – короткий формат, когда в дробной части выводится одна дополнительная значащая цифра; Long G – длинный формат, когда в дробной части выводится одна дополнительная значащая цифра; Rational – дробные числа представляются в виде простых дробей. 2. Формат использования рабочего поля командного окна. При использовании свободного (Loose) формата выводимые сообщения разделены пустой строкой. Формат Compact обеспечивает вывод сообщения в каждой строке рабочего поля. 26
3. Editor Preference – выбор редактора программных файлов. Можно использовать встроенный редактор пакета (переключатель в положении Buit-in) либо указать другой, введя соответствующий путь, или применив кнопку Browse. 4. Help Directory – каталог с help-файлами в формате html. 5. Echo On – включить/выключить функции отображения в рабочем поле вводимых команд. 6. Show Toolbar – показать/убрать панель кнопок главного меню. 7. Enable Graphical Debugging – разрешить/не разрешить использование графических средств при работе отладчика. Вкладка Command Window Font обеспечивает выбор стиля, размера и цвета шрифта в командном окне и цвета фона рабочего поля. При установке флажка Display Fixed Pitch Fonts Only в списке типа шрифтов остаются шрифты с дискретным изменением размера. Вкладка Copying Options – установка параметров для операций копирования. 1. Clipboard Format – выбор формата копирования в буфер обмена: Windows Metafile – WMF – формат, используемый для хранения векторных рисунков; Windows Bitmap – обеспечивает хранение растровых изображений. 2. Флажок Honor figure size properties позволяет выбрать способ копирования графических файлов: при установке флажка можно задать размер и расположение графика при печати; при снятии – графическое окно выводится в виде, как оно выглядит на экране. 3. Флажок White background устанавливает белый цвет фона графического окна; при снятом флажке цвет фона устанавливается пользователем. Вызов графического интерфейса пользователя (GUI) проводится по команде Show GUI Layout Tool меню File. При этом открывается диалоговое окно Guide Control Panel, содержащее инструменты для компоновки элементов GUI. Кнопка Property Editor запускает редактор характеристик графических объектов, позволяющий изменить параметры компонентов GUI (цвет, размер, положение и т. д.). Для создания нового графического окна (Figure) нужно нажать кнопку Add Figure. При этом станут доступны кнопки элементов GUI (New Object Palette) для построения графиков, переключателей, меню и т. д. 27
Чтобы добавить элемент интерфейса в графическое окно, необходимо нажать мышкой соответствующую кнопку, переместить курсор в графическое окно и щелкнуть ЛКМ (левой кнопкой мышки) в месте, где должен находиться новый элемент. Изменение размеров и перемещение элементов интерфейса в пределах графического окна производится ЛКМ. При последующих вызовах средств создания интерфейса ранее созданные графические окна выводятся в списке Guide Controlled Figure List. Выбранное в нем окно становится доступным для редактирования.
28
5. ХАРАКТЕРИСТИКА СРЕДСТВ SIMULINK MATLAB Разработка моделей средствами SIMULINK (S-моделей) основана на технологии Перетащи и Оставь (Drag-and-Drop). Для построения моделей используются блоки-модули из библиотеки Simulink. Блоки, включаемые в модель, могут быть связаны между собой как по информации, так и по управлению. Данные, которыми обмениваются блоки, могут быть скалярными величинами, векторами или матрицами. Любая модель может иметь иерархическую структуру, т. е. состоять из моделей разных уровней, причем число уровней иерархии не ограничено. Наряду с другими параметрами моделирования можно задать способ изменения модельного времени (с постоянным или переменным шагом) и условия окончания моделирования. Для наблюдения при моделировании за процессами используются смотровые окна, входящие в состав библиотеки. SIMULINK обеспечивает доступ ко всем возможностям пакета MATLAB и является одновременно самостоятельной его компонентой, при работе с которой не обязательно иметь навыки в использовании других инструментов пакета. Еще одно важное достоинство SIMULINK заключается в открытости: состав библиотеки может быть пополнен путем разработки пользователем собственных блоков. Запуск SIMULINK проводится нажатием кнопки на панели меню командного окна или по команде New Model раздела File главного меню. При этом открываются два окна: пустое (untitled) – для создания новой S-модели; окно Library: simulink c перечнем основных разделов библиотеки. Оба окна содержат строку меню, панель инструментов, строки состояния и рабочее поле. Меню содержит разделы: File – для работы с mdl-файлами; Edit – команды редактирования блок-диаграммы и опции для работы с библиотекой; View – показать/убрать панель инструментов и строку состояния; Simulation – команды управления моделированием; Format – команды редактирования внешнего облика блоков диаграммы и диаграммы в целом. 29
Панель инструментов аналогична офисным приложениям, но имеются кнопки Start (треугольник) – запуск модели на исполнение и Stop (квадрат) – закончить моделирование. Строка состояния модели содержит следующие поля (слева направо): текстовое поле состояния, имеющее значение Ready (Готов) или Running (Выполнение); индикатор завершенности моделирования; поле текущего значения модельного времени (выводится только после запуска на моделирование); используемый алгоритм расчета состояний модели. 5.1. Библиотеки блоков Библиотека блоков содержит набор виртуальных объектов, из которых строится модель. Для удобства работы библиотека разбита на семь разделов, из которых шесть являются базовыми и не могут изменяться (кроме внешнего оформления): Sources (источники), Sinks (получатели), Discrete (дискретные элементы), Linear (линейные элементы), Nonlinear (нелинейные элементы), Connections (соединения). Седьмой раздел – Blocksets & Toolboxes (наборы блоков и инструментов) содержит блоки компонентов MATLAB, включенных пользователем в конфигурацию пакета. При минимальной рабочей конфигурации в седьмом разделе имеется только один подраздел – Simulink Extras (дополнение), который содержит шесть частей. Три части являются дополнением к одноименным основным разделам библиотеки. Например, Additional Sinks (Дополнение к разделу Sinks) имеет дополнительные графические окна для визуализации спектрального анализа сигналов, для отображения корреляционных характеристик и другое (при наличии инструментального средства Signal Processing Toolbox). Три других: Transformation (Преобразования) – блоки пересчета координат, шкал температуры и углов; Flip-Flop – блоки-триггеры и Linearization – блок линейной аппроксимации, вычисляющий производную входного сигнала по времени. Чтобы открыть интересующий раздел библиотеки, достаточно дважды щелкнуть на нем ЛКМ. Каждый блок библиотеки имеет параметры настройки. Чтобы открыть окно настройки параметров, нужно два раза щелкнуть ЛКМ на блоке после того, как блок будет помещен в окно блок-диаграммы. Окна настройки имеют идентичную структуру и содержат характеристику блока, поля ввода (выбора) значений параметров и четыре кнопки: Apply – применить; Revert – вернуть предыдущее значение; Help – помощь в форма30
те html; Close – закрыть окно. Новые значения параметров подтверждаются нажатием Apply. 5.2. Моделирование сигналов Блоки, входящие в раздел Library:Simulink/Sources (ИСТОЧНИКИ (SOURCES)), предназначены для формирования управляющих (входных) сигналов для S-модели. Перечислим эти блоки: Constant – формируют постоянную величину (скаляр, вектор или матрицу); Signal Generator – создает непрерывный сигнал произвольной формы; Step – генерирует единичный дискретный сигнал с заданными параметрами; Ramp – создает линейно возрастающий/убывающий сигнал; Sine Wave – генератор гармонических колебаний; Repeating Sequence – повторяющаяся последовательность; Discrete Pulse Generator – генератор дискретных импульсных сигналов; Pulse Generator – генератор импульсных сигналов; Chirp Signal – генератор гармонических колебаний переменной частоты; Clock – источник непрерывного временного сигнала; Digital clock – источник дискретного временного сигнала; Random Number – источник дискретного сигнала, амплитуда которого является случайной величиной, распределенной по нормальному закону; Uniform Random Number – источник дискретного сигнала, амплитуда которого является равномерно распределенной случайной величиной; Band-Limited White Noise – генератор "белого шума" с ограниченной полосой. Следующие два блока обеспечивают использование в модели данных, полученных в SIMULINK или другими средствами MATLAB: From File – для ввода в S-модель данных из МАТ-файла; From Workspace – обеспечивает ввод данных из рабочей области MATLAB. Структура данных в МАТ-файле представляет многомерный массив с переменным числом строк, зависящим от числа регистрируемых переменных. Элементы первой строки содержат последовательные значения модельного времени, элементы в других строках – соответствующие им значения переменных. Блок Step имеет три параметра настройки: Step time – шаг времени, который определяет длительность сигнала, исходное значение равно 1; Initial value – начальное значение – амплитуда сигнала, исходное значение равно 0; Final value – конечное значение – амплитуда сигнала по истечении шага моделирования, исходное значение – 1. Значения этих параметров блока могут задаваться не только в форме констант, но и в форме вычисляемых выражений, в том числе функциональных. 31
Блок Discrete Pulse Generator имеет пять параметров настройки: Amplitude – амплитуды сигнала, Period – периода сигнала, Pulse width – ширины импульса, Phase delay – задержки сигнала, Sample time – шага изменения модельного времени. Значения 2, …, 4 параметров задаются как целое число шагов модельного времени (number of samples). Размер шага можно определить как константу или в виде вычисляемого выражения. Вычисленное значение округляется до целого. Аналогично задается амплитуда, но округление не происходит. Блок Random Number имеет четыре параметра настройки: Mean и Variance – среднее и дисперсия нормального закона, Initial seed – задает начальное значение для инициализации генератора последовательности случайных чисел, Sample time – шаг изменения модельного времени. При фиксированном значении параметра Initial seed генератор вырабатывает одну и ту же последовательность. Блок Uniform Random Number формирует сигнал, амплитуда которого является случайной величиной, распределенной равномерно в заданном интервале. Кроме аналогичных параметров с предыдущим блоком, еще два параметра (Minimum и Maximum) задают диапазон распределения случайной величины. Блок Digital Clock имеет единственный параметр – шаг изменения модельного времени Sample time, задаваемый аналогично блоку Discrete Pulse Generator. Особенность блока в том, что он вычисляет новое значение модельного времени для проверки условия окончания моделирования, которое вычисляется как сумма предыдущего значения и величины шага моделирования. Блок From File параметром настройки имеет имя МАТ-файла. Для поиска можно указать полный путь доступа к файлу. После закрытия окна настроек имя файла выводится на изображении блока. Блок From Workspace использует в S-модели данные, хранящиеся в рабочей области MATLAB, и имеет один параметр настройки, представляющий упорядоченный список данных в квадратных скобках. Первым из элементов списка tour является вектор значений модельного времени, остальные элементы – векторы значений вводимых из рабочей области величин с длиной, равной длине вектора tour. 5.3. Просмотр и анализ результатов моделирования Блоки раздела ПОЛУЧАТЕЛИ (SINKS) можно разделить на три вида: блоки, используемые при моделировании в виде смотровых окон (Scope, 32
XYGraph, Display); блоки для сохранения промежуточных и/или выходных результатов моделирования (To File, TO Workspace) и блок управления (Stop Simulation) для прерывания моделирования при выполнении тех или иных условий. Блок Scope позволяет наблюдать в процессе моделирования динамику изменения характеристик исследуемой системы. По оси ординат откладываются значения наблюдаемой величины, а по оси абсцисс – значения модельного времени. По умолчанию для оси ординат используется диапазон (–5; 5), а для оси модельного времени – (0; 10). Наблюдаемые кривые различаются цветом, одновременно можно наблюдать до 30 кривых. Для управления параметрами окна Scope используется панель меню. Перечислим слева направо кнопки, входящие в меню: изменение масштаба осей графика, изменение масштаба по оси абсцисс, изменение масштаба по оси ординат, автошкалирование, сохранение установленного масштаба осей, вызов диалогового окна настройки параметров, печать содержимого окна. Для изменения масштаба по выбранной оси координат необходимо: нажать кнопку изменения масштаба; подвести курсор мыши к тому участку графика, который должен быть отображен в новом масштабе; нажать ЛКМ один раз. Первое нажатие ЛКМ приводит к 4-кратному увеличению масштаба, каждое последующее увеличивает масштаб в два раза. При нажатии кнопки вызова диалогового окна настройки открывается окно Properties: Scope с двумя вкладками: Axes – для установки параметров осей графика, Setting (установки) – для ввода значений дополнительных параметров блока Scope. В нижней части окна расположены кнопки, аналогичные кнопкам окон настройки параметров других библиотечных блоков: Apply (Применить), Revert (Вернуть исходные значения), Help (Помощь в формате HTML), Close (Закрыть окно). Вкладка Axes содержит поле Default limits (Диапазоны осей), флажок Hide tick label (Скрыть обозначение осей) – график занимает всю рабочую область экрана и имеет наибольшее значение модельного времени по оси абсцисс (Time range). Если величина заданного интервала моделирования не превышает значения Time range, то под графиком в строке Time offset выводится 0, а если превышает, то в строке выводится величина "скрытого" интервала времени длиной n*Time range (n – целое число), и в окне моделирования отображается только отрезок вре33
мени, равный Тм-n*(Time range), где Тм-длительность интервала моделирования. Вкладка Setting имеет следующие поля: General, Data history и флажок Floating Scope. General служит для выбора дискретности измерения характеристик системы (Decimation) и модельного времени (Sample time). По умолчанию для измеряемых характеристик дискретность равна 1, а для модельного времени – нулю. Это означает, что значение наблюдаемой характеристики измеряется на каждом шаге моделирования, а модельное время считается непрерывным. Если параметр Decimation равен 3, то значение характеристики определяется один раз в течение трех шагов моделирования. Дискретность модельного времени – величина шага моделирования (по умолчанию 0.02). Для дискретных систем величина шага задается положительной константой или в форме вычисляемого выражения. Дискретность модельного времени дает окончание вывода данных в окне Scope. Если очередной интервал заканчивается за пределами окна, то данные для него не выводятся. Поле Data history задает максимальный объем и способ хранения данных. Объем сохраняемых данных (Limit rows to last) вводится в строке редактирования. Способ хранения указывает флажок Save data to workspace. Если он установлен, то отображаемые данные хранятся в виде матрицы, аналогичной МАТ-файлу. Имя матрицы указано в строке редактирования, по умолчанию – Scope Data. Флажок Floating Scope изменяет способ использования блока Scope в блок-диаграмме. Блок XYGraph строит графики зависимостей величин в модели. Блок имеет два входа: первый предназначен для ввода аргумента, второй – для ввода значений функции этого аргумента. Окно имеет четыре раздела: File – включает стандартные команды и опции вывода графиков на печать; Edit – содержит одну команду – Copy Figure, позволяющую копировать содержимое окна блока в буфер обмена; Window и Help. Параметры блока: диапазоны осей X-min, X-max, Y-min и Y-max; шаг модельного времени, по умолчанию – 1, т. е. величина шага совпадает с установленной для модели. Блок Display имеет четыре параметра настройки: Format – задает формат вывода по аналогии с командным окном MATLAB; Decimation – задает периодичность вывода значений в окне Display; переключатель Floating display указывает способ использования блока в диаграмме; Sample Time – задает величину шага модельного времени. Блок может 34
использоваться для вывода скалярных и векторных величин. Если величина – вектор, то исходный формат блока изменяется автоматически. Об этом говорит черный треугольник в нижнем правом углу блока. Для каждого элемента вектора создается свое мини-окно. Чтобы они были видны, необходимо "растянуть" блок. Блок To File используется вместе с блоком From File раздела Sources и обеспечивает запись в МАТ-файл данных при моделировании. Блок имеет параметры настройки: File name – имя файла, по умолчанию – untitled.mat; Variable name – имя переменной для просмотра и изменения данных в командном окне, по умолчанию – ans; Decimation – дискретность записи данных в файл, при равенстве единице запись проводится на каждом шаге моделирования; Sample Time – величина шага моделирования. Блок To Workspace используется вместе с блоком From Workspace раздела Sources и предназначен для хранения данных, полученных при моделировании. Данные хранятся в матрице и расположены по строкам, значения модельного времени не регистрируются. Блок имеет параметры настройки: Variable name – имя для хранения данных, по умолчанию – Simout; Maximum number of rows (максимальное число строк) – число шагов моделирования, на котором регистрируются данные, по умолчанию – inf (данные регистрируются на всем интервале моделирования); Decimation – дискретность регистрации данных; Sample time – величина шага моделирования. 5.4. Исследование непрерывных систем, представленных моделями в операторной форме и в пространстве состояний Раздел ЛИНЕЙНЫЕ ЭЛЕМЕНТЫ ( LINEAR ) содержит блоки, предназначенные для описания линейных непрерывных систем, и блоки общего назначения. Первая группа содержит: Gain – усилитель; Transfer Fcn – передаточное звено; State-Space – описание системы в пространстве состояний; Zero-Pole – задание звена через указание значений его полюсов и нулей, а также значения коэффициента усиления; Derivative – блок вычисления производной; Dot Product – блок вычисления свертки (скалярного произведения) двух входных сигналов; Matrix Gain – матричный усилитель (умножитель) входного сигнала для многомерной системы. В блоки общего назначения входят: Integrator; Sum – блок суммирования входных сигналов; Slider Gain – блок задания коэффициента усиления. 35
Блок Integrator вычисляет время "существования" входного сигнала (подобно блоку Discrete-Time Integrator) и используется для определения временных характеристик моделируемой системы. Блок имеет параметры настройки: Integrator method – один из трех методов интегрирования: прямого метода Эйлера, обратного метода Эйлера, метода трапеций; External reset – подключение дополнительного управляющего сигнала; Initial condition source – внешняя установка начального значения входного сигнала. Параметр External reset может иметь значения: none – управляющий сигнал не используется; rising – возрастающий сигнал для управления; falling – ниспадающий сигнал для управления; either – изменение амплитуды управляющего сигнала. Параметр Initial condition source имеет одно из значений: internal – собственная установка начального значения; external – установка начального значения извне. Дополнительные настройки проводятся после нажатия Apply: Initial condition – начальное состояние сумматора задается числом или в виде вычисляемого выражения; Limit output – ограничение выходного значения имеет параметры: Upper saturation limit и Lower saturation limit – верхнее и нижнее предельные значения времени (по умолчанию inf); Show saturation port и Show state port – флажки, показать порт насыщения и состояния. Если флажок Limit output установлен, то при переходе значения сумматора через верхний или нижний предел на дополнительных выходах блока (saturation port и state port) формируется единичный сигнал. Чтобы этот сигнал можно было использовать для управления работой S-модели, флажки Show… должны быть включены. Снимаемый с state port сигнал может быть использован только для прерывания алгебраического цикла или для согласования состояния подсистем модели. Блок Integrator, кроме того, требует задания точности вычислений – Absolute tolerance. Блок Sum используется в двух режимах: сложения входных сигналов с любыми знаками; суммирования элементов вектора. Для управления блоком используется параметр настройки List of sings – список знаков, который задается: в виде последовательности знаков и – по полярности входного сигнала, либо в виде целой положительной константы по числу входов, а все входы считаются положительными, либо в виде символа , что аналогично предыдущему. 36
Блок Slider Gain – элемент взаимодействия пользователя с моделью, имеет три поля ввода: для указания нижнего (Low) и верхнего (High) уровней параметра и текущего значения. При выборе нового диапазона нужно указать новое значение параметра и изменить границы диапазона. 5.5. Исследование дискретных и импульсных систем Разделяют два типа дискретных систем: с дискретным временем и с дискретными состояниями. Раздел ДИСКРЕТНЫЕ ЭЛЕМЕНТЫ (DISCRETE) содержит блоки: Unit Delay – блок задержки входного сигнала на заданное число шагов моделирования; Discrete-Time Integrator – дискретный сумматор (счетчик) времени; Zero-Order Hold – экстраполятор нулевого порядка; First-Order Hold – экстраполятор первого порядка; Discrete State-Space – блок формирования состояния системы; блоки Z – преобразования входного сигнала: Discrete Filter, Discrete Transfer Fcn, Discrete Zero-Pole. Параметрами настройки блока Unit Delay являются: Initial condition – начальное значение амплитуды сигнала в момент активизации блока; Sample time – задержка определяет число шагов моделирования, в течение которых сохраняется значение сигнала. Параметры блока задаются либо в виде числовой константы, либо в виде вычисляемого выражения. Блок Discrete-Time Integrator, подобно блоку Integrator, выполняет суммирование интервалов времени между поступлениями входного сигнала. Параметры настройки блока аналогичны блоку Integrator. 5.6. Исследование нелинейных систем Первую группу раздела НЕЛИНЕЙНЫЕ ЭЛЕМЕНТЫ (NONLINEAR) образуют блоки математических функций: Abs – формирует абсолютное значение входного сигнала; Trigonometric Function – преобразует входной сигнал по тригонометрической функции из "выпадающего" меню; Math Function – использует элементарные нетригонометрические функции из "выпадающего" меню; Rounding Function – использует функции округления значения амплитуды входного сигнала из "выпадающего" меню; MinMax – проводит поиск экстремального элемента входного вектора по цели поиска в окне настроек при учете числа входов блока; Fcn – универсальный вычислительный блок, аргументом которого является значение входного сигнала U, причем вычисляемое выражение должно иметь скалярное значение. Данное ограничение отсутствует у блока MATLAB Fcn, позволяющего применить к входному сигналу лю37
бую подпрограмму обработки в виде М-файла из библиотеки пакета или созданного разработчиком S-модели. Вычисляемое выражение вводится в окне настроек в строке MATLAB function. Если это обращение к библиотечной функции, то ее аргумент можно не указывать. Блок имеет второй параметр настройки – Output width (Ширина выходного сигнала), который означает, что на выходе блока может быть вектор с числом элементов, равным значению данного параметра. Блок Product выполняет умножение или деление, параметрами настройки являются число входов и вид операции (> или >). Если ввести значение >, то вычислится произведение элементов входного вектора. Вторая группа блоков обеспечивает логическую обработку входного сигнала: Logical Operator – содержит логические операции: AND (логическое умножение >), OR (логическое сложение >), NAND (>), NOR (>), NOT (логическое отрицание), XOR (сложение по модулю 2) и имеет параметр настройки Number of input ports – число аргументов (входных портов блока) логической операции; Relational Operator – реализует операции отношения: >, , (истина) или > (ложь) и имеет параметр настройки – Truth table (таблица истинности), который представляет собой список возможных выходных значений. Следующая группа блоков обеспечивает формирование звеньев с типовыми нелинейностями: Sign – реализует сигнум-функцию; Saturation (Насыщение) – реализует линейную зависимость с насыщением; Quantizer (Квантователь) – осуществляет дискретизацию входного сигнала по величине, имеет параметр настройки Quantization interval (Интервал квантования) – величина дискрета по уровню входного сигнала; Coulomb & Viscous Friction (Сухое и вязкое трение) – реализует зависимость типа линейная с предварительным натягом. В параметры настройки входят величины кулонова трения (натяга) и коэффициента вязкого трения; BackLash (Люфт) – имеет два параметра настройки: Deadband width (Величина люфта) и Initial output (Начальное значение выходной величины); Dead Zone (Мертвая зона) – нулевое значение входного сигнала в заданном диапазоне; Look-up Table (Таблица поиска) – выполняет линейную интерполяцию входного сигнала 38
по заданной табличной функции; Look-up Table (2D) – то же для двумерного сигнала; Hit Crossing (Пересечение обнаружено) – идентифицирует время пересечения входным сигналом некоторого значения с формированием на выходе блока единичного сигнала и имеет три параметра настройки: offset – определяет значение, а direction – направление "пересечения", выбираемое с помощью выпадающего меню: rising (возрастание), falling (убывание), either (в обоих направлениях), и Show output port (показать выходной порт) – флажок выбора формата использования блока. В третью группу входят блоки задержки входного сигнала: Memory (Память) – выполняет задержку сигнала на шаг моделирования и имеет параметры: Initial condition (Начальное состояние) и Inherit sample time (Наследование шага времени) – позволяет выбрать величину шага задержки (при не установленном флажке используется наименьший шаг, равный 0.1 единицы модельного времени, при установленном – величину шага определяет значение его для предшествующего блока); Transport Delay – обеспечивает задержку сигнала на заданное (необязательно целое) число шагов моделирования по трем параметрам: Time delay (Время задержки) – вводится в виде числа или вычисляемого выражения, Initial input (Начальный ввод) – амплитуда входного сигнала, Initial buffer size (Начальный размер буфера (в байтах, кратен 8)) – объем памяти для хранения параметров задержанного сигнала; Variable Transport Delay – задает управляемую извне величину задержки и имеет параметр настройки: Maximum delay – наибольшая допустимая величина задержки информационного сигнала вводится в виде числа (даже дробного) или вычисляемого выражения. Четвертую группу блоков составляют блоки-переключатели, управляющие направлением передачи сигнала: Switch (Переключатель) – имеет три входа: два информационных (1 и 3-й) и один управляющий – и следующую логику работы: если амплитуда сигнала со 2-го входа не меньше заданного порогового значения (Threshold) в виде константы или вычисляемого выражения, то на выход блока передается сигнал с 1-го входа, в противном случае – сигнал с 3-го входа. Периодичность срабатывания блока определяется значением параметра Sample time на его управляющем входе; Manual Switch – без параметров настройки позволяет выбрать путем перемещения "перемычки" (с помощью ЛКМ) один из двух входных портов, с которого сигнал поступит на выход блока; Multiport Switch – передает на выход сигнал с одного из входов, 39
число которых в виде константы или вычисляемого выражения задается параметром Number of inputs; Relay – работает как реле и имеет четыре параметра настройки: Switch on point (Точка включения) и Switch off point (Точка выключения) – задают пороговые значения на включение и выключение реле; Output when on и Output when off (Выход при включенном и выключенном состоянии) – определяют значения амплитуд разрешающего сигнала и сигнала "выключено". Параметры блока задаются константой или вычисляемым выражением. 5.7. Основные блоки (CONNECTIONS) библиотеки SIMULINK Блоки данного раздела предназначены для разработки S-моделей, содержащих модели более низкого уровня (подсистем). К ним относятся: In и Out (Входной и Выходной порт) – обеспечивают линейную связь по информации между подсистемами модели; Goto Tag Visibility (Признак видимости), From (Принять), Goto (Передать) – используются совместно для обмена данными между компонентами S-модели с учетом доступности (видимости) данных; Data Store Memory, Data Store Read и Data Store Write (Память, Чтение и Запись данных) – обеспечивают передачу и хранение данных в интервале моделирования; Enable (Разрешить) и Trigger (Защелка) – используют для логического управления работой подсистем S-модели; Subsystem (Подсистема) – "заготовка" для создания подсистемы; Mux – объединяет входные величины (скалярные или векторные) в один линейный вектор и имеет параметр Number of inputs (Число входов); Demux (Разделитель) – разделяет входной вектор на заданное число компонентов и имеет параметр Number of outputs (Число выходов); Ground (Земля) и Terminator (Ограничитель) – используются как заглушки для входных и выходных не подключенных портов к другим блокам S-модели; IC (Начальное состояние) – устанавливает на длительность шага моделирования произвольное начальное состояние входного сигнала Initial Value (Значение сигнала в момент входа в блок); Width (Размер) – вычисляет и выводит на изображение блока размерность сигнала на входе блока; Selector (Селектор) – выбирает во входном векторе и передает на выход те элементы, номера которых указаны в параметрах настройки блока: Elements (Элементы) – список элементов из входного вектора и Input port width (Размерность входного порта) – размерность "просеиваемого" входного вектора с помощью данного блока и отображаемого на иконке блока; Merge (Слияние) – выполняет объединение входных сигналов в один и имеет параметры: Number of inputs 40
(Количество входов блока), Initial output (Инициализация выхода) – задает сигнал, на основе которого выполняется объединение. Особенности организации взаимодействия блоков в S-модели или при разработке ряда моделей, а также вопросы проведения модельного эксперимента рассмотрены ниже. 5.8. Идеология создания моделей Для создания S-моделей необходимо открыть пустое окно блок-диаграммы либо из командного окна, либо из окна Library Simulink по команде File-New-Model. Меню окна блок-диаграммы имеет основные разделы: File, Edit, Simulation, Format. Рассмотрим эти разделы. В раздел File входят: New – создание окна блок-диаграммы по вариантам: Model и Library – открыть окно для создания S-модели и нового раздела библиотеки; Open – открыть стандартное диалоговое окно и найти файл с расширением mdl; Close – закрыть окно блок-диаграммы и mdl-файл; Save (сохранить) – при записи впервые файла открывается диалоговое окно, где можно задать имя файла (вместо untitled) и каталог для записи; Save as…(сохранить как) – позволяет сохранить файл под новым именем или в другом каталоге. Как и в предыдущей команде, mdl-файл может быть сохранен по желанию как М- или МАТ-файл; Show Browser – просмотр в текстовой форме иерархической S-модели по уровням вложенности; Print – выводит на печать блок-диаграмму и информацию по ней; Print setup – настройка параметров печати. По команде Show Browser выводятся имена подсистем S-модели. При выводе списка подсистем используются символы: [+] – развернуть список; [M] – признак маскированной подсистемы (содержимое просмотреть нельзя); [L] – подсистема взята из библиотеки и не подлежит редактированию; [O] – подсистема представляет информационное (справочное) окно; [S] – подсистема типа Stateflow chart (Диаграмма состояний), созданная инструментальным средством State-flow. Команда Expand All (Развернуть все) из раздела Options позволяет просмотреть полную иерархию S-модели. В правой части окна броузера выводится список блоков подсистемы, выделенной в левом списке. Двойное нажатие ЛКМ на имени блока или нажатие кнопки Open System открывает окно настроек блока. Броузер имеет ряд элементов управления: 41
флажок Look Under [M]ask Dialog изменяет статус маскированной подсистемы: если он установлен, то раскрыть подсистему невозможно; если снят – состав подсистемы отобразится в правой части окна; флажок Expand [L]ibrary Links (Связи с расширением библиотеки) изменяет статус подсистем из библиотеки пользователя, работает аналогично предыдущему флажку; кнопка Look Into System (Взгляд внутрь системы) открывает окно блок-диаграммы выбранной подсистемы с признаком [M] или [ML]. Поле Options пункта Print используется для вывода информации о S-модели и имеет следующие элементы управления: переключатели уровня иерархии: Current system – печать текущего окна блок-диаграммы; Current system and above – печать текущего окна и всех подсистем более высокого уровня; Current system and below – печать подсистемы с блок-диаграммами всех входящих в нее подсистем; All systems – печать блок-диаграмм всех подсистем S-модели; флажок Include Print Log (Добавить печать реестра) выводит на печать список блоков и подсистем модели; флажок Look Under Mask Dialog разрешает/запрещает печать блокдиаграмм маскированных подсистем; флажок Expand Unique Library Links (Раскрыть связи личной библиотеки) разрешает/запрещает печать блок-диаграмм подсистем из личной библиотеки пользователя. В раздел Edit входят команды редактирования структуры S-модели: Undo – отменить предыдущую команду редактирования, при невозможности отмены появляется сообщение Can't Undo; Redo – отменить команду Undo; Cut (вырезать) – перенести в буфер обмена блок или несколько блоков путем выделения их с помощью ЛКМ пунктирным прямоугольником; Copy – копировать один или несколько предварительно выделенных блоков; Paste – вставить копируемый или удаленный в буфер участок S-модели, предварительно отметив ЛКМ место вставки; Clear – удалить выделенную область; Select All – выделить все элементы блок-диаграммы; Copy Model – запись блок-диаграммы модели в качестве графического объекта в буфер обмена для передачи в другие Windows-приложения, формат WMF (Windows Metafile); Create Subsystem (Создать подсистему) – выделенная часть S-модели заменяется (сворачивается) одним блоком – Subsystem, результат командой Undo не отменить; Mask Subsystem – вызов редактора маски подсистемы; Look Under Mask (Заглянуть под маску) – открывает окно блок-диаг42
раммы маскируемой подсистемы; Go To Library Link (Перейти к связанной библиотеке) – открывает раздел библиотеки, к которому относится выделенный блок; Break Library Link (Разорвать связь с библиотекой) – делает библиотечный блок самостоятельным (для редактирования); Unlock Library (Открыть библиотеку) – для редактирования соответствующего раздела; Update Diagram (Обновить блок-диаграмму) – используется для редактирования библиотечных блоков, добавления нового раздела библиотеки, изменения параметров блоков, изменения S-функции при добавлении/удалении входных/выходных портов блока. Раздел Simulation содержит команды управления моделированием: Start – запуск модели на исполнение, после запуска заменяется командой Stop для завершения моделирования досрочно; Pause/Continue – Остановить/Продолжить процесс моделирования; Parameters… – открыть диалоговое окно настроек параметров моделирования, окно содержит вкладки: Solver (Установка параметров расчета модели); Workspace I/O (Установка параметров обмена данными с рабочей областью пакета); Diagnostics (Выбор уровня диагностики). На вкладке Solver имеются следующие установки: Simulation time (Интервал моделирования) в диапазоне начального (Start time) и конечного (Stop time) значений времени; Solver options – выбор метода расчета модели при учете того, что модель может быть реализована в виде: с непрерывными состояниями и непрерывным временем, с непрерывными состояниями и дискретным временем, с дискретными состояниями и непрерывным временем, с дискретными состояниями и дискретным временем; Type – позволяет выбрать способ моделирования: Variablestep (Моделирование с переменным шагом) – чаще для непрерывных систем и Fixed-step (Моделирование с фиксированным шагом) – для дискретных систем. Остальные пункты меню позволяют выбрать метод расчета для непрерывных систем. Окно Type имеет строку редактирования, название которой меняется в зависимости от выбранного метода задания модельного времени. По умолчанию величина шага моделирования устанавливается автоматически (auto) в соответствии с параметрами блоков модели либо в виде числа или вычисляемого выражения. При использовании переменного шага можно указать относительную (Relative tolerance), абсолютную (Absolute tolerance) точность и начальное значение шага моделирования (Initial step size), а также опции вывода (Options output) выходных параметров модели. Опции вывода имеют меню из трех пунктов: 43
Refine output (Улучшенный вывод) – позволяет изменять в строке Refine factor дискретность (относительную частоту) регистрации tm времени и параметров модели: если Refine factor равен 2, то tm = 1/2 и т. д. Produce additional output (Создать дополнительный вывод) – дополнительно регистрировать параметры модели в заданные моменты времени (Output times); Produce specified output only (Формировать только заданный вывод) – вывод параметров модели в заданные моменты времени (Output times). Вкладка Workspace I/O имеет четыре поля управления вводом и выводом модельной информации: Load from workspace (Загрузить из рабочей области) – при установленном флажке Input можно ввести список параметров модели; Save to workspace (Записать в рабочую область) имеет три флажка со строками ввода: Time – указывает имя вектора для хранения регистрируемых моментов модельного времени (по умолчанию tout), States – при установленном флажке в матрице xout сохраняется текущее состояние моделируемой системы: число столбцов в матрице равно числу регистрируемых параметров, а число строк – числу моментов регистрации, Output (флажок записи в рабочую область) – позволяет регистрировать дополнительные параметры в ходе моделирования путем ввода в строку имени параметра при наличии в модели блока To Workspace; поле States (Сoстояние) имеет два флажка со строками ввода: Load initial (Загрузить начальное значение) – задать начальные значения параметров модели в вектор-строке xInitial с числом элементов, равным числу столбцов в матрице xout, Save final (Записать конечное состояние) – задать конечные значения параметров модели в векторстроке xFinal, которую можно использовать в качестве исходного состояния для последующего моделирования; поле Save options (Опции записи) позволяет задать ограничения на число строк матрицы xout (Limit rows to last) и указать прореживание (Decimation) регистрируемых состояний, которое также связано со значением Output options вкладки Solver. Вкладка Diagnostics позволяет изменить перечень диагностируемых сообщений с помощью списка событий (Events) и переключателей поля Action (Действие): None (Игнорировать), Warning (Выдать предупреждение), Error (Выдать сообщение об ошибке). Поле Debugging (Отладка) позволяет установить опцию проверки согласованности компонент модели (Consistency checking) и моменты пересечения сигналом нулевого уровня (Disable zero crossing detection). 44
Раздел Format позволяет изменить оформление блок-диаграммы и имеет четыре группы команд. Команды первой группы распространяются на выделенный блок (блоки): Font… – выбор шрифта для имени блока; Flip Name – изменить положение имени блока; Hide/Show Name – скрыть/ показать имя; Flip Block или Rotate Block – развернуть иконку блока на 180 или на 90°; Show/Hide Drop Shadow – показать/убрать тень. Вторая группа содержит одну команду – Hide/Show Port Labels (Скрыть/Показать метки портов блока) на иконке блока-подсистемы. Третья группа содержит команды: Foreground Color – выбор цвета иконки выделенного блока (блоков); Background Color – выбор цвета фона иконки; Screen Color – выбор цвета фона блок-диаграммы. Команды четвертой группы изменяют параметры линий связи блок-диаграммы: Sample Time Colors – красным цветом выделяются линии связи блоков, работа которых зависит от шага модельного времени; Wide Vector Lines – жирными станут линии передачи векторных величин; Line Widths – в числовой форме (по числу элементов вектора) выводится "ширина" сигнала. 5.9. Технология создания S-модели Возможность использования технологии Перетащи и Оставь (Drag and Drop) – одно из важных достоинств Windows-приложений. При использовании ее пользователь перетаскивает выделенный объект (например, блок, структуру и т. д.) из одного окна в другое. При этом окна могут принадлежать как одному, так и разным приложениям. Для создания модели необходимо наличие, как минимум, двух открытых окон: окна разделов библиотеки (Library: Simulink) и пустого окна (untitled) блок-диаграммы модели. Для создания модели откройте необходимый раздел библиотеки двойным щелчком ЛКМ и найдите в нем нужный блок. Поместите курсор на иконку блока, нажмите ЛКМ и, не отпуская ее, переместите изображение блока в поле untitled. Отпустите кнопку мыши. Переместить блок в нужное место поля можно с помощью мыши. Чтобы поместить в модель идентичный блок, можно: повторить операцию буксировки блока из раздела библиотеки, воспользоваться командами Копировать (Copy) и Вставить (Paste) из раздела меню Edit, использовать дополнительные сервисные возможности. Рассмотрим последний случай. Для этого поместим курсор на иконку блока и нажмем правую клавишу мыши: справа от курсора появится белый крестик. Не отпуская ЛКМ, переместите курсор в нужную точку модели. Отпустив ЛКМ, вы увидите его. 45
Чтобы создаваемая модель наглядно отражала существо задачи, необходимо заменить метки блоков именами. Для этого поместите курсор на название блока и щелкните ЛКМ. Название блока окажется заключенным в прямоугольную рамку, а курсор примет форму вертикальной черты. После этого удалить старое и ввести новое имя, а затем щелкнуть ЛКМ вне текста. После создания модели ее можно сохранить по команде Save as…, выбрав папку или каталог, куда будет записываться файл, и имя для него. Далее необходимо установить параметры моделирования. С моделью удобнее работать, если она содержит комментарии. Наглядность блок-диаграммы с большим числом блоков зависит от выбора формы и расположения элементов, в том числе линий связи. Рассмотрим приемы редактирования. При связывании блоков редактор пакета сам пытается выбрать наиболее удачную конфигурацию линии. Линия может иметь ряд изломов. Чтобы изменить форму линии, необходимо установить курсор мыши на точку излома, нажать на ЛКМ и, не отпуская ее, переместить курсор в нужном направлении. Если хотите самостоятельно указать маршрут связывания блоков, то подведите курсор к выходному порту блока, нажмите ЛКМ и, не отпуская ее, переместите курсор. За ним потянется контур линии связи. Чтобы изменить направление движения, отпустите ЛКМ, затем вновь нажмите и продолжите движение. Чтобы изменить положение прямых отрезков, можно установить курсор на редактируемый отрезок, нажать ЛКМ и, не отпуская ее, переместить курсор в нужном направлении. Один и тот же блок по выходу может быть соединен с двумя и более блоками. Для создания дополнительной линии связи необходимо: подвести курсор к входному порту неподсоединенного блока, нажать ЛКМ, провести контур новой линии связи до пересечения с основной (курсор примет форму двойного креста), отпустить ЛКМ – на основной линии появится точка соединения. При необходимости точка соединения может быть перемещена вдоль линии связи на другое место. Для этого необходимо установить на нее курсор, нажать ЛКМ и переместить точку. Подводя итоги, сформулируем методику разработки S-моделей: 1. Определить перечень необходимых для моделирования блоков. 2. Перенести в окно блок-диаграммы блоки и соединить их между собой. 3. Настроить и согласовать параметры блоков. 46
4. Установить значения параметров моделирования для модели в целом. 5. Дополнить модель текстовыми комментариями. 6. Создать файл для хранения созданной модели на жестком диске. 7. Провести моделирование. В заключение необходимо отметить, что процесс моделирования творческий и зачастую носит итеративный характер. 5.10. Временные параметры S-модели Корректное управление модельным временем – одна из наиболее сложных и важных задач при подготовке эксперимента. Решение ее связано со следующими вопросами: какой способ изменения (с постоянным или переменным шагом) времени использовать, какую дискретность выбрать и какое событие будет служить признаком окончания моделирования? Разработчики Simulink отмечают, что ведущую роль при выборе способа играет тип системы: для непрерывных систем (с непрерывным временем смены состояний) по умолчанию применяется переменный шаг приращения времени, а для дискретных систем необходимо установить постоянный шаг. Такой подход не всегда оправдывает себя, поскольку для непрерывных систем бывает удобнее определять очередное состояние как функцию времени, изменяющегося с заданной дискретностью. И, наоборот, при моделировании дискретных систем величина очередного приращения времени определяется прогнозируемым моментом изменения, зачастую нерегулярного состояния системы. Управлять величиной шага моделирования при изменении модельного времени по особым состояниям можно с помощью блоков MATLAB Fcn и Discrete-Time Integrator. Первый блок позволяет формировать отрезки времени по заданному закону, второй – выполняет суммирование этих отрезков. С помощью этих блоков можно задать изменение модельного времени по особым состояниям для S-моделей с условием наступления очередного события по истечение некоторого промежутка времени. Для моделирования непрерывных систем с постоянным шагом используются средства раздела Simulations Parameters. Существует несколько способов управления окончанием моделирования. Первый способ состоит в указании длительности интервала моделирования в поле Stop time вкладки Solver. Текущее состояние модели при этом не учитывается. Другой способ с использованием блока 47
Stop Simulation позволяет увязать окончание сеанса моделирования с выполнением тех или иных условий. Такими условиями могут быть: переход системы в определенное состояние, завершение выполнения какой-либо операции, достижение показателем эффективности заданного значения. Условия окончания моделирования должны быть такими, чтобы при их наступлении на вход блока Stop Simulation поступал ненулевой сигнал. С точки зрения управления модельным временем, наибольшую сложность представляют события, связанные с запуском и завершением работ или процессов, длительность которых является случайными величинами. Для управления модельным временем в таких моделях необходимо: обеспечить приращение модельного времени на величину длительности очередного завершенного процесса, определить условия окончания моделирования. Для формирования текущего значения модельного времени удобно использовать блок Discrete-Time Integrator. Так как блок имеет только один вход, то для нескольких типов событий соответствующие интервалы времени должны суммироваться в блоке Sum. 5.11. Подсистемы моделей С помощью блока Subsystem (Подсистема), входящего в раздел библиотеки Connections, сложная система может быть представлена как совокупность взаимодействующих компонентов, внутренняя структура которых может быть скрыта. Основными достоинствами использования подсистем являются: сокращение числа блоков, выводимых в окне модели, возможность создания иерархических блок-схем, повышение наглядности блок-диаграмм сложных систем, возможность использования механизма синхронизации параллельно функционирующих подсистем, повышение технологичности разработки и модификации S-моделей, возможность включения в блок-диаграмму собственной встроенной справочной системы, в том числе содержащей демонстрационные средства. Для создания подсистемы путем добавления блока Subsystem необходимо: скопировать блок Subsystem в окно модели, перетащив его из раздела Connections, затем открыть окно этого блока путем двойного щелчка на изображении блока и в пустом окне модели создать подсистему, используя блоки In и Out для создания входов и выходов ее. Для создания подсистемы путем группировки существующих блоков надо: выделить при помощи рамки нужные для создания подсистемы 48
блоки и соединяющие их линии и выбрать команду Create Subsystem (Создать подсистему) из меню Edit (Правка). В результате выделенные блоки заменятся одним блоком Subsystem. 5.12. Фиксация и печать S-модели Для записи модели в память компьютера необходимо использовать команду Save (Сохранить) или Save As (Сохранить как) из меню File. При этом в указанную вами папку записывается файл с именем, заданным ранее или введенным с клавиатуры, и расширением .mdl. Для печати блок-схемы используется команда Print (Печать) из меню File. 5.13. Отладчик блок-диаграмм В составе пакета имеются средства отладки создаваемых моделей Simulink Debugger. Эта программа не создает собственного диалогового окна, а использует окно отлаживаемой блок-диаграммы. При этом командное окно предназначено для ввода пользователем команд отладчика и вывода текстовых сообщений. Для запуска отладчика в командном окне следует ввести одну из двух команд: sldebug '' sim ('',[Tstart Tfin], Simset('debug','on')) Первую команду используют для версии MatLAB 5.2, вторую – для предыдущих версий. При выполнении команды запуска в блок-диаграмме подсвечивается блок, активный на первом шаге моделирования. Соответствующая информация выводится в тестовой форме в командном окне. Отладчик переводит модель в режим Pause и переходит в состояние ожидания следующей команды. Многие команды отладчика используют понятие индекс блока. Он представляет собой номер блока внутри S-модели и отображается в команде отладчика в форме s;b, где s – номер подсистемы модели; b – номер блока в подсистеме. Список индексов блоков получают по команде slist. Команда не имеет параметров и применяется к активной S-модели. Отладчик позволяет проследить работу модели шаг за шагом. В качестве шагов можно определить переход сигнала к следующему блоку, изменение модельного времени либо промежуток модели до очередной 49
контрольной точки (breakpoint). Выбор типа шага определяет команда в режиме Pause: step – продвижение сигнала на один блок, next – продвижение на шаг модельного времени, continue – исполнение модели до следующей контрольной точки, run – игнорируя контрольные точки, расчет модели до окончания интервала моделирования. Для завершения отладки используется команда Stop. Рассмотрим приведенные выше команды. Команда step – отладчик выполняет текущий (подсвеченный) блок, приостанавливает работу модели и выделяет следующий блок. Если следующий блок – подсистема, то отладчик открывает ее и выделяет первый блок подсистемы. В командное окно после выполнения команды выводятся значения входного U и выходного Y сигналов с индексами по порядковым номерам входных и выходных портов блока. Чтобы обратить внимание пользователя на окончание отладки, в командном окне выводится обнуленное значение модельного времени. При использовании этой команды возможен выбор мелких (minor) или крупных (major) шагов изменения модельного времени. Команда next проводит сигнал через все блоки очередного шага моделирования. Команду применяют тогда, когда исследователя интересует изменение состояния модели при изменении модельного времени. Если очередной шаг при моделировании последний, то активным станет первый блок модели и остановится выполнение команды. Метод отладки на основе контрольных точек является универсальным, так как контрольную точку можно установить в любом месте диаграммы. Между контрольными точками моделирование проходит без прерываний. Для продолжения моделирования с последней контрольной точки (КТ) используют команду Continue. Нельзя устанавливать КТ в виртуальном блоке – блоке, имеющем чисто графические функции: он отображает группирование или отношение подчиненности между функциональными блоками модели. При попытке установить КТ в таком блоке, отладчик выдает предупреждение. Список не виртуальных блоков можно получить по команде slist. Разделяют безусловные и условные контрольные точки. Прерывание в безусловной КТ происходит, когда моделирование достигнет блока или значения времени, заданных для КТ. Прерывание в условной КТ происходит при выполнении условий для этой КТ. Для указания КТ используются команды: break – прерывание на входе в блок, заданный индексом (break s:b) или визуально пу50
тем выделения его в блок-диаграмме и введения в командном окне break gcb; bafter – прерывание при выходе из блока, команда используется, как и предыдущая; bafter s:b – для указания блока с помощью индекса; bafter gcb – при визуальном выборе блока; tbreak – моделирование прерывается, когда текущее значение модельного времени равно или больше t; clear – удаление блочных КТ; xbreak – останавливает моделирование при использовании переменного шага и встречается состояние, требующее ограничить величину шага; zcbreak – моделирование останавливается при непредусмотренном пересечении сигналом нулевого уровня с выводом значения модельного времени и индекса блока, а также направления пересечения: положительного (rising) или отрицательного (failing). Дополнительная отладочная информация обеспечивается командами: probe <s:b> – вывод значений сигнала на входах и выходах блока на очередном шаге отладки; disp – вывод значений сигнала на входе и выходе блока при прерывании моделирования; undisp – отменяет предыдущую команду; trace – аналогична disp, но без прерывания моделирования; untrace – отменяет предыдущую команду; states – вывод информации о текущем состоянии модели; zclist – вывод списка блоков, при выполнении которых может произойти непредусмотренное изменение полярности сигнала; status – вывод заданных режимов отладки и перечня установленных контрольных точек.
51
6. НАУЧНАЯ И ИНЖЕНЕРНАЯ ГРАФИКА В СРЕДЕ MATLAB. ГРАФИЧЕСКИЙ ПОЛЬЗОВАТЕЛЬСКИЙ ИНТЕРФЕЙС Графическая система MATLAB включает высокоуровневые команды для двухмерной и трехмерной визуализации данных, обработки изображений, анимации и рисования графиков. Она также включает низкоуровневые команды, которые позволяют полностью настроить вид графиков, а также построить графический пользовательский интерфейс MATLAB-приложения. В трехмерном пространстве можно строить как линии, так и поверхности, а также изменять точку наблюдения. Для поверхностей можно настраивать способ освещения, алгоритмы окраски и изображения теней. Имеются различные способы представления поверхностей: в виде проволочного каркаса (команда mesh), в котором изображаемые на графике линии проходят через заданные точки поверхности; в виде непрерывной поверхности (команда surf). Возможно также на одном графике представить поверхность и снизу контурный график на плоскости (команды meshc и surfc соответственно); поверхность и ее проекцию на координатную плоскость (команда meshz); поверхность, освещенную в определенном направлении (команда surf1). Для придания реалистичности поверхностному графику используются различные схемы освещения (можно задать цвет излучателя (опция Ambient LightColor), мощность излучателя (опция AmbientStrength), задать излучение диффузным, направленным либо смешанным, а также коэффициент отражения поверхности, коэффициент окраски отраженного света цветом поверхности, коэффициент свечения самой поверхности и некоторые другие). Возможно раздельное задание цвета самой поверхности и ребер. Для камеры наблюдения можно задать: положение камеры, ось наблюдения, угол обзора, возможно также задать перемещение камеры вдоль оси наблюдения либо по сцене, например, вращаясь вокруг наблюдаемой поверхности, сохраняя точку наблюдения. Эти перемещения можно записать в виде анимации. Заметим, что близкие возможности имеет программа Macsyma, однако там все указанные команды можно 52
выполнять непосредственно в интерактивном режиме, используя кнопки интерфейсной панели. Помимо описанных видов графиков программа MATLAB, предлагает широкий набор специализированных графиков для представления статистических и другого вида данных. Это различного вида диаграммы (двух- и трехмерные столбчатые, линейчатые, круговая, и др.) и гистограммы распределения; двух- и трехмерные графики векторных полей, контурные графики в прямоугольной и полярной системах координат. Как уже упоминалось, возможно создание анимаций. Для создания анимаций в MATLAB возможны два метода. Во-первых, можно создать серию картинок, которые затем последовательно показывать в виде фильма. Другой способ – непрерывно стирать, а затем снова рисовать объект, делая небольшие изменения в каждом последующем рисунке. В MATLAB 5.x и 6.х , по сравнению с 5-й версией, добавлены: новые возможности по визуализации данных; новые команды trisurf и trimesh, позволяющие строить поверхности и проволочные каркасы из ячеек треугольной формы; команда contourf, позволяющая строить закрашенные контурные графики, а также функция zoom, позволяющая вести наблюдение с заданным коэффициентом увеличения; новые функции по управлению цветом, освещением, камерой, надписями; специальные графики (упомянутые выше различного вида диаграммы и векторные поля). MATLAB – очень удобная система для разработки приложений, позволяющая эффективно создавать программы, выполняемые как в среде MATLAB, так и независимо. Помимо упомянутых выше богатых возможностей языка MATLAB для создания алгоритмов, в нем содержаться также широкие возможности для проектирования пользовательского интерфейса. В версии 5.х и 6.х для усиления этих возможностей включен модуль Guide (Graphical user interface design), содержащий элементы визуального программирования. В Guide входят следующие взаимо согласованные инструменты для создания и оформления пользовательского интерфейса: редактор свойств для задания и изменения свойств составных частей интерфейса; панель управляющих элементов, позволяющая включать в интерфейс и выбирать расположение различных кнопок управления, окна текста и списков, рамки, средства вертикальной и горизонтальной прокрутки; редактор команд, позволяющий для каждого 53
управляемого элемента интерфейса записать запускаемую им программу; устройство для выравнивания объектов интерфейса; редактор меню для создания строки меню интерфейса. Операции, выполняемые при создании пользовательского интерфейса в среде MATLAB, аналогичны по простоте и наглядности операциям визуального программирования, выполняемым в среде программы Visual Basic. MATLAB Notebook Пожалуй, рассказ о системе MATLAB был бы неполным, если не упомянуть о модуле "MATLAB Notebook". Этот модуль разработан для более удобного интерактивного использования MATLAB. Он интегрирует MATLAB с текстовым процессором Microsoft Word, который дополняет недостающие в MATLAB функции: текстового редактора и записи формул с полиграфическим качеством (модуль Microsoft Equation). Такая интеграция осуществляется при помощи макрокоманд, входящих в специальный шаблон документа "MATLAB Notebook", Notebook.dot. Такой шаблон разработан для версий 6.0 и 7.0 Microsoft Word, а также для Microsoft Office 97, 2000, 2001. При помощи макрокоманд шаблона в строку меню панели инструментов Microsoft Word добавляется раздел Notebook, содержащий пункты меню для команд создания вычисляемых разделов документа и выполнения вычислений. Для выполнения последних вызывается MATLAB. Кроме этого, в раздел File добавляется пункт New M-book, при помощи которого создается новый MATLAB Notebook, а в раздел Help – пункт About MATLAB Notebook. MATLAB Notebook – это не просто запись сессии MATLAB при помощи Word-документа. Эта программа позволяет прямо в рабочем документе выполнять все команды MATLAB (для выполнения команд вызывается математический процессор MATLAB), получать вывод формул и графики, а также редактировать и повторно выполнять команды. Использование Word-дополнений Microsoft Equation для записи формул, Microsoft Draw для создания рисунков, а также Word для создания различных стилей оформления дает возможность профессионального оформления отчета по выполненной лабораторной работе в среде MATLAB. MATLAB Notebook особенно удобен при оформлении отчета или статьи, в которых используются вычисления MATLAB, так как позволяет многократно редактировать и измененять однажды записанные коман54
ды, а также результаты их выполнения. Изображения построенных графиков также располагаются в MATLAB Notebook. Система MATLAB Notebook – MATLAB + Word приближается по функциональным возможностям интерактивного использования и оформления рабочего документа к универсальным математическим пакетам, таким как Mathematica, Maple, Macsyma. К сожалению, из-за ошибки в Microsoft Office 97 (так утверждают разработчики MATLAB), иллюстрации в этой программе не распечатываются, эту ошибку обещают устранить. Другим недостатком системы MATLAB+Word является большой расход системных ресурсов.
55
7. ИНТЕГРАТОР ПРИЛОЖЕНИЙ MATHCONNEX. ЯЗЫК ПРОГРАММИРОВАНИЯ MathConnex – новое средство, примененное в системе MathCAD. Оно выполняет две важнейшие и чрезвычайно мощные функции: служит для интеграции различных приложений с системой MathCAD и обеспечения их совместной работы с использованием объектных связей OLE2; выполняет функции имитационного моделирования моделей, представленных типовыми блоками в виде функциональной схемы. В, сущности, MathConnex является вполне самостоятельным приложением, включенным в систему MathCAD и выполняющим функции системного интегратора. Благодаря MathConnex возможно простое и наглядное установление сложных взаимосвязей между различными приложениями: математической системой MathCAD, интегрированной системой MatLAB, графической системой Axum, электронными таблицами Excel из пакета Microsoft Office и др. Мощь такой объединенной системы возрастает многократно и позволяет использовать для решения задач пользователя целый арсенал различных программных систем, включая встроенные в них специфические и подчас уникальные функции. В то же время применение системы MathConnex имеет и недостатки: эффективное использование этой системы требует знакомства с целым рядом новых программных средств, что порой не под силу начинающим пользователям и даже пользователям средней квалификации; медлительность работы системы ощущается даже на ПК класса Pentium 800; MathConnex имеет свой собственный язык программирования, требующий усилий по его освоению; имеются трудности при задании текстовых комментариев на русском языке; подготовка проектов (документов) для MathConnex требует больших затрат времени. Все это свидетельствует о том, что MathConnex представляет интерес для опытного пользователя, способного по достоинству оценить уникальные возможности этой системы и уверенно их применять. Это средство особенно полезно, если необходимо блочное представление и 56
описание сложной системы, работу которой необходимо имитировать. Можно считать, что в системе MathConnex на новом (цифровом) уровне реализована идея аналоговых ЭВМ: подготовка блок-схем моделируемых устройств и имитация (или симуляция) их работы. Представленное ниже описание рассчитано на начальное знакомство с системой. При этом предполагается, что опытный пользователь может освоить систему более детально по множеству имеющихся в ее составе примеров и по описанию (на английском языке), входящему в комплект поставок на CD-ROM. Описание пользовательского интерфейса системы MathConnex Для запуска системы MathConnex используется кнопка в инструментальной панели MathCAD с пиктограммой в виде красного шарика и трех разноцветных прямоугольников (блоков). После запуска появляется главное окно MathConnex. Окно имеет строку главного меню и расположенную под ним панель инструментов (Toolbar). В правой части главного окна (экрана) системы находится большое окно для рабочего документа (Worksheet). Первоначально – оно пустое. В левой части расположена палитра компонентов (Component Pallete) в виде 12 кнопок и так называемый Исследователь (Explorer). Главное меню MathConnex Главное меню системы имеет типичный для Windows-приложений набор позиций и относящихся к ним подменю. Поскольку главное меню MathCAD было описано, то можно опустить описание главного меню MathConnex. Укажем лишь, что все его операции относятся к деталям интерфейса MathConnex и к документам этой системы. Документы имеют расширение .mxp. Кроме того, надо отметить специфическую для MathConnex позицию Run главного меню. Она выводит подменю со следующими операциями: Run (Пуск) – пуск имитации работы документа; Pause (Пауза) – пауза в имитации; Step (Шаг) – имитация для следующего блока в режиме пошаговой работы; Stop (Стоп) – остановка имитации; Single Step Mode – переход к пошаговой имитации (Пошаговый режим); Highlight Components – установка подсветки исполняемого компонента (Подсветка компонентов). Панель инструментов MathConnex Панель инструментов MathConnex содержит ряд кнопок, аналогичных по своему виду и назначению тем, что используются в системе 57
MathCAD. Однако есть две новые группы кнопок, отмеченные ниже. Кнопки управления имитацией: Run – пуск имитации; Pause – пауза в имитации; Step – пошаговое выполнение имитации; Stop – остановка имитации. Кнопки управления уровнем исполнения и размерами документа: Back – переход к предыдущему по уровню блоку; Zoom in – увеличение размеров документа; Zoom out – уменьшение размеров документа. Палитра компонентов Палитра компонентов содержит кнопки с приведенными ниже обозначениями. Они разбиты на пять групп. Компоненты ввода и вывода данных: Input – блок ввода; File Read or Write – считывание или запись файла; Ramp – блок генерации последовательностей; Global Variable – блок задания глобальной переменной. Компоненты просмотра (инспекции) результатов: Inspector – блок Инспектора – просмотра вычислений; Graph – блок вывода графики; Axum – блок графической системы Axum. Подключаемые компоненты: MathCAD – блок математической системы MathCAD; Excell – блок системы Excel (электронные таблицы); MatLAB – блок математической системы MatLAB; Connex Script – блок с описанием на языке Connex Script. Компоненты контроля потоков данных: Conditional – блок ввода условий; Initialize – блок инициализации; Wire Breaker – блок выключателя; Stop or Pause – блок остановки и паузы. Компонента вставки текстового комментария: Text – блок вставки текстового комментария. Подготовка документов в MathConnex Подготовка документов в системе MathConnex сводится к созданию блок-схемы решаемой задачи. Блок-схема может содержать указанные выше компоненты, связи между ними и текстовые комментарии. Все это размещается в окне документов. Для ввода блоков в документы достаточно указать курсором мыши на кнопку нужного блока и, нажав и удерживая левую клавишу мыши, начать перетаскивать блок в нужное место окна редактирования документа. Отпустив левую клавишу мыши, можно зафиксировать блок в нужном месте. Таким образом, реализуется известный метод перетаскивания объектов drag and drop ("перетащи и брось"). В ряде случаев система выводит диалоговые установочные окна для задания числа вводов и выводов (обозначаемых треугольниками) и некоторых других параметров. При установке блока системы Math CAD появляется панель палитр математических символов. 58
Входы и выходы блоков в общем случае соединяются соответствующим образом с помощью активизации их курсором мыши, превращающимся в кисть руки, держащей карандаш. С помощью блока Инспектора можно наблюдать результат вычислений, а блок останова останавливает их. Для пуска имитации достаточно активизировать кнопку пуска (ее пиктограмма имеет вид зеленого треугольника). В функциональную схему имитируемых устройств могут входить блоки с описанием их довольно сложных функций на языке системы MathConnex – Connex Script. Редактирование блоков и документов системы MathConnex В панели Project (Проект) исследователя в левой части экрана виден полный перечень блоков вставленных в окно документов. Установив курсор мыши на любую позицию этого перечня и нажав быстро левую клавишу мыши, можно выделить заштрихованной рамкой соответствующий блок в окне документа. Уцепившись курсором мыши за эту рамку, блок можно легко переместить в любое место окна документа. Это же можно сделать, указав блок курсором мыши и прямо в окне документов. Кроме того, используя шаблоны в виде маленьких темных прямоугольников по сторонам рамки, блок растягивается по вертикали, по горизонтали и по диагонали. Двойной щелчок левой клавишей мыши позволяет ввести режим редактирования блока. При этом автоматически запускается создавшее блок приложение. После редактирования нужно установить курсор мыши на свободное поле окна редактирования и щелкнуть ее левой клавишей. При этом выделение блока исчезнет и документ предстанет в виде, готовом для пуска его имитации. Для редактирования блоков полезно также контекстно-зависимое меню, появляющееся при нажатии правой клавиши мыши. Оно содержит различные операции, которые относятся к выделенному блоку. Это могут быть операции стирания блока, редактирования его свойств и т. д. Одной из важных является операция редактирования свойств Properties. Она выводит диалоговое окно. Такое окно позволяет (с помощью панели General) установить номер блока и задать к нему текстовый комментарий. Заметим, что MathConnex автоматически проставляет номера блоков по мере их задания, что не всегда удобно. В панели Display можно задать параметры отображения чисел в блоке. 59
При отладке документов полезен режим пошаговой работы. При этом на каждом шаге исполняется один блок документа. Обычно исполнение блока заметно лишь по изменению входящих в него данных, результатов вычислений и графических построений. Однако, включив режим подсветки Highlight Components, можно наблюдать выделение исполняемого блока (компонента) двойной рамкой с ярко-зеленой окраской. Итак, редактирование и отладка блоков достаточно просты. Пожалуй, куда большие трудности представляет само составление блок-схемы для решения поставленной задачи. К сожалению, тут мало помогают рекомендации общего характера, так что воздержимся от них и рассмотрим возможности системы MathConnex на примерах, включенных в комплект ее поставки. Использование внешних систем Главным достоинством системы MathConnex является ее интеграция с другими математическими и графическими системами. Отметим особенности и возможности последних. Графическая система Axum Прежде всего, эта система ориентирована на построение 2D- и ЗD-графиков, способных удовлетворить самые изысканные требования в области графической визуализации. К примеру, Axum позволяет строить сложные трехмерные поверхности с функциональной окраской и с одновременным построением их проекции в виде линий равного уровня на плоскости, расположенной под этой поверхностью. Это заметно повышает степень визуализации построений. Axum ориентирована также на быструю и наглядную обработку данных. Она содержит множество математических и статистических функций и удобный редактор математических формул, обладает большими возможностями импорта и экспорта данных. Демонстрационная версия системы Axum поставляется на CD-ROM в комплекте поставки системы MathCAD. Ее можно найти в Internet на сервере фирмы MathSoft. Электронные таблицы Excel Табличный процессор Excel входит в самый популярный пакет автоматизации офисной деятельности – Microsoft Office; Excel – одна из самых мощных и гибких электронных таблиц. Эта система может рабо60
тать не только с двухмерными, но и с трехмерными таблицами, представленными листами с двухмерными таблицами. Excel широко используется для подготовки прекрасно иллюстрированных финансово-экономических и иных документов. Она содержит сотни математических и экономических функций. Применение системы для математических расчетов всегда вызывало определенные сомнения (хотя бы в силу весьма специфических названий функций), но будучи интегрированной с системой MathCAD, табличная система Excel открывает колоссальные возможности по обработке объемных и сложных данных. Матричная математическая система MATLAB MatLAB – одна из самых древних и глубоко почитаемых специалистами математических систем, ориентированных на численные расчеты. Math Connex обеспечивает объединение MathCAD с MatLAB. MatLAB, будучи изначально матричной системой, позволяет быстро и эффективно решать сложные задачи, базирующиеся на матричных методах. Профессионалы особенно почитают MatLAB (несмотря на некоторую архаичность пользовательского интерфейса) за огромный набор ее подчас уникальных функций и возможность поистине неограниченного и весьма простого расширения. Вам достаточно в редакторе системы задать свою новую функцию, и она становится столь же доступной, как любая элементарная функция. Благодаря этому свойству на основе системы MatLAB, были созданы десятки новых математических систем. Специалистов привлекает также высокая скорость выполнения вычислений, она намного выше, чем при решении подобных задач только средствами MathCAD. Поэтому объединение функций систем MathCAD и MatLAB открывает перед серьезными пользователями систем компьютерной математики новые и почти неограниченные возможности эффективного решения сложных математических задач. Система символьной математики Maple V Как ни странно, но установка связей с маститым патриархом символьной математики – системой Maple VI – с помощью MathConnex не предусмотрена. Возможно, фирма MathSoft посчитала для себя вполне достаточным альянс с фирмой Maple Software, который привел к включению в MathCAD несколько сокращенного ядра символьной математики системы Maple VI. 61
По-видимому, это самый серьезный недостаток MathCAD 7. 0 PRO. Однако, скорее всего, разработчики системы пошли на это сознательно: полное объединение MathCAD с Maple VI превратило бы новую систему в необычайно мощный инструмент, владеть которым должны суперпрофессионалы, а не рядовые пользователи. Но тогда имидж MathCAD как системы для всех был бы сильно подорван, несмотря на большие перспективы роста возможностей в области компьютерной алгебры. Тем не менее, нельзя не считаться с тем, что символьные вычисления Math CAD выполняет с помощью ядра Maple VI: таким образом, интеграция с этой системой налицо, хотя лишь частичная – ведь новая реализация Maple VI R4 содержит около 2800 (!) доступных функций, тогда как в MathCAD их порядка трех сотен. Это сравнение будет выглядеть еще более впечатляюще, если учесть, что функций символьной математики в MathCAD гораздо меньше – всего-то около двух десятков. Примеры применения системы MathConnex Система MathConnex поставляется с рядом примеров ее применения, соответствующие файлы которых расположены в папке Sample. Некоторые из этих примеров дают хорошее представление о возможностях системы Math Connex и технике ее применения. Ознакомившись с примерами применения MathConnex, пользователь, наверняка, сумеет не только оценить ее интересные возможности, но и плодотворно применить на практике для решения своих задач. Интеграция MathCAD с текстовым процессором Word Когда пользователь работает над курсовой работой, дипломным проектом, диссертацией или даже книгой, то, наверняка, большую часть времени он тратит все же на подготовку текста, а не на математическое решение задач. Такой пользователь, возможно, еще не владеет математической системой, но, несомненно, пользуется текстовым процессором Word. MathConnex напрямую позволяет вставлять документы Word в свои документы. Кроме того, существует ряд ограничений на подготовку русскоязычных текстов в системах MathCAD и MathConnex. К примеру, проверку орфографии в среде MathCAD можно использовать только для англоязычных текстов, поскольку русскоязычный словарь в эту систему не входит. Есть проблемы и с подготовкой русскоязычных комментариев в документах Math Connex. 62
В принципе, в этих системах можно установить объектную связь с текстовым процессором Word через операцию Object в подменю позиции Insert главного меню. Вставка в текстовый процессор объектов из математической системы MathCAD дает полноценный доступ ко всем возможностям и средствам последней. Как лучше поступать: работать в Word, вставляя объекты из MathCAD, или, работая в системе MathCAD, вставлять в нее объекты из Word, – каждый пользователь должен решать самостоятельно. Разумеется, таким же образом можно связать друг с другом MathCAD и другие, не упоминавшиеся выше системы. Необходимо лишь одно – возможность установления объектной связи. Большинство приложений, разработанных для работы в среде операционной системы Windows, такой особенностью обладают. Это открывает (даже для рядового пользователя) возможности создания сложных программных систем, решающих самые разнообразные и сложные математические задачи. Назначение языка программирования Connex Script Как было показано выше, система MathConnex может использовать свои собственные блоки с вычислительными операциями. В этих блоках могут использоваться и программные конструкции, составленные на основе специального языка программирования – Connex Script. Применение таких блоков заметно расширяет возможности подготовки сложных документов. Ниже дано достаточно полное описание этого языка. Типы данных Connex Script имеет данные вещественного и комплексного типа. Вещественные числа задаются с двойной точностью в IEEE-формате. Числа задаются в виде 314 3. 14 5. 78е14 и т. д. Для задания комплексных чисел используется знак мнимой единицы i или j, например: 5. 78i 0. 5e10i 4. 0 + 8. 7j Бесконечность задается словом "Inf". Слово "NaN" (Not-a-Number) означает нечисловое значение, например: х = Inf у = NaN 63
Операторы и функции Операторы Connex Script имеют хорошо известный вид и назначение: = + –* / А – арифметические операторы; .*./.л – матричное умножение, деление и возведение в степень; –(NOT) xor & (AND) ¦ (OR) – логические операторы; \= >= < – операторы сравнения. Операнды логических операторов располагаются по обе стороны от них (кроме операнда – для NOT, например А&В&С или 2! = 3). Такие выражения возвращают логические значения. Connex Script содержит следующие встроенные функции: abs – абсолютное значение; ceil – ближайшее очередное целое; ехр – экспонента; floor – ближайшее предшествующее целое; log10 – логарифм по основанию 10; log2 – логарифм по основанию 2; max – максимальное значение; min – минимальное значение; mod – остаток от деления; nelem – число элементов в переменной; round – округленное до ближайшего целого значение; sign – функция знака; sqrt – квадратный корень; time – время в секундах с начала 1980 г.; trunc – число десятичных позиций; gamma – гамма-функция. Имеются встроенные функции комплексного переменного: conj – комплексно-сопряженное число; im – мнимая часть аргумента; re – действительная часть аргумента. Тригонометрические функции представлены следующим набором: cos, sin, tan, sec, csc, cot, pi, acsc, acos, acot, asec, asin, atan. Гиперболические функции представлены набором: cosh, coth, csch, sech, sinh, tanh, acsch, acosh, acoth, asech, asinh, atanh. Матричные функции: cols – число столбцов матрицы, rows – число строк матрицы и det – детерминант матрицы. Зарезервированные слова и идентификаторы Зарезервированные слова, которые нельзя использовать в качестве идентификаторов для задаваемых пользователем объектов: break cols complex delete else elseif end error for function if in list load nelem new real repeat return rows static until while xor Примеры задания имен (идентификаторов) переменных: this_is_my_variable tl х_5 R2D2 Имена должны быть заданы одним словом (допускается соединение нескольких слов символов объединения – горизонтальная черта снизу) 64
и начинаться с буквы. Имена переменных допускается задавать только латинскими буквами. Интерфейсные переменные Интерфейсные переменные служат для организации обмена данными между блоками в документах MathConnex: in0, inl,... – организуют ввод данных в блок с выходов других блоков; out0, out1,... – организуют вывод данных из блока. Интерфейсные переменные могут использоваться и в блоках системы MathCAD. Создание списков, векторов и матриц MathConnex может оперировать списками следующего вида: { ехрг, ехрг; ехрг, ехрг} Списки создаются в фигурных скобках. Для разделения данных одного порядка используется запятая, а для данных разного порядка – точка с запятой. Примеры задания списков: Х = {1, 2, 3} – задан вектор Х из трех элементов; М = {1, 2, 3; 4, 5, 6} – задана матрица М с размером 23. Для задания векторов с элементами-числами можно использовать выражения вида: start_expr: step_expr: end_expr где start_expr – условие, задающее начальное значение списка чисел; step_ехрг – шаг изменения ряда чисел; end_expr – условие, задающее конечное значение чисел в списке. Например, выражение Х–1: 2: 100 создает вектор чисел с именем X, у которого первое число равно 1, а последующие (до значения 100) идут с шагом нарастания 2. Другие примеры: Y = 1: 5 – вектор чисел Х от 1 до 5 с шагом по умолчанию 1; Z = 10: 1 – вектор чисел Z от 10 до 1 с шагом по умолчанию –1. Запись выражений Запись выражений выполняется в обычной алгебраической форме. 65
Вычисление функций задается, как обычно, например: у = sin (x) При этом функция возвращает значение в ответ на обращение к ней с указанием параметра функции – переменной или выражения. Неисполняемый однострочный комментарий задается после символа двойного слэша (//), например: х = А [ 1, 2; 0] // take first element from 2nd and 3rd row Многострочный комментарий помещается между символами (/*) и (*/). Выражения размещаются в строках. Для их разделения можно использовать символ (;), например: х = у+ 5; z = х^ х = 0; for i in 0: 5; x = x+ i; end Для переноса длинных выражений с одной строки на другую используется символ подчеркивания (_) в конце переносимой строки, например: ^–{i, 2, 3; 4, 5, 6; 7, S, 9}//3–by–3matrix Условный оператор if Условный оператор if используется для создания типовой конструкции: if boolean_expr statement 1 statement2 elseif boolean_expr statements else statement4 end Пример применения оператора if: if ( x > у & x! –0) z=y/x q = log (2–z) elseif ( у >= x & у! = 0) z–x/y q=2'\z else z–0 q=l end 66
Поскольку действие таких конструкций хорошо известно, воздержимся от их подробного описания. Конструкция цикла типа for Для определения цикла с заданным числом повторений используется конструкция с оператором for: for identifier in expr statement 1 statement 2 end Например, оператор с заголовком for i in 1: 10 выполняет 10 циклов, поскольку переменная цикла меняется от 1 до 10 с шагом +1. Оператор break, встречаясь в цикле, ведет к немедленному его прерыванию. Обычно этот оператор вводят в составе условного выражения с оператором if.
67
8. ВЕКТОРНЫЕ И МАТРИЧНЫЕ ПРЕОБРАЗОВАНИЯ В ЗАДАЧАХ МОДЕЛИРОВАНИЯ СИСТЕМ И КОМПЛЕКСОВ Вектор вводится с клавиатуры поэлементно. Формат ввода векторстроки: Имя = [элементы через пробел или запятую] Например: >> V = [1.2,3,–5.1] После ввода на экране получим: V = 1.2000 3.0000 –5.1000 Вектор-столбец вводится также как вектор-строка, но значения элементов разделяются знаком "; ". Длинный вектор можно вводить по частям: >> V1 = [1 2 3]; V2 = [4 5 6]; >> V = [V1 V2] V= 123456 Матрица вводится в квадратных скобках по строкам, как и векторстрока, а строки отделяются друг от друга точкой с запятой. Формирование векторов и матриц Перечислим основные команды-процедуры (стандартные матрицы): zeros(M,N) – создает матрицу размером (M*N) с нулевыми элементами; тогда zeros(1,N) – вектор-строка, а zeros(M,1) – вектор-столбец с нулевыми элементами; ones(M,N) – создает матрицу с единичными элементами; eye(M,N) – cоздает матрицу с единицами на главной диагонали; rand(M,N) – создает матрицу случайных чисел, равномерно распределенных в диапазоне от 0 до 1; randn(M,N) – создает матрицу случайных чисел, распределенных по нормальному закону с нулевым математическим ожиданием и среднеквадратическим отклонением, равным единице; 68
hadamard(N) – создает матрицу Адамара размером (N*N); hilb(N) – создает матрицу Гильберта размером (N*N); invhilb(N) – создает обратную матрицу Гильберта размером (N*N); pascal(N) – создает матрицу Паскаля размером (N*N). Преобразования матриц Ниже приведены основные процедуры преобразования матриц: fliplr(A) – формирует матрицу, переставляя столбцы исходной матрицы А относительно вертикальной оси; flipud(A) – переставляет строки исходной матрицы А относительно горизонтальной оси; rot90(A) – поворачивает матрицу А на 90° против часовой стрелки; reshape(A,m,n) – образует матрицу размером (M*N) путем выборки элементов матрицы А по столбцам и последующего распределения этих элементов по n столбцам, каждый из которых содержит m элементов; tril(A) – образует нижнюю треугольную матрицу путем обнуления элементов матрицы А выше главной диагонали; triu(A) – образует верхнюю треугольную матрицу путем обнуления элемен-тов матрицы А ниже главной диагонали; hankel(V) – формирует квадратную матрицу Ганкеля, первый столбец которой совпадает с заданным вектором V; diag(x) – формирует или извлекает диагональ матрицы. Если x – вектор, то diag(x) – квадратная матрица с вектором х на главной диагонали. Если необходимо установить заданный вектор на другую диагональ, надо указать еще один параметр (целое число) – номер диагонали. При этом диагонали отсчитываются вверх со знаком плюс, а вниз – минус. Например, diag(x,–1). Если х – матрица А, то функция diag(А) создает вектор-столбец из элементов главной диагонали матрицы А. Если, например, указать номер диагонали # матрицы А, т. е. diag(А,#), то можно получить вектор-столбец из элементов этой диагонали; inv(A) – функция обращения матрицы вычисляет обратную матрицу. Условие выполнения: матрица А должна быть квадратной, и ее определитель не должен быть равен нулю. Действия над векторами Различают векторные действия – на основе законов векторного исчисления и действия по преобразованию элементов векторов, которые не являются операциями векторной математики. 69
Основные действия: сложение V=X+Y вычитание V=X–Y В этих случаях X и Y должны быть либо оба вектор-строка, либо оба вектор-столбец одинаковой длины; транспонирование Х' умножение вектора Х на число r : V=X*r или V=r*X умножение двух векторов одинаковой длины, один из которых столбец, другой – строка. Например, если X и Y – вектора-строки, то: U=X'*Y и V=X*Y', где U – квадратная матрица, а V – число. Действия по поэлементному преобразованию векторов Эти действия преобразуют данный вектор в другой того же размера и типа путем преобразования его элементов. К этим операциям относятся: 1) все элементарные математические функции (тригонометрические, гиперболические, экспоненциальные и целочисленные), т. е. зависящие только от одного аргумента. Например: x – задан, y=sin(x) или v=exp(x) и т. д.; 2) операции поэлементного преобразования: добавление или вычитание числа по всем элементам вектора, например: x+2 или y–3 и т. д. Результат можно просмотреть на экране: disp(x+2) и disp(y–3) поэлементное умножение векторов. Результат – вектор, каждый элемент которого равен произведению соответствующих элементов векторов-сомножителей: disp(x.*y) поэлементное деление векторов. Результат – вектор, каждый элемент которого является частным от деления соответствующего элемента первого вектора на соответствующий элемент второго: disp(x./y) поэлементное деление векторов в обратном направлении. Результат – вектор, каждый элемент которого является частным от деления соответствующего элемента второго вектора на соответствующий элемент первого: disp(x.\y) 70
поэлементное возведение в степень. Результат – вектор, каждый элемент которого является соответствующим элементом первого вектора, возведенным в степень, величина которой равна значению соответствующего элемента второго вектора: disp(x.^y) Поэлементное преобразование матриц Рассмотрим основные преобразования: для поэлементного преобразования матриц используются алгебраические функции. Каждая функция создает матрицу того же размера, каждый элемент которой вычисляется как функция от элемента исходной матрицы; поэлементное умножение матриц одинакового размера обозначается: .* поэлементное деление: ./ и .\ поэлементное возведение в степень: .^ При этом каждый элемент первой матрицы возводится в степень, равную значению соответствующего элемента второй матрицы; сложение: А+х или х+А, где А – матрица, а х – число, что эквивалентно А+х*Е, где Е – единичная матрица размерности матрицы А. Матричные действия с матрицами Сложение, вычитание, транспонирование, умножение матрицы на число, умножение матрицы на матрицу, возведение матрицы в целую степень производится с помощью знаков арифметических операций. Условия для выполнения этих операций: при сложении и вычитании матриц они должны иметь одинаковые размеры; при умножении матриц число столбцов первого множителя должно совпадать с числом строк второго множителя. Матричные функции Рассмотрим некоторые матричные функции: матричная экспонента (ехр(А)) вычисляется: а) expm(A) – как встроенная функция среды MatLab, б) expm1(A) – путем использования разложения Паде матрицы А, в) expm2(A) – путем использования разложения Тейлора матрицы А, г) expm3(A) – используя спектральное разложение матрицы А; 71
логарифмирование матрицы по натуральному основанию – logm(A); sqrtm(A) – вычисляет такую матрицу Y, что Y*Y=A. Извлечение и вставка частей в матрицы Ниже приведены основные процедуры: получить значение элемента второй строки и третьего столбца матрицы А >> A(2,3) вставить число (например, pi) на заданное место >> A(2,3)=pi; A для создания меньшей матрицы из большей или наоборот вставить меньшую матрицу в большую, используется знак : (двоеточие). Например: >> V1=A(:,3) – cоздает вектор V1 из элементов третьего столбца матрицы А; >> V2=A(2,:) – cоздает вектор V2 из элементов второй строки матрицы А; >> B=A(2:3,1:2) – создает матрицу В из элементов левого нижнего угла матрицы А: 1 2 3 4 В= А=5 6 7 8 5 6 9 10 11 12 9 10 >> A(1:2,2:3)=B – вставляет матрицу В в верхнюю середину матрицы А: А= 1 5 6 4 5 9 10 8 9 10 11 12 Замечание: вместо указания элементов матрицы можно указать диапазон изменения их путем задания нижней и верхней границ, разделяя их точкой с запятой. Например: >> C=A(2:end,2:end) – создает матрицу C= 6 7 8 10 11 12 72
растянуть матрицу А в вектор V >>V=A(:) т. е. V'=[1 2 3 4 5 6 7 8 9 10 11 12] составить блочную матрицу: а) горизонтальная конкатенация – объединение в строку для матриц с одинаковым числом строк A=[A1,A2,…,AN] б) вертикальная конкатенация – объединение в столбец для матриц с одинаковым числом столбцов A=[A1,A2,…,AN] 8.1. Операции с векторами и матрицами как с массивами данных MatLab дает дополнительные возможности обработки данных, заданных в векторной или матричной форме. Если зависимость y(x) задана рядом точек: x 1 2 3 4, y 5 6 7 8, то ее можно задать как матрицу xydata, имеющую две строки – значения x и значения y: xydata=[1 2 3 4;5 6 7 8] Приведем основные операции с векторами и матрицами как с массивами данных: размер size(xydata) – определяет число строк и столбцов матрицы xydata. Обращение к процедуре: [n,p]=size(xydata) выдает число строк n и p столбцов в виде: n= и p= max(V) – выдает максимальный по значению элемент вектора V; min(V) – выдает минимальный по значению элемент вектора V; mean(V) – определяет среднее значение элементов вектора V; std(V) – определяет среднеквадратическое отклонение от среднего значения элементов вектора V; sort(V) – формирует вектор с элементами в порядке возрастания их значений; sum(V) – сумма элементов вектора; prod(V) – произведение всех элементов вектора; 73
cumsum(V) – создает вектор кумулятивной суммы, т. е. вектор того же типа и размера, любой элемент которого является суммой всех предыдущих элементов вектора V; cumprod(V) – создает вектор с элементами, равными произведению всех предыдущих элементов вектора V; diff(V) – создает вектор размерностью на единицу меньшую, чем размер вектора V, элементы которого являются разностью между соседними элементами вектора V; Замечание: все перечисленные выше одиннадцать функций применимы и к матрицам. Основное отличие в том, что эти операции производятся не по отношению к строкам матриц, а по отношению к каждому из столбцов заданной матрицы. При этом столбец рассматривается как переменная, а строка – как наблюдение. При применении функций max, min, mean, std получаем векторы-строки с числом элементов, равным числу столбцов; cov(A) – определяет матрицу ковариаций измерений. Результат – квадратная симметричная матрица с числом строк и столбцов, равным числу столбцов матрицы измерений. При этом на диагонали размещены дисперсии измеренных величин, а вне диагонали – взаимные корряляционные моменты этих величин; corrcoef(A) – определяет матрицу коэффициентов корреляции. 8.2. Линейная алгебра матриц Приведем неполный перечень процедур линейной алгебры: k=norm(V,p) где р – целое число, определяющее р-норму вектора V. Если р не задано, то по умолчанию оно равно двум; k=norm(A,p) – вычисляет р-норму матрицы А. Если р не указано, то по умолчанию оно равно двум; r=rank(A) – определяет ранг матрицы А как число сингулярных чисел матрицы, больших некоторого порога eps по соотношению: max(size(A))=norm(A)*eps d=det(A) – вычисляет определитель квадратной матрицы; t=trace(A) – вычисляет след матрицы, равный сумме ее диагональных элементов; R=rref(A) – приводит матрицу к треугольному виду методом исключения Гаусса; 74
pinv(A) – определяет псевдообратную матрицу и удовлетворяет условиям: А*Р*А=А; Р*А*Р=Р. Для квадратных матриц процедура эта совпадает с обращением inf(A); eig(A) – вычисление собственных значений и собственных векторов матрицы. Обращение к процедуре: [R,D]=eig(A), где D – диагональная матрица собственных значений; R – матрица правых собственных векторов в соответствии с условием A*R=R*D. Собственные вектора пронормированы так, что норма каждого из них равна единице; [R,d]=polyeig(A0,A1, …, AP) – определение собственных значений матричного полинома. Здесь: А0,А1,…,АР – квадратные матрицы порядка n, R – матрица собственных векторов размером (n*(n*p)), d – вектор собственных значений размером (n*p).
75
9. ИНТЕГРИРОВАННАЯ СРЕДА И КЛАССЫ ПАКЕТА CONTROL SYSTEM TOOLBOX Основные объекты: 1. Родительский класс LT I(Linear Time-Invariant System – линейные, инвариантные во времени системы, т. е. линейные стационарные системы). 2. Подклассы LTI: TF-объекты (Transfer Function – передаточные функции), ZPK – (Zero-Pole-Gain – нули–полюсы–коэффициент передачи), SS – (State Space-пространство состояние). Рассмотрим LTI-объекты: Обозначения: NU – число входов, вектор U, NY – число выходов, вектор Y, NX – переменные (вектор) состояния Х, OM (SISO) – одномерная система (1 вход, 1 выход), MM (MIMO) – многомерная система (многовходовая – многовыходная система). 1. Атрибуты TF-объектов: num, den – числитель, знаменатель – вектор-строка для OM-системы, а для MM – массив ячеек из векторов-строк размером NY на NU. Variable – переменные s, p, z, или q. По умолчанию s и z. 2. Атрибуты ZPK-объектов: P – полюсы, Z – нули, это вектор-строка для OM-систем, для MM-систем – массив ячеек из векторов – строк размером NY на NU. P – полюсы, K – коэффициенты передачи – это число для OM, матрица NY на NU для MM-систем Variable – переменные s, p, z^, –1 или q По умолчанию s и z. 76
3. Атрибуты SS-объектов: a, b, c, d – матрицы A, B, C, D State Name – имя переменной состояния (не обязательное). Например – "положение", "скорость" и др. 4. Общие атрибуты: TS – дискрет по времени (в секундах): TS= –1 – для дискретной системы с не установленной частотой дискретизации, TS=0 – для непрерывных систем. Td – задержка входов (в секундах). Не используется для непрерывных систем, Input Name – имена входов. Например, "Момент", Output Name – имена выходов, Notes – заметки. Например, "Эта модель создана…", Userdata – дополнительная информация или данные. 9.1. Основные процедуры пакета Control system Toolbox 1. Создание LTI-моделей: ss – создает модель пространства состояний, zpk – создает модель-нули (полюсы), коэффициенты передачи, tf – создает передаточную функцию, dss – специфицирует описатель модели пространства состояния, filt – специфицирует цифровой фильтр, set – установка/модификация атрибутов LTI-модели, ltiprops – справка об атрибутах LTI-моделей. 2. Извлечение данных: ssdata – извлечение матриц пространства состояний, zpkdata – извлечение данных о нулях (полюсах), коэффициентах передачи, tfdata – извлечение числителя и знаменателя передаточной функции, get – получение информации о свойствах LTI-модели. 3. Получение информации о характеристиках модели: class – о типе модели (ss, zpk, tf), fize – информация о размерах матриц входа и выхода, isemply – проверка, является ли LTI-модель пустой, isct – проверка, является ли LTI-модель непрерывной, isdt – проверка, является ли LTI-модель дискретной, isproper – проверка, является ли LTI-модель правильной, 77
issiso – проверка, имеет ли модель один вход и один выход, isa – проверка, является ли LTI-модель моделью заданного типа. 4. Преобразование системы: ss – преобразование в пространстве состояния, zpk – преобразование в нули (полюсы), коэффициенты передачи, tf – преобразование в ПФ, c2d – преобразование непрерывного времени в дискретное, d2c – преобразование дискретного времени в непрерывное, d2d – переопределение дискретной системы или добавление задержек входных воздействий. 5. Арифметические операции: + и – это параллельное соединение LTI-системы, * – последовательное соединение LTI-системы, \ – левое деление sys1\sys2, т. е. inv(sys1)*sys2, / – правое деление sys1/sys2, т. е. sys1*inv(sys2), | – перетранспонирование, .| – транспонирование, [..] – горизонтальное/вертикальное объединение систем, inv – обращение. 6. Модели динамики: pole, eig – полюсы системы, tzero – нули системы, pzmap – карта нулей – полюсов, degain – карта передачи на нулевой частоте, norm – нормы систем, cover – ковариация отклика на белый шум, damp – частота собственных колебаний и демпфирование по полюсам системы, esort – сортировка полюсов непрерывной системы по их действительным частям, dsort – сортировка полюсов дискретной системы по их модулям, pade – аппроксимация Паде задержек по времени. 7. Модели пространства состояния (ПС): rss, drss – создание случайных моделей пространства состояния, ss2ss – преобразование переменных состояния, canon – каноническая форма пространства состояния, ctrb, obsv – матрицы управляемости и наблюдаемости, gram – определители Грама управляемости и наблюдаемости, 78
ssbal – диагональная балансировка матриц ПС, balreal – балансировка входа – выхода на основе определителя Грама, modred – редукция состояния модели, mineral – минимальная реализация, т. е. сокращение нулей и полюсов, angstate – увеличение выхода за счет присоединения состояний. 8. Отклик во времени: step – на единичный скачок, impulse – на единичный импульс, initail – на заданные начальные условия состояния, lsim – на произвольные входы, ltiview – анализ откликов с помощью графического интерфейса, gensig – генерирует периодические сигналы для LSIM, stepfun – генерирует единичный скачок. 9. Частотный отклик: bode – диаграмма Боде частотного отклика (АЧХ и ФЧХ), sigma – частотный график сингулярных значений, nyquist – диаграмма Найквиста, nichols – диаграмма Никольса, ltiview – анализ откликов с помощью графического интерфейса, evalfr – расчетного отклика на заданной частоте, freqresp – частотный отклик над сеткой частот, margin – запасы по фазе и амплитуде. 10. Объединение систем: append – объединение LTI-систем путем объединения входов и выходов, parallel – обобщенное параллельное соединение (аналог процедуры +), feedback – обратное соединение двух систем, series – обобщенное последовательное соединение (аналог *), star – соединение звездой Редхеффера, connect – получение SS-модели из описания блок-схемы. 11. Процедуры классической графики: rlocy – диаграмма Эванса размещения корней (корневой годограф), rlocfind – интерактивное определение звена заданием расположения корней, acker – размещение полюсов OM-системы, plase – размещение полюсов MM-системы, estim – создает оцениватель по заданному КП оценивателя, reg – создает регулятор по заданной матрице обратной связи и коэффициентам оценивателя. 79
12. Инструменты проектирования LQG: lqr, dlqr – линейно-квадратичный (LQ) регулятор обратной связи, lqry – LQ-регулятор с выходным взвешиванием, lqrd – дискретный LQ-регулятор для непрерывной системы, kalman – фильтр Калмана, kalmd – дискретный фильтр Калмана для непрерывной системы, lqgreg – формирователь LQG-регулятора по LQ-коэффициентам и фильтру Калмана. 13. Решение матричных уравнений: lyap – решение непрерывных уравнений Ляпунова, dlyap – решение дискретных уравнений Ляпунова,
care ⎫ ⎬ – решение непрерывных и дискретных уравнений Риккати. dare ⎭ 14. Демонстрационные программы: ctrldemo – введение в Control System Toolbox, jetdemo – классическое проектирование САУ углом рыскания, diskdemo – цифровое проектирование контроллера привода жесткого диска, milldemo – OM и MM LQG управление прокатного стана, kalmdemo – проектирование и моделирования фильтра Калмана. 9.2. Решение непрерывных алгебраических уравнений Ляпунова Группа процедур lyap предназначена для решения непрерывных матричных уравнений Ляпунова и Сильвестра (т. е. обобщенных уравнений Ляпунова). Примечание: эти уравнения широко используются в теории управления, включая теорию устойчивости и при анализе поведения динамических систем при случайных воздействиях: 1. Процедура x = lyаp (A, Q) находит решение матричного уравнения Ляпунова AX + XAT + Q = 0, где A и Q – квадратные матрицы одинаковых размеров. 2. Процедура x = lyаp (A, B, C) 80
для: AX + XB + C = 0, где матрицы A, B, C – должны иметь согласованные размеры, но не обязательно должны быть квадратными. Условие решения: непрерывное уравнение Ляпунова имеет единственное решение, если собственные значения α1, α2,…,αn матрицы А и β1, β2, βn матрицы B для всех пар (i, j) удовлетворяет условию αi+βj ≠ 0. 9.3. Решение дискретных алгебраических уравнений Ляпунова Процедура x = dlyаp (A, Q) решает уравнение ATXA – X + Q = 0, где A и Q – матрицы [n*n]. Решение X симметрическое, если Q – симметрическая и положительно определенная, если Q положительно определена, а собственные значения матрицы A расположены внутри окружности единичного радиуса. Условие решения: αi*αj ≠ 1, где α1, α2,…,αn – собственные значения матрицы A; i, j – пары. 9.4. Решение непрерывных алгебраических уравнений Риккати Обращение к процедуре care для обобщенного уравнения вида [X, L, G, rr] = care (A, B, Q, R, S, E) используется при синтезе оптимальных законов управления Процедура выдает решение X алгебраического уравнения Риккати: ATXE + ETXA – (ETXB + S)R–1(BTXE + S') + Q = 0, что эквивалентно FTXE + ETXF–1 – ETXBR–1BTXE + Q – SR–1ST = 0, где F: = A – BR–1ST. Если при обращении к процедуре пропущены входные параметры R, S и E, то они 81
R = I, S = 0, E = I (I – единичная матрица). Кроме того, процедура вычисляет: матрицу коэффициентов усиления (коэффициентов обратных связей) G = R–1 (BTXE + ST), вектор L – собственных значений замкнутой системы, т. е. EIG(A – –B*G, E) , норму rr Фробениуса матрицы относительных остатков (погрешность вычислений). Процедура care используется для нахождения решений двух типов непрерывных алгебраических уравнений Риккати. CARE – continues – time Algebraic Riccati Equation. Функция [X, L, G, rr] = care (A, B, Q) находит единственное решение алгебраического уравнения Риккати ATX + XA – XBBTX + Q = 0 в виде матрицы X замкнутой системы A – BBTX, собственные значения которой расположены в левой полуплоскости комплексной переменной S. Процедура также вычисляет: собственные значения L матрицы A – BBTX, матрицу коэффициентов обратной связи G = BTX, относительную невязку решения rr, т. е. погрешность подстановки решения в исходное уравнение (погрешность вычислений). 9.5. Решение дискретных алгебраических уравнений Риккати Группа функций dare предназначена для нахождения решений двух типов дискретных алгебраических уравнений Риккати. DARE – Discrete – time Algebraic Riccati Equation. 1. [X, L, G, rr] = dare (A, B, Q, R) находит единственное решение уравнения ATXA – X + ATXB (BTXB + R)–1BTXA + Q = 0 в виде такой матрицы X, что все собственные значения матрицы замкнутой системы AC = A – B (BTXB + R)–1BTXA расположены внутри единичной окружности комплексной плоскости Z. Матрица X симметрическая и является устойчивым решением алгебраического уравнения Риккати. 82
Кроме X вычисляются: собственные значения L матрицы Aс, матрица коэффициентов обратных связей G = (BTXB + R)–1BTXA, – погрешность вычислений rr (т. е. невязка решения). 2. [X, L, G, rr] = dare (A, B, Q, R, S, E) решает обобщенное уравнение Риккати вида ATXA – ETXE – (ATXB + S)(BTXB + R)–1(BTXA + ST) + Q = 0. В этом случае матрица коэффициентов обратных связей равна G = (BTXB + R)–1(BTXA+ST), а собственные значения L определяются путем решения обобщенной проблемы собственных значений для пучка матриц {A – B*G, E}. 3. При синтезе законов oптимального управления используется процедура: [X, L, G, rr] = dare (A, B, Q,…,'report'), которая выдает сообщение об ошибке, когда решения уравнения Риккати не существует. 'report' может иметь значения: –1 – когда собственные значения решения расположены на мнимой оси или близко к ней, –2 – когда матрица Х – вырожденная. 9.6. Формирование матрицы управляемости Процедура ctrb формирует матрицу управляемости. Система является управляемой, если матрица управляемости С0 имеет полный ранг. 1. C0 = ctrb (A, B) формирует для пары матриц {A, B} размера [n*n] и [n*m] матрицу управляемости С0 = [B AB … An–1B], которая имеет n-строк и n*m-столбцов, где n – порядок системы. 2. C0 = ctrb (sys) формирует матрицу управляемости для системы sys, заданной в пространстве состояний. Эта процедура эквивалентна 83
C0 = ctrb (sys.A, sys.B). 9.7. Формирование канонической формы управляемости В процессе вычисления матрицы управляемости C0 может проявиться плохая обусловленность этой матрицы по отношению к операции обращения. В этом случае разработчики CST рекомендуют использовать процедуру (т. е. когда ранг матрицы управляемости меньше n) [Abar, Bbar, Cbar, T, k] = ctrbf (A, B, C), которая преобразует SS – модель, заданную тройкой матриц {A, B, C}, в каноническую форму управляемости {Abar, Bbar, Cbar}. Матрица Т описывает преобразования подобия вида: А=ТАТ Т , В=ТВ, С=СТ Т ,
где T – унитарная матрица. В этом случае преобразованная система имеет блочно-треугольную форму с неуправляемыми модами, расположенными в левом верхнем углу
А=
А ис А 21
0 0 , В= , C СисСс . Ас Вс
Такая форма называется канонической формой управляемости. Пара матриц {Ac, Bc} является управляемой, а все моды, соответствующие собственным значениям матрицы Aис, являются неуправляемыми. Для управляемой подсистемы выполняется следующее соотношение: Cc(SI–Ac)–1Bc = C(SI–A)–1B, т. е. передаточная функция всей системы совпадает с передаточной функцией ее управляемой части. В процедуре ctrbf k – количество управляемых мод, выделенных на каждом шаге расчета матрицы преобразования. Число ненулевых элементов вектора k показывает, сколько операций потребовалось для расчета матрицы Т. Процедура [Abar, Bbar, Cbar, T, k] = ctrbf (A, B, C, tol) позволяет задать tol – точность отделения управляемого от не управляемого подпространства системы.
84
9.8. Формирование матрицы наблюдаемости 1. Процедура A [n*n] Ob = obsv (A, C) C [np*n] формирует матрицу наблюдаемости Ob = [CT(CA)T,…,(CAn–1)T]T n*np-строк Np-столбцов Система наблюдаема, если матрица наблюдаемости Ob имеет полный ранг. 2. Процедура Ob = obsv (sys) дает матрицу наблюдаемости для sys, заданной в пространстве состояний. Данная процедура аналогична процедуре: Ob = obsv (sys.A, sys.C) 9.9. Формирование канонической формы наблюдаемости Если матрица наблюдаемости для пары {A, C} имеет ранг меньше n, где n – порядок матрицы A, то существует преобразование подобия вида А=ТАТ Т , В=ТВ, С=СТ Т ,
где Т – унитарная матрица. Преобразованная система имеет блочно-треугольную форму с ненаблюдаемыми модами, расположенными в левом верхнем углу:
А=
А no 0
А12 В , В= no , C= 0 С0 . А0 В0
Такую форму называют канонической формой наблюдаемости. Пара матриц {A0, C0} является наблюдаемой, а все моды, соответствующие собственным значениям матрицы Ano, являются ненаблюдаемыми. Для наблюдаемой подсистемы выполняются соотношения: С0(SI–A0)–1B0 = C (SI–A)–1B, т. е. передаточная функция всей системы совпадает с передаточной функцией ее наблюдаемой части. 85
1. Процедура [Abar, Bbar, Cbar, T, k] = obsvf (A, B, C) преобразует SS-модель пространства состояний в каноническую форму наблюдаемости {Abar, Bbar, Cbar}, где Т – матрица преобразования подобия; k – количество наблюдаемых мод, выделенных на каждом шаге расчета матрицы преобразования. 2. Процедура [Abar, Bbar, Cbar, T, k] = obsvf (A, B, C,tol) позволяет задать точность tol определения наблюдаемого и ненаблюдаемого подпространств. 9.10. Синтез фильтра Калмана для непрерывных и дискретных систем Непрерывный фильтр Калмана Процедура для непрерывной системы имеет вид [kest,L,P] = kalman (sys, Qn, Rn, Nn) и рассчитывает непрерывный фильтр: выполняет синтез фильтра Калмана для оценки переменных состояния объекта управления на основе данных о случайных внешних возмущениях и ошибках измерений. Исходные модели: – уравнение состояний, x=Ax+Bu+Gw
y ν =Cx+Du+Hw+ν – уравнение измерений с шумами, где w – шумы, воздействующие на объект по входам u (возмущения), ν – шумы измерений. Шумы w и v являются "белыми" со следующими характеристиками: M{w} = M{ν} = 0, M{v(t)ν(τ)t}=Rδ(τ–τ), M{w(t)w(τ)t}=Qδ(τ–τ), M{v(t)w(τ)t}=Nδ(τ–τ). Требуется синтезировать наблюдатель для оценивания вектора переменных состояния объекта, минимизирующий установившуюся ошибку оценивания
{
}
P= lim M ( x − xˆ )( x–xˆ ) . t →∞
86
T
Оптимальным решением является фильтр Калмана ˆ ˆ ⎧ x=Ax+Bu+L(y–Cx–Du) ⎪ , ⎨ ⎡ yˆ ν ⎤ ⎡C⎤ ⎡ D ⎤ ˆ ⎢ ⎥ U+Hw+ν ⎪ ⎢ xˆ ⎥ = ⎢ I ⎥ x+ ⎩⎣ ⎦ ⎣ ⎦ ⎣ 0 ⎦ где L – матрица коэффициентов обратных связей; P – ковариационная матрица ошибок оценивания. Матрица коэффициентов обратных связей L определяется на основе решения алгебраического матричного уравнения Риккати. Наблюдатель объединяет фильтр Калмана и объект управления; использует известные входы и результаты измерений yv, искаженные случайными помехами. Если матрица N = 0, то последний входной аргумент Nn можно опустить. Дискретный фильтр Калмана Процедура проектирования имеет вид [kest, L, P, M, Z] = kalman (sys, Qn, Rn, Nn) для дискретной модели объекта управления: x [n+1] = Ax [n] + Bu [n] + Gw [n] – уравнение состояний, yv [n+1] = Cx [n] + Du [n] + Hw [n] + v [n] – уравнение измерений c известными входами u и возмущениями по входам w и измерениям v, которые являются "белым" шумом со следующими характеристиками: M{w} = M{v} = 0, M{w[n] w[m]T} = Qdnm, M{v[n] v[m]T} = Rdnm, M{v[n] w[m]T} = Ndnm. Требуется выполнить синтез наблюдателя для оценки вектора состояния, минимизирующего установившуюся ошибку оценивания ˆ ˆ T }. P= lim M{(x–x)(x–x) t →∞
Оптимальное решение – это фильтр Калмана вида ˆ ˆ ˆ ⎧ x[n+1/n]=Ax[n/n–1]+Bu[n]+L(y ν –Cx[n/n–1]–Du[n]) ⎪ ⎡(I–CM)D CM ⎤ ⎡ u[n] ⎤ . ⎨ ⎡ yˆ v [n/n]⎤ ⎡C(I–MC) ⎤ ˆ =⎢ x[n/n–1]+ ⎥ ⎥ ⎢ ⎪ ⎢ x[n/n] M ⎥⎦ ⎢⎣ y ν [n]⎥⎦ ⎦ ⎣ I–MC ⎦ ⎣ –MD ⎩⎣ ˆ
87
Матрица коэффициентов обратных связей L и новая матрица коэффициентов обратных связей M определена путем решения матричного алгебраического уравнения Риккати. Обновленная матрица коэффициентов обратных связей M применяется для того, чтобы уточнить предсказание x[n/n–1] на основе измерения yv [n]; P и Z – ковариационные матрицы ошибок оценивания в установившимся режиме определяются выражениями:
{
}
P = lim M e [n/n–1]e [n/n–1] , n→∞
T
где e [n/n–1] = x [n/n–1] – xˆ [n/n–1],
{
}
Z = lim M e [n/n ]e [n/n ] , n→∞
T
где e [n/n ] = x [n/n ] – xˆ [n/n ]. Общий случай проектирования фильтра Калмана Процедуры [kest, L, P] = kalman (sys, Qn, Rn, Nn, sensors, known) [kest, L, P, M, Z] = kalman (sys, Qn, Rn, Nn, sensors, known) применяются для объектов управления sys более общего вида, в которых могут быть определены известные и случайные неизвестные, и не все выходы измеряются. Векторы индексов sensor и known определяют, какие входы известны. Все другие входы предполагаются случайными и неизвестными. 9.11. Синтез систем в Control System Toolbox. Общие подходы и понятия Для проектирования динамических регуляторов широко применяется подход, основанный на построении линейного oптимального управления по квадратичному критерию качества с учетом гауссовских управляющих и возмущающих воздействий, т. е. линейный квадратичный гауссовский регулятор (ЛКГ-регулятор). Предполагается, что на объект управления воздействует случайное возмущение W и управление U, а регулятор формирует управление на основе поступающих на его вход измерений yv = y + v, возмущенных случайными помехами V. 88
Объект управления и измерительная подсистема описываются:
⎧ x=Ax+Bu+Cw; ⎨ ⎩ y=Cx+Du+Hw+v, где W и V – процессы типа "белый шум". ЛКГ-регулятор включает oптимальные обратные связи по оценкам переменных состояния и фильтр Калмана для получения этих оценок. Эти два компонента oптимального закона управления можно рассчитывать практически раздельно. 9.12. Формирование оптимального закона управления В ЛКГ-регуляторе эффективность управления оценивается по квадратичному критерию качества: Y
J(u)= ∫ (x T Qx+x T Nu+u T Ru)dt. 0
Весовые матрицы Q, N, R определяют соотношение между качеством регулирования (скорости сходимости процесса к нулю) и затратами на управление и задаются пользователем. На первом шаге синтеза вычисляются коэффициенты обратных связей по переменным состояния (матрица К). В результате получаем закон управления вида U = –Kx, минимизирующий критерий качества J(u). Матрица К является решением алгебраического уравнения Риккати. Этот закон управления называют линейным квадратичным оптимальным управлением (ЛК). 9.13. Проектирование оптимального регулятора в MATLAB 1. Проектирование линейно-квадратичного оптимального регулятора для систем непрерывного времени. Процедура [K, S, e] = lqr(A, B, Q, R, N) Определяет К – матрицу (вектор-строку) коэффициентов, использование которой в цепи отрицательной обратной связи в пространстве состояния 89
U = –Kx , минимизирует функционал вида
J= ∫ [x T Qx+u T Ru+2x T Nu]dt для объекта x=Ax+Bu, где N, R, Q – корреляционные матрицы шумов M{wvT}=N, M{vvT}=R, M{wwT}=Q. Если N не задавать, то по умолчанию эта матрица нулевая. Находит решение S алгебраического уравнения Риккати вида: SA + ATS – (SB + N)R–1(BTS + NT) + Q = 0. Находит собственные значения в замкнутой системе вида (А – ВК) для x = Ax – BKx. Пример: [A, B, C, D]=ssdata(sssys)
Q= ⎫ ⎬ задать R= ⎭ [K, S, e] =lqr (A, B, Q, R) Получим: К = вектор [1×n] S = квадратная матрица [n×n] e = действительная часть мнимая часть (отрицательные значения) Например, вида: –4,1560+7,2010i. 2. Проектирование линейно-квадратичного оптимального регулятора с обратной связью по состоянию. Обратная связь формируется как дополнительная по отношению к существующим и охватывающая только регулируемый объект. Функционал-критерий минимизируется не по вектору состояния, как в предыдущем случае, а по выходному сигналу
J= ∫ (yT Qy+u T Ru+2yT Nu)dt для 90
y = Cx+Du.
Процедура [K, S, e ] = lqry(sys, Q, R, N), где sys – имя LTI – модели САУ, Q⎫ ⎪ R⎬ N ⎪⎭
корреляционные матрицы шумов,
K, S, e – те же обозначения, что и раньше. Эта процедура используется и в дискретном случае (т. е. для дискретной системы):
⎧ x[n+1]=A×x[n]+Bu[n]⎫ ⎬ ⎪ y[n]=Cx[n]+Du[n] ⎭ . ⎨ ⎪ T T T ⎩J=Sum[y Qy+u Ru+2y Nu] 3. Проектирование оптимального линейно-квадратичного регулятора, минимизирующего непрерывный функционал
J= ∫ [x T Qx+u T Ru+2x T Nu]dt. Процедура [K, S, E] = lqrd(A, B, Q, R, N, Ts) Ts – период дискретизации. Обратная связь формируется по виду U = –Kx. Исходная модель системы должна быть задана в конечно-разностной форме. 4. Проектирование оптимального линейного дискретного регулятора для дискретной системы с использованием дискретного функционала. Процедура [K, S, E] = diqr(A, B, Q, R, N, Ts) где S – решение уравнения Риккати вида ATSA – S – (ATSB+N)(R+BTSB)(BTSA+NT)+Q = 0.
91
10. РЕШЕНИЕ ЗАДАЧ ИДЕНТИФИКАЦИИ. ГРАФИЧЕСКИЙ ИНТЕРФЕЙС SYSTEM IDENTIFICATION TOOLBOX Пример идентификации математической модели датчика Удобный графический интерфейс пакета System Identification запускается из режима командной строки командой ident В результате ее исполнения появляется диалоговое окно. Работу с интерфейсом лучше всего рассмотреть на примере. В режиме командной строки введем команду "load dryer2 Выполнение команды приводит к загрузке в рабочую среду MATLAВ массивов данных u2 (входные данные) и у2 (выходные данные), относящихся к такому объекту исследования, как датчик термометра сопротивления, при этом u2 – температура, а у2 – изменение сопротивления. В верхнем левом углу окна выберем в раскрывающемся списке Data (Данные) вариант Import. Это приведет к открытию диалогового окна. Введем в нем имя u2 в поле Input (Вход), у2 – в поле Output (Выход), в поле Samp. inter. (Интервал дискретизации) зададим интервал дискретизации 0.08, в строке Data name (Имя данных) укажем Датчик, а в поле Notes (Примечания) – поясняющий текст. Идентификация датчика Затем нажмем кнопку Import. Далее нажатием кнопки Close (Закрыть) закроем окно импорта данных. Указанные действия приведут к появлению в верхнем левом углу окна интерфейса значка в виде цветной линии, сопровождаемого надписью "Датчик". Это означает, что импортируемые данные введены в среду интерфейса. Сообщения об этих данных также появляются в значках Working Data (Рабочие данные) и Validation Datа (Данные для проверки модели). 92
Проведем исследование исходных данных, для чего установим флажок Time plot (Временной график) в левой нижней части окна интерфейса. Почти сразу появится графическое окно, содержащее графики сигналов u2(t) и y2(t) – при этом график с надписью Output #1 (Выход № 1) в данном случае относится к y2(t), а график с надписью Input #1 (Вход № 1) – к u2(t). В m-файле данного примера входной и выходной сигналы обозначены через u2 и у2. Однако при их отображении в окне графического интерфейса нумерация сигналов автоматически устанавливается с 1, поэтому в строке заголовка окна рисунка фигурируют обозначения ul и у1 вместо u2 и у2. Можно увеличить интересующие вас места графиков, чтобы лучше их рассмотреть. Для этого необходимо мышью выделить некоторую прямоугольную область. Выделенный участок сигнала сразу же увеличится в размерах так, что будет занимать все соответствующее окно. Для возвращения к исходному масштабу необходимо дважды щелкнуть мышью на увеличенном графике. А, вообще, изменение масштабов графика производится однократным щелчком мыши в области графика: левой кнопкой – для увеличения изображения, правой – для его уменьшения (такое изменение масштабов возможно, только если в меню Style (Стиль) окна Time plot выбран вариант Zoom). Заметим, что меню окна имеет ряд команд, позволяющих достаточно подробно изучать вид входных и выходных сигналов. Закроем окно Time plot и вернемся в основное окно интерфейса. Проведем предварительную обработку сигналов исследуемого объекта, исключив из них постоянную составляющую. С этой целью активизируем раскрывающийся список Preprocess (Предварительная обработка) и выберем в нем вариант Remove means (Удалить среднее). Результатом операции явится появление в одном из значков Data Views (Вид данных) в левой верхней части окна интерфейса информации о новых данных с именем Датчикd. Можно опять активизировать окно Time plot и увидеть, что там появилось изображение двух новых сигналов, отличающихся от исходных отсутствием постоянной составляющей. Для более удобного их просмотра целесообразно воспользоваться командой меню окна Options > Autorange (Автоматическое масштабирование). Чтобы просмотру не мешали исходные графики, можно убрать их, просто щелкнув мышью на значке с их представлением (в левой верхней части окна интерфейса), при этом сразу изменится и масштаб изображения. 93
Приступим теперь к построению модели, принимая в качестве данных для ее построения данные Датчикd. Перетянем их мышью в область Working Data (в центре окна интерфейса). Если мы теперь хотим получить какую-то информацию об этих данных или изменить что-либо (например, их имя), щелкнем мышью дважды на соответствующем значке в группе Data Views. Появится диалоговое окно. Изменим имя данных, например на ДатчикМ, и закроем данное окно. Активизируем теперь вариант Select Range (Выбор диапазона) из списка Preprocess. Это приведет к появлению нового окна. Диапазон можно задать либо в текстовом окошке Time span (Временной диапазон), либо с помощью мыши, выделяя прямоугольную область точно так же, как это проводилось для окна Time plot. Любым из этих способов укажем диапазон от 1 до 50 с и нажмем кнопку Insert (Вставить). Результат проделанной операции отразится появлением значка, символизирующего эти (усеченные) данные (с именем ДатчикMe) в окне интерфейса. Повторим операцию задания диапазона с целью формирования данных для проверки модели – например, из оставшейся части начального диапазона, в результате чего появится еще один значок данных с именем ДатчикМv. Закроем окно выбора диапазона. С помощью мыши перетащим данные ДатчикМе в область Working Data, а данные ДатчикМv – в область Validation Data (заметим, что если на каком-то этапе работы с данными допущена ошибка и мы хотим удалить неправильные данные, необходимо просто перетащить их мышью на значок Trash (Мусор) в центральной нижней части окна интерфейса, и они исчезнут). Собственно, теперь можно приступать к нахождению оценки модели выбранного вида. Для этого вначале необходимо указать этот вид. Начнем с оценивания переходной функции объекта. В раскрывающемся списке Estimate (Оценивание) выберем вариант Correlation Model. (Корреляционная модель), что приведет к появлению соответствующего диалогового окна. Вообще-то в появившемся окне можно кое-что задать дополнительно, но в данном случае ничего не будем делать, только нажмем в нем кнопку Estimate (Оценить), после чего окно можно закрыть. А в основном окне интерфейса в его правой части (Model Views – Вид моделей) при этом появится значок с надписью crad или imp, означающий, что выбранная модель построена. Чтобы увидеть результат, 94
установим флажок Transient resp (transient response – переходная функция) и увидим в появившемся окне график переходной функции исследуемого объекта, найденной описанным выше корреляционным методом. Можно провести детальное изучение данного графика, пользуясь доступными командами меню графического окна или с помощью мыши так же, как это было проделано ранее при изучении входного и выходного сигналов. Но оценить качество полученной модели можно только в процессе ее сравнения с моделями других видов. Укажем, что используя команду Options | Impulse response меню данного окна, вместо графика переходной функции можно вывести график ИХ (импульсной характеристики). Оценим модель следующего вида – частотные характеристики объекта. Выберем в списке Estimate вариант Spectral model и повторим только что проделанные операции по нахождению оценки модели. В результате в основном окне интерфейса (в его правой части – Model Views) появится еще один значок с именем spad, символически представляющий модель в виде частотных характеристик, найденных спектральным методом. Результат отображается активизацией графического окна Frequency resp (frequency response – частотные характеристики). Перейдем теперь к оцениванию параметрических моделей, выбрав в списке Estimate вариант Parametric models. Данный выбор приведет к открытию диалогового окна задания структуры модели. По умолчанию пользователю предлагается модель типа ARX (см. выше) с параметрами na = 4, nb = 4, nk = 1. Можно согласиться или не согласиться с данными значениями. В последнем случае параметры можно изменить непосредственно в строке окна или с помощью редактора порядка модели (Order editor), вызываемого нажатием соответствующей кнопки. Можно вообще выбрать другую параметрическую модель, воспользовавшись раскрывающимся списком в верхней части окна (возможный выбор – модели типа ARX, ARMAX, ОЕ, BJ, State Space и модель, задаваемая пользователем). В рассматриваемом примере сохраним значения по умолчанию (ARX, 4, 4, 1) и нажмем кнопку Estimate (Оценить). Результатом действия будет появление значка модели с названием агх441. Воспользовавшись далее возможностями редактора порядка модели (Order editor), зададим теперь ARX-модель с параметрами na = 2, nb = 2, nk = 3 (последнее означает наличие в объекте запаздывания с величиной nkxT = 3х0.08 = 0.24 с) и повторим операцию оценивания. Это приведет к появлению значка еще одной модели с именем aгх223. 95
Для сравнения полученных моделей активизируем окно Transient resp. В нем будут отображены графики переходных процессов, соответствующие трем построенным моделям – корреляционной (crad), arx441 и arx 223. Заметим, что однократный щелчок левой кнопкой мыши на графике модели в ее значке приведет к исчезновению соответствующего графика переходного процесса; повторный щелчок восстанавливает изображение. Двойной щелчок на значке приводит к открытию окна с информацией о модели. Вернемся к окну Transient resp. Оставляя в нем только по одному графику (т. е. убирая остальные, как это описано выше), активизируем команду его меню Options > Show 99% confidence intervals (Показать 99%-й доверительный интервал). Просмотрим последовательно переходные процессы с доверительными интервалами для трех построенных моделей – crad, arx441 и агх332. Сравнение покажет, что первая модель является наименее точной, а вторая и третья дают примерно одинаковые результаты. Какую же модель выбрать в качестве итоговой? При прочих равных условиях, очевидно, более простую, а таковой здесь является (по числу оцениваемых коэффициентов) модель агх332. Есть и еще один способ сравнения параметрических моделей – путем активизации графического окна Model output (соответствующий флажок расположен в средней нижней части окна интерфейса). Вид окна Model output для выбранных моделей arx441 и агх332 просмотреть внимательно. В левой части данного окна приведены выходы объекта и указанных моделей, а в правой – величины, отражающие меру совпадения (средне-квадратичное рассогласование) экспериментальных и прогнозируемых данных. Как видно, несколько точнее оказывается модель arx441 (хотя и не намного). Возвратимся к процедуре оценивания параметрических моделей. Выберем структуру вида State Space. В появляющемся диалоговом окне задания структуры модели по умолчанию предлагается модель 4-го порядка (используется обновленная форма модели для переменных состояния). Можно, конечно, с этим согласиться, но можно избрать поисковый метод определения наилучшей структуры (порядка) модели, указав в строке Orders (Порядок) диапазон возможных значений порядка модели, например 1:10. Проделав это и нажав кнопку Estimate, в качестве 96
результата выполненного действия получим открывшееся окно выбора порядка модели. График показывает вклад n-й составляющей вектора переменных состояния в выходной сигнал модели (значения n указаны по оси абсцисс). Целесообразно выбирать значение n таким, чтобы столбцы, соответствующие составляющим с номерами больше n, имели бы намного меньшую высоту, чем столбцы, расположенные слева от них. В рассматриваемом случае можно остановиться на n = 4. Возвратимся далее в окно задания структуры модели и нажмем кнопку Estimate. Результатом явится появление значка новой модели с именем n4s4. Данную модель можно исследовать так же, как и полученные ранее модели. Вообще-то для анализа моделей графический интерфейс пакета System Identification представляет весьма значительные возможности, среди которых отметим только возможность просмотра переходной функции модели с помощью программы LTI Viewer (пакета Control Systems). Сохранение построенных моделей производится в два этапа: сначала модель вводится в рабочее окружение системы MATLAB (перетаскиванием значка модели в область То Workspace в центре рабочего окна интерфейса), при этом модель будет фигурировать в рабочем пространстве MATLAB под тем же именем, что и в среде интерфейса; затем модель сохраняется командой сохранения в режиме командной строки (как любая переменная MATLAB). Отметим, что можно сохранить все рабочее пространство интерфейca (при его закрытии даже появится соответствующая подсказка) в виде файла с расширением (по умолчанию) sid, при этом в следующем сеансе работы можно загрузить все полученные результаты. Сохраненное рабочее пространство называется сессией. 10.1. Идентификация с использованием блоков Simulink В состав библиотеки System ID Blocks блоков Simulink системы MATLAB входят блоки, позволяющие проводить оценивание ряда типовых моделей: модели авторегрессии AR (AutoRegressive model estimator); ARX-модели (AutoRegressive with eXternal input model estimator); ARMAX-модели (AutoRegressive Moving Average with eXternal input model estimator); модели Бокса–Дженкинса BJ (Box–Jenkins model estimator); 97
обобщенной линейной модели (General model estimator using Predictive Error Method); модели "вход-выход" ОЕ (Output-error model estimator). Правила работы с данными блоками аналогичны правилам для друтих блоков Simulink. В качестве примера используем модель Simulink для идентификации дискретного объекта 3-го порядка z ^2+2z+3 . z ^3+1.11z^2+0.33z+0.03
Щелчок на кнопке с треугольным значком приведет к запуску процесса моделирования, отражаемого изменяющимися во времени графиками, конечный вид которых просмотреть самим. Заметим, что полученная модель отображается в основном окне MATLAB. В данном случае конечный результат таков: num/den =
z^3 . z^3+1.1052z^2+0.32461z+0.027908
Сохранение результатов. Созданная модель с именем th сохраняется, как уже отмечалось, обычным образом – с помощью функции save, например: save th или save имя_файла th При этом будет создаваться файл с именем th или имя_файла с расширением mat. Загрузка модели в следующем сеансе работы производится с помощью функции load.
98
11. ВИРТУАЛЬНЫЙ ПРИНЦИП ПОСТРОЕНИЯ ПРИБОРОВ И СИСТЕМ Пакет прикладных программ LabVIEW обеспечивает программную поддержку автоматизированных систем для научных исследований (АСНИ) и автоматизированных систем управления (АСУ). Персональный компьютер традиционной комплектации дополнен многофункциональными встроенными платами ввода/вывода аналоговой и цифровой информации для стационарных и портативных компьютеров, стандартных интерфейсов (VME, IEEE, RS), сетей промышленных контроллеров (внешних адаптеров). Среда LabVIEW многофункциональна и обеспечивает: обмен информацией с внешними измерительными, следящими, управляющими устройствами; анализ и обработку полученной информации; сбор, хранение и передачу (в том числе и по сетям) информации; поддержку математического эксперимента (работу с виртуальными инструментами); обеспечение пользовательского интерфейса АСУ и АСНИ. Сочетание двух и более функций LabVIEW позволяет создать эффективную систему управления, контроля, передачи данных. Основная особенность LabVIEW с точки зрения пользователя – графическая интерпретация языка программирования этой системы. Графический язык – язык функциональных блок-диаграмм – позволяет значительно упростить создание, например, программ управления внешним объектом или обработки данных, полученных от внешнего устройства. Вместе с тем в среде LabVIEW возможно использование программ на языке Си. Возможности системы расширяются за счет дополнительных библиотек по работе с базами данных (SQL, Toolkit), обработке изображений (Convert VI), PID-регулированию (PID Control). Управление экспериментом – одно из возможных приложений LabVIEW. Для пользователя управление экспериментом сводится к работе с лицевой панелью виртуальной установки на экране монитора, с помощью которой он наблюдает за необходимыми параметрами и управляет программно-аппаратным комплексом. 99
В среде LabVIEW могут быть созданы виртуальные приборы, моделирующие как отдельные функции измерительного или управляющего комплекса, так и весь комплекс в целом; возможно полное моделирование эксперимента. В последнем случае нет необходимости подключать внешние и согласующие устройства. Пользователь работает с виртуальными устройствами, обеспечивающими достаточную степень адекватности моделируемых процессов реальным. Пользовательский интерфейс LabVIEW Система запускается соответствующей иконкой в среде Windows. После запуска LabVIEW на экране монитора открываются два окна: окно лицевой панели прибора – серый фон и окно схемы (блок-диаграммы) – белый фон. Переключение из одного окна в другое осуществляется с клавиатуры командой Ctrl + F или, при использовании мыши, выбором окна (курсор устанавливают на нужное окно, нажать левую кнопку). В каждом из окон пользователю предлагается головное меню, меню режимов и ситуационное меню, дополняющее и частично дублирующее головное меню. Доступные пункты в любом меню выделены более ярким цветом. Головное меню обеспечивает общее взаимодействие LabVIEW с пользователем. Пользователю предоставляется ряд возможностей, из которых наиболее часто используются: Files – работа с файлами: New – создать новый файл; Open – загрузить файл из каталога; Close – закрыть файл; Save (Save As, Save And Copy As) – записать (записать как, записать и скопировать как); Exit – выход из LabVIEW; при отработке пунктов меню Close и Exit система запрашивает, записать или нет текущий файл; Edit – редактирование файла: Cut – поместить предварительно отмеченный блок* в "карман"; Copy – поместить копию отмеченного блока в "карман"; Paste – перенести содержимое "кармана"; Remove Bad Wires – удалить дефектные трассы**; Operate – выполнение программы: Run – запуск программы на пошаговое выполнение (дублирует режим); Stop – остановка выполнения программы (дублирует режим); Controls – меню элементов управления (доступ к библиотеке и выбор необходимых элементов управления) – доступно в окне лицевой панели в режиме редактирования; Functions – меню функциональных блоков (доступ к библиотекам и выбор необходимых функциональных блоков) – доступно в окне схемы в режиме редактирования; Window – работа с окнами: Show Diagram (§ + F) – переход между 100
окнами; Show Help Window – переход в окно подсказки; Tile – показ двух окон (лицевой панели и схемы) одновременно; Size to Screen – растянуть текущее окно во весь экран. Выбор любого доступного пункта и подпункта головного меню осуществляется следующим образом: курсор устанавливают на поле необходимого пункта и нажимают левую кнопку мыши. Меню режимов обеспечивает наглядность и удобство пользовательского интерфейса и позволяет работать в следующих режимах: режим редактирования; режим редактирования графических объектов; режим ввода произвольного текста; режим установления связей; режим редактирования цвета; режим счета (выполнения программы): запуск пошагового счета; режим счета в цикле (запуск); остановка счета (выполнения программы); режим ввода с клавиатуры (цифровые данные, текст) – устанавливается автоматически; режим отслеживания прохождения сигнала по схеме; манипулирование элементами управления (работает в режиме редактирования и в режиме счета). Наряду с обеспечением различных видов работы, меню режимов сообщает о наличии ошибки в схеме прибора. Такая иконка появляется каждый раз, когда нарушена внутренняя логика программы LabVIEW. При попытке запуска дефектной программы на выполнение сообщение об ошибке конкретизируется (открывается окно Error с диагностикой ошибки), одновременно к головному меню добавляется еще один пункт Help. Подсказка в LabVIEW носит контекстный характер. Активизация любого доступного режима: курсор устанавливают на соответствующую иконку и нажимают левую кнопку мыши. Система сигнализирует о включении режима: выбранная иконка чернеет. В режиме редактирования графических объектов помимо выбора графического объекта из меню Controls и Functions возможны следующие операции: отметка блока (элемента). Для этого курсор установить на объект и нажать левую кнопку мыши. Вокруг отмеченного объекта появляется пунктирный контур. Для того чтобы отметить сразу несколько объектов, необходимо щелкнуть левой кнопкой мыши на каждом из них при зажатой клавише SHIFT; удаление блока (элемента): отметить объект и нажать DELETE; перенос блока (элемента): отметить объект, установить на него курсор и переместить курсор, зажав левую кнопку мыши, в нужное место; изменение размеров блока (элемента): курсор установить на границу объекта и дважды нажать левую кнопку мыши. У объекта появляется отметка – "уголки". Не отпуская левую кнопку мыши, 101
растянуть объект до необходимого размера; отмеченный блок (элемент) может быть помещен в "карман", скопирован, перенесен (в том числе, в другой файл) средствами пункта головного меню Edit. Ситуационное меню доступно из рабочего поля любого окна и иконки при зажатой правой кнопке мыши. В зависимости от того, на каком объекте установлен курсор, содержание меню меняется: могут быть предложены средства редактирования иконок; измен статус блока, замена блока, диагностика ошибок редактирования, выбор шрифтов, элементы пунктов головного меню Controls и Functions и т. д. Использование ситуационного меню во многом ускоряет и упрощает процесс программирования в среде LabVIEW. Примеры программирования в среде LabVIEW Ставится задача: организовать цифровой ввод с лицевой панели и графический вывод (на экран) данных. Для ее решения: 1. Запускаем LabVIEW соответствующей иконкой в среде Windows. 2. Работаем в окне лицевой панели в режиме редактирования графических объектов. 3. Выбираем устройство ввода из головного меню: Controls t Numeric ... 4. Ставим метку выбранного устройства ввода: набираем с клавиатуры название устройства, например, "samples" (автоматически устанавливается режим ввода с клавиатуры), переводим курсор на свободное поле окна и нажимаем левую кнопку (отключаем режим ввода с клавиатуры). 5. Выбираем устройство вывода из головного меню: Controls Graph ... 6. Размещаем оптимальным образом устройства ввода и вывода на лицевой панели. 7. Переходим в окно схемы. 8. Размещаем оптимальным образом блоки устройств ввода и вывода на схеме. 9. Переходим в режим установления связи. 10. Выполняем связь "устройство ввода – устройство вывода": устанавливаем курсор на блок "samples" (иконка блока мигает) и, зажав левую кнопку мыши, ведем курсор к блоку устройства вывода. Когда иконка блока вывода начнет мигать, отпускаем и еще раз (коротко) нажимаем левую кнопку. Если линия связи пунктирная (связь не уста102
новлена), удаляем ее: нажимаем правую кнопку мыши и повторяем операцию установления связи. Удалить неустановленную связь можно с помощью пункта головного меню Edit (см. выше) или отметив неустановленную связь как объект в режиме редактирования графических объектов и нажав DELETE. 11. Выходим из режима установления связи. 12. Переходим в окно лицевой панели. 13. Переходим в режим счета. 14. Запускаем счет в цикле. 15. Вводим в режиме манипулирования элементами управления данные. 16. Останавливаем счет. 17. Выходим из LabVIEW с помощью головного меню: File Exit ... В появившемся меню Select t File в нижней строке записываем имя созданного файла с расширением *.VI. Получение на графическом экране сигнала шума Выполняем шаг 1 предыдущего задания и с помощью пункта головного меню File t Open загружаем файл, полученный при выполнении этого задания. Устанавливаем режим редактирования графических объектов и переходим в окно схем. Удаляем ранее установленную связь "устройство ввода – устройство вывода" и в пункте головного меню Functions t Analysis t Signal Generation ... выбираем блок сигнала шума. Размещаем все блоки в окне схем оптимальным образом и переходим в режим установления связи. Устанавливаем связи "устройство ввода – блок сигнала шума" (подводя курсор к верхнему левому углу иконки блока сигнала, – уголок иконки мигает) и "блок сигнала шума – устройство вывода" (курсор подводим к верхнему правому углу иконки блока сигнала шума). Возвращаемся в окно лицевой панели, переходим в режим счета и запускаем счет в цикле. Следим за изменениями графика сигнала шума в зависимости от величины "sampler". Выход из Lab VIEW с записью – записываем текущий файл под тем же именем, помещая его в свой подкаталог. Настройка графического экрана с помощью ситуационного меню Запускаем LabVIEW и загружаем файл, полученный при выполнении заданий 1 и 2. В окне лицевой панели устанавливаем курсор на графический экран (в данном случае режим значения не имеет) и зажи103
маем правую кнопку мыши. Из появившегося меню выбираем необходимые пункты (не отпуская правой кнопки мыши, устанавливаем курсор на нужную строку и нажимаем левую кнопку): установка/отмена автоматической шкалы по оси X(Y), вывод блока настроек экрана на лицевую панель и т. п. В режиме счета наблюдаем, какие настройки для чего могут быть применены. При выходе из LabVIEW записываем файл с измененными настройками экрана (переписываем текущий файл с сохранением имени в свой подкаталог). Ввод текста в режиме текстового редактирования Запускаем LabVIEW и загружаем файл (задания 1–3). Переходим в режим редактирования текста . Устанавливаем курсор на свободное поле лицевой панели и вводим с клавиатуры текст (например, номер группы и фамилию). Выходим из режима текстового редактирования. При выходе из LabVIEW записываем файл (переписываем текущий файл с сохранением имени). Внимание! 1. Перед началом выполнения работы создайте свой подкаталог. 2. Если в методических указаниях нет специальных указаний, то файл с выполненными заданиями является вашим отчетом. 3. Лицевая панель созданной вами виртуальной установки должна быть подписана (фамилия, номер группы, номер лабораторной работы) в режиме текстового редактирования лицевой панели. 4. Если в работе предполагается редактирование, скопируйте исходный файл в свой подкаталог. Редактируйте только копию исходного файла.
104
Рекомендуемая литература 1. Воронов А. А. Устойчивость, управляемость, наблюдаемость. М.: Наука, 1979. 318 с. 2. Гантмахер Ф. Р. Теория матриц. М.: Наука, 1988. 548 с. 3. Заде Р., Дезоер Ч. Теория линейных систем. Метод пространства состояний. М.: Наука, 1970. 360 с. 4. Карамайкин А. С. и др. Информационно-измерительные комплексы. Задачи, структуры, алгоритмы: Учеб. пособие / ЛИАП. Л., 1986. 80 с. 5. Квакернаак Х., Сиван Р. Линейные оптимальные системы управления. М.: Мир, 1987. 650 с. 6. Чемоданов Б. К. Математические основы теории автоматического регулирования. М.: Высш. шк. 1977. Т. 1, 2. 316, 283 с. 7. Хемминг Р. Численные методы. Для научных работников и инженеров. М.: Наука, 1978. 421 с. 8. Эйкхофф П. Основы идентификации систем управления. М.: Мир, 1975. 684 с.
105
Оглавление
Предисловие ........................................................................................... 1. Моделирование на ПЭВМ с использованием современного программного обеспечения ............................................................... 2. Средства и системы моделирования ................................................ 3. Практическое применение MATLAB ............................................... 4. Характеристика интегрированной среды MATLAB ...................... 5. Характеристика средств SIMULINK MATLAB .............................. 5.1. Библиотеки блоков ................................................................. 5.2. Моделирование сигналов ...................................................... 5.3. Просмотр и анализ результатов моделирования ................. 5.4. Исследование непрерывных систем, представленных моделями в операторной форме и в пространстве состояний ................................................................................. 5.5. Исследование дискретных и импульсных систем ............... 5.6. Исследование нелинейных систем ....................................... 5.7. Основные блоки (CONNECTIONS) библиотеки SIMULINK ............................................................................... 5.8. Идеология создания моделей ................................................. 5.9. Технология создания S-модели ............................................. 5.10. Временные параметры S-модели .......................................... 5.11. Подсистемы моделей .............................................................. 5.12. Фиксация и печать S-модели ................................................. 5.13. Отладчик блок-диаграмм ....................................................... 6. Научная и инженерная графика в среде MATLAB. Графический пользовательский интерфейс ........................................................... 7. Интегратор приложений MathConnex. Язык программирования . 8. Векторные и матричные преобразования в задачах моделирования систем и комплексов .............................................................. 8.1. Операции с векторами и матрицами как с массивами данных ...................................................................................... 8.2. Линейная алгебра матриц ...................................................... 9. Интегрированная среда и классы пакета Control System Toolbox ................................................................................................. 106
3 5 11 18 24 29 30 31 32
35 37 37 40 41 45 47 48 49 49 52 56 68 73 74 76
9.1. Основные процедуры пакета Control system Toolbox ......... 77 9.2. Решение непрерывных алгебраических уравнений Ляпунова .................................................................................. 80 9.3. Решение дискретных алгебраических уравнений Ляпунова .................................................................................. 81 9.4. Решение непрерывных алгебраических уравнений Риккати ..................................................................................... 81 9.5. Решение дискретных алгебраических уравнений Риккати ..................................................................................... 82 9.6. Формирование матрицы управляемости ............................. 83 9.7. Формирование канонической формы управляемости ........ 84 9.8. Формирование матрицы наблюдаемости ............................. 85 9.9. Формирование канонической формы наблюдаемости ....... 85 9.10. Синтез фильтра Калмана для непрерывных и дискретных систем .................................................................. 86 9.11. Синтез систем в Сontrol System Toolbox. Общие подходы и понятия .................................................................................. 88 9.12. Формирование оптимального закона управления .............. 89 9.13. Проектирование оптимального регулятора в MATLAB ..... 89 10. Решение задач идентификации. Графический интерфейс System Identification Toolbox ........................................................... 92 10.1. Идентификация с использованием блоков Simulink ........... 97 11. Виртуальный принцип построения приборов и систем .............. 99 Рекомендуемая литература .................................................................... 105
107
Карамайкин Анатолий Степанович
МОДЕЛИРОВАНИЕ ПРОЦЕССОВ И СИСТЕМ ИСПОЛЬЗОВАНИЕ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ Òåêñò ëåêöèé
Редактор А. В. Семенчук Компьютерный набор и верстка Н. С. Степановой Сдано в набор 14.03.05. Подписано в печать 26.04.05. Формат 60×84 1/16. Бумага офсетная. Печать офсетная. Усл. печ. л. 6,3. Усл. кр.-отт. 6,4. Уч.-изд. л. 6,15. Тираж 100 экз. Заказ №
Редакционно-издательский отдел Отдел электронных публикаций и библиографии библиотеки Отдел оперативной полиграфии СПбГУАП 190000, Санкт-Петербург, ул. Б. Морская, 67
108