Главная страница
Навигация по странице:

  • Цель работы

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

  • Лр_1_Диф_ур_в_Simulink. Лабораторная работа на тему "Решение оду и систем оду в среде Simulink"


    Скачать 112.08 Kb.
    НазваниеЛабораторная работа на тему "Решение оду и систем оду в среде Simulink"
    Дата03.02.2021
    Размер112.08 Kb.
    Формат файлаdocx
    Имя файлаЛр_1_Диф_ур_в_Simulink.docx
    ТипЛабораторная работа
    #173551

     

    Лабораторная работа на тему "Решение ОДУ и систем ОДУ в среде Simulink"
    М.Г.Семененко,
    КФ МГТУ им.Н.Э.Баумана


    Цель работы: научиться составлять схемы решения систем обыкновенных дифференциальных уравнений (ОДУ) в среде Simulink пакета MatLab.
    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]

    Задание.

    1. Построить схемы решения рассмотренных задач в системе Simulink, получить графики решения. Сравнить с решением задач в MatLab с помощью функции ode45.

    2. Решить эти же задачи в MatLab, построить графики решения.








    написать администратору сайта