加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

使用Matlab辅助计算朱利判据

(2007-11-13 21:26:29)
标签:

杂谈

分类: 数字信号处理(DSP)

在11月7日的日志中,我们已经了解了如何用朱利判据(Jury Test)来研判一个线性离散时间(LDT)系统是否具有BIBO稳定性。

显然,以人工的计算方式来得到朱利判据的各个因子a0,b0,c0...是很费事的,也很容易出错。因此,我们可以考虑使用Matlab来辅助计算这些因子,并进行相应的研判。

参考11月7日的日志,通过观察可知:因子a0,b0,c0...的计算大部分是行列式运算,对应Matlab语言中的det()函数;另外,计算的过程中总是不可回避地要使用代数表达式,因此可以考虑Matlab的符号计算功能。

1.首先开列出因子a0,b0,c0…的计算函数(以三维的JuryTable为例),这是朱利判据的核心计算部分:

function V = JuryTableD3(a0, a1, a2)

b0 = 1/a0*det([a0,a2;a2,a0]);

b1 = 1/a0*det([a0,a1;a2,a1]);

c0 = 1/b0*det([b0,b1;b1,b0]);

V{1,1} = a0;

V{2,1} = b0;

V{3,1} = c0;

注意:在输出矢量V中,之所以要使用大括号”{}”,是因为得到的结果a0,b0,c0都是符号变量,需要使用单位矩阵V进行赋值传递。

2.接下来便是如何应用了,仍以11月7日的日志那个问题为样例,设定某离散系统的传递函数为

                                                   http://tkfiles.storage.live.com/y1pE-ma8e12AFIvWoCipsxrOj-2TdMF2uZ28N_Dnq06brhn6ba24D8o0nDuwCOgl88xEpy-UtZhx6U

我们只对分母多项式的第二项,即:

                                                                http://tkfiles.storage.live.com/y1pE-ma8e12AFJumSO9Yl4HZ-aYOmHuaoCw0NyBPHqSP8mEcOjvrAtTPYTjBG7HTAkSf74wkpzy2KM       

进行分析,这时,对应的a0 = 1, a1 = -1, a2 = a;

于是,利用JuryTableD3函数计算a0,b0,c0,则有:

>> syms a

>> a0 = 1;

>> a1 = -1;

>> a2 = a;

>> V = JuryTableD3(a0,a1,a2)

V =

     1]

[1x1 sym]

[1x1 sym]

此时,输出矢量V中已经包含了a0,b0,c0。为了计算a0>0,b0>0,c0>0,我们使用Maple接口计算不等式:

>> a0 = V{1,1}

a0 =

1

>> b0 = V{2,1}

b0 =

1-a^2

>> c0 = V{3,1}

c0 =

1/(1-a^2)*(-3*a^2+a^4+2*a)

>> maple('solve({1>0,1-a^2>0,1/(1-a^2)*(-3*a^2+a^4+2*a)>0}),a')

ans =

{0 < a, a < 1}, a

所以,当0<a<1时,该系统就是BIBO稳定的。

http://blufiles.storage.live.com/y1pg18SsirYr4FvMyXfU-W_ZRFxR5QkUWndaePZe0sOvSaIYvpWCC_mQdIBJ4sHaX1Xy41ndxC-Fg0 http://blufiles.storage.live.com/y1phQzJKD6dRuq9W_GidlNwmQKsMPS3YGGiCNQx2gWpUoZ5F-mvPXQqax-WDRlfrypA7NtZD0opyyY

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有