鲸鱼算法优化PID参数优化附matlab代码

article/2025/9/23 10:26:05

第一 章  鲸鱼优化算法

算法介绍参考文献:Seyedali Mirjalili,Andrew Lewis. The Whale Optimization Algorithm[J]. Advances in Engineering Software,2016,95.

 第二章  鲸鱼优化PID参数

首先我们需要建立一个直流电机PID控制系统,WOA算法通过将系统上的误差作为WOA的评估函数(即适应度函数输入),计算适应度函数的值,然后根据函数的适应度调整三个PID参数来优化PID控制器,以使系统的控制性能最优。图5为WOA的PID参数整定框图,其中为系统的R(t)输入,y(t)为系统的输出,E(t)是输入和输出的偏差,Kp , Ki , Kd 是 PID 控制器中关键参数, 其数值变化直接影响 PID 控制器性能, 故对 PID 参数进行优化十分重要。 

直流电机主要由电气部分以及机械部分组成。电机的模型如图6所示。直流电机中气隙磁通是恒定的,通过调节电枢电路的电压来实现对电机的控制,以实现对电机速度的调节。对于这种电机对象,其某些参数特性(如扭矩常数和粘性摩擦系数)不可用,因此可以将其视为建模中的黑盒,并且可以通过使用输入和输出数据以及使用系统识别来完成建模。直流电机的数学建模过程:

1.确定对象模型结构,假设气隙磁通恒定。

                          

 其中ki为电机的扭矩常数

2. 确定电枢电路电压平衡方程

a)电机反电动势与其角速度之间的关系

                               

其中ke是反电动势常数

b)电枢电路电压平衡方程

                      

式中,ra,la别是电枢电路的电阻和电感。

3. 电机轴上的扭矩平衡方程

                          

式中j是等效转动惯量,b是等效粘性摩擦系数,tl是负载扭矩。

4. 以为输入电压,为输出速度,消除、和求微分

  

5. 通常,电枢电路中的电感La很小,如果忽略其影响,根据拉普拉斯变换将微分方程转换为以下传递函数。

                                             

式中:

                                         

                                          

k为电机的增益常数,t为电机的时间常数。

仿真结果

基准函数测试也可做附matlab代码

部分代码

set(0,'defaultfigurecolor','w')
% parpool(4)  启用4线程并行计算,打开MATLAB时运行一次就可以,否则会报错
clear
tic;  %计时
disp(['提示:程序开始运行,根据电脑配置不同,可能需要时间较长,请耐心等待'])
%%%%%%%%%%%%%参数设置
dim=3;%%%%%因为优化PID参数  所有三个参数维度为3
lb=[0  0  0]';   %变量最小值
ub=[10  10  10]'; %变量最大值
Max_iter=10;
SearchAgents_no=30;%%%%%%%%%%%%%鲸鱼优化算法
% initialize position vector and score for the leader,初始化位置向量和领导者得分
Leader_pos=zeros(1,dim);
Leader_score=inf; %change this to -inf for maximization problems,将此更改为-inf以获得最大化问题,Inf无穷大%Initialize the positions of search agents
Positions=initialization(SearchAgents_no,dim,ub,lb);%Positions,存放数个个体的多维位置。Convergence_curve=zeros(1,Max_iter);%Convergence_curve收敛曲线t=0;% Loop counter% Main loop
while t<Max_iterfor i=1:size(Positions,1)%对每个个体一个一个检查是否越界% Return back the search agents that go beyond the boundaries of% the search space,返回超出搜索空间边界的搜索代理Flag4ub=Positions(i,:)>ub';Flag4lb=Positions(i,:)<lb';Positions(i,:)=(Positions(i,:).*(~(Flag4ub+Flag4lb)))+ub'.*Flag4ub+lb'.*Flag4lb;%超过最大值的设置成最大值,超过最小值的设置成最小值% Calculate objective function for each search agent,目标函数值的计算fitness=optfun(Positions(i,:));% Update the leaderif fitness<Leader_score % Change this to > for maximization problemLeader_score=fitness; % Update alphaLeader_pos=Positions(i,:);endend

