Using simulink as fitness function for GA
Mostrar comentarios más antiguos
Hello, I built a PI fuzzy control system using simulink with 3 gains that need to be tuned. I want to tune these gains automatically using genetic algorithm based on minimizing the mean square error. I have a m-file that runs the GA and calls a fitness function in another m-file. The fitness function m-file receives the gains as suggetsed population from GA and it is supposed to run the simulink block after sending the gains to it. The problem is that how to send the population (gains) during the run of GA to simulink and run the simulink block every generation???
FYI I used the sim command to run simulink and to workspace block to get the system output to the m-file. I tried using set_param,assignin commands and it didn't work (I knew because the output gains I got are not optimal for the controller)...
Please help me it's for my master thesis and I need this to finish...
2 comentarios
ashish
el 7 de Nov. de 2012
Sakshi Bhonsle
el 2 de Mayo de 2019
Kindly mail me if your solution for the above mentioned solution was found : b.sakshi93@gmail.com
Respuestas (4)
Richard Crozier
el 16 de Jun. de 2012
0 votos
I think this might help you:
Muruganandham Subramanian
el 7 de Nov. de 2012
Editada: Walter Roberson
el 8 de Nov. de 2012
0 votos
Hi,
FYI,Genetic algorithm is a population based method, probably the gains for PID controller(i.e, Proportional gain, Integral gain, Derivative gain) are to be splitted into range b/w mininum to maximum (for e.g If you know the PID gains range approximately).For this you can use 'unifrnd' command.then by looping method, for every data of PID gains(i.e depends on population), give as i/p to .mdl, then by GA algorithm, you can choose best results
Sangeetha Elumalai
el 10 de Feb. de 2016
0 votos
I also want to tune PID controller in simulink by using GA... if anyone knows, pls help me
2 comentarios
Hassan Yousef
el 4 de En. de 2018
me also
Zhengyan Mao
el 26 de En. de 2018
Anyone of you figures this out?
Stephan Kurzawe
el 11 de Mayo de 2018
You just have to add 'SrcWorkspace','Current' into your sim command. So that it looks:
sim('model.slx','SrcWorkspace','Current');
Hope it helps. Stephan
Categorías
Más información sobre Programmatic Model Editing en Centro de ayuda y File Exchange.
Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!