error of "Too many input arguments." in my program of PSO- PI controller program

2 views (last 30 days)
i m getting "Too many input arguments. " error while i am running the program for finding the optimum parameter values of fractional PI controller program.
  7 Comments
Anupam Ghosh
Anupam Ghosh on 28 Jun 2018
Edited: Walter Roberson on 28 Jun 2018
step(feedback(plant*cont,1),t)
I have corrected the line to the above. but now when i run my program it is giving a new error saying "In the expression "M^K", the exponent K must be a scalar integer."
please suggest a solution.
Walter Roberson
Walter Roberson on 28 Jun 2018
You create
s = tf('s')
and you have
cont=Kp+(Ki/(s)^L);
which tries to raise s to the exponent stored in L .
When you are using transfer functions, the exponent you use with ^ has to be a finite integer.
In your first call to havas to deal with the initial conditions, you used round() to ensure that all of the inputs were integers. However, when you are later looping and updating your x variables, you do not take any care to ensure that x(3) is a positive integer.

Sign in to comment.

Answers (1)

Walter Roberson
Walter Roberson on 9 Jun 2018
In the line
e=1-step(feedback(plant*cont,1,t))
You are invoking feedback() with three input arguments. feedback() is only expecting two input arguments.
Just a few lines earlier you had invoked
step(feedback(plant*cont,1));
which uses it with two input arguments.

Community Treasure Hunt

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

Start Hunting!