使用拉普拉斯变换求解具有初始值的 ODE

计算科学
2021-12-03 10:18:28

我正在尝试使用拉普拉斯变换求解具有初始条件的常微分方程。一个简单的测试设置包括

  • RC电路的指数放电和

  • 来自线圈和电压源的积分器。

虽然第一个示例的结果符合预期,但第二个示例却并非如此。我错过了什么?

Matlab代码:

function ilap_test

syms s RC vc vc0 il il0 L vin

% vc_dot = -1/RC * vc      exponential discharge
% il_dot = 1/L * vin       current integrator

% s*vc - vc0 = -1/RC * vc  % transform with initial conditions
% s*il - il0 = 1/L * vin

vc = vc0/(s + 1/RC);
il = vin/L/s + il0/s;

simplify(ilaplace(vc))
% vc0*exp(-t/RC)        (ok)

simplify(ilaplace(il))
% il0 + vin/L           shouldn't this be il0 + vin/L*t ???
1个回答

并非所有右手边都是平等的。按导数排列:

x_dot      x             const

vc_dot     + 1/RC*vc     + 0         = 0
il_dot                   - 1/L*vin   = 0 

拉普拉斯变换:

s*vc - vc0     + 1/RC*vc                 = 0
s*il - il0                   -1/L*vin/s  = 0  % const div by s was missing

解决:

vc = vc0/(s + 1/RC)
il = il0 + vin/L/s^2

反向变换:

vc = vc0*exp(-t/RC)
il = il0 + t*vin/L