Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичні вказівки MATLAB.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
744 Кб
Скачать
☆

1.7.3. Continuous – аналогові блоки

Блок обчислення похідної Derivativ - Виконує чисельне диференціювання вхідного сигналу.

Для обчислення похідної використовується наближена формула Ейлера:

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

Точність обчислення похідної істотно залежить від величини встановленого кроку розрахунку. Вибір меншого кроку розрахунку покращує точність обчислення похідної.

Інтегруючий блок lntegrator - виконує інтегрування вхідного сигналу.

Параметри:

  • External reset – зовнішнє скидання. Тип зовнішнього керуючого сигналу, що забезпечує скидання інтегратора до початкового стану, вибирається зі списку.

На рис.12. показаний приклад роботи інтегратора при подачі на його вхід східчастого сигналу.

Початкова умова прийнята рівною нулю.

Рис.12. Інтегрування східчастого сигналу.

Приклад на рис.13 відрізняється від попереднього подачею початкового значення через зовнішній порт. Початкове значення вихідного сигналу в даному випадку задано рівним –10.

Рис.13. Інтегрування східчастого сигналу з установкою початкового значення вихідного сигналу.

Блок передавальної функції Transfer Fcn - задає передавальну функцію у вигляді співвідношення поліномів:

де

nn і nd – порядок чисельника і знаменника передавальної функції, num – вектор або матриця коефіцієнтів чисельника, den – вектор коефіцієнтів знаменника.

Параметри:

  1. Numerator - вектор або матриця коефіцієнтів полінома чисельника.

  2. Denominator - вектор коефіцієнтів полінома знаменника.

  3. Absolute tolerance - абсолютна погрішність.

Порядок чисельника не повинен перевищувати порядок знаменника.

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

Якщо коефіцієнти чисельника задані матрицею, то блок Transfer  Fcn моделює векторну передавальну функцію, яку можна інтерпретувати як декілька передавальних функцій, що мають однакові поліноми знаменника, але різні поліноми чисельника. При цьому вихідний сигнал блоку є векторним і кількість рядків матриці чисельника задає розмірність вихідного сигналу.

На рис.14. показаний приклад блоку Transfer  Fcn, що задає векторну передавальну функцію. Там же показана модель, повністю аналогічна тій, що розглядається, за своїми властивостями, але складається з окремих блоків Transfer  Fcn.

Рис.14. Приклад моделювання векторної передавальної функції та її аналог.

Початкові умови при використовуванні блоку Transfer  Fcn вважаються нульовими.

Блок передавальної функції Zero-Pole- визначає передавальну функцію із заданими полюсами і нулями:

де Z – вектор або матриця нулів передавальної функції (коренів полінома чисельника), P – вектор полюсів передавальної функції (коренів полінома знаменника).

K – коефіцієнт передавальної функції, або вектор коефіцієнтів, якщо нулі передавальної функції задані матрицею. При цьому розмірність вектора K визначається числом рядків матриці нулів.

Параметри:

  1. Zeros – Вектор або матриця нулів.

  2. Poles – Вектор полюсів.

  3. Gain – Скалярний або векторний коефіцієнт передавальної функції.

  4. Absolute tolerance — Абсолютна погрішність.

Кількість нулів не повинна перевищувати кількість полюсів передавальної функції.

В тому випадку, якщо нулі передавальної функції задані матрицею, то блок Zero-Pole моделює векторну передавальну функцію.

Нулі або полюси можуть бути задані комплексними числами. В цьому випадку нулі або полюси повинні бути задані комплексно-зв'язаними парами полюсів або нулів, відповідно.

Початкові умови при використанні блоку Zero-Pole вважаються нульовими.

Блок моделі динамічного об'єкту State-Space - створює динамічний об'єкт, який описується рівняннями у просторі станів:

Параметри:

  1. А –Матриця системи.

  2. B – Матриця входу.

  3. С – Матриця виходу

  4. D – Матриця обходу

  5. Initial condition – Вектор початкових умов.

  6. Absolute tolerance — Абсолютна погрішність.

1.7.4. Використання змінних для завдання параметрів блоків

Параметри блоків Simulink можна задавати не тільки як числові параметри, але і як імена змінних. Значення змінних необхідно задати перед початком розрахунку. Такий спосіб завдання параметрів зручний, якщо вимагається проводити розрахунки для безлічі варіантів параметрів блоків моделі. На рис.15 показана схема такої моделі. Параметри блоку „Передавальна функція” задані змінними а, b і с. Вікно параметрів блоку „Передавальна функція” показано на рис. 16.

Рис.15. Модель, в якій параметри блоків задані як імена змінних.

Рис.16. Вікно параметрів блоку „Передавальна функція".

Введення значень змінних можна виконати з командного вікна MATLAB. Для цього після запрошення (символ >>) необхідно надрукувати команди для привласнення змінним значень. Після цього можна виконати розрахунок.

В тому випадку, якщо параметрів багато, можна створити m-файл з командами привласнення змінних значень, відкрити його з командного вікна MATLAB (файл буде відкритий у вікні наладника) і запустити його на виконання командою меню Debug\Run.

1.7.5. Запис результатів розрахунку в текстовий файл

Для запису результатів необхідно сформувати вектор необхідних сигналів (включаючи час), передати цей вектор у робочий простір MATLAB і, по закінченню розрахунку, записати дані в текстовий файл.

Приклад моделі, що реалізує даний принцип, показаний на рис.17. У вікні параметрів блоку To workspace необхідно вказати ім'я змінної для відображення в робочий простір (в прикладі це ім'я - simout), а також встановити значення параметра Save format (формат запису) - Array (масив).

Рис.17. Приклад моделі, що використовує відображення результатів розрахунку в робочий простір MATLAB для подальшого запису в текстовий файл.

Для запису у файл необхідно в командному вікні MATLAB задати на виконання команду типу:

save('outfile.dat','-ascii','simout','-double'),

де outfile.dat – ім'я файлу для запису,

simout – ім'я змінної значення якої записується в текстовий файл,

double – режим запису з подвоєною точністю.

Для реалізації процедури запису змінної з робочого простору у файл можна також використовувати функцію dlmwrire. Проте дана функція записує результати з точністю 4 знаки після коми, що може виявитися недостатньо. Доцільно створити копію цієї функції під іншим ім'ям (наприклад, my_dlmwrite), в якій вимагається змінити оголошення функції:

function my_dlmwrite(filename, m, dlm, r, з, N_digits)

і виклик функції num2str :

str = num2str(m(i,j),N_digits);

Параметр N_digits визначатиме кількість значущих цифр після коми.

Для запису у файл необхідно в командному вікні здійснити виклик функції, наприклад:

my_dlmwrite('outfile.dat',simout,' ',0,0,6)

В даному прикладі число значущих цифр задано рівним 6. Виклик нової функції можна здійснювати не тільки з командного вікна MATLAB. Можна створити порожню масковану підсистему і вказати для неї функцію запису у файл як функцію відкриття (Edit\Block Properties, параметр Open function).

Сама нова функція повинна знаходитися в поточному робочому каталозі.