Файл: Контрольные работы. Теория автоматического управления.docx
ВУЗ: Пермский национальный исследовательский политехнический университет
Категория: Методичка
Дисциплина: Теория автоматического управления
Добавлен: 19.10.2018
Просмотров: 5329
Скачиваний: 88
9. Иванов В.А. и др. Математические основы теории автоматического управления. В 3-х т. Под ред. Б.К. Чемоданова. М.: Изд. МГТУ, Т1-2006, Т2-2008, Т3-2009.
10. Куо Б. Теория и проектирование цифровых систем управления: пер. с англ.- М: Машиностроение, 1986. – 448 с.
11. Филлипс Ч., Харбор Р. Системы управления с обратной связью: Учебник - М.: Изд-во «Лаборатория Базовых Знаний», 2001. – 616 с
Основы работы в MATLAB
1. Введение
MATLAB — это интерактивная среда для научных и инженерных вычислений. В состав MATLAB входят основная программа (ядро) и специализированные пакеты прикладных программ (tооlbохеs), состоящие из так называемых М-файлов, расширяющих функциональные возможности основной программы. Один из этих пакетов, Control System Toolbox, в сочетании с основной программой дает возможность использовать MATLAB для анализа и синтеза систем управления.
При работе в среде MATLAB пользователь взаимодействует с компьютером с помощью четырех основных объектов:
-
инструкции и переменные;
-
матрицы;
-
графические изображения;
-
скрипты.
MATLAB интерпретирует и обрабатывает входные данные в виде одного или нескольких этих объектов.
Мы опишем только основные функции программы MATLAB, наиболее полный перечень можно посмотреть в приложении.
Для более качественного изучения программы мы рекомендуем проделать все приведенные примеры и описания самостоятельно.
2. Инструкции и переменные
Инструкции имеют следующий общий вид: >>переменная = выражение.
В MATLAB используется операция присваивания, так что знак равенства «=» означает, что некоторой переменной присваивается выражение справа от этого знака. Командная строка обозначается двумя направленными вправо стрелками «>>».
Приведем пример инструкции для ввода матрицы размерности 2 х 2 и присвоения ей имени переменной А: >>A=[1 2; 4 6] <ret> .
Инструкция выполняется после возврата каретки (нажатия клавиши <Enter>).
После ввода инструкции, завершающегося нажатием клавиши <Enter>, матрица А автоматически отображается на экране. Если после инструкции следует точка с запятой (;), то вывод матрицы А на экран подавляется. Тем не менее, присвоение матрице имени А сохраняется, хотя ее вывод на экран подавлен точкой с запятой.
В выражениях могут быть использованы обычные символы математических операций, приведенные в таблице 5.1. Порядок выполнения арифметических действий можно изменить с помощью скобок.
Таблица 5.1
Символы математических операций |
|
+ |
Сложение |
- |
Вычитание |
* |
Умножение |
/ |
Деление |
^ |
Возведение в степень |
MATLAB различает верхний и нижний регистры, поэтому переменные Nит и num будут иметь разный смысл.
В MATLAB имеется несколько переменных с заранее закрепленными за ними именами:
-
NaN (сокращение от Not-a-Number) используется для обозначения неопределенного (нечислового) результата операции;
-
Inf соответствует +∞;
-
pi соответствует числу π ;
-
i и j обозначают мнимую единицу и используются при арифметических операциях с комплексными числами.
Рассмотрим основные функции для работы с переменными:
who выводит на экран список всех переменных, хранящихся в рабочей области;
whos выводит на экран список переменных в рабочей области вместе с дополнительной информацией об их типе, размерности и занимаемой памяти;
clear удаляет из рабочей области все данные (переменные и функции);
clear variables удаляет все переменные; clear name1 name2... удаляет переменные пате1 пате2 и т. д.;
format меняет формат вывода. Если задан какой-то определенный формат, то он сохраняет силу до тех пор, пока не будет изменен.
Приведем основные форматы вывода:
format long - 15-разрядное число с фиксированной точкой;
format long e - 15-разрядное число с плавающей точкой;
format long g - наилучший формат — 15 разрядов с фиксированной или плавающей точкой;
format short e - 5-разрядное число с плавающей точкой;
format short g - 5 разрядов с фиксированной или плавающей точкой;
format hex - шестнадцатиричный формат;
format bank -фиксированный формат для долларов и центов;
format - то же, что и format short.
3. Матрицы
Основной вычислительной единицей является матрица. Векторы и скаляры можно рассматривать как частные случаи матрицы. Матрица обычно заключается в квадратные скобки, [•]. Элементы столбца отделяются пробелами или запятыми, а строки разделяются точками с запятой или возвратом каретки.
Способ записи матриц был рассмотрен в пункте 2. Матрицы можно вводить посредством записи нескольких строк, завершая их точкой с запятой и возвратом каретки или просто возвратом каретки. Это очень удобно при вводе больших матриц.
Элементы матриц могут быть комплексными числами либо содержать тригонометрические и элементарные математические функции.
К основным матричным операциям относятся сложение, вычитание, транспонирование, возведение в степень и так называемые операции над массивами. Символы математических операций над матрицами остаются такими же, как были рассмотрены ранее.
В MATLAB имеется возможность левостороннего и правостороннего деления матриц.
При сложении и вычитании матриц они должны иметь одинаковую размерность. Если матрица А имеет размерность п х т, а матрица В — размерность p x r , то А ± В имеет смысл только тогда, когда п = р, а т = r. Умножение матриц А* В возможно только в случае т = р. Особым случаем является умножение матрицы на вектор. Предположим, что b есть вектор (столбец) из р элементов. Умножение матрицы А размерности n x m на вектор b возможно только в случае т = р. В результате будет получен вектор у = A* b размерности n х 1.
Транспонирование матрицы обозначается символом апострофа ('). С помощью операций транспонирования и умножения можно получить так называемое внутреннее произведение векторов. Поясним это на примере. Предположим, что w и v есть векторы размерности т х 1. Тогда их внутреннее произведение (известное также как произведение с точкой) находится как w' * v. Внутреннее произведение двух векторов дает скалярную величину. Аналогично можно вычислить внешнее произведение двух векторов как w * v'. Внешнее произведение двух векторов размерности т х 1 дает матрицу размерности m x m, ранг которой равен 1.
Основные матричные операции можно заменить поэлементными действиями с использованием периодически действующего предшествующего оператора. Такие процедуры известны как операции над массивами. Самые простые операции над массивами приведены в таблице 5.2.
Таблица 5.2
Математические операторы, применяемые к массивам
+ |
Сложение |
- |
Вычитание |
.* |
Умножение |
./ |
Деление |
.^ |
Возведение в степень |
Необходимо остановиться на представлении данных с использованием двоеточия: x=[xi:dx:xf]. Такое представление позволяет сформировать вектор, компонентами которого являются числа, начинающиеся со значения xi и заканчивающиеся значением xf, следующие друг за другом с заданным шагом dx.
4. Графика
Графика является мощным интерактивным средством анализа и синтеза систем управления.
Для представления графических изображений MATLAB использует графический дисплей, автоматически активизируемый при задании любой функции, результатом которой должен являться некоторый график (например, функции рlot).Функция plot открывает графический дисплей, который носит название окна FIGURE. Вы можете создать другое такое окно с помощью функции figure. В одном сеансе работы с MATLAB может быть создано несколько графических окон. Для этого используется функция figure (n), которая создает n-е текущее окно. Графическое изображение можно удалить из окна с помощью функции clf в командной строке. Функция shg выводит на первый план текущее графическое окно.
Способы задания и оформления графиков приведены в таблицах 5.3, 5.4 и 5.5.
Таблица 5.3
Форматы графиков
plot (x,y) |
График зависимости между векторами х и у в обычном масштабе |
semilogx (x,y) |
График зависимости между векторами х и у. Масштаб по оси х логарифмический (десятичные логарифмы), масштаб по оси у линейный |
semilogy (x,y) |
График зависимости между векторами х и у. Масштаб по оси х линейный, масштаб по оси у логарифмический (десятичные логарифмы) |
loglog (x,y) |
График зависимости между векторами х и у. Масштаб по обеим осям логарифмический |
Таблица 5.4
Функции для оформления графиков
title ('text') |
Помещает над графиком заголовок 'text' |
legend (stringl, string2,…) |
Помещает на текущем графике пояснения в виде заданных текстовых строк |
xlabel ('text') |
Обозначает ось х надписью 'text' |
ylabel ('text') |
Обозначает ось у надписью 'text' |
text (pi, p2, 'text') |
Добавляет к текущему графику надпись 'text', начиная с позиции (p1, р2), где (p1, р2) - координаты точки по осям х и у |
subplot |
Разбивает графическое окно на несколько подокон |
grid on |
Наносит линии сетки на текущий график |
grid off |
Удаляет линии сетки с текущего графика |
grid |
Управляет выводом сетки |
Таблица 5.5
Типы линий для оформления графиков
- |
Сплошная линия. |
- - |
Штриховая линия |
: |
Пунктирная линия |
- . |
Штрих-пунктирная линия |
Типы линий для оформления графиков задаются следующим образом:
>>plot(x,y1,’- -‘,x,y2,’-.‘) .
Графический дисплей можно разделить на несколько подокон меньшего размера. Функция subplot (m, n, р) делит графический дисплей на m x n подокон (т — число «строк», п — число «столбцов»), а целый параметр p определяет номер подокна. Нумерация идет слева направо и сверху вниз.
5. Скрипты
Действительная мощь MATLAB применительно к анализу и синтезу систем управления состоит в возможности выполнения длинной последовательности команд, записанных в виде файла. Такие файлы называются М-файлами, т. к. их имена имеют вид filename.m. Одним из видов М-файла является скрипт. Control System Toolbox представляет собой собрание М-файлов, разработанных специально для приложения к задачам управления. В дополнение к М-файлам, поставляемым вместе с MATLAB и пакетами прикладных программ, вы можете разработать собственные скрипты для решения конкретных задач. Скрипты — это обычные текстовые файлы в формате ASCII, которые создаются с помощью текстового редактора.
Скрипт представляет собой последовательность обыкновенных инструкций и функций, используемых на уровне командной строки. Скрипт вызывается также на уровне командной строки путем ввода имени файла или с помощью ниспадающего меню. Каждый скрипт может вызывать также другие скрипты. В случае вызова скрипта MATLAB сразу начинает выполнение инструкций и вычисление функций, входящих в файл, не ожидая ввода командной строки. Скрипт работает с переменными, находящимися в рабочей области.
Предположим, что вы захотели построить график функции y(t)=sinαt, где α — варьируемый параметр. Тогда с помощью текстового редактора вы записываете скрипт и присваиваете ему, скажем, имя plotdata.m, затем вводите в командной строке значение α, которое автоматически помещается в рабочую область. После этого вы печатаете в командной строке имя plotdata, что незамедлительно приводит к выполнению скрипта. При этом скрипт использует самое последнее значение α из рабочей области. После получения результата вы можете ввести другое значение α в командной строке и выполнить скрипт еще раз.
Cкрипт должен быть хорошо снабжен комментариями, начинающимися с символа %. Снабдите скрипт заставкой, содержащей некоторые сведения относительно его назначения и затем используйте функцию help, чтобы вывести заставку на экран.
Используя скрипт plotdata.m, вы можете в интерактивном режиме исследовать влияние параметра α. В командной строке введите значение α = 10, за которым должно быть указано имя скрипта (в данном случае plotdata). MATLAB автоматически построит график функции у = sinαt. Вы можете вернуться к командной строке, ввести значение α = 50 и выполнить скрипт еще раз, чтобы получить новый график.
Вы можете изменить начертание символов с помощью следующих модификаторов:
\bf - полужирный шрифт ;
\it – курсив ;
\rm - обычный шрифт ;
\fontname - определяет название семейства используемых шрифтов ;
\fontsize - определяет размер шрифта .
Для обозначения нижних и верхних индексов используются соответственно символы «_» и «^».
6. Приложение
Таблица 5.6
Распространенные математические функции
sin(x) |
Синус |
log10(x) |
Десятичный логарифм |
sinh(x) |
Гиперболический синус |
log2(x) |
Логарифм по основанию 2 |
asin(x) |
Арксинус |
pow2(x) |
Степень числа 2 |
asinh(x) |
Гиперболический арксинус |
sqrt(x) |
Квадратный корень |
cos(x) |
Косинус |
nextpow2(x) |
Ближайшая степень числа 2 |
cosh(x) |
Гиперболический косинус |
abs(x) |
Абсолютное значение комплексного числа |
acos(x) |
Арккосинус |
||
acosh(x) |
Гиперболический арккосинус |
angle(x) |
Аргумент комплексного числа |
tan(x) |
Тангенс |
complex(x.y) |
Образование комплексного числа по |
tanh(x) |
Гиперболический тангенс |
|
действительной и мнимой частям |
atan(x) |
Арктангенс |
conj(x) |
Комплексно-сопряженное число |
atan2(y.x) |
Четырехквадрантный арктангенс |
imag(x) |
Мнимая часть комплексного числа |
real(x) |
Действительная часть комплексного числа |
||
atanh(x) |
Гиперболический арктангенс |
||
sec(x) |
Секанс |
unwrap(x) |
Непрерывная функция фазового угла |
sech(x) |
Гиперболический секанс |
||
asec(x) |
Арксеканс |
isreal(x) |
Истинно, если это массив |
asech(x) |
Гиперболический арксеканс |
|
действительных чисел |
csc(x) |
Косеканс |
cplxpair(x) |
Сортировка комплексно- сопряженных пар чисел |
csch(x) |
Гиперболический косеканс |
||
acsc(x) |
Арккосеканс |
fix(x) |
Усечение дробной части числа |
acsch(x) |
Гиперболический арккосеканс |
floor(x) |
Округление до меньшего целого |
cot(x) |
Котангенс |
ceil(x) |
Округление до большего целого |
coth(x) |
Гиперболический котангенс |
round(x) |
Округление до ближайшего целого |
acot(x) |
Арккотангенс |
mod(x,y) |
Остаток в смысле модульной арифметики |
acoth(x) |
Гиперболический арккотангенс |
||
exp(x) |
Экспоненциальная функция |
rem(x,y) |
Остаток от деления |
log(x) |
Натуральный логарифм |
Таблица 5.7
Функции MATLAB