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

А.С помощью полученной переходной функции.

Отклик ищется как:

y(t)=CФ(t)x0 + CФ(t-v)Bu(v)dv +Du(t)

Если начальные условия системы заданы относительно значений выходов и их производных, то перед вычислением y(t) по выше представленной формуле необходимо записать вектор начальных состояний x0; это можно сделать только в случае полной наблюдаемости системы.

К сожалению, Program CC не смогло справиться с столь большой работой, поэтому для симуляции пришлось обратиться к помощь Matlab.

function lab4()

syms t v;

b=[1 0;0 0;0 0;0 1];

c=[0 4 0 0;0 0 0 4];

u1=[exp(-2*v)*sin(4*v);0];

u2=[exp(-2*v)*sin(4*v);6];

tv1=0:0.1:4;

tv2=0.1:0.1:8;

for i=1:length(tv1)

podint=c*ff(tv1(i)-v)*b*u1;

y0=yy0(tv1(i));

y1(i)=y0(1)+double(int(podint(1),v,0,tv1(i)));

end;

tv=tv1;

y=y1;

for i=1:length(tv2)

podint=c*ff(tv2(i)-v)*b*u2;

y2(i)=double(int(podint(1),v,0,tv2(i)));

end;

tv=[tv tv2+4,0];

y=[y y2];

plot(tv,y);

end

function y0=yy0(t)

c=[0 4 0 0;0 0 0 4];

z0=[-0,0375;0,2500;0,0250;0,500];

y0=c*ff(t)*z0;

end

function f=ff(t)

k=2.299*t+0.3666;

f(1,1)=-0.007019*sin(k)*exp(-1.153*t) + 0.006784*exp(-4.66*t)+ 0.9957*exp(-18.03*t) ;

f(1,2)=-0.2674*cos(2.299*t-0.5298)*exp(-1.153*t) + 0.01539*exp(-4.66*t) + 0.2154 *exp(-18.03*t) ;

f(1,3)=-0.05967*sin(2.299*t+0.5023)*exp(-1.153*t) + 0.04525*exp(-4.66*t)- 0.01652*exp(-18.03*t) ;

f(1,4)=-0.09742*sin(2.299*t-0.7157)*exp(-1.153*t) - 0.06805*exp(-4.66*t) + 0.004123*exp(-18.03*t);

f(2,1)= 0.02984*sin(2.299*t+0.5023)*exp(-1.153*t) - 0.02263*exp(-4.66*t) + 0.008262*exp(-18.03*t) ;

f(2,2)= 1.137*cos(2.299*t-0.3942)*exp(-1.153*t) - 0.05132*exp(-4.66*t) + 0.001787 *exp(-18.03*t) ;

f(2,3)= 0.2537*sin(2.299*t+0.6379)*exp(-1.153*t) - 0.1509*exp(-4.66*t)- 0.0001371*exp(-18.03*t);

f(2,4)= 0.4141*sin(2.299*t-0.5801)*exp(-1.153*t) + 0.2269*exp(-4.66*t)+ 3.421e-05*exp(-18.03*t) ;

f(3,1)= -0.07675*sin(2.299*t-0.6035)*exp(-1.153*t) + 0.1054*exp(-4.66*t) - 0.149*exp(-18.03*t);

f(3,2)= -2.924*sin(2.299*t+0.07083)*exp(-1.153*t) + 0.2391*exp(-4.66*t) - 0.03223*exp(-18.03*t);

f(3,3)= -0.6525*sin(2.299*t-0.4679)*exp(-1.153*t) + 0.7033*exp(-4.66*t) + 0.002473*exp(-18.03*t);

f(3,4)= 1.065*cos(2.299*t-0.1151)*exp(-1.153*t) - 1.058*exp(-4.66*t) - 0.0006169 *exp(-18.03*t) ;

f(4,1)= -0.04871*sin(2.299*t-0.7157)*exp(-1.153*t) - 0.03402*exp(-4.66*t)+ 0.002061*exp(-18.03*t) ;

f(4,2)= -1.856*sin(2.299*t-0.04135)*exp(-1.153*t) - 0.07717*exp(-4.66*t) + 0.0004458*exp(-18.03*t);

f(4,3)= -0.4141*sin(2.299*t-0.5801)*exp(-1.153*t) - 0.2269*exp(-4.66*t)- 3.421e-05*exp(-18.03*t) ;

f(4,4)= 0.6761*cos(2.299*t-0.2273)*exp(-1.153*t) + 0.3413*exp(-4.66*t) + 8.534e-06*exp(-18.03*t) ;

end

Результат:

Б. С помощью процедуры Фадеевой.

Матричная передаточная функция H(s) при нулевых начальных условиях может быть получена преобразованием Лапласа выражения

y(t) = CФ(t)z(0) + CФ(t-v)Bu(v)dv +Du(t)

и представлена в виде

H(s) = C*inv(s*I-A)*B + D

В пакете CC данное преобразование осуществляется функцией H = fadeeva(p), где p=pack(A,B,C,D).

CC>a= (-18,-4,0,0;0,0,1,0;2,-7,-5,4;0,-4,0,-2);

b=(1,0;0,0;0,0;0,1);

c=(0,4,0,0;0,0,0,4);

d=(0,0;0,0);

p=pack(a,b,c,d);

CC>h=fadeeva(p)

CC>h

#rows = 2, #columns = 2

Each element multiplied by:

1

h_c(s) = ———————————————————————————————

s^4 +25s^3 +143s^2 +344s +556

---- column # 1 ----

h(1,1)(s) = 8s+16

h(2,1)(s) = -32

---- column # 2 ----

h(1,2)(s) = 16s+288

h(2,2)(s) = 4s^3 +92s^2 +388s +536

Получили матрицу, с элементами равными полученным нами переходными. Далее вычисляем отклики по формуле

.

Вычисления производятся аналогично лаб2.

Результаты:

Y1

Y2

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