Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МОДЕЛИИРОВАНИЕ СИСТЕМ120410.doc
Скачиваний:
4
Добавлен:
05.09.2019
Размер:
583.17 Кб
Скачать

«Тюменский государственный нефтегазовый университет»

Институт кибернетики, информатики и связи

Кафедра кибернетических систем

Ковалёв П. И.

Методические указания к лабораторным работам по дисциплине «моделирование систем управления»

Направление 220400.62 – Управление в технических системах,

Форма обучения: очная, заочная

Квалификация (степень) бакалавр)

Тюмень 2011

ВВЕДЕНИЕ

ПАКЕТ MATLAB

Назначение и область применения пакета прикладных программ MATLAB. Пакет представляет пользователю проблемно-ориентированную инструментальную среду, которая позволяет автоматизировать математические вычисления. В первую очередь этот пакет предназначен для технических расчетов.

Запуск среды MATLAB. Среда MATLAB реализована в виде обычного оконного приложения, для её запуска достадочно дважды щёлкнуть левой кнопкой мыши по её значку на экране или выполнить операцию 'открыть' в её контекстном меню.

Интерфейс среды MATLAB. После запуска программы MATLAB на экране появляется главное окно среды; клиентская часть главного окна называется командным окном системы. Символ >> указывает командную строку.

Вычисление арифметических выражений. Простейшей командой является математическое выражение, состоящее из чисел и знаков математических операций +, -, *, /. Каждое такое выражение среда интерпретирует как команду вычислить его значение; это значение присваивается переменной ans (answer – ответ). Среда выполняет команду после того, как пользователь нажмет клавишу Enter. Пример:

>> 3/7

ans=

0,4286

среда MATLAB вывела округленный результат вычислений, оставив в нем лишь четыре десятичных разряда. Команда

>> format long

позволяет пользователю выводить результаты вычислений с максимальной точностью в течение сеанса работы; чтобы вернуться к сокращенному представлению чисел, следует выполнить команду

>> format short.

Пример:

>> format long

>> 3/7

ans=

0,428571…

>> format short.

>> 3/7

ans=

0,4286

Для обозначения операции возведения в степень используется символ ^ , он называется сиркомфлексом.

Пример:

>> 3^7

ans=

2187

>> 2^10

ans=

1024.

Точка с запятой после команды подавляет вывод на экран результатов этой команды:

>> a=5;

>> b=18;

>> a*b

ans=

90

Используйте точку с запятой для устранения вывода на экран лишней информации.

Переменные. Значение переменной ans можно использовать в выражениях командной строки, например:

>> 3/7

ans=

0,4286

>> 2* ans

ans=

0,8571

Операция присваивания, которая обозначается знаком равенства '=', позволяет пользователю создавать свои переменные и присваивать им значения выражений:

>> х=3/7

х=

0,4286

>> 2 * х

ans=

0,8571

Логические операции. Наряду с арифметическими операциями среда MATLAB выполняет операции сравнения, результаты которых обозначаются символами 1 (истина) и 0 (ложь):

отношения 'меньше' и 'больше'

>> 3 < 4

ans=

1

>> 3 > 4

ans=

0

отношение 'равняется'

>> 3 == 3

ans=

1

>> 1 == 3

ans=

0

отношение 'не равно'

>> 3~= 1

ans=

1

>> 3 ~= 3

ans=

0.

(значок '~' читается 'тильда'). Обратите внимание, что символ операции сравнения 'равняется', в отличие от символа операции присваивания, обозначается при помощи двух следующих друг за другом знаков '='. Если мы попытаемся использовать один знак '=', среда выдаёт сообщение об ошибке:

>> 3 = 1

??? 3 = 1

Error: The expression to the left of the equals sign is not a valid target for an assignment (Ошибка: Выражение в левой части символа равенства не подходит для присваивания).

Нестрогие неравенства: <= (меньше или равно), >= (больше или равно).

Операция конъюнкции обозначается символом 'амперсанд' (&), вертикальная палочка (|) обозначакт дизъюнкцию, значок 'тильда' (~) - отрицание:

>> ( 3>4 ) & ( 2 > 1)

ans=

0

>> ( 3>4 ) | ( 2 > 1)

ans=

1

>> ~ ( 3>4 )

ans=

0

Операции с целыми неотрицательными числами. "Основным типом данных, с которым производится вычисление в среде MATLAB являются конечные десятичные дроби, приближающие с заданной точностью произвольные вещественные числа. Последние в общем случае представимы лишь в виде бесконечных десятичных дробей. Можно сказать, что MATLAB работает с вещественными числами приближённо...

Если операнды и результаты вычислений являются целыми, то, хотя они и представляются в памяти машины так же, как и дробные числа, визуально в командном окне MATLAB они показываются в виде целых чисел" [Мартынов Н.Н., Иванов А.П. MATLAB 5.x. Вычисления, визуализация, программирование.-М.: КУДИЦ-ОБРАЗ, 2000.- 336с.; стр. 9-10]

Примеры.

>> 4+5

ans=

9

>>a=7;

a=

7

>>b=6

b=

6

>>a*b

ans=

42

>>c=ans-3

c=

39

Остаток от деления одного натурального числа на другое вычисляется с помощью операции mod:

>>mod(17,3)

ans=

2.

Если остаток от деления равен нулю, то частное отображается на экране в виде целрго числа:

>>a=54;

>>b=18;

>>a/b

ans=

3.

Для реализации операции целочисленного деления используется функция floor, которая отбрасывает дробную часть десятичной дроби:

>>a = 234;

>>b = 23;

>>floor(a / b)

ans=

10.

Для завершения работы в среде MATLAB наберите в командной строке команду exit (выход) или щёлкните левой кнопкой мыши по системной кнопке 'закрыть' окна среды MATLAB.

Мы будем работать с текстовым редактором операционной системы Windows, который называется блокнот. Текстовый процессор Word для этой цели не подходит так как документ, созданный в среде Word содержит служебную информацию, которую среда MATLAB не понимает. Пользователь привык запускать блокнот, щелкая правой кнопкой мыши по экрану и выбирая в появившемся меню пункт Создать/Текстовый документ.

Можно запустить блокнот с помощью команды

Рабочий стол/Пуск/программы/Стандартные/ Блокнот

или в окне сеанса MS DOS командой

notepad.exe имя_файла.

Пакет MATLAB требует значительного количества вычислительных и информационных ресурсов, так что его обычно устанавливают на сервере. Пользователь получает доступ к нему с машины-клиента, как правило, это персональная ЭВМ. Машинное время сервера стоит очень дорого, поэтому работа пользователя в интерактивном режиме малоэффективна. Команды среды MATLAB записывают в специальный текстовый файл, который должен иметь расширение m. Такой файл называется командным файлом, сценарием или m-файлом. Он должен находиться в активной директории среды MATLAB. Имя активной директории выводит на экран команда cd без аргументов, которая запускается в командной строке среды MATLAB.

Как правило, администратор системы закрывает доступ пользователей к большинству файлов жёсткого диска, оставляя им для работы лишь несколько директорий, в которых можно выполнять операции с файлами и поддиректориями.

УЗНАЙТЕ У ПРЕПОДАВАТЕЛЯ ИМЯ ТОЙ ДИРЕКТОРИИ, В КОТОРОЙ СТУДЕНТАМ ВАШЕЙ ГРУППЫ РАЗРЕШАЕТСЯ РАБОТАТЬ С M-ФАЙЛАМИ, ЗАПУСТИТЕ ЭМУЛЯТОР КОМАНДНОЙ СТРОКИ И СОЗДАЙТЕ В НЕЙ ПОДДИРЕКТОРИЮ, НАЗВАНИЕ КОТОРОЙ СОВПАДАЕТ С ВАШЕЙ ФАМИЛИЕЙ, НАПРИМЕР, IVANOV. ЭТО БУДЕТ ВАША ЛИЧНАЯ ДИРЕКТОРИЯ. ПЕРЕХОД В ДРУГИЕ ДИРЕКТОРИИ ПРИВЕДЁТ К СНИЖЕНИЮ ОЦЕНКИ ЗА ЛАБОРАТОРНУЮ РАБОТУ!!!

