用于调整PID控制器增益的遗传算法的实现(Matlab代码实现)

本文介绍了一种使用遗传算法进行PID控制器参数自动调优的方法,针对无人机的参考跟踪任务。通过'autotuning_script.m'模拟动力学并基于满意度指标进行优化,详细展示了如何在Matlab中实现过程。关键步骤包括创建初始种群,迭代搜索最优增益,并结合Simulink模型'reference_tracking.slx'进行实际效果验证。
摘要由CSDN通过智能技术生成

 🍒🍒🍒欢迎关注🌈🌈🌈

📝个人主页:我爱Matlab


👍点赞➕评论➕收藏 == 养成习惯(一键三连)🌻🌻🌻

🍌希望大家多多支持🍓~一起加油 🤗

💬语录:将来的我一定会感谢现在奋斗的自己!

🍁🥬🕒摘要🕒🥬🍁

该存储库包含遗传算法 (GA) 的实现,用于调整 PID 控制器的增益。 本研究的重点是无人机(UAV)上使用的PID控制器。

 autotuning_script.m: 这是一个独立的文件,模拟二阶系统的动力学。调优基于满意度等标准。

 autotuning_v2: 此文件需要“reference_tracking.slx”Simulink 模型才能运行。基于参考跟踪实现调谐 a 要求的产出。

✨🔎⚡运行结果⚡🔎✨

 

 

 

 

 

💂♨️👨‍🎓Matlab代码👨‍🎓♨️💂

clear all;
clc;

% Values of damping, natural frequency and SS gain
damping_ratio = (2:8)/10;
natural_freq = (3:10);
b0 = 1;

%variables used to selected different frequency/damping values
i = 1;  % natural frequency
j = 1;  % damping ratio

% Calculating the values of the nominator and denominator of the TF
a = b0*(natural_freq(i)^2);
b = 2*natural_freq(i)*damping_ratio(j);
c = natural_freq(i)^2;

k =1;

%Simulink model required
model = 'reference_tracking';
load_system(model)

max_prop_gain = 1;
max_int_gain = 1;
% kp_initial = rand*max_prop_gain;
% ki_initial = rand*max_int_gain;
 
kp_initial = 3;
ki_initial = 3;

%population creation
gains = [ kp_initial ki_initial;
    0.5*kp_initial ki_initial;
    kp_initial 0.5*ki_initial;
    0.5*kp_initial 0.5*ki_initial
    2*kp_initial 2*ki_initial];

disp(gains);
kp = kp_initial;
ki = ki_initial;

kp_p1 = num2str(kp);
ki_p2 = num2str(ki);
s_kp_p1 = strcat('Initial P Gain: ', kp_p1);
s_ki_p2  = strcat('Initial I Gain: ',ki_p2);
initial_gains = [s_kp_p1 char(10) s_ki_p2]; % textbox element

📜📢🌈参考文献🌈📢📜

[1]杨黎明. 一种改进的免疫遗传算法及在PID控制器优化设计中的应用[D].中南大学,2007.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值