如何使用Matlab将区间系数的多面体映射到多项式中?

3
这里有一个在s域内的区间多项式,其s项系数在特定域中定义。

enter image description here

如何在存在这些区间的情况下,映射多项式中的区间系数的多面体?以下是一张图,但是具体怎么做呢?

enter image description here


你希望输出看起来像什么?我认为这将在 rlocus 图中产生一个曲面或多条线。 - Daniel
好的,输出现在很清晰了,最后一个问题。这是您传输函数的预期输出还是一些随机示例?如果是后者,您也有传输函数吗? - Daniel
这是系统的区间特征多项式(T = G /(G + 1)),上述多项式= T 的(G + 1)部分。不幸的是,我没有 G。 - lahidj
3
我认为这个情节涉及到这个区间多项式的根。最好将其根可视化。有关绘制这些根的建议吗? - salam
我认为salam是正确的。 - Thomas
2个回答

2

假设您有一个单输入多输出(SIMO)系统,其中您问题中的括号表示两个传递函数,则需要单独为每个输出绘制根轨迹。

首先创建整个传递函数:

>> s = tf('s');
>> H = [0.07;0.09]*s^4 + [0.45;0.94]*s^3 + [1.1;1.5]*s^2 + [0.887;1.487]*s +0.3

H =

  From input to output...
   1:  0.07 s^4 + 0.45 s^3 + 1.1 s^2 + 0.887 s + 0.3

   2:  0.09 s^4 + 0.94 s^3 + 1.5 s^2 + 1.487 s + 0.3

Continuous-time transfer function.

您可以使用rlocus单独绘制它们:

figure;
subplot(1,2,1);
rlocus(H(1)); title('output 1');
subplot(1,2,2);
rlocus(H(2)); title('output 2');

result


你需要对由系数区间定义的4D盒子的所有64个边执行类似的操作,才能得到问题中的图像。-- 你的同伦路径沿着该盒子的主对角线。 - Lutz Lehmann

2

如果您绘制区间多项式的根:

e = 0.3;
for a = 0.07 : 0.09 : 0.09
    for b = 0.45:0.09:0.49;
        for c = 1.1:0.09:1.5;
            for d = 0.887:0.09:1.487
Roots = roots([a b c d e])
plot(Roots,'s')
hold on
            end
        end
    end
end
grid;

根图:

enter image description here

类似于您想要的3D,但并非3D。

我在映射系数的多面体时看到了这个3D形式:

enter image description here


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接