WWW.DISS.SELUK.RU

БЕСПЛАТНАЯ ЭЛЕКТРОННАЯ БИБЛИОТЕКА
(Авторефераты, диссертации, методички, учебные программы, монографии)

 

Pages:     || 2 | 3 |

«ВВЕДЕНИЕ В MATLAB Учебное пособие 1 ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ Государственное образовательное учреждение высшего профессионального образования САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ АЭРОКОСМИЧЕСКОГО ...»

-- [ Страница 1 ] --

Л.А. Мироновский, К. Ю. Петрова

ВВЕДЕНИЕ В MATLAB

Учебное пособие

1

ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ

Государственное образовательное учреждение

высшего профессионального образования

«САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ

АЭРОКОСМИЧЕСКОГО ПРИБОРОСТРОЕНИЯ»

Л.А. Мироновский, К. Ю. Петрова

ВВЕДЕНИЕ В MATLAB

Учебное пособие Санкт-Петербург 2005 г.

2 УДК518 ББК32 Мироновский Л.А., Петрова К.Ю.

Введение в MATLAB. Учебное пособие. СПбГУАП. СПб., Изложены структура, организация и язык программирования интегрированного математического пакета MATLAB. Описаны основные функции ядра пакета и некоторых тулбоксов (CONTROL, SYMBOLIC, SIGNAL, OPTIMIZATION). Рассмотрена методика решения задач линейной алгебры, оптимизации, линейных и нелинейных дифференциальных уравнений.

Описано применение системы SIMULINK для структурного моделирования систем автоматического управления. Изложение сопровождается большим количеством примеров.

Учебное пособие предназначено студентам, обучающимся по направлениям 220100, 552800, а также родственным специальностям и направлениям.

Рецензенты:

Кафедра прикладной информатики Международного банковского института, Доктор технических наук, профессор Слаев В.А.

Утверждено редакционно-издательским советом университета в качестве учебного пособия © ГОУ ВПО «Санкт-Петербургский государственный университет аэрокосмического приборостроения»

© Мироновский Л.А., Петрова К.Ю.

ОГЛАВЛЕНИЕ

ПРЕДИСЛОВИЕ

1. ЭЛЕМЕНТАРНЫЕ СВЕДЕНИЯ О ПАКЕТЕ

1.1. Введение

1.2. Начало работы

1.2.1. Запуск и элементарные операции

1.2.2. Ввод числовых данных

1.3. Построение графиков

1.4. Матричные операции

1.5. Работа с полиномами

1.6. Собственные числа и векторы

1.7. Символьные вычисления в MATLAB

Задачи и упражнения 2. Моделирование линейных систем в MATLAB

2.1. Способы описания линейных систем

2.2. Моделирование линейных систем

2.3. Частотные характеристики

2.4. Анализ линейных систем

Задачи и упражнения 3. МОДЕЛИРОВАНИЕ в SIMULINK

3.1. Запуск и начало работы в SIMULINK

3.2. Генераторы входных сигналов и регистрация результатов

3.3. Основные линейные и нелинейные блоки

3.4. Пример моделирования в SIMULINK

Задачи и упражнения 4 РЕШЕНИЕ АЛГЕБРАИЧЕСКИХ ЗАДАЧ

4.1 Графические средства MATLAB

4.1.1 Управление графическим экраном

4.1.2 Двумерная графика

4.1.3 Трехмерная графика

4.2 Решение алгебраических уравнений и поиск экстремумов функций

4.2.1 Решение нелинейных уравнений

4.2.2 Поиск экстремумов

4.3 Функции от матриц

4.3.1 Нормы и числа обусловленности

4.3.2 Матричная экспонента

4.4 Канонические формы матриц

4.4.1 Преобразование подобия

4.4.2 Фробениусова каноническая форма

4.4.3 Жорданова каноническая форма

Задачи и упражнения 5 МОДЕЛИРОВАНИЕ ДИНАМИЧЕСКИХ СИСТЕМ

5.1 Канонические формы линейных систем

5.1.1 Изменение базиса в пространстве состояний

5.1.2 Модальная и сопровождающая канонические формы

5.1.3 Сбалансированное представление

5.2 Линейные MIMO-модели

5.2.1 Описание MIMO-моделей

5.2.2 Анализ минимальности

5.3 Дискретные модели

5.3.1 Описание дискретных моделей

5.3.2 Моделирование дискретных систем

5.3.3 Расчет аналоговых и цифровых фильтров

5.4 Решение дифференциальных уравнений

5.4.1 Решение задачи Коши

5.4.2 Решение краевых задач

5.5 Моделирование в SIMULINK

5.5.1 Редактор дифференциальных уравнений DEE

5.5.2 Анализ Simulink-моделей

5.5.3 Маскирование подсистем в SIMULINK

5.5.4 Управление Simulink-моделью из MATLAB

Задачи и упражнения 6 ПРОГРАММИРОВАНИЕ В MATLAB

6.1 Типы данных

6.2 Использование структур и пользовательских классов

6.3 Сервисные функции

6.4 Взаимодействие с системой

6.5 Управляющие структуры языка MATLAB

6.6 Описание m-функций

6.7 Обработка входных и выходных аргументов функций MATLAB

6.8 Глобальные переменные. Доступ к переменным из различных рабочих пространств... Задачи и упражнения ЗАКЛЮЧЕНИЕ

Библиографический список

Алфавитный указатель команд

ПРЕДИСЛОВИЕ

Учебное пособие написано на основе работы [6], вышедшей более 10 лет назад. За это время в структуре и командах пакета MATLAB произошли заметные изменения, а сам он прочно занял лидирующее положение среди математических пакетов, ориентированных на решение научнотехнических и инженерных задач. В его составе появилась система визуального моделирования SIMULINK – эффективное и удобное средство для моделирования систем, заданных структурными схемами.



