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

news2025/2/25 15:42:35

 👨‍🎓个人主页:研学社的博客 

💥💥💞💞欢迎来到本博客❤️❤️💥💥

🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。

⛳️座右铭:行百里者,半于九十。

📋📋📋本文目录如下:🎁🎁🎁

目录

💥1 概述

📚2 运行结果

🎉3 参考文献

🌈4 Matlab代码实现


💥1 概述

本文利用遗传算法 (GA) 实现,用于调整 PID 控制器的增益。 的重点是无人机(UAV)上使用的PID控制器。模拟二阶系统的动力学。调优基于满意度等标准。

📚2 运行结果

 

部分代码:

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

🎉3 参考文献

部分理论来源于网络,如有侵权请联系删除。

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

🌈4 Matlab代码实现

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/39653.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【信息量判别块:语义监督:GAN:IVIF】

Semantic-supervised Infrared and Visible Image Fusion via a Dual-discriminator Generative Adversarial Network (通过双重鉴别器生成对抗网络进行语义监督的红外和可见光图像融合) 我们提出了一种新的端到端模型,以在红外和可见光图像…

java序列化,看这篇就够了

面试官:兄弟,说说你对transient的理解和感悟 哪吒:what?还有感悟? 先说结论,在序列化、反序列化时,被transient关键字修饰的成员属性变量不会被序列化。 面试官:这就完了&#xf…

Flutter高仿微信-第51篇-群聊-修改群名

Flutter高仿微信系列共59篇,从Flutter客户端、Kotlin客户端、Web服务器、数据库表结构、Xmpp即时通讯服务器、视频通话服务器、腾讯云服务器全面讲解。 详情请查看 效果图: 实现代码: //修改群名 void _updateGroupName(){bool isOwner fals…

Multi-Interest Network with Dynamic Routing forRecommendation at Tmall 论文阅读笔记

1. ABSTRACT 1.1 Industrial recommender systems (1)工业推荐系统通常由匹配阶段和排名阶段组成; (2)匹配阶段:检索与用户兴趣相关的候选项; (3)排名阶段:…

Spring Cloud OpenFeign - - - > 日志配置

项目源码地址:https://download.csdn.net/download/weixin_42950079/87168704 OpenFeign 有 4 种日志级别: NONE: 不记录任何日志,是OpenFeign默认日志级别(性能最佳,适用于生产环境)。BASIC: 仅记录请求方…

BT - Unet:生物医学图像分割的自监督学习框架

BT-Unet采用Barlow twin方法对U-Net模型的编码器进行无监督的预训练减少冗余信息,以学习数据表示。之后,对完整网络进行微调以执行实际的分割。 BT-Unet由 Indian Institute of Information Technology Allahabad开发,发布在2022年的JML上 …

相关性质和条件变量-ReentrantLock详解(2)-AQS-并发编程(Java)

文章目录1 可重入2 可打断3 公平锁4 条件变量4.1 await()4.1.1 主方法4.1.2 addConditionWaiter()4.1.3 isOnSyncQueue()4.1.4 checkInterruptWhileWaiting()4.2 signal()4.2.1 主方法4.2.2 doSignal()4.2.3 transferForSignal()5 后记1 可重入 可重入在加锁中体现代码如下&am…

零经验,小白变大厨!

平时煮泡面都会翻车的老王      昨天在朋友圈po了一组美食图      朋友小聚,20分钟搞定一桌菜,嘻嘻。      我点开一看,嚯!      红烧里脊、糖醋排骨、油焖大虾、剁椒鱼头……个顶个的硬菜,而且色泽诱人看起来很好吃的样子,关键是居然20分钟搞定?      难…

2022 高教杯数学建模C题古代玻璃制品的成分分析与鉴别回顾及总结

2022 高教杯数学建模C题古代玻璃制品的成分分析与鉴别回顾及总结 Paper & Code:https://github.com/Fly-Pluche/2022-mathematical-modeling-C 希望可以施舍几个star⭐️ 国赛分工 我们三人都有主要的分工: 队员A主要负责二,三问的求解以及代码的编…

