Рассчитайте вектор состояния системы на 3-м шаге. 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Рассчитайте вектор состояния системы на 3-м шаге.



 

Вероятности состояния системы могут определяться с помощью рекуррентной формулы, представляющей матричное уравнение

 

 

 

где         p[k] – вектор состояния системы после k шагов;

              pTij   - транспонированная матрица переходов;

              p[k-1] – вектор состояния системы после k-1 шагов.

 

Создадим программу расчета матричного уравнения:

 

% Подготовка массива

pk=zeros(2,1);

% Вектор состояния на первом шаге

pk1=[0.8;0.2];

% Матрица переходов

pij=[0.8 0.2; 0.9 0.1];

% Цикл от 2 до 500 шага

for k=2:500

% Расчет матричного уравнения

pk=pij'.*pk1;

% Если разница между последним и предпоследним

% состояниям меньше 0.0001, то расчет останавливается

%

if abs(pk(1,1)-pk1(1,1))<0.0001

disp(['Шаг №' num2str(k) ' достигнута точность 0.001'])

break

end

pk1 = pk;

end

disp('Матрица состояний')

disp(pk)

 

Когда величина вероятности предпоследнего и последнего состояний меньше 0.0001, считаем что Марковский процесс перешел в стационарную стадию. Это подтверждает основное свойства Марковских цепей – через счетное количество шагов (период приработки) вероятность перехода из одного состояние в другое становится неизменной. В теории Марковских процессов распределение вероятности для установившегося режима называют инвариантным.

 

 

Рассмотрим систему с 4-мя дискретными состояниями (рис. 7):

 

0 - Работа

1 - Простой

2 - Ремонт

3 - Утилизация

 

Рис. 7

 

 

Матрица переходов системы из i – го состояния в j – ое составляет

 

 

Проанализируйте вероятности переходов. В данном случае имеет место состояние, из которого нет выхода – Утилизация. Скорее всего, именно в этом состоянии и закончится Марковский процесс, и как такового установившегося режима не будет.

Составим программу, которая покажет количество шагов до тех пор, когда изменение вероятностей состояний практически не меняется.

 

% Подготовка массива для k – го шага

pk=zeros(4,1);

%В начальный момент времени

p0=[1 0 0 0];

%Матрица переходов

pij=[0.8 0.14 0.05 0.01; 0.8 0.18 0.01 0.01; 0.7 0.01 0.24 0.05; 0 0 0 1];

% Вектор состояния на первом шаге

pk1=[0.8; 0.15; 0.05; 0];

% Цикл от 2 до 500 шага

for k=2:500

% Расчет матричного уравнения

pk=pij'.*pk1;

% Если разница между последним и предпоследним

% состояниям меньше 0.0001, то расчет останавливается

 

d1= abs(pk(1,1)-pk1(1,1));

d2= abs(pk(1,2)-pk1(1,2));

d3= abs(pk(1,3)-pk1(1,3));

d4= abs(pk(1,4)-pk1(1,4));

 

if (d1<0.0001)& (d1<0.0001)& (d1<0.0001)& (d1<0.0001)

disp(['Шаг №' num2str(k) ' достигнута точность 0.001'])

break

end

pk1 = pk;

end

disp('Матрица состояний')

disp(pk)

 

Занесите программу в новый скрипт программы MatLab и выполните его. Просмотрите результаты.

Обычно утилизация наступает, когда вероятность её превышает 0.99.

 

Измените в строке Утилизация матрицы переходов на величины:

 

0.1 0.1  0.1  0.7.

 

Пересчитайте программу с новыми исходными данными.

Приведите результаты и дайте их интерпретацию.

 

Лабораторная работа №7.

Пакет Simulink

 

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

Вызов пакета осуществляется из меню MatLab (рис. 8).

 

Рис. 8

 

В окне шаблонов Simulink надо выбрать пустой шаблон– Blank Model (рис. 9).

 

Рис. 9

 

Далее следует вызвать обозреватель библиотек (рис. 10):

 

Рис. 10

 

Если надо создать другую новую модель, то необходимо в меню выбрать File->New->Model или нажать Ctrl+N.

Пакет Simulink имеет большое количество библиотек, название которых приведено в левой половине окна обозревателя (рис. 11).

 

Рис. 11

 

В состав Simulink входят следующие основные библиотеки:

 

Commonly Used Blocks – обычно используемых функции

Continuous – непрерывных элементов;

Discontinuities – ступенчатых элементов

Discrete – дискретных элементов;

Logic and Bit Operations – логических и битовых операции;

Lookup tables – функций и таблиц;

Math operations– математических функций;

Model Verification –проверки модели;

Model-Wide Utilities – широко применяемых моделей;

Nonlinear – нелинейных элементов;

Ports & Systems – портов и систем;

