CUR projekt SPRAWOZDANIE

WOJSKOWA AKADEMIA TECHNICZNA

WYDZIAŁ MECHATRONIKI I LOTNICTWA

CYFROWE UKŁADY REGULACJI

PROJEKT CYFROWYCH FILTRÓW DOLNOPRZEPUSTOWYCH O NIESKOŃCZONEJ ODPOWIEDZI IMPULSOWEJ W OPARCIU O FILTRY ANALOGOWE

Prowadzący: dr inż. Marek Jaworowicz

Autorzy: Wojciech Żerek

Mateusz Zając

Grupa: A9U1S1

1. Sformułowanie zadania

Celem zadania jest zaprojektowanie cyfrowych filtrów NOI (nieskończona odpowiedź impulsowa) w dwóch wariantach:

Zaprojektowane filtry cyfrowe powinny charakteryzwać się następującymi parametrami:

fodc = 1.3 [Hz] częstotliwość odcięcia

fp = 24.7 [Hz] częstotliwość próbkowania

ΔA(ω) = 3 [dB] nierównomierność charakterystyki amplitudowej w paśmie przenoszenia (dot. filtru na podst. f. Czebyszewa)

λzap = 65 [dB] tłumienie w paśmie zaporowym

Należy opracować:

2. Obliczenia analityczne cyfrowego filtru NOI na podstawie analogowego filtru Butterwortha II rzędu

Analogowy filtr Butterwortha II rzędu charakteryzuje sie następującą transmitancją:


$$G_{\text{BII}}\left( s \right) = \ \frac{1}{s^{2} + \sqrt{2s} + 1}$$

Do dyskretyzacji wykorzystuje się metodę biliniową w postaci:


$$s = \frac{A}{\omega_{\text{ao}}}*\frac{1 - z^{- 1}}{1 + z^{- 1}}$$

gdzie:


ωao = 1


$$\frac{A}{\omega_{\text{ao}}} = ctg(\omega_{\text{do}}*\frac{\text{Tp}}{2})$$

ωao - pulsacja odcięcia dla filtru analogowego

ωdo - pulsacja odcięcia dla filtru cyfrowego

Tp - okres dyskretyzacji

Po podstawieniu zadanych wartości obliczamy kolejno:


$$\omega_{\text{do}} = 2*3.1416*\ f_{\text{odc}} = 8.1682\ \lbrack\frac{\text{rad}}{s}\rbrack$$


$$s = ctg\left( 8.1682*\frac{1}{2*24.7} \right)*\frac{1 - z^{- 1}}{1 + z^{- 1}} = ctg\left( 0.1653 \right)*\frac{1 - z^{- 1}}{1 + z^{- 1}}$$


$$s = 5.9944*\frac{1 - z^{- 1}}{1 + z^{- 1}}$$

Transmitancja dyskretnego filtru NOI przyjmuje zatem postać:

$G_{\text{BII}}\left( s \right) = \ \frac{1}{s^{2} + \sqrt{2s} + 1} = \ \frac{1}{({5.9944*\frac{1 - z^{- 1}}{1 + z^{- 1}})}^{2} + \sqrt{2}*5.9944*\frac{1 - z^{- 1}}{1 + z^{- 1}} + 1}$


$$G_{\text{BII}}\left( z \right) = \frac{z^{- 2} + {2z}^{- 1} + 1}{{28.4554z}^{- 2} - {69.8656z}^{- 1} + 45.4102} = \frac{Y(z)}{X(z)}$$

Równanie różnicowe filtru ma postać:


$$Y\left\lbrack n \right\rbrack = \frac{1}{45.4102}X\left\lbrack n \right\rbrack + \frac{2}{45.4102}X\left\lbrack n - 1 \right\rbrack + \frac{1}{45.4102}X\left\lbrack n - 2 \right\rbrack + \frac{69.8656}{45.4102}Y\left\lbrack n - 1 \right\rbrack - \frac{28.4554}{45.4102}Y\left\lbrack n - 2 \right\rbrack$$

3. Modele numeryczne filtrów

