📄 ch2example11prg1.m
字号:
% ch2example11prg1.m
clear;
R=100; L=2e-3; C=1e-7; % 设置电路元件的参数
ts=1e-6; % 仿真步进 1微秒
t_start=0; % 起始时间
t_end=10e-3; % 终止时间
t=t_start:ts:t_end; % 设置求解的离散时间点序列
i_L0=0; u_C0=0; % 系统初始状态为零
x0=[i_L0;u_C0]; % 系统状态变量初始赋值
inputtimespan=t; % 输入信号的计算时间点
input=sin(2*pi*(2e3*t+3e6/2*(t.^2))); % 扫频信号10ms内从2KH线性变化到32KH
% 仿真计算开始
[t_out,x_out]=ode45('ch2example11statefun',t,x0,[],R,L,C,...
input,inputtimespan);
% 仿真完毕,进入仿真后处理,显示仿真结果
s_t_simu=x_out(:,2); % 阶跃响应仿真结果
figure(1);plot(t_out, s_t_simu, 'k-');
grid on; xlabel('时间 t ');ylabel('电容电压 ');
axis([0,t_end, 1.1*min(s_t_simu) ,1.1*max(s_t_simu)]);
% 计算扫频信号相应时间点对应的瞬时频率值,并以频率为横坐标作图
freq=2e3+3e6*t_out;
figure(2);plot(freq, s_t_simu, 'k-'); hold on;
% 计算幅度频率相应的理论曲线并作图与扫频输出结果相互对比
f1=0; df=1e3; f2=32e3; % 计算的频率范围和步进
f=f1:df:f2;
w=2*pi*f; % 相应的角频率序列
s=j*w;
H_s=1./(L*C*s.^2+R*C.*s+1); % 代入传递函数计算
plot(f,abs(H_s),'ko-'); % 求幅度频率响应并作图
xlabel('频率 Hz');ylabel('电容电压 ');
axis([0,max(freq), 1.1*min(s_t_simu) ,1.1*max(s_t_simu)]);
legend('系统扫频响应仿真结果','系统幅度频率响应理论值');
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -