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 Center および File ExchangeMATLAB についてさらに検索

タグ

製品


リリース

R2022a

Community Treasure Hunt

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

Start Hunting!

Translated by