【PID】基于非洲秃鹫算法优化PID控制附matlab代码

简介: 【PID】基于非洲秃鹫算法优化PID控制附matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。

🍎个人主页:Matlab科研工作室

🍊个人信条:格物致知。

更多Matlab仿真内容点击👇

智能优化算法       神经网络预测       雷达通信      无线传感器        电力系统

信号处理              图像处理               路径规划       元胞自动机        无人机

⛄ 内容介绍

在控制过程中,按偏差的比例(P),积分(I)和微分(D)进行控制的PID控制器(亦称PID调节器)是发展最早的控制算法之一.该算法出现于20世纪30,40年代,它原理简单,易于实现,控制参数相对独立;而且对于控制的典型对象-"一阶滞后+纯滞后"与"二阶滞后+纯滞后"的控制系统,PID控制器的一种最优的.它的参数整定方式简便,结构改变灵活,有比例调节,比例积分调节以及比例积分加微分调节.然而,随着控制过程日益复杂,控制要求不断提高,很多产品的生产过程要求不允许超过设定值,例如在葡萄酒的酿制过程中,任何一种原料的一点点超标都会影响葡萄酒的整体口味,因此生产过程中的无超调控制是非常重要的.文章应用非洲秃鹫优化算法对粮食库温度,湿度PID控制器参数开展了寻优研究,建立了相应的优化目标函数,利用寻优得到的参数构成温湿度PID控制器,对粮食库空气处理的温湿度进行优化控制.并在Matlab环境下开展了基于非洲秃鹫优化PID控制的粮食库温湿度控制仿真试验,验证了利用这种算法获得的良好控制效果.

AVOA是受非洲秃鹫觅食和导航行为启发提出的一种元启发式优化算法。AVOA数学描述如下。

a avoa通过通过所有适应度适应度适应度适应度炙鹤移动。

式中Ri(t) 除最优、次优蒸鹇外的其他蒸鹱位置; BestV1 BestV2 —最优蒸鹛和次优蒸鹛位置; L1 L2 01之间待测量1 pi 选择最佳蒸鹇的概率; fi 其他蒸鹛合适度; t 当前代次数;其他参数含义相同。

b)秃鹫秃鹫觅食,若经常觅食状态状态状态状态状态状态状态状态状态状态能量能量能量能量能量能量能量能量能量能量能量能量能量能量能量能量能量更强壮的猎鹰附近察觉食物。食物率数据描述为:

式中F兔饲料食用率; T 最大延迟次数; z 11之间的随机数; h 22之间的随机数; rand1 01之间的随机数; w 控制探索过程序参数,随着w值增加,计算进入研究阶段的概率增加大,反知概率减少。

c)探索阶段。炙鹤工具具有很高的视觉能力和很好的嗅觉能力。在AVOA中,炙鹤通式(5)随机搜索不同域。

式中Pi(t1)—t1次迭代秃鹫位置;Pi(t)t次迭代秃鹫位置;X秃鹫随机移动的地方,以保护食物免受其他秃鹫夺取,X2×randrand表示01之间的随机数;P1探索阶段选择参数;rand2rand3randP101之间的随机数;ublb搜索空间上、下限值;其他参数意义同上。

d)开发阶段。AVOA中,开发阶段分为开发一阶段和开发二阶段2种策略,并通过开发阶段选择参数P2P3决定采用何种策略进行位置更新。开发第一阶段秃鹫位置更新描述如下:

式中rand4rand5rand6randP201之间的随机数;P2开发第一阶段更新策略选择参数;其他参数意义同上。

开发第二阶段秃鹫位置更新描述如下:

式中BestV1(t)BestV2(t)t次迭代最优、次优秃鹫位置;randP301之间的随机数;P3开发第二阶段更新策略选择参数;Levy(d)随即游走,其每一步方向完全随机而各向同性,步长为重尾分布;其他参数意义同上。

⛄ 部分代码

function [current_vulture_X] = exploitation(current_vulture_X, Best_vulture1_X, Best_vulture2_X, ...

                                                                     random_vulture_X, F, p2, p3, variables_no, upper_bound, lower_bound)


