PID控制中的三种建模方法详解
PID控制中的三种建模方法详解
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_input
和motor_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。
如下图所示,验证这个传输函数的正确性:
可以看出这个传递函数是正确的。