Командные файлы среды MATLAB (m-файлы) имеют расширение 'm'. Мы будем создавать их в текстовом неформатирующем редакторе notepad. Создайте файл myfile.m, содержащий следующие команды:

format long

3/7

format short

3/7

Сохраните файл myfile.m в папке, которую укажет преподаватель. После этого сделайте эту папку активной директорией среды MATLAB.

Например, команда среды MATLAB

>> cd

выводит на экран

C:\Documents and Settings\MATLAB\work,

а полное имя папки, указанной преподавателем – D:\mygroup\mydir. Наберите в командной строке среды MATLAB команду

cd D:\mygroup\mydir.

Если активна директория C:\Documents and Settings\MATLAB\work, а полное имя папки, указанной преподавателем - C:\Documents and settings\users\mygroup\Ivanov, то наберите в командной строке среды MATLAB команду

cd ..\..\users\mygroup\Ivanov.

Можно считать, что, команда cd в нашем случае выполняет переход в родительскую директорию директории work - это директория MATLAB, затем переходит в её родительскую директорию ( Documents and Settings), после чего выполняется переход последовательно в директории users, mygroup, Ivanov. На самом деле никаких переходов система не делает - если директория C:\Documents and Settings\MATLAB\work является активной, то конструкция

..\..\users\mygroup\Ivanov

представляет собой синоним имени C:\Documents and settings\users\mygroup\Ivanov. При другой конфигурации дерева директорий следует изменить аргумент команды cd. Мы не рекомендуем использовать в качестве аргумента команды cd полные пути директорий, включающие имена, состоящие из нескольких слов, поскольку среда может неверно их интерпретировать. Если Вы сделали ошибку в имени директории, то в командной строке среды MATLAB появится сообщение об ошибке. Например, пользователь набирает имя несуществующей директории:

>> cd abcd

??? Error using ==> cd

cannot CD to abcd ( Name is nonexistent or not a directory)

После смены активной директории всегда проверяйте, корректность выполнения команды. Наберите в командной строке среды MATLAB команду cd без аргументов - на экране должно появиться имя новой активной директории. Для того, чтобы запустить m-файл, надо набрать его имя ( без расширения m) в командной строке среды MATLAB:

>> myfile

Если Вы всё сделали правильно, то на экране появится десятичное представление дроби 3/7 с разной степенью точности.

ЗАДАНИЯ К ЛАБОРАТОРНЫМ РАБОТАМ И ПРИМЕРЫ ОФОРМЛЕНИЯ ОТЧЁТОВ О ВЫПОЛНЕННЫХ ЛАБОРАТОРНЫХ РАБОТАХ

Все имена файлов и директорий (папок), приведённые в примерах отчётов о выполненных лабораторных работах, следует заменять теми именами, которые укажет преподаватель.

МИНИСТЕРСТВО ОБРАЗОВАНИЯ и НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ

ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО СПЕЦИАЛЬНОГО ОБРАЗОВАНИЯ

«тюменский государственный нефтегазовый университет»

ИНСТИТУТ КИБЕРНЕТИКИ ИНФОРМАТИКИ И СВЯЗИ

Кафедра кибернетических систем

Направление 220200 Автоматизация и управление, специальность 220201 Управление и информатика в технических системах

ОТЧЁТ О ВЫПОЛНЕННОЙ ЛАБОРАТОРНОЙ РАБОТЕ №1

ПО ДИСЦИПЛИНЕ "МОДЕЛИРОВАНИЕ СИСТЕМ"

ТЕМА. РЕШЕНИЕ ЛИНЕЙНЫХ, АЛГЕБРАИЧЕСКИХ И ТРАНСЦЕНДЕНТНЫХ УРАВНЕНИЙ В СРЕДЕ MATLAB

Выполнил Иванов А. Б., группа ....

___________

Проверил Ковалёв П. И.

Тюмень 2012

Цель лабораторной работы №1.

Овладение навыками решения линейных, алгебраических и трансцендентных уравнений в среде MATLAB.

Задание.

    1. Составить и решить систему линейных уравнений среде MATLAB.

    2. Составить и решить квадратное уравнение в среде MATLAB.

    3. Составить и решить кубическое уравнение в среде MATLAB.

    4. Составить и решить трансцендентное уравнение в среде MATLAB.

РЕШЕНИЕ СИСТЕМЫ ЛИНЕЙНЫХ УРАВНЕНИЙ В СРЕДЕ MATLAB

Решение системы линейных уравнений с невырожденной матрицей системы в среде MATLAB

    1. Пример. Чтобы решить систему 3-х линейных уравнений с тремя неизвестными:

2 x + 4 y + 5 z = 4

4 x + 6 y + 8 z = 9

7 x + y + 6 z = 6

введём в командной строке среды MATLAB следующие команды:

>> A = [2, 4, 5; 4, 6, 8; 7, 1, 6]

(переменной A присвоено значение матрицы системы)

>> B = [4; 9; 6]

(переменой B присвоено значение столбца свободных членов)

>> X = A \ B

(команда вычисляет столбец неизвестных):

>> A = [2, 4, 5; 4, 6, 8; 7, 1, 6]

A =

2 4 5

4 6 8

7 1 6

>> B = [4; 9; 6]

B =

4

9

6

>> X = A \ B

X =

7.8333

9.1667

-9.6667

    1. Обратите внимание на то, что в матрице системы элементы одной строки отделяются друг от друга запятыми, тогда как элементы разных строк отделяются друг от друга точкой с запятой; элементы столбца свободных членов отделяются друг от друга точками с запятой.

Проверка

В командном окне среды MATLAB вводим команду

>> A * X - B

На экране должен появиться появляется столбец, состоящий из нулей.:

ans =

0

0

0

Задание

Составьте и решите систему линейных уравнений. Количество уравнений указывает преподаватель.

Решение системы линейных уравнений с вырожденной матрицей системы в среде MATLAB

Квадратная матрица называется вырожденной , если её определитель равен нулю. Если две строки квадратной матрицы совпадают или их соответствующие элементы пропорциональны, то матрица вырождена.

Задание. Составьте систему n линейных уравнений с n неизвестными, матрица которой вырождена, причём система имеет решение <значение n указывает преподаватель>. Попытайтесь решить её в среде MATLAB. Включите в отчёт описание поведения среды MATLAB.

Задание. Составьте систему n линейных уравнений с n неизвестными, матрица которой вырождена, причём система не имеет решений <значение n указывает преподаватель>. Попытайтесь решить её в среде MATLAB. Включите в отчёт описание поведение среды MATLAB.

Пример системы трёх линейных уравнений, множество решений которой бесконечно:

x + 2 y + 3 z = 4

x + 2 y + 3 z = 4

5 x + 6 y + 7 z = 8

Пример системы трёх линейных уравнений, которая не имеет решений:

x + 2 y + 3 z = 4

x + 2 y + 3 z = 14

5 x + 6 y + 7 z = 8

Задание. Приведите пример системы, математическая модель которой представляет собой систему линейных алгебраических уравнений. Исследуйте эту модель аналитическими методами. Решите систему уравнений в среде MATLAB.

РЕШЕНИЕ КВАДРАТНОГО УРАВНЕНИЯ В СРЕДЕ MATLAB

Пример. Требуется решить квадратное уравнение x2 – 5 x + 6 = 0.

Решение. Запускаем среду MATLAB. В командной строке вызываем функцию roots:

>> roots([ 1, -5, 6 ])

Аргументом функции roots служит массив-строка, образованный коэффициентами многочлена.

На экране появляется ответ:

ans=

2

3

Задание. Составьте и решите квадратные уравнения:

с двумя отрицательными корнями;

с двумя корнями разных знаков;

с совпадающими положительными корнями;

с совпадающими отрицательными корнями;

с комплексными корнями.

Напомним, что если x1, x2 – корни уравнения x2 + p x + q = 0, то x1+ x2 = - p x1 x2 = q (теорема Виета). Пример квадратного уравнения с мнимыми корнями: x2 + 1 = 0.

Задание. Приведите пример системы, математическая модель которой представляет собой квадратное уравнение. Исследуйте эту модель аналитическими методами. Решите уравнение в среде MATLAB.

РЕШЕНИЕ КУБИЧЕСКОГО УРАВНЕНИЯ В СРЕДЕ MATLAB

Задание. Составьте и решите несколько кубических уравнений.

Задание. Приведите пример системы, математическая модель которой представляет собой ккубическое уравнение. Исследуйте эту модель аналитическими методами. Решите уравнение в среде MATLAB.

РЕШЕНИЕ ТРАНСЦЕНДЕНТНОГО УРАВНЕНИЯ В СРЕДЕ MATLAB

Пример. Требуется решить уравнение exp ( x ) = 2

Решение. Преобразуем уравнение так, чтобы в его правой части стоял 0: exp ( x ) - 2 = 0. Запускаем среду MATLAB. В командной строке вызываем функцию fzero:

>> fzero(@(x) exp ( x ) - 2, 0)

Первый аргумент функции fzero – описывает функцию, стящую в левой части уравнения и назыает её аргумент. Второй аргумент – начальное приближение. Метод решения уравнения похож на известный метод касательных, решение представляет собой результат последовательности итераций.

На экране появляется ответ:

ans=

0.6931

(это приближённое значение натурального логарифма числа 2). Выбирая в качестве начальных приближений числа 1, 5, 10, 100 мы получим тот же ответ. Если ввести

>> fzero(@(x) exp ( x ) - 2, 1000)

то среда сообщает:

Error using ==> fzero

Function value at starting guess must be finite and real:

Ошибка в ходе использования fzero. Значение функции в точкее начального приближения должно быть конечным и вещественным. Среда воспринимает значение exp (1000) как бесконечное.

Задание. Составьте и решите с помощью функции fzero несколько квадратных уравнений. Опишите поведение среды при различных значениях начального приближения.

Задание Оцените наименьшее значение числа k для которого уравнение exp ( x ) = k x. имеет решение. Объясните вашу стратегию поиска числа k.

Если известно, что значения функции f ( x ) в точках a, b имеют разные знаки, то корень уравнения f ( x ) = 0, лежащий между a и b находят с помощью вызова функции fzero, вторым аргументом которой служит массив [ a, b].

Задание. Найдите корни нескольких трансцендентных функций, которые принимают значения противоположных знаков на концах числовых интервалов.

Задание. Приведите пример системы, математическая модель которой представляет собой трансцендентное уравнение. Исследуйте эту модель аналитическими методами. Решите уравнение в среде MATLAB.

МИНИСТЕРСТВО ОБРАЗОВАНИЯ и НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ

ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО СПЕЦИАЛЬНОГО ОБРАЗОВАНИЯ

«тюменский государственный нефтегазовый университет»

ИНСТИТУТ КИБЕРНЕТИКИ ИНФОРМАТИКИ И СВЯЗИ

Кафедра кибернетических систем

Специальность 220201.65 Управление и информатика в технических системах (направление 220200 Автоматизация и управление)

ОТЧЁТ О ВЫПОЛНЕННОЙ ЛАБОРАТОРНОЙ РАБОТЕ №2

ПО ДИСЦИПЛИНЕ "МОДЕЛИРОВАНИЕ СИСТЕМ"

ТЕМА. МОДЕЛИРОВАНИЕ ДЕТЕРМИНИРОВАННЫХ СИСТЕМ С ПОМОЩЬЮ ОБЫКНОВЕННЫХ ДИФФЕРЕНЦИАЛЬНЫХ УРАВНЕНИЙ В СРЕДЕ MATLAB

Выполнил Иванов А. Б., группа ....

___________

Проверил Ковалёв П. И.

Тюмень 2012

Цель лабораторной работы №2.

Овладение навыками исследования детерминированных систем с помощью обыкновенных дифференциальных уравнений в среде MATLAB.

  1. Задание.

    1. Частица (материальная точка) падает вертикально вниз в безвоздушном пространстве под действием постоянной силы тяжести. Постройте и исследуйте математическую модель системы.

    1. Шарик двигается вдоль вертикальной оси Oz под действием постоянной силы тяжести, сила сопротивления воздуха пропорциональна скорости шарика. Постройте и исследуйте математическую модель системы.

    1. Шарик двигается в воде вдоль вертикальной оси Oz под действием постоянной силы тяжести, сила сопротивления воды пропорциональна скорости шарика. Постройте и исследуйте математическую модель системы.

    1. Электрическая цепь состоит из источника постоянной электродвижущей силы, катушки (без сердечника), сопротивления и выключателя, которые соединены последовательно. В начальный момент времени включают ток. Постройте и исследуйте математическую модель системы.

    2. Электрическая цепь состоит из источника постоянной электродвижущей силы, конденсатора, сопротивления и выключателя, которые соединены последовательно. В начальный момент времени включают ток. Постройте и исследуйте математическую модель системы.

    1. Электрическая цепь состоит из источника электродвижущей силы, изменяющейся по синусоидальному закону, катушки (без сердечника), сопротивления и выключателя, которые соединены последовательно. В начальный момент времени включают ток. Постройте и исследуйте математическую модель системы.

    2. Электрическая цепь состоит из источника электродвижущей силы, изменяющейся по синусоидальному закону, конденсатора, сопротивления и выключателя, которые соединены последовательно. В начальный момент времени включают ток. Постройте и исследуйте математическую модель системы.

    1. Частица (материальная точка) двигается без трения вдоль горизонтальной оси Ox под действием возвращающей силы, пропорциональной расстоянию частицы от начала координат. Постройте и исследуйте математическую модель системы.

    1. Электрическая цепь состоит из источника постоянной электродвижущей силы, катушки (без сердечника), конденсатора, сопротивления и выключателя, которые соединены последовательно. В начальный момент времени включают ток. Постройте и исследуйте математическую модель системы.

    1. Электрическая цепь состоит из источника электродвижущей силы, изменяющейся по синусоидальному закону, катушки (без сердечника), конденсатора, сопротивления и выключателя, которые соединены последовательно. В начальный момент времени включают ток. Постройте и исследуйте математическую модель системы.

Исследуйте протекание процесса, который описывается нелинейным уравнением Ван-дер-Поля

d2y / dt2 = - y + k ( 1 – y2 ) dy / dt

y = y ( t ) - функция, которая описывает изменение состояния системы, k – параметр.

Исследование падения частицы под действием постоянной силы тяжести в безвоздушном пространстве.

Задание

Частица (материальная точка) падает вертикально вниз в безвоздушном пространстве под действием постоянной силы тяжести. Постройте и исследуйте математическую модель системы.

Решение задачи

Система состоит из частицы, падающей в безвоздушном пространстве. На неё действует сила притяжения Земли.

Выберем систему координат так, чтобы плоскость Oxy совпадала с поверхностью Земли, ось Oz была направлена вертикально вверх.

Состояние системы в момент времени t описывается её скоростью v ( t ).

Параметры системы:

m – масса частицы;

    1. g – ускорение свободного падения.

    2. Начальное значение: скорость частицы в момент времени t = 0 равнаv0.

    3. В силу второго закона Ньютона произведение массы частицы на её ускорение совпадает с равнодействующей всех сил, приложенных к частице, сила притяжения Земли пропорциональна массе частицы, коэффициент пропорциональности равен ускорению свободного падения:

    4. m dv / dt = - m g (1)

    1. (знак 'минус' в правой части указывает, что сила тяжести направлена вниз). Преобразуем уравнение (1) в нормальную форму:

dv / dt = - g (2)

Примечание. Нормальная форма дифференциального уравнения первого порядка имеет вид: dy / dt = f ( t, y ), где y = y ( t ) - неизвестная функция аргумента t.

Дифференциальное уравнение (2) вместе с начальным условием v ( 0 ) = v0 образует задачу Коши:

dv / dt = - g

