张峰20220611编写

Contents

实验2.1 二阶系统的时域响应

clc
clear
close all
% 电阻R的值
R=[50,160,200];
% K增益
k=200./R;
% 仿真时间
%t1=-1:0.01
t=0:0.01:5;
for i=1:length(k)
    %构建闭环传递函数
    s=tf(5*k(i),[1,5,5*k(i)]);
    S=stepinfo(s)
    %闭环传递函数的阶跃响应
    y=step(s,t);
    %将阶跃响应结果保留至y_repond
    y_repond(i,:)=y;
end
% 绘图
figure
plot(t,y_repond,'Linewidth',3)
legend('R=50K','R=160K','R=200K','Location','best')
grid on
xlabel('时间')
ylabel('电压')
title('实验2')
set(gca,'FontSize',36)
set(gcf,'unit','normalized','position',[0.1,0.1,0.8,0.8]);
S = 
  包含以下字段的 struct:

         RiseTime: 0.3936
    TransientTime: 1.3088
     SettlingTime: 1.3088
      SettlingMin: 0.9174
      SettlingMax: 1.1203
        Overshoot: 12.0265
       Undershoot: 0
             Peak: 1.1203
         PeakTime: 0.8474
S = 
  包含以下字段的 struct:

         RiseTime: 1.3432
    TransientTime: 2.3336
     SettlingTime: 2.3336
      SettlingMin: 0.9008
      SettlingMax: 0.9999
        Overshoot: 0
       Undershoot: 0
             Peak: 0.9999
         PeakTime: 4.7900
S = 
  包含以下字段的 struct:

         RiseTime: 1.7685
    TransientTime: 3.1788
     SettlingTime: 3.1788
      SettlingMin: 0.9034
      SettlingMax: 0.9998
        Overshoot: 0
       Undershoot: 0
             Peak: 0.9998
         PeakTime: 6.5933

实验2.2 典型的三阶系统稳定性分析

k1=500/30;
k2=500/41.7;
k3=500/100;
R=[30,41.7,100];% 电阻值的大小
t=0:0.01:20; %设置仿真时间
for i=1:length(R)
    K=500/R(i);   % 开环增益
    num=[20*K];
    den=[1 12 20 20*K];
    p=roots(den); % 求根
    sys=tf(num,den);
    y=step(sys,t); %单位阶跃响应
    Y(i,:)=y;
    P(i,:)=p;
end

figure
plot(t,Y(1,:),'Linewidth',4)
legend('R=30K')
xlim([0,10])
grid on
xlabel('时间')
ylabel('电压')
set(gca,'FontSize',36)
set(gcf,'unit','normalized','position',[0.1,0.1,0.8,0.8]);
title('实验3.1')
figure
plot(t,Y(2,:),'Linewidth',4)
legend('R=41.7K')
xlim([0,10])
grid on
xlabel('时间')
ylabel('电压')
title('实验3.2')
set(gca,'FontSize',36)
set(gcf,'unit','normalized','position',[0.1,0.1,0.8,0.8]);

figure
plot(t,Y(3,:),'Linewidth',4)
legend('R=100K')
xlim([0,10])
grid on
xlabel('时间')
ylabel('电压')
title('实验3.3')
set(gca,'FontSize',36)
set(gcf,'unit','normalized','position',[0.1,0.1,0.8,0.8]);

figure
plot(t,Y,'Linewidth',4)
legend('R=30K','R=41.7K','R=100K')
xlim([0,10])
grid on
xlabel('时间')
ylabel('电压')
title('实验3')
set(gca,'FontSize',36)
set(gcf,'unit','normalized','position',[0.1,0.1,0.8,0.8]);