这是根轨迹的动画演示效果程序,对于时域分析能做出来么?
clc;%清空
clear;
fill([-40 40 40 -40],[40 40 -40 -40],[0.1 0.5 0.4]);
axis([-40,40,-40,40]);%定义坐标范围
axis off % 除掉Axis
set(gcf,'DoubleBuffer','on');%消除抖动
%画动态标题
text(-35,10,'研 ','fontsize',50,'color','w');
pause(0.8);
text(-20,10,'究 ','fontsize',50,'color','w');
pause(0.8);
text(-5,10,'根 ','fontsize',50,'color','w');
pause(0.8);
text(10,10,'轨 ','fontsize',50,'color','w');
pause(0.8);
text(25,10,'迹 ','fontsize',50,'color','w');
pause(0.8);
text(12,-32,'电气工程 ','fontsize',10,'color','w');
pause(0.8);
text(12,-35,'学','fontsize',10,'color','w');
pause(0.8);
clf;%清屏,载入新的页面
axis off % 除掉Axis
set(gcf,'DoubleBuffer','on');%消除抖动
clear;
axis([-5 4 -4 4]);%定义坐标范围
axis off % 除掉Axis
hold on;%继续
axis off; % 除掉Axis
text(-4.5,-3.5,'G(s)=k(s+2)/s(s+1) ','fontsize',10,'color','b');%开环传递函数
pause(0.8);
line([-4 1],[0 0],'color','black','LineWidth',2);%横坐标
pause(0.8);
line([0 0],[-3 3],'color','black','LineWidth',2);%画纵坐标
pause(0.8);
text(0.1,-0.3,'0');%标坐标上的点
text(-1.05,-0.3,'-1');
text(-2.05,-0.3,'-2');
text(-3.05,-0.3,'-3');
text(-4.05,-0.3,'-4');
text(-0.13,2.9,'↑','fontsize',20);%画坐标的箭头
pause(0.8);
text(-0.13,2.9,'j','fontsize',20);%纵坐标意义
pause(0.8);
text(0.5,0.05,'→','fontsize',20);%画横坐标的箭头
pause(0.8);
text(-1.05,0,'×','fontsize',14);%标出极点
pause(0.8);
text(-0.2,0,'×','fontsize',14);%标出极点
pause(0.8);
text(-2.05,0.01,'o');%标出零点
pause(0.8);
text(-0.5,0.05,'←','fontsize',20);%根轨迹方向
pause(0.8);
text(-1.5,0.05,'←','fontsize',20);%根轨迹方向
pause(0.8);
text(-2.5,0.05,'←','fontsize',20);%根轨迹方向
pause(0.8);
text(-4,0.05,'←','fontsize',20);%根轨迹方向
pause(0.8);%画圆
alpha = 0:pi/20:2*pi;
R=1.2;
x=R*cos(alpha)-2;
y=R*sin(alpha);
plot(x,y,'-','color','black','LineWidth',2);
pause(0.8);
text(0.1,-0.3,'0');
pause(0.8);
table=[1 2];%动态箭头指零点
dt=0.03;
x=-2.1;
y=0.5;
jt=text(x,y,'↓','fontsize',20);
a=text(-2.05,0.1,'零点 ','fontsize',10,'color','r');
pause(1);
set(a,'visible','off');%消除零点
while x<=-1.1%动态箭头指极点
x = x+dt;
set(jt,'Position',[x y]);
pause(0.01);
end;
b=text(-1.05,1,'极点 ','fontsize',10,'color','r');
pause(1);
set(b,'visible','off');%消除极点
while x<=-0.1%动态箭头指极点
x = x+dt;
set(jt,'Position',[x y]);
pause(0.01);
end;
c=text(-0.1,1,'极点 ','fontsize',10,'color','r');
pause(1);
set(c,'visible','off')%动态箭头指分离点
while x>=-0.9
x = x-dt;
set(jt,'Position',[x y]);
pause(0.01);
end;
d=text(-0.9,1,'分离点','fontsize',10,'color','r');
pause(1);
set(d,'visible','off');%消除分离点
while x>=-3.3%动态箭头指分离点
x = x-dt;
set(jt,'Position',[x y]);
pause(0.01);
end;
e=text(-3.3,1,'分离点','fontsize',10,'color','r');
pause(1);
set(d,'visible','off');%消除分离点
clf;%清屏,载入新的页面
axis off % 除掉Axis
set(gcf,'DoubleBuffer','on');%消除抖动
clear;
axis([-5 4 -4 4]);
axis off % 除掉Axis
hold on;%继续
axis off;%消除axis
text(-4.5,3.5,'增加一个零点的情况 ','fontsize',10,'color','b');%讨论增加一个零点的情况
pause(0.8);
text(-4.5,-3.5,'G(s)=k(s+2)(s+3)/s(s+1) ','fontsize',10,'color','b');%开环传递函数
pause(0.8);
line([-4 1],[0 0],'color','black','LineWidth',2);%横坐标
pause(0.8);
line([0 0],[-3 3],'color','black','LineWidth',2);%画纵坐标
pause(0.8);
text(0.1,-0.3,'0');%标坐标上的点
text(-1.05,-0.3,'-1');
text(-2.05,-0.3,'-2');
text(-3.05,-0.3,'-3');
text(-4.05,-0.3,'-4');
text(-0.13,2.9,'↑','fontsize',20);%画坐标的箭头
pause(0.8);
text(-0.13,2.9,'j','fontsize',20);%纵坐标意义
pause(0.8);
text(0.5,0.05,'→','fontsize',20);%画横坐标的箭头
pause(0.8);
text(-1.05,0,'×','fontsize',14);%标出极点
pause(0.8);
text(-0.2,0,'×','fontsize',14);%标出极点
pause(0.8);
text(-2.05,0.01,'o');%标出零点
pause(0.8);
text(-3.05,0.01,'o');
pause(0.8);
text(-0.5,0.05,'←','fontsize',20);%根轨迹方向
pause(0.8);
text(-1.5,0.05,'←','fontsize',20);%根轨迹方向
pause(0.8);
text(-2.5,0.05,'←','fontsize',20);%根轨迹方向
pause(0.8);
text(-4,0.05,'←','fontsize',20);%根轨迹方向
alpha = 0:pi/20:2*pi;%画圆
R=1.2;
x=R*cos(alpha)-1.5;
y=R*sin(alpha);
plot(x,y,'-','color','black','LineWidth',2);
pause(0.8);
text(0.1,-0.3,'0');%箭头指零点
pause(0.8);
table=[1 2];%动态指零点
dt=0.03;
x=-2.1;
y=0.5;
jt=text(x,y,'↓','fontsize',20);
a=text(-2.05,0.1,'零点 ','fontsize',10,'color','r');%设置零点字体
set(a,'visible','off');%消除零点
pause(1);
table=[1 2];%动态箭头指零点
dt=0.03;
x=-3.1;
y=0.5;
jt=text(x,y,'↓','fontsize',20);
a=text(-3.05,0.1,'零点 ','fontsize',10,'color','r');%设置零点字体
pause(1);
set(a,'visible','off');%消除零点
while x<=-1.1%动态指极点
x = x+dt;
set(jt,'Position',[x y]);
pause(0.01);
end;
b=text(-1.05,1,'极点 ','fontsize',10,'color','r');%设置极点字体
pause(1);
set(b,'visible','off');%消除极点
while x<=-0.1%动态指极点
x = x+dt;
set(jt,'Position',[x y]);
pause(0.01);
end;
c=text(-0.1,1,'极点 ','fontsize',10,'color','r');%设置极点字体
pause(1);
set(c,'visible','off')
while x>=-0.4%动态指分离点
x = x-dt;
set(jt,'Position',[x y]);
pause(0.01);
end;
d=text(-0.4,1,'分离点','fontsize',10,'color','r');
pause(1);
set(d,'visible','off');%消除零点
while x>=-2.8%动态指分离点
x = x-dt;
set(jt,'Position',[x y]);
pause(0.01);
end;%结束
e=text(-2.8,1,'分离点','fontsize',10,'color','r');
pause(1);
clf;%清屏,载入新的页面
axis off % 除掉Axis
set(gcf,'DoubleBuffer','on');%消除抖动
clear;
axis([-5 4 -4 4]);
m=0:0.1:10;%画无从远处到分离点的根轨迹
n=gaussmf(m,[1 5]);
plot(0.5*(n-2),0.5*(m-5),'color','black','linewidth',2);
axis([-5 4 -4 4]);
axis off % 除掉Axis
hold on;%继续
axis off;%消除axis
text(-4.5,3.5,'增加一个极点的情况 ','fontsize',10,'color','b');%开环传递函数增加一个极点
pause(0.8);
text(-4.5,-3.5,'G(s)=k(s+2)/s(s+1)(s+3) ','fontsize',10,'color','b');%新的开环传递函数
pause(0.8);
line([-4 1],[0 0],'color','black','LineWidth',2);%横坐标
pause(0.8);
line([0 0],[-3 3],'color','black','LineWidth',2);%画纵坐标
pause(0.8);
text(0.1,-0.3,'0');%标坐标上的点
text(-1.05,-0.3,'-1');
text(-2.05,-0.3,'-2');
text(-3.05,-0.3,'-3');
text(-4.05,-0.3,'-4');
text(-0.13,2.9,'↑','fontsize',20);%画坐标的箭头
pause(0.8);
text(-0.13,2.9,'j','fontsize',20);%纵坐标意义
pause(0.8);
text(0.5,0.05,'→','fontsize',20);%画横坐标的箭头
pause(0.8);
text(-1.05,0,'×','fontsize',14);%标出极点
pause(0.8);
text(-0.2,0,'×','fontsize',14);%标出极点
pause(0.8);
text(-3.05,0,'×','fontsize',14);%标出极点
pause(0.8);
text(-2.05,0.01,'o');%标出零点
pause(0.8);
text(-1.6,0.05,'←','fontsize',20);%根轨迹方向
pause(0.8);
text(-2.7,0.05,'→','fontsize',20);%根轨迹方向
pause(0.8);