求助matlab高手帮忙
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了求助matlab高手帮忙相关的知识,希望对你有一定的参考价值。
仿真时一直出现这个错误:原传递函数:
Transfer function:
4
---------
s^2 + 2 s
校正装置的传递函数:
Warning: Divide by zero.
> In cqjz at 7
In cqjz_root at 14
Warning: Divide by zero.
> In cqjz at 13
In cqjz_root at 14
Transfer function:
NaN
%%%%%%%%%%%%%%%%%%%%%
clear all
num=4;
disp('原传递函数:');
den=conv([1,0],[1,2]);
G=tf(num,den)
zeta=0.5;
wn=4;
w=logspace(-1,3);
s=roots(den);
s1=s(1);
kc=1;
disp('校正装置的传递函数:');
Gc=cqjz(G,s1,kc);
GGc=G*Gc*kc;
函数内容为:
function Gc=cqjz(G,s1,kc);
numG=G.num1;
denG=G.den1;
ngv=polyval(numG,s1);
dgv=polyval(denG,s1);
g=ngv/dgv;
theta_G=angle(g);
theta_s=angle(s1);
MG=abs(g);
Ms=abs(s1);
Tz=(sin(theta_s)-kc*MG*sin(theta_G-theta_s))/(kc*MG*sin(theta_G));
Tp=-(kc*MG*sin(theta_s)+sin(theta_G+theta_s))/(Ms*sin(theta_G));
Gc=tf([Tz,1],[Tp,1])
求高手:matlab在legend框里面的换行指令?
某期刊论文要求一格式特殊,我不太会,请教高手帮忙解答,不胜感激~ 源代码:clc; figure;t=0:0.01:1;hold on;plot(t,sin(t),'m*:'); plot(t,0.2*t,'co-');plot(t,t.^2,'b^:'); plot(t,cos(t)+0.252*sin(t),'rs:');h=legend('E.q(1)','E.q(2)','E.q(3)','E.q(4)');hold off;grid off; box on;set(h,'EdgeColor',[1,1,1],'location','SouthOutside');最终效果想实现如下图所示的功能:主要是legend里面标注要分两行显示,这个功能不会~~~
解答:
先给你举个例子
n = 1:.5:10; -- 表示在这个【1,10】区间里边,间隔是0.5等分
xr = sin(n); -- 函数是sin函数
y = cos(n); -- 函数是cos函数
x = xr.*y; -- 两个函数的积
plot(n,xr,\'-k\',n,y,\'-.r\',n,x,\'-bo\'); % k 是黑色,其他没有问题
legend(\'预测值\',\'估计结果x\',\'观测数据y\');
在matlab中运行后如图所示:
提示:lenged中的文字显示和plot相对应
lenged拓展:
关于图的不同类型场所(线图,棒图,饼图等)的图例。对于每一行绘制,legend 显示了线型,标记符号,和旁边的文本标签 指定色样。
legend(\'string1\',\'string2\',...)
显示在使用指定的字符串 来标记每个数据设置 当前轴的图例。
legend(h,\'string1\',\'string2\',...)
显示载有处理 在向量H,并使用指定的字符串 来标记相应的图形对象(线,barseries等)确定的对象图的图例。
legend(h,M)
以上是关于求助matlab高手帮忙的主要内容,如果未能解决你的问题,请参考以下文章