S-функції використовують спеціальний синтаксис запиту, який дає можливість Вам взаємодіяти з Солвер рівнянь Simulink. Ця взаємодія дуже схоже до взаємодії, яке має місце між Солвер і вбудованими блоками Simulink. Форма S-функції є дуже загальною і може описати безперервні, дискретні, і гібридні системи.
Використання S-функцій в Моделях
Щоб включати S-функцію в модель Simulink, перетягніть блок S-Function від бібліотеки блоку Functions і Tables Simulink в модель. Тоді визначте ім'я S-функції в поле S-function діалогового вікна блоку S-Function як ілюстровано на малюнку нижче.
Малюнок 1-1: Відносини між блоком S-функції, його діалоговим вікном, і вихідним файлом, який визначає поведінку блоку
Там, де необхідно використовувати S-функцію
Саме загальне призначення S-функцій - створити замовні блоки Simulink. Ви можете використовувати S-функції для разнообразys [додатків, включаючи:
- Додавання нових універсальних блоків Simulink
- Додавання блоків, які представляють апаратні драйвери пристрою
- Включення існуючого C коду в моделювання, яке описує систему як математичний набір рівнянь
- Використання графічних мультипликаций
Перевага використання S-функцій полягає в тому, що Ви можете формувати універсальний блок, який Ви можете використовувати багато разів в моделі, змінюючи параметри з кожним зразком блоку.
У цьому прикладі, модель містить два зразки блоку S-Function. Обидві посилання блоків вказують той же самий вихідний файл (mysfun, який може бути або C MEX-ФАЙЛОМ або M-файлом). Якщо і C MEX-файл і M-файл існують з тим же самим ім'ям, C MEX-файл має пріоритет і є файлом, який S-функція використовує.
Як працюють S-функції
Щоб створювати S-функції, Ви повинні знати, як S-функції працюють. Розуміння, як робота S-функцій, в свою чергу, вимагає розуміння, як Simulink моделює модель, і це, в свою чергу вимагає розуміння математики блоків. Цей розділ тому починається, пояснюючи математичні відносини між входами блоку, станами, і виходами.
Математика Блоків Simulink
Блок Simulink складається з набору входів, набір станів, і набору виходів, де виходи - функція типового часу, входів, і станів блоку.
Наступні рівняння виражають математичні відносини між входами, виходами, і станами.
стадії Моделювання
Simulink виконує моделювання поетапно.
Спочатку протікає стадія ініціалізації. У цій стадії, Simulink включає бібліотечні блоки в модель, розмножує розміри, типи даних, і визначає час семплювання, оцінює блокові параметри, визначає блоковий порядок виконання, і розподіляє пам'ять.
Потім Simulink переходить до циклу моделювання, де кожен прохід через цикл, називається кроком моделювання. Протягом кожного кроку моделювання, Simulink виконує кожен з блоків моделі в порядку, визначеному протягом ініціалізації. Для кожного блоку, Simulink викликає Callback функції моделі, які обчислюють стану блоку, похідні, і виходи для поточного часу семпліювання. Це триває, поки моделювання не закінчене.
Малюнок нижче ілюструє стадії моделювання.
Малюнок 1-2: Як Simulink виконує моделювання.
Методи Callback S-функції
S-функція включає набір методів callback S-функції. які виконують завдання, необхідні в кожній стадії моделювання. Протягом моделювання моделі, на кожній стадії моделювання, Simulink викликає відповідні методи для кожного блоку S-fфункціі в моделі. Завдання, виконані методами S-функції включають: