LCR电路仿真
matlab
clear; close all; clc;

1 微分方程
首先写出此电路的微分方程
电流从正极流向负极,根据各元件的特性,电压分别为:
{电感电压:eL(t)=Ldi(t)dt电容电压:eC(t)=1C∫0ti(t)dt电阻电压:eR(t)=i(t)R \left\lbrace \begin{array}{l} 电感电压:e_L (t)=L\frac{di(t)}{dt}\newline 电容电压:e_C (t)=\frac{1}{C}\int_0^t i(t)dt\newline 电阻电压:e_R (t)=i(t)R \end{array}\right. ⎩ ⎨ ⎧电感电压:eL(t)=Ldtdi(t)电容电压:eC(t)=C1∫0ti(t)dt电阻电压:eR(t)=i(t)R
根据基尔霍夫电压定律可得:
eL(t)+eC(t)+eR(t)−e(t)=0 e_L (t)+e_C (t)+e_R (t)-e(t)=0 eL(t)+eC(t)+eR(t)−e(t)=0
带入得到:
Ldi(t)dt+frac1c∫0ti(t)dt+i(t)R−e(t)=0 L\frac{di(t)}{dt}+frac1c\int_0^t i(t)dt+i(t)R-e(t)=0 Ldtdi(t)+frac1c∫0ti(t)dt+i(t)R−e(t)=0
对两边同时求导得到:
de(t)dt=Ld2i(t)dt2+Rdi(t)dt+1Ci(t) \frac{de(t)}{dt}=L\frac{d^2 i(t)}{dt^2 }+R\frac{di(t)}{dt}+\frac{1}{C}i(t) dtde(t)=Ldt2d2i(t)+Rdtdi(t)+C1i(t)
2 传递函数
假设L=5H,R=6Ω,C=7F,可得:
de(t)dt=5d2i(t)dt2+6di(t)dt+17i(t)H(s)=s5s2+6s+0.142857 \begin{array}{l} \frac{de(t)}{dt}=5\frac{d^2 i(t)}{dt^2 }+6\frac{di(t)}{dt}+\frac{1}{7}i(t)\newline H(s)=\frac{s}{5s^2 +6s+0.142857} \end{array} dtde(t)=5dt2d2i(t)+6dtdi(t)+71i(t)H(s)=5s2+6s+0.142857s
使用tf函数创建此传递函数的模型:
den:分母系数向量(按s的降幂排列)
matlab
den = [5 6 1/7];
num:分子系数向量(按是的降幂排列)
matlab
num = [1 0];
sys_tf = tf(num, den);
3 系统特性
3.1 阶跃响应
输入1V恒定电压时,系统的输出
matlab
step(sys_tf);
% 添加网格和标题,让图形更清晰
grid on;
title('RLC电路电流i(t)的单位阶跃响应');
xlabel('时间 (秒)');
ylabel('电流 i(t)');
% 计算时域指标
info = stepinfo(sys_tf);
disp(info); % 显示上升时间、超调量、调节时间等

matlabTextOutput
RiseTime: 0
TransientTime: 165.2061
SettlingTime: NaN
SettlingMin: 0
SettlingMax: 0.1567
Overshoot: Inf
Undershoot: Inf
Peak: 0.1567
PeakTime: 3.3686
3.2 波特图
matlab
%波特图
bode(sys_tf);

3.3 零点和极点
matlab
% 求极点,使分母为0
pole(sys_tf)
matlabTextOutput
ans = 2x1
-1.1757
-0.0243
matlab
% 求零点,使分子为0
tzero(sys_tf)
matlabTextOutput
ans = 0
3.4 根轨迹图
matlab
rlocus(sys_tf)

4 仿真
生成输入信号(正弦波电压)
matlab
f = 0.027; % 频率 (Hz)
t = 0:0.01:500; % 时间向量,0~100秒,步长0.05秒
w = 2*pi*f;
E_amp = 1;
u = E_amp * sin(w * t); % 输入电压 e(t)
用lsim仿真输出电流
matlab
[y, t_out] = lsim(sys_tf, u, t); % y 就是电流 i(t)
绘制电压和电流
matlab
figure;
plot(t_out, u, 'b-', 'LineWidth', 1); hold on;
plot(t_out, y, 'r-', 'LineWidth', 1);
grid on;
xlabel('时间 (秒)');
ylabel('幅值');
title(['正弦激励响应 (f = ' num2str(f) ' Hz)']);
legend('输入电压 e(t) (V)', '输出电流 i(t) (A)', 'Location', 'best');

观察上图,输入0.027Hz正旋波时,电压和电流相位基本相同
matlab
w = 2 * pi * f;
[mag, phase, wout] = bode(sys_tf, w);
% 输出结果
fprintf('频率 f = %.2f Hz (ω = %.4f rad/s)\n', f, w);
matlabTextOutput
频率 f = 0.03 Hz (ω = 0.1696 rad/s)
matlab
fprintf('幅值 mag = %.4f (线性)\n', mag);
matlabTextOutput
幅值 mag = 0.1667 (线性)
matlab
fprintf('相位 phase = %.2f 度\n', phase);
matlabTextOutput
相位 phase = -0.06 度
计算结果和图片匹配