Cистема чисельно-математичного моделювання MatLab
- 9.7.1. Мультиплексор (змішувач) Mux
- 9.7.2. Демультиплексор (роздільник) Demux
- 9.7.3. Блок шинного формувача Bus Creator
- 9.7.4. Блок шинного селектора Bus Selector
- 9.7.5. Блок селектора Selector
- 9.7.6. Блок присвоєння нових значень елементів масиву Assignment
- 9.7.7. Блок об'єднання сигналів Merge
- 9.7.8. Блок об'єднання сигналів в матрицю Matrix Concatenation
- 9.7.9. Блок передачі сигналу Goto
- 9.7.10. Блок прийому сигналу From
- 9.7.11. Блок ознаки видимості сигналу Goto Tag Visibility
- 9.7.12. Блок створення загальної області пам'яті Data Store Memory
- 9.7.13. Блок записи даних в загальну область пам'яті Data Store
- 9.7.14. Блок зчитування даних із загальної області пам'яті Data Store
- 9.7.15. Блок перетворення типу сигналу Data Type Conversion
- 9.7.16. Блок перетворення розмірності сигналу Reshape
- 9.7.17. Блок визначення розмірності сигналу Width
- 9.7.18. Блок визначення моменту перетину порогового значення Hit Crossing
- 9.7.19. Блок установки початкового значення сигналу IC
- 9.7.20. Блок перевірки сигналу Signal Specification
- 9.7.21. Датчик властивостей сигналу Probe
- 9.7.22. Блок, що задає кількість ітерацій Function-Call Generator
- 9.7.23. Інформаційний блок Model Info
- 9.8. Function Tables - блоки функцій і таблиць
- 9.8.1. Блок завдання функції Fcn
- 9.8.2. Блок завдання функції MATLAB Fcn
- 9.8.3. Блок завдання статечного многочлена Polynomial
- 9.8.4. Блок одновимірної таблиці Look-Up Table
- 9.8.5. Блок двовимірної таблиці Look-Up Table (2D)
- 9.8.6. Блок багатовимірної таблиці Look-Up Table (n-D)
- 9.8.7. Блок таблиці з прямим доступом Direct Loop-Up Table (n-D)
- 9.8.8. Блок роботи з індексами PreLook-Up Index Search
- 9.8.9. Блок інтерполяції табличній функції Interpolation (n-D) using PreLook-Up
9.7.1. Мультиплексор (змішувач) Mux
Об'єднує вхідні сигнали в вектор.
Number of Inputs - Кількість входів.
Display option - Режим перегляду. Вибирається зі списку:
bar - Вертикальний вузький прямокутник чорного кольору.
signals - Прямокутник з білим фоном і відображенням міток вхідних сигналів.
none - Прямокутник з білим фоном без відображення міток вхідних сигналів.
Вхідні сигнали блоку можуть бути скалярними і (або) векторними.
Якщо серед вхідних сигналів є вектори, то кількість входів можна задавати як вектор із зазначенням числа елементів кожного вектора. Наприклад, вираз [2 3 1] визначає три вхідних сигналу, перший сигнал - вектор з двох елементів, другий сигнал - вектор з трьох елементів, і останній сигнал - скаляр. У тому випадку, якщо розмірність вхідного вектора не збігається із зазначеною в параметрі Number of Inputs. то після початку розрахунку Simulink видасть повідомлення про помилку. Розмірність вхідного вектора можна задавати як -1 (мінус один). В цьому випадку розмірність вхідного вектора може бути будь-хто.
Параметр Number of Inputs можна задавати також у вигляді списку міток сигналів, наприклад: Vector1, Vector2, Scalar. В цьому випадку мітки сигналів будуть відображатися поруч з відповідними сполучними лініями.
Сигнали, що подаються на входи блоку повинні бути одного типу (дійсного або комплексного).
Приклади використання блоку Mux показані на рис. 9.7.1.
Мал. 9.7.1. Приклади використання блоку Mux
9.7.2. Демультиплексор (роздільник) Demux
Розділяє вхідний векторний сигнал на окремі складові.
Number of Outputs - Кількість виходів.
Bus Selection Mode (прапорець) - Режим поділу векторних сигналів.
Вхідним сигналами в звичайному режимі є вектор, сформований будь-яким способом. Вихідними сигналами є скаляри або вектори, кількість яких і розмірність визначається параметром Number of Outputs і розмірністю вхідного вектора.
Якщо кількість виходів P (значення параметра Number of Outputs) одно розмірності вхідного сигналу N. то блок виконує поділ вхідного вектора на окремі елементи.
Якщо кількість виходів P менше, ніж розмірність вхідного сигналу N. то розмірність перших P-1 вихідних сигналів дорівнює відношенню N / P. округленому до найближчого більшого числа, а розмірність останнього вихідного сигналу дорівнює різниці між розмірністю вхідного сигналу і сумою розмірностей перших P-1 виходів. Наприклад, якщо розмірність вхідного сигналу дорівнює 8. а кількість виходів дорівнює 3. то перші два вихідних вектора матимуть розмірність ceil (8/3) = 3. а останній вихідний вектор матиме розмірність 8 - (3 + 3) = 2.
Параметр Number of Outputs може бути заданий також за допомогою вектора, що визначає розмірність кожного вихідного сигналу. Наприклад, вираз [2 3 1] визначає три вихідних сигнали, перший сигнал - вектор з двох елементів, другий сигнал - вектор з трьох елементів, і останній сигнал - скаляр. Розмірність можна також задавати як -1 (мінус один). В цьому випадку розмірність відповідного входу визначається як різниця між розмірністю вхідного вектора і сумою размерностей заданих вихідних сигналів. Наприклад, якщо розмірність вхідного вектора дорівнює 6. а параметр Number of Outputs заданий виразом [1 -1 3]. то другий вихідний сигнал буде мати розмірність 6 - (3 + 1) = 2.
Приклади використання блоку Demux показані на рис. 9.7.2.
Мал. 9.7.2. Приклади використання блоку Demux
У режимі Bus Selection Mode блок Demux працює не з окремими елементами векторів, а з векторними сигналами в цілому. Вхідний сигнал в цьому режимі повинен бути сформований блоком Mux або іншим блоком Demux. Параметр Number of Outputs в цьому випадку задається у вигляді скаляра, що визначає кількість вихідних сигналів, або у вигляді вектора, кожен елемент якого визначає кількість векторних сигналів в даному вихідному сигналі. Наприклад, при вхідному сигналі, що складається з трьох векторів параметр Number of Outputs. заданий вектором [2 1]. визначить два вихідних сигнали, перший з яких буде містити два векторних сигналу, а другий - один.
Приклади використання блоку Demux в режимі Bus Selection Mode показані на рис. 9.7.3.
Мал. 9.7.3. Приклади використання блоку Demux в режимі Bus Selection Mode
9.7.3. Блок шинного формувача Bus Creator
Формує шину з сигналів різних типів.
Tag visibility - Ознака видимості. Вибирається зі списку:
local - Сигнал передається в межах локальної підсистеми.
scoped - Сигнал передається в межах локальної підсистеми і підсистемах нижнього рівня ієрархії.
global - Сигнал передається в межах всієї моделі.
Використання блоку Goto спільно з блоком From забезпечує передачу сигналу без лінії зв'язку. Для передачі можуть використовуватися сигнали будь-якого типу.
Залежно від обраного параметра Tag visibility змінюється зовнішній вигляд блоку:
Ідентифікатор сигналу поміщається в квадратні дужки, якщо ознака видимості має значення local. Наприклад, [A], де A - ідентифікатор сигналу.
Ідентифікатор сигналу поміщається в фігурні дужки, якщо ознака видимості має значення scoped. Наприклад,.
Ідентифікатор сигналу відображається на піктограмі блоку без додаткових символів, якщо ознака видимості має значення global.
На рис. 9.7.11. показаний "бездротової" спосіб передачі сигналу від джерела синусоїдального сигналу до блоку Scope в підсистему.
Мал. 9.7.11. Застосування блоку Goto.
9.7.10. Блок прийому сигналу From
Блок виконує прийом сигналу від блоку Goto.
Goto tag - Ідентифікатор сигналу. Повинен співпадати з ідентифікатором зазначеним у відповідному блоці Goto.
Використання блоку From спільно з блоком Goto забезпечує передачу сигналу без лінії зв'язку.
Ознака видимості сигналу відображається на піктограмі блоку таким же способом, що і у блоку Goto.
У моделі може бути як завгодно багато блоків From. приймають сигнал від одного блоку Goto.
На рис. 9.7.12. показаний приклад використання блоків From в моделі. У прикладі один блок Goto передає сигнал трьома блоками From (двом в основний моделі і одного в підсистемі).
Мал. 9.7.12. Застосування блоку From.
9.7.11. Блок ознаки видимості сигналу Goto Tag Visibility
Блок відображає ознака видимості сигналу, який передається блоком Goto.
Goto tag - Ідентифікатор сигналу, який передається блоком Goto.
Блок необхідно включати до складу моделі або підсистеми в тому випадку, якщо для переданих сигналів задана область видимості scoped. Блок поміщається в ті підсистеми, на які поширюється зона видимості переданих даних. Блок не бере участі в передачі сигналу, а лише відображає ім'я сигналу, що передається.
Приклад використання блоку показаний на рис. 9.7.13.
Мал. 9.7.13. Застосування блоку Goto Tag Visibility.
9.7.12. Блок створення загальної області пам'яті Data Store Memory
Блок створює пойменовану область пам'яті для зберігання даних.
Data store паmе - Ім'я області пам'яті.
Initial value - Початкове значення.
Interpret vector parameters as 1-D (прапорець) - Інтерпретувати вектор параметрів даних як одновимірний вектор.
Блок використовується спільно з блоками Data Store Write (запис даних) і Data Store Read (зчитування даних).
Параметр Initial value задає не тільки початкове значення сигналу, а й його розмірність. Наприклад, якщо початкове значення сигналу задано матрицею [0 1; 2 3]. то зберігається сигнал повинен бути матрицею 2х2.
Якщо блок Data Store Memory розташований в моделі верхнього рівня, то задану їм область пам'яті можна використовувати як в самій моделі, так і у всіх підсистемах нижнього рівня ієрархії. Якщо блок Data Store Memory розташований в підсистемі, то задану їм область пам'яті можна використовувати в даній підсистемі і всіх підсистемах нижнього рівня ієрархії.
Блок працює з дійсними сигналами типу double.
Приклад використання блоку Data Store Memory спільно з блоками Data Store Write і Data Store Read показаний на рис. 9.7.14 (п.9.17.14).
9.7.13. Блок записи даних в загальну область пам'яті Data StoreWrite
Блок записує дані в пойменовану область пам'яті.
Data store паmе - Ім'я області пам'яті.
Sample time - Крок модельного часу.
Операція запису виконується для значення сигналу отриманого на попередньому кроці розрахунку.
У моделі можуть використовуватися кілька блоків Data Store Write. виконують запис в одну область пам'яті. Однак, якщо, запис проводиться на одному і тому ж кроці розрахунку, то результат буде непередбачуваний.
Приклад використання блоку Data Store Write спільно з блоками Data Store Memory і Data Store Read показаний на рис. 9.7.14 (п.9.17.14).
9.7.14. Блок зчитування даних із загальної області пам'яті Data StoreRead
Блок зчитує дані з пойменованої області пам'яті.
Data store паmе - Ім'я області пам'яті.
Sample time - Крок модельного часу.
Операція зчитування виконується на кожному кроці розрахунку.
У моделі можуть використовуватися кілька блоків Data Store Read. виконують зчитування даних з однієї і тієї ж області пам'яті. Приклад використання блоку Data Store Read спільно з блоками Data Store Memory і Data Store Write показаний на рис. 9.7.14. У прикладі використовується триггерная підсистема, що виконує обчислення по передньому фронту сигналу. Таким чином, запис значень в загальну область пам'яті відбувається тільки в моменти зміни керуючого сигналу в позитивному напрямку. В інші моменти часу значення даних в області пам'яті не змінюються.
Мал. 9.7.14. Використання блоків Data Store Memory, Data Store Write і Data Store Read.
9.7.15. Блок перетворення типу сигналу Data Type Conversion
Блок перетворює тип вхідного сигналу.
Data type - Тип даних вихідного сигналу. Може приймати значення (вибираються зі списку): auto. double. single. int8. int16. int32. uint8. uint16. uint32 і boolean.
Saturate on integer overflow (прапорець) - Придушувати переповнення цілого. При встановленому прапорці обмеження сигналів цілого типу виконується коректно.
Значення auto параметра Data type використовується в тому випадку, якщо необхідно встановити тип даних такої ж, як у вхідного порту блоку отримує сигнал від даного блоку.
Вхідний сигнал блоку може бути дійсним або комплексним. У разі комплексного вхідного сигналу вихідний сигнал також буде комплексним.
Блок працює зі скалярними, векторними і матричними сигналами.
На рис. 9.7.15. показані приклади використання блоку Data Type Conversion.
Мал. 9.7.15. Використання блоку Data Type Conversion
9.7.16. Блок перетворення розмірності сигналу Reshape
Блок змінює розмірність векторного або матричного сигналу.