Моделювання систем в програмному середовищі Scilab & Xcos 5.5.1. частина 4

Імітаційне моделювання в рівній мірі придатне як для вирішення детермінованих завдань, так і для дослідження ситуацій, що залежать від випадкових факторів. При створенні моделей за допомогою універсальних мов програмування апаратний або програмний датчик випадкових чисел - єдиний інструмент розробника для моделювання всіх видів випадкових чинників: випадкових подій, випадкових величин і випадкових процесів. У того, хто використовує Xcos , Арсенал значно ширше. У цій статті розглядається процес моделювання випадкових подій з використанням таких блоків Xcos як RAND_m, RELATIONALOP, HYSTHERESIS, DLR, CSCOPE, CONST, CLOCK_c, AFFICH_m.

Моделювання випадкових подій

Випадковим називають подія, яке в результаті випробування може наступити, а може і не настати (на відміну від достовірного події, яке при реалізації даного комплексу настає завжди, і неможливого події, яке при реалізації даного комплексу умов не настає ніколи). Вичерпної характеристикою випадкової події є ймовірність його настання. Прикладами випадкових подій є відмови в економічних системах, обсяги продукції, що випускається кожним підприємством в кожен день, котирування валют в обмінних пунктах, стан ринку цінних паперів і біржової справи і т.п. Моделювання випадкової події полягає у визначенні ( «розіграші») факту його настання.

Моделювання випадкової події полягає у визначенні ( «розіграші») факту його настання

Мал. 1. Моделювання випадкових подій за допомогою блоків RAND_m і RELATIONALOP

Випадкова подія вважається наступившим, якщо сформований датчиком випадкове число потрапило в заданий діапазон. Отже, розроблена модель повинна містити компоненти, які виконують такі дії:

- генерують випадкове число;

- визначають потрапляння отриманого числа в заданий діапазон значень;

- ідентифікують стан події (настало / не настав).

У Xcos-моделі ці дії можна реалізувати за допомогою наступних блоків:

- RAND_m (розділ бібліотеки «Джерела сигналів і впливів»);

- CONST (розділ бібліотеки «Джерела сигналів і впливів»);

- RELATIONALOP (розділ бібліотеки «Загальновживані блоки»);

- CLOCK_c (розділ бібліотеки «Обробка подій»);

- AFFICH_m (розділ бібліотеки «Регистрирующие пристрої»).

Приступимо до створення моделі, для чого запустимо програмне середовище Scilab , А потім в основному меню «Інструменти» виберемо пункт «Візуальне моделювання Xcos». В результаті чого буде відкрито вікно оглядача розділів бібліотеки Xcos і новий файл моделі. Виберемо із зазначених розділів бібліотеки Xcos потрібні блоки і розмістимо їх в робочій області програми, а потім з'єднаємо блоки між собою так, як показано на малюнку 1. логіка роботи розробляється моделі наступна. Блок RELATIONALOP виконує порівняння отриманих від двох джерел чисел. При цьому перше число генерується за допомогою блоку RAND_m, а друге задається розробником самостійно за допомогою блоку CONST і є константою. Якщо сгенерированное випадкове число менше константи, то подія вважається таким, що настав (блок AFFICH_m відображає значення 1), в іншому випадку подія буде вважатися не настали (блок AFFICH_m відображає значення 0).

Для генерації випадкових чисел в розроблюваної моделі використовується блок RAND_m, для якого налаштовуються наступні параметри (рис. 2а):

- Datatype (1 = real double 2 = complex) - тип вихідних даних: 1 - дійсні числа, 2 - комплексні числа;

- flag - прапор, який визначає вид закону розподілу: 0 - рівномірний, 1 - нормальний (гауссовское);

- A - нижня межа діапазону генерації випадкових чисел;

- B - верхня межа діапазону;

- SEED - числа, які використовуються для ініціалізації машинного генератора псевдовипадкових чисел. Перше значення відноситься до дійсної, а друге до уявної частини вихідного сигналу.

Перше значення відноситься до дійсної, а друге до уявної частини вихідного сигналу

Мал. 2. Вікно налаштувань параметрів блоку: (а) RAND_m, (б) CONST, (в) RELATIONALOP, (г) AFFICH_m

Джерелом сигналу активації для блоку RAND_m є блок CLOCK_c. Блок CONST формує постійну величину. Значення константи вводиться у вікні налаштувань параметрів даного блоку в поле Constant (рис. 2б). Оператор відносини вказується в полі Operator вікна налаштувань параметрів блоку RELATIONALOP (рис. 2в). В операції відносини першим операндом є сигнал, що подається на перший (верхній) вхід блоку, а другим операндом - сигнал, що подається на другий (нижній) вхід. Вихідним сигналом блоку є 1, якщо результат обчислення операції відносини є «істина» і 0, якщо результат - «брехня».