v ( 0 ) = v0 (3)

    1. Решение задачи Коши в среде MATLAB.

    2. Присвоим параметрам и начальным значениям, входящим в уравнения и начальные условия, следующие числовые значения:

    3. >> g = 9.82 % м/с2

    4. >> v0 = 1 % м/с

    5. Примечание. Знак '%' отделяет команду от комментария.

    6. Для решения задачи Коши вызовем в командной строке среды MATLAB функцию ode45:

    7. >> ode45 (@(t, v) - g, [ 0, 20 ], v0)

    1. Первый аргумент функции ode45 задаёт функцию, стоящую в правой части дифференциального уравнениия ( f ( t, v ) = - g ) и указывает её аргументы – t и v. В нашем случае независимая переменная t и неизвестная функция v не входят явно в правую часть дифференциального уравнения. оставить и решить систему 3-х линейных уравнений среде MATLAB. Второй аргумент функции ode45 задаёт интервал, на котором среда должна искать значения неизвестной функции, третий аргумент – значение неизвестной функции в левом конце интервала.

На экране должен появиться график изменения скорости частицы со временем.

Решите задачу, изменяя параметры системы и начальное условие.

Вывод

Скорость частицы, двигающейся вдоль вертикальной оси в безвоздушном пространстве, с течением времени линейно убывает.

Исследование движения шарика, двигающегося вдоль вертикальной оси под действием постоянной силы тяжести.

    1. Задание. Шарик двигается вдоль вертикальной оси Oz под действием постоянной силы тяжести, сила сопротивления воздуха пропорциональна скорости шарика. Постройте и исследуйте математическую модель системы.

    2. Силу сопротивления воздуха вычисляем по формуле Стокса:

    1. F = - 6 π η r v,

где:

π – число пи, в среде MATLAB оно обозначается символом pi;

η – коэффициент внутреннего трения (вязкости) среды;

r – радиус шарика;

    1. v – скорость шарика;

    2. знак минус указывает, что сила сопротивления среды направлена противоположно скорости шарика.

Коэффициент вязкости воздуха составляет 17.2 · 10-6 Па · с.

    1. Масса шарика равна 4 π r3 ρ / 3, где ρ – плотность материала, из которого изготовлен шарик. Плотность берёзы составляет 700 кг/м3, плотность алюминия - 2700 кг/м3, плотность стали - 7800 кг/м3.

    2. Исследование движения шарика, двигающегося в воде вдоль вертикальной оси под действием постоянной силы тяжести

    3. Задание. Шарик двигается в воде вдоль вертикальной оси Oz под действием постоянной силы тяжести, сила сопротивления воды пропорциональна скорости шарика. Постройте и исследуйте математическую модель системы.

Коэффициент вязкости воды равен 0.00105 Па · с.

    1. На шарик действует сила Архимеда, выталкивающая его из воды, она равна 4 π r3 ρ1 g / 3, g – ускорение свободного падения, ρ1 - плотность воды, ρ1 = 1000 кг/м3.

    2. Исследование изменения величины тока в электрической цепи, состоящей из источника постоянной электродвижущей силы, катушки (без сердечника), сопротивления и выключателя, которые соединены последовательно

    1. Задание. Электрическая цепь состоит из источника постоянной электродвижущей силы, катушки (без сердечника), сопротивления и выключателя, которые соединены последовательно. В начальный момент времени включают ток. Постройте и исследуйте математическую модель системы.

    2. Компонентами системы являются источник постоянной электродвижущей силы, катушка (без сердечника), сопротивление и выключатель, Каждый из этих приборов имеет два контакта, в узле 1 соединяются контакт источника постоянной электродвижущей силы и контакт катушки, в узле 2 соединяются контакт катушки и контакт сопротивления, в узле 3 соединяются контакт сопротивления и контакт выключателя, в узле 4 контакт выключателя соединяется с контактом источника ЭДС. В силу первого правила Кирхгофа величина тока, втекающего в узел, равна величине тока, вытекающего из узла, следовательно, через каждый компонент цепи в момент времени t течёт ток одной и той же величины i ( t ). Величина i ( t )характеризует состояние системы в момент времени t.

    3. Параметры системы:

    4. E - величина источника ЭДС;

    5. L – индуктивность катушки;

    6. R – величина сопротивления.

В силу второго правила Кирхгофа при обходе замкнутого контура цепи алгебраическая сумма падений напряжения равна алгебраической сумме величин источников ЭДС. Падением напряжения на приборе называется произведение силы тока, проходящего через прибор, на сопротивление прибора, взятое со знаком плюс, если направление тока совпадает с направлением обхода, и со знаком минус, если эти направления противоположны. Величина источника ЭДС берётся со знаком плюс, если она повышает потенциал цепи в направлении обхода, и со знаком минус, если она понижает этот потенциал. В катушке возникает ЭДС тогда, когда проходящий через неё ток изменяется, она препятствует этому изменению:

Eкатушки = - L di / dt

Таким образом, дифференциальное уравнение имеет такой вид:

R i = EL di / dt.

Удельное сопротивление меди равно 1,75 * 10-6 Ом см, алюминия – 2,8 * 10-6 Ом см вольфрама – 5,5 * 10-6 Ом см. Индуктивность двухпроводной линии длиной l

L = l μ0 μ / π ln ( a / r )

r – радиус провода, a – расстояние между осями проводов, μ0 - магнитная постоянная, μ0 = 1,26 * 10-6 Гн/м, μ - относительная магнитная проницаемость среды, относительная магнитная проницаемость вакуума арна 1.

    1. Исследование изменения величины тока в электрической цепи, состоящей из источника постоянной электродвижущей силы, конденсатора, сопротивления и выключателя, которые соединены последовательно

    1. Задание. Электрическая цепь состоит из источника постоянной электродвижущей силы, конденсатора, сопротивления и выключателя, которые соединены последовательно. В начальный момент времени включают ток. Постройте и исследуйте математическую модель системы.

Конденсатор является источником ЭДС, она вычисляется по формуле:

    1. Eконденсатора = - q / C,

    2. где q = q ( t ) – заряд, накопленный конденсатором к моменту времени t. Таким образом, уравнение выглядит так:

    3. R i = Eq / C,

    4. в нём две неизвестные функции: сила тока i и заряд q. Для того, чтобы получить уравнение с одним неизвестным,выражаем силу тока через заряд:

    5. i = dq / dt.

Ёмкость конденсатора C находим по формуле

C = ε0 ε S / d,

    1. ε0 – электрическая постоянная, она равна 8.85 ·10-12 Ф/м, ε – диэлектрическая проницаемость, для вакуума и воздуха ε = 1, диэлектрическая проницаемость стекла может принимать значения от 4 до 10, S – площадь (меньшей) пластины конденсатора, d – расстояние между пластинами.

    2. Задание. Построить график изменения силы тока в цепи.

    3. Набираем в командном окне следующую команду:

>> [ T, q ] = ode45 (@( t, q ) ( E – q / C ) / R, [ 0, 20 ], 0 );

Она создаёт два числовых массива, в массиве T содержатся значения моментов времени, а в массиве q – соответствующие значения заряда конденсатора.

На диске D: создаём рабочую папку MYDIR (ВСЕ ИМЕНА ФАЙЛОВ И ПАПОК НАЗЫВАЕТ ПРЕПОДАВАТЕЛЬ). Чтобы сделать эту папку рабочей папкой среды MATLAB, в командой строке среды MATLAB вводим команду

>> cd D:\MYDIR.

В рабочей папке создаём текстовый файл myfile.m (с расширением «m»). ИСПОЛЬЗУЙТЕ ДЛЯ ЭТОГО НЕФОРМАТИРУЮЩИЙ РЕДАКТОР NOTEPAD. В файле myfile.m записываем следующие команды:

n = length ( T ) % в переменную n записываем количество элементов в массиве T

for k = 1 : 1 : n

i ( k ) = ( E – q / C ) / R

end

Элемент i ( k ) массива i содержит значение силы тока в момент времени t ( k ).

Для того, чтобы вывести на экран график зависимости силы тока в электрической цепи от времени, набираем команду:

>> plot ( T, i )

    1. Если мы хотим на той же схеме представить график зависимости заряда конденсатора от времени, то вводим команды:

