[已解决] 复杂传递函数画bode图一直出错,求教!

[复制链接]
youa_ 发表于 2022-1-12 17:07:02
本帖最后由 youa_ 于 2022-1-12 17:10 编辑

问题简述:要画bode图的传递函数由不同的多项式G1、G2、G3表示,-G2/(G1*s^2+G2),但是一直出错

代码如下:
% 参数设置
f_w0 = 500*1;
f_wc = 50*1;
w0 = f_w0 * 2 * pi;
wc = f_wc * 2 *pi;
b0=3*w0;
b1=3*w0*w0;
b2=w0*w0*w0;
kp=wc*wc;
kd=2*wc;
Td=0.005;
r=0.5;

% 传递函数
lamda=[1 b0 b1 b2];
s=tf('s');
G1=s^3+(b0+kd)*s^2+(b1+kd*b0+kp)*s;
G2=(kp+s*kd)*lamda-(kd*s^4+(kd*b0+kp)*s^3-b2*s^2);
G3=lamda*kp;
ntf=-G2/(G1*s^2+G2);
bode(ntf)


运行之后,在‘ntf=-G2/(G1*s^2+G2);’这一句出现‘错误使用  /  (line 65)  In "SYS1/SYS2", the model SYS2 must have the same number of inputs as outputs.’
这种情况有人遇见过吗?求解答,或者有没有其他可以实现复杂传函求bode图的方法??

错误.png

最佳答案


WarnerChang 发表于 2022-1-12 19:28:29
youa_ 发表于 2022-1-12 19:17
可是这个出错是在bode指令上一行啊?删掉bode指令,还是会有相同的报错

对啊!!!
matlab中就没有这种写法,所以叫你看看bode函数的帮助文档啊,你就知道想要画bode图该怎么写了

4 条回复


WarnerChang 发表于 2022-1-12 18:50:31
你这bode函数的用法不对,看看帮助文档

youa_ 发表于 2022-1-12 19:17:45
WarnerChang 发表于 2022-1-12 18:50
你这bode函数的用法不对,看看帮助文档

可是这个出错是在bode指令上一行啊?删掉bode指令,还是会有相同的报错

WarnerChang 发表于 2022-1-12 19:28:29
youa_ 发表于 2022-1-12 19:17
可是这个出错是在bode指令上一行啊?删掉bode指令,还是会有相同的报错

对啊!!!
matlab中就没有这种写法,所以叫你看看bode函数的帮助文档啊,你就知道想要画bode图该怎么写了
回复此楼

youa_ 发表于 2022-1-14 22:27:10
WarnerChang 发表于 2022-1-12 19:28
对啊!!!
matlab中就没有这种写法,所以叫你看看bode函数的帮助文档啊,你就知道想要画bode图该怎么写 ...

:'(噢噢 这就去 感谢~
您需要登录后才可以回帖 登录 | 注册

本版积分规则

相关帖子
相关文章
热门教程
站长推荐
快速回复 返回顶部 返回列表