ЛАБОРАТОРНАЯ РАБОТА № 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.
Внимание! Типовые ошибки
Дробная часть в пакете MatLab, как и в большинстве языков программирования, отделяется от целой при помощи точки, а не запятой. Имя функции начинается с символа английского алфавита, кроме букв содержит цифры, нижнее подчеркивание, не содержит кириллицы. Имя вызываемой функции совпадает с названием m-файла MatLab. Переменные в MatLab чувствительны к регистру вводимых символов, например, x и X – это две разные переменные. Размерность системы совпадает с размерностями вектора параметров интегрирования, а также вектора начальных условий. Без сохранения вызываемой функции после редактирования будет исполняться ранее сохраненный вариант.
Написание скриптов в математическом пакете MatLab
Для решения системы дифференциальных уравнений (1.6) в математическом пакете MatLab необходимо реализовать два скрипта, один из которых будет являться вызываемой функцией, содержащей описание математической модели системы и входного воздействия, а второй будет находить решение данной системы уравнений при помощи специального солвера, реализующего интегрирование системы дифференциальных уравнений.
В меню MatLab выбрать пункт File→New→Script.
В открывшемся окне написать код в соответствии с листингом 1.1.
function dx=model1(t, x)
Полученный листинг сохранить в файл с именем, совпадающим с именем функции, 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.
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, двойным щелчком открыв их на просмотр. Другим способом является введение в командном окне имен переменных без точки с запятой в конце строки. Например, приведенные ниже команды позволят получить значения соответствующих переменных в командном окне
Размерность матрицы переменных состояния можно оценить командой
Вектор времени будет иметь ту же длину, что и переменные состояния.
Команда 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, в котором будет находиться отчет по лабораторной работе.
Исходные данные по вариантам
Варианты параметров моделей
порядок модели
порядок модели
порядок модели
Варианты начальных условий
Порядок модели n
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.6.1. Титульный лист установленного образца, содержащий номер и название лабораторной работы, Ф. И.О. автора, учебную группу, Ф. И.О. и должность преподавателя, номер варианта, место и год выполнения работы
1.6.2. Цель работы.
1.6.3. Исходные данные в соответствии с вариантом задания.
1.6.4. Математическая модель динамической системы в форме обыкновенного дифференциального уравнения.
1.6.5. Полученная система дифференциальных уравнений в нормальной форме Коши.
1.6.6. Результаты моделирования системы.
1.6.7. Значение перерегулирования, установившегося значения и времени переходного процесса.
1.7. ВОПРОСЫ ДЛЯ САМОКОНТРОЛЯ
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. Почему переходную характеристику и импульсную переходную функцию называют временными характеристиками?
Настоящее приложение содержит описание некоторых функций системы MatLAB, позволяющих моделировать технические системы и получать их характеристики в наглядном виде.
MatLAB (сокращение от Matrix Laboratory – матричная лаборатория) – это компьютерная система проведения математических расчетов, получившая широкое распространение.
Интегрирование системы обыкновенных дифференциальных уравнений
Интегрирование системы обыкновенных дифференциальных уравнений осуществляется при помощи функций ode23 и ode45. Функция ode23 осуществляет интегрирование численным методом Рунге-Кутта 2-го порядка, а с помощью метода 3-го порядка контролирует относительные и абсолютные ошибки интегрирования на каждом шаге и изменяет величину шага интегрирования так, чтобы обеспечить заданные пределы ошибок интегрирования. При использовании функции ode45 интегрирование осуществляется методом Рунге-Кутта 4-го порядка, а величина шага контролируется методом 5-го порядка.
Система дифференциальных уравнений должна быть представлена в форме Коши:
(1.1)
где y – вектор переменных состояния системы, t – аргумент (обычно время), f – нелинейная вектор-функция от переменных состояния у и аргумента t.
Обращение к процедурам численного интегрирования имеет вид:
[t, y] = ode23(‘ ’, tspan, y0, options)
[t, y] = ode45(‘ ’, tspan, y0, options),
где — имя M-файла, являющегося функцией Matlab от t и y, в котором вычисляется вектор функция f(y, t), т. е. правые части системы дифференциальных уравнений;
tspan – вектор задающий интервал интегрирования [t0 tfinal], t0 – начальное значение интервала, tfinal – конечное;
yo – вектор начальных условий;
options – строка параметров, определяющих значения допустимой относительной и абсолютной погрешности интегрирования. Этот параметр можно не указывать, если пользователя устаивают значения погрешностей, заданных по умолчанию, т. е. относительная погрешность интегрирования 1.0e-3, а абсолютная (по каждой из переменных состояния) – 1.0e-6. В противном случае, перед обращением к процедуре ode23 следует указать значения погрешностей при помощи процедуры odeset.
Результатом интегрирования является матрица проинтегрированных значений фазовых переменных y, в которой каждый столбец соответствует одной из переменных состояния, а строка содержит значения переменных состояния, соответствующих определенному шагу интегрирования, т. е. значению вектора t.
Пусть задана система обыкновенных дифференциальных уравнений:
со следующими начальными условиями:
Для интегрирования данной системы уравнений необходимо создать М-файл, который является функцией переменных t и y. Для создания файла воспользуемся редактором MATLAB Editor/Debugger, который вызывается из основного меню File – New – M-File. Текст файла:
function dy=rigid(t, y)
Название файла и функции должны совпадать. Файл надо сохранить с названием rigid.
В этом примере абсолютная и относительная погрешность задается при помощи команды odeset, время интегрирования зададим в интервале от 0 до 12 [0 12], вектор начальных условий [0 1 1]. Для осуществления процедуры интегрирования в рабочем пространстве Matlab необходимо набрать:
» options=odeset(‘RelTol’,1e-4,’AbsTol’,[1e-4 1e-4 1e-5]);
» [t, y]=ode45(‘rigid’,[0 12],[0 1 1],options);
Чтобы просмотреть результаты в рабочем пространстве Matlab необходимо ввести в командной строке y. Графически результаты выводятся при помощи команды plot:
plot(y)
plot(x, y)
plot(x, y, s)
plot(x1, y1, s1, x2, y2, s2, . )
Команда plot(y) строит график элементов одномерного массива y в зависимости от номера элемента; если элементы массива y комплексные, то строится график plot(real(y), imag(y)). Если Y — двумерный действительный массив, то строятся графики для столбцов; в случае комплексных элементов их мнимые части игнорируются.
Команда plot(x, y) соответствует построению обычной функции, когда одномерный массив x соответствует значениям аргумента, а одномерный массив y — значениям функции. Когда один из массивов X или Y либо оба двумерные, реализуются следующие построения:
если массив Y двумерный, а массив x одномерный, то строятся графики для столбцов массива Y в зависимости от элементов вектора x;
если двумерным является массив X, а массив y одномерный, то строятся графики столбцов массива X в зависимости от элементов вектора y;
если оба массива X и Y двумерные, то строятся зависимости столбцов массива Y от столбцов массива X.
Команда plot(x, y, s) позволяет выделить график функции, указав способ отображения линии, способ отображения точек, цвет линий и точек с помощью строковой переменной s, которая может включать до трех символов из следующей таблицы:
Видео:Лабораторная работа 1. Решение систем обыкновенных дифференциальных уравненийСкачать
Жданов БИН1909 Лабораторная 4. Лабораторная работа 4 По дисциплине «Численные методы» Тема Методы решения обыкновенных дифференциальных уравнений
Название | Лабораторная работа 4 По дисциплине «Численные методы» Тема Методы решения обыкновенных дифференциальных уравнений |
Дата | 20.04.2021 |
Размер | 75.41 Kb. |
Формат файла | |
Имя файла | Жданов БИН1909 Лабораторная 4.docx |
Тип | Лабораторная работа #196679 |
Подборка по базе: Контрольная работа экономика энергетики Поляков А.В. ЭЛЭ 17-27 В, Проверочная работа по теме Однородные члены предложения.docx, Самостоятельная работа 5.docx, Лабораторная работа №1.docx, Окладной Корней 4КСК11 — Практическая работа 7.docx, Дипломная работа Каршалова ЖБ.doc, Практическая работа 1.docx, Практическая работа№2 FAR.docx, КОНТРОЛЬНЫЕ ВОПРОСЫ к практическим занятиям по дисциплине «Гисто, Сборник лабораторных работ по дисциплине ОП.10 _Информационная б Министерство цифрового развития, связи и Ордена Трудового Красного Знамени Федеральное государственное бюджетное образовательное учреждение высшего образования «Московский технический университет связи и информатики» Лабораторная работа № 4 По дисциплине “Численные методы” « Методы решения обыкновенных Выполнил: Студент группы БИН 1909 Жданов Сергей Проверил: Сосновиков Г.К. Москва 2021 Общее задание:
E | y(x ) yЭ(x ) | для x x ih , i i 0,1. n ,.
|