数字PID控制幅值输出问题

PID的matlab程序如下:求问为什么输出幅值始终大约为1,而不发生改变,是什么原因呢?应该怎么解决这个问题啊??

clear all;

close all;

ts=0.001;%采样时间=0.001s

%sys=tf(2652,[1,25,490]);%建立被控对象传递函数
%dsys=c2d(sys,ts,'z');%把传递函数离散化
%[num,den]=tfdata(dsys,'v');%离散化后提取分子、分母
num=[0 -0.00324 0.003325];
den=[1 -1.982 0.9834];

e_1=0 %上一偏差
Ee=0;%偏差累计
u_1=0.0;%上一状态电压
u_2=0.0;
y_1=0;%上一状态输出
y_2=0;
kp=20;%PID参数
ki=6;%;
kd=4;%;
for k=1:10000
time(k)=k*ts;%时间参数
r(k)=2;%给定值
y(k)=-1*den(2)*y_1-den(3)*y_2+num(2)*u_1+num(3)*u_2;
e(k)=r(k)-y(k);%偏差
u(k)=kp*e(k)+ki*Ee+kd*(e(k)-e_1);
if u(k)>16.4
u(k)=16.4;
end
if u(k)<=0
u(k)=0;
end
Ee=Ee+e(k);
u_2=u_1;
u_1=u(k);
y_2=y_1;
y_1=y(k);
e_2=e_1;
e_1=e(k);
end
hold on;
%plot(time,r,'r',time,y,'b',time,u,'g',time,e,'k');%
plot(time,r,'r',time,y,'b');
[kp,ki,kd]
y

原因在于这几句:

if u(k)>16.4
u(k)=16.4;
end

你对PID的控制量做了限制,也就是PID最大输出16.4,得加大PID输出才能跟上你的设定值2.

从传递函数上看你这个系统的增益很大,稳定性很差,从根轨迹图上看离散系统就不是稳定系统,虽然连续系统是稳定的。所以这个PID的控制量稍微一大系统就发散掉了,故程序对控制量做了限制。

去掉上面那几句之后,我粗调了一个Kp=4,Ki=0.05,如下图,控制效果不好,最后能稳定。主要还是控制系统几乎是处于临界稳定状态。

温馨提示:内容为网友见解,仅供参考
无其他回答

数字PID控制幅值输出问题
你对PID的控制量做了限制,也就是PID最大输出16.4,得加大PID输出才能跟上你的设定值2.从传递函数上看你这个系统的增益很大,稳定性很差,从根轨迹图上看离散系统就不是稳定系统,虽然连续系统是稳定的。所以这个PID的控制量稍微一大系统就发散掉了,故程序对控制量做了限制。去掉上面那几句之后,...

PI控制中输出的超调量过大如何调节?(调节时间很短),我调了很久,一直都...
加大比例度或积分时间。一、P.I.D 调节(控制)参数的人工整定 经验参数和各种调节系统中P.I.D参数可参照以下经验数据设置。或作为人工整定的初始数据:温度T:P= 20~60%,I=180~600s,D=3-180s;压力P: P=30~70%,I=24~180s;液位L:P=20~80%,I= 60~300s;流量L:P=40~100%...

PI控制中输出的超调量过大如何调节?(调节时间很短),我调了很久,一直都...
加大比例度或积分时间。一、P.I.D 调节(控制)参数的人工整定 经验参数和各种调节系统中P.I.D参数可参照以下经验数据设置。或作为人工整定的初始数据:温度T:P= 20~60%,I=180~600s,D=3-180s;压力P: P=30~70%,I=24~180s;液位L:P=20~80%,I= 60~300s;流量L:P=40~100%...

PID算法的输出是什么,0到1之间?
这个不一定,pid算法是控制器用于控制的一种算法。控制器的输出范围一般后面执行机构的输入范围一致。比如你的控制对象为spwm的幅值,你的执行机构为igbt。那么控制器经过pid算法的输出为0到1的调制度。而执行机构在该调制度的输入下对应的有一个spwm的幅值。而该幅值经过检查机构的检测和给定的spwm幅值做...

PID计算出的调整值如何去控制快速PWM模式波的输出
例:PID计算出电压值,则电压值的幅值对应占空比 希望你多看看相关书籍。

模拟PID控制与数字PID控制的区别
1、模拟PID控制:是比例控制;积分控制可消除稳态误差,但可能增加超调;微分控制可加快大惯性系统响应速度以及减弱超调趋势。2、数字PID控制:成比例的反映控制系统的误差信号,偏差一旦产生,控制器立即产生控制作用,以减小偏差。比例控制器在信号变换时,只改变信号的幅值而不改变信号的相位,采用比例控制...

自动控制原理稳态输出怎么求
自动控制原理稳态输出求取步骤:1、控制器作为最早实用化的控制器已有50多年历史,现在仍然是应用最广泛的工业控制器。PID控制器简单易懂,使用中不需精确的系统模型等先决条件,因而成为应用最为广泛的控制器。2、输入输出的形式来看,闭环环节,对于幅值,相角的输入,输出为幅值1,相角滞后。

pid控制原理及编程方法
PID控制原理就是根据系统的误差,利用比例、积分、微分计算出控制量进行控制的。pid的拆解就是:比例P控制(proportion)、积分I控制(integral)、微分D控制(differential)。比例P控制:控制器的输出与输入误差成比例关系,系统输出存在稳态误差。积分I控制:控制器的输出与输入误差的积分成正比关系,积分项...

PID控制。被控对象的传递函数为G(s)=1\/(s^2+s),输入为正弦曲线_百度知 ...
因为LZ的输入是正弦信号,输出是要尽量接近输入,也就是说输出的幅值和相位要尽量和输入一样,其实就是一个动态的跟踪系统。因为正弦信号是一个动态信号,所以与一般的定值控制相比,对动态性能的要求更高,所以要用到D,因为D主要可以改善系统的动态性能。(一般的定值控制系统很多都不用D的)。综合看...

为什么PID不会出现全0或全1
因为子网号全0 网络地址会与主网网络地址相同;子网号全1 广播地址会与主网广播地址相同,导致无法确定网络地址和广播地址。_敲纯刂破骶_id算法的输出为0到1的调制度。而执行机构在该调制度的输入下对应的有一个spwm的幅值。_梅稻觳榛沟募觳夂透ǖ_pwm幅值做比较,二者之差再作为控制器的输入。

相似回答