1-тәжірибе. Модельдеудің адам әрекетіндегі орны; модельдеудің негізгі кезеңдері, компьютерлік эксперимент туралы түсінік. Matlab жүйесімен жұмыс. Gui



бет7/13
Дата14.02.2023
өлшемі3,01 Mb.
#67838
1   2   3   4   5   6   7   8   9   10   ...   13
Практикалық оқыту. сегіз
MATLAB жүйесінің графикалық құралдарымен жұмыс істеу

сөнген тербелістер


Жүйеде диссипативті процестер болған жағдайда тербеліс амплитудасытөмендейді. Физикалық тұрғыдан бұл әртүрлі факторларға байланысты - механикалық жүйелер үшін үйкелістің болуы, электромагниттік тербелістер үшін белсенді кедергіге жылудың бөлінуі, толқындық процестер үшін ортадағы дисперсия. Дегенмен, математика деңгейінде бұл процестердің көпшілігі келесі дифференциалдық теңдеуге әкеледі:

Бағдарлама кодының шамалы өзгеруі бұл теңдеуді шешуге мүмкіндік береді.
% x(t) функциясымен және айнымалылармен символдық операцияларға жүйені көрсетіңіз
% Omega0, Xmax


syms x(t) Omega0 Xmax Бета


%Сонымен қатар, біз айнымалылардың нақты екенін және демпферлік аз екенін көрсетеміз
болжам (Омега0, «нақты»)
assume(Xmax,'real') assume(in(Beta,'real')& Beta
% Теңдеуді анықтаңыз
теңдеу = диф(x,t,2) == -Omega0^2*x-Beta*diff(x,t);
% Бастапқы шарттарды қосыңыз
FirstDiff = diff(x, t);
cond = [x(0)==Xmax, FirstDiff(0)==0];
% Дифференциалдық теңдеуді шешу(теңдеу,конд )
Жеңілдету(ан)

Нәтижесінде біз аналитикалық шешім аламыз


ans =


(Xmax*exp(-(t*(Бета - (Бета^2 - 4*Омега0^2)^(1/2)))/2)*(Бета + (Бета^2 - 4*Омега0^2)^ (1/2)))/(2*(Бета^2 - 4*Омега0^2)^(1/2)) - (Xmax*exp(-(t*(Бета + (Бета^2 - 4*Омега0)) ^2)^(1/2)/2)*(Бета - (Бета^2 - 4*Омега0^2)^(1/2)))/(2*(Бета^2)
- 4*Омега0^2)^(1/2)).

Көріп отырғаныңыздай, компьютермен алынған шешім, жеңілдету операторын қолданғаннан кейін де, физика курсынан белгілі шешімге аз ұқсастыққа ие.


𝑋 =𝑋0 ⋅ 𝑒𝛽𝑡 ⋅ 𝑠𝑖𝑛(𝜔 ⋅ 𝑡 +𝜙0).
Мысал компьютерлік алгебра жүйелері үшін жеткілікті типтік жағдайды көрсетеді: компьютермен алынған аналитикалық шешімдер адамға әрқашан түсінікті бола бермейді. Соған қарамастан, алынған өрнектер әрі қарай аналитикалық түрлендірулер үшін де, есептеу үшін де қолайлы.
Нәтиже өрнекті пайдаланып тікелей бағалау мүмкін емес, өйткені нәтиже символдық өрнек (өрнек «sym» типті, «жол» түрімен шатастырмау керек). Есептеу алдында оны matlabFunction() операторы арқылы орындалатын функцияға түрлендіру керек. Бұл жағдайда аргумент символдық өрнек болып табылады, функция көрсеткіші (function_handle) қайтарылады. Алынған көрсеткіш келесі есептеулерде функция атауы ретінде пайдаланылады. Бағдарлама кодының соңғы бөлігін өзгертейік:
% Дифференциалдық теңдеудің шешімі
% және функция көрсеткішін жасау
Өңделген тербеліс = matlabFunction(дешеу(теңдеу,шарт))
Нәтижесінде біз аламыз:
DampedOscillation = мәнмен функция_тұтқасы:
@(Бета,Омега0,Xmax,t)…..

Жүйелік хабарда DampedOscillation функцияға көрсеткіш ретінде пайдаланылады, ол есептеу үшін DampedOscillation(Beta,Omega0,Xmax,t) төрт аргументін беру қажет. Эллипс белгісінің орнына листинг айқын функция өрнегін береді (оны алдыңғы тізімде көруге болады). Алынған өрнекті, мысалы, графиктерді салу үшін қолдануға болады (график 3.1-суретте көрсетілген).


% Жиілік, амплитуданың сандық мәндерінің спецификациясы
% әлсіреу және уақыт диапазоны
Омега0=10;Xmax=5; бета=1; t=1:0,01:10;
% сызу
figure() ұстап тұрыңыз; тор қосулы;
сюжет(t,Өңгірленген тербеліс(Бета,Омега0,Xmax,t),'LineWidth',3);
xlabel('t');
ylabel('X');
легенда («Өшірілген тербеліс»);



Күріш. 3.1.сөнген тербелістер

Салынған график сөнген тербелістер үшін классикалық болып табылады. Көріп отырғанымыздай, жүйе ұсынған шешімді жазудың күрделілігіне қарамастан, ол тербелмелі жүйені жеткілікті түрде сипаттайды.


Символдық математиканы пайдаланып шешу кезінде барлық теңдеулердің аналитикалық шешімі бола бермейтінін есте ұстаған жөн. Бұл жағдайда Matlab ескерту береді:
Ескерту: анық шешім табылмады.


ans =
[бос таңба]
Бұл жағдайда сандық шешімнің мүмкіндігі сақталады (2-бөлімді қараңыз).




Достарыңызбен бөлісу:
1   2   3   4   5   6   7   8   9   10   ...   13




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет