【先进PID控制算法(ADRC,TD,ESO)加入永磁同步电机发电控制仿真模型研究(Matlab代码实现)

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

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

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

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

目录

💥1 概述

📚2 运行结果

2.1 非线性自抗扰控制 

2.2 线性自抗扰控制 

2.3 Simulink仿真

2.4 永磁同步电机发电控制仿真模型

🎉3 参考文献

🌈4 Matlab代码、Simulink仿真实现


💥1 概述

先进PID控制算法(ADRC, TD, ESO)研究是对传统PID控制算法进行改进和优化的研究工作。这些算法通过引入新的控制策略和技术,提高了PID控制系统的性能和鲁棒性。

ADRC(Active Disturbance Rejection Control)是一种基于主动干扰抑制控制的算法。它通过对系统的干扰进行估计和补偿,实现对干扰的主动抑制,从而提高了系统的鲁棒性和控制精度。

TD(Two-Degree-of-Freedom)是一种基于两个自由度的控制算法。它将PID控制器分为两个部分,一个用于跟踪参考信号,另一个用于抑制干扰。通过独立调节这两个部分的参数,可以实现更好的跟踪性能和干扰抑制能力。

ESO(Extended State Observer)是一种扩展状态观测器算法。它通过估计系统的扩展状态,包括未建模的动态和干扰,从而实现对这些状态的补偿和抑制。ESO算法可以提高系统的鲁棒性和控制精度,特别适用于存在未建模动态和干扰的系统。

这些先进PID控制算法在工业控制系统中得到了广泛的应用和研究。通过引入新的控制策略和技术,它们可以提高系统的控制性能和鲁棒性,适应更加复杂和变化的工业控制需求。研究人员通过理论分析和实验验证,不断改进和优化这些算法,使其更加适用于不同的控制场景和应用领域。

📚2 运行结果

 

2.1 非线性自抗扰控制 

 

2.2 线性自抗扰控制 

 

  

2.3 Simulink仿真

 

 

2.4 永磁同步电机发电控制仿真模型

 

 

 

 

 

部分代码:

figure(1);
plot(time, v, 'r',time, y, 'k:', 'linewidth', 2);
% plot(time, e1, 'r', 'linewidth', 2);
legend('ideal position signal', 'position tracking signal');

function f = fst(x1,x2,delta,T)
    d = delta * T;
    d0 = T * d;
    y = x1 + T * x2;
    a0 = sqrt(d^2 + 8 * delta * abs(y));
    
    if abs(y) > d0
        a = x2 + (a0 - d) / 2 * sign(y);
    else
        a = x2 + y / T;
    end
    
    if abs(a) > d
        f = -delta * sign(a);
    else
        f = -delta * a/d;
    end
end

function y = fal(epec,alfa,delta)
    if abs(epec) > delta
        y = abs(epec)^alfa * sign(epec);
    else
        y = epec / (delta^(1 - alfa));
    end
end

function v = TD_ADRC(vo, yd, T, delta)
    v = zeros(2, 1);
    x1 = vo(1) - yd;
    x2 = vo(2);
    v(1) = vo(1) + T * vo(2);
    v(2) = vo(2) + T * fst(x1, x2, delta, T);
end

function z = LESO_ADRC(zo, y, uo, T)
    w0 = 7.5;

    z = zeros(3, 1);
    e = zo(1) - y;
    z(1) = zo(1) + T * (z(2) -  3 * w0 * e);
    z(2) = zo(2) + T * (z(3) - 3 * w0 * w0 * e + 133 * uo);
    z(3) = zo(3) - T * w0 * w0 * w0 * e;
end

function dy = PlantModel(yo, ut, clock, T)
    dy = zeros(3, 1);
    f = -25 * yo(2) + 33 * sin(pi * clock);
    %f = -25 * yo(2) + 0.5 * sign(sin(pi * clock));
    dy(1) = yo(1) + yo(2) * T;
    dy(2) = yo(2) + yo(3) * T;
    dy(3) = (f + 133 * ut) ;
end

