mdsk.net
当前位置:首页 >> BoDE图的mAtlAB程序 >>

BoDE图的mAtlAB程序

直接bode(sys)就可以了啊.比如:num=[1 3 5];den=[2 5 7 8 3]; sys=tf(num,den); bode(sys);grid on;

clear all;clc;s=tf('s');g0=传递函数figure;margin(g0);grid on;

function H=f_bode(a,eta,b,gamma,w,Gc)%分数阶线性系统的bode图程序%a,b,eta,gamma均为整数,w实值矢量,Gc权重,输出H是frd模型,例如:%a=3;b=1;eta=3;gamma=2;freq = logspace(1,2);w = 0.05*(freq);f_bode(a,eta,b,gamma,w)%a=3;

不要figuer也不要subplot在每画一个图后加一句:hold on %保存当前得图在程序结束加上:hold off………………hold onsemilogx(f,m)hold onsemilogx(f,p) hold off

clear all %卸载变量 clc %清屏幕 s=tf('s') G=26/(s*(s+5)*(s^2/79^2+s*0.4/79+1));%构造开环传函 sys=feedback(G,1);%单位负反馈下的闭环传函 bode(sys);%画闭环伯德图---------------------------------------分割线 上面的程序是按照反馈是单位负反馈的形式写的,如果你的反馈式子比较复杂只需改一下feedback函数即可 G= feedback(G1,G2,sign) G1是前向,G2是反馈.sign=-1或缺省是负反馈, sign=1是正反馈.我写的程序是matlab6.5的.

[x,y]=bode(sys)就可以求出的

只要知道传函就可以绘制bode图了.用bode(g)就行了.eg.g = tf([1 0.1 7.5],[1 0.12 9 0 0]);bode(g)直接运行就可以了.最后,这与开环闭环没有关系.

w=logspace(-1,1,32); %w范围和点数ngw=10./((i*w).^2+2*(i*w)+10);% 计算模值mag=abs(gw);l=20*log(mag); % 模取对数semilogx(w,l); % 半对数作图grid on% 5 画网格线

1、打开Matlab软件的SimulinkLibrary;如图所示:2、按FileNewModel,建立新的Model界面3、绘出传递函数,其中,输入输出点,采用Inport和Outport即可4、按如下路径点击AnalysisControlDesignLinearAnalysis…5、弹出如下界面:6、在AnalysisI/Os中选择“Rootlevelinportsandoutports”7、在PlotResult中选“NewBode”,执行Linearize,即可得到:

%G(s)=10/s(0.5s+1)(0.1s+1) H=tf([10],[0.05 0.6 0.1 0]); bode(H)

90858.net | xyjl.net | nnpc.net | dfkt.net | acpcw.com | 网站首页 | 网站地图
All rights reserved Powered by www.mdsk.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com