Блок AFFICH_m при моделюванні грає роль оглядового вікна і призначений для відображення на екрані чисельних значень вхідних величин, що фігурують в блок-діаграмі. У нашій моделі даний блок показує стан події (подія настала / не настав). Для блоку можна налаштувати такі параметри (рис. 2г):

- Input Size - розмірність матриці вхідних значень;

- Font number - номер шрифту;

- Font size - розмір шрифту;

- Color - колір шрифту;

- Number of rational part digits - кількість знаків після коми;

- Block inherits (1) or not (0) - обрив керуючої зв'язку з блоком.

Блок AFFICH_m може використовуватися для виведення як скалярних, так і векторних величин. Якщо відображається величина є вектором, то розмір блоку необхідно буде збільшити - розтягнути за допомогою миші. Для цього слід виділити блок, підвести курсор миші до одного з його кутів, натиснути ліву кнопку миші і, не відпускаючи її, розтягнути зображення блоку до потрібних розмірів.

Після того як блок-діаграма зібрана, а параметри всіх її блоків налаштовані, можна запускати моделювання. Однак, не забудьте попередньо зберегти модель на диск комп'ютера за допомогою команди основного меню «Файл / Зберегти як». Тепер за допомогою натискання кнопки «Запустити» на панелі інструментів вікна моделі Xcos можна провести пробне моделювання, результат якого представлений на малюнку 3.

Мал. 3. Результат роботи моделі випадкових подій

Поява випадкової події можна інтерпретувати ще одним способом: подія відбулася, якщо деякий пов'язане з ним число (ознака) потрапило в заданий інтервал. Цей варіант може бути реалізований за допомогою використання блоку HYSTHERESIS (розділ бібліотеки «Системи з розривами»). На малюнку 4 показана блок-діаграма, за допомогою якої виконується реєстрація моментів попадання випадкового числа в заданий інтервал. При цьому підрахунок числа влучень виконується за допомогою блоку DLR (розділ бібліотеки «Системи з дискретним часом»), блок AFFICH_m виводить результат підрахунку, а блок CSCOPE (розділ бібліотеки «Регистрирующие пристрої») відображає в графічному вигляді згенеровані за допомогою блоку RAND_m випадковим чином числа і потрапляння згенерованих чисел в заданий інтервал - при цьому потрапляння числа відповідає в числовому вигляді 1, а промах - 0. Перевірка на потрапляння згенерованого числа в заданий інтервал виконується за допомогою блоку HYSTHERESIS. Цей інтервал задається у вікні налаштувань даного блоку (рис. 5) в полях output when on (нижня межа) і switch on at (верхня межа). На малюнку 6 показано роботу спроектованої моделі в динаміці. логіка роботи нашої моделі наступна. Після запуску моделі на виконання проводиться генерація випадкових чисел розподілених на інтервалі [0; 9]. Після чого виконується перевірка на потрапляння згенерованих чисел в діапазон [0; 3] і підрахунок числа влучень. Верхній графік відображає потрапляння / промахи згенерованих випадковим чином чисел в заданий інтервал. Послідовність згенерованих чисел відображається на нижньому графіку.

Послідовність згенерованих чисел відображається на нижньому графіку

Мал. 4. Моделювання випадкових подій за допомогою блоків HYSTHERESIS і DLR

Моделювання випадкових подій за допомогою блоків HYSTHERESIS і DLR

Мал. 5. Вікно налаштувань параметрів блоку HYSTHERESIS

Вікно налаштувань параметрів блоку HYSTHERESIS

Мал. 6. Робота спроектованої моделі реєстрації моментів попадання випадкового числа в заданий інтервал в динаміці

Використання випадкових величин є найбільш універсальним і тому найбільш поширеним способом обліку в моделі випадкових факторів, властивих реальним системам або процесам. В одній і тій же імітаційної моделі можуть бути різні випадкові фактори. Одні можуть бути представлені як випадкові події, інші - як випадкові величини, розподілені за різними законами. Якщо моделювання всіх випадкових факторів виконується з використанням одного генератора, який генерує одну загальну послідовність випадкових чисел, то з математичної точки зору їх не можна вважати незалежними. Тому для моделювання кожного випадкового фактора намагаються використовувати окремий генератор або забезпечити створення нової послідовності випадкових чисел.

Олександр Чорний

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

Или позвоните нам по телефонам: (048) 823-25-64

Организация (обязательно) *

Адрес доставки

Объем

Как с вами связаться:

Имя

Телефон (обязательно) *

Мобильный телефон

Ваш E-Mail

Дополнительная информация: