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

2 visualizzazioni (ultimi 30 giorni)
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 Commenti
Anupam Ghosh
Anupam Ghosh il 28 Giu 2018
Modificato: Walter Roberson il 28 Giu 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 il 28 Giu 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.

Accedi per commentare.

Risposte (1)

Walter Roberson
Walter Roberson il 9 Giu 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!

Translated by