一种对不同类型齐格勒-尼科尔斯 P-I-D 控制器调谐算法研究(Matlab代码实现)

这篇具有很好参考价值的文章主要介绍了一种对不同类型齐格勒-尼科尔斯 P-I-D 控制器调谐算法研究(Matlab代码实现)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

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

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

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

目录

💥1 概述

📚2 运行结果

🎉3 参考文献

🌈4 Matlab代码及文章讲解


💥1 概述

如今,许多不同的控制器被用于工业和许多其他领域。一般来说,这些控制器可以分为两大类:
• 传统控制器 • 非常规控制器 作为传统控制器,我们可以计算多年来已知的控制器

,例如ON-OFF,P,PI,PD,PID所有不同的类型和实现。所有传统控制器的一个特点是,必须知道过程的数学模型才能设计控制器。
比例-积分-微分(PID)控制器是从上世纪初开始,在自动控制领域具有悠久历史的三任期控制器。由于其直观性和相对简单性,除了能够在各种过程中提供令人满意的性能外,它实际上已成为工业环境中的标准控制器。

📚2 运行结果

一种对不同类型齐格勒-尼科尔斯 P-I-D 控制器调谐算法研究(Matlab代码实现)

 一种对不同类型齐格勒-尼科尔斯 P-I-D 控制器调谐算法研究(Matlab代码实现)

 一种对不同类型齐格勒-尼科尔斯 P-I-D 控制器调谐算法研究(Matlab代码实现)

 一种对不同类型齐格勒-尼科尔斯 P-I-D 控制器调谐算法研究(Matlab代码实现)

 一种对不同类型齐格勒-尼科尔斯 P-I-D 控制器调谐算法研究(Matlab代码实现)

 一种对不同类型齐格勒-尼科尔斯 P-I-D 控制器调谐算法研究(Matlab代码实现)

 一种对不同类型齐格勒-尼科尔斯 P-I-D 控制器调谐算法研究(Matlab代码实现)

 一种对不同类型齐格勒-尼科尔斯 P-I-D 控制器调谐算法研究(Matlab代码实现)

一种对不同类型齐格勒-尼科尔斯 P-I-D 控制器调谐算法研究(Matlab代码实现)一种对不同类型齐格勒-尼科尔斯 P-I-D 控制器调谐算法研究(Matlab代码实现) 一种对不同类型齐格勒-尼科尔斯 P-I-D 控制器调谐算法研究(Matlab代码实现)

 一种对不同类型齐格勒-尼科尔斯 P-I-D 控制器调谐算法研究(Matlab代码实现)

一种对不同类型齐格勒-尼科尔斯 P-I-D 控制器调谐算法研究(Matlab代码实现) 一种对不同类型齐格勒-尼科尔斯 P-I-D 控制器调谐算法研究(Matlab代码实现)

 一种对不同类型齐格勒-尼科尔斯 P-I-D 控制器调谐算法研究(Matlab代码实现)

部分代码:

%% Figure One %%
figure
[Gc_p,Kp_p,Ti_p,Td_p]=myzntune('P',[0.4167,0.76,1.96,10],'openloop')
[Gc_pi,Kp_pi,Ti_pi,Td_pi]=myzntune('PI',[0.4167,0.76,1.96,10],'openloop')
[Gc_pid,Kp_pid,Ti_pid,Td_pid]=myzntune('PID',[0.4167,0.76,1.96,10],'openloop')
                                step(feedback(series(Gc_p,Gp),1),feedback(series(Gc_pi,Gp),1),feedback(series(Gc_pid,Gp),1))
                                title('Comparision of P,PI and PID Controllers (Tuned by Step Response Method)')
                                legend('Response of P Controller', 'Response of PI Controller', 'Response of PID Controller')