>> hold on

>> plot ( T, q )

    1. Исследование изменения величины тока в электрической цепи, состоящей из источника электродвижущей силы, изменяющейся по синусоидальному закону, катушки (без сердечника), сопротивления и выключателя, которые соединены последовательно

    2. Задание. Электрическая цепь состоит из источника электродвижущей силы, изменяющейся по синусоидальному закону, катушки (без сердечника), сопротивления и выключателя, которые соединены последовательно. В начальный момент времени включают ток. Постройте и исследуйте математическую модель системы.

Величина источника ЭДС в произвольный момент времени t равна A sin ( 2 π n t + φ ), где A – амплитуда, а n – частота ЭДС, φ - начальная фаза. В электрической сети частота ЭДС составляет 50 с-1, амплитуда A в корень квадратный из двух раз больше эффективного напряжения (220 В).

    1. Исследование изменения величины тока в электрической цепи, состоящей из источника электродвижущей силы, изменяющейся по синусоидальному закону, конденсатора, сопротивления и выключателя, которые соединены последовательно

    1. Задание. Электрическая цепь состоит из источника электродвижущей силы, изменяющейся по синусоидальному закону, конденсатора, сопротивления и выключателя, которые соединены последовательно. В начальный момент времени включают ток. Постройте и исследуйте математическую модель системы.

Исследование движения частицы, которая двигается под действием возвращающей силы (гармонического осциллятора)

    1. Задание. Частица (материальная точка) двигается без трения вдоль горизонтальной оси Ox под действием возвращающей силы, пропорциональной расстоянию частицы от начала координат. Постройте и исследуйте математическую модель системы.

Состояние системы в момент времени t описывается её абсциссой x = x ( t ), величина действующей на неё возвращающей силы равна c x, c – числовой коэффициент. В силу второго закона Ньютона

m d2 x / dt2 = - c x

(знак минус указывает, что возвращающая сила направлена от частицы к началу координат). Чтобы преобразовать это уравнение в нормальную форму используем переменные x1, x2:

    1. x1,будет обозначать абсциссу частицы, а x2 – её скорость. Уравнение движения частицы превращается в систему уравнений:

dx1 / dt = x2

    1. dx2 / dt = - c x1 / m.

Правую часть системы уравнений можно представить в виде вектора-столбца. Вызываем функцию ode45:

>> ode45 (@( t, x ) [ x ( 2 ); - c x ( 1 ) / m ], [ 0, 20 ], [ x0, v0 ])

Начальное условие для дифференциального уравнения второго порядка включает два значения: начальной координаты и начальной скорости частицы. После выполнения команды на экране появляется окно, в котором графики координаты и скорости совмещены на одной схеме. Чтобы вывести отдельно график координаты надо выполнить следующие команды:

>> [ T, x ] = ode45 (@( t, x ) [ x ( 2 ); - c x ( 1 ) / m ], [ 0, 20 ], [ x0, v0 ]);

>> plot ( T, x ( : , 1 ))

    1. график скорости строит следующая команда:

>> plot ( T, x ( : , 2 ))

    1. Задание. Электрическая цепь состоит из источника постоянной электродвижущей силы, катушки (без сердечника), конденсатора, сопротивления и выключателя, которые соединены последовательно. В начальный момент времени включают ток. Постройте и исследуйте математическую модель системы.

    1. Задание. Электрическая цепь состоит из источника электродвижущей силы, изменяющейся по синусоидальному закону, катушки (без сердечника), конденсатора, сопротивления и выключателя, которые соединены последовательно. В начальный момент времени включают ток. Постройте и исследуйте математическую модель системы.

Задание. Исследуйте протекание процесса, который описывается нелинейным уравнением Ван-дер-Поля

d2y / dt2 = - y + k ( 1 – y2 ) dy / dt

    1. y = y ( t ) - функция, которая описывает изменение состояния системы, k – параметр.

    2. Определите при каких значениях параметра k решение уравнения Ван-дер-Поля является периодическим. Для решения уравнения Ван-дер-Поля лучше воспользоваться функцией ode15s.

МИНИСТЕРСТВО ОБРАЗОВАНИЯ и НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ

ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО СПЕЦИАЛЬНОГО ОБРАЗОВАНИЯ

«тюменский государственный нефтегазовый университет»

ИНСТИТУТ КИБЕРНЕТИКИ ИНФОРМАТИКИ И СВЯЗИ

Кафедра кибернетических систем

Направление 220200 Автоматизация и управление, специальность 220201 Управление и информатика в технических системах

ОТЧЁТ О ВЫПОЛНЕННОЙ ЛАБОРАТОРНОЙ РАБОТЕ №3

ПО ДИСЦИПЛИНЕ "МОДЕЛИРОВАНИЕ СИСТЕМ"

ТЕМА. ИМИТАЦИОННОЕ МОДЕЛИРОВАНИЕ ДЕТЕРМИНИРОВАННЫХ СИСТЕМ

Выполнил Иванов А. Б., группа ....

___________

Проверил Ковалёв П. И.

Тюмень 2012

Цель лабораторной работы №3.

Овладение навыками построения и исследования имитационных моделей детерминированных процессов в среде MATLAB.

МОДЕЛИРОВАНИЕ НЕПРЕРЫВНЫХ ДЕТЕРМИНИРОВАННЫХ ПРОЦЕССОВ

    1. Задание 1.

    2. Общее описание системы

    3. В начальный момент времени в резервуаре было a кубических метров жидкости. В момент времени b включили насос, который стал выкачивать из резервуара c кубических метров жидкости в секунду. Когда в резервуаре не осталось жидкости, насос выключили.

    4. Задача

    5. Составьте и исследуйте компьютерную модель, имитирующую процесс изменения объёма жидкости в резервуаре в течение промежутка времени [ 0, d ]; a, b, c, d – положительные вещественные числа.

Параметр системы:

q – объём жидкости, который насос выкачивает из резервуара за единицу времени, q = c;

Выделенные моменты времени:

T1 – начало наблюдений, T1 = 0;

T2 – момент включения насоса, T2 = b;

T3 – момент выключения насоса;

T4 - момент завершения наблюдений, T4 = d.

Начальное условие:

объём v0 жидкости в резервуаре в начальный момент времени равен a.

    1. Величина, характеризующая состояние системы:

    2. v ( t ) - объём жидкости в резервуаре в момент времени t, 0 <= t <= T4 .

    1. Описание имитационной модели

    2. Объём жидкости в резервуаре фиксируется с интервалом времени h с в моменты t1, t2,..., t1 = T1 = 0, tk+1 - tk = h, tk = ( k – 1 ) h, k = 1, 2,... Значения этих моментов времени программа помещает в массив Time. Элементу с индексом k массива Vol она присваивает значение v ( tk ) объёма жидкости в резервуаре в момент времени tk : v ( tk+1 ) = v ( tk ) - q h (в течение промежутка времени h насос выкачает из резервуара q h кубических метров жидкости). Переменная NotEmpty является флагом, она характеризует состояние резервуара: сначала её значение равно 1, когда в резервуаре не остаётся жидкости, она обращается в ноль (флагом называется переменная, значение которой указывает, что компонент системы находится в определённом состоянии).

% program Simulation: pumping liquid out from a reservoir. File pump.m

Time = T1 : h : T4;

% значения моментов времени, в которые фиксируется объём жидкости в резервуаре, помещаются в массив Time.

k = 0; % индекс массива Vol

NotEmpty = 1; % в резервуаре есть жидкость

for t = Time

% переменная t пробегает значения t1, t2,...

k = k + 1;

if t < T2

% если насос ещё не включали, то в резервуаре остаётся первоначальный объём жидкости

v = v0;

else

if 0 == NotEmpty

% если в резервуаре не осталось жидкости

v = 0;

else

v = v – q * h

% за время, прошедшее с момента предыдущего наблюдения насос выкачал из резервуара q * h кубических метров жидкости

if v <= 0

% если в резервуаре не осталось жидкости

NotEmpty = 0;

v = 0;

end % end if

end % end if

    1. end % end if

    2. Vol ( k ) = v;

    3. end % end for

