24小时热门版块排行榜    

查看: 1081  |  回复: 8
当前主题已经存档。
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

idnk

金虫 (小有名气)

[交流] 【求助】如何用matlab将一个传递函数离散化成可以用c语言编程实现的形式??

例如G(S)=(S^2+3*S+1)/(S^2+5*S+1),怎样用matlab将其离散化,求出参数,然后用c语言编程实现。
我知道函数c2d,但应该怎样使用呢?c2d中的离散化方法参数应该怎样选呢?
回复此楼

» 猜你喜欢

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

idnk

金虫 (小有名气)

不知道我的意思有没有表达清楚,我是想传递函数离散化之后得到离散化的参数,然后就可以用这个参数在c语言中实现这个传递函数了。。。我的想法对吗?
5楼2009-05-19 20:56:27
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 9 个回答

sitonyl

铁杆木虫 (文坛精英)

★ ★ ★
sunxiao(金币+3,VIP+0):谢谢参与,欢迎常来仿真编程版 5-20 02:23
sysd = c2d(sysc,ts,method)

sysc为连续系统,对于你的例子中的传递函数,可以取为
sysc=tf([1 3 1],[1 5 1])

ts为离散化周期(或采样周期),根据自己的实际应用情况确定
method是离散化方法,可以根据需要选择下面一种
'zoh','foh','imp','tustin','prewarp'
zz
2楼2009-05-19 20:24:09
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

idnk

金虫 (小有名气)

我的问题就是method应该怎么选??????
3楼2009-05-19 20:36:10
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

sitonyl

铁杆木虫 (文坛精英)

★ ★
sunxiao(金币+2,VIP+0):谢谢参与,欢迎常来仿真编程版 5-20 02:24
引用回帖:
Originally posted by idnk at 2009-5-19 20:36:
我的问题就是method应该怎么选??????

最简单的就是用'zoh',也就是零阶保持。一般的用'tustin'多一些,也就是常说的双线性方法。不过,这些都是利用了matlab工具箱中给出的函数,如果你要在C语言中使用的话还是比较麻烦的,需要查找具体的算法。
zz
4楼2009-05-19 20:42:45
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通表情 高级回复 (可上传附件)
信息提示
请填处理意见