blk2tf.m

来自「基于MATLAB的辅助设计 简述了矩阵分析的重要性」· M 代码 · 共 47 行

M
47
字号
function [num,den] = blk2tf(a,b,c,d,rec,nodi,nodo)
%
% BLK2TF is a function which generate a tranferfunction of
% a matrix with paths, input and outputnodes with useing
% the Matlabs functions connect and append. 

%    Author:  Ole Barup Sorensen, Rapid Data Ltd 

%    Copyright (c) 1989-94 by Rapid Data Ltd
%    Revision 10:36  07/02/94

[nblocks,db] = size(rec);

[am1,bm1,cm1,dm1] = tf2ss(1,1);
[a,b,c,d] = append(a,b,c,d,am1,bm1,cm1,dm1);
rec(nblocks+1,1) = 1000;
rec(nblocks+1,2) = nodi;
rec(nblocks+2,1) = nodo;
rec(nblocks+2,2) = 1001;
nblocks = nblocks+2;
[a,b,c,d] = append(a,b,c,d,am1,bm1,cm1,dm1);
nodi = 1000;
nodo = 1001;
if exist('q'), clear q, end
for i =1:nblocks
   i0 =1;
   q(i,1) = i;
   for j =1:nblocks
	if rec(j,2) == rec(i,1)
	   i0 = i0 + 1;
	   q(i,i0) = j;
	end
   end
end
for i= 1:nblocks
   if rec(i,1) == nodi
	iu = i;
   end
   if rec(i,2) == nodo
	iy = i;
   end
end
[am,bm,cm,dm] = connect(a,b,c,d,q,iu,iy);
[am,bm,cm,dm] = minreal(am,bm,cm,dm);
[num,den] = ss2tf(am,bm,cm,dm,1);

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?