Too many input arguments Error using Polyfit..HELP!!!
Show older comments
global I1 I2 P SynM s G D L Polar k;
I1=200; % Moment of intertia of motor (kgm^2)
I2=3000; % Moment of intertia of fan (kgm^2)
P=1000000; % Motor Power
SynM=1500; % Motor synchronous speed RPM
s=0.05; % Motor slip
G=80000000000; % Shaft modulus of Rigidity
D=0.2; % Shaft Diameter
L=1; % Shaft Length
Polar=0.0001571; % (pi*(D^4)/32) – Polar moment of Inertia
k=12568000; % stiffness = (G*J)/L
t0=0; % start time of simulation
tf=60; % end time of simulation
Tf1=P/((2*pi/60)*((1-s)*SynM));
% Torque with full load
M=[0; 20; 40; 60; 65; 70; 75; 80; 85; 90; 95; 100];
% percentage of motor synchronous speed
T=[150; 176; 212; 268; 282; 289; 296; 290; 262; 200; 100; 0];
% percentage of torque with full load
Tm=Tf1.*(T./100);
% Torque motor in N.m
Tf=(0.0033).*(((SynM*(2*pi/60)).*(M./100)).^2);
% Torque fan in N.m
P1=polyfit(((SynM*(2*pi/60)).*(M./100)),Tm,6);
% Coefficient %Pm=polyval(P,Sm); % value of y axis
P2=polyfit(((SynM*(2*pi/60)).*(M./100)),Tf,4);
% Pf=polyval(P2,Sm);
x=[0; 0; 0; 0];
% initial value for z_dot in assignment_function
options=odeset('abstol',1e-6,'reltol',1e-6);
% set value to -6 maximum
[t,z]=ode45('assignment_function',[t0 tf],x,options);
% used ode45 function
plot(t,z); % plot graph
subplot(2,1,1);
plot(t,z(:,2),'r',t,z(:,4),'g');
grid;
title('Angular Velocity against Time');
xlabel('Time (s)');
ylabel('Angular Velocity (rad/s)');
legend('Motor','Fan');
subplot(2,1,2);
plot(t,z(:,1)-z(:,3));
grid;
title('Angle of Twist against Time');
xlabel('Time (s)');
ylabel('Angle of Twist (Rad)');
legend('Angle of twist');
Error using polyfit
Too many input arguments.
Error in Testrun (line 30)
P2=polyfit(((SynM*(2*pi/60)).*(M./100)),Tf,4);
20 Comments
KSSV
on 2 Nov 2020
Check the dimensions of input. You have to input 1D arrays...Read the documentation.
Danish Teo
on 2 Nov 2020
KSSV
on 2 Nov 2020
There is no error with the polyfit with shown code.
Danish Teo
on 2 Nov 2020
Bruno Luong
on 2 Nov 2020
Edited: Bruno Luong
on 2 Nov 2020
Can you tell us what is result of
which polyfit
Danish Teo
on 3 Nov 2020
KSSV
on 3 Nov 2020
@Danish Type
which polyfit
in workspace and tell us what it shows up. This is what Bruno Luong meant. We suspect that there might be a user defined polyfit function. You are using that instead of inbuilt function.
Danish Teo
on 3 Nov 2020
Edited: Danish Teo
on 3 Nov 2020
The function is inbuilt function.....Are you sure the given code you are running? I am getting the following error when I run your code.
global I1 I2 P SynM s G D L Polar k;
I1=200; % Moment of intertia of motor (kgm^2)
I2=3000; % Moment of intertia of fan (kgm^2)
P=1000000; % Motor Power
SynM=1500; % Motor synchronous speed RPM
s=0.05; % Motor slip
G=80000000000; % Shaft modulus of Rigidity
D=0.2; % Shaft Diameter
L=1; % Shaft Length
Polar=0.0001571; % (pi*(D^4)/32) – Polar moment of Inertia
k=12568000; % stiffness = (G*J)/L
t0=0; % start time of simulation
tf=60; % end time of simulation
Tf1=P/((2*pi/60)*((1-s)*SynM));
% Torque with full load
M=[0; 20; 40; 60; 65; 70; 75; 80; 85; 90; 95; 100];
% percentage of motor synchronous speed
T=[150; 176; 212; 268; 282; 289; 296; 290; 262; 200; 100; 0];
% percentage of torque with full load
Tm=Tf1.*(T./100);
% Torque motor in N.m
Tf=(0.0033).*(((SynM*(2*pi/60)).*(M./100)).^2);
% Torque fan in N.m
P1=polyfit(((SynM*(2*pi/60)).*(M./100)),Tm,6);
% Coefficient %Pm=polyval(P,Sm); % value of y axis
P2=polyfit(((SynM*(2*pi/60)).*(M./100)),Tf,4);
% Pf=polyval(P2,Sm);
x=[0; 0; 0; 0];
% initial value for z_dot in assignment_function
options=odeset('abstol',1e-6,'reltol',1e-6);
% set value to -6 maximum
[t,z]=ode45('assignment_function',[t0 tf],x,options);
% used ode45 function
plot(t,z); % plot graph
subplot(2,1,1);
plot(t,z(:,2),'r',t,z(:,4),'g');
grid;
title('Angular Velocity against Time');
xlabel('Time (s)');
ylabel('Angular Velocity (rad/s)');
legend('Motor','Fan');
subplot(2,1,2);
plot(t,z(:,1)-z(:,3));
grid;
title('Angle of Twist against Time');
xlabel('Time (s)');
ylabel('Angle of Twist (Rad)');
legend('Angle of twist');
Danish Teo
on 3 Nov 2020
KSSV
on 3 Nov 2020
Polyfit remains same in all the version according my knowledge.
Walter Roberson
on 3 Nov 2020
When the error occurs please tell us class() of each of the variables mentioned in the line that is causing the problem.
Danish Teo
on 3 Nov 2020
Walter Roberson
on 3 Nov 2020
Please
edit polyfit
and show us what the first line of the file is.
Danish Teo
on 3 Nov 2020
Walter Roberson
on 3 Nov 2020
Could you confirm that is what you get when you ask to edit polyfit? Because that is not even close to the right function.
Please also try
edit D:\mATLAB\toolbox\matlab\polyfun\polyfit.m
to verify that you really have overwritten the Mathworks version
Danish Teo
on 3 Nov 2020
Danish Teo
on 3 Nov 2020
Bruno Luong
on 3 Nov 2020
Edited: Bruno Luong
on 3 Nov 2020
- With luck you might have a copy polyfit.asv (but as we ask you to edit the file, it's no longer contains the original code).
- Reinstall MATLAB.
- Ask someone who has an intact installation to give you a file (though this is not totally legal to do).
Danish Teo
on 5 Nov 2020
Accepted Answer
More Answers (0)
Categories
Find more on Assembly in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!