如何用matlab传递函数离散化

2020-12-10 16:34:13 字数 3421 阅读 7175

1楼:匿名用户

把传递函数离散化

dsys=c2d(sys,ts,'method');传函离散[num,den]=tfdata(dsys,'v'); 离散后提取分子分母

这里面的method有好多种,

zoh 零阶保持, 假设控制输入在采样周期内为常值,为默认值。

foh 一阶保持器,假设控制输入在采样周期内为线性。

tustin 采用双线性逼近。method用tustin替代matched 采用siso系统的零极点匹配法

怎么用matlab把传递函数转成差分方程

2楼:匿名用户

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)

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)

matlab中c2d如何将连续函数离散化 5

3楼:

matlab中,传递函数离散化,特别是转化为差分方程,可以使用c2d实现,系数直接转化是不可以的。c2d的具体用法,可以参照matlab帮助,下面举一例

% transfor function

sys = tf([1 -1], [1 4 5]);

% discretize

ts = 0.1; % 采样周期

dsys = c2d(sys, ts, 'z'); % 转化为差分方程

% extract

[num, den] = tfdata(dsys,'v'); % 提取差分方程系数

结果为:

>> dsys

transfer function:

0.07736 z - 0.08557

----------------------

z^2 - 1.629 z + 0.6703

sampling time: 0.1

>> num

num =

0 0.077359465661809 -0.085567271047414

>> den

den =

1.000000000000000

-1.629281019107614

0.670320046035640

**于http://blog.sina.***.**/s/blog_6163bdeb0100q3jh.html

如何用matlab传递函数离散化?

4楼:匿名用户

把传递函数离散化

dsys=c2d(sys,ts,'method');传函离散[num,den]=tfdata(dsys,'v'); 离散后提取分子分母

这里面的method有好多种,

zoh 零阶保专持, 假设控制输

属入在采样周期内为常值,为默认值。

foh 一阶保持器,假设控制输入在采样周期内为线性。

tustin 采用双线性逼近。method用tustin替代matched 采用siso系统的零极点匹配法

5楼:沙蒙牟涵忍

function

f=g(s)

a=1./(2*pi*100);b=1.36;

c=-0.0084;d=-16e-003;

f=(b/(a*s+1))*((1-exp(c*s))/(c*s)*exp(d*s))

以上copy**保存为

g.m文件名,bai

直接du在matlab窗口输

zhi入s值,运行

daog(s),就行

请高手看看matlab这个传递函数离散化有错么

6楼:匿名用户

延时30的:y(k)=1.902*y(k-1)-0.9048y(k-2)+0.0214*u(k-31)+0.0214*u(k-32)

延时50的:y(k)=1.982*y(k-1)-0.9825y(k-2)-0.01077*u(k-51)+0.01077*u(k-52)

离散化的时候出错了

在matlab中怎么把频域的传递函数离散化后再一个时刻加入噪声

7楼:我是开水你是茶

把传递函数离散化

dsys=c2d(sys,ts,'method');传函离散[num,den]=tfdata(dsys,'v'); 离散后提取分子分母

这里面的method有好多种,

zoh 零阶保内持, 假设控制输容入在采样周期内为常值,为默认值。

foh 一阶保持器,假设控制输入在采样周期内为线性。

tustin 采用双线性逼近。method用tustin替代matched 采用siso系统的零极点匹配法!

传递函数由matlab离散化后变成不稳定的系统,是**出了错误? 15

8楼:匿名用户

我遇到跟你一样的问题,是这样的。这是因为采样时间太小了,离散化后的传递函数有极点位于单位圆附近,系统就振荡了!

9楼:匿名用户

系统不稳定 的 有右边极点的根