Курсовая: Цифровые Сигнальные Процессоры в РЭС

                              
                           Министерство Образования РФ                           
             Уральский Государственный Технический Университет Ц УПИ             
                                  Кафедра ТиСС                                  
                          Отчет по лабораторной работе                          
                     лЦифровые Сигнальные Процессоры в РЭС                     
Преподаватель: Мироненко О.В.
Студенты: Астафуров А.Б.
Ковязин Д.А
Черепанов К.А.
Группа: Р-407
                                  Екатеринбург                                  
                                      2003                                      
Цель работы:  с помощью математического пакета лMatLab 6.5 научиться
моделировать сигналы различных видов и сложности, производить их аналоговую и
цифровую фильтрацию и расчет соотвествующих параметров фильтров, оценивать
влияние коэффициетов передаточных функций на переходные процессы.
     

Задание №1

Смоделировать следующие виды сигналов: - треугольные импульсы; - пилообразные импульсы; - прямоугольные импульсы; t=0:0.01:30; % задание временного интервала x=square(t); % определение прямоугольного сигнала y=sawtooth(t,0.5); % определение треугольного сигнала z=sawtooth(t,1); % определение пилообразного сигнала subplot(2,2,1); plot(t,x) % одновременный вывод трех сигналов на графики subplot(2,2,2); plot(t,y) % subplot(2,2,3); plot(t,z) % График №1: Прямоугольный, синусоидальный и треугольный сигналы. Программа модуляции одиночного прямоугольного импульса (z(t)), прямоугольных импульсов с перидом Т (x(t)) и 10Т (y(t)). t = 0:.0314:25; t1 = -2:.01:2; x=square(pi*t); y= square(2*pi*t/10, pi*pi); z = rectpuls(2*pi*t1/10); subplot(4,2,1); plot(t,x) subplot(4,2,2); plot(t,y) subplot(4,2,3); plot(t1,z)

График №2: Прямоугольные импульсы с периодом Т,10Т, одиночный.

