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

Matlab 实现控制系统模型连接

(2012-10-29 15:40:31)
标签:

信号系统

连接

反馈

串联

并联

分类: 信号处理

1.串联连接

http://s8/middle/84024a4a4cd2dc87d09e7&690

例1:

n1=[0.5 1];
d1=[0.1 1];
n2=[10];
d2=[1 2 0];
sys1=tf(n1,d1);
sys2=tf(n2,d2);
syso=series(sys1,sys2);

2.并联连接

http://s10/middle/84024a4a07aeafa746729&690

例2:

n1=[2];
d1=[1 2];
n2=[5];
d2=[1 3];
sys1=tf(n1,d1);
sys2=tf(n2,d2);
sys=parallel(sys1,sys2)

sys =
    7 s + 16
  -------------
  s^2 + 5 s + 6
Continuous-time transfer function.

3.反馈连接

http://s14/middle/84024a4a4cd2dc890388d&690

例3:

http://s9/middle/84024a4a4cd2dc8942188&690

4.单位反馈连接

即例3中的H为常数,一般为-1。

(1)利用cloop函数

>> numg = [1 2];
>> deng = [1 10 1];
>> [num den] = cloop(numg,deng,-1)

num =

           2

den =

       11     3

>> [num den] = cloop(numg,deng,1)

num =

           2

den =

          -1

说明:后面的常数只能是1或者-1,如果是其他的数,只记正负

>> [num den] = cloop(numg,deng,-2)

num =

           2

den =

       11     3

可以看出,与-1的结果是相同的

(2)利用feedback函数

>> numg = [1 2];
>> deng = [1 10 1];

>> G = tf(numg,deng)

G =
      s + 2
  --------------
  s^2 + 10 s + 1
Continuous-time transfer function.

>> cloop1 = feedback(G,1)

cloop1 =
      s + 2
  --------------
  s^2 + 11 s + 3
Continuous-time transfer function.

>> cloop1 = feedback(G,2)

cloop1 =
      s + 2
  --------------
  s^2 + 12 s + 5
Continuous-time transfer function.

>> cloop1 = feedback(G,1,1)

cloop1 =
      s + 2
  -------------
  s^2 + 9 s - 1
Continuous-time transfer function.

>> [numf,denf] = feedback(G,1,-1)

numf =
      s + 2
  --------------
  s^2 + 11 s + 3
Continuous-time transfer function.

denf =

     0

>> [numf,denf] = feedback(G,1,1)

numf =
      s + 2
  -------------
  s^2 + 9 s - 1

>> [numf,denf] = feedback(G,2,-1)

numf =
      s + 2
  --------------
  s^2 + 12 s + 5

说明:可以进行常数的反馈连接,但是不支持num,den格式,即输入和输出都是系统,要获得num和den需要调用响应的tfdata等函数。

(3)改写传递函数利用feedback函数求解

这是一种方法,实测可行。

num1 = [1]

den1 = [1]

sys1 = tf(num,den)

sys2 = tf(num1,den1)

feedback(sys1,sys2,-1)

ans =

 

       s + 0.4

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

  s^2 - 0.6 s + 1.2

 

Continuous-time transfer function.

>> [num3,den3] = feedback(num,den,num1,den1,-1)


num3 =


         0    1.0000    0.4000



den3 =


    1.0000   -0.6000    1.2000

0

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

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

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

新浪公司 版权所有