Лабораторная работа № 1
«Исследование динамики линейных систем, описываемых обыкновенными дифференциальными уравнениями»
Цель работы
Ознакомиться с пакетом моделирования MatLab. Освоить основные приемы моделирования систем автоматического управления, описываемых при помощи обыкновенных дифференциальных уравнений.
Краткие теоретические сведения
Поведение динамической линейной системы автоматического управления может быть описано скалярным дифференциальным уравнением порядка
(1.1)
где – входной сигнал;
– выходной сигнал;
– порядок производной входного сигнала;
, и – постоянные коэффициенты.
При условии, что (требуется для физической реализуемости системы), уравнение (1.1) можно записать в виде системы уравнений первого порядка в нормальной форме Коши. Для этого вводятся в рассмотрение новые переменные состояния
(1.2)
С учетом введенных обозначений (1.2) уравнение (1.1) может быть переписано в следующем виде
(1.3)
Из уравнения (1.3) требуется найти выражение для старшей производной . Для этого необходимо перенести все остальные слагаемые в правую часть и поделить обе стороны уравнения на коэффициент . Тогда справедливо следующее уравнение
(1.4)
Систему (1.2) можно привести к следующему виду
(1.5)
Тогда система (1.5) и уравнение (1.4) формируют систему обыкновенных дифференциальных уравнений порядка , где в левой части каждого уравнения записывается лишь первая производная переменной состояния системы , а в правой части уравнений не присутствуют производные переменных состояния
(1.6)
Пример 1.1. Получить по заданному дифференциальному уравнению систему в нормальной форме Коши
. (1.7)
На основе (1.6) и (1.7) можно записать следующую систему уравнений
(1.8)
Далее необходимо полученную систему дифференциальных уравнений решить при помощи математического пакета MatLab.
Внимание! Типовые ошибки
1) Дробная часть в пакете MatLab, как и в большинстве языков программирования, отделяется от целой при помощи точки, а не запятой.
2) Имя функции начинается с символа английского алфавита, кроме букв содержит цифры, нижнее подчеркивание, не содержит кириллицы.
3) Имя вызываемой функции совпадает с названием m-файла MatLab.
4) Переменные в MatLab чувствительны к регистру вводимых символов, например, x и X – это две разные переменные.
5) Размерность системы совпадает с размерностями вектора параметров интегрирования, а также вектора начальных условий.
6) Без сохранения вызываемой функции после редактирования будет исполняться ранее сохраненный вариант.
Написание скриптов в математическом пакете MatLab
Для решения системы дифференциальных уравнений (1.6) в математическом пакете MatLab необходимо реализовать два скрипта, один из которых будет являться вызываемой функцией, содержащей описание математической модели системы и входного воздействия, а второй будет находить решение данной системы уравнений при помощи специального солвера, реализующего интегрирование системы дифференциальных уравнений.
В меню MatLab выбрать пункт File®New®Script.
В открывшемся окне написать код в соответствии с листингом 1.1.
Листинг 1.1.
function dx=model1(t,x)
dx=zeros(3,1);
y=1;
dx(1)=x(2);
dx(2)=x(3);
dx(3)=1/2*(6*y-3*x(3)-4*x(2)-5*x(1));
Полученный листинг сохранить в файл с именем, совпадающим с именем функции, model1.m в требуемой папке.
В листинге 1.1 реализуется модель системы в соответствии с системой (1.8) из примера 1.1. Первая строка листинга начинается со служебного слова, определяющего данный скрипт в качестве вызываемой функции с именем model1, возвращающей вектор значений производных переменных состояния dx. В качестве входных параметров в данной функции заданы время t и переменные состояния x.
Вторая строка листинга 1.1 инициализирует размерность вектора dx, в данном случае используется вектор-столбец из трех значений (матрица размерностью ). В третьей строке задан вид входного воздействия, сначала это единичный сигнал.
Последние строки листинга 1.1 реализуют систему (1.8). Индексы переменных состояния записаны в круглых скобках.
Завершение строки точкой с запятой препятствует выводу рассчитанных значений в командное окно (Command Window) MatLab.
Открыть новый скрипт, выбрав пункт меню File®New®Script.
В открывшемся окне написать код в соответствии с листингом 1.2.
Листинг 1.2.
T=30;
X0=[0,0,0];
options=odeset('AbsTol',[1e-5,1e-5,1e-5],'RelTol',1e-5);
[t,x]=ode45('model1',[0,T],X0,options);
plot(t,x(:,1),'b-',t,x(:,2),'g--','LineWidth',2);
legend('x_1(t)','x_2(t)');
grid on;
xlabel('t, c');
ylabel('x_i(t)');
title('Реакция системы на входной сигнал y=1 при начальных условиях [0,0,0]');
annotation('arrow',[0.13 0.13],[0.13 0.95], 'HeadStyle', 'plain')
annotation('arrow',[0.11 0.92],[0.11 0.11], 'HeadStyle', 'plain')
Полученный листинг сохранить в файл, например, с именем lab1.m в той же самой папке.
В первой строке задана длительность времени, в течение которого будет осуществляться моделирование системы. Во второй строке задан вектор начальных условий на моделирование системы. В переменной options заданы условия на решение системы дифференциальных уравнений, значения абсолютной погрешности для каждой из переменных состояния и значение относительной погрешности на интегрирование, в данном случае равные , записанные по мантиссе.
Следующая строка кода возвращает значение времени и соответствующие значения переменных состояния в результате интегрирования функцией ode45, реализующей метод Рунге-Кутта 4-5 порядка точности. Параметрами этой функции являются название функции с моделью системы, интервал времени и начальные условия. В результате выполнения данной команды функция возвращает вектор моментов времени и матрицу переменных состояния в соответствующие моменты времени. Их значения можно увидеть после выполнения скрипта в окне Workspace пакета MatLab, двойным щелчком открыв их на просмотр. Другим способом является введение в командном окне имен переменных без точки с запятой в конце строки. Например, приведенные ниже команды позволят получить значения соответствующих переменных в командном окне
t
x
Размерность матрицы переменных состояния можно оценить командой
size(x)
Вектор времени будет иметь ту же длину, что и переменные состояния.
Команда plot позволит построить график функции сплошной кривой синего цвета (маркер ‘b-‘) и функции штриховой кривой зеленого цвета (маркер ‘g--‘). Для того, чтобы график был лучше виден при печати, в команде также задана толщина линии размером в 2 пункта.
Оставшиеся команды в листинге используются для оформления графика. Команда legend позволяет отобразить подписи к типу линий на графике. Команда grid on формирует координатную сетку на графике. Команды xlabel и ylabel позволяют настроить подписи к осям абсцисс и ординат соответственно. Команда title позволяет задать заголовок к рисунку с указанной подписью. Две последние команды выводят стрелки на осях системы координат.
После реализации данного кода необходимо запустить данный файл на исполнение, для этого нажать на клавишу F5 клавиатуры или нажать на кнопку с зеленым треугольником Run на панели инструментов MatLab. Подтвердить изменение пути к файлам.
Если код реализован правильно, в результате будет получен график с искомыми сигналами. Если же возникают ошибки, MatLab укажет в командном окне на строки, в которых они присутствуют в коде. Необходимо их устранить, сохранить файл и повторно запустить код на исполнение.
После построения графика его необходимо скопировать в отчет. Для этого перейти в окне с графиком в пункт меню Edit®Copy Options. Установить настройки копирования в буфер обмена в формате метафайла с сохранением данных Clipboard format®Preserve information (metafile if possible) и настройка прозрачного фона рисунка Figure background color®Transparent background.
Скопировать рисунок в буфер обмена Edit®Copy Figure и вставить в документ текстового редактора, например, Microsoft Word, в котором будет находиться отчет по лабораторной работе.
Исходные данные по вариантам
Таблица 1.1
Варианты параметров моделей
Вариант | ||||||||||
порядок модели | ||||||||||
0,5 | 0,5 | |||||||||
0,5 | ||||||||||
- | - | - | - | |||||||
2,5 | 7,5 | |||||||||
Вариант | ||||||||||
порядок модели | ||||||||||
0,5 | 0,5 | |||||||||
0,5 | ||||||||||
- | - | - | - | |||||||
Вариант | ||||||||||
порядок модели | ||||||||||
0,5 | 0,5 | |||||||||
0,5 | ||||||||||
- | - | - | - | |||||||
2,5 | 7,5 |
Таблица 1.2
Варианты начальных условий
Вариант | ||||||||||
Порядок модели | ||||||||||
0,5 | -0,2 | -0,5 | 0,3 | -0,5 | 0,5 | 0,4 | 1,5 | -0,5 | 0,5 | |
0,2 | 0,5 | -0,5 | - | - | - | - | ||||
Вариант | ||||||||||
Порядок модели | ||||||||||
-1 | 1,5 | 1,5 | -1 | -1 | 1,5 | |||||
-2 | -1 | 0,5 | -0,5 | 0,5 | 0,5 | -1 | 0,5 | -0,5 | ||
0,5 | 0,2 | 0,4 | -1 | 0,5 | - | - | - | - | ||
Вариант | ||||||||||
Порядок модели | ||||||||||
0,5 | 0,5 | 0,5 | -0,5 | -0,5 | -0,5 | 0,5 | 0,5 | -0,5 | -0,5 | |
-0,5 | -0,5 | -1 | -0,5 | 0,5 | 1,5 | -1 | -0,5 | 1,5 | ||
-1 | 1,5 | - | - | - | - |
Порядок выполнения работы
1.5.1. Ознакомиться с пакетом прикладных программ MATLAB (см. Приложение А).
1.5.2. В соответствии с вариантом задания (см. табл. 1.1) записать дифференциальное уравнение по аналогии с (1.1).
1.5.3. Получить систему в нормальной форме Коши в соответствии с (1.6).
1.5.4. Осуществить моделирование системы дифференциальных уравнений в математическом пакете MatLab, для чего реализовать два m-файла в соответствии с 1.3 (листинги 1.1 и 1.2).
1.5.5. Осуществить моделирование системы при следующих условиях:
а) . Начальные условия нулевые. Продолжительности интервалов моделирования подобрать самостоятельно. На монитор выводить графики сигналов и . При этом график функции будет являться графиком переходной характеристики , а график функции будет являться графиком импульсной переходной функции . Скопировать результаты в отчет. Оценить время переходного процесса и перерегулирование, а также установившееся значение переходной характеристики.
б) . Начальные условия ненулевые в соответствие с табл. 1.2. (внести соответствующие изменения в листинг второго скрипта в команде ode45, а также в названии рисунка title). На монитор выводить графики сигналов и . Скопировать результаты в отчет.
в) (внести изменение в первый скрипт, заменив строку кода y=1; на строку y=sin(t);). Начальные условия нулевые (внести соответствующие изменения в листинг второго скрипта в команде ode45, а также в названии рисунка title). Продолжительности интервалов моделирования подобрать самостоятельно. На монитор выводить графики сигналов и . Скопировать результаты в отчет.
г) . Начальные условия ненулевые (внести соответствующие изменения в листинг второго скрипта в команде ode45, а также в названии рисунка title). Продолжительности интервалов моделирования подобрать самостоятельно. На монитор выводить графики сигналов и . Скопировать результаты в отчет.
1.5.6. Оформить отчет в соответствии с 1.6.
1.5.7. Подготовиться к защите лабораторной работы, для чего ответить на вопросы для самоконтроля 1.7 и разобрать соответствующие разделы, изученные на лекциях и семинарских занятиях.
Содержание отчета
Отчет должен содержать следующие разделы:
1.6.1. Титульный лист установленного образца, содержащий номер и название лабораторной работы, Ф.И.О. автора, учебную группу, Ф.И.О. и должность преподавателя, номер варианта, место и год выполнения работы
1.6.2. Цель работы.
1.6.3. Исходные данные в соответствии с вариантом задания.
1.6.4. Математическая модель динамической системы в форме обыкновенного дифференциального уравнения.
1.6.5. Полученная система дифференциальных уравнений в нормальной форме Коши.
1.6.6. Результаты моделирования системы.
1.6.7. Значение перерегулирования, установившегося значения и времени переходного процесса.
1.6.8. Выводы.
Вопросы для самоконтроля
1.7.1. Каким образом можно получить из обыкновенного дифференциального уравнения систему уравнений в нормальной форме Коши? Сколько уравнений будет в этой системе?
1.7.2. Назовите виды математических моделей системы?
1.7.3. Какой численный метод интегрирования реализует функция ode45?
1.7.4. Поясните принцип составления модели вход – выход?
1.7.5. На каких графиках построены переходная характеристика и импульсная переходная функция? Почему?
1.7.6. Как связаны между собой переходная характеристика и импульсная переходная функция системы?
1.7.7. Как связаны между собой сигналы и ? Почему?
1.7.8. Почему переходную характеристику и импульсную переходную функцию называют временными характеристиками?
Лабораторная работа № 2
«Типовые динамические звенья систем
автоматического управления»
Цель работы
Исследование динамических свойств временных и частотных характеристик типовых звеньев систем автоматического управления.