所有你需要使用的是dcgain
功能推斷出穩態值是每一次轉換成你的狀態空間模型的輸入/輸出關係,其等效傳遞函數。計算階躍響應時,直流增益本質上取極限爲s->0
。但是,雖然並不需要繪製階躍響應,但通過圖形驗證dcgain
能夠爲您提供正確的結果可能很有用。在這種情況下,請使用step
。它發現線性動力系統的階躍響應,包括狀態空間模型。在你的情況下,一旦你轉換爲tf
對象,你將不得不調整你的傳輸函數0.0175,然後調用step
以及dcgain
。
我也將您的最後一個變量重命名爲T
,因爲tf
是一個實際的函數,但您會用變量tf
掩蓋該函數。
簡單地說:
%// Your code
clear all; clc;
A=[ 0.00501 0.00464 -72.90 -31.34;
-0.08570 -0.545 309 -7.4;
0.00185 -0.00767 -0.395 0.00132;
0 0 1 0];
B=[5.63 -23.8 -4.51576 0]'; %'
C=[1 0 0 0;
0 1 0 0;
0 0 1 0;
0 0 0 1];
D=0;
sys=ss(A,B,C,D);
T=0.0175*tf(sys); %// Change
%// New - find the step response
[y,t] = step(T);
%// Plot the step response
plot(t, y);
legend('x1', 'x2', 'x3', 'x4');
%// Determine the steady-state values
format long g;
ss_values = dcgain(T);
disp(ss_values);
我得到這些對我的穩態值:
>> ss_values
ss_values =
23.7245028635498
-4.57981861496758
0
0.00625827699339293
我也得到這個情節:
ŧ他的穩態值或多或少與我們在劇情中看到的一致。
謝謝!這可以幫助我很多:) –
@JurriënPlijtergraag gedaan。祝你好運! – rayryeng
也許這會有助於說明爲什麼用'0.0175'而不是'0.0175/s'來增加輸入,特別是當使用'dcgain'時('step'不言自明)。 – IKavanagh