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



бет4/13
Дата14.02.2023
өлшемі3,01 Mb.
#67838
1   2   3   4   5   6   7   8   9   ...   13
Байланысты:
2 5344030152017846968

Тәжірибелік сабақ 3-4.
Көкжиекке бұрышпен лақтырылған дененің қозғалысын модельдеу.
MATLAB жүйесінде векторлармен жұмыс істеу

Қоршаған ортаның кедергісі болған кездегі қозғалыс


Дененің қозғалыс жылдамдығына пропорционал қарсылық күші бар ортадағы қозғалысын қарастырайық.
𝐹𝑐 = −𝛽𝑉.
Бұл жағдайда қозғалыс теңдеулері пішінге ие болады



Ұсынылған екінші ретті қарапайым дифференциалдық теңдеулер жүйесін интегралдауға және аналитикалық жолмен шешуге болады, бірақ сандық шешімі де мүмкін.


Қарапайым теңдеулерді сандық шешу үшін көптеген әдістер бар, олардың ең танымалдары Эйлер әдісі, Адамс әдісі, Рунге-Кутта әдістерінің отбасы [3]. Әдістердің арасындағы айырмашылық туындыны соңғы-айырмашылықпен көрсетудің әртүрлі тәсілдерінде және сәйкесінше алынған есептеулердің әртүрлі дәлдік дәрежесінде жатыр. Matlab жүйесінде дифференциалдық теңдеулердің сандық шешімі келесі функциялар жиынтығымен жүзеге асырылады (функциялардың толық тізімін нұсқаулықта табуға болады):


2.1-кесте


Стационарлық емес дифференциалдық теңдеулер

ode45

орташа тапсырыс әдісі

ode23

төмен ретті әдіс

ode113

айнымалы реттілік әдісі

Стационарлық дифференциалдық теңдеулер

ode15s

Стационар дифференциалдық теңдеулер мен айнымалы дәлдіктегі дифференциалдық-алгебралық теңдеулерді шешу

ode23s

Төмен ретті стационарлық дифференциалдық теңдеулерді шешу
дәлдік

ode23t

Трапеция формуласы арқылы стационар дифференциалдық теңдеулер мен дифференциалдық-алгебралық теңдеулерді шешу

ode23tb

Трапеция формуласы мен кері дифференциалдау арқылы стационар дифференциалдық теңдеулерді және дифференциалдық-алгебралық теңдеулерді шешу

Ең қарапайым жағдайда функциялардың келесі шақыру үлгісі болады:


[айнымалы, функция] = ode45(функцияның символдық туындысы, айнымалы диапазон, бастапқы шарттар).
Matlab-ті пайдаланған кезде жүйе тек бірінші ретті ODE шеше алатынын есте сақтау қажет. Сондықтан жоғары ретті теңдеулер алдымен бірінші ретті теңдеулер жүйесіне келтірілуі керек. Біздің жағдайда

Шешу алгоритмін қарастырыңыз.
Мысал: екінші ретті ODE жүйесінің сандық шешімі:
% Барлық айнымалы мәндерді қалпына келтіру
барлығын тазалау;


% Бастапқы шарттар
V0=10;
Альфа0=60; Бета0=1;

Масса=1; X0=0; Y0=0; g=9,8;
% ODE жүйесі үшін бастапқы деректерді қалыптастырамыз
Шарты=[0; V0*cosd(Альфа0);0;V0*sind(Альфа0)];


% Уақыт аралығын орнатыңыз
tspan=[0 2];


% Жүйені шешу
[t,R] = ode45(@MyDiffEquation, tspan, Шарт);


% сызу
фигура(); күте тұру;
сюжет(t,R, 'LineWidth',2);
легенда('X(t)','Vx(t)','Y(t)','Vy(t)'); фигура();
күте тұру;
plot(R(:,1),R(:,3), 'LineWidth',2);
легенда('Y(X)');


% Теңдеулер жүйесін құраймыз
% R(1) – x(t) сәйкес келеді,
% R(2) – Vx=dx/dt сәйкес келеді.
% R(3) – y(t) сәйкес келеді,
% R(4) – Vy=dy/dt сәйкес келеді. функция dRdt=MyDiffEquation(t,R) V0=10;
Альфа0=60; бета=1; Масса=1; X0=0; Y0=0; g=9,8;
dRdt=[R(2); -R(2)*Бета/Масса; R(4); -R(4)*Бета/Масса-г];
Соңы
MyDiffEquation(t,R) функциясы аргумент ретінде айнымалының және дифференциалдық теңдеулер жүйесінің атауларын қабылдайды және жүйенің туынды функциялары үшін символдық өрнектерді қайтарады. Matlab ережелеріне сәйкес пайдаланушы жасаған функциялар программа кодының соңында орналасады.
Жасалған өрнектер ode45 функциясын шешу үшін жіберіледі. Бірінші аргумент алдындағы @ таңбасы (MyDiffEquation функциясының) сандық мәндер емес, аналитикалық формула немесе мәнді есептеу алгоритмі жіберілетінін көрсетеді. Сонымен бірге айнымалы диапазон мен бастапқы мәндер ode45 функциясына беріледі. ode45 функциясын қолдану нәтижесінде деректер массиві қалыптасады, оның бағандары қажетті функциялардың уақытқа тәуелділігін қамтиды.
Бағдарламаны орындау нәтижесінде кинематикалық шамалардың уақытқа тәуелділік графиктері және қозғалыс траекториясының графигі салынады (2.2 және 2.3-сурет).




Күріш. 2.2.Кинематикалық шамалардың уақытқа тәуелділігі

GNU Октава ODE шешу үшін lsode() функциясын пайдаланады.


Функция шақыру үлгісі келесідей көрінеді:
[x, state, msg]=lsode (функцияның символдық туындысы, бастапқы шарттар, айнымалы диапазон).



Күріш. 2.3.Траектория

Сандық шешімнің нәтижелері бар деректер жиымы x айнымалысына беріледі, айнымалы күйде орындалу дұрыстығы коды (әдепкі бойынша 2), msg айнымалысында шешім процесі туралы қосымша жүйелік хабарлама бар. lsode функциясын пайдаланған кезде GNU Octave шешім алгоритмін дербес таңдайды, егер қаласа, пайдаланушы мұны lsode_options () функциясын пайдаланып дербес жасай алады. Шешім әдісін, конвергенция параметрлерін, қадамды және т.б. анықтауға болады. Мамандандырылған odepkg бумасын пайдаланған кезде арнайы функциялардың қосымша жинағы пайда болады.





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




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

    Басты бет