先讲一下怎么画bode图,几个参数的求解放在后面。
一、拿一个比较常见的形式举例子
%[]里放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不理解,举个例子。
f1=[1 2];
f2=[2 1];
den=conv(f1,f2);
disp(den)
f1是s+2 ,f2是2s+1。他俩相乘就是2s^2+5s+2。叫法是卷积运算,在这里其实就是把一个个()相乘的形式改成多项式的形式。
再举几个例子加深印象
1.分子只有常数
%[]里放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.分子有两个相乘项
%[]里放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
下面是该函数的两种用法,一个是直接在图上画出来,另一个是导到参数里面。
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);
%画出所有参数
margin(sys);
%不画,直接给参数赋值出来
%[Gm,Pm,Wcg,Wcp] = margin(sys);%Gm幅值裕度 Pm相角裕度 Wcg穿越频率 Wcp剪切频率