%% Figure Two %%
figure
% title('Comparision of PID and PID (With Filter )Controllers (Tuned by Step Response Method)')
[Gc_f,Kp_f,Ti_f,Td_f]=myzntune('PIDF',[0.4167,0.76,1.96,10],'openloop')
[Gcpid,Kppid,Tipid,Tdpid]=myzntune('PID',[0.4167,0.76,1.96,10],'openloop')
%                                 subplot(1,2,2)
                                step(feedback(series(Gcpid,Gp),1),feedback(series(Gc_f,Gp),1))
                                title('Comparision of PID and PID (With Filter )Controllers (Tuned by Step Response Method)')
                                legend('Response of PID Controller', 'Response of PID (With Filter)Controller')

%% Sustained Oscillation Method  %%
%% Figure Three %%
figure
[Gcp,Kpp,Tip,Tdp]=myzntune('P',[12.60,2.80,10],'closeloop')
[Gcpi,Kppi,Tipi,Tdpi]=myzntune('PI',[12.60,2.80,10],'closeloop')
[Gcpid1,Kppid1,Tipid1,Tdpid1]=myzntune('PID',[12.60,2.80,10],'closeloop')
                                step(feedback(series(Gcp,Gp),1),feedback(series(Gcpi,Gp),1),feedback(series(Gcpid1,Gp),1))
                                title('Comparision of P,PI and PID Controllers (Tuned by Sustained Oscillation Method)')
                                legend('Response of P Controller', 'Response of PI Controller', 'Response of PID Controller')
                                
%% Figure Four %%    
figure
[Gcf,Kpf,Tif,Tdf]=myzntune('PIDF',[12.60,2.80,10],'closeloop')
                                step(feedback(series(Gcpid1,Gp),1),feedback(series(Gcf,Gp),1))
                                title('Comparision of PID and PID (With Filter )Controllers (Tuned by Sustained Oscillation Method)')
                                legend('Response of PID Controller', 'Response of PID (With Filter)Controller')

%% Cohen Coon %%
%% Figure Five %%   
figure
[Gcp_cc,Kpp_cc,Tip_cc,Tdp_cc]=myCohenCoon('P',[0.4167,0.76,1.96,10]);
[Gcpi_cc,Kppi_cc,Tipi_cc,Tdpi_cc]=myCohenCoon('PI',[0.4167,0.76,1.96,10]);
[Gcpd_cc,Kppd_cc,Tipd_cc,Tdpd_cc]=myCohenCoon('PD',[0.4167,0.76,1.96,10]);
[Gcpid_cc,Kppid_cc,Tipid_cc,Tdpid_cc]=myCohenCoon('PID',[0.4167,0.76,1.96,10]);
[Gcpidf_cc,Kppidf_cc,Tipidf_cc,Tdpidf_cc]=myCohenCoon('PIDF',[0.4167,0.76,1.96,10]);

step(feedback(series(Gcp_cc,Gp),1),feedback(series(Gcpi_cc,Gp),1),feedback(series(Gcpd_cc,Gp),1),feedback(series(Gcpid_cc,Gp),1),feedback(series(Gcpidf_cc,Gp),1))
title('System Response with Cohen Coon Tuned PID Controllers')
legend('Response of P Controller', 'Response of PI Controller', 'Response of PD Controller','Response of PID Controller','Response of PID(With Filter) Controller')

%% The Chien, Hrones and Reswick Tuning Algorithm %%
%%[ Gc,Kp,Ti,Td ] = mychrtune( type,data,method,overshoot)
%% Figure Six %%
figure
[Gcp0,Kpp0,Tip0,Tdp0]=mychrtune('P',[0.4167,0.76,1.96,10],'set',0)
[Gcp20,Kpp20,Tip20,Tdp20]=mychrtune('P',[0.4167,0.76,1.96,10],'set',20)

[Gcpi0,Kppi0,Tipi0,Tdpi0]=mychrtune('PI',[0.4167,0.76,1.96,10],'set',0)
[Gcpi20,Kppi20,Tipi20,Tdpi20]=mychrtune('PI',[0.4167,0.76,1.96,10],'set',20)

