1. Мета лабораторної роботи.
2. Вхідні дані.
3. Машинна схема моделювання системи.
4. Значення коефіцієнтів kр, kd, kі дня П-, ПД- і ПІД-регуляторів.
5. Перехідні процеси і їх характеристики (перерегулювання, статична помилка, тривалість).
6. Аналіз отриманих результатів.
7. Висновки.
Введение
МАТЕМАТИЧЕСКИЙ ПАКЕТ MATLAB.
Выполнение всех заданий курсового практикума связано с использованием MatLab - высокоэффективного программного обеспечения для научных и инженерных расчетов. Выполняя математические расчеты в программной среде MatLab, пользователь имеет весьма комфортные возможности для решения различных вычислительных задач в областях линейной алгебры общей теории систем, теории информации и обработки сигналов, теорий автоматического и автоматизированного управления и ряда иных дисциплин.
Возможности среды MatLab достаточно гибкие и могут быть значительно расширены за счет использования дополнительного инструментария, так для MATLAB® for Windows (версия 4.0), кроме базового тулбокса Matlab, предусматривается возможность применения и следующих специализированных тулбоксов:
· Signal Processing Toolbox "обработка сигналов",
· Optimization Toolbox "оптимизация",
· Neural Network Yoolbox "нейронные сети",
· Control System Yoolbox"системы управления";
· SplineToolbox "сплайны";
· SIMULINK (Dynamic System Simulation Software) "программное обеспечение моделирования динамических систем"
Привлекательной чертой среды MatLab является простота и легкость ее адаптации к прикладным задачам конкретного пользователя, который всегда может ввести в программную среду любую свою команду, оператор, функцию или создать собственный toolbox (ящик инструментов). В частности, для выполнения курсовой работы используются как типовые m-файлы, так и оригинальные. Основная цель введения - характеристика программной среды MatLab и ознакомление пользователя с возможностями стандартного интерфейса MATLAB® for Windows (версии 4.0), поскольку выполнение курсовой работы осуществляется с использованием возможностей типовых тулбоксов - Matlab, Signal.
Задачей данной курсовой работы было приобретение начальных навыков работы с системой MatLab и решение поставленных задач.
программный математический matlab интерфейс
Практикум на языке Matlab
При работе в Matlab и при практическом решении задач использовались разнообразные функции и операторы. Среди них: ACOT, PLOT, EIG, CEIL, CUMSUM, BALANCE, MAX, SORT, SUM, MIN, RATS.
Примеры применения этих функций и операторов:
Задание №1: Построить график функции F(x) при следующих значениях аргумента с шагом.
Шаг заданный при построении графика был 0,01.
ABS - Функция ABS(Х) возвращает абсолютную величину Х. если Х-матрица, то ABS(Х) создаёт матрицу того же размера, элементы которой равны абсолютным значениям соответствующих элементов исходной матрицы.
PLOT - Оператор построения графиков по данным вектора или матрицы. PLOT(X,Y) рисует вектор X против вектора У(Х - аргумент, У- функция). Если X и Y матрицы, то также вычерчиваются графики, где вектор отображается относительно столбца или строки матрицы.
При этом записывалось это так:
x = -10:0.01:10;
y=acot(x)+2*(x-2).^2-abs(4*x-3);
Warning: Divide by zero.
(Type "warning off MATLAB:divideByZero" to suppress this warning.)
> In C:\MATLAB6p5\toolbox\matlab\elfun\acot.m at line 8
plot(x,y);
EIG
Функция EIG (A, B) формирует вектор, содержащий обобщённые собственные значения квадратных матриц A и В.
Выражение [V,D]=E1G(A,B) задает диагональную матрицу D, содержащую обобщенные собственные значения, и матрицу V, столбцы которой содержат соответствующие собственные векторы, причём A*V=B*V*D.
Задание №2: Найти собственные значения и собственные векторы матриц.
a =
1.0000 1.2000 2.0000
1.2000 1.0000 0.4000
2.0000 0.4000 2.0000
b =
1 -1 2
1 2 1
2 0 3
eig(a,b)
ans =
0.6693
2.0000
2.3307
>>a=[1 1.2 2;1.2 1 0.4;2 0.4 2];
>> [v,d]=eig(a);
>> eig(a)
ans =
-0.8649
0.9128
3.9521
>> [v,d]=eig(a)
v =
-0.7780 -0.1099 0.6186
0.3960 -0.8502 0.3470
0.4878 0.5149 0.7049
d =
-0.8649 0 0
0 0.9128 0
0 0 3.9521
ROUND
Функция ROUND (А). Она возвращает матрицу того же размера, значения элементов которой есть значения элементов исходной матрицы А, округлённые до ближайшего целого.
CEIL(A)
Функция ceil(А). Она возвращает матрицу того же размера, но при этом округляет элементы А к ближайшему целому числу, но обязательно в сторон плюс бесконечности.
Задание №3: Округлить элементы к ближайшему целому числу.
Для этого можно использовать функцию round (А). Запись будет иметь вид:
a=[1 1.2 2;1.2 1 0.4;2 0.4 2];y=round(a)
y =
1 1 2
1 1 0
2 0 2
Для этого можно также использовать и функцию ceil(А).
a =
1.0000 1.2000 2.0000
1.2000 1.0000 0.4000
2.0000 0.4000 2.0000
ceil(a)
ans =
1 2 2
2 1 1
2 1 2
RATS
Функция rats(A) используется для преобразования элементов матрицы А из вещественной формы записи в форму записи вида рациональной дроби.
Задание №4: Преобразовать элементы матрицы А из вещественной формы записи в форму записи вида рациональной дроби. Т.е необходимо преобразовать в форму записи вида рациональной дроби(отношение 2 целых чисел).
Дана матрица:
a=[1 1.2 2;1.2 1 0.4;2 0.4 2]
a =
1.0000 1.2000 2.0000
1.2000 1.0000 0.4000
2.0000 0.4000 2.0000
>> c=rats(a)
c =
1 6/5 2
6/5 1 2/5
2 2/5 2
Задание №5: Выполнить действия с матрицами (сложение, деление, умножение). Даны матрицы:
a =
3 1 1
1 2 3
-2 5 -2
b =
1 -1 2
1 2 1
2 0 3
1) Сложение матриц: c=a+b
c =
4 0 3
2 4 4
0 5 1
2) Умножение матриц: c=a*b
c =
6 -1 10
9 3 13
-1 12 -5
3) Деление матриц:
3.1) правое c=a/b
c =
-13.0000 -6.0000 11.0000
8.0000 5.0000 -6.0000
9.0000 7.0000 -9.0000
c=b/a
c =
-0.0577 0.4423 -0.3654
0.3462 0.3462 0.1923
0.2115 0.7115 -0.3269
3.2) левое c=a\b
c =
0.1923 -0.6346 0.5385
0.4615 0.0769 0.6923
-0.0385 0.8269 -0.3077
c=b\a
c =
-31 13 -25
6 -2 6
20 -7 16
CUMSUM - Функция CUMSUM(X) вычисляет кумулятивные суммы компонент X. Если Х- вектор, то функция CUMSUM(X) даёт вектор того же размера, n-ый элемент которого является суммой первых n элементов исходного вектора X. Для матрицы X функция CUMSUM(X) даёт матрицу, содержащую кумулятивные суммы для каждого столбца.
Задание №6: Вычислить кумулятивные суммы для каждого столбца матрицы. Дана матрица вида:
a =
3 1 1
1 2 3
-2 5 -2
Для вычисления кумулятивной суммы для каждого столбца матрицы используем функцию cumsum(a), которая даёт матрицу, содержащую кумулятивные суммы для каждого столбца. Запись будет иметь вид:
a=[3 1 1;1 2 3;-2 5 -2];cumsum(a)
ans =
3 1 1
4 3 4
2 8 2
BALANCE.
Оператор BALANCE уравновешивает строки и столбцы матрицы таким образом, чтобы нормы строк и столбцов оказались бы примерно одинаковыми, т.е. была бы улучшена обусловленность исходной матрицы.
[T,Ab]=BALANCE(A) вычисляет линейное преобразование подобия T, такое, что Ab= T\A*T. Оператор BALANCE(A) вычисляет сбалансированную матрицуAb.
Задание №7: Уравновесить строки и столбцы матриц т.о., чтобы нормы строк и столбцов оказались примерно одинаковыми.
a =
3 1 1
1 2 3
-2 5 -2
>>balance(a)
ans =
3 1 1
1 2 3
-2 5 -2
MAX - Функция MAX(X) для векторов возвращает максимальный элемент вектора X Для матриц МАХ(Х) - это вектор-строка, содержащий максимальные элементы каждого из столбцов. [Y,I] = МАХ(А) содержит в Y максимальные элементы столбцов матрицы А, а в векторе I содержит индексы этих элементов.
MIN - Функция MIN предназначена для выбора минимального элемента вектора или минимальных элементов в столбцах матрицы.
Задание №8: Найти максимальный и минимальный элемент матрицы.
a =
3 1 1
1 2 3
-2 5 -2
Для этого используем функцию max(А) и min(А), функция возвращает максимальный и минимальный элемент матрицы А.
[y,i]=max(a)
y =
3 5 3
i =
1 3 2
[y,i]=min(a)
y =
-2 1 -2
i =
3 1 3
SORT
Функция SORT(X) сортирует каждый столбец X в возрастающем порядке элементов. [Y,I] = SORT(X) также дает матрицу I, содержащую индексы элементов в исходной матрице (по ним можно определить, где в) находился соответствующий элемент Y). Если X вектор, то Y=Х(I). Когда X комплексная матрица, то элементы сортируются по абсолютной величине.
Задание №9:Отсортироватькаждый столбец матрицы в возрастающем порядке элементов. Дана матрица вида: a=[3 1 1;1 2 3;-2 5 -2];
Для этого используем функцию sort(А), которая сортирует каждый столбец А в возрастающем порядке элементов.
sort(a)
ans =
-2 1 -2
1 2 1
3 5 3
SUM
Функция SUM(X) дня вектора X вычисляет сумму всех его элементов. Для матрицы X функция SUM(X) вычисляет вектор-строку с суммами элементов каждого столбца матрицы X. Выражение SUM(D/AG(X)) вычисляет след матрицы X.
Задание №10. Вычислить вектор - строку с суммами элементов каждого столбца матрицы.
Дана матрица:
a =
-13 -8 -3 2 7
0 -1 7 -3 -13
-13 -8 3 4 -1
-13 -9 4 -1 -6
-26 -17 7 3 -7
Для вычисления вектора - строки с суммами элементов каждого столбца матрицы используется функция sum(А), которая для вектора А вычисляет сумму всех его элементов. Для матрицы А функция sum(А) вычисляет вектор - строку с суммами элементов каждого столбца матрицы А. Запись будет иметь следующий вид:
a=[-13 -8 -3 2 7;0 -1 7 -3 -13;-13 -8 3 4 -1;-13 -9 4 -1 -6;-26 -17 7 3 -7];
y=sum(a)
y =
-65 -43 18 5 -20
Задание №11. Вывести новую матрицу. Даны вектора:
b_1=[-2.8;-26.3;-16.8;-29.1;-45.9]
b_1 =
-2.8000
-26.3000
-16.8000
-29.1000
-45.9000
b_2=[-1.8;-26.1;-15.8;-29.77;-46.9]
b_2 =
-1.8000
-26.1000
-15.8000
-29.7700
-46.9000
Дана матрица:
a =
-13 -8 -3 2 7
0 -1 7 -3 -13
-13 -8 3 4 -1
-13 -9 4 -1 -6
-26 -17 7 3 -7
Для добавления вектора b1 к матрице А как строки используется запись вида: А1=[A, b1]. Для этого нам необходимо транспонировать вектор b1, т.к. он задан как вектор-столбец.
A_1=[a;b_1']
A_1 =
-13.0000 -8.0000 -3.0000 2.0000 7.0000
0 -1.0000 7.0000 -3.0000 -13.0000
-13.0000 -8.0000 3.0000 4.0000 -1.0000
-13.0000 -9.0000 4.0000 -1.0000 -6.0000
-26.0000 -17.0000 7.0000 3.0000 -7.0000
-2.8000 -26.3000 -16.8000 -29.1000 -45.9000
Для добавления вектора b2 к матрице А в качестве столбца, используется следующая форма записи:
A_2=[a,b_2]
A_2 =
-13.0000 -8.0000 -3.0000 2.0000 7.0000 -1.8000
0 -1.0000 7.0000 -3.0000 -13.0000 -26.1000
-13.0000 -8.0000 3.0000 4.0000 -1.0000 -15.8000
-13.0000 -9.0000 4.0000 -1.0000 -6.0000 -29.7700
-26.0000 -17.0000 7.0000 3.0000 -7.0000 -46.9000
SOLVE
При решении этого задания использовалась функция solve, которая производит решение системы нелинейных алгебраических уравнений.
Задание № 12 Решить систему нелинейных алгебраических уравнений.
Дана система уравнений:
В MatLab данная система записывается следующим образом:
[x,y]=solve('acot(x)+2*(y-2)^2=5','y-abs(4*x-3)=3')
x =
0.64631476499002086240204017407305
y =
3.4147409400399165503918393037078
Заключение
Целью данной курсовой работы являлось ознакомление с языком MatLab. Важной особенностью MatLab является то, что предлагается встроенная в язык стандартная поддержка комплексных чисел и матриц. MatLab предлагает также реализацию всех основных численных алгоритмов.
Мы познакомились со многими операторами и функциями данного языка. Среди них ACOT, PLOT, EIG, CEIL, CUMSUM, BALANCE, MAX, SORT, SUM, MIN. Этот язык очень доступен для понимания, он многофункционален и это его преимущество.
Привлекательной чертой среды MatLab является простота и легкость ее адаптации к прикладным задачам конкретного пользователя, который всегда может ввести в программную среду любую свою команду, оператор, функцию или создать собственный toolbox (ящик инструментов).
Он применяется для решения практических задач по математическому и имитационному моделированию динамических систем.
Литература
1. Еремин Е.Л. Компьютерное моделирование процессов и систем. Учебное пособие.- Благовещенск: Издательство БГПУ, 2003г.-128с.
2. Еремин Е.Л. Лабораторно-курсовой практикум по ТОАУ с применением MATLAB for Windows.-Благовещенск: Издательство АмГУ, 2001г.-142с.
3. Основы математического моделирования. Построение и анализ моделей с примерами на языке MATLAB / Под ред. А.Л.Фрадкова.- С.-Петербург: Издательство БГТУ, 1994г.
Размещено на Allbest.ru
ЛАБОРАТОРНАЯ РАБОТА №1
http://apeshnik.narod.ru/matlab/part1.htm
ПЛАН
I. Основные вычислительные процедуры системы MATLAB
1. Операции сложения, вычитания с присвоением и без присвоения результата (+, -).
2. Операции умножения, деления (*, /).
3. Возведение в степень (^).
4. Извлечение из квадратного корня (sqrt): sqrt(16+9)
5. Повторение действий, повторение с измененными параметрами и функциями.
6. Невыполняемый комментарий — %
7. Задание ряда чисел с заданным шагом и по умолчанию: t=(0:0.5:7)' % В виде столбца
8. Задание матриц (например: a = [1 2 3;4 5 6]):
— прямоугольных;
— квадратных;
— вектор-строки;
— вектор-столбца.
9. Матричные операции:
— сложение, вычитание (+, -);
— умножение (*);
— обращение (inv), (pinv);
— деление (/);
— возведение в степень (^);
— транспонирование (').
— cоздание нижней треугольной матрицы А: tril(А).
— cоздание верхней треугольной матрицы А: triu(А).
¾ вращение матрицы А относительно вертикальной оси: fliplr(A).
¾ вращение матрицы А относительно горизонтальной оси: flipud(A).
¾ поворот матрицы А на 900 против часовой стрелки: rot90(A).
¾ поворот матрицы А на 900 по часовой стрелке: rot90(A,-1).
¾ поворот матрицы А на кратное 900 значение: rot90(A,k), где k = ±1, ±2,... — множитель, на который умножается угол 900.
¾ п.п. вращения и поворота выполнить для квадратных и прямоугольных матриц.
¾ формирование единичной матрицы заданного размера n: eye(n).
¾ формирование единичной матрицы по размеру данной квадратной матрицы А: eye(size(A)).
¾ матрица единиц данного размера n´m: ones(n,m). Для создания квадратной матрицы: ones(n).
¾ матрица единиц по размеру заданной матрицы А: ones(size(A)).
¾ матрица нулей данного размера n´m: zeros(n,m). Для создания квадратной матрицы: zeros(n).
¾ матрица нулей по размеру заданной матрицы А: zeros(size(A)).
¾ матрица Паскаля данного размера n: pascal(n). Матрица Паскаля является положительно-определенной.
¾ извлечение диагонали заданной матрицы А: diag(A).
¾ вычисление следа матрицы А: trace(A).
¾ вычисление следа матрицы А через функции sum и diag: sum(diag(A)).
¾ магический квадрат размера n (n>2): magic(n).
¾ проанализировать магический квадрат с помощью функций MATLAB: просуммировать элементы каких-либо строк или столбцов, найти след магического квадрата.
¾ создание диагональной матрицы по заданной матрице А: diag(diag(A)).
¾ создание диагональной матрицы по заданному вектору-столбцу Р: diag(P).
¾ создание диагональной матрицы по заданному вектору-строке N: diag(N).
¾ создание диагональной матрицы по заданному вектору или матрице, набираемым в поле аргумента функции diag.
¾ собственные числа действительной или комплексной матрицы А: eig(A).
¾ выделение строк или столбцов матрицы: A = [1 2 3;4 5 6]; A(:,2:3) — 2-й и 3-й столбцы
¾ Задание матриц по случайному равномерному закону — rand (например, rand(3,4))
¾ Задание матриц по случайному нормальному закону — randn (например, randn(2,5))
¾ Получение помощи для заданной встроенной функции: help-пробел-функция.
¾ Операции с массивами (перед знаком арифметического действия ставится точка):
(например: [1 2 3;4 5 6].^2) — возведение каждого элемента матрицы в квадрат.
Выполнить матричные операции п.9 в виде операций с массивами.
8. Формирование коэффициентов характеристического полинома заданной числовой матрицы А: poly(A).
9. Формирование характеристического полинома заданной числовой матрицы А: poly(sym(A)). По умолчанию независимой переменной полинома является х.
10. Формирование характеристического полинома заданной числовой матрицы А с назначаемой независимой переменной полинома (например s): poly(sym(A),sym('s')).
11. Сравнить результаты выполнения п.п. 1.26, 1.27, 1.28.
12. Формирование коэффициентов характеристического полинома матрицы А по ее заданным собственным числам: poly(eig(A)).
13. Формирование характеристического полинома по заданным корням, являющимися элементами вектора Р: poly(P).
14. Формирование полинома с коэффициентами, являющимися элементами заданного вектора Р: poly2sym(P). Степень полинома на единицу меньше размерности заданного вектора Р.
II. Информативные сведения о матрицах, векторах, числах.
1. Размерность матрицы А: size(A).
2. Длина вектора Р: length(P).
3. Применить функцию size к вектору Р, примениить функцию length к матрице А (к прямоугольной и квадратной).
4. Уплотненный вывод на экран массивов и чисел: disp(A), disp(P), disp(a), где а — какое-либо число (действительное или комплексное, например, а=2+3i).
5. Определение простого числа: если а - простое число, то функция isprime(a) возвращает 1 (единицу), в противном случае будет 0 (ноль). Величина задаваемого числа а имеет определенные ограничения (порядка десятков миллионов).
6. Определение простых чисел из диапазона 2... а: primes(a). Величина числа а также ограничена. Функция primes(a) возвращает вектор, элементы которого являются простые числа из диапазона 2... а.
7. Определение знак заданного числа а: sign(a). Аргументом функции sign могут быть числа, выражения, математические функции.
8. Округление числа а до ближайшего целого: round(a).
9. Абсолютное значение заданного числа или выражения — abs: abs((3-5)/2), abs(-2^3)
III. Специальные функции.
1. Разложение числа N на простые множители: factor(N).
2. Суммирование элементов вектора Р: sum(P). Результат — число.
3. Суммирование элементов столбцов матрицы А: sum(A). Результат — строка, состоящая из суммы элементов каждого столбца матрицы А.
4. Формирование произведения элементов вектора Р: prod(P).
5. Формирование произведения элементов столбцов матрицы А: prod(A).
6. Формирование матрицы с элементами из возможных перестановок элементов заданного числового вектора Р: perms(P).
Создание М-файлов в виде М-сценариев.
2-D графика в MATLAB.
М-сценарии представляют собой последовательность действий или запись вычислительных алгоритмов, которые затем оформляются системой MATLAB в виде m-файлов (с расширением m). Техт М-сценария может быть написан в любом текстовом редакторе (текстовый документ) и затем перенесен в систему MATLAB, где для дальнейшего использования должен быть сохранен в окне редактора как m-файл.
1. Создание простейших сценариев.
Пример 1.
10. Создать в командном окне MATLAB матрицу: а = [1 2 3;4 5 6] или а = [1,2,3;4,5,6];
11. Транспонировать матрицу а: а1 = а';
12. Создать матрицу b = [10 20 30;40 50 60];
13. Перемножить матрицы а1 и b: с = а1*b;
14. На экране создать надпись 'Перемножение матриц а1 и b:' с помощью disp('Перемножение матриц а1 и b: ');
15. Вывести результат перемножения, набрав в командной строке обозначение с и нажав клавишу Enter;
16. Чтобы не было вывода промежуточных результатов, то в конце каждой строки (команды) следует ставить точку с запятой;.
17. Проделать предыдущие пункты команд с точкой с запятой и без.
18. Пункты 1-6 записать в М-файле. Для этого в командной строке набрать edit. Как только откроется окно текстового редактора, повторить набор команд пп. 1-6 и сохранить под каким-либо именем (например, Lab1). Тем самым создали М - сценарий.
19. Выйти из редактора в командное окно MATLAB.
20. Запустить на выполнение созданный М - сценарий. Для этого в активной командной строке набрать имя М - сценария и нажать клавишу Enter;
21. Для возвращения в редактор с целью редактирования созданного М - файла в командной строке набрать edit и через пробел имя желаемого файла (например, Lab1).
22. В М - файле можно записывать комментарии. Они создаются с помощью знака %. Т.е. после знака % можно писать как на русском, так и на английском и т.д. Все, что находится за знаком %, является невыполняемыми действиями, даже если там будут записаны стандартные команды MATLAB.
23. Создать М - сценарий с набором матриц и их инвертированием. Инвертирование матрицы с: inv(c).
Пример 2.
Формирование выборки случайных чисел, распределенных по экспоненциальному закону.
Функция распределения экспоненциального распределения вероятностей:
(1)
где — интенсивность распределения, равная обратной величине математического ожидания (среднего) распределения, т.е. где — математическое ожидание.
Выборка случайных чисел определяется через инверсную функцию от F(t):
(2)
где — случайное число из интервала [0, 1],
1. Сценарий формирования выборки случайных чисел, распределенных по экспоненциальному закону.
1.1. Выборка из 18 случайных чисел с экспоненциальным распределением и с заданным параметром интенсивности, равным 2:
% начало цикла, шаг индексации равен 1
% — случайное число из [0, 1]
% окончание цикла
% получение вектора-столбца случайных чисел
% сортировка случайных чисел по возрастанию значений
1.2. Формирование выборки 18 случайных чисел с экспоненциальным распределением с помощью встроенной функции expinv:
p2=rand(18,1);
T=expinv(p2,0.5)
t2=sort(T)
1.3. Формирование выборки 18 случайных чисел с экспоненциальным распределением с помощью встроенной функции exprnd:
for k=1:18
y(k)=exprnd(0.5);
end
R=sort(y) % R — вектор случайных отсортировнных чисел по возрастанию
Сценарии 1.1, 1.2, 1.3 должны быть сохранены под какими-либо именами, которым система MATLAB присваивает расширение m. Выполнение m-файла (сценария) может быть осуществлено из рабочей строки командного окна MATLAB.
Примеры статистичесих интерактивных графических окон функций распределения вероятностей.
Диалоговое (интерактивное) окно графических типовых распределений вероятностей в системе MATLAB — функция DISTTOOL (disttool).
DISTTOOL позволяет наглядно в виде графиков представлять различные функции распределения вероятностей с задаваемыми параметрами. В DISTTOOL приводятся две функции: cdf — функция распределения (интегральная функция распредления вероятностей), pdf — функция плотности распределения (дифференциальная функция распределения вероятностей).
Диалоговое (интерактивное) окно графических типовых гистограмм распределения вероятностей в системе MATLAB — функция RANDTOOL(randtool).
RANDTOOL позволяет представлять гистограммы функций плотности распределения вероятностей с возможным изменением параметров распределения и с изменением количества интервалов рассматриваемой гистограммы.
Графические построения. 2-D графика MATLAB.
2.1. График в полярной системе координат:
t=0:0.01:2*pi; y=3*(1+sin(t)); polar(t,y)
2.2. Совмещение графиков в одной системе координат с помощью функции hold on: t=0:0.01:2*pi;y1=3*(1+sin(t));y2=3*(1-sin(t));
polar(t,y1),hold on,polar(t,y2,'r')
2.3. Совмещение трех и более графиков с помощью функции hold on:
t=0:0.01:2*pi;y1=3*(1+sin(t));y2=3*(1-sin(t));
y3=3*(1+cos(t)); y4=3*(1-cos(t));
polar(t,y1),hold on,polar(t,y2,'r'),polar(t,y3,'g'),polar(t,y4,'k')
2.4. График в декартовой системе координат:
t=0:0.01:2*pi; y=sin(t);
plot(t,y),grid
2.5. Формирование пояснений к графику с помощью функции gtext:
t=0:0.01:2*pi;y=sin(t);plot(t,y),grid,gtext('t'),gtext('y')
% требуемые символы (t и y) устанавливаются в позиции курсора мыши.
2.6. Построение графиков заданных функций — fplot.
% График функции sin(t) или sin(x) и т.д. в пределах по аргументу от до:
» fplot('sin(t)',[-3*pi 3*pi]),grid % Набор в рабочей строке MATLAB
% График функции sin(t) в пределах по t от до с ограничением от -0.7 до 0.7
» fplot('sin(t)',[-3*pi,3*pi,-0.7,0.7]),grid
% Совмещение нескольких графиков: sin(t), exp(-0.5t), 3cos(t)
» fplot('[sin(t),exp(-0.5*t),3*cos(t)]',[-1,10,-4 5]),grid
Задание: Построить с помощью fplot графики следующих функций и их комбинаций:
с соответствующими областями определения.
2.7. Формирование пояснений к графику с помощью функций title, xlabel, ylabel:
t=0:0.01:2*pi;y=sin(t);
plot(t,y),grid,title('Синусоида'),xlabel('радианы'),
ylabel('функция'),gtext('t'),gtext('y')
» fplot('[sin(t),3*cos(t)]',[-1,10,-4,5]),grid,title('y_1-sin(t), y_2-3cos(t)'),gtext('y_1'),gtext('y_2')
% требуемые символы на графике устанавливаются в позиции курсора мыши.
2.8. Формирование пояснений к начертанию нескольких графиков с помощью функции legend:
t=0:0.01:2*pi;y1=sin(t);y2=cos(t);
plot(t,y1,'r'),grid,hold on,plot(t,y2), legend('s1','c2')
2.9. Установка ярлыка legend в различных частях графика:
в левом верхнем углу: legend('s1','c2', 2);
в левом нижнем углу: legend('s1','c2', 3);
в правом нижнем углу: legend('s1','c2', 4);
в правом верхнем углу: legend('s1','c2', 1)
или по умолчанию: legend('s1','c2');
вне рабочей области графика: legend('s1','c2', -1);
2.10. Интерактивный графический калькулятор — funtool.
В командной строке MATLAB набрать функцию funtool и запустить на выполнение (Enter). Самостоятельно проделать возможные построения и вычисления: графики стандартных функций, дифференцирование и интегрирование функциональных выражений, обращение функций, сложение двух функций и т.д.
% Установка для графиков цветов осуществляется в соответствии со следующими ключевыми обозначениями, приведенными в табл.1.:
Таблица 1.
Обозначение цвета Цвет (по-английски) Цвет (по-русски)
y yellow желтый
m magenta светло-фиолетовый
c cyan светло-зелёный r red красный
g green зелёный
b blue голубой (синий)
w white белый k black черный
См. п.2.8, где начертание графика осуществляется красным цветом.
Задание: п.2.8 выполнить в соответствии с цветами, приведенными в таблице 1. Выполнить построения графиков с помощью fplot, например:
» fplot('sin(t)',[-5,5],'r'),grid, hold on,fplot('3*cos(t)',[-5 5],'g') % С красным и зеленым цветами
% Начертание графиков различными символами может быть выполнено в соответствии с ключевыми символами, приведенными в табл.2.
Таблица 2.
Обозначение символа
Английское название
Русское название
· (обычная точка)
point
точка
o
circle
окружность
x
x-mark
крестик
*
star
звездочка
s
suare
квадратики
d
diamond
алмаз
v
triangle (down)
треугольник (вниз)
^
triangle (up)
треугольник (вверх)
<
triangle (left)
треугольник (левый)
>
triangle (right)
треугольник (правый)
p
pentagram
пятиконечная звездочка
h
hexagram
шестиконечная звездочка
-
solid
непрерывная линия
:
dotted
пункрирная линия (:)
-.
dashdot
штрих-пунктирная линия
--
dashed
разрывная линия
Задание: п.2.7 выполнить в соответствии с символами, приведенными в таблице 2., п.2.8 выполнить в соответствии с цветами и символами, приведенными в таблицах 1, 2.
Пример 3. Построение графиков функции экспоненциального распределения
В соответствии со сценариями 1.1 и 1.2 построить функции распределения вероятностей и функции плотности распределения вероятностей.
1-й способ построения интегральной функции распределения F1:
t1=sort(x);
F1=1-exp(-2*t1);
plot(t1,F1),grid
2-й способ построения интегральной функции распределения F2:
p2=rand(48,1);
T=expinv(p2,0.5); % параметр 0.5 — математическое ожидание
t2=sort(T);
F2=1-exp(-2*t2);
plot(t2,F2),grid
3-й способ построения интегральной функции распределения F3:
p3=rand(48,1);
T3=expinv(p2,0.5); % параметр 0.5 — математическое ожидание
t3=sort(T3);
F3=expcdf(t3,0.5); % построение по функции expcdf
plot(t3,F3),grid
Пример 4. Построение графиков функции плотности экспоненциального распределения.
Функция плотности экспоненциального распределения вероятностей имеет вид:
(3)
где m — интенсивность распределения, t — случайная величина.
График функции плотности можно построить тремя способами. Первый и второй способы аналогичны построению интегральной функции распределения. Применить самостоятельно.
3-й способ построения функции плотности экспоненциального распределения f3:
p3=rand(48,1);
T3=expinv(p2,0.5); % параметр 0.5 — математическое ожидание
t3=sort(T3);
f3=exppdf(t3,0.5); % построение по функции exppdf
plot(t3,f3),grid
Задание.
1. Совместить графики функций распределения F1, F2, F3 в одной системе координат.
2. Совместить графики функций распределения f1, f
ЛАБОРАТОРНАЯ РАБОТА №6
http://apeshnik.narod.ru/matlab/part6.htm
Анализ динамических систем в пространстве состояний.
Функции ss, initial, dss, lsim, системы MATLAB.
Цель работы: изучение возможностей системы MATLAB для анализа динамических свойств линейных непрерывных систем управления в пространстве состояний. Построение переходных и импульсных характеристик, анализ динамики с произвольными управляющими воздействиями и с произвольными начальными условиями.
Математическое описание непрерывной стационарной системы управления в пространстве состояний имеет вид
(1)
где Х — n-мерный вектор состояния, U — r-мерный вектор управления, Y — m-мерный вектор выхода, A — n´n матрица, В — n´r матрица, С — m´n матрица, D — m´r матрица (A, B, C, D — постоянные вещественные матрицы).
Векторное дифференциальное уравнение в (1) определяет собой явную форму Коши, т.е. такую форму записи, когда дифференциальное уравнение разрешено относительно производной от неизвестной (и искомой) функции.
Описание в неявной форме Коши имеет вид
(2)
где Е — квадратная матрица размера n´n, которая задает числовые коэффициенты при производных. Матрица Е по умолчанию равна пустой матрице [].
1. Формирование модели непрерывной системы управления в явной форме Коши — ss.
Для формирования системы (1) необходимо задать четверку матриц A, B, C, D соответствующих размерностей.
Пример. Модель трех последовательно соединенных инерционных звеньев, с выходом по 3-й координате.
% Набираем четверку матриц
» A=[-1.23 0 0;2.5 -0.56 0;0 3 -2.3];
» B=[4;0;0];
» C=[0 0 3.3];
» D=0; % Обычнее всего матрица D бывает нулевой
% Создаем модель системы под именем s1
» s1=ss(A,B,C,D)
% Результат возвращается в виде
a =
x1 x2 x3
x1 -1.23 0 0
x2 2.5 -0.56 0
x3 0 3 -2.3
b =
u1
x1 4
x2 0
x3 0
c =
x1 x2 x3
y1 0 0 3.3
d =
u1
y1 0
Continuous-time system.
% Корни характеристического уравнения системы s1
» eig(s1) % Можно использовать и функцию pole
ans =
-2.3000
-0.5600
-1.2300
% Корни характеристического уравнения в тоже время являются собственными числами матрицы А
Для сформированной системы можно посмотреть переходные и импульсные характеристики относительно выхода Y.
»step(s1,15),grid % Переходная характеристика от 0 до 15 ед. времени
»impulse(s1,12),grid % Импульсная характеристика от 0 до 12 ед. времени
Задание. Построить характеристики системы при различных значениях матрицы С:
[0 0 1], [0 0 5], [1 0 0], [0 1 0], [1 1 1].
% Определение размерности модели и результирующего статического коэффициента передачи — size, dcgain
» s1=ss(A,B,C,D); % Формирование модели по заданным матрицам
» size(s1)
State-space model with 1 input(s), 1 output(s),and 3 state(s).
% Результат действия size(s1): 1 вход, 1 выход, три переменных состояния
» dcgain(s1) % Определение коэффициента передачи системы s1
ans =
62.4905
% Вычислить коэффициент передачи системы при различных матрицах С:
[0 0 1], [0 0 0.3], [0 0 5], [1 0 0], [0 1 0], [1 1 1].
2. Формирование передаточной функции непрерывной системы управления по заданной модели в пространстве состояний.
2.1. Рациональная передаточная функция — tf.
» tf(s1)
Transfer function:
--------------------------------
s^3 + 4.09 s^2 + 4.806 s + 1.584
% Статический коэффициент передачи равен: 99/1.584=62.5
2.2. Передаточная функция с выделенными нулями и полюсами — zpk.
» zpk(s1)
Zero/pole/gain:
-------------------------
(s+2.3) (s+1.23) (s+0.56)
% Статический коэффициент передачи равен:
» 99/(2.3*1.23*0.56)
ans =
62.4905
% Повторные преобразования от систем к передаточным функциям и обратно ведут к накоплению ошибок
3. Построение переходного процесса по отработке заданных начальных условий — initial.
Если начальные условия не нулевые для системы (1), то ее динамика будет вполне определяться собственными движениями, т.е. решением системы
(3)
Для анализа решения системы (3) по выходу Y можно использовать сформированную модель в виде (1) по функции ss (модель s1).
% Рассмотрим реакцию системы s1 на следующие начальные условия по вектору состояния Х(0): т.е. вектор начальных условий определяется вектором-столбцом [10; 10; 10].
% Сформируем переходный процесс по отработке начальных условий [10; 10; 10]
» initial(s1,[10;10;10],15),grid % На отрезке времени от 0 до 15
» initial(s1,[10;10;10],[0:0.1:7]),grid % От 0 до 7 с шагом 0.1
% Построим два (можно больше) переходных процесса в одной системе координат.
% Сначала сформируем две модели s1 и s2
» A1=[-1.23 0 0;2.5 -0.56 0;0 3 -2.3];
» B1=[4;0;0];
» C1=[0 0 3.3];
» D1=0;
» A2=[-3 0 0;5 -2.56 0;0 3.3 -1.3];
» B2=[3;0;0];
» C2=[0 0 3.3];
» D2=0;
s1=ss(A1,B1,C1,D1);
s2=ss(A2,B2,C2,D2);
% Задаем формат записи функции initial для двух систем
» initial(s1,s2,[10;10;10],9),grid,legend('s1','s2')
% Вектор начальных условий и длительность задаваемого времени должны быть одними и теми же для обеих систем (многих систем)
Задание.
¾ Построить и сравнить переходные процессы для систем типа (1) и (3) с помощью функции initial.
¾ Построить переходные процессы с помощью функции initial для следующих векторов начальных условий: [-10,-10,10], [1,1, 10], [10, 10, 1], [1, 1, -1], [0,0,10].
¾ Совместить несколько графиков переходных процессов для одной системы с различными начальными условиями
¾ Построить переходные процессы двух систем s1 и s2 для различных значений матрицы С2: [0,0,-3.3], [0 0 1], [12 13 -10], [5 0 0], [0 5 0]
Замечание. Функция initial применяется только для моделей систем, сформированных в пространстве состояний.
4. Формирование модели непрерывной системы управления в неявной форме Коши — dss.
Когда дифференциальные уравнения первого порядка не полностью разрешены относительно производных, когда присутствуют множители при производных, отличные от единицы, то такая форма представления дифференциальных уравнений называется неявной формой Коши. Описание таких систем в MATLAB производится с помощью функции dss, которая отличается от ss наличием так называемой весовой матрицей Е при производных.
Пример. Рассмотрим систему дифференциальных уравнений следующего вида
(4)
Представим систему (4) в векторном виде:
(5)
где — скалярное управление,.
Определим переходный процесс системы (4) при единичном входном воздействии и нулевых начальных условиях. Для этого воспользуемся функцией step.
% Определяем матрицы модели
» A=[-0.2 0 0;3 -0.5 0;0 6 -1.8];
» B=[5;0;0]; C=[0 0 1]; D=0;
» E=[2.5 0 0;0 1.07 0;0 0 1.3];
% Формируем модель системы в пространстве состояний с помощью dss.
» ds1=dss(A,B,C,D,E);
% Строим переходный процесс на отрезке времени от 0 до 12.
» step(ds1,12),grid,title('ds1')
% С функцией ss переходный процесс будет другим для тех же матриц A,B,C,D
s1=ss(A,B,C,D);
step(s1,12),grid,title('s1')
% Процессы от dss и ss будут совпадать, если для dss выбрана Е в виде единичной матрицы.
Задание.
¾ Рассмотреть переходные процессы для системы 4 с различными коэффициентами при производных, т.е. задать различные матрицы Е в dss: Е12=[2.5 0 0;0 1.07 0;1 0 1.3]; E13=[2.5 0 0.7;0 1.07 0;1 0 1.3]; E14=[1.5 0 0.7;0 1.07 0;1 0 1.3]; E16=[0.989 0 0;0 0.989 0;0 0 0.989] и с различными интервалами интегрирования: от 7 до 100.
¾ Для систем, сформированных с помощью dss, построить переходные процессы по отработке начальных условий с помощью initial и impulse.
5. Переходные процессы с произвольными входными воздействиями и начальными условиями на заданном интервале времени — lsim.
Команда lsim применяется только для моделей систем, сформированных с помощью функции ss.
Пример 1. Рассмотрим переходный процесс системы (4) при на отрезке времени [0 21] с нулевыми начальными условиями.
% Формирование модели системы в пространстве состояний остается прежним
» A=[-0.2 0 0;3 -0.5 0;0 6 -1.8];
» B=[5;0;0]; C=[0 0 1]; D=0;
» s22=ss(A,B,C,D); % Формирование ss-модели
» t=0:0.1:21;
» u=2*ones(length(t),1); % Вектор-столбец, элементы которого равны 2
% Объединим два переходных процесса
» step(s22,22,'k'),grid,hold on,lsim(s22,u,t,[0;0;0],'m.')
% step — это реакция на единичное воздействие, lsim — реакция на "удвоенное" воздействие.
Сформируем воздействие вида
» u=10*exp(-0.1*t).*cos(t); %Применено массивное умножение
% Сравниваем два переходных процесса
» step(s22,22,'k'),grid,hold on,lsim(s22,u,t,[0;0;0],'m.')
Пример 2. Рассмотрим переходный процесс для системы с двумя управляющими воздействиями при нулевых начальных условиях.
(6)
Матрица А системы (6) такая же, что и для системы (4), а только изменилась матрица В, которая теперь имеет вид
или как в MATLAB B=[5 0;0 20;0 0].
» A=[-0.2 0 0;3 -0.5 0;0 6 -1.8];
» B=[5 0;0 20;0 0];
» C=[0 0 1]; D=0;
» s33=ss(A,B,C,D);
» dcgain(s33) % Коэффициенты передачи системы по каждому из управлений
ans =
500.0000 133.3333
% Переходный процесс формируется по каждому из управлений
» step(s33,21),title('Два управления U_1, U_2')
% Применим функцию lsim со ступенчатыми управлениями на входе системы
» t=0:0.1:41;
» u1=ones([length(t),1]);
» u2=ones([length(t),1]);
» u=[u1, u2]; % Управление можно определить в виде: u=ones(length(t),2)
% Строим переходный процесс
»lsim(s33,u,t,[0;0;0]),grid,title('Действие 2-х управлений')
% Стационарный процесс начинается на уровне 500+133.3333=633.3333
Задание.
¾ Подобрать элементы матрицы В так, чтобы коэффициент передачи по второму управлению отличался от первого (500) на 200 единиц. Построить переходные процессы с помощью step и lsim.
¾ Построить переходные процессы с помощью step и lsim для различных матриц С: [0,1,0], [1,0,0],[1,1,1].
¾ Сравнить результаты моделирования переходных процессов по функции lsim и численного интегрирования системы (6) с помощью ode45.
Численное представление переходных процессов с помощью функции step.
Функцию step можно использовать в числовом формате для расчетов переходных процессов как по выходной переменной Y, так и по всему вектору состояния Х. Результаты расчетов затем могут быть аргументами графического постоителя plot.
Анализ переходных процессов системы (6) с двумя управлениями:
» A=[-0.2 0 0;3 -0.5 0;0 6 -1.8];
» B=[5 0;0 20;0 0];
» C=[0 0 1]; D=0;
» s44=ss(A,B,C,D);
% Сформирована модель s44 по заданным матрицам A, B, C, D
% Применим числовой формат функции step
» [y,t,x]=step(s1,21); % Расчет на отрезке времени от 0 до 21
% Определим размерности y,t,x
» size(y),size(t),size(x)
ans =
101 1 2 % Размерность вектора выхода Y
ans =
101 1 % Размерность интервала интегрирования t
ans =
101 3 2 % Размерность вектора состояния Х
Вектор выход Y единственный, но рассчитан по каждому из управлений (которых два). Вектор состояния Х третьего порядка (как и заданная система) и также он рассчитан по двум управлениям. Интервал интегрирования разбит на 101 точку.
Размерности Y, X необходимо учитывать при построении графиков с помощью функции plot.
% Построим график выхода по каждому из управлений в одной системе координат
» plot(t,y(:,1,1),'r'), grid, hold on, plot(t,y(:,1,2)), legend('Y_1','Y_2')
% Построим график вектора состояния Х по первому управлению
» plot(t,x(:,:,1)),grid,legend('X_1','X_2','X_3'),title('С 1-м управлением')
% Построим график вектора состояния Х по второму управлению
» plot(t,x(:,:,2)),grid,legend('X_1','X_2','X_3'),title('С 2-м управлением')
% Первая координата равна нулю, так как 2-е управление начинает действовать только после второго звена (система 6 описывает последовательное соединение 3-х инерционных звеньев).
Задание.
¾ Применить step в числовом формате для анализа системы (6) с одним управляющим воздействием.
¾ Применить step в числовом формате для анализа системы (6) с тремя управляющими воздействиями. Принять коэффициент при управлении в третьем уравнении: 2, 10, 20, 0.2.
Численное представление переходных процессов с помощью функции lsim.
Анализ переходных процессов системы (6) с двумя управлениями:
% Формирование ss-модели остается прежним. Применим числовой формат lsim.
»[y1,t1,x1]=lsim(s1,u,T,[0;0;0]);%С нулевым начальным вектором Х
» size(y1),size(t1),size(x1)
ans =
211 1 % Размерность вектора выхода
ans =
211 1 % Размерность (количество точек) интервала интегрирования
ans =
211 3 % Размерность вектора состояния
% Числовой формат lsim представляет результирующее решение системы от действия обоих (всех) управлений
% Построим графики решений
» plot(t1,y1), grid, title('Вектор выхода')
» plot(t1,x1), grid, title('Вектор состояния'),legend('x_1','x_2','x_3')
Задание.
¾ Применить числовой формат lsim для управлений вида:,,,. Рекомендуется проверить размерность каждого из управлений, прежде чем формировать векторное управление, которое войдет в lsim.
¾ Решение и графики рассмотреть на отрезке времени [0, 50] и при различных матрицах С: [1, 0, 0], [0, 1, 0], [1, 1, 1].
Численное представление импульсных переходных процессов
с помощью функции impulse.
% Рассчитаем и построим имульсную переходную функцию системы (6)
» [Y0,T0,X0]=impulse(s1,25); % На отрезке от 0 до 25
» size(Y0),size(T0),size(X0)
ans =
101 1 2 % Размерность вектора выхода
ans =
101 1 % Размерность интервала интегрирования
ans =
101 3 2 % Размерность вектора состояния
% Выходная импульсная характеристика
» plot(T0,Y0(:,:,1),'r'), grid, hold on, plot(T0,Y0(:,:,2),'m'), legend('от u_1','от u_2')
% Импульсная характеристика от первого управления
ЛАБОРАТОРНАЯ РАБОТА №5
http://apeshnik.narod.ru/matlab/part5.htm
Применение функций операционного исчисления
для исследования линейных динамических систем
в системе MATLAB.
Преобразование Лапласа в MATLAB — функция laplace.
1.1. syms x y t; % задание символьных переменных
f1 = t; % зададим функцию-оригинал;
L1 = laplace(f1) % определение изображения по Лапласу от линейной функции;
f2 = sym('10'); % функцию f2 = 10 выражаем в символьном виде;
L2 = laplace(f2) % определение изображения от постоянной;
f3 = sym('3')*t + sym('7'); % оригинал линейной функции;
L3 = laplace(f3) % изображение линейной функции;
f4 = exp(-t); % оригинал экспоненциальной функции (со знаком минус);
L4 = laplace(f4) % изображение экспоненциальной функции;
f5 = exp(t); % оригинал экспоненциальной функции (со знаком плюс);
L5 = laplace(f5) % изображение экспоненциальной функции;
L6 = laplace(exp(t))
f6 = sin(x);
L6 = laplace(f6) % изображение тригонометрической функции sin(x);
L7 = laplace(cos(x)) % изображение тригонометрической функции cos(x);
Передаточные функции.
Определение. Передаточной функцией линейной динамической системы называется отношение изображения по Лапласу выходного сигнала к изображению по Лапласу входного сигнала при нулевых начальных условиях.
Передаточная функция в общем случае является дробно рациональной функцией относительно оператора преобразования Лапласа:
(1)
Условие m £ n отвечает условию реализуемости систем.
Создание передаточных функций — tf. % См. help tf;
2.1. Сформируем следующую передаточную функцию W1:
. (2)
2.2. В командной строке MATLAB набираем (или создаем М-сценарий):
W1=tf(12,[1 2 3 1])
% Результат возвращается в виде:
Transfer function:
---------------------
s^3 + 2 s^2 + 3 s + 1
2.3.. Сформируем следующую передаточную функцию W2:
. (3)
В командной строке MATLAB набираем:
W2=tf([3 5 4],[1 2 3 1])
% Результат возвращается в виде:
Transfer function:
3 s^2 + 5 s + 4
---------------------
s^3 + 2 s^2 + 3 s + 1
Формирование передаточных функций с разложением на множители числителя и знаменателя с заданным коэффициентом передачи — zpk (zero-pole-gain), символ k отображает gain.
Нули передаточной функции — это корни числителя, полюса — корни знаменателя.
2.4. Сформируем передаточную функцию со статическим коэффициентом, равным 7.7, и с полюсами. Назовем ее передаточной функцией с выделенными нулями и полюсами.
В командной строке MATLAB набираем:
W3=zpk([],[-3.3,-0.25,-12.7],7.7)
% Результат возвращается в виде:
Zero/pole/gain:
7.7
-------------------------
(s+3.3) (s+12.7) (s+0.25)
% Символ []означает, что в числителе передаточной функции характеристический полином
%нулевой
2.5. Сформируем передаточную функцию со статическим коэффициентом, равным 7.7, с полюсами и с нулями.
В командной строке MATLAB набираем:
W4=zpk([4,-5],[-3.3,-0.25,-12.7],7.7)
% Результат возвращается в виде:
Zero/pole/gain:
7.7 (s-4) (s+5)
-------------------------
(s+3.3) (s+12.7) (s+0.25)
2.6. Взаимное преобразование форм передаточных функций.
2.6.1. Преобразуем полученную передаточную функцию W4 в рациональную форму:
% В командной строке MATLAB набираем:
» w44=tf(W4)
% Результат возвращается в виде:
Transfer function:
7.7 s^2 + 7.7 s - 154
---------------------------------
s^3 + 16.25 s^2 + 45.91 s + 10.48
2.6.2. Преобразуем рациональную передаточную функцию в форму с выделенными нулями и полюсами:
% В командной строке MATLAB сформируем простую передаточную функцию вида:
.
W5=tf(10,[1,3,2])
% Результат возвращается в виде:
Transfer function:
-------------
s^2 + 3 s + 2
% Полученная передаточная функция соответствует описанию объекта, состоящего из двух последовательно соединенных инерционных звеньев с результирующим коэффициентом передачи, равным 10, и постоянными времени.
% Передаточная функция с выделенными нулями и полюсами w55:
w55=zpk(W5) % Формат преобразования
% Результат преобразования
Zero/pole/gain:
---------
(s+2)(s+1)
% Преобразуем рациональную передаточную функцию W2 в форму с выделенными нулями и полюсами:
w22=zpk(W2) % Формат преобразования
% Результат преобразования
Zero/pole/gain:
3 (s^2 + 1.667s + 1.333)
--------------------------------
(s+0.4302) (s^2 + 1.57s + 2.325)
% Рассмотренные передаточные функции типа (1) описывают объекты управления с одним входом и одним выходом — системы SISO (single input single output).
2.7. Оценка динамики объекта управления по заданной передаточной функции.
Динамика объекта управления определяется знаменателем передаточной функции, точнее корнями характеристического уравнения, составленного из знаменателя. Если корни характеристического уравнения "левые", то соответствующий переходный процесс будет установившимся, если же корни "правые", то переходный процесс будет неустановившимся, т.е. стремиться к бесконечности (по выходной координате объекта или по всем возможным координатам).
Для расчета корней характеристического уравнения можно использовать функцию eig.
2.7.1. Определим корни характеристического уравнения для объекта с передаточной функцией W5 и w55.
» eig(W5) % W5 — рациональная передаточная функция
ans =
-2
-1
» eig(w55) % w55 — передаточная функция с выделенными нулями и полюсами
ans =
-2
-1
% Результат получен один и тот же. Форма w55 позволяет сразу определить корни, если
% они простые
2.7.2. Определим корни характеристического уравнения для объекта с передаточной функцией W2 и w22.
»eig(W2) % W2 — рациональная передаточная функция
ans =
-0.7849 + 1.3071i
-0.7849 - 1.3071i
-0.4302
»eig(w22) %w22 — передаточная функция с выделенными нулями и полюсами, получена из W2
ans =
-0.7849 + 1.3071i
-0.7849 - 1.3071i
-0.4302
% Получены два комплексных корня и один простой. Простой корень легко может быть определен из передаточной функции w22.
2.7.3. Передаточные функции с кратными корнями.
Зададим простой корень, равный 6.78 тройной кратности и с помощью zpk сформируем следующую передаточную функцию w66:
» w66=zpk([],[-6.78,-6.78,-6.78],7)
% Рассчитаем корни соответствующего характеристического уравнения
» eig(w66)
ans =
-6.7800
-6.7800
-6.7800
% Получены три простых одинаковых корня
2.7.4. Передаточные функции с комплекными корнями.
Комплексные корни входят сопряженными парами.
Зададим один простой корень и два комплесно-сопряженных с помощью zpk.
» w77=zpk([],[-5+2.3*i,-5-2.3*i,-5.7],6)
Zero/pole/gain:
---------------------------
(s+5.7) (s^2 + 10s + 30.29)
% Имеем один простой корень, равный -5.7, и два комплесно-сопряженных: -5+2.3i; -5-2.3i, где
% i — символ мнимой единицы (можно использовать и j одновременно или совместно).
Рациональная передаточная функция, соответствующая w77, будет иметь вид:
» W77=tf(w77)
Transfer function:
--------------------------------
s^3 + 15.7 s^2 + 87.29 s + 172.7
Передаточные функ