Signal attributes – атрибутов сигналов

Signal Routing – передачи сигналов

Sinks – устройств вывода;

Sources – источников сигнала;

User-Defined Functions – подсистем, определенных пользователем;

Additional Math & Discrete – дополнительные математические и дискретные блоки.

Кроме того имеется значительное количество дополнительных библиотек.

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

 

01. Для копирования и перемещения блоков из моделей или библиотек необходимо щелкнуть по ним кнопкой мыши, удерживая ее нажатой, перетащить блок из одного окна в другое окно или на другое место в том же окне (рис.12).

 

Рис. 12

 

02. Для дублирования блока следует при нажатой клавише Ctrl клавиатуры выделить его левой кнопкой мыши и затем перетащить его на новое место. Это же дублирование можно выполнить, перетаскивая блок правой кнопкой мыши без нажатия на клавишу Ctrl.

03. Наименование блока можно редактировать. Щелкнув кнопкой мыши по наименованию блока можно изменить само имя. Командой меню Diagram >Format>Font Style можно изменить шрифт (рис. 13).

 

Рис. 13

 

04. Для изменения ориентации блока служат команды Diagram>Rotate & Flip (рис. 14). Кроме того можно использовать комбинацию клавиш Ctrl+R.

 

Рис. 14

 

05. Щелкнув мышью два раза на блоке, можно попасть в окно задания параметров блока.

06. Блоки между собой соединяются линиями, образуя направленный граф. Каждая линия в Simulink может нести скалярный или векторный сигнал.

Линия соединяет выход одного блока с входом другого (рис. 15).

Рис. 15

 

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

Если в результате получится красная пунктирная стрелка, то конец стрелки надо переместить точно к входу блока. Любую стрелку, как и блок, можно удалить, выделив её и нажав на клавишу Delete (Del).

Simulink рисует линии, используя горизонтальные и вертикальные участки.

07. Лини ответвления может соединить один выход блока с несколькими входами других блоков. Линия ответвления начинается от уже существующей линии и несет такой же сигнал к входу другого блока. Ответвление проводится от линии от входного порта при нажатии клавиши Ctrl (рис. 16):

Рис. 16

 

Для перемещения сегмента линии необходимо установить указатель на нужном сегменте перетащить его в нужное место (рис. 17):

Рис. 17

 

Можно вставить блок с одним входом и одним выходом, врезав его в существующую линию.

 

Сохранение моделей

 

Созданную модель можно сохранить, используя команду Save или Save As меню File. Имя файла должно начинаться с буквы и содержать не более 31 символа. Simulink присваивает файлу расширение mdl.

При открытии MatLab активной папкой является MATLAB \ R 2017 b \ bin. Сохранять что-либо в папках MatLab не рекомендуется. Создадим свою папку Work на рабочем столе. Обязательно нужно включить папку Work в путь папок MatLab. Для этого нажмим на кнопку Get Path (рис. 18):

Рис. 18

 

В выпадающем окне выберем Add Folder (рис. 19):

 

Рис. 19

 

Укажем папку Work на Рабочем столе (Deskstop) (рис. 20):

 

Рис. 20

 

 

Перейдём в папку Work: C:> User > std > Deskstop > Work в командной строке MatLab. Теперь папка Work будет рабочей и в ней можно сохранять схемы Simulnik и программы MatLab.

 

 

Примеры расчета в Simulink

 

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

Рассмотрим применение Simulink на простом примере возведения в степень. Например, требуется вычислить значение x = 52

Соберите схему, показанную на рис. 21:

Рис. 21. Схема модели возведения в степень

 

Блок Constant переносится из библиотеки Commonly Used Blocks. Math Function переносится из библиотеки Math Operations. Блок Display – из Sinks.

 В блоке Math Function нужно установить функцию возведения в степень pow (рис. 22).

Рис. 22

 

Установим в первом блоке Constant значение 5, а во втором – 2. В блоке Math Function установить функцию pow. Запустите модель. В результате на дисплее должно изобразится число 25.

Подсчитайте величину x =67.

 

В другом примере определим значение полинома:  

 

Y = x2 + 2 x + 3              при x = 5.

 

Схема для расчета полинома показана на рис. 23.

Рис 23

 

Блок Polinomial находится в библиотеке Math Operations. Для этого в блок Polynomial значения [ 1., 2., 3.].

Рассчитайте полином:

 

Y = 5x2 + 3 x + 2                      при x = 3

 

Simulink можно использовать для решения системы алгебраических уравнений.

Рассмотрим систему уравнений

 

 

Для её решения составим схему (рис. 24).

 

Блоки Add и Algebraic Constraint находятся в Math Operations.

В блоках Constant установим значения свободных членов 6 и 2.

