Mehta Malay MTE Assignment

You might also like

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 6

Name: Mehta Malay

BITS ID: 2020H1060209P

MATLAB CODE:

clc;
clear all;
close all;

%% Taking inputs from user

Starting_point = input('Enter coordinates of staring


point:') % use square brackets
End_point = input('Enter coordinates of ending point:') %
use square brakcets
Feed = input('Enter feed of the tool:')

%% Given Input value

A = 50000; % acceleration
D = 50000; % deceleration
T_min = 0.002; % minimum interpolation time

%% Problem formulation

Xs = Starting_point(1); % Starting point X coordinate


Ys = Starting_point(2); % Starting point Y coordinate
Xe = End_point(1); % Ending point X coordinate
Ye = End_point(2); % Ending point Y coordinate

dX = Xe-Xs;
dY = Ye-Ys;

L = sqrt(dX^2 + dY^2);

delU = Feed*T_min;

N = floor(L/delU);

N1 = Feed^2/(2*A*delU);
N3 = Feed^2/(2*D*delU);
N2 = N-(N1+N3);

delX = dX/N;
delY = dY/N;
X(1) = Xs;
Y(1) = Ys;
t(1) = 0;
f(1) = 0;
Ti(1) = 0;

feed = zeros(N,1);
Interval_Time = zeros(N,1);
Time_millisecond = zeros(N,1);
x_Postion = zeros(N,1);
y_Position = zeros(N,1);

i = 1;

for k = 2:(N1+1)

f(k) = sqrt(2*(k-1)*A*delU);
Ti(k) = 2*delU/(f(k)+f(k-1));
t(k) = t(k-1)+Ti(k);
Vx(k) = delX/Ti(k);
Vy(k) = delY/Ti(k);
fx(k) = sqrt(2*(k-1)*A*delX);
fy(k) = sqrt(2*(k-1)*A*delY);
X(k) = X(k-1)+delX;
Y(k) = Y(k-1)+delY;
feed(i) = f(k);
Interval_Time(i) = Ti(k);
Time_millisecond(i) = t(k);
x_Postion(i) = X(k);
y_Position(i) = Y(k);
i = i+1;
end
for k = (N1+2):(N1+N2+1)

f(k) = Feed;
Ti(k) = delU/Feed;
t(k) = t(k-1)+Ti(k);
Vx(k) = delX/Ti(k);
Vy(k) = delY/Ti(k);
fx(k) = fx(N1+1);
fy(k) = fy(N1+1);
X(k) = X(k-1)+delX;
Y(k) = Y(k-1)+delY;
v = fx(k);
w = fy(k);
feed(i) = f(k);
Interval_Time(i) = Ti(k);
Time_millisecond(i) = t(k);
x_Postion(i) = X(k);
y_Position(i) = Y(k);
i = i+1;
end

for k = (N1+N2+2):(N+1)

f(k) = sqrt((Feed^2)-(2*(k-(N1+N2+1))*D*delU));
Ti(k) = 2*(delU)/(f(k)+f(k-1));
t(k) = t(k-1)+Ti(k);
Vx(k) = delX/Ti(k);
Vy(k) = delY/Ti(k);
fx(k) = sqrt((v^2)-(2*(k-(N1+N2+1))*D*delX));
fy(k) = sqrt((w^2)-(2*(k-(N1+N2+1))*D*delY));
X(k) = X(k-1)+delX;
Y(k) = Y(k-1)+delY;
feed(i) = f(k);
Interval_Time(i) = Ti(k);
Time_millisecond(i) = t(k);
x_Postion(i) = X(k);
y_Position(i) = Y(k);
i = i+1;
end

T=table(feed,Interval_Time,Time_millisecond,x_Postion,y_Posi
tion)

tms= t*1000;

%% Plotting the results

figure
grid on
plot(tms,X,'k')
title('Displacement Vs time')
hold on
plot(tms,Y,'r')
xlabel('Time(msec)')
ylabel('displacement')
legend('X-Displacement','Y-Displacement')

figure
plot(tms,fx,'k')
title('Velocity Vs time')
hold on
plot(tms,fy,'r')
xlabel('Time(msec)')
ylabel('Velocity')
legend('X-Velocity','Y-Velocity')

Displacement Graph:
Velocity Graph:
Output Table:

You might also like