- 1、本文档共19页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
matlab应用之转换函数大全-差分方程
怎么用matlab把传递函数转成差分方程
已有 582 次阅读 2012-2-10 17:33 |系统分类:科研笔记|关键词:方程 函数 matlab
以下是PID控制的部分代码(matlab的m文件):ts=0.001;采样时间=0.001ssys=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;仿真时间100msfor k=1:1:pr(k)=rin;u(k)=kpidi(1)*x(1)+kpidi(2)*x(2)+kpidi(3)*x(3)if u(k)=10u(k)=10;endif u(k)=-10u(k)=-10;endyout(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不一样得出的结果也不一样,这些参数究竟有什么区别?
问题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)2/wlxt/ncourse/jsjkzjs/web/ppt/ch4.files/frame.htm4、纯延迟系统G(s)=20e^(-0.02s)/(1.6s^2+4.4s+
文档评论(0)