【问题标题】:Plotting a transfer function in a range of values giving error of plot Not enough input arguments在给出绘图误差的值范围内绘制传递函数 输入参数不足
【发布时间】:2018-08-04 07:03:41
【问题描述】:

我需要查看kc 的哪个值系统是稳定的和不稳定的。

系统具有如下传递函数:

(-2Kc)/(s^4+3s^3+4s^2+3s+(1-2kc) )

经过计算,为了使这个系统稳定,kc 应该在这个值范围内:

-1

我正在使用 matlab,并添加了以下内容来绘制从 -2 到 1 的每个 Kc 值的传递函数响应,步长为 0.1:

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 函数但得到了同样的错误。

【问题讨论】:

    标签: matlab


    【解决方案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
    

    【讨论】:

    • 谢谢先生..我会直接尝试。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-13
    • 1970-01-01
    • 1970-01-01
    • 2013-06-20
    • 1970-01-01
    相关资源
    最近更新 更多