已知线性系统闭环特征多项式为s^3+5s^2+(11-k)s+(6-3k-k^2 )=0 用MATLAB画出k从零到无穷时的根轨迹图

写清程序代码,最好有注释,好的话追加!

第1个回答  2012-11-21
画k为定值时的系统根轨迹图
clc
clear
k = ...; %这里你自己输入k值
num = [1,5,11-k,6-3*k-k.^2];
den = [1];
H = tf(num,den); %生成传函
rlocus(H); %画根轨迹图
如果把k从0开始到一个很大的数为止的所有根轨迹图都画出来的话,线就混在一起分不清了,要画的话,脚本如下:
clc
clear
figure
hold on
for k = 0:10:200 %这里上下限和步长自己设
num = [1,5,11-k,6-3*k-k.^2];
den = [1];
H = tf(num,den); %生成传函
rlocus(H); %画根轨迹图
end
这样就行了
第2个回答  2012-11-22
% 我认为楼上的回答是错误的。因为题中给的条件是“闭环特征多项式”,对其直接
% 求根就得到闭环特征根,而对不同k值求出的特征根连成线就是所谓的根轨迹。
% 由于闭环特征方程中的k不仅有一次项,还有二次项,所以无法通过定义等效传递
% 函数的方法画参数根轨迹,只能采用直接求根的做法。

% 设置K的范围和步长,通过比较,K取0-20基本上可以比较好的反映系统根轨迹的形状
K = 0:0.1:20;
R = zeros(length(K), 3);

% 对不同的K,求出闭环特征根,并保存到矩阵R中
for i=1:length(K)
k = K(i);
R(i, :) = roots([1, 5, 11-k, 6-3*k-k^2]).';
end

% 绘制根轨迹(先画出k=0处的极点再画k增大对应的轨迹)
plot(R([1 1],:), 'x')
hold on
plot(R)追问

谢谢,但是貌似这样绘制出的是以k为横轴,根的实部为纵轴的曲线,而不是实部为横轴,虚部为纵轴的根轨迹图,

追答

横轴肯定不是k,你没看到横坐标的范围吗?k都是值,但横坐标正负都有。
求出来的根R是复数,用plot(R)画图就是实部为横轴、虚部为纵轴的。

本回答被网友采纳