Matlab sisotool稳态错误

时间:2014-04-26 21:26:34

标签: matlab controller

我正在尝试使用sisotool为飞行控制类设计控制器。 G=1/((s+0.1)(s+0.5))H=1/(s+1)。稳态误差必须为0,上升时间必须<0。 10秒,并且最大过冲必须<&lt; 10%。所以我把它设置如下:

% 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,但我认为我们不应该这样做。

1 个答案:

答案 0 :(得分:0)

您正在将传感器(H)指定为积分器。这是非常不寻常的,并且就其性质而言,在稳定状态下,输出y的值必须为0.

除非F也是一个积分器,否则你永远不会让它跟踪一个步骤。 然而,在这种情况下,你的两个信号将集成到无穷大,这可能在模拟中起作用,但不能在任何实际系统中完成。

当然,仔细比较你的H应该是什么以及你在代码中实际拥有的文字描述,也会克服这个问题。