Modele numeryczne (transmitancje, schematy strukturalne) zostały wykonane przy pomocy narzędzia "Filter Design & Analysis Tool" (fdatool), które wchodzi w skład programu Matlab. Narzędzie to pozwala w łatwy sposób projektować oraz analizować szeroki wachlarz filtrów cyfrowych.

3.1 Model cyfrowego filtru NOI na podstawie analogowego filtru Butterwortha II rzędu

Dobór parametrów projektowanego filtru dokonywany jest w oknie, które przedstawione jest na zrzucie ekranu:

Program generuje również wspołczynniki transmitancji zaprojektowanego filtru, która przedstawia się następująco:


$$G_{FD1} = 0.022*\frac{z^{- 2} + {2z}^{- 1} + 1}{{0.6265z}^{- 2} - {1.5384z}^{- 1} + 1}$$

Na podstawie transmitancji obliczamy równanie różnicowe:


Y[n] = 0.022 * X[n] + 0.044 * X[n−1] + 0.022 * X[n−2] + 1.5384 * Y[n−1] − 0.6265 * Y[n−2]

Schemat strukturalny zaprojektowanego filtru:

Dodatkowo już w oknie projektowania filtru widzimy, że program automatycznie bada jego stabilność. W naszym przypadku zaprojektowany filtr jest stabilny.

3.2 Model cyfrowego filtru NOI na podstawie analogowego filtru Czebyszewa I rodzaju (I rzędu)

W przypadku filtru tworzonego na bazie analogowego filtru Czebyszewa I rodzaju proces projektowania przebiega analogicznie do poprzedniego przykładu:

Transmitancja zaprojektowanego filtru:


$$G_{FD2} = 0.1433*\frac{z^{- 1} + 1}{- {0.7134z}^{- 1} + 1}$$

Równanie różnicowe na podstawie otrzymanej transmitancji:


Y[n] = 0.1433 * X[n] + 0.1433 * X[n−1] + 0.7134 * Y[n−1]

Schemat strukturalny:

Drugi zaprojektowany filtr również jest stabilny.

4. Charakterystyki czasowe i częstotliwościowe zaprojektowanych filtrów

Charakterystyki czasowe i częstotliwościowe oraz wykresy zer/biegunów dla dwóch zaprojektowanych filtrów również zostały sporządzone przy pomocy narzędzia "fdatool". Sporządono następujące charakterystyki (dla każdego z dwóch filtrów):

Wykres stabilności dla filtru na podstawie filtru Butterwortha II rzędu:

Wykres stabilności dla filtru na podstawie filtru Czebyszewa I rodzaju:

Odpowiedź skokowa dla filtru na podstawie filtru Butterwortha II rzędu:

Odpowiedź skokowa dla filtru na podstawie filtru Czebyszewa I rodzaju:

Odpowiedź impulsowa dla filtru na podstawie filtru Butterwortha II rzędu:

Odpowiedź impulsowa dla filtru na podstawie filtru Czebyszewa I rodzaju:

Charakterystyka amplitudowa dla filtru na podstawie filtru Butterwortha II rzędu:

Charakterystyka amplitudowa dla filtru na podstawie filtru Czebyszewa I rodzaju:

Charakterystyka fazowa dla filtru na podstawie filtru Butterwortha II rzędu:

Charakterystyka fazowa dla filtru na podstawie filtru Czebyszewa I rodzaju:

5. Implementacja cyfrowych filtrów NOI w języku C++

5.1 Program realizujący cyfrowy filtr dolnoprzepustowy NOI na podstawie analogowego filtru Butterwortha II rzędu

#include <iostream>

#include <fstream>

#define K 0.022 // wzmocnienie filtru

#define Tp 0.04 // okres probkowania

#define n 100 // liczba probek

using namespace std;

unsigned Wymuszenie (unsigned arg) { // funkcja do implementacji wymuszen

unsigned wartosc;

if ( arg == 0 ) { // implementacja skoku jednostkowego

wartosc = 0;

}

else {

wartosc = 1;

}

return wartosc;

}

