i want to plot two coordinate positions (complex)

조회 수: 1 (최근 30일)
shamma aljaberi
shamma aljaberi 2023년 10월 29일
편집: Vidhi Agarwal 2024년 10월 1일
Im working on a project (analysis of four bar linkages) i have two vectors that i would like to plot but dont know how. the vectors i wish to plot are R_A and R_P. shown below my code:
clc, clear
global L1 L2 L3 L4 AP delta
L1=5;
L2=1;
L3=5;
L4=7;
AP=5;
delta=50;
% Because we want theta2 to range from 0-360 (1rev) and the increment will be 360/200
theta2=0:360/200:360;
theta1=0;
%loop variables
R2=L2*exp(1i*deg2rad(theta2));
%R3=L3*exp(1i*deg2rad(theta3));
%R4=L4*exp(1i*deg2rad(theta4));
R1=L1*exp(1i*deg2rad(theta1));
Z=R1-R2;
Z_con=conj(Z);
%variables of the quadratic equation
a=L4*Z_con;
b=Z.*Z_con+L4^2-L3^2;
c=Z*L4;
%solution of the equation
T=roots([a b c]);
S=(L4*T+Z)/L3;
%angular positions
theta4=rad2deg(angle(T));
theta3=rad2deg(angle(S));
theta_AP=theta3-delta;
%path coordinates of A and P
R3=L3*exp(1i*deg2rad(theta3));
R4=L4*exp(1i*deg2rad(theta4)); %not needed
R_AP=AP*exp(1i*deg2rad(theta_AP));
R_A=R2;
R_P=R2+R_AP;
size(R_A)
ans = 1×2
1 201
size(R_P)
ans = 1×2
602 201
  댓글 수: 1
Dyuman Joshi
Dyuman Joshi 2023년 10월 30일
Do you mean like this?
L1=5;
L2=1;
L3=5;
L4=7;
AP=5;
delta=50;
% Because we want theta2 to range from 0-360 (1rev) and the increment will be 360/200
theta2=0:360/200:360;
theta1=0;
%loop variables
R2=L2*exp(1i*deg2rad(theta2));
%R3=L3*exp(1i*deg2rad(theta3));
%R4=L4*exp(1i*deg2rad(theta4));
R1=L1*exp(1i*deg2rad(theta1));
Z=R1-R2;
Z_con=conj(Z);
%variables of the quadratic equation
a=L4*Z_con;
b=Z.*Z_con+L4^2-L3^2;
c=Z*L4;
%solution of the equation
T=roots([a b c]);
S=(L4*T+Z)/L3;
%angular positions
theta4=rad2deg(angle(T));
theta3=rad2deg(angle(S));
theta_AP=theta3-delta;
%path coordinates of A and P
R3=L3*exp(1i*deg2rad(theta3));
R4=L4*exp(1i*deg2rad(theta4)); %not needed
R_AP=AP*exp(1i*deg2rad(theta_AP));
R_A=R2;
R_P=R2+R_AP;
size(R_A)
ans = 1×2
1 201
size(R_P)
ans = 1×2
602 201
plot(R_A,R_P)
Warning: Imaginary parts of complex X and/or Y arguments ignored.

댓글을 달려면 로그인하십시오.

답변 (1개)

Vidhi Agarwal
Vidhi Agarwal 2024년 10월 1일
편집: Vidhi Agarwal 2024년 10월 1일
To plot the vectors “R_A” and “R_P” from your four-bar linkage analysis project, you need to ensure that both vectors have compatible dimensions. In provided code snippet there seems a mismatch in the dimensions of “R_A” and “R_P”. ones the dimensions are consistent using “plot” function you can plot the vectors.
Below are the changes in code snippet to resolve the issue of mismatched vector size:
% Initialize T and S
T = zeros(size(theta2));
S = zeros(size(theta2));
% Solve the quadratic equation for each theta2
for k = 1:length(theta2)
% Coefficients for the quadratic equation
a = L4 * Z_con(k);
b = Z(k) * Z_con(k) + L4^2 - L3^2;
c = Z(k) * L4;
% Solve the quadratic equation
roots_result = roots([a, b, c]);
% Choose the correct root based on your problem's context
% Here, we arbitrarily select the first root
T(k) = roots_result(1);
S(k) = (L4 * T(k) + Z(k)) / L3;
end
Below is the code snippet to plot the vectors:
% Plotting
figure;
plot(real(R_A), imag(R_A), 'b', 'LineWidth', 2); % Plot R_A
hold on;
plot(real(R_P), imag(R_P), 'r', 'LineWidth', 2); % Plot R_P
title('Path of Points A and P');
xlabel('X Coordinate');
ylabel('Y Coordinate');
legend('Path of A', 'Path of P');
grid on;
axis equal;
hold off;
And output for the same will look like:
For better understanding of “plot” function refer to the following documentation:
Hope that Helps!

카테고리

Help CenterFile Exchange에서 MATLAB에 대해 자세히 알아보기

태그

제품


릴리스

R2022a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by