Рецензенты: кафедра информационных систем СПбГУАП;
кандидат технических наук В.М. Космачев
Содержатся указания к выполнению лабораторных работ по моделированию на персональных ЭВМ с использованием программного пакета MATLAB.
Методические указания предназначены для проведения лабораторных работ по курсу "Моделирование", со студентами дневного обучения по специальности 2201 "Вычислительные системы, комплексы и сети" и направлению 5528 «Информатика и вычислительная техника».
Подготовлены к изданию кафедрой вычислительных систем и сетей по рекомендации редакционно-издательского совета Санкт-Петербургского государственного университета аэрокосмического приборостроения.
Целью выполнения лабораторныхработ является закрепление теоретического материала по курсулекций и получение практических навыковкомпьютерного моделирования.
На каждую лабораторную работу отводится два занятия. На первом проводится коллоквиум, во время которого проверяется качество написания отчета, теоретические знания студентов, а такжезнаниепакета программ, в котором выполняется работа. На втором занятии работа выполняется на вычислительной машине. Работа считается выполненной, если результаты экспериментов хорошо совпадают с теоретическими. Отметка, которая ставится в журнал, учитывает качество отчета, ответы на коллоквиуме и результаты практического выполнения работы.
Отчет оформляется каждым студентом индивидуально. Отчетдолжен содержать постановку задачи, вывод необходимых формул, расчеты, графики, программы или схемы моделирования. При выполнениирасчетов в построении графиков следует придерживаться следующих правил.
I. Для построения графика функции y=f(x) или y=f(t) сначала составляется таблица. Полезно также найти особые точки функций, производную в начале координат, период и т.д., что облегчает построение графика.
2. При вычислениях следует удерживать три значащие цифры.
3. При построении графиков масштабы по осям следует выбирать в соответствии с диапазоном изменения переменных.
4. Число точек для построения графика зависит от вида функции. Например, для функции y=et/τ достаточно взять 5–6 точек на интервале 0≤ t≤ 3τ (τ – постоянная времени). Для периодических кривых надо брать несколько точек на полпериода, особенно тщательно рассчитав первый период. На графике должно поместиться 1–3 периода. Выбор шага при компьютерном моделировании производится из аналогичных соображений.
Методические указания содержат описания семи лабораторных работ, которые выполняются в программном пакете MATLAB и SIMULINK.
В конце приведен необходимый справочный материал – математические формулы, таблицы преобразований Лапласа и z-преобразования, значения функций e-t, sint, cost и некоторые команды MATLAB.
Лабораторная работа № 1
МОДЕЛИ ЛИНЕЙНЫХ БЛОКОВ
Цель работы:ознакомиться с характеристиками и методикой компьютерного моделирования блоков с дробно-рациональными передаточными функциями с помощью пакетов MATLAB и SIMULINK.
1. ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ
1.1. Математическое описание линейных блоков.
Рассмотрим линейный блок Q, преобразующий входной сигнал x(t) в выходной сигнал y(t) (рис. 1).
Напомним, что блок называется линейным, если он удовлетворяет принципу суперпозиции, который нестрого формулируется следующим образом: следствие от суммы причин равно сумме следствий от каждой из причин, взятых в отдельности.
Это означает, что если y1 и y2 - реакции блока на входные сигналы x1 и x2 , то реакция блока на входной сигнал x = c1x1 + c2x2 должна быть равна y = c1y1 + c2y2 при любых числах c1, c2 и любых сигналах x1, x2 .
Например, линейность интегратора, описываемого уравнением y=a∫xdt, следует из известного правила "интеграл суммы равен сумме интегралов":
.
Для квадратора, описываемого уравнением y = x2, принцип суперпозиции не выполняется, так как y=(x1+x2)2≠ , поэтому квадратор является нелинейным блоком.
Удобным средством для моделирования структурных схем в системе MATLAB является SIMULINK. Он содержит библиотеки различных блоков, из которых в рабочем окне с помощью мышки строится структурная схема модели.
Рассмотрим некоторые из типовых вычислительных блоков.
Масштабный усилитель (обозначается треугольником с надписью gain) реализует математическую зависимость y=ax, где а – коэффициент усиления. Если а = –1 то масштабный усилитель превращается в инвертор – блок, изменяющий знак входного сигнала. Инвертор реализует зависимость у = – х.
Сумматор (обозначается кружком, треугольником или прямоугольником с надписью sum) реализует зависимость y = ±x1 ±x2 ±x3, знаки суммирования и число слагаемых можно изменять, щелкнув по блоку мышкой. Оба эти блока находятся в библиотеке (группе блоков) Math Operations.
Простейший динамический блок – интегратор (изображается треугольником или прямоугольником с обозначением внутри и надписью integrator). Он находится в библиотеке Continuos и реализует зависимость
Для установки начального условия у0 надо войти внутрь блока, щелкнув по нему мышкой. Например, если у0=2 и на вход интегратора поступает сигнал х=1, то выходной сигнал определяется формулой y = 2+t. Это линейно изменяющееся напряжение, осциллограмма которого имеет вид наклонной прямой.
Соединяя блоки определенным образом между собой, получают схемы для реализации различных функций времени, решения дифференциальных уравнений, моделирования технических объектов.
В частности, для получения экспоненциальных функций можно использовать интегратор, охваченный положительной или отрицательной обратной связью (рис. 2, а, б).
а) б) в)
Рис. 2. Получение экспоненциальных функций
Чтобы найти вид выходного сигнала первой из этихсхем, выпишем уравнение для ее выходного сигнала
где
Это дифференциальное уравнение первого порядка относительно переменной y. Решим его методом разделения переменных:
Аналогичные выкладки для второй схемы приводят к выражению y=y0 e-at. Графикиэтих сигналов показаны на рис. 2,в.
В библиотеке Continous имеется также блок для моделирования произвольной передаточной функции (transfer function). Он обозначается прямоугольником с надписью Transfer Fcn и обозначением внутри. Он, в частности, позволяет моделировать линейные блоки, которые можно описать дифференциальным уравнением первого порядка
. (1)
При исследовании и моделировании бортовых систем такими уравнениями пользуются для описания динамики автопилотов, сервоприводов и измерительных датчиков. Постоянные коэффициенты a0, a1, b0, b1 зависят от технических параметров соответствующих устройств.
Линейному блоку вида (1) соответствует передаточная функция первого порядка.
Определение 1.Передаточной функцией Q(p) линейного блока называется отношение изображений по Лапласу его выходного и входного сигналов
(2)
при нулевых начальных условиях.
Напомним, что изображение по Лапласу F(p) функции f(t) задается формулой
. (3)
Оно определено для функций f(t), равных нулю при t < 0.
Пример 1. Функцией единичного скачка (единичной функцией) называется функция
Ее изображение по Лапласу имеет вид
Производная по времени от функции единичного скачка называется дельта-функцией: . Она равна нулю везде, кроме точки t = 0, в которой она принимает бесконечно большое значение. Ее инженерная интерпретация – очень короткий импульс единичной площади. Операции дифференцирования по времени соответствует умножение на оператор р в области изображений по Лапласу, поэтому для изображения функции d(t) получаем .
В пакете MATLAB для получения единичной функции имеется команда stepfun. В SIMULINK эта функция получается с помощью блока step, находящегося в библиотеке Sources (источники).
Установим вид передаточной функции блоков первого порядка. Для этого применим к обеим частям уравнения (1) преобразование Лапласа (начальные условия считаем нулевыми)
.
Отсюда получаем .
Здесь X(p) и Y(p) - изображения сигналов x(t) и y(t) по Лапласу,
Q(p) – передаточная функция (ПФ) блока Q.
Замечание 1. В зарубежной литературе (и в SIMULINK) в качестве аргумента передаточной функции используется буква s. Мы употребляем букву р, придерживаясь традиций отечественной учебной литературы.
Замечание 2. В определении ПФ не оговаривается вид входного сигнала. Дело в том, что для линейных блоков отношение Y(p) / X(p) не зависит от вида x(t) (для отношения y(t) / x(t) это, разумеется, неверно). Поэтому при нахождении ПФ можно использовать любой входной сигнал, не равный тождественно нулю.
Пример 2. Найдем передаточную функцию интегратора.
Полагая x(t)=1(t), получим y(t)=t, t≥0. Изображения входного и выходного сигналов, соответственно, равны 1/p и 1/p2, следовательно, ПФ интегратора имеет вид Q(p) = 1 / p.
Пример 3.Найдем передаточную функцию усилителя с коэффициентом усиления k. Полагая x(t)=1(t), получим y(t)=k·1(t), т.е. ПФ .
1.2. Прохождение сигналов через линейные звенья.
Определение ПФ с помощью формулы (2) остается справедливым для линейных стационарных звеньев произвольного порядка, а также для схем, составленных из таких звеньев.
Удобство использования передаточной функции состоит в том, что она позволяет определять реакцию y(t) звена Q на любой конкретный входной сигнал x(t). Для этого находят изображение X(p) входного сигнала (по таблице преобразований Лапласа) и умножают его на передаточную функцию Q(p), получая тем самым изображение выходного сигнала Y(p). Затем, используя таблицу, выполняют обратный переход от найденного изображения к оригиналу y(t).
Пример4.Найдем реакцию сервопривода с передаточной функцией Q(p) = k / (Tp+1)(апериодическое звено) на управляющее воздействие x(t)=1(t). Коэффициент усиления сервопривода k=1, постоянная времени T = 0,1 c.
В соответствии с примером 1 , следовательно, . Представим Y(p) в виде суммы простейших дробей
.
Обращаясь к таблице преобразований Лапласа, находим соответствующий оригинал y(t)=1–e-10t. Графики сигналов x(t) и y(t) приведены на рис. 3. Величина τ=3T приблизительно характеризует время отработки входного сигнала сервоприводом.
Рис. 3. Переходная функция сервопривода
Пример 5.Найдем реакцию изодромного звена с передаточной функцией , на входной сигнал X=cos(ωt), если k = 2, T = 1 c, w = 1 c – 1.
Изображение входного сигнала имеет вид , поэтому
.
Выполняем разложение на простейшие дроби
.
Постоянные A, B, C находим, приводя выражение в правой части к общему знаменателю и приравнивая коэффициенты при одинаковых степенях p в числителях правой и левой части: A = B = 1; С = – 1. Возвращаясь к оригиналам, получаем y(t)=e-t+cos t-sint.
Ввиду того, что реакция звена на импульсное или ступенчатое воздействие исчерпывающим образом характеризует линейное звено, в теории управления для них используются специальные термины.
Определение 2. Импульсной весовой характеристикой (весовой функцией) q(t) называется реакция звена на входной сигнал x(t) = d(t). Импульсной переходной характеристикой (переходной функцией) p(t) называется реакция звена на входной сигнал x(t) = 1(t).
Эти функции связаны соотношением , которое следует из равенства . Отсюда вытекает, что при компьютерном моделировании весовую характеристику блока с ПФ Q(p), т.е. реакцию на x(t)=d(t), можно получить, подавая единичный скачок на блок с ПФ p Q(p). Другой способ – использовать сигнал с входа выходного интегратора схемы.
2. ЗАДАНИЕ ПО РАБОТЕ И СОДЕРЖАНИЕ ОТЧЕТА
В первой части лабораторной работы исследуются схемы моделирования, показанные на рис. 4, а, б, в. Числовые значения параметра k приведены в таблице вариантов, начальные условия и значение с рассчитываются по формулам
Отчет по первой части работы должен содержать:
I. Схемы рис. 4 с заданными численными значениями y0,k,c,нарисованные применительно к SIMULINK (с указанием блока входного сигнала и осциллографов).
2. Вывод формул для выходных сигналов каждой из схем. Таблицы и графики этих сигналов, координаты точки экстремума функции z(t) и тангенс угла ее наклона в начале координат.
а) б) в)
Рис. 4. Исследуемые схемы моделирования
Во второй части лабораторной работы исследуется линейное звено первого порядка, которое описывается дифференциальным уравнением Параметры k, b, берутся из таблицы вариантов. В отчете требуется для заданных значений k и b найти теоретически выходной сигнал блока y(t), если входной сигнал имеет вид:
а) x(t) = 1(t), б) x(t) = e – t, в) x(t) = sin t, г) x(t) = d(t).
Отчет по второй части должен содержать:
1. Дифференциальное уравнение и передаточную функцию заданного блока.
2. Вывод формул y(t) для всех вариантов входного сигнала.
3. Таблицы и графики теоретических значений y(t) для всех случаев.
4. Схемы моделирования в пакете SIMULINK.
3. ПОРЯДОК ВЫПОЛНЕНИЯ РАБОТЫ
Первая часть.
1. С помощью пакета SIMULINK собрать схему рис. 4,а, установить коэффициенты усиления и начальные условия. Наблюдать выходные сигналы схемы с помощью осциллографа Scope. Зарегистрировать с помощью осциллографа момент пересечения графиков x(t) и y(t), сравнить его с теоретическим.
2. Собрать схему рис. 4,б. Для этого в предыдущей схеме (а) отключить входной сигнал и охватить каждый интегратор обратной связью. Наблюдать выходные сигналы интеграторов с помощью осциллографа, сравнить их с теоретическими.
3. Собрать схему рис. 4,в. Для этого взять сумматор, и усилитель с коэффициентом с и соединить их входы с выходами интеграторов из предыдущей схемы (б). Наблюдать осциллограмму сигнала z(t), сравнить теоретические и экспериментальные координаты точки экстремума.
Вторая часть.
1. Построить схему моделирования, содержащую генератор входного сигнала и блок с заданной передаточной функцией.
2. Выбрать параметры (численный метод, время моделирования) и выполнить моделирование. Наблюдать результат моделирования в виде графика.
3. Получить переходные функции звеньев второго порядка с передаточными функциями 1/(p2 + b), p/(p2 + b), 1/(p2 + ap + b), 1/(p2 – ap + b).
4. Выполнить те же пункты в пакете MATLAB, используя команды step, impulse, lsim, plot.
4. КОНТРОЛЬНЫЕ ВОПРОСЫ
1. Какие блоки, объекты и системы называются линейными? Являются ли линейными следующие блоки: усилитель; интегратор; апериодическое звено; усилитель, включенный последовательно с диодом; пассивная интегрирующая RC-цепочка?
2. Имеется интегратор нулевыми начальными условиями. Нарисовать вид выходного сигнала, если на вход интегратора подаются:
а) х = 1(t), б) x = sin t, в) x = соs t, г) x =et, д) x =е– t е) х = t, ж) х = t2.
3. Выполнить задание п. 2 для случая двух одинаковых последовательно включенных интеграторов.
4. Как подать выходной сигнал интегратора на вход осциллографа? Как изменить длительность развертки осциллографа? Как наблюдать одновременно два сигнала?
5. Найти передаточную функцию усилителя, интегратора, апериодического звена, двух последовательно соединенных интеграторов. Написать соответствующие дифференциальные уравнения.
6. Найти передаточную функцию интегратора, полагая x(t) = et, e – t, sin t, t.
7. Выполняя интегрирование, найти изображения по Лапласу сигналов et, e – t, e – t + e t, 1 – e – t.
8. Найти реакцию апериодического звена на сигналы из п. 7 и нарисовать соответствующие графики.