Методичні вказівки до лабораторної роботи на тему Побудова імітаційних моделей динамічних систем у Simulink
« НазадІмітаційна модель пошуку оптимальної ставка оподаткування прибутку. Аналіз результатів дослідженняМета: набути практичні навички розробки моделей імітаційних моделей динамічних систем у Simulink Хід роботиЗНАЙОМСТВО З SIMULINKSimulink - це комп'ютерна програмна система для моделювання систем управління. Simulink працює під управлінням MATLAB і використовує для моделювання всі його можливості. Ним моделюють лінійні, нелінійні, безперервні, дискретні та гібридні системи. При цьому, на відміну від класичних способів моделювання, користувачеві не потрібно досконально вивчати мову програмування і чисельні методи математики, а досить загальних знань, потрібних при роботі на комп'ютері, і знань тієї предметної області, в якій він працює. При роботі з Simulink користувач має можливість модернізувати бібліотечні блоки, створювати свої власні, а також складати нові бібліотеки блоків. При моделюванні користувач може вибирати метод рішення диференціальних рівнянь, а також спосіб зміни модельного часу (з фіксованим або змінним кроком). У ході моделювання є можливість стежити за процесами, що відбуваються в системі. Для цього використовуються спеціальні пристрої спостереження, що входять до складу бібліотеки Simulink. Результати моделювання можуть бути представлені у вигляді графіків або таблиць. Перевага Simulink полягає також у тому, що він дозволяє поповнювати бібліотеки блоків за допомогою підпрограм написаних як мовою MATLAB, так і на мовах C + +, Fortran і Ada. Модель досліджуваної системи складається у вигляді блок-схеми. Блоки перетягуються мишею з бібліотеки типових блоків Simulink, які є моделями елементів технічних чи економічних систем. Кожен типовий блок є об'єктом з графічним зображенням, графічним і математичним символом, з виконання програмою і числовими або формульними параметрами. Блоки з'єднуються лініями, що відображають рух матеріальних, фінансових та інформаційних потоків між об'єктами. Моделі можуть бути ієрархічними, тобто, включати підсистеми у вигляді одного блоку. Подвійним клацанням миші на блоці підсистеми відкриваємо вміст цієї підсистеми (більш низький рівень ієрархії). Після побудови моделі можна моделювати, використовуючи різноманітні методи інтегрування диференціальних рівнянь, що задаються в меню Simulink. Використовуючи блок Scope (Графобудівник) або Display (числове відображення), можна переглянути результати моделювання. 1. Запуск Simulink Simulink запускається з MATLAB. Його лейбл представлений на рис. 1. Puc. 1. - Представлення Simulink Є чотири варіанти запуску Simulink: 1. У командному вікні MATLAB ввести команду Simulink. 2. У рядку інструментів головного вікна MATLAB клацнути по кнопці Simulink (зелена з червоною цяткою ліворуч внизу, третя ліворуч від знаку help "?"). 3. Виконати команду Open в меню File і відкрити файл моделі (mdl-файл). 4. У провіднику Windows, двічі клацнувши лівою кнопкою миші, завантажте будь mdl-файл. Запуститься MATLAB, Simulink і завантажиться модель, готова до виконання ваших побажань. У меню моделі клацніть Simulation / Start і отримаєте результати моделювання. Останні два варіанти зручно використовувати для запуску вже готової і налагодженої моделі, коли потрібно лише провести розрахунки і не потрібно додавати нові блоки в модель. Використання першого і другого способів призводить до відкриття вікна оглядача розділів бібліотеки Simulink (рис. 2). Рис. 2 - Вікно оглядача розділів бібліотеки Список розділів бібліотеки Simulink представлений у вигляді дерева, і правила роботи з ним є загальними для списків такого виду. Піктограма згорнутого вузла дерева містить символ «+», а піктограма розгорнутого містить символ «-». Для того щоб розгорнути або згорнути вузол дерева, досить клацнути на його піктограмі лівою клавішею миші (ЛКМ). При виборі відповідного розділу бібліотеки в правій частині вікна відображається його вміст. Для роботи з вікном використовуються команди, зібрані в меню. Меню оглядача бібліотек містить наступні пункти: File (Файл) - робота з файлами бібліотек. Edit (редагування) - додавання блоків та їх пошук (по назві) View(Вид) – управління показом елементів інтерфейсу Help (Довідка) - вивід вікна довідки по огляду бібліотек Для роботи з оглядачем можна також використовувати кнопки на панелі інструментів (рис. 3). Рис. 3 - Панель інструментів огляду розділів бібліотеки 2. Закінчення сесії Simulink Традиційним для Windows способами закриваються вікна Simulink і MATLAB. 3. Бібліотеки блоків Simulink На рис.2 в лівому вікні бібліотеки блоків Simulink показані імена підбібліотеки. У правому - блоки кожної підбібліотеки. Вікно оглядача бібліотеки блоків містить такі елементи: Заголовок з назвою вікна - Simulink Library Browser. Меню з командами File, Edit, View, Help. Панель інструментів з ярликами найбільш часто вживаних команд. Вікно коментаря для виведення пояснюючого повідомлення про обраний блок. Рядок стану, що містить підказку по виконуваному дії. Кілька років тому бібліотека містила обмежену кількість типових блоків для моделювання систем управління. Нині бібліотека невиправдано розростається. У ній вже важко орієнтуватися. Ми розглянемо лише найбільш часто використовувані для моделювання економіки блоки. Пояснимо імена підбібліотек (розділів бібліотеки блоків). 1. CommonlyUsedBlocks - підбіблітека найбільш часто використовуваних блоків з інших бібліотек. 2. Continuous - блоки для моделювання лінійних систем у безперервному часу. 3. Discontinuties - нелінійні блоки. 4. Discrete - блоки для моделювання систем в дискретному часі. 5. Logic and Bit Operations - логічні і бітові операції. 6. LookupTables - операції з таблицями. 7. MathOperations - блоки математичних операцій. 8. ModelVerification - контроль змінних моделювання в заданих межах. 9. Model-Wide Utilities - блоки інформації про модель. 10. Ports & Subsystems - блоки для створення підсистем. 11.SignalAttributes - блоки, що відображають характеристики сигналів (ліній матеріальних, інформаційних і грошових потоків). 12. SignalRouting - маршрутизація сигналів (управління потоками). 13. Sinks - блоки прийому та відображення інформації. 14. Sources - джерела зовнішніх впливів на модель (екзогенних змінних). 15. UsedDefinedFunctions - не бібліотечні, не стандартні функції, створювані користувачем. 4. Створення найпростішої моделі Для створення нової моделі використовується традиційна для Windows команда меню fileðnew браузера. Для відкриття та редагування наявної моделі - fileðopen. При цьому розкривається пусте або заповнене моделлю вікно Simulink моделі. Спочатку треба ознайомитися з бібліотекою блоків. Намалювати на папері першу редакцію вашої блокової моделі. Потім сідати за комп'ютер. Створимо поетапно найпростішу модель безвідсоткового накопичувального рахунку (пенсійного, освітнього, весільного та ін.) Виконаємо команду меню fileðnew. З'являється нове порожнє вікно моделі з ім'ям untitled (рис. 4). Рис. 4 - Етапи створення моделі Знайдемо в бібліотеці розділ Continuous (системи безперервного часу) і в ньому Integrator(накопичувач). Натиснувши лівою кнопкою миші на блоці Integrator з бібліотеки перетягнемо його у вікно моделі. Стрілка ліворуч вказує на вхід інтегратора, тобто можливість підключення вхідного потоку коштів. Трикутник справа блоку є його вихідним сигналом і означає запас (сальдо) у накопичувачі. Будемо щомісяця вкладати у фонд гривні (можна тисячі і мільйони). Для цього з розділу Sourcesнатиснувши мишею блок константу (Constant). Створимо лінію потоку коштів від константи до інтегратора. Наведемо курсор на вихід блоку константи. Курсор з стрілки перетворюється на хрест. Протягнемо мишу до стрілки входу інтегратора. Хрест роздвоюється. Відпускаємо кнопку миші. Відбулося з'єднання блоків. Зникли знаки вхідних і вихідних портів блоків. Для перегляду динаміки грошей на нашому рахунку з бібліотеки Sinks витягнемо в модель графобудівник Scope. З'єднаємо з ним інтегратор лінією. Запустимо модель: меню SimulationðStart. Переглянемо результати моделювання. Двічі клацнемо по блоці Scope. Побачимо графік як на рис. 5. Рис. 5 - Графік накопичення засобів в інтеграторі !!!Якщо ви заплуталися у графіку, двічі клацніть по кнопці бінокля в середині панелі кнопок. Буде виконано автомасштабування. Графік стане наочним. Вісь часу (10 місяців) позначена внизу. Вертикальна вісь показує накопичення грошей при внесках по гривні на місяць. За десять місяців ми назбираємо 10 гривень. Ви створили найпростішу модель і виконали моделювання! Далі будемо нарощувати знання та вміння з техніки моделювання. 5. Редагування моделі, реконструкція і розширення 5.1. Вікно моделі і меню Вікно моделі Simulink - це типове вікно Windows-додатків. Меню вікна моделі містить команди для редагування моделі, її налаштування і управління процесом розрахунку, роботи файлами і т. п.: File (Файл) - робота з файлами моделей. Edit(Редагування) - зміна моделі та пошук блоків. У меню додані команди установки параметрів блоків і маскування підсистем. View (Вигляд) - управління показом елементів інтерфейсу. Важлива команда LibraryBrowser. Ви виконуєте її, коли треба викликати бібліотеку блоків, щоб поповнити модель. Simulation (Моделювання) - щоб визначити установки дня моделювання та управління процесом розрахунку. Format (Форматування) - зміна шрифту, зовнішній вигляд блоків і моделі в цілому. Tools (Інструментальні засоби) - застосування спеціальних засобів для роботи з моделлю (відлагоджувач, профайлер, генератор звітів та ін.) Help (Довідці) - виведення вікон довідкової системи. Для роботи з моделлю можна також використовувати кнопки на панелі інструментів У нижній частині вікна моделі знаходиться рядок стану, в якій відображаються короткі коментарі до кнопок панелі інструментів, а також до пункту меню, коли покажчик миші знаходиться над відповідним елементом інтерфейсу. Це ж текстове поле використовується і для індикації стану Simulink; Ready (Готовий) або Running (Виконання). У рядку стану показаний також масштаб відображення блок-діаграми у відсотках до вихідного значення. Індикатор ступеня завершеності сеансу моделювання з'являється після запуску моделі. Поточне значення модельного часу виводиться після запуску моделі. Відображається також найменування алгоритму розрахунку станів моделі (метод рішення). 5.2. Спільні операції з об'єктами 5.2.1. Виділення об'єктів Для виконання операцій над об'єктами моделі (блоками, лініями, іменами) їх треба виділити. Виділення одного об'єкта. Для виділення об'єкта необхідно клацнути на ньому мишею. З'являються чорні мітки в кутах виокремленого блоку або на початку і кінці лінії. Виділення декількох об'єктів. Для виділення декількох об'єктів по одному необхідно натиснути клавішу Shift і клацнути на кожному з об'єктів, що вибираються. Якщо клацнути по об'єкту повторно, він стає невиділеним. Для виділення області моделі встановіть курсор в початок області блоків, які хочете об'єднати. При натиснутій клавіші протягніть мишу по діагоналі в кінець діапазону. Пунктирний прямокутник оточить вибрані блоки та лінії. Відпустіть клавішу миші. Блоки і лінії, що потрапили в бокс, будуть виділені. Виділення всієї моделі. Для виділення всіх об'єктів в активному вікні виберіть команду SelectAll у меню Edit або натисніть Ctrl-A 5.2.2. Переміщення та копіювання об'єктів Переміщення об'єктів у вікні моделі здійснюється звичайним для Windows способом. Ви просто тягаєте їх лівою кнопкою миші. Для копіювання об'єкта в буфер його необхідно попередньо виділити, а потім виконати команду Edit / Copy або скористатися кнопкою на панелі інструментів. Для вставки об'єкта з буфера необхідно попередньо вказати місце вставки клацнувши лівою клавішею миші в місці вставки, а потім виконати команду Edit / Paste або скористатися кнопкою на панелі інструментів. Для вирізання об'єкта в буфер його необхідно попередньо виділити, а потім виконати команду Edit / Cut або скористатися кнопкою на панелі інструментів. При виконанні даних операцій слід мати на увазі, що об'єкти поміщаються у власний буфер МАТLАВ і недоступні з інших додатків. Використання команди Edit / CopymodeltoClipboard дозволяє помістити графічне зображення моделі в буфер Windows і робить його доступним для інших програм. При цьому копіюється тільки ціла модель. Не можна скопіювати лише частини моделі. Копіювання можна виконати, протягнувши об'єкт правою кнопкою миші або лівою, утримуючи клавіші Ctrl. При цьому буде створено копію об'єкта, яку можна перемістити в необхідне місце. 5.2.3. Видалення об'єктів Для видалення об'єкта його необхідно попередньо виокремити, а потім виконати команду Edit / Clear або скористатися клавішею Delete на клавіатурі. Слід врахувати, що команда Clear видаляє блок без приміщення його в буфер обміну. Однак цю операцію можна скасувати командою меню File / Undo. 5.2.4. Форматування об'єктів У меню Format (також як і в контекстному меню, що викликається натисканням правої клавіші миші на об'єкті) знаходиться набір команд форматування блоків. Команди форматування розділяють на кілька груп. 5.3. Операції з блоками Блоку як об'єкту притаманні методи, тобто операції, які може виконувати він або які можуть виконуватися над ним. Виділіть блок і викличте контекстне меню правою кнопкою миші. Ви побачите набір дозволених над блоком операцій. 5.3.1. Створити блок в моделі При створенні і редагуванні моделі необхідно копіювати блоки з бібліотеки або іншої моделі в поточну модель. Виконання даної операції складається з наступних кроків: - Відкрийте потрібну бібліотеку або вікно моделі. Перемістіть необхідний блок у вікно створюваної (редагованої) моделі. Для цього встановіть курсор всередину піктограми блоку, натисніть і утримуйте ліву кнопку миші. Перемістіть курсор у потрібне вікно і відпустіть клавішу миші. Дану операцію можна також виконати, використовуючи команди Copy і Paste з меню Edit. - Виділіть блок, який необхідно скопіювати. - Виберіть команду Copy з меню Edit/ - Зробіть активним вікно, в яке необхідно скопіювати блок. - Виберіть команду Paste з меню Edit. 5.3.2. Видалити блок Для видалення блоку необхідно вибрати блок (вказати курсор на його зображення і натиснути ліву клавішу "миші"), а потім натиснути клавішу Delete на клавіатурі. 5.3.3.Переместіть блок Будь – який блок моделі можна перемістити, виділивши його і пересунувши, тримаючи натиснутою ліву клавішу миші. Якщо до входів і виходів блоку підведені сполучні лінії, то вони лише скорочуються або збільшуються в довжині. Змінюється їхня конфігурація. Simulink автоматично перемалює лінії зв'язку до переміщеного блоку. Зберігається топологія схеми, що неможливо в Word, Excel та багатьох графічних програмах. У з'єднання можна також вставити блок, що має один вхід і один вихід. Для цього його потрібно розташувати в необхідному місці сполучної лінії. Для переміщення декількох блоків, включаючи з'єднувальні лінії необхідно виконати наступні дії: Виділіть блоки та лінії. Перемістіть блоки і лінії в нове положення і відпустіть клавішу миші. 5.3.4. Копіювати блок Натиснути клавішу Ctrl. Встановити курсор на дубльований блок натиснути ліву клавішу миші і перемістити копію блоку в нове положення. Відпустити клавішу миші і клавішу Ctrl. Дану операцію можна виконати, натиснувши праву клавішу миші і перемістивши копію блоку в нове положення. Simulink привласнює ім'я кожному з скопійованих блоків. Перший скопійований блок буде мати таке ж ім'я, як і блок в бібліотеці. Кожен наступний блок буде мати те ж ім'я з додаванням порядкового номера. При копіюванні блок отримує ті ж значення параметрів, що й вихідний блок. 5.3.5. Змінити розміри блоку Виділити блок. Навести курсор на будь-яку кутову мітку. Стрілка курсору роздвоїться. Лівою кнопкою миші потягати її. Розмір блоку буде змінюватися. На рис. 6 показаний цей процес. Розміри написів блоку при цьому не змінюються. Рис. 6 - Зміна розміру блоку 5.3.6. Орієнтація і вигляд блоку У вихідному положенні сигнал проходить через блок зліва направо (зліва - входи, справа - виходи). Для зміни орієнтації виділеного блоку необхідно в меню Format застосувати команди: FlipBlockповорот блоку на 180 ˚, тобто дзеркальне відображення щодо вертикальної осі симетрії. RotateBlock- поворот блоку за годинниковою стрілкою на 90 ˚. Showdropshadow - показ тіні від блоку. Showportlabels - показ міток портів. Зміна кольорів відображення блоків: Foregroundcolor - вибір кольору ліній для виділених блоків. Backgroundcolor - вибір кольору фону виділених блоків. Screencolor - вибір кольору фону для всього вікна моделі. 5.3.7. Імена блоків Всі імена блоків в моделі повинні бути унікальними і отримати мінімум один символ. Якщо блок орієнтований зліва направо, то ім'я знаходиться за замовчуванням під блоком, справа наліво - над блоком, зверху вниз - зліва від блоку, знизу вгору - праворуч від блоку. Бібліотечне ім'я блоку ви майже завжди будете міняти на отримуване ім'я, відповідне об'єкту дослідження. Наприклад, ім'я блоку Intergrator ви заміните на Saving account (готельний рахунок). Можете використовувати транслітерацію латиною, як це робили казахи і татари до Великої жовтневої соціалістичної революції. Замість Рахунок ви напишіть Schet. Для зміни імені блоку необхідно клацнути на ньому і відредагувати його, використовуючи клавіші управління курсором, клавіші Del, Backspase, Enter. Для закінчення редагування необхідно клацнути в будь-якому іншому місці вікна. Для зміни шрифту необхідно виділити блок, потім виконати команду Font з меню Format. Потім необхідно вибрати шрифт із запропонованого списку. Для зміни місця розташування імені виділеного блоку є дві можливості: Лівою кнопкою миші пересунути ім'я на протилежну сторону блоку. Виконати команду меню FormatðFlipName. Ім'я переміститься на протилежну сторону блоку. Заховати ім'я можна командою меню FormatðHideName. Показати - командою FormatðShowName.. 5.3.8.Встановлення параметрів блоку Установка значень параметрів блоку виконується в діалоговому вікні блоку. Для виклику діалогового вікна параметрів блоку необхідно двічі клацнути на блоці. Приклад вікна параметрів блоку константи наведено на рис.7. У константи лише один параметрів - її значення. У нас стоїть одна гривня. Можемо замінити одиницю на будь-яке число. Інші блоки можуть мати більше параметрів, зрозуміти і підібрати які вдається не відразу. При завданні чисельних параметрів слід мати на увазі, що в якості десяткового роздільника повинна використовуватися точка, а не кома. Після внесення змін потрібно закрити вікно кнопкою ОК. Рис. 7 - Діалогове вікно встановлення параметрів блоку 5.4. Операції з лініями Сигнали (матеріальні, грошові та інформаційні потоки) в моделі передаються по лініях. Кожна лінія може передавати скалярний або векторний сигнал. Лінія з'єднує вихідний порт одного блоку з вхідним портом іншого блоку. Лінія може також з'єднувати вихідний порт одного блоку з вхідними портами інших блоків за допомогою розгалуження лінії. 5.4.1. Створення лінії між блоками Для з'єднання вихідного порту одного блоку з вхідним портом іншого блоку необхідно виконати наступні дії: - Наведіть курсор на вихідний порт з правого боку блоку. Стрілка заміниться перехрестям. - Лівою кнопкою миші пересуньте курсор до вхідного порту блоку. Перехрестя заміниться подвійним перехрестям. Відпустіть клавішу миші. Simulink замінить символи порту сполучною лінією з відображенням напрямку передачі сигналу стрілкою. Лінії можна малювати як від вхідного порту, до вихідного, так і навпаки, від вихідного порту до вхідного. Simulink малює горизонтальні і вертикальні сегменти ліній. Для створення діагональної лінії натисніть і утримуйте клавішу Shift під час малювання. 5.4.2. Від'єднання блоку від ліній Натисніть клавішу Shift і перемістіть блок у нове положення. Зв'язки розірвуться. Незручно, що рвуться всі зв'язки, а не одна. 5.4.3. Створення нової галузі лінії Розгалужена лінія починається на існуючій лінії і передає її сигнал до вхідного порту іншого блоку. Неможливо направляти лінію в лінію. Можна лише відгалужувати лінію з лінії. Встановіть курсор на точку лінії, з якою повинна починатись розгалужена лінія. Натиснути і утримувати клавішу Ctrl, натисніть і утримуйте ліву кнопку миші. Проведіть лінію до вхідного порту необхідного блоку, потім відпустіть клавішу Ctrl і клавішу миші. Створення розгалужується лінії також можливо за допомогою правої клавіші миші. Натисніть правою кнопкою в потрібному місці лінії-джерела і протягніть до блоку призначення. 5.4.4. Створення сегмента лінії Лінії можуть бути намальовані посегментно. У цьому випадку для створення наступного сегмента лінії необхідно встановити курсор в кінець попереднього сегмента і намалювати наступний сегмент. Переміщення сегмента лінії Встановіть курсор на сегмент, який необхідно перемістити Натисніть і утримуйте ліву кнопку миші. Перемістіть курсор до нового положення сегмента. Відпустіть клавішу миші. Не можна перемістити сегмент, підключений безпосередньо до порту блоку. Поділ лінії на сегменти Виділіть лінію, клацнувши по ній мишею. Встановіть курсор в точку, в якій, лінія повинна бути розділена на два сегменти. Утримуючи клавішу Shift, натисніть і утримуйте клавішу миші. Курсор набуде вигляду кола. На лінії утворюється злам. Пересуньте курсор в нове положення зламу. Відпустіть клавішу Shift і клавішу миші. Переміщення зламу лінії Встановіть курсор на злам, потім натисніть і утримуйте ліву клавішу миші. Курсор набуде вигляду кола з центром в точці зламу. Пересуньте курсор в нову позицію. Відпустіть клавішу миші. 5.4.5. Мітки ліній (сигналів, потоків) Мітка (ім'я, ідентифікатор) сигналу розмішається над або під горизонтальною лінією, ліворуч або праворуч від вертикальної лінії. Мітка може бути розташована на початку, в кінці або посередині лінії. Для кращого розуміння схеми економісти наприкінці імені змінних ставлять букву: s (stock) - позначає запас, фонд, рівень показника. f (flow) - позначає матеріал, фінансовий потік або швидкість зміни показника. i (information) - позначає інформацію для обчислень або прийняття рішень. Створення мітки Для створення мітки сигналу необхідно двічі клацнути на лінії і ввести текст мітки. Клацнути треба точно на лінії, в іншому випадку буде створений коментар до моделі, а не мітка. Для завершення редагування клацніть мишею в будь-який інший частині моделі. Редагування позначки Для редагування мітки сигналу необхідно її селектувати клацанням миші. Традиційним для Windows способом мітка в текст. Клацнути мишею за межами контуру мітки. Переміщення мітки Виділити мітку. Протягнути за контур стрілкою миші до нового положення у лінії. Копіювання мітки Пересунути мітку при клавіші Ctrl до нового положення на лінії. Видалення мітки Для видалення мітки натисніть і утримуйте клавішу Shift, виділіть мітку і видаліть її, натиснувши клавішу Del або Backspace. Поширення мітки Поширення міток лінії - це автоматичне перенесення імені мітки до сегментів однієї лінії, розірваним за допомогою блоків From / Goto, Mux. Для поширення мітки створіть у другому і наступних сегментах лінії мітки з ім'ям «<». Після виконання команди UpdateDiagram з меню Edit в цих сегментах автоматично будуть проставлені мітки. 5.5. Додавання текстових написів Для поліпшення зрозумілості моделі використовуйте текстові написи (коментарі). Коментарі можна вводити в будь-якому вільному місці моделі. Всі операції з коментарями аналогічні операціям з мітками, але коментарі не прив'язані до ліній або блоків. Для створення напису потрібно вказати мишею місце написи і двічі клацнути лівою клавішею миші. Після цього з'явиться прямокутна рамка з курсором вводу. Вводите текст. Після закінчення введення клацніть мишею в будь-якому місці вікна моделі. Аналогічним чином можна змінити і підписи до блоків моделей. Коментарі широко використовуються в моделях. Для зміни шрифту необхідно виділити коментар, потім вибрати команду Font з меню Format. Потім виберіть у вікні діалогу шрифт, його розмір і атрибути. Все виконуються як у відомих текстових редакторах. Font - форматування шрифту написів і текстових блоків. Textalignment- вирівнювання тексту в текстових написах. Слід мати на увазі, що Simulink не адаптований до використання кириличних шрифтів, і застосування їх може мати самі різні наслідки - відображення написів у нечитабельному вигляді, обрізання написів, повідомлення про помилки, а також неможливість зберегти або відкрити модель після її збереження. Тому застосування написів українською чи російською мовами для поточної версії Simulink вкрай небажано. 5.6. Збереження моделі Після складання розрахункової схеми необхідно зберігати її у вигляді файлу на диску, вибравши меню File /SaveAs... у вікні схеми і вказавши папку та ім'я файлу. Слід мати на увазі, що ім'я файлу не повинне перевищувати 32 символів, повинно починатися з літери і не може містити символи кирилиці і спецсимволи. Ця ж вимога ставитися і до шляху файлу (до тих папках, в яких зберігається файл). При подальшому редагуванні схеми користуватися пунктом меню File/ Save. При повторних запусках програми SIMULINK завантаження схеми здійснюється за допомогою меню File /Open у вікні оглядача бібліотеки або з основного вікна MATLAB. 5.7. Друк моделі Друк моделі виконується командою Print з меню File або командою Print в командному рядку MATLAB. На відміну від інших програмних продуктів тут в діалоговому вікні налаштування друку вибирається друк або поточну підсистему, або одночасно друк підсистеми верхнього і нижнього рівня. 5.8. Виклик тексту моделі Для першого запису моделі на диск необхідно виконати команду Save As з меню File. Вибрати папку для файлу і дати йому ім'я. Simulink записує модель шляхом генерації спеціального файлу з розширенням .mdl. Файл можна редагувати не тільки в режимі блок-схеми, але і в режимі тексту програми мовою MATLAB в редакторі - відладчику. Для цього у вікні поточного довідника MATLAB клацніть мишею на імені файлу, правою кнопкою викличте контекстне меню, виберіть команду OpenasText. Текст файлу відкриється в редакторі. Текстове представлення моделі дозволяє швидко виявити такі помилки переглядом тексту моделі. 5.9. Створення підсистем Якщо зростають складність і розмір моделі, її можна спростити, згрупувавши блоки в підсистеми. Використання підсистем дає такі переваги: • Скорочення кількості блоків, виведених у вікні моделі; • Об'єднання функціонально пов'язаних блоків разом; • Можливість створення ієрархічних блок-схем. Для створення підсистем існують наступні можливості: • Додати блок Subsystem в модель, потім відкрити цей блок і створити підсистему у вікні, підсистеми. • Виділити частину блок-схеми моделі і об'єднати її в підсистему. Створення підсистеми додаванням блоку Subsystem - Скопіюйте блок Subsystem з бібліотеки Ports & Subsystem в модель. - Відкрийте блок Subsystem, двічі клацнувши по ньому. - У порожньому вікні підсистеми створіть підсистему. Використовуйте блоки In і Outдля створення входів і виходів підсистеми. Створення підсистеми угрупованням існуючих блоків Якщо модель вже містить блоки, які необхідно об'єднати в підсистему, її можна створити угрупованням цих блоків: Виділіть об'єднавчим боксом блоки і сполучні лінії, які необхідно включити в підсистему. Виберіть команду Create Subsystem з меню Edit. Simulink замінить виділені блоки блоком Subsystem. Якщо відкрити блок Subsystem, Simulink відобразить підсистему. Simulink додає блоки In і Out для відображення входу і виходу в систему більш високого рівня. Застосування підсистем широко представлено в прикладах моделювання економіки в наступних лабораторних роботах. 5.10. Зведені таблиці дій з редагування блок-схем Позначення: ЛКМ - ліва клавіша миші, ПКМ - права клавіша миші. Дії мишею і клавіатурою при маніпуляції блоками.
Дії мишкою і клавіатурою по маніпуляції лініями
Дії мишкою і клавіатурою по маніпуляції коментарями
ПРИКЛАДИ МОДЕЛЮВАННЯ ЕКОНОМІКИ1. ІМІТАЦІЙНА МОДЕЛЬ ПОШУКУ ОПТИМАЛЬНОЇ СТАВКА ОПОДАТКУВАННЯ ПРИБУТКУ У ЦІЙ МОДЕЛІ методами імітаційного моделювання ми будемо шукати оптимальну ставку оподаткування прибутку. Тут використовується найпростіший метод пошуку на сітці факторів. Планування експериментів полягає в зміні факторів з постійним кроком і побудові експериментальних графіків залежності ставки від факторів. Оптимальні величини ставок визначаються не алгоритмічно (програмою), а візуально за графіками. Визначення проблеми Держава прагне збільшити податки, щоб наповнити бюджет для виконання своїх соціально-економічних і оборотних функцій. Бізнес скаржиться, що податковий тягар великий і податкові ставки треба зменшити. Економісти стверджують, що великі податки стримують розвиток економіки, а значить і майбутнє наповнення бюджету. Проблема: теорія і практика, законодавці не знають обґрунтування величин прийнятних для всіх податкових ставок. Ні в одному законі жодної держави ви не знайдете обґрунтування величини податкових ставок. Парламентарі беруть їх зі стелі і змінюють методом проб і помилок. Уточнення і обмеження проблеми. Незважаючи на масу податків і термінів джерелом розвитку бізнесу та джерелом податкового наповнення бюджету в кінцевій інстанції є прибуток підприємств, тобто перевищення доходів над витратами. Тому досліджуємо лише ставку податку на прибуток. Робоча гіпотеза. Надходження до бюджету за певний період часу будуть найбільшими не при максимальній, а при оптимальній для бюджету ставці податку. З ростом податкової ставки надходження до бюджету будуть збільшуватися, а потім зменшуватися. Постановка завдання: дослідити залежність надходжень до бюджету від величини податкової ставки на прибуток. Неможливо в реальній економіці кожен місяць або рік міняти законом податкові ставки і реєструвати надходження до бюджету. Ми зруйнуємо економіку. Залишається тільки моделювати. 1.1 Визначення проблемної системи У проблемну систему включаємо об'єкти, їх взаємозв'язку і показники, від яких залежить вирішення проблеми. Законодавець оголошує ставку податку. Бюджет отримує податкові відрахування від прибутку підприємств. Фірми володіють власним капіталом, виробляють прибуток, відраховують за податковою ставкою кошти до бюджету. Постподатковий прибуток як нерозподілений прибуток повністю включається у власний капітал фірми. Дивіденди не виплачуються, ніяких інших відрахувань від прибутку не проводиться. Весь прибуток розподіляється тільки на два потоки: до бюджету, а залишок у власний капітал фірми. 1.2 Математичні моделі елементів системи Суму податкових надходжень до бюджету за модельований період часу можна представити формулою: де BD1 - сума коштів, що надійшли до бюджету від моменту початку моделювання до кінця року t, грн.; PRF1 - доподатковий прибуток (profit), отриманий підприємством за рік t, грн / рік; TXRT - ставка податку на прибуток (tax rate); t - час, рік. Для запасів це момент - кінець року, для потоків це інтервал часу певного року; tb - початковий (begin) інтервал моделювання; tf - останній (final) рік моделювання. Капіталізований підприємством за період моделювання залишок прибутку Прибуток за t рік де RN - рентабельність капіталу підприємства. Задається як параметр підприємства, вихідне дане. Вихідні дані для параметрів, змінних і показників моделі В якості вихідних даних задаються числові значення: податкової ставки, рентабельності, початкового капіталу фірм і інтервалу моделювання. Засоби управління експериментом включають програми автоматично введення екзогенних факторів і відображення таблиць і графіків відрахувань до бюджету і зростання капіталу підприємства. На перших етапах роботи повна автоматизація планування експериментів та обробки результатів недоцільна, оскільки студент отримує готові результати, не проявивши активності, творчості, пошуку. Техніка виконання. Встановлювати для підприємств різні ставки податків, вимірювати надходження до бюджету і характеристики розвитку підприємств та економіки. 1.3. Математична модель у безперервному часу Сума податкових надходжень від підприємств за моделюємий період накопичується на бюджетних рахунках і представляється інтегралом: де BD (t) - сума коштів, що надійшла до бюджету від початку моделювання до моменту t, грн.; PRF (t) - доподатковий прибуток (profit), одержуваний підприємством у момент t, грн./рік; ТХRТ - ставка податку на прибуток (tax rate); t - поточний час, рік. tb - початковий (begin) момент моделювання; tf - останній (final) момент моделювання. Капіталізований підприємством за час моделювання залишок прибутку Прибуток у момент t де RN - рентабельність капіталу підприємства. Задається як параметрів підприємства, вихідне дане. 1.4. Комп'ютерна модель в програмі Simulink Комп'ютерна Simulink-модель представляється у вигляді блок-схеми, що містить типові функціональні блоки систем правління і керованих об'єктів. У блоки включені комп'ютерні програми, що обчислюють математичні функції. Значки на блоках представляють формули аналітичних висловлювань передавальних функцій як відношення вихідної інформації до вхідних. Спочатку студент складає модель з типових елементів бібліотеки на аркуші паперу. Потім за комп'ютером перетягує мишею блоки з вікна бібліотеки у вікно моделі і з'єднує їх стрілками, моделюючими матеріальні, грошові і інформаційні потоки, запаси і сигнали. Вікно моделі представлено на рис. 8. Рис. 8 - Модель для визначення оптимальної ставки оподаткування прибутку підприємства На схемі лівий блок з ім'ям Бізнес представляє накопичувач власного капіталу підприємства, з бібліотеки елементів. Він узятий як блок «Інтегратор дискретного часу». На вхід блоку надходить потік капіталовкладень СарF. Це постподатковий, нерозподілений прибуток. Він акумулюється бізнесом і збільшує його власний капітал. Вихід блоку - це величина капіталу бізнесу СарS. Праворуч від бізнесу блок множення (з хрестиком) виробляє потік прибутку Рrft як добуток капіталу підприємства на рентабельність Rntb. Рентабельність задається бібліотечним блоком «Константа» з ім'ям Rntb. Під ним як коментар заданий вектор плану експериментів за фактором рентабельності [0.2:0.2:0:8]. У матричної лабораторії Мatlab це означає, що ми почнемо імітаційні експерименти для рентабельності, що дорівнює 20%, з кроком в 20% і останнім експериментом для 80%. Для автоматизації експериментів константу рентабельності ми можемо замінити на змінну і управляти се значеннями з програмного файлу Matlab. Нижче блоку рентабельності розташований блок Score1 - це графічний пристрій для відображення змінної капітана підприємства СарS. Наступний блок множення (з хрестиком) обчислює множення потоку прибутку на податкову ставку TaxRate. Це потік відрахувань від прибутку до держбюджету ТхF. Ставка податку задається бібліотечним блоком «Константа» з ім'ям ТахRate. Під ним як коментар заданий вектор плану експериментів за фактором податкова ставка [0:0.1:1:0]. Це означає, що ми почнемо імітаційні експерименти для ставки, яка дорівнює 0%, з кроком в 10% і останнім експериментом для 100%. Для автоматизації експериментів константу податкової ставки ми можемо замінити на змінну і управляти її значеннями з програмного файлу Маtlab. Блок Держбюджет представлений інтегратором. Він акумулює податкові надходження ТхF за період моделювання у вигляді змінної Bdjs. Праворуч від нього блок Scope будує графік накопичення коштів від податку в бюджеті. Блок Display відображає числові значення BdjS. Круглий блок вгорі обчислює прибуток у розпорядженні підприємства як різницю між доподатковим прибутком і частиною прибутку, що відраховується за податковою ставкою у бюджет. Вихідні дані для параметрів, змінних і показнику моделі В якості вихідних даних задаються числові значення: податкової ставки, рентабельності, початкового капіталу фірм і інтервалу моделювання. Метод рішення Виконується імітаційне моделювання процесу розвитку підприємства і накопичення податкових коштів у бюджеті в часі рішенням системи інтегральних рівнянь стандартними засобами Matlab і Simulink. Засоби управління експериментом Засоби відображення інформації про показники експериментів - це графічні пристрої Scope та індикатори чисел Display. Засоби управління експериментом - це діалогові вікна констант-факторів: ставки податку та рентабельності. Подвійним клацанням миші студент відкриває вікна і змінює значення факторів. Встановлює для підприємств різні ставки податків, вимірює надходження до бюджету і характеристики розвитку підприємств. Після ручного управління експериментом коли покращиться розуміння і знання предмета дослідження, можна приступити до автоматизації планування і управління експериментом. Для цього складається програма на мові Matlab у файлі з розширенням .m. 1.5. Програма управління експериментами та її розяснення Це лише варіант програми. Просунутий студент напише програму можливо краще. % Optimal profit tax rate simulation % File: C: \ Csr_MtLb \ TxRt \ TaxRate_Dsc.mdl % ======================================= Path (path, 'C: \ Csr_MtLb \ Txrt')% Set model Path % ======================================= Open_system ('TaxRate_Ddc')% Load TaxRate_Dsc.mdl TaxRate = [0:0.05:0.7]% План-вектор експерименту за ставкою податку For RnTb = 0.2:0.2:1% Цикл і план-вектор по рентабельності Sim ('TaxRate_Dsc')% Run model Plot (TaxRate, ScopeData (end, 2: end))% Креслити графік надходжень до бюджету Hold on% Дозволити доповнення графіка кривими Grid% Креслити сітку End Hold off% доповнення графіка % ======== End TaxRate_DcsM.m program =============== У m-файлі програми за знаком відсотка завжди йдуть пояснюючі коментарі. Вони не є командами і комп'ютером не виконуються. У першому рядку програми дається її призначення або назва. У другому рядку повне ім'я. M-файлу, який містить нашу програму для управління експериментами над Simulink-моделлю та ім'я файлу Simulink-моделі з розширенням .mdl. Четвертий рядок встановлює шлях файлової системи до моделі. Шостий рядок командою open_system завантажує з диска модель в оперативну пам'ять. Сьомий рядок привласнює змінній моделі TaxRate вектор плану експериментів за податковою ставкою. У рядках з 8 по 13 виконується цикл For end для проведення експериментів при різних величинах рентабельності бізнесу. У дев'ятому рядку командою sim запускається модель і починається моделювання, імітація податкової взаємодії держави і підприємства. Після закінчення імітації команда plot креслить один графік, використовуючи дані робочого (workspace) простору Matlab, записані туди графічним конструктором sсоре. Оператор hold дозволяє доповнювати рисунок графіками кривих, розрахованими для наступних значень циклів рентабельності. 1.6. Порядок виконання роботи Вигляд екрану лабораторної моделі представлений на рис. 9. Зліва розташоване вікно редактора програм з частковою видимістю m-файлу програми управління двохфакторним експериментом. Справа вгорі Simulink-модель. Справа внизу вікно Scope накопичення коштів у бюджеті для різних значень вектора податкових ставок. У центрі вікно графіків двохфакторного імітаційного експерименту для різних ставок податку та рентабельності, намальованого командою plot програми Matlab. Рис. 9 - Вигляд екрану лабораторної моделі для дослідження оптимальної ставки оподаткування Завдання №1 Однофакторний імітаційний експеримент Дослідити залежність податкових надходжень до бюджету за конкретний період часу від величини податкової ставки на прибуток підприємств. Запустивши модель з меню Simulation спостерігаємо у вікнах Scope зміну показників підприємств і бюджету в часі: зростання надходжень прибутку, відрахувань з податку до бюджету та капіталізацію нерозподіленого прибутку бізнесом. Встановлюючи різні ставки податку, кожний раз проганяє модель. Серія експериментальних графіків накопичення коштів у бюджеті за час моделювання представлена на рис. 10. Рис. 10 - Надходження засобів до бюджету Графіки змін капіталу представлені на рис. 11. Рис. 11 - Ріст капіталу фірми У міру збільшення ставки надходження до бюджету збільшуються, а потім зменшуються. Має місце яскраво виражений максимум, тобто оптимальна для бюджету ставка податку. Імітація підтверджує і уточнює логічну словникову модель здорового глузду: віднімеш у податки багато сьогодні, значить, позбавиш бізнес розвитку завтра отримаєш до бюджету менше або взагалі нічого не отримаєш. Завдання №2 Двофакторний імітаційний експеримент Дослідити залежність бюджетно-оптимальної ставки від ефективності роботи фірми. Як показник ефективності виберемо рентабельність, тобто відношення прибутку до оподаткування до капіталу. У командному вікні Matlab відкриємо вищеописаний файл TaxRate_DscM.m. Файл відкриється у вікні редактора. Цей файл буде керувати двохфакторним експериментом. Запустимо програму командою меню ToolsðRun. У результаті моделювання Matlab побудує графіки залежності надходжень до бюджету від податкової ставки і рентабельності підприємств, рис. 12. Рис. 12 - Залежність надходжень в бюджет від податкової ставки для підприємств різної рентабельності Аналіз результатів Чим вище рентабельність підприємства, тим яскравіше виражена оптимальна ставка оподаткування. З ростом рентабельності оптимальна ставка зменшується (зсувається вліво), прагнучи до фіксованої величини, на наших графіках приблизно до 23%. Аналіз результатів імітації буде несподіваним для публіки, схвильованої надприбутками корпорацій, та країн з прогресивним оподаткуванням. Чим вище рентабельність бізнесу, тим вигідніше державі зменшити ставку податку. Підприємства з низькою рентабельністю доцільно обкладати вищими податками. Вибраковувати, як це робить селянин з малопродуктивною худобою, а заводи - з неефективним обладнанням. Зрозуміло, врожай не збирають, поки він не дозрів, і молодим підприємствам необхідний пільговий період. Це дослідження можна розширити, вивчаючи залежність руху оптимальної ставки від інших факторів: горизонту планування, лага капіталовіддачі, початкового капіталу підприємства та ін. Завдання №3. Оформити звіт. Замість наведених у цьому тексті рисунків мають бути скриншоти реальних вікон, з якими ви працювали і які отримали в результаті моделювання. З повагою ІЦ "KURSOVIKS"! |