matlab 打点画Bode图

%%%主函数%%%%%

for fp=1:1:1000;
w=2*pi*fp;
s=w*i
G1=(s^2+2*s+3)/(s^3+2*s^2+3*s+4);
GM_Y11=GM(G1);
PM_Y11=PM(G1);
GM_Y11_1(fp)=GM_Y11;
PM_Y11_1(fp)=PM_Y11;
end
fc=1:1000;
figure(2)
subplot(2,1,1)
semilogx(fc,GM_Y11_1,'b','linewidth',1);hold on;
subplot(2,1,2)
semilogx(fc,PM_Y11_1,'b','linewidth',1);hold on;

%%%%%%两个子函数

function g = GM(G)
% 幅值裕度计算函数
%
% Syntax: g = GM(G)
%
% Inputs:
% G - 传递函数
%
% Outputs:
% g - 对应幅值裕度
%
absG=abs(G);
g=20*log10(absG);
function g = PM(G)
% 相位裕度计算函数
%
% Syntax: g = PM(G)
%
% Inputs:
% G - 传递函数
%
% Outputs:
% g - 对应幅值裕度
%
PM_G_1=(angle(G))*180/pi;
if PM_G_1>=200
g=PM_G_1-360;
else
if PM_G_1<=-200
g=PM_G_1+360;
else
g=PM_G_1;
end
end

G=tf([1 2 3],[1 2 3 4]);
figure(1)
bode(G);

结果比较
两种方式比较

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值