matlab的编程题

我也不知道自己做的对不对,求个答案,对一下... 我也不知道自己做的对不对,求个答案,对一下 展开
 我来答
吓栋栋
推荐于2016-11-16 · TA获得超过2832个赞
知道小有建树答主
回答量:386
采纳率:100%
帮助的人:187万
展开全部
clear
clc
%% 建立模型
g1 = tf([1 1],[1 3 2]);
g2 = tf(1,[1 5]);
g3 = tf([1 1],[1 5 6]);
h = tf(1,[1 1]);
% 内部负反馈模型
w1 = feedback(g2*g3,h);
% 总系统模型
w2 = feedback(g1*w1,1);
%% bode 奈奎斯特图 零极点分布
bode(w2)
title('bode图')
figure
nyquist(w2)
title('奈奎斯特图')
figure
pzmap(w2)
title('零极点分布')
%% 系统的阶跃响应 脉冲响应 斜坡响应
figure
step(w2)
title('阶跃响应')
figure
impulse(w2)
title('脉冲响应')
% 斜坡响应没有专门的函数可以使用,利用斜坡函数的传递函数和系统的传递函数可以构建
s = tf('s');
w3 = w2/s^2;
figure
impulse(w3)
title('斜坡响应')
%% r(t)=1+t+t^2可以看出单位阶跃,斜坡和加速函数的叠加,分配求其响应然后求和,
% 另外一种方法是使用lsim,该函数可以计算任意输入下系统的输出响应
t = linspace(0,10,500);
u = 1+t+t.^2;
y = lsim(w2,u,t);
e = u'-y;
figure
plotyy(t,y,t,e)
legend('系统响应','系统误差');
title('r(t)=1+t+t^2')

 我觉得这道题使用MATLAB编程的话比较复杂,还是建议用simulink搭建,比较方便。

ps:这个也是我自己做的,你可以参考一下。有什么问题欢迎追问。

追问
有追问,在第一张图下面,字发不出来,只能截图了
追答
clear
clc
%% 建立模型
g1 = tf([1 1],[1 3 2]);
g2 = tf(1,[1 5]);
g3 = tf([1 1],[1 5 6]);
h = tf(1,[1 1]);
% 内部负反馈模型
w1 = feedback(g2*g3,h);

我的代码写的很清楚,你的那种feedback的调用形式我没用过不知道行不行,建议你还是用我的调用形式去做。我的是最常用的调用形式是不会错的。

钺联昱M
2014-09-27 · TA获得超过706个赞
知道小有建树答主
回答量:1789
采纳率:33%
帮助的人:888万
展开全部
bode是伯特图 nyquist是奈奎斯特曲线
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式