被问到可重入锁条件队列,看这一篇就够了!|原创

本文深入解读了高频面试点——ReentrantLock的条件队列使用方法及其原理。源码有详细注释,建议收藏阅读。点击上方“后端开发技术”,选择“设为星标” ,优质资源及时送达Jdk中独占锁的实现除了使用关键字synchronized外,还可以使用ReentrantL…

用HTML+CSS做一个简单的新闻门户 1页网页

⛵ 源码获取 文末联系 ✈ Web前端开发技术 描述 网页设计题材,DIVCSS 布局制作,HTMLCSS网页设计期末课程大作业 | 茶文化网站 | 中华传统文化题材 | 京剧文化水墨风书画 | 中国民间年画文化艺术网站 | 等网站的设计与制作 | HTML期末大学生网页设计作业,…

Web前端大作业—电影网页介绍8页(html+css+javascript) 带登录注册表单

HTML实例网页代码, 本实例适合于初学HTML的同学。该实例里面有设置了css的样式设置,有div的样式格局,这个实例比较全面,有助于同学的学习,本文将介绍如何通过从头开始设计个人网站并将其转换为代码的过程来实践设计。 精彩专栏推荐&#x1f4…

DevOps初学者的指南——阿里出品学习图册带你掌握高薪技术!

开篇 你是否想开始学习DevOps,或者愿意通过增加DevOps这一技能来转变你的职业生涯? 如果你的答案是肯定的,那么你就来对地方了 从初创企业到跨国企业,技术行业的每个细分领域都在改变其软件开发方法。DevOps工具和实践惊人地减…

【mysql 高级】explain的使用及explain包含字段的含义

explain的使用及explain包含字段的含义1.id2. select_type3.table4.type5.possible_keys6.key7.key_len8.ref9.rows10.Extra使用explain关键字可以模拟优化器执行SQL语句,从而知道MySQL是如何处理你的SQL语句的,从而分析你的查询语句或是表结构的性能瓶颈…

面向OLAP的列式存储DBMS-10-[ClickHouse]的常用数组操作

参考ClickHouse 中的数据查询以及各种子句 ClickHouse 数组的相关操作函数,一网打尽 在关系型数据库里面我们一般都不太喜欢用数组,但是在 ClickHouse 中数组会用的非常多,并且操作起来非常简单。ClickHouse 里面提供了非常多的函数&#x…

文本生成视频Make-A-Video,根据一句话就能一键生成视频 Meta新AI模型

Meta公司(原Facebook)在今年9月29日首次推出一款人工智能系统模型:Make-A-Video,可以从给定的文字提示生成短视频。 Make-A-Video研究基于文本到图像生成技术的最新进展,该技术旨在实现文本到视频的生成,可…

[附源码]Python计算机毕业设计高校第二课堂管理系统

项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等等。 环境需要 1.运行环境:最好是python3.7.7,…

第十章 二叉树的各种遍历

第十章:二叉树的前、中、后序遍历前期准备:一、前序遍历1、遍历的思路2、遍历代码3、遍历图示二、中序遍历1、遍历的思路2、遍历代码三、后序遍历1、遍历的思路2、遍历代码三、遍历的应用1、计算二叉树中的节点个数2、二叉树叶子节点的个数3、二叉树的深度4、二叉树…

EMC原理-传导(共模、差模)与辐射(近场、远场)详解

目录: 第一章、EMC概念介绍 第二章、感应干扰(近场) 第三章、辐射干扰(远场) 第四章、差模干扰 第五章、共模干扰 ------------------------------------------------------------------------------------------------------------------------ 第一章、EMC…

ceph块存储在线扩容

记录:339 场景:在CentOS 7.9操作系统上,部署ceph-13.2.10集群。应用ceph块设备(ceph block device);主要是创建ceph块存储和在线扩容相关操作。 版本: 操作系统:CentOS 7.9 ceph版本:ceph-1…