شنبه, 16 آذر 1398 11:48

حل سوال دینامیک پیشرفته با متلب

نوشته شده توسط

حل سوال دینامیک پیشرفته با متلب

موقعیت ذره ای با معادله ی ذیل بیان می شود:

(X(t)=f1(t
(Y(t)=f2(t
(Z(t)=f3(t

اولا: در لحظه ی t=1s بردار موقعیت، سرعت و شتاب را به دست آورید و در یک دستگاه مختصات مشترک ترسیم کنید.
ثانیا: مسیر ذره را در حرکت سه بعدی برای 5 ثانیه اول حرکت ترسیم کنید.

راهنمای استفاده:

برنامه تا حد امکان ساده نوشته شده است. کار هر قسمت از کد نیز با %% توضیح داده شده است. این که از کجا داده ها گرفته میشود و از کجا مشتق و کجاها رسم بردار و رسم مسیر و ....
در خط 8 تا 9 برنامه توابع f1 تا f3 داده میشود. در خط 12 زمانی که بردارهای باید رسم شود و درخط 15 زمانی رسم مسیر.
در صورتی که بردارها بصورت دوبعدی دیده شدن کافی با چرخاندن پلات زاویه دیده را تغییر دهید.

1
1

کد نویسی پروژه


clc
clear
close all

%% Data- f1, f2, f3
% F = anonymous function equation

F1 = @(t) -t.^2;
F2 = @(t) t-2*t;
F3 = @(t) t.^2-5*t;

t_moment = 1;       % s

t_plot = 5;         % s

%% displacement
X = F1;
Y = F2;
Z = F3;

%% Derivatives- velocity, acc
XSYM = sym(F1);                % symbolic math function
dVxSYM = diff(XSYM);           % symbolic math function 1st derivative - velocity
dAxSYM = diff(dVxSYM);          % symbolic math function 2nd derivative - acc
Vx = matlabFunction(dVxSYM);   % anonymous function 1st derivative
Ax = matlabFunction(dAxSYM);   % anonymous function 2nd derivative

YSYM = sym(F2);                % symbolic math function
dVySYM = diff(YSYM);           % symbolic math function 1st derivative - velocity
dAySYM = diff(dVySYM);          % symbolic math function 2nd derivative - acc
Vy = matlabFunction(dVySYM);   % anonymous function 1st derivative
Ay = matlabFunction(dAySYM);   % anonymous function 2nd derivative

ZSYM = sym(F3);                % symbolic math function
dVzSYM = diff(ZSYM);           % symbolic math function 1st derivative - velocity
dAzSYM = diff(dVzSYM);          % symbolic math function 2nd derivative - acc
Vz = matlabFunction(dVzSYM);   % anonymous function 1st derivative
Az = matlabFunction(dAzSYM);   % anonymous function 2nd derivative


%% plot vector
qx = X (t_moment);
qy = Y (t_moment); 
qz = Z (t_moment);
% plot3([0,qx],[0,qy],[0,qz], '-r' )
M = [qx;qy;qz;];
try
    qx = Vx(t_moment);
catch
    qx = Vx();
end
try
    qy = Vy(t_moment);
catch
    qy = Vy();
end
try
    qz = Vz(t_moment);
catch
    qz = Vz();
end
% plot3([0,qx],[0,qy],[0,qz], '-b' )
M = [M,[qx;qy;qz]];
try
    qx = Ax(t_moment);
catch
    qx = Ax();
end
try
    qy = Ay(t_moment); 
catch
    qy = Ay(); 
end
try
    qz = Az(t_moment);
catch
    qz = Az();
end
% plot3([0,qx],[0,qy],[0,qz], '-k' )
M = [M,[qx;qy;qz]];

plotv(M,'-')
title( 'Vector')
xlabel('X')
ylabel('Y')
zlabel('Z')
legend('disp','vel' , 'acc')

%% plot path
figure
qx = X ([0:0.1:t_plot]);
qy = Y ([0:0.1:t_plot]); 
qz = Z ([0:0.1:t_plot]);
plot3( qx, qy, qz, '-r' )

title( 'Path')
xlabel('X')
ylabel('Y')
zlabel('Z')

چند سوال در مورد پروژه

برنامه با چه ورژنی از متلب نوشته شده است؟

این پروژه با استفاده از متلب 2015 نوشته شده است.

سفارش پروژه مشابه

درصورتیکه این پروژه دقیقا مطابق خواسته شما نمی باشد، با کلیک بر روی کلید زیر پروژه دلخواه خود را سفارش دهید.

ارتباط با ما

شعبه1: تهران، خ 17 شهریور (شعبه قدیم)
شعبه2: قم (بزودی)

https://Trustseal.eNamad.ir/logo.aspx?id=78157&Code=nGl6n4OUkOzasJ1k2dRo