% phase 1

   if  abs(F)<0.5

       if rand<p2

           A=Best_vulture1_X-((Best_vulture1_X.*current_vulture_X)./(Best_vulture1_X-current_vulture_X.^2))*F;

           B=Best_vulture2_X-((Best_vulture2_X.*current_vulture_X)./(Best_vulture2_X-current_vulture_X.^2))*F;

           current_vulture_X=(A+B)/2;

       else

           current_vulture_X=random_vulture_X-abs(random_vulture_X-current_vulture_X)*F.*levyFlight(variables_no);

       end

   end

   % phase 2

   if  abs(F)>=0.5

       if rand<p3

           current_vulture_X=(abs((2*rand)*random_vulture_X-current_vulture_X))*(F+rand)-(random_vulture_X-current_vulture_X);

       else

           s1=random_vulture_X.* (rand()*current_vulture_X/(2*pi)).*cos(current_vulture_X);

           s2=random_vulture_X.* (rand()*current_vulture_X/(2*pi)).*sin(current_vulture_X);

           current_vulture_X=random_vulture_X-(s1+s2);

       end

   end

end

⛄ 运行结果

⛄ 参考文献

[1] 师佳楠,夏娇,李宇帅,等.基于Matlab的PID控制算法仿真[J].电子质量, 2020(7):10.

[2] 刘雁林,蔡淮,刘胜国.基于退火遗传算法的Fuzzy-PID温控系统[J].成都信息工程学院学报, 2005(06):72-75.DOI:CNKI:SUN:CDQX.0.2005-06-016.

⛳️ 代码获取关注我

❤️部分理论引用网络文献,若有侵权联系博主删除
❤️ 关注我领取海量matlab电子书和数学建模资料


相关文章
|
1月前
|
机器学习/深度学习 算法 PyTorch
RPN(Region Proposal Networks)候选区域网络算法解析(附PyTorch代码)
RPN(Region Proposal Networks)候选区域网络算法解析(附PyTorch代码)
232 1
|
23天前
|
机器学习/深度学习 算法 搜索推荐
Machine Learning机器学习之决策树算法 Decision Tree(附Python代码)
Machine Learning机器学习之决策树算法 Decision Tree(附Python代码)
|
1月前
|
传感器 算法 计算机视觉
基于肤色模型和中值滤波的手部检测算法FPGA实现,包括tb测试文件和MATLAB辅助验证
该内容是关于一个基于肤色模型和中值滤波的手部检测算法的描述,包括算法的运行效果图和所使用的软件版本(matlab2022a, vivado2019.2)。算法分为肤色分割和中值滤波两步,其中肤色模型在YCbCr色彩空间定义,中值滤波用于去除噪声。提供了一段核心程序代码,用于处理图像数据并在FPGA上实现。最终,检测结果输出到&quot;hand.txt&quot;文件。
|
6天前
|
机器学习/深度学习 人工智能 算法
基于DCT和扩频的音频水印嵌入提取算法matlab仿真
本文介绍了结合DCT和扩频技术的音频水印算法,用于在不降低音质的情况下嵌入版权信息。在matlab2022a中实现,算法利用DCT进行频域处理,通过扩频增强水印的隐蔽性和抗攻击性。核心程序展示了水印的嵌入与提取过程,包括DCT变换、水印扩频及反变换步骤。该方法有效且专业,未来研究将侧重于提高实用性和安全性。
|
7天前
|
算法
代码随想录算法训练营第六十天 | LeetCode 84. 柱状图中最大的矩形
代码随想录算法训练营第六十天 | LeetCode 84. 柱状图中最大的矩形
18 3
|
7天前
|
算法
代码随想录算法训练营第五十七天 | LeetCode 739. 每日温度、496. 下一个更大元素 I
代码随想录算法训练营第五十七天 | LeetCode 739. 每日温度、496. 下一个更大元素 I
11 3
|
7天前
|
算法
代码随想录算法训练营第五十六天 | LeetCode 647. 回文子串、516. 最长回文子序列、动态规划总结
代码随想录算法训练营第五十六天 | LeetCode 647. 回文子串、516. 最长回文子序列、动态规划总结
28 1
|
9天前
|
文字识别 算法 计算机视觉
图像倾斜校正算法的MATLAB实现:图像倾斜角检测及校正
图像倾斜校正算法的MATLAB实现:图像倾斜角检测及校正
15 0
|
12天前
|
机器学习/深度学习 算法
【MATLAB】GA_ELM神经网络时序预测算法
【MATLAB】GA_ELM神经网络时序预测算法
286 9
|
17天前
|
算法 安全 Java
java代码 实现AES_CMAC 算法测试
该代码实现了一个AES-CMAC算法的简单测试,使用Bouncy Castle作为安全提供者。静态变量K定义了固定密钥。`Aes_Cmac`函数接受密钥和消息,返回AES-CMAC生成的MAC值。在`main`方法中,程序对给定的消息进行AES-CMAC加密,然后模拟接收ECU的加密结果并进行比较。如果两者匹配,输出&quot;验证成功&quot;,否则输出&quot;验证失败&quot;。辅助方法包括将字节转为16进制字符串和将16进制字符串转为字节。

热门文章

最新文章