问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

PID控制中的三种建模方法详解

创作时间:
作者:
@小白创作中心

PID控制中的三种建模方法详解

引用
简书
1.
https://www.jianshu.com/p/d789b1819d2e?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

PID控制是工业自动化领域的重要技术,而建立准确的系统模型是实现PID控制的基础。本文将介绍三种常见的建模方法:根据元件性质直接建模、系统识别方法以及MATLAB仿真。通过具体的实例和步骤,帮助读者掌握这些方法的应用。

根据元件性质直接得到模型

这种方法适用于简单的系统,需要关注整个系统的具体组成。通过欧姆定律等电路定律,为元件建模,最终得到系统模型。这种方式很麻烦,不在这里详细讨论。

系统识别的方法

这种方法不需要关注系统的具体实现,将系统当做一个双端口的处理器,给定输入可以得到想要的输出。例如,一个加热器,面包经过加热器后上升了10度,就可以给加热器建立相关的方程了,并不需要知道加热器是电阻加热还是红外光热。

还需要注意的是,给定输入是否在系统输入范围,避免对系统造成损伤。

MATLAB仿真

这里使用到了MATLAB的system identification工具库。本次仿真是对一个电机建立模型。

电机模型参数如下:

J = 0.01;  % 转动惯量
b = 0.1;   % 阻尼系数
K = 0.01;  % 电机常数
R = 1;     % 电阻
L = 0.5;   % 电感

在Simulink中运行一遍模型,回到MATLAB,这时候会发现工作区多了step_inputmotor_speed这两个变量。

在MATLAB的工具箱中找到system identification这个工具,打开。在import data下选择time domain data,在弹出的窗口填入相关信息,点击import。

接下来在estimate的下拉框中选择transfer function model,点击estimate,运行完后,如图所示把结果tf1拖入to workspace。

此时在MATLAB的工作区中应该能看见tf1这个变量,在命令行输入tf1,就能看见传递函数:

>> tf1
tf1 = 
  From input "u1" to output "y1": 
   -1.042e-08 s + 2 
  ------------------ 
  s^2 + 12 s + 20.02 
Name: tf1 
Continuous-time identified transfer function. 
Parameterization: 
   Number of poles: 2   Number of zeros: 1 
   Number of free coefficients: 4 
   Use "tfdata", "getpvec", "getcov" for parameters and their uncertainties. 
Status:                                              
Estimated using TFEST on time domain data "mydata".  
Fit to estimation data: 100% (stability enforced)    
FPE: 4.857e-33, MSE: 4.851e-33                       

回到Simulink,修改DC Motor Transfer Fcn为对应的传递函数,开始仿真。仿真结束后打开scope查看,结果如下图:

从结果可以看出这个传递函数是正确的。

对现有非线性模型线性化

这个方法和前面系统辨识的方法很类似,不过上一个方法使用的是模型的输入输出结果建立模型,这个是通过对系统线性化得到模型。

MATLAB仿真

最终效果的模型在这里提供。如下图所示,先添加linear analysis points。

在菜单栏打开Analysis->Control Design->Linear Analysis..。

如下图所示,设置t=2,点击Step Plot 1,双击点开linsys1,显示线性化的选项选择Transfer Function。

如下图所示,验证这个传输函数的正确性:

可以看出这个传递函数是正确的。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号