В результате получим систему уравнений первого порядка
С целью определения матриц уравнения параметров состояния преобразуем систему:
матрицы коэффициентов соответственно равны
Уравнение параметров состояния будет иметь вид
Решение данных примеров в системе 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 //сетка