Материал: Методические указания к лабораторным работам №1–4 по курсам «Моделирование систем» и «Системы автоматизированного проектирования» для бакалавров. Разинкин К.А., Мединцев В.Г

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

Лабораторная работа №4 Решение обыкновенных дифференциальных уравнений и соду в среде simulink

Цель работы: научиться составлять схемы решения систем обыкновенных дифференциальных уравнений (ОДУ) в среде Simulink пакета MatLab

Основные теоретические сведения

Simulink предоставляет пользователям MATLAB мощное средство моделирования и исследования систем управления с обратной связью. Поскольку Simulink является инте­рактивным инструментом, эффективно использующим графический интерфейс, то луч­ший способ его освоить — это сразу начать с ним работать.

Начать работу с Simulink можно двумя способами: щелкнуть мышью на значке Simulink в панели инструментов MATLAB; ввести Simulink в командной строке на экране.

Оба эти способа проиллюстрированы на рис. 4.1.

Введите Simulink

в командной строке

Щелкните здесь, чтобы запустить Simulink

Рис. 4.1. Начало сеанса работы с Simulink

После запуска Simulink на рабочем столе должно появиться окно наподобие рис. 4.2. На рис. 4.3 изображен браузер главной библиотеки Simulink. Он показывает, какие библиотеки, структурированные в виде деревьев, установлены на компьютере.

Рис. 4.2. Первое окно, появляющееся после запуска Simulink

Сеанс работы в Simulink вы можете начать, открыв уже существующую модель или же создав новую модель. Последнее можно сделать двумя способами:

  • Щелкнув на кнопке New в панели инструментов броузера главной библиотеки (только в Windows).

  • Выбрав сначала New в раскрывающемся меню опции File в окне библиотеки, а затем выбрав Model.

Эти два способа создания новой модели проиллюстрированы на рис. 4.3. Окно новой системы, изображенное на рис. 4.4, появляется на рабочем столе, по умолчанию занимая всю его площадь. При необходимости вы можете изменить его размеры и переместить в нужное положение. Сразу же после создания окну новой системы присваивается имя Un­fitted, но вы можете изменить его с помощью команды Save as из меню File. В этом окне производится создание модели, ее редактирование и исследование. Сохранение модели автоматически создает файл (с расширением .mdl), содержащий всю информацию, необ­ходимую для открытия модели в следующих сеансах работы в Simulink. В конце каждого сеанса работы обязательно выбирайте команду SAVE из меню File с тем, чтобы все изме­нения модели были сохранены для последующей работы.

Создание новой модели

Открытие существующей модели

Рис. 4.3.Создание новой модели из браузера главной библиотеки (в Windows)

Simulink содержит стандартную библиотеку блоков, изображенную на рис. 4.2.

Она составлена из подблоков в соответствии с их функциональным назначением. Эти подблоки таковы:

  • Источники сигналов (Sources)

  • Средства регистрации (Sinks)

  • Элементы дискретных систем (Discrete)

  • Элементы непрерывных систем (Continuous)

  • Математические операции (Math)

  • Функции и таблицы (Functions & Tables)

  • Нелинейности (Nonlinear)

  • Сигналы и системы (Signals & Systems)

Рис. 4.4. Окно новой модели

Чтобы создать модель, вы должны взять и перенести нужные блоки из библиотеки на рабочий стол. В простом примере, который приводится ниже, вам надо скопировать блок, генерирующий синусоидальный сигнал (блок Sine Wave из библиотеки Sources), и блок индикации (блок Scope из библиотеки Sinks).

