基于连续Ziegler_Nichols的频域响应pid整定

连续Ziegler_Nichols的频域响应pid整定

Ziegler_Nichols频域响应pid整定的方法是基于稳定性分析的频域响应pid整定方法。该方法整定的思想是:对于给定的被控对象传递函数,可以得到其根轨迹,对应穿越Jw轴的点,增益即为Km,而此点的w值即为wm。

整定公式如下

式中,km为系统开始震荡时的增益K值;wm为震荡频率。

仿真实例

设被控对象为

代码如下

复制代码
%PID Controler Based on Ziegler-Nichols
clear all;
close all;

sys=tf(400,[1,30,200,0]);

figure(1);
rlocus(sys);
[km,pole]=rlocfind(sys)

wm=imag(pole(2));
kp=0.6*km
kd=kp*pi/(4*wm)
ki=kp*wm/pi

figure(2);
grid on;
bode(sys,'r');

sys_pid=tf([kd,kp,ki],[1,0])
sysc=series(sys,sys_pid)
hold on;
bode(sysc,'b')

figure(3);
rlocus(sysc);

下图为未整定的开环系统根轨迹图

整定前后系统的伯德图(红色为整定前,蓝色为整定后)

下图为整定后闭环系统的根轨迹

使用rlocus及rlocfind命令可以求得穿越增益km=14.878和穿越频率wm=14rad、s

Ziegler_Nichols整定方法可以求得参数pid

kp = 8.9268

kd =0.49742

ki =40.051

可见,该系统整定后,频带拓宽,相位超前。整定后系统的根轨迹,所有极点位于负变面,达到完全稳定状态。

相关推荐
int型码农2 小时前
数据结构第八章(一) 插入排序
c语言·数据结构·算法·排序算法·希尔排序
UFIT3 小时前
NoSQL之redis哨兵
java·前端·算法
喜欢吃燃面3 小时前
C++刷题:日期模拟(1)
c++·学习·算法
SHERlocked933 小时前
CPP 从 0 到 1 完成一个支持 future/promise 的 Windows 异步串口通信库
c++·算法·promise
怀旧,3 小时前
【数据结构】6. 时间与空间复杂度
java·数据结构·算法
积极向上的向日葵3 小时前
有效的括号题解
数据结构·算法·
GIS小天3 小时前
AI+预测3D新模型百十个定位预测+胆码预测+去和尾2025年6月7日第101弹
人工智能·算法·机器学习·彩票
_Itachi__3 小时前
LeetCode 热题 100 74. 搜索二维矩阵
算法·leetcode·矩阵
不忘不弃3 小时前
计算矩阵A和B的乘积
线性代数·算法·矩阵
不爱写代码的玉子4 小时前
HALCON透视矩阵
人工智能·深度学习·线性代数·算法·计算机视觉·矩阵·c#