Блоки Algerbraic Constant служат для поиска корней алгебраических уравнений. Блок находит такое значение сигнала становится равным нулю. При этом входной сигнал должен быть прямо или опосредованно связан с входным сигналом.

В боках Add проверте значения знаков (++ или -+).

Запустите схему на исполнение. Результаты будут отображены в блоках Display.

 

Рис. 24

 

Имитационное моделирование

 

Имитационное моделирование (англ. simulation modeling) — метод исследования, при котором изучаемая система заменяется моделью, с достаточной точностью описывающей реальную систему, с которой проводятся эксперименты с целью получения информации об этой системе. Такую модель можно «проиграть» во времени  как для одного испытания, так и заданного их множества. При этом результаты будут определяться случайным характером процессов. По этим данным можно получить достаточно устойчивую статистику. Экспериментирование с моделью называют имитацией или симуляцией (от английского названия). Simulink отличное средство для имитационного моделирования.

Для установки параметров симуляции служит раздел меню Simulation>Model Configuration Parameters. Диалоговое окно содержит разделы для управления параметрами симуляции. Важными являются две закладки:

· Закладка Solver (Решатель) позволяет задавать время начала и конца симуляции, выбрать решатель и установить его параметры.

· Закладка Diagnostics (Диагностика) позволяет выбрать предупредительные сообщения, показываемые во время симуляции.

Закладка Solver показа на рис. 25.

Рис. 25

 

Опция Simulation Time Решателя задает время начала Start Time и конца Stop Time симуляции. По умолчанию они равны 0.0 и 10.0 секунд. Действительное время и время симуляции это разные величины и не совпадают друг с другом.

В Solver Options можно выбрать Решатель с фиксированным (Fixed step) и переменным (Variable step) шагом. Решатели с переменным шагом изменяют размер шага во время симуляции, обеспечивают контроль ошибок и обнаруживают момент перехода функции через ноль.

Опция Solver Options Решателя позволяет выбрать метод численного интегрирования обычных дифференциальных уравнений (ODE – Ordinary Differential Equations) с учетом особенностей созданной модели системы. Кроме того,

По умолчанию Simulink использует для моделей в пространстве состояний решатель ode45 (метод Рунге-Кутта), наиболее удобный для первого пробного решения задач. Если модель системы задана не в пространстве состояний, то Simulink использует решатель, названный discret.

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

 

Рис. 26

 

Для каждого типа события можно задать вид сообщения: никакое (None), предупреждение (Warning), об ошибке (Error). Последний тип сообщения - Error останавливает симуляцию.

Здесь важно, чтобы Automatic solver parameter selection было установлено в none.

Для ознакомления с возможностями Simulink можно выбрать в браузере рабочего окна раздел меню Help -> Simulink -> Examples. В разделе приведено большое количество примеров использования Simulink для различных случаев моделирования (к сожалению, на английском языке).

 

Пример имитационного моделирования

 

Рассмотрим простой пример имитационного моделирования с входным параметром, распределенным по закону Пуассона. Соберем следующую схему (рис. 27).

Блоки находятся в библиотеках, указанных в таблице 4.

 

Рис. 27

 

Время моделирования 10 секунд по умолчанию.

 

                                                                 

 

Таблица 4

Блоки Библиотеки
Constant Commonly Used Blocks
MATLAB Function User Defined Functions
Scope Commonly Used Blocks
Discret Time Integrator Commonly Used Blocks
Divide Math Operations
Clock Sourses

 

Simulation>Model Configuration Parameters>Solver Option необходимо установить Type: Fixed-Step и величину шага 0.1 (рис. 28).

Рис. 28

 

Значение 5 для Constant 1 означает то, что параметр распределения Пуассона 5 случаев в единицу времени, например 5 случаев в секунду.

Блок MATLAB Function предполагает, что в нем будет функция, написанная кодом MatLab. Щелкнув дважды на блоке можно перейти в окно создания функции. В MatLab poissrnd – это функция генерации псевдослучайных чисел по закону Пуассона. Текст функции должен быть следующим (рис. 29):

 

Рис. 29

 

В параметрах блока Discrete Time Integrator надо установить Integrator method: Accumulation: Forword Euler – простое суммирование (рис. 30).

Рис. 30

Для запуска модели следует нажать кнопку .

Блок Scope 2 строит график количества случаев в единицу времени -0.1 с. Для вызова графика надо щелкнуть мышью на блоке.

Блок Discrete Time Integrator вычисляет сумму случаев за время от 0 до t. График суммирования находится в блоке Scope 1.

Остальная часть схемы служит для определения среднего количества случаев в единицу времени. Эта величина будет показана в блоке Display.

 

Лабораторная работа №8.



Поделиться:


Последнее изменение этой страницы: 2021-05-11; просмотров: 77; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.118.120.109 (0.09 с.)