1

コマンドを使用して変換しようとしましたss2tfが、このコマンドの構文はシステムの入力数を入力する場所を示していますが、出力数は示していません。それにもかかわらず、私は行列伝達関数を取得しようとしました

[num,den]=ss2tf(Ac,Bc,Cc,Dc,4)ここで、「4」は入力の数です。

その結果、ベクトル「num」の次元は 4x9 で、私のベクトル「den」の次元は 1x9 であるため、次の使用でエラーが発生しました。

F=tf(num,den)

"den" も 4x9 の寸法を持つ必要があるためです。

それで、状態空間から伝達関数を取得する別の方法はありますか(入力と出力の数を含めるオプションを使用して)??

obs: Ac、Bc、Cc、Dc の寸法はそれぞれ 8x8 です。8x4、4x8、4x4。

編集:それを解決する方法を考え出しました。下に答えがあります。

4

4 に答える 4

3

これが私がそれを行う方法です。コードは自明です。

clear all;
close all;
clc;

% Generate random state-space system
sys = rss(2,2,2);

%% Generate transfer function matrix with Matlab tf
% For each output
for i = 1:size(sys,1)

    % For each input
    for j = 1:size(sys,2)

        % Get SISO transfer function
        [num,den] = ss2tf(sys(i,j).A,sys(i,j).B,sys(i,j).C,sys(i,j).D);

        % Compute tf
        Gtf(i,j) = tf(num,den);
    end
end

%% Generate transfer function matrix symbolic
% Laplace variable
s = sym('s');

% For each output
for i = 1:size(sys,1)

    % For each input
    for j = 1:size(sys,2)

        % Get SISO transfer function
        [num,den] = ss2tf(sys(i,j).A,sys(i,j).B,sys(i,j).C,sys(i,j).D);

        % Compute tf
        Gsym(i,j) = poly2sym(num,s);
    end
end

% Den is the same for all elements
Gsym = Gsym / poly2sym(den,s);

% Numeric vectors is transformed to symbolic vector, to make everything
% readable change the variable precision arithmetic to 4 digits for output
pretty(vpa(Gsym,4))

-編集- Matlab にこの機能が関数ss2tf自体に組み込まれていないことに、実際には少し驚いていると言わざるを得ません。

于 2016-03-24T08:55:33.177 に答える
1

システムにp入力とq出力がある場合、伝達関数行列G(s)にはp行とq列があります。の各要素 pqG(s)は、entriepと outputに関する SISO 伝達関数qです。

nをシステム順序とします。したがって、 with と入力すると、 with dimensionとwith dimension[b,a] = ss2tf(A,B,C,D,1)が取得されます。の要素 1x1 を取得するには、 の最初の行とベクトルから SISO 伝達関数を取得する必要があります。同様に、要素 1x2 の場合、 の 2 行目と ベクトルから伝達関数を取得する必要があります。のすべての行を使用して伝達関数を取得すると、 の最初の行が得られます。bqx(n+1)a1x(n+1)G(s)bababG(s)

他の行については、入力する必要があります[b,a] = ss2tf(A,B,C,D,2)(そして、すべての SISO 伝達関数を再度取得する必要があります) [b,a] = ss2tf(A,B,C,D,3)

最後に、行列連結を使用して、次のG(s)ような のコンパクトな形式を取得します。

G_s=[g11 g12 g13 ... g1q;g21 g22 ..g2q; ....;gp1 gp2 .. gpq]

于 2016-03-23T22:47:38.017 に答える