К настоящему времени выпущено много руководств и справочников по MATLAB ([1-6, 10содержащих подробное описание его обширной системы команд (их общее число давно перевалило за тысячу), расширений и приложений. Однако, большинство из этих руководств неудобны для начинающего пользователя из-за обилия представленного материала и перегруженности деталями.

Настоящее пособие предназначено для первоначального знакомства с MATLAB и SIMULINK и содержит элементарные сведения о пакете. В первую очередь это относится к разделам 1-3, где даются минимальные сведения о MATLAB и SIMULINK, необходимые для выполнения лабораторных работ по курсу «Моделирование». Разделы 4-6 предназначены для более глубокого знакомства с пакетом, в них подробнее описываются его графические и математические возможности, файловая система, типы данных. Из многочисленных тулбоксов MATLAB в пособии затронуты лишь некоторые, в частности, CONTROL, SYMBOLIC и OPTIMIZATION.

1. ЭЛЕМЕНТАРНЫЕ СВЕДЕНИЯ О ПАКЕТЕ

1.1. Структура пакета Пакет MATLAB широко используется во всем мире при решении задач, связанных с матричными вычислениями. Название пакета образовано путем сокращения от MATrix LABoratory (матричная лаборатория). Операции и команды в MATLAB достаточно естественны и аналогичны математической записи формул на бумаге. MATLAB создавался как пакет программ, реализующих наиболее эффективные вычислительные алгоритмы линейной алгебры. Он организован таким образом, чтобы пользователь имел возможность применять при работе обычный математический язык.

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

MATLAB является языком высокого уровня. По отдельным его командам можно выполнять такие сложные операции, как нахождение корней полиномов, решение линейных и нелинейных алгебраических уравнений, моделирование линейных динамических систем. Указанные операции являются элементарными функциями MATLAB.

Помимо ядра, реализующего вычислительные алгоритмы общего назначения, в пакете MATLAB реализовано несколько десятков так называемых тулбоксов (библиотек специализированных подпрограмм), предназначенных для решения разнообразных практических задач. Например, тулбокс SYMBOLIC предназначен для выполнения символьных вычислений, а тулбокс CONTROL – для расчета и моделирования систем автоматического управления.

Его надо повернуть!

Вместе с пакетом MATLAB, поставляется также среда для визуального моделирования структурных схем SIMULINK, технология работы в которой в значительной степени копирует технику моделирования на аналоговых вычислительных машинах.

Общая структура системы MATLAB поясняется рис. 1.1. Его верхняя часть соответствует ядру MATLAB, содержащему быстро выполняемые встроенные функции (сложение, умножение, тригонометрические и другие базовые функции) и так называемые m-функции, алгоритмы выполнения которых написаны на языке MATLAB. Слева внизу показано семейство тулбоксов, каждый из которых содержит несколько десятков m-функций, справа – среда SIMULINK и связанные с ней средства (расширения и библиотеки блоков для разных приложений).

1.2. Начало работы 1.2.1. Запуск и элементарные операции При запуске MATLAB, как правило, открывается интерфейс, который содержит меню, панель инструментов и два окна – командное окно (Command Window) и окно рабочего пространства (Workspace). В случае если командное окно или окно рабочего пространства отсутствует, их можно активизировать во вкладке меню “View”.

Команды вводятся в диалоговом режиме непосредственно в командное окно. Например, для того чтобы вычислить значение sin300, надо в командном окне набрать текст sin(pi/6) и нажать клавишу Enter. На экране появится ответ ans=0.5.

Если мы хотим построить график функции y=sint на интервале 0 t 10, то сначала следует сформировать массив значений аргумента (для этого в командном окне набираем t=0:.1:10;), а затем набрать текст y=sin(t);

Разделительный знак «точка с запятой» ставится, промежуточных вычислений. После нажатия Enter в графическом окне появится график синусоиды. >>t=0:.1:10; y=sin(t); plot(t,y), grid При желании его можно снабдить надписями и нанести координатную сетку (команда grid).

В дальнейшем обе переменные t, y (каждая из них представляет собой массив из 101 числа) сохраняются в рабочем пространстве MATLAB и доступны для использования.

Вместо того чтобы набирать команды в окне MATLAB, их можно записать в текстовый файл с расширением.m (он называется m-файл или файл-сценарий). Имя файла может быть любым, например, vova.m. Для того чтобы запустить файл сценарий, достаточно набрать его имя (без расширения) в командном окне: >> vova Чтобы MATLAB «увидел» файл, либо помещайте его в стандартный рабочий каталог, например C:\MATLAB \work\, либо укажите путь к нему.

В разобранном примере использовалась функция sin. В состав MATLAB входят команды для вычисления более 50 элементарных функций. Обозначения наиболее употребительных из них приведены в табл. 1.

XY X^2 EXP SIN ASIN SINH

X*Y SQRT LOG COS ACOS COSH

В первом столбце перечислены команды для выполнения четырех арифметических действий.

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

В третьем столбце перечислены команды для получения экспоненты и логарифмов (натурального и десятичного), например exp(1) даст число е=2,71828… Четвертый и пятый столбцы содержат прямые и обратные тригонометрические функции, а в последнем, шестом столбце находятся команды для вычисления гиперболических функций, которые в русской литературе обозначаются символами sh, ch, arcsh. Заметим, что аргумент функций sin, cos должен указываться в радианах, если задавать его в градусах (degree), то надо использовать команды sind, cosd (впервые они появились в MATLAB 7). Например, sin(pi/6) и sind(30) дадут один и тот же результат ans=0.5000. Аргументом каждой из функций может быть число или вектор (набор чисел, массив).

Например, набрав sind([0, 30, 90]) получим ans=0 0.5000 1.0000.

Для оперативного получения справок об этих и других командах используется команда help.

Например, набрав в MATLAB >> help sind, получим справку:

SIND Sine of argument in degrees. SIND(X) is the sine of the elements of X, expressed in degrees.

For integers n, sind(n*180) is exactly zero, whereas sin(n*pi) reflects the accuracy of the floating point value of pi.

See also asind, sin.

1.2.2. Ввод числовых данных Перечислим несколько простых команд для ввода числовых данных в виде векторов и матриц. Самый простой способ формирования векторов и матриц в MATLAB заключается в непосредственном вводе их элементов с клавиатуры. Например, набирая на клавиатуре данные Х = [1 -2 3 8 5 6], получаем одномерный массив (вектор-строку) Х из шести элементов.

Формирование вектора-строки из равноотстоящих значений аргумента выполняется с помощью команды x = x0:h:xn. По умолчанию шаг h принимается равным 1. Например, команда x=0:10 дает целые числа от 0 до 10, а x=0:0.1:10 задает набор значений аргумента от нуля до 10 с шагом 0.1.

Двумерные массивы задаются в виде матриц, при этом строки разделяются символом «точка с запятой». Элементы одной и той же строки могут разделяться как пробелами, так и запятыми:

Для доступа к элементам массива используются круглые скобки:

Для получения строки или столбца матрицы используется символ «двоеточие»:

В MATLAB имеется ряд команд, облегчающих формирование векторов и матриц (табл.2).

Команда linspace используется для получения набора равноотстоящих значений аргумента.

Например, х=linspace(xmin,xmax) создаст массив из 100 значений аргумента между точками хmin и xmax. Если требуется иметь другое число точек, например, N точек на интервале от 0 до 10, следует записать x = linspace(0,10,N). Аналогичные модификации имеет команда logspaсe, обеспечивающая логарифмическое расположение точек массива.

Для создания некоторых распространенных матриц имеются команды zeros, ones, eye и diag.

Команды zeros и ones, создают матрицы, заполненные нулями и единицами. Так, по командaм A=zeros (3) и B=ones (3) будут сформированы матрицы а по командам C = zeros(1,4) и D = ones(1,4) – векторы-строки C = 0 0 0 0 и D = 1 1 1 1.

Команда eye предназначена для создания (она часто обозначается буквой I, название которой произносится как слово «eye») или ее фрагмента.

Команда eye(size(A)) даст единичную матрицу того же размера, что и матрица А.

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

Например, применяя команду diag к приведенной выше матрице В, получим строку [1 1 1], а повторное применение команды diag даст единичную матрицу Е.

1.3. Построение графиков Основное средство для построения графиков в MATLAB – это команда plot и различные ее модификации. Она может вызываться с одним или несколькими входными аргументами.

Стандартный вариант ее вызова – это plot(x,y), где x и y – два массива чисел, содержащие абсциссы и ординаты точек графика функции y = f(x). Выше был приведен пример построения графика синусоиды, аналогично строятся графики любых других функций. При этом вычерчивание осей и выбор масштабов по ним производится автоматически. В случае, если вызов команды plot производится с одним аргументом в формате plot(y), координатами x служат индексы массива y.

Для того чтобы снабдить рисунок координатной сеткой, используется команда grid. Вызов ее без параметров осуществляет переключение режимов «с сеткой»/«без сетки», а задание grid on и grid off явно указывает, следует включить сетку или отключить.

Иногда на одном графике требуется нарисовать несколько кривых. В этом случае в команде plot указывают несколько пар аргументов (по числу функций) plot(х1, у1, х2, у2,..., хn, уn), где х1, у1;

и т.д. – пары векторов. Каждой паре х, у будет соответствовать свой график, при этом они х2, у могут быть заданы векторами разной длины.

Пример. Пусть требуется построить графики затухающих колебаний x(t ) e 0, 2t s i t, n y(t ) e cos t, причем аргумент t изменяется от 0 до 10 с шагом 0,1. Это делается с помощью следующей группы команд:

>>t=0:.1:10; x=exp(–.2*t).*sin(t); y=exp(–.2*t).*cos(t); plot(t, x, t, y), grid.

Результат показан на рис. 1.3. Использование точки перед знаком * (умножение) при вычислении переменных x, y, указывает на поэлементное перемножение массивов чисел (каждая из функций sin t, cos t, e-0,2t, представлена вектором из 101 точек).

Добавляя команду plot(x,y), grid, получим график логарифмической спирали, показанный на рис. 1.4.

0. 0. 0. После того как график выведен на экран, его можно озаглавить, обозначить оси, сделать текстовую разметку, для чего используются команды title, xlabel, ylabel, text. Например, чтобы нанести обозначения осей на последний график, надо набрать xlabel('x'), ylabel('y').

В команде plot в одиночных кавычках можно использовать дополнительный аргумент, указывающий тип символов, используемых для построения графика. Так, plot(X,Y,'x') вычерчивает точечный график, используя символы x (крестики), тогда как plot(X1,Y1,':',X2,Y2,'+') использует символ двоеточия для первой кривой и символ + для втоpой. Цвет линий также может задаваться пользователем. Например, команды plot (X,Y,'r') и plot (X,Y,'+g') используют красную линию для получения первого графика и зеленые + метки для второго. Справку о возможных вариантах типов линий, точек и цветов можно получить, набрав help plot.

Команда plot строит графики на плоскости. MATLAB позволяет также наглядно изображать линии и поверхности в трехмерном пространстве. Для изображения линий в пространстве используется команда plot3. Получим, например, график винтовой линии, которая задается уравнениями x=sint; y=cost; z=t. Возьмем диапазон изменения параметра 0 t 10 с шагом 0,02:

>>t = 0:pi/50:10*pi; plot3(sin(t),cos(t),t);

Результат показан на рис. 1.5.

Три стандартные поверхности – сфера, эллипсоид и цилиндр – строятся с помощью команд sphere, ellipsoid, cylinder соответственно. Результат выполнения первой из них показан на рис.

1.6.

Дополнительные сведения о графических возможностях MATLAB можно найти в разд. 1.7 и 4.1.

1.4. Матричные операции MATLAB имеет обширный арсенал матричных операций. К простейшим из них относятся сложение и умножение, вычисление ранга и определителя, а также обращение матрицы.

Элементарные операции над матрицами перечислены в табл. Для сложения и вычитания матриц одинакового размера используются знаки + и –, например, С = А + В. Умножение матриц обозначается звездочкой: С=А*В. Оно допускается, если число строк матрицы А равно числу столбцов матрицы В. При этом в общем случае A * B B * A.

Напомним, что матричное умножение вычисляется по известному правилу «строка на столбец». В частности, произведение матриц второго порядка находится по формуле Для MATLAB такое умножение – элементарная операция. Приведем простой пример:

Простейшей матричной операцией является транспонирование (строки заменяются столбцами). Например, результатом транспонирования вектора-строки будет вектор-столбец. В MATLAB транспонирование обозначается штрихом. В последней колонке приведена транспонированная матрица С, она равна произведению транспонированных матриц A и B, взятых в обратном порядке.

По команде trace(A) вычисляется след матрицы А, т.е. сумма ее диагональных элементов.

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

Следующая матричная операция – вычисление определителя, осуществляется командой det.

Как известно, определитель матрицы A размера 2x2 равен det A ad bc. Формула для определителя третьего порядка имеет вид:

Обращение квадратной матрицы А производится по команде inv(A). Она является основной при решении системы линейных алгебраических уравнений.

Напомним формулу для вычисления обратной матрицы где А* – присоединенная матрица, составленная из алгебраических дополнений Aij матрицы А. В соответствии с этой формулой процедура вычисления обратной матрицы содержит 2 шага.

Шаг 1. Каждый элемент aij матрицы А заменяется его алгебраическим дополнением Aij, т.е. определителем матрицы, получаемой вычеркиванием соответствующей строки и столбца. Если сумма индексов i+j нечетна, определитель берется с минусом.

Шаг 2. Полученная матрица транспонируется и делится на определитель исходной матрицы.

В частности, для матрицы второго порядка получаем Пример. Табл. 4 содержит примеры выполнения упомянутых операций.

В первой строке приведены команды, набираемые в рабочем окне, во второй – ответы, которые даст MATLAB. В частности видим, что при транспонировании матрицы обратная матрица тоже транспонируется.

Типичная задача линейной алгебры – решение системы линейных уравнений. На матричном языке она сводится к тому, чтобы найти вектор X, удовлетворяющий равенству AX B, где матрица A и вектор-столбец B заданы. Решение этого уравнения имеет вид X A1 B.

Для получения такого решения в пакете MATLAB достаточно набрать >>X=inv(A)*B либо >>X=(A^-1)*B.

Разумеется, для выполнения этих операций матрица A должна быть невырожденной. В случае если система уравнений AX B недоопределена или переопределена, решение получают с помощью команды pinv, выполняющей псевдообращение матрицы А. Можно также использовать знак деления – косую черту (slash и backslash).

Пример. Требуется решить систему трех уравнений с тремя неизвестными Вводя их в MATLAB и набирая >>X=inv(A)*B, получим:

Следовательно, решение системы имеет вид x=-1, y=1, z=2.

1.5. Работа с полиномами В состав MATLAB входит ряд команд, позволяющих выполнять различные операции с полиномами от одной переменной, включая поиск корней, умножение и деление полиномов, построение полинома, проходящего через заданные точки и др. Полином описывается строкой своих коэффициентов в порядке от старшего к младшему. Так, полином x 3 2 x 5 будет представлен вектором 1 0 2 5.

Перечень основных команд MATLAB для работы с полиномами приведен в табл. 5.

Дадим краткие пояснения к ней.

Команда roots предназначена для отыскания корней полинома. Например, чтобы решить квадратное уравнение x 2 5x 6 0 следует набрать r=roots([1 5 6]), результатом будут значения корней r=[-2; -3].

Функция poly выполняет обратную операцию – строит полином по заданным корням. Так p=poly([-2 -3]) даст p=[1 5 6]. Если в качестве входного аргумента функции poly фигурирует квадратная матрица, то результатом будет ее характеристический полином.

Следует иметь в виду, что высокой степени с помощью команды roots осторожностью.

Пример (демонстрация ошибок при вычислении корней). Все корни -0. полинома ( x 1)8 вещественны и равны – 1. Сформируем этот полином >>p=poly(-ones(1, 8)), r=roots(p), r = -1.0203; -1.01420.0144i; -0.99980.0201i; -0.98580.0140i; -0. В результате получили комплексные числа, причем их модуль отличается от единицы на 2%. Если учесть, что MATLAB работает с 32-разрядной сеткой, это очень большая погрешность.

В наглядной форме ошибки вычисления корней показаны на рис. 1.7. Он получен путем пятикратного применения пары команд roots/poly, когда по корням восстанавливался полином, снова искались его корни и т.д. Кружок в центре рис. 1.7 соответствует истинным корням полинома ( x 1)8, а звездочками помечены значения корней, вычисленные в процессе итераций.

% Корневой тест n=8; r=-ones(1,n); clg, hold on for i=1:5, plot(r,'*','LineWidth',2) plot(-1,0,'o','LineWidth',2),grid on; hold off Избежать подобных ошибок можно, переходя к символьным вычислениям (для этого необходимо наличие тулбокса SYMBOLIC).

>> r=-ones(1,8); p=poly(r) >> P=poly2sym(p), P =x^8+8*x^7+28*x^6+56*x^5+70*x^4+56*x^3+28*x^2+8*x+ >>R=solve(P);

R'=[ -1, -1, -1, -1, -1, -1, -1, -1] Как видим, символьный решатель уравнений solve дал точный ответ. К сожалению, его возможности ограничены только уравнениями, допускающими аналитическое решение.

Для того чтобы построить график полинома, надо предварительно вычислить его значения в точках заданного интервала. Для этой цели служит функция polyval (сокращение от polynomial value). Например, чтобы построить график полинома y x 2 5x 6 на интервале 5 x следует набрать:

>> x= -5:0.1:5; p=[1 5 6]; y=polyval(p, x); plot(x, y), grid.

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

Для умножения полиномов предназначена функция conv (сокращение от convolution.

Рассмотрим произведение двух квадратных трехчленов:

Вычислим коэффициенты результирующего полинома четвертой степени в MATLAB:

>> Р1=[1 3 2]; Р2=[4 5 1]; Р= conv(P1,P2).

Получим ответ: Р= 4 17 24 13 2.

Обратная операция – деление полиномов – выполняется по команде deconv. Результат операции деления полиномов представляет собой частное и остаток.

Пример. Найдем целую часть и остаток неправильной рациональной дроби Выполним это деление в MATLAB:

>> num=[4 17 24 14 4]; den=[1 3 2]; [q,r]=deconv(num,den), Результат будет иметь вид Здесь вектор q характеризует целую часть деления, а вектор r – остаток.

Отношение двух полиномов относится к классу так называемых дробно-рациональных функций. Именно такой вид имеют, например, передаточные функции систем автоматического управления. С ними часто приходится делать две типовые операции – разложение передаточной функции в сумму элементарных дробей и обратное действие – сложение элементарных дробей, т.е.

приведение их к общему знаменателю.

В MATLAB обе эти операции могут быть выполнены с помощью команды residue.

Пример. Пусть требуется разложить на элементарные дроби рациональную функцию При «ручном» счете сначала находят числа r1, r2 – это корни знаменателя: r1= -2, r2= -1.

Затем для определения неизвестных коэффициентов k1, k2 приравнивают числители правой и левой частей:

Отсюда k1 k2 1, k1 2k2 5. Решая эту систему, находим k1 3, k2 4.

Выполним указанное разложение с помощью команды residue. Ее входными аргументами являются числитель num и знаменатель den исходной дроби, выходными аргументами – векторы R, K, содержащие коэффициенты знаменателей и числителей элементарных дробей (полюсы и вычеты исходной функции). Набрав >>num=[1 5]; den=[1 3 2]; [K, R]=residue(num, den), получим результат K=[-3 4], R=[-2 -1],. Следовательно, искомое разложение имеет вид В общем случае корни знаменателя могут оказаться комплексными и кратными, кроме того, исходная дробь может быть неправильной (порядок числителя больше или равен порядку знаменателя). Об особенностях применения команды в этих случаях можно узнать с помощью справки help residue.

При вызове с синтаксисом [num, den]=residue(R, K, P) команда выполняет обратное действие – находит сумму элементарных дробей, характеризуемых параметрами R, K и полиномом Р, заданным вектором своих коэффициентов. Одно из применений этого варианта команды – сложение комплексно-сопряженных пар дробей для получения вещественных элементарных дробей второго порядка.

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

Напомним, что собственными числами или собственными значениями квадратной матрицы А называются корни ее характеристического полинома. Характеристический полином находим, раскрывая определитель где Е – единичная матрица, n – размерность матрицы А.

Приравнивая его нулю, получим характеристическое уравнение матрицы А.

Найдем характеристический полином при n=2:

Заметим, что коэффициент при равен следу матрицы А, взятому с минусом, а свободный член равен ее определителю. Поэтому характеристическое уравнение можно записать в виде Корни 1, 2 этого уравнения и будут собственными числами матрицы А.

В MATLAB для получения характеристического полинома матрицы А можно воспользоваться командой Ее результатом будет вектор коэффициентов характеристического полинома. Корни этого полинома находим командой roots. Найдем, например, собственные числа матрицы :

>>A=[1 2; 0 3]; p=poly(A); L=roots(p).

В результате выполнения этих команд на экран будут выведены собственные числа 1 и 3.

Более короткий путь получения собственных чисел состоит в применении команды eig (от немецкого «eigen» – собственный). Для нашего примера, вводя код L=eig(A), получаем векторстолбец собственных чисел с элементами 1; 3. Отметим, что матрица А в примере была треугольной, поэтому собственные числа равны ее диагональным элементам.

Перейдем к определению собственных векторов квадратной матрицы. Вектор H называется собственным вектором матрицы А, если в результате его умножения на матрицу он не изменяет своего направления, а лишь удлиняется или укорачивается.

Алгебраическая запись этого условия имеет вид где коэффициент показывает, во сколько раз изменяется длина вектора. Для того чтобы однородная система (*) имела ненулевое решение H, необходимо, чтобы определитель системы равнялся нулю: det A E 0. Последнее равенство представляет собой характеристическое уравнение матрицы А. Следовательно его корни 1,, n, т.е. собственные числа, надо поочередно подставлять в уравнение (*), чтобы найти собственные векторы, причем каждому собственному числу i будет отвечать свой собственный вектор Hi.

Замечание 1. Если все собственные числа 1,, n различны, то у матрицы А будет n линейно независимых собственных векторов H1, …, Hn.

Замечание 2. Поскольку определитель системы (A – iE)Hi = 0 равен нулю, то одно из уравнений этой системы будет линейной комбинацией других, т.е. «лишним» и его следует отбросить. Решение оставшейся системы будет определено с точностью до произвольной константы. Геометрически это означает, что если H1 – собственный вектор матрицы А, то и k H1, где k – любое число, также собственный вектор. В пакете MATLAB при вычислении собственных векторов константа k обычно выбирается так, чтобы собственные векторы имели единичную длину (чтобы сумма квадратов их компонент равнялась единице).

Замечание 3. Если матрица А – симметрична, то ее собственные числа вещественны, а собственные векторы – ортогональны. У несимметричных матриц все или часть собственных чисел и векторов могут оказаться комплексными.

Чтобы найти собственные векторы матрицы в пакете MATLAB, надо использовать команду eig с двумя выходными параметрами [H,L]=eig(A). При этом столбцами матрицы H будут служить собственные векторы матрицы А, а диагональными элементами матрицы L – соответствующие им собственные числа.

Пример. Дана матрица второго порядка A. Чтобы найти ее собственные числа, выписываем характеристический полином Его корни вещественны 1 1, 2 4.

Матричное уравнение для определения первого собственного вектора имеет вид Ему соответствует система двух скалярных уравнений Они отличаются только постоянным множителем и эквивалентны уравнению Принимая, например, h1 1, получаем h2 1, т.е. первый собственный вектор равен Аналогичным образом получаем систему уравнений для определения второго собственного вектора:

Полагая h1 2, получаем h2 3, т.е. второй собственный вектор равен H 2. Заметим, что Решим эту задачу в MATLAB с помощью команд:

>> A=[1 2;3 2]; [H,D]=eig(A) В результате получаем матрицы:

Заметим, что MATLAB выдал нормированные собственные векторы.

Пример. Найдем характеристический полином и собственные числа матрицы третьего порядка Используя команды poly и eig, получаем:

Второй коэффициент характеристического полинома, взятый с обратным знаком, равен сумме собственных чисел и следу матрицы B.

1.7. Символьные вычисления в MATLAB Для проведения символьных вычислений необходим тулбокс SYMBOLIC пакета MATLAB.

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

Формирование символьных переменных производится командами sym и syms, например, sym(2) или syms x y z. После этого можно вводить математические выражения, содержащие эти числа или переменные.

Перечень основных символьных алгебраических операций приведен в табл. 6.

Первые три столбца в этой таблице содержат перечень операций над матрицами, которые могут выполняться как в числовой, так и в символьной форме. Например, набрав в командном окне текст >>syms a b c d; A=[a b;c d], D=det(A) и нажав Enter, получим ответ По команде P=poly(A) получим символьную запись характеристического полинома матрицы:

а команды inv и eig дают возможность найти в символьном виде обратную матрицу, собственные числа и собственные векторы.

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

>> A=sym(A); [H,D]= eig(A), B=sym(B), V=poly(B) Когда используются символьные вычисления собственных векторов, MATLAB берет одну из компонент собственного вектора равной единице. Заметим, что хотя собственные числа матрицы В вещественны, команда eig(sym(B)) дает для них комплексные выражения, которые не удается упростить средствами MATLAB.

Три последние столбца табл. 6 содержат команды, применяемые для преобразования и упрощения символьных формул. Так, команда expand раскрывает скобки, команда factor, наоборот, пытается факторизовать выражение (разложить его на множители), команда collect приводит подобные члены. Например, команда expand (a+b)^2 даст ответ a^2+2*a*b+b^2, а команда даст ответ (a+b)*(a-b), Естественно, надо предварительно объявить символьные factor(a^2-b^2) переменные командой: sym a b.

Команды simple и simplify используются для упрощения формул, например, набрав >>sym(x), y=simple(sin(x)^ 2+cos(x)^ 2) получим ответ y=1.

Особо следует выделить команду solve, которая позволяет решать алгебраические уравнения, включая нахождение корней полиномов, решение линейных и нелинейных систем уравнений.

Найдем, например, в символьном виде корни квадратного уравнения x 2 2bx c 0. Набрав >>syms x b c; solve(‘x^2+2*b*x+c=0’, x) получаем ответ: ans= -b+(b^2-c) ^(1/2), -b-(^2-c) ^(1/2), что соответствует школьной формуле x1, 2 b b 2 ac.

Команда numden служит для выделения числителя и знаменателя дробно-рациональных выражений. Найдем с ее помощью сумму элементарных дробей Вводя текст >>syms p; [num,den]=numden(1/(p+1)+2/(p+3)), получаем ответ: num=3*p+5, den=(p+1)*(p+3).

Раскрывая последнее выражение с помощью команды expand:

получаем den=p^2+4*p+3, что совпадает со знаменателем суммы дробей.

>>den=expand(den), Отметим еще команды преобразования полиномов из символьного вида в числовой и обратно sym2poly и poly2sym, а также команды double и vpa, служащие для перевода символьных данных в числовые. Например, P=sym2poly(den) даст P=[1 4 3], а результатом команд A=sym([1 2; 3]), L=eig(A), L1=double(L) будут символьная матрица А, символьный вектор собственных чисел L и его числовое значение L1:

О применении команд laplace и ilaplace для выполнения прямого и обратного преобразования Лапласа будет сказано позже.

В тулбоксе Symbolic есть два удобных средства для построения графиков, они вызываются командами ezplot и funtool. Имя первой из них читается как ‘easy plot’, она предназначена для построения графиков функций, заданных аналитически. На рис. 1.8 приведен пример ее использования для построения графика синуса и функции y sin x cos 2 x.

Функция ezplot позволяет также рисовать графики функций, заданных неявно, либо параметрически. Например, для того чтобы изобразить гиперболу, заданную уравнением x 2 y 2 1 достаточно набрать ezplot('x^2-y^2-1'). Можно также указать пределы, в которых будет изображена функция, например, команда ezplot('-x^3+2*x+1',[-2,3]) изобразит график полинома x 3 2 x 1 на интервале [-2, 3].

вызывается в формате ezplot('f(t)’, 'g(t)’, [t0, t1]). Пусть, например, требуется нарисовать на плоскости (x, y) кривую, заданную уравнениями:

Набирая в командной строке:

>>ezplot('2*t-4*t^3','t^2-3*t^4',[-1,1]), получаем кривую, показанную на рис.1. В математической теории катастроф она известна как «ласточкин хвост».

Второе графическое средство тулбокса SYMBOLIC – это функциональный калькулятор funtool. Он позволяет выполнять различные манипуляции с двумя функциями f(x) и g(x) от одной переменной, например, их складывать, перемножать, интегрировать.

Задачи и упражнения 1. Кривые на плоскости. Используя команду plot, построить графики заданных плоских кривых:

(траектория точки, лежащей на окружности, которая катится по кругу того же радиуса);

(траектория точки, лежащей на окружности, которая катится по кругу, радиус которого в два раза больше);

(траектория точки, лежащей на окружности, которая катится по внутренней стороне другой окружности, радиус которой в три раза больше);

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

векторы и написать MATLAB-программу, которая при заданных a1, a2, a3 находит собственные векторы и изображает их на плоскости.

3. Три матрицы. Для заданных матриц найти характеристический полином, собственные числа и собственные векторы Ответ:

4. Типы телосложения. Существуют три типа телосложения: астено-торакальный (худой, тощий), мышечный (атлетический) и дигестивный (толстый, тучный).

Астено-торакальные люди выносливы, способны к монотонным длительным нагрузкам.

Они хороши для бега на длинные дистанции, лыж, гребли, велосипеда, спортивной ходьбы. По натуре это стайеры – и в спорте и в жизни. Дигестивные люди хорошо справляются с интенсивными импульсными нагрузками, у них широкие кости и сильные мышцы. Спорт – толкание ядра, штанга. По натуре это спринтеры. В жизни они энергичны, подвижны, легко переключаются с одного дела на другое.

Чтобы определить тип телосложения, используется формула T=P/H3, где P – вес в килограммах, Н – рост в метрах. Чем выше T, тем плотнее (упитаннее) человек. Для мужчин, если T >y=sqrt(1+sqrt(2+sqrt(3+sqrt(4+sqrt(5+sqrt(6+sqrt(7+sqrt(8+sqrt(9))))))))), что даст ответ y =1.7579.

Для вычисления результата при любом n составим программу-функцию sqrt1234, используя оператор for.

function y=sqrt1234(n) %задача про вложенные корни y(n)=sqrt(n);

for i=n-1:-1:1, y(i)=sqrt(i+y(i+1));

end y=y(1);

Вычисляя sqrt1234(9), вновь получим ans =1.7579.

Для построения графика y (n ) составим программу-сценарий sqr.

%Program sqr % программа sqr.m использует функцию sqrt1234(n) for j=1:10, y(j)=sqrt1234(j);

end, plot(y,'*'), grid 6. Световое табло. Сто светящихся кнопок расположены в виде квадрата 10х10. При нажатии любой кнопки она и все, находящиеся с ней в одном ряду и в одном столбце, меняют свое состояние на противоположное (светящиеся гаснут, а несветящиеся загораются). Какое наименьшее число кнопок нужно нажать, чтобы все кнопки оказались погашенными, если сначала они все светились?

Для проведения экспериментов в MATLAB составьте программу, позволяющую проверять разные стратегии нажатия кнопок.

Указание. Исходное состояние табло изобразим матрицей 10х >> a0=ones(10);

a0= После нажатия кнопки a(k,l) исходная матрица a0 преобразуется по правилу >>a0(k,:)=~a0(k,:);a0(:,l)=~a0(:,l);a0(k,l)=~a0(k,l);a=a0;

где знак тильда означает логическое отрицание.

Рассмотрите стратегии: обход табло по спирали до центра; обход "змейкой" (строка за строкой).

2. Моделирование линейных систем в MATLAB 2.1. Способы описания линейных систем Прежде чем рассматривать вопросы моделирования динамических систем в MATLAB, напомним основные определения. Рассмотрим систему S с входом u и выходом y (рис. 2.1).

Если мгновенное значение выхода y(t ) зависит от предыстории, система называется динамической.

Системы с одним входом и одним обозначаются английской аббревиатурой SISO – Single Input Single Output. Системы с несколькими входами и выходами (рис. 2.2) обозначаются MIMO – Multiple Input Multiple Output. В этом случае входы и выходы системы часто записывают в виде векторов, например, u 1, y 1.

Понятие динамической системы весьма широко. Наиболее хорошо изученными и удобными для анализа являются линейные стационарные динамические системы (LTI – Linear Time Invariant systems).

Для исследования и моделирования таких систем предназначен тулбокс CONTROL, входящий в семейство специальных библиотек пакета MATLAB. Он содержит около 60 команд, служащих для формирования линейных моделей, их анализа, преобразования и моделирования.

В данном разделе ограничимся рассмотрением линейных систем с одним входом и одним выходом (рис. 2.1). Они могут быть заданы передаточной функцией или матричным описанием в пространстве состояния.

Напомним, что передаточной функцией линейной системы называется отношение изображения по Лапласу выходного сигнала y(p) к изображению по Лапласу входного сигнала и(p) при нулевых начальных условиях: Q( p). Например, передаточная функция интегратора равна, передаточная функция апериодического звена, передаточная функция идеального колебательного звена 2.

Передаточная функция линейной системы n-го порядка представляет собой отношение двух полиномов:

Корни z1, …, zm числителя B(p) называются нулями системы (zeros), корни p1,.., pn знаменателя A(p) – полюсами системы (poles). Знание нулей и полюсов позволяет представить описание системы в виде где коэффициент k bm / an.

коэффициентов: num=[bm, …, b0] и den=[an, …, a0], а нули и полюсы – векторами-столбцами z и р: z=[z1, …, zm]Т, p=[p1, …, pn]Т. Например, для передаточной функции третьего порядка имеем num=[2 -6 4], den=[1 3 5 2].

Для создания модели, заданной в виде передаточной функции, используется конструктор tf (от Transfer Function). Его входными параметрами являются массивы коэффициентов числителя и знаменателя, например, по команде sys=tf(2,[3 1]) будет сформирована система sys с передаточной функцией. Доступ к числителю и знаменателю объекта, заданного в виде передаточной функции, можно получить, обращаясь к полям num и den. Так, набрав sys.num{1}, получим ответ ans = 0 2, а набрав sys.den{1}, получим ans = 3 1.

Другой способ задания линейных систем – описание в пространстве состояний. Оно включает четыре матрицы A, B, C, D и имеет вид:

где U, Y – векторы входных и выходных сигналов, X [ x1 xn ]T – вектор состояния, A, B, C, D – постоянные матрицы. Если у системы один вход и один выход, то B – вектор-столбец, С – вектор-строка, D – число (часто равное нулю).

Для того чтобы создать в MATLAB объект, заданный описанием в пространстве состояний, используется конструктор ss (от State Space – пространство состояний). Его входными параметрами служат матрицы А, B, C, D системы.

Пример. Объект второго порядка описывается уравнениями Им соответствуют следующие матрицы описания в пространстве состояний:

Чтобы ввести это описание в MATLAB, следует набрать текст:

>>A=[-2, 1; 3, -5]; B=[0; 4]; C=[1, 7]; D=0; sys=ss(A, B, C, D).

Доступ к полям a, b, c, d созданного ss-объекта можно получить так же, как к полям num и den tf-объекта, например, набрав sys.c, получим ответ ans=1 7.

Мы рассмотрели два способа представления линейных моделей в MATLAB – с помощью передаточной функции Q(p) (tf-модель) и в пространстве состояний X AX BU, Y CX DU (ss-модель). Аналитическая связь между этими описаниями дается формулой В MATLAB переход от ss-модели к tf-модели можно осуществить, используя конструктор tf с аргументом в виде исходной ss-модели. Обратный переход выполняется при помощи команды ss с аргументом в виде tf-модели. Выполним переход к передаточной функции для нашего примера, набрав sys1=tf(sys). На экране появится текст: transfer function 2, извещающий о том, что сформирована tf-модель sys1 с указанной передаточной функцией.

Если после этого ввести команду sys2=ss(sys1), то мы снова получим ss-модель, однако матрицы A, B, C, D в ней будут уже иными:

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

В MATLAB имеется еще один способ описания систем – нуль-полюсное или zpk-описание.

Оно получается в результате разложения на множители числителя и знаменателя передаточной k bm an – коэффициент усиления (gain). Такое описание создается конструктором zpk, который можно использовать также для перехода от ss-модели или tf-модели к zpk-описанию.

В частности, выполняя команду sys3=zpk(sys2), получим систему с описанием Доступ к отдельным элементам zpk-модели осуществляется так же, как и для tf-моделей, например, sys3.z даст ans=[-2.1429], т.е. нули системы.

Отметим возможность объединения нескольких моделей в более сложные системы.

Например, произведение sys=sys1*sys2 означает последовательное соединение систем sys1 и sys2, а сумма sys=sys1+sys2 означает их параллельное соединение. Можно использовать также знаки вычитания и деления –, / (подумайте, какому соединению они соответствуют?).

2.2. Моделирование линейных систем Главная цель моделирования – получение реакции системы на те или иные входные сигналы.

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

В теории линейных систем широко используются две временные характеристики систем – импульсная весовая функция и импульсная переходная характеристика. Импульсной весовой функцией q(t) называется реакция системы на входной сигнал в виде дельта-функции, т.е. на бесконечно короткий импульс единичной площади, действующий в момент времени t=0.

Импульсной переходной характеристикой (переходной функцией) h(t) называется реакция системы на входной сигнал в виде единичной ступеньки (такой сигнал может рассматриваться, как интеграл от дельта-функции). Весовая и переходная функции связаны соотношением q(t ) h(t ).

Изображения по Лапласу дельта-функции и единичного скачка равны 1 и 1/p соответственно.

Изображение весовой функции по Лапласу равно передаточной функции системы, а изображение переходной характеристики равно передаточной функции, деленной на р.

Отсюда вытекает возможность получения весовой функции с помощью обратного преобразования Лапласа от передаточной функции. Например, передаточная функция интегратора Q( p), поэтому его весовая функция q(t)=1; передаточная функция апериодического звена колебательного звена с передаточной функцией Q( p) 2 для весовой функции получаем q(t ) sin kt.

Эта возможность отыскания весовой функции по известной передаточной функции реализуется в MATLAB командой ilaplace тулбокса SYMBOLIC, выполняющей обратное преобразование Лапласа (inverse Laplace). В частности, для получения весовой функции колебательного звена достаточно набрать syms k p; q=ilaplace(k/(p2+k2), чтобы получить результат q=sin(k*t). Команда laplace служит для выполнения обратной операции.

Например,чтобы получить изображение по Лапласу функции sin 10t, достаточно набрать:

>>sym p, t; y=laplace(sin(10*t), t,p).

Получаем ответ: y=10/(p^2+100), т.е. y ( p).

Другой путь аналитического получения весовой и переходной функций связан с символьным решением дифференциальных уравнений. Если система задана описанием в пространстве состояний (ss-модель) то дифференциальные уравнения для весовой функции q и переходной характеристики h имеют вид Например, описание в пространстве состояний апериодического звена с передаточной функцией Q( p) имеет вид Его весовая функция является решением дифференциального уравнения q(t ) be at. Для получения переходной функции надо решить неоднородное откуда дифференциальное уравнение Его решение получаем, складывая общее решение однородного уравнения xодн Ce at и частное решение неоднородного уравнения xчаст a / b :

Постоянная С найдена из начального условия h(0)=0.

Этот способ отыскания весовой и переходной функций может быть реализован в MATLAB с помощью команды dsolve тулбокса SYMBOLIC. Чтобы получить функцию h(t) для нашего примера, нужно набрать:

>>syms a b; h=dsolve(‘Dx+a*x=b, x(0)=0’).

На дисплее появится ответ h=b/a-exp(-a*t)*b/a, совпадающий с полученным выше.

В библиотеке CONTROL весовая и переходная характеристики получаются путем прямого численного моделирования. Соответствующие команды называются impulse и step, это сокращения от impulse function (импульсная функция) и step function (переходная функция). Для выполнения этих операций во всех случаях необходимо предварительно ввести исходную информацию о системе в виде tf-модели или ss-модели, а также сформировать массив равноотстоящих моментов времени t, задающий временной интервал моделирования.

Существует несколько модификаций команды impulse. Простейшая из них имеет вид impulse(sys), ее результатом является график весовой функции. Если набрать impulse(sys,10), то график будет построен на интервале 0 t 10 (в предыдущем случае MATLAB сам определял длительность интервала).

Более содержательные варианты этой команды получаются, если использовать выходные параметры (их число можно задавать от одного до трех). Наиболее полный вариант имеет вид [y,t,X]=impulse(sys,t), он предполагает, что sys – это ss-модель. Здесь t – массив точек времени, который нужно сформировать заранее (например, t=0:.1:10), y – выходной сигнал, Х – вектор состояния. Если моделируется система второго порядка на указанном интервале времени, то массив Х будет содержать два столбца по 101 числу в каждом. Первый столбец – это отсчеты функции х1(t), второй – отсчеты функции х2(t). Столбец у будет содержать 101 значение выходного сигнала у(t).

Для построения графиков этих сигналов нужно использовать команды plot(t,y), plot(t,X), plot(t,X(:,1)). В первом случае будет выведен график функции у(t), во втором – графики обеих переменных х1(t), х2(t), в третьем – график одной переменной х1(t). Команда plot(X(:,1), X(:,2)) построит траекторию на фазовой плоскости x2 f ( x1 )..

Функция step обеспечивает получение переходной функции модели, т.е. реакции на входной сигнал в виде единичной ступеньки. Она имеет те же модификации, что и impulse:

>>step(sys), step(sys,T), y=step(sys,t), [y,t,X]=step(sys,t).

Здесь, как и раньше, в качестве второго входного аргумента можно указывать либо число T (последний момент времени), либо массив t (все точки временного интервала).

Аналогичный синтаксис имеет и команда initial (от initial condition – начальные условия). Она позволяет моделировать свободное движение системы, заданной своим матричным описанием, из начальных условий Х0 (входной сигнал при этом не подается и=0).

Просто initial(sys,X0) строит график выходного сигнала, в более полном варианте используются три выходных параметра [y,t,X]=initial(sys,X0,t).

Основная команда, применяемая для моделирования линейных систем – это команда lsim (от linear simulation – линейное моделирование). Она обеспечивает получение реакции модели на произвольный входной сигнал и(t), представленный массивом своих отсчетов. Простейшая модификация этой команды lsim(sys,u,t) выводит график выходного сигнала системы. Естественно, предварительно надо сформировать массив времени t, входной сигнал и ввести описание системы sys. Например, задав:

>>t=0:1:10; u=sin(t); sys=tf(1,[1 1]; lsim(sys,u,t), получим реакцию апериодического звена с передаточной функцией на входной сигнал u=sint при 0 t 10. Другие модификации этой команды могут использовать выходные параметры и начальные условия:

>>y=lsim(sys,u,t), [y,t,X]=lsim(sys,u,t), [y,t,X}=lsim(sys,u,t,X0).

Последний вариант требует задания системы sys в виде ss-модели. Построение графиков производится с помощью команды plot, например plot(t,u,t,y).

В пакете MATLAB имеется еще ряд возможностей для расчета отклика линейных систем на известные входные воздействия. К ним относятся:

– использование матричной экспоненты для получения весовой и переходной функций (команда expm);

– вычисление интеграла свертки входного сигнала и весовой функции системы (команда – аналитическое решение дифференциальных уравнений (команда dsolve тулбокса – использование прямого и обратного преобразований Лапласа (команды laplace и ilaplace тулбокса SYMBOLIC);

– структурное моделирование в SIMULINK.

Часть из них будет рассмотрена в следующих разделах.

2.3. Частотные характеристики В библиотеке CONTROL имеются функции для исследования систем в частотной области. К основным частотным характеристикам относятся амплитудно-частотная характеристика (АЧХ), фазо-частотная характеристика (ФЧХ) и амплитудно-фазовая характеристика (АФХ), называемая также диаграммой Найквиста. Все они могут быть получены из передаточной функции системы Q(p) после формальной подстановки p i, где i 1, – вещественная переменная, изменяющаяся в пределах от нуля до бесконечности. С физической точки зрения – это частота синусоидального сигнала, подаваемого на вход системы, а Q(i ) – Фурье изображение амплитудно-фазовой характеристикой системы или годографом Найквиста (в последнем случае Зависимость длины вектора от частоты характеристикой, а зависимость ( ) – фазо-частотной характеристикой. Графики АЧХ и АФХ часто рисуют в логарифмическом или полулогарифмическом масштабе. Логарифмическая амплитудная характеристика (ЛАХ) описывается формулой 20 log 10 A( ) и изображается в логарифмическом масштабе. ЛАХ и АФХ, построенные в логарифмическом масштабе, называются в зарубежной литературе диаграммами Боде.

Опишем процедуру получения этих характеристик в MATLAB. Будем считать, что система задана своей tf-моделью и сформирован вектор частот W, например:

>>sys=tf([1 1], [1 1 1]); W=0:.1: 10;

Для получения частотного отклика (frequency response) Q(i ) используется команда freqresp. В нашем примере передаточная функция и частотный отклик имеют вид По команде H=freqresp(sys,W) будет вычислен массив комплексных чисел, содержащих значение функции Q(i ).

Команда plot(H(:)) построит зависимость мнимой части этих чисел от вещественной, т.е.

график АФХ (рис. 2.4).

0. Для построения графиков АЧХ и ФЧХ надо найти модуль и аргумент этих чисел, для чего служат команды abs и angle:

>>A=abs(H(:)); f=angle(H(:)); plot(W,A), plot((W,f).

Результат показан на рис. 2.5, 2.6, из них видно, что с ростом частоты АЧХ стремится к нулю, а ФЧХ – к величине -/2.

Более короткий путь построения частотных характеристик – использование команд nyquist рассматриваются как положительные, так и отрицательные частоты). По команде bode(sys) будут построены графики АЧХ и ФЧХ в логарифмическом масштабе.

Еще один способ построения графиков частотных характеристик, а также импульсной и переходной функций – это использование специального графопостроителя тулбокса CONTROL, который вызывается командой ltiview.

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

Наиболее известный способ проверки устойчивости связан с вычислением полюсов системы, т.е. корней ее характеристического уравнения.

Критерий устойчивости. Для того чтобы линейная система была устойчивой, необходимо и достаточно, чтобы все корни характеристического уравнения лежали в левой полуплоскости.

Пример (анализ устойчивости и ограниченности). Дана неоднородная система дифференциальных уравнений Требуется проанализировать ее устойчивость и выяснить, при каких постоянных a и b все решения системы ограничены.

найдем корни ее характеристического уравнения, т.е. собственные числа матрицы А:

>> A=[-4 2;2 -1]; eig(A) Одно из собственных чисел отрицательно, а другое лежит на мнимой оси, следовательно, однородная система находится на границе устойчивости.

Для ответа на вопрос об ограниченности неоднородной системы найдем ее аналитическое решение с помощью команды dsolve:

>> syms a b;s=dsolve('Dx=2*y-4*x+a,Dy=2*x-y+b') x =2/5*exp(-5*t)*C1-1/10*b+1/5*a+2/5*t*b+1/5*t*a+1/2*C y =-1/5*exp(-5*t)*C1+4/5*t*b+2/5*t*a+C Приведем подобные члены и перейдем к обычной нотации:

Решение будет ограниченным, если a=-2b, тогда x 2c1e 5t a c2, y c1e 5t 2c2.

Нули и полюсы системы, заданной передаточной функцией – это просто корни z i и pi полиномов, стоящих в числителе и знаменателе. Поэтому для вычисления вектора нулей z и вектора полюсов p передаточной функции Q(p) = num/den, могут использоваться команды z = roots(num); p = roots(den). Если система sys задана как tf-модель или ss-модель, то используются команды p=pole(sys), z=zero(sys). Для нахождения полюсов допустимо также использование команды p=eig(sys), что эквивалентно команде p=eig(sys.a), т.е. вычислению собственных чисел матрицы А. Функция tzero (от transfer zeros – передаточные нули) позволяет находить нули системы по матрицам описания в пространстве состояний z=tzero(A,B,C,D).

Функция pzmap предназначена для одновременного вычисления нулей и полюсов. Если набрать [p, z]=pzmap(sys), то будут выведены столбцы p и z полюсов и нулей, а просто pzmap(sys) показывает расположение нулей и полюсов на комплексной плоскости (на графике нули изображаются ноликами, а полюсы – крестиками).

При анализе управляемости и наблюдаемости линейных систем используются матрицы управляемости R и наблюдаемости D, построенные на основе матриц A, B, C описания в пространстве состояний:

Приведем соответствующие критерии.

Критерий управляемости. Для того чтобы система была управляемой, необходимо и достаточно, чтобы матрица управляемости имела полный ранг: rankR = n.

Критерий наблюдаемости. Для того чтобы система была наблюдаемой необходимо и достаточно, чтобы матрица наблюдаемости имела полный ранг: rankD = n.

Критерий минимальности. Для того чтобы система была минимальной необходимо и достаточно, чтобы обе матрицы R и D имели полный ранг: rankR = n, rankD = n.

Формирование матриц управляемости и наблюдаемости производится с помощью команд ctrb и obsv (от controlability и observability). Их синтаксис одинаков: R=ctrb(sys), D=obsv(sys). В качестве аргументов можно использовать непосредственно матрицы А, В, С описания в пространстве состояний, например R=ctrb(A, B), D=obsv(A, C) или R=ctrb(sys.a, sys.b), D=obsv(sys.a, sys.c). Для вычисления ранга этих матриц используется команда rank.

Другой способ проверки управляемости и наблюдаемости опирается на вычисление рангов так называемых грамианов управляемости и наблюдаемости. Для их нахождения служит команда gram, дополнительные сведения о ней можно найти в разд. 4.4, 4.5.

Если система неуправляема или ненаблюдаема, то ее порядок может быть понижен путем удаления неуправляемых и ненаблюдаемых подсистем. У SISO-систем это эквивалентно сокращению совпадающих нулей и полюсов передаточной функции. Для этой цели используется команда minreal (от minimal realization).

Ее можно использовать с одним и двумя входными аргументами: sys1=minreal(sys) и sys1=minreal(sys, eps).

близости сокращаемых нулей и полюсов.

Пример (анализ минимальности). Рассмотрим систему с передаточной функцией Q( p ) 2. Она имеет один нуль z1= – 1 и два полюса р1= – 1, р2= – 2. Система неминимальна, поскольку р1= z1. Сформируем tf-модель этой системы и найдем ее нули и полюсы:

------------s2 + 3 s + Расположение нулей и полюсов на комплексной плоскости можно получить, набрав команду pzmap(s) без выходного аргумента (на рис. 2.7, полюсы помечены крестиками, нуль – ноликом).

Анализируя ранги матриц R и D, заключаем, что система s1 управляема, но ненаблюдаема, следовательно, ее порядок может быть понижен.

Найдем передаточную функцию минимальной реализации: q=minreal(s), получаем ответ q. К тому же результату приходим, сокращая числитель и знаменатель исходной передаточной функции Q( p) на общий множитель р+1.

Заметим, что статический коэффициент усиления при переходе к минимальной реализации не изменился:

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

Команды ctrb и obsv можно использовать при работе с символьными выражениями, например, когда часть элементов матриц A, b, c заданы в буквенном виде.

Пример (анализ управляемости и наблюдаемости системы третьего порядка). Объект управления задан описанием в пространстве состояний где XR3 – вектор состояний, u, y – входной и выходной сигналы.

Требуется проанализировать его управляемость и наблюдаемость.

Решение. Вводим исходные символьные матрицы >> syms a1 a2 a3 real >> A=[-a1 1 0;0 -a2 0;0 1 -a1], b=[a2;a3;1]; с=[1 1 1];

Формируем матрицы управляемости и наблюдаемости R=[b, Ab, A2b], D=[cT, (cA)T, (cA2)T]T:

Вычисляем определители: det(D) =0. Оба определителя равны нулю, следовательно, система неуправляема и ненаблюдаема.

Вырожденность матрицы наблюдаемости очевидна (ее первый и третий столбцы совпадают).

Вырожденность матрицы управляемости «на глаз» обнаружить значительно сложнее.

Задачи и упражнения 1. Для приведенных ниже систем второго порядка найти дифференциальное уравнение, передаточную функцию, весовую функцию, описание в пространстве состояний и выполнить моделирование в MATLAB.

а) Механическая система с трением Входной сигнал – сила F, выход – координата x или скорость v x.

б) Электрическая схема (параллельный колебательный контур).

в) Электрическая схема (последовательный колебательный контур).

Входной сигнал i, Численные значения параметров L, m принять равными числу букв в Вашей фамилии; R, – числу букв в имени/10; с, k – числу букв в отчестве.

Указание. При построении математической модели использовать уравнения:

второй закон Ньютона законы Кирхгофа и Ома 2. Используя команду dsolve, найти решение дифференциального уравнения 3. Решить в символьном виде следующие дифференциальные уравнения:

4. Найти реакцию апериодического звена с передаточной функцией на входной сигнал u e t. Определить максимум выходного сигнала. Выполнить численное и символьное моделирование в MATLAB, приняв a=1; b=2; T=3.

Решение.

а) Программа моделирования в MATLAB (тулбокс CONTROL):

t = linspace(0, T); u = exp(-b*t);

sys = tf(1, [1 a]);

y = lsim(sys, u, t);

ym = max(y); plot(t, y).

б) Аналитическое решение (тулбокс SYMBOLIC);

При этом tM=1/a, y(tM)=1/ae.

5. Дано дифференциальное уравнение y(4) – y = e-t, с начальными условиями:

y0 3, y0 5.25, 0 7.5, 0 5.75. Найти аналитическое решение в MATLAB. Рассмотреть три варианта численного моделирования и сравнить их по точности.

Возможная техническая интерпретация задачи – управление неустойчивым объектом, считая у отклонением, а u = e-t – управлением.

Ответ: Аналитическое решение исходного уравнения:

Отметим, что в решение не вошла неустойчивая мода C1et. Это означает, что программное управление e-t обеспечивает колебательное движение объекта около неустойчивого положения равновесия. На практике неизбежно появление малых отклонений, которые со временем будут лавинообразно нарастать.

Три варианта численного моделирования.

а) Раздельная реализация управления и системы.

sys=tf(1,[1 0 0 0 -1]); s=ss(sys);

T=10;t=0:.1:T;

u=exp(-t);

X0=[-5.75;7.5;-5.25;3];

y=lsim(s,u,t,X0);

z=(5-t/4).*exp(-t)-2*cos(t);

Компьютер выдает правильное решение при Т< 8 сек., далее машинное решение «разваливается».

б) Совместная реализация управления и системы. Входной сигнал u = e-t формируется с помощью апериодического звена, в качестве вектора b используется вектор Х 0. Общий порядок системы равен пяти. Ранг матрицы управляемости R [b, Ab,..., A4 b] равен 4, т.е. реализация неминимальна. Тем не менее, теперь правильное решение сохраняется втрое дольше (на интервале 25 сек.).

в) Дальнейшего увеличения точности решения можно достичь, если выполнить редукцию и перейти к минимальной реализации 4-го порядка. В пакете MATLAB такая редукция выполняется с помощью команды minreal. Аналитически редукцию можно выполнить, вычислив передаточную функцию и затем сократив числитель и знаменатель на общий множитель р–1.