http://chatgpt.dhexx.cn/article/SbRYs6Yl.shtml

相关文章

麻雀优化算法 优化XGBoost的参数 python代码

文章目录 麻雀优化算法麻雀优化算法的改进加入Ten混沌序列 XGBoost原理麻雀优化算法优化XGBoost参数范围部分代码画图 优化结果评价结果和运行时间适应度曲线训练集结果测试集结果 麻雀优化算法 麻雀优化算法是2020年提出来的&#xff0c;该算法利用麻雀的角色分工和协作机制高…

KNN算法优化

在之前所写的KNN算法python实现里&#xff0c;KNN对k的选取很敏感&#xff0c;因为它给所有的近邻分配相同权重&#xff0c;无论距离测试样本有多远。为了降低该敏感性&#xff0c;可以使用加权KNN&#xff0c;给更近的近邻分配更大的权重&#xff0c;给较远的样本权重相应减少…

【常见的优化算法介绍】

常见的优化算法介绍 1. 批量梯度下降算法&#xff08;batch gradient descent BGD&#xff09; 每次迭代都需要把所有样本都送入&#xff0c;这样的好处是每次迭代都顾及了全部的样本&#xff0c;做的是全局最优化,但是有可能达到局部最优。 2. 随机梯度下降算法&#xff08;…

常用优化算法介绍

作者:Walker 在机器学习的世界中,通常我们会发现有很多问题并没有最优的解,或是要计算出最优的解要花费很大的计算量,面对这类问题一般的做法是利用迭代的思想尽可能的逼近问题的最优解。我们把解决此类优化问题的方法叫做优化算法,优化算法本质上是一种数学方法,常见的…

十大经典算法及其优化

本文转自&#xff1a;https://blog.csdn.net/qq_40803710/article/details/80642703 算法概述 0.1 算法分类 十种常见排序算法可以分为两大类&#xff1a; 非线性时间比较类排序&#xff1a;通过比较来决定元素间的相对次序&#xff0c;由于其时间复杂度不能突破O(nlogn)&#…

虚拟机里CDlinux 里的水滴 minidwep-gtk

假如什么都没有使用虚拟机打开这个系统&#xff0c;就搞这个 会显示 下方 表示 网卡 必须是3070 或者 8187的 网卡&#xff0c;自带的网卡是不支持的

CDLINUX——minidwep-gtk

1.下载CDLinux http://fastsoft.onlinedown.net/down/minidwep.zip 解压后是 2.使用虚拟机安装iso 注&#xff1a;版本选择“其他linux 2.6x内核” 安装参考&#xff1a;http://www.downza.cn/soft/12715.html 3.使用 使用参考&#xff1a;http://soft.onlinedown.net/s…

CDliux--minidwep 无线密码渗透测试

CDliux–minidwep 无线密码破解渗透测试 一. 工具准备 1.首先下载CDLinux 用虚拟机安装&#xff0c;教程有很多 CDLINUX&#xff1a;cdlinux 2.支持cdlinux 的无线网卡选择RT 3070/或者 RT8187 某宝上有很多 二.渗透测试 1.cdlinux 安装好后链接无线网卡 2.打开minidwep-gtk …

IPWorks S/MIME Delphi Edition

IPWorks S/MIME是一套用于电子邮件加密和文档安全的综合组件。IPWorks S/MIME使用公钥密码标准&#xff08;PKCS&#xff09;实现加密和解密的S/MIME标准。 IPWorks S/MIME包括通用的S/MIME组件以及支持S/MIME的IPWorks POP3、IMAP、SMTP、FileMailer和HTMLMailer组件版本。还…

MinIO客户端mc使用

官网&#xff1a; 英文网址&#xff08;最好查看英文网址&#xff09;&#xff1a;https://min.io/中文网址&#xff08;没有及时更新&#xff0c;容易被坑&#xff09;&#xff1a;http://www.minio.org.cn/ 使用的 minio 版本是&#xff1a;RELEASE.2021-11-* 一、MinIO 客…