function v = TD_Levant(zo, y, T)
    v = zeros(2, 1);
    alfa = 2;
    nmna = 6;
    v(1) = zo(1) + T * (zo(2) - nmna * sqrt(abs(zo(1) - y)) * sign(zo(1) - y));
    v(2) = zo(2) - T * alfa * sign(zo(1) - y);
end

🎉3 参考文献

文章中一些内容引自网络,会注明出处或引用为参考文献,难免有未尽之处,如有不妥,请随时联系删除。

[1]吉祥.永磁直线电机ADRC控制研究[D].浙江理工大学[2023-08-12].DOI:CNKI:CDMD:2.1017.043063.

[2]杨宣,张保生.基于先进控制算法的CFBB床温控制系统研究[J].自动化与仪表, 2018, 33(1):5.DOI:CNKI:SUN:ZDHY.0.2018-01-030.

[3]李杰,齐晓慧,韩帅涛.四种先进PID控制方法及性能比较[J].计算技术与自动化, 2012.DOI:CNKI:SUN:JSJH.0.2012-03-005.

🌈4 Matlab代码、Simulink仿真实现

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Kafka第三课

Flume 由三部分 Source Channel Sink 可以通过配置拦截器和Channel选择器,来实现对数据的分流, 可以通过对channel的2个存储容量的的设置,来实现对流速的控制 Kafka 同样由三大部分组成 生产者 服务器 消费者 生产者负责发送数据给服务器 服务器存储数据 消费者通过从服务器取…

负载均衡搭建

LVS-DR部署 [客户端] node1 192.168.157.148 [lvs] node2 192.168.157.142 [web服务器] node3 192.168.157.145 node4 192.168.157.146(1)[lvs] yum install -y ipvsadm.x86_64 配置LVS负载均衡服务 (1)手动添加LVS转发1&#xff…

Vue3 使用json编辑器

安装 npm install json-editor-vue3 main中引入 main.js 中加入下面代码 import "jsoneditor";不然会有报错&#xff0c;如jsoneditor does not provide an export named ‘default’。 图片信息来源-github 代码示例 <template><json-editor-vue class…

一个DW的计算

一个DW的计算 1- 题目: 已知一个DW1.1 要求: 从DW中取出指定的位的值1.1.1 分析1.1.2 实现1.1.3 简化实现1.1.4 验证 2- 题目: 已知一个DW2.1 要求: 从DW中的指定的P和S,取出指定的位的值2.1.1 分析2.1.2 实现 1- 题目: 已知一个DW 有图中所示一行信息&#xff0c;表示一个DW(…

【实用黑科技】如何 把b站的缓存视频弄到本地——数据恢复软件WinHex 和 音视频转码程序FFmpeg

&#x1f468;‍&#x1f4bb;个人主页&#xff1a;元宇宙-秩沅 &#x1f468;‍&#x1f4bb; hallo 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍&#x1f4bb; 本文由 秩沅 原创 &#x1f468;‍&#x1f4bb; 收录于专栏&#xff1a;效率…

uniapp编写微信小程序遇到的坑总结

1、阻止事件冒泡 使用uniapp开发微信小程序的时候&#xff0c;发现使用click.stop来阻止事件冒泡没有作用&#xff0c;点击了之后发现仍然会触发父组件或者祖先组件的事件。 在网上查阅&#xff0c;发现使用tap.stop才能阻止事件冒泡。 2、二维码生成 在网上找了很多&…

问题:【IntelliJ IDEA】解决idea自动声明变量加finall修饰符问题

问题:【IntelliJ IDEA】解决idea自动声明变量加finall修饰符问题 场景复现 1 new String() 2 快捷方式生成变量 final修饰的 final String s new String();步骤一&#xff1a;确保settings配置信息 settings-----》Editor------》Code Style--------》java下的这两个选项不…

〔013〕Stable Diffusion 之 图片自动评分和不健康内容过滤器 篇

✨ 目录 &#x1f388; 下载咖啡美学评价插件&#x1f388; 咖啡美学评价使用&#x1f388; 不健康内容过滤器插件 &#x1f388; 下载咖啡美学评价插件 想让系统帮你的图片作品打分评价&#xff0c;可以下载咖啡美学自动评价插件插件地址&#xff1a;https://github.com/p1at…

