why do i get the error using alpha too many output arguments, can anyoen help please.
2 次查看(过去 30 天)
显示 更早的评论
% Define the given parameters
OA = 0.45; % m
AAp = 0.15; % m
OB = 0.70; % m
BC = 0.65; % m
CD = 0.45; % m
DE = 0.55; % m
d = 0.30; % m
p = 1; % m
t = sqrt(p^2 - d^2); % m
% Define the crank angle range and step
phi_min = 0;
phi_max = 2*pi;
d_phi = 0.001;
% Initialize arrays to store the crank angle and E position
phi_array = phi_min:d_phi:phi_max;
y_E_array = zeros(size(phi_array));
% Calculate the position of point E for each crank angle
for i = 1:length(phi_array)
phi = phi_array(i);
theta = asin(OB*sin(phi)/BC); % Solve for theta using sin law
% Calculate the positions of points C and E
OC = BC*cos(theta);
CE = DE*cos(alpha);
angle_TCE = atan((d - CE)/(t + OC));
angle_ECT = atan(CE/(d - t - OC));
y_E = (d - CE)*tan(angle_TCE) + CE*tan(angle_ECT);
% Store the E position in the array
y_E_array(i) = y_E;
end
% Plot the position of point E as a function of the crank angle
plot(phi_array, y_E_array);
xlabel('Crank angle (rad)');
ylabel('Position of E (m)');
1 个评论
回答(3 个)
Kevin Holly
2023-2-22
alpha is a function used in plotting to change transparency. Below I change alpha to Alpha and defined it as a variable equal to 30.
% Define the given parameters
OA = 0.45; % m
AAp = 0.15; % m
OB = 0.70; % m
BC = 0.65; % m
CD = 0.45; % m
DE = 0.55; % m
d = 0.30; % m
p = 1; % m
t = sqrt(p^2 - d^2); % m
Alpha = 30;
% Define the crank angle range and step
phi_min = 0;
phi_max = 2*pi;
d_phi = 0.001;
% Initialize arrays to store the crank angle and E position
phi_array = phi_min:d_phi:phi_max;
y_E_array = zeros(size(phi_array));
% Calculate the position of point E for each crank angle
for i = 1:length(phi_array)
phi = phi_array(i);
theta = asin(OB*sin(phi)/BC); % Solve for theta using sin law
% Calculate the positions of points C and E
OC = BC*cos(theta);
CE = DE*cos(Alpha);
angle_TCE = atan((d - CE)/(t + OC));
angle_ECT = atan(CE/(d - t - OC));
y_E = (d - CE)*tan(angle_TCE) + CE*tan(angle_ECT);
% Store the E position in the array
y_E_array(i) = y_E;
end
% Plot the position of point E as a function of the crank angle
plot(phi_array, y_E_array);
xlabel('Crank angle (rad)');
ylabel('Position of E (m)');
0 个评论
Les Beckham
2023-2-22
编辑:Les Beckham
2023-2-22
You get this error because you haven't defined alpha before Matlab tries to execute this line of code
CE = DE*cos(alpha);
Since Mathworks made the extremely poor choice of naming one of it's graphics functions alpha, Matlab tries to execute that function to evaluate the argument to the cos function. But, the alpha function doesn't have any output arguments, so you get the error.
I think you probably meant to use phi here.
% Define the given parameters
OA = 0.45; % m
AAp = 0.15; % m
OB = 0.70; % m
BC = 0.65; % m
CD = 0.45; % m
DE = 0.55; % m
d = 0.30; % m
p = 1; % m
t = sqrt(p^2 - d^2); % m
% Define the crank angle range and step
phi_min = 0;
phi_max = 2*pi;
d_phi = 0.001;
% Initialize arrays to store the crank angle and E position
phi_array = phi_min:d_phi:phi_max;
y_E_array = zeros(size(phi_array));
% Calculate the position of point E for each crank angle
for i = 1:length(phi_array)
phi = phi_array(i);
theta = asin(OB*sin(phi)/BC); % Solve for theta using sin law
% Calculate the positions of points C and E
OC = BC*cos(theta);
CE = DE*cos(phi); %<<<<< changed alpha to phi here
angle_TCE = atan((d - CE)/(t + OC));
angle_ECT = atan(CE/(d - t - OC));
y_E = (d - CE)*tan(angle_TCE) + CE*tan(angle_ECT);
% Store the E position in the array
y_E_array(i) = y_E;
end
% Plot the position of point E as a function of the crank angle
plot(phi_array, y_E_array);
xlabel('Crank angle (rad)');
ylabel('Position of E (m)');
grid on
0 个评论
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!