3. МОДЕЛИРОВАНИЕ в SIMULINK

Наиболее простым и удобным средством для моделирования динамических систем в пакете MATLAB является SIMULINK. Он поставляется в виде отдельного приложения и содержит библиотеки различных блоков, из которых в рабочем окне строится структурная схема модели.

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

SIMULINK можно запустить, набрав команду simulink или нажимая на кнопку в линейке меню. При этом открывается окно браузера библиотек. Для создания новой модели выбираем пункт меню “File/New/Model”. То же самое можно сделать при помощи кнопки на панели инструментов. После выделения одной из библиотек (например, непрерывные блоки – Continuous) на правой панели появится список доступных блоков. Выбранный блок следует перетащить мышью в окно модели. Если щелкнуть мышью по блоку в модели, то откроется окно параметров блока.

При нажатии правой кнопки мыши на блоке открывается меню с перечнем операций, описанных в табл. 1.

Cut, Paste, Clear На рис.3.1 показана простейшая схема моделирования. Она содержит три блока: Sine wave (генератор синусоиды) из группы Sources (генераторы входных сигналов), Scope (осциллограф) из группы Sinks (регистрация выходных сигналов) и Integrator (интегратор) из группы Continuous (непрерывные модели). Блоки можно соединить, протянув линию от одного блока к другому при нажатой левой кнопке мыши. Чтобы удалить связь, достаточно выделить ее мышью, а затем нажать клавишу DEL. Блоки можно удалять точно таким же способом.

