Текст
                    ФЕДЕРАЛЬНАЯ ЦЕЛЕВАЯ ПРОГРАММА «ГОСУДАРСТВЕННАЯ ПОДДЕРЖКА ИНТЕГРАЦИИ ВЫСШЕГО ОБРАЗОВАНИЯ И ФУНДАМЕНТАЛЬНОЙ НАУКИ НА 1997-2000 ГОДЫ»
АНАЛИЗ И СИНТЕЗ НЕЛИНЕЙНЫХ СИСТЕМ
Б. Р. Андриевский, А. Л. Фрадков
Элементы математического моделирования в программных средах MATLAB 5 и Scilab
8
Санкт-Петербург «Наука» 2001
УДК 681.51
ББК 22.1 А 65
Серия «АНАЛИЗ И СИНТЕЗ НЕЛИНЕЙНЫХ СИСТЕМ» выпускается под общей редакцией Г. А. Леонова и А. Л. Фрадкова
Андриевский Б. Р., Фрадков А. Л. Элементы математического моделирования в программных средах MATLAB 5 и Scilab. — СПб.: Наука, 2001. — 286 с., 50 ил.
ISBN 5-02-024952-1
В книге сжато изложены основные подходы и методы математического моделирования. Описаны методы построения и преобразования дискретных и непрерывных моделей, заданных передаточными функциями и уравнениями состояния с различным описанием неопределенности — стохастическим, нечетким, хаотическим. Затрагиваются вопросы оценивания параметров (идентификации) и оптимизации моделей. Особенностью книги является иллюстрация большинства подходов и методов примерами использования программных пакетов MATLAB и Scilab. Уделяется внимание приемам программирования, повышающим наглядность визуального представления результатов вычислений.
Книга предназначена для студентов, преподавателей и научно-технических работников, интересующихся математическим моделированием.
Andrievsky В. R., Fradkov A. L. Elements of mathematical modeling in software environments MATLAB 5 and Scilab. — St. Petersburg: Nauka, 2001. — 286 p.
Brief exposition of basic concepts and methods of mathematical modeling is given. Model building and model transformation methods for discrete and continuous state space and transfer function models with different uncertainty description: stochastic, fuzzy or chaotic are described. Model parameters identification and optimization are addressed. Unique feature of the book is that most concepts and methods are illustrated by examples implemented in MATLAB or Scilab software environments. Brief description of MATLAB 5 and Scilab 2 tools and toolboxes is presented. The book is useful for all interested in mathematical modeling and computer-aided design.
Рецензенты: д-р техн, наук В. М. Иванов,
д-р техн, наук А. В. Тимофеев
Без объявления
ISBN 5-02-024952-1
© «Интеграция», 2001
© Б. Р. Андриевский, А. Л. Фрадков, 2001
ОГЛАВЛЕНИЕ
ПРЕДИСЛОВИЕ................................. 7
Глава 1. МЕТОДОЛОГИЯ МАТЕМАТИЧЕСКОГО МОДЕЛИРОВАНИЯ	11
1.1.	Понятие математической модели ........ И
1.2.	Математическое моделирование и теория систем ...................................... 13
1.3.	Математическое моделирование и системный анализ..................................... 19
1.4.	Сложные системы	и декомпозиция.........26
Глава	2. ВВЕДЕНИЕ В	MATLAB	30
2.1.	Основные операторы языка............. 30
2.1.1.	Матричные операции.............. 30
2.1.2.	Действия с многочленами......... 33
2.1.3.	Действия над функциями.......... 36
2.1.4.	Построение трехмерных изображений ... 38
2.2.	Примеры использования системы MATLAB для численного решения задач исследования систем 39 2.2.1. Применение тулбокса символьных вычи-
слений .......................... 39
2.2.2.	Применение процедуры численного интегрирования дифференциальных уравнений 42
2.2.3.	Применение процедур анализа линейных систем..................................49
2.2.4.	Применение системы SIMULINK...... 51
Глава 3. ВЫБОР СТРУКТУРЫ МАТЕМАТИЧЕСКОЙ МОДЕЛИ	53
3.1.	Классификация моделей ............... 53
3.1.1.	Статические и динамические модели ... 54
3.1.2.	Дискретные и непрерывные модели .... 55
3.2.	Примеры исследования моделей......... 60
3.2.1.	Исследование четырехполюсника.... 60
3.2.2.	Гармонический анализ процессов ..67
3.2.3.	Исследование экологической системы . . 72
3.3.	Модели состояния динамических систем .... 75
3.3.1.	Модели общего вида.............. 75
3.3.2,	Линейные модели и линеаризация... 76
3
3.3.3.	Дискретизация и континуализация .... 79
3.4.	Примеры преобразования моделей в среде MATLAB ......................................... 84
3.4.1.	Линеаризация ..................... 84
3.4.2.	Дискретизация моделей............. 87
3.4.3,	Континуализация моделей........... 91
3.5.	Детерминированные и стохастические модели . 94
3.6.	Пример статистической обработки данных программами тулбокса STATISTICS..................100
3.7.	Нечеткие модели ........................104
3.7.1.	Нечеткие множества и лингвистические переменные...............................104
3.7.2.	Нечеткие системы..................107
3.7.3.	Задачи группировки и упорядочения ... 112
3.7.4.	Нечеткие числа ...................115
3.7.5.	Вероятность или нечеткость? ......117
3.8,	Хаотические модели.....................119
3.8.1.	От колебаний - к хаосу............119
3.8.2.	Определение хаотической системы .... 125
3.8.3.	Критерии хаотичности..............130
3.8.4.	Зачем нужны хаотические модели? .... 132
3.9.	Линейные или нелинейные?...............137
Глава 4. ВЫБОР ПАРАМЕТРОВ МАТЕМАТИЧЕСКОЙ МОДЕЛИ	146
4.1.	Предварительные преобразования ........146
4.1.1.	Линейно-параметризованные модели . . . 146
4.1.2.	Преобразование статических моделей . . 147
4.1.3.	Преобразование динамических моделей . 150
4.2.	Регрессионный анализ и метод наименьших квадратов ..................................... 155
4.3.	Адаптивные модели и рекуррентные методы . . 159
4.4.	Принципы выбора модели ................162
4.5.	Культура компьютерных вычислений.......165
Глава 5. ОПТИМИЗАЦИЯ И СТРУКТУРНЫЙ СИНТЕЗ СИСТЕМ	172
5.1.	Оптимизация технических объектов.......172
5.1.1.	Задача параметрической оптимизации и направления ее решения...................172
4
5.1.2.	Методы поисковой оптимизации....173
5.2.	Задачи структурного	синтеза систем....179
5.2.1.	Классификация	задач синтеза.....179
5.2.2.	Подходы к решению задач структурного синтеза.................................181
5.3.	Методы и алгоритмы структурного синтеза . . . 181
Глава 6. ПРИМЕРЫ РЕШЕНИЯ ЗАДАЧ МАТЕМАТИЧЕСКОГО МОДЕЛИРОВАНИЯ	183
6.1.	Предсказание курса акций .............183
6.2.	Управление синхронизацией систем на основе адаптивных наблюдателей....................190
6.2.1.	Общая постановка задачи	и схема решения190
6.2.2.	Передача сообщений на основе синхронизации с использованием систем Чуа .... 193
6.2.3.	Результаты вычислительных экспериментов ....................................196
ЗАКЛЮЧЕНИЕ. МАТЕМАТИЧЕСКОЕ МОДЕЛИРОВАНИЕ - ВЧЕРА, СЕГОДНЯ,	ЗАВТРА	199
Приложение А. Использование системы Scilab	203
А.1. Принципы построения системы...........203
А.2. Основные конструкции языка............204
А.З. Примеры программ решения задач математи-
ческого моделирования. Scilab и MATLAB .... 212
Приложение В. Система визуального моделирования SIMULINK ............................215
В.1.	Общая характеристика системы..........215
В.2.	Библиотека блоков системы SIMULINK ...215
В.З.	Маскирование подсистем................216
Приложение С. Дополнительные возможности системы MATLAB-5	218
С.1.	Программирование и разработка приложений . 218
С.2. Новые конструкции языка и типов данных .... 218
С.З. Математические вычисления и анализ данных . 219
С.4. Графика.............................. 219
С.5. Интерактивная документация ...........220
С.6. Перевод программ из MATLAB 3 в MATLAB 5 . 220
5
Приложение D. Сведения об основных тулбоксах
системы MATLAB 5	222
D.1	Системы управления....................222
D.2	Идентификация систем..................227
D.3	Обработка сигналов....................231
D.4	Системы связи.........................238
D.5	Обработка изображений ................242
D.6	Статистический анализ.................247
D.7	Финансовые вычисления.................256
D.8	Нечеткие логические вычисления........258
D.9	Нейросетевой тулбокс..................261
ЛИТЕРАТУРА	268
Список	примеров	277
Список	рисунков	278
Предметный указатель	280
В будущем цифры рассеют мрак. Цифры не умира.
Только меняют порядок, как телефонные номера.
Сонм их, вечным пером привит к речи, расширит рот, удлинит собой алфавит; либо наоборот.
Иосиф Бродский
ПРЕДИСЛОВИЕ
Математическое моделирование - это методология научной и практической деятельности людей, основанная на построении, исследовании и использовании математических моделей. Математическим моделированием занимался, в сущности, каждый, кто применял математику на практике - от великих ученых древности до школьников, решающих задачи “на составление уравнений”. Однако в самостоятельную научную дисциплину математическое моделирование оформилось лишь в последние несколько десятилетий в связи с широким применением компьютеров. Математическое моделирование тесно связано с прикладной математикой и с общей теорией систем, но не совпадает с ними, поскольку теория систем, как и другие разделы математики, имеет дело лишь с математическими объектами. Предмет математического моделирования шире и включает, кроме исследования математических объектов, формализацию постановки практической задачи и интерпретацию полученных формальных результатов. Иными словами, началом и концом процесса математического моделирования является окружающая действительность, практика.
Центральным понятием математического моделирования является математическая модель (ММ) - совокупность математических объектов и отношений, которые отображают объекты и отношения, существующие в некоторой области реального мира (предметной области). Выделяют три этапа математического моделирования:
-	построение ММ (формализация задачи);
-	исследование ММ (анализ модели);
-	использование ММ (синтез решения).
В данной книге рассматриваются в основном первые два этапа.
7
Этап формализации тесно связан с научно-инженерной дисциплиной, именуемой системным анализом [76].
На этапе анализа решаются так называемые прямые задачи, т.е. по заданным значениям входов системы определяются ее выходы. Лля этапа синтеза характерны обратные задачи, а именно определение входов системы по заданным (желаемым) значениям ее выходов. Использование ММ возможно для различных целей: прогнозирования, исследования, проектирования, управления.
Весь опыт человечества показывает, что одни и те же математические модели и методы могут одинаково применяться в различных областях и для различных целей. Это обстоятельство определяет внутреннее единство математического моделирования и его место в системе подготовки специалистов (об этом см. также [13, 17, 18, 67, 94, 107]). Изучение математического моделирования должно идти вслед за изучением основных теоретических курсов и компьютерных технологий, но предшествовать выполнению основных курсовых и дипломных проектов.
Заметим, что при проектировании математическая модель используется для так называемого предварительного синтеза: структура и параметры модели и решения выбираются, когда реальной системы еще не существует. Напротив, в задачах управления синтез решения (выбор управляющего воздействия) осуществляется в процессе работы системы на основе текущей информации о ее поведении (так.называемый совмещенный, или управляемый, синтез). Управляемый синтез решения требует больше текущей, но меньше априорной информации, предоставляя новые возможности исследователю, проектировщику или конструктору системы.
Значительная часть книги является переработкой учебных пособий [74, 107] и посвящена вопросам построения математической модели, выбора ее структуры и параметров. Почти не затрагиваются вопросы анализа дискретных моделей, с которыми можно познакомиться, например, по книгам [26, 94, 77, 89, 88], а также вопросы синтеза решения, которым посвящена обширная литература по методам оптимизации и принятия решений (см.например, [9, 22, 48, 72, 76, 80, 92, 95, 98]).
На рубеже XXI в. применение математического моделирования и изучение его приемов уже немыслимы без компьюте
8
ров и программного обеспечения, как специализированного, так и универсального. Поэтому целесообразно не разделять математическое моделирование и его программную поддержку, а говорить о математическом моделировании в той или иной программной среде, предоставляющей набор функциональных (расчетных) и сервисных возможностей и допускающей расширение с учетом специфики решаемых задач. В книге описывается одна из наиболее популярных программных сред MATLAB7*, разработанная фирмой “The MathWorks, Inc.” (www.mathworks.com) и ставшая фактически международным стандартом учебного программного обеспечения в областях линейной алгебры, теории систем, теории управления, обработки сигналов и ряда других. Приводятся примеры решения задач в среде MATLAB 5я. Приводятся также примеры, показывающие опасность бездумного, поверхностного подхода к применению численных методов и пакетов программ, и возникающие при этом ошибки.
Читателя может заинтересовать похожая на MATLAB, но в отличие от нее свободно распространяемая система Scilab7*, разработанная во Франции в институте INRIA (www-rocq. inria.fr/scilab, [128]). Краткие сведения о системе Scilab7* приведены в Приложении А.
Ограниченность объема книги диктует обзорный стиль изложения. В то же время важной ее частью являются примеры: ведь овладеть математическим моделированием - это значит научиться решать задачи, а чтобы научиться решать задачи, надо решать их. Материал книги основан на лекциях и практических занятиях, проводившихся авторами в течение ряда лет со студентами, аспирантами и слушателями ФПК преподавателей по информатике Балтийского государственного технического университета.
Замеченные опечатки и дополнительный материал по теме книги будут помещаться в Интернет на странице лаборатории “Управление сложными системами” ИПМАШ РАН (www.ipme.ru/ipme/labs/ccs/ccs.html). Там можно найти и другие полезные сведения о публикациях, конференциях, программных продуктах, а также ссылки на другие источники информации по теории автоматического управления и смежным вопросам. В частности, рекомендуем посетить РУСИКОН - Российский архив по системам и управлению
9
(www.rusycon.ru). Те, кто пока не имеет прямого доступа к Интернету, могут связаться с нами по электронной почте: alf@ccs.ipme.ru или по обычной: 199178, С.-Петербург, Большой пр. В.О., д. 61, ИПМАШ РАН, А.Л Фрадкову.
Авторы благодарят сотрудников Института проблем машиноведения РАН и БГТУ за полезные обсуждения и помощь в работе над книгой. Авторы глубоко признательны рецензентам А.В. Тимофееву и В.М. Иванову за ценные замечания.
Издание книги было поддержано ФНП “Интеграция”, проект 360-01. Ряд результатов, включенных в нее, был получен в процессе совместной работы авторов по грантам РФФИ (99-01-00672) и ФНП “Интеграция” (проекты 2.1-589, А0145, А0151) в Институте проблем машиноведения РАН.
Книга рекомендовна Учебно-методическим объединением по образованию в области радиотехники, электроники, биомедицинской техники и автоматизации Министерства образования РФ в качестве учебного пособия межвузовского использования по направлениям 550200 и 651900 - Автоматизация и управление. Она также может оказаться полезной преподавателям и инженерам, интересующимся применением математических методов и компьютерных технологий в различных областях науки и техники.
Доверься мне в главном, Не верь во всем остальном.
Борис Гребенщиков
ГЛАВА 1. МЕТОДОЛОГИЯ МАТЕМАТИЧЕСКОГО МОДЕЛИРОВАНИЯ
1.1.	Понятие математической модели
Как уже было сказано в Предисловии, центральным понятием математического моделирования является понятие математической модели - совокупности математических объектов и отношений, которые отображают объекты и отношения некоторой области реального мира (предметной области).
Рассмотрим в качестве примера один из простейших видов математических моделей - линейное соотношение между двумя числовыми переменными. Если обозначить входную (независимую) переменную через и, а выходную (зависимую) через ?/, то такая модель имеет вид
У = ки,	(1.1)
где к - некоторый числовой параметр (коэффициент), выражающий свойства модели. Соотношение (1.1) является формальным выражением того факта, что между величинами и и у существует прямая пропорциональная зависимость. Подобными зависимостями описываются многие процессы в физических, биологических и других реальных (естественных или искусственных) объектах. Соотношение (1.1) (или другое аналогичное соотношение) может описывать как связь между конкретными переменными конкретного объекта, так и целый класс зависимостей, одинаковых для различных объектов. Наиболее общие и универсальные зависимости в естественных науках называются законами. Например, закон Ньютона в механике выражает тот факт, что ускорение тела прямо пропорционально приложенной к телу силе. Закон Ома в физике говорит, что сила тока, протекающего через участок электрической цепи, прямо пропорциональна падению напряжения на этом участке и т.д.
С точки зрения математического моделирования и закон Ньютона, и закон Ома являются примерами линейных статических математических моделей (1.1). В случае закона Ньютона и = F(t) - это сила, приложенная к телу в момент t,
11
d2s(t)
у = --j-X z - ускорение тела, т.е. вторая производная от леей
ремещения $(/), к = т-1 - масса тела. В случае закона Ома и = i(t) - это сила тока в проводнике, у =	~	= Д<^(0 -
падение напряжения на участке проводника (разность потенциалов), к = R - величина сопротивления рассматриваемого участка. Таким образом, математическая модель - это более общее понятие, чем закон, поскольку оно носит междисциплинарный характер. Успехи прикладной математики и математического моделирования основаны на том, что одними и теми же математическими моделями могут описываться совершенно различные по природе процессы, т.е. одни и те же приемы и методы построения и исследования математических моделей пригодны для различных объектов (задач).
С другой стороны, законы естественных наук часто являются “кирпичиками” для построения математической модели реального объекта (так называемые теоретические модели, или модели на основе первичных принципов). Такой подход является основным в теоретической и прикладной механике, а также в теоретической и прикладной физике, где модели конкретных процессов и объектов выводятся из общих вариационных принципов - законов (подробнее см., например, [90]). Однако готовых “кирпичиков” может оказаться недостаточно и тогда при построении математической модели добавляются дополнительные соотношения - связи. В частности, такая ситуация возникает, когда реальный объект состоит из нескольких частей (элементов, компонентов) или требуется описать взаимодействие нескольких различных по природе процессов, протекающих в объекте. Правила соединения отдельных частей в единую математическую модель, отражающие структуру взаимодействия этих частей, часто называются структурно-топологическими уравнениями (связями). Такие правила могут основываться на законах естественных наук, например на законе Д’Аламбера для механических систем и аналогичном (в силу электромеханической аналогии) законе Кирхгофа для электрических цепей. В общем случае для составления моделей целого из моделей отдельных частей используется аппарат теории графов и теории матриц [72, 97].
Однако, даже если уравнения отдельных частей и уравнения связей построены, задачу построения математической модели рано считать решенной, поскольку модель может со
12
держать ряд параметров, которые недоступны или трудно определяемы в реальной системе. Их определение может потребовать дополнительных экспериментов с реальной системой с целью определения (идентификации) параметров математической модели. Например, в линейной модели (1.1) требуется оценить коэффициент к по результатам экспериментов.
Хотя методы оценки параметров достаточно хорошо разработаны (см. ниже гл. 4), их применение имеет принципиальные ограничения в силу невозможности построения абсолютно точной модели реальной системы. Наличие неустранимых погрешностей и помех создает ситуацию неопределенности, когда выходные переменные не определяются однозначно входными переменными и параметрами модели. Наличие неопределенности приводит к тому, что для одного и того же объекта или процесса может существовать несколько или даже бесконечно много математических моделей. Этот факт был отмечен еще Р. Декартом в XVII в. Различные методы описания неопределенностей рассмотрены в гл. 3.
1.2.	Математическое моделирование и теория систем
Важным понятием математического моделирования является понятие “система" [76, 62]. Как писал в 1967 г. один из основателей общей теории систем М. Месарович: “Мы рассматриваем математическую теорию абстрактных систем как такую теорию математических моделей реально существующих систем, в рамках которой основные свойства этих систем исследуются с помощью весьма простых математических структур (согласующихся с интуитивной интерпретацией этих свойств)”. Система в абстрактном смысле - эквивалент понятия математической модели и задается парой множеств U, Y (U - множество входов, Y-множество выходов) и отношением 1 на множестве U х Y, формализующим связь (зависимость) между входами и выходами.
1 Напомним, что отношением R на множестве X х Y (или отношение
между X и Y) называется подмножество множества X х Y, т.е. некоторый набор пар R = {(z,у)}, где х € Х,у € Y, Например, функция у = х2 может быть представлена как отношение между множествами X = (-00,00), Y = = [0,оо), включающее те пары (х, у), для которых у = х2.
13
Входы (входные сигналы) формализуют воздействия, которые можно прикладывать к системе, а выходы (выходные сигналы) - это совокупность всех данных (величин), доступных наблюдению или измерению. Например, при построении математической модели участка электрической цепи можно в качестве множеств U, Y входных и выходных сигналов взять множество непрерывных вещественнозначных функций, заданных на числовой оси 7£1. Тогда в качестве отношения S будет выступать отношение линейной связи между числовыми значениями силы тока и разности потенциалов:
Ду>(/)	।	,
ф) = к = const.
Для системы, описывающей движение материальной точки по закону Ньютона, в качестве U - множества входных функций также можно взять множество непрерывных функций на но тогда в качестве выходного множества Y следует брать множество дважды непрерывно дифференцируемых функций, а отношение S устанавливает линейную связь между входной функцией и второй производной от выходной функции по времени.
Соединение систем также является системой и задается отношением. Например, последовательное соединение систем Si С х Yi и S2 С U2 х Y2 есть отношение S С Ux х Y2, такое что (^1,2/2) € S, если существуют € Y1} и2 € U2, удовлетворяющие условиям (ui,yi) Е Si, (2/1 ,и2) Е Я, (и2,у2) € S2, где R С Yi х U2 - отношение, определяющее связь между 1 2/1 и и2. Таким образом можно определять сколь угодно сложные системы, исходя из простых, которые становятся частями {подсистемами) составной системы.
Приведенное определение отражает в абстрактном виде особенности, присущие нашему интуитивному представлению о системе: целостность и структурированность [76].
Целостность (единство) означает, что система отделена от внешней среды; среда может оказывать на нее действие (акцию) через входы и воспринимать отклик (реакцию) на эти действия через выходы.
Структурированность означает, что система может быть
ХВ простейшем случае возможно, что Yi = U2, a R задано как отношение тождества (2/1 > u2) € R, если yi = и2.
14
разделена внутри на несколько подсистем, связанных и взаимодействующих между собой так же, как целая система взаимодействует с внешней средой.
Третье свойство, присущее системе, - целенаправленность, требует задания некоторой цели, достижение которой говорит о правильной работе системы. Цель также задается некоторым отношением, которое иногда включают в математическую модель реальной системы, а иногда - нет в зависимости от удобства для решения конкретной задачи.
Внешние условия
Элементы решения
--------
Операция -
Показатели эффективности
Рис. 1.1.
Приведенное выше формальное определение весьма общо; под него подпадают практически все виды математических моделей систем: дифференциальные и разностные уравнения, регрессионные модели, системы массового обслуживания, конечные и стохастические автоматы, дедуктивные системы (исчисления) и т.д. Можно трактовать как систему любой преобразователь входных данных в выходные (рис. 1.1, а). Например, системой можно назвать процесс решения любой задачи. При этом входами будут являться исходные
15
данные, выходами - результаты, а целью - правильное решение (рис. 1.1, б). Такой подход к системе подчеркивает ее целенаправленность и ведет свое происхождение от исследования операций [18] - научной дисциплины, занимающейся разработкой количественных методов обоснования решений. Основное понятие здесь - операция, т.е. действие, которое подвергается исследованию (проектирование, конструирование, управление, экономическая деятельность и т.д.). Операция соответствует некоторой системе. Входами этой системы являются элементы принимаемого решения о проводимой операции, выходами - результаты проведения операции (показатели ее эффективности (рис. 1.1, в).
В дальнейшем будем рассматривать так называемые временные системы, функционирование которых - это процесс, разворачивающийся во времени, т.е. множества возможных входов и выходов U, Y - это множества функций времени со значениями соответственно во множествах U, Y:
U = {и : Т -> U},Y = {у : Т -> У},
где Т— множество моментов времени, на котором рассматривается система.
Система называется функциональной (определенной), если каждой входной функции u(t) соответствует единственная выходная функция y(t). В противном случае система называется неопределенной. Неопределенность обычно возникает из-за неполноты информации о внешних условиях работы системы. Важным свойством, присущим реальным системам, является причинность. Она означает, что если входные функции и u2(s) совпадают при s < t, т.е. щ(з) = u2(s) при $ < t, то соответствующие выходные функции удовлетворяют условию 2/! (С = 3/г(^)» т.е. “настоящее не зависит от будущего при заданном прошлом”.
Числовые величины, связанные с системой, делятся на переменные и параметры. Параметры - это величины, которые можно считать постоянными в промежутке времени рассмотрения системы. Остальные числовые величины являются переменными. Значения переменных и параметров определяют количественную информацию о системе. Оставшаяся информация, качественная, определяет структуру системы. Различие между переменными и параметрами, а также ме
16
жду параметрами и структурой может быть условным, однако знание о нем может быть полезным в методическом отношении. Так, типовым приемом построения математической модели системы является параметризация - выбор в качестве математической модели семейства соотношений, зависящих от конечного (обычно небольшого) количества чисел - параметров.
На ранних этапах развития теории систем и кибернетики, в 60-70-х гг. XX в., был популярен подход к рассмотрению системы как “черного ящика” ( “black box”), когда существующая внутренняя структура системы игнорировалась, а структура и соответствующие параметры ее математической модели выбирались по результатам экспериментов с этой системой, исходя из наилучшей точности описания ее поведения. При отсутствии априорной 1 информации о системе такой подход является единственно возможным. Однако при наличии априорной информации более предпочтителен и современен подход “серого ящика” (“grey box”), при котором структура модели задается из физических соображений, а цель экспериментов с объектом состоит в определении параметров модели.
Для простых систем, подобных уже упоминавшимся в примерах о материальной точке и участке электрической цепи, выбор структуры (например, в виде (1.1)) обычно не вызывает сомнений (если, конечно, нет необходимости учитывать дополнительные факторы, например распределенность массы и заряда, квантовые и релятивистские эффекты) и построение математической модели конкретной системы состоит в оценке единственного параметра к по результатам эксперимента.
Однако, если количество соотношений, описывающих систему, велико, может оказаться разумным учесть только небольшое число основных из них, а остальные задать в упрощенном виде или вообще пренебречь ими. При этом из эксперимента будут определены как параметры, так и (частично) структура, т.е. будет использовано сочетание подходов “серого ящика” и “черного ящика”.
Что касается определенности (детерминизма) системы, то может оказаться, что ее нет даже после определения всех параметров математической модели, но неопределенность
1 a priori - до опыта (лат.).
17
устраняется, если ввести в математическую модель системы некоторые дополнительные скрытые (латентные) параметры аь а2,... , Например, закон Ньютона не определяет однозначно движения точки: для этого требуется задать дополнительно два параметра - положение и скорость точки в какой-либо момент времени, например а0 = 2/(0), ai = ^(0). В общем случае формально это означает, что выход модели задается некоторой функцией от входа системы и от набора скрытых параметров а = {ai,a2,... , a/у}, т.е.
у = R(u, а).	(1.2)
Набор а называется также глобальным состоянием системы, а функция /?(•,•) - глобальной реакцией системы.
В теории систем доказывается [62], что представление (1.2) всегда существует, если не накладывать ограничений на функцию реакции R. Однако для временных систем в этом результате мало смысла, так как представление (1.2) должно согласовываться с временной структурой системы, в частности сохранять ее причинность. Обеспечить нужное согласование при фиксированных параметрах а часто не представляется возможным. Например, если рассмотреть движение материальной точки со сдвигом по времени на величину т, то дифференциальное уравнение движения не изменится, а выбор в качестве скрытых параметров 2/(т), ^(т) не подойдет, так как окажется, что параметры не постоянны.
Однако ничего страшного не произойдет, если разрешить скрытым параметрам изменяться во времени, т.е. стать переменными. Нужно только, чтобы зависимость скрытых параметров от времени поддавалась описанию, т.е. включалась в математическую модель системы. Таким образом, мы приходим к понятиям переменных состояния и моделей состояния, играющих важную роль в естествознании и технике.
Системы, допускающие описание в пространстве состояний, называются системами с памятью, или динамическими системами (см. п. 3.3 этой книги, а также [36] и п. 1.1 [6]).
В заключение параграфа отметим, что иногда при исследовании системы не удается однозначно определить, какие из переменных, связывающих систему с внешним миром, являются входными, а какие - выходными. Например, если участок цепи рассматривается как часть сложной электрической
18
или электронной схемы, то исследователь не может произвольно, по своему усмотрению, менять напряжение на участке. Эксперимент со схемой может состоять лишь в подаче и измерении сигналов на некоторых узлах схемы (так называемые “порты”, или “терминалы”), причем входные и выходные порты могут меняться от эксперимента к эксперименту. Эти и другие соображения мотивировали появление более общего, так называемого бихевиористского подхода в теории систем [147], особенно удобного для изучения взаимосвязанных систем. Бихевиористская модель системы имеет вид т-арного отношения
S cWlxW2x--Wm	(1.3)
между явными (внешними) переменными сигналами , w2,... , wmj среди которых могут быть как входные, так и выходные сигналы. Разумеется, в системе могут быть и латентные (скрытые) переменные.
Бихевиористские модели являются более общими, чем модели состояния [116, 147].
1.3.	Математическое моделирование и системный анализ
Системный анализ в широком смысле - это методология (совокупность методических приемов) постановки и решения задач построения и исследования систем, тесно связанная с математическим моделированием. В более узком смысле системный анализ - методология формализации сложных (трудно формализуемых, плохо структурированных) задач. Системный анализ возник как обобщение приемов, накопленных в задачах исследования операций и управления в технике, экономике, военном деле. Соответствующие модели и методы заимствовались из математической статистики, математического программирования, теории игр, теории массового обслуживания, теории автоматического управления. Фундаментом перечисленных дисциплин является теория систем [62].
Остановимся на различии в употреблении терминов “системный анализ” и “системный подход”. Системный анализ - это целенаправленная творческая деятельность человека,
19
на основе которой составляется представление исследуемого объекта в виде системы. Системный анализ характеризуется упорядоченным составом методических приемов исследования. Что касается термина “системный подход” , то традиция его применения связана с исследованиями, проводимыми многоаспектно, комплексно, при изучении с разных сторон предмета или явления. Этот подход предполагает, что все частные задачи, решаемые на уровне подсистем, должны быть увязаны между собой и решаться с позиции целого (принцип системности). Системный анализ - более конструктивное направление, содержащее методику разделения процессов на этапы и подэтапы, систем на подсистемы, целей на подцели и т.д.
В обширной литературе по системному анализу содержится большое число рекомендаций и методических приемов построения математических моделей и принятия решений на их основе. Выделяя общие части различных приемов и рассматривая их во взаимодействии, можно сформулировать последовательность действий (этапов) при постановке и решении задач, которую будем называть методикой математического моделирования. В упрощенном виде один из возможных вариантов такой методики представлен на схеме рис. 1.2. Эта методика помогает более осмысленно и грамотно ставить и решать прикладные задачи. Опыт показал, что она полезна и в преподавании предмета, легко воспринимается обучающимися с различной степенью подготовки. Если на каком-то этапе возникают затруднения, то нужно вернуться на один из предыдущих этапов и изменить (модифицировать) его. Если и это не помогает, то, значит, задача оказалась слишком сложной и ее нужно разбить на несколько более простых подзадач, т.е. провести декомпозицию (см. п. 1.4). Каждую из полученных подзадач решают по той же методике. Для иллюстрации применения методики математического моделирования приведем пример [67].
Пример 1.3.1. Рассмотрим автомобиль, находящийся перед гаражом на некотором расстоянии от него (рис. 1.3, а). Требуется поставить автомобиль в гараж и сделать это по возможности наилучшим образом. При решении попытаемся руководствоваться алгоритмом системного анализа (см. рис. 1.2).
20
Рис. 1.2. Методика математического моделирования.
21
Этап 1. Система - автомобиль и гараж (автомобиль, приближающийся к гаражу).
Этап 2. Вход - сила тяги двигателя. Выход - пройденный путь.
Этап 3. Цель - автомобиль должен проехать заданный путь и затормозить.
Этап 4- Построение ММ начинается с обозначения всех величин (переменных и постоянных), существенных для задачи. Введем следующие обозначения:
u(t) - сила тяги в момент времени t (входная переменная);
y(t) - путь, пройденный к моменту t (выходная переменная);
у. - расстояние от автомобиля до гаража (параметр).
Затем выписываются все уравнения и соотношения, существующие между введенными величинами, как в школьных задачках на составление уравнений. Если возможных уравнений несколько, выбирают простейшее. В нашей задаче -это уравнение динамики (второй закон Ньютона)
= (1Л)
где т - масса автомобиля, а также начальные условия 1
3/(0) = о, 2/(0) = 0.	(1.5)
1 Здесь и далее через y(t) будем обозначать производную по времени от функции y(t). Будем также использовать обозначение y(t) = py(t).
22
Этап 5. Модель (1.4),(1.5) достаточно хорошо изучена и в детальном анализе не нуждается. Укажем лишь, что она адекватна, если можно пренебречь размерами автомобиля, ограничением на его мощность, силами трения и сопротивления и другими более второстепенными факторами.
Этап 6. Простейший вариант формализации цели
!/(*.) = у.,	(1.6)
где t* - момент остановки, который оказывается неудовлетворительным, поскольку в (1.6) не формализовано само требование остановки y{t^) = 0, и, значит, не ясно, как система будет вести себя при t > Правильнее задать цель соотношением
!/(<.) = У., при t > t„	(1.7)
из которого следует, в частности, что y(t) = 0 при t > t.. На первый взгляд, задача поставлена и можно, пропуская этап 7 (см. рис. 1.2), переходить к ее решению, т.е. к этапу 8. Но, оказывается, однозначного решения так поставленная задача не имеет: здравый смысл подсказывает, что существует бесконечно много способов достичь цели (1.7). Значит, нужно дополнить цель правилом отбора способов, позволяющим ответить на вопрос, какой способ лучше. Зададимся следующим разумным правилом: тот способ считается лучшим, который позволяет быстрее достичь цели. Формально новую цель можно записать так:
min{/* : y(t) = у* при t > /*}.	(1.8)
Но теперь физические соображения показывают, что решение поставленной задачи тривиально: искомый минимум в (1.8) равен нулю! Действительно, выбрав достаточно большую силу тяги, можно придать автомобилю как математическому объекту, описываемому ММ (1.4), (1.5), сколь угодно большое ускорение и сколь угодно быстро 1 переместить его
1 Математик здесь, конечно, заметит, что минимум в (1.8), строго говоря, может не достигаться и в формулировке (1.8) нужно заменить min на inf (“инфимум” - точная нижняя грань множества). Однако ситуация от этого не изменится: формализация в данном случае не отражает существа задачи, т.е. проведена неверно. В дальнейшем, чтобы не “пугать” инженера, мы будем пользоваться обозначениями min, max, имея в виду, что при необходимости их следует заменить на более общие inf, sup.
23
на любое заданное расстояние. Видимо, требуется ввести какие-то ограничения, исключающие бессмысленные решения. Можно было бы усложнить ММ системы: учесть ограниченную мощность двигателя, его инерционность, силы трения и т.д. Однако разумнее попытаться остаться в рамках ММ (1.4), (1.5), (1.8), введя дополнительно лишь ограничения на силу тяги:
- а < u(t) < Ь.	(1.9)
Таким образом, чтобы придать задаче смысл, нам пришлось возвратиться на этап 7.
Этап 8. Для решения задачи можно было бы применить мощный и хорошо разработанный аппарат теории оптимального управления (вариационное исчисление, принцип максимума Понтрягина и др., см., например, [95, 75]). Однако сначала надо попытаться решить задачу элементарными средствами. Для этого часто бывает полезно перейти к геометрической интерпретации задачи, чтобы привлечь нашу геометрическую интуицию. Естественная интерпретация, в координатах “время - пройденный путь”(рис. 1.3, б), не дает ключа к решению, так как не позволяет в удобной форме представить ограничения на допустимые траектории движения автомобиля. Дело меняется коренным образом, если перейти к другой ММ. Введем новую переменную v(t) = y(t) (скорость). Тогда вместо (1.4),(1.5) возникает уравнение
mi = it, v(0) =0,	(1.10)
цель (1.8) запишется в виде
yt
: / v(s)ds = у* при t > f*},	(1.11)
Jo
а ограничения (1.9) превратятся в ограничения на скорость изменения новой переменной:
— а/т < v(t) < b/m.	(1-12)
Итак, мы изменили выход системы, из-за чего пришлось заново пройти этапы 2-6.
Геометрическая интерпретация движения системы (1.10) - (1.12) в плоскости {v, t} изображена на рис. 1.3, в. Из него видно, что для решения задачи нужно найти кривую
24
v(f) (/ > 0) с заданной площадью фигуры F под ней и наименьшей возможной координатой правого конца/*, лежащую в треугольнике ОМК с заданными углами наклона боковых сторон (в соответствии с (1.12) tg^ = b/m при tgy?2 = а/т).
Геометрическое решение очевидно: фигура F должна заполнять весь треугольник ОМК. Это значит, что автомобиль должен двигаться с максимальным ускорением до некоторого момента затем включить максимальное торможение и в момент /* выключить двигатель. Формулы для определения момента переключения выводятся из элементарного расчета треугольника ОМК по заданной площади и углам. Они имеют вид
_ I 2тау. _ /2т(а + Ь)у. tl~'^b(a + b)’	ab
Рассмотренная геометрическая модель позволяет решать и более сложные задачи. Например, если по соображениям безопасности нужно учесть ограничение на максимальную скорость: |з/(/)| < то легко усмотреть решение из рис. 1.3, г: график оптимальной траектории представляет собой трапецию.
Еще более сложные задачи (например, при введении ограничений на расход топлива в виде Jo°° |и(/)\dt < А) не имеют простого аналитического решения, подобного (1.13), и практически решаются лишь численно, с привлечением математического аппарата приближенной минимизации функционалов (см., например, [75, гл. 9]). Однако и для них решение упрощенной задачи не теряет важности, поскольку оно позволяет получить начальное приближение к решению сложной задачи, установить качественные свойства решения сложной задачи, выявить факторы, наиболее сильно влияющие на решение сложной задачи, и, главное, соотнести результаты математического исследования со здравым смыслом.
Резюмируя сказанное, можно дать совет изучающему математическое моделирование: “Не решай сложную задачу, не решив сначала более простую!”.
25
1.4.	Сложные системы и декомпозиция
Известно, что системный анализ родился как метод исследования и проектирования сложных систем. Что же такое “сложная” система? Понятие это неформальное, и обычно, говоря о сложных системах, перечисляют их основные особенности:
-	наличие большого числа разнородных элементов (подсистем);
-	сложный характер, неоднородность связей между подсистемами;
-	сложность функций, выполняемых системой;
-	наличие неопределенности в описании системы;
-	сложность определения (организации) требуемого управляющего воздействия на систему и т.д.
Однако понятно, что каждая из этих особенностей может оказаться существенной или несущественной: все зависит от конкретной ситуации и целей исследования. Поэтому более универсальный способ выделения класса сложных систем связан со сложностью самого процесса исследования системы. Если методика математического моделирования (см. рис. 1.2) приводит к успеху сразу же, “за один проход”, то нет оснований называть систему “сложной”. Введение этого термина оправдано, если решить задачу в исходном виде не удается. В этом случае она разбивается на несколько вспомогательных подзадач, решаемых по отдельности. -Такой прием называется декомпозицией и является основным методом исследования сложных систем.
При декомпозиции исходная система делится на подсистемы, а цель - на подцели. Далее для решения каждой подзадачи пользуются той же методикой, что и для всей системы. Если в ходе решения (а возможно, и до того) какие-то из подзадач окажутся слишком сложными, то снова проводится декомпозиция: возникают подзадачи следующего уровня и т.д. Результатом этого процесса является структуризация: исходная система приобретает иерархическую (многоуровневую) структуру 1 [76, 64, 62]. Соответствующая структура
1 Здесь термин “структура” используется в несколько более узком смысле, чем в п. 1.2, и означает состав подсистем в системе и типы связей между ними.
26
Рис. 1.4.
возникает и в множестве подцелей; она называется деревом целей (рис.1.4), поскольку представляет собой граф типа дерева (без циклов). 1
Вообще теория графов является естественным математическим аппаратом описания сложных систем [42, 88]. Действительно, каждой сложной системе ставится в соответствие граф (структурный), вершинами которого являются подсистемы, а дугами - имеющиеся между ними связи. Если связи направленные (т.е. наличие такой связи S, —> Sj означает, что воздействие S, на Sj не вызывает обратного воздействия или им можно пренебречь), то граф системы является ориентированным (направленным). К этому классу относятся, например, структурные схемы (граф-схемы) систем автоматического управления. У других систем влияние связанных подсистем обоюдно и они описываются неориентированными графами (например, сложные электрические и электронные схемы).
Приведенное понятие декомпозиции вполне соответствует
1 Графом называется пара ((7, R), где G = {<71,..., дп } ~ конечное множество вершин, a R С G*G - бинарное отношение на G. Если (дьд}) € R тогда и только тогда, когда (g;,g,) € Я, то граф называется неориентированным, в противном случае - ориентированным. Пары (д,,д3) € R называются дугами (ребрами), а элементы gt множества G - вершинами графа.
27
идее структурного программирования. Создание сложных программных систем - одна из важнейших областей применения системного анализа. Вопросы математического обоснования декомпозиции рассматривались в [76, 64, 88]. Отметим лишь, что раздробление системы на подсистемы обычно проводится по принципу “слабых” связей, т.е. так, чтобы связи между подсистемами были слабее, чем связи между элементами каждой подсистемы.
В сложных системах часто приходится проводить несколько вариантов декомпозиции и соответственно строить несколько деревьев целей. Это обычно связано с наличием нескольких критериев функционирования системы. Возникающие при этом задачи многокритериального выбора изучаются в теории принятия решений [98]. Успех декомпозиции часто определяется интуицией и опытом исследователя. Человек, по данным психологов, может мысленным взором охватить структуру декомпозированной системы, если на каждом уровне возникает не более чем 5 ± 2 подзадач.
Пример 1.4.1. Система подготовки специалиста в вузе. Пусть перед нами поставлена цель - повысить эффективность подготовки специалистов в вузе. Как ее достичь - сразу неясно, нужно проводить.декомпозицию. Но как? Напрашивается разбиение по курсам, на шесть подсистем. Входы и выходы подсистем - показатели (например, показатели успеваемости, контрольных проверок и т.д.) в начале и конце соответствующего года обучения; подцели - обеспечение высоких значений показателей эффективности на выходах. Если оказывается, что принимаемые меры по курсам (в деканатах) малоэффективны, то проводится дальнейшая декомпозиция: по группам и по дисциплинам, выделяются группы и предметы, требующие применения воздействий. Следующий шаг декомпозиции - индивидуальный подход к студенту, содержащий возможные меры воздействия - проведение дополнительных занятий, лишение стипендии и т. д.
Можно проводить декомпозицию и по-другому - сначала по факультетам и кафедрам, а затем по специализациям, дисциплинам и преподавателям. Подцели при этом связаны с повышением добросовестности и квалификации преподавателей, следовательно, требуются другие меры воздействия, приводящие к улучшению других показателей функциониро
28
вания системы.
В перечисленных вариантах способ декомпозиции был определен сложившейся структурой системы (процесса обучения). Но так бывает не всегда. Например, если анализировать ту же систему по критериям гуманитарной подготовки студента, то разбиение на подсистемы оказывается неоднозначным, а показатели функционирования подсистем - не вполне определенными.
... заблуждение - не противоположность истины, оно тоже храм и выстроено из тех же камней, но по-другому.
Антуан де Сент-Экзюпери
ГЛАВА 2. ВВЕДЕНИЕ В MATLAB
2.1.	Основные операторы языка
Изучение любого языка программирования обычно начинается с примеров применения его основных операторов. Однако состав даже базовых операторов языка MATLAB весьма широк, и сколь-нибудь полное его изложение возможно только в книгах большого объема, например как [35, 83, 84, 144]. Вместе с тем опыт применения системы и проведения занятий со студентами убеждает в том, что входной язык MATLAB настолько прост и естествен, что для успешной работы с системой необходим лишь небольшой набор основных сведений. Все остальное легко достигается по мере надобности: требуется только доступ к системе и конечно владение техническими терминами английского языка.1 2 Основные операторы языка в виде примеров представлены в настоящем параграфе. Примеры более сложных программ разбросаны по всему тексту книги.
2.1.1.	Матричные операции
Создадим вектор а из девяти элементов. Для этого в команд-м	2
нои строке запишем оператор
>	а = [1 2346434 5]
после чего нажмем клавишу Enter. В Окне управления MATLAB (MATLAB Command Window) появляется ответ
а = 123464345
Система MATLAB (как это и принято в математике) отличает вектор-строки от вектор-столбцов. В данном случае
1 Последнее обстоятельство с точки зрения авторов является, скорее, дополнительным доводом в пользу работы с системой.
2 Символ > не набирается пользователем, а выставляется в командной строке интерпретатором системы MATLAB, являясь признаком ожидания команды.
30
получилась вектор-строка, в чем убеждаемся, выполнив оператор size(a). В ответ получим: ans =19. Следовательно, элемент а есть 9-мерная вектор-строка. По принятой в программировании терминологии переменная а является индексированной переменной (именем массива) с двумя измерениями. По первому измерению индекс может принимать значение, равное единице, а по второму - изменяться от одного до девяти. При описании языка MATLAB более естественным является использование математических терминов, что мы обычно и будем делать. В тех ситуациях, когда это не удается, будем оперировать с понятием массивов данных (а не матриц и векторов). В рассмотренном выше примере оператор-функция size записан без левой части. Это приводит к тому, что результат его выполнения присваивается переменной с резервированным именем ans (от англ, answer - ответ).
Выполним теперь оператор
>	b = а ♦ 2
Мы получили вектор-строку Ъ, каждый элемент которой равен значениям элементов вектора а, увеличенных на 2:
Ъ=345686567
1
Создадим теперь квадратную матрицу А =
Для этого выполним команду
2 О
5 -1
10 -1
2
4
>	А = [1 2 0; 2 5 -1; 4 10 -1] ;
Заметим, что результат выполнения операции не выводится на дисплей. Это связано с тем, что команда оканчивается символом “точка с запятой”.
Пусть теперь матрица В = А (символ “т” обозначает операцию транспонирования). Выполнив оператор
> В=А'
получим
В =
1	2	4
2	5	10
0 -1 -1
31
Произведение этих матриц найдем с помощью оператора
> С=А*В;
Следует обратить внимание на то, что операция умножения массивов понимается в системе MATLAB в векторноматричном смысле. Например, для введенных ранее массивов а и Ъ оператор
> с=а*Ъ
приведет к сообщению об ошибке
??? Error using ==> *
Inner matrix dimensions must agree
- “Неправильное использование *. Внутренние матрицы должны иметь соответствующие размеры”.
Можно выполнить оператор
> с=а*Ь’
тогда получим в ответе с = 196, так как мы нашли скалярное произведение векторов а и Ь, т.е. вычислили с = ab . Допускается и выполнение оператора
> с=а,*Ъ;
Тогда в ответе получится матрица размером 9x9 единичного ранга (чтобы проверить это, выполним операторы size (с) и rank(c)). Если же мы хотим выполнить поэлементное умножение массивов а и Ъ, то нам следует использовать оператор т.е. написать
> с=а.*Ъ
В ответе получим
с = 3 8 15 24 48 24 15 24 35
Этот же оператор применим и к массивам большей размерности, в чем убеждаемся, выполнив действие С=А.*В.1 Для вычисления обратной матрицы используем оператор
1 По умолчанию MATLAB различает строчные и прописные буквы в идентификаторах переменных и функций. В приведенных выше примерах строчными буквами обозначались векторы (массивы с одним измерением), а прописными - матрицы (массивы, имеющие два измерения). Этот выбор определяется предпочтениями пользователя; с точки зрения MATLAB здесь нет ограничений.
32
>	D=inv(A)
а собственные векторы и собственные числа матрицы А находятся оператором
>	[v,p]=eig(A).
Коэффициенты характеристического многочлена матрицы А вычисляются оператором
>	p=poly(A),
выполнив который, получим:
р = 1.00 -5.00 5.00 -1.00
Это значит, что характеристический многочлен
det(AI3 - А) = А3 - 5А2 + 5А - 1.
2.1.2.	Действия с многочленами
Выше показано использование функции poly с матричным аргументом. Если аргумент - вектор, то его элементы рассматриваются как корни многочлена, коэффициенты которого следует определить. Например, в результате выполнения оператора
>	d=poly( [1,2,3,4] )
получим
d = 1 -10 35 -50 24
Это значит, что d(A) = А4 —10А3 + 35А2 —50А + 24 обращается в ноль при А € {1,2, 3,4}.
Корни многочлена вычисляются функцией roots. Например, выполнив оператор
>	r=roots(p)
получим:
г =
3.7321
1.0000
0.2679
2 Б. Р. Андриевский и др.
33
Для умножения многочленов 1 используем функцию свертки векторов conv:
>	s=conv(p,[l 11])
Вектор s состоит из коэффициентов произведения многочлена р на многочлен А2 + А + 1 и равен
s = 1.00 -4.00 1.00 -1.00 4.00 -1.00.
Вычислим корни многочлена $(А):
>	z=roots(s)
Получим:
Z =
3.7321
-0.5000 + 0.86601
-0.5000 - 0.86601
1.0000 . 0.2679
Таким образом, результат содержит мнимые значения: пакет MATLAB позволяет выполнять операции и с мнимыми числами. По умолчанию идентификаторы i, j резервированы для мнимой единицы, но пользователь может их переопределить. Отобразим полученные значения на графике. Для этого выполним операторы
>	plot(z, ’фО
>	xlabeK’Re \lambda* ) ,ylabel( 4m Mambda’) ,grid
Результат показан на рис. 2.1, а. 2
Оператор grid служит для нанесения сетки на график. Заметим, что в системе MATLAB 5 можно отображать и буквы греческого алфавита. Для этого они в программе должны быть закодированы в формате языка TgX [57].
Построим теперь график функции $(А) для значений А €
Е [0,4] с шагом ДА = 0.05. Выполним операторы
>	lambda=0:0.05:4;
1 Имеется в виду не вычисление произведения значений многочленов в некоторой точке, а получение коэффициентов многочлена, который является произведением исходных.
2 В данном издании рисунки, полученные копированием графического окна пакета MATLAB, оставлены в первоначальном виде.
34
>	y=polyval(s,lambda);
>	plot(lambda,у),grid
>	xlabel(’\lambda'),title(1s(\lambda)’)
Рис. 2.1. Корни и значения многочлена s(A).
Результат показан на рис. 2.1, 6. Функция polyval служит для вычисления значений многочлена в заданных точках. Обратим внимание на то, что аргумент lambda является вектор-строкой, элементы которой образуют арифметическую прогрессию с нулевым начальным значением и шагом 0.05. Оператор size(lambda) дает ответ ans = 1 81.
Деление многочленов выполняется функцией deconv. Разделим многочлен $(А) на А — 1:
>	[q,r]=deconv(s,[1 -1])
Получим результат - многочлен д(А), коэффициенты которого находятся в массиве
q = 1.00 -3.00 -2.00 -3.00 1.00 и остаток от деления - многочлен
г = 0 0 0 2.2204е-016 0 -2.4425е-015
Функция polyvalm служит для вычисления многочлена от матричного аргумента. Например, выполнив оператор
>	polyvalm(p,A)
получим ЗхЗ-матрицу, элементы которой близки к нулевым (не превосходят по модулю 10”13). Так и должно быть по теореме Кэли-Гамильтона, согласно которой каждая квадратная матрица удовлетворяет своему характеристическому уравнению.
35
2.1.3.	Действия над функциями
Пользователь имеет возможность определить свою подпрограмму-функцию, оформив ее в виде т-файла. 1 Имя этого файла и определяет имя функции. Начальная строка подпрограммы-функции должна быть оформлена по определенным правилам. Она начинается словом function, затем указываются (если несколько, то в квадратных скобках) выходные переменные, потом после знака равенства, в круглых скобках, входные переменные. Имена переменных, используемых в подпрограмме, локализованы внутри нее. Этим подпрограмма отличается от так называемого скрипт-файла, который также является m-файлом, но не содержит заголовка и представляет собой просто последовательность команд. Эффект выполнения скрипт-файла такой же, как если бы эти команды были набраны в командной строке “вручную”. Если значения каких-то переменных должны передаваться подпрограмме, минуя аппарат формальных параметров, то они должны быть объявлены глобальными с помощью оператора global. Этот оператор должен присутствовать во всех программах, использующих указанные переменные.
Рассмотрим в качестве примера подпрограмму-функцию, в которой вычисляется значение многочлена $(А). Создадим m-файл с именем pol.m, в котором запишем текст 2
function y=pol(lambda)
s = [1.00 -4.00 1.00 -1.00 4.00 -1.00];
y=polyval(s,lambda) ;•
Покажем, как можно найти экстремальные точки этой функции. (Отвлечемся пока от того, что мы знаем аналитическое выражение для $(А)). Для нахождения экстремума функции можно использовать процедуры fmin, fmins.
Выполним оператор
1 В последних версиях пакета MATLAB допускается запись в одном файле текстов программы и подпрограммы-функции.
2 С вычислительной точки зрения, массив s более эффективно было бы определять в головной программе и передавать подпрограмме в качестве глобального. Такой путь, однако, уменьшает гибкость использования подпрограммы, поэтому он хорош только в необходимых случаях. MATLAB был задуман как язык для широкого круга пользователей - непрограммистов, поэтому в нем не предусмотрены некоторые конструкции, имеющиеся в универсальных языках программирования.
36
>	xl = fmin('pol',0,5)
В ответе получим xl = 3.0159. При обращении к функции fmin указывается имя функции, минимум которой следует получить (точнее говоря - имя m-файла, содержащего процедуру вычисления данной функции), а также границы интервала минимизации. Исполняя оператор
>	yl=pol(xl)
найдем значение функции в точке экстремума
у1 = -5.2016е+001
Можно теперь нанести экстремальную точку на график функции. Выше уже определен вектор lambda для расчета значений многочлена. Теперь, обращаясь вместо polyval к определенной нами функции pol, получим, естественно, тот же вектор значений у. Выполнив операторы
>	y=pol(lambda);
>	plot(lambda,y,xl,yl,’♦О
получим график функции, на котором символом * отмечена точка экстремума (см. рис. 2.1, б). 1 Если внутри заданного интервала имеется точка локального минимума, то она выводится в качестве решения. В противном случае решение находится на границе интервала. Например, при выполнении оператора х2 = fmin(’pol1,1,2) получается х2=2.
Несколько иначе выполняется процедура fmins. Она позволяет находить экстремум функции нескольких переменных. Входным параметром процедуры fmins является начальное приближение к точке минимума (в общем случае -вектор). Диапазон поиска экстремума не ограничен. Поэтому операторы > xl=fmins(’pol1 ,1) и > xl=fmins( ’pol1 ,12) дают одинаковое значение xl = 3.0158е+000. Если функция имеет несколько локальных минимумов, или не имеет глобального минимума, либо обладает большим по норме градиентом, то выбор начального приближения весьма существен. В нашем примере оператор xl=fmins( 'pol* ,13) приводит к появлению предупреждающего сообщения и значению в ответе xl = -8.2397е+029. Аналогичная ситуация возникает при вызове xl=fmins('pol ’ ,0).
1 Для вывода графиков функций можно использовать также подпрограмму ezplot.
37
Найти решение уравнения f(x) = 0 можно с помощью функции fsolve. Например, выполнив оператор
xl = fsolve(’pol’,10)
получим один из корней многочлена s(A) xl = 3.7321, а вызовом x2=fsolve( *pol1 ,0) - другой корень х2 = 0.2679. Программа fsolve может использоваться и для решения систем алгебраических уравнений. Вычислить нули функции от одной переменной можно также с помощью программы fzero. Например, выполнение оператора
>	xlsfzeroCpol* ,0)
приводит к результату
Zero found in the interval: [-0.32, 0.32].
(Ноль найден на интервале [-0.32, 0.32]). xl = 2.6795е-001
Значение определенного интеграла J*2 f(x)dx можно вычислить подпрограммой quad: оператор
>	yi=quad('pol',-1,1)
выводит значение уi = -4.2667.
2.1.4 Построение трехмерных изображений
Выполним операторы
[х,у]=meshgrid(-2:0.25:2);
z=x.~2-y.*2;
mesh(x,y,z)
xlabelCx’) >ylabel(,y') title(,z=x*2-y*2>)
Оператор meshgrid создает двумерные массивы аргументов (х и у) с заданными интервалом и шагом изменения. Далее вычисляются значения z = х2 — у2 и оператором mesh строится поверхность z = z(x,y). Результат показан на рис. 2.2, а. Выполним теперь операторы
[al,bet]=meshgrid([-pi:pi/20:pi]);
x=sin(al).*(2+sin(bet));
y=cos(al).*(2+sin(bet));
z=cos(bet);
38
Рис. 2.2. Пространственные изображения.
mesh(x,y,z)
axis([-3 3-33-33]) axis square
Получим изображенную на рис. 2.2, 6 поверхность тора.
Программа заканчивается двумя операторами axis. Выполнение первого из них задает диапазоны координатных осей ’’вручную”. (По умолчанию оно происходит автоматически). Второй оператор устанавливает на изображении равные размеры рамки координатных осей.
2.2. Примеры использования системы MATLAB для численного решения задач исследования систем
2.2.1.	Применение тулбокса символьных вычислений
Проиллюстрируем рассмотренный выше пример вычислениями в пакете MATLAB 5. Сначала рассмотрим получение расчетных соотношений в общем виде. Для этого используем средства тулбокса символьных вычислений (SYMBOLIC TOOLBOX) [35, 84].
Площадь треугольника ОМ К отвечает величине у*. В программе обозначим ее через у_Т, момент окончания движения t* - через Т, момент переключения f - через t.l, наибольшую скорость vm (точка М на рис. 1.7, а) - через v_m, за остальными параметрами сохраним имеющиеся в тексте обозначения. Очевидно, выполнены геометрические соотноше-ния: у, = tg<pi = А = tg^2 = £ = С учетом
39
введенных обозначений напишем программу вычисления неизвестных	:
S=solve( ’V-m/t-l^b/m1,1 V-m/CT-t-l^a/m'....
Ч.Г/Г/vjn’)
t_l=simple(S.t_l)
T=simple(S.T)
v.m=simple(S.v.m)
В операторе solve записана исходная система уравнений и указано, относительно каких переменных она должна быть разрешена. Решения системы содержатся в структуре S, поля которой имеют значения класса sym (символьный). Последующие операторы программы осуществляют доступ к полученным результатам с одновременным их упрощением. В результате выполнения программы получим выражения:
t_l =
[ l/(b+a)*2*(l/2)*(m*(b+a)*y_T*a*b)~(l/2)/b]
[ -1/(Ь+а)*2~(1/2)*(m*(Ь+а)*у_Т*а*Ь)~(1/2)/Ь] Т =
[ у_Т*ш*(Ь+а)*2*(1/2)/(ш*(b+а)*у_Т*а*Ь)*(1/2)]
[ -у_Т*ш*(b+а)*2~(l/2)/(m*(b+a)*y_T*a*b)*(1/2)] v_m =
[ l/m/(b+a)*2~(1/2)*(m*(b+a)*y_T*a*b)~(1/2)]
[ -l/m/(b+a)*2~(l/2)*(m*(b+a)*y_T*a*b)*(l/2)]
Они соответствуют формуле (1.13), но также содержат и отрицательные решения, не отвечающие физике процесса, которые в дальнейшем опускаем.1 Найденные значения можно использовать для последующих преобразований и вычислений. Например, нетрудно получить выражение на языке программирования Фортран. Для этого используем обращение fortran(tl), которое выводит строку
1.1(1,1) = 1/(b+a)*sqrt(2.ЕО)*sqrt(m*(b+a)*y_T*a*b)/Ь
Аналогично, ccode(tl) получает оператор языка Си:
t.l[0][0] = 1/(b+a)*sqrt(2.0)*sqrt(m*(b+a)*y_T*a*b)/b;
1 Отрицательные решения можно трактовать как движение в противоположном направлении и обратном времени.
40
а вызов latex (tl) приводит к строке символов, которая по-
сле обработки текстовым редактором IATjtX[57] дает выраже-
ние
у/2у/т(Ь + а) уТ аЬ (Ь + а) Ь
Теперь перейдем к решению уравнения (1.4) при заданных
начальных условиях и найденном через (1.13) управлении.
Начнем с символьных вычислений. Для этого продолжим
программу следующими операторами:
vy=dsolve(,m*Dv=b,, 'Dy=v', 'vCO^O1 , ’уСО^О') ;
v=simple(vy.v)
y=simple(vy.у)
v.tl=subs(v,4’,t_l(l))
y_tl=subs(y,4',t_l(l))
В этом фрагменте первая строчка содержит обращение к процедуре символьного (аналитического) решения уравнения (1.4), приведенного предварительно к системе уравнений первого порядка относительно переменных v(t) и s(f), имеющей вид
mv(t) = u(t), y(t) - v(t).
Символом D в программе обозначается операция дифференцирования. Переменные v, у содержат найденные при u(t) = 6 решения. Оператором subs выполняется подстановка в них значения t = f, найденного выше. В формате lATgX[57] получаются выражения
[у + а) о тп
Продолжим вычисления. Рассмотрим следующий интервал времени t G На нем u(t) = —а. Проинтегрируем нашу систему на этом участке. Для этого выполним операторы:
vy2=dsolve ('m^Dv^a', *Dy=v','v(tl)=vl' ,'y(tl)=yl’) v2=simple(vy2.v)
y2=simple(vy2.у)
vT=simple(subs(v2,{,vl,,41? ,4'},{v_tl,t_l(1),T(1)}))
Оператором dsolve находится решение (1.4), для которого в момент t = выполнено v(t].) = y(tl) = yv. Значения щ, yr подставляются оператором subs по результатам вычислений на предыдущем участке. Получим
41
v2 =vl-a*(t-tl)/m
y2 =yl+vl*t-vl*tl-l/2*a*(t~2+tl*2-2*t*tl)/m vT =0
Равенство нулю значения скорости на правом конце интервала соответствует условию поставленной задачи.
2.2.2.	Применение процедуры численного интегрирования дифференциальных уравнений
Обратимся теперь к численному решению уравнения (1.4). Сначала приведем программу моделирования для более общей ситуации, а именно не будем учитывать, что рассматривается линейное уравнение с постоянными параметрами. Воспользуемся одной из процедур интегрирования обыкновенных дифференциальных уравнений, входящих в систему MATLAB, а именно процедурой ode45, в которой используется метод Рунге-Кутта 4-5-го порядков [74].
Для интегрирования следует написать головную (вызывающую) программу, содержащую обращение к процедуре ode45 и подпрограмму-функцию, в которой вычисляются правые части системы дифференциальных уравнений. В головной программе должны быть заданы начальные условия для всех интегрируемых переменных, начальное и конечное значения аргумента интегрирования (в рассматриваемых примерах - это время t) и содержаться операторы отображения результатов моделирования. 1 Приведем тексты головной программы и подпрограммы вычисления правых частей.
Головная программа
clear close all global a b m tl a=2e3;
b=5e3;
1 В пакете MATLAB имеется несколько процедур численного интегрирования дифференциальных уравнений. Для каждой из них может быть установлено значительное число параметров (опций). Более подробную информацию можно получить из документации, или выполнив команду help ode45. В нашем примере используются значения параметров, принятые по умолчанию.
42
m=le3;
У-Т=10;
tl=l/(b+a)*2~(l/2)*(m*(b+a)*y_T*a*b)~(l/2)/b
Т=у_T*m*(b+a)*2*(1/2)/(т*(b+а)*у_Т*а*Ь)*(1/2) x0=zeros(2,1);
[t,х]=ode45('fpl_2',[О, Т],хО);
plot(t,х),grid
set(gca,'FontSize’,14)
xlabeH’t, cO
titleC v, м/с; у, м ’) legend(1v’,’y1,0)
Подпрограмма вычисления правых частей уравнений
function dx=fpl_2(t,х);
global a b m tl dx=zeros(size(x)); if t<tl
u=b;
else
u=-a;
end
dx(l)=u/m; dx(2)=x(l);
Рассмотрим эти программы подробнее. Прежде всего заметим, что если имя m-файла головной программы безразлично (более того, ее операторы могут быть введены непосредственно в Окно управления MATLAB), то подпрограмма вычисления правых частей оформляется как т-функция [35, 74, 84] и помещается в рабочем директории (папке) под определенным именем. В рассматриваемом примере текст этой программы содержится в файле fplJZ.m. Имя программы (совпадающее с именем файла), записано в ее заголовке
function dx=fpl.2(t,х);
и, что более существенно - указывается в головной программе при обращении к процедуре интегрирования:
[t,x]=ode45(,fpl_2’,[0, Т],х0);
43
Головная программа начинается операторами clear и close. Эти операторы необязательны, но с них рекомендуется начинать головную программу. Первый из них освобождает рабочую область от всех переменных, которые могут там оказаться после предыдущих вычислений.1 Оператор close закрывает графические окна, если они были открыты перед выполнением программы. Без этого каждый “запуск” программы будет сопровождаться увеличением их числа. В последующих примерах операторы clear и close указываться не будут. В операторе global перечисляются глобальные переменные, значения которых доступны как в головной, так и в вызываемой программах без передачи через параметры процедуры. Такой же оператор имеется и в подпрограмме fpl_2. В следующих операторах (а=2еЗ; Ъ=5еЗ; т=1еЗ; у_Т=1О;) вводятся исходные данные для решаемой задачи. Далее вычисляются значения переменных tl, Т. 2 Затем указываются нулевые начальные условия на переменные состояния (в этом примере вектор переменных состояния х =	).
Далее производится обращение к процедуре ode45, в котором указаны входные параметры: имя процедуры-функции вычисления правых частей уравнений; вектор [0,Т], содержащий начальный и конечный моменты времени, для которых нужно проинтегрировать уравнение; начальное значение состояния системы. Выходными величинами являются массив моментов времени t, для которых получено решение, и массив результатов интегрирования х. Массив t является вектор-столбцом, число элементов nt которого определяется автоматически процедурой интегрирования. Значение nt можно получить, выполняя по окончании вычислений операторы length(t) или size(t). В данном примере nt = 73. Массив результатов имеет размер ntxn, где п - порядок интегрируемой системы (в нашем случае п = 2). Каждая строка массива х относится к соответствующему моменту времени. Чтобы получить решение в заданные моменты времени <o»G> • • • следует при обращении к программе задать вектор [/o,G, (как это можно сделать, будет рас
1 Естественно, если программист хочет в дальнейшем использовать эти переменные, то оператор clear выполнять нельзя.
2 Заметим, что в данном примере выражения для этих переменных получены копированием результатов символьных вычислений, описанных выше.
44
смотрено ниже). Далее в головной программе выполняется вывод результатов на график оператором plot(t,x). В той же строке через запятую размещен оператор grid, задающий нанесение сетки. Этот и следующие операторы носят необязательный характер. Оператор set(gca,'FontSize1,14) выполняет установку заданных свойств объекта axes, определяющего вывод осей (axis) на график. 1 Операторы xlabel('t, cOntitleC v, м/с; у, м’) служат для вывода заголовка графика и надписи по оси аргументов (г-ось). Оператор legend( 1,0) служит для вывода легенды -связи имен переменных с линиями на графике. Цифра “0” в последнем аргументе оператора legend означает, что для меток должно автоматически выбираться “наиболее удобное” (свободное от графика) место. 2
Результат работы программы показан на рис. 2.3, а. Время интегрирования на компьютере с процессором Pentium 166 MMX составляет 0.15-г 0.17 с. Рассмотрим теперь программу
Рис. 2.3. Результаты интегрирования и ошибки вычислений.
fpl_2 (стр. 43). Состав формальных параметров этой подпрограммы фиксирован и определяется требованиями процедуры ode45: это входные значения момента времени t и переменных состояния х и выходной массив вектора правых ча
1 Перечень свойств объекта и их значений можно получить оператором set (в нашем случае - вызовом set(gca)) [35, 74, 84]. Отметим, что системе MATLAB 5.3 имеется удобный интерактивный редактор графиков, использование которого позволяет упростить текст программы.
2 При выводе на терминал графики имеют разные цвета. Это отличие пропадает при черно-белой печати.
45
стей дифференциальных уравнений dx. Процедуре ode45 требуется, чтобы выходной массив был вектор-столбцом (нужной размерности). Для того чтобы выполнить это требование “автоматически”, рекомендуется в начале программы выполнять оператор dx=zeros(size(x)) , который строит массив dx нулевых элементов, размер которого совпадает с размером формального входного массива х (в нашем примере size(x)=(2,l)). Процедура содержит также оператор global для передачи значений между головной программой и подпрограммой, минуя аппарат формальных параметров. В системе MATLAB 5 требуется, чтобы глобальные переменные были указаны до присваивания им значений (по тексту программы). В нашем примере это присваивание происходит в головной программе ниже строки, содержащей global. Далее в подпрограмме вычисляется входное (управляющее) воздействие u(t) как программная функция времени. Для этого используется конструкция if - else - end. Последними операторами программы являются операторы вычисления правых частей интегрируемой системы уравнений и записи результата в выходной массив dx.
Как видно из рис. 2.3, а, полученный в результате интегрирования процесс содержит ошибку (значение у(Т) не равно заданному значению ут = 10). Так как для данной задачи поучены аналитические выражения, можно исследовать эту ошибку более подробно. Получим значения y(t) по точной формуле и найдем относительную ошибку в долях у? : г 1ИС ” y(t)\	-	г>
оу = * 4 уТ''Л 21 > где У ~ результат интегрирования. Расчеты выполним программой, которая запускается после процесса интегрирования, когда соответствующие переменные имеются в рабочей области MATLAB:
yl =l/2*t.~2*b/m;
y_tl =l/(b+a)*a*y_T
v_t1=1/(b+a)*2~(l/2)*(m*(b+a)*a*y_T*b)~(l/2)/m y2=y_tl+v_t1*(t-t1)-l/2*a*(t-tl).~2/m;
y=[yl(find(t<=tl)); y2(find(t>tl))];
dy=abs(x(:,2)-у)/y_T;
figure
subplot(211).plot(t,y-x(: ,2) ).grid
title(ADelta y=y(t)-y*~(t)1)
subplot(212).plot(t,dy*100,*.k').grid
46
xlabeH't, с1)
title( 1\delta у, *//)
Первые четыре оператора программы служат для аналитического вычисления y(t) для моментов времени /, полученных выше при численном интегрировании. Весь процесс разбит на два участка: u(t) = Ь (при t € [0, £']) и u(t) = —а (при f € (f, <*]). На каждом участке движение определяется сво-ht2
ей формулой: для первого участка y(t) = для второго -y(t) = y(t') + v(f)(f - t') - (t “ ^)2 • Этим формулам соответствуют первая и четвертая строки программы. Заметим, что, так как аргумент “время” t является массивом, для поэлементного возведения в степень используется операция . *, а не * . Значения y(t') и v(tf) обозначены соответственно через y_tl и v.tl. Они вычисляются во второй и третьей строках программы. Далее формируется массив у, содержащий искомые значения y(t). Для этого можно использовать оператор цикла for - end в сочетании с условным оператором if - else - end. Эта же цель достигается конструкцией
y=[yl(find(t<=tl)); y2(find(t>tl))];
Смысл ее состоит в том, что массив у получается объединением (конкатенацией) частей массивов yl, у2. Эти части (подмассивы) выделяются оператором find, который формирует вектор индексов элементов массивов по указанному в качестве аргумента логическому выражению. Этим логическим выражением здесь служат операции сравнения t<=tl для массива у! и t>tl - для массива у2.
Далее в программе вычисляется относительная ошибка бу, которая помещается в массиве dy. Конструкция х(:,2) означает “вырезку” массива результатов х по второму измерению, т.е. выделение значений перемещения y(t), полученных интегрированием. Далее следуют операторы вывода на график. С помощью операторов subplot вывод производится в соответствующую часть графического экрана [74]. Оператор title служит для вывода заголовка графика. Результат выполнения программы показан на рис. 2.3, б, в. Абсолютная ошибка &у = y(t) — y(t) показана на рис. 2.3, б. Рассмотрим график относительной ошибки (рис. 2.3, в) более подробно. Видно, что она превышает на конце интервала 2.5%, нарастая с
47
момента времени V. Появление такой заметной ошибки связано с тем, что рассматриваемая система “неудобна” с точки зрения численного интегрирования, так как правые части дифференциальных уравнений изменяются скачком (в точке t = t' процесс u(t) имеет разрыв). Автоматически изменяя шаг интегрирования, процедура ode45 уменьшает возникающую при этом ошибку, но она все равно остается значительной и имеет тенденцию к накоплению из-за свойств решаемых уравнений. Значения на графике показаны точками именно в те моменты времени, которые получены (автоматически) процедурой интегрирования. Как видно из графика, интервалы между значениями t не одинаковы, наиболее “густо” расположены точки в начале и конце интервала интегрирования, а также в окрестности скачкообразного изменения входного воздействия. Наименьшее значение шага интегрирования оказывается равным 10“5 с и имеет место в начале процесса, а наибольшее - 0.094 с получается для t = 0.34 с. 1 * Моменту времени tf = 1.07 с соответствует шаг интегрирования 0.034 с. Повысить точность интегрирования можно заданием соответствующей опции программы ode45. Для этого заменим строку, содержащую обращение к процедуре интегрирования в головной программе, на
opt=odeset('RelTol1,le-5);
[t,x]=ode45('fpl.2',[0; T],xO,opt);
Здесь с помощью оператора odeset установлено значение параметра относительной ошибки RelTol, содержащееся в ODE-структуре с именем opt, равное 10“5 вместо принятого по умолчанию значения 10”3. Структура opt передается в качестве дополнительного параметра при вызове процедуры ode45. Относительная ошибка интегрирования для рассматриваемой задачи оказывается существенно меньше и достигает 0.04 %. Машинное время интегрирования для того же компьютера составляет около 0.27 с. Задавая RelTol равным 10“7, получим наибольшую относительную ошибку около 4-10”4 % при времени счета 0.4 с. Число шагов интегрирования в последнем случае оказывается равным 125; наименьший шаг имеет длину 3 • 10”6 с и получается в окрестности
1 Для определения этих значений можно использовать опера-
торы [mi,ki]«min(diff(t)), t(ki), [ma,ka]«max(diff(t)), t(ka) и
kl*find(abs(t-tl)a=min(abs(t- tl)), t(kl)-t(kl-1).
48
скачка входного воздействия. Наибольший шаг составляет 0.09 с.
2.2.3.	Применение процедур анализа линейных систем
Так как рассматриваемое уравнение (1.4) является линейным ОЛУ с постоянными коэффициентами, для его решения можно использовать специальные вычислительные методы, развитые для анализа линейных динамических систем. Эти методы реализованы, в первую очередь, в программах тулбокса CONTROL SYSTEMS, предназначенного для решения задач автоматического управления [6, 74, 61].
Предварительно запишем рассматриваемое уравнение в векторно-матричной форме
х = Ах + Ви, у = Сх + Du,
где вектор состояния x(t) и входное воздействие u(f) были определены выше, а вектор выходов y(t) в данном примере можно считать тождественно равным x(t), а матрицы А, В, С, D выбираются таким образом, чтобы в результате выполнения матричных операций получилась исходная система дифференциальных уравнений первого порядка. Нетрудно убедиться, что для рассматриваемого примера
и _ Г° р_Гт"1] Г 1 0] _ т л _ п
Л"[1 о]’ в~ [ О ]’С-[о 1J-12’ D~°^-
Объединим эти матрицы в модели некоторой динамической системы с именем sys и выполним моделирование этой системы средствами тулбокса CONTROL SYSTEMS. Эти действия реализованы в следующей программе: 1
А= [0 0; 10];
В=[1/т; 0];
С=еуе(2);
D=zeros(2,l);
sys=ss(A,B,C,D);
t=(0:Т/8еЗ:Т)’;
1 Моменты переключения t' и окончания процесса рассчитываются так же, как и раньше, поэтому операторы вычисления tl и Т в данной программе не приводятся.
49
ul=b*ones(size(t));
u2=-a*ones(size(t));
u=[ul(find(t<=tl)); u2(find(t>tl))]; x=lsim(sys,utt);
Первые четыре строчки программы задают значения матриц Л, В, С, D. Вызовом функции ss из этих матриц строится структура с именем sys, которая рассматривается дальше как модель линейной стационарной системы (ЛС-системы) в форме уравнений состояния. Оператором t=(0:T/8e3:T) ’; интервал [0, £*] разбивается равномерно на 8000 точек, которые составляют массив t.1 В следующих трех строчках формируется входное воздействие u(t): сначала генерируются векторы ul и и2 с одинаковыми значениями элементов, равными соответственно b и — а для всех точек t. Затем с помощью вырезки и объединения массивов получается последовательность требуемого вида. Возможно, этот же результат проще достичь оператором цикла
nt=length(t); for k=l:nt if t(k)<=tl u(k)=b; else
u(k)=-a; end end
После получения массива u выполняется обращение к процедуре Isim, в которой происходит дискретизация модели системы (см. ниже п. 3.3.3) и рекуррентное вычисление реакции дискретной модели на заданное входное воздействие [4, 6, 40, 74, 87]. В результате вычислений по этой программе при времени счета 0.16 с наибольшая относительная ошибка составляет около 0.025 %. Как отмечено в литературе [4, 40, 74, 87], эффективность этого метода интегрирования линейных ОДУ по сравнению с универсальными методами растет с ростом порядка решаемой задачи и особенно велика
1 Данный оператор заканчивается операцией транспонирования (“штрих”) только для удобства сочетания данной программы с ранее написанными фрагментами. Без этого массив t окажется вектор-строкой, а не столбцом, как принято выше.
50
для так называемых жестких систем.1 Сведения о жестких ОЛУ и методах их интегрирования приведены в [74, 87, 97].
2.2.4.	Применение системы SIMULINK
Рассмотрим решение задачи о постановке машины в гараж (п. 1.3) в среде системы визуального моделирования SIMULINK. Программа моделирования SIMULINK, хоть и имеет текстовое представление, создается и используется исследователем в виде блок-схемы (5-л<одель), в которой содержится описание рассматриваемой системы и задаются требуемые действия [29]. Основным действием является моделирование системы, т.е. расчет протекающих в ней процессов в зависимости от времени. 5-модель для рассматриваемой задачи показана на рис. 2.4. Блок Step - источник ступенчатого входного сиг-
Step Gain Integrator Integrator"! Scope
Рис. 2.4. S-модель системы (1.4).
нала. Указаны следующие значения параметров настройки: Step time (длительность ступеньки) - 11; Initial value (начальное значение) равно b; Final value (конечное значение) равно -а.
Блок Gain - усилитель. Параметр Gain (коэффициент передачи) установлен равным 1/т.
Блок Integrator - интегрирующий блок. Приняты заданные по умолчанию значения параметров, в частности нулевые начальные условия (параметр Initial condition).
Блок Scope - индикатор. Служит для вывода результатов в процессе интегрирования в “электронное окно”. Параметры блока могут быть настроены после моделирования с помощью выводимых на панели окна кнопок [29].
Диалоговое окно 5-модели имеет меню Simulation (моделирование), которая включает опцию Parameters (параметры).
1 Следует заметить, что для рассматриваемого примера точность в значительной степени зависит от того, насколько близко лежат точки t', к дискретной последовательности t. При попытке использовать Isim с неравномерным шагом по времени выводится сообщение об ошибке.
51
Эта опция содержит несколько окон. При моделировании зададим в окне Solver (решатель) значение параметра Stop time (время окончания), равное Т, а в окне Workspace I/O (ввод-вывод в рабочую область) зададим значения параметров Time (время) и States (состояния) - t и х соответственно. Это дает возможность выводить массив моментов времени и состояний системы в рабочую область MATLAB для последующей обработки, а не только отображать индикатором Scope. 5-модель может быть запущена командой Start из меню Simulation. При этом должны быть заданы (содержаться в рабочей области MATLAB) численные значения всех параметров, обозначенных в модели идентификаторами. Представляется более удобным запускать SIMULINK на выполнение из MATLAB-программы. Эта программа должна содержать установку параметров модели, оператор моделирования, операторы обработки результатов. С этой целью используем приведенную выше головную программу интегрирования уравнений, заменив в ней только строчку обращения к процедуре ode45:
[t,x]=ode45(,fple2J,[0; T],x0);
на оператор sim запуска 5-модели. В рассматриваемом примере эта модель хранится в файле sl_2.mdl, поэтому соответствующий оператор имеет вид sim(’sl_2'). В результате выполнения программы получаем относительную погрешность не более 2"13 % (т.е. близко к “машинному - е”), а время вычислений - порядка 0.06 с.1 При вычислении выполнено п( = 59 шагов; наименьший шаг имеет длину 1.5 • 10”и с и соответствует моменту времени t1, а наибольший - длину 0.074 с. Как видно из полученных результатов, система SIMULINK является не только удобным, но и эффективным в вычислительном отношении инструментом моделирования.
1 Для оценки времени вычислений использованы операторы tic и toe.
С чем рифмуется слово “истина” -Не узнать ни поэтам, ни гражданам!
Александр Галич
ГЛАВА 3. ВЫБОР СТРУКТУРЫ МАТЕМАТИЧЕСКОЙ МОДЕЛИ
3.1.	Классификация моделей
Этап построения математической модели (ММ) системы разбивается на две части: выбор структуры и выбор параметров. Как было сказано в п. 1.2, структура сложной системы определяется типами моделей каждой ее подсистемы и характером связей (отношений) между ними. Все многообразие имеющихся типов ММ можно классифицировать по нескольким основным признакам, см. табл. 3.1.
Т аблицаЗ.1. Математические модели систем
Статические y(t) = F(u(t))	Динамические y(t) = F({u(s) - оо < s < t})
Дискретные (17, У, Т -конечные (счетные) множества)	Непрерывные (С7, У, Т -континуумы (прямые, отрезки, тела в многомерных пространствах))
Детерминированные	Стохастические; нечеткие
Сосредоточенные (уравнения конечные,1 разностные, обыкновенные дифференциальные)	Распределенные (уравнения с запаздыванием, в частных производных, интегральные)
Линейные	Нелинейные
Стационарные (параметры не меняются со временем)	Нестационарные (параметры изменяются со временем)
Кроме того, структура модели определяется также набором размерностей - количеством переменных (входа, выхода, состояния) и параметров. Прежде всего следует дать краткую характеристику основным типам ММ.
1 То есть алгебраические, или трансцендентные .
53
3.1.1.	Статические и динамические модели
Математическая модель системы называется статической, если значение выхода y(t) зависит от значения входа u(t) в один и тот же момент времени t. Символически это свойство записывается так:
»(<) = Л»(<)).	(3.1)
где F - символ некоторого преобразования (оператора). Кроме явных функциональных зависимостей (3.1) статические модели могут задаваться неявно, в виде уравнения или системы
Ф(у(0,«(0)=0.	(3.2)
Так обычно записываются уравнения статических режимов радиоэлектронных схем, многих механических, энергетических систем и т.д. Уравнение (3.2) должно быть однозначно разрешимо относительно y(t).
Статическими моделями пользуются, когда в рамках поставленной задачи (с точки зрения достижения выбранной цели) инерционностью и “памятью” реальной системы можно пренебречь. Это возможно при выполнении ряда условий, в число которых входят следующие:
1)	система устойчива, т.е. переходные процессы после скачкообразного изменения входов затухают. Конечное время затухания с заданной точностью обозначим через /пер;
2)	входы меняются медленно, т.е. Д£вх > fnep, где Д£вх -время между изменениями входных воздействий;
3)	выходы изменяются редко, т.е. AtBbIX > £nepi где AfBbIX = = ffc+i - tk - промежутки между измерениями входных величин.
В динамических моделях значение y(t) может зависеть от всего прошлого (предыстории) входного процесса:
y(0 = F(W,s<0)-	(3-3)
Динамические модели позволяют учесть наличие “памяти”, инерционности системы. Математическим аппаратом описания динамических систем являются дифференциальные, разностные уравнения, конечные автоматы, случайные процессы. Некоторые классы динамических моделей рассмотрены в п. 3.3.
54
3.1.2.	Дискретные и непрерывные модели
Система может быть дискретной или непрерывной по входам, выходам и по времени в зависимости от того, дискретными или непрерывными являются множества U,Y,T соответственно. Под дискретным понимается конечное или счетное 1 множество. Под непрерывным (континуальным) будем понимать множество объектов, для которого адекватной моделью является отрезок, луч или прямая линия, т.е. связное числовое множество. Если система имеет несколько входов и выходов, то это значит, что соответствующие множества CZ, Т лежат в многомерных пространствах, т.е. непрерывность и дискретность понимаются покомпонентно.
Удобство числового множества как модели реальных совокупностей объектов состоит в том, что на нем естественным образом определяются несколько отношений, формализующих реально встречающиеся отношения между реальными объектами. Например, отношения близости, сходимости формализуют понятия похожести, сходства объектов и могут быть заданы посредством функции расстояния (метрики) d(x,y) (например, d(x,y) =| х - у |). Числовые множества являются упорядоченными: отношение порядка следования (я < у) формализует предпочтение одного объекта другому. Наконец, над элементами числовых множеств определены естественные операции, 2 например линейные: х + у, х • у. Если для реальных объектов на входе и выходе также имеют смысл аналогичные операции, то естественным образом возникают требования к моделям (3.1)-(3.3) быть согласованными с этими операциями и сохранять их результаты. Так мы приходим, например, к линейным моделям: у = аи + 6, dy/dt = ay + Ьи и т.д., являющимся простейшими моделями многих процессов.
1 Строго говоря, счетное множество представляет собой некоторую идеализацию, которую невозможно реализовать практически из-за конечности размеров технических систем и пределов человеческого восприятия. Такие идеализированные модели (например, множество натуральных чисел N = {1,2,...} ) имеет смысл вводить для множеств с конечным, но заранее не ограниченным (или неизвестным) числом элементов.
2 Формально понятие операции является частным случаем понятия отношения между элементами множеств. Например, операция сложения двух чисел задает трехместное (тернарное) отношение R: тройка чисел (x,y,z) принадлежит отношению R (пишем (т,у, z) € Я), если z = х + у.
55
Т а б л и ц а 3.2. Детерминированные модели систем
	Статические		Динамические			
	Дискретные not/, Y	Непрерывные по t/, Y	Дискретные по Т		Непрерывные по Т	
			Дискретные по U, Y	Непрерывные по t/, Y	Дискретные по U, Y	Непрерывные по U, Y
Математический аппарат описания	Графы; таблицы соответствий; булева алгебра; предикаты [88, 82]	Функции вещественных переменных [118]	Конечные автоматы [92]	Разностные уравнения [75]	Асинхронные автоматы; сети Петри; модели теории расписаний [77, 96]	Обыкновенные дифференциальные уравнения (ОДУ)
Методы оценки параметров и анализа	Методы математической логики (82)	Методы интерполяции; аппроксимации [9]	Теория конечных автоматов [92]	Идентификация; теория устойчивости [95, 75]	Методы идентификации	Идентификация; численное интегрирование ОДУ [72, 95, 9]
Методы синтеза	Карты Карно; метод Куайна; дискретное программирование [48]	Методы оптимизации (линейное и нелинейное программирование [80, 22])	Методы синтеза микропрограммных автоматов; динамическое программирование [88, 114]	Динамическое программирование; дискретный принцип максимума [75]	Динамическое программирование; теория расписаний	Теория управления; методы оптимизации [72, 95]
Области применения	Ре лейно-контактные схемы; импульсные и логические схемы; качественные модели исследования операций	Количественные модели исследования операций	Цифровые САУ; логическое управление	Импульсные и цифровые САУ	Параллельные процессы	САУ; механические; тепловые; электронные и другие процессы
Как правило, дискретность множества U влечет за собой дискретность У. Кроме того, для статических систем исчезает разница между непрерывным и дискретным временем. Поэтому классификация детерминированных систем (табл. 3.1.2) по признакам “статические - динамические”, “дискретные - непрерывные” включает шесть основных групп; для каждой группы указан математический аппарат описания систем, методы численного анализа и оценки их параметров, методы синтеза (оптимизации), а также типичные области применения.
Пример 3.1.1. Рассмотрим работу турникета на входе в метро. В первом, грубом, приближении множество значений входа этой системы имеет два элемента: человек с жетоном (mJ и человек без жетона (и2), т.е. U = {^i, п2}. После небольшого размышления становится ясно, что следует включить еще отсутствие пассажира (uq), т.е. U = {и0,	и2}.
Множество значений выхода содержит элементы “открыто” (з/о) и “закрыто” (i/i). Таким образом, У = {т/0)У1} и система является дискретной. В простейшем случае можно пренебречь памятью системы и описывать ее статической моделью, имеющей вид таблицы или графа:
«69	y(t)
«о «1 М2	Уо Уо У1
При необходимости хранить ММ системы в памяти компью-
тера ее можно представить (закодировать) в виде матрицы
1 1 О
О 0 1
F =
или более экономно, в виде списка (0,0,1),
в котором на г-м месте стоит J, если значению входа
соответствует значение выхода yj.
Пример 3.1.2. Если нас интересует более детально устройство самого турникета (т.е. системой является турникет), то придется учесть, что входными воздействиями (сигналами) для него являются опускание жетона и прохождение человека. Таким образом, система имеет два входа, каждый из которых может принимать два значения(“есть” или “нет”). Пренебрегая возможностью одновременного опускания жетона и прохождения, вводим три значения входа: uQ - “нет
57
воздействия”, щ - “опускание жетона”, и2 - “прохождение”. Множество Y можно задать так же, как и в примере 3.1.1. Однако теперь значение выхода y(t) не определяется только значением входа u(f), а зависит еще и от того, был ли опущен жетон раньше, т.е. от значений u(s) при s < t. Система имеет “память”. Простейший тип ММ для описания дискретных систем с памятью - это конечный автомат [92]. Для его построения вводится конечное множество внутренних состояний системы X, определяющее “память”. В данном случае в X достаточно включить два элемента: xQ - “жетон не был брошен”, а?! - “жетон был брошен”. Значения состояния системы в следующий момент времени и выхода в текущий момент зависят от текущих значений состояния и входа, т.е.
х(к + 1) = F(x(fc),	у(к) = G(x(k), и(к))>	(3.4)
где к - номер момента времени такта. Отметим, что, выделив “текущий” и “следующий” моменты времени, мы незаметно ввели предположение о дискретности времени, которое при более детальном исследовании может оказаться неправомерным (см. ниже п. 3.3.3). Функцию переходов F(x,u) и функцию выходов <7(т,и) можно задать таблично:
Пример 3.1.3. Рассмотрим простейшую электрическую систему - ЛС-цепь (рис. 3.1), входом которой является напряжение источника u(t) = а выходом - напряжение на
58
конденсаторе y(t) = Ei(t). Закон Кирхгофа дает ММ системы в виде дифференциального уравнения первого порядка
ту = и - ?/,
(3-5)
где т = RC - постоянная времени цепи. Модель (3.5) полностью непрерывна: U = Y = Т = Я1. Если исследователя
Рис. 3.1. Электрическая схема ЯС-цепи.
интересует поведение системы в статических режимах, т.е. при Eo(t) = const, то нужно положить в (3.5) у = 0 и получить статическую модель
y(t)=u(f).	(3.6)
Моделью (3.6) можно пользоваться как приближенной в случае, когда вход Ео(О изменяется достаточно редко или медленно (по сравнению с т).
Пример 3.1.4. Рассмотрим экологическую систему, состоящую из двух взаимодействующих популяций [95, 74, 52, 90], существующих на некоторой территории. Предположим, что система автономна, т.е. внешними воздействиями (входами) можно пренебречь; за выходы системы примем численности популяций (видов) yi(t),y2(t). Пусть второй вид является пищей для первого, т.е. система относится к классу “хищник - жертва” (например, ?/i - численность лис в лесу, у2 -численность зайцев; или t/i - число бактерий возбудителей заболевания в городе, у2 - число заболевших и т.д.). В данном случае т/ь У2 - целые числа, и на первый взгляд в ММ системы множество У должно быть дискретным. Однако для построения ММ удобнее считать, что уи у2 могут принимать произвольные вещественные значения, т.е. можно перейти к непрерывной модели (при достаточно больших у2 этот переход не внесет существенной погрешности). При этом мы сможем пользоваться такими понятиями, как скорости изменения выходных переменных	= у2. Простейшая
59
модель динамики популяции получается, если предположить, что:
-	при отсутствии хищников численность “жертв” растет экспоненциально;
-	при отсутствии “жертв” численность хищников убывает экспоненциально;
-	численность “съеденных” жертв пропорциональна числу хищников и числу жертв, т.е. величине У\У1-
При этих предположениях динамика системы, как нетрудно видеть, описывается так называемой моделью Лотки-Во-льтёрра:
У\ = oj/i - У2 = СУ1У2 - dy2,	(3.7)
где a}b}c,d - положительные параметры. Если есть возможность изменять параметры, то они превращаются во входные переменные, например когда изменяются коэффициенты рождаемости и смертности видов, коэффициенты размножения бактерий (при введении лекарств) и т.д.
3.2.	Примеры исследования моделей
3.2.1.	Исследование четырехполюсника
Рассмотрим электрическую цепь, изображенную на рис. 3.2. Эта цепь является пассивным двухступенчатым режектор-
ным (заграждающим) фильтром, применяемым в системах управления для устранения влияния упругости механических
60
объектов (манипуляционных роботов, летательных аппаратов и т.д.). Обозначим входное напряжение через выходное - через y(f), токи в ветвях - через i\{t)у i2{t). Для этой цепи составим в символической форме уравнения Кирхгофа, используя оператор дифференцирования р = Получим
у = Riii + Lxpix +
< — Ri3 - Lpi3 + y = u} | Lpi3 + Ri3 + £чЧ2 = 0, ( г'г = h + *з-
Начнем с исследования системы (3.8) в общем виде. Используя очевидные обозначения для переменных, составим следующую MATLAB-программу для получения из (3.8) операторного уравнения относительно выходного сигнала y(t):
S=solve(,y=Rl*il+Ll*p*il+l/Cl/p*il1:
’-R*iЗ-L♦p*iЗ+y=u,,...
,L*p*i3+R*i3+l/C/p*i2=0l,:
,i2=il+i3>,’у’,'il',42’,'i3’)
y=simple(S.y);
y=collect(y,'p*)
latex(y)
Wy=simple(y/’и');
[n,d]=numden(Wy);
n=collect(n);
n=simple(n)
d=collect(d);
Wy=n/d
Оператор collect служит для упрощения выражения приведением подобных членов относительно указанного вторым параметром символьного аргумента. Остальные операторы рассмотрены в п. 2.2. В результате выполнения программы, в формате IATjtX получается выражение 1
U(1 + WG + R, C,p)(Lp2C+RCp + l) ,,Q.
17 = ---------------------------------.	I Л. И I
1 Знаменатель этой дроби выделен в многочлен А(р) “вручную”, чтобы
выражение уместилось по ширине страницы.
61
где Д(р) = Lt р4С, LC+ (Rt Ct LC + Lt Ct RC) p3 +(Rt Ct RC+ ~bC/ L + Lj Cj 4" LC)p2 4” (С/ R 4" RC + R] Cj) p 4~ 1. Последующие операторы служат для получения выражения для передаточной функции IV(р) от входного сигнала и к выходу у. В программе эта передаточная функция обозначается идентификатором Wy. Фактически требуемое выражение получается после выполнения оператора Wy=simple(y/’и'). Последующие операторы оказываются полезными для упрощения выражения, приведения его к стандартному виду рациональной функции с упорядоченными по степеням р многочленами в числителе и знаменателе. Для этого из найденной дроби с помощью оператора numden выделяются числитель п и знаменатель d,B которых затем производится приведение подобных членов оператором collect. Кроме того, для данной задачи удается получить аналитически разложение числителя на множители с помощью оператора simple. 1 В результате для числителя получаем выражение
n=(l+Ll*p~2+Rl*Cl*p)*(L*p*2*C+R*C*p+l).
Окончательно оператором Wy=n/d находится выражение для передаточной функции в стандартной форме. Таким образом, фильтр (3.8) описывается передаточной функцией
= (т.У + ВДр+1) (ту + 2{тР+1) flop4 4- flip3 4- а>2р2 4- а3р 4-1
(3.10)
где постоянные времени Т,ТХ определяются выражениями Т = \JLC, 7\ = \/LiC\'y относительные коэффициенты демп-
фирования - выражениями £ =	=
а коэффициенты знаменателя - выражениями а0 = LL\CC\, aY = (LRiCl 4” L\RC\)C) й2 = RRyCCi 4” LCi 4" L\C\ 4~ LC, a3 = RCi 4- RC 4- R]C\. Найденные выражения используем для расчета временных и частотных характеристик фильтра.
Расчет статического режима для данной системы выполняется просто: как известно, для определения статического коэффициента передачи достаточно в операторной форме записи положить р = 0. Поэтому используем оператор
1 При выполнении символьных вычислений целесообразно применять различные способы упрощения интерактивно, в режиме диалога с системой, а затем вводить их в окончательный текст программы.
62
yO=simple(subs(y, 'p' ,0)). Каки следовало ожидать, получаем у0 =и. Следовательно, статический коэффициент.передачи фильтра равен единице.
Перейдем к численному исследованию динамики фильтра. Примем следующие значения параметров [10]: R = 12 кОм, Я1 = 22 кОм, L = 103 Гн, Ьг = 103 Гн, С = 0.172 мФ, Сх =0.078 мФ. Получим частотные характеристики фильтра, которые выведем в виде диаграмм Боде {логарифмическая амплитудно-частотная и фазочастотная характеристики, Л АХ и ЛФЧХ) [3, 6, 75].
Продолжим программу. Подставим в полученное выражение для передаточной функции (3.10) числовые значения параметров. Затем выполним переход к частотной передаточной функции, произведя замену аргумента р на jcv. Последнюю подстановку выполним для различных значений частоты ш, которые зададим в виде массива. Вычисляя модуль и аргумент найденного массива комплексных чисел, получим требуемые частотные характеристики. Указанные действия выполняются следующими операторами MATLAB, указанными в следующей программе.
Рис. 3.3. Частотные характеристики фильтра (диаграмма Боде).
63
Sine Wavel
Рис. 3.4. S-модель фильтра (3.10).
Out1
num(s) (tente)
Out3
Программа расчета частотных характеристик фильтра
R=12e3;	Rl=22e3;
L=le3;	Ll=le3;
C=0.172e-6; Cl=0.078e-6;
W=subs(Wy);
Wj =subs(W,' p' ,' (j *omega)’); omega=logspace(0,3,500); Wi=subs(Wj,’omega',omega); A=abs(Wi);
La=20*logl0(A);
phi=angle(Wi);
subplot(211),semilogx(omega,La),grid set(gca,'FontSize',12)
уlabel('L(\omega), дБ') xlabel('\omega, 1/c1) subplot(212),semilogx(omega,phi*57.3),grid set(gca,'FontSize',12)
ylabel('\phi(\omega), град'),xlabel('\omega, 1/c')
В первых трех строчках вводятся значения параметров фильтра. Оператор W=subs(Wy) служит для подстановки численных значений в выражение для передаточной функции. Затем подстановкой р = jw получается частотная передаточная функция Wj. Оператором logspace вводится вектор из 500 значений частоты элементы которого образуют геометрическую прогрессию и лежат в пределах от 101 до 103. Следующий оператор подставляет значения ш в выражение для частотной передаточной функции, в результате чего находится массив значений частотной характеристики W(jcv). Найдя модуль и аргумент этой характеристики функциями abs
64
и angle, получим амплитудно- и фазочастотную характеристики (АЧХ и ФЧХ). Перейдя к логарифмическому масштабу для АЧХ, получим значение Л АХ (в дБ). Вывод графика выполняем в полулогарифмическом масштабе по я-оси оператором semilogx. Остальные операторы аналогичны операторам, рассмотренным в п. 2.2, и служат для повышения наглядности графика. Результат работы программы представлен на рис. 3.3. Как видно из графика, фильтр обеспечивает подавление сигнала в диапазоне от 70 до 100 [рад/с] не ниже 10 [дБ].
Получим теперь реакцию фильтра на входное воздействие. Пусть входной процесс u(t) представляет собой сумму двух гармоник с одинаковыми (единичными) амплитудами и разными частотами: u(t) = sincuif + sinu>2L Первое слагаемое будем трактовать как “полезный” сигнал, второе - как помеху измерений, вызванную, например, упругостью конструкции объекта. Положим = 10 с-1, о>2 = 80 с“1. Составим SIMLINK - программу моделирования. Ее вид представлен на рис. 3.4. В программу входит два блока Sine Wave генераторов полезного сигнала и помехи, блок сумматора Sum и блок решения линейного ОЛУ, заданного передаточной функцией Transfer Fen. Параметры этого блока - Numerator (числитель) и Denominator (знаменатель) - в программе заданы в общем виде: массивами num и den соответственно. Согласно общим правилам системы MATLAB, многочлены представляются вектор-строками своих коэффициентов, расположенными в порядке убывания степени аргумента. В рассматриваемом примере это должны быть массивы коэффициентов передаточной функции. Как и выше, используем систему SIMULINK для описания модели и собственно процедуры интегрирования, а подготовку исходных данных и отображение результатов оформим в виде MATLAB-программы, представленной ниже. 1
Программа расчета переходных характеристик фильтра
num=conv( [L1*C1 ,R1*C1,1] , [L*C,R*C, 1] ) den=[L1*C1*L*C, R1*C1*L*C+L1*C1*R*C,...
1 Данная программа является продолжением программы расчета частотных характеристик и использует заданные в ней номиналы электротехнических элементов.
3 Б. Р. Андриевский и др.
65
R1*C1*R*C+C1*L+L1*C1+L*C,... C1*R+R*C+R1*C1, 1];
sim(,s2_l’)
f igure
plot(t,y),grid
set(gca,*FontSize9,12)
xlabelC't, c’)
legendC'y**','y_cJ,’y.c+y.n’,0) text(t(125),y(125,1),'<--y~**) text(t(200) ,y(200,2), ><----y.c')
text(t(150),y(150,3),’<---y.c+y.n1)
В первых строках программы формируются массивы num и den. Используется оператор свертки векторов conv. В применении к многочленам это соответствует получению вектора коэффициентов их произведения. Заметим, что в программе выражения для многочленов получены несложной корректировкой программы расчета частотных характеристик. Оператор sim запускает на выполнение S-модель s2.1, после чего оператором figure создается новое графическое окно, в которое выводятся результаты моделирования. Поскольку в монохромном изображении не видны цвета линий графика, для него могут быть использованы операторы text. В результате появляются указатели около соответствующих кривых графика (рис. 3.5). Символом у* обозначен выход фильтра, ус - полезный сигнал, а уп - сигнал помехи (на рисунке показан входной сигнал ус + уп). В S-модели, в меню Simulation, опция Parameters, окно Workspace I/O, поле Save to workspace установлены параметры: Time - t, Output - у. Под этими именами значения результатов моделирования сохраняются в рабочей области (Workspace) и используются MATLAB-программой. На вкладке Solver в окне Solver options параметр Max step size (максимальная величина шага) установлен равным 0.005. Это сделано не для повышения точности вычислений (которая и так высока), а для получения плавных кривых при выводе результатов. Входной и выходной процессы, полученные в результате моделирования, показаны на рис. 3.5.
66
2
Рис. 3.5. Переходные характеристики фильтра (3.10). Выделение сигнала на фоне помехи.
3.2.2.	Гармонический анализ процессов
При исследовании колебательных процессов часто применяются их энергетические характеристики, в первую очередь -мощность и энергия [25, 74].
Мгновенная мощность p(t) сигнала y(t) определяется как квадрат его мгновенного значения: р(/) = y(t)2- Энергия Р сигнала на интервале , f2] находится как интеграл от мгновен-д	Р 1
ной мощности Р = f y(t)2dt. Отношение	f h. t f y(t)2dt
h	2	1	2	1 h
выражает среднюю (на интервале [tbZ2]) мощность сигнала. Обозначим ее через y(t)2. Получить представление об этих характеристиках процесса можно на основе преобразования Фурье [25]. Рассмотрим этот метод более подробно.
Для периодических процессов y(t) с периодом Т можно записать ряд Фурье в виде
2/(^) = “h cos k^p-t -|- bk sin k^jrt^,	(3.11)
k=\
где коэффициенты разложения находятся из формул
/•Т	гТ
aQ = & y(t)dt, ajc = т I y(t) cos (k^S-tjdt, 1 Jq	1 Jq \ 1 /
67
Ьк = jt J 3/(0 sin	(fc=l,2,...).
Совокупность величин s0 = |a0|/2, sk = \/ak + b2k (fc = 1,2,...) называется амплитудным частотным спектром периодической функции з/(0. Значения зк представляют собой ампли-туды гармоник с частотой шк = kSl (Q = уг) в разложении процесса в ряд (3.11). Они зависят от номера гармоники к и обычно графически представляются в виде отрезков высотой зк, проведенных в точках шк оси частот (поэтому спектр периодической функции называют линейчатым, или дискретным). Он несет в себе информацию о частотных свойствах сигнала: если сигнал имеет выраженные колебания на некоторых частотах, то его спектр на этих частотах содержит пики.
Обобщением ряда Фурье на непериодические процессы является интеграл Фурье, при котором используется представление
2/(0 = 1 f (y(u)sinojf + [7(cu)cosu>0 dt, (3.12) Jo
где
[/(u>) = f з/(0 cos(w0Jt, V(w) = /* 3/(0 sin(cv0Jf.
J-00	J-oo
Аналогично вводится частотный спектр процесса 3/(0 как S(u>) = y/U(u)2 + V(u02. Это функция от непрерывного аргумента ил
Поскольку при цифровом моделировании исходной является дискретная реализация процесса и нахождение интеграла выполняется конечным суммированием, то при числовом гармоническом анализе вместо непрерывного преобразования (3.12) выполняется дискретное преобразование Фурье (ДПФ). (ДПФ) Для этого исследуемый процесс у(0 (длительностью Т) заменяется выборочной дискретной функцией (т.е. последовательностью) у[к] = з/(^), где tk = kTQ (fc = 1,2,... , N), N -m
заданное число точек, Tq = -jy - шаг дискретности (квантования). Далее вычисляется функция
N
m = Ej'Hexp(--?'2,r(fc-1)25rL)- *<k<N (з-13) П=1
68
(“изображение по Фурье”), имеющая комплексные значения. В пакете MATLAB дискретное преобразование Фурье выполняется процедурой fft. Для ускорения вычислений рекомендуется брать число точек N = 2Р, где и - некоторое натуральное число. В этом случае программой реализуется так называемое “быстрое преобразование Фурье” (БПФ). 1 Обратный переход от изображения к исходной функции выполняется по формуле
N
= у 52^(Л)ехр(;2тг(Л-1)2-^), l<n<N. (3.14) n=l
Для вычисления спектральной плотности с помощью процедуры fft исходная реализация процесса разбивается на N точек, соответствующих равноотстоящим моментам времени с интервалом Tq. Если исходная последовательность получена в результате моделирования с автоматическим выбором шага (как обычно бывает при использовании стандартных процедур численного интегрирования), то ее следует предварительно преобразовать. Для этой цели можно использовать входящие в пакет MATLAB процедуры интерполяции. К ним относятся, например, функции interpl или interplq. 2
При выборе параметров вычисления спектра (длина реализации Т, число точек N и связанный с ними интервал квантования Tq = Т/N) следует учитывать, что диапазон существенных частот исследуемого процесса не должен выходить за частоту Найквиста = т-. Несоблюдение этого усло-
1 о
вия может привести к значительным ошибкам при определении характеристик процесса. Данное требование вытекает из известной теоремы отсчетов Котельникова-Шеннона [25]. Смысл этого требования можно пояснить следующим образом. Рассмотрим два гармонических сигнала с частотами uj и w + ujn: y(t) = sin(u^), yi(t) = sin ((u> +wN)t). Образуем из них дискретные последовательности с интервалом Tq : y[k] =	= sin(cvfcTo) и yx[k] = yx(kTQ) = sin ((cv + uN)kTQ)
(fc = 0,1,2,...). Учитывая, что cj^Tq = тг, получим |з/1[^]| =
1 По-английски - “Fast Fourier Transform”, сокращенно FFT.
2 Процедура interplq выполняется быстрее процедуры interpl при неравномерно заданных значениях аргумента, что характерно для рассматриваемой задачи.
69
= |sin(cjfcTo + 7г&)| = 12/И1 (для всех к = 0,1,2,...). Таким образом, полученные в результате дискретизации процессы у[к] и у\[к] оказались (с точностью до знака, или начальной фазы) неразличимыми, в то время как исходные непрерывные процессы y(t) и з/1 (t), конечно, различны.
Поскольку рассматриваемый процесс у(к) в общем случае не является периодическим с частотой Q = 27г/Т, вычисление его спектра с помощью рассматриваемой процедуры является приближенным. Как видно из формулы (3.13), соседние точки по частоте отстоят на величину	Учиты-
вая, что N = Т/TQl получим бы = ^г. Таким образом, длительность исследуемой реализации должна быть достаточно большой для получения спектра с заданным шагом дискретности по частоте (Т 1/<5gu.)
Задача оценивания спектра по выборке имеет еще одну важную особенность: оценка спектральной плотности, получаемая по ЛПФ, как правило, является смещенной. Это значит, что даже неограниченное уменьшение шага дискретности не приводит к неограниченному убыванию погрешности оценивания. На самом деле средним значением оценки является не точное значение спектральной плотности на заданной частоте, а некоторое сглаженное значение, получаемое усреднением функции - сверткой с некоторым ядром (“окном”) [37, 119]. Удачный выбор функции-“окна” позволяет уменьшить погрешность оценивания при заданном конечном шаге дискретности.
Пример 3.2.1. Выполним гармонический анализ процессов на входе и выходе рассмотренного в 3.2.1 частотно-избирательного фильтра. Исследуемые процессы получим с помощью программы, приведенной на с. 65. Для обработки процессов воспользуемся следующей MATLAB-программой.
Программа расчета спектров входного и выходного сигналов фильтра (фрагмент) 1
T=max(t) ;
Nt=2~12
TO=T/Nt;
1 Эта программа является продолжением программы, приведенной на с. 65.
70
В этом фрагменте программы с помощью функции шах определяется длина реализации Т, задается число точек N для вычисления спектров и находится период дискретности Го. Поскольку заданное число точек не совпадает с полученным в результате моделирования, а также в виду неравномерности моментов времени далее производится линейная интерполяция процедурой interpl. Для этого вводится массив моментов отсчета ti с постоянным шагом ТО и формируются подлежащие последующей обработке массивы уli, y2i: 1
ti=O:TO:(Nt-1)*TO;
yli=interpl(t,y(:,3),ti);
y2i=interpl(t,y(:,1),ti);
После этого выполняем ДПФ процедурой fft и находим энергетические спектры сигналов:
Yl=fft(yli,N);
Y2=fft(y2i,N);
Sl=abs(Yl).*2/N;
S2=abs(Y2).~2/N;
Далее вычисляем частоту Найквиста wn (wn) и шаг по частоте 8w (dw):
wn=pi/TO;
dw=2*wn/N;
В рассматриваемом примере задано Т = 5 с, N = 4096, откуда следует « 2570 с-1, бы « 1.26 с”1. Частота Найквиста значительно превышает диапазон частот исследуемых сигналов. Построим графики спектров процессов на входе и выходе фильтра в диапазоне частот [0,100] с"1.
отах=100;
w=0:dw:отах;
lw=length(w);
figure
subplot(211)
1 Можно использовать и процедуру interplq. Тогда соответствующий оператор следует записать с транспонированием массива ti, а именно как ylieinterpl(t,у(: ,3),ti’). Это связано с тем, что процедура interplq “чувствительна” к совпадению числа столбцов аргументов.
71
stem(w,Sl(l:lw),’к.О,grid title(’S_l(\omega)*) subplot(212)
stem(w,S2(l:lw),*k.0, grid
xlabel(Aomega, 1/c1)
title(,S_2(\omega)1)
xlabel( Iomega, 1/c1)
Результат выполнения программы показан на рис. 3.6.
Рис. 3.6. Спектры процессов на входе (5J и выходе (S2) фильтра (3.10).
3.2.3.	Исследование экологической системы
Выше приведена упрощенная математическая модель системы “хищник-жертва”. Эта модель представляется уравнением Лотки-Вольтерра (3.7). Получим фазовый портрет системы (3.7) на плоскости (з/i, у?) для некоторых безразмерных значений параметров и переменных. 1
На рис 3.7 приведена S-модель системы (3.7). Начальные условия интегрирующих блоков заданы переменными у1_0, у2_0; параметры модели (3.7) а,Ь, с, d заданы одноименными переменными. Для получения фазового портрета следу-
1 Аналитическое исследование задачи приведено в [52, 90].
72
Рис. 3.7. S-модель системы “хищник - жертва”.
ет проинтегрировать систему с различными значениями начальных условий и отобразить полученные решения на одном графике. Для этого используем следующую программу.
Программа построения фазового портрета экологической системы,
а=2;	Ъ=1;
с=1;	d=5;
у2_0=2;
Yl=[1.5:0.5:5];
for k=l:length(Yl)
yl_0=Yl(k);
sim(,s2_2’)
plot(y(:,1),y(:,2)).hold on xlabel{'y_l,ylabel(^.2’) axis([0 12 0 inf])
end
hold off
В программе заданы фиксированное начальное значение 3/2(0) = 2 и массив Y1 начальных значений 3/1(0). Оператором for - end организован цикл по параметру к. Число итераций равно числу элементов массива Y1. После моделирования SIMULINK-программой s2_2 выводится фазовая кривая на плоскости (s/i, 3/2)- Чтобы получить фазовый портрет, т.е. изобразить на одном графике множество фазовых кривых, после оператора plot выполняется оператор hold (фиксация) графика (устанавливается опция on). По окончании
73
цикла фиксация снимается (hold off). 1 Оператор axis служит для задания диапазона осей графика. Параметр inf задает автоматический выбор границы по соответствующему направлению. Результат моделирования представлен на рис. 3.8. Стрелочками помечено направление движения по фазовой траектории со временем. Довольно сложно (хотя и возможно) запрограммировать вывод этих стрелок, поэтому на данном графике они добавлены “вручную”. Как видно из рисунка, в системе имеют место нелинейные колебания относительно некоторого состояния равновесия, амплитуда которых зависит от начальных условий. Часто эти кривые трактуются таким образом, что экологическая система имеет естественное состояние равновесия и уничтожение “хищников” (точка а на графике) приводит через некоторое время к резкому уменьшению числа “жертв” (точка 6). Если также учесть, что уменьшение численности популяции может привести к ее полному исчезновению, то следует сделать вывод о необходимости соблюдать осторожность при воздействии на экологические системы.
Рис. 3.8. Фазовый портрет системы “хищник - жертва”.
1 Заметим, что последний оператор имеет смысл только в том довольно редком случае, когда нужно выполнить вывод в то же графическое окно, стерев при этом находящееся в нем изображение, которое до этого “накапливалось”. Обычно вывод происходит в следующее окно и оператор hold off не обязателен.
74
3.3.	Модели состояния динамических систем
3.3.1.	Модели общего вида
Важнейшую роль при описании динамических систем играет понятие состояния. Состояние - это совокупность величин (вектор) х = со1(хх,тп), которые вместе с входным воздействием однозначно определяют будущее поведение системы [6, 95]. 1 Например, для ЯС-цепочки переменная состояния есть Е\, поскольку значения Ex(t} и входного воздействия Eq{s) при s > t однозначно определяют (в силу (3.5)) значение Ei(s) при $ = t. Для модели динамики популяций (3.7) состоянием является вектор х = col(yi,y2).
В общем случае уравнения состояний - это системы дифференциальных или разностных уравнений первого порядка вместе с уравнениями для выходных величин. Начальное состояние представляет “память” системы о прошлом. Модель состояния непрерывной динамической системы записывается в виде [6, 95, 62]
ii = Fx(xi,...,xn,ux,...,um,t),
<..............................
k in = Fn(xx,
(3.15) {Vi = Gx(xx,...,xn,ux,...,um,t),
где	- входные переменные;	- выходные пере-
менные; хх,...,хп - переменные состояния. Вводя векторные обозначения, можно записать (3.15) в более компактном виде:
i = F(x,u,Z), у = G(x,utt),	(3.16)
где х = со!(тг,...,тп); и = col(ub ...,um); у = соЦзл,..., yt). Для моделей состояния справедлив следующий факт: любая нелинейная динамическая система может быть представлена как соединение линейных динамических и нелинейных статических звеньев. Доказательство очевидно из рис. 3.9, где в качестве линейного звена взят интегратор.
1 Здесь и далее вектор (столбец) с компонентами xlfX2,...,хп обозначается X = со1(тх ,хп).
75
Рис. 3.9.
Еще более общей формой описания динамических систем являются сингулярные дифференциальные (алгебро-дифференциальные) системы
= 0, G(x, у, и, t) = 0,	(3.17)
частным случаем которых являются неявные системы
Ф(у;у^1)=0.	(3.18)
3.3.2.	Линейные модели и линеаризация
Часто вместо (3.15) используют упрощенные ММ, основанные на том, что процессы в системе протекают, мало отклоняясь от некоторой так называемой опорной траектории {i(f),il(f),y(t)}, удовлетворяющей уравнениям
х = F(x,u), y = G(x,u).	(3.19)
Тогда можно записать приближенную линеаризованную модель в отклонениях от этого режима:
х = A(t)i + B(t)u, у = C(t)x + D(t)u,	(3.20)
где i — х — х, у = у — у, й = и — й,
Л(1) =	В(1) = ^(S(i),«(<)),
C(i) =	ОД = $?(*(<),«(<))•
Пример 3.3.1. х = — х2и\ х,и Е Я1. Линеаризуем вблизи траектории, соответствующей u(t) = 1. Имеем х = —±2, откуда либо x(t) = 0 (при х(0) = 0), либо x(t) = l/(t — а). Рассмотрим второй случай:
I“=1 =	= "Г=^-
«=*(<)
76
й |и=1(0 =
В отклонениях х = х — 1/(/ — a),i = и — 1 линеаризованное уравнение имеет вид
х — — 1 % х — т.—1 * ~ а (t - а)2
Если расчетный режим является установившимся, т.е. не зависит от времени, то коэффициенты в (3.20) также не зависят от времени: A(t) = A, B(t) = В и т.д. Такие системы называются стационарными. Особенно часто на практике встречаются стационарные линейные непрерывные системы, описываемые более простыми уравнениями
х = Ах + Ви, у = Сх.	(3.21)
Матрицы А, В, С являются параметрами модели (3.21). Если линеаризация приводит к большим погрешностям, то стараются, по возможности, выбрать математическую модель, линейную по параметрам
х = A^(x,u),
где А- матрица параметров порядка nxN; Е R? - нелинейная вектор-функция. К этому классу относятся, в частности, билинейные объекты, например х = ахх + а2хи + а3и, где А = [аг9 а2> аз]; ^(x,u) = col(x, хи,и).
Сказанное выше относится и к уравнениям дискретных по времени систем. Уравнения дискретной системы в общем случае имеют вид
£*+! = F(xk,uk), ук = G(xk,uk).	(3.22)
Дискретным аналогом уравнений линейной стационарной системы (3.21) являются уравнения
хк^ = Рхк + Quk, ук = Rxk.	(3.23)
Наряду с уравнениями состояния широкое применение находят также модели в переменных “вход-выход” и модели, описываемые передаточными функциями. Для непрерывного времени уравнение “вход - выход” имеет вид
Л(р)у(«) = B(p)ii(<), 77
(3-24)
где р = d/dt - символ дифференцирования по времени; /1(А) = = An +	+ ... + aoi -З(Л) = ЬтХт + .+ />о, при-
чем в (3.24) всегда т < п. Дробно-рациональная функция 1У(А) = В(А)/А(А) называется передаточной функцией системы (3.24), а полином - ее характеристическим полиномом.1 Если уравнение (3.24) получено из (3.21), то
IV(A) =C(AIn-4)-lB,	(3.25)
А(А) = det(AIn - Л).	(3.26)
Они справедливы и в случае, когда вход и выход системы (3.21) являются векторами, при этом W(A) = А-1(А)В(А) -матрица. Пользуясь (3.25), можно показать, что замена переменных состояния в (3.21) по формуле х' = Тх , где Т -неособая п х n-матрица (detT = 0), не приводит к изменению передаточной функции (3.26). Это значит, что обратный переход от описания “вход - выход” к уравнениям состояния (3.21) неоднозначен: при сохранении передаточной функции базис в пространстве состояний можно выбирать по-разному. На практике применяются несколько типовых способов перехода от передаточной функции к уравнениям состояния. Эти способы соответствуют так называемым каноническим представлениям системы [6, 95]. Опишем один из них, приводящий к управляемому каноническому представлению. Вместо (3.23) вводятся два уравнения:
А(р)т] = и,	(3.27)
У = В(р)г},	(3.28)
где г] - вспомогательная переменная. Очевидно, что передаточные функции (3.24) и (3.27), (3.28) совпадают. В качестве вектора состояния в (3.23) берется х = со1(^,1/,... ,т/п“1)), так что Xi = Из (3.27) и соотношений х^ = T](i) =
i = 1,2,... , n - 1, выводится форма матрицы А и вектора В в (3.21), а из (3.28), записанного в виде у = bQxi + b1x2-\-\-bmX™,
1 А - комплексное число, аргумент полиномов Л(А),В(А).
78
получаем строку С:								
	' 0	1	0	0	0		 0 '	
	0	0	1	0	0		0	
А =	•	•	•	•	•	, в =		, (3.29)
	0	0	0	0	1		0	
	— O.Q	—а1		... —ап-2	~ ап-1		1	
				С = [Ь0...Ьт	0...0].			
Если для системы (3.24) наблюдению доступна производная у^ от величины у при i < п — т - 1, то она может быть получена, если в найденных уравнениях сохранить А, В в форме (3.29) и взять С = [0,... ,Ь0,... ,Ьт,... ,0].
Если в (3.24) т = п (такие передаточные функции называются несобственными), то систему (3.24) нельзя привести к виду (3.21), но можно привести к виду
х = Ах + Ви, y = Cx + Du,	(3.30)
где Л, В имеют вид (3.29); С = [Ьо “ aoi>n, • • • D = 6n.
3.3.3.	Дискретизация и континуализация
Дискретизация. Если исходное описание линейной системы непрерывно, можно перейти к дискретному описанию с помощью следующей процедуры.
Пусть состояние x(t) системы (3.21) доступно измерению в дискретные моменты времени = fcA, к = 0,1,..., где h > > 0 - шаг дискретности. Пусть u(t) постоянно на промежутках между моментами коррекции f*. Тогда динамику векторов Xk = x(tk) можно описать разностными уравнениями (3.23), в которых матрицы Р и Q определяются соотношениями
P = eAh, Q = A~l(P-In)B.	(3.31)
Здесь eAh - экспоненциал матрицы А, определяемый форму-ЛОЙ
eAh = In +Ah+ %AW ... =	(3.32)
fc=0
Если предположение о кусочном постоянстве u(t) не выполняется, то переход от (3.21) к (3.23) является приближенным, но
79
его точность растет по мере уменьшения шага h , если скорость изменения входа (величина u(t)) ограниченная. При достаточно малых h для вычисления eAh можно удерживать лишь первые несколько членов ряда (3.32) или аппроксимировать сумму (3.32) каким-либо способом.
Например, при переходе от (3.21) к (3.23) можно пользоваться формулой eAh « In + Ah , соответствующей численному интегрированию (3.21) методом Эйлера. При такой аппроксимации передаточные функции дискретной и непрерывной систем будут связаны соотношением
и^А) = wa ,	(3.33)
т.е. при переходе к дискретному времени в передаточной функции W(p) системы (3.24) нужно заменить р на (1 - z)/h. Если матрица А - гурвицева, т.е. ReA,(A) < 0, то метод Эйлера дает устойчивую аппроксимацию лишь при
h < min (2ReA,(A))/|At(A)|2,	(3.34)
где А,(А) - собственные числа матрицы А (корни полинома А(А)). Целый ряд способов перехода от (3.21) к (3.24) основан на аппроксимации матрицы eAh матричными дробями Паде (дробями, “числителем” и “знаменателем” которых являются матричные многочлены). Частными случаями этих способов является метод Тастина (формула Паде порядка (1,1)):
елА « (l + 4Д) (l -	-1,	(3.35)
приводящий к соотношению между передаточными функциями
^<Л) = тЪи'"йгт^)’ <3’36>
а также метод Дэвисона (формула Паде порядка (2,2)):
Отметим, что формулы (3.35) и (3.37) дают устойчивые аппроксимации при h > 0 (разумеется, если А - гурвицева).
Заметим, что формула (3.31) для вычисления матрицы Q применима, если det А / 0. Трудностей, связанных с вычислением Q при вырожденной матрице А, можно избежать, если
80
при формальной подстановке выражения для Р = eAh, полученного из аппроксимаций Тейлора или Паде в (3.31), произвести “сокращение” матрицы А. Тогда в выражение для Q матрица А-1 входить не будет. Например, аппроксимация по методу Эйлера Р = I + Ah приводит к формуле Q = h • В.
Другой способ состоит в расширении уравнений состояния исходной системы (3.21) [6, 74]. Входной процесс u(t) при tk < t < tk+i рассматривается как решение некоторого однородного дифференциального уравнения. Тогда расширенная система тоже является однородной и в вычислении по (3.31) нет необходимости. Искомые матрицы Р и Q получаются в качестве подматриц “расширенной” матричной экспоненты. 1 Продемонстрируем этот подход для входного процесса u(t) = uk при tk < t < Для указанного промежутка времени уравнение (3.21) запишем в виде
i(t) = Ax(t) +	x(tk) = xk, tk<t<tk+x,
ii(t) = 0, u(tk) = uk.	(3.38)
Введем расширенный (n + тп)-мерный вектор состояния х = col(i, и) и (n + m) x (n + тп)-матрицу
Л M Bl
4 = [o ij-
У равнение (3.38) представим в виде
= Ax(0, x(tk) = соЦхьи*).	(3.39)
Соответствующая дискретная модель (аналогично (3.23)) при нимает вид
хк+1 = Рхк1	(3.40)
где Р = eAh. Учитывая блочную структуру матрицы А и формулу (3.32) для Р, непосредственно убеждаемся, что матрица Р имеет следующую блочную структуру:
р\Р' [0 Im
1 Отметим, что именно этот способ реализован в программе c2d тулбокса CONTROL SYSTEMS пакета MATLAB, специально предназначенной для перехода от непрерывного описания к дискретному.
81
С учетом этого из (3.40) находим, что
**+1 = Р“хк + Q'vk-	(3.41)
Сравнивая (3.41) с (3.23), видим, что матрицы Р, Q в (3.23) совпадают с Р’, Q*. Поэтому они могут быть получены в качестве соответствующих подматриц матрицы Р = eAh .
Если непрерывная система нелинейна, то для перехода к ее дискретному описанию также можно использовать методы численного интегрирования. Например, метод Эйлера дает для системы (3.16) дискретное описание:
tffc+i = Xk + hF(xk, Uk, h), Ук = G(xkl ик, tk). (3.42)
Контпинуализация - это переход от дискретной математической модели системы к непрерывной. Если дискретная модель системы имеет вид (3.23), то перейти к непрерывной модели (3.21) можно по формулам
Д = £1пР, B = ^\nP(P-I)-lQ,	(3.43)
вытекающим из (3.31), где In Р - логарифм матрицы, функция, обратная к экспоненциальной и также определяемая через ряд
1п(1 + Х) = Х + 4^+--- + ("У*1 Хп,
сходящийся при ||А"|| < 1 (здесь X = Р - I). С точностью до величин порядка Л2 можно ограничиться формулами
Л = ^(Р-1), ь = }а.
соответствующими методу Эйлера. Однако удобнее всего переходить от дискретной передаточной функции к непрерывной по формулам (3.33) и (3.36). Например, по методу Эйлера (3.33) достаточно заменить в передаточной функции WA(z”1) переменную z”1 на 1 — hp.
При исследовании линейных систем получили распространение также методы упрощения описаний систем путем редукции (понижение порядка) [64, 115]. Взаимосвязь различных описаний динамических систем представлена на рис. 3.10.
82
Редукция
Редукция
Рис. 3.10. Взаимосвязь различных описаний динамических систем.
83
3.4.	Примеры преобразования моделей в среде MATLAB
3.4.1.	Линеаризация
Рассмотрим сначала процедуру линеаризации для примера 3.3.1 (с. 76). Эта задача может быть решена в общем виде с помощью тулбокса SYMBOLIC.
Рассмотрим динамическую систему х = — х2и с начальным состоянием х0. Решение этого дифференциального нелинейного уравнения найдем оператором
x=dsolve( ,Dx=-x*2*uJ , *x(O')=xOf')
Получен ответ: х =l/(u*t+l/xO) , или в формате 1АТрХ -х = (ut + Zo-1)-1. Продифференцируем теперь правую часть исходной модели по переменным х,и :
dfx=diff(,-х*2*и>,'х')
dfu=diff('-x~2*u','u')
Получим dfx =-2*x*u , dfu =-x~2 . Далее выполним подстановку: вместо символа х подставим найденное выше решение, а вместо символа и - значение 1.
A=subs(dfх,{’х’,>и1,{х,1})
B=subs(dfu.-Ux*, ,u,},{x> 1})
В результате получаем матрицы (в данном примере - скалярные функции) линеаризованной модели х = A(t)x +
A =-2/(t+l/x0)
В =-1/(t+l/x0)*2
В формате lATgX это будут выражения: A(t) = -2(f+x0”1)”1 , B(f) = — (t + xo“l)~2. Видим, что результат совпадает с приведенными в примере 3.3.1 формулами. Продолжим пример. Пусть задано xq = l,n(i) = 1. Получим решение исходного уравнения подстановкой этих данных в формулу для общего решения:
x=subs(x j-UxO', 'u 1, {1,1})
Находим х =l/(t+l). Теперь перейдем к решению линеаризованного уравнения. Для этого скопируем строки полученных выше выражений для А, В в оператор интегрирования дифференциальных уравнений:
84
x_l=simple(dsolve(’Dx=-2/(t+l/x0)*x-l/(t+l/x0)~2*u',...
>x(O)=xO'))
Получим ответ: x_l=-x0*(u*t*x0-l)/(t*x0+l)"2 , т.е.
x.(f) — _ x° (utx° ~J)
,l,“	(u, +1)'
Подставим в полученное выражение начальное х0 = 1 и и = 1:
x_l=simple(subs(x.l'хО’
Получаем следующий ответ: х_1= -(t-l)/(t+l)~2 .
Итак, получено решение линеаризованного уравнения вблизи заданной траектории: xi(t) = -	• Интересно срав-
нить графики решений исходного уравнения и линеаризованной модели. Числовые значения можно получить непосредственной подстановкой в найденные выражения массива моментов времени t:
t=0:0.025:0.5;
x=subs(x,'t',t);
xl=subs(x_l, 4' ,t);
h=plot(t,x,,t,x_l,’-o’);
legend(h,,x>,’x.l1)
xlabeK't’) ,ylabel(,x, х.Г)
Результат вычислений показан на рис. 3.11.
Рис. 3.11. Графики решений исходного (а) и линеаризованного (6) уравнений и параметры линейной модели.
Обратимся теперь к численному решению задачи. Составим S-модель исходной системы (рис. 3.12). Блок и2 явля-
85
Рис. 3.12. S-модель исходной системы.
ется блоком Math function из раздела Nonlinear. Модель составлена таким образом, что на нее можно подавать внешнее входное воздействие. Вначале используем эту программу для расчета опорной траектории x(t) при х(0) = l,n(t) = 1. Для того чтобы передать эти величины из “рабочей области” (Workspace), укажем хО в строке Initial condition окна параметров интегратора. Кроме того, в меню Simulation (опция Parameters, окно Workspace I/O, поле Load from workspace) установим параметр Input - и, а в поле Save to workspace - параметры: Time - tout, Output - yout. Под этими именами значения результатов моделирования сохраняются в рабочей области и используются MATLAB-программой. В окне Solver в поле Solver options параметр Max step size (максимальная величина шага) установлен равным 0.005. Выполним теперь операторы
х0=1;
u='11;
sim(Js3_l’)
Результат вычислений обозначен на рис. 3.11 через хш. Соответствующий график полностью сливается с графиком аналитического решения х. Заметим, что входной процесс имеет не числовое, а строковое значение. В строке задается способ нахождения u(t). Это связано с тем, что значение и должно рассчитываться на каждом шаге интегрирования. Можно также задать и массивом соответствующей размерности.
Перейдем теперь к численной линеаризации системы. Для этого используем ту же модель (рис. 3.12), но изменим содержимое поля Load from workspace, исключив из него параметр Input. Это вызвано тем, что процедура линеаризации изменяет входы и состояния системы автоматически. Выполним операторы:
uk=l;
for k=l;length(t);
86
хО=х(к);
[А1(к),В1(к),С,D]=linmod('s3_l1,хО,uk); end
В этом фрагменте программы циклически изменяются значения состояния системы, в окрестности которого выполняется линеаризация. Эти значения, обозначенные хО, получаются из рассчитанного выше массива х точек опорной траектории. Устанавливается и значение входного воздействия и = 1, обозначенного uk. Далее в цикле выполняется обращение к процедуре linmod, входящей в состав тулбокса SIMULINK. В результате вычислений получаются коэффициенты (в общем случае - матричные) уравнений состояния линеаризованной системы х = Ах + Ви, у = Сх + Du. Сравним полученные численно и аналитически результаты. Для этого выполним операторы
A=subs(A,'Х-О',1); A=subs(A,Ч',t);
B=subs(B, Ч.О' ,1); B=subs(B, Ч’ ,t) ;
plot(t,А1,’o',t,Bl,,t,A,t,B);
Параметры линеаризованной модели О
xlabel(Ч,)
Получим график, на котором сплошными линиями показаны графики изменения параметров модели, полученные аналитически, а символами о и * - графики, рассчитанные процедурой linmod, рис. 3.11, 6. Относительная ошибка определения A(t} найдена оператором max(abs(A-Al))/max(abs(A))*100 и составляет 5 • 10“4 %. Аналогично для B(t) получим относительную ошибку 5 • 1О"10 %.
3.4.2.	Дискретизация моделей
Процедуру дискретизации модели продемонстрируем на примере синтеза цифрового фильтра (ПФ) по аналоговому фильтру-прототипу (3.8), принципиальная схема которого приведена ранее на рис. 3.2. Пусть требуется найти передаточную Функцию (другими словами, алгоритм вычислений) цифрового фильтра, который обеспечивает подавление сигнала в заданном диапазоне частот. Перейдем от непрерывной системы, заданной передаточной функцией (3.10), к дискретной Модели. При построении дискретной модели следует задать
87
шаг дискретности Tq и сделать определенное допущение о виде процесса на входе непрерывной системы (более подробно см., например, [3, 6, 75]). Здесь будем предполагать, что u(t) - кусочно-постоянная внутри интервалов квантования. Запишем фрагмент программы.
Программа синтеза ЦФ по аналоговому прототипу
fl=tf(num,den)
T0=5e-3;
dfl=c2d(fl,T0)
Здесь предполагается, что массивы num, den уже заданы так, как это сделано в программах на с. 64, 65. Функция tf относится к тулбоксу CONTROL SYSTEMS и служит для построения линейного стационарного объекта (ЛС-обзект) по массивам числителя и знаменателя передаточной функции [6, 61]. В программе задается значение интервала дискретности Tq = 5 • 10”3 с и выполняется обращение к функции c2d перехода от непрерывной модели к дискретной. Далее выполним анализ полученной системы и ее сравнение с исходной. Продолжим программу:
omega=logspace(l,3,300);
[mag,phase]=bode(fl,omega);
[dmag,dphase]=bode(dfl,omega);
Lc=20*logl0(squeeze(mag));
Ld=20*logl0(squeeze(dmag));
cph=squeeze(phase);
dph=squeeze(dphase);
subplot(211)
semilogx(omega,Lc, ,kl ,omega,Ld,1 — .k1) ,grid titleC Диаграммы Боде О
ylabel('L(\omega), дБ’)
subplot(212)
semilogx(omega, cph,'k*,omega, dph,*--.k’),grid xlabel(’\omega, рад./с’)
Здесь строятся диаграммы Боде (ЛАХ, ЛФЧХ) непрерывной и дискретной систем. Вычисления выполняются функцией bode. Для непрерывных систем осуществляется описанная выше подстановка $ = jw аргумента передаточной функции. Аргумент z дискретной передаточной функции заменяется выражением e;tvT° [6, 75]. Функция squeeze используется
88
для удаления единичных размерностей массивов [84]. В данном примере это массивы mag , dmag , cph, dph, имеющие по три измерения. Без этого действия не удается выполнить операторы semilogx и plot. Частотные характеристики приведены на рис. 3.13, а.
Перейдем к расчету переходных характеристик непрерывной и дискретной систем. Воспользуемся функцией step тулбокса CONTROL SYSTEMS [61]. Для получения более подробных сведений о виде переходной характеристики непрерывной системы выберем для нее меньший шаг вычислений. Шаг расчета переходной характеристики дискретной системы должен совпадать с ее интервалом квантования То. Результаты вычислений выводятся операторами plot - для непрерывной системы и stem - для дискретной. Чтобы они разместились на одном графике, используется оператор hold on (см. рис. 3.13, б). Видно, что в узлах квантования выход непрерывной системы совпадает с выходом ее дискретной модели, что вполне соответствует принятому методу дискретизации (в теории ПФ этот метод так и называется - метод инвариантности переходной характеристики (ИПХ) [19, 24]).
tc=0:5e-4:0.25;
td=0:T0:0.25;
yc=step(fl,tc); yd=step(dfl,td); plot(tc,yc,’k*),hold on stem(td,yd),grid
Замечание. Можно значительно упростить данную программу, если не задаваться точками диапазона частот, моментов времени и видом графиков. Тогда рассмотренные здесь действия можно выполнить программой:
fl=tf(num,den)
T0=5e-3;
dfl=c2d(fl,T0) bode(fl,df1); figure step(fl,dfl);
89
a
Рис. 3.13. Характеристики аналогового прототипа и цифрового фильтра.
Выбор требуемых параметров и вывод результатов на экран производятся функциями bode, step автоматически.
Синтез по аналоговому прототипу - далеко не единственный и не самый распространенный в настоящее время метод синтеза ЦФ. Тулбокс SIGNAL PROCESSING содержит достаточно много программ, в которых реализованы различные методы синтеза цифровых фильтров, как рекурсивных {фильтры с импульсной характеристикой бесконечной длительности, или БИХ-фильтры), так и нерекурсивных {фильтры с импульсной характеристикой конечной длительности, или КИХ-фильтры) [19, 35, 84]. Продемонстрируем применение функции butter синтеза фильтров Баттерворта {Butterworth) для получения цифрового режекторного фильтра с указанной выше полосой задерживания и интервалом дискретности TQ = 0.005 с.
При использовании функции butter следует указать границы полосы пропускания (или задерживания - в зависимости от типа фильтра) в единицах частоты Найквиста ПФ
= rfr с“1. Например, если полоса пропускания равна 0.2^ о
с"1, то соответствующий параметр устанавливается равным 0.2 и т.д. Учитывая это, запишем следующие операторы:
ошр= [70, 100]/pi*T0;
[а, b, с, d]=butter(2,omp,1 stop1) fb=ss(a,b,c,d,TO)
Параметр omp является вектором, в котором указывается нормированная полоса задерживания. Во второй строке происходит обращение к функции butter, где указаны порядок
90
фильтра, границы полосы пропускания и вид фильтрации: значение 'stop1 задает заграждающий фильтр (ЗФ); значения 'high', 'low1, 'bandpass' задают фильтр верхних частот (ВЧ), нижних частот (НЧ) и полосовой фильтр (ПФ), соответственно. Чтобы получить аналоговый фильтр, следует указать четвертый параметр 's'. 1 Заметим, что порядок полученных ПФ и ЗФ равен удвоенному значению первого параметра. В рассматриваемом примере рассчитываются матрицы разностных уравнений состояния заграждающего фильтра четвертого порядка с полосой задерживания от 70 до 100 рад/с. Результат присваивается массивам a, b, с, d. Следующим оператором создается ЛС-объект с именем fb. Лля этого используется функция ss тулбокса CONTROL SYSTEMS (см. Приложение и [61]). Выполнив оператор zpk(fb), получим выражение для передаточной функции W(z) фильтра в виде произведения сомножителей:
WM = _________0.9(?-1.83г+ !)________
' '	(г" - 1.78г + 0.91)(г1 - 1.68г + 0.89) ’
Для расчета частотных и переходных характеристик фильтра используем рассмотренные выше функции bode step. Результаты приведены в следующем пункте на рис. 3.14 а.
3.4.3.	Континуализация моделей
Рассмотрим теперь задачу континуализации дискретных моделей. В качестве примера построим сначала непрерывный фильтр, используя полученный выше цифровой фильтр Баттерворта в качестве дискретного фильтра-прототипа.2 Для получения непрерывной модели фильтра используем функцию преобразования d2c тулбокса CONTROL SYSTEMS:
cfb=d2c(fb)
1 Третий параметр может принимать и значения ’s’ или ’z’ (установлено по умолчанию). Этот параметр показывает тогда, какой фильтр -аналоговый или цифровой - должен быть получен. При этом, если второй параметр - скаляр, то рассчитывается НЧ-фильтр, а если вектор из Двух элементов - то ПФ.
2 Заметим, что пример носит иллюстративный характер и данный подход не характерен для проектирования частотно-избирательных фильтров.
91
Получим ЛС-объект cfb, который соответствует модели дискретной системы fb. При переходе к этой модели учтено требование совпадения переходных характеристик. Выполнив затем оператор zpk(cfb), получим передаточную функцию W(s) непрерывной системы в виде
w( ч = 0.9(s2 + 8.36s + 6522)(s2 - 10.1s + 8.4 • 103) (s2 + 18.7s + 5433)(s2 + 23.7s + 9054)	'
На рис. 3.14, а показаны амплитудные характеристики цифрового фильтра (кривая /) и его непрерывной модели (кривая 2). Ниже (рис. 3.14, в) приведены графики переходных характеристик.
Как известно, дискретные ЛС обладают рядом свойств, которые не могут быть адекватно отражены непрерывными моделями. Например, переходный процесс у стационарных непрерывных Л С всегда носит асимптотический характер, а у дискретных систем может иметь конечную длительность. Кроме того, дискретные системы первого порядка в отличие от непрерывных могут иметь колебательную переходную характеристику. Рассмотрим на примерах, какая модель получается в этих случаях.
Пример 3.4.1. Создадим дискретную систему оператором s=tf(l,[l 0 0] ,Т0). Это система с передаточной функцией W(z) = 1/z2 и интервалом дискретности Tq = 0.005 с. Ее переходная характеристика является ступенчатым процессом и приходит в установившееся состояние за два шага работы (т.е. при t = 0.01 с). Оператор c=d2c(s) приводит к сообщению об ошибке (“D2C with ZOH: cannot handle systems with poles at z=(F: “Функция d2c с экстраполятором нулевого порядка не может использоваться для систем, имеющих нулевые полюсы”). Можно использовать другой метод перехода, например метод Тастина [6, 24, 19, 74], и написать c=d2c(s, 'tustin'). Получим ответ: WH(s) =	; . Пе-
s + 4s + 4 реходные характеристики исходной дискретной системы и ее непрерывной модели, полученной методом Тастина, показаны на рис. 3.14, б. Видно, что они значительно отличаются между собой.
Пример 3.4.2. Возьмем теперь дискретную систему, заданную передаточной функцией W(z) = —5. Несложно
92
убедиться, что такая система имеет колебательную переходную характеристику. Получим непрерывную модель этой системы. Выполним операторы:
sl=tf(1.5,[l 0.5],Т0)
csl=d2c(sl)
В результате появляется сообщение “System order was increased to handle real negative poles”: “Порядок системы был увеличен, чтобы обработать отрицательные вещественные полюсы”. Непрерывная система csl имеет второй порядок и опи-. . ги, , х 138($ + 2986) сывается передаточной функцией WH(s) = -5——£—-	'	.
s + 277$ + 4.14 • 10
Переходные характеристики исходной дискретной системы и ее непрерывной модели в моменты = kTQik = 0,1,2,... совпадают (рис. 3.14, г).
Замечание. Стоит обратить внимание на то, что в некоторых версиях тулбокса CONTROL SYSTEMS функция d2c для систем, заданных в НПК-^opjue (в виде совокупности нулей, полюсов и коэффициента передачи), работает неверно. Например, выполнив оператор s2=zpk(sl), получим ту же дискретную систему, что и исходная, W(z) = 7+0.5 ’ однако для нее оператор cs2=d2c(s2) дает ошибочный ответ lVH(s) = -. В версии 4.2 тулбокса эта ошибка устранена.
93
3.5.	Детерминированные и стохастические модели
Модели систем, о которых мы говорили до сих пор, были детерминированными (определенными), т.е. задание входного воздействия определяло выход системы однозначно. Однако на практике так бывает редко: описанию реальных систем обычно присуща неопределенность. Например, для статической модели неопределенность можно учесть, записывая вместо (3.1) соотношение
3/(*) = F(u(<)) + 9?(t)>	(3.44)
где ¥?(f) - погрешность, приведенная к выходу системы. Причины неопределенности разнообразны:
-	погрешности и помехи измерений входов и выходов системы (естественные погрешности);
-	неточность самой модели системы, учитываемая путем искусственного введения в модель погрешности;
-	неполнота информации о параметрах системы и т.д.
Среди различных способов уточнения и формализации неопределенности наибольшее распространение получил стохастический (вероятностный) подход, при котором неопределенные величины считаются случайными. Развитый понятийный и вычислительный аппараты теории вероятностей и математической статистики позволяют дать конкретные рекомендации по выбору структуры системы и оценке ее параметров. Классификация стохастических моделей систем и методов их исследования представлена в табл. 3.3.
Выводы и рекомендации основаны на эффекте усреднения: случайные отклонения результатов измерения некоторой величины от ее ожидаемого значения при суммировании взаимно уничтожаются и среднее арифметическое большого числа измерений оказывается близким к ожидаемому значению. Математические формулировки этого эффекта даются законом больших чисел и центральной предельной теоремой. Закон больших чисел гласит, что если	~ случайные
величины с математическим ожиданием (среднее значение)
= а и дисперсией М(£ — а)2 = а2, то
у (G + ••• + £лг) - а « 0	(3.45)
при достаточно больших ЛГ. Это говорит о принципиальной возможности сколь угодно точной оценки по измерениям.
94
Т а 6 л и ц а 3.3. Стохастические модели систем
	Статические		Динамические			
	Дискретные по U.Y	Непрерывные по U.Y	Дискретные по Т		Непрерывные по Т	
			Дискретные по U,Y	Непрерывные по U.Y	Дискретные по U,Y	Непрерывные по UtY
Математический аппарат описания	Схема независимых испытаний [101, 102)	Регрессионные модели [101, 102]	Марковские цепи; стохастические автоматы [88]	Стохастические разностные уравнения [75]	Системы массового обслуживания; полумар-ковские процессы [15, 94]	Стохастические дифференциальные уравнения (531
Методы оценки параметров и анализа	Статистические оценки вероятности; дисперсионный анализ [46, 110]	Регрессионный анализ [1, 86, 78, ПО, 119]	Оценка переходных вероятностей; статистическое моделирование [15, 27]	Статистическое оценивание состояний и параметров; анализ стох астической устойчивости [75, 86]	Теория массового обслуживания; имитационное моделирование (1031	Теория устойчивости [75]
Методы синтеза	Стохастическое программирование [80]	Планирование эксперимента; стохастическое программирование [78, ПО]	Динамическое программирование [88]	Динамическое программирование [75, 95]	Перебор; методы оптимального управления [103]	Оптимальное и адаптивное управление [75, 95]
Области применения	Задачи выбора из конечного числа вариантов (испытания, управление)	Обработка результатов измерений и испытаний	Компьютеры	Импульсные и цифровые САУ	Системы обслуживания (вычисл. системы, производственные системы и т.д.)	САУ; механические, электронные, тепловые и другие процессы
Центральная предельная теорема, уточняя (3.45), утверждает, что
у (G + ••• + £n) - а «	(3.46)
где стандартная = О, = 1) нормально распределенная случайная величина. (Если величина а2 неизвестна, то следует заменить в (3.46) а на оценку s =	)2>
где £ =	При этом величина £ будет распределена
уже не нормально, а по закону Стьюдента с числом степней свбоды N — 1, который, к счастью, при N > 20 практически неотличим от нормального).
Функция распределения нормальной случайной величины £ хорошо известна и детально затабулирована. Имеются в книгах по статистике и таблицы функций распределения других часто встречающихся случайных величин, например стьюдентовой. Однако нет необходимости добывать статистические таблицы, если под рукой есть компьютер с установленной системой MATLAB. В составе тулбокса STATISTICS есть модули, вычисляющие функции распределения и другие характеристики более двадцати распространенных типов случайных величин. Узнать перечень всех функций тулбокса можно с помощью команды help toolbox\stats или встроенной системы помощи через меню Help, окно Help Window. Проиллюстрируем применение MATLAB на простой статистической задаче.
Пусть требуется найти, при каком числе измерений N погрешность оценки математического ожидания независимых и одинаково распределенных величин £],£2) • • окажется меньше чем 0.02, с вероятностью не меньше чем 0.99. Пусть среднеквадратическая погрешность каждого измерения известна: а = 0.5, а в качестве оценки берется среднее арифметическое величин £1,^2, • • •
Допустим, что N > 30, так что можно пользоваться центральной предельной теоремой. Из (3.46) следует, что искомое N должно удовлетворять соотношению Р < —?=|£| < 0.02 > >
IV N )
>0.99, или эквивалентному соотношению F	>
> 0.99, где £ - нормальная случайная величина со средним
96
О и дисперсией 1. Вероятность, стоящую в левой части последнего соотношения, легко определить с помощью функции norminv, вычисляющей по величине р значение х, удовлетворяющее равенству Р {£ < х} = р. В силу симметрии нормального распределения Р{|£| < х} = 2р — 1. Поэтому значение р, удовлетворяющее заданному условию 2р — 1 = 0.99, равно 0.995. Выполнение оператора norminv(0.995) дает результат ans = 2.578, откуда y/N >	или	0.02^)
« 4154. Поскольку 4154 > 30, применение центральной предельной теоремы законно (в противном случае вместо функции norminv следовало бы воспользоваться функцией tinv, обращающей функцию распределения Стьюдента). В заключение приведем полезное равенство Р {|£| < 1.96} = 0.05, позволяющее в прикидочных расчетах обходиться и без таблиц, и без компьютера. Интересно, что для решения задачи нам не понадобилась точная формулировка центральной предельной теоремы. Разумеется, формулировкам (3.45), (3.46) можно придать более строгий вид и это легко достижимо с помощью понятий вероятностной сходимости. Однако при попытке проверить условия этих строгих утверждений могут возникнуть трудности. В частности, в законе больших чисел и центральной предельной теореме требуется независимость отдельных измерений (реализаций) случайной величины и конечность ее дисперсии. Если эти условия нарушаются, то могут нарушаться и выводы. Например, если все измерения совпадают: = ... = то, хотя все остальные условия выполняются, об усреднении не может быть и речи. Другой пример: закон больших чисел несправедлив, если случайные величины	распределены по закону Коши
(с плотностью распределения р(х) = 1/тг(1 + х2)), не обладающему конечным математическим ожиданием и дисперсией. А ведь такой закон встречается в жизни! Например, по Коши распределена интегральная освещенность точек прямолинейного берега равномерно вращающимся прожектором, находящимся в море (на корабле) и включающимся в случайные моменты времени.
Но еще большие трудности вызывает проверка обоснованности самого употребления термина “случайный”. Что такое случайная величина, случайное событие и т.д.? Часто говорят, что событие А случайно, если в результате экспе
4 Б. Р. Андриевский и др.
97
римента оно может наступить (с вероятностью р) или не наступить (с вероятностью 1— р). Все, однако, не так просто. Сама вероятность события может быть связана с результатами экспериментов лишь через частоту наступления события в некотором ряде (серии) экспериментов: vN = NA/N, где NA - число экспериментов, в которых событие наступило; N -общее число экспериментов. Если числа Руу при достаточно большом N приближаются к некоторому постоянному числу
Ра-
i'n^Pa,	(3.47)
то событие А можно назвать случайным, а число р - его вероятностью. При этом частоты, наблюдавшиеся в различных сериях экспериментов, должны быть близки между собой (это свойство называется статистической устойчивостью, или однородностью). Сказанное относится и к понятию случайной величины, поскольку величина £ является случайной, если случайными являются события {а < £ < Ь} для любых чисел а, Ь. Частоты наступления таких событий в длинных сериях экспериментов должны группироваться около некоторых постоянных значений.
Итак, для применимости стохастического подхода должны выполняться следующие требования:
1)	массовость проводимых экспериментов, т.е. достаточно большое их число;
2)	повторяемость условий экспериментов, оправдывающая сравнение результатов различных экспериментов;
3)	статистическая устойчивость.
Стохастический подход заведомо нельзя применять к единичным экспериментам: бессмысленны выражения типа “вероятность того, что завтра будет дождь”, “с вероятностью 0.8 «Зенит» выиграет кубок” и т.п. Но даже если массовость и повторяемость экспериментов имеются, статистической устойчивости может и не быть, а проверить это - непростое дело. Известные оценки допустимого отклонения частоты от вероятности основаны на центральной предельной теореме1 или неравенстве Чебышева и требуют дополнительных гипотез о независимости или слабой зависимости измерений.
1 Легко заметить, что (3.47) есть частный случай (3.45), когда берется £ = 1, если событие А наступило в t-м эксперименте, и = 0 - в
противном случае. При этом = рА, - рл)2 = рд(1 - рА )•
98
Опытная же проверка условия независимости еще сложнее, так как требует дополнительных экспериментов.
Более подробно методология и практические рецепты применения теории вероятностей изложены в поучительной книге В.Н. Тутубалина [101], представление о которой дают приводимые ниже цитаты.
“Чрезвычайно важно искоренить заблуждение, встречающееся иногда у недостаточно знакомых с теорией вероятностей инженеров и естествоиспытателей, что результат любого эксперимента можно рассматривать как случайную величину. В особо тяжелых случаях к этому присоединяется вера в нормальный закон распределения, а если уже сами случайные величины не нормальны, то верят, что их логарифмы нормальны.”
“По современным представлениям область применения теоретико-вероятностных методов ограничена явлениями, которым присуща статистическая устойчивость. Однако проверка статистической устойчивости трудна и всегда неполна; к тому же часто она дает отрицательный вывод. В результате в целых областях знания, например в геологии, нормой стал такой подход, при котором статистическая устойчивость вообще не проверяется, что неизбежно приводит к серьезным ошибкам. К тому же пропаганда кибернетики,1 предпринятая нашими ведущими учеными, дала (в некоторых случаях) несколько неожиданный результат: теперь считается, что только машина (а не человек) способна получать объективные научные результаты.
В таких обстоятельствах долг каждого преподавателя -вновь и вновь пропагандировать ту старую истину, которую еще Петр I пытался (безуспешно) внушить русским купцам, что торговать надо честно, без обмана, так как в конечном счете это для самих же себя выгоднее.”
Как же построить модель системы, если неопределенность в задаче есть, но стохастический подход неприменим? Ниже, в п. 3.7, кратко излагается один из альтернативных подходов, основанный на теории нечетких множеств.
Но сначала рассмотрим практический пример.
сегодня можно добавить "... и информатики” (прим, авторов).
99
3.6»	Пример статистической обработки данных программами тулбокса STATISTICS
Рассмотрим в качестве примера курс акций компании “Соса-ColaR” за 1995 г. График исходного процесса представлен на рис. 3.15, а. 1 Пусть данные о курсе акций содержатся в массиве у, находящемся в файле cocdat.mat. Выполним следующие операторы:
load cocdat
plot(tdat,у)
xlabel(’Дата’)
ylabel(’Цена, дол.’)
title(’Kypc акций компании Coca-Cola*R’)
timeser(datenum(’Ol-Jan-1995’));
dateaxis(’x’,2)
Процедура timeser входит в тулбокс FINANCIAL. Она преобразует разметку оси X графика в соответствующие календарные даты. При обращении к ней указывается начальная дата, которая с помощью процедуры datenum предварительно преобразуется из строкового формата в числовой. Функция dateaxis выполняет обратное преобразование, в результате которого разметка оси X приобретает требуемый символьный вид (формат записи дат задается вторым параметром процедуры). Выполним обработку процесса. Сначала вычислим и покажем на этом же графике изменение скользящего среднего рассматриваемого процесса. Чтобы иметь более полное представление о процессе, получим упреждающее и запаздывающее скользящие средние. С этой целью используем функцию movavg тулбокса FINANCIAL. Ее параметром является число дней, за которое производится усреднение. Вызов этой функции имеет в общем случае вид
[short,long] = movavg(asset,lead,lag,alpha)
Здесь short и long - соответственно упреждающее и запаздывающее скользящие средние; asset - подлежащие обработке исходные данные; lead и lag - количества точек, по которым вычисляются упреждающее и запаздывающее скользящие средние; alpha - управляющий параметр, который
1 Для простоты отображения исходные данные в 245 точках интерполированы на 365 точек, т.е. каждая точка соответствует суткам.
100
Дата б
Рис. 3.15. Диаграмма курса акций компании “Coca-Cola".
101
определяет способ усреднения. Аргументы lead и lag должны быть натуральными числами, не превосходящими 453, и lead< lag.
Весовые коэффициенты усреднения (i = 1,2,... , L) определяются по формуле
/ L \ ”1 wi = ia £2 к°) > \fc=l /
где L = lag для запаздывающего и L =lead - для упреждающего среднего. Таким образом, при alpha = 0 задается обычное скользящее среднее (принято по умолчанию), при alpha = 0.5 выполняется взвешивание с квадратным корнем при усреднении , при alpha = 1 задается линейное скользящее среднее, при alpha = 2 - взвешенное в квадрате и т.д. Для экспоненциального взвешивания следует задать alpha= =1 е1.
В рассматриваемом примере используем следующие операторы:
lead=15; lag=25; alpha=0;
movavg(у,lead,lag,alpha)
dateaxis(’x’,6)
Результат вычислений показан на том же рисунке. Выделим из этого процесса линейную систематическую составляющую (тренд). Для этого используем процедуру detrend MATLAB. Выполним оператор
z=detrend(y);
В результате получен процесс z[fc] с нулевым средним. Далее будем рассматривать составляющую z[fc] как исследуемый процесс. Построим для него окаймляющий (ленточный) график Боллингера (Bollinger band). Он отражает фактическое значение данных, рассчитанное по нему среднее значение и границы, которые соответствуют верхнему и нижнему средним отклонениям. Параметрами диаграммы являются число дней, по которому рассчитывается скользящее среднее, и параметр взвешивания alpha (см. выше movavg ). В общем виде для расчета диаграмм используется следующее обращение:
[mav, uband, Iband] = bolling(asset, samples, alpha)
102
Входными параметрами служат: подлежащие обработке исходные данные в массиве asset; количество точек, по которым вычисляется скользящее среднее samples; управляющий параметр alpha. В результате вычислений возвращаются массив значений скользящего среднего mav и массивы значений точек верхней и нижней границ uband и Iband. Выполним операторы
sample=10; alpha=O.5;
bolling(z.sample,alpha)
dateaxis('x1,6)
Результат показан на рис. 3.15, 6.
Теперь исследуем процесс z, рассматривая его как набор некоторых случайных значений. Прежде всего найдем его среднеарифметическое значение и дисперсию. Для этого выполним операторы m=mean(z) , d=var(z). Получим
m=1.62e-015, d= 2.55.
Столь малое значение оценки математического ожидания m связано с тем, что последовательность z практически является центрированной, так как она получена после выделения тренда. Далее будем считать, что значения z являются выборкой случайных величин, подчиненных нормальному закону распределения. Оценим его параметры. Используем функцию normfit тулбокса STATISTICS. Эта функция вырабатывает несмещенные оценки, обладающие наименьшей дисперсией параметров нормального распределения, и 100(1 —о)-процентные доверительные интервалы для оценок параметров (а = 0.05 по умолчанию). Выполним оператор
[mu,sig,muc,s igm]=normf it(z)
В результате получим оценки математического ожидания т=1.61е-015, среднеквадратического отклонения s=1.597 и доверительных интервалов для математического ожидания mi= [-5.64е-02; 5.64е-02] и CKO - si=[1.556;	1.640].
Выведем теперь гистограмму распределения значений z на одном графике с функцией плотности нормального распределения. Выполним оператор
histfit(z,20)
Функция histfit тулбокса STATISTICS служит для вывода столбцовой гистограммы исходных данных с заданным числом интервалов. Одновременно выводится кривая плотности нормального закона распределения, параметры которого
103
найдены по массиву данных. Результат выполнения программы приведен на рис. 3.16, а.
Рис. 3.16. Распределение отклонений курса акций от тренда.
Наконец, введем график вероятности нормального распределения (“normal probability plot”). Назначение этого графика - показать, насколько можно считать, что данные подчиняются нормальному закону распределения. Для нормально распределенных данных точки на графике близки к прямой линии. Вывод этого графика осуществляется функцией normplot. Результат выполнения оператора normplot (z) показан на рис. 3.16, 6.
3.7.	Нечеткие модели
3.7.1.	Нечеткие множества и лингвистические переменные
В 1965 г. американский математик Л. Заде опубликовал статью под названием “Fuzzy sets”, что можно перевести как “Нечеткие множества”. 1 В статье было дано новое определение понятия множества, предназначенное для описания и исследования сложных, “плохо определенных” систем. К ним, в частности, относятся гуманистические системы, на поведение которых существенное влияние оказывают знания, суждения и эмоции человека. В таких системах наряду со строги
1 Слово “fuzzy” переводилось на русский язык как “размытые”, “расплывчатые”, “неопределенные”, однако в последние годы чаще всего употребляется термин “нечеткие”.
104
ми, объективными, количественными данными и результатами присутствуют неоднозначные, субъективные, качественные данные и результаты, что требует новых подходов.
Поскольку понятие множества лежит в основе всех математических конструкций, статья Л. Заде породила новое научное направление, бурный поток публикаций, специальные конференции и т.д. Произошло “раздвоение” математики: появились нечеткие функции, нечеткие уравнения, нечеткая логика и т.д. [39, 70, 73]. Новый математический аппарат описывает свойства нечетких систем, соответствующих трудно формализуемым, плохо структурированным задачам. В последние годы эти методы стали широко применяться в экспертных программных системах. Ниже излагаются основные понятия теории нечетких систем.
Прежде чем говорить о нечетких системах, необходимо ввести понятие нечеткого множества.
Нечетким подмножеством А множества X назовем пару (X,/хл), где : X —► [0,1] - функция, каждое значение которой /1д(х) € [0, 1] интерпретируется как степень принадлежности точки х Е X множеству А. Функция рА называется функцией принадлежности множества А.
Для обычного “четкого” множества В можно положить
/ ч J 1, х € В
цв(х) = < л л г> » т.е. классическое понятие множества v { 0, х $ В
является частным случаем введенного понятия (рис. 3.17, а). 1 Задавать функцию принадлежности можно таблично или аналитически.
Пример 3.7.1. Пусть X = {1,2,...} - множество натуральных чисел, а функция рА(х) задана таблицей
X	1	2	3	4	5	6	7	8	9	10	
Мл(*)	0	0.1	0.6	0.8	1	1	0.9	0.7	0.2	0	...
Определенное таким образом нечеткое множество можно принять в качестве формализации понятия “несколько”, изначально ясного лишь на интуитивном уровне.
• 1 Графики функций принадлежности, изображенные на рис. 3.17, получены с помощью процедур pimf и trapmf, имеющихся в составе тулбокса FUZZY LOGIC. Некоторые сведения об этом тулбоксе приведены в Приложении, п. D.8, стр. 258.
105
Аналогично можно ввести нечеткие множества, соответствующие понятиям: “много”, “мало”, “около 100”, “почти 20” и т.д. Легко разрешается знаменитый парадокс древних греков: “Сколько зерен составляют кучу?”. Ответ состоит в том, что “куча” - нечеткое множество зерен, функцию принадлежности которого можно получить, например, путем опроса.
Пример 3.7.2. Пусть X = [0, оо] - множество положительных чисел, а функция Дд(х) задана формулой
{0	при 0 < х < 50,
(1 + стГ	(3'48)
график которой изображен на рис.3.17, 6. Если переменную х интерпретировать как возраст, то нечеткое множество А соответствует понятию “старый”. Аналогично можно формализовать понятия “молодой”, “средних лет” и т.д.
Переменные, значениями которых являются нечеткие множества, называются лингвистическими. Это основной тип переменных в естественном языке людей.
106
Пример 3.7.3. Переменная “расстояние” принимает обычно числовые значения. Однако в предложениях естественного языка она может фигурировать как лингвистическая со значениями “малое”, “большое”, “очень малое”, “среднее”, “около 5 км” и т.д. Каждое значение описывается нечетким множеством, которое в рамках данной предметной области может иметь конкретную числовую интерпретацию. Например, если речь идет о поездках на такси, то в качестве универсального множества X можно взять отрезок [0, 100] км и задать функции принадлежности значений переменной “расстояние”, как показано на рис.3.17, в.
При первом знакомстве с нечеткими множествами обычно возникает недовольство произволом и субъективизмом в задании функций принадлежности: “почему так, а не иначе?”. Однако в этом не слабость, а сила подхода! Ведь если само понятие субъективно, то такова и его формализация, выполняемая человеком. А получаемые результаты должны носить качественный характер и достаточно слабо зависеть от конкретного задания функций принадлежности. С другой стороны, если есть необходимость в более объективных выводах, можно получить оценки рд(х) путем опроса экспертов.
Для нечетких множеств вводятся операции пересечения, объединения, дополнения, концентрации, размывания (табл. 3.4). Первые три являются обобщениями обычных операций; оставшиеся - специфичны для нечетких множеств. Операции позволяют конструировать сложные понятия из простых: “очень много”, “не старый и не молодой” и т.п.
По аналогии с четким случаем определяется отношение включения множеств: А С В, если и только если /хл(х) < для всех х € X.
3.7.2.	Нечеткие системы
Аналогично классическому случаю понятие нечеткой системы вводится через понятие нечеткого отношения (частными случаями которого являются понятия “нечеткое отображение”, “нечеткая функция”).
Определение. Нечеткое отношение R на множествах X, Y задается функцией : X х Y —► [0,1], каждое значение которой /1н(т, 1/) интерпретируется как степень нахождения
107
Таблица 3.4. Операции с нечеткими множествами
Операция	Лингвистический смысл	Формула для дс(^)	График дс(*)	
Пересечение С = АГ)В	и	min{px(T.), дв(т)}	1	Я /ХА X
Объединение С = АиВ	или	тт{д4(х), дв(т)}	1	/ л \ X
Дополнение С = А	НЕ	1 “ Дл(г)	1	Я Ьсг X
Концентрация	ОЧЕНЬ	(Да(х)Р	1	X
Размывание	НЕ ОЧЕНЬ	х/дл(г)	1	Lo. X
108
(совместимости, принадлежности) пары (х, у) в данном отношении.
Таким образом, нечеткое отношение - это нечеткое подмножество множества X х Y всех пар (х, у), где х Е X, у € Y. Поэтому стандартным способом вводятся пересечение, объединение, дополнение и другие действия над отношениями. Включение отношений R С S (/1н(х,у) < д$(х, у)) интерпретируется как “из R следует S”.
Важную роль в теории нечетких систем играет отношение композиции R о S. Если даны отношение R на множествах X, Y и отношение S на множествах У, Z, то функция принадлежности отношения S о R на множествах X, Z задается формулой
Ps<>r(x, z) = max{min{мя(*, у), М$(У> *)}}•	(3-49)
yEY
Можно проверить, что (3.49) выполняется для обычных четких отношений.
В полной аналогии с обычными системами (см. п. 1.2) нечеткая система - это нечеткое отношение между множествами U, Y, где U - множество'входных функций времени U(f) : Т —* t/, a Y - множество выходных функций времени j/(-) : Т —► У. Операция композиции отношений соответствует последовательному соединению систем. Подчеркнем, что для нечетких систем понятие однозначности, детерминированности, теряет смысл: нечеткое отображение и нечеткое отношение неразличимы.
Если множества значений входов и выходов системы конечны, то, как указывалось в п. 3.1, ММ системы можно задать таблицами либо набором правил (продукций), например: “ЕСЛИ (и = и{) И (х = Xj) ТО (у = Ук)”, или в более компактном виде:
(и = и,, х = х^) -► у = yk.	(3.50)
Форма (3.50) удобна для представления в компьютере и придает описанию системы вид набора причинно-следственных связей.1 Аналогично обстоит дело и для нечетких систем,
1 При этом фактическая причинно-следственная связь может отсутствовать (пример: ЕСЛИ “тебе за сорок” И “с утра у тебя ничего не болит”, ТО “ты умер”).
109
входные и выходные переменные которых могут принимать нечеткие значения, т.е. являются лингвистическими. Примеры нечетких правил:
(и = “малое”) —* (у = “большое”), (u(f) = “около 0.5”, x(t — 1) = “большое”) —► —► (т(/) = “очень большое”).
Пример 3.7.4. Рассмотрим систему простейшего прогноза погоды в городе, основанную на том наблюдении, что погода чаще сохраняется, чем меняется: погода завтра будет скорей всего такая же, как сегодня. Для простоты пусть множество входов системы (возможных значений переменной “погода сегодня”) состоит из трех элементов: “ясно” (Я), “пасмурно” (П), “дождь” (Д), т.е. U = {Я,П,Д}. Таким же пусть будет и множество выходов (прогнозы на завтра): Y = {Я,П,Д}. Если описать ММ простейшего прогноза как четкую, то ее можно представить таблицей:
и	У		
	я	п	д
я п д	1 0 0	0 1 0	0 0 1
или, более экономно, набором правил:
(« = Я) —* (у = Я); (« = П) —► (у = П); (« = Д) - (у = Д).
Однако прогноз погоды - дело ненадежное и субъективное, поэтому более адекватной является нечеткая ММ, в которой отношение между входами и выходами системы Ro задается таблицей значений функции принадлежности, имеющей, например, вид табл. 3.5.
Можно использовать и нечеткие правила (продукции), например:
(и = Я) —► (у = Я|0.8 или П|0.4 или Д|0.3).
Пусть теперь входная переменная ш0 (“погода сегодня”) приняла некоторое значение. Оно, естественно, должно быть нечетким (ведь нет четкой границы между значениями “ясно”
110
Т а б л и ц а 3.5.
и	Y		
	Я	П	д
я	0.8	0.4	0.3
п	0.4	0.8	0.4
д	0.3	0.4	0.8
и “пасмурно”, да и дождь может идти не по всему городу) и определяться, например, по сообщениям экспертов. Пусть в результате усреднения мнений группы экспертов и>0 задается как
X	Я	П	д
P'UfQ (г)	0.4	0.5	0.1
Как узнать прогноз на завтра? Вспомним, что множество - частный случай отношения и представим его как отношение Ко с фиктивным одноэлементным множеством входов и нечетким множеством выходов. Теперь легко понять, что значение переменной “погода завтра” (с^) определится с помощью соответствующего отношения Wi по формуле композиции отношений (3.49).1
Таким образом, IVi = Яо 0 Ко и, значит, например,
дШ1(Я) = max{min{0.1, 0.3}, min{0.5, 0.4}, min{0.4, 0.8}} =
= max{0.1, 0.4, 0.4} =0.4.
Итоговая таблица прогноза на завтра имеет вид
У	я	П	Д
Д*, (у)	0.4	0.5	0.4
1 Чтобы убедиться в этом, нужно рассмотреть все возможные случаи типа “завтра ясно” ЕСЛИ { “сегодня ясно” И (“сегодня ясно” ВЛЕЧЕТ “завтра ясно”) } ИЛИ {“сегодня пасмурно” И (“сегодня пасмурно” ВЛЕЧЕТ “завтра ясно”) } ИЛИ {“сегодня дождь” И (“сегодня дождь” ВЛЕЧЕТ “завтра ясно”) }. При этом надо учесть, что связки И, ИЛИ формализуются по табл. 3.4, а отношение ВЛЕЧЕТ задано в табл. 3.5.
111
Полученный результат можно снова подать на вход системы прогноза и получить новый результат “прогноз на послезавтра”:
W2 = RoWr = (RoR)oW0.
Правило вывода, соответствующее композиции нечетких отношений, называется композиционным правилом вывода и составляет основу нечеткой логики. В нечеткой логике значения истинности предложений лежат от нуля до единицы; закон исключенного третьего не выполняется.
Приведенный пример обнаруживает глубокую аналогию между понятиями “система” и “логическое исчисление” (аксиоматической или дедуктивной системы [114]). Действительно, значение входа системы соответствует в исчислении аксиомам и фактам (утверждениям), а отношение “вход - выход” (ММ системы) - набору правил (продукций, импликаций) исчисления. Вычисление значения выхода системы В по значению ее входа А соответствует шагу логического вывода по правилу
(4, А—>В)=>В.	(3.51)
Единственное отличие системы от исчисления: на каждом шаге работы системы используется только текущее состояние, а исчисление обрабатывает все утверждения, выведенные ранее. Различие устраняется, если включить в состояние системы всю ее предысторию. Это показывает, что рассмотренные выше модели систем с конечной памятью пригодны для описания более узкого класса систем, чем логические исчисления. Однако это означает, что анализ моделей, заданных, как исчисления требует больше вычислений, т.е. недостаток обращается в достоинство.
3.7.3.	Задачи группировки и упорядочения
Нечеткие отношения, как и обычные, могут обладать специальными свойствами. Для отношения R : X х X —► [0,1] рассмотрим свойства:
-	рефлексивность R(x, х) = 1 для всех х € Х\
-	симметричность R(x, у) = R(y, т) для всех т, у € X;
-	антисимметричность min{R(x, у), R(y, х)} = 0 при х / у;
-	транзитивность R(x, z) > min{R(x, у), R(t/, z)} для всех х, ?/, z 6 X.
112
Отношение называется отношением сходства, если оно рефлексивно и симметрично. Рефлексивность и антисимметричность характеризуют отношение доминирования. Если к перечисленным свойствам добавляется свойство транзитивности, то отношение соответственно называют эквивалентностью и порядком. На основе введенных определений строятся процедуры решения двух практически важных задач.
Задача группировки {кластеризации, таксономии}. На конечном множестве объектов {xb ...хп} задано отношение сходства (для любых двух объектов задана степень их близости, похожести). Требуется разбить все множество на группы объектов, близких между собой. Эта задача встречается при классификации минералов, материалов по их свойствам, систематике биологических организмов (видов), определении психологической совместимости коллективов. Процедура группировки состоит в том, что сначала исходное отношение сходства R преобразуется в отношение эквивалентности R путем транзитивного замыкания, 1 а затем производится разбиение на классы эквивалентности при различных величинах порога близости а. К одному классу относятся объекты т, г/, для которых Я(г, у} > а.
Задача упорядочения. На конечном множестве объектов	задано отношение доминирования, т.е. указа-
ны степени предпочтения для каждой пары объектов. Требуется линейно упорядочить объекты: указать наилучший, затем следующий за ним и т.д. Задача возникает, например, при выборе наиболее предпочтительного проектного варианта. Попарные предпочтения вариантов задаются независимыми экспертами или критериями сравнения. Ясно, что получается нечеткое отношение доминирования, поскольку для каждой пары объектов (я,, xj) определяется Я(хп xj) - число экспертов 2 (критериев), которые предпочитают я,, и число
1 Транзитивное замыкание - операция, которая строит по данному отношению R наименьшее транзитивное отношение, включающее R. Она выполняется по формуле
R(x,y)= max xmin{fl(®, !/1),	!/2).-- >-R(s/n, J/)}-
2 Строго говоря, числа J?(x,,Xj) не удовлетворяют определению нечеткого отношения, так как могут не лежать в промежутке [0,1]. Можно их пронормировать, разделив, например, на максимальное, однако на результате, как видно из (3.52), это не отразится.
ИЗ
R(xj, экспертов (критериев), предпочитающих Xj. Аналогичные задачи возникают при оценке результатов работы и распределении премий в трудовом коллективе и т.п. Один из существующих способов решения задачи состоит [73] в построении так называемой функции полезности характеризующей степень предпочтения данного объекта, т.е. сводящей оценки разных экспертов в одну. Можно использовать следующую формулу:

(3.52)
Например, для отношения R(xi,Xj), заданного таблицей или графом (рис.3.18), получаем:
^(ij) = min
ГЗ -I
(Г 5J
4
5’
г ' Л
<р(х2) = min < -, I о
21
8 J
1
4’
у>(хз) = min
5
4’
что приводит к упорядочению: 1) Хз, 2)	3) х2. Отметим,
X. 1	XJ		
	Xt	х2	х3
Х2	—	3	4
х2	1	—	2
х}	5	8	—
Рис. 3.18.
что если число объектов достаточно велико или бесконечно, следует применять более сложные методы, разработанные для распознавания образов и искусственного интеллекта [111].
114
3.7.4.	Нечеткие числа
Рассмотрим свойства и применения нечетких подмножеств числовой оси ft1 = (-оо,+оо) - так называемых нечетких чисел. Над нечеткими числами можно производить арифметические и иные действия, правила выполнения которых вытекают из правил действий с отношениями (см. п. 3.7.2) и из того, что любую бинарную операцию можно рассматривать как тернарное (3-местное) отношение. Например, функция принадлежности нечеткой суммы С = А ф В нечетких чисел Л, В имеет вид
/zc(z)=sup min	(3.53)
x + j/ = Z
Прикладной смысл нечеткого числа - это число, заданное с погрешностью. Для того чтобы работать с такими числами, нужно задавать функции принадлежности и погрешностей, а это невозможно сделать во всех в силу бесконечности множества ft1. Один из способов преодоления этой трудности - использование нечетких L—Я-чисел (L—R - сокращение от “left - right”).
Чтобы определить нечеткие L — Я-числа, на промежутке [0,оо) задаются две невозрастающие неотрицательные функции Л(х),Я(х), обладающие свойствами L(0) = Я(0) = 1. После этого функцию принадлежности нечеткого числа А определяют в виде
/хл(х) = <
L (а а-х) при х < а, Я J при х > /3,
(3.54)
где а - вещественное число, называемое средним значением (употребляют также термины	“мода”) нечеткого
числа; а > 0, (3 > 0 - левый и правый коэффициенты нечеткости. Если L(x) = Я(х), а = /3 , то нечеткое число называют симметричным.
Примеры задания L — Я-чисел при L(x) = Я(х) приведены в табл. 3.6, из которой видно, что L — Я-нечеткость можно интерпретировать как способ взвешенного учета погрешностей. Пример 1 соответствует обычному четкому числу без погрешности. Выбрав способ из примера 2, мы выражаем уверенность в том, что искаженное погрешностью число
115
116
должно лежать в промежутке от а— до а+ и не может оказаться где-то в другом месте. Это обычный способ учета погрешности путем указания ее границ. Примеры 3 - 6, 7 соответствуют различным промежуточным случаям.
Поскольку функции Z(x), R(x) задаются заранее и не меняются, для выполнения действий с L —Я-числами достаточно помнить лишь тройку А = {а,а,/?}. Правила арифметики L — Я-чисел вытекают из общих правил арифметики нечетких чисел (см. например, (3.53)) и напоминают правила распространения ошибок в приближенных вычислениях. Если А = {а,а,/3}, В + {6,7,6}, то
А ф В = {а + 6, а + 7,/3 + 6},
A Q В = {а - 6,а + 6,/3 + 7},
АОВ = {аб,ау + Ьа + »7,аб + Ь(3 + /36}, (при а,Ь > 0).
Если В - четкое число (7 = 8 = 0), то 4DB = {аб,а|6|,/3|6|}.
Другой способ работы с нечеткими числами состоит в том, что числовая ось (отрезок) дискретизируется, т.е. разбивается на несколько участков. После этого каждый участок “размывается”, т.е. описывается некоторой функцией принадлежности, и числовые переменные превращаются в лингвистические. Этот способ эффективен при построении моделей сложных систем со значительной неопределенностью исходных данных, а следовательно, и результатов. Число градаций (участков дискретизации) должно быть невелико. Психологи рекомендуют брать его в пределах 5 ± 2 градаций.
3.7.5.	Вероятность или нечеткость?
Продемонстрируем на простом примере разницу между стохастическим и нечетким подходами. Пусть сделано несколько измерений хп некоторой неизвестной величины а с погрешностью, не превосходящей величины а. Требуется оценить значение а и определить погрешность оценки.
Предположим, что в качестве оценки выбрано среднее арифметическое х =	При стохастическом подходе мы
постулируем, что х, случайны и независимы, Mxi = а, и, поскольку погрешность может быть произвольным числом из [-о, о], считаем, что Xi равномерно распределены на [а-сца+а].
117
Отсюда Dxi = (2а)2/12 = а2/3. В силу независимости Dx = (l/n)Dxi = а2/3п и по формуле (3.46) из центральной предельной теоремы получим, что
|х - а| < 2а/\/Зп	(3.55)
с вероятностью 0.95. Аналогичный вывод справедлив и при неизвестном а. В этом случае нужно заменить в (3.55) а на
а =
Примем теперь нечеткую модель измерений. Естественно представить измерение как нечеткое L — Я-число Х, = {а,а,а} со следущей характеристикой: L(x) = Я(х) = 1 при 0 < х < 1, L(x) = R(x) = 0 при х > 1, т.е. как в примере 2 табл. 3.6. Тогда 22 X = {па,па,па}, откудаX = {а,а,а}, т.е. погрешность оценки определится неравенством
|х - а| < а.	(3.56)
Сравнивая (3.55) и (3.56), мы видим, что интервал (3.55) меньше примерно в \/п раз. Это получено за счет эффекта усреднения. Если же нет уверенности в том, что погрешности ведут себя нерегулярно и уничтожаются при усреднении, то доверять (3.55) нельзя и мы возвращаемся к оценке (3.56). Однако за нечетким подходом остаются дополнительные возможности. Например, имея информацию о том, что малые значения погрешностей встречаются чаще, чем большие, мы можем взять функции £(х),Я(х), как в примере 3 из табл. 3.6. Соответственно меняется функция принадлежности X и (3.56) уточняется.
Кроме того, если п мало, например п =10, то проверить правомерность усреднения практически невозможно. В результате оценка погрешности при п =10 по (3.55) получается всего в 2.7 раза меньше, чем по (3.56), причем она верна лишь в 95% случаев и при труднопроверяемых предположениях.
Отметим, что выбор х в качестве оценки не единственно возможный. В духе нечеткой теории можно взять “лингвистическую” оценку: х = х1} и х2, и..., и хп. Поскольку д^(х) = mint-/xx.(s), для симметричных L—Я-чисел при строго убывающей Я(х) > 0 получим х = (rnaxx, + minx,)/2.
118
В заключение следует заметить также, что кроме описанных в (3.53) вариантов действий с нечеткими множествами имеется еще несколько, среди которых наиболее употребителен способ, заимствованный из теории вероятностей:
Рллв(^)=^л(з:) 'Рв(х), Paub(x)=ij.a(x) +11В(х)-р.А(х) -Цв^).
(3.57) Операции, определенные в (3.57), называют иногда произведением и суммой нечетких множеств.
3.8.	Хаотические модели
3.8.1.	От колебаний - к хаосу
Сравнительно недавно, в 70-х годах XX века, в науку о математических моделях вошло новое понятие, перевернувшее многие привычные представления, - понятие хаоса (точнее, детерминированного хаоса). Хаотические системы предоставили исследователям новый класс моделей неопределенности, отличающихся по своим свойствам как от стохастических, так и от нечетких моделей. Если в детерминированной модели будущую траекторию можно предсказать на сколь угодно большое время вперед, зная текущее состояние системы, а в стохастической модели точный прогноз, вообще говоря, невозможен даже на сколь угодно малое время, то в хаотической модели ошибка прогноза растет экспоненциально и, следовательно, возможен прогноз на ограниченное время вперед, определяемое допустимой ошибкой прогноза. Процессы в хаотических моделях имеют вид нерегулярных колебаний, в которых меняется, “плавает”, как частота, так и амплитуда.
Колебательные процессы часто встречаются в природе и технике, поэтому формы их описания непрерывно развиваются и совершенствуются. В течение многих лет, до начала XX в. основным видом математических моделей колебаний в механических, электрических и других системах считались линейные дифференциальные уравнения, например
j/(f) + w2y(t) = 0,	0 < t < оо.	(3.58)
119
300
250
200
150
100
50
Рис. 3.19. Гармонические колебания (W = 1).
S(CD) б
1	2	(О
Рис. 3.20. Периодические колебания (ш, = 1,2,4).
Рис. 3.21. Квазипериодические колебания (и, = 1, 5/тг.)
120
Решениями (3.58) являются гармонические колебания
y(t) = Ао sin wt 4- Ах cos wt	(3.59)
с круговой частотой и и периодом Т = 2тг/си, амплитуда которых А= УАо+А^ зависит от начальных условий: Аг =у(0), Ао = 2/(0)/^ (рис. 3.19, а, для и = 1. Очевидно, решение (3.59) непрерывно зависит от начальных условий, т.е. малое изменение величин 3/(0), 1/(0) приводит к равномерно малому изменению решения y(i} на всей временной полуоси 0 < t < оо. Частотный спектр функции (3.59) дискретен и состоит из одной точки ш/2тг (рис. 3.19, б).
Для описания колебаний более сложной формы можно соединять модели вида (3.58) с различными частотами колебаний iui,...,cur. Например, последовательное соединение двух моделей вида (3.58) описывается соотношениями
i/1 (<) +u>!2yi(Z) = 0, 1/2(0 +^21/2(0 = 1/1(0
и имеет частные решения видат/2(£) = Ai sincu^-l- A2sincu2f, где коэффициенты Аь А2 зависят от начальных условий. Если частоты cux,...,cur соизмеримы (являются целыми кратными некоторой частоты cuq), то колебания будут периодическими с периодом 2тг/си0 (рис. 3.20 для г = 3,	= 1, cu2 = 2, cu3 = 4).
Если же частоты си, несоизмеримы, то такие колебания не являются периодическими; они относятся к классу квазипе-риодических (рис. 3.21, где г = 2, cut = 1, си2 = 5/тг). В обоих случаях решение непрерывно зависит от начальных условий, а его спектр является дискретным конечным множеством. 1
Заметим, что “на глаз” различить периодические и ква-зипериодические колебания может быть затруднительно, поскольку реальные измерения (в том числе измерение частоты колебаний) выполняются с конечной точностью и отличить рациональное отношение частот от иррационального оказывается практически невозможным.
1 Спектральные характеристики, показанные на рис. 3.19 - 3.21, вычислены при помощи пакета MATLAB (см. п. 3.2.2). Взяты реализации процессов длиной Т = 100, количество точек N = 210 = 1024, интервал дискретности Tq = Т/N ~ 0.098. Соответственно частота Найквиста
~ /Tq ~ 32.
121
Рис. 3.22. Предельный цикл и его спектр.
Рис. 3.23. Хаотический процесс z(Z) в системе Лоренца и его спектр.
Рис. 3.24. Хаотический аттрактор системы Лоренца.
122
На рубеже XIX-XX веков выяснилось, что линейных моделей колебаний недостаточно для описания новых явлений и процессов в физике и технике. Основы соответствующего математического аппарата - теории нелинейных колебаний - были заложены в работах А.Пуанкаре, Б. Ван дер Поля, А.А. Андронова, Н.М. Крылова и Н.Н. Боголюбова, [6, 7, 14, 28, 54, 68]. Важнейшим в теории нелинейных колебаний является понятие устойчивого предельного цикла - периодической траектории, к которой сходятся все другие траектории (по крайней мере, траектории с близкими начальными условиями). К числу классических примеров нелинейных дифференциальных моделей, обладающих предельным циклом, относятся уравнение Ван дер Поля
У +	- 1)у + и2у = 0,	(3.60)
где е > 0; уравнение Дуффинга
y + py-qy + qoy3 = 0,	(3.61)
где р > 0, q > 0, Qo > 0; система с релейным элементом
y + py + qy~ sign(y) = 0.	(3.62)
Даже простые нелинейные модели позволяют описывать колебания сложной формы, например релаксационные (близкие к прямоугольным) колебания, учитывать изменение формы колебания в зависимости от начальных условий (системы с несколькими предельными циклами) и т.д. Теоремы о разложении периодической функции в ряд Фурье показывают, что спектр предельного цикла состоит из счетного набора частот, кратных некоторой основной частоте. На рис. 3.22, а приведен график решения системы (3.60) при е = 2.5, ш = 1 и начальных условиях j/(0) = 0.5, у = 0. Соответствующий спектр изображен на рис. 3.22, 6.
В течение нескольких десятилетий линейные модели колебаний и нелинейные модели с предельными циклами удовлетворяли потребности инженеров. Считалось, что они описывают все возможные типы колебаний детерминированных систем. Это убеждение поддерживалось и математическими результатами: например, известная теорема Пуанкаре-Бендиксона [6, 7, 14, 54, 28] утверждает, что единственно воз
123
можные виды ограниченных установившихся движений в непрерывных системах второго порядка - это либо состояние равновесия, либо предельный цикл.
Однако в середине XX века сами математики обнаружили, что уже для систем третьего порядка это не так: в системе становятся возможными весьма сложные движения - ограниченные непериодические колебания. Настоящий переворот начался с работы физика Е. Лоренца [141], опубликованной в 1963 г., где было показано, что качественный характер явлений атмосферной турбулентности, описываемых сложными уравнениями в частных производных Навье-Стокса, может быть передан простой нелинейной моделью третьего порядка (уравнение Лоренца):
х = <т(у- х), < у = гх - у - ZZ,	(3.63)
z = —bz + ху.
Решения системы (3.63) при некоторых значениях параметров (например, при а = 10, г = 97, b = 8/3 ) выглядят как нерегулярные колебания (рис. 3.23, а, где изображен график x(t)). Траектории в пространстве состояний (фазовом пространстве) могут приближаться к предельному множеству (аттрактору), имеющему весьма причудливое строение (рис. 3.24, а). Внимание многих физиков и математиков, а затем и инженеров к подобным моделям было привлечено после работы Л. Рюэля и Ф. Такенса [149], опубликованной в 1971 г., которые назвали такие аттракторы “странными”, а также работы Т. Ли и Дж. Йорке [138] (1975), которые ввели термин “хаос” для обозначения подобных нерегулярных явлений в детерминированных системах. Заметим, что основной результат работы [138] является частным случаем теоремы киевского математика А.Н. Шарковского, опубликованной в 1964 г. Серьезные исследования хаотических явлений были выполнены также в 60-70-х годах в России А.Н. Колмогоровым, В.И. Арнольдом, Я.Г. Синаем, Ю.И. Ней-марком, Л.П. Шильниковым и их учениками. В дальнейшем хаотическое поведение было обнаружено в огромном количестве систем в механике, лазерной физике и радиофизике, химии, биологии и медицине, в электронных цепях и т.д. [69, 66, 120, 85,148, 71, 59,109, 135,125,126,127, 91,142, 146, 124].
124
Разработанные новые методы аналитического и численного исследования систем показали, что хаос - это отнюдь не исключительный вид поведения нелинейной системы. Грубо говоря, хаотические движения возникают, когда траектории системы глобально ограничены и локально неустойчивы. В хаотической системе сколь угодно малое начальное расхождение траекторий не остается малым, а в течение некоторого времени растет экспоненциально. Частотный спектр хаотической траектории является непрерывным (рис. 3.23, 6, где изображен спектр функции х(^)). Во многих случаях подобные нерегулярные, непериодические колебания лучше отражают свойства процессов, протекающих в реальных системах. Опять-таки следует отметить, что “на глаз” отличить хаотический процесс от квазипериодического может быть не менее трудно, чем отличить квазипериодический процесс от периодического.
3.8.2.	Определение хаотической системы
Терминология в области хаотических моделей еще не устоялась, и существует несколько различных определений хаотических систем. Приведем одно из простейших.
Рассмотрим динамическую систему в непрерывном времени
х = Г(т),	(3.64)
где х = x(t) € Rn - вектор состояния системы, 0 < t < оо.
Определение 1. Замкнутое множество Q Э называется аттрактором системы (3.64), если: а) существует открытое множество 90 С Q, такое что все траектории x(t} системы (3.69), начинающиеся в QOi определены при всех t > О и стремятся к Q при t —* оо (т.е. dist(x(/),9) —* 0 при t —► оо, если х(0) € Q(h где dist(z,Q) = infyea ||я - у\\ ~ расстояние от точки х до множества Q); б) никакое собственное подмножество 9 этим свойством не обладает.
Определение 2. Аттрактор называется странным, если он ограничен и любая траектория, начинающаяся на нем, неустойчива по Ляпунову.
Определение 3. Система называется хаотической, если у нее существует хотя бы один странный аттрактор.
125
Аналогичные определения даются для систем, дискретных по времени:
^+i = F(it), * = 0,1,2,...	(3.65)
Неустойчивость по Ляпунову характеризует основное свойство хаотических колебаний, называемое “сверхчувствительностью”, или “чувствительной зависимостью” от начальных условий: любые две сколь угодно близкие траектории обязательно удаляются друг от друга на конечное расстояние.
Имеются и другие определения странных аттракторов и хаоса. Например, часто в определение странного аттрактора включают дополнительные требования: существование траекторий (или семейства периодических траекторий), всюду плотных в Q, топологическую транзитивность и т.д., подчеркивающие наличие свойства “перемешивания” траекторий. Недавние результаты Г. А. Леонова [54] показывают, что вместо отсутствия устойчивости по Ляпунову при определении странного аттрактора целесообразно требовать отсутствия так называемой устойчивости по Жуковскому, допускающей разную скорость течения времени на разных траекториях системы. Однако строго доказать хаотичность системы непросто, даже пользуясь простейшим определением. Для некоторых общепризнанных хаотических систем (например, для системы Лоренца (3.63)) доказательства хаотичности весьма громоздки, хотя численных и экспериментальных подтверждений накоплено предостаточно. Поэтому основным методом изучения хаотических систем остается численное исследование - имитационное моделирование и оценка различных характеристик (см. п. 3.8.3). Приведем несколько примеров хаотических систем.
Пример 3.8.1. Система (цепь) Чуа. Около 15 лет назад специалисты по электронным цепям Л. Чуа и Т. Мацумото предложили простую электронную цепь с одним нелинейным элементом, способную генерировать весьма разнообразные, в том числе хаотические, колебания.
Электрическая схема цепи Чуа представлена на рис. 3.25, а. Эта цепь содержит нелинейный резистор 7?н (диод Чуа), вольт-амперная характеристика которого отражена на рис. 3.25, 6. Нетрудно убедиться, что уравнения Кирхгофа для этой цепи
126
Рис. 3.25. Электрическая схема цепи Чуа (а) и вольт-амперная характеристика нелинейного резистора (б).
Рис. 3.26. Аттрактор системы Чуа (3.66).
Рис. 3.27. Хаотический процесс x(t) в системе Чуа и его спектр.
127
имеют вид

=4(^+4
. 75? = -т(“г +Ло'з)-
Пренебрегая активным сопротивлением катушки индуктивности и переходя к безразмерным величинам, получим математическую модель цепи Чуа в виде:
< у = х - у + Z, . г = -ЧУ,
(3.66)
где x,y,z - безразмерные переменные, пропорциональные напряжениям на емкостях и току через индуктивность; /(х) = = М1х+О.5(М1-Мо)(|х+1|-|х-1|). При р=9, д = 14.3, ЛА = -6/7, Л/о = 5/7 траектории системы (3.66) демонстрируют хаотическое поведение (рис. 3.26, 3.27).
Рис. 3.28. Решение уравнения Дуффинга при гармоническом воздействии и его спектр.
Пример 3.8.2. Разнообразные хаотические колебания можно генерировать, подавая гармонический сигнал на вход нелинейных осцилляторов, например заменяя ноль в правых частях уравнений (3.60)-(3.62) синусоидальной функцией
z(f) = Asin(uQt).
128
(3.67)
При некоторых значениях частоты и амплитуды возбуждения происходит “размазывание” предельного цикла и колебания в нелинейной системе становятся хаотическими.
Рис. 3.29. Фазовый портрет и интегральная кривая решения уравнения Дуффинга при гармоническом воздействии.
На рис. 3.28, 3.29 представлены колебания, возникающие при подаче на систему Дуффинга (3.61) воздействия (3.67) с параметрами: р = 0.4, q = —1.1, <?о = 1, А = 1.8, а>0 = 1-8 (на рис. 3.28, а изображен график процесса i/(f), на рис. 3.28, 6 - спектр y(t), на рис. 3.29, а - фазовый портрет на плоскости (у,]/), на рис. 3.29, 6- соответствующая интегральная кривая). Для дискретного времени примеры хаотических систем существуют для любой размерности состояния системы, даже прц/fi = 1.
Пример 3.8.3. Дискретная система с квадратичной правой частью
xt+1 = Ait(l - xk), xk e Я1,	(3.68)
построенная с помощью так называемого логистического отображения F(x) = Лх(1 - х), является хаотической [69, 66, 120] при 3.57 < А < 4. Ее аттрактором является отрезок [0,1].
Пример 3.8.4. Система
= {Мхк},	(3.69)
где через {Л} обозначается дробная часть вещественного числа 4, является хаотической при любом М > 1. Система (3.69) часто используется для генерации псевдослучайных чисел, возможно первого практического применения хаоса.
5 Б. Р. Андриевский и др.	129
Это применение основано на том, что при любом начальном условии я0, несоизмеримом с М, доля точек последовательности (3.69), попавших в некоторый интервал, лежащий в отрезке [0,1], пропорциональна длине этого интервала [93]. Таким образом, если частоту попадания точек в интервал считать оценкой некоторой вероятности, то совокупность таких вероятностей будет задавать равномерное распределение на [0,1].
3.8.3.	Критерии хаотичности
Как уже было сказано, основным критерием хаотичности является локальная неустойчивость, т.е. разбегание близких вначале траекторий. Соответственно основной характеристикой хаотичности является скорость разбегания, определяемая так называемым старшим показателем Ляпунова. Показатели Ляпунова определяются для заданной “опорной” траектории x(t) системы (3.64) с начальным условием т(0) = т0. Для этого составляется уравнение в вариациях (система, линеаризованная вблизи я(1)):
£бх = W(t)6x,	(3.70)
dF(x(t))
где 6х = х — x(f); Иф) = —££ J2. _ матрица Якоби системы (3.64) (матрица частных производных от правых частей), вычисленная вдоль решения x(t). Предполагается, что частные производные от F(x) существуют, т.е. правые части (3.64) - гладкие функции. Задав начальное отклонение z = 6т(0), можно вычислить величину
a(i0, -г) = Inn - In "	(3.71)
характеризующую скорость экспоненциального роста решений (3.70) в направлении z и называемую характеристическим показателем (ляпуновской экспонентой) в направлении z [69, 66, 120, 31].
Еще А.М. Ляпунов показал, что при небольших дополнительных предположениях предел в (3.71) существует, конечен для любого z Е Rn и не зависит от начального выбора точки xq на траектории x(t). Более того, число различных характеристических показателей конечно, их можно пронумеровать
130
в порядке убывания ai > &2 > ... > ап и существует базис Zi 6 Яп, г = 1, для которого а(х0, z.) = г = 1,..., п.
Наиболее важен старший ляпуновский показатель Если #1 > 0 вдоль ограниченного решения ir(f), плотного в аттракторе Q, то это решение неустойчиво по Ляпунову, а аттрактор является странным. При этом величина Qj характеризует степень неустойчивости, или, другими словами, показатель экспоненциальной чувствительности к начальным данным. Для линейной системы с постоянной матрицей х = Ах и нулевого опорного решения x(t) = 0, очевидно, = maXiReAj(A), т.е. |ai | совпадает с обычной степенью устойчивости (или неустойчивости) системы.
Старший показатель аг может быть приближенно вычислен и без построения фундаментальных решений уравнений в вариациях:
1	||х(0 - х(0||	„
= - In-----------,	(3.72)
I	£
где x(t) - решение (3.64) с начальным условием х(0); ||х(0) — —х(0)|| = е, причем t - достаточно велико, ае > 0 - достаточно мало. Для повышения точности расчета можно вычислять среднее правых частей (3.72) при разных начальных условиях т0> взятых на траектории x(t). Тогда t необязательно брать очень большим [69].
Показатели Ляпунова характеризуют прогнозируемость траекторий системы. Действительно, траектория x(t) аппроксимируется через время Т другой траекторией с погрешностью Д, есля
Т<— In—,	(3.73)
Q1 € гдее - начальная погрешность. Следовательно, хаотическую траекторию можно спрогнозировать с заданной точностью на некоторое время вперед. Это принципиально отличает хаотические системы как модели неопределенности от стохастических систем, в которых ошибка прогноза может, вообще говоря, принимать сколь угодно большие значения, даже при сколь угодно малом горизонте (время прогноза).
Другой важной характеристикой хаотической системы является фрактальная размерность аттрактора, характеризующая его “густоту”, или “пористость”. Для ее подсчета аттрактор Q покрывается кубиками размера е. Пусть -
131
количество кубиков в покрытии. Вычислим величину
fi(Q,d)=\\mN(E)ed.	(3.74)
(Если предел не существует, то в (3.74) берется нижний предел - наименьший из частных пределов по подпоследовательностям.) Можно показать, что существует число df > 0, такое что /z(Q,d) = 4-оо, при d < df,	= 0 при d > df. Это
число называется фрактальной размерностью, или емкостью, множества Q. Из определения следует, что N(e)e"df, откуда ясно, что емкость можно определить из соотношения
df =
.. log N(e) — lim —:----.
г-о log e
(3.75)
Можно показать, что если множество П есть точка, гладкая кривая или двумерная поверхность, то df будет равна О, 1 или 2 соответственно. Однако есть множества, у которых df - дробная величина. Такие множества были названы Б. Мандельбротом фрактальными, или фракталами. Примерами фракталов являются странные аттракторы: для системы Лоренца d/«2.07, а для цепи Чуа df&2.81. Известны математические результаты, утверждающие, что множество с фрактальной размерностью df, может быть размещено без самопересечений в евклидовом пространстве, имеющем размерность не выше, чем 2d/4-1. Если же разрешить самопересечения, то размерность объемлющего пространства может быть снижена до df 4- 1. Эти результаты важны при построении модели системы по экспериментальным данным; они означают, что поведение траекторий на аттракторе, имеющем фрактальную размерность df может быть описано моделью в пространстве состояний с размерностью, не превышающей 2d/ 4- 1. Более подробно о различных видах фрактальной размерности и о способах ее вычисления можно прочесть в [66, 69, 120].
3.8.4.	Зачем нужны хаотические модели?
Из предыдущего ясно, что хаотические модели следует использовать для описания непериодических колебательных процессов с непостоянными, меняющимися характеристиками (например, частотой и фазой). Существующие методы позволяют оценивать эти характеристики по результатам измерений. При этом такая величина, как частота колебания,
132
становится “нечеткой” и уступает место спектру, который является непрерывным. Вводятся новые важные величины: старший ляпуновский показатель (степень неустойчивости), характеризующий скорость разбегания траекторий и, следовательно, время прогнозируемости процесса; фрактальная размерность, характеризующая “пористость” клубка траекторий. Важно, что известные хаотические модели имеют небольшое число параметров, а процессы в них обладают малой (несколько единиц) фрактальной размерностью. Это повышает надежность и прогнозирующую силу моделей. Перечислим некоторые из уже известных применений хаотических моделей.
Описание нерегулярного поведения реальных систем.
На сегодняшний день известен целый ряд реальных физических устройств и процессов, проявляющих при некоторых условиях хаотическое поведение. Приведем несколько примеров:
-	газовые или полупроводниковые лазеры в так называемых многомодовых режимах [85];
-	механические системы, состоящие из нескольких связанных осцилляторов (например, маятников), а также системы с ударами и люфтами [69, 66];
-	электронные схемы с активными элементами, например полупроводниковыми приборами с отрицательным дифференциальным сопротивлением (такими как туннельные диоды, диоды Ганда и т.п.) [69, 85, 148];
-	химические и физико-химические реакции с нелинейной кинетикой, например так называемая реакция Белоусова-Жаботинского [71, 125, 126];
-	временные ряды в экономике и финансах (например, бизнес-циклы, цены на акции, обменные курсы валют [142, 127, 91, 142, 146, 124]). Заметим, что в экономических и финансовых приложениях хаотические модели в последнее время несколько потеснили традиционные для этих областей стохастические модели.
Генерация нерегулярных сигналов. Во многих технических системах возникает необходимость использования псевдослучайных чисел и сигналов [93]. В качестве генераторов псевдослучайных чисел можно использовать хаотические системы.
133
Простейший подход к построению хаотических генераторов состоит в том, что берется динамическая система, описываемая одной из типовых хаотических моделей (см. п. 3.8.1), и по внешнему виду траекторий выбирается та, в которой качественный характер колебаний наиболее близок к желаемому. После этого путем подбора параметров моделей устанавливаются желаемые качественные характеристики колебаний (амплитуда, спектр и т.д.). Использование характеристик хаотической динамики (показатели Ляпунова, фрактальные размерности и т.п.) позволяет задавать дополнительные свойства шумов и помех при их генерации. Заметим, что “на глаз” квазипериодические колебания с большим числом составляющих гармоник и хаотические колебания бывает трудно различить. В то же время, как и при моделировании нерегулярных процессов, малая размерность и малое число параметров хаотических моделей дают им дополнительные преимущества перед линейными моделями с большим числом гармоник.
Синхронизация нерегулярных колебаний и управление ими. Двойственность природы хаотических систем (детерминированные системы с хаотическим поведением) приводит к новым неожиданным их применениям. Например, две хаотические системы можно заставить колебаться синхронно (в одной фазе), если подавать на одну или на обе системы сигнал обратной связи по ошибке рассогласования. Использование этого эффекта, например, в технике связи позволяет использовать хаотический несущий сигнал вместо периодического, что в свою очередь дает возможность повысить надежность и скрытность процесса передачи сообщений [109, 135] (см. ниже п. 6.2).
Поясним идею управляемой синхронизации для упрощенного случая, когда ведущая система (эталонный генератор) описывается уравнением
X = /(т),	(3.76)
а ведомая (управляемый генератор) - уравнением
z = f(z) + u(t),	(3.77)
где x,z,u - n-мерные векторы. Выбирая вектор сигналов обратной связи «(f) пропорциональным ошибке
u(t) = -/<е(<),	(3.78)
134
где е = х — z - вектор ошибок, К > 0 - коэффициент усиления, получим уравнение ошибок:
e = f(x(t))-f(x(t)-e)-Ke,	(3.79)
в котором x(t) - заданная функция времени, являющаяся решением (3.76). Если матрица Якоби А(х) = ^-(х) ограничена в некоторой области Q, содержащей решение системы (3.76)-(3.78), то легко подобрать такое К > 0, чтобы собственные числа симметричной матрицы Л(х) 4- Ат{х} — (где 1п -единичная п xn-матрица) лежали левее мнимой оси при х 6 Q. При этом, как известно [31], система (3.76)-(3.78) будет обладать свойством так называемой конвергентности в ft: все ее траектории, лежащие в Q, сходятся при t —► оо к единственному ограниченному решению. Поскольку е(£) = 0 является решением (3.79), то к нему и сходятся все траектории. Таким образом, решения систем (3.76) и (3.77), (3.78) неограниченно сближаются, что и означает синхронизацию двух систем. При этом поведение каждой из систем может быть хаотическим и оставаться таковым.
Условия синхронизации для более сложных задач: при неполном измерении (когда измерению доступен лишь вектор выходных координат у = Л(х)); при неполном управлении (когда u(t) - m-мерный вектор, т < п и вместо u(t) в (3.77) стоит Bu(Z), где В - прямоугольная т х m-матрица ), - а также условия адаптивной синхронизации (когда часть параметров математических моделей систем неизвестна) получены в [130, 132].
Задача синхронизации в формулировке (3.76)—(3.78) совпадает с традиционной для теории управления задачей управления с эталонной моделью [6, 106]. В более общей постановке допускается взаимное влияние подсистем, что соответствует описанию подсистем в виде:
i = f^x^t), ух = Л^х),	(3.80)
г = /2(*,М), У2 =	(3.81)
и введению модели динамики связи (взаимовлияния):
w = W(w,yx,y2,t), и = U(w,yx,y2,t).	(3.82)
135
Критерий синхронизации может допускать также возможность сдвига фаз между процессами в синхронизируемых подсистемах [11, 12]. Особый интерес представляет синхронизация слабой связью, т.е. когда величина сигнала взаимосвязи u(t) предполагается малой.
Отметим, что эффект синхронизации изучался в механике, начиная с работы X.Гюйгенса (1673 г.), и имеет многочисленные применения, например в вибрационной технике [11, 12]. В традиционной для механики постановке задачи синхронизации система связи (3.82) считается заданной и требуется найти условия сходимости траекторий системы (3.80)-(3.82) к некоторой периодической траектории [11] или условия достижения иной цели синхронизации, например сходимости к нулю ошибки e(t) = x(t) - z(f), т.е. задача является задачей анализа. Мы же здесь говорили о задачах, где требуется найти подходящую систему связи (3.82), которая описывает регулятор или алгоритм взаимодействия и обеспечивает достижение заданной цели. Такие задачи относятся к классу задач синтеза (управляемой синхронизации). В теории управления, однако, методы их решения разработаны далеко не для всех практически важных случаев.
В последние несколько лет наблюдается необычайно быстрый, лавинообразный рост публикаций по управлению и синхронизации хаотических систем [123, 132]. Теоретические исследования стимулируются потенциальными приложениями в лазерной технике [148], электронике и связи [109, 135], в химии и химической технологии [125, 126], биологии и медицине [127] и других областях.
Синхронизация - это лишь один (хотя и весьма важный) класс задач управления хаотическими колебаниями. Представляют интерес задачи, где целью управления является достижение заданного значения какой-либо характеристики процесса: энергии, энтропии, фрактальной размерности и т.д. В других задачах целью является изменение характера колебаний. Например, хаос может быть нежелательным и систему требуется стабилизировать вблизи равновесия или вблизи периодической орбиты (в биологии это задачи стабилизации биоритмов [59], в экономике - повышение прогнозируемости бизнес-циклов [142]). Иногда, наоборот, хаос может оказаться полезным (например, хаотическое перемешивание
136
ускоряет ход химической реакции и повышает качество ее продуктов). В таких случаях цель управления состоит в возбуждении хаотических колебаний с заданными свойствами.
В заключение подчеркнем характерную особенность задач управления колебательными и в том числе хаотическими процессами. Она состоит в том, что за время процесса управления в системе может происходить большое число колебаний и, значит, энергию управления за один период (т.е. среднюю мощность управляющего сигнала) следует считать достаточно малой. Интересно, в частности, выделить задачи, решаемые с помощью управления со сколь угодно малой мощностью [145, 132, 116, 5]. С другой стороны, хаотичность системы означает сильную чувствительность ее к изменению начальных условий и внешних воздействий. Это способствует снижению требуемой мощности управления, но затрудняет обеспечение устойчивости замкнутой системы.
3.9.	Линейные или нелинейные?
При чтении предыдущих разделов книги у читателя могло сложиться впечатление, что проблема выбора модели и ее исследования для современной науки совершенно ясна и на любой вопрос имеется окончательный ответ, сформулированный в виде более или менее четких рекомендаций. На самом деле, это впечатление обманчиво. Науке о математических моделях еще очень многое неизвестно, и она продолжает интенсивно развиваться. Особенно бурно развивалась за последние годы теория нелинейных систем (см., например, [63, 43, 52]). Ниже мы опишем некоторые новые идеи из теории нелинейных систем, показывающие, что естественная рекомендация: “выбирать линейную модель, потому что с ней проще работать”, не является такой уж бесспорной.
Последнее десятилетие XX века ознаменовалось проникновением нелинейных моделей в самые различные области. Помимо механики, где их применение стимулировалось прежде всего запросами робототехники, нелинейные модели прочно обосновались в физике, химии, биологии, а также в общественных науках - экономике и социологии. Во многих случаях учет нелинейности необходим из-за наличия в реальном процессе колебательных составляющих, как регулярных (типа предельного цикла), так и нерегулярных (хаотических),
137
которые невозможно описать и исследовать, оставаясь в рамках линейных моделей.
Однако часто методы теории нелинейных систем создаются путем аналогий с линейной теорией или сведением нелинейной задачи к линейной.
Построение нелинейной теории на “линейном” фундаменте порождается представлением о линейной системе как о простейшем классе систем, а о гармоническом сигнале как о простейшем виде сигналов.
Например, подход теории абсолютной устойчивости, развиваемый с середины XX века [56, 81], основан на рассмотрении систем, разделенных на линейную и нелинейную части (такие модели часто называют системами Лурье, см. рис. 3.30), и выведении свойств полной системы из свойств частотной характеристики линейной части (ее реакции на гармонический сигнал) и свойств множества, где лежит график нелинейности. На таком подходе основаны и современные частотные методы нелинейного анализа (см. [21, 55]). Аналогично в задачах синтеза приобрел популярность метод линеаризации обратной связью (“feedback linearization”), основанный на преобразовании модели нелинейной системы к линейной форме при помощи нелинейных замен координат и обратных связей с последующим применением хорошо разработанных методов синтеза линейных систем [63].
Рис. 3.30. Система Лурье.
В 80-е годы возникла новая идея: не опираться на анализ частотных свойств линейной части модели, а развивать “частотную философию” для исходной нелинейной системы [121]. На нелинейные системы были перенесены понятия канонических форм, минимальной фазовости (ноль-динамика), относительной степени, пассивности и т.д., что привело к
138
значительным успехам в решении задач анализа и синтеза [122, 137, 150, 63, 79].
Однако и этот подход имеет границы применимости: если на величину управляющих сигналов или на функции обратной связи наложены ограничения, то “частотная философия” и линеаризация теряют свою силу. Аналогично в присутствии нерегулярных колебаний гармонические сигналы перестают играть роль простейших сигналов, а применение частотных методов как средства анализа нелинейных систем существенно усложняется.
По-видимому, настает время смены парадигмы и разработки новой, “вполне нелинейной философии” для нелинейных систем, не считающей линейные системы простейшим и основным видом систем, а гармонические сигналы - простейшим и основным видом сигналов. Попробуем наметить некоторые контуры нового подхода.
Прежде всего необходимо найти адекватную замену частотной характеристике. Чтобы сделать это, сначала вернемся к классической задаче Лурье об абсолютной устойчивости системы, состоящей из линейной части, описываемой передаточной функцией
y = W(p)u, p = d/dt,	(3.83)
и статической нелинейности
И = ¥>(у).	(3.84)
график которой лежит в симметричном секторе
MsOI < KJsl-	(3-85)
Неравенство (3.85) означает, что коэффициент усиления нелинейного блока (3.84) не превосходит В соответствии с круговым критерием (см. например, [6, 55]), для устойчивости системы (3.83) - (3.85) достаточно выполнения неравенства
Ку/К^ < 1,	(3.86)
где
Kw = max |W(ju>)|.	(3.87)
Таким образом, для анализа устойчивости представляет интерес не вся амплитудно-частотная характеристика А(о>) =
139
= |IV(ju>)|, а только ее максимум определяемый резонансными свойствами линейной части и достигаемый на одной из резонансных частот. Для практического определения Kw Для линейной системы на ее вход следует подать гармонический сигнал u(t) = sincjt и найти ш, реализующую max max |т/(£)| (начальные условия на систему следует брать of t>0
нулевыми).
Рис. 3.31. Нелинейная система.
Пусть теперь линейная модель системы (3.83) заменяется на нелинейную и система описывается дифференциальным уравнением состояния вместе с конечным уравнением выходов (рис. 3.31):
i = F(x,u), 1/ = Л(х),	(3.88)
где х - n-мерный вектор состояния системы. Интуитивно ясно, что устойчивость системы (3.88), (3.84), (3.85), как и в линейном случае, должна зависеть от резонансных свойств системы (3.88). Однако изучение резонансных свойств нелинейной системы затруднено, поскольку частота вынужденных колебаний в нелинейной системе зависит от амплитуды входного гармонического сигнала. С ростом амплитуды входа в системе могут возникать сложные, в том числе хаотические режимы, т.е. входной гармонический сигнал не может в полной мере вскрыть резонансные свойства нелинейной системы.
Задачу определения формы сигнала, обеспечивающего при заданной амплитуде входа максимальную амплитуду выхода, можно поставить как задачу оптимального управления системой (3.88):
sup з/2(О-	(3.89)
0<«<t, х(0)=0.
140
При этом входной сигнал, создающий максимальное возбуждение системы, будет зависеть не только от времени, но и от состояния системы, т.е. иметь вид обратной связи [129, 108]. Заметим, что для линейных систем задача (3.89) - не что иное, как классическая задача Булгакова о накоплении возмущений [75]. Величина оптимума в задаче (3.89) зависит от у квадратично. Поэтому естественно ввести характеристику возбудимости системы ограниченным входным сигналом как величину
ЕЬ) =	(3-90)
где <Э(7) - оптимальное значение в задаче (3.89). Для линейных асимптотически устойчивых систем величина (3.90) не зависит от 7, а для нелинейных - представляет собой функцию от 7, которую естественно назвать степенью возбудимости системы.
Решение задачи оптимального управления в общем случае весьма трудоемко даже при использовании эффективных численных методов. Однако для приближенного решения можно воспользоваться известным результатом (см., например, [117]) о возможности приближенной замены оптимального управления на локально-оптимальное, получаемое максимизацией скорости изменения целевого функционала в силу свободной системы (при и = 0). Точность такой замены тем выше, чем меньше амплитуда входа 7.
Для вычисления локально-оптимального управления представим первую часть уравнения (3.88) в виде
F(x,u) = /(х) 4- д(х)и 4- R(x,u),	(3.91)
где /(х) = F(x,0), д(х) = df/ди(х,0), а остаточный член Я(х,и) имеет высший порядок малости по и. Скорость изменения целевого функционала Qt = y2(t) равна
Q(t) = 2y(\7h)T (/(х) 4- д(х)и 4- Я(х, и)).
Пренебрегая величиной Я(х,и), видим, что локально-оптимальное значение входа при малых 7 равно
и(х) = 7sign ^Л(х) VA(x)Tд(х)^ .	(3.92)
Таким образом, для вычисления степени возбудимости системы при малых 7 достаточно подавать на вход системы сигнал (3.92) и измерять достигаемую амплитуду выхода. Это
141
можно делать как в физическом (натурном), так и в вычислительном эксперименте. Примеры построенных таким образом графиков степени возбудимости для классических нелинейных систем (уравнения маятника и системы Дуффинга) приведены на рис. 3.32.
Рис. 3.32. Характеристики возбудимости маятника (р = 0.1, cjq = 10) и системы Дуффинга.
Полученные графики можно использовать для оценки устойчивости замкнутой системы с нелинейностью в обратной связи. Условия устойчивости следуют из теоремы о пассивности [152, 134, 79] и аналогичны (3.86):
КрК„ < 1.	(3.93)
При этом роль максимума амплитудно-частотной характеристики играет максимальная степень возбудимости
Кр = sup	(3.94)
7
Величина Кр конечна для так называемых строго пассивных систем (системы с полной диссипацией).
Отметим, что воздействие вида (3.92) создает в системе аналог резонансного режима: для слабодемпфированных систем малое воздействие вида (3.94) приводит к возбуждению больших колебаний выхода и может сообщить системе значительную энергию. Можно показать, что для механических систем со степенью демпфирования (диссипации) q > 0 воздействие (3.92) выводит систему на уровень энергии не меньший, чем 72/Q2 (см. [108]), т.е. для £(7) справедлива нижняя оценка £(7) > Q"1.
142
Исследование динамических свойств систем с помощью непериодических тестовых сигналов представляется весьма перспективным инструментом в теории нелинейных систем.
Другой областью, где гармонические сигналы, линейные системы и спектральные методы традиционно играли и играют ключевую роль, является теория передачи информации (теория связи). Однако и здесь “нелинейная философия” предлагает новые подходы.
Напомним, что в теории связи гармонический сигнал
y(t) = asin(cuf + а)	(3.95)
рассматривается как базовый, простейший. Сигнал может изменяться (модулироваться) путем изменения его параметров - величин а (амплитуда), си (частота) и а (начальная фаза). Например, при частотной модуляции модулирующим параметром является частота си, которая становится, таким образом, переменной, т.е. с системной точки зрения становится сигналом: cu = cu(f). Передаваемый модулированный сигнал y(t) может содержать в себе закодированное сообщение. Для передачи сообщения по каналу связи, на стороне приемника сообщение должно восстанавливаться по принимаемому сигналу y(t) = y(t) + £(£), где £(/) - шум (помеха) в канале связи. Выделение полезного сообщения из принимаемого сигнала и является основной задачей теории связи [25].
В 90-х годах XX века усилился интерес к использованию в качестве несущих сигналов нерегулярных (хаотических) колебаний [33, 143, 133, 6]. Для построения соответствующей теории необходимо сделать решительный шаг: перейти от явного описания сигнала как функции времени (3.94) к заданию модели системы, генерирующей этот сигнал. Очевидно, например, что генератором гармонического сигнала (3.94) может служить линейное дифференциальное уравнение
y(t)+u2y(t) = 0.	(3.96)
Однако для генерации нерегулярных, непериодических сигналов линейные модели непригодны (см. п. 3.8.1). Следующим шагом к построению новой теории является использование в качестве основных объектов нелинейных генераторов,
143
описываемых дифференциальными уравнениями
i = F(z,n), у = А(х).	(3.97)
Здесь в отличие от (3.88) входной вектор и Е Т1т может иметь смысл не только входного сигнала, но и модулирующего сигнала, т.е. задавать набор изменяемых параметров генератора. Например, система (3.97) в частном случае может быть системой Лоренца (3.63) или системой Чуа (3.66), а вектор входов может включать часть коэффициентов соответствующего уравнения.
Приемник также представляется нелинейной динамической системой
i = $(z,y), й = х(г),	(3.98)
где у = y(t)+£(t) - принимаемый сигнал (вход приемника), z = z(t) Е Т1п - вектор состояния приемника, й = u(t) - оценка передаваемого сообщения (выход приемника). Обычно шум измерений можно считать ограниченным. Тогда задачу синтеза (конструирования) приемника можно поставить как нахождение модели (3.98), обеспечивающей достижение цели
h(f) -й(*)| < Ди.	(3.99)
На самом деле, соотношение (3.99) может не выполняться на начальном этапе работы устройства. Поэтому цель в задаче синтеза формулируется как асимптотическое соотношение
Timjum -u(t)\ < Ди.	(3.100)
t—»оо
В частном случае Ди = 0 цель (3.100) означает асимптотически точное оценивание (о нем имеет смысл говорить, если пренебрегать помехами).
Естественным подходом к решению задачи синтеза является включение вектора оценок состояния передатчика в вектор состояния приемника z(t). Например, выбирают z(t) = £(/) Е Е Ип . Тогда система (3.98) представляет собой не что иное, как наблюдатель (или фильтр состояния) для системы (3.97) (см. [6]).
144
В этом случае естественно поставить дополнительную цель - достижение заданной точности оценивания (наблюдения) состояния передатчика
Tim |i(0 -х(0| <	(3.101)
Таким образом, приемник должен оценивать как состояние, так и параметры передатчика, т.е. представлять собой адаптивный наблюдатель.
Синтезу адаптивных наблюдателей (фильтров состояния) для линейных систем посвящена обширная литература (см. [6]). При наличии помех их обычно считают случайными и ставят задачу оптимальной фильтрации - достижение минимальной среднеквадратической ошибки оценивания параметров. Однако включение вектора оценок неизвестных параметров в общий вектор состояния системы делает задачу фильтрации нелинейной даже при линейных моделях передатчика и приемника, что приводит к значительным вычислительным трудностям.
Синтез наблюдателей для нелинейных систем в общем случае также представляет собой трудную задачу. Однако для частного класса так называемых “пассивируемых” систем [63, 79] решение оказывается простым и изложено ниже, в п. 6.2. Заметим, что такие генераторы хаоса, как системы Лоренца и Чуа (см. п. 3.8.1), в большинстве случаев являются пассивируемыми.
Таким образом, существующие математические методы позволяют решать многие задачи анализа и синтеза нелинейных систем без опоры на “линейные костыли” - гармонические сигналы и линеаризованные модели. Это обстоятельство следует учитывать при выборе модели.
В то же время многие задачи в этой области математического моделирования не решены и даже не поставлены, что открывает широкий простор для дальнейших исследований.
Теория может быть ближе к истине, чем другая теория, но все же быть ложной.
Карл Поппер
ГЛАВА 4. ВЫБОР ПАРАМЕТРОВ МАТЕМАТИЧЕСКОЙ МОДЕЛИ
4.1.	Предварительные преобразования
4.1.1.	Линейно-параметризованные модели
Итак, мы выбрали структуру ММ системы, т.е. выбрали ММ с точностью до конечного набора числовых параметров. Как говорят, “модель параметризована”. Что же дальше? Значения параметров лишь в редких случаях удается подобрать исходя только из теории или априорных соображений. Как правило, оценка параметров ММ проводится по результатам наблюдений за реальным процессом или явлением в ходе нормального функционирования либо во время специальных экспериментов. Более того, без сопоставления результатов наблюдений за реальной системой и за ее ММ нет гарантий правильного выбора структуры ММ. Поэтому на этапе выбора параметров происходит окончательное уточнение и окончательный выбор структуры ММ, желательно из нескольких конкурирующих вариантов.
Задачи выбора параметров ММ (называемые также задачами идентификации) приходится решать для различных типов ММ: статических и динамических, дискретных и непрерывных, линейных и нелинейных и т.д. Однако во многих случаях имеющиеся результаты наблюдений и структуру ММ удается преобразовать к стандартной форме, позволяющей применять унифицированные методы идентификации. Такой формой является линейная по параметрам модель
N
=	+	(4.1)
1=1
где Xi - входные переменные (входы, факторы), у - выходная переменная (выход, отклик), 0, - параметры ММ, <р- возмущение (погрешность ММ). Если ввести векторные обозначения
146
х = соЦхь...,xn) 6 Rny6 = col(0!, ...,0n) E Rn , to (4.1) можно переписать в виде
у = вТх + <р.	(4.2)
По виду (4.1) ясно, что эта ММ приспособлена для отражения количественных зависимостей, т.е. множества значений входов и выходов системы 17, Y должны быть непрерывными. Этот случай (при случайных (р это задачи регрессионного анализа) будет подробно рассмотрен ниже. Иногда моделью (4.1) можно описать и зависимость между величинами с дискретным множеством значений (например, з:,, у могут быть номерами уровней входных переменных, т.е. принимать значения 1,2,3,...). Однако для исследования качественных зависимостей более приспособлены методы дисперсионного анализа [46, 110], которые здесь рассматриваться не будут. Подчеркнем, что величины	вообще говоря, не совпадают
с исходными входами, выходами, параметрами и возмущениями в системе, а получаются в результате преобразования (замены переменных), специально сделанного для приведения ММ системы к форме (4.1). Покажем, как можно перейти к форме (4.1) для основных типов моделей: статических; динамических, дискретных по времени; динамических, непрерывных по времени.
Для простоты изложения возмущение в (4.1) учитывать не будем.
4.1.2.	Преобразование статических моделей
Линейная ММ. Чтобы привести линейную ММ с т входами
y = aQ + агщ + ... + атит	(4.3)
к виду (4.1), полагаем = 1, 01 =ао и для г = 2,...,тп-|-1, х, = 0i = а<в1. Таким образом, х = col(ui, ...,um), в = (a0,ai, • • • >am)> n = m + 1.
Нормированная линейная ММ. Рекомендуется перед оцениванием параметров ММ проводить преобразование нормировки (масштабирование и центрирование) переменных, приводящее диапазоны изменения переменных к стандартному значению. Это преобразование для линейной ММ соответствует выбору в (4.1) Xi = —L. Обычно выбирают числа (ц так, чтобы нормированные переменные лежали в
147
диапазоне [—1,1], т.е. й{ - “номинальное” или среднее значение переменной, а а,- - максимальное отклонение от среднего.
В стохастическом случае берут й,- = Ми,, а, = у М(и,- — й,)2.
Полиномиальная ММ. Полиномиальная ММ с одним входом и выходом, имеющая вид
у = aQ + ахи + а2и2 + ... + атит,	(4.4)
где т -предполагаемая степень полиномиальной зависимости, приводится к (4.1) выбором
х = col(l,u, ...,um), 0 = col(a0,ai, ...,am), п=т + 1.
Квадратичная многофакторная ММ. Квадратичная зависимость с несколькими входами, имеющая вид
оо	оо
у = во + 52 а»щ» + 52 a*iu'ub	(4.5)
i=l	»J = 1
может быть приведена к форме (4.1), если положить:
9 = col(a0, ...,аго,ац, (a12+a2i),..., (aim+ami)ifl22> (агз+взг), •><•»»»)
Достаточно брать симметричную матрицу старших коэффициентов: ciij = aji. Общее число входов в (4.1) будет - тп(т + 1) (тп + 1)(уп + 2)
п = 1 + тп 4-ь—гр—L =	----L.
Мультипликативная (степенная) ММ. Если ММ записана в мультипликативном виде
у = Си“'	(4.6)
то для приведения к виду (4.1) следует прологарифмировать (4.6):
In у = In С + О'! In Щ + ... + am In Umi
и положить 7/ = 1п у} Zi = l, 0i= In С и для i = 2, ...,тп+1, 0,=a,_i, Xi = In 14,-1.
Неявная ММ. Если статическая характеристика системы представлена в виде неявной зависимости
Ф(и,у,0) = О,
148
(4-7)
то нет необходимости разрешать (4.6) относительно выхода. Достаточно свести (4.7) к виду
Фо(и,з/) + У^0»Ф»(и,у) = 0,	(4.8)
»=i
линейному относительно параметров, и положить
х = соЦФДи.у),Ф„(14,3/), у = Ф0(и,у).
Приведем несколько примеров, демонстрирующих приемы построения линейно-параметризованных ММ.
Пример 4.1.1. Одним из распространенных приемов является логарифмирование уравнений. Если ММ задана экспоненциальной зависимостью у = CieC2U, то, логарифмируя, получим соотношение In у = InCi для приведения которого к виду (4.1) достаточно положить у = \пу, х^ = 1, х2 = и}
= InCi, 02 = С2. После построения оценок параметров 0г, 02 следует вернуться к параметрам исходной ММ: С\ = С2 = 02.
Пример 4.1.2. Уравнение Аррениуса, определяющее кинетику химических реакций, имеет вид
А « Аоехр £(7 + 273)) ’
где К - константа скорости реакции, Т - температура в °C, Е - энергия активации, R - универсальная газовая постоянная. Величина R известна из теории, a Kq} Е подлежат определению из опытов. Прологарифмированное уравнение (4.9) сводится к (4.1) подстановкой:
У = In A', Х\ = 1, х2 =
Пример 4.1.3. Тригонометрическая модель
у = Asin(cvf 4- <р),	(4.10)
в которой си, t известны, А, у? неизвестны, сводится к (4.1), если записать (4.10) в виде у = Acos<psinutf + Asin (pcoscvf и обозначить: □?! = sinutf, х2 = coso4, 0! = Acosip, 02 = A sin у?.
+ 273Т’ 171
149
Обратный переход после построения оценок 62 выполняется по формулам
А = #1 + #2» Ф = arctg^2-.
#1
Пример 4.1.4. Пусть в предыдущем примере ш неизвестна. Тогда следует сначала оценить исключив из (4.10) остальные параметры. Это можно сделать, приведя двукратным дифференцированием (4.10) к виду у +ш2у = 0 и оценив cj2 одним из методов, описанных ниже в п. 3.1.3. После этого можно применить подход предыдущего примера.
Пример 4.1.5. Гиперболическая зависимость у = & + преобразуется к виду	+ /3, который сводится к (4.1)
заменой у = Xi =	= /3, в2 = а.
4.1.3.	Преобразование динамических моделей
Проще всего обстоит дело с дискретными по времени линейными моделями, заданными передаточной функцией IV(z-1) = = S(z'1)/A(z"1), где /(г"1) = 1	+ ... +	S^z’1) =
= bQ +	+ ... +	или соответствующим разностным
уравнением
Ук + й\Ук-1 + ••• + атуУк-ту = Ьдик + Ь^к-Х + ... + bm*Uk-mu- (4.11)
ММ (4.11) непосредственно приводится к (4.1), если положить
n = mu + my4-l; у = Ук,
6 = со1(аь...,ату, ,bQ,...,bmu).
Если ММ задана уравнениями состояния
Xk+i = Axk + Ьик, y = Cxk,	(4.12)
то следует привести их к виду (4.11), как это описано в п. 2.2.2. Уравнение (4.11) содержит меньше неизвестных параметров и включает только входные и выходные, т.е. измеряемые, переменные. Если же измерению доступен непосредственно вектор состояния хк € Я”, то целесообразно представить векторное уравнение (4.12) как совокупность из п покомпонентных скалярных уравнений, коэффициенты которых
150
(строки матриц А, В) оцениваются независимо. Аналогичные соображения можно применить и к нелинейным моделям.
Лля оценки параметров непрерывных по времени динамических систем существуют два подхода. Первый состоит в переходе от непрерывной ММ к дискретной и оценивании параметров дискретной ММ. Способы дискретизации приведены в п. 3.3.3. Затем полученные оценки в параметров дискретной ММ пересчитываются в оценки исходной ММ путем континуализации (см. п. 3.3.3).
Второй подход состоит в сведении исходной ММ системы к некоторой вспомогательной статической ММ. Лля этого вводится функционал качества 1 (?(•)> характеризующий погрешность приближения ММ к исходной системе, вычисляемую по траектории системы на заданном промежутке [0,Т]. Примером такого функционала является квадратичная ошибка Qi = fQ e2(t)dt, где = y(t) - y(t) - реальный выход системы при входном воздействии -u(f), y(t) - процесс в ММ. Поскольку ММ задается вектором параметров 0, т.е. £(f) = y(t} 0) (начальные условия считаем фиксированными и одинаковыми в системе и в ММ), то функционал Q оказывается функцией конечномерного вектора параметров Q = Теперь задачу оценивания можно поставить как поиск
6 = arg min Q(0),	(4.13)
о
т.е. как задачу оптимизации статической системы. Лля ее решения можно использовать известные методы оптимизации [80, 22].
Перечислим некоторые часто используемые виды функционалов качества:
-	интегральная абсолютная ошибка Q2 = Jq
-	максимальная ошибка Q3 = sup0<t<T |e(f)|;
-	терминальная ошибка на промежутке [0,Т]	= |s(T)|.
Если ММ системы имеет вид уравнения состояния = = F(i, и, 0), где х € Rn - вектор состояния, то можно сформировать показатель качества из ошибки по состоянию. На
1 Функционалом называется отображение произвольного множества во множество чисел. В данном случае аргументом функционала является
функция времени, значением - положительное число.
151
пример, квадратичный функционал можно записать в виде
т
Qs= ||z(f) - i(t)||2dt	(4.14)
Jo
или в более общей форме:
т
<Эб = I (т(/) - £(f))/?(x(f) - i(f))dt, (4-15) Jo
где R = 7?Т > 0 - некоторая симметричная положительно определенная матрица весовых коэффициентов.
Описанный подход отличается универсальностью, но обладает рядом следующих недостатков.
1.	Значение функционала качества зависит от длины промежутка Г и от начальных условий х(0). Вследствие этого величину Т приходится брать достаточно большой, чтобы за время [О, Т] переходный процесс успел закончиться. Минимизация должна проводиться либо при одном, фиксированном значении я(0), либо при “наихудшем” по некоторому ограниченному множеству значении х(0) (т.е. при минимаксном критерии качества), либо по усредненному показателю Q(0) = MQ(6) (при заданном “априорном” распределении вектора т(0)).
2.	Чтобы вычислить Q(0), требуется определить траекторию системы на всем промежутке [О, У], т.е. оценка точности и коррекция ММ могут проводиться только после окончания переходного процесса в системе.
3.	Зависимость обычно весьма сложна (в частности, неквадратична), вследствие чего условие оптимальности dQ/dO = 0 представляет собой нелинейное относительно в уравнение. Это значит, что уравнение ММ не сводится к уравнению вида (4.1), даже если исходная ММ линейна по параметрам. Можно, конечно, линеаризовать условие оптимальности (этот подход основан на построении функции чувствительности [95]), однако при этом возникает дополнительная погрешность, с трудом поддающаяся оценке.
Последний недостаток особенно снижает привлекательность подхода, поскольку существуют другие варианты, позволяющие сводить задачу к линейной. Например, можно перейти к дискретной ММ (4.11) и задать показатель качества
152
в виде
N
W) = l>-^)’.	(4.16)
к=т
Избавиться от последнего недостатка можно также, перейдя от функционалов ошибки, характеризующих разницу в выходах (или в состояниях) исходной системы и модели, к функционалам невязки, зависящим от погрешности уравнения ММ. Например, заменив в (4.14) векторы состояния z(f), i(t) их производными, приходим к показателю
т
Q7= [ ||i(i) - F(x(t),u(t),e)\\2dt,	(4.17)
Jq
который в случае линейности F(rr(Z), п(/), 0) по в является квадратичным по 6. Надо сказать, что неквадратичность задачи не мешает применению целого ряда методов оптимизации [80]. По поводу оценивания параметров нелинейных систем см. также [27].
Продемонстрируем различные подходы на примере.
Пример 4.1.6. Пусть структура ММ задана дифференциальным уравнением первого порядка
у = ау + Ьи)	(4.18)
параметры которого а, b подлежат оцениванию по результатам измерений ук = у(1к\ ик = u(t*), при = kh> к = 0, 1,... , N. Перечислим возможные способы формализации задачи оценивания параметров в (4.18).
а)	Дискретизируя (4.18) по методу Эйлера (см. п. 2.2.3), получаем дискретную ММ в виде:
Ук+i = (1 + ah)yk + bhuk.	(4.19)
Для сведения (4.18) к (4.1) положим 0! = 1-аЛ, 02 = 6h, y = yk+i, xi = Ук> х2 =Uk- После расчета оценок параметров (4.19) 0Ь 02 необходимо пересчитать их в оценки параметров исходной системы (4.18) по обращенным формулам
(4.20)
б)	Заметим, что в формулах (4.20) присутствует деление на величину шага Л, которая может быть малой величиной.
153
Чтобы избежать потери точности, можно попробовать взять дискретную ММ в виде
У* = аУк + Ъик.
(4-21)
Лля сведения к (4.1) полагаем
У = Ук+\ У*  01 = «И, #2 = Ь; хг = ук, х2 = ик.
Отметим также, что формы (4.19), (4.21) не изменяются, если “продифференцировать” их по времени, перейдя к приращениям yk —* Ук — Ук-ъик —+ Uk — Этот прием используется для повышения точности оценок за счет увеличения разнообразия векторов Хк.
в)	Можно дискретизировать (4.18) по методу Тастина (см. п. 3.3.3). Лля этого в передаточной функции системы (4.18)
L	П I   — 1
W(р) =	делается подстановкар —*	-1 и результат
умножается на j Получим дискретную передаточную функцию
Wd^ ~ (2 - ah)zh- 2 +ah' соответствующую разностному уравнению
__2 +ah.. | 2bh ..
Ук+1 - Т=^КУк + Т^~аКк'
(4.22)
Заметим, что если вычесть из обеих частей (4.22) ук и разделить на Л, то получим модель
“V31 =	+ Нл72“*’	(4-23)
структура которой совпадает с (4.21). Отличие от варианта б) есть лишь в формулах пересчета оценок - прямых:
д __ Q д ________ Ь
“ 1 — аЛ/2’ 7 “ 1 - аЛ/2
и обратных:
а = —, b = e2(\ + elh/2'\.
1+М/2	'
154
г) Проинтегрировав обе части (4.18) по отрезку [0,^], получим ММ (4.1) при у = ук - yQ:
rtk	[tk
xi= y(j)dt,x2 = /	= a;02 = b.
Jo	Jo
Приближенно можно взять = h	~
д) Наконец, можно поставить задачу оценивания параметров (4.18) как минимизацию функции интегральной ошибки:
т Qi(a,6)= I (y(t)
Jo
где i/(f,a,6) - решение уравнения = ay + Ьи с начальным условием i/(0, а, 6) = 2/(0), или интегральной невязки
т	2
<?2(aIi’) = 2 ($f “ ®У(0 “ М*)) dt
4.2.	Регрессионный анализ и метод наименьших квадратов
После приведения ММ к стандартной форме (4.1) вычисляются оценки параметров ММ по результатам ряда наблюдений за входами и выходами системы. Пусть имеются результаты N наблюдений хц,х|П, j/,, i = 1,...,ЛГ, которые объединены в матрицу из N строк и п столбцов (X х n-матрицу) X = {х^} и ЛГ-вектор Y = col(?/i,Удг).
Начиная с классической работы К. Гаусса (1809 г.), популярен способ вычисления оценок, называемый методом наименьших квадратов (МНК) и состоящий в выборе оценки |0|, минимизирующей выражение (4.16) - среднеквадратическую ошибку . МНК-оценка удовлетворяет системе так называемых “нормальных уравнений”
ХТХё = ХТУ	(4.24)
и имеет вид
6 = CXrY,	(4.25)
где С = (Х^Х)”1 - так называемая дисперсионная матрица. Для вычисления в не требуется никаких предположений
155
о свойствах измерений, однако чтобы сделать выводы о достоверности и точности ММ, такие предположения нужны. Часто принимается следующая гипотеза: если представить модель измерений в виде
Y = X0 + p,	(4.26)
где = со1(^!,	~ вектор погрешностей (невязок) ММ, то
<Pi случайны, независимы, центрированы (M^?t = 0) и равноточны (имеют одинаковую дисперсию а2 = Му?2). Эти предположения традиционны для раздела теоретической и прикладной статистики, называемого регрессионным анализом (РА). При их выполнении МНК-оценки 0 обладают следующими свойствами:
1)	М0 = 0 (несмещенность);
2)	cov(0) = бт2С, где cov(0) = М(0 — 0)(0 — 0)Т - ковариационная матрица оценок, в частности
M(0t-е^2 = асц;	(4.27)
3)	МНК-оценки эффективны: для любой несмещенной оценки 0. выполняется неравенство М||0* — 0||2 > М\\0 - 0||2;
4)	если обозначить через Y = Х0 //-вектор прогноза выходных величин Y по модели (4.26), а через R = ||У — Y||2 = =	” З/»)2 “ среднеквадратическую ошибку прогноза
(остаточную сумму квадратов), то MR = (N - г)<т2, где г -ранг матрицы X X. Как правило (если входы модели (4.1) не связаны линейной зависимостью), г = п и, значит, оценку дисперсии погрешности модели (4.26) можно брать в виде
*2 = ТГ^-	(4-28)
После построения ММ (4.26) немедленно возникает вопрос о ее точности. Этот вопрос имеет две стороны:
а) нельзя ли без существенной потери точности заменить модель (4.26) более простой, т.е. упростить?
б) является ли модель (4.26) адекватной исходной системе, т.е. не следует ли ее усложнить?
Ответ в обоих случаях требует дополнительных предположений. В первом варианте будем считать, что модель (4.26) адекватна и выполнены предположения РА. Тогда можно поставить задачу о проверке гипотезы 0, = 0 равенства нулю
156
некоторого коэффициента ММ. На языке математической статистики это задача проверки значимости коэффициента 0it В силу свойств 2), 3) МНК-оценок и при дополнительном условии нормальности (которое не кажется слишком обременительным на фоне остальных допущений) для проверки гипотезы 6i = 0 можно пользоваться следующей процедурой.
1.	По заданному уровню надежности р и числу наблюдений N из таблиц распределения Стьюдента (см., например, [1]) или с помощью программы tinv тулбокса STATISTICS системы MATLAB выбирается значение ар, такое что P{|f| < ор} = р, где t - случайная величина, распределенная по закону Стьюдента с N степенями свободы. Обычно берут р = 0.9,0.95,0.99.
2.	Определяются границы доверительного интервала для параметра 0t при уровне надежности р:
[f>i - otp&y/cii, 6i 4- apay/cii\.	(4.29)
3.	Если интервал (4.29) содержит точку 0, = 0, т.е. если |0J < арамей, то гипотеза 0 = 0 принимается, т.е. в ММ можно положить 0: = 0. В противном случае коэффициент 0: с надежностью р считается значимым, т.е. гипотеза 0, = 0 отвергается.
Отметим, что при N > 20...30 вместо таблиц и программ распределения Стьюдента можно использовать таблицы или программы нормального распределения и брать, в частности, а0.э = 1-65, а0.95 = 1 96, ао.ээ = 2.58. Впрочем, при меньших ЛГ, как указывалось в п. 3.5, методы математической статистики вряд ли дадут надежные и нетривиальные выводы.
Лля ответа на второй вопрос требуется выполнение предположений регрессионного анализа и возможность проведения в каждой точке хц,...,Тт нескольких независимых случайных измерений 2/ц, чтобы по ним построить альтернативную оценку дисперсии ошибки
N I/
~	* = 0^- (4-3°)
1=1 j = l	j = l
Гипотеза об адекватности ММ (4.26) отвергается, если ве-- 2
личина F = % (так называемая дробь Фишера) оказывается
157
достаточно большой: F > Fp. Порог Fp ищется по заданному уровню надежности р из таблиц распределения Фишера [1]. В тулбоксе статистических вычислений STATISTICS пакета MATLAB имеется соответствующая функция flnv (см. п. D.6).
Возникает еще один практически важный вопрос: нельзя ли повысить точность и надежность результатов эксперимента путем его планирования, т.е. специального выбора точек хц, Очевидно, для повышения точности оценок нужно стараться сделать дисперсионную матрицу С “поменьше”, а матрицу X - “побольше”. О том, как это сделать, написано в книгах по планированию регрессионных экспериментов (например, [1, 110]). Некоторые функции имеются в тулбоксе STATISTICS.
До сих пор мы придерживались мнения о стохастичности модели (4.26). Если же более оправдан детерминистский подход и на возмущения в (4.26) накладывается единственное ограничение
Ы <	(4.31)
то точность оценивания, как, впрочем, и сами оценки, можно определить из решения соответствующей минимаксной задачи:
п
min max |v: — > 0, х,, |.
Минимаксный подход, хотя и требует более сложных вычислений (решения задачи линейного программирования или минимизации негладкой функции [80]), дает гарантированный результат при любом числе наблюдений N.
Во всех случаях выбор подхода, числа учитываемых параметров ММ, плана эксперимента является неформальным актом, основанным на опыте и интуиции исследователя. Здесь оказывается полезным следующий “принцип надежности”: “чем проще модель, тем реже она обманет”, или “чем лучше модель объясняет прошлое, тем хуже она прогнозирует будущее”. В иной форме эту же мысль выразил Р. Акофф: “Степень понимания явления обратно пропорциональна числу переменных в его описании”. Практически часто применяют следующее правило: число независимых наблюдений должно быть в 3-5 раз больше числа параметров модели. Наконец,
158
не следует забывать принцип “равнопрочности”, который настойчиво пропагандировал знаменитый российский математик, механик и кораблестроитель А.Н. Крылов: “Точность результатов не может быть выше точности исходных данных; точности промежуточных вычислений должны быть согласованы”.
4.3.	Адаптивные модели и рекуррентные методы
Если наблюдений при построении ММ оказывается много и они поступают последовательно во времени, то часто оказывается удобным обрабатывать их по мере поступления. Иногда такой способ обработки единственно возможный, например, когда исходные данные из-за большого объема не помещаются в памяти компютера или когда свойства системы меняются во времени (“дрейфуют”) и параметры ММ требуют постоянной коррекции. Модели, которые изменяются (подстраиваются, адаптируются) в процессе наблюдений за системой, называются адаптивными. Соответственно методы оценивания параметров таких моделей путем коррекции по текущим наблюдениям называются адаптивными, или рекуррентными [6, 59, 95].
Общий вид рекуррентного алгоритма следующий:
0* = Ф(0*_1,з/*,1ц),	(4.32)
где к = 1,2,... - номер шага наблюдения. Многие алгоритмы можно привести к рекуррентной форме.
Пример 4.3.1. Пусть ММ системы имеет вид j/t = 0 + </^, где 0 = Мух - оцениваемый параметр, - помеха, Му>х = 0. Обычная оценка среднего арифметического 0t = £*=1 т/, может быть преобразована к рекуррентной форме:
6k =	+ jfak “ 0*-i)	(4.33)
(при 0Q = 0). Обобщением (4.33) является метод стохастической аппроксимации [80, 58]:
6k = 6k_\ + 7к(Ук - 0*-1),	(4.34)
где > 0 - коэффициенты поправок (шаги) алгоритма, которые для обеспечения сходимости оценок должны удовлетво
159
рять условиям Роббинса-Монро:
^7t = oo; ^7*<оо. к=1	fc=l
Пример 4.3.2. Можно показать, что МНК-оценки 0k параметров ММ (4.1) удовлетворяют рекуррентным соотношениям
&к = 0*-i + rtz(fc)(y* -
р _ р _ k~lX(k)x(k) ГД;_1 к
(4.35)
(4.36)
где х(к) = со1(х|.1,..., Xkn) - вектор к-го измерения входов ММ, Г* = Г* > 0 - симметричная, положительно определенная п х 71-матрица. При этом Г* = х(г)х(г)Т) ” дисперсионная матрица, и, значит, соотношения (4.35) соответствуют МНК лишь при определенном выборе начальной матрицы Го. Однако если к —► оо, то оценки, получаемые из (4.35), приближаются к МНК-оценкам при произвольных начальных условиях 0О, Го. Практически часто берут Го = 7I, где I - единичная матрица, 7 > 0 - достаточно большое число.
Если (4.36) не учитывать, а брать Г* = 7Д, где 7* > О удовлетворяют условиям Роббинса-Монро, то получим обобщенный (многомерный) алгоритм стохастической аппроксимации:
9к =	+ 1к{Ук - ^к-\х(к})х(к}.	(4.37)
Алгоритм (4.37), в свою очередь, является частным случаем градиентного алгоритма, 1
6k = ^-1 ~ 7kVeQ(J)k-^yk>Xk)	(4.38)
и получается из (4.38) при выборе целевой функции текущей ошибки Q(0,7/,t) в виде
Q^,y,x) = |(у - 0Tz)2.
1 Через обозначается градиент функции векторного аргумента в = со1(0(х\ ...,0(п)), т.е. вектор из частных производных
v,q = co1(^ti ^у)-
160
Если погрешности модели (4.1) не случайны, а обладают лишь ограниченностью, т.е. стохастический подход неприменим, то алгоритмы (4.37), (4.38) сохраняют работоспособность при определенном выборе длин шагов 7ь Например, при выполнении (4.31) алгоритм (4.37) будет обеспечивать при достаточно большом числе наблюдений к неравенство \Ук ~	если Д > векторы х(к) ограничены
||я?(&)|| < const и коэффициенты шага выбраны в виде
71 = (	"Р"	(4.39)
I 0 при |yt -	< д,
где О < 7 <	Алгоритм получил известность под
названием “полоска”. Свойства подобных и более общих алгоритмов изучены в рамках развитого В.А. Якубовичем и его учениками метода рекуррентных целевых неравенств [6, 95, 32, 28].
Градиентные адаптивные алгоритмы (4.38) применяются для идентификации статических и дискретных динамических систем. Что делать, если ММ системы непрерывна? Аналогом градиентных алгоритмов для непрерывных динамических систем являются так называемые алгоритмы скоростного градиента [6, 32, 28]. Поясним идею метода скоростного градиента для случая, когда ММ системы описывается уравнением состояния
i = F(z,0,t)	(4.40)
и требуется достичь цели
Q(z(f),0(f), t) —► 0 при t —► оо,	(4-41)
где Q(x,t) > 0 - некоторая гладкая целевая функция. Поскольку Q не зависит от 0, ее градиент равен нулю и градиентный алгоритм типа (4.38) неприменим. Однако вместо задачи уменьшения Q можно поставить вспомогательную задачу уменьшения величины
Q(xW = ^- + VeQrF(x,0,t)
- скорости изменения Q вдоль траекторий (4.40). Градиентный алгоритм, построенный по целевой функции Q(x,0,t), на-
6 Б. Р. Андриевский и др.
161
зывается алгоритмом скоростного градиента и может применяться в дифференциальной форме
% = -7VeQ,	(4.42)
где у > 0, или в конечной форме
О = -^eQ.	(4.43)
Можно предположить, что если существует 0*, такое что <j(x,0*,^) убывает для всех то, начиная с некоторого момента времени, будет убывать и Q(x,i), что приведет к достижению исходной цели (4.41). Это действительно будет так при некоторых дополнительных предположениях [6, 63, 106].
Градиентные алгоритмы и алгоритмы скоростного градиента можно применять не только для оценивания параметров, но и для оценивания состояний динамических систем, для фильтрации, управления и т.д. Благодаря своей простоте они находят применение в бортовых вычислительных устройствах, при микропроцессорной реализации систем управления, контроля, диагностики в различных областях. В последние годы адаптивный подход применяется также в вычислительных процедурах [8].
4.4.	Принципы выбора модели
В заключение попытаемся сформулировать некоторые правила, помогающие на этапе выбора структуры ММ, - принципы выбора модели. Первейшим из них является принцип простоты: из различных вариантов структуры ММ сначала следует попробовать простейший. Например, если исследуется сложная динамическая (инерционная) система, то сначала нужно проверить, нельзя ли ограничиться статической моделью, не учитывающей динамику. Как указывалось в 3.1.1, статическую модель заведомо можно применить, если система устойчива, изменения ее входов достаточно медленны, а выходы измеряются достаточно редко. Однако эти требования необязательны и в рамках заданной цели, для которой ММ предназначена, могут быть ослаблены.
При уточнении структуры статической модели руководствуются тем же принципом. Например, если зависимость выхода от входа монотонна, то сначала пробуют линейную
162
ММ: У = #о + 01^. Если зависимость выхода от входа носит экстремальный характер, то берут квадратичную функцию у = 6Q +	4- 02и2, а если есть основания думать, что
зависимость выхода от входа имеет перегиб, то начинают с кубической функции у = 0О + 9\и + (^и2 +
Аналогично действуют и в случае нескольких входов и выходов (см. п. 4.1 , а также [46], с. 39 - 45). Возможен различный выбор ММ в разных областях переменных. Например, если построение ММ выполняется с целью оптимизации, то вдали от экстремума можно ограничиться линейной моделью, а при приближении к экстремуму переходить на квадратичную. В любом случае предпочтительнее модели, в которые постоянные коэффициенты входят линейно (см. п. 4.1). В последние годы приобрели популярность модели, основанные на нейронных сетях [99, 100].
Если точность моделей с постоянными коэффициентами недостаточна, т.е. исследуемая система нестационарна, то в модель вводят зависимость коэффициентов от времени (дрейф) Дрейф может быть монотонным или периодическим, причем в большинстве случаев достаточно ограничиться простейшими моделями дрейфа - линейными 0, = а, + bit или гармоническими 0, = cii cos(o>tt) + bi sin(u\f). Если неясно, как выбрать частоты си,, или есть аргументы в пользу того, что параметры испытывают нерегулярные колебания, то стоит попробовать хаотические модели дрейфа.
Если возникает дилемма: “выбрать ММ детерминированную или стохастическую”, то предпочтение следует отдать детерминированной ММ. И только если не удается обойтись без случайности, то вводят ее, причем сначала в наиболее простой форме, например приведенной к выходу: у = F(u,6)+ +</>, где у? - случайное возмущение. Точно так же переходить к нечеткой ММ следует только при неадекватности стохастических ММ (что в действительности бывает не так уж редко).
Иногда структуру системы характеризуют, кроме прочего, целым числом, определяющим порядок ее динамической модели (например, размерностью вектора состояния ММ, глубиной памяти ММ, максимальной внутренней задержкой и т.п.). В соответствии с принципом простоты, при выборе ММ следует начинать с наименьших значений порядка, учитывая, что многие классы динамических процессов
163
описываются моделями первого-второго порядков. Например, для описания монотонных (так называемых “апериодических” ) переходных процессов часто достаточно апериоди-
ческого звена - линейной стационарной дифференциальной
ММ первого порядка, имеющей передаточную функцию (см.
п.
3.3.2) от входа к выходу IV(р)
_ К
Тр+ 1
, где К - коэф-
фициент усиления статической ММ, Т - постоянная времени
звена. 1
Для описания простейших (гармонических) колебательных процессов используется колебательное звено - линейное
дифференциальное уравнение второго порядка, соответствующее передаточной функции IV(р) =	—— , где £
1 р + Zql р + 1
- показатель затухания колебаний (|f| < 1). Если форма колебания отличается от синусоиды, то скорее всего это озна
чает, что в модель надо внести нелинейность и изучать предельные циклы системы. Если же и частота колебаний “пла
вает”, то надо проверить модель на хаотичность и вычислять показатели Ляпунова, спектр и фрактальную размерность. В любом случае переходить к ММ более высокого порядка сле
дует лишь тогда, когда экспериментальные данные не позволят принять гипотезу об описании системы моделью данного порядка. Иначе говоря, “не решай сложную задачу, не решив сначала простую” (см. п. 1.3).
Отметим, что если ММ системы есть передаточная функ
ция в непрерывном времени, то степень ее числителя не должна превосходить степени знаменателя. Иначе ММ будет включать чистое дифференцирование и ее нельзя будет привести к уравнениям состояния. Кроме того, на входные сигналы конечной мощности такая ММ будет реагировать сигналами бесконечной мощности, что говорит о ее негру-бостпи. Понятие грубости ММ было введено в конце 20-х годов А.А.Андроновым и означает, что малые изменения исходных данных (входных переменных параметров) приводят к малым изменениям результатов (выходов). Грубость - очень важное свойство модели, так как реальные исходные данные для ее построения и применения всегда содержат
1 Величина Т определяется тем свойством, что за время ЗТ переходная составляющая процесса в апериодическом звене уменьшится до 5% от начального уровня.
164
ошибки. Если бы эти ошибки существенно сказывались на результатах, моделью просто нельзя было бы пользоваться. Резюмировать сказанное можно в виде принципа грубости: “без ошибки нет модели, а поэтому негрубые модели плохие”.
Перечисленные правила следует принимать не как законы, а как рекомендации. В мире моделей царствует плюрализм, и для достижения успеха нужно испытать несколько вариантов моделей. При этом самая полная модель необязательно самая точная, а самая точная необязательно самая хорошая. Здесь уместно перефразировать слова Э.Хемингуэя: 1 можно пренебрегать чем угодно, нужно только точно знать, как это повлияет на результат.
4.5.	Культура компьютерных вычислений
До сих пор мы говорили о постановках задач и об алгоритмах их решения. Однако успех решения задачи с применением компьютера определяется, очевидно, успехом каждого этапа цепочки “модель-алгоритм-программа”. Это значит, что самая точная математическая модель, самый великолепный алгоритм решения задачи могут быть безнадежно испорчены при плохой программной реализации. Одной из возможных причин этого является несовпадение машинной арифметики с обычной из-за конечности разрядной сетки компьютера. Возникающие ошибки могут привести к большим неприятностям, если их не контролировать и не соблюдать элементарные правила организации вычислений. Правила эти неформальны и напоминают правила хорошего тона. Уровень их выполнения определяет уровень вычислительной культуры пользователя компьютера. Поясним на примерах основные из этих правил. Начнем с двух парадоксальных примеров. На первый взгляд, в них нарушаются законы классической математики.
Пример 4.5.1. Выполняя вычисления на обычном бытовом микрокалькуляторе,2 легко убедиться, что 108+1—108 = О, 102°+106—1О20 = 0, но в то же время 108—108-Ы = 1, Ю20—1020+Ю6 =
1 Э.Хемингуэй давал следующий совет начинающим писателям: “Можно опускать что угодно, нужно только точно знать, что опускаешь”.
2Действия выполняются слева направо.
165
= 106. Таким образом, в машинной арифметике нарушаются законы коммутативности и ассоциативности действий. 1 * * Применимость основных законов элементарной математики ставится под сомнение.
Пример 4.5.2. Хорошо известно, что limn^ooCn = е, где /	1 \п
еп = (1 + ^J , е = 2.718281828... - основание натуральных логарифмов. Попробуем приближенно вычислить этот предел. Проводя вычисления на микрокалькуляторе или на персональном компьютере с обычной точностью, получаем:
п	
105	2.7182682
107	2.7182817
1.1 • 107	3.0041656
1.2 • 107	3.3201163
2.0 • 107	7.3890551
3.0 • 107	1
При вычислении по данному алгоритму с помощью пакета MATLAB 5 в среде PC Windows ошибка хоть и оказывается меньшей, но характер результата, как это видно из рис. 4.1, остается тем же.
Рис. 4.1. Относительная ошибка вычисления е в обычном (а) и логарифмическом (6) масштабах.
Таким образом, в компьютере нарушается представление о пределе последовательности как о числе, к которому при
1 Заметим, что при использовании пакета MATLAB 5 на вычислитель-
ной платформе PC Intel в среде Windows 95/98 указанный эффект наблю-
дается при действии с величинами порядка 1015.
166
ближаются все ее удаленные члены. Применимость основного понятия высшей математики - предела - также ставится под сомнение ... Для выяснения границ применимости привычных понятий удобно ввести следующее определение.
Определение. Машинным эпсилоном называется наименьшее представимое в компьютере число е, удовлетворяющее условию 1 +е > 1, т.е. ет = min{e : 1 + е > 1}.
Правило 1. Величина ет характеризует наименьшую относительную погрешность вычислений и зависит от конкретного экземпляра компьютера.
Величина ет может быть вычислена с помощью простой программы. Такая программа содержится в современных пакетах программ и производит настройку внутренних параметров пакета под данный компьютер. Например, в системе MATLAB, чтобы узнать величину ет для данного компьютера, достаточно просто набрать команду eps). Для версии MATLAB 5 PC Windows, ет « 2.22 • 10"16. В микрокалькуляторах и персональных компьютерах величина ет колеблется вблизи 10'7, в зависимости от конкретного компьютера (при обычной точности вычислений). Очевидно, что если ет > 10“*, то на данном компьютере нельзя гарантировать, что в результатах будет содержаться не менее к верных значащих цифр. Напомним, что цифра числа называется верной, если абсолютная погрешность числа не превосходит половины единицы того разряда, в котором эта цифра находится.
Два следующих примера показывают, что эквивалентные математические формулы могут быть неэквивалентными по точности вычислений.
Пример 4.5.3. Пусть ет = 10”2 и требуется решить уравнение х2 + 9.9т -1 = 0. Очевидно, все результаты можно округлять до двух значащих цифр. Если применять для решения уравнения х2 + рх + q = 0 формулу т12 =	~2	, где
D2 = р2 — 4g, то получим y/D « 10, Xi « 0.05, х2 ~ —9.95. Однако верный ответ для Ti будет хх ~ 0.1. Ошибка получена при вычитании близких чисел. Если же вычислять я?1 по эквивалентной формуле хх 2 = —2-®-у=, то получаем
p±vD 9 X1 ПТ
слено уже с двукратной погрешностью.
1?у ~ 0.1. Правда, по этой формуле х2 будет вычи-
167
Пример 4.5.4. Известно, что при статистических расчетах оценку дисперсии случайной величины по измерениям можно вычислить по формуле а2 = х2 — я2, где х = или по эквивалентной формуле <т2 =	~~ХУ-
Попробуем оценить дисперсию выборки Xi = 1234.1, х2 = 1234.2, х3 = 1234.3. Вычисляя на микрокалькуляторе, име-ем: х = 1234.2, х* = 1.5232496, IE!? = 15232496 и по пер-вой формуле а2 = 0. По второй формуле получаем результат а2 = j(0.12+02 + 0.12) « 0.67 • 10“2, который легко получить и устно.
Правило 2. При выборе формулы и порядка вычислений избегать вычитания близких чисел и деления на малые величины.
Пример 4.5.5. Найдем решение двух очень похожих систем из двух линейных уравнений:
Система 1:	Решение:
Г х + 5 у = 17,	Г х = 17,
( 1.5х 4- 7.501 у = 25.5.	( у = 0.
Система 2:	Решение:
Г т 4-5т/= 17,	Г х = 32,
( 1.5 т 4-7.4991/ = 25.5.	( у = -3.
Столь большие различия в ответах возникли из-за того, что матрицы коэффициентов систем Л,, г = 1,2 плохо обусловлены: величины Д, = det Л» малы. Действительно, Д1 = 0.001, Д2 = -0.001 (Д = аца22 — а12а21).
Правило 3. Избегать плохо обусловленных матриц. Если это не удается, то использовать для работы с ними специальные методы [112, 104, 20].
Пример 4.5.6. Числа, представимые, например, в типичном микрокалькуляторе, лежат в диапазоне 10“88 < |т| < 1086. При выходе результата действия за левую границу диапазона выдается сообщение “underflow” (“исчезновение порядка”), при выходе за правую границу - “overflow” (“переполнение”). 1 При переполнении обычно говорят, что плохи исход
1 В пакете MATLAB при исчезновении порядка переменной присваивается нулевое значение, а при переполнении - значение Inf (“бесконечность”).
168
ные данные, а при исчезновении порядка полагают результат равным нулю. Но не следует торопиться. Пусть, например, вычисляется величинах = ^j при а = 1О~зо,6= Ю“60,с= 1О”40, d = Ю-50. Если выполнять действия в следующем порядке: х = а • b/c/d, то компьютер сообщит об исчезновении порядка; если вычислить х = 1/с/d • а - Ь, то получим переполнение. Если же вычислить, например, х = а/с- b/d, то получим правильный ответ х = 1. Этот же ответ можно получить, если отмасштабировать переменные, например, умножив на 1О40.
Правило 4. При переполнении или исчезновении порядка следует попытаться изменить последовательность действий, ввести масштабные множители и т.д. При исчезновении порядка не всегда следует обнулять результат.
Пример 4.5.7. Пусть снова ет = 10-2 и требуется вычислить сумму
S = 100 + 0.1 +2>+ 0.1 2000 слагаемых
Если вести суммирование слева направо, то получим 5 = 100, поскольку с учетом округления до двух значащих цифр 100+ +0.1 = 100. Если вычислять справа налево, то после сложения тысячи слагаемых получим 100, дальнейшее прибавление по 0.1 ничего не изменит и результат окажется: S = 200, что, конечно, уже ближе к истине. Но правильный результат S = 300 можно получить, только если сложить 1000 чисел по 0.1, затем еще 1000 чисел по 0.1, а после этого сложить промежуточные суммы.
Правило 5. При сложении следует располагать слагаемые в порядке возрастания абсолютных величин, стараясь, чтобы при каждом сложении порядки величин различались мало. При необходимости цикл суммирования разбивается на несколько более коротких.
Аналогичное правило действует при перемножении большого числа сомножителей.
Пример 4.5.8. При расчетах методами последовательных приближений часто ведут вычисления до тех пор, пока поправка (разность между текущими значениями и последующими приближениями) не станет меньше заданного порога. При этом, как правило, не обеспечивается заданная погрешность результата.
169
Пусть, например, требуется вычислить величину S = =	с точностью до 10“3. Если вести вычисления до
тех пор, пока общий член ряда X не станет меньше 10”3, т.е.
к
до г = 32, то получим S = 1.610, в то время как на самом деле S = -g- = 1.650... Если же попытаться вычислить таким образом приближенную сумму ряда 22^ р то погрешность останется бесконечной, как бы мала ни становилась величина р поскольку ряд расходится.
Правило 6. Нужно помнить, что остановка итерационного процесса т2,... по косвенному критерию (например, по критерию |тп — хп_г| < е или |F^rn)| < е - в задаче решения уравнения F(x) = 0, по критерию || (тп)|| < е - в задаче оптимизации f(x) и т. д.) не гарантирует достижения заданной погрешности |тп — limn->oo тп| < е.
Пример 4.5.9. [104]. Пусть требуется вычислить интегралы
Еп = I xnex"xdx, п = 1,2,..., 10 при ет = 10”7. Jo
Для величин Еп можно получить рекуррентное соотноше
ние
Еп = 1 - пЕп_х.	(4.44)
Попытавшись вычислить интегралы рекуррентно, пользуясь (4.44), получим: Ех = 0.367879,..., Е7 = 0.110160, Е* = 0.118720, Eq = —0.0684800, т.е. уже для Eq получен бессмысленный результат. Причина в том, что начальная ошибка округления быстро накапливается: при вычислении Е2 она умножается на 2, затем наЗ, 4,... ,9. Попробуем переписать формулу (4.44) в другом виде:
Еп-г = ЦА	(4-45)
и будем вычислять в обратном порядке, начав с произвольного начального приближения для Еп, п > 10. Например, начав с Е2о — 0, получим:
519 = 0.0500000,
5i8 = 0.0500000,
5i7 = 0.0527778,
516 = 0.0557190,
515 = 0.0590176,
5И= 0.0627322
51з= 0.0669477
5П= 0.0717733
5ц= 0.0773523
5ю= 0.0838771
5Э= 0.0916123
170
После первого шага начальная ошибка уменьшается в 20 раз, после второго - еще в 19 раз, и уже для Ед мы получим все шесть значащих цифр верных. Все дело в том, что формула (4.45), в отличие от (4.44), определяет устойчивый вычислительный процесс и погрешность результата каждого шага меньше погрешности исходных данных. Подробнее об устойчивости численных методов см., например, в [9, 112, 104].
Правило 7. Пользуйтесь только устойчивыми численными алгоритмами!
Заметим, что в современных вычислительных пакетах программ (в частности, в системе MATLAB на платформе PC Intel в средах ОС Windows-95/98) вычисления обычно выполняются с 32-разрядной арифметикой, тем не менее эффект накопления ошибок при неудачно организованных вычислениях может проявиться и пренебрегать вышеизложенными правилами не следует.
Разницы нет никакой между Правдой и Ложью, Если, конечно, и ту и другую раздеть.
Владимир Высоцкий
ГЛАВА 5. ОПТИМИЗАЦИЯ И СТРУКТУРНЫЙ СИНТЕЗ СИСТЕМ
5.1.	Оптимизация технических объектов
5.1.1.	Задача параметрической оптимизации и направления ее решения
Ниже приводится обзор некоторых основных терминов, используемых в оптимизации технических систем [72, 80, 97].
Оптимизация как выбор наилучшего варианта среди некоторого множества подразумевает наличие правил предпочтения одного варианта другому. Такое правило называют критерием оптимальности. В основе его построения лежит целевая функция, которая называется также функцией качества. Аргументами этой функции являются управляемые параметры- внутренние параметры х, которые можно изменять на данном этапе проектирования. Через f[x) обозначим целевую функцию, а область ее определения - через Хр. Если множество Xd - дискретное, то задача относится к области дискретного [целочисленного - в частном случае) программирования.
е-Окрестностью точки xQ называется множество Se(x) точек, которые находятся от точки xQ на расстоянии, не превышающем заданное € > 0 :
S«(*o) = {* = ||* - io|| < е}-	(5.1)
Максимумом функции f[x) называют ее значение /(х*), если существует число е > 0, такое что для любой точки х Е Se[x*) [х / х*) выполняется неравенство
f(x) - /(Г) < 0.	(5.2)
Точку х* называют экстремальной точкой [локальным экстремумом). Функция /(х) одно экстремальна [унимодальна), если она имеет один экстремум, и много экстремальна - если имеет более одного максимума (минимума).
172
Точкой глобального экстремума называется точка, в которой целевая функция имеет наибольшее (при решении задачи максимизации) значение среди всех локальных экстремумов.
К задачам безусловной оптимизации относятся задачи, в которых экстремум ищется в пределах неограниченного пространства параметров, т.е. задачи, в которых отсутствуют ограничения. Найденные при этом экстремумы называются безусловными.
В задачах проектирования обычно присутствуют ограничения. Прямые ограничения описываются неравенствами
xdi <	< xUi	(5.3)
(возможны и нестрогие неравенства, содержащие знаки <).
Допустимой областью Хр в пространстве параметров называют область, удовлетворяющую прямым ограничениям:
Хр = {я : х € Xd| Xd< <	< Хиц t € [1 : n]}, n = dimXp. (5.4)
Кроме прямых ограничений имеются также функциональные ограничения, имеющие вид неравенств или равенств:
> 0, V'(z) = 0.	(5.5)
Наличие ограничений приводит к задаче условной оптимизации, в результате решения которой находится условный экстремум. Область
Хр = {т : х 6 XD| <р(х) > 0,^(х) = 0}	(5.6)
в задачах проектирования называют также областью работоспособности.
5.1.2.	Методы поисковой оптимизации
Классические методы безусловной оптимизации применяют, когда дано аналитическое выражение целевой функции. Как известно [80, ИЗ], необходимым условием безусловного экстремума является равенство нулю вектора градиента целевой Функции по управляемым параметрам:
Vx/(z*) = 0.
173
Точки, удовлетворяющие этому условию, называются стационарными. Чтобы стационарная точка была экстремальной, достаточно выполнения неравенства
ДаЛГАа: < 0	(5.7)
в некоторой окрестности х*. Здесь через Г обозначена матрица Гессе (гессиан) рассматриваемой функции.
Зная координаты экстремальной точки, нельзя сделать никаких заключений о локальном или глобальном характере этого экстремума, не исследуя f(x) во всей области определения. Исключением являются задачи с унимодальной целевой функцией.
При известных аналитических выражениях целевой функции и ограничений условная оптимизация выполняется с помощью метода множителей Лагранжа, который применим к задачам с ограничениями типа равенств. Согласно этому методу, задача условной минимизации f(x) заменяется задачей безусловной минимизации следующей функции Лагранжа:
Ф(х,Х) = /(i) +	= f(x)+ < A.V'Gr) >,	(5.8)
k=l
где A = [Аь A2,..., Ap]T - вектор множителей Лагранжа. Метод множителей Лагранжа может быть распространен и на задачи с ограничениями типа неравенств с помощью известной теоремы Куна-Таккера [80, 113].
Классические методы нахождения экстремумов целевых функций при проектировании практически не применяются, так как случаи аналитического задания целевых функций крайне редки [72]. Характерной ситуацией является наличие алгоритмических математических моделей. В такой ситуации используют поисковую оптимизацию, при которой поиск экстремума выполняется поледовательными шагами, ведущими от исходной точки х° в заданную ^-окрестность точки экстремума т*. Каждый шаг процесса оптимизации заключается в переходе от точки x^-i в точку х^. Для такого перехода нужно определить направление перемещения дь и величину шага в этом направлении, такие что х^ = x^-i +hicgie. Таким образом, содержанием любого алгорима поисковой оптимизации должны быть способы выбора:
174
-	направления поиска р*;
-	величины шага Л*;
-	формул для нормирования оптимизируемых параметров;
-	критерия окочания поиска.
Эффективность поиска зависит от того, как сделан этот выбор. Составляющими эффективности являются
-	надежность, т.е. вероятность достижения заданной е-окрестности экстремальной точки;
-	точность, характеризуемая гарантированным значением е\
-	экономичность, отождествляемая с потерями на поиск, т.е. трудоемкость процедуры оптимизации, которая обычно оценивается числом обращений к ММ объекта.
Способ выбора направления поиска gk является определяющим для методов безусловной оптимизации, которые бывают нулевого, первого и второго порядков.
В методах нулевого порядка для определения направления производные целевой функции по управляемым параметрам X не используются. В методах первого и второго порядков используются соответственно первые и вторые производные (Vx/(r), Гх/(х)).
Для выбора величины шага поиска hk обычно используются два способа. В способе оптимального шага на каждом fc-м шаге поиска экстремума исходной задачи minx f(x) решается вспомогательная задача одномерной оптимизации:
min f(xk-i + МО-	(5-9)
Ее решением является оптимальная величина шага, минимизирующая f(x) на луче, выходящем в направлении gt из точки Xfc.p В способе задаваемого шага величина hk постоянна на всей траектории поиска либо на ее частях, выделяемых в зависимости от близости к исходному экстремуму. При выполнении условий попадания в заданную окрестность экстремальной точки X* значение hk уменьшается.
Нормирование управляемых параметров осуществляется ли бо способом линейной нормализации параметров
«. = ¥,	(5.10)
175
где ti - константа, равная единице измерения величины либо способом логарифмической нормализации параметров
т = log .	(5.11)
В качестве условия попадания в заданную окрестность оптимальной точки х* принимается условие малости расстояния, на которое прошло продвижение в пространстве параметров в результате последних г шагов. Это расстояние вычисляется по формуле
рк = 1114 - (Ml,	(5.12)
и условие попадания имеет вид pk < 6, где 6 > 0 - заданный параметр алгоритма.
Критерием прекращения поиска являются условия: pk < 6 и hie < ^min- Вместо pk < 8 иногда используется условие /(я*) — -/(xt-r) < 6.
Метод покоординатного спуска {метод Гаусса-Зейделя) характеризуется тем, что в нём избранное множество направлений поиска составляют направления вдоль п координатных осей пространства параметров. Для определения hk используется способ оптимального шага. В условии (5.12) г принимается равым п, т.е. поиск заканчивается, если в цикле из п шагов вдоль каждой из координатных осей пройдено расстояние, меньшее 6.
Метод конфигураций включает выполнение циклов из п шагов покоординатного спуска. После каждого цикла делается один дополнительный шаг, определяемый с помощью одномерной оптимизации (5.9) вдоль направления Uk — Uk-n-
Метод Розенброка характеризуется тем, что в нем реализована идея поворота координатых осей после каждого цикла из п шагов покоординатного спуска таким образом, чтобы одна из осей новых координат оказалась параллельной линии, соединяющей точки Uk и Uk-n> т.е. заняла бы положение, близкое к параллельному по отношению к линии дна оврага.
Методы случайного поиска характеризуются большим числом реализующих их алгоритмов. Одним из них является метод, при котором элементы вектора дь - равномерно распределенные в диапазоне [—1,1] случайные числа и используется способ задаваемого шага. Неудачные шаги, приводящие к ухудшению целевой функции, не выполняются.
176
Метод наискорейшего спуска предписывает вести поиск в направлении, противоположном градиенту целевой функции
9k =
(5.13)
hk выбирается по способу оптимального шага.
В задачах безусловной оптимизации известно большое число и других методов, например методы сопряженных градиентов, сопряженных направлений, переменной метрики [72, 80, 113].
Более сложными для решения являются задачи условной оптимизации. При их решении применяются методы штрафных функций, барьерных функций, проекции градиента [80].
Следует также остановиться на задаче дискретной оптимизации, когда поиск оптимального решения ведется по счетному (конечному) множеству точек. Здесь известны такие методы, как метод локальной оптимизации, метод ветвей и границ и ряд других.
Пример 5.1.1. В качестве иллюстративного примера рассмотрим задачу нахождения экстремума функции двух переменных и ее решение с помощью пакета MATLAB.
Рис. 5.1. Линии равного уровня (а) и график функции Розенброка (6).
К стандартным программам решения типовых оптимизационных задач предъявляются достаточно серьезные требования по эффективности и удобству использования. Лля сравнения эффективности различных алгоритмов оптимизации разработан ряд тестовых задач [80]. Одной из них явля
177
ется задача минимизации функции Розенброка [113]
/(i) = 100 (i2 - xl)2 + (i - ii)2, хетг2, (5.14)
при начальном значении х° = [—1.2,1]Т. Функция (5.14) плохо обусловлена (число ее обусловленности р = 2500), 1 2 невыпуклая, имеет параболический овраг (рис. 5.1). Нетрудно убедиться, что минимум функции Розенброка лежит в точке х- = (1,1).
Пакет MATLAB имеет развитую библиотеку процедур поиска экстремума. Так, имеется тулбокс OPTIMIZATION, версия 2.0 которого содержит около пятнадцати процедур решения задач условной и безусловной минимизации, в том числе и для векторных целевых функций. Ряд оптимизационных программ включен также в “NAG Foundation Toolbox”, являющийся библиотекой процедур численных и статистических методов. Наиболее простой и обычной для использования является процедура fmins, входящая в библиотеку основных функций системы (тулбокс MATLAB). 2 Рассмотрим использование этой процедуры для решения задачи минимизации функции (5.14).
Пользователь должен составить m-функцию, вычисляющую значение /(х). Л ля рассматриваемой задачи эта функция может иметь вид:
function f=frose(x)
f=100*(x(2)-x(l)~2)~2+(l-x(l)*2);
Запишем эту функцию в файл под именем frose.m.
Составим теперь головную программу, в которой указаны начальные значения параметров и содержится обращение к процедуре fmins:
х0=[-1.2, 1] ;
x=fmins('frose',х0)
1 Обусловленностью точки минимума z* функции f(x) называется число д = lim ( sup ||х - х*||2/ inf ||z - х*||2 ) , где L& = {z : /(z) = /(z*)+6), [80]. Значение р, характеризует степень вытянутости линий уровня /(z) в окрестности экстремума z*.
2 В новых версиях пакета эта процедура заменяется аналогичной fminsearch.
178
результаты решения задачи представлены на рис. 5.1, 5.2 в виде траектории процесса поиска экстремума, значений целевой функции f(x) и расстояния до точки оптимума А(х) = = ||ят — аг*11 в зависимости от номера шага (итерации) к.
В результате вычислений получено значение 6х = х — х* « «[2.2 • 10“5,4.2 • 10~5]Т за число итераций N = 159. 1 Начальное значение /(т°) = 24.2, найденное значение /(х^)«8.2 • 1О”10.
Рис. 5.2. Значения функции /(х*) (а) и расстояния до точки экстремума (6) в процессе оптимизации.
5.2.	Задачи структурного синтеза систем
Эти задачи являются наиболее сложными с точки зрения формализации. Сейчас наблюдается интенсивное развитие методов дискретной математики и их внедрение в практику проектирования, но в большинстве случаев основную роль при структурном проектировании играет по-прежнему человек [72].
5.2.1.	Классификация задач синтеза
Задача синтеза включает в себя:
-	структурный синтез - создание структуры проектируемого устойства;
-	параметрический синтез - расчет его параметров.
1 По данным работы [80], близкие результаты получены так называемым методом Пауэлла [72, 80, 97, 113].
179
Параметрический синтез обычно выполняют с помощью описанных выше методов оптимизации с учетом того, что в ряде оптимизационных задач приходится прибегать к специальным методам дискретного программирования.
Близкие к структурному синтезу задачи возникают в конструировании при выборе профиля детали, например формы крыла. Такие задачи обычно сводятся к задачам параметрической оптимизации, если произвести разбиение профиля на некоторое число участков и в качестве элементов вектора X использовать координаты избранных точек поверхности.
Структура объектов определяется природой элементов и способом их связи между собой. Здесь речь идет о межэлементных связях - функциональных, информационных, кинематических, электрических, либо о взаимном расположении элементов в пространстве, если речь идет о пространственной конструкции. В общем случае синтез структуры является задачей выбора некоторого варианта, представляющего собой элемент не более чем счетного множества. Если число вариантов конечно, то такая задача называется комбинаторной. Иерархичность синтезируемой структуры представляется деревом технических решений. Проведению синтеза помогает декомпозиция процедуры синтеза, что приводит к сокращению вариантов для перебора. Декомпозиция процедур синтеза целесообразна также в рамках разделения процесса проектирования на этапы предварительного, эскизного и технического проектирования.
Сложность задачи синтеза отождествляется со сложностью ее решения.
К уровню 1 сложности относят наиболее простые задачи; собственно синтез отсутствует, так как структура либо задана, либо очевидна.
Уровень 2 сложности синтеза - это выбор нужного варианта из конечного множества, причем все элементы этого множества заранее известны и их количество невелико.
К уровню 3 сложности относят задачи выбора во множестве с большим, но конечным числом вариантов при условии, что число вариантов и сами варианты заранее известны.
К уровню 4 сложности относят задачи выбора варианта во множестве с заранее неизвестным числом элементов или вообще в бесконечном множестве.
180
К уровню 5 сложности относят задачи, решение которых возможно только на уровне открытий, т.е. планировать их решение нельзя.
5.2.2.	Подходы к решению задач структурного синтеза
формализация задач структурного синтеза возможна на основе следующих подходов [72]:
-	перебор вариантов из архива типовых структур;
-	перебор вариантов, генерируемых из библиотечных элементов;
-	последовательный синтез;
-	выделение варианта из обобщенной структуры;
-	использование эвристических приемов;
-	сведение задачи синтеза к задаче дискретного математического программирования;
-	использование специфических особенностей предметной области.
Решение задачи синтеза в рамках любого подхода обычно имеет поисковый характер. Как правило, на каждом шаге поиска выполняются следующие процедуры: 1 - выбор или генерация очередного варианта; 2 - оценка варианта; 3 - принятие решения о дальнейших действиях.
Основные действия по синтезу структуры выполняются в первой из этих процедур. Результат выполнения первой процедуры, полученный на очередном шаге, может быть использован для замены или модификации результатов предыдущих шагов.
5.3.	Методы и алгоритмы структурного синтеза
Метод полного перебора допустйм для задач второго уровня сложности. При реализации полного перебора необходимо упорядочить множество исследуемых вариантов, чтобы исключить возможность пропуска вариантов или анализа одних и тех же вариантов более чем по одному разу.
Метод ветвей и границ: на каждом шаге поиска вместо оценки отдельного варианта осуществляется оценка группы вариантов. Если результат такой оценки отрицателен, то вместо одного варианта исключается группа вариантов, что существенно уменьшает число шагов поиска.
181
Метод И-ИЛИ-дерева реализует идею выделения варианта из обобщенной структуры [72].
При описании структуры объекта в виде дерева элементы представляются ветвями, причем элементы одного уровня входят в один ярус ветвей. Каждый элемент первого уровня представляется как система, состоящяя из элементов второго уровня. С помощью ветвей также изображаются признаки элементов. (Ветви, соответствующие признакам элементов помечаются, например, буквой “П”). И-ИЛИ-дерево получается путем объединения отдельных деревьев, описывающих конкретные варианты структуры. Если в объединяемых деревьях встречаются ветви одинаковых признаков или элементов, то в И-ИЛИ-дереве эти ветви изображаются без дублирования. Если в объединяемых деревьях содержатся ветви разных признаков или элементов, то каждый из них в И-ИЛИ-дереве изображается самостоятельной ветвью. Эти ветви могут быть инцидентными узлам двух типов - И или ИЛИ. К узлам типа ИЛИ подключаются ветви, соответствующие альтернативным вариантам, которые могут одновременно присутствовать в конкретной структуре. В базу данных, содержащую сведения об И-ИЛИ-дереве, должны быть включены данные об условях использования элементов и признаков обобщенной структуры. Эти условия представляются в форме, допускающей их сопоставление с требованиями конкретных технических заданий. На основе такого сопоставления происходит выделение частной структуры из обобщенной. Если в выделенной структуре к какому-либо узлу типа ИЛИ подключено более одной ветви из одного и того же яруса, то имеющееся техническое задание может быть выполнено с помощью более чем одного варианта структуры.
Данный способ представления знаний о структуре проектируемого изделия находит широкое применение при построении экспертных систем.
В алгоритмах последовательного синтеза выбирается некоторый начальный элемент, к которому поочередно по определенным правилам добавляются новые элементы вплоть до образования законченной структуры. Примером такого алгоритма является последовательный алгоритм компоновки электронных устройств.
Никто никогда ничего не знает наверняка. Иосиф Бродский
ГЛАВА 6. ПРИМЕРЫ РЕШЕНИЯ ЗАДАЧ МАТЕМАТИЧЕСКОГО МОДЕЛИРОВАНИЯ
6.1. Предсказание курса акции
Вернемся к рассмотренному в п. 3.6 примеру анализа курса акций компании. Рассмотрим задачу предсказания курса по известным данным. В качестве исходного процесса, подлежащего прогнозированию, примем представленный на рис. 3.15, 6, (стр. 101) процесс изменения курса акций компании “Соса Со1ая” после выделения из него линейного тренда [49]. Процесс z[fc] имеет нулевое среднее и отличается от исходного процесса у[к] линейной составляющей у[к] = а + /Зк с параметрами а = 47.3, /3 = 0.0541. Полученное в результате прогноза z[/c] используется для предсказания курса акций у[к] по формуле у[к] = у[к] + z[fc].
Используем линейную регрессию.
Для рассматриваемых задач наиболее близкой среди известных линейных моделей [58] является авторегрессионная (АР)-модель. Рассмотрим ее более подробно.
АР-модель представляет собой линейное разностное уравнение
у[к] + аху[к - 1] + а2у[к — 2] Ч-1- аПлу[к - па] = е[к],	(6.1)
где к = 0,1,2,... - дискретное время (номер итерации или выборочного момента времени)] ai (t = 1,2,...па) - параметры модели. В это уравнение белый шум e[fc] входит как его непосредственная ошибка.
Настраиваемые параметры модели образуют вектор
6 = [ai,а2, ... ,an.] •	(6.2)
Введя многочлен от z”1 какА(г) = H-aiZ"1+a2z_2H-hanez”n<1,
получим описание модели в операторной форме:
A (z)t/[fc] = е[к].	(6.3)
Приведем уравнения предсказателя для этой модели.
183
Используя (6.1), получаем:
j/[fc| 0 ] = (1 - 4(z))y[fc].	(6.4)
Теперь введем вектор
= [ - 1/[/с - 1],.. •	- Па]] •	(6.5)
Тогда (6.4) можно переписать в виде
y[fc| 0 ] = <?[А:]Т0 = 0Г9?[/c],	(6.6)
где вектор параметров модели в определен выражением (6.2). Таким образом, для систем с одним выходом предсказатель описывается в виде скалярного произведения вектора в и известного по результатам измерений до момента к - 1 (включительно) вектора <£>[&].
В математической статистике модель (6.6) называют линейной регрессией, а вектор у? - регрессионным вектором {регрессором). Если некоторые из коэффициентов многочлена А известны (т.е. не подлежат идентификации), нетрудно получить линейную регрессию вида
у[&| $ ] = ¥>[*]Т0 + /4*]»	(6-7)
где слагаемое р[к] также известно по измерениям до момента к- 1.
При определении параметров моделей нашел широкое применение метод наименьших квадратов. Для его применения уравнения предсказателя (6.7) записываются в виде линейной регрессии (6.7). Ошибка предсказания 6[к, 0] = у[к] — у[к\ 6 ] имеет вид = у[к] — в. Используем критериальную функцию
JN(0, zn) = ^~YA {у м -	2-	(6-8)
k=l
Значение Off = arg min^p^ Jjv(0, ZN) для данной функции Jn(o,zn) может быть получено аналитически; оно представляет собой оценку параметров методом наименьших квадратов (МНК, LSE), которая получается из выражения
(N	\	/	N	\
-h-	)	0" =	(12 v’WyM)	•	(6-9)
4=1	/	\	4=1	/
184
Любая оценка, удовлетворяющая уравнениям (6.9), доставляет глобальный минимум функции J/v(0,ZN). Система (6.9) из d линейных уравнений относительно 6N называется системой нормальных уравнений. Если матрица в левой части (6.9) невырожденная, то получается (единственное) значение МНК-оценки Off:
(N	\ -1 / N
к=1	/	\ 1	* = 1
(6.10)
Уравнения МНК (6.8)—(6.10) можно записать в матричной форме. Для этого введем Nxd-матрицу
г <р[1Г 1
, д У’й	,	.
.	(6-11)
и JVxl-вектор
Г И1] 1
.y[W].
Для многомерного случая, когда у[/с]€7£р, полагаем
Yn = М1]Т,У[2]Т,... МУ eKNp,
$n = [^[1], <р[2],.... </’[Аг]] - (Wpxl)-MaTpHua.
Перепишем критерий (6.8) в виде
JN(0) = -1-цп- - Флг0||2 = -±-(YN - ^Ne)\YN - *Ne). (6.13)
Нормальные уравнения (6.9) тогда принимают вид
ф;ф^ = ф^.	(6.14)
Если с!е1Ф^Ф/у / 0, получаем МНК-оценку
eLNs = (фХг'ф;^.	(6.15)
185
Матрица	является псевдообратпной (для Фуу) 1
матрицей, Ф^ = (ФдгФдг^Фдг. Поэтому (6.15) можно переписать в виде
0lns = ф+ Yn.	(6.16)
Таким образом, уравнение (6.15) дает псевдообратное решение для переопределенной (при N > d) системы линейных уравнений = Фдг#.
В [58] рассматривается также “взвешенный” критерий
N	2
Jn(0,Zn) =	- <?[fc]T0)	(6.17)
fc=l
или
N	/	\2
=	.	(6.18)
fc=l
Это связано co следующими причинами:
1. Наблюдения могут иметь различную “надежность”. Например, некоторые из них могут содержать большие возмущения и, следовательно, должны иметь меньшие веса.
2. Наблюдения могут иметь изменяющуюся информативность. Например, линейная модель может оказаться слишком грубым приближением для описания системы в некоторой области изменения р. Наблюдения, относящиеся к такой области, должны иметь меньший вес.
Введем диагональную матрицу Qyy = diag{a],... ,ап}. Перепишем критерий (6.17) в виде
JN(0) = (Yn - <bfl)TQN(y„ - Ф„0) i ||У„ - Фл,||^. (6.19)
Минимум (6.19) достигается при
On =	(6.20)
1 Псевдообратпной по Муру-Пенроузу матрицей для всякой nxm-матрицы Н называется матрица Н+ = Нт$_о(ЯТЯ + 62 * *1)-1ЯТ. Если
Н - пхп-матрица и det Я / 0, то Н+ = Я”1. Если столбцы Я линей-
но независимы, то Я+ = (Я Я)-1Я . Выполнено также: (Я )+ = (Я+) ,
Я+ = (ЯТЯ)+ЯТ = ЯТ(ЯТЯ)+, ЯЯ+Я = Я, Я+ЯЯ+=Я+ (см., например,
И)-
186
Как показано в [58], формулой (6.20) можно пользоваться и для произвольной Qn = Qn > 0-
Для критерия (6.18) можно также записать выражение МНК-оценки в виде, полностью аналогичном (6.10)
(n	\ V	N	\
• (6.21)
к=\	/ \ *=1	/
Будем искать параметры предсказателя для АР-модели вида (6.1)
z[k] + axz[k - 1] + a2z[k - 2] + • • • + аПлг[к - na] = е[Ат]. (6.22)
Уравнения предсказателя имеют вид (6.4), (6.6) с вектором параметров модели 6 вида (6.2), т.е.
V’W = [ -	. -г[* - nJ]] ,	(6.23)
z[fc| 0 ] =	0 = 0Ty>[fc],	(6.24)
где вектор параметров модели 0 определен выражением (6.2). Указывается значение р - “сдвиг вперед”. Оно показывает, на сколько тактов вперед нужно получить прогноз и значение п - порядок АР-модели. По выбранному методу получаются оценки значений параметров АР-процесса. Для этого используется процедура аг, которая входит в состав библиотеки программных модулей SYSTEM IDENTIFICATION (“Идентификация систем”) [58, 139, 140]. Возможно использование методов:
’fb’ - метод прямой и обратной аппроксимации (принят по умолчанию);
’1s’	- метод	наименьших квадратов;
’yw’	- метод	Юла-Уолкера (Yule-Walker);
’burg’	- метод	Бурга (Burg);
’gl’	- метод	решетчатого фильтра.
Найденные значения параметров регрессионной модели используются при переходе от тетпа-формы к представлению системы уравнениями состояния: [A,B,C,D,K,X0]=th2ss(th).
187
Здесь параметры А,С,К содержат матрицы регрессионной модели, представленной разностными уравнениями
х[к 4-1] = Ах[/с] +	, у[к] = Сх[А:];	(6.25)
матрицы В, D для АР-модели не используются. Параметр ХО задает оценку начального состояния системы.
В программе формируется массив tm моментов времени tk = kTQi к = 1,2,...р. Вычисляются p-я и (п — 1)-я степени матрицы А : Ар=А*р; Ап=А*(п-1). Далее для вычисления начального состояния находится матрица наблюдаемости [3, 6, 95, 75]
Г С I
с помощью процедуры obsv тулбокса CONTROL SYSTEMS [74, 61]: Q= obsv(А ,С). Эта матрица позволяет найти начальное состояние х0, чтобы получить заданную начальную последовательность выхода {z[-n + 1],... , z[0]} из соотношения х0 = Q~lZk> где вектор Zk = [z[fc-n + l],... , z[/c]] [6]. Процесс формирования вектора Zk и пересчета начального состояния производится на каждом шаге к (начиная с к = п + р) для вычисления прогноза: yl=z(k-p-n+l:k-p); x_=inv(Q)*yl. Из уравнения (6.25) следует, что если известно состояние на к-м шаге, то его прогноз на fc + p-шаге (полагаем e[fc] = 0) получается по формуле i[fc + p|fc] = Apz[fc]. Для вычисления соответствующего значения выхода используем формулу у[к + р\к] = = CAni[fc 4-р|/с] : хр=Ар*х_ ; ур(к)=С*Ап*хр. Далее вычисляем ошибку прогнозирования e=z-yp(l:length(z)) и относительную среднеквадратическую ошибку se=std(e)/std(z). Для восстановления вида исходной последовательности и сравнения ее с прогнозом учитываем линейный тренд
ypr=alpha*ones(size(ур))+beta*tp *+ур;
Результаты использования АР-модели для заданной последовательности при прогнозе на один и четыре шага представлены на рис. 6.1, 6.2.
Из анализа полученных результатов видно, что точность АР-модели в незначительной степени зависит от выбора метода, а в большей степени - от порядка модели п. С ростом
188
Рис. 6.1. Прогноз курса акций на один шаг (р = 1).
Рис. 6.2. Прогноз курса акций на четыре шага (р = 1).
189
п > 4 "т* 6 точность практически не возрастает, что позволяет рекомендовать этот диапазон значений п.
6.2. Управление синхронизацией систем на основе адаптивных наблюдателей
Как уже говорилось в п. 3.8, одним из эффективных применений хаотических моделей является современная техника телекоммуникаций, в частности мобильная телефония. Надо сказать, что шумоподобные и широкополосные сигналы применялись в системах связи и раньше, см. [38], но недавние исследования показали возможность использования специфических свойств хаотических систем, таких как их синхронизируемость [33].
В настоящем параграфе рассмотрена задача синхронизации двух нелинейных систем (приемника и передатчика или объекта управления и эталонной модели) в условиях неполноты измерений и при неполной информации о параметрах систем. Строится алгоритм адаптивного управления синхронизацией на основе адаптивного набюдателя. Приводятся пример адаптивной синхронизации двух цепей Чуа и результаты компьютерного моделирования системы связи. Рассматриваемая задача интересна еще и тем, что она иллюстрирует подход к построению нелинейной теории сигналов, намеченный в п. 3.9. Изложение основано на материале работы [143], см. также [6].
6.2.1. Общая постановка задачи и схема решения
Традиционная теория передачи и приема сигналов основана преимущественно на линейных моделях передачи (модуляции) и приема (оценивание параметров) сигналов, а также на стохастических моделях шума (помех). Существующие работы по нелинейной модуляции [16] предполагают медленное изменение параметров линейных моделей. Ниже описывается вариант другого подхода, основанного на синхронизации хаотических сигналов. Такой подход вызывает в последние годы растущий интерес специалистов.
Учитывая сложности перехода к нелинейным моделям, которые необходимы для генерации хаотических сигналов, будем, по возможности, упрощать постановку задачи. В частно
190
сти, для описания передатчика не будем использовать общую нелинейную модель (3.97), а ограничимся классом систем Лурье, представляемых как соединение линейной динамической и нелинейной статической подсистем (3.83), (3.84). Модулируемые (информационные) параметры, согласно рекомендаций п. 4.1, введем в модель линейно. Таким образом, модель передатчика принимается в виде
xd = Axd +	yd = Cxd, (6.26)
i=l
где xj € TZn - вектор состояния передатчика; ул €	- скаляр-
ный выход (передаваемый сигнал); 0 = col (0Ь ... , 0m) - вектор параметров передатчика. Предполагается, что нелинейности ^(-) (г = 1,2, ...,тп) матрицы Я,С и вектор В известны; 01}..., 6т могут изменяться во времени, так как они содержат информацию о сообщении, которое подлежит передаче.
На первом этапе синтеза приемника будем считать вектор параметров в постоянным и пренебрежем шумом в канале связи, т.е. будем считать, что принимается сигнал у^. Таким образом, приемник представляет собой другую динамическую систему, которая строит оценки 0, (г = 1,...,тп) параметров передатчика на основе наблюдения за передаваемым сигналом j/d(f). Задача состоит в получении уравнений приемника
z = F(z,yd),	(6.27)
0 = h(z,yd),	(6.28)
обеспечивающих сходимость
Пт (0(f) - 0) = 0,	(6.29)
где 0(Z) = col(0!(f),... ,0т(/)) - вектор оценок параметров.
Предлагаемый ниже приемник относится к классу адаптивных наблюдателей и имеет вид:
х = Ах+В (у^^У»(у</)+^о(1/</-у) ) , У = Сх,	(6.30)
\t=i	/
0,. =	г = 0,1,...,т,	(6.31)
191
где х Е TZn - вектор состояния адаптивной модели передатчика; 0О €	- вспомогательный настраиваемый параметр.
Синтез алгоритма адаптации (6.31) выполним методом скоростного градиента, см. п. 4.3. Состоянием приемника является z = (я,0о,01,... ,0m). Естественной вспомогательной целью может служить
lim e(t) = 0,	(6.32)
t—сю	'
где e(t) = x(t) — x<i(t) - ошибка наблюдения.
Хотя условие (6.32) не является необходимым для обеспечения (6.29), оно подсказывает способ выбора подходящей целевой функции для синтеза алгоритма адаптации (6.31), а именно выберем целевую функцию в виде Q(e) = ^е^ Ре, где Р = Рт > 0 - положительно определенная п х п-матрица. Очевидно, достижение цели (6.32) эквивалентно соотношению lim^oo Q (е(0) = 0» т.е. асимптотической (при t —► оо) минимизации функции Q(e).
Для решения задачи запишем уравнение ошибки:
(т	\
52	+ М I . У = Се, (6.33)
»=1	/
где 6i = @i - (i = l,...,m) - ошибки оценки параметров; у = уд — у. В соответствии с методом скоростного градиента вычислим скорость изменения Q(e) в силу системы (6.33):
(т
Ае + В 52 9iV>i(yd) + 9оУ
1=1
(6.34)
а затем вычислим частные производные (г = U, 1,... т) компоненты вектора скоростного градиента где в =
= erPB<pi(yd), i = 1,2,... ,т, oVi
аЯ- = грв^-у}.
(6.35)
Выражения (6.35) непригодны для непосредственного использования в алгоритме адаптации, поскольку они зависят от
192
вектора ошибки e(f), недоступного для измерения. Однако эту трудность можно преодолеть, если потребовать выполнения соотношения РВ = С , равносильного тождеству еТ РВ =у — yd- Тогда алгоритм адаптации, получаемый методом скоростного градиента, имеет вид:
0» = ~Ъ(У - yd)<Pi(yd), г = 1,... ,тп, (6.36)
00 = -7о(у ~ yd)2-	(6.37)
Кроме того, для применимости алгоритмов скоростного градиента требуется так называемое условие достижимости цели: существование значений настраиваемых параметров 0*, таких что Q(e,0*) < 0 при е / 0. Это равносильно выполнению при некоторых Р, 0J матричного неравенства PAq + AQP < О, где /40 = А + BOqC. Как показано в [63, 106], разрешимость матричных соотношений PAq + Ло Р < 0, РВ = С эквивалентна тому, что линейная часть системы (6.33) гиперминимально--фазовая, т.е. числитель функции 1¥(А) = С (А1П — Л)”1 В -гурвицев многочлен степени п — 1. Это и является условием достижения цели (6.32) в системе (6.33), (6.36), (6.37).
Если, кроме того, вектор-функция /(f) = соЦу^ (^(f)),...
••• ,¥>m(l/</(0)) ограничена и удовлетворяет условию постоянного возбуждения (ПВ): существуют о > 0, Т > 0, такие что
«+т
f(s)f(s)Tds > al	(6.38)
для всех t > 0, то достигается и исходная цель (6.29).
Проведенный теоретический анализ позволяет решать широкий класс задач адаптивной синхронизации. В качестве примера далее рассмотрена задача синхронизации двух цепей Чуа.
6.2.2.	Передача сообщений на основе синхронизации с использованием систем Чуа
Пусть в качестве передатчика и приемника используются системы Чуа. Модель передатчика в безразмерной форме имеет вид
7 Б. Р. Андриевский и др.
193
(6.39)
id, = p(xd3 - xdl + f(xdt) + sft(xdl)), irf2 = xdl + £<&, ^3	=	“^2!
где /(z) = Mqz + 0.5(ЛЛ - M0)/i(z), /i(z) = |z + 1| - |z - 1|; MQyMiypyq - параметры передатчика. Пусть s = s(f) - сообщение, которое следует восстановить в приемнике. Предположим, что передаваемый сигнал имеет вид yd(t) = ^(t), а значения параметров Mq, Mi,p,q известны .
В соответствии с вышеизложенным, приемник описывается уравнениями
ii = р(х2 - zi + f(yd) + Ci/i(l/d) + c0(z! - yd)),
x2 = Xl - z2 + z3,	(6.40)
X3 = -qx2y
где c0, Ci - настраиваемые параметры. Алгоритм адаптации (6.36), (6.37) принимает вид
Со = -7о(у</- *1)2, ci = -71 (ii ~yd)fi(yd), где 7о>71 ” коэффициенты усиления алгоритма.
Исследуем возможность системы (6.40), (6.41) получать и декодировать сообщения. Для этого проверим условие ги-перминимально-фазовости (см. п. 6.2.1), предполагая, что s(t) = const. 1 Из уравнения ошибки следует, что
«1 = р(е2 - Ci + (ci - s)fa(yd) + coej, ё2 = ег - е2 + е3, ёз = ~qe2,
где е, = Xi — xdi, i = 1,2,3. Система (6.42), очевидно, имеет форму Лурье (6.33), где 01 = сь 0i = s, = с0,
(6-41)
(6-42)
-Р 1 О
А =
р О -1 1 -q О
1 О О
В =
, С = [1 О О].
1 Если s(t) - изменяющийся во времени, например, двоичный сигнал, то результаты п. 6.2.1, строго говоря, неприменимы. Однако если оценки параметров сходятся достаточно быстро, во всяком случае быстрее, чем происходят изменения параметров передатчика, то сообщение будет принято приемником.
194
Рис. б.З. Аттрактор системы (6.39) (а) и выход передатчика yd(t) (£)•
Передаточная функция линейной части системы имеет вид
(б-4з>
Видно, что порядок системы п = 3, а так как числитель -гурвицев многочлен 2-й степени для всех q > 0 и всех вещественных р, то условие гиперминимально-фазовости выполняется при q > 0 и любых р, Мо, Мх. Таким образом, обеспечивается ограниченность всех траекторий приемника x(t) и сходимость ошибки наблюдения e(t) —► 0. В частности, yd(t)~ Zi(£) —► 0. Далее, для того чтобы иметь возможность восстановить сигнал s(f), приемник должен обеспечить сходимость Ci(f) —s—-*0 для каждой постоянной s. Согласно п. 6.2.1, это имеет место при выполнении условия ПВ, которое в данном случае записывается как
У /’МО) dt>a
<0
(6.44)
Для некоторых Т > 0, а > 0 и всех > 0- Для проверки (6.44) заметим, что условие (6.44) по существу означает, что траектория передатчика та(^) не сходится на плоскость Xdx = 0 при t —* оо. Интуитивно ясно, что это верно, если система (6.39) обладает хаотическим поведением.
195
6.2.3.	Результаты вычислительных экспериментов
Приведем результаты моделирования описанной выше системы. Примем следующие значения параметров: р = 9, q = = 14.3, Mq = 5/7, М\ = —6/7. Для этих значений параметров система (6.39) обладает стохастическим хаотическим аттрактором (рис. 6.3, см. также стр. 127). Начальное состояние передатчика т^(0) = [0.3,0.3, 0.3] . Начальное состояние приемника т0 и начальные значения настраиваемых параметров со(О), Ci(0) приняты нулевыми. Для устранения влияния начальных условий никакое сообщение не передавалось в течение первых 20 единиц времени (“настройка”, или “калибровка”, приемника), т.е. принято s(i} = 1 для 0 < t < 20.
После периода настройки передается сообщение, имеющее вид “прямоугольной волны”:
s(t) = 50 + 5! sign sin (	,	(6.45)
\ о /
где s0 = 1 005, s2 = 0.005.
S-модель приемника (6.40), (6.41) представлена на рис. 6.4. Результаты моделирования для Tq = 5.0, 71 = 5.0 показаны на рис. 6.5. Рис. 6.5, а соответствует “идеальному” каналу связи, в котором сигнал передается без искажений и’у</(0 = = та,(0- Как видно из графиков, восстановленный сигнал y(t) совпадает с переданным сигналом t/j(f) с высокой точностью.
Вычислительный эксперимент не только качественно согласуется с теоретическим анализом, но и дает дополнительную количественную информацию о скорости достижения цели. Однако для практики этого мало: требуется добиться работоспособности алгоритма синхронизации в условиях шумов. На рис. 6.5, 6 показана реализация сигнала на выходе приемника при действии в канале связи аддитивного случайного возмущения в виде дискретного белого шума с интервалом дискретности 0.01 и параметром а = 10“4.
Видно, что погрешность оценивания сигнала велика и не дает возможности осуществлять надежный прием сообщений. Для уменьшения влияния возмущений выходной сигнал приемника пропустим через НЧ-фильтр первого порядка с постоянной времени 0.3. Как видно из рис. 6.5, 6, точность системы существенно повышается. На рис. 6.5 через s(t) обозначен параметр передатчика; s(f) - его оценка, полученная по (6.40),
196
Рис. 6.4. S-модель приемника (6.40), (6.41).

1.007
s,S,s
Q ООО ----------------------------------------‘-------
20	25	30	35	40	45	/
б
1.006
1.005
1.004
1.003
1.0021
1.001
n qqq	______
20	25	30	35	40	45	/
Рис. 6.5. Идентификация параметра источника сообщения при: а = 0 (а), а = 10"4 (£).
197
(6.41) ( s(t) = sj(t) - выход НЧ-фильтра.
Для дальнейшего повышения точности оценивания следует увеличивать коэффициент усиления в алгоритме адаптации 7р Разумеется, при учете помех в канале измерений достижимая скорость передачи информации ограничена и зависит от наибольшей частоты спектра несущего сигнала. Для уменьшения влияния помех применяют различные способы огрубления алгоритмов (используются также термины регуляризация, робастпификация): введение отрицательной обратной связи или зоны нечувствительности в алгоритм адаптации, фильтрация ошибки оценивания и т.д.
Приведенные примеры дают представление о практике математического моделирования: теоретический анализ должен дополняться вычислительным экспериментом. Рекомендации теории основаны на более простых моделях и поэтому отличаются большей общностью, но не учитывают многих деталей. Используя полученные выводы как первое приближение и уточняя их на более полных и более точных компьютерных моделях, можно получить более полные и практически ценные рекомендации. Удачный выбор гаммы моделей различной степени сложности - это искусство, от которого зависит удача всего исследования. А чтобы научиться этому искусству, надо решать новые и новые задачи, ставить новые и новые увлекательные вычислительные эксперименты.
И все-таки я, рискуя прослыть Шутом, дураком, паяцем, И ночью и днем твержу об одном: Не надо, люди, бояться!
Не бойтесь сумы, не бойтесь тюрьмы, Не бойтесь мора и глада,
А бойтесь единственно только того, Кто скажет: “Я знаю, как надо!”
Александр Галич
ЗАКЛЮЧЕНИЕ. МАТЕМАТИЧЕСКОЕ МОДЕЛИРОВАНИЕ - ВЧЕРА, СЕГОДНЯ, ЗАВТРА
Когда-то считалось, что явление изучено, если построена его математическая модель. Понадобился гений Р. Декарта и определенный уровень развития науки, чтобы сформулировать новый принцип: для каждого явления возможны несколько моделей: вопрос в том, какая из них самая точная. Сегодня мы начинаем понимать, что, как правило, нельзя сказать: одна модель лучше, чем другая. Даже в рамках одного и того же исследования могут одновременно использоваться несколько моделей сообразно с целями исследования и доступными вычислительными средствами.
Заметим, что многие из приведенных в книге понятий и подходов (например, само определение системы) родились в кибернетике и теории автоматического управления и несут отпечаток своего происхождения. Тем не менее они носят универсальный характер и полезны в задачах, где управление отсутствует. Впрочем, граница между задачами с управлением и без оного в математическом моделировании является “нечеткой”. Например, при проектировании математическая модель используется для так называемого предварительного синтеза: структура и параметры модели и решения выбираются, когда реальной системы еще не существует. Напротив, в задачах управления синтез решения (выбор управляющего воздействия) осуществляется в процессе работы системы на основе текущей информации о ее поведении (так называемый совмещенный, или управляемый, синтез). Однако это означает просто, что управляемый синтез решения требует больше текущей, но меньше априорной информации, предоставляя новые возможности исследователю,
199
проектировщику или конструктору системы. Таким образом, разница между системами “с управлением” и “без управления” не носит качественного характера. Это видно и из формального определения системы (см. п. 1.2 ): система со входом превращается в систему без входа, если множество возможных значений входа является одноэлементным.
На протяжении книги мы рассматривали и исследовали различные математические модели, в том числе динамические модели, отражающие наличие памяти в системе. Подавляющее большинство динамических моделей относится к двум большим классам: модели состояния и модели “вход-выход”. Исторически модели состояния стали изучаться гораздо раньше, начиная с первых моделей небесной механики (закон всемирного тяготения), появившихся еще в XVII в. Целый ряд их свойств для механических систем был изучен еще Ж. Лагранжем, а систематические и достаточно общие теории были развиты на рубеже XIX - XX веков в трудах А.М.Ляпунова, А.Пуанкаре, Дж.Биркгофа и др. Интересно, что во многих исследованиях по механике и физике входные переменные вообще не упоминались. Это было связано с тем, что систематически не рассматривались задачи, требующие активного и целенаправленного воздействия на систему в реальном времени, т.е. задачи управления.
Необходимость решения достаточно сложных задач управления и развитие теории электрических цепей привели в 40-х годах XX в. Г.Боде, Г.Найквиста и других ученых к созданию линейной теории управления на языке “вход-выход”, которая была позже названа “классической” и в свою очередь привела к росту популярности моделей “вход-выход” в кибернетике и общей теории систем. После получения Р.Калманом фундаментальных результатов по теории линейных систем в пространстве состояний поток исследователей теории систем и теории управления разделился: часть продолжала работать на языке переходных и передаточных функций, другая - стала изучать модели состояния. К концу XX в. эти направления в значительной степени слились и теория управления, по существу, стала “двуязычной”, обогатив технику прочным фундаментом для решения задач проектирования технических систем со встроенными управляющими устройствами.
200
Традиции математического моделирования в физике и механике, однако, до последних лет практически игнорировали модели с входом и выходом, несмотря на бурное развитие теории открытых систем. Положение изменилось в начале 90-х годов с появлением работ по управлению хаосом (см. п. 3.8.4), привлекших внимание физиков к возможности изменения свойств систем путем слабых воздействий в виде обратной связи. Исследования в этой области в настоящее время активно развиваются [108] и, возможно, приведут к возникновению нового раздела физики - кибернетической физики.
За последние годы появился целый ряд книг по математическому моделированию, написанных специалистами в различных областях знаний: прикладной математике [90, 13], по автоматизированному проектированию [72, 97], кибернетике и теории управления [68, 74]* Хотя отдельные вопросы трактуются в них по-разному, в целом они подтверждают, что математическое моделирование уже сформировалось как самостоятельная научная дисциплина.
Современное понимание места и роли математического моделирования в научном и инженерном исследовании сложилось под влиянием бурного развития вычислительной техники, а его эволюция тесно связана с эволюцией программного обеспечения. Программы, реализующие отдельные модели и методы, подвергаются обобщению и интегрируются в пакеты прикладных программ и программные среды, поддерживающие все этапы математического моделирования: построение математической модели, исследование (анализ) и использование (синтез). Помочь читателю в овладении навыками решения задач математического моделирования на базе современных программных средств и составляет главную задачу этой книги.
Подводя итог, перечислим некоторые упоминавшиеся в книге полезные советы, которые можно назвать “заповедями” математического моделирования.
1.	Не решай сложную задачу, не решив простую (принцип простоты).
2.	Без ошибки нет модели, а потому негрубые модели -плохие (принцип А.А. Андронова).
3.	Можно пренебрегать чем угодно, нужно только точно знать, как это повлияет на результат (принцип Э.Хемингуэя).
201
4.	Чем проще модель, тем реже она обманет (принцип надежности).
5.	Точность результатов не может быть выше точности исходных данных; точности промежуточных вычислений должны быть согласованы (принцип А.Н. Крылова).
6.	Цель расчетов - не числа, а понимание. Прежде чем решать задачу, подумай, что делать с ее решением (законы Р.Хемминга).
Наконец, хочется еще раз напомнить, что метод математического моделирования, как и любой метод, имеет границы применимости. Поэтому закончим книгу словами И. Бродского:
То, чего нету, умножь на два: в сумме получишь идею места. Впрочем, поскольку они - слова, цифры тут значат не больше жеста, в воздухе тающего без следа, словно кусочек льда.
Приложение А. Использование системы Scilab
АЛ. Принципы построения системы
В конце 1990-х годов всем, интересующимся вычислительными аспектами и автоматизированным проектированием систем управления, стал доступен пакет Scilab, аналогичный по своим возможностям пакету MATLAB, но имеющий перед ним одно бесспорное преимущество: Scilab распространяется абсолютно свободно, т.е. бесплатно. Система Scilab разработана специалистами из французского Научно-исследовательского института по информатике и автоматике (INRIA) и может быть скопирована (вместе с документацией) из сети Интернет: http://www-rocq.inria.fr/scilab/.
Ниже приводятся основные сведения о системе и демонстрационные примеры конструкций языка и возможностей системы Scilab [128].
Scilab состоит из трех отдельных частей: интерпретатора, библиотек функций (процедуры Scilab) и библиотек подпрограмм на языках Фортран и С. Подпрограммы на Фортране и С, строго говоря, не входят в Scilab: они вызываются интерпретатором. Большая их часть доступна независимо, например из сетевой базы данных Netlib: http://www.netlib.org/. Некоторые подпрограммы слегка модифицированы для лучшей совместимости с интерпретатором Scilab. Основным достоинством Scilab, как и системы MATLAB, является возможность легко оперировать с числовыми матрицами: такие операции, как сложение, умножение, транспонирование, слияние, вырезание, выполняются непосредственно. Scilab также дает возможность манипулирования с более сложными объектами (такими как полиномы, полиномиальные или рациональные матрицы передаточных функций) при помощи обработки списков и типизированных списков. Это в свою очередь открывает пути естественного символического представления таких объектов, как линейные системы и графы. При этом синтаксис операций идентичен используемому при работе с постоянными векторами и матрицами и очень похож на синтаксис языка MATLAB.
Scilab предоставляет широкий спектр процедур анализа нелинейных систем: решение уравнений, численное инте
203
грирование явных или неявных систем, методы оптимизации (в том числе недифференцируемой). В состав системы Scilab входят сотни математических функций; встроенные библиотеки по линейной алгебре (включая работу с разреженными матрицами, кронекеровским и шуровским представлениями); по системам управления (классической, линейноквадратичной и Я°°-оптимизации, редукции моделей, идентификации и др.); пакет программ по линейным матричным неравенствам (LMI), по обработке сигналов и фильтрации и пакет анализа и оптимизации сетей Metanet.
Прилагаемый к пакету Scilab тулбокс Scicos предоставляет средства графического описания и моделирования взаимосвязанных дискретных и непрерывных систем (аналогично системе SIMULINK) [128].
Имеются развитые графические возможности (двумерная и трехмерная графика, анимация). Возможности символических вычислений реализуются через интерфейс с Maple. Наконец, имеется система параллельных вычислений Parallel Scilab.
Общая философия Scilab состоит в создании вычислительной среды, предоставляющей пользователю:
-	гибкий набор типов данных с естественным и простым синтаксисом (например, поддерживается тип данных “строка символов”, а функции считаются объектами и могут определяться в системе Scilab и передаваться как входные или выходные аргументы других функций);
-	достаточный набор вычислительных процедур как основу для выполнения разнообразных вычислений;
-	открытую среду программирования, в которую легко добавляются новые примитивы;
-	поддержку разработки новых библиотек и тулбоксов, в частности добавление новых модулей на Фортране и С.
Приведем некоторые примеры конструкций и текстов на Scilab.
А.2. Основные конструкции языка
Скалярные объекты
Синтаксические правила определения скалярных объектов и действий с ними на Scilab, как и многие другие конструкции,
204
идентичны соответствующим правилам языка MATLAB. Рассмотрим некоторые примеры определения таких объектов.
а=1	-	вещественная константа;
1==1	-	логическое выражение;
’ string1	-	строка символов;
z=poly(0,'z')	-	многочлен от z, имеющий один ну-
левой корень;
p=l+3*z+4.5*z~2 - многочлен от z.
Для задания рациональных функций (например, передаточных функций при исследовании динамических систем) используются конструкции вида
р =	1 + 3z + 4.5z~2
r=z/p
В результате выполнения этих операторов получим:
г = ______z l + 3z + 4.5z 2
Матрицы
Матричные объекты вводятся операторами вида
А=[а+1 2 3; 0 0 atan(l); 5 9-1];
Здесь определена ЗхЗ-матрица вещественных констант.
Чтобы задать матрицу логических констант размера 1x2 используем выражение
b=r/.t, 7.f] .
Матрицы строк задаются операторами вида
Мс=['this’,'is’;	'a* ^matrix']
(здесь определена 2х2-матрица строк).
Может быть введена и матрица многочленов. Выражение
Мр=[р, 1-z; 1, z*p]
задает 2х2-матрицу многочленов вида
Мр =
! l+3z + 4.5z~2	1-z	!
!	1	z + 3z~2 + 4.5z~3 !
205
Аналогично матрица рациональных функций
задается оператором F=Mp/poly( [l+7,i 1-Xi Ijj'z') .
Можно задавать и разреженные матрицы. Выполнив оператор
Sp=sparse([l,2;4,5;3,10],[1,2,3]) получим:
Sp =
( 4, 10) sparse matrix
( 1, 2) 1.
( 3, 10) 3.
( 4, 5) 2.
Разреженные матрицы могут иметь и другой тип элементов, например - логический: Sp(l, 10)==Sp(l, 1).
Списки
Лля образования списка используется оператор list. Выполнив
L=list(a,-(1:5), Мр,['this','is';'а','list’]) , получим список элементов разного типа:
L(l) 1.
L(2)
! - 1. - 2. - 3. - 4. - 5. !
L(3) ! l+3z + 4.5z 2	1-z	!
!	1 z + 3z~2 + 4.5z~3 !
L(4) ! this is ! ! a list !
206
Можно также создать типизированный список с помощью оператора tlist:
Lt=tlist(E’mylist’,’color’,’position’,
’weight’],’blue’,[0,1],10) }
Для извлечения элемента из списка используются операторы вида Lt(’color’) .
Динамические системы
Линейную динамическую систему (“ЛС-систему”, см. 3.3.2) можно задать стандартными уравнениями состояния. Операторы:
A=diag([2, 3, 4]); В=[1 0; 0 1; 0 0];
С=[1 -1 0]; D=O*C*B; х0=[0; 0; 0];
Sl=syslin(’c’,A,B,C,D,xO)
- приводят к
S1 =
Sl(l) (state-space system:) Iss !	2.	0.	0.	!
Sl(2)	= A matrix	=	!	0.	3.	0.	!
!	0.	0.	4.	!
Sl(3)	= В matrix	=
! 1. 0. ! ! 0. 1. ! ! 0. 0. !
SI (4) = C matrix = ! 1. -1. 0. ! Sl(5) = D matrix = ! 0. 0. !
Sl(6) = X0 (initial state) = ! 0. ! ! 0. ! ! 0. !
Sl(7) = Time domain = c
Структура SI с точки зрения языка является типизированным списком, доступ к элементам которого осуществляется операторами вида
207
SICA'), SlC'C1)
Для преобразования уравнений состояния к передаточной функции используется оператор ss2tf. Выполнив
Slt=ss2tf(S1)
получим:
Sit = ! 1	-1	f
• - 2 + s	-3 + s •
Операторы Sit ('num*), Sit ('den1) позволяют извлечь матрицы числетелей и знаменателей передаточной функции.
Операторы
v=l: 5; W=v * *v -	умножение матрицы-константы;
W(l, :)	-	извлечение первого столбца;
W(: ,\$)	-	извлечение последней строки;
Мр’*Мр+еуе	-	матрица многочленов.
Для матрицы Мр, значение которой задано выше, в резуль
тате выполнения последнего оператора получим;
ans =
column 1
! 3 4-6z 4-18z 2 4-27z 3 4- 20.25z 4 !
!	1 + 3z + 4.5/2	!
column 2
!	2	!
!	1 + 3z4-4.5z	!
! 2 - 2z + 2z~2 + б/З + 18z~4 + 27/5 + 20.25z~6 !
Mpl=Mp(l ,l)+4.5*7ei	- комплексная матрица;
Fi=C*(z*eye-A); - вычисление передаточной функции;
F(:,l)*Fi	-действия с рациональными
функциями.
В результате выполнения двух последних операторов получим:
ans =
_______1 4- 3z 4- 4.5z 2
4 — 10z + 10z 2 — 5z 3 4- z 4
_____________J.
4 — lOz 4-10z 2 - 5z 3 4-z 4
_______1 4- 3z 4- 4.5z 2
6 - 14z 4-13z 2-6z 3 4- z 4
6 - 14z 4- 13z 2 — 6z 3 4- z 4
208
М=[Мр -Мр; Мр'Мр+еуе] ; - сцепление многочленных матриц;
[Fi, Fi(: ,1)] - сцепление рациональных функций;
F=syslin( ’с' ,F); - определение линейной системы через передаточную функцию;
Num=F( ’пит’); Den=F( 'den') ; - извлечение числителя и знаменателя передаточной функции.
Некоторые числовые операции
inv(A)	- обращение числовой матрицы;
inv(Mp)	- обращение многочленной матрицы;
invCSl+Sl’) - соединение двух линейных систем и обращение;
w=ss2tf (ans) - получение передаточной функции.
Результатом выполнения последнего оператора будет:
w = 18 - 3(Г$ 4- 18.5s^2 - 5s^3 + 0.5s~4
6.5 - 5s + s 2
wl=inv(ss2tf (Sl)*ss2tf (S10) - произведение двух передаточных функций и обращение;
A=rand(3,3); B=rand(3,l); n=contr(A,B) - проверка управляемости системы третьего порядка, заданной матрицами уравнений состояния Л, В со случайными значениями элементов;
K=ppol(A,B,[-l-7.i -l+7.i -1]);
poly (А-В*К,'z')-poly (	-l+7.i -ll/z’) - синтез мо-
дального регулятора по состоянию (см. [4, 6]) и проверка правильности вычислений.
В результате выполнения этих операторов получим:
К = - 113.28616 111.62667 33.092441
s=sin(0:0.1:5*lZpi);
ss=fft(s(l:128),-1); - быстрое преобразование Фурье xbascO; plot2d3(,‘enn” ,l,abs(ss)'); - вывод графика
Определение функции в режиме интерпретации
deff('[x]=fact(n)9,’if n=0 then x=l, else x=n*fact(n-1),end')
10+fact(5)
209
Рис. А.1. Примеры графических изображений пакета Scilab. а - трехмерный график; 6 - моделирование велосипеда.
Оптимизация
def f(* [f,g,ind]=rosenbro(x,ind)’, 1 a=x(2)-x(l)~2, b=l-x(2), f=100.*a*2 + b*2 , g(l)=-400.*x(l)*a , g(2)=200.*a -2.«b [f,x,g]=optim(rosenbro,[2;2],1 qn')
Моделирование
a=rand(3,3); e=expm(a);
deff(* [ydot]=f(t,у)’,1ydot=a*y1;
e(:,l)-ode( [1;0;0],O,l,f)
Описание систем
Введем скалярную переменную s :
s=poly(0,’s’);
Построим матрицу h рациональных функций от s :
h=[l/s,1/(s+1); ..
l/s/(s+l),1/(s+2)/(s+2)]
Определим систему с именем w, заданную передаточной функцией с матрицей Л, и получим описание этой системы в форме уравнений состояния:
w=tf2ss(h); ss2tf(w)
210
Выведем результат, обнулив элементы с малыми значениями: hl=clean(ans)
Получим:
s t 1 „	1 1 + S 1
s 4- s2 О	о	4 + 4s + s2
Пример. Исследование динамической системы второго порядка
Рассмотрим линейную непрерывную систему, заданную передаточной функцией
sl=syslin('с',l/(s*s+0.2*s+l))
Зададим массив моментов времени, для которых требуется получить процессы в системе:
instants=0:0.05:20;
Вычислим переходную функцию:
y=csim(' step1,instants,si);
Выведем график переходной функции:
xbascO; plot2d(instants1 ,у 9 )
Определим ступенчатый сигнал с задержкой:
deft('[in]=u(t)','if t<3 then in=0; else in=l; end');
Найдем переходную функцию для этого сигнала: yl=csim(u, instants,si);
Выведем ее график:
plot2d(instants', у!’);
Вычислим функцию веса:
yi=csim('imp’, instants, si);
xbascO; plot2d(instants', yi');
yil=csim('step', instants,s*sl);
plot2d(instants', yil');
Выполним дискретизацию системы:
dt=0.05; sld=dscr(tf2ss(sl), 0.05);
Вычислим переходную функцию дискретной модели и построим ее график:
u=ones(instants);
yyy=flts(u,sld);
xbas с();plot(instants,yyy)
211
Получим функцию веса дискретной модели как реакцию на импульс малой длительности:
u=0*ones(instants); u(l)=l/dt;
yy=flts(u,sld);
xbascO ;plot(instants,yy)
Выполним объединение систем:
wl=[w, w] ;
clean(ss2tf(wl))
w2=[w; w] ;
clean(ss2tf(w2))
Произведем замену переменной по формуле дробно-линейного (“билинейного”) преобразования:
z=poly(0,'z'); horner(h,(l-z)/(l+z))
Получим:
ans =	“
f 1 + *	1 г i
1 — z	2
,	1	+1z + z2	1 + 2z + ? t
2 — 2z	9 4- 6z + z
A.3. Примеры программ решения задач математического моделирования. Scilab и MATLAB
Моделирование движения тележки
Рассмотрим в качестве первого примера интегрирование уравнений, описывающих движение автомобиля из примера на стр. 20 (п. 1.3). Программа моделирования на языке Scilab, аналогичная MATLAB-программе, приведенной в п. 2.2.2 на стр. 42, выглядит следующим образом.
а=2еЗ;
Ъ=5еЗ;
т=1еЗ;
у.Т=1О;
и=1;
tl=l/(b+a)*2*(l/2)*(m*(b+a)*y_T*a*b)~(l/2)/b T=y_T*m*(b+a)*2*(1/2)/(m*(b+a)*y_T*a*b)*(1/2) x0=zeros(2,1);
t0=0;
t=[tO:0.001:T];
deft('[dx]=fpl_2(t,x)',..
212
'if t<tl then u=b; . . else u=-a; end .. dx(l)=u/m;.. dx(2)=x(l);') ;
x=ode(xO,tO,t,fpl_2);
plot(t,x(l,:))
xgridO
xset("window”,1)
plot(t,x(2,:))
xgridO
Во многом эта программа повторяет MATLAB-программу. По-видимому, это связано с тем, что разработчики языка системы Scilab взяли за основу соответствующие конструкции языка MATLAB.
В качестве отличий отметим использование оператора deff, который позволяет определять функцию (в рассматриваемом примере - fpl_2) в тексте головной программы. Заметим, что условный оператор if-then-else на языке Scilab имеет вид, обычный для большинства языков программирования.
Функция xset служит для указания свойств графического изображения и в рассматриваемом примере используется для вывода второго графика в новое окно.
Расчет спектра сигнала
Обратимся к задаче нахождения спектра сигнала по дискретной выборке на основе описанного в 3.2.2 преобразования Фурье.
Рис. А.2. Квазипериодический сигнал и его спектр.
213
Вернемся к рассмотренному в 3.2.2 квазипериодическому процессу, представляющему собой сумму гармоник с несоизмеримыми частотами:
y(t) = sin(f) + 0.75sin(5Tr“4).
Зададимся интервалом дискретности TQ = 0.05 и числом точек отсчетов N = 210 = 1024. Это соответствует длине реализации Т = 51.2. Программа вычисления энергетического спектра сигнала, аналогичная MATLAB-программе (стр. 70) на языке Scilab, представлена ниже:
dt=0.05;
Nt=2~10;
t=O:dt:(N-l)*dt;
y=sin(t)+0.75*sin(5/7.pi*t) ;
plot2d(t,y)
xtitleC’yCt) ’)
PY=abs(Y).~2/N;
wn2=2*7.pi/dt;
dw=wn2/N;
w=0:dw:5;
lw=length(w);
xset(’window’,1)
plot2d(w,PY(l:lw)) xtitle(’S(w)’)
На рис. A.2 отражены результаты вычислений (как и на аналогичном рис. 3.21 на стр. 120, здесь показана только часть реализации исследуемого процесса).
Приложение В. Система визуального моделирования SIMULINK
В.1. Общая характеристика системы
Разработка моделей средствами SIMULINK71 (S-моделей) основана на использовании технологии Drag-and-Drop (“Перетащи и оставь^). В качестве “кирпичиков” для построения S-модели используются блоки, хранящиеся в библиотеке SIMULINK [35, 29].
SIMULINK хорош тем, что, обеспечивая пользователю доступ ко всем основным возможностям пакета MATLAB, является самостоятельным его компонентом, для работы с которой нет необходимости иметь навыки в использовании других инструментов, входящих в состав пакета.
Блоки могут быть связаны друг с другом как по информации, так и по управлению (входам-выходам). Тип связи зависит от типа блока и логики работы модели. Любая S-модель может иметь иерархическую структуру, т.е. состоять из моделей более низкого уровня. Число уровней иерархии практически не ограничено.
Пользователь может задавать параметры блоков, а также устанавливать параметры процесса моделирования (метод интегрирования уравнений, величину и способ изменения шага интегрирования, условия окончания моделирования). Результаты моделирования могут быть отображены в специальных “смотровых окнах”, представлены в числовой и в графической формах, сохранены для использования другими программами. Имеется возможность включения средств анимации. SIMULINK является открытой системой: состав библиотеки может пополняться созданными пользователем блоками.
В.2. Библиотека блоков системы SIMULINK
Библиотека блоков SIMULINK представляет собой набор визуальных объектов, используя которые можно создавать систему произвольной структуры.
Для любого блока можно иметь требуемое число копий и использовать каждую из них независимо. Для всех блоков
215
существует возможность индивидуальной настройки: пользователь может изменить параметры блоков и их внешнее оформление. На порядок соединений блоков ограничений не накладывается. Библиотека блоков имеет семь разделов, из них шесть - базовые:
-	Sources (“Источники”)]
-	Sinks (“Получатели”)]
-	Discrete (“Дискретные элементы”)]
-	Linear (“Линейные элементы”)]
-	Nonlinear (“Нелинейные элементы”)]
-	Connections (“Соединения”).
Седьмой раздел - Blocksets & Toolboxes (“Источники блоков и инструменты”) содержит относящиеся к компонентам MATLAB блоки, включенные пользователем в рабочую конфигурацию пакета.
В.З. Маскирование подсистем
Маскированной подсистемой (Masked Subsystem) называется система, структуру которой непосредственно нельзя увидеть из блок-диаграммы. Она имеет собственное диалоговое окно настройки параметров и собственную иконку, т.е. является аналогом библиотечного модуля SIMULINK. Механизм использования маскированных систем обладает следующими достоинствами:
-	значительно расширяет интерактивные возможности пользователя по управлению параметрами S-модели;
-	позволяет создать более понятный интерфейс за счёт введения необходимых комментариев как к подсистеме в целом, так и к отдельным параметрам;
-	обеспечивает повышение наглядности блок-диаграммы;
-	повышает защищенность S-модели от неумышленной модификации.
При создании маскированной подсистемы требуется:
-	описать параметры подсистемы;
-	определить способ изменения параметров;
-	создать необходимые комментарии;
-	создать собственную иконку подсистемы.
Иконки подсистем могут содержать как текстовую, так и графическую информацию. Для вывода текста используются команды disp, text или fprint. При выводе графиков также
216
могут использоваться стандартные средства языка MATLAB, например библиотечная функция plot. Иконки с изображениями можно создавать и с помощью специального графического редактора, который запускается командой iconedit.
Наличие в составе SIMULINK механизма маскирования делает его “открытой системой”, которая доступна для доработки и расширения самими пользователями в соответствии с их потребностями.
Приложение С. Дополнительные возможности системы MATLAB-5
С.1, Программирование и разработка приложений
Среда программирования
1.	Профилировщик М-файлов.
2.	Редактор интегрированных М-файлов.
3.	Отладчик М-файлов, содержащих функции графического интерфейса пользователя GUI.
4.	Объектно-ориентированное программирование, включая переназначение функций и операторов.
5.	Средства просмотра рабочей области данных и путей доступа.
6.	Конвертирование М-файла в P-файл при использовании модели памяти для разреженных матриц, скрытого кода и при загрузке ускоренного GUI.
7.	Просмотр справочной документации.
Разработка на основе GUI
1.	Интерактивное окно построения GUI-Guide.
2.	Редактор свойств графического объекта - Handle Graphics Property Editor.
3.	Панели списков, включая множественный выбор.
4.	Форма диалоговых панелей и панелей сообщения.
5.	Многострочный режим редактирования текста.
6.	Запоминание последовательности графических элементов управления.
7.	Опция - “недоступный снаружи” элемент управления.
8.	Свойство переносимости между платформами.
9.	Курсор, определяемый пользователем.
С.2. Новые конструкции языка и типов данных
1.	Многомерные массивы.
2.	Определяемые пользователем массивы данных и массивы структур.
3.	Массивы данных разного типа (массивы ячеек cell arrays).
218
4.	Списки аргументов переменной длины.
5.	Переназначение функций и операторов.
6.	Исходная функция и все вызываемые функции - в одном М-файле.
7.	Оператор switch ... case ... end.
8.	Короткая форма if.
9.	Оператор waitfor.
10.	Массивы строк с упаковкой два байта на символ.
11.	Массивы с упаковкой один байт на элемент.
12.	Функция упаковки битов.
С.З. Математические вычисления и анализ данных
1.	Пять новых процедур решения обыкновенных дифференциальных уравнений (ОДУ).
2.	Более точное и быстрое вычисление функции Бесселя.
3.	Вычисление собственнных значений и сингулярных чисел для матриц разреженной структуры.
4.	Двумерные квадратурные формулы.
5.	Многомерная интерполяция.
6.	Триангуляция и вывод на терминал данных, определяемых на неравномерной сетке.
7.	Анализ и обработка многомерных массивов.
8.	16-битовый стереозвук.
9.	Поддержка времени и даты.
С.4. Графика
Визуализация
1.	Z-буферизация для быстрой и точной трехмерной визуализации.
2.	24-битовая RGB-поддержка.
3.	Множественная подсветка поверхностей и полигонов.
4.	Перспективные изображения из произвольной точки.
5.	Новые модели подсветки.
6.	Векторизованные полигоны для больших трехмерных моделей.
7.	Поддержка данных, определенных на неравномерной сетке, включая триангуляционные и сеточные двух- и трехмерные поверхности.
219
8.	Дескрипторная графика для множественных объектов.
9.	Вывод на терминал, хранение и импорт 8-битовых образов.
10.	Дополнительные форматы графических образов.
Презентационная графика
1.	Двойные х- и j/-och.
2.	Легенда графика.
3.	Управление шрифтом текстовых объектов.
4.	Надстрочные, подстрочные и греческие символы.
5.	Трехмерные диаграммы, поля направлений, ленточные и стержневые графики.
6.	Увеличенное количество стилей для маркировки линий.
С.5. Интерактивная документация
1. Возможность просмотра на основе Nescape Navigator 2.0 или Microsoft Internet Explorer 3.0.
2. Полная справочная документация в форматах HTML и PDF.
С.6. Перевод программ из MATLAB 3 в MATLAB 5
При переводе m-файлов, разработанных для пакета MATLAB версии 3 к версии 5, следует учитывать, что начиная с версии 4 для рабочих станций PC этот пакет работает под управлением ОС Windows или Linux. Поэтому при программировании графического вывода нет необходимости использовать функцию meta для сохранения графиков. Просто перед операторами вывода (например, перед оператором plot) следует открыть новое графическое окно (оператором figure), а затем сохранить график стандартными средствами ОС и соответствующих приложений (например, с помощью графического редактора Paint Microsoft). Надо обратить внимание на различие в цвете фона графиков, принятом по умолчанию в версиях 3 и 5, а также в способах определения цвета линий на графиках. Например, конструкция сп, где п задает цвет линии, в версии 5 не проходит. Следует также учесть, что оператор axis должен исполняться после вывода графика, а не перед ним (как в версии 3).
220
При объявлении глобальных переменных следует указывать их списки оператором global как в вызывающей программе, так и в подпрограмме, причем по тексту программы это объявление должно предшествовать инициации переменных. Следует внимательно относиться к операторам инициации массивов zeros, ones, rand и т.д. Например, при выполнении операторов а=[2 3 5 7]; b=zeros(a) в среде MATLAB 3 получим массив Ъ размера 1x4, состоящий из четырех нулевых элементов, а в среде MATLAB 5 - массив с четырьмя измерениями размера 2хЗх5х7, содержащий 210 нулевых элементов. Для получения того же самого результата в версии 5 следует написать b=zeros(size(a)).
Признак продолжения оператора на следующей строке в версии 5 имеет вид в то время как в версии 3 используется конструкция “..”.
Наиболее существенные отличия вызваны совершенно иной концепцией языка MALTAB 5, в основу которой положено объектно-ориентированное программирование [84, 61]. Как следствие, приходится иначе пользоваться тулбоксами пакета. В первую очередь это относится к тулбоксу CONTROL SYSTEMS (разные версии этого тулбокса можно сравнить по [6] И [83]).
Приложение D. Сведения об основных ту л боксах системы MATLAB 5
Замечание. В настоящем Приложении приводятся сведения о составе системы MATLAB 5 версии MATLAB 5.3.0.10183 (Rll) для PCWIN и следующих версий тулбоксов:
-	MATLAB Toolbox 5.3 (Rll) 15-Jan-1999,
-	Control System Toolbox 4.2 (Rll) 15-Jul-1998,
-	System Identification Toolbox 4.0.5 (Rll) 10-Apr-1998,
-	Signal Processing Toolbox 4.2 (Rll) 10-Jul-1998,
-	Communications Toolbox 1.4 (Rll) 10-Jul-1998,
-	Image Processing Toolbox 2.2 (Rll) 05-Aug-1998,
-	Statistics Toolbox 2.2 (Rll) 24-Jul-1998,
-	Financial Toolbox 2.0.1 (Rll) 14-Aug-1998,
-	Fuzzy Logic Toolbox 2.0.1 (Rll) 16-Sep-1998,
-	Neural Network Toolbox 3.0.1 (Rll) Ol-Jul-1998,
D.l Системы управления
В данном параграфе приводятся сведения о тулбоксе CONTROL SYSTEMS системы MATLAB 5, предназначенного в первую очередь для решения задач автоматического управления [61, 84]. Надо заметить, что область применения этого тулбокса гораздо шире и распространяется на самые разнообразные классы динамических систем.
Замечание. Линейную систему с постоянными параметрами ниже называем ЛС-моделью (линейной стационарной моделью), или 177-моделью {Linear Time Invariant). Модель ЛС-системы в виде нулей, полюсов передаточной функции и коэффициента передачи ниже называем НИК-моделью, или ZP/f-моделью.
Создание ЛС-моделей
ss - создание модели в уравнениях состояния, преобразование ЛС-модели к уравнениям состояния;
zpk - определение НПК-моделей, преобразование модели к виду НПК;
tf - определение передаточной функции, преобразование ЛС-модели к передаточной функции;
222
dss filt	-	описание модели в дескрипторной форме; -	описание дискретных передаточных функций в форме цифровых фильтров (ПФ);
Itiprops - свойства ЛС-системы.
Извлечение данных
ssd ata	- доступ к данным в форме уравнений состояния;
zpkdata - доступ к НПК-данным;
tfdata	- доступ к данным в виде передаточной функции;
dssdata - доступ к данным в дескрипторной форме.
Характеристики моделей
class size	-	класс объекта; -	размерности вход-выход-состояние ЛС-модели;
isempty - “истинно” для пустых матриц и/или ЛС-систем;
isct isdt	- “истинно” для систем непрерывного времени; - “истинно” для систем непрерывного времени;
isproper - “истинно” для собственных систем;
issiso isa	- “истинно” для SISO-систем; - “истинно”, если объект принадлежит к заданному
классу;
isobject - “истинно” для объектов.
Преобразования
c2d d2c d2d	-	дискретизация модели; -	континуализация модели; -	изменение периода дискретности, задание запаздываний по входам;
inv	- обращение ЛС-системы.
Анализ динамических свойств систем
pole eig tzero pzmap	-	вычисление полюсов ЛС-систем; -	собственные значения и собственные векторы; -	получение нулей ЛС-систем; -	расположение полюсов и нулей ЛС-систем;
223
degain - статический коэффициент передачи ЛС-систем;
norm - нормы ЛС-систем;
covar - матрица ковариаций реакции ЛС-системы на белый шум;
damp - собственные частоты и коэффициенты демпфирования для полюсов ЛС-систем;
esort - сортировка комплексных собственных значений непрерывных систем;
dsort - сортировка комплексных собственных значений дискретных систем;
pade - аппроксимация временного запаздывания по Паде.
Модели в уравнениях состояния
rss - устойчивая непрерывная система со случайными параметрами;
drss - устойчивая дискретная система со случайными параметрами;
ss2ss - преобразование базиса уравнений состояния;
canon	- канонические формы уравнений состояния;
jordan - каноническая форма Жордана;
ctrb	-	матрица управляемости;
ctrbf	-	лестничная форма управляемости;
obsv	-	матрица наблюдаемости;
obsvf	-	лестничная форма наблюдаемости;
gram	-	грамианы управляемости и наблюдаемости;
ssbal - балансировка уравнений состояния модели методом диагонализации;
balreal - балансировка уравнений состояния модели через грамиан;
compbal - балансировка уравнений состояния SIMO-систем в сопровождающей форме;
modred - понижение порядка модели;
minreal - минимальная реализация и сокращение нулей и полюсов;
augstate - добавление состояний к выходам модели в пространстве состояний.
224
Временные характеристики
step - переходная функция ЛС-системы;
impulse - весовая функция ЛС-системы;
initial - реакция на начальные условия для моделей в уравнениях состояния;
Isim - моделирование ЛС-системы при произвольном входном воздействии;
Itiwiew - открытие графического пользовательского интерфейса для временных характеристик в ЛС-тулбоксе (LTI Toolbox);
gensig - генератор периодических сигналов для расчета временных характеристик по Isim;
stepfun - единичная ступенчатая функция.
Частотные характеристики
bode - характеристики Боде (ЛАФЧХ) для ЛС-систем; sigma - частотная характеристика сингулярных чисел ; nyquist - частотная характеристика Найквиста;
nichols - диаграмма Никольса;
evalfr - частотные характеристики на заданной частоте;
freqresp - частотные характеристики ЛС-системы;
margin - запасы устойчивости по усилению, по фазе и частоты пересечений.
Соединения систем
append - группировка ЛС-систем присоединением входов и выходов;
parallel - параллельное соединение двух ЛС-систем; series	- последовательное соединение двух ЛС-систем;
feedback - соединение двух систем с обратной связью;
star	- соединение “звездой” ЛС-систем;
connect - приведение модели в уравнениях состояния к структурным соединениям.
Классические методы синтеза систем управления
Hocus - корневой годограф;
rlocfind - определение коэффициентов усиления по заданным корням характеристического многочлена;
8 Б. Р. Андриевский и др.
225
acker - вычисление матрицы обратной связи по формуле Аккермана (Ackermann);
place - вычисление матрицы обратной связи по заданным полюсам;
estim - вычисление коэффициента передачи наблюдателя;
destim - построение дискретного фильтра Калмана;
reg - формирование регулятора в виде обратной связи по состоянию и наблюдателя.
Методы синтеза линейно-квадратичных оптимальных регуляторов
Iqr - линейно-квадратичный регулятор для непрерывных систем;
dlqr - линейно-квадратичный регулятор для дискретных систем;
dreg - линейно-квадратичный гауссовский регулятор для дискретных систем;
Iqry - ЛК-регулятор со взвешиванием выходов;
dlqry - ЛК-регулятор со взвешиванием выходов для дискретных систем;
Iqrd - дискретный ЛК-регулятора с непрерывной функцией потерь;
dlqe - синтез фильтра Калмана для дискретных систем;
dlqew - синтез фильтра Калмана для дискретных систем с влиянием возмущения на выход;
kalman - непрерывный или дискретный фильтр Калмана;
Iqe - синтез фильтра Калмана для непрерывных систем;
Iqed - синтез дискретного фильтра Калмана по непрерывной функции потерь;
Iqew - синтез фильтра Калмана для непрерывных систем с прямой связью по возмущению;
Iqgreg - синтез линейно-квадратичного гауссовского регулятора.
226
Решение матричных уравнений
1уар - решение непрерывного матричного уравнения Ляпунова;
dlyap - решение дискретного матричного уравнения Ляпунова;
саге	- решение алгебраического уравнения Риккати
для непрерывных систем;
dare	- решение алгебраического уравнения Риккати
для дискретных систем;
condeig - числа обусловленности для собственных значений матрицы.
D.2. Идентификация систем
В данном параграфе перечисляются программы, составляющие тулбокс SYSTEM IDENTIFICATION системы MATLAB 5, предназначенные для решения задач параметрической и непараметрической идентификации линейных динамических систем. Программы тулбокса разработаны шведским ученым Л. Льюнгом [58, 139, 140].
Моделирование и предсказание
idsim - моделирование динамической системы;
ре	- ошибки предсказания;
poly2th - формирование “тета-матрицы” по заданным многочленам;
predict - предсказание на тп шагов.
Действия с данными
dtrend - устранение трендов из наборов данных;
idfilt - фильтрация данных фильтром Баттерворта {Butterworth)]
idinput - генерация входных сигналов для идентификации; idresamp - изменение частоты отсчета данных.
227
Непараметрическое оценивание
covf	- оценка ковариационной функции по матрице данных;
era etfe	-	корреляционный анализ; -	оценка эмпирической передаточной функции и периодограммы;
spa	- спектральный анализ.
Оценка параметров
аг	- оценка авторегрессионной (АН)-модели процес-р о •
armax	- оценка ARMAX-модели;
агх bj	- МНК-оценка ARX-модели; - оценка модели Бокса-Дженкинса (Box-Jenkins)\
canstart - многосвязная тета-модель с оценками начальных
ivar	параметров; - оценка методом инструментальной переменной (ИП) авторегрессионной составляющей послед-
iv4	овательности; - приближенно оптимальная ИП-оценка для ARX-
n4sid	модели ; - идентификация модели в уравнениях состояния
oe	методом подпространств; - оценка ошибки предсказания для модели выходной ошибки;
pem	- оценка ошибки предсказания для общей линейной модели.
Создание моделей заданной структуры
arx2th - тета-формат для ARX-модели;
canform - структуры моделей канонического вида;
mf2th	- перевод структур моделей, определенных пользователем, в тета-формат;
modstruc - структура модели для использования в ms2th;
ms2th	- перевод стандартной параметризации в уравнениях состояния в тета-формат;
poly2th	- “тета-матрица” по заданным многочленам.
228
Действия со структурами моделей
fixpar - закрепление значений параметров моделей в уравнениях состояния и ARX-моделях;
sett - задание интервала квантования в тета-структуре; thinit - (случайные) начальные значения параметров;
unfixpar - освобождение значений параметров в моделях состояния и ARX-моделях.
Преобразования моделей
idmodred - понижение порядка модели;
th2arx - преобразование модели из тета-формата в ARX-модель;
th2ff - частотная характеристика модели вместе со средним отклонением;
th2par - тета-форма для параметров и ковариационной матрицы;
th2poly - полиномы, связанные с данной моделью;
th2ss - преобразование тета-модели в уравнения состояния;
th2tf - преобразование тета-модели в передаточную функцию;
th2zp - нули, полюсы, коэффициенты передачи и их средние отклонения;
thc2thd - преобразование непрерывной модели в дискретную;
thd2thc - преобразование дискретной модели в непрерывную.
Представление моделей
bodeplot - диаграмма Боде для передаточной функции или спектра;
ffplot	- частотные характеристики;
idplot	- входо-выходные последовательности;
nyqplot - диаграмма Найквиста по передаточной функции;
present - представление тета-модели на экране;
zpplot - вывод нулей и полюсов.
229
Извлечение информации
getmfth - получение имени тп-файла, определяющего структуру модели;
getncap - получение числа точек данных и параметров;
getff	- выбор частотной характеристики;
gett	- получение интервала квантования модели;
getzp - извлечение нулей и полюсов из ZEPO-формата, созданного th2zp;
th2par - преобразование тета-формата в параметры и матрицу ковариаций.
Верификация моделей
compare - сравнение значений выхода, полученных моде-лированием/прогнозом, с измеренными;
idsim	-	моделирование системы;
ре	-	вычисление ошибок прогнозирования;
predict	-	тп-шаговый прогноз;
resid	-	вычисление и определение	характеристик невя-
зок модели.
Оценивание (Assessing) неопределенности модели
idsimsd - отображение неопределенности в реакции модели;
th2ff - частотная характеристика модели и среднеквадратическое отклонение;
th2zp - нули, полюсы, коэффициенты передачи и их среднеквадратические отклонения.
Выбор структуры модели
arxstruc - функции потерь для семейства ARX-моделей;
ivstruc - подбор выходной ошибки (output error fit) для семейства со скалярным выходом;
selstruc - выбор структуры модели по различным критериям;
struc - генерация типовых структурных матриц для arxstruc и ivstruc.
230
Рекуррентное оценивание параметров
гагх - рекуррентное оценивание для ARX-модели;
гагтах - рекуррентное оценивание для ARMAX-модели;
rbj - рекуррентное оценивание для модели Бокса-Дженкинса;
гое - рекуррентное оценивание для модели выходной ошибки;
грет, rplr - рекуррентное оценивание для общей модели;
segment - сегментация данных и выявление систем со скачкообразными изменениями.
D.3. Обработка сигналов
В данном параграфе перечисляются программы, входящие в состав тулбокса SIGNAL PROCESSING системы MATLAB 5, предназначенного для решения задач обработки сигналов [35, 61]. Ниже для дискретных фильтров используются обозначения: КИХ-филътр - фильтр с импульсной характеристикой конечной длительности {нерекурсивный фильтр) и БИХ-фильтр- фильтр с импульсной характеристикой бесконечной длительности {рекурсивный фильтр). 1 * *
Генерирование сигналов и их отображение
chirp diric
d(z,n) = <
иначе;
gauspuls
pulstran rectpuls sawtooth
sine
-	частотно-модулированный косинусный сигнал;
-	функция Дирихле
(-l)fc(n-1) при х — 2тгАг, fc = 0,±1,±2,...;
sin(r nsin
-	синусоидальные импульсы с гауссовской модуляцией;
-	последовательность импульсов заданной формы;
-	прямоугольный импульс;
-	пилообразный и треугольный сигналы;
/ ч f sin{кх)/{кх) при х / О,
-	sinc-сигнал, sinc(z) = <	4	" '	7
I 1 - иначе;
1 Функции системы MATLAB 5, которые широко применяются в рас-
сматриваемых задачах, но не входят непосредственно в данный тулбокс,
помечаются символом
231
square - прямоугольная волна;
strips - вывод длинных последовательностей, разделенных на ’’полосы”;
tripuls - треугольный импульс.
Анализ и реализация фильтров
abs*	-	модуль (амплитуда);
angle*	-	аргумент (фазовый угол);
conv*	-	свертка и умножение многочленов;
conv2*	-	двумерная свертка (свертка	изображений);
fftfilt	- фильтрация данных КИХ-фильтром методом
перекрытия-сложения на основе БПФ;
filter*	- рекурсивная (БИХ) и нерекурсивная (КИХ)
фильтрация;
filter2* - двумерная цифровая фильтрация;
filtfilt - цифровая фильтрация с нулевым фазовыми искажениями;
filtic - определение начального состояния для функции filter;
freqs - частотная характеристика аналогового фильтра; freqspace - формирование последовательности частот для расчета частотных характеристик;
freqz - частотная характеристика цифрового фильтра;
grpdelay - характеристика группового запаздывания цифрового фильтра;
impz - импульсная характеристика цифрового фильтра;
latcfilt - фильтрация данных решетчатым фильтром;
unwrap* - коррекция фазовой характеристики (устранение скачков);
zplane - отображение нулей и полюсов.
Преобразования линейных систем
convmtx - матрица свертки;
latc2tf - перевод ленточного фильтра к передаточной функции;
ро!у2гс - вычисление коэффициентов отражения по полиномиальным коэффициентам;
232
rc2poly - вычисление полиномиальных коэффициентов по коэффициентам отражения;
residuez - разложение на простейшие дроби для z-изображ-
sos2ss	ений; - преобразование представления фильтра блоками
sos2tf	второго порядка к уравнениям состояния; - преобразование представления фильтра блоками
sos2zp	второго порядка к передаточной функции; - преобразование представления фильтра - блоками 2-го порядка к виду НПК; 1
ss2sos	- преобразование уравнений состояния к предста-
ss2tf	влению фильтра блоками второго порядка; - преобразование уравнений состояния к передаточной функции;
ss2zp*	- преобразование уравнений состояния к форме НПК;
tf21atc	- преобразование передаточной функции к решетчатой форме фильтра;
tf2ss*	- преобразование передаточной функции к уравнениям состояния;
tf2zp*	- преобразование передаточной функции к форме НПК;
zp2sos	- преобразование формы НПК к представлению
zp2ss*	фильтра блоками второго порядка; - преобразование формы НПК к уравнениям состояния;
zp2tf*	- преобразование формы НПК к передаточной функции.
Классический и прямой методы синтеза БИХ-фильтров besself - синтез аналогового фильтра Бесселя;
butter	- синтез аналогового и цифрового фильтров Баттерворта (Butterworth)]
chebyl - синтез фильтров Чебышева первого типа (с неравномерной полосой пропускания);
1 Формой НПК называем представление передаточной функции системы в виде набора нулей, полюсов и общего множителя (zpk-form).
233
cheby2	- синтез фильтров Чебышева второго типа (с неравномерной полосой задерживания);
ellip	- синтез эллиптических фильтров (фильтров
	Кауэра);
maxflat	- синтез обобщенных цифровых фильтров Баттер-
ворса;
yulewalk - синтез рекурсивных цифровых фильтров по заданной АЧХ методом МНК.
Выбор порядка БИХ-фильтров
buttord - порядок фильтра Баттерворта;
cheblord - порядок фильтра Чебышева первого типа;
cheb2ord - порядок фильтра Чебышева второго типа;
ellipord - порядок эллиптического фильтра.
Синтез КИХ-фильтров
cremez	- синтез комплексного и нелинейно-фазового равноволнового КИХ-фильтра;
firl	- синтез КИХ-фильтра со стандартным откликом методом окон;
fir2	- синтез КИХ-фильтра с заданным откликом методом окон;
fircls	- синтез многополосных КИХ-фильтров методом МНК с ограничениями;
firclsl	- синтез КИХ-фильтров с линейной ФЧХ методом МНК с ограничениями;
firls	- синтез КИХ-фильтров с линейной ФЧХ методом МНК;
firrcos intfilt kaiserord	-	синтез косинусных КИХ-фильтров; -	синтез КИХ-фильтров методом интерполяции; -	оценка параметров и синтез КИХ-фильтров методом окна Кайзера (Kaiser)]
remez	- синтез оптимального КИХ-фильтра методом Паркса-Макклелана (Parks-McClellan)]
remezord	- оценка порядка оптимального КИХ-фильтра методом Паркса-Макклелана.
234
Преобразования
czt	-	контурное (chirp) z-преобразование;
det	-	дискретное косинусное преобразование (ДКФ);
dftmtx	-	дискретное преобразование Фурье;
fft*	-	одномерное БПФ;
fft2*	-	двумерное БПФ;
fftshift* - сдвиг постоянной составляющей в центр спектра при БПФ;
hilbert	-	преобразование Гильберта;
idet	-	обратное дискретное косинусное преобразова-
ние;
ifft	-	одномерное обратное БПФ;
ifft2	-	двумерное обратное БПФ.
Статистическая обработка сигналов
cohere - оценка функции квадрата коэффициента связи между двумя сигналами;
corrcoef* - матрица коэффициентов корреляции;
cov*	- матрица ковариаций;
esd	- оценка взаимной спектральной плотности двух
сигналов;
pburg - оценка энергетического спектра сигнала методом Бурга (Burg)]
pmtm - оценка энергетического спектра сигнала методом Томсона (Thomson multitaper method, МТМ)] pmusic - оценка энергетического спектра сигнала методом анализа собственных векторов Шмидта (Schmidt)]
psd - оценка энергетического спектра сигнала методом Уэлша (Welch)]
pyulear - оценка энергетического спектра сигнала авторегрессионным методом Юла-Уолкера (Yule-Walker)]
tfe - оценка передаточной функции между входом и выходом;
хсогг - оценка взаимно корреляционной функции;
235
хсогг2 - оценка двумерной взаимно корреляционной функции;
xcov - оценка взаимно ковариационной функции.
Окна
bartlett - окно Бартлетта (Bartlett); blackman - окно Блэкмана (Blackman); boxcar - прямоугольное окно;
chebwin - окно Чебышева;
hamming - окно Хэмминга (Hamming); banning - окно Хэннинга (Hanning); kaiser - окно Кайзера (Kaiser);
triang - треугольное окно.
Параметрическое моделирование
invfreqs - оценка параметров непрерывного (аналогового) фильтра по частотной характеристике;
invfreqz - оценка параметров дискретного фильтра по частотной характеристике;
levinson - рекурсивное решение системы Юла-Уолкера методом Левинсона-Дурбина (Levinson-Durbin);
1рс - коэффициенты линейного предсказателя;
ргопу - синтез БИХ-фильтра по импульсной характеристике методом Прони (Ргопу);
stmcb - линейная модель, использующая итерацию Сте-йглица-Макбрида (Steiglitz-McBride).
Специальные операторы
cceps cplxpair*	-	вычисление комплексного кепстра (cepstral); -	группировка комплексных чисел в пары комплексно-сопряженных;
decimate	- децимация (decimation) - уменьшение частоты квантования последовательности;
deconv* demod	-	обращение свертки и деление многочленов; -	демодуляция сигналов связи;
236
detrend - удаление линейного тренда;
dpss - дискретные сферические последовательности Слепяна {Slepian)\
dpssclear - удаление дискретных последовательностей
Слепяна из базы данных;
dpssdir - директорий дискретных последовательностей Слепяна;
dpssload - загрузка дискретных последовательностей Слепяна из базы данных;
dpsssave - сохранение дискретных последовательностей
Слепяна в базе данных;
icceps - обращение комплексного кепстра;
interp* - увеличение частоты квантования в целое число раз (интерполяция);
medfiltl - одномерная медианная фильтрация;
modulate - модуляция для моделирования процессов связи;
polystab - стабилизация многочлена;
rceps - восстановление вещественного кепстра при минимальной фазе;
resample - изменение частоты квантования в заданное число раз;
specgram - вычисление спектрограммы;
upfirdn - увеличение интервала квантования, КИХ-фи-льтрация, уменьшение интервала;
vco - осциллятор, управляемый входным напряжением.
Синтез аналоговых фильтров-прототипов
besselap - расчет аналогового НЧ-фильтра Бесселя;
buttap - расчет аналогового НЧ-фильтра Баттерворта;
cheblap - расчет аналогового НЧ-фильтра Чебышева первого рода;
cheb2ap - расчет аналогового НЧ-фильтра Чебышева второго рода;
ellipap - расчет эллиптического аналогового НЧ-фильтра.
237
Частотные преобразования
1р2Ьр - преобразование аналогового НЧ-фильтра в полосовой фильтр (ПФ);
lp2bs - преобразование аналогового НЧ-фильтра в заграждающий фильтр (ЗФ);
lp2hp - преобразование аналогового НЧ-фильтра в фильтр верхних частот (ВЧ);
1р21р - преобразование аналогового НЧ-фильтра в НЧ-фильтр.
Дискретизация фильтров
bilinear - отображение переменных билинейным (дробнолинейным) преобразованием;
impinvar - преобразование аналогового фильтра в цифровой фильтр методом инвариантности импульсной характеристики.
Интерактивный инструмент
sptool - графическая интерактивная оболочка обработки сигналов (SPTooly,
D.4. Системы связи
Источники сигналов и функции отображения на экране
randint - генератор матрицы случайных целых значений;
randbit - генератор двоичного случайного шума;
biterr - поразрядное сравнение и вычисление частоты появления ошибок в разрядах;
symerr - посимвольное сравнение и вычисление частоты появления ошибок в символах;
eyescat - вывод графика рассеяния.
Кодирование (Source Coding)
compand - исходный код уплотнителя или расширителя с /1-или Л-законом;
238
dpcmdeco - декодирование сигнала, полученного дифференциальной модуляцией импульсным кодом;
dpcmenco - выполнение дифференциальной модуляции импульсным кодом;
dpcmopt - оптимизация параметров дифференциальной модуляции импульсным кодом;
lloyds - оптимизация скалярного квантования по обучающей последовательности;
quantiz - вычисление показателя квантования и выходного значения.
Кодирование-декодирование с обнаружением и исправлением
encode - кодирование методами исправления ошибок;
decode - декодирование методами исправления ошибок;
rsencof - кодирование текстового файла кодом Рида-Соломона;
rsdecof - декодирование текстового файла кодом Рида-Соломона;
bchpoly - порождающий многочлен генератора ВСН-кода;
cyclgen - генератор кругового кодаи проверочных матриц;
cyclpoly - порождающий круговой многочлен;
gen2par - преобразование порождающей матрицы в проверочную матрицу;
hammgen - генератор кода Хемминга и проверочных матриц;
htruthtb - таблицы истинности для порождающих или проверочных матриц;
oct2gen - преобразование сверточного кода из восьмеричной к двоичной форме;
sim2gen - перевод SIMULINK блок-диаграммы в функцию преобразования сверточным кодом.
Модуляция - демодуляция
amod - выполнение модуляции;
ademod - выполнение демодуляции;
amodce - комплексная огибающая {complex envelope) для аналоговой модуляции;
ademodce - демодуляция по комплексной огибающей аналогового модулированного сигнала;
239
dmodce - комплексная огибающая цифровой модуляции; ddemodce - демодуляция по комплексной огибающей ци-
фрового модулированного сигнала;
modmap - отображение цифрового сигнала в аналоговый сигнал для модуляции;
demodmap - обратное отображение модулированного сигнала в цифровой;
apkconst - вычисление и вывод ASK/PSK созвездий (constellation) по NIR, AIR, PIR; 1
qaskenco - кодирование сообщения в двумерную форму для использования qask;
qaskdeco - декодирование двумерного кода в сообщение.
Фильтры
hank2sys - преобразование матрицы Ганкеля (Hanket) к передаточной функции линейной системы;
hilbiir - синтез БИХ-фильтра преобразования Гильберта;
imp2sys - перевод импульсной функции БИХ-фильтра в передаточную функцию КИХ-фильтра;
rcosflt - фильтрация сигнала косинусным фильтром; rcosine - получение косинусного фильтра.
Вычисления в полях Галуа
йхог - поразрядное исключающее “ИЛИ”;
gfadd - сложение двух многочленов над полем Галуа (Galois Field, GF), ПГ-многочленов;
gfconv - свертка (перемножение) ПГ-многочленов;
gfdeconv - деление ПГ-многочленов;
gfdiv	- поэлементное деление ПГ-многочленов;
gffilter	- ПГ-фильтрация;
gflineq - вычисление поля X С АХ = В G GF(p);
gfminpol - нахождение минимальных многочленов;
1 ASK (Amplitude Shift Keying Modulation) - кодирование сдвигом амплитуды; PSK (Phase Shift Keying Modulation) - кодирование сдвигом фазы; NIC (Number In Circle) - количество в цикле; AIC - (Amplitude In Circle) -амплитуда в каждом цикле; PIC (Phase In Circle) - фаза в каждом цикле.
240
gfmul - поэлементное умножение в ПГ-многочлене;
gfplus - сложение двух элементов в ПГ(2Р);
gfpretty - наглядное представление ПГ-многочлена;
gfprimck - проверка свойств неразложимости и простоты ПГ-многочлена;
gfprimdf - построение примитивного многочлена заданной степени;
gfprimfd - нахождение примитивного ПГ-многочлена;
gfrank - вычисление ранга матрицы в поле Галуа;
gfrepcov - свертка ПГ-многочленов;
gfroots - нахождение корней многочленов в ПГ(рт) поле;
gfsub - вычисление основания (substruction) ПГ;
gftrunc - усечение ПГ многочленов;
gftuple - изображение ПГ m-кортежем и степенное изображение.
Функции нижнего уровня для кодирования с обнаружением ошибок
bchcore - ядро вычислений для ВСН-дешифратора;
bchdeco - ВСН-декодирование;
bchenco - ядро вычислений для ВСН-шифратора;
convenco - шифрование сверточным кодом;
errlocp - вычисление полинома обнаружения ошибок (ег-ror-location polynomial) для ВСН- и RS-кодов;
rspoly - получение порождающего многочлена для кода Рида-Соломона;
rscore - ядро дешифратора Рида-Соломона.
rsencode - шифрование кодом Рида-Соломона;
rsenco - пользовательский интерфейс шифрования кодом Рида-Соломона;
rsdecode - дешифрация кода Рида-Соломона;
rsdeco - пользовательский интерфейс дешифрации кода Рида-Соломона;
viterbi - дешифрация сверточным кодом Витерби (Viterbi) с ограниченной памятью;
viterbi2 - дешифрация сверточным кодом Витерби с неограниченной памятью;
rcosfir - косинусный КИХ-фильтр;
rcosiir - косинусный БИХ-фильтр.
241
D.5. Обработка изображений
В этом параграфе приводятся сведения по функциям тулбокса IMAGE PROCESSING (“Обработка изображении”).
Замечание. Термин “image processing” переводится иногда как “обработка графических образов” [84] или как “ико-ника”. С точки зрения авторов, использование термина “обработка изображений” является более удачным.
Воспроизведение изображений на экране
im2doubleee - преобразование массива изображения к
getimage	данным; - извлечение данных изображения image из объекта axes;
image*	- создание объекта image и вывод изображе-
imagesc*	ния; - масштабирование данных и вывод как изоб-
immovie	ражения; - анимация мультифреймового индексированного изображения;
imshow montage	-	вывод изображения на экран; -	отображение составного изображения в ви-
subimage	де сочетания прямоугольников; - отображение составного изображения в виде одиночной фигуры;
truesize	- настройка размера области вывода изобра-
warp	жения; - вывод изображения в виде текстурной
zoom*	поверхности; - изменение масштаба вывода изображения или двумерного графика.
Ввод-вывод файлов изображений
imfinfo * - получение информации о графическом файле; imread* - ввод изображения из графического файла; imwrite* - запись изображения в графический файл.
242
Геометрические преобразования изображений
imcrop - расширение (crop) изображения;
imresize - изменение размера изображения;
imrotate - вращение изображения;
interp2* - двумерная табличная интерполяция.
Свойства пикселов и статистика
согг2 - вычисление двумерного коэффициента корреляции;
imcontour - создание контурного графика по данным изображения;
imfeature - вычисление характерных измерений для областей изображения;
imhist - вывод гистограммы данных изображения;
impixel - указание значений цветов пикселов;
improfile - вычисление яркостей точек вдоль линейных сегментов;
mean2 - вычисление среднего значения элементов матриц;
pixval - управление выводом информации о пикселах изображения;
std2 - вычисление среднего отклонения для элементов матриц.
Анализ изображений
edge - определение контура тонового изображения;
qtdecomp - разбиение изображения на квадратные однородные блоки;
qtgetblk - получение размеров блоков при разбиении на квадратные блоки;
qtsetblk - задание размеров квадратных блоков при разбиении.
243
Коррекция изображений
histeq - повышение контрастности посредством гистограммного выравнивания;
imadjust - настройка яркости изображения или цветовой
	палитры;
imnoise medfilt2 ordfilt2 wiener2	-	зашумление изображения; -	двумерная медианная фильтрация; -	двумерная фильтрация указанного порядка; -	двумерная фильтрация с адаптивным подавлением шумов.
Линейная фильтрация
conv2*	-	свертка двумерных массивов;
convmtx2	-	вычисление двумерной матрицы свертки;
convn*	-	свертка TV-мерных массивов;
filter2*	-	двумерная фильтрация;
fspecial	-	создание фильтра заданного типа.
Синтез линейных двумерных (2-D) фильтров
freqspace* - задание двумерной частотной области;
freqz2 - вычисление двумерной частотной характеристики;
fsamp2 - создание двумерного КИХ-фильтра методом частотной выборки;
ftrans2 - создание двумерного КИХ-фильтра методом частотных преобразований;
fwindl - создание двумерного КИХ-фильтра методом одномерного окна;
fwind2 - создание двумерного КИХ-фильтра методом двумерного окна.
Преобразования изображений
dct2 - двумерное косинус-преобразование;
dctmtx - вычисление матрицы дискретного косинус-пре-образования;
fft2* - двумерное быстрое преобразование Фурье;
244
fftn* - TV-мерное БПФ;
fftshift* - сдвиг постоянной составляющей в центр спектра при БПФ;
idct2	-	двумерное обратное косинус-преобразование;
ifft2	-	двумерное обратное БПФ;
ifftn	-	TV-мерное обратное БПФ;
iradon	-	обратное преобразование Радона;
phantom - генерация тестового изображения (“головы призрака”);
radon - преобразование Радона.
Блочная обработка (Neighborhood and Block Processing)
bestblk - выбор размера блока для блочной обработки;
Ыкргос - обработка изображения отдельными блоками;
col2im - трансформация столбцов матриц в блоки;
colfilt - обработка соседних блоков через постолбцовые функции;
im2col - трансформация блоков изображения в столбцы матриц;
nlfilter - вычисления обобщенным скользящим методом ближайшего соседа.
Двоичные операции с изображениями
applylut - обработка соседних блоков с помощью таблиц соответствия;
bwarea - вычисление размера объектов в двоичном изображении;
bweuler - вычисление числа Эйлера двоичного изображения;
bwfill - заполнение подстилающих областей в двоичном изображении;
bwlabel - разметка связанных компонент в двоичном изображении;
bwmorph - морфологические действия с двоичным изображением;
245
bwperim - нахождение внешних границ объектов в двоичном
bwselect dilate	изображении; -	выделение объектов в двоичном изображении; -	выполнение расширения в двоичном изображе-
erode makelut	нии; -	эрозия двоичного изображения; -	создания таблицы соответствия для использования с applylut.
Обработка в областях
roicolor - выбор области по цвету;
roifill - сглаживающая интерполяция в произвольной области;
roifilt2 - фильтрация в заданной области;
roipoly - указание области в виде многоугольника.
Управление цветом
brighten* - изменение яркости палитры цветов;
cmpermute - изменение цветов в палитре;
cmunique - нахождение минимальной палитры, соответствующей изображению;
colormap* - задание или получение таблицы соответствий цветов;
imapprox - аппроксимация индексированного изображения меньшим набором цветов;
rgbplot* - изображение rgb-палитры.
Преобразование палитр цветов
hsv2rgb* - преобразование hsv-палитры в rgb-палитру;
ntsc2rgb - преобразование ntsc-палитры в rgb-палитру;
rgb2hsv* - преобразование rgb-палитры в hsv-палитру; rgb2ntsc - преобразование rgb-палитры в ntsc-палитру; rgb2ycbcr - преобразование rgb-палитры в ycbcr-палитру; ycbcr2rgb - преобразование ycbcr-палитры в rgb-палитру.
246
Типы изображений и их преобразование
dither	- сглаживание изображений;
gray2ind	- преобразование яркостного изображения в индексированное;
grayslice	- создание индексированного изображения из яркостного пороговым методом;
im2bw	- преобразование изображения к двоичному пороговым методом;
im2double	- преобразование массива изображения к данным удвоенной точности;
im2uint8	- преобразование массива изображения к восьмиразрядным целым без знака данным удвоенной точности;
ind2gray	- преобразование индексированного изображения к яркостному;
ind2rgb	- преобразование индексированного изображения к rgb-изображению;
isbw	- “истинно” для двоичного изображения;
isgray	- “истинно” для яркостного изображения;
isind	- “истинно” для индексированного изображения;
isrgb	- “истинно” для rgb-изображения;
mat2gray	- преобразование матрицы в яркостное изображение;
rgb2gray	- преобразование rgb-изображения, или палитры, в интенсивность серого;
rgb2ind	- преобразование rgb-изображения в индексиров-
анное.
D.6. Статистический анализ
Тулбокс статистического анализа STATISTICS TOOLBOX содержит библиотеки функций по следующим разделам:
-	функции распределения вероятностей;
-	описательная статистика для временных рядов;
-	статистические графики;
-	статистический контроль процессов;
-	подбор линейных моделей по дайным;
-	подбор нелинейных регрессионных моделей по данным;
-	планирование экспериментов;
-	факторный анализ;
247
-	статистическая проверка гипотез;
-	операции ввода-вывода данных.
Ниже приводятся более подробные сведения по этим разделам.
1	. Функции распределения вероятностей:
оценка параметров распределений
betafit - оценка параметров бета-распределения;
betalike - бета-функция логарифмического правдоподобия;
binofit - оценка параметров биномиального распределения;
expfit - оценка параметров экспоненциального распределения;
gamfit - оценка параметров гамма-распределения;
gamlike - гамма-функция логарифмического правдоподобия;
mle - оценка методом максимального правдоподобия;
normlike - нормальная функция логарифмического правдоподобия;
normfit - оценка параметров нормального распределения;
poissfit - оценка параметров распределения Пуассона;
unifit - оценка параметров равномерного распределения.
интегральные функции распределения
betacdf - интегральное бета-распределение;
binocdf - интегральное биномиальное распределение;
cdf - выбранное интегральное распределение;
chi2cdf - интегральное х2-распределение;
expcdf - интегральное экспоненциальное распределение;
fcdf - интегральное распределение Фишера (F);
gamcdf - интегральное гамма-распределение;
geocdf - интегральное геометрическое распределение;
hygecdf - интегральное гипергеометрическое распределение;
logncdf - интегральное логнормальное распределение;
nbincdf - интегральное отрицательное бета-распределение;
ncfcdf - интегральное нецентральное распределение Фишера;
248
nctcdf - интегральное нецентральное /-распределение;
ncx2cdf - интегральное нецентральное /-распределение;
normcdf - нормальное интегральное распределение;
poisscdf	-	интегральное	распределение	Пуассона;
raylcdf	-	интегральное	распределение	Рэлея;
tcdf	-	интегральное	распределение	Стьюдента (/);
unidcdf	-	интегральное	равномерное дискретное распреде-
ление;
unifcdf - интегральное равномерное непрерывное распределение;
weibcdf - интегральное распределение Вейбулла (Weibulfy
функции плотности распределения вероятностей
betapdf - бета-распределение;
binopdf - биномиальное распределение;
chi2pdf - /-распределение;
exppdf - экспоненциальное распределение;
fpdf - распределение Фишера;
gampdf - гамма-распределение;
geopdf - геометрическое распределение;
hygepdf - гипергеометрическое распределение;
normpdf - нормальное распределение;
lognpdf - логнормальное распределение;
nbinpdf - отрицательное биномиальное распределение;
ncfpdf - нецентральное распределение Фишера;
nctpdf - нецентральное /-распределение;
ncx2pdf - нецентральное /-распределение;
pdf - выбранное распределение;
poisspdf - распределение Пуассона;
raylpdf - распределение Рэлея;
tpdf - /-распределение Стьюдента;
unidpdf - равномерное дискретное распределение;
unifpdf - равномерное непрерывное распределение; weibpdf - распределение Вейбулла;
обратные функции интегральных распределений
betainv - обращение интегрального бета-распределения;
binoinv - обращение интегрального биномиального распределения;
249
chi2inv expinv	-	обращение интегрального х2-распределения; -	обращение интегрального экспоненциального распределения;
finv	- обращение интегрального распределения Фишера;
gaminv geoinv	-	обращение интегрального гамма-распределения; -	обращение интегрального геометрического распределения;
hygeinv	- обращение интегрального гипергеометрического распределения;
logninv	- обращение интегрального логнормального распределения;
nbininv	- обращение интегрального отрицательного бета-распределения;
ncfinv	- обращение интегрального нецентрального распределения Фишера;
nctinv	- обращение интегрального нецентрального f-pacn-ределения;
ncx2inv	- обращение интегрального нецентрального ^-распределения;
icdf	- обращение выбранного интегрального распределения;
norminv - обращение нормального интегрального распреде-
poissinv	ления; - обращение интегрального распределения Пуассона;
raylinv tinv	- обращение интегрального распределения Рэлея; - обращение интегрального распределения Стью-
unidinv	дента; - обращение равномерного интегрального дискрет-
unifinv	ного распределения; - обращение равномерного интегрального непре-
weibinv	рывного распределения; - обращение равномерного интегрального распределения Вейбулла;
датчики случайных чисел
betarnd - бета-распределенные случайные числа;
binornd - биномиально распределенные случайные числа;
250
chi2rnd exprnd	о	м -	x -распределенные случайные числа; -	экспоненциально распределенные случайные чис-
frnd gamrnd geornd hygernd	ла; -	F-распределенные случайные числа; -	гамма-распределенные случайные числа; -	геометрически распределенные случайные числа; -	гипергеометрически распределенные случайные числа;
lognrnd nbinrnd	-	логнормально распределенные случайные числа; -	отрицательно биномиально распределенные случайные числа;
ncfrnd	- случайные числа с нецентральным F-распределе-нием;
nctrnd	- случайные числа с нецентральным f-распределе-нием;
ncx2rnd	- случайные числа с нецентральным х2-Распредел-
ением;
normrnd - случайные числа с нецентральным нормальным
poissrnd raylrnd random trnd unidrnd	распределением; -	распределенные по Пуассону случайные числа; -	распределенные по Рэлею случайные числа; -	случайные числа с выбранным распределением; -	распределенные по Стьюденту случайные числа; -	дискретные равномерно распределенные случайные числа;
unifrnd	- непрерывные равномерно распределенные слу-
weibrnd	чайные числа; - распределенные по Вейбуллу случайные числа;
моменты функций распределения
betastat - среднее значение и дисперсия бета-распределения;
binostat - среднее значение и дисперсия биномиального ра-
chi2stat expstat	определения; 9 -	среднее значение и дисперсия х -распределения; -	среднее значение и дисперсия экспоненциального
fstat	распределения; - среднее значение и дисперсия распределения Фишера;
251
gamstat - среднее значение и дисперсия гамма-распределения;
geostat - среднее значение и дисперсия геометрического распределения;
hygestat - среднее значение и дисперсия гипергеометрического распределения;
lognstat - среднее значение и дисперсия логнормального распределения;
nbinstat - среднее значение и дисперсия отрицательного биномиального распределения;
ncfstat - среднее значение и дисперсия нецентрального распределения Фишера;
nctstat - среднее значение и дисперсия нецентрального t-распределения;
ncx2stat - среднее значение и дисперсия нецентрального х2-распределения;
normstat - среднее значение и дисперсия нормального распределения;
poisstat - среднее значение и дисперсия распределения Пуассона;
raylstat - среднее значение и дисперсия распределения Рэлея;
tstat - среднее значение и дисперсия распределения Стьюдента;
unidstat - среднее значение и дисперсия равномерного дискретного распределения;
unifstat - среднее значение и дисперсия равномерного непрерывного распределения;
weibstat - среднее значение и дисперсия распределения Вейбулла.
2	. Описательная статистика для временных рядов
corrcoef* - коэффициенты корреляции;
cov* - матрица ковариаций;
geomean - среднее геометрическое;
harmmean - среднее гармоническое;
iqr	- межквартильный размах;
kurtosis - выборочный эксцесс;
mad - среднее абсолютное отклонение;
mean* - среднее арифметическое;
252
median* - 50-я процентиль (медиана, 0.5-квантиль); moment - центральный момент заданного порядка; nanmax - максимум по неисключаемым данным; nanmean - среднее по неисключаемым данным; nanmedian - медиана по неисключаемым данным;
nanmin - минимум по неисключаемым данным;
nanstd - среднее отклонение по неисключаемым данным; nansum - сумма неисключаемых данных;
pretile - эмпирическая процентиль выборки;
range - широта выборки;
skewness - асимметрия выборки;
std* - среднее отклонение; trimmean - усеченное среднее; var	-	дисперсия.
3	. Статистические графики
boxplot - разметка осей графика’’блоками”;
errorbar - график ошибки;
fsurfht - интерактивный контурный график функции;
gline - интерактивный вывод линий;
gname - интерактивная пометка точек;
Isline - линейно-квадратичное сглаживание выводимых данных;
normplot - отображение соответствия данных нормальному распределению;
pareto	-	диаграммы Парето;
qqplot	-	квантиль-квантильный график;
rcoplot	-	вывод доверительных интервалов	остатков
регрессии;
refeurve - вывод дополнительно графика многочлена с заданными коэффициентами;
refline - вывод дополнительно графика линии с заданным наклоном и смещением;
surfht - интерактивный интерполяционный контурный график;
weibplot - отображение соответствия данных распределению Вейбулла.
253
4.	Статистический контроль процессов
capable - вероятность выхода данных из диапазона;
capaplot - график соответствия данных диапазону;
ewmaplot - график скользящего среднего с экспоненциальным взвешиванием;
histfit - гистограмма и кривая нормальной плотности распределения;
normspec - кривая нормальной плотности распределения в заданных пределах;
schart - S-диаграмма изменения среднего отклонения;
xbarplot - S-диаграмма изменения среднего значения.
5.	Линейные модели
anoval - односторонний анализ отклонений;
anova2 - двусторонний анализ отклонений;
Iscov* - решение уравнения регрессии с заданной ковариацией;
polyconf - полиномиальное предсказание с заданным доверительным интервалом;
polyfit* - полиномиальное сглаживание;
polyval* - полиномиальное предсказание;
regress - множественная линейная регрессия;
ridge - гребневая регрессия;
rstool - интерактивное изображение поверхности отклика;
stepwise - графический интерфейс пользователя для ступенчатой регрессии.
в. Нелинейная регрессия
nlinfit - нелинейное МНК-сглаживание;
nlintool - интерактивный графический инструмент для нелинейного сглаживания и предсказания;
nlparci - доверительные интервалы для параметров нелинейной регрессионной модели;
nlpredci - доверительные интервалы для предсказания;
nnls* - неотрицательное МНК-решение.
254
7.	Планирование экспериментов
cordexch - D-оптимальное планирование методом преобразования координат;
daugment - D-оптимальное планирование;
dcovary - D-оптимальное планирование с заданной ковариацией;
ff2n - двухуровневый полный факторный анализ;
fullfact - планирование смешанных факторных экспериментов;
hadamard* - матрица Адамара;
rowexch - D-оптимальное планирование с преобразованием строк.
8.	Анализ главных компонент
barttest - тест Бартлетта (Bartlett);
pcacov - анализ главных компонент по матрице ковариаций;
pcares - остатки при анализе главных компонент;
princomp - анализ главных компонент по матрице исходных данных.
9.	Проверка гипотез
ranksum - тест Вилкоксона (Wilcoxon) по ранговой сумме;
signrank - знаковый тест Вилкоксона;
signtest - знаковый тест по парным выборкам;
ttest - проверка по критерию Стьюдента для одной выборки;
ttest2 - проверка по критерию Стьюдента для двух выборок;
ztest - z-тест.
10.	Процедуры ввода-вывода данных
caseread - ввод строковой матрицы имен из файла;
casewrite - вывод строковой матрицы имен в файл;
tblread - ввод данных в табличной форме из файла;
tblwrite - вывод данных в табличной форме в файл.
255
D.7. Финансовые вычисления
Ниже указаны некоторые программы, входящие в тулбокс “Финансы” (FINANCIAL TOOLBOX) пакета MATLAB 5.
Представление денежных единиц
cur2frac - преобразование десятичного представления к обыкновенной дроби;
cur2str - преобразование к тексту в банковском формате;
frac2cur - преобразование дробного представления к десятичному.
Графики и диаграммы
boiling - ленточный график Боллингера (Bollinger);
candle - “свечная” диаграмма;
dateaxis - разметка осей по датам;
pointfig - диаграмма цен с отмеченными точками излома;
highlow - диаграмма верхних, нижних цен, цен открытия и закрытия торгов;
movavg - график запаздывающего и упреждающего скользящих средних.
Текущая и будущая стоимости
pvfix - текущая стоимость последовательности равных регулярных платежей;
pvvar - текущая стоимость измененяемого движения наличности;
fvfix - будущая стоимость последовательности равных регулярных платежей;
fvvar - будущая стоимость измененяемого движения наличности;
fvdisc - будущее значение гарантированного процента.
Ежегодный доход
annurate - периодическая ставка ежегодного дохода;
annuterm - число периодов для получения заданной стоимости.
256
Аккумулированный процент
acrubond - гарантированный аккумулированный процент при периодических платежах;
acrudisc - гарантированный аккумулированный процент при срочных платежах.
Цены
bndprice - цена стандартной облигации SIA с фиксированной процентной ставкой;
prbond - цена с регулярными периодическими платежами процентов;
prmat - цена по процентам со срочной выплатой;
proddf - цена с добавленным первым периодом;
proddfl - цена с добавленным первым и последним периодами и оплатой в первый период;
proddl - цена с добавленным последним периодом;
prtbill	- цена казначейского векселя;
prdisc	- дисконтированная стоимость ценных бумаг.
Финансовый календарь
today - текущая дата;
datefind - индексы дат в массиве;
day - день месяца;
eomdate - последний день месяца;
hour - выделение значения часа дня из представления даты/времени;
Iweekdate - дата последнего выбранного дня недели в месяце; minute - выделение значения минуты из представления даты/времени;
month - выделение значения месяца из представления даты;
months - число полных месяцев между датами;
m2xdate - преобразование даты из формата MATLAB в формат Excel;
second - выделение значения секунды из представления даты/времени;
x2mdate - преобразование даты из формата Excel в формат MATLAB;
9 Б. Р. Андриевский и др.
257
year yeardays busdate datemnth	-	выделение значения года из представления даты; -	число дней в году; -	следующий или предыдущий бизнес-день; -	дата дня в следующем или прошлом месяце;
datewrkdy - дата следующего или прошлого рабочего дня;
days360	- число дней между датами из расчета 360 дней в году;
days365	- число дней между датами из расчета 365 дней в году;
day sac t fbusdate holidays isbusday Ibusdate wrkdydif yearfrac	-	число дней между датами в текущем году; -	первый бизнес-день в году; -	выходные и неторговые дни; -	“истинно” для бизнес-дней; -	последний бизнес-день месяца; -	число рабочих дней между датами; -	часть года между датами.
D.8. Нечеткие логические вычисления
В данном параграфе приводятся сведения о составе основных функций тулбокса “Нечеткие логические вычисления” (FUZZY LOGIC TOOLBOX) пакета MATLAB 5.
Редакторы графического интерфейса пользователя (ГИП)
anfisedit	- интерфейс пользователя для обучения и тестирования адаптивной сетевой СНЛВ (ANFIS);
findcluster - интерфейс пользователя для кластеризации;
fuzzy	- основной редактор системы нечеткого логического вывода (СНЛВ, Fuzzy Inference System, FIS)]
mfedit ruleedit ruleview	-	редактор функции принадлежности; -	редактор и синтаксический анализатор правил; -	просмотр правил или диаграмм нечеткого вывода;
surfview	- просмотр выходной поверхности (Output surface).
Функции принадлежности
dsigmf	- разность между двумя сигмоидальными функциями принадлежности;
258
gauss2mf - двусторонняя гауссова функция принадлежности; gaussmf - гауссова функция принадлежности (Gaussian curve);
gbellmf - обобщенная колоколовидная (bell curve) функция принадлежности;
pimf - тг-образная функция принадлежности;
psigmf - произведение двух сигмоидальных функций принадлежности;
smf	-	S-образная функция принадлежности;
sigmf	-	сигмоидальная функция принадлежности;
trapmf - трапецеидальная функция принадлежности;
trimf	-	треугольная функция принадлежности;
zmf	-	Z-образная функция принадлежности.
Команды управления системой нечеткого логического
вывода
addmf	- добавить функцию принадлежности к СНЛВ;
addrule	- добавить правило к СНЛВ;
addvar	- добавить переменную к СНЛВ;
defuzz	- дефазификация (defuzzify) функции принадлежности;
evalfis	- выполнение нечеткого вывода;
evalmf	- вычисление родовой функции принадлежности;
gensurf	- генерация выходной поверхности СНЛВ;
getfis	- получение свойств нечеткой системы;
mf2mf	- преобразование параметров между функциями принадлежности;
newfis	- создание новой СНЛВ;
parsrule	- разбор нечетких правил;
plotfis	- вывод входо-выходных диаграмм СНЛВ;
plotmf	- вывод всех функций принадлежности одной переменной;
readfis	- загрузка СНЛВ с диска;
rmmf	- удаление функции принадлежности из СНЛВ;
rmvar	- удаление переменной из СНЛВ;
setfis	- установка свойств нечеткой системы;
showfis	- вывод на дисплей свойств нечеткой системы;
showrule	- вывод на дисплей правил нечеткой системы;
writefis	- запись нечеткой системы на диск.
259
Развитые средства (Advanced techniques)
anfis - обучающая процедура для СНЛВ типа Сьюгено {Sugeno-type FIS);
fem - получение кластеров при с-значной {с-means) кластеризации;
genfisl - генерация данных типа Сьюгено для СНЛВ-матрицы;
genfis2 - генерация СНЛВ-матрицы разностной кластеризацией;
subclust - оценка центров кластеризации при разностной кластеризации;
convertfis - преобразование нечеткой vl.O матрицы к нечеткой v2.0 структуре;
disefis - дискретизация системы нечеткого вывода;
evalmmf - вычисление множественных функций принадлежности;
fstrvcat - конкатенация (слияние) матриц различных размеров;
fuzarith - нечеткая арифметическая функция;
findrow - нахождение строк матриц, соответствующих входной строке;
genparam - генерация начальных параметров функции принадлежности для обучения СНЛВ;
nextline - считывание следующей строки текстового файла;
probor - вероятностное “ИЛИ”;
sugmax - наибольший диапазон выхода {output range) системы Сьюгено.
Файлы помощи графического интерфейса пользователя
cmfdlg - добавление пользовательского диалога создания функции принадлежности;
cmthdlg - добавление пользовательского диалога создания метода вывода;
fisgui - родовое ГИП-управление для тулбокса FUZZY LOGIC {Generic GUI handling);
260
gfmfdlg - генерация СНЛВ диалоговым методом сеточного деления (grid partition)]
mfdlg - добавление диалога функции принадлежности;
mfdrag - перетаскивание функций принадлежности с помощью мыши;
popundo - снятие последних изменений со стека;
pushundo - запись текущих данных СНЛВ в стек отказа
(undo)]
savedig - сохранение диалога перед закрытием;
statmsg - вывод сообщений в стеке состояния;
updtfis	- обновление ГПИ-средств;
wsdlg	- диалог открытия-сохранения в рабочей области.
D.9. Нейросетевой тулбокс
В данном параграфе приводятся сведения об основных процедурах, входящих в “Нейросетевой тулбокс” (NEURAL NETWORK) пакета MATLAB 5. 1
Список функций по типам нейросетей
assoclr - правила ассоциативного обучения;
Ьаскргор - сети обратного распространения (back propagation, BP)-,
elman	-	рекуррентные сети	Элмана (Elman)]
hopfield	-	рекуррентные сети	Хопфилда (Hopfield)]
linnet	-	линейные сети;
Ivq	-	сети с обучаемой векторной квантизацией (Learn-
ing Vector Quantization Nets, LVQ)]
percept - перцептроны;
radbasis - радиально-базисные сети;
selforg - самоорганизующиеся сети.
Функции настройки
adaptwb - подстройка линейного слоя по правилу Уидроу-Хоффа (Widrow-Hoff).
1 Авторы выражают признательность Д.В. Ефимову за помощь в разрешении неясных вопросов.
261
Функции анализа
errsurf - поверхность ошибки для нейрона с одним входом;
maxlinr - максимальный шаг обучения для линейного нейрона.
Функции расстояния
boxdist - функция расстояния между позициями векторов;
dist - функция евклидова расстояния между векторами;
linkdist - функция расстояния между слоями;
mandist - функция Манхеттен-расстояния.
Функции инициализации слоя
initnw - функция инициализации слоя Нгуен-Уидроу;
initwb - функция инициализации линейного слоя.
Процедура обучения
learncon - процедура обучения весов смещений;
learngd - процедура обучения сети по методу градиентного спуска;
learngdm - процедура обучения сети по методу взвешенного градиентного спуска;
learnh - процедура обучения по правилу Хебба (ЯеЬЬ);
learnhd - процедура обучения по правилу Хебба с разрушением;
learnis	- процедура обучения по правилу инстар (instar);
learnk	- процедура обучения по правилу Коонена (Kohon-
еп);
learnlvl - процедура обучения для сети LVQ-1;
learnlv2 - процедура обучения для сети LVQ-2;
learnos - процедура обучения сети по правилу аутстар (outstar);
learnp - процедура обучения перцептрона;
learnpn - нормализованная процедура обучения перцептрона;
learnsom - процедура обучения самоорганизующихся сетей по правилу Коонена;
learnwh - процедура обучения сети по правилу Уидроу-Хоффа.
262
Однопараметрическая оптимизация
srchbac - однопараметрическая оптимизация;
srchbre - однопараметрическая оптимизация по методу Брента;
srchcha - однопараметрическая оптимизация по алгоритму Карамболиса (Charambolis)]
srchgol - поиск по методу золотого сечения;
srchhyb - однопараметрическая оптимизация методами квадратичной и кубической интерполяций.
Производная функции преобразования входа сети
dnetprod - производная функции произведения;
dnetsum - производная функции суммы.
Функции преобразования входа сети
netprod - произведение;
netsum - сумма.
Функции инициализации сети
initlay - послойная инициализация нейросети;
init - инициализация нейросети;
adapt - способствует настройке нейросети;
train - обучение нейросети;
disp - отображение свойств нейросети;
display - отображение имен нейросетевых переменных и свойств.
Создание нейросети
network -	создание произвольной нейросети;
newc newcf	создание параллельного слоя; создание каскадной сети прямого распространения;
newelm -newff newfftd -	создание сети Элмана (Elman)] создание сети прямого распространения; создание сети прямого распространения с временными задержками на входе;
263
newgrnn - конструирование радиально-базисной сети (регрессионная модификация);
newhop - создание рекуррентной сети Хопфилда;
newlin - создание линейного слоя;
newlind - конструирование линейного слоя;
newlvq - создание LVQ-сети;
newp - создание перцептрона;
newpnn - конструирование вероятностной нейросети;
newrb - конструирование радиально-базисной сети;
newrbe - конструирование точной радиально-базисной сети;
newsom - создание самоорганизующейся сети.
Производные функций производительности
dmae	-	вычисление модуля ошибки;
dmse	-	вычисление квадрата ошибки;
dmsereg	-	вычисление производной регуляризованной ква-
дратичной ошибки;
dsse	-	вычисление суммы квадратов ошибки.
Функции производительности
тае	- вычисление модуля ошибки;
mse	- вычисление квадратичной ошибки;
msereg - вычисление регуляризованной квадратичной ошибки;
sse - вычисление суммы квадратов ошибки.
Графические функции
hintonw - граф Хинтона (Hinton) матрицы весов;
hintonwb - граф Хинтона матрицы весов и вектора смещений;
plotep - положение матрицы весов на поверхности ошибки;
plotes - график поверхности ошибки для нейрона с одним входом;
plotpc - классифицирующая линия для перцептрона;
264
plotperf - график производительности сети;
plotpv - график вектора входов и целевого вектора;
plotsom - график самоорганизующейся сети;
plotv - отображение вектора как линии из начала координат;
plotvec - отображение векторов разными цветами.
Предварительная и пост-обработка
postmnmx - денормализация данных после premnmx;
postreg - регрессионный анализ;
poststd - денормализация данных после prestd;
premnmx - нормализация данных от —1 до +1;
ргерса - анализ входных данных методом главных компонент;
prestd - нормализация данных по отклонению относительно нуля;
tramnmx - преобразование данных к заданным минимуму и максимуму;
trapca - преобразование данных по результатам ргерса; trastd - преобразование данных по заданным среднему значению и среднему отклонению.
Поддержка SIMULINK
gensim - создание нейросетевого блока для моделирования в Simulink.
Топологические функции
gridtop - топология слоя на квадратной сетке;
hextop - топология слоя на треугольной сетке;
randtop - случайная топология сети.
Процедуры обучения
trainbfg - процедура обучения по методу Ньютона;
trainbr - байесова регуляризация;
traincgb - обучение по методу Пауэлла-Бейта сопряженного ВР;
265
traincgf	- обучение по методу Флетча-Пауэлла сопряженного ВР;
traincgp	- обучение по методу Полака-Рибьера сопряженного ВР;
traingd traingda	-	обучение по методу градиентного спуска; -	обучение по методу градиентного спуска с адаптивным шагом;
traingdm - обучение по методу градиентного спуска с
traingdx	толчком; - обучение по методу градиентного спуска с ада-
trainlm trainoss trainrp trainscg	птивным шагом и толчком; -	обучение по методу Левенберга-Маккуарда ВР; -	обучение по методу секущих; -	обучение по методу эластичного ВР; -	обучение по методу масштабированного сопря-
trainwb trainwbl	женного градиента; -	обучение сети по матрице весов и смещений; -	обучение сети по матрице весов и смещений -один вектор за шаг.
Производные функций активации сети
dhardlim - для смещенной знаковой функции;
dhardlms	-	для знаковой функции;
dlogsig	-	для сигмоидной функции;
dposlin	-	для позитивной линейной функции;
dpurelin	-	для линейной функции;
dradbas	-	для гауссовой функции;
dsatlin	-	для смещенной линейной функции	с	насыщением;
dsatlins	-	для смещенной линейной функции	с	насыщением;
dtansig - для функции гиперболического тангенса;
dtribas - для треугольной функции.
Функции инициализации весов и смещений
initcon - инициализация смещений для обучения с помощью функции learncon;
initzero - инициализация нулями;
266
midpoint - функция инициализации весов с заданным
randnc	средним; - функция инициализации матрицы весов с норми-
randnr	рованными столбцами; - функция инициализации матрицы весов с норми-
rands	рованными строками; - функция инициализации случайной матрицей.
ЛИТЕРАТУРА
1.	Айвазян С.А., Мхитарян В.С. Прикладная статистика и основы эконометрии. М.: ЮНИТИ, 1998.
2.	Алберт А. Регрессия, псевдоинверсия и рекуррентное оценивание. М.: Наука, 1977. 224 с.
3.	Алексее А.А., Имаев Д.Х., Кузьмин Н.Н., Яковлев В.Б. Теория управления: учебник для вузов. СПб.: Издательско-полиграфический центр Гос. электротехн. ун-та. 1999. 434 с.
4.	Андреев Ю.Н. Управление конечномерными линейными системами. М.: Наука, 1976. 424 с.
5.	Андриевский Б.Р., Гузенко П.Ю., Фрадков А.Л. Управление колебаниями механических систем методом скоростного градиента // Автоматика и телемеханика. 1996. № 4. С. 4-17.
6.	Андриевский Б.Р., Фрадков А.Л. Избранные главы теории автоматического управления с примерами на языке MATLAB. СПб.: Наука, 1999. 467 с.
7.	Андронов А.А., Витт А.А., Хайкин С.Э. Теория колебаний. 2-е изд. М.: Физматгиз, 1959.
8.	Арсеньев Д.Г., Иванов В.М., Кульчицкий О.Ю. Адаптивные методы вычислительной математики и механики. Стохастический вариант. СПб.: Наука, 1996. 366 с.
9.	Бахвалов Н.С., Жидков Н.П., Кобельков Г.М. Численные методы. М.: Наука, 1987. 599 с.; 2-е изд. М.: Бином, 2000.
10.	Блейклок Дж.Г. Автоматическое управление самолетами и ракетами. М.: Машиностроение, 1969. 286 с.
11.	Блехман И.И. Синхронизация динамических систем. М.:Наука, 1971.
12.	Блехман И.И. Вибрационная механика. М.:Наука, 1994.
13.	Блехман И. И., Мышкис А. Д., Пановко Я. Г. Механика и прикладная математика. Логика и особенности приложений математики. М.: Наука, 1990. 356 с.
14.	Боголюбов Н.Н., Митропольский Ю.А. Асимптотические методы в теории нелинейных колебаний. М.: Физматгиз, 1958.
15.	Бусленко Н. П. Моделирование сложных систем. М.: Наука, 1978. 399.
16.	Ван Трис Г. Теория обнаружения, оценок и модуляции. Т. 2. Теория нелинейной модуляции. М.: Сов. Радио, 1975. 334 с.
17.	Веников В. А. Теория подобия и моделирование. М.: Высшая школа, 1984. 439 с.
18.	Вентцель Е.С. Исследование операций. Задачи, принципы, методология. М.: Наука, 1988. 208 с.
268
19.	Верешкин А.Е. , Катковник В.Я. Линейные цифровые фильтры и методы их реализации. М.: Сов. радио, 1973. 151 с.
20.	Воеводин В.В. Вычислительные основы линейной алгебры. М.: Наука, 1977. 303 с.
21.	Гелиг А.Х., Леонов Г.А., Якубович В.А. Устойчивость нелинейных систем с неединственным состоянием равновесия. М.: Наука, 1978. 400 с.
22.	Гилл Ф.} Мюррей У., Райт М. Практическая оптимизация. М.:Мир,1985. 509 с.
23.	Голуб Дж., Ван Лоун Ч. Матричные вычисления. М.: Мир, 1999.
24.	Голъденберг Л.М., Левчук Ю.П., Поляк М.Н. Цифровые фильтры. М.: Связь, 1974. 160 с.
25.	Гоноровский И.С. Радиотехнические цепи и сигналы: Учебник для вузов. М.: Радио и связь, 1986. 512 с.
26.	Горбатов В.А. Фундаментальные основы дискретной математики. М.: Наука, Физматлит, 2000.
27.	Горский В. Г., Адлер Ю. П., Талалай А. М. Планирование промышленных экспериментов. М.: Металлургия, 1978. 112 с.
28.	Горяченко В.Д. Элементы теории колебаний. Красноярск: Изд-во Красноярского ун-та, 1995.
29.	Гультяев А.К. Имитационное моделирование в среде Windows: Практическое пособие. СПб.: КОРОНАпринт, 1999. 288 с.
30.	Дезо ер Ч., Видьясагар М. Системы с обратной связью: вход-выходные соотношения. М.: Наука, 1983.
31.	Демидович Б.П. Лекции по математической теории устойчивости. М.: Наука, 1967; 2-е изд. МГУ, 1998.
32.	Деревицкий Д. П., Фрадков А. Л. Прикладная теория дискретных адаптивных систем управления. М.: Наука, 1981. 216 с.
33.	Дмитриев А.С., Панас А.И., Старков С.О. Динамический хаос как парадигма современных систем связи //Зарубежная радиоэлектроника. 1997.	10. С. 4-26.
34.	Дружинина М.В., Никифоров В.О., Фрадков А.Л. Методы адаптивного управления нелинейными объектами по выходу // Автоматика и телемеханика. 1996.	2. С. 3-33.
35.	Дьяконов В.П., Абраменкова И.В. MATLAB 5.0/5.3. Система символьной математики. М.: Нолидж, 1999. 640 с.
36.	Заде Л., Дезоер Ч. Теория линейных систем. Метод пространства состояний. М.: Наука, 1970. 704 с.
37.	Иванов В.В. Методы вычислений на ЭВМ: Учебное пособие. Киев: Наукова Думка, 1986.
269
38.	Игнатов В.А. Теория информации и передачи сигналов: Учебник для вузов. М.: Сов. Радио, 1979. 280 с.
39.	Каипов В. X., Селютин А. А., Дубровский С. А. Методы обработки данных в системах с нечеткой информацией. Фрунзе: Илим, 1988. 188 с.
40.	Калахан Д. Методы машинного расчета электронных схем. М.: Мир, 1970. 344 с.
41.	Калман Р., Фалб П., Арбиб М. Очерки по математической теории систем. М.: Мир, 1971.
42.	Касти Дж. Большие системы: связность, сложность и катастрофы. М.: Мир, 1982. 216 с.
43.	Каток А.Б., Хассельблат Б. Введение в современную теорию динамических систем. М.: Факториал, 1999.
44.	Каханер Д., Моулер К., Нэш С. Численные методы и математическое обеспечение. М.: Мир, 1999. 575 с.
45.	Квакернаак X., Сиван Е. Линейные оптимальные системы управления. М.: Наука, 1978.
46.	Кокс Д., Снелл Э. Прикладная статистика. Принципы и примеры. М.: Мир, 1984. 200 с.
47.	Компьютеры, модели, вычислительный эксперимент / Под ред. А. А. Самарского. М.: Наука, 1988. 169 с.
48.	Кофман А., Анри-Лабордер А. Методы и модели исследования операций. Целочисленное программирование. М.: Мир, 1977. 432 с.
49.	Кравчук В.Б. Сравнительный анализ некоторых методов прогнозирования курса акций: Сб. трудов 6-го Санкт-Петербургского симпозиума по теории адаптивных систем (SPAS’99). СПб., 1999. С. 85-88.
50.	Краснощеков П.С., Петров А.А. Принципы построения моделей. М.: Изд-во МГУ, 1983. 264 с.; 2-е изд. М.: Фазис, 2000.
51.	Кроновер Р.М. Фракталы и хаос в динамических системах. М.: Постмаркет, 2000.
52.	Ланда П.С. Нелинейные колебания и волны. М.: Наука, Физ-матлит, 1997. 496 с.
53.	Левин Б. Б., Шварц В. Вероятностные модели и методы в системах связи и управления. М.: Радио и связь, 1985. 312 с.
54.	Леонов Г.А., Буркин И.М., Шепелявый А.И. Частотные методы в теории колебаний. СПб.: Изд-во СПб. ун-та, 1992.
55.	Леонов Г.А., Смирнова В.Б. Математические проблемы теории фазовой синхронизации. СПб.: Наука, 2000.
56.	Лурье А.И. Некоторые нелинейные задачи теории автоматического регулирования. М.: Гостехиздат, 1951.
270
57.	Львовский С.М. Набор и верстка в пакете LaTeX. М.: Космос-информ, 1995. 374 с.
58.	Лъюнг Л. Идентификация систем. Теория для пользователей. М.: Наука, 1992. 431 с.
59.	Макки Дж., Гласс Л. От часов - к хаосу: Ритмы жизни. М.: Мир, 1990.
60.	Математическое моделирование / Под ред. Дж. Эндрюса, Р. Маклоуна. М.: Мир, 1979. 277 с.
61.	Медведев В.С., Потемкин В.Г.	Control System Toolbox.
MATLAB 5 для студентов/ Под общ. ред. В.Г. Потемкина. М.: ДИАЛОГ-МИФИ, 1999. 287 с.
62.	Месарович Л-, Такахара Я. Общая теория систем: математические основы. М.: Мир, 1978. 312 с.
63.	Мирошник И.В., Никифоров В.О., Фрадков А.Л. Нелинейное и адаптивное управление сложными динамическими системами. СПб.: Наука, 2000.
64.	Моисеев Н.Н. Математические задачи системного анализа. М.: Наука, 1981. 488 с.
65.	Морозов А.Л., Лрагунов Т.Н., Бойков С.А., Малышева О.В. Инвариантные множества динамических систем в Windows. М.: Эдиториал УРСС, 1998.
66.	Мун Ф. Хаотические колебания. М.: Мир, 1990.
67.	Мышкис А.Л. Элементы теории математических моделей. М.: Физматлит, 1994. 192с.
68.	Неймарк Ю.И. Математические модели в естествознании и технике. Н.Новгород: Изд-во Нижегород. ун-та. Часть 1. 1994; Часть 2. 1996.
69.	Неймарк Ю.И., Ланда П.С. Стохастические и хаотические колебания. М.: Наука, 1987.
70.	Нечеткие множества в моделях управления и искусственного интеллекта / Под ред. Д. А. Поспелова. М.: Наука, 1986. 396 с.
71.	Николис Г., Пригожин И. Самоорганизация в неравновесных системах. М.: Мир, 1979.
72.	Норенков И.П. Введение в автоматизированное проектирование. М.: Высшая школа, 1986. 335 с.
73.	Обработка нечеткой информации в системах принятия решений / А. Н. Борисов и др. М.: Радио и связь, 1989. 304 с.
74.	Основы математического моделирования: Учебное пособие / Д.Л. Егоренков, А.Л. Фрадков, В.Ю. Харламов; Под ред. А.Л. Фрадкова. БГТУ; СПб, 1997. 191 с.
75.	Первозванский А.А. Курс теории автоматического управления. М.: Наука, 1986. 615 с.
271
76.	Перегудов Ф.И., Тарасенко Ф.П. Введение в системный анализ. М.: Высшая школа, 1989. 367 с.
77.	Питерсон Дж. Теория сетей Петри и моделирование систем. М.: Мир, 1984. 356 с.
78.	Плескунин В.И., Воронина Е.Д. Теоретические основы организации и анализа выборочных данных в эксперименте. Л.: Изд-во ЛГУ, 1979. 232 с.
79.	Полушин И.Г., Фрадков А.Л., Хилл В. Пассивность и пассифи-кация нелинейных систем // Автоматика и телемеханика. 2000. № 3. С. 3-37.
80.	Поляк Б.Т. Введение в оптимизацию. М.: Наука, 1983. 384 с.
81.	Попов В.М. Гиперустойчивость автоматических систем. М.: Наука, 1970.
82.	Поспелов Д. А. Логико-лингвистические модели в системах управления. М.: Энергоиздат, 1981. 232 с.
83.	Потемкин В.Г. Система MATLAB: Справочное пособие. М.: ДИАЛОГ-МИФИ, 1997. 350 с.
84.	Потемкин В.Г., Рудаков П.И. Система MATLAB 5 для студентов. М.: ДИАЛОГ-МИФИ, 1999. 448 с.
85.	Рабинович М.И., Трубецков Д.И. Введение в теорию колебаний и волн. М.:Наука, 1984.
86.	Райбман Н. С., Чадеев В. М. Построение моделей процессов производства. М.: Энергия, 1975. 375 с.
87.	Ракитский Ю. В., Устинов С. М., Черноруцкий И.Г. Численные методы решения жестких систем. М.: Наука, 1979. 208 с.
88.	Робертс Ф. Дискретные модели и их приложения в технике, биологии, экологии. М.: Наука, 1986. 494 с.
89.	Романовский И.В. Дискретный анализ. 2-е изд. М.; СПб.: Невский Диалект, 2000.
90.	Самарский А.А., Михайлов А.П. Математическое моделирование: Идеи. Методы. Примеры. М.: Наука, Физматлтит, 1997. 320 с.
91.	Свирежев Ю.М. Нелинейные волны, диссипативные структуры и катастрофы в экологии. М.:Наука, 1987.
92.	Сигорский В.И. Математический аппарат инженера. Киев: Тех-шка, 1975.
93.	Соболь И.М. Численные методы Монте-Карло. М..Наука, 1973.
94.	Советов Б.Я., Яковлев С.А. Моделирование систем. М.: Высшая школа, 1985. 272 с.
95.	Справочник по теории автоматического управления /Под ред. А.А. Красовского. М.: Наука, 1987. 712 с.
272
96.	Танаев В.С., Шкурба В.В. Введение в теорию расписаний. М.: Наука, 1975. 256 с.
97.	Тарасик В.П. Математическое моделирование технических систем: Учебник для вузов. Минск: ДизайнПРО, 1997. 640 с.
98.	Теория выбора и принятия решений / И. М. Макаров и др. М.: Наука, 1982. 328 с.
99.	Терехов В.А., Ефимов Д.В., Тюкин И.Ю., Антонов В.Н. Нейросетевые системы управления//СПб.: Изд-во СПбГУ,1999. 264с
100.	Тимофеев А.В., Шибзухов З.М. Обучение многозначных нейронных сетей распознавания и управления //Сб. трудов 6-го Санкт-Петербургского симпозиума по теории адаптивных систем. С. 172-174.
101.	Тутубалин В.Н. Теория вероятностей. М.: Изд-во МГУ, 1972. 231 с.
102.	Тутубалин В.Н. Теория вероятностей и случайных процессов: Учебное пособие. М.: Изд-во МГУ, 1992. 400 с.
103.	Управление и системное моделирование в гибких производственных системах/ Под ред. С. В. Емельянова. М.: Наука, 1988. 312 с.
104.	Форсайт Дж., Малькольм М., Моулер К. Машинные методы математических вычислений. М.: Мир, 1980. 279 с.
105.	Фомин В.Н., Фрадков А.Л., Якубович В.А. Адаптивное управление динамическими объектами. М.: Наука, 1981. 448 с.
106.	Фрадков А.Л. Адаптивное управление в сложных системах. М.: Наука, 1990. 294 с.
107.	Фрадков А.Л. Основы математического моделирования / Ле-нингр. мех. ин-т. Л., 1989. 88 с.
108.	Фрадков А.Л. Исследование физических систем при помощи обратных связей // Автоматика и телемеханика. 1999. № 3. С. 213-229.
109.	Хаотические системы (специальный выпуск) //ТИИЭР. 1987. Т. 75, N= 8.
НО. Хартман К., Лецкий Э., Шефер В. Планирование эксперимента в исследовании технологических процессов. М.: Энергия, 1977. 52с.
111.	Хант Э. Искусственный интеллект. М.: Мир, 1978. 500 с.
112.	Хемминг Р. В. Численные методы. М.: Наука, 1972. 400 с.
113.	Химмельблау Д. Прикладное нелинейное программирование. М.: Мир, 1975.
114.	Хоггер К. Введение в логическое программирование. М.: Мир, 1988. 348 с.
273
115.	Цурков В. Н. Агрегирование данных при решении динамических задач большой размерности. М.: Наука, 1987. 484 с.
116.	Черноусъко Ф.Л., Акуленко Л.Д., Соколов Б.Н. Управление колебаниями. М..Наука, 1980.
117.	Черноусъко Ф.Л. Некоторые задачи оптимального управления с малым параметром //Прикладная математика и механика. 1968. Т.32, вып.1. С.15-26.
118.	Шилов Г. Е. Математический анализ. Функции нескольких вещественных переменных. М.: Наука, 1972. 622 с.
119.	Шурыгин А.М. Прикладная стохастика: робастность, оценивание, прогноз. М.: Финансы и статистика, 2000.
120.	Шустер Г. Детерминированный хаос. Введение. М.: Мир, 1988.
121.	Byrnes C.I., Isidori A. A frequency-domain phylosophy for nonlinear systems, with applications to stabilization and to adaptive systems //Proc. 23th IEEE Conf. Dec.Contr. Las Vegas, 1984. P. 1569-1573.
122.	Byrnes C.I., Isidori A., Willems J.C. Passivity, feedback equivalence and the global stabilization of minimum phase nonlinear systems //IEEE Trans, on Autom. Control. 1991. Vol. 10. P. 1122-1137.
123.	Chen G., Dong X. From chaos to order: perspectives and methodologies in controlling chaotic nonlinear dynamical systems //Intern. J. of Bifurcation and Chaos. 1993. Vol. 3, N 6. P. 1363— 1409.
124.	Chaos and non-linear models in economics. Theory and applications /Eds J. Creedy, V.L. Martin. Melbourne: Edward Elgar, 1994.
125.	Chaos in chemistry and biochemistry /Eds R. J. Field, L. Gyorgyi // World Scientific. 1992.
126.	Chaos in chemical engineering /Eds G. Biardi, M. Giona, A. Giona //World Scientific. 1995.
127.	Complexity, chaos, and biological evolution /Eds E. Mosekilde, L. Mosekilde //NATO ASI Series, Ser. B: Physics. New York; London: Plenum Press, 1991. Vol. 270.
128.	Engineering and scientific computing with Scilab. /Eds C. Gomez. Boston; Basel; Berlin: Birkhauser, 1998. 491 p.
129.	Fradkov A.L. Exploring nonlinearity by feedback //Physica D. 1999. Vol.128, N 2-4. P. 159-168.
130.	Fradkov A.L., Pogromsky A. Yu. Introduction to control of oscillations and chaos //World Scientific. 1998.
131.	Fradkov A.L., Pogromsky A. Yu. Speed gradient control of chaotic continuous-time systems //IEEE Transactions on Circuits and Systems, I. 1996. Vol. 43, N 11, P. 907-913.
274
132.	Fradkov A.L., Pogromsky A. Yu. Methods of nonlinear and adaptive control of chaotic systems //Preprints of 13th IFAC World Congress on Automatic Control. Vol. К. P. 185-190.
133.	Hasler M. Synchronization of chaotic systems and transmission of information //Int.J. of Bifurcation and Chaos. 1998. Vol. 8, N 4. P. 647-660.
134.	Hill D.J., Moylan P.J. Stability results for nonlinear feedback systems // Automatica. 1977. Vol. 13. P. 377-382.
135.	IEEE Transactions on Circuits and Systems. Special Issue on Chaos in Electronic Circuits. 1993. Vol. 40, N 10.
136.	Isidon A. Nonlinear control systems. Berlin: Springer-Verlag, 1995.
137.	Krstic M., Kanellakopoulos I., Kokotovic P.V. Nonlinear and adaptive control design. New York: John Willey and Sons, 1995.
138.	Li T., Yorke J.A. Period three implies chaos //Amer. Math. Monthly. 1975. Vol. 82. P. 985-992.
139.	Ljung L. System Identification Toolbox: Manual. Sherborn, Mass.: The MathWorks Inc., 1986; 2nd edition Natick, 1995.
140.	Ljung L. System Identification: Theory for the User. New Jersey: Prentice-Hall, A Simon & Schuster Co. 1999. 609 p.
141.	Lorenz E.N. Deterministic nonperiodic flow //J. Atmosferic Science, 1963. Vol. 20, N 2. P. 130-141. (Странные аттракторы: Пер. с англ. М.: Мир, 1981. С. 88-116).
142.	Lorenz H.-W. Nonlinear dynamical economics and chaotic motion. Berlin: Springer-Verlag, 1989.
143.	Markov A. Yu., Fradkov A.L. Adaptive synchronization of chaotic systems based on speed gradient method and passification //IEEE Trans. Circ. and Syst. 1997. N 10. P. 905-912.
144.	MATLAB. User's Guide. Reference Guide //The MathWorks, Inc. 1994.
145.	E. Ott, C. Grebogt, and J. Yorke. Controlling chaos //Physical Review Letters. Vol. 64, N 11. P. 1196-1199, 1990.
146.	Peters E. Chaos and order in the capital markets. New York: Wiley, 1991.
147.	Polderman, J. W. Willems J. C. Introduction to mathematical systems theory: A behavioral approach. Springer-Verlag, 1997. 454 p.
148.	Roy R., Hunt E., Murphy T.W. et al. Dynamical control of a chaotic laser: Experimental stabilization of a globally coupled system //Physical Review Letters. 1992. Vol. 68, N 9. P. 1259-1262.
149.	Ruelle D., Tokens F. On the nature of turbulence. //Comm. Math. Physics. 1971. Vol. 20, N 2. P. 167-192. (Странные аттракторы: Пер. с англ. М.: Мир, 1981. С. 116-151).
275
150.	Sepulchre R., Jankovic M., Kokotovic P.V. Constructive nonlinear control. New York: Springer-Verlag, 1996.
151.	Willems J.C. The behavioral approach to systems and control //European J. of Control. 1996. P. 250-259.
152.	Zames G. On the input-output stability of nonlinear time-varying feedback systems. Parts 1 and 2 //IEEE Trans. Automatic Control. 1966. Vol. 11, N 2. P. 228-238; N 3. P. 465-477.
Список примеров
Стр.
Вычисление определенного интеграла	38
Действия с многочленами	35
Дискретизация аналогового фильтра (АФ)	87
Идентификация параметров	188
Использование CONTROL SYSTEMS TOOLBOX в 49 задаче парковки автомобиля Континуализация дискретной системы	92
Линеаризация модели системы в символьном виде	84
Матричные операции	30
Минимизация функции	37
Моделирование экологической системы	72
Параметрическая оптимизация	178
Получение и преобразование модели аналогового	61
фильтра (АФ)
Построение трехмерных изображений	38
Предсказание курса акций	187
Применение системы SIMULINK в задаче парков-	51
ки автомобиля
Расчет переходной характеристики цифрового	89
фильтра (ПФ)
Расчет переходных характеристик АФ	65
Расчет спектров входного и выходного сигналов	71
фильтра
Расчет частотных характеристик АФ	63
Расчет частотных характеристик ПФ	88
Решение задачи парковки автомобиля в аналити-	40
ческом виде
Решение систем алгебраических уравнений	37
Символьное интегрирование дифференциального	84
уравнения
Статистическая обработка курса акций	100
Численная линеаризация системы	86
Численное решение задачи парковки автомобиля	42
277
Список рисунков
1.1	  15
1.2	Методика математического моделирования. ...	21
1.3	 22
1.4	 27
2.1	Корни и значения многочлена s(A)............ 35
2.2	Пространственные изображения.................39
2.3	Результаты интегрирования и ошибки вычислений.............................................45
2.4	S-модель системы (1.4).......................51
3.1	Электрическая схема ЛС-цепи..................59
3.2	Режекторный аналоговый фильтр................60
3.3	Частотные характеристики фильтра (диаграм-
ма Боде).................................... 63
3.4	S-модель фильтра (3.10)......................64
3.5	Переходные характеристики фильтра (3.10). Выделение сигнала на фоне помехи..................67
3.6	Спектры процессов на входе (Si) и выходе (S2)
фильтра (3.10)...............................72
3.7	S-модель системы “хищник - жертва”...........73
3.8	Фазовый портрет системы “хищник - жертва”. .	74
3.9	............................................76
3.10	Взаимосвязь различных описаний динамических систем..........................................83
3.11	Графики решений исходного (а) и линеаризованного (6) уравнений и параметры линейной модели......................................... 85
3.12	S-модель исходной системы....................86
3.13	Характеристики аналогового прототипа и цифрового фильтра.................................90
3.14	Континуализация моделей......................93
3.15	Диаграмма курса акций компании “Coca-Cola”. . 101
3.16	Распределение отклонений курса акций от тренда 104
3.17	106
3.18	114
3.19	Гармонические	колебания (ш =	1)............120
3.20	Периодические	колебания (о,, =	1,2,4)......120
3.21	Квазипериодические колебания (и\ = 1, 5/тг.) . . 120
3.22	Предельный цикл и его спектр..............  122
278
3.23	Хаотический процесс x(t) в системе Лоренца и его спектр....................................122
3.24	Хаотический аттрактор системы Лоренца.....122
3.25	Электрическая схема цепи Чуа (а) и вольт-амперная характеристика нелинейного резистора (б). . . . 127
3.26	Аттрактор системы Чуа (3.66).............127
3.27	Хаотический процесс x(t) в системе Чуа и его спектр........................................127
3.28	Решение уравнения Дуффинга при гармоническом воздействии и его спектр.................128
3.29	Фазовый портрет и интегральная кривая решения уравнения Дуффинга при гармоническом воздействии...................................129
3.30	Система Лурье............................138
3.31	Нелинейная система.......................140
3.32	Характеристики возбудимости маятника (р =
0.1,	= 10) и системы Дуффинга............142
4.1	Относительная ошибка вычисления е в обычном
(а) и логарифмическом (б) масштабах.......166
5.1	Линии равного уровня (а) и график функции Розенброка (б)..................................177
5.2	Значения функции /(х^) (а) и расстояния R(xk) до точки экстремума (б) в процессе оптимизации. 179
6.1	Прогноз курса акций на один шаг (р = 1)...189
6.2	Прогноз курса акций на четыре шага (р = 1). . . 189
6.3	Аттрактор системы (6.39) (а) и выход передатчика yj(t) (б)................................195
6.4	S-модель приемника (6.40), (6.41).........197
6.5	Идентификация параметра источника сообщения при: а = 0 (а), а = 10~4 (б)..............197
А.1 Примеры графических изображений пакета Scilab. а - трехмерный график; б - моделирование велосипеда..................................210
А.2 Квазипериодический сигнал и его спектр.....213
Предметный указатель
Авторегрессионная модель 183
Адаптивная модель 159
Адаптивный метод 159
Алгебраические уравнения 38
Алгебро-дифференциальные системы 76
Алгоритм „полоска” 161
— последовательного синтеза 182
— скоростного градиента 161
Аттрактор 124
Безусловная оптимизация 173
Библиотека Scilab 203
Бихевиористский подход 19
БИХ-фильтр 90, 231
Быстрое преобразование Фурье 69
Вектор выходов 49
Величина шага поиска 174
Верная цифра 167
Вероятность нормального распределения 104
Вещественная константа Scilab 205
Временная система 16
Входные переменные 75
Выборочный момент 183
Вырезка массива 47
Выходные переменные 75
Глобальная реакция 18
—	переменная 36, 44
—	состояние 18
—	экстремум 172
Градиент 37, 173
Градиентный алгоритм 160
Граф 27
Графический редактор 217
Граф-схема 27
Грубость модели 164
Декомпозиция 26
—	синтеза 180
Деление многочленов 35
Дерево решений 180
Диаграмма Боде 63
Динамическая модель 54
—	система 18
Диод Чуа 126
Дискретизация 50, 79, 87
Дискретное время 183
—	преобразование Фурье 68
—	программирование 172
—	спектр 68
Дисперсионная матрица 155
Дисперсия 103
Дифференциальная форма АСГ 162
Доверительный интервал 157
Допустимая область 173
Дробь Фишера 158
Жесткая система 51
Заграждающий фильтр (ЗФ) 91
Задача Булгакова 141
—	группировки 113
—	дискретной оптимизации 177
—	кластеризации 113
—	Лурье 139
—	оптимизации 151
—	оценивания 151
—	таксономии 113
Закон 11
—	больших чисел 94
—	исключенного третьего 112
—	Стьюдента 157
Изображение по Фурье 69
Иконика 242
Индексированная переменная 31
280
Интегральная кривая 129
Интерполяция 69
Интерпретатор Scilab 203
Каноническое представление 78
КИХ-фильтр 90, 230
Комбинаторная задача 180
Композиционное правило вывода 112
Конечная форма АСГ 162
Конкатенация (объединение) 47
Континуализация 82, 91
Континуальное множество 55
Коэффициент демпфирования 62
—	передачи 51
—	нечеткости 115
—	Фурье 67
Критериальная функция 184
Критерий оптимальности 172
—	прекращения поиска 176
Круговой критерий 139
Курс акций 183
ЛАХ 63
Лингвистическая переменная 106
Линеаризованная модель 76
Линейная нормализация 175
—	регрессия 183
Линейчатый спектр 68
Логарифмическая нормализация 176
—	частотная характеристика 63
Логическое исчисление 112
Локальный экстремум 172
ЛС-модель 221
—	-объект 88
— -система 50
---Scilab 207
ЛФЧХ 63
Ляпуновская экспонента 130
Максимальная степень возбу-
димости 142
Максимум функции 172
Маскированная подсистема 216
Массив 31
Математическая модель 11
— ожидание 103
Матрица Гессе (гессиан) 174
—	многочленов Scilab 205
—	наблюдаемости 188
—	рациональных функций Scilab 206
—	строк Scilab 205
—	Якоби 130
Матричный многочлен 35
Машинный эпсилон 167
Мгновенная мощность 67
Метод барьерных функций 177
—	ветвей и границ 177
—	Гаусса-Зейделя 176
—	Дэвисона 80
—	И-ИЛИ-дерева 181
—	ИПХ 89
—	конфигураций 176
—	наименьших квадратов (МНК) 155, 184
—	наискорейшего спуска 177
—	нулевого порядка 175
—	переменной метрики 177
—	покоординатного спуска 176
—	полного перебора 181
—	проекции градиента 177
—	случайного поиска 176
—	сопряженных градиентов 177
—	сопряженных направлений 177
—	стохастической аппроксимации 159
—	Тастина 92
—	целевых неравенств 161
—	штрафных функций 177 Методика математического моделирования 20
Минимаксный подход 158
281
Мнимая единица 34
МНК-оценка 156, 185
Многоэкстремальная функция 172
Множители Лагранжа 174
Мода нечеткого числа 115
Моделирование 51
Модель состояния 18, 75
Направление перемещения 174
Направленный граф 27
Нахождение экстремума функции 37
Неопределенная система 16
Неопределенность 13
Непрерывное множество 55
Нерекурсивный фильтр 90
Несмещенность оценки 156
Несобственная системы 79
Нечеткая логика 112
—	система 109
—	множество 104
—	отношение 107
—	подмножество 105
—	число 115
Неявные системы 76
Нормальные уравнения 155, 185
Нормирование параметров 175
НПК-модель 221
--форма 93
Область работоспособности 173
Обработка изображений 242
— образов 241
Обращение матриц 32
Ограничения 173
Одноэкстремальная функция 172
Окно управления MATLAB 30, 43
Оператор дифференцирования 61
—	цикла 50
Операция 16
Опорная траектория 76
Определенная система 16
—	интеграл 38
Оптимизация 172
Ориентированный граф 27
Относительная ошибка 46
Отношение 13
—	доминирования 112
— сходства 112
Параметризация 17
Параметрический синтез 179
Параметры 16
Передаточная функция 62, 78
---Scilab 208
Переменные 16
— состояния 18, 44, 75
Переходная характеристика 89
Подсистема 14
Поисковая оптимизация 174
Показатель Ляпунова 130
Поле Галуа 239
Полосовой фильтр (ПФ) 91
Порядок 112
— фильтра 90
Постоянная времени 62
Правило предпочтения 172
Предварительный синтез 8
Предельное множество 124
Преобразование Фурье 67
Причинность 16
Произведение нечетких множеств 119
Процедура Scilab 203
Прямые ограничения 173
Псевдообратная матрица 186
Размытое множество 104
Разреженная матрица Scilab 206
Распределение Фишера 158
Рациональная функция Scilab 205
Регрессионный вектор 184
Рекуррентный алгоритм 159
— метод 159
Рекурсивный фильтр 90, 231
282
Релейный элемент 123
Ряд Фурье 67
Свертка векторов 34, 66
Свойство конвергентности 135
—	транзитивности 112
Серый ящик 17
Сеть обратного распространения 261
Символьный 40
Симметричное нечеткое число 115
Сингулярные дифференциальные системы 76
Синтез цифрового фильтра 90
Система 13
—	TfcX34
—	Лурье 138, 191
—	с памятью 18
—	Чуа 126
Скалярный объект Scilab 204
Скользящее среднее 100
Скрипт-файл 36
Скрытый параметр 18
Собственное число 33
— вектор 33
Совмещенный (управляемый) синтез 8
Соединение систем 14
Состояние системы 75
Список Scilab 206
Способ задаваемого шага 175 — оптимального шага 175 Среднеарифметическое значение 103
Среднее значение 115
Средняя мощность 67
Статистическая однородность 98
— устойчивость 98
Статическая модель 54
Статический коэффициент 62
Стационарная точка 174
Степень возбудимости 141
Странный аттрактор 124
Строго пассивная система 142
Структура 27
—	системы 16
Структурированность 15
Структурно-топологические уравнения 12
Структурный граф 27 — синтез 179
Сумма нечетких множеств 119
Теорема Котельникова-Шеннона 69
—	Куна-Таккера 174
—	Кэли-Гамильтона 35
—	отсчетов 69
Теоретическая модель 12
Тестовая задача оптимизации 178
Тета-форма модели 187
Типизированнный список Scilab 207
Тор 39
Транспонирование 31
Тренд 102
Унимодальная функция 172
Управляемое каноническое представление 78
Управляемые параметры 172
Уравнение Ван дер Поля 123
—	Луффинга 123
—	Лоренца 124
—	Чуа 126
—	состояния 50
Уровень надежности 157
—	сложности синтеза 180
Условие постоянного возбуждения 193
—	попадания в окрестность 176
Условная оптимизация 173
Условный экстремум 173 Устойчивость по Жуковскому 126
283
Фазовая кривая 73
Фазовый портрет 72
Фиксация графика 74
Фильтр Баттерворта 90, 234, 237
—	верхних частот (ВЧ) 91
—	нижних частот (НЧ) 91
---прототип 87
Фрактальная размерность 132 — множество 132
Функционал 151
Функциональная система 16 — ограничения 173 Функция качества 172 — Лагранжа 174 — полезности 114 — принадлежности 105 — Розенброка 178 — MATLAB 43
Хаос 124
Хаотическая система 125
Характеристика возбудимости 141
Характеристический многочлен 33
—	показатель 130
—	полином 78
Целевая функция 172
Целенаправленность 15
Целостность 14
Целочисленное программирование 172
Цель 15
Центр нечеткого числа 115
Цепь Чуа 126
Цифровой фильтр (НФ) 87
Частота 64
— Найквиста 69, 90, 121
Частотная передаточная функция 63
— характеристика 63
Частотный спектр 68
Черный ящик 17
Численное решение дифференциального уравнения 85
Число обусловленности 178
Шаг дискретности 68, 87
— квантования 68
Эквивалентность 112
Экспертная система 182
Экстремальная точка 172
Энергетические характеристики 67
Энергия сигнала 67
Эффективность поиска 175
ул-фай л 36
ASK-кодирование 240
LTI-модель 222
MATLAB Command Window 21,
30, 43
ODE-структура 49
PSK-кодирование 240
S-модель 51, 215
Scilab 203
ZPK-модель 222
284
Тулбоксы MATLAB
COMMUNICATION TOOLBOX 238
CONTROL SYSTEMS TOOLBOX 49, 81, 89, 91, 188, 222
FINANCIAL TOOLBOX 100, 256
FUZZY LOGIC TOOLBOX 258
NEURAL NETWORK TOOLBOX 261
SIMULINK 52, 215
SIMULINK TOOLBOX 52
STATISTICS TOOLBOX 103, 158, 247
SYMBOLIC TOOLBOX 39, 84
SYSTEM IDENTIFICATION 187, 227
Конструкции SIMULINK
Blocksets & Toolboxes 216
Connections 216
Denominator 65
Discrete 216
Drag-and-Drop 215
Final value 51
Gain 51
Initial condition 51, 86
— value 51
Input 86
Linear 216
Load from workspace 86
Masked Subsystem 216
Math function 85
Max step size 66, 86
Nonlinear 85, 216
Numerator 65
Output 66
Patrameters 51
RelTol 48
Save to workspace 66
Scope 51
Simulation 51
Sinks 216
Solver 51, 86
— options 66, 86 Sources 216 Start 51 States 51
Step 51 — time 51 Stop time 52 Time 51, 66 TransferFcn 65 Workspace 66 — I/O 51
285
Операторы MATLAB
abs 64 angle 64 axes 45 axis 39, 45, 74 bode 88, 90 butter 90 c2d 81, 88 clear 43 close 43 collect 61 conv 34, 66 conv 66 d2s 91 dateaxis 100 datenum 100 deconv 35 detrend 102 disp 216 dsolve 41 ezplot 37 fcdf 158 fft 69 figure 66 find 47 finv 158 fmin, fmins 36 fmins 37, 178 for-end 47, 73 fprint 216 fsolve 37 function 36 fzero 38 global 36, 44, 46 grid 34 hisfit 103 hold on (off) 74, 89 hold on (off) 89 iconedit 217 if-else-end 46 inf 74 interpl, interplq 69 legend 45
linmod 87 logspace 64 Isim 50 max 71 mesh 38 meshgrid 38 movavg 100 normfit 103 normplot 104 numden 62 obsv 188 ode45 42, 44-52 odeset 48 plot 73, 89, 217 poly 33 polyval 35 polyvalm 35 quad 38 roots 33 semilogx 65, 89 set 45 sim 52, 66 simple 62 solve 40 squeeze 88 ss 50, 91 stem 89 step 89 subplot 45 subs 41 sym 40 text 66, 216 tf 88, 92 tic-toc 52 timeser 100 title 45 zpk 91
Научное издание
Борис Ростиславич Андриевский Александр Львович Фрадков
ЭЛЕМЕНТЫ МАТЕМАТИЧЕСКОГО МОДЕЛИРОВАНИЯ
В ПРОГРАММНЫХ СРЕДАХ MATLAB-5 И SCILAB
Печатается с оригинал-макета, подготовленного авторами
Редактор издательства Л. С. Тихомирова Художник Л. А. Яценко
Лицензия ИД № 02980 от 06 октября 2000 г.
Подписано к печати 13.02.2001. Формат 60 х 901/16. Бумага офсетная.
Печать офсетная. Усл. печ. л. 18.0. Уч.-изд. л. 14.2.
Доп. тираж 1000 экз. Тип. зак. Ns 3752. С 23
Санкт-Петербургская издательская фирма «Наука» РАН 199034, Санкт-Петербург, Менделеевская линия, 1 nauka@aspid.nw.ru
Санкт-Петербургская типография «Наука» РАН 199034, Санкт-Петербург, 9-я линия, 12
По заказу Центра «Интеграция» (113162, г. Москва, ул. Шаболовка, 33) Санкт-Петербургской издательской фирмой «Наука» РАН в серии «АНАЛИЗ И СИНТЕЗ НЕЛИНЕЙНЫХ СИСТЕМ» под общей редакцией Г. А. Леонова и А. Л. Фрадкова в 2000 г. выпущена книга:
Мирошник И.В., Никифоров В.О., Фрадков А.Л. Нелинейное и адаптивное управление сложными динамическими системами. — СПб.: Наука, 2000. — 549 с., ил. 82.
ISBN 5-02-024872-Х
В книге представлены теоретические основы и методы управления сложными динамическими системами, характеризующимися высокой размерностью и существенной нелинейностью моделей, большим числом входных и выходных переменных, параметрической и структурной неопределенностью. Представлен ряд оригинальных концепций и методов, таких как предписанное пространственное движение, согласованное управление, робастные алгоритмы адаптации высокого порядка, методы скоростного градиента и неявной эталонной модели. Рассматриваются приложения к задачам нелинейного управления механическими системами: пространственным движением твердого тела, многоколесными мобильными роботами, колебательными маятниковыми системами.
Для научных работников, инженеров, преподавателей и аспирантов в области автоматического управления, механики и прикладной математики. Может быть использована в качестве учебного пособия по специальностям, связанным с автоматизацией и управлением.
В 2001 г. готовится к выпуску:
Андриевский Б. Р., БлехманИ.И., БорцовЮ.А., Гаврилов С. В., КоноплевВ. А., ЛавровБ.П., Поляков Н. Д., Томчи-наО. П., Фрадков А. Л., ШестаковВ. М. Управление мехатронными вибрационными установками / Под ред. И. И. Блехмана и А. Л. Фрадкова. — СПб.: Наука, 2001.
Изложены основы построения систем управления вибрационным оборудованием. Описаны основные подходы к использованию обратной связи в вибрационных технологиях и соответствующие методы нелинейной теории управления, в том числе оригинальные результаты авторов. Рассмотрены основные этапы создания мехатронных систем: построение математических моделей механической и электрической подсистем; разработка алгоритмов управления; компьютерное моделирование и анализ динамики замкнутых систем. Особое внимание уделено таким основным нелинейным задачам управления вибрациями, как пуск, прохождение зоны резонанса и управляемая синхронизация вибровозбудителей. Описаны экспериментальные установки: учебно-исследовательский мехатронный вибрационный стенд и двухмаятниковая установка, разработанные в Санкт-Петербургском учебно-научном центре «Проблемы машиностроения, механики и процессов управления» при поддержке ФЦП «Интеграция». Представлены результаты компьютерного моделирования и экспериментальных исследований.
Для научных работников, инженеров и преподавателей, а также студентов и аспирантов по направлениям «Мехатроника и робототехника», «Прикладная механика», «Автоматизация и управление».
ФЕДЕРАЛЬНАЯ ЦЕЛЕВАЯ ПРОГРАММА "ГОСУДАРСТВЕННАЯ ПОДДЕРЖКА ИНТЕГРАЦИИ ВЫСШЕГО ОБРАЗОВАНИЯ И ФУНДАМЕНТАЛЬНОЙ НАУКИ НА 1997—2000 ГОДЫ’
Б. Р. Андриевский, А. Л. Фрадков
Элементы математического моделирования в программных средах MATLAB 5 и Scilab
Серия
«АНАЛИЗ И СИНТЕЗ НЕЛИНЕЙНЫХ СИСТЕМ» под общей редакцией Г. А. Леонова и А. Л. Фрадкова
нацелена на ознакомление научных сотрудников, преподавателей, аспирантов и студентов вузов с достижениями в области нелинейной динамики и теории нелинейных систем управления. Книги серии содержат как оригинальные результаты авторов, так и необходимые сведения учебного характера из соответствующих разделов теории динамических систем и теории управления, включая труднодоступные для российских читателей результаты, установленные в последние годы зарубежными авторами.