MinIO的介绍以及简单的使用

什么是MinIO MinIO是在GUN Affero通用公共许可证 v3.0 下发布的高性能对象存储.他与AmazonS3云存储服务API兼容.使用MinIO为机器学习,分析和应用程序数据工作负载构建高性能基础架构. MinIO是一个高兴能的对象存储,什么是对象存储(Object Storage Service),对象存储是支持海量用…

【LWIP】stm32用CubeMX(6.4版)配置LwIP+Ping+TCPclient+TCPserver发送信息到PC(操作部分)

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言零、更新&#xff08;2022.08.07&#xff09;一、实验平台二、手把手全程配置步骤1.配置电脑环境2.配置cubeMX3.配置MDK&#xff08;Keil5&#xff09;4.配置TC…

minicap介绍

从WEB 端批量移动设备管理控制工具 STF 的环境搭建和运行文章了解到STF这个工具&#xff0c;然后试用了一下。最近在做一个测试工具&#xff0c;发现Android原生的截图工具截图非常缓慢&#xff0c;然后想起了stf工具中截图非常快&#xff0c;甚至连执行monkey的动作都能在web端…

​ MinIO​使用

引言&#xff1a;为什么要使用minio MinIO是对象存储服务,它基于Apache License 开源协议&#xff0c;兼容Amazon S3云存储接口。适合存储非结构化数据&#xff0c;如图片&#xff0c;音频&#xff0c;视频&#xff0c;日志等。对象文件最大可以达到5TB。类似于腾讯的oss或者阿…

MiniApp Dev

小程序开发 MiniApp Dev 2_WinkeyTseng_YongTai的博客-CSDN博客 MiniApp Dev 3_WinkeyTseng_YongTai的博客-CSDN博客 MiniApp Dev 4_spencer_tseng的博客-CSDN博客

MinIO的简单实用(一)

一、什么是MinIO MinIO是在GNU Affero 通用公共许可证v3.0下发布的高性能对象存储。它与AmazonS3云存储服务API兼容。使用MinIO为机器学习、分析和应用程序工作负载构建高性能基础架构。 MinIO是高性能对象存储&#xff0c;什么是对象存储&#xff08;Object Storage Service&…

取代奶瓶Minidwep-gtk破解WPA 全攻略

原文地址为&#xff1a; 取代奶瓶Minidwep-gtk破解WPA 全攻略 取代奶瓶Minidwep-gtk 破 WPA 全攻略 目录 1、 CDlinux 下使用 minidwepgtk 获取握手包并使用自带的字典破解 2、 自带的字典破解不出密码时使用 U 盘外挂字典继续暴力破解密码 3、 将握手包拷贝到 Windows 系统下…

Minidwep-gtk字典 破 WPA

取代奶瓶Minidwep-gtk 破 WPA 全攻略 目录 1、 CDlinux 下使用 minidwepgtk 获取握手包并使用自带的字典破解 2、 自带的字典破解不出密码时使用 U 盘外挂字典继续暴力破解密码 3、 将握手包拷贝到 Windows 系统下使用 ewsa 工具高速破解密码 4、破解 WPA 加密“握手包”字典的…

无线密码破解----minidwep-gtk的PIN破解方法

原文地址为&#xff1a; 无线密码破解----minidwep-gtk的PIN破解方法 使用虚拟机对minidwep-gtk进行PIN破解 用CDLINUX支持8187和3070_30211版.iso系统PJpin码 1.用虚拟机的好处是方便&#xff0c;可以一边破解&#xff0c;一边上网做其他事情。 虚拟机的安装非常简单&#xf…

完整安装minidwep-gtk教程

完整安装minidwep-gtk教程 一&#xff1a;安装Aircrack-ng 安装依赖软件包 sudo apt-get install build-essential libssl-dev iw 下载软件包并解压缩 wget http://download.aircrack-ng.org/aircrack-ng-1.1.tar.gz tar-zxvf aircrack-ng-1.1.tar.gz cd aircrack-ng-1.1 …