Для запуска модели следует нажать кнопку или выбрать пункт меню Simulation/Start.

Если во время моделирования или после его окончания совершить двойной щелчок мышью по блоку Scope, откроется окно с графиком сигнала. Для разумного выбора масштаба графика нужно нажать мышкой на кнопку c изображением бинокля.

3.2. Генераторы входных сигналов и регистрация результатов Для моделирования входных и управляющих воздействий (синусоидальных, ступенчатых, импульсных и других) используются генераторы сигналов. Все они сосредоточены в библиотеке (группе блоков) Sources (источники). Часть из них показана на рис.3.2.

Описание их параметров приведено в табл. 2.

Step Sine wave Ramp Pulse generator Band-limited white noise Constant From File From Workspace В последних версиях SIMULINK в число генераторов входных сигналов включен блок Signalbuilder, позволяющий формировать кусочно-линейные сигналы произвольной формы.

Для представления результатов моделирования используются блоки, расположенные в группе Sinks. Наиболее важными из них являются блоки Scope, Graph (осциллографы), Display, To File и To Workspace. Их изображения приведены на рис. 3.3.

Блок Scope предназначен для вывода графиков сигналов. Блок XY Graph необходим для изображения параметрических графиков, например, фазовых траекторий динамических систем.

Блок Display выводит в окне числовое значение сигнала. Блок To File предназначен для сохранения результатов моделирования в файле. Пользователь может выбрать имя файла и имя переменной. После выполнение моделирования содержимое файла можно загрузить в рабочее пространство командой load.

