ign="justify"> Малюнок 2.10 - Структурна схема прямого цифрового синтезу частоти
Прирощення фази і її початкове значення завантажуються у вигляді цифрових кодів у вхідні регістри. Пам'ять грає роль таблиці функцій. Код поточної фази поступає на її адресні входи, а з виходу даних на вхід цифроаналогового перетворювача надходить код, що відповідає поточному значенню заданої функції. ЦАП в свою чергу формує аналоговий сигнал. В системі електроприводу в ролі ЦАП виступає генератор ШИМ сигналу і силовий блок АІН.
Регістр містить поточну фазу вихідного сигналу у вигляді цілого числа, яке при кожному тактовом імпульсі отримує прирощення n, також ціле число. Таким чином, поточний аргумент функції представляється цілим числом Tn по модулю 2 N, де N-розрядність суматора. Тобто послідовність значень аргументу є квазипериодический функцією. Дискретність за часом визначається тактовою частотою fc. Збільшення розрядності регістру підвищує роздільну здатність збільшення аргументу? N. Значення функції округлюються відповідно до розрядністю ЦАП.
Так як проводиться синтез гармонійного коливання, фазовий кут? дорівнює:? =2? · T n. Тоді частота вихідного сигналу F дорівнює добутку частоти тактів FDDS на відносне збільшення целочисленного аргументу:
Лістинг функції синтезу трифазної системи напруг:
void sine_generation_task (void)
{_t index; _t pwm;
/ * phase increment * / _phase +=m_delta;
/ * phase U duty cycle * /=(m_phase + PHASE_SHIFT_U) >> 8; =(Sine_table [index] * m_amplitude) >> 7; _load_u (PWM_ZERO + pwm);
/ * phase V duty cycle * /=(m_phase + PHASE_SHIFT_V) >> 8; =(Sine_table [index] * m_amplitude) >> 7; _load_v (PWM_ZERO + pwm);
/ * phase W duty cycle * /=(m_phase + PHASE_SHIFT_W) >> 8; =(Sine_table [index] * m_amplitude) >> 7; _load_w (PWM_ZERO + pwm);
}
У наведеному вище лістингу роль накопичується суматора фази грає 16-бітна мінлива m_phase. На кожній ітерації системи ця змінна отримує прирощення фази? N, яке зберігатися в m_delta. Акумулятор фази забезпечує арифметику по модулю 216, що відповідає періодичності функції синуса.
Далі, з таблиці значень функції синуса (індекс в таблиці відповідає восьми старшим змінної m_phase) вибирається значення і перемножується на амплітуду. Ця послідовність повторюється для інших двох фаз, за ??винятком зсуву фази сигналу.
На вхід блоку синтезу трифазної системи синусоїдальних напруг надходять два сигнали: амплітуда сигналу A (у змінній m_amplitude) і прирощення фази? n (у змінній m_delta). Частота вихідного сигна визначається за формулою:
де Fc - частота проходження ітерацій алгоритму (в даному випадку F DDS=12 КГц).
Амплітуда вихідного сигналу:
де Uп - випрямлена напруга живлення інвертора.
.3.2 Реалізація скалярного закону управління
Закон управління V / f=const реалізований у функції, лістинг якої наведено нижче:
unsigned int vf_control (int frequency)