[Gcpid0,Kppid0,Tipid0,Tdpid0]=mychrtune('PID',[0.4167,0.76,1.96,10],'set',0)
[Gcpid20,Kppid20,Tipid20,Tdpid20]=mychrtune('PID',[0.4167,0.76,1.96,10],'set',20)

[Gcpidf0,Kppidf0,Tipidf0,Tdpidf0]=mychrtune('PIDF',[0.4167,0.76,1.96,10],'set',0)
[Gcpidf20,Kppidf20,Tipidf20,Tdpidf20]=mychrtune('PIDF',[0.4167,0.76,1.96,10],'set',20)

subplot(1,2,1)
% title('Set Point Regulation with 0% Overshoot ')
step(feedback(series(Gcp0,Gp),1),feedback(series(Gcpi0,Gp),1),feedback(series(Gcpid0,Gp),1),feedback(series(Gcpidf0,Gp),1))
title('System Response with Setpoint Regulation with 0% Overshoot by CHR tune PID Controller')
legend('Response of P Controller', 'Response of PI Controller','Response of PID Controller','Response of PID(With Filter) Controller')

subplot(1,2,2)
% title('Set Point Regulation with 20% Overshoot ')
% figure
step(feedback(series(Gcp20,Gp),1),feedback(series(Gcpi20,Gp),1),feedback(series(Gcpid20,Gp),1),feedback(series(Gcpidf20,Gp),1))
title('System Response with Setpoint Regulation with 20% Overshoot by CHR tune PID Controller')
legend('Response of P 20%Controller', 'Response of PI Controller','Response of PID Controller','Response of PID(With Filter) Controller')
%% FIgure Seven %%%
figure
[Gcp_d0,Kpp_d0,Tip_d0,Tdp_d0]=mychrtune('P',[0.4167,0.76,1.96,10],'distrub',0)
[Gcp_d20,Kpp_d20,Tip_d20,Tdp_d20]=mychrtune('P',[0.4167,0.76,1.96,10],'distrub',20)
 
[Gcpi_d0,Kppi_d0,Tipi_d0,Tdpi_d0]=mychrtune('PI',[0.4167,0.76,1.96,10],'distrub',0)
[Gcpi_d20,Kppi_d20,Tipi_d20,Tdpi_d20]=mychrtune('PI',[0.4167,0.76,1.96,10],'distrub',20)
 
[Gcpid_d0,Kppid_d0,Tipid_d0,Tdpid_d0]=mychrtune('PID',[0.4167,0.76,1.96,10],'distrub',0)
[Gcpid_d20,Kppid_d20,Tipid_d20,Tdpid_d20]=mychrtune('PID',[0.4167,0.76,1.96,10],'distrub',20)
 
[Gcpidf_d0,Kppidf_d0,Tipidf_d0,Tdpidf_d0]= mychrtune('PIDF',[0.4167,0.76,1.96,10],'distrub',0)
[Gcpidf_d20,Kppidf_d20,Tipidf_d20,Tdpidf_d20]=mychrtune('PIDF',[0.4167,0.76,1.96,10],'distrub',20)

🎉3 参考文献

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

[1]Srinibas Bhuyan (2023). A MATLAB Approach to study different types of Ziegler-Nichols P-I-D Controller Tuning Algorithm文章来源地址https://www.toymoban.com/news/detail-498051.html

🌈4 Matlab代码及文章讲解

到了这里,关于一种对不同类型齐格勒-尼科尔斯 P-I-D 控制器调谐算法研究(Matlab代码实现)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 8种不同类型的防火墙

    什么是防火墙? 防火墙是一种监视网络流量并检测潜在威胁的安全设备或程序,作为一道保护屏障,它只允许非威胁性流量进入,阻止危险流量进入。 防火墙是client-server模型中网络安全的基础之一,但它们容易受到以下方面的攻击: 社会工程攻击(例如,有人窃取密码并进

    2024年02月01日
    浏览(30)
  • logback日志按照类型输出到不同文件

    公司要将项目的日志分为不同的类别,如所有日志、请求日志、错误日志和 SQL 日志。 目前使用的日志框架为slf4j + logback。 要将日志分为不同的类别,可以使用 Logback 的日志级别和过滤器来实现。 然后,可以针对特定的日志类型设置不同的日志级别和过滤器。 Logback 的appe

    2024年02月16日
    浏览(40)
  • 不同类型的工业网关有何区别?

    工业网关是一种用于连接工业设备和网络的关键设备,它能够将不同协议、不同传输速率的工业设备连接到网络上,实现数据的传输和共享。不同类型的工业网关之间存在一些区别,以下是一些常见的工业网关类型及其区别: 协议转换型工业网关:这种网关主要用于实现不同

    2024年03月09日
    浏览(45)
  • 浅谈C#中await运算符在不同类型应用中的不同行为

    C#中的await运算符,因其不会阻塞主线程,可以给用户更好的操作体验,所以广泛的应用于各种C#的应用中。 本文主要分析其在Console程序,Winform程序和WebApi程序中,其工作行为的异同点,来更好的使用该运算符。 await运算符的基本功能是挂起当前的async方法,并直到异步方法

    2024年02月16日
    浏览(35)
  • 专用 API 网关是一种典型的云计算服务架构模式,它可以让公司内不同部门之间的 API 服务更加集中、更加安全、更加统一

    作者:禅与计算机程序设计艺术 API Gateway(以下简称“网关”)是微服务架构中的一个重要组件。它作为边缘服务层与其他业务系统进行交互的桥梁,负责处理外部请求、安全认证、限流、熔断降级等工作。 在过去的几年中,随着容器技术的普及和Kubernetes等容器编排工具的

    2024年02月03日
    浏览(46)
  • Java List 中存不同的数据类型

    在最近的实践中,有人突然问了一个问题: 在 Java 的 List 中可以存不同的数据类型吗? 这个问题突然给问到了,我们都知道 Java 中的 List 中存的是对象,通常我们定义都会这样的定义: ListString testList = new ArrayList();  这样我们就知道了 testList 中存的对象都是 String 字符串了

    2024年02月07日
    浏览(36)
  • MySQL不同数据类型的最大长度与范围限制

    MySQL中不同的数据类型有不同的最大长度限制,主要如下: char(n):最大长度为255个字符 varchar(n):最大长度为65535个字符(受字符编码影响) tinytext:最大长度为255个字符 text:最大长度为65535个字符(5.5.3之前),或21844字符(5.5.3之后,utf8mb4编码) mediumtext:最大长度为16777215个字符 longtext:最大长

    2024年02月16日
    浏览(48)
  • 软件测试分类: 你需要知道的不同类型测试

    按 测试对象 划分: 界面测试, 可靠性测试, 容错性测试, 文档测试, 兼容性测试, 易用性测试(用户体验测试), 安装卸载测试, 安全性测试, 性能测试, 内存泄露测试 按 是否查看代码 划分: 黑盒测试, 白盒测试, 灰盒测试 按 开发阶段 划分: 单元测试, 集成测试, 系统测试, 验收测试

    2024年02月06日
    浏览(40)
  • SQL注入漏洞复现:探索不同类型的注入攻击方法

    这篇文章旨在用于网络安全学习,请勿进行任何非法行为,否则后果自负。  准备环境 sqlilabs靶场 安装:Sqli-labs靶场搭建(适合新手小白围观)_sqlilabs靶场搭建-CSDN博客   注入讲解 介绍         基于错误的注入(Error-based Injection)是一种 利用应用程序返回的错误信息来

    2024年02月11日
    浏览(44)
  • C#使用Chart进行统计,切换不同的图表类型

    WindowsForm应用程序中Chart图表控件所属的命名空间: 命名空间: System.Windows.Forms.DataVisualization.Charting 对应的dll路径: C:Program Files (x86)Reference AssembliesMicrosoftFramework.NETFrameworkv4.6.1System.Windows.Forms.DataVisualization.dll ChartDemo,将默认的Form1,重命名为FormChart, 窗体设计器源程序

    2024年02月17日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包