Результаты моделирования можно передать в рабочее пространство MATLAB при помощи блока To Workspace. Пользователь должен ввести имя переменной (по умолчанию simout). Имеется три варианта представления результатов – массив (array), структура (structure), структура со временем (structure with time). В первом случае в рабочем пространстве MATLAB появляется массив значений переменной simout и соответствующий массив времени timeout. Во втором и третьем случаях результат возвращается в виде структуры и помещается в рабочее пространство MATLAB. Извлечение переменных из полей структуры производится с помощью команд типа simout.time и simout.signal.

3.3. Основные линейные и нелинейные блоки На рис. 3.4 приведены обозначения основных непрерывных блоков из библиотеки Continuous.

Описание их назначения и смысл некоторых параметров указан в табл. Derivative Integrator Transfer Fcn.

На рис. 3.5 приведены аналогичные дискретные блоки (библиотека Discrete). Среди них есть два блока, не имеющих аналога среди непрерывных блоков. Это блок задержки Unit delay и блок Discrete Filter – дискретный фильтр, который определяет рациональную функцию от оператора задержки 1 / z.

На рис. 3.6 показаны изображения блоков для выполнения математических операций. Они входят в группу «математических функций» (Math Operations).

Их описание и назначение параметров представлено в табл. 4.

Math function Sign Sum Trigonometric function Gain Abs 3.4. Пример моделирования в SIMULINK Основной способ исследования систем в SIMULINK – составление структурной схемы на усилителях, сумматорах, интеграторах и других блоках, последующее моделирование и наблюдение результатов на имитаторах осциллографов и других регистрирующих приборов.

