matlab关于传递函数的问题

R = 5.3 /(s^3 + 5.3 s^2 + 4.24 s + 1.696)
用matlab怎么求它的频率响应,增益裕度,相角裕度,求详解

第1个回答  2014-05-22
简单写了个例子,代码如下(已作为附件上传):
function zd579285021% 传递函数分子、分母输入框uicontrol('style','text','units','normal', 'fontsize',9, ... 'pos',[0.8 0.85 0.18 0.05], 'str', '传函分子多项式系数');h.num = uicontrol('style','edit','units','normal', ... 'pos',[0.8 0.8 0.18 0.05], 'back', 'w', 'str', '1');uicontrol('style','text','units','normal', 'fontsize',9, ... 'pos',[0.8 0.65 0.18 0.05], 'str', '传函分母多项式系数');h.den = uicontrol('style','edit','units','normal', ... 'pos',[0.8 0.6 0.18 0.05], 'back', 'w', 'str', '[1 1 1]');% 绘图坐标系h.ax = axes('units','normal','pos',[0.1 0.1 0.65 0.85]);% 利用UserData传递句柄信息set(gcf, 'UserData', h);uicontrol('style','push','units','normal', 'fontsize', 9, ... 'pos',[0.8 0.3 0.18 0.08], 'str', '阶跃响应', 'call', @stepresp);function stepresp(varargin)% 按钮的回调函数% 获取输入信息h = get(gcf, 'UserData');try num = str2num( get(h.num,'str') ); den = str2num( get(h.den,'str') );catch errordlg(lasterr) returnend% 求阶跃响应sys = tf(num, den);[y, t] = step(sys);% 绘制阶跃响应曲线axes(h.ax);plot(t,y);
把代码保存到一个M文件中(或者直接下载附件)运行即可,效果图如下:

希望对楼主有帮助,如有问题请追问,满意望采纳。

满意请采纳。追问

亲,别随便找点东西复制过来好不

相似回答