Hi all

I am trying to run this code but I am getting an error 'Index in position 1 is invalid. Array indices must be positive integers or logical values.

Error in pid_optimized1 (line 17)

solution(K,:) = [K a m ts];'

Can someone help me to run this code.

The code is given by

clear all

clc

%Required to optimize a plant with a transfer function 4/s^3+6s^2+8s+4 with

%a PID controller whose transfer function is given by K(s+a)^2/s.

t = 0:0.01:8;

K = 0;

for K =3:0.2:5

for a =0.1:0.1:3

num =[4*K 8*K*a 4*K*a^2];

den = [1 6 8+4*K 4+8*K*a 4*K*a^2];

y = step(num,den,t);

s = 801;while y(s)>0.98&&y(s)<1.02;s = s-1;end

ts = (s-1)*0.01;%ts = settling time;

m = max(y);

if m<1.15 && m>1.10; if ts<3.00

K = K+1;

solution(K,:) = [K a m ts]; %this sorts the solution of K a m ts in a column array

end

end

end

end

## Best Answer