Рассмотрим процедуру моделирования на примере дифференциального уравнения Оно описывает свободное колебание математического маятника, который отклонили от положения равновесия на угол около 300 и отпустили без начальной скорости. Соответствующая схема моделирования приведена на рис.3.7, a. Она содержит два интегратора, тригонометрический блок для получения функции siny и инвертирующий усилитель. Начальные условия на интеграторах устанавливаются при задании внутренних параметров блока.

Внесем в эту схему дополнительные блоки, позволяющие:

Наблюдать фазовые траектории, т.е. графики зависимости y от y.

Получать два графика y(t ) и y (t ) на одном осциллографе.

Передавать результаты моделирования в MATLAB.

Измененная схема показана на рис.3.7, б. Для наблюдения фазовых траекторий введен блок XY Graph. Для совмещения двух графиков на вход осциллографа Scope подан «сдвоенный» сигнал.

Он получен с помощью блока «мультиплексор» (Mux) из группы блоков «маршрутизация сигналов» (Signal Routing).

Для передачи данных в MATLAB использован блок To Workspace c форматом вывода structure with time. Теперь после прогона модели графики y(t ) и y(t ) можно будет построить из командного окна MATLAB, набрав:

>> plot(simout.time,simout.signals.values) Такой способ построения полезен, если необходимо изменять вид графика, поскольку возможности осциллографа Scope значительно ниже, чем у команды plot.

В пункте меню «Simulation/Simulation parameters» можно задать ряд параметров моделирования. Часть из них расположены на панелях Solver (решатель) и Workspace I/O (интерфейс с рабочим пространством). На панели Solver в группе элементов управления Simulation Time (время моделирования) можно определить время начала (Start time) и конца моделирования (Stop time). В группе опций решателя (Solver) можно выбрать используемый алгоритм решения дифференциальных уравнений с фиксированным шагом (Fixed-step) или с изменяемым шагом (Variable step). Можно также задать минимальный и максимальный размер шага, а также относительную и абсолютную точность интегрирования. На панели Workspace I/O можно определить имена переменных, в которых хранятся результаты моделирования и которые используются как источники сигналов.

Чтобы проиллюстрировать их применение, усложним нашу модель, введя в нее управляющий сигнал u e t :

Теперь это уравнение описывает вынужденное движение маятника под действием управляющего воздействия u(t). Управляющий сигнал можно получить либо непосредственно в SIMULINK, либо сформировать его в рабочем пространстве MATLAB и оттуда передать в SIMULINK. Воспользуемся второй возможностью. Для этого потребуется изменить схему, изображенную на рис 3.7, добавив блоки «Вход» (In из группы Sources) и «Выход» (Out из группы Sinks). Результат показан на рис 3.8, слева.

Зададим время моделирования Stop time=20. На панели Workspace I/O в графе Input запишем [t, u], в графе Initial State запишем xInitial, в графе Time – tout, в графе Output – yout, и установим соответствующие чек-боксы.

В рабочем пространстве MATLAB подготовим управляющий сигнал u e t и установим начальные условия y(0) 1, y(0) 1 :

>> t=linspace(0,20)';

Запустим процесс моделирования в SIMULINK. По окончании моделирования в рабочем пространстве появятся переменные tout и yout. Набрав plot(tout,yout,t,u,'r:'), можно просмотреть три графика – y(t ), y(t ), u(t ) (рис 3.8, справа).

Задачи и упражнения 1. Дана система дифференциальных уравнений с единичными начальными условиями Для двух вариантов матрицы А получить в MATLAB и SIMULINK графики выходных сигналов. Найти аналитическое решение с помощью команды dsolve.

Ответ.

>> A=-[1 2 3;2 4 6;3 6 9]; s=ss(A,eye(3),eye(3),0);initial(s,[1;1;1]) >> s=ss(-ones(4),eye(4),eye(4),0);initial(s,[1;1;1;1]) 2. Дана функция y a1e a2t sin a3 t. Параметры а1, а2, а3 – это число букв в Вашей фамилии, имени, отчестве. Требуется найти дифференциальное уравнение, решением которого она является, рассчитать начальные условия и нарисовать схему для моделирования в СИМУЛИНК.

3. Составить схему и выполнить моделирование в SIMULINK cледующих линейных дифференциальных уравнений с переменными коэффициентами:

а) уравнения Матье (1 0,5 cos t ) y 4 y 0 ;

в) уравнения Лежандра (1 t 2 ) 2ty n(n 1) y 0 ;

г) уравнения Чебышева (1 t ) ty n 2 y 0 ;

д) уравнения Лагерра t (1 t ) y ny 0.

4. Свободные колебания маятника описываются дифференциальным уравнением где y – угол отклонения, g – ускорение свободного падения, l – длина маятника.

а). Требуется исследовать в SIMULINK колебания маятника, когда его движение ограничивается вертикальной стенкой, расположенной на расстоянии b от положения равновесия (рис.3.9 ).

Считать, что при ударе о стенку скорость маятника изменяет знак на противоположный. Для разных вариантов начальных условий получить графики y(t ), y(t ), y f ( y ).

б). Сделать то же для симметричного двустороннего ограничения (маятник помещают в стакан радиуса b)

РЕШЕНИЕ АЛГЕБРАИЧЕСКИХ ЗАДАЧ

В предыдущих разделах были изложены начальные сведения о MATLAB и SIMULINK, необходимые для освоения этих пакетов. В этом разделе описываются графические средства MATLAB и его возможности по решению алгебраических задач и поиску экстремумов.

Графические средства MATLAB Информация о построении графиков с помощью команды plot была приведена в разд. 1.3.

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

Управление графическим экраном В MATLAB существует ряд команд для управления графическими окнами, их перечень приводится ниже:

Кратко охарактеризуем каждую из них. О назначении команды grid (сетка) и ее вариантах grid on и grid off было сказано ранее.

Изменить масштабы осей текущего графика можно с помощью команды axis. Наиболее распространенные форматы ее вызова – это axis square, axis normal, axis auto и axis equal. Те же действия можно произвести, набрав axis('square'), axis(‘normal’), axis(‘auto’) и axis('equal'), соответственно. Команда axis('square') делает область графического изображения квадратной. При этом наклон линии plot(x,x) должен быть 45 градусов, если она не скашивается неправильной формой экрана. Круг, задаваемый командой plot(sin(t),cos(t)) должен выглядеть как круг, а не как овал. Команде axis('normal') восстанавливает масштаб обратно в нормальное положение. Есть также возможность задать размеры осей явно, например, axis([10 10 -1 2]). При этом область вывода примет вид 10 x 10, 1 y 2, а plot (X,Y,'LineWidth',2) сделает толщину линии равной двум.

На один график можно поместить несколько кривых. Это можно сделать тремя способами, которые мы поясним на примере команды plot.

Первый способ заключается в том, что в команде plot указывают несколько пар аргументов, например, набрав plot (х1, у1, х2, у2, х3, у3), получим три графика y1 = f1 (x1), y2 = f2 (x2), y3 = f (x3).

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

Пример. Нарисуем, используя этот прием, синусоиду, косинусоиду и экспоненту на одном графике:

>>t=0:0.1:10; x=[sin(t);cos(t); exp(-t)]; plot(t,x) Результат представлен на рис. 4.1.

Третий способ основан на использовании команды hold, которая удерживает текущий график на экране. Последующие команды plot будут добавлять к этому графику новые, сохраняя ранее вычерченные кривые. Режим удержания графиков будет действовать до тех пор, пока команда hold не будет введена повторно. Другая возможность включения и выключения этого режима – использовать команды hold on и hold off. Для рассматриваемого примера нужно набрать:

>> hold on, plot(t,sin(t)), plot(t,cos(t)), plot(t,exp(t)), hold off Результат работы двух последних способов идентичен (за исключением цветов), он показан на рис.

4.1 слева.

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

Вызвать нужное окно для просмотра можно с помощью клавиш Alt-Tab или мыши, для вызова последнего графика существует команда shg (от show graphic). Для очистки графического окна служит команда clf (от clear figure).

Заметим, что очистка командного окна производится командой clc (от clear command), а очистка рабочей области, т.е. удаление всех переменных – командой clear. Для удаления одной переменной х надо набрать clear(x), а команда clear x y z удалит из рабочей области три переменные x, y, z.

Каждое графическое окно можно разбить на таблицу из нескольких прямоугольных частей и поместить в них отдельные графики. Это делается с помощью команды subplot. Команда subplot(mnp) разбивает графическое окно на mхn частей (m строк и n столбцов) и помещает следующий график в ячейку номер р. Например, команды >>subplot(211), plot(t,sin(t)), subplot(212), plot(t,cos(t)) разбивают экран на две части, изображая график синуса в верхней половине, а график косинуса – в нижней половине (рис. 4.1, справа). Команда subplot(111) или просто subplot возвращает к положению, когда одно окно занимает целый экран.

Большая часть сказанного справедлива не только для команды plot, но и для других графических команд, описываемых ниже.

Двумерная графика В состав MATLAB входит целый ряд команд, которые дают различные возможности по изображению двумерных графиков. Их перечень приведен в табл. 4.1.

