Matlab怎样将传递函数转换成差分方程
最近在做毕业设计,自己的控制对象描述形式是传递函数,而书里看到的大部份被控对象都是差分方程的形式,就想有没有这种转换的方法,网上搜索了一圈,总结如下。步骤一,先建立传递函数方程首先给定一个连续的传递函数,例如一个二阶传递函数在MATLAB里面的描述如下:sys=tf([3,1],[1,2,5]);% 建立被控对象传递函数步骤二:将传递函数离散化将传递函数离散成如下z函...
·
最近在做毕业设计,自己的控制对象描述形式是传递函数,而书里看到的大部份被控对象都是差分方程的形式,就想有没有这种转换的方法,网上搜索了一圈,总结如下。
步骤一,先建立传递函数方程
首先给定一个连续的传递函数,例如一个二阶传递函数
在MATLAB里面的描述如下:
sys=tf([3,1],[1,2,5]); % 建立被控对象传递函数
步骤二:将传递函数离散化
将传递函数离散成如下z
函数的形式:
这时就得到了一个离散模型,在MATLAB中描述如下:
ts=0.001; % 设定采样时间=0.001s
dsys=c2d(sys,ts,'z'); % 根据采样时间,把传递函数离散化
步骤三:把离散方程改成差分方程
- 模型改写成差分方程 首先把
dsys
改成y(z)
和u(z)
的比值
- 然后上下同除以
z
的平方,使z
的次数为负
- 接着十字相乘,展开成等式,并将
z
的幂次形式改写成差分形式
- 最后把
y(k)
提到等式的左边,即得到差分方程的形式
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
已为社区贡献1条内容
所有评论(0)