Uploaded by Aleksey Korshikov

ооп

advertisement
МІНІСТЕРСТВО ОСВІТИ ТА НАУКИ УКРАЇНИ
ДЕРЖАВНИЙ ВИЩІЙ НАВЧАЛЬНИЙ ЗАКЛАД
ДОНЕЦЬКИЙ НАЦІОНАЛЬНИЙ ТЕХНІЧНИЙ УНІВЕРСИТЕТ
Кафедра АТ
Практичне завдання
на тему: «Модель коливання торсіонного пружинного осцилятора» з
дисципліни: «Об’єктно-оріентовані технології в комп.системах»
Варіант №7
Виконав:
ст. гр. АКТ-18
Рогожин Андрій
Перевірив викладач
Кафедри АТ
Лесiна Є.В.
Покровськ – 2019
Мета роботи: Метою практичного завдання є отримання практичних
навичок у роботі з cередовищем Matlab. Нвчитися моделювати коливання
торсіонного пружинного осцилятора.
Порядок виконання:
1. Записав рівняння руху торсіонного осцилятора в разі відсутності сил
тертя, отримав систему рівнянь у формі Коші.
k=50; m=15 0
0= ;
;
-система рівнянн у форі Коші ;
=10.7;
;
;
10.7*sin(1.4*t+1.33).
Програмний код
k=50;
m=15;
x0=13;
v0=10;
omega0=sqrt(k/m)
A=sqrt(x0^2+v0^2/omega0^2)
fi0=atan(x0*omega0/v0)
t=[0:0.1:50];
x=A*sin(omega0*t+fi0);
figure;
plot(t,x);
grid on;
Скріншоти роботи програми
Програма для чисельного методу розв'язання
Програмний код
Файл sysdif:
function F=sysdif(t, x)
omega02=1.99;
F=[x(2);
-omega02*x(1)];
Файл prog:
x10=30;
x20=10;
x0=[x10, x20];
options=odeset('RelTol', 1.0e-6);
[T, X]=ode45('sysdif', [0 50], x0, options);
x1=X(:,1);
x2=X(:,2);
hold on
plot (x1, x2, 'b')
xlabel('дистанция');
ylabel('скорость');
figure
plot (T, x1, 'r')
xlabel('время');
ylabel('дистанция');
axis([0 50 -60 60])
Скріншоти роботи програми
Фазовий портрет (залежність швидкості від
відстані)
Закон руху (залежність відстані від часу)
Графік закону руху, побудованого чисельно в Matlab, збігається з графіком
закону руху, отриманого аналітично.
2. Записати рівняння руху торсіонного осцилятора з урахуванням сил
в'язкого тертя, отримати системи рівнянь у формі Коші.
;
;
;
=
=0.4;
тоді
=1.3565;
);
).
Програмний код
k=40;
m=20;
x0=30;
v0=10;
u=22.63;
omega0=sqrt(k/m)
C1=x0
C2=v0
T=2*pi/omega0
y=u/(2*sqrt(k*m))
omega=sqrt(omega0^2-y^2)
A=sqrt(x0^2+v0/omega0^2)
t=[0.1:0.1:25];
x=exp(-y*omega0*t).*(C1*cos(omega*t)+C2*sin(omega*t))
figure;
plot(t,x);
grid on;
Скріншоти роботи програми
Програма для чисельного методу розв'язання
Програмний код
Файл sysdif:
function F=sysdif3(t, x)
omega02=1.12;
y=0.8;
F=[x(2);
-y*x(2)-omega02*x(1)];
Файл prog:
x10=30;
x20=10;
x0=[x10, x20];
options=odeset('RelTol', 1.0e-6);
[T, X]=ode45('sysdif3', [0 50], x0, options);
x1=X(:,1);
x2=X(:,2);
hold on
plot (x1, x2, 'b')
xlabel('дистанция');
ylabel('скорость');
figure
plot (T, x1, 'r')
xlabel('время');
ylabel('дистанция');
axis([0 25 -10 50])
grid on;
Скріншоти роботи програми
Фазовий портрет (залежність швидкості від
Закон руху (залежність відстані від часу)
відстані)
Графік закону руху, побудованого чисельно в Matlab, збігається з графіком
закону руху, отриманого аналітично.
Висновок : Одержав практичний навик у роботі в Matlab. Навчився
моделювати коливання торсіонного пружинного осцилятора.
Download