logo资料库

关于刘金琨的《先进PID控制MATLAB仿真》疑惑解答..pdf

第1页 / 共4页
第2页 / 共4页
第3页 / 共4页
第4页 / 共4页
资料共4页,全文预览结束
关于刘金琨的《先进 PID 控制 MATLAB 仿真》疑惑解答: 其中仿真实例 1:(第二版 16 页) 经过 Z 变换后的离散化对象为: 仿真实例 2:(第二版 23 页) 采样时间为 1ms,采用 Z 变换进行离散化,经过 Z 变换后的离散化对象为: . 设被控对象为:G(s)= Yout(k)=−den(2)yout(k−1)−den(3)yout(k−2)−den(4)yout(k −3)+num(2)u(k−1)+num(3)u(k−2)+num(4)u(k−3) 设被控对象为:G(s)= PID 控制参数为:K=8 ,K=0.10 ,K=10 。 Yout(k)=−den(2)yout(k−1)−den(3)yout(k−2)+num(2)u(k−1) +num(3)u(k−2) 设被控对象为:G(s)= 仿真实例 3:(第二版 25 页)(有延迟环节) 采样时间为 20s,延迟时间为 4 个采样时间,即 80s,被控对象离散化为: Yout(k)=−den(2)yout(k−1)+num(2)u(k−5) 其中很多人不明白被控对象是怎么离散化变换过来的,由于仿真实例 1 与仿真实 例 2 具有相似性,所以下面我为大家解答一下仿真实例 1 和仿真实例 3 仿真实例 1 解答如下: 编程如下:%PID Controller clear all; close all; ts=0.001; sys=tf(5.235e005,[1,87.35,1.047e004,0]) dsys=c2d(sys,ts,'z') [num,den]=tfdata(dsys,'v') 这小段程序就是Z变换,被控对象离散化,并且得出Z变换后的各个项的系数。 运算的结构如下:
sys = 523500 ------------------------- s^3 + 87.35 s^2 + 10470 s Continuous-time transfer function. dsys = 8.533e-05 z^2 + 0.0003338 z + 8.169e-05 --------------------------------------- z^3 - 2.906 z^2 + 2.823 z - 0.9164 Sample time: 0.001 seconds Discrete-time transfer function. num = 1.0e-03 * 0 0.0853 0.3338 0.0817 den = 1.0000 -2.9063 2.8227 -0.9164 由结果我们很容易看出: 分子分母分别÷z: 令G(z)=()() 我们将系数用num和den代替后,可以得到: G(z)=0.00008533z−0.0003338z+0.00008169 z−2.9063z+2.823z−0.9164 G(z)= num(2)z−num(3)z+num(4) den(1)z+den(2)z+den(3)z+den(4) G(z)=num(2)z−num(3)z+num(4)z den(1)+den(2)z+den(3)z+den(4)z
交叉相乘: 则:G(z)=()()() ()()()()=()() [den(1)+den(2)z+den(3)z+den(4)z]Y(z)=num(2)z− num(3)z+num(4)zU(z) 故:Y(z)=−den(2)zY(z)−den(3)zY(z)−den(4)zY(z)+ num(2)zU(z)−num(3)zU(z)+num(4)zU(z) y(k)=−den(2)y(k−1)−den(3)y(k−2)−den(4)y(k−3) 其中den(1)=1(由MATLAB程序的结果可知) 故被控对象离散化为: +num(2)u(k−1)−num(3)u(k−2)+num(4)u(k−3) 仿真实例 3 解答如下: 编程如下: %Integration Separation PID Controller clear all; close all; ts=20; %Delay plant sys=tf([1],[60,1],'inputdelay',80) %ÉèÖÃÑÓʱʱ¼ä dsys=c2d(sys,ts,'zoh') [num,den]=tfdata(dsys,'v') 得到的结果: sys = 1 exp(-80*s) * -------- 60 s + 1 Continuous-time transfer function. dsys =
0.2835 z^(-4) * ---------- z - 0.7165 Sample time: 20 seconds Discrete-time transfer function. num = 0 0.2835 den = 1.0000 -0.7165 由 MATLAB 结果可以很明显得到: 我们将系数用 num 和 den 代替后,可以得到: ()=z∗ 0.2835 z−0.7165 num(2) ()=z∗ den(1)z+den(2) num(2)z 分子分母分别÷z 得: ()=z∗ den(1)+den(2)z 令G(z)=()(),其中 den(1)=1, 得:()=z∗ () ()=()() 交叉相乘得:Y(z)[1+den(2)z]=num(2)zU(z) Y(z)=-den(2)Y(z)z+num(2)zU(z) 故被控对象离散化为: Y(k)=-den(2)y(k-1)+num(2)u(k-5) 其实还有其他的解答,我整理后补上。 2013.12.1 by:fashaoyouLV
分享到:
收藏