how can i write cost function in firefly algorithm for optimal tuning pid parameters in matlab
显示 更早的评论
Iam using firefly algorithm for optimal tuning pid parameters , the cost function is IAE i wrote IAE function as a function of pid parameters {kp,ki.kd} but it doesnot work it gives error that it undefined variable ,should i give initial values for parameters?? and what is error in the IAE function
costFunction = integral(abs(error),0,Inf);
it gives Undefined function 'abs'
回答(2 个)
noor diyana
2017-5-11
0 个投票
Here are example from my senior project. You can try it. You can change the objective function, MaxIt, runtime as system that you want. Anything can email me diyana.escosa2014@gmail.com All the best!
2 个评论
sandy jeak
2017-5-13
Hansem Rosas Ramos
2024-6-5
Hello Noor diyana,
Pls could you explain me how to change the system in the code, in my case I must change for this system:
G(s)=1065.5/(s+10.57) (Plant)
I think that in your code called "trackls.m", i have to change in SystemA for the feedback controlled system (Wc(s)=(G(s)C(s))/(1 + G(s)C(s)),where C(s)=Kp + Ki/s + Kd*s , and continue the operation algebratically, for example my feedback system controlled would be:
SystemA=tf([1605.5*kd 1605.5*kp 1605.5*ki ],[(1605.5*kd + 1) (1605.5*kp + 10.57) 1605.5*ki]);
this is correct?
And then the main program pulls the data and parameters contained in the tracklsq code? Pls I would appreciate it if you could explain that part better to me.
Best Regards
ednilson szeskoski
2017-9-3
0 个投票
I have the same problem. I'm implementing PID for a voltage control system. The goal is to optimize using firefly, the same error quoted is happening, how can I implement in the code the transfer function of my case? Thank you.
tf([0.004, 0.454, 5.55, 15.1, 10], [1.6e-05, 0.002032, 0.04732, 0.4286, 2.133, 8.76, 18.01, 11])


3 个评论
Walter Roberson
2017-9-3
I am confused about whether you are using Simulink or trying to do it in MATLAB itself? Are you trying to implement Firefly algorithm in Simulink? Are you trying to implement Firefly algorithm where the function being computed is the result of simulating a Simulink model?
ednilson szeskoski
2017-9-3
编辑:Walter Roberson
2017-9-3
The image where the mesh is drawn representing the system is only for understanding my system I work with it in simulink but only by changing the PID values, the image with the equation is the result of the transfer function of the feedback system, in which I am not able to implement in the Diyana code.
Below I have the code that I made simply to get the transfer function. Now the problem is to apply the adapted PID to the firefly optimization code.
%%Malha da excitação
amp = tf([10] , [0.1 1])
exit = tf([1] , [0.4 1])
ger = tf([1] , [1 1])
sens = tf([1], [0.01 1])
h = amp * exit * ger
g = sens
malhaeq = h / (1+h*g)
step(malhaeq)
类别
在 帮助中心 和 File Exchange 中查找有关 PID Controller Tuning 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!