Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
examples_1.doc
Скачиваний:
2
Добавлен:
08.12.2018
Размер:
209.41 Кб
Скачать

Xlabel('n');

Результат работы данного фрагмента показан на рис. 1.6, где представлены графики решетчатых функций и .

Рис. 1.6. Графики функций , и для примеров 5_03 и 5_04.

Пример 5_04. Для исходных данных, указанных в примере 5_03, нужно построить выходной сигнал , используя DLTI представление модели системы и универсальную функцию lsim из пакета прикладных программ CST, входящего в среду MATLAB. Это же построение следует выполнить с помощью функции filter, которая является базовым инструментом пакета DSPT.

В листинге 5.4 представлен программный код на языке MATLAB, реализующий решение данного примера, с необходимыми комментариями. Естественно, что результат работы этого кода полностью совпадает с предшествующим примером (рис. 1.6).

Листинг 5.4

% Пример 5_04: Реакция на заданный входной сигнал

clear;

% Моменты дискретного времени

n=-5:22; nu=0:8;

% Входной сигнал

u1=exp(-0.1*abs(nu)); u0=[u1 zeros(1,14)];

u=[zeros(1,5) u0];

% Импульсная характеристика

h1=[1 -1 2 3 -2 -1 -0.5 2 3 -1];

h=[zeros(1,5) h1 zeros(1,13)];

% DLTI-объект

num=h1; den=[1 zeros(1,length(num)-1)];

dz=tf(num,den,1);

% Импульсная характеристика DLTI-объекта

[yi1,ni]=impulse(dz,22);

yi=[zeros(1,5) yi1'];

% Выходной сигнал DLTI-системы

y1=lsim(dz,u0,0:22); y=[zeros(1,5) y1'];

% Формирование выходного сигнала функцией filter

yf1=filter(yi1,1,u0);

yf=[zeros(1,5) yf1];

% Графики последовательностей

figure(2); clf reset;

subplot(3,1,1); g1=stem(n,u,'ro','fill'); grid on;

set(g1,'LineWidth',2); axis([-5,22,0,1.2]);

title('1) input signal u[n]'); set(gca, 'XTickLabel',[]);

subplot(3,1,2); g2=stem(n,yi,'ro','fill'); grid on;

set(g2,'LineWidth',2); axis([-5,22,-2.5,3.5]);

title('2) impulse responce h[k]'); set(gca, 'XTickLabel',[]);

subplot(3,1,3); g3=stem(n,yf,'ro','fill'); grid on;

set(g3,'LineWidth',2); axis([-5,22,-1,6]);

title('3) system responce y[n]'); xlabel('n');

Пример 5_05. Необходимо создать программные представления в среде MATLAB, как ss, tf и zpk-объекты соответственно для DLTI систем со следующими моделями:

а) б) ;

в) нули: 0.1, –0.2+0.1j, –0.2–0.1j;

полюса: –0.8, –0.1+0.2j, –0.1–0.2j, –0.3+0.4j, –0.3–0.4j;

коэффициенты: 1.

Далее следует преобразовать ss-объект к tf-форме, tf-объект к ss-форме и zpk-объект к ss-форме и найти собственные значения последнего ss объекта. Кроме того, нужно сгенерировать случайный устойчивый SISO DLTI-объект второго порядка в ss-форме и найти его передаточную функцию.

Для решения примера воспользуемся программой, представленной в листинге 5.5.

Листинг 5.5

% Пример 5_05: Создание и преобразование % DLTI объектов

clear;

% 1. Создание DLTI-объектов

% в ss-форме

a=[-2 3; 1 -2]; b=[1 -2]'; c=[1 1]; d=0;

dlti_1=ss(a,b,c,d,1);

% в tf-форме

% передаточная функция от q=z^(-1)

num_2=[-2 3 2 0]; den_2=[1 5 -2 -3];

dlti_2=tf(num_2,den_2,1); dlti_2.variable='q';

dlti_2

% передаточная функция от z

dlti_2a=tf(num_2,den_2,1)

% в zpk-форме

z1=0.1; z2=-0.2+0.1j; z3=-0.2-0.1j;

zz=[z1; z2; z3];

p1=-0.8; p2=-0.1+0.2j; p3=-0.1-0.2j;

p4=-0.3+0.4j; p5=-0.3-0.4j;

pp=[p1; p2; p3; p4; p5];

dlti_3=zpk(zz,pp,1,1);

% 2. Преобразование DLTI-объектов

% ss=>tf

d1=tf(dlti_1)

% tf=>ss

d2=ss(dlti_2a);

% zpk=>ss

d3=ss(dlti_3); zz3=eig(d3)

% 3. Создание случайного устойчивого DLTI-объекта

dlti_4s=drss(2); tf(dlti_4s)

Предусмотренный в программе вывод результирующей информации в командное окно имеет следующий вид:

>>

Transfer function:

-2 + 3 q + 2 q^2

-----------------------

1 + 5 q - 2 q^2 - 3 q^3

Sampling time: 1

Transfer function:

-2 z^3 + 3 z^2 + 2 z

---------------------

z^3 + 5 z^2 - 2 z - 3

Sampling time: 1

Transfer function:

-z - 7

-------------

z^2 + 4 z + 1

Sampling time: 1

zz3 =

-0.1000 + 0.2000i

-0.1000 - 0.2000i

-0.3000 + 0.4000i

-0.3000 - 0.4000i

-0.8000

Transfer function:

-0.8323 z^2 + 1.195 z - 0.4288

------------------------------

z^2 - 1.427 z + 0.5093

Sampling time: unspecified

>>

Пример 5_06. Необходимо создать в среде MATLAB ss-объект в соответствии со следующими уравнениями:

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

и создать соответствующий преобразованный ss-объект. Для него так же нужно найти передаточную функцию и сравнить ее с предшествующим вариантом. Для сформированных объектов построить импульсные характеристики с помощью функций impulse (CST) и impz (DSPT).

Решение примера обеспечивается программным кодом на языке MATLAB, представленном в листинге 5.6.

Листинг 5.6

% Пример 5_06:

% Линейное преобразование вектора состояния

% для DLTI-объектов

% 1. Создание DLTI-объектов в ss- и tf-формах

a=[-0.51 -0.083 -0.33;...

0.11 -0.28 -0.050;...

-0.32 0.086 -0.74];

b=[0; 1.62; -0.69]; c=[0.86 1.3 -1.6]; d=0;

dz1=ss(a,b,c,d,1); dz1_t=tf(dz1)

% 2. Линейное преобразование вектора состояния

T=[-1 2 0; 3 2 -2; 5 -1 2];

a1=inv(T)*a*T; b1=inv(T)*b;

c1=c*T; d1=0;

dz2=ss(a1,b1,c1,d1,1);

tf(dz2)

% 3. Построение импульсных характеристик

[y1,t1]=impulse(dz1);

figure(1); clf reset;

h2=stem(t1,y1,'r.','fill');

set(h2,'LineWidth',2); grid on;

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]