Исходные данные образуют отдельный блок программы. Для того, чтобы выполнить тестирование программы присвоим исходным данным следующие значения: a = 12, b = 3, c = 1, d = 20. Команда clear удаляет информацию о переменных, которые появились в рабочей области в результате выполнения предыдущих команд. Текст файла pump.m будет выглядеть так:

% File pump.m

clear

% команда clear удаляет информацию о переменных, которые появились в рабочей области в результате выполнения предыдущих команд

T1 = 0; % начальный момент времени

v0 = 12; % a = 12 – объём жидкости в резервуаре в начальный момент времени

T2 = 3; % b = 3 – момент включения насоса

q = 1; % c = 1

T4 = 20; % d = 20 - момент завершения наблюдений.

% program Simulation: pumping liquid out from a reservoir. File pump.m

Time = T1 : h : T4;

% значения моментов времени, в которые фиксируется объём жидкости в резервуаре, помещаются в массив Time.

k = 0; % индекс массива Vol

NotEmpty = 1; % в резервуаре есть жидкость

for t = Time

% переменная t пробегает значения t1, t2,...

k = k + 1;

if t < T2

% если насос ещё не включали, то в резервуаре остаётся первоначальный объём жидкости

v = v0;

else

if 0 == NotEmpty

% если в резервуаре не осталось жидкости

v = 0;

else

v = v – q * h

% за время, прошедшее с момента предыдущего наблюдения насос выкачал из резервуара q * h кубических метров жидкости

if v <= 0

% если в резервуаре не осталось жидкости

NotEmpty = 0;

v = 0;

end % end if

end % end if

    1. end % end if

    2. Vol ( k ) = v;

    3. end % end for

    1. На диске D: создаём рабочую папку SIMULATION (ВСЕ ИМЕНА ФАЙЛОВ И ПАПОК НАЗЫВАЕТ ПРЕПОДАВАТЕЛЬ). Чтобы сделать эту папку рабочей папкой среды MATLAB, в командой строке среды MATLAB вводим команду

>> cd D:\SIMULATION.

В рабочую папку помещаем текстовый файл pump.m (с расширением «m»). ИСПОЛЬЗУЙТЕ ДЛЯ ЭТОГО НЕФОРМАТИРУЮЩИЙ РЕДАКТОР NOTEPAD.

    1. Набираем в командном окне имя командного файла (без расширения m):

>> pump

Она создаёт два числовых массива, в массиве Time содержатся значения моментов наблюдений, а в массиве Vol – соответствующие значения объёма жидкости в резервуаре.

Чтобы вывести на экран график изменения объёма жидкости в резервуаре с течением времени, набираетв командной строке команду

>> plot ( Time, Vol )

    1. Вывод. В течение первых трёх секунд объём жидкости в резервуаре не изменяется. Далее в течение 12 секунд объём жидкости в резервуаре уменьшается по линейному закону. Через 15 секунд после начала наблюдений в резервуаре не остаётся жидкости.

    1. Задание 2.

    2. Общее описание системы

    3. В начальный момент времени в резервуаре было a кубических метров жидкости. В момент времени b включили насос, который стал выкачивать из резервуара c кубических метров жидкости в секунду. В момент времени d насос остановили для профилактического осмотра. Через f секунд его снова включили. Когда в резервуаре не осталось жидкости, насос выключили.

    4. Задача

    5. Составьте и исследуйте компьютерную модель, имитирующую процесс изменения объёма жидкости в резервуаре в течение промежутка времени [ 0, g ]; a, b, c, d , f, g – положительные вещественные числа.

    6. Задание 3.

    7. Общее описание системы

    8. В начальный момент времени в резервуаре было a кубических метров жидкости. В момент времени b включили насос, который стал накачивать в резервуар c кубических метров жидкости в секунду. В момент времени d насос остановили для профилактического осмотра. Через f секунд его снова включили. Когда резервуар был заполнен, насос выключили. Объём резервуара составляет g кубических метров.

    9. Задача

    10. Составьте и исследуйте компьютерную модель, имитирующую процесс изменения объёма жидкости в резервуаре в течение промежутка времени [ 0, h ]; a, b, c, d , f, g , h – положительные вещественные числа.

МОДЕЛИРОВАНИЕ ДИСКРЕТНЫХ ДЕТЕРМИНИРОВАННЫХ ПРОЦЕССОВ

    1. Задание 4.

    2. Общее описание системы

    3. В начальный момент времени в системе массового обслуживания находилось a заявок. С момента времени b с интервалом c секунд в систему поступают заявки. В момент времени d поступление заявок прекращается.

    4. Задача

    5. Составьте и исследуйте компьютерную модель, имитирующую процесс изменения количества заявок в системе в течение промежутка времени [ 0, f ]; a, b, c, d , f – положительные вещественные числа.

    6. Задание 5.

    7. Общее описание системы

    8. В начальный момент времени в системе массового обслуживания находилось a заявок. С момента времени b система обслуживает заявки. Обслуживание каждой заявки занимает c секунд, обслуженная заявка покидает систему.

    9. Задача

    10. Составьте и исследуйте компьютерную модель, имитирующую процесс изменения количества заявок в системе в течение промежутка времени [ 0, d ]; a, b, c, d – положительные вещественные числа.

    11. Задание 6.

    12. Общее описание системы

    13. В начальный момент времени в системе массового обслуживания находилось a заявок. С момента времени b с интервалом c секунд в систему поступают заявки. В момент d система начинает обслуживать находящиеся в ней заявки, Обслуживание одной заявки занимает f секунд, обслуженная заявка покидает систему.

    14. Задача

    15. Составьте и исследуйте компьютерную модель, имитирующую процесс изменения количества заявок в системе в течение промежутка времени [ 0, g ]; a, b, c, d , f , g – положительные вещественные числа.

    16. В моменвремени Если мы хотим на той же схеме представить график зависимости заряда конденсатора от времени, то вводим команды:

>> hold on

>> plot ( T, q )

МИНИСТЕРСТВО ОБРАЗОВАНИЯ и НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ

ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО СПЕЦИАЛЬНОГО ОБРАЗОВАНИЯ

«тюменский государственный нефтегазовый университет»

ИНСТИТУТ КИБЕРНЕТИКИ ИНФОРМАТИКИ И СВЯЗИ

Кафедра кибернетических систем

Направление 220200 Автоматизация и управление, специальность 220201 Управление и информатика в технических системах

ОТЧЁТ О ВЫПОЛНЕННОЙ ЛАБОРАТОРНОЙ РАБОТЕ №4

ПО ДИСЦИПЛИНЕ "МОДЕЛИРОВАНИЕ СИСТЕМ"

ТЕМА. МОДЕЛИРОВАНИЕ СЛУЧАЙНЫХ ВЕЛИЧИН

Выполнил Иванов А. Б., группа ....

___________

Проверил Ковалёв П. И.

Тюмень 2012

Цель лабораторной работы №4

Овладение навыками моделирования случайных величин.

