一阶自抗扰仿真模型(包含PI控制器、一阶线性/非线性自抗扰控制器)的Simulink搭建与控制...
一阶自抗扰仿真模型,采用 simulink搭建,模型中包括 PI 控制器,一阶线性自抗扰控制器,一阶非线性自抗扰控制器,通过仿真对比以上控制器的控制性能,matlab2021b 及以上版本适用
在控制系统中,控制器的作用至关重要,尤其是在面对复杂的动态系统时。今天我们就来聊聊如何在Simulink中搭建一阶自抗扰仿真模型,并对比PI控制器、一阶线性自抗扰控制器和一阶非线性自抗扰控制器的性能。
首先,我们得有个模型,对吧?假设我们有一个一阶系统,它的传递函数是 \( \frac{1}{s+1} \)。这个系统简单,但足以让我们看到不同控制器的效果。
PI控制器
PI控制器,就是比例-积分控制器,它的作用是通过调整比例和积分参数来减少系统的稳态误差。在Simulink中,我们可以直接拖拽一个PID控制器模块,然后把积分部分去掉,只保留比例和积分。
Kp = 1; % 比例增益
Ki = 1; % 积分增益
设置好参数后,运行仿真,你会看到系统的响应。PI控制器的优点是简单易调,但在面对快速变化的系统时,可能会显得有些力不从心。
一阶线性自抗扰控制器
接下来,我们来看看一阶线性自抗扰控制器(LADRC)。这种控制器通过引入一个扩张状态观测器(ESO)来估计系统的未建模动态和外部扰动,从而实现更好的控制效果。

一阶自抗扰仿真模型,采用 simulink搭建,模型中包括 PI 控制器,一阶线性自抗扰控制器,一阶非线性自抗扰控制器,通过仿真对比以上控制器的控制性能,matlab2021b 及以上版本适用
在Simulink中,我们需要自己搭建一个ESO模块。ESO的核心思想是通过系统的输入和输出来估计系统的状态和扰动。
% ESO参数
beta1 = 100;
beta2 = 100;
% ESO状态方程
function dxdt = eso(t, x, u, y)
e = y - x(1);
dxdt = [x(2) + beta1*e;
u + beta2*e];
end
这个ESO模块可以帮助我们更好地估计系统的状态,从而在控制器中补偿扰动。运行仿真后,你会发现LADRC在抑制扰动和快速响应方面表现得比PI控制器更好。
一阶非线性自抗扰控制器
最后,我们来看看一阶非线性自抗扰控制器(NLADRC)。这种控制器在LADRC的基础上引入了非线性项,以应对更复杂的系统动态。
在Simulink中,我们需要在ESO的基础上加入非线性项。比如,可以使用一个非线性函数来调整控制器的输出。
% 非线性函数
function u = nonlinear_control(e)
u = e + 0.1*e^3; % 简单的非线性项
end
这个非线性项可以帮助控制器在系统动态变化较大时,依然保持良好的控制效果。运行仿真后,你会发现NLADRC在应对复杂扰动和非线性系统时,表现得更加出色。
仿真对比
通过仿真,我们可以清晰地看到三种控制器的性能差异。PI控制器简单但性能有限,LADRC在抑制扰动和快速响应方面表现更好,而NLADRC则在应对复杂系统时展现了其强大的控制能力。
% 仿真结果对比
figure;
plot(t, y_pi, 'b', t, y_ladrc, 'r', t, y_nladrc, 'g');
legend('PI', 'LADRC', 'NLADRC');
xlabel('Time (s)');
ylabel('Output');
title('Controller Performance Comparison');
从图中可以看出,NLADRC的响应速度最快,且稳态误差最小。而PI控制器虽然在简单系统中表现尚可,但在复杂系统中就显得有些捉襟见肘了。
总结
通过这次仿真,我们可以看到,不同的控制器在不同的场景下有着各自的优势。PI控制器简单易用,适合简单的线性系统;LADRC在抑制扰动和快速响应方面表现更好;而NLADRC则在应对复杂系统和非线性扰动时展现了其强大的控制能力。

在实际应用中,我们需要根据具体的系统特性来选择合适的控制器。希望这次的仿真对比能为你提供一些参考,帮助你在实际项目中做出更好的决策。
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐

所有评论(0)