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

news/2024/11/17 3:26:24/

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

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

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

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

目录

💥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仿真实现


http://www.ppmy.cn/news/1030566.html

相关文章

云计算——存储虚拟化功能

作者简介:一名云计算网络运维人员、每天分享网络与运维的技术与干货。 座右铭:低头赶路,敬事如仪 个人主页:网络豆的主页​​​​​ 目录 前期回顾 前言 一.存储虚拟化功能 1.精简磁盘和空间回收 2.快照 (1&a…

控价有什么技巧吗

设置一个价格进行管控,简称控价,品牌做控价不光是为了自身利益,也是为了整个行业的健康和发展,同时控价还能保证经销商的利润,以及消费者的利益。如果品牌不控价,不管是新品发售还是常规品的销售&#xff0…

php如何对接伪原创api

在了解伪原创api的各种应用形态之后,我们继续探讨智能写作背后的核心技术。需要说明的是,智能写作和自然语言生成、自然语言理解、知识图谱、多模算法等各类人工智能算法都有紧密的关联,在百度的智能写作实践中,常根据实际需求将多…

GaussDB数据库SQL系列-UNION UNION ALL

目录 一、前言 二、GaussDB UNION/UNION ALL 1、GaussDB UNION 操作符 2、语法定义 三、GaussDB实验示例 1、创建实验表 2、合并且除重(UNION) 3、合并不除重(UNION ALL) 4、合并带有WHERE子句SQL结果集(UNION ALL) 5、…

【Spark学习笔记】- 1Spark和Hadoop的区别

目录标题 Spark 是什么Spark and Hadoop首先从时间节点上来看:功能上来看: Spark or Hadoop Spark 是什么 Spark 是一种基于内存的快速、通用、可扩展的大数据分析计算引擎。 Spark and Hadoop 在之前的学习中,Hadoop 的 MapReduce 是大家广为熟知的计算框架&…

gRPC vs REST:创建API的方法比较

本文对gRPC和REST的特征和区别进行了介绍,这可能是当今创建API最常用的两种方法。 文章目录 一、gRPC的介绍 二、什么是REST? 三、什么是gRPC? 四、gRPC和REST的比较 (1)底层HTTP协议 (2)支持的数据…

Golang实现完整聊天室(内附源码)

项目github地址: 由于我们项目的需要,我就研究了一下关于websocket的相关内容,去实现一个聊天室的功能。 经过几天的探索,现在使用Gin框架实现了一个完整的聊天室消息实时通知系统。有什么不完善的地方还请大佬指正。 用到的技术…

智能电动机保护控制器的应用与分析

安科瑞 华楠 分析了智能电动机保护器相比热继电器的优点,指出了在我公司成功应用的原因,提出了应用过程中需要注意的地方。 公司新建一车间中,当工程设计到电动机保护这一部分时,设计者出于对热继电器保护性能的不满意&#xff0c…