logo资料库

将传递函数变成差分方程形式.doc

第1页 / 共2页
第2页 / 共2页
资料共2页,全文预览结束
怎么用 matlab 把传递函数转成差分方程 以下是 PID 控制的部分代码(matlab 的 m 文件): ts=0.001;采样时间=0.001s sys=tf(400,[1,50,0]);建立被控对象传递函数 dsys=c2d(sys,ts,'z');把传递函数离散化(问题 1) [num,den]=tfdata(dsys,'v');离散化后提取分子、分母 rin=1.0;输入为阶跃信号 u_1=0.0; u_2=0.0; 什么东西的初始状态(问题 2) y_1=0.0; y_2=0.0; 是不是输出的初始状态 error_1=0;初始误差 x=[0 0 0]';PID 的 3 个参数 Kp Ki Kd 组成的数组 p=100;仿真时间 100ms for k=1:1:p r(k)=rin; u(k)=kpidi(1)*x(1)+kpidi(2)*x(2)+kpidi(3)*x(3) if u(k)>=10 u(k)=10; end if u(k)<=-10 u(k)=-10; end yout(k)=-den(2)*y_1-den(3)*y_2+num(2)*u_1+num(3)*u_2;(问题 3) error(k)=r(k)-yout(k); %返回 pid 参数 u_2=u_1;u_1=u(k); y_2=y_1;y_1=yout(k); x(1)=error(k); x(2)=(error(k)-error_1)/ts; x(3)=x(3)+error(k)*ts; error_2=error_1; error_1=error(k); end 问题 1:把传递函数离散化[SYSD,G]=C2D(SYSC,Ts,METHOD)这里面的 method 有好多种, 而且用的 method 不一样得出的结果也不一样,这些参数究竟有什么区别(不要把 matlab 的 help 给我翻译一遍,帮忙解释详细点)
问题 2:这些是不是 PID 控制器输出的初始状态,“rin--①--PID 控制器--②--被控对象--③---” 是不是就是上面②的地方的信号值? 问题 3(关键问题):这个式子是怎么得出来的?从传递函数得出差分方程是个什么步骤, 要具体点的或者给本参考书。 又如:在《先进 PID 控制 MATLAB 仿真(第二版)》P146 有 被控对象 G(s)=133/(s^2+25s), 采 样 时 间 为 1ms , 采 用 z 变 换 进 行 离 散 化 , 经 过 z 变 换 后 的 离 散 化 对 象 为 yout(k) = -den(2)yout(k-1)—den(3)yout(k-2)十 num(2)u(k-1)+num(3)u(k-2)(实在是搞不明白怎么来的) 问 题 4 : 不 是 线 性 的 对 象 可 不 可 以 写 成 差 分 方 程 的 形 式 , 比 如 G(s)=20e^(-0.02s)/(1.6s^2+4.4s+1)带了个纯延迟的该怎么弄。或者换成个 3 阶对象怎么写成 差分方程 最佳答案 1、c2d:假设在输入端有一个零阶保持器,把连续时间的状态空间模型转到离散时间状态空 间模型。 [SYSD,G]=C2D(SYSC,Ts,METHOD)里面的 method 包括: zoh 零阶保持, 假设控制输入在采样周期内为常值,为默认值。 foh 一阶保持器,假设控制输入在采样周期内为线性。 tustin 采用双线性逼近。 matched 采用 SISO 系统的零极点匹配法 2、只有 U_1 是 2 处的初始状态值,而 U_2 是用来传递 U(k)的,所以 U_2 是 U_1 在下一个 ts 时间内的值 3、从差分方程获取传递函数: y(k)+a1(k-1)+……+an(k-n)=b0x(k)+b1x(k-1)+……+bmx(k-m)在零初始条件下对,对方程两边 进 行 Z 变 换 , 得 到 该 系 统 的 脉 冲 传 递 函 数 G(Z)=Y(Z)/X(X)=[b0z^m+b1z^(m-1)+ … … +bm]/[z^n+a1z^(n-1)+……an] 其中 m《n 或等效形式 G(Z)=Y(Z)/X(X)=[b0+b1z^(-1)+……+bmz^(-m)]/[1+a1z^(-1)+……anz^(-n)] 其中 m《n 从脉冲传递函数到差分方程 G(Z)=Y(Z)/X(X)=[b0+b1z^(-1)+……+bmz^(-m)]/[1+a1z^(-1)+……anz^(-n)] 其中 m《n 交叉 相乘得 Y(Z)[1+a1z^(-1)+……anz^(-n)]=X(X)[b0+b1z^(-1)+……+bmz^(-m)]对 X(z)和 Y(z)进行 z 逆变换的到差分方程 y(k)+a1y(k-1)+……+any(k-n)=b0x(k)+b1x(k-1)+……+bmx(k-m) http://218.6.168.52/wlxt/ncourse/jsjkzjs/web/ppt/ch4.files/frame.htm 4、纯延迟系统 G(s)=20e^(-0.02s)/(1.6s^2+4.4s+1) num=[20]; den=[1.6 4.4 1]; sys=tf(num,den,'inputdelay',0.02)
分享到:
收藏