Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лаб_практикум_ОТЧЕ.doc
Скачиваний:
1
Добавлен:
01.04.2025
Размер:
6 Мб
Скачать
☆

1. Цикл "Нелінійні властивості фізичного маятника" Мета циклу

Вивчити за програмною чисельною моделлю на персональному комп'ютері головні нелінійні властивості поводження фізичного маятника і порівняти їх з тими, що випливають з теоретичного аналізу. Зробити висновки з адекватності програмної моделі і результатів, одержаних шляхом наближених теоретичних досліджень.

Склад циклу

Цикл складається з таких лабораторних робіт.

  1. Залежність частоти власних коливань маятника від їх амплітуди.

  2. Амплітудно-частотні характеристики маятника.

  3. Випрямний ефект маятника при вібрації точки його підвісу.

  4. Параметричні коливання маятника при вертикальній вібрації точки його підвісу.

Лабораторні роботи виконуються на персональних комп’ютерах на основі єдиного програмного забезпечення з використанням середовища MatLAB.

Загальна теоретична частина

Нелінійні властивості фізичного маятника (ФМ) можна вивчати за математичною моделлю у вигляді такого диференціального рівняння другого порядку:

, (0.1)

де ­– момент інерції ФМ відносно осі обертання маятника; – коефіцієнт кутового демпфірування; - маса маятника; – відстань від центра мас С (рис. 1) до осі обертання маятника; – перевантаження (відношення прискорень до прискорення вільного падіння ) точки підвісу відповідно у вертикальному і горизонтальному напрямках; – кут відхилення маятника від вертикалі.

Теоретичне дослідження зручно здійснювати за дещо перетвореними рівняннями, перш за все приведених до так званого "безрозмірного" вигляду. Для цього слід ввести у розгляд "безрозмірний" час , наприклад, за формулою:

, (0.2)

де позначено

(0.3)

частота власних малих коливань маятника.

Рис. 0.1. Кінематика фізичного маятника

Тепер рівняння (0.1) можна подати у наступному виді:

. (0.4)

Тут використані такі позначення: – відносний коефіцієнт загасання; – безрозмірна кутова швидкість; – безрозмірне кутове прискорення.

Крім того, для деяких випадків диференціальні рівняння важливо подавати у так званій "нормальній формі Коші", тобто у вигляді сукупності диференціальних рівнянь першого порядку, розв’язаних відносно похідних.

Це, по відношенню до рівняння (0.4) можна здійснити, наприклад, вводячи наступні нові змінні

; . (0.5)

Тоді рівняння (0.4) можна подати у вигляді системи з двох рівнянь першого порядку:

(0.6)

Головні висновки про нелінійні особливості поводження ФМ найзручніше робити, аналізуючи рівняння (0.4) або (0.6).

Опис програмних засобів

Дослідження нелінійних властивостей фізичного маятника здійснюється шляхом чисельного інтегрування диференціальних рівнянь (0.6) у середовищі MatLAB. Для цього розроблений пакет програм і процедур мовою системи MatLAB, який складається з наступних програмних одиниць:

  1. керуючого script-файла FizmayatnU.m – головної програми, яка почергово викликає на запуск програми FizmayatnU_Zastavka, FizmayatnU_Menu та FizmayatnU_Yadro і забезпечує повернення на початок програми для повторювання дій;

  2. script-файла FizmayatnU_Zastavka.m, який здійснює введення первісних даних і виведення числової і текстової інформації про програму до екрану дисплею;

  3. script-файла FizmayatnU_Menu.m, який забезпечує змінювання даних у діалоговому режимі;

  4. script-файла FizmayatnU_Yadro.m, який здійснює чисельне інтегрування диференціальних рівнянь маятника і організує виведення графічної, текстової і числової інформації на екран дисплею в окреме графічне вікно; чисельне інтегрування здійснюється за допомогою стандартної програми ode45, яке використовує авторську процедуру FM2;

  5. файл-функции FM2.m, яка містить процедуру FM2 для обчислення значень правих частин диференціальних рівнянь маятника.

Тексти усіх зазначених файлів наведено нижче

Файл FizmayatnU.m

% FizMayatnU

% Головна (керуюча) програма моделювання руху маятника

% Ю.Ф.Лазарєв, кафедра ПСОН, КПІ, Україна, 7-10-1998р.

% Останні змінення - 01-02-2001

FizMayatnU_Zastavka % Виклик програми Заставки

pause(3)

k = menu(' Що робити ? ',' Продовжити роботу ', ' Закінчити роботу ');

if k==1,

while k==1

FizMayatnU_Menu % Виклик програми Меню

FizMayatnU_Yadro % Виклик Ядра програми

k=menu(' Що робити ? ',' Продовжити роботу ', ' Закінчити роботу ');

end

end

clear global % Очищення пам'ятi

