0 - Структурна схема скоректованої САУ гучністю звуку
Корекцію системи можна зробити за допомогою програми для мікропроцесора, яка реалізовуватиме передавальну функцію коригуючого пристрою. Щоб скласти програму необхідно знайти різницеве ??рівняння в реальному масштабі часу.
Після заміни,, передавальна функція коригувального пристрою прийме вигляд:
(106)
Різницеве ??рівняння системи виглядає наступним чином:
(107)
Де Y - вихідна функція;
X - вхідна функція.
Мікропроцесор виявляє відхилення отриманого сигналу від бажаного і видає команду на усунення цього відхилення. Значення бажаного сигналу задаються у мікропроцесорі в цифровому вигляді, обчислення здійснюються в машинному коді.
Реалізація різницевого рівняння на мові Assembler має вигляд:
; РОЗРАХУНОК різницеве ??рівняння
; Y (k)=1 * X (k) - 3 * X (k - 1) + 3 * X (k - 2) - 1 * X (k - 3) - 1,39 Е - 2 * Y (k) + 3,99 Е - 2 * Y (k - 1) - 3,86 Е - 2 * Y (k - 2) + 1,26 Е - 3 * Y (k - 3)
; X - вхідний сигнал
; Y - вихідний сигнал
A1 EQU 1; задаємо постійні Коеффіціенти
А2 EQU 3; задаємо постійні коеффіціентиEQU 3; задаємо постійні коефіцієнти
А4 EQU 1; задаємо постійні коефіцієнти
А5 EQU 1,39 Е - 2; задаємо постійні коефіцієнти
А6 EQU 3,99 Е - 2; задаємо постійні коефіцієнти
А7 EQU 3,86 Е - 2; задаємо постійні коефіцієнти
А8 EQU 1,26 Е - 3; задаємо постійні коефіцієнти
X0 DB 0; виділення місця під Х (k)
X1 DB 0; виділення місця під X (k-l)
X2 DB 0; виділення місця під X (k - 2)
X3 DB 0; виділення місця під X (k - 3)
Y0 DB 0; виділення місця під Y (k)
Y1 DB 0; виділення місця під Y (k - 1)
Y2 DB 0; виділення місця під Y (k - 2)
Y3 DB 0; виділення місця під Y (k - 3)
i port EQU 11h; номер порту для читання
o port EQU 12h; номер порту для запису
start: мітка початку циклу корекції
in al, i port; читаємо з порту дані
MOV X0, al;
MUL a1, A1; обчислення доданка А1 * X (k)
MOV b1, a1; збереження результату в b1
MOV a1, X1;
MUL a1, A2; обчислення доданка А2 * X (k - 1)
SUB b1, a1; обчислення доданка 1 * X (k) - 3 * X (k - 1), результат в регістрі b1
MOV a1, X2;
MUL a1, A3; обчислення доданка А3 * X (k - 2)
ADD b1, a1; обчислення доданка 1 * X (k) - 3 * X (k - 1) + 3 * X (k - 2), результат в регістрі b1
MOV a1, X3;
MUL a1, A4; обчислення доданка А4 * X (k - 3)
SUB b1, a1; обчислення доданка 1 * X (k) - 3 * X (k - 1) + 3 * X (k - 2) - 1 * X (k - 3), результат в регістрі b1
MOV a1, Y0;
MUL a1, A5; обчислення доданка А5 * Y (k)
SUB b1, a1; обчислення доданка 1 * X (k) - 3 * X (k - 1) + 3 * X (k - 2) - 1 * X (k - 3) - 1,39 Е - 2 * Y (k), результат в регістрі b1
MOV a1, Y1;
MUL a1, A6; обчислення доданка А6 * Y (k - 1)
ADD b1, a1; обчислення доданка 1 * X (k) - 3 * X (k - 1) + 3 * X (k - 2) - 1 * X (k - 3) - 1,39 Е - 2 * Y (k) + 3,99 Е- 2 * Y (k - 1), результат в регістрі b1
MOV a1, Y2;
MUL a1, A7; обчислення доданка А7 * Y (k - 2)
SUB b1, a1; обчислення доданка 1 * X (k) - 3 * X (k - 1...