t = 0:.0314:20; x=square(pi*t); y= square(2*pi*t/10, pi*pi); z = rectpuls(2*pi*t/10); Fs=50; X = fft(x,512); Y = fft(y,512); Z = fft(z,512); w = (0:255)/256*(Fs/2); plot(w,abs([X(1:256)' Y(1:256)'Z(1:256)'])); grid; legend ('Сигнал с периодом Т', 'Сигнал с перидом 10*Т', 'Одиночный импульс'); xlabel('Частота(Гц)'); ylabel('Величина Фурье преобразования');

График №3: Спектральная плотность сигналов. Выводы: В первом задании были смоделированы 3 различных вида сигналов, а также одиночный прямоугольный импульс и импульсы с перидом Т и 10Т, построены графики их спектральных плотностей.

Задание №2

Смоделировать с помощью программы MatLab сложный сигнал следующего вида: S(t)=Y(t)+X(t)+d(t), где Y(t)=A*sin(t)-синусоидальный сигнал; X(t) Ц треугольный импульс; d(t) Ц белый Гауссовский шум; С помощью фильтров Чебышева первого (пульсации в полосе пропускания) и второго (пульсации в полосе задерживания) рода выделить из сложного сигнала треугольный, отфильровав, таким образом, синусоидальную составляющую и белый Гауссовский шум. Программа моделирования: t=0:0.1:25; % определение временного интервала y=0.5*sin(25*t); % определение синусоидального сигнала x=4*sawtooth(t,0.5); % определение треугольного сигнала d=0.1*wgn(1,251,0); % задание белого Гауссовского шума plot(t,x,t,y,t,d), grid % вывод 3-х составляющих сигнала на экран xlabel ('Время'); % подпись оси Х (лВремя) ylabel ('Амплитуда'); % подпись оси Y (лАмплитуда) График №4. Три составляющие выходного сигнала s=x+y+d; % синтез сложного сигнала plot(t,s), grid; % вывод сложного сигнала на экран xlabel ('Время'); % подпись оси Х (лВремя) ylabel ('Амплитуда'); % подпись оси Y (лАмплитуда) График №5. Сложный сигнал Программа построения АЧХ фильтров: [b,a]=cheby1(6,0.06,4/14); % определение параметров фильтра % Чебышева первого рода [b1,a1]=cheby2(9,35,4/14); % определение параметров фильтра % Чебышева второго рода Fs=100; % частота диcкретизации [H,w] = freqz(b,a,512); % определение амплитудно- частотной характеристики %фильтра [H1,w] = freqz(b1,a1,512); % определение амплитудно-частотной характеристики %фильтра plot(w*Fs/(2*pi),abs(H), w*Fs/(2*pi),abs(H1)), grid; % вывод графика АЧХ xlabel('Частота (Гц)'); % подпись оси Х (лЧастота) ylabel('Амплитуда'); % подпись оси Y (лАмплитуда) legend({'АЧХ фильтра Чебышева 1 рода','АЧХ фильтра Чебышева 2 рода'}); График № 6: АЧХ фильтра Чебышева первого и второго рода. График № 7: Неравномерность АЧХ в полосе пропускания фильтра Чебышева 1 рода Программа для определения спектральных плотностей составляющих сигнала: sf=filter(b,a,s); % фильтрация сигнала S = fft(s,512); % быстрое преобразование Фурье % сложного сигнала SF = fft(sf,512); % быстрое преобразование % отфильтрованного сигнала w = (0:255)/256*(Fs/2); % разбиение частотной оси на 256 % значений plot(w,abs([S(1:256)' SF(1:256)'])); grid; % построение графика АЧХ xlabel('Frequency (Hz)'); % подпись оси Х (лЧастота, Гц) ylabel('Mag. of Fourier transform'); % подпись оси Y (лЗначение преобра - % зования Фурье) legend({'input signal','filtered signal'}); % подпись графиков (лВходной сигнал, % Фильтрованный сигнал) График № 8: Спектральная плотность сложного и отфильтрованного сигналов Программа фильтрации сигнала: [b,a]=cheby1(6,0.06,4/14); % определение параметров фильтра % Чебышева первого рода [b1,a1]=cheby2(9,35,4/14); % определение параметров фильтра % Чебышева второго рода sf=filter(b,a,s); % фильтрация сигнала фильтром №1 sf1=filter(b1,a1,s); % фильтрация сигнала фильтром №2 plot (t,x,t,sf)б grid; % построение графика отфильтрованных % и требуемого сигналов legend ('Исходный сигнал', 'Сигнал после фильтра Чебышева 1 рода', 'Сигнал после фильтра Чебышева 2 рода ',4); % подпись графиков сигналов График № 9: Исходный (треугольный) и отфильтрованный сигналы. Выводы: В ходе лабораторной работы был смоделирован сигнал сложной формы. Аппроксимация сигнала производилась полиномами Чебышева первого (пульсации в полосе пропускания) и второго (пульсации в полосе задерживания) рода, первый из которых имел неравномерность АЧХ в полосе пропускания. Фильтр Чебышева второго рода обладал меньшей шириной равноволновой полосы, нежели фильтр 1 рода и имел неравномерность АЧХ в полосе задерживания, но при этом обеспечивал большую крутизну затухания. Следовательно, фильтр Чебышева 1 рода необходимо использовать, когда требуется большая скорость затухания вне полосы пропускания и не предъявляются требования по обеспечению минимальных искажений АЧХ в полосе пропускания. Фильтр 2 рода следует применять при повышенных требованиях к искажению при фильтрации. На основе расчитанных коэффициентов b,a построена спектральная плотность сложного входного и выходного фильтрованного сигнала. На графике отчетливо заметно, что после прохождения через фильтр синусоидальная и шумовая составляющая подавлены. Задержка выходного сигнала объяснется началом фильтрации только после накопления предшествующих n+1 значений, где n-порядок фильтра. ЗАДАНИЕ №3. Описать модель нагрева доменной печи, передаточная функция которой имеет следующий вид: где k-коэффициент усиления Построить график реакции системы на воздействие в виде скачка, исследовать влияние значения коэффициента k на вид процесса. Программа для системы управления без обратной связи. (а) t=0:0.1:10; % Задание временных характеристик num=[5]; den=[0.5 1.5 1]; %задание четырех различных коэффициентов усиле- num1=[10]; den1=[0.5 1.5 1]; %ния передаточной функции num2=[15]; den2=[0.5 1.5 1]; % num3=[25]; den3=[0.5 1.5 1]; % sys=tf(num,den); % синтез передаточной функции с k=5 sys1=tf(num1,den1); % синтез передаточной функции с k=10 sys2=tf(num2,den2); % синтез передаточной функции с k=15 sys3=tf(num3,den3); % синтез передаточной функции с k=2 [y,t]=step(sys,t); % вычисление реакции системы с k=5 на скачок [y1,t]=step(sys1,t); % вычисление реакции системы с k=10 на скачок [y2,t]=step(sys2,t); % вычисление реакции системы с k=15 на скачок [y3,t]=step(sys3,t); % вычисление реакции системы с k=25 на скачок ylabel('Temperature (C)') % подпись оси Х (лТемпература) xlabel('Time (sec)') % подпись оси Y (лВремя) plot(t,y,t,y1,t,y2,t,y3), grid % построение графика График № 10. Регулятор печки без обратной связи Программа для системы управления с обратной связью. (б) sys_os=feedback (sys, 1); % замыкает систему с k=5 в обратную связь sys_os1=feedback (sys1, 1); % замыкает систему с k=10 в обратную связь sys_os2=feedback (sys2, 1); % замыкает систему с k=15 в обратную связь sys_os3=feedback (sys3, 1); % замыкает систему с k=25 в обратную связь [y_os,t]=step(sys_os,t); % вычисление реакции ОС системы с k=5 на скачок [y_os1,t]=step(sys_os1,t); % вычисление реакции ОС системы с k=10 на скачок [y_os2,t]=step(sys_os2,t); % вычисление реакции ОС системы с k=15 на скачок [y_os3,t]=step(sys_os3,t); % вычисление реакции ОС системы с k=25 на скачок plot(t, y_os, t, y_os1, t, y_os2, t, y_os3); % построение графика grid % построение сетки legend ('K=5', 'K=10', 'K=15 ','K=25 ',4); % подписи графиков ylabel(' H(t)'); % подписи по Y xlabel('Врем (сек.)'); % подписи по Х График № 11: Регулятор печки с обратной связью Выводы: В ходе выполнения 3-го задания было исследовано влияния обратной связи на процесс управления. С этой целью построены переходные характеристики, то есть реакции системы с ОС (обратной связью) и без нее на скачок (функцию Хевисайда). Полученные результаты свидетельствуют о том, что для систем без ОС характерна прямая зависимость времени установления от коэффициента усиления (т.е система с более низким коэффициентом усиления быстрее устанавливается в устойчивое состояние), однако в них отсутствует эффект перерегулирования. В системах с ОС наблюдается обратная тенденция: увеличение перерегулирования от коэффициента усиления и относительное постоянство времени установления при любых К.

ЗАДАНИЕ №4.

Смоделировать ПИД-регулятор печки, подобрать оптимальные коэффициенты и настроить на работу. Формула ПИД-регулятора: Приведем к общему знаменателю:

Схема ПИД-регулятора. Программа реализации ПИД-регулятора: t=0:0.01:10; % определение интервала времени num1=[1 1 1]; den1=[1 0]; % задание нулей передаточной функции объекта num2=[1 2 1]; den2=[1 0]; % и определение полюсов передаточной num3=[1 120 1]; den3=[1 0]; % функции объекта num4=[30 70 60]; den4=[1 0]; % sys1=tf(num1, den1); % sys2=tf(num2, den2); % передаточные функции при различных кэффициентах sys3=tf(num3, den3); % sys4=tf(num4, den4); % num5=[5]; den5=[0.5 1.5 1]; % sys5=tf(num5, den5); % sys6=series(sys1, sys5); % последовательное соединение sys7=series(sys2, sys5); % передаточных функций sys8=series(sys3, sys5); % sys9=series(sys4, sys5); % syssum1=feedback(sys6, [1]); % включение обратной связи syssum2=feedback(sys7, [1]); % syssum3=feedback(sys8, [1]); % syssum4=feedback(sys9, [1]); % [y1,t]=step(syssum1,t); % [y2,t]=step(syssum2,t); % реакция обратной связи на скачок [y3,t]=step(syssum3,t); % [y4,t]=step(syssum4,t); % plot(t,y1,t,y2,t,y3,t,y4), grid; % построение графика % подпись графиков для различных коэффициентов legend('ki=1 kp=1 kd=1', 'ki=1 kp=2 kd=1','ki=1 kp=120 kd=1','ki=30 kp=70 kd=60'); ylabel ('H(t)'); % подпись оси Y (лПередаточная функция) xlabel ('t, sec'); % подпись оси Х (лВремя) График № 12: График воздействия ПИД-регулятора на скачок при разных коэффициентах t=0:0.01:10; % задание временного интервала num1=[2 6 4]; den1=[1 0]; % определение коэффициентов дифференцирующего % звена sys1=tf(num1, den1); % синтезирование ПИД-регулятора num2=[5]; den2=[0.5 1.5 1]; % задание нулей передаточной функции объекта num3=[5]; den3=[0.5 1 0.5]; % и определение полюсов передаточной функции num4=[5]; den4=[0.5 2.5 2]; % объекта sys2=tf(num2, den2); % sys3=tf(num3, den3); % передаточный функции при различных sys4=tf(num4, den4); % коэффициентах sys5=series(sys1, sys2); % последовательное соединение передаточных sys6=series(sys1, sys3); % функций sys7=series(sys1, sys4); % syssum1=feedback(sys5, [1]); % обратная связь при различных коэффициентах syssum2=feedback(sys6, [1]); % syssum3=feedback(sys7, [1]); % [y1,t]=step(syssum1,t); % [y2,t]=step(syssum2,t); % реакция обратной связи на скачок [y3,t]=step(syssum3,t); % plot(t,y1,t,y2,t,y3),grid; % построение графика ylabel ('H(t)'); % подпись оси Х (лПередаточная функция) xlabel ('t, sec'); % подпись оси Y (лВремя) legend('(p+1)*(0.5*p+1)','(p+1)*(0.5*p+0.5)','(p+1)*(0.5*p+2)'); % подпись коэффициентов % при графиках График № 13: График воздействия ПИД-регулятора при неоптимизированных коэффициентах передаточной функции t=0:0.01:10; % задание временного интервала num1=[30 70 60]; den1=[1 0]; % определение коэффициентов дифференцирующего % звена sys1=tf(num1, den1); % синтезирование ПИД-регулятора num2=[5]; den2=[0.5 1.5 1]; % задание нулей передаточной функции объекта num3=[5]; den3=[0.5 1 0.5]; % и определение полюсов передаточной функции num4=[5]; den4=[0.5 2.5 2]; % объекта sys2=tf(num2, den2); % sys3=tf(num3, den3); % передаточный функции при различных sys4=tf(num4, den4); % коэффициентах sys5=series(sys1, sys2); % последовательное соединение передаточных sys6=series(sys1, sys3); % функций sys7=series(sys1, sys4); % syssum1=feedback(sys5, [1]); % обратная связь при различных коэффициентах syssum2=feedback(sys6, [1]); % syssum3=feedback(sys7, [1]); % [y1,t]=step(syssum1,t); % [y2,t]=step(syssum2,t); % реакция обратной связи на скачок [y3,t]=step(syssum3,t); % plot(t,y1,t,y2,t,y3),grid; % построение графика ylabel ('H(t)'); % подпись оси Х (лПередаточная функция) xlabel ('t, sec'); % подпись оси Y (лВремя) legend('(p+1)*(0.5*p+1)','(p+1)*(0.5*p+0.5)','(p+1)*(0.5*p+2)'); % подпись коэффициентов График № 14: График воздействия ПИД-регулятора при оптимизированных коэффициентах передаточной функции График № 15: Укрупненная характеристика передаточной функции Программа описывающая влияние коэффициетов ПИД-регулятора на передаточную функцию: t1=0:0.01:450; t2=0:0.01:1; t3=0:1:500; t31=0:1:500; t4=0:0.001:0.03; num1=[70 1 1]; den=[1 0]; num2=[1 70 1];num3=[1 1 16]; num31=[1 1 15]; num4=[30 70 60]; num5=[5]; den5=[0.5 1.5 1]; sys1=tf(num1, den); sys2=tf(num2, den); sys3=tf(num3, den);sys31=tf(num31, den); sys4=tf(num4, den); sys5=tf(num5, den5); sys6=series(sys1, sys5);sys7=series(sys2, sys5); sys8=series(sys3, sys5); sys81=series(sys31, sys5); sys9=series(sys4, sys5); syssum1=feedback(sys6, [1]); syssum2=feedback(sys7, [1]); syssum3=feedback(sys8, [1]);syssum31=feedback(sys81, [1]);syssum4=feedback(sys9, [1]); [y1,t1]=step(syssum1,t1); [y2,t2]=step(syssum2,t2); [y3,t3]=step(syssum3,t3); [y31,t31]=step(syssum31,t31); [y4,t4]=step(syssum4,t4); subplot(421); plot(t1,y1), grid; subplot(422); plot(t2,y2), grid; subplot(423); plot(t3,y3), grid;subplot(424); plot(t4,y4), grid; subplot(414); plot(t31,y31), grid; График № 16: Влияние коэффициентов ПИД-регулятора Выводы: Как показали результаты лабораторной работы в 4-м задании первый коэффициент в системе ПИД -регулятора влияет на время установления системы в устойчивое состояние (при значении коэффициента в районе К100 Туст 400сек). Второй коэффициент регулятора в большей мере оказывает воздействие на величину перерегуляции. Третий до K=15 выполняет роль первых двух, а начиная со значения 16 воздействет на автоколебательный процесс в системе. Оптимальный выбор коэффициентов позволяет получить переходную характеристику, близкую к идеальному (скачок), т.е. с минимальным временем регулирования и отсутствия ошибки динамического процесса.

ЗАДАНИЕ №6.

Произвести фильтрацию сложного сигнала с помощью дискретной передаточной функции.
Передаточная функция фильтра Чебышева имеет вид: где n-порядок фильтра. Произведя математические преобразования, получаем формулу для фильтра Чебышева 1 рода: где x(n) Ц отсчёты по x (времени) сложного сигнала, y(n) Ц отсчёты по y (уровню). Для фильтра Чебышева 2 рода формула примет вид: Программа реализации: t=0:0.1:25; y=0.5*sin(25*pi*t); x=4*sawtooth(t,0.5); d=0.1*wgn(1,251,0); s=x+y+d; [b,a]=cheby1(6,0.06,4/14); n=7:1:251; L1=(b(1,1)*t(1,n)+b(1,2)*t(1,n-1)+b(1,3)*t(1,n-2)+b(1,4)*t(1,n- 3)+b(1,5)*t(1,n-4)+b(1,6)*t(1,n-5)+b(1,7)*t(1,n-6))-(a(1,2)*s(1,n- 1)+a(1,3)*s(1,n-2)+a(1,4)*s(1,n-3)+a(1,5)*s(1,n-4)+a(1,6)*s(1,n-5)+ a(1,7)*s(1,n-6)); plot(L1), grid Выводы: >> n=11:1:160; L1=((( b(1,1)*t(1,n)-b(1,2)*t(1,n-1)+b(1,3)*t(1,n-2)+b(1,4)*t(1,n- 3)+b(1,5)*t(1,n-4)+b(1,6)*t(1,n-5)+b(1,7)*t(1,n-6)+ b(1,8)*t(1,n- 7)+b(1,9)*t(1,n-8)+ b(1,10)*t(1,n-9))-(-a(1,2)*s(1,n-1)+a(1,3)*s(1,n-2)- a(1,4)*s(1,n-3)+a(1,5)*s(1,n-4)-a(1,6)*s(1,n-5)+ a(1,7)*s(1,n-6)- a(1,8)*s(1,n-7)+ a(1,9)*s(1,n-8))-a(1,10)*s(1,n-9))); >> plot(L1), grid