clear % Завершення FizMayatnU

Файл FizmayatnU_Zastavka.m

% FizMayatnU_Zastavka

% Частина програми FizMayatnU,

% що містить виведення застaвки на екран

% Ю.Ф.Лазарев, кафедра ПСОН, КПИ, Украина, 24-09-1998р.

% Останні змінення - 01-02-2001

clc, echo on

% Це - програма FizMayatnU.

% Вона здійснює інтегрування рівнянь Фізичного Маятника

% при поступальній вібрації точки його підвісу:

%

% fi" + 2*dz*fi' + (1+nmy*sin(nu*t+ey)*sin(fi) =

% = - nmx*sin(nu*t+ex)*cos(fi)

%

% де fi - кут відхилення маятника від вертикалі,

% dz - відносний коефіцієнт згасання,,

% nu - відносна частота вібрації точки підвісу,

% nmy,nmx - амплітуди віброперевантаження у вертикальному

% і горизонтальному напрямках відповідно,

% еy,еx - початкові фази коливань у вертикальному

% і горизонтальному напрямках відповідно.

%

% У подальшому позначено КM1 = [dz,nmy,nmx,nu,ey,ex] -

% матриця коефіцієнтів цього рівняння.

echo off

disp('----------------------------------------------------------------')

% Введення "вшитих" значень

global KM1 MPFUN

sprogram = 'FizMaytnU.m'; sname ='Лазарев Ю.Ф.'; KM1 = [0 0 0 0 0 0];

MPFUN = 'MomFm1'; tfinal =2*pi*5;

fi0 =pi/180; fit0 = 0; % Завершення FizmayatnU_Zastavka

Файл FizmayatnU_Menu.m

% FizMayatnU_Menu

% Частина програми FizMayatnU,

% що здійснює діалогове введення і змінювання даних

% Ю.Ф.Лазарев, кафедра ПСОН, КПи, Украина, 24-09-1998р.

% Останні змінення - 01-02-2001

k=1;

sname=input('Введіть прізвище І. Б.');

while k<10

disp(' ')

disp(' Зараз встановлено ')

disp([sprintf(' Початковий відхил = %g град.', fi0*180/pi),...

sprintf(' Початкова швидкість = %g', fit0)])

disp(sprintf(' Кількість періодів = %g', tfinal/2/pi))

disp(' dz nmy nmx nu ey ex ')

disp(KM1)

k = menu( ' Що змінити ? ', ...

sprintf(' Відносн. к-нт згасання = %g', KM1(1)),...

sprintf(' Перевантаж.(вертикаль) = %g', KM1(2)),...

sprintf(' Перевантаж.(горизонт.) = %g', KM1(3)),...

sprintf(' Відносна частота вібрації = %g', KM1(4)),...

sprintf(' Фаза (вертикаль) = %g град.', KM1(5)*180/pi),...

sprintf(' Фаза (горизонт.) = %g град.', KM1(6)*180/pi),...

sprintf(' Початковий відхил = %g град.', fi0*180/pi),...

sprintf(' Початкова швидкість = %g', fit0),...

sprintf(' Кількість періодів = %g', tfinal/2/pi),...

' Нічого не змінювати ');

disp(' ')

if k<7,

KM1(k) = input( ['Зараз KM1(',num2str(k),sprintf(') = %g', KM1(k)),...

' Введіть нове значення = ']);

elseif k==7

fi0 = input([sprintf('Зараз fi0 = %g градусів', fi0*180/pi),...

' Введіть нове значення = ']);

fi0 = fi0*pi/180;

elseif k==8

fit0 = input([sprintf('Зараз fit0 = %g', fit0),...

' Введіть нове значення = ']);

elseif k==9

tfinal = input([sprintf('Зараз кількість періодів = %g', tfinal/2/pi),...

' Введіть нове значення = ']);

tfinal = tfinal*2*pi;

end % i f k<7

end % while % Завершення FizmayatnU_Menu

Файл FizmayatnU_Yadro.m

% FizMayatnU_Yadro

% Частина програми FizMayatnU, що здійснює головні обчислення

% (чисельне інтегрування ДР)

% Ю.Ф.Лазарев, кафедра ПСОН, КПИ, Украина, 7-10-1998р.

% Останні змінення - 01-02-2001

% 1. Підготовка початкових умов

%----------------------------------

t = 0; tf = tfinal; y0 =[fi0 fit0];

options = odeset('RelTol',1e-8,'AbsTol',[1e-10 1e-10]);

% 2. Організація циклу інтегрування

%----------------------------------

[t,y] = ode45('FM2',[0 tf],y0,options);

% 3. Виведення графіків

subplot(2,1,2); plot(t/2/pi,y(:,1)*180/pi);grid;

title('Відхилення від вертикалі','FontSize',14);

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