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

先讲一下怎么画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剪切频率
  • 37
    点赞
  • 236
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值