حل سوال دینامیک پیشرفته با متلب
موقعیت ذره ای با معادله ی ذیل بیان می شود:
(X(t)=f1(t
(Y(t)=f2(t
(Z(t)=f3(t
اولا: در لحظه ی t=1s بردار موقعیت، سرعت و شتاب را به دست آورید و در یک دستگاه مختصات مشترک ترسیم کنید.
ثانیا: مسیر ذره را در حرکت سه بعدی برای 5 ثانیه اول حرکت ترسیم کنید.
راهنمای استفاده:
برنامه تا حد امکان ساده نوشته شده است. کار هر قسمت از کد نیز با %% توضیح داده شده است. این که از کجا داده ها گرفته میشود و از کجا مشتق و کجاها رسم بردار و رسم مسیر و ....
در خط 8 تا 9 برنامه توابع f1 تا f3 داده میشود. در خط 12 زمانی که بردارهای باید رسم شود و درخط 15 زمانی رسم مسیر.
در صورتی که بردارها بصورت دوبعدی دیده شدن کافی با چرخاندن پلات زاویه دیده را تغییر دهید.


کد نویسی پروژه
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 نوشته شده است.