Представим исходное уравнение в нормальной форме Коши, вводя обозначения

В результате получим систему уравнений первого порядка

С целью определения матриц уравнения параметров состояния преобразуем систему:

матрицы коэффициентов соответственно равны

Уравнение параметров состояния будет иметь вид

Решение данных примеров в системе Matlab

Для этого создадим 3 m-файла (для каждого примера отдельно). Далее эти m-файлы запустим в командном окне(command Window).

Описание m-файлов

Пример 1

figure(1); //вызов графического окна;

clf; //очистка фигуры;

title(“solve equation d(dx)+k1*dx=k2*u”); //установка титульной надписи

syms k1 k2 p t T i Y01 Y02; //задание переменных;

//ввод данных;

k2=0.01;

k1=0.5;

//ввод исходных матриц;

B=[0 1;0 -k1];

U=[0.1];

E=eye(size(B)); //создание единичной матрицы

A=[0;k2];

D=E*p;

W=D-B;

W1=inv(W); //нахождение обратной матрицы

W2=ilaplace(W1,p,t); //обратное преобразование Лапласа

H=(int(W2,t,0,T))*A; //матрица управления

Y0=[Y01;Y02]; //матрица начальных условий

Y01=0;Y02=1;

W21=ilaplace(W1,p,T); //матрица состояния

T=0.1; // такт работы

for i=0:10,

Y=W21*Y0+H*U; //расчетная формула

Y1=Y01+(-2*exp(-1/2*T)+2)*Y02+1/500*T+1/250*exp(-1/2*T)-1/250;

Y2=exp(-1/2*T)*Y02-1/500*exp(-1/2*T)+1/500;

Y01=Y1; Y02=Y2;

hold on;.//обеспечение продолжение вывода графиков в текущее окно

plot(i,Y01,’o’,i,Y02,’or’);//построение графиков

legend(“x”,’dx’); //добавление к текущему графику легенды

xlabel(“i”); //установка надписи на оси OX

ylabel(“x,dx”); //становка надписи на оси OYgrid on; //сетка

end

Y2=exp(-1/2*T)*Y02-1/500*exp(-1/2*T)+1/500;

Y01=Y1; Y02=Y2;

hold on;.//обеспечение продолжение вывода графиков в текущее окно

plot(i,Y01,’o’,i,Y02,’or’);//построение графиков

legend(“x”,’dx’); //добавление к текущему графику легенды

xlabel(“i”); //установка надписи на оси OX

ylabel(“x,dx”); //становка надписи на оси OYgrid on; //сетка

end

нач. Условия

k1=0.5, k2=0.01; i=0..10; y10=0; y20=1; n=0.1; u=0.1

Y2=exp(-1/2*T)*Y02-1/500*exp(-1/2*T)+1/500;

Y01=Y1; Y02=Y2;

hold on;.//обеспечение продолжение вывода графиков в текущее окно

plot(i,Y01,’o’,i,Y02,’or’);//построение графиков

legend(“x”,’dx’); //добавление к текущему графику легенды

xlabel(“i”); //установка надписи на оси OX

ylabel(“x,dx”); //становка надписи на оси OYgrid on; //сетка

end

Пример. Для дифференциального уравнения

С целью определения матриц уравнения параметров состояния преобразуем систему:

Пример 2

figure(2); //вызов графического окна;

clf; //очиска фигуры;

title(“solve equation d(dx)+2*dx-3*x=u”); //установка титульной надписи

syms p t T i Y10 Y20; //задание переменных;

//ввод данных;

B=[0 1;3 -2];

E=eye(size(B)); //создание единичной матрицы

U=[0.1];

A=[0;1];

D=E*p;

W=D-B;

W1=inv(W); //нахождение обратной марицы

W2=ilaplace(W1,p,t); //обратное преобразование Лапласа

H=(int(W2,t,0,T))*A; //марица управления

Y10=0;

Y20=1;

T=0.1; // такт работы

for i=0:10,

Y=W21*Y0+H*U;

Y1=(1/4*exp(-3*T)+3/4*exp(T))*Y10+1/16*16^(1/2)*(exp(T*(-

1+1/2*16^(1/2)))-exp(T*(-1-1/2*16^(1/2))))*Y20+1/40*(exp(-

T)*exp(1/2*16^(1/2)*T)*16^(1/2)+8*exp(-T)*exp(1/2*16^(1/2)*T)-exp(-

T)*exp(-1/2*16^(1/2)*T)*16^(1/2)+8*exp(-T)*exp(-1/2*16^(1/2)*T)-

16)/(-2+16^(1/2))/(2+16^(1/2));

Y2=3/16*16^(1/2)*(exp(T*(-1+1/2*16^(1/2)))-exp(T*(-1-

1/2*16^(1/2))))*Y10+(3/4*exp(-3*T)+1/4*exp(T))*Y20-1/40*exp(- 3*T)+1/40*exp(T);

Y10=Y1;

Y20=Y2;

hold on; //обеспечение продолжение вывода графиков в текущее окно

plot(i,Y1,’o’,i,Y2,’or’); //построение графиков

legend(“x”,’dx’); //добавление к текущему графику легенды

xlabel(“i”); //установка надписи на оси OX

ylabel(“x,dx”); //становка надписи на оси OY

grid on; end //сетка


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: