matlab程序求解闭环系统谐振频率Wr、谐振峰值Mr、幅频带宽、相频带宽

matlab程序求解闭环系统谐振频率Wr、谐振峰值Mr、幅频带宽、相频带宽

本程序使用matlab脚本分析闭环系统的频率特性,画出系统的幅频特性和相频特性曲线,即闭环伯德图。并直接得出该闭环系统的频率特性指标用来分析系统的稳定性。可以得到的指标有:谐振频率Wr、谐振峰值Mr、幅频带宽、相频带宽

该闭环系统开环传递函数为

在这里插入图片描述

主程序脚本

num1=[1];
den1=[1/112^2 2*0.6/112 1];
G1=tf(num1,den1);
num2=[1];
den2=[1/60.5^2 2*0.2/60.5 1 0];
G2=tf(num2,den2);
num3=[1/2.5 1];
den3=[1/0.25 1];
G3=tf(num3,den3);
G_open = 100*G1*G2*G3;
G_close = feedback(G_open,1);
[Gm,Pm,Wcg,Wcp]=margin(G_open);%求解开环幅值裕度、相位裕度、穿越频率
bode(G_close);
[Mr,Wr,Wr_3db,Wr_9db] = mr(G_close);
fprintf('幅值裕度:%f\n相位裕度:%f\n穿越频率:%f\n相角交界频率:%f\n',Gm,Pm,Wcp,Wcg);
fprintf('谐振幅值:%f\n谐振频率:%f\n幅频带宽:%f\n相频带宽:%f\n',Mr,Wr,Wr_3db,Wr_9db);
grid on;

被调求解函数mr()

function [ Mr,Wr,Wr_3db,Wr_9db] = mr(G_close)
% 求解系统闭环谐振幅值Mr、谐振频率Wr
    [mag,phase,w] = bode(G_close);
    c = size(mag,3);
    mag1 = zeros(c,1);
    for i=1:c
        mag1(i) = 20*log10(mag(1,1,i));%得到每个点的幅值
    end
    [M,i] = max(mag1);%得到最大幅值及对应频率
    %显示谐振幅值和谐振频率
    Mr = M;
    Wr = w(i);   
    %显示-3dB截止频率
    Wr_3db = interp1(mag1,w,-3,'Newton');%插值法求解
    c = size(phase,3);
    pha1 = zeros(c,1);
    for i=1:c
        pha1(i) = phase(1,1,i);%得到每一个点的频率
    end
    Wr_9db = interp1(pha1,w,-90,'Newton');%插值法求解
end

-------------------------------------------------欢迎使用并优化-----------------------------------------------------------------------

程序运行结果如下所示:

伯德图
幅值裕度:2.160824
相位裕度:67.407345
穿越频率:10.595368
相角交界频率:51.852456
谐振幅值:1.239164
谐振频率:3.850372
幅频带宽:15.555650
相频带宽:24.775171

欢迎私信交流~
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值