int main() {

double X[n], Y[n]; // zadeklarowanie dwoch tablic na probki wejsciowe i wyjsciowe

for ( int i = 0; i < n; i++ ) { // zerowanie tablic

X[i] = 0;

Y[i] = 0;

}

for ( int i = 0; i < n; i++ ) { // filtr

X[i] = Wymuszenie(i);

if ( i == 1 ) {

Y[i] = K*X[i];

}

if ( i == 2 ) {

Y[i] = K*X[i] + 2*K*X[i-1] + 1.5384*Y[i-1];

}

if ( i > 2 ) {

Y[i] = K*X[i] + 2*K*X[i-1] + K*X[i-2] + 1.5384*Y[i-1] - 0.6265*Y[i-2];

}

}

fstream plik; //zapis do pliku .txt

double t = 0;

plik.open( "output_butterworth.txt", ios::out | ios::trunc );

plik << "Czas" << "\t" << "X[nTp]" << "\t" << "Y[nTp]" << endl;

for ( int i = 0; i < n; i++) {

plik << t << "\t" << X[i] << "\t" << Y[i] << endl;

t += Tp;

}

plik.close();

return 0;

}

5.2 Program realizujący cyfrowy filtr dolnoprzepustowy NOI na podstawie analogowego filtru Czebyszewa I rodzaju

#include <iostream>

#include <fstream>

#define K 0.1443 // wzmocnienie filtru

#define Tp 0.04 // okres probkowania

#define n 100 // liczba probek

using namespace std;

unsigned Wymuszenie (unsigned arg) { // funkcja do implementacji wymuszen

unsigned wartosc;

if ( arg == 0 ) { // implementacja skoku jednostkowego

wartosc = 0;

}

else {

wartosc = 1;

}

return wartosc;

}

int main() {

double X[n], Y[n]; // zadeklarowanie dwoch tablic na probki wejsciowe i wyjsciowe

for ( int i = 0; i < n; i++ ) { // zerowanie tablic

X[i] = 0;

Y[i] = 0;

}

for ( int i = 0; i < n; i++ ) { // filtr

X[i] = Wymuszenie(i);

if ( i == 1 ) {

Y[i] = K*X[i];

}

if ( i > 1 ) {

Y[i] = K*X[i] + K*X[i-1] + 0.7134*Y[i-1];

}

}

fstream plik; //zapis do pliku .txt

double t = 0;

plik.open( "output_czebyszew.txt", ios::out | ios::trunc );

plik << "Czas" << "\t" << "X[nTp]" << "\t" << "Y[nTp]" << endl;

for ( int i = 0; i < n; i++) {

plik << t << "\t" << X[i] << "\t" << Y[i] << endl;

t += Tp;

}

plik.close();

return 0;

}

6. Wnioski


Wyszukiwarka

Podobne podstrony:
CUR projekt PID SPRAWOZDANIE
CUR projekt UR?ADBEAT SPRAWOZDANIE
ProjektUnifikacja sprawozdanie Nieznany
projekt sprawozdanie
Projekt sprawozdanie
Informatyczne Podstawy Projektowania sprawozdanie
Projekt-sprawozdanie
Projekt-sprawozdanie
Projekt-sprawozdanie
Projekt 1 Sprawozdanie
Projekt sprawozdanie id 399569 Nieznany
Projekt+Sprawozdanie, WZMACNIACZ TRANZYSTOROWY, PAŃSTWOWA WYŻSZA SZKOŁA ZAWODOWA W ELBLĄGU
plyny tunele, Sprawozdania i projekty, Sprawozdania
projekt1, SPRAWOZDANIA czyjeś
GTG projekt 3 - sprawozdania polroczna i kwartalne, FIR UE Katowice, SEMESTR VI, gieldy, gieldy 1, G
bd2 projekt SprawozdanieAndrzej
Projekt1, sprawozdanie, Politechnika Radomska
ProjektUnifikacja sprawozdanie unifikacja
Projekt sprawozdanie

więcej podobnych podstron