Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >【Matlab】简单PID 控制器设计(控制系统工具箱)

【Matlab】简单PID 控制器设计(控制系统工具箱)

作者头像
DevFrank
发布于 2024-07-24 06:50:17
发布于 2024-07-24 06:50:17
52100
代码可运行
举报
运行总次数:0
代码可运行

这里展示如何设计一个简单的PID控制器。

传递函数如下:

sys=\frac{1}{(s+1)^3}

首先,创建模型并选用PI控制器:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sys = zpk([],[-1 -1 -1],1); 
[C_pi,info] = pidtune(sys,'PI')	% pidtune整定函数

生成结果如下: (交叉频率约为0.52 rad/s,相位裕度为60)

在这里插入图片描述
在这里插入图片描述

检查受控系统的闭环阶跃响应:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
T_pi = feedback(C_pi*sys, 1);
step(T_pi)
在这里插入图片描述
在这里插入图片描述

为了缩短响应时间,可以设置比自动选择的结果更高的目标交叉频率,即0.52。将交叉频率增加到 1.0。

定义c_pi_fast:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[C_pi_fast,info] = pidtune(sys,'PI',1.0)
在这里插入图片描述
在这里插入图片描述

新控制器可实现更高的交叉频率,但代价是相位裕量减小。

将两个控制器的闭环阶跃响应进行比较。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
T_pi_fast = feedback(C_pi_fast*sys,1);
step(T_pi,T_pi_fast)
axis([0 30 0 1.4])
legend('PI','PI,fast')

这种性能降低的结果是,PI控制器没有足够的自由度在1.0 rad/s的交叉频率下实现良好的相位裕量。添加微分操作可改善响应。

将 PIDF 控制器设计为目标交叉频率为 1.0 rad/s。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[C_pidf_fast,info] = pidtune(sys,'PIDF',1.0)
在这里插入图片描述
在这里插入图片描述

可以看出,在微分作用下, 算法的交叉频率和相位裕量都达到了较好值。

比较pi_fast 和 pidf_fast两个控制器的闭环阶跃响应:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
T_pidf_fast =  feedback(C_pidf_fast*sys,1);
step(T_pi_fast, T_pidf_fast);
axis([0 30 0 1.4]);
legend('PI,fast','PIDF,fast');
在这里插入图片描述
在这里插入图片描述

可以将受控系统的输入(负载)抗扰度添加到快速 PI 和 PIDF 控制器再次进行比较:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
S_pi_fast = feedback(sys,C_pi_fast);
S_pidf_fast = feedback(sys,C_pidf_fast);
step(S_pi_fast,S_pidf_fast);
axis([0 50 0 0.4]);
legend('PI,fast','PIDF,fast');
在这里插入图片描述
在这里插入图片描述

以上。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-07-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
PID控制算法仿真_连续控制系统的充分必要条件
PID控制是将误差信号e(t)的比例(P),积分(I)和微分(D)通过线性组合构成控制量进行控制,其输出信号为:
全栈程序员站长
2022/08/03
9950
PID控制算法仿真_连续控制系统的充分必要条件
Matlab pid参数调节工具箱
4、在结果可以实时看到控制的输出,通过调节系统的响应和鲁棒性,直到满足自己的期望,
用户9925864
2022/07/27
1.1K0
Matlab pid参数调节工具箱
Scipy 高级教程——控制系统分析与设计
Scipy 提供了强大的控制系统分析与设计工具,可以用于设计和分析线性时不变系统。本篇博客将深入介绍 Scipy 中的控制系统工具,并通过实例演示如何应用这些工具。
Echo_Wish
2024/01/20
2170
【Matlab】简单控制系统建模(控制系统工具箱)
控制系统应用是MATLAB和Simulink的重点应用领域,它包括了被控对象建模、控制器设计、自动代码生成部署和系统验证全流程。具体如下:
DevFrank
2024/07/24
3690
【Matlab】简单控制系统建模(控制系统工具箱)
运动控制系统优化的关键 | 电流环、速度环、位置环的优化
可以通过开环特性的幅值与相角裕量来判断系统的稳定性,同时也可以通过超调的大小来判断系统的稳定性,如下图所示。
杨源鑫
2023/10/09
2.6K0
运动控制系统优化的关键 | 电流环、速度环、位置环的优化
【Matlab】创建连续时间模型(控制系统工具箱)
控制系统工具箱™提供了用于创建线性时不变 (LTI) 模型的四个基本表示形式的函数:
DevFrank
2024/07/24
2250
【Matlab】创建连续时间模型(控制系统工具箱)
PID控制详解[通俗易懂]
PID( Proportional Integral Derivative)控制是最早发展起来的控制策略之一,由于其算法简单、鲁棒性好和可靠性高,被广泛应用于工业过程控制,尤其适用于可建立精确数学模型的确定性控制系统。
全栈程序员站长
2022/06/28
19.5K0
PID控制详解[通俗易懂]
PID控制的MATLAB仿真(1)
PID控制应用广泛,说起来PID特别的简单,在比例负反馈的基础上加入微分项实现快速调节,加入积分项实现无静差。MATLAB强大的功能让学习变得非常简单。在学习智能控制这门课的时候,老师推荐了刘金琨老师的先进PID控制一书,边看边学边调程序。下文程序选自此书。
全栈程序员站长
2022/09/01
6140
PID控制的MATLAB仿真(1)
IIR 数字滤波器三种结构形式的MATLAB实现
一.实验目的 1. 掌握IIR 数字滤波器设计的方法; 2. 掌握IIR 数字滤波器直接型、级联型和并联型的基本特点并根据给定的传递函数形式正 确选择是否采用直接型、级联型和并联型。 3. 熟悉直接型、级联型和并联型软件实现的编程方法。 二.实验原理 一个IIR 滤波器的系统函数给出为:
timerring
2022/07/20
2.1K0
IIR 数字滤波器三种结构形式的MATLAB实现
Matlab仿真PID控制(带M文件、simulink截图和参数分析)
线性定常系统的控制中,PID是个非常常见的控制方式,如果可以通过Matlab仿真出PID的控制效果图,那么对系统设计时的实时调试将会容易得多。在这里我们将会以一个利用系统辨识参数的PID设计为为例展示Matlab仿真PID的过程。 首先需要对一个未知的系统的参数进行辨识,以延迟环节可以忽略不计的电机调速系统为例。将时间戳导入xdata向量,对应的时刻转速导入ydata向量,进行系统辨识
全栈程序员站长
2022/09/06
5.3K0
Matlab仿真PID控制(带M文件、simulink截图和参数分析)
模糊pid控制算法matlab_matlab模糊控制器
学过控制工程或者相关理论的同学应该比较了解,判断系统稳定性的条件一般用到劳斯表(劳斯判据)。而PID控制和模糊PID控制极大地依赖系统传递函数的建立,因此如果对于系统复杂,难以建立模型的,还是需要考虑一下。
全栈程序员站长
2022/08/18
1.9K0
模糊pid控制算法matlab_matlab模糊控制器
基于Matlab GUI的PID研究
前言:偷懒了一段时间,最近计划分享一些之前做过的项目,本期分享基于Matlab GUI的PID研究。
用户9925864
2022/07/27
6810
基于Matlab GUI的PID研究
stm32直流电机控制—PID算法篇
控制目的: 控制的根本目的就是要使控制对象当前的状态值与用户的设定值相同(最大限度的接近)。
全栈程序员站长
2022/08/23
3.7K0
stm32直流电机控制—PID算法篇
讨论 PID 以外的闭环控制系统
工业控制系统在现代工业中扮演着重要角色,实现了自动化生产和优化生产过程。闭环控制系统是一种常见的控制方法,除了传统的比例-积分-微分(PID)控制器外,还存在许多其他闭环控制方法和技术。本文将重点介绍这些闭环控制系统,并提供实际应用案例,以增加文章的实用性。
剑指工控
2024/04/16
3780
讨论 PID 以外的闭环控制系统
PID算法原理、调整规律及代码
比例控制是一种最简单的控制方式。其控制器的输出与输入误差信号成比例关系。当仅有比例控制时系统输出存在稳态误差(Steady-state error)。
小锋学长生活大爆炸
2020/08/13
2.7K0
PID算法原理、调整规律及代码
模糊PID算法及其MATLAB仿真(1)
2020 年4月2日 由于浏览数量的增加,这里做了一些增补及修改。有问题请大家指出。
全栈程序员站长
2022/09/05
1.8K0
PID算法详解[通俗易懂]
PID算法是一种具有预见性的控制算法,其核心思想是: 1>. PID算法不但考虑控制对象的当前状态值(现在状态),而且还考虑控制对象过去一段时间的状态值(历史状态)和最近一段时间的状态值变化(预期),由这3方面共同决定当前的输出控制信号; 2>.PID控制算法的运算结果是一个数,利用这个数来控制被控对象在多种工作状态(比如加热器的多种功率,阀门的多种开度等)工作,一般输出形式为PWM,基本上满足了按需输出控制信号,根据情况随时改变输出的目的。
全栈程序员站长
2022/11/10
7.8K0
PID算法详解[通俗易懂]
基于Matlab的FIR滤波器设计与实现
前面一篇文章介绍了通过FDATool工具箱实现滤波器的设计,见“基于Matlab中FDATool工具箱的滤波器设计及相关文件的生成”,这里通过几个例子说明采用Matlab语言设计FIR滤波器的过程。
AIHGF
2019/02/18
2.3K0
基于Matlab中FDATool工具箱的滤波器设计及相关文件的生成
大侠好,欢迎来到FPGA技术江湖,江湖偌大,相见即是缘分。大侠可以关注FPGA技术江湖,在“闯荡江湖”、"行侠仗义"栏里获取其他感兴趣的资源,或者一起煮酒言欢。
FPGA技术江湖
2020/12/29
2.9K0
基于Matlab中FDATool工具箱的滤波器设计及相关文件的生成
【Matlab】创建离散时间模型(控制系统工具箱)
创建离散时间模型的语法与连续时间模型的语法类似,只是还必须提供采样时间(采样间隔以秒为单位)。
DevFrank
2024/07/24
2560
【Matlab】创建离散时间模型(控制系统工具箱)
推荐阅读
相关推荐
PID控制算法仿真_连续控制系统的充分必要条件
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验