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

控制建模matlab练习07:比例积分控制-③PI控制器的应用

此练习主要是比例积分控制,包括三部分:
①系统建模;
②PI控制器;
③PI控制器的应用;
以下是,第③部分:PI控制器的应用。

一、比例积分控制的应用模型

1、整个系统是如图,这样一个单位反馈的形式;
2、这个系统存在扰动D(s),因此无法直接用feedback命令来建立闭环传递函数,所以需要手动的推导。
比例积分控制体重
3、将整个系统的推导过程如下图,最后就能求出输入R(s)和输出X(s)之间的关系,也就得到整个系统闭环传递函数Gcl(s)。
闭环传递函数推导
4、其中D(s)就是d(t)的表达式,进行拉普拉斯变换;
5、从练习05的案例一,这个体重作为例子:即目前体重x0=90,准备减到目标参考值r(t)=65。
初始值
6、此时整个系统,就可以把中间这么多,看成新的闭环系统G_cls。
7、因为R(s)是常数输入,所以输出X(s)就相当于它的单位阶跃响应x对应的R倍。
看成整体的闭环系统

clc;clear;close all;
%% 定义参数
S = 5;
x0 = [70];
h = 175;
a = 20;
Ei = [2500,2100,2500];
alpha = 1.3;
Ea = [0, 0, 500];
%% 定义G(s)
G_s = tf([1],[7000,10*alpha]);
%% 定义扰动
d = -alpha*(6.25*h-5*a+S);
D_s = tf([d],[1 0]);
%%%% 定义比例积分微分控制
kp = 200;
ki = 1; 
kd = 0;
C_s = pid(kp, ki, kd); 
%% 仿真
x0 = [90];
R_s = tf([65],[1 0]);
sys_cl = G_s*(C_s + D_s/R_s + 7000*x0/R_s)/(1 + G_s* C_s);
%% 定义输入
t = 0: 1: 3000;
R = 65;
x = R*step(sys_cl,t);%因为R(s)是常数输入,所以输出就相当于它的单位阶跃响应*对应的R倍。
plot (x);
grid on;
%%

二、运行结果及分析

1、Kp=200,Ki=1,Kd=0;
(比例积分PI结合,此时从响应速度、最后稳定值都能快速到参考值65)
运行结果
2、Kp=200,Ki=0,Kd=0;
(只有比例项P,此时无法到65,存在稳态误差)
只有Kp
3、Kp=0,Ki=1,Kd=0;
(只有积分项I,此时存在非常大的振荡)
只有Ki

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

http://www.lryc.cn/news/608705.html

相关文章:

  • Spring 03 Web springMVC
  • ESP32学习-I2C(IIC)通信详解与实践
  • C++:STL中的栈和队列的适配器deque
  • Spring Boot AOP 优雅实现异常重试机制
  • AD方案(OpenLDAP或微软AD)适配信创存在的不足以及可能优化方案
  • Nvidia Orin DK 刷机CUDA TensorRT+硬盘扩容+ROS+Realsense+OpenCV+Ollama+Yolo11 一站式解决方案
  • CUDA杂记--nvcc使用介绍
  • Elastic 9.1/8.19:默认启用 BBQ,ES|QL 支持跨集群搜索(CCS)正式版,JOINS 正式版,集成 Azure AI Foundry
  • Jupyter Notebook 中高效处理和实时展示来自 OpenCV 和 Pillow 的图像数据探究
  • Jetpack Compose for XR:构建下一代空间UI的完整指南
  • SpringBoot+Vue高校实验室预约管理系统 附带详细运行指导视频
  • 力扣经典算法篇-41-旋转图像(辅助数组法,原地旋转法)
  • RabbitMQ面试精讲 Day 9:优先级队列与惰性队列
  • 昇思学习营-开发版-模型推理和性能优化
  • Android 之 MVP架构
  • Redis+Lua的分布式限流器
  • Python 实例属性与方法命名冲突:一次隐藏的Bug引发的思考
  • Corrosion2靶机
  • NumPy库学习(三):numpy在人工智能数据处理的具体应用及方法
  • PHP入门及数据类型
  • Android 之 WebView与HTML交互
  • 【Django】-7- 实现注册功能
  • 迈向透明人工智能: 可解释性大语言模型研究综述
  • ubuntu24.04安装selenium、edge、msedgedriver
  • 大语言模型的解码策略:贪婪解码与波束搜索
  • 记一次v-if和key错误使用,导致vue2的内存爆炸修复!
  • 音视频学习(五十):音频无损压缩
  • Arrays.asList() add方法报错java.lang.UnsupportedOperationException
  • Apache Shenyu 本地启动及快速入门
  • 【abc417】E - A Path in A Dictionary