当前位置: 首页 > news >正文

控制建模matlab练习09:超前补偿器

此练习主要是:关于超前补偿器。
①为什么使用超前补偿器;
②使用超前补偿器前后的效果;

一、为什么使用超前补偿器

  • 以下图,闭环反馈系统为例,开环传递函数为G(s);
  • 首先,先分析一下当前系统的根轨迹,以及闭环系统的瞬态响应如何;

1、效果一:未使用超前补偿器

系统模型

  • 在matlab中,绘制当前系统的根轨迹,以及不同K值下的闭环系统的阶跃响应。
  • 代码如下:
clc;clear;close all;
%% 定义G(s)
s = tf('s');
G_s = 1/((s+1)*(s+3));figure(1);
rlocus(G_s);figure(2);
K=2;
step (feedback(K*G_s,1));
hold on;
K=100;
step (feedback(K*G_s,1));
legend('K=2', 'K=100');
  • 从根轨迹图看出,有两根根轨迹,分别从极点x=-1和x=-3,相向中间靠拢,最后沿着渐近线x=-2继续指向无穷。
  • 这也意味着,不管增益K增加到多大,其闭环系统所对应根的绝对值的最大就是到2。
  • 也就是当K增大到一定程度,不管再如何增加,都不会提高响应速度了。
    未使用超前补偿器的根轨迹
  • 从单位阶跃响应图看出,不管K=2还是增大到K=100,可以发现,最后的收敛速度都是一致的,都大概在2秒的时候达到系统稳态。
  • 所以此时无论如何增大K,都无法加快系统达到稳定的时间。
    不同K值的阶跃响应

2、效果二:使用超前补偿器

  • 使用PD控制通常可以提高系统的响应速度,但PD控制也具有缺陷,因此引入超前补偿器可以避免PD控制的缺陷。
  • 超前补偿器的设计思路:同时为系统增加一个极点和零点,且零点的位置比极点更加靠近虚轴。
  • 以下图,加入超前补偿器后,超前补偿器是C(s)。
    使用超前补偿器
  • 在matlab中,绘制对应的根轨迹,以及闭环系统的阶跃响应。
  • 代码如下:
clc;clear;close all;
%% 定义G(s)
s = tf('s');
G_s = 1/((s+1)*(s+3));
K=100;
t = 0: .1: 5;
%% 绘制原传递函数根轨迹及其响应
subplot(2,2,1);
rlocus(G_s);
title('原系统根轨迹');
subplot(2,2,2);
sys_1 = feedback(K*G_s, 1)
step (sys_1,t);
title('原系统单位阶跃响应');
%%%% 定义补偿器C(s)
sz = -5;
sp = -10;
C_s = (s-sz)/(s-sp);
%% 使用补偿器后的根轨迹及其响应
subplot(2,2,3);
rlocus(G_s*C_s);
title('增加超前补偿器系统根轨迹');
subplot(2,2,4);
sys_2 = feedback(K*G_s*C_s, 1)
step (sys_2,t);
title('增加超前补偿器系统单位阶跃响应');

二、运行结果及分析

  • 从运行结果看出,增加超前补偿器后的根轨迹,渐近线从x=-2左移到x=-4多,也就是根整体被向左拉了,因此,响应速度自然就会增加。
  • 从单位阶跃响应图看出,增加超前补偿器后,达到稳态的时间,从原来的2秒提升到1秒左右。
  • 所以,超前补偿器的一个应用:就是可以提高系统的响应速度。

超前补偿器对比

学习来源:《控制之美》[卷1],王天威

http://www.dtcms.com/a/312819.html

相关文章:

  • K8S部署ELK(四):部署logstash
  • 使用trae进行本地ai对话机器人的构建
  • 【LLM】 BaseModel的作用
  • 《软件测试与质量控制》实验报告三 系统功能测试
  • Tomcat访问Controller的内部实现原理
  • 批发订货系统:私有化部署与源代码支持越来越受市场追捧
  • 【Android】RecyclerView循环视图(2)——动态加载数据
  • IntelliJ IDEA开发编辑器摸鱼看股票数据
  • git用户设置
  • LangChain4J入门:使用SpringBoot-start
  • 【abc417】E - A Path in A Dictionary
  • template<typename R = void> 意义
  • 2. 字符设备驱动
  • LeetCode Hot 100,快速学习,不断更
  • #C语言——刷题攻略:牛客编程入门训练(四):运算
  • Kazam产生.movie.mux后恢复视频为.mp4
  • 小宿科技:AI Agent 的卖铲人
  • zookeeper持久化和恢复原理
  • idea中.xml文件的块注释快捷键
  • Hugging Face 模型文件介绍
  • IDEA查看源码利器XCodeMap插件
  • 【高等数学】第七章 微分方程——第八节 常系数非齐次线性微分方程
  • 【lucene】ByteBuffersIndexInput
  • k8s日志收集
  • Redis面试精讲 Day 8:Stream消息队列设计与实现
  • 对接古老系统的架构实践:封装混乱,走向有序
  • [硬件电路-146]:模拟电路 - DCDC与LDO详解、常见芯片、管脚定义
  • 基于 LangChain + 通义千问 + bge-large 中文 Embedding 搭建一个RAG问答示例
  • TVS二极管数据手册解读
  • 【lucene】ByteBufferGuard