МОДЕЛИРОВАНИЕ СЛУЧАЙНЫХ ВЕЛИЧИН, РАВНОМЕРНО РАСПРЕДЕЛЁННЫХ НА ЧИСЛОВОМ ИНТЕРВАЛЕ

    1. Задание 1. Создать числовой массив, состоящий из n элементов и присвоить им значения случайной величины, равномерно распределённой на числовом интервале ] 0, 1 [.

Решение. Функция rand ( m, n) среды MATLAB создаёт двумерный массив - числовую матрицу, состоящую из m строк и n столбцов и присваивает её элементам значения псевдослучайной величины, равномерно распределённой на числовом интервале ] 0, 1 [.

Набираем в командной строке среды MATLAB команду

>> rand ( 1, 12)

На экране появляются 12 значений псевдослучайной величины, равномерно распределённой на числовом интервале ] 0, 1 [, помещённых в массив ans.

    1. Задание 2. Создать числовой массив, состоящий из n элементов и присвоить им значения случайной величины, равномерно распределённой на числовом интервале ] a, b [, a > b.

Решение. Если E – случайная величина, равномерно распределённая на числовом интервале ] 0, 1 [, α, β – вещественные числа, причём α > 0, то случайная величина α E + β равномерно распределена на интервале ] β, α + β [. Таким образом, случайная величина ( b – a ) E + a равномерно распределёна на числовом интервале ] a, b [. Следующий набор команд формирует массив X из n элементов и присваивает им псевдослучайные значения, равномерно распределённые в интервале ] a, b [:

X = rand ( 1, n );

for k = 1:1:n

X ( k ) = ( b – a ) * Y ( k ) + a;

end

Другой способ решения задачи: воспользоваться функцией random с аргументом 'Uniform' (равномерный, сокращённая форма 'unif'). Кроме аргумента 'Uniform' функция имеет ещё четыре аргумента. Два из них – параметры функции распределения, числа a, b, остальные аргументы задают размерность матрицы. Команда

random ( 'Uniform', a, b, m, n )

создаёт двумерный массив – числовую матрицу, состоящую из m строк и n столбцов и присваивает её элементам псевдослучайные значения, равномерно распределённые в интервале ] a, b [.

Задание 3

С помощью метода Монте-Карло определите площадь части плоскости, ограниченной эллипсом с полуосями a, b.

Решение задачи

Уравнение эллипса с полуосями a, b имеет такой вид:

x2 / a2 + y2 / b2 = 1.

Эта кривая делит плоскость на две части, внутреннюю и внешнюю. Рассмотрим точку A, которая находится во внутренней области. Прямая OA, проходящая через начало координат и точку A, пересекает эллипс в какой-то точке B, в этой точке значение выражения x2 / a2 + y2 / b2 равно 1. Так как точка B находится дальше от начала координат, чем точка A, то для неё значение выражения x2 / a2 + y2 / b2 должно быть больше, чем для точки A, следовательно, во всех точках внутренней области значение выражения x2 / a2 + y2 / b2 меньше 1. Точно так же доказывается, что для всех точек внешней области значение выражения больше 1.

Проведём прямые x = a, x = - a, y = b. y = - b, получается прямоугольник со сторонами 2 a и 2 b, внутри которого находится эллипс. Случайным образом выберем точку внутри прямоугольника. Вероятность того, что выбранная точка находится внутри эллипса равна отношению площади внутренней области к площади прямоугольника. Повторим выбор точки n раз и вычислим частоту её попадания во внутреннюю область. Эта частота приблизительно равна отношению площади внутренней области к площади прямоугольника. Умножив частоту на площадь прямоугольника, получим площадь области, ограниченной эллипсом.

Абсциссы выбираемых точек должны быть равномерно распределены в интервале ] - a, a [, а ординаты – в интервале ] - b, b [, следовательно, X = 2 a E - a, Y = 2 b Eb, где E – случайная величина, равномерно распределённая на интервале ] 0, 1 [.

% program Monte-Carlo method: computation of the area of a plain domain bounded by ellipse. File ellipse.m

% исходные данные: вычисляется площадь круга радиуса 1. Она должна равняться числу пи.

% a, b – длины полуосей эллипса

a = 1;

b = 1;

n = 1000; % количество случайно выбранных точек внутри прямоугольника

% вспомогательные переменные

aa = a + a;

bb = b + b;

% формируется массив X псевдослучайных величин, равномерно распределённых на интервале ] - a, a [ и массив Y псевдослучайных величин, равномерно распределённых на интервале ] - b, b [

X = rand ( 1, n );

Y = rand ( 1, n );

for k = 1:1:n

X ( k ) = aa * Y ( k ) - a;

Y ( k ) = bb * Y ( k ) - a;

end

S = 0; % сумматор: в переменной S накапливается количество случайно выбранных точек, которые попали внутрь эллипса

% вспомогательные переменные

aa = a * a;

bb = b * b;

% абсциссой k-й случайно выбранной точки служит значение X ( k ), а ординатой – значение Y ( k ).

for k = 1:1:n

if X ( k ) * X ( k ) / aa + Y ( k ) * Y ( k ) / bb < 1

S = S + 1;

end

S = 4 * a * b * S / n; % в переменной S содержится приближённое значение площади части плоскости, ограниченной эллипсом; 4 a b – площадь прямоугольника, внутри которого заключён эллипс, отношение S / n в правой части равно частоте попадания случайно выбранной точки внутрь эллипса

% вывод результата вычислений

'area of a plain domain bounded by ellipse equals'

S

Задание 4

С помощью метода Монте-Карло определите длину эллипса с полуосями a, b.

Решение задачи

Уравнение эллипса с полуосями a, b имеет такой вид:

x2 / a2 + y2 / b2 = 1.

Следовательно, точка M с координатами ( x, y ) принадлежит эллипсу тогда и только тогда, когда отношение x / a равно косинусу некоторого числового значения t, а отношение y / b равно синусу t:

x = a cos t

y = b sin t.

Если вещественное число t пробегает интервал [ 0, 2 π ], то M пробегает один раз весь эллипс.

Длину кривой, заданной уравнениями

x = x ( t ),

y = y ( t ),

α ≤ t < β вычисляют по формуле

[ α, β ] ( ( dx / dt )2 + ( dy / dt )2 )1/2 dt,

следовательно, длина эллипса равна

[ 0, 2 π ] ( ( - a sin t )2 + ( b cos t )2 )1/2 dt

или

[ 0, 2 π ] ( a2 + ( b2 - a2 ) cos2 t )1/2 dt

Этот интеграл в общем случае нельзя вычислить с помощью элементарных функций.

Задание 5

Уравнение четверти эллипса, заключённой между положительными полуосями Ox и Oy, можно представить в виде

y = b / a ( a2 - x2 )1/2

Тогда её длина будет равна

[ 0, a ] ( 1 + ( dy / dx )2 )1/2 dx.

Удастся ли вычислить этот интеграл методом Монте-Карло?

МИНИСТЕРСТВО ОБРАЗОВАНИЯ и НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ

ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО СПЕЦИАЛЬНОГО ОБРАЗОВАНИЯ

«тюменский государственный нефтегазовый университет»

ИНСТИТУТ КИБЕРНЕТИКИ ИНФОРМАТИКИ И СВЯЗИ

Кафедра кибернетических систем

Направление 220200 Автоматизация и управление, специальность 220201 Управление и информатика в технических системах

ОТЧЁТ О ВЫПОЛНЕННОЙ ЛАБОРАТОРНОЙ РАБОТЕ №5

ПО ДИСЦИПЛИНЕ "МОДЕЛИРОВАНИЕ СИСТЕМ"

ТЕМА. ИМИТАЦИОННОЕ МОДЕЛИРОВАНИЕ СТОХАСТИЧЕСКИХ СИСТЕМ

Выполнил Иванов А. Б., группа ....

___________

Проверил Ковалёв П. И.

Тюмень 2012

Цель лабораторной работы №5.

Овладение навыками построения и исследования имитационных моделей стохастических процессов в среде MATLAB.

МОДЕЛИРОВАНИЕ НЕПРЕРЫВНЫХ ДЕТЕРМИНИРОВАННЫХ ПРОЦЕССОВ

    1. Задание 1.

    2. Общее описание системы

    3. В начальный момент времени в резервуаре было a кубических метров жидкости. В случайный момент времени между 0 и b включили насос, который стал выкачивать из резервуара c кубических метров жидкости в секунду. Когда в резервуаре не осталось жидкости, насос выключили.

    4. Задача

    5. Составьте и исследуйте компьютерную модель, имитирующую процесс изменения среднего объёма жидкости в резервуаре в течение промежутка времени [ 0, d ]; a, b, c, d – положительные вещественные числа.

Параметр системы:

q – объём жидкости, который насос выкачивает из резервуара за единицу времени, q = c;

Выделенные моменты времени:

T1 – начало наблюдений, T1 = 0;

T2 – момент включения насоса, случайная величина, равномерно равспределённая на интервале ] 0, T3 [, T3 = b;

T4 – момент выключения насоса;

T5 - момент завершения наблюдений, T5 = d.

Начальное условие:

объём v0 жидкости в резервуаре в начальный момент времени равен a.

    1. Величина, характеризующая состояние системы:

    2. v ( t ) - объём жидкости в резервуаре в момент времени t, 0 <= t <= T5.

    1. Описание имитационной модели

    2. Одновременно m насосов выкачивают жидкость из m резервуаров. Объёмы жидкости в резервуарах фиксируется с интервалом времени h с в моменты t1, t2,..., t1 = T1 = 0, tk+1 - tk = h, tk = ( k – 1 ) h, k = 1, 2,... Значения этих моментов времени программа помещает в массив Time. Элементу с индексом k массива Vol она присваивает значение v ( tk ) объёма жидкости в резервуаре в момент времени tk : v ( tk+1 ) = v ( tk ) - q h (в течение промежутка времени h насос выкачает из резервуара q h кубических метров жидкости). Переменная NotEmpty является флагом, она характеризует состояние резервуара: сначала её значение равно 1, когда в резервуаре не остаётся жидкости, она обращается в ноль (флагом называется переменная, значение которой указывает, что компонент системы находится в определённом состоянии).

% program Simulation: pumping liquid out from a reservoir. File pump.m

Time = T1 : h : T4;

% значения моментов времени, в которые фиксируется объём жидкости в резервуаре, помещаются в массив Time.

k = 0; % индекс массива Vol

NotEmpty = 1; % в резервуаре есть жидкость

for t = Time

% переменная t пробегает значения t1, t2,...

k = k + 1;

if t < T2

% если насос ещё не включали, то в резервуаре остаётся первоначальный объём жидкости

v = v0;

else

if 0 == NotEmpty

% если в резервуаре не осталось жидкости

v = 0;

else

v = v – q * h

% за время, прошедшее с момента предыдущего наблюдения насос выкачал из резервуара q * h кубических метров жидкости

if v <= 0

% если в резервуаре не осталось жидкости

NotEmpty = 0;

v = 0;

end % end if

end % end if

    1. end % end if

    2. Vol ( k ) = v;

    3. end % end for

Исходные данные образуют отдельный блок программы. Для того, чтобы выполнить тестирование программы присвоим исходным данным следующие значения: a = 12, b = 3, c = 1, d = 20. Команда clear удаляет информацию о переменных, которые появились в рабочей области в результате выполнения предыдущих команд. Текст файла pump.m будет выглядеть так:

% File pump.m

clear

% команда clear удаляет информацию о переменных, которые появились в рабочей области в результате выполнения предыдущих команд

T1 = 0; % начальный момент времени

v0 = 12; % a = 12 – объём жидкости в резервуаре в начальный момент времени

T2 = 3; % b = 3 – момент включения насоса

q = 1; % c = 1

T4 = 20; % d = 20 - момент завершения наблюдений.

% program Simulation: pumping liquid out from a reservoir.

Time = T1 : h : T4;

% значения моментов времени, в которые фиксируется объём жидкости в резервуаре, помещаются в массив Time.

k = 0; % индекс массива Vol

NotEmpty = 1; % в резервуаре есть жидкость

for t = Time

% переменная t пробегает значения t1, t2,...

k = k + 1;

if t < T2

% если насос ещё не включали, то в резервуаре остаётся первоначальный объём жидкости

v = v0;

else

if 0 == NotEmpty

% если в резервуаре не осталось жидкости

v = 0;

else

v = v – q * h

% за время, прошедшее с момента предыдущего наблюдения насос выкачал из резервуара q * h кубических метров жидкости

if v <= 0

% если в резервуаре не осталось жидкости

NotEmpty = 0;

v = 0;

end % end if

end % end if

    1. end % end if

    2. Vol ( k ) = v;

    3. end % end for

На диске D: создаём рабочую папку SIMULATION (ВСЕ ИМЕНА ФАЙЛОВ И ПАПОК НАЗЫВАЕТ ПРЕПОДАВАТЕЛЬ). Чтобы сделать эту папку рабочей папкой среды MATLAB, в командой строке среды MATLAB вводим команду

>> cd D:\SIMULATION.

В рабочую папку помещаем текстовый файл pump.m (с расширением «m»). ИСПОЛЬЗУЙТЕ ДЛЯ ЭТОГО НЕФОРМАТИРУЮЩИЙ РЕДАКТОР NOTEPAD.

    1. Набираем в командном окне имя командного файла (без расширения m):

>> pump

Она создаёт два числовых массива, в массиве Time содержатся значения моментов наблюдений, а в массиве Vol – соответствующие значения объёма жидкости в резервуаре.

Чтобы вывести на экран график изменения объёма жидкости в резервуаре с течением времени, набираетв командной строке команду

>> plot ( Time, Vol )

    1. Вывод. В течение первых трёх секунд объём жидкости в резервуаре не изменяется. Далее в течение 12 секунд объём жидкости в резервуаре уменьшается по линейному закону. Через 15 секунд после начала наблюдений в резервуаре не остаётся жидкости.

МОДЕЛИРОВАНИЕ СЛУЧАЙНЫХ ВЕЛИЧИН

Для моделирования случайных величин в среде MATLAB предназначена функция random. Синтаксис вызова функции:

random (name, a, m, n)

name – идентификатор закона распределения случайной величины:

'exp' – экспоненциальное распределение;

'pois' – распределение Пуассона.

Функция random возвращает матрицу размерности m*n, элементы которой имитируют значения случайной величины, распределённой по данному закону.

Функция rand ( m, n ) возвращает матрицу размерности m*n, её элементы имитируют значения случайной величины, равномерно распределённой в числовом интервале [0,1].

Функция erf:

erf ( x ) = 2 / ( π )1/2 [0, x] exp ( - t * t ) dt

erf ( 0 ) = 0; erf ( 10 ) = 1, erf ( -10) = -1;

Уравнение erf ( x ) = 0.99 решается с помощью команды

fzero ( @(x) erf ( x ) - 0.99, 0).

% queue

Time = 0:h:c

i = 0

countr = 0

countq = 0

nextr = a

nextq = a + d

for t = Time

i = i + 1

while ( nextq < t ) & ( nextr < t ) & ( countq > 1 )

nextq = nextq + d

countq = countq – 1

end % end while

while ( nextq < nextr ) & ( countq > 1)

nextq = nextq + d

countq = countq – 1

end % end while

if 0 == countq

countq = 1

nextq = nextr + 1

else

countq = countq + 1

end % end if

nextr = nextr + nextr + b

countr = countr + 1

end % end for ???

NumRegs(i) = countr

NumQues(i) = countq

end % end for

Литература

1 Антонов А.В. Системный анализ. Учеб. для вузов.- М.: Высшая школа, 2004.- 454 с.

2 Дорф Р. Современные системы управления /Р.Дорф, Р.Бишоп – М.:Лабораторная Базовых знаний, 2002-832с.

3 Ковалёв П.И. Смысловой анализ технического текста: Учебное пособие для студентов специальности 210 100 Управление и информатика в технических системах.- Тюмень: ТюмГУ, 2006.- 57 с.

4 Ковалёв П. И. Символьное моделирование детерминированных систем: Учебное пособие для студентов высших учебных заведений, обучающихся по направлению подготовки 220200 – Автоматизация и управление в УрФО - Тюмень: ТюмГНГУ, 2007.- 80 с.

5 Советов Б.Я. Яковлев С.А. Моделирование систем.Учебник для вузов. - М.: Высшая школа, 2001.- 343 с.

6 Советов Б.Я., Яковлев С.А. Моделирование систем. Практикум – М.: Высшая школа, 1999. – 224с.

Дополнительная литература

1 Бусленко Н.П. Моделирование сложных систем.- М.: Наука, 1978.- 399с.

2 Бенькович Е.С., Колесов Ю.Б., Сенченков Ю.Б. Практическое моделирование динамических систем.- СПб.: БХВ-петербург, 2002.- 464 с.

3 Самарский А. А., Михайлов А. П. Математическое моделирование: Идеи. Методы. Примеры.- М.: ФИЗМАТЛИТ , 2005.- 320 с.

Министерство образования и науки Российской Федерации

Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования