2014-04-26 27 views
1

我正在嘗試使用sisotool爲飛行控制類設計一個控制器。 G=1/((s+0.1)(s+0.5))H=1/(s+1)。穩態誤差必須爲0,上升時間必須爲< 10秒,並且最大過沖量必須爲< 10%。所以我設置如下:Matlab sisotool穩態錯誤

% set up dynamic 
gNum = [1]; 
gDen = conv([1 .1],[1 .5]); 
G = tf(gNum,gDen) 

% set up sensor 
hNum = [1]; 
hDen = [1 0]; 
H = tf(hNum,hDen) 

% find poles 
poles = roots(conv(gDen,hDen)) 

% plot 
sisotool(G,1,H,1) 

我鬆散地調整增益,使其穩定。所以現在我得到了C = 0.00445。我拉起階躍響應圖,看到我的最終值爲0,我需要它在1.我已經擺弄着添加和調整實際的極點和積分器,但沒有任何移動最終值。我相信我可以得到上升時間和過沖參數,但我不知道如何將最終值設爲1.第二個問題是賦值爲10.我知道我可以將F = 0.1設置爲把那個降到1,但我認爲我們不應該那樣做。

回答

0

您在指定傳感器(H)作爲集成器。這是非常不尋常的,從本質上講,在穩定狀態下,輸出y的值必須爲0.

除非F也是集成者,否則永遠不會得到它來跟蹤一個步驟。 然而,在這種情況下,你的兩個信號將集成到無窮大,這可能在仿真中起作用,但不能在任何實際系統中完成。

當然,仔細比較你的文字描述H應該是什麼,以及你在代碼中實際擁有什麼,也會克服這個問題。