我需要查看系统在哪个kc
值上稳定和不稳定。
系统具有以下传递函数:
(-2Kc)/(s^4+3s^3+4s^2+3s+(1-2kc) )
计算后,为了使该系统稳定,kc应在以下值范围内:
-1
我正在使用matlab,并添加了以下内容以0.1的步长绘制从-2到1的每个Kc值的传递函数响应:
syms s kc;
t=(-2*kc)/(s^4+3*s^3+4*s^2+3*s+1-2*kc);
kc=-2:0.1:1;
plot(t)
我遇到以下错误:
使用绘图数据时出错,数据必须是数字,日期时间,持续时间或数组 可转换为两倍。
使用图时出错。输入参数不足。
我尝试进行step
功能,但遇到相同的错误。
答案 0 :(得分:1)
错误消息表明t
不是数字数组。 t
是一个符号对象; plot
函数对符号对象一无所知,并且无法正确处理它们。第二个问题是kc
变量定义
kc=-2:0.1:1;
无效,因为它不影响符号对象t
的内容。
有一个函数ezplot
,用于绘制符号对象。另外,您需要一个循环:
syms s
for kc=-2:0.1:1;
t=(-2*kc)/(s^4+3*s^3+4*s^2+3*s+1-2*kc);
ezplot(t);
hold on;
end
为了绘制阶跃响应,可以使用控制系统工具箱:
for kc=-2:0.25:1;
h = tf(-2*kc,[1 3 4 3 1-2*kc]);
step(h,10);
hold on;
end