Matlab 绘制 Bode图 和 求相角裕度,幅值裕度,剪切频率和穿越频率

您所在的位置:网站首页 伯德图计算幅值裕度 Matlab 绘制 Bode图 和 求相角裕度,幅值裕度,剪切频率和穿越频率

Matlab 绘制 Bode图 和 求相角裕度,幅值裕度,剪切频率和穿越频率

2024-07-16 23:24| 来源: 网络整理| 查看: 265

先讲一下怎么画bode图,几个参数的求解放在后面。

一、拿一个比较常见的形式举例子

12345678%[]里放s降幂排列对应的系数,没有的项就写0 num = 5*[0.1 1];%分子的系数 f1 = [1 0];%分母第一个,对应s f2 = [0.1 1];%分母第二项,对应0.1s+1 f3 = [1 2 4];%分母第三项,对应s^2+2s+4 %conv的用处是把他们求成多项式的形式 den = conv(f1,conv(f2,f3));%求多项式,因为conv的参数只能有俩,所以嵌套了一个conv sys = tf(num,den);

tf函数是就是求传递函数,放到这里就是画bode图。 也许有人对conv不理解,举个例子。

1234f1=[1 2]; f2=[2 1]; den=conv(f1,f2); disp(den)

f1是s+2 ,f2是2s+1。他俩相乘就是2s^2+5s+2。叫法是卷积运算,在这里其实就是把一个个()相乘的形式改成多项式的形式。

再举几个例子加深印象

1.分子只有常数

12345678%[]里放s降幂排列对应的系数,没有的项就写0 num = 5;%分子的系数 f1 = [1 0];%分母第一个,对应s f2 = [0.1 1];%分母第二项,对应0.1s+1 f3 = [1 2 4];%分母第三项,对应s^2+2s+4 %conv的用处是把他们求成多项式的形式 den = conv(f1,conv(f2,f3));%求多项式,因为conv的参数只能有俩,所以嵌套了一个conv sys = tf(num,den);

2.分子有两个相乘项

12345678910%[]里放s降幂排列对应的系数,没有的项就写0 num1 = 5*[1 1];%分子第一个 num2 = [1 2];%分子第一个 num=conv(num1,num2); f1 = [1 0];%分母第一个,对应s f2 = [0.1 1];%分母第二项,对应0.1s+1 f3 = [1 2 4];%分母第三项,对应s^2+2s+4 %conv的用处是把他们求成多项式的形式 den = conv(f1,conv(f2,f3));%求多项式,因为conv的参数只能有俩,所以嵌套了一个conv sys = tf(num,den);

二、求相角裕度,幅值裕度,剪切频率和穿越频率

其实就是一个函数 margin 下面是该函数的两种用法,一个是直接在图上画出来,另一个是导到参数里面。

1234567891011num = 5;%分子的系数 f1 = [1 0];%分母第一个,对应s f2 = [0.1 1];%分母第二项,对应0.1s+1 f3 = [1 2 4];%分母第三项,对应s^2+2s+4 %conv的用处是把他们求成多项式的形式 den = conv(f1,conv(f2,f3));%求多项式,因为conv的参数只能有俩,所以嵌套了一个conv sys = tf(num,den); %画出所有参数 margin(sys); %不画,直接给参数赋值出来 %[Gm,Pm,Wcg,Wcp] = margin(sys);%Gm幅值裕度 Pm相角裕度 Wcg穿越频率 Wcp剪切频率



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3