Дадим их краткую характеристику.

Применение команд loglog, semilogx, semilogy, polar аналогично применению plot. Они дают возможность изображать данные графически на различных видах "миллиметровой бумаги", т.e. в различных системах координат – логарифмической, полулогарифмической и полярной.

Команда loglog строит график, используя логарифмические шкалы по обеим осям. Semilogx делает график, используя полулогарифмический масштаб, при этом ось X – логарифмическая, а ось Y – линейная. Semilogy строит график, используя полулогарифмический масштаб, при котором ось Y – логарифмическая, а ось X – линейная.

Пример. В телевизионной игре "Кто хочет стать миллионером" всего 14 туров, выигрыши в них составляют 100, 200, 300, 500, 1000, 2000, 4000, 8000, 16000, 32000, 64000, 125000, 500000, 1000000 рублей соответственно1. Требуется построить график выигрыша в зависимости от номера тура, используя команды plot, subplot, semilogy, title, xlabel, ylabel, bar.

Вводим исходные данные и строим графики в обычном и полулогарифмическом масштабах.

>> y=[100 200 300 500 1000 2000 4000 8000 16000 32000 64000 125000 500000 1000000];

>> subplot(121); plot(y),grid, title('Rate of game'), xlabel('Tours');ylabel('Rubles');

>> subplot(122); semilogy(y), grid, title('Rate of game'), xlabel('Tours');ylabel('Rubles');

Графики приведены на рис.4.2. Видим, что в полулогарифмическом масштабе зависимость выигрыша от номера тура близка к линейной.

Данные относятся к середине 2005 года Для построения графиков в полярной системе координат используется команда polar. Она имеет те же модификации, что и команда plot, допуская использование как векторных, так и матричных аргументов. По команде polar(, r) строится график r = f(), показывающий зависимость длины радиус-вектора r от угловой координаты, которая измеряется в радианах.

Например, полярное уравнение логарифмической спирали имеет вид r = bea. Ее построение в полярной системе координат для b=1, a= – 0,2 показано на рис. 4.3.

t = 0:.1:10; r = exp(-.2*t); polar(t,r,'*') Команда comet удобна для вычерчивания траекторий движения, в ней «хвост» графика выделяется другим цветом, что дает возможность наблюдать динамику его построения. График, построенный командой stem, имеет вид вертикальных отрезков, заканчивающихся кружочками, наподобие стебельков цветов.

Команда stairs рисует график вектора х в виде ступенек (лестницы), как это показано на рис.

4.4 для полуволны синусоиды. Еще один способ отображения информации – использование столбцовых графиков, которые строит команда bar. Она дает изображение элементов вектора х в виде расположенных рядом столбцов, высота которых определяется значением элементов (рис.

4.5). Команда barh отличается горизонтальным расположением столбцов.

Команды area, fill и patch позволяют закрашивать области на графике. Пример действия первой из них приведен на рис. 4.6, где закрашена область между графиком синусоиды и осью абсцисс.

Цветовая палитра графика может уточняться с помощью функции colormap. В качестве аргумента у нее возможны опции white, gray, black, cool, hot, 'default'. Разные цвета можно задавать трехэлементной численной rgb-кодировкой, где первый элемент указывает интенсивность красного цвета, второй – зеленого, третий – синего. Например, [0 0 0] черный цвет, [1 1 1] – белый, [.5.5.5] – серый, [1 0 0] – красный, [127/255 1 212/255] – аквамариновый. Можно использовать также буквенные обозначения 'r','g','b','c','m','y', 'w', или 'k'. Функция colormap может использоваться и с другими командами графики, такими как errorbar, imagesc, pcolor.

Команда rectangle строит графический примитив в виде прямоугольника с прямыми или скругленными углами, а команда line проводит отрезок прямой линии, соединяющей две точки.

Команда ribbon рисует двумерный график в виде ленты в трехмерном пространстве. Например, набрав x=0:.2:10; y=sin(x); ribbon(y) получим синусоидальную поверхность (рис. 4.7).

Команда scatter строит фигурный или «рассыпчатый» график (от scatter – рассыпать).

Например, набрав x=0:.2:10; y=sin(x); scatter(х,y, 10*(х.^2+1)) получим синусоиду, нарисованную с помощью кружков возрастающего размера (рис. 4.8). В частности, таким образом можно изобразить динамическую трубку точности.

Примеры действия команд pie и pie3, которые строят круговые диаграммы, показаны на рис.

4.9 и рис. 4.10.

Команда errorbar строит график кривой с учетом погрешности. В качестве примера на рис.

4.11 показан результат выполнения последовательности команд:

t=1:.05:20;y=exp(.2*t).*sin(t);x=exp(.2*t).*cos(t); errorbar(x,y,(t.^1.5)*.1) Команда plotyy позволяет нарисовать две разномасштабные кривые на одном графике.

Набрав plotyy(X1,Y1,X2,Y2) получим график Y1 от X1 с размеченной y-осью слева и график Y2 от X2 с размеченной y-осью справа. На рис. 4.12 показан результат выполнения команд t=0:.1:10; y=sin(t); plotyy(t,y,t,t.^2), grid Функция strips (от strip – полоска) используется для просмотра «длинных» графиков. Она разрезает такой график на куски равной длины и размещает их друг под другом.

Imagesc служит для визуализации матриц (цвет элементов зависит от их величины). На рис.

4.7 приведен пример изображения с ее помощью матрицы Адамара двенадцатого порядка (элементы +1 выделены белым цветом, элементы -1 – черным).

Из других команд для визуализации матриц отметим hintonw, spy, printmat, plotmatrix.

Трехмерная графика Выше речь шла о графиках на плоскости. MATLAB позволяет также изображать линии, поверхности и фигуры в трехмерном пространстве, вращать полученное изображение и смотреть на него с различных ракурсов. Соответствующие команды приведены в табл.4.2.

Команда bar3 предназначена для трехмерного изображения матрицы в виде столбиков, высота которых пропорциональна величине ее элементов. В качестве простого примера на рис.

4.14 приведено изображение диагональной матрицы. Команда bar3h отличается горизонтальным расположением столбиков.

Для изображения линий и кривых в трехмерном пространстве используется команда plot3.

Пример построения с ее помощью графика винтовой линии был приведен в разд.1.3.

Для изображения поверхностей в трехмерном пространстве служат команды contour, mesh, meshgrid и surf. Команда contour(Z) строит горизонтальные сечения поверхности, задаваемой матрицей Z, считая, что ее элементы указывают высоту над плоскостью. Число контурных линий может указываться с помощью второго аргумента. Дополнительными возможностями обладают команды contourf и contour3.

Команда mesh(Z) создает график трехмерной перспективы элементов матрицы Z. Она может использоваться для визуализации больших матриц и графического изображения функций двух переменных.

В сочетании с meshgrid команда mesh позволяет строить графики поверхностей в трехмерном пространстве. При этом meshgrid формирует координатную сетку в заданной области плоскости (x, y). В качестве примера на рис. 4.15 показан график поверхности, задаваемой уравнением указанных команд:

[X,Y] = meshgrid(0:.1:1.9, -2:.1:1.9); Z =X.*exp(-X.^2-Y.^2); mesh(Z) Команды surf и fill3 служат для изображения раскрашенных поверхностей. Кроме того имеется ряд команд для изображения конкретных трехмерных фигур и поверхностей. К ним относятся уже упоминавшиеся в разд. 1.3 команды cylinder, sphere, ellipsoid, а также logo, membrane, peaks и некоторые другие. Специальные графические команды имеются в тулбоксе SYMBOLIC, к ним относятся ezplot, ezcontour, ezmesh, ezmeshc, ezplot3, ezpolar, ezsurf, ezsurfc.

В графической системе MATLAB реализован довольно большой спектр возможностей полигональной графики. В частности, есть возможность использовать как диффузные, так и точечные источники освещения, различные алгоритмы закраски и т.д. Это позволяет строить графики сложных поверхностей. Примером может служить логотип MATLAB, изображенный на рис. 4.16. Он строится при помощи команды logo. Изображенная зависимость является графиком первой собственной функции L-образной мембраны с защемленным внутренним краем, которая рассчитывается с помощью команды membrane. Чтобы посмотреть графики других собственных функций нужно заменить первый параметр вызова membrane на 2, 3, 4 и т.д. На рис. 4. приведен график третьей собственной функции мембраны. При расчете этих поверхностей используется функции Бесселя.

Все графики, построенные в MATLAB, можно переводить в стандартные графические форматы (bmp, metafile) и переносить в другие приложения, например, в WORD. В свою очередь, в MATLAB есть средства для импорта графических файлов различных форматов и их последующей обработки. Соответствующие команды сосредоточены в тулбоксе IMAGE PROCESSING.

Решение алгебраических уравнений и поиск экстремумов функций MATLAB в первую очередь ориентирован на решение задач линейной алгебры, однако в нем есть и средства для решения нелинейных алгебраических задач, таких как отыскание корней нелинейных уравнений, поиск экстремумов функций одной или нескольких переменных, решение задач аппроксимации и интерполяции. Опишем некоторые из них.

Решение нелинейных уравнений Одна из распространенных алгебраических задач – поиск корней уравнения f(x)=0. Для численного отыскания корней проще всего построить график функции y=f(x) и найти точки его пересечения с осью абсцисс (в MATLAB это можно сделать с помощью команд plot, fplot, ezplot).

Аналогично можно поступить и в случае системы двух уравнений с двумя неизвестными f(x, у)=0, g(x, y)=0, построив на плоскости (х, у) графики этих функций и найдя точки их пересечения друг с другом. Сложнее обстоит дело с поиском комплексных корней, здесь требуется привлечение специальных методов.

Ранее уже было описано применение команды roots для нахождения корней полиномов.

Для поиска корней более сложных уравнений с одной переменной, например, включающих логарифмические, тригонометрические, экспоненциальные зависимости, применяют команду fzero. Ее входными аргументами служат имя функции, вычисляющей левую часть уравнения f ( x) 0, и начальное приближение x0.

Пример. Возьмем полином f ( x) x 2 3x 2 с корнями -1 и -2. В MATLAB их можно найти двумя путями: посредством команды roots и с помощью команды fzero. В последнем случае нужно сформировать вспомогательную функцию ff в виде отдельного m-файла или же создать временную функцию (на период данного сеанса MATLAB) при помощи команды inline. Команда fzero, использующая численные методы, возвращает один из корней полинома в зависимости от начального приближения.

