先进PID控制及MATLAB仿真第3章专家PID学习心得及疑问
因为课题需要,刚开始学习专家控制器matlab仿真,用的是刘金锟先进PID控制及MATLAB仿真。有一些问题想和大家交流,向大家请教。
1、第三章专家PID中,第一条规则应按最大输出。在p96例3-1中输出分别为0.45、0.40、0.1
2、0.01。如果我的输入信号不是阶跃信号,而是从0到1缓慢变化的s形曲线,如v=[1-cos(pi/50*t)]*735。输出还可以设定为0.45、0.40、0.12、0.01吗?
2、专家PID控制中第二条规则当误差处在增大阶段,前面讲的输出为,
而例3-1中rule2输出u(k)=u_1+1.5*kp*x(1)。这与上式为什么不同?我觉得kp*x(2)+ki*x(1)+kd*[x(2)-x2_1]等于u(k)的导数,对不对?它与kp*x(1)相等吗?为什么在例3-1中不用?
3、假设某时刻误差处在变大阶段,且x(1)=0.25。程序执行时首先执行rule1,因为误差大于0.2,则u(k)= 0.12。然后再判断rule2,因为条件也满足,误差值在变大,也大于0.05所以u(k)又变为u_1+1.5*kp*x(1)。这样程序是不是存在二义性?而且在我应用此算法仿真一五阶系统时(详见附件),rule5误差值小于0.001,则输出震荡,而改为0.1,则输出正常。这样,很多时候,只要误差小于0.1,则执行rule1,u(k)先等于0.1,再执行rule2,等于u_1+1.5*kp*x(1),再执行rule5,等于0.4*x(1)+0.475*x(3)。这样,使得rule2、rule4根本就不起作用。我觉得各误差段应既无遗漏又不重叠。不知我的理解对否?
4、本来我对采样时间的理解是采样时间越短,仿真精度越高。但我发现只改变采样时间,其它不变,则输出大不相同,甚至震荡。一开始我以为我的控制器没设计好,后来我找了书上不少例子试了试,例3-1、1-9、1-12都有此现象。这怎么解释?那这样仿真,和其他控制方法比较时还有可信度吗?也必须在相同采样时间下吗?
5、在simulink模型仿真时,怎样设置采样时间?在configuration parameter中,有sample time,但都不能设定具体值。在solver中,当采用固定步长时,不能设置采样时间。当采用变步长ode45时,max step time和min step time又不能设置为相等。难道只有采用默认采样时间?而默认的又是多少呢?
6、input delay和transport delay 、iodelay到底有什么区别啊?带延迟环节的传递函数应该用哪个来表示,还是都可以?
7、在例3-1加入滞后,sys=tf(5.235e005,[1,87.35,1.047e004,0],'inputdelay',76000000);结果输出和不加滞后完全一样,不管滞后有多大。我自己的控制器也是如此。是专家PID抵抗滞后能力强,还是滞后加的不对?