Вы можете получить доступ к блоку Sine Wave либо из броузера главной библиотеки (только в Windows), либо из окна библиотеки Sources (в UNIX или в Windows). Развернув браузер главной библиотеки, как показано на рис. 4.5, вы получите доступ к блоку Sine Wave. Для этого сначала войдите в Simulmk, щелкнув на его имени в браузере, затем щелкните в развернувшемся меню на Sources, после этого выберите блок Sine Wave и пе­ретащите его в окно новой модели. Копия блока будет установлена в том месте окна но­вой модели, где вы оставите его изображение. Аналогичным образом, чтобы скопировать блок Sine Wave из окна библиотеки Sources, откройте это окно (показанное на рис. 4.6 двойным щелчком мыши на значке Sources в окне библиотеки Simulmk (рис. 4.2).

Примечание: в Windows вы можете открыть окно библиотеки Simulink щелчком правой кноп­ки мыши на этом имени в браузере главной библиотеки, после чего надо щелкнуть на кнопке Open Library.

Библиотека

Simulink

Библиотека

Sourses

Блок Sine Wave

Рис. 4.5. Выбор источников сигнала: в браузере главной библиотеке и в окне блоков Sourse

Для того, чтобы создать простейшую систему содержащую генератор синусоидальных импульсов и осциллограф необходимо выбрать в дереве Simulink вкладку Sourses. В появившемся справа окне выбрать пикторгамму соответствующую генератору синусоидальных импульсов SineWave. Точно также с нажатием правой кнопки мыши выбираем Open Sinks Library для выбора осциллографа Scope. Для того, чтобы визуализировать сигнал выберем в главном меню Simulation и нажмем Start.

Рис. 4.6. Простая система, состоящая из источника сигнала Sine Wave и индикатора Scope

Вы можете наблюдать и редактировать параметры моделирования, выбрав из меню Simulation опцию Configuration Parameters.

Рис. 4.7

Параметры синусоидального сигнала (например, частоту) вы можете задать (а при необходимости и изменить), сделав двойной щелчок мышью на блоке Sine Wave в окне модели. Диалоговое окно примет вид, изображенный на рис. 4.7. На этом рисунке показа­но, что частота синусоиды установлена равной 0.05 рад/с.

Перед началом моделирования откройте индикатор двойным щелчком мыши на бло­ке Scope в окне модели. Далее выберите опцию Start из меню Simulation. График динамически изменяется по мере того, как блок Sine Wave ге­нерирует синусоидальный сигнал. Теперь вы закончили создание простой модели и провели первый эксперимент.

Теперь рассмотрим решение обыкновенных дифференциальных уравнений и СОДУ в среде SIMULINK

1. Решение оду первого порядка.

Основой для решения обыкновенных дифференциальных уравнений первого порядка является задача Коши:

с одной зависимой переменной y(x).

Пример.

Дано дифференциальное уравнение

x'(t) + 2x(t) = sin(t),

x(0) = 0.

После запуска системы MatLab нажмем кнопку Simulink, а затем в открывшемся окне кнопку Create a new Model. В открывшемся файле создадим схему решения уравнения, перетаскивая при нажатой левой кнопки мыши необходимые блоки из окна Simulink Library Brouser.

Для построения схемы решения уравнения в Simulink используется блок Integrator (класс Continuos). На его вход подается производная, а на выходе получают величину x. Блоки Sum (Сумматор) и Gain (Усилитель) (класс Math) необходимы для формирования значения x' в соотствии с ОДУ. Для получения сигнала sin(t) используется блок Sine Wave (класс Sources), в котором необходимо провести установки, соответствующие задаче, открыв блок двойным щелчком мыши или выбрав опцию Block Parameters при нажатой правой кнопке мыши. Полученное значение x(t) подается на вход блока Scope. При открытии данного блока появляется график решения. Установить масштабы осей, соответствующие полученному решению можно, нажав кнопку Autoscale.

Для проверки найденного решения в окне Command Window создадим М - файл для решения задачи (File ==> New ==> M-file). В открывшемся окне создадим функцию решения задачи, которую сохраним в текущей директории под именем f.m (указанное имя система предлагает по умолчанию).

После этого в командном окне наберем текст:

>> t=(0:0.1:2);

>> y=f(t);

>> plot(t,y)

>> grid on

После выполнения команд открывается окно с графиком функции. Очевидно, что два полученных графика идентичны.

2. Решение систем оду первого порядка.

Рассмотрим решение системы ОДУ первого порядка.

Пример.

Модифицированная задача Лотки - Вольтера.

С учетом самоограничения на рост популяции жертв

Зададим параметры задачи: α = 0.1; β = 0.05; γ = 0.03; δ = 0.2; ε = 0.15.

Блок - схема решения задачи в системе Simulink:

Раскрыв блок интегратора, зададим начальные значения: y1 = 2, y2 = 0.01.

После окончания моделирования, раскрывая блоки Scope и XY-Graph, можно увидеть графики изменения численности и фазовый портрет решения системы:

Создадим также в MatLab М - файл для задания правой части системы ОДУ:

function dy=vlm(t,y)

dy=zeros(2,1);

dy(1)=y(1)*(0.1-0.05*y(2)-0.03*y(1));

dy(2)=-y(2)*(0.2-0.15*y(1));

Для конкретного набора начальных значений систему можно решить, используя метод Рунге - Кутты 4-го порядка (встроенная функция ode45):

> [T, Y] = ode45('vlm',[0 164],[2 0.01]);

Параметры функции ode45: имя М - файла, диапазон изменения независимой переменной, начальные значения.

Для построения фазового портрета можно использовать функцию plot:

> plot(Y(:,1),Y(:,2));

>axis[0 4 0 4]

Источник: https://studfile.net/preview/16562814/