В команде fzero и других командах, рассматриваемых в этом параграфе, имеется возможность задавать структуру опций решателя. Ее можно описать вручную, но удобнее использовать команды optimget и optimset. Для получения полного списка опций и значений по умолчанию применяют формат optimset(‘имя решателя'), например, opts=optimset('fzero'). Для изменения опций используется команда opts=optimset(‘имя параметра’,значение_параметра).

Уменьшим точность вычислений в предыдущем примере, изменяя опции решателя:

Теперь вместо точного ответа х1= – 1 получено приближенное значение х1= – 1,024.

Другая возможность решения нелинейных алгебраических уравнений (и систем таких уравнений) связана с использованием команды solve тулбокса SYMBOLIC. Проиллюстрируем ее на простом примере.

Пример. Требуется найти корни трансцендентного уравнения x e x 0.

Попытка его графического решения к успеху не приводит – график функции y x e x ни разу не пересекает ось абсцисс. Это означает, что вещественных корней нет. Для поиска комплексных корней воспользуемся функцией solve. Набирая solve(‘x+exp(-x)’), получим ответ ans=lambert(-1).

Таким образом, решение нашего уравнения выражается через функцию Ламберта (это функция, обратная по отношению к функции xe x ). Чтобы вычислить ее значение, можно набрать double(ans) (результатом будет ans=-0.3181+1.3372i), либо использовать команду x=lambertw(а). В частности при а= – 1 получим x= – 0,318+1,337i, а при а= – 1,4 получим x= – 0,0828+1,517i (это решение уравнения x 1,4e x 0 ).



Pages:     || 2 | 3 |


Похожие работы:

«ОГЛАВЛЕНИЕ 1. ЦЕЛИ И ЗАДАЧИ ДИСЦИПЛИНЫ – ВВЕДЕНИЕ В КЛИНИЧЕСКУЮ ПСИХОЛОГИЮ, ЕЕ МЕСТО В СТРУКТУРЕ ОСНОВНОЙ ОБРАЗОВАТЕЛЬНОЙ ПРОГРАММЫ 2. КОМПЕТЕНЦИИ ОБУЧАЮЩЕГОСЯ, ФОРМИРУЕМЫЕ В РЕЗУЛЬТАТЕ ОСВОЕНИЯ ДИСЦИПЛИНЫ – ВВЕДЕНИЕ В КЛИНИЧЕСКУЮ ПСИХОЛОГИЮ. 3. ОБЪЕМ ДИСЦИПЛИНЫ И ВИДЫ УЧЕБНОЙ РАБОТЫ 4. СОДЕРЖАНИЕ ДИСЦИПЛИНЫ 4.1. Лекционный курс 4.2. Практические занятия 4.3. Самостоятельная внеаудиторная работа студентов (СВРС) 5. МАТРИЦА РАЗДЕЛОВ УЧЕБНОЙ ДИСЦИПЛИНЫ И ФОРМИРУЕМЫХ В НЕЙ ОБЩЕКУЛЬТУРНЫХ И...»

«Министерство образования Республики Беларусь Учреждение образования Могилевский государственный университет им. А.А. Кулешова Демидова И.А., Полякова Л.Г. МЕТОДИЧЕСКИЕ РЕКОМЕНДАЦИИ ПО ПОДГОТОВКЕ, НАПИСАНИЮ И ЗАЩИТЕ КОНТРОЛЬНЫХ, КУРСОВЫХ И ДИПЛОМНЫХ РАБОТ ПО СПЕЦИАЛЬНОСТИ ПРАВОВЕДЕНИЕ Могилев 2012 ОГЛАВЛЕНИЕ ВВЕДЕНИЕ..3 1. ОБЩИЕ ПОЛОЖЕНИЯ..4 1.1 Контрольная работа.. 4 1.2 Курсовая работа..5 1.3 Дипломная работа.. 6 2. ТРЕБОВАНИЯ К СОДЕРЖАНИЮ И ОФОРМЛЕНИЮ КОНТРОЛЬНЫХ РАБОТ.. 2.1 Структура...»

«СРЕДНЕЕ ПРОФЕССИОНАЛЬНОЕ ОБРАЗОВАНИЕ Г.Ф. Быстрицкий Общая энергетика Допущено Министерством образования Российской Федерации в качестве учебного пособия для студентов образовательных учреждений среднего профессионального образования Рекомендовано Учебно-методическим советом Института электротехники МЭИ (ТУ) в качестве учебного пособия для студентов электротехнических специальностей вузов по направлению обучения Электротехника, электромеханика и электротехнологии Второе издание, исправленное и...»

«МИНИСТЕРСТВО ОБРАЗОВАНИЯ ИНАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗВАНИЯ ПЕРМСКИЙ ГОСУДАРСТВЕННЫЙ ПЕДАГОГИЧЕСКИЙ УНИВЕРСИТЕТ Кафедра теоретической физики икомпьютерного моделирования УЧЕБНО-МЕТОДИЧЕСКИЙ КОМПЛЕКС КУРСА ДИФФЕРЕНЦИАЛЬНЫЕ УРАВНЕНИЯ Направление: 050100 – Педагогическое образование Профили: Физика и Информатика и ИКТ Квалификация (степень): Бакалавр Пермь ПГПУ 2011 2 УДК ББК Рецензент: к. ф.-м. н.,...»

«Северо-Кавказский горно-металлургический институт (государственный технологический университет) Кафедра электронных приборов Проектирование печатных плат в среде DipTrace Учебно-методическое пособие для практических занятий по дисциплине Основы конструирования радиотехнических устройств для студентов направления 210100 Электроника и наноэлектроника Составитель М. А. Асланов Владикавказ, 2013 г. Рецензент: Доктор технических наук, профессор Мустафаев Г.А. Асланов Микис Арчилович...»

«ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ КУРСКИЙ ГОСУДАРСТВЕННЫЙ МЕДИЦИНСКИЙ УНИВЕРСИТЕТ ФЕДЕРАЛЬНОГО АГЕНТСТВА ПО ЗДРАВООХРАНЕНИЮ И СОЦИАЛЬНОМУ РАЗВИТИЮ КАФЕДРА НЕВРОЛОГИИ И НЕЙРОХИРУРГИИ УЧЕБНОЕ ПОСОБИЕ ПО САМОПОДГОТОВКЕ К ПРАКТИЧЕСКИМ ЗАНЯТИЯМ ПО ОБЩЕЙ НЕВРОЛОГИИ для студентов лечебного факультета и факультета медико-профилактического дела Курск — 2007 УДК: 616.839 Печатается по решению ББК: Центрального методического Совета КГМУ Учебное пособие по...»

«ОПИСАНИЕ МЕТОДИЧЕСКОГО ПОСОБИЯ Рабочая программа курса История бухгалтерского учета предназначена для студентов дневной, вечерней и заочной форм обучения экономического факультета. Данная дисциплина включена в учебный план специальности 06.05.00 Бухгалтерский учет, анализ и аудит и является дополнительным общеобразовательным курсом. Основной задачей курса является изучение эволюции бухгалтерского учета, его методологии и основных бухгалтерских категорий. Кроме того, студенты знакомятся с...»

«Министерство здравоохранения Архангельской области Государственное автономное образовательное учреждение среднего профессионального образования Архангельской области Архангельский медицинский колледж УЧЕБНОЕ ПОСОБИЕ Правила выписывания рецептов на лекарственные препараты и правила отпуска их в аптечных организациях Для самоподготовки обучающихся Для специальности 060301 Фармация Базовый уровень Архангельск 2012 1 Автор: Пиковская Г.А. Учебное пособие для самоподготовки обучающихся по...»

«ТАМОЖЕННОЕ ПРАВО ЕС Учебное пособие Автор: Наку Антон Аркадьевич, ст. преподаватель Кафедры европейского права Московского государственного института международных отношений (университета) МИД России, кандидат юридических наук Москва, 2003 СОДЕРЖАНИЕ 1. ПОНЯТИЕ И ИСТОЧНИКИ ТАМОЖЕННОГО ПРАВА ЕС 1.1. Понятие таможенного права ЕС 1.2. Система источников таможенного права ЕС Международные договоры. Среди источников европейского таможенного права особое место занимают международно-правовые акты. Эти...»

«Ответы для жюри Всероссийская олимпиада школьников 2012- 2013 гг. Муниципальный этап Экология 7- 8 класс Задание № 2 предполагает выбор и обоснование одного правильного ответа из четырех предложенных. Включает 14 тестовых заданий. Максимальное количество баллов за одно задание – 2. Всего - 28 баллов. Задание 2 Тест 1 Назовите положительную сторону массового размножения насекомых-вредителей в лесах: А) Снижение листового опада осенью. Б) Улучшение светового режима для растений низших ярусов. В)...»

«1 МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ЭКОНОМИКИ И ФИНАНСОВ КАФЕДРА ЭКОНОМИКИ ПРЕДПРИЯТИЯ И ПРОИЗВОДСТВЕННОГО МЕНЕДЖМЕНТА С.Е. НАРЫШКИН, М.В. ТИХОНОВА, Г.Р. ХАКИМОВА ИНВЕСТИЦИОННЫЙ МЕНЕДЖМЕНТ (в схемах, таблицах и рисунках) УЧЕБНОЕ ПОСОБИЕ ИЗДАТЕЛЬСТВО САНКТ-ПЕТЕРБУРГСКОГО ГОСУДАРСТВЕННОГО...»

«Проект Система показателей для мониторинга развития информационного общества в Российской Федерации 2 Введение Система мониторинга развития информационного общества создается во исполнение положений Стратегии развития информационного общества в Российской Федерации, утвержденной Президентом Российской Федерации 7 февраля 2008 г. № Пр-212, и протокола заседания Совета Безопасности Российской Федерации от 31 августа 2007 г. № Пр-1574. Цель создания системы мониторинга –...»

«СОДЕРЖАНИЕ Стр. 1. ОБЩИЕ ПОЛОЖЕНИЯ 4 1.1. Нормативные документы для разработки ООП по направлению 4 подготовки 1.2. Общая характеристика ООП 6 1.3. Миссия, цели и задачи ООП ВПО 7 1.4. Требования к абитуриенту 7 ХАРАКТЕРИСТИКА ПРОФЕССИОНАЛЬНОЙ 1. 7 ДЕЯТЕЛЬНОСТИ ВЫПУСКНИКА ПО НАПРАВЛЕНИЮ ПОДГОТОВКИ Область профессиональной деятельности выпускника 2.1. Объекты профессиональной деятельности выпускника 2.2. Виды профессиональной деятельности выпускника 2.3. Задачи профессиональной деятельности...»

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

«Муниципальное бюджетное образовательное учреждение Новосолянская средняя общеобразовательная школа №1 Рассмотрено: Рассмотрено Согласовано Утверждаю зам. директора по УВР Директор МБОУ СОШ №! на заседании кафедры (методического объединения) Учителей гуманитарного цикла _ _ Протокол № сентября _ сентября 2013г. 2013г. __2013г. Руководитель кафедры (методического объединения) _ РАБОЧАЯ УЧЕБНАЯ ПРОГРАММА История России и Всемирная история 8 класс Составитель: учитель истории МБОУ СОШ № Рыбинского...»

«2 Содержание ВВЕДЕНИЕ. ОБЩАЯ ХАРАКТЕРИСТИКА БИРСКОГО ФИЛИАЛА ФГБОУ ВПО БАШКИРСКИЙ ГОСУНИВЕРСИТЕТ 1 1. СТРУКТУРА ПОДГОТОВКИ СПЕЦИАЛИСТОВ. 6 1.1.Общие сведения по УГС 050000 – Образование и педагогика в Бф БашГУ 6 1.2. Сведения по специальностям УГС 050000 – Образование и педагогика 8 2.ОРГАНИЗАЦИОННО-ПРАВОВОЕ ОБЕСПЕЧЕНИЕ ОБРАЗОВАТЕЛЬНОЙ ДЕЯТЕЛЬНОСТИ 14 3.СОДЕРЖАНИЕ ПОДГОТОВКИ СПЕЦИАЛИСТОВ 17 3.1.Учебный план 3.2.Учебные программы дисциплин и практик, диагностические средства 3.3.Программы и...»

«Б.Г. ДЯКИН МЕЖДУНАРОДНЫЙ ИНСТИТУТ ЭКОНОМИКИ И ПРАВА МЕЖДУНАРОДНЫЙ БИЗНЕС ПРОБЛЕМНО-ТЕМАТИЧЕСКИЙ КОМПЛЕКС Рекомендовано Министерством образования и науки Российской Федерации в качестве учебного пособия для студентов экономических специальностей – бакалавров, специалистов и магистров высших учебных заведений МОСКВА 2006 ББК 65.5я73 Д99 УДК 339.9(075.8) Рецензенты: профессор Герберт Грегор (г. Зальцбург, Австрия); кафедра мировой экономики и международных отношений дипломатической академии МИД РФ...»

«МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИИ НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ МЕХАНИКА Образовательная программа 96 часов СОГЛАСОВАНО: Директор ИДО Г.В. Можаева Томск – 2012 ПОЯСНИТЕЛЬНАЯ ЗАПИСКА Образовательная программа Механика разработана для работы с одаренными детьми, проходящими обучение в 10-11 классах. Она может рассматриваться как самостоятельная учебная дисциплина и, вместе с тем, как один из модулей курса физики для общеобразовательных учебных заведений...»

«Храпов Ю.Т. ПРАВО Учебное пособие для учащихся 10–11 классов общеобразовательных школ, лицеев, гимназий г. Новосибирск 2014 год Главный редактор учебника Мухарыцин Александр Михайлович – председатель фонда социально-правового содействия населению Добрый город г. Новосибирска Содержание Предисловие. Глава I. Государство Глава II. Теория права Глава III. Конституционное право Всеобщая декларация прав человека Федеральный закон Об образовании в Российской Федерации Декларация прав ребенка Глава...»

«Министерство образования и науки Украины Севастопольский национальный технический университет ИССЛЕДОВАНИЕ АППАРАТУРЫ УПЛОТНЕНИЯ С ИМПУЛЬСНО-КОДОВОЙ МОДУЛЯЦИЕЙ Методические указания к выполнению лабораторной работы по дисциплине “Системы передачи данных” для студентов дневной и заочной форм обучения направления Компьютерные науки Севастополь 2010 Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com) УДК 621.394. Исследование аппаратуры уплотнения с...»






 
2014 www.av.disus.ru - «Бесплатная электронная библиотека - Авторефераты, Диссертации, Монографии, Программы»

Материалы этого сайта размещены для ознакомления, все права принадлежат их авторам.
Если Вы не согласны с тем, что Ваш материал размещён на этом сайте, пожалуйста, напишите нам, мы в течении 1-2 рабочих дней удалим его.