stack和queue的模拟实现

stack和queue的模拟实现 容器适配器什么是适配器STL标准库中stack和queue的底层结构deque的简单介绍deque的缺陷 stack模拟实现queue模拟实现priority_queuepriority_queue的使用priority_queue的模拟实现 容器适配器 什么是适配器 适配器是一种设计模式(设计模式是一套被反复…

稀疏感知图像和体数据恢复的系统对象研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

爬虫逆向实战(十二)--某交易所登录

一、数据接口分析 主页地址&#xff1a;某交易所 1、抓包 通过抓包可以发现登录是通过表单提交的 2、判断是否有加密参数 请求参数是否加密&#xff1f; 通过查看“载荷”模块&#xff0c;可以发现有两个加密参数password和execution 请求头是否加密&#xff1f; 无响应是…

中国乡村振兴战略下传统村落文化旅游设计日

中国乡村振兴战略下传统村落文化旅游设计日

unity Dropdown默认选择不选择任何选项

当我们使用Dropdown下拉框时&#xff0c;有时不需要有默认选项&#xff0c;把 value设置为-1就可以了&#xff0c; 但是用代码设置value-1是没有效果的&#xff0c;

AI 绘画Stable Diffusion 研究(九)sd图生图功能详解-老照片高清修复放大

大家好&#xff0c;我是风雨无阻。 通过前面几篇文章的介绍&#xff0c;相信各位小伙伴&#xff0c;对 Stable Diffusion 这款强大的AI 绘图系统有了全新的认知。我们见识到了借助 Stable Diffusion的文生图功能&#xff0c;利用简单的几个单词&#xff0c;就可以生成完美的图片…

运行软件mfc140u.dll丢失怎么办?mfc140u.dll的三个修复方法

最近我在使用一款软件时遇到了一个问题&#xff0c;提示缺少mfc140u.dll文件。。这个文件是我在使用某个应用程序时所需要的&#xff0c;但是由于某种原因&#xff0c;它变得无法正常使用了。经过一番搜索和了解&#xff0c;我了解到mfc140u.dll是Microsoft Visual Studio 2015…

【JVM】JVM中的分代回收

文章目录 分代收集算法什么是分代分代收集算法-工作机制MinorGC、 Mixed GC 、 FullGC的区别是什么 分代收集算法 什么是分代 在java8时&#xff0c;堆被分为了两份&#xff1a; 新生代和老年代【1&#xff1a;2】 其中&#xff1a; 对于新生代&#xff0c;内部又被分为了三…

拒绝摆烂!C语言练习打卡第三天

&#x1f525;博客主页&#xff1a;小王又困了 &#x1f4da;系列专栏&#xff1a;每日一练 &#x1f31f;人之为学&#xff0c;不日近则日退 ❤️感谢大家点赞&#x1f44d;收藏⭐评论✍️ 目录 一、选择题 &#x1f4dd;1.第一题 &#x1f4dd;2.第二题 &#x1f4…

Docker:Windows container和Linux container

点击"Switch to Windows containers"菜单时&#xff1a; 提示 然后 实际上是运行&#xff1a;com.docker.admin.exe start-service

【广州华锐视点】帆船航行VR模拟实操系统

帆船航行VR模拟实操系统由广州华锐视点开发&#xff0c;是一种创新的教学工具&#xff0c;它利用虚拟现实技术&#xff0c;为学生提供了一个沉浸式的学习环境。通过这种系统&#xff0c;学生可以在虚拟的环境中进行帆船航行的实训&#xff0c;从而更好地理解和掌握帆船航行的技…

【Linux】DNS协议——应用层

目录 DNS协议 DNS背景 域名简介 域名解析过程 使用dig工具分析DNS过程 DNS&#xff08;Domain Name System&#xff0c;域名系统&#xff09;协议&#xff0c;是一个用来将域名转化为IP地址的应用层协议。 DNS背景 TCP/IP中通过IP地址和端口号的方式&#xff0c;来确定网…