MATLAB微分方程化差分方程的求解[习题0.16]

题目:

求把电压源 i s = c o s ( Ω 0 t ) i_{s}=cos(\varOmega_{0}t) is=cos(Ω0t)与电感 i L ( t ) i_{L}(t) iL(t)联系起来的常微分方程,这里电感量 L = 1 H L=1H L=1H,且电感与一个电阻值 R = 1 Ω R=1\varOmega R=1Ω的电阻并联(见图0.23),假定电感的初始电流为0。
(a)利用积分的梯形近似法从常微分方程获得一个离散方程。
(b)创建一个 M A T L A B MATLAB MATLAB脚本文件用来求解差分方程,取 T s = 0.01 T_{s}=0.01 Ts=0.01, i s i_{s} is的频率分别取 Ω 0 = 0.005 π , 0.05 π 和 0.5 π \varOmega_{0}=0.005\pi,0.05\pi和0.5\pi Ω0=0.005π0.05π0.5π M A T L A B MATLAB MATLAB p l o t plot plot函数,在同一个图中画出输入电流源 i s ( t ) i_{s}(t) is(t)和近似解 i L ( n T ) i_{L}(nT) iL(nT)的图形。用 M A T L A B MATLAB MATLAB f i l t e r filter filter函数求解差分方程.
©利用 M A T L A B MATLAB MATLAB求解常微分方程,取输入电流源 i s ( t ) i_{s}(t) is(t)的频率为 Ω 0 = 0.5 π \varOmega_{0}=0.5\pi Ω0=0.5π,并对比 i s ( t ) 和 i L ( t ) i_{s}(t)和i_{L}(t) is(t)iL(t).

图0.23
通过基尔霍夫电流定律,我们可知 i s ( t ) = i L ( t ) + i R ( t ) = V L ( t ) R + i L ( t ) i_{s}(t)=i_{L}(t)+i_{R}(t)=\frac{V_{L}(t)}{R}+i_{L}(t) is(t)=iL(t)+iR(t)=RVL(t)+iL(t),我们知道 R = 1 Ω , L = 1 H , V L ( t ) = L d i L ( t ) d t R=1\varOmega,L=1H,V_{L}(t)=L\frac{di_{L}(t)}{dt} R=1Ω,L=1H,VL(t)=LdtdiL(t)带入可知 i s ( t ) = d i L ( t ) d t + i L ( t ) i_{s}(t)=\frac{di_{L}(t)}{dt}+i_{L}(t) is(t)=dtdiL(t)+iL(t)
下面我们要把 i s ( t ) = d i L ( t ) d t + i L ( t ) i_{s}(t)=\frac{di_{L}(t)}{dt}+i_{L}(t) is(t)=dtdiL(t)+iL(t)化为差分方程,并证明正确性。
我们对两边积分可以得到
i L ( t 1 ) − i L ( t 0 ) = ∫ t 0 t 1 i s ( τ ) d τ − ∫ t 0 t 1 i L ( τ ) d τ i_{L}(t_{1})-i_{L}(t_{0})=\int_{t_{0}}^{t1}i_{s}(\tau)d\tau-\int_{t_{0}}^{t_{1}}i_{L}(\tau)d\tau iL(t1)iL(t0)=t0t1is(τ)dτt0t1iL(τ)dτ
下面由梯形近似可以得到
i L ( t 1 ) − i L ( t 0 ) i_{L}(t_{1})-i_{L}(t_{0}) iL(t1)iL(t0)
= ( i s ( t 0 ) + i s ( t 1 ) ) △ t 2 − ( i L ( t 1 ) + i L ( t 0 ) ) △ t 2 =(i_{s}(t_{0})+i_{s}(t_{1}))\frac{\triangle{t}}{2}-(i_{L}(t_{1})+i_{L}(t_{0}))\frac{\triangle{t}}{2} =(is(t0)+is(t1))2t(iL(t1)+iL(t0))2t
然后我们令 △ t = T s , t 1 = n T , t 0 = ( n − 1 ) T \triangle{t}=T_{s},t_{1}=nT,t_{0}=(n-1)T t=Ts,t1=nT,t0=(n1)T
我们可以得到
i L ( n T s ) + T s − 2 2 + T s i L ( ( n − 1 ) T s ) i_{L}(nT_{s})+\frac{T_{s}-2}{2+T_{s}}i_{L}((n-1)T_{s}) iL(nTs)+2+TsTs2iL((n1)Ts)
= T s 2 + T s [ i s ( n T s ) + i s ( ( n − 1 ) T s ) ] =\frac{T_{s}}{2+T_{s}}[i_{s}(nT_{s})+i_{s}((n-1)T_{s})] =2+TsTs[is(nTs)+is((n1)Ts)]
到此为止,连续的微分方程化离散的微分方程就结束了。下面是编写代码求解微分方程和差分方程并对比其求解结果是否相同。

clc;clear;
Ts=0.01;
t=[0:Ts:100];
figure(4)
for k=0:2;
    if k==0 subplot(311)
    elseif k==1 subplot(312)
    else subplot(313)
    end
    W0=0.005*10^k*pi;
    is=cos(W0*t);
    a=[1 (Ts-2)/(Ts+2)];%这个是i_l(n),i_l(n-1)的系数
    b=[Ts/(Ts+2) Ts/(Ts+2)]%这个是i_s(n),i_s(n-1)的系数
    il=filter(b,a,is);
    H=1/sqrt(1+W0^2)*ones(1,length(t));
    plot(t,is,t,il,'r',t,H,'g');xlabel('t');ylabel('i_s(t) i_L(t)');
    axis([0 100 1.1*min(is) 1.1*max(is)])
    legend('input current','output current','filter gain');grid
    pause(0.1)%?
end
%当cos函数的输入频率为0.5pi时的连续微分方程的解法
clear all
syms t x y
x=cos(0.5*pi*t);
y=dsolve('Dy+y=cos(0.5*pi*t)','y(0)=0','t')
figure(5)
subplot(211)
ezplot(x,[0 100]);grid
subplot(212)
ezplot(y,[0 100]);grid
axis([0 100 -1 1])

差分方程求解结果
连续微分方程求解结果
由图可以看出两种方法所解得 i L ( t ) i_{L}(t) iL(t)基本相同,由此可断定我们将连续的微分方程化为离散方程的思路正确。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值