Main Content

이 번역 페이지는 최신 내용을 담고 있지 않습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.

라플라스 변환을 사용하여 RLC 회로의 미분 방정식 풀기

Symbolic Math Toolbox™에서 다음 워크플로로 라플라스 변환을 사용하여 RLC 회로의 미분 방정식을 풉니다. 라플라스 변환의 간단한 예제는 laplaceilaplace 항목을 참조하십시오.

정의: 라플라스 변환

함수 f(t)의 라플라스 변환은 다음과 같습니다.

F(s)=0f(t)e-tsdt.

개념: 기호 워크플로 사용하기

기호 워크플로에서는 계산을 수치 형식이 아닌 자연적인 기호 형식으로 유지합니다. 이 접근 방식은 해의 속성을 이해하고 정확한 기호 값을 사용하게 해줍니다. 수치 결과가 필요할 때나 기호적으로 진행할 수 없을 때만 기호 변수에 숫자를 대입합니다. 자세한 내용은 수치 연산방식 또는 기호 연산방식 선택하기 항목을 참조하십시오. 일반적으로 단계는 다음과 같습니다.

  1. 방정식을 선언합니다.

  2. 방정식을 풉니다.

  3. 값을 대입합니다.

  4. 결과를 플로팅합니다.

  5. 결과를 분석합니다.

워크플로: 라플라스 변환을 사용하여 RLC 회로 풀기

방정식 선언하기

라플라스 변환을 사용하여 초기 조건이 있는 미분 방정식을 풀 수 있습니다. 예를 들어, 다음 회로와 같은 저항-인덕터-커패시터(RLC) 회로를 풀 수 있습니다.

RLC.png

  • 저항(단위: 옴): R1,R2,R3

  • 전류(단위: 암페어): I1,I2,I3

  • 인덕턴스(단위: 헨리): L

  • 커패시턴스(단위: 패럿): C

  • AC 전압원(단위: 볼트): E(t)

  • 커패시터 전하(단위: 쿨롬): Q(t)

키르히호프의 전압 및 전류 법칙을 적용하여 다음 방정식을 얻습니다.

I1=I2+I3LdI1dt+I1R1+I2R2=0E(t)+I2R2-QC-I3R3=0

위의 방정식에 관계식 I3=dQ/dt(커패시터 충전 속도)를 대입하여 RLC 회로의 미분 방정식을 얻습니다.

dI1dt-R2LdQdt=-R1+R2LI1dQdt=1R2+R3(E(t)-QC)+R2R2+R3I1

변수를 선언합니다. 물리량이 양수 값을 가지므로, 변수에 이에 해당하는 가정을 설정합니다. E(t)를 1V의 교류 전압이라고 하겠습니다.

syms L C I1(t) Q(t) s
R = sym('R%d',[1 3]);
assume([t L C R] > 0)
E(t) = 1*sin(t);        % AC voltage = 1 V

미분 방정식을 선언합니다.

dI1 = diff(I1,t);
dQ = diff(Q,t);
eqn1 = dI1 - (R(2)/L)*dQ == -(R(1)+R(2))/L*I1
eqn1(t) = 

t I1(t)-R2t Q(t)L=-I1(t)R1+R2L

eqn2 = dQ == (1/(R(2)+R(3))*(E-Q/C)) + R(2)/(R(2)+R(3))*I1
eqn2(t) = 

t Q(t)=sin(t)-Q(t)CR2+R3+R2I1(t)R2+R3

방정식 풀기

eqn1eqn2의 라플라스 변환을 계산합니다.

eqn1LT = laplace(eqn1,t,s)
eqn1LT = 

slaplace(I1(t),t,s)-I1(0)+R2Q(0)-slaplace(Q(t),t,s)L=-R1+R2laplace(I1(t),t,s)L

eqn2LT = laplace(eqn2,t,s)
eqn2LT = 

slaplace(Q(t),t,s)-Q(0)=R2laplace(I1(t),t,s)R2+R3+Cs2+1-laplace(Q(t),t,s)CR2+R3

함수 solve는 기호 변수에 대해서만 방정식을 풉니다. 따라서 solve를 사용하려면 먼저 laplace(I1(t),t,s)laplace(Q(t),t,s)에 변수 I1_LTQ_LT를 대입하십시오.

syms I1_LT Q_LT
eqn1LT = subs(eqn1LT,[laplace(I1,t,s) laplace(Q,t,s)],[I1_LT Q_LT])
eqn1LT = 

I1,LTs-I1(0)+R2Q(0)-QLTsL=-I1,LTR1+R2L

eqn2LT = subs(eqn2LT,[laplace(I1,t,s) laplace(Q,t,s)],[I1_LT Q_LT])
eqn2LT = 

QLTs-Q(0)=I1,LTR2R2+R3-QLT-Cs2+1CR2+R3

I1_LTQ_LT에 대해 방정식을 풉니다.

eqns = [eqn1LT eqn2LT];
vars = [I1_LT Q_LT];
[I1_LT, Q_LT] = solve(eqns,vars)
I1_LT = 

LI1(0)-R2Q(0)+CR2s+Ls2I1(0)-R2s2Q(0)+CLR2s3I1(0)+CLR3s3I1(0)+CLR2sI1(0)+CLR3sI1(0)s2+1R1+R2+Ls+CLR2s2+CLR3s2+CR1R2s+CR1R3s+CR2R3s

Q_LT = 

CR1+R2+Ls+LR2I1(0)+R1R2Q(0)+R1R3Q(0)+R2R3Q(0)+LR2s2I1(0)+LR2s3Q(0)+LR3s3Q(0)+R1R2s2Q(0)+R1R3s2Q(0)+R2R3s2Q(0)+LR2sQ(0)+LR3sQ(0)s2+1R1+R2+Ls+CLR2s2+CLR3s2+CR1R2s+CR1R3s+CR2R3s

I1_LTQ_LT의 라플라스 역변환을 계산하여 I1Q를 계산합니다. 결과를 단순화합니다. 출력값이 너무 길기 때문에 이를 표시하지 않습니다.

I1sol = ilaplace(I1_LT,s,t);
Qsol = ilaplace(Q_LT,s,t);
I1sol = simplify(I1sol);
Qsol = simplify(Qsol);

값 대입하기

결과를 플로팅하기 전에 먼저 기호 변수에 회로 소자의 수치적 값을 대입합니다. R1=4Ω, R2=2Ω, R3=3Ω, C=1/4F, L=1.6H라고 하겠습니다. 초기 전류는 I1(0)=2A이고 초기 전하는 Q(0)=2C라고 가정합니다.

vars = [R L C I1(0) Q(0)];
values = [4 2 3 1.6 1/4 2 2];
I1sol = subs(I1sol,vars,values)
I1sol = 

200cos(t)8161+405sin(t)8161+16122e-81t40cosh(1761t40)-7425291761sinh(1761t40)141954218161

Qsol = subs(Qsol,vars,values)
Qsol = 

924sin(t)8161-1055cos(t)8161+17377e-81t40cosh(1761t40)+11094251761sinh(1761t40)306008978161

결과 플로팅하기

전류 I1sol과 전하 Qsol을 플로팅합니다. 2개의 서로 다른 시간 구간 0t152t25를 사용하여 과도 상태 동작과 정상 상태 동작을 모두 표시합니다.

subplot(2,2,1)
fplot(I1sol,[0 15])                      
title('Current')
ylabel('I1(t)')
xlabel('t')

subplot(2,2,2)
fplot(Qsol,[0 15])                        
title('Charge')
ylabel('Q(t)')
xlabel('t')

subplot(2,2,3)
fplot(I1sol,[2 25])                  
title('Current')
ylabel('I1(t)')
xlabel('t')
text(3,-0.1,'Transient')
text(15,-0.07,'Steady State')

subplot(2,2,4)
fplot(Qsol,[2 25])                        
title('Charge')
ylabel('Q(t)')
xlabel('t')
text(3,0.35,'Transient')
text(15,0.22,'Steady State')

Figure contains 4 axes objects. Axes object 1 with title Current, xlabel t, ylabel I1(t) contains an object of type functionline. Axes object 2 with title Charge, xlabel t, ylabel Q(t) contains an object of type functionline. Axes object 3 with title Current, xlabel t, ylabel I1(t) contains 3 objects of type functionline, text. Axes object 4 with title Charge, xlabel t, ylabel Q(t) contains 3 objects of type functionline, text.

결과 분석하기

초기에는 전류와 전하가 지수적으로 감소합니다. 그러나 장기적으로는 진동합니다. 이러한 동작은 각각 "과도 상태"와 "정상 상태"라고 합니다. 기호 결과를 사용하면 결과의 속성을 분석할 수 있습니다. 이는 수치 결과를 사용할 때는 가능하지 않습니다.

I1solQsol을 시각적으로 검토합니다. 항들의 합을 볼 수 있습니다. children을 사용하여 항을 구합니다. 그런 다음 [0 15]에 대해 항을 플로팅하여 항의 비중을 구합니다. 플롯에서 과도 상태 항과 정상 상태 항을 볼 수 있습니다.

I1terms = children(I1sol);
I1terms = [I1terms{:}];
Qterms = children(Qsol);
Qterms = [Qterms{:}];

figure;
subplot(1,2,1)
fplot(I1terms,[0 15])
ylim([-0.5 2.5])
title('Current terms')

subplot(1,2,2)
fplot(Qterms,[0 15])
ylim([-0.5 2.5])
title('Charge terms')

Figure contains 2 axes objects. Axes object 1 with title Current terms contains 3 objects of type functionline. Axes object 2 with title Charge terms contains 3 objects of type functionline.

플롯을 통해 I1sol에는 하나의 과도 상태 항과 하나의 정상 상태 항이 있고 Qsol에는 하나의 과도 상태 항과 두 개의 정상 상태 항이 있음을 볼 수 있습니다. 시각적 검토를 통해 I1solQsolexp 함수를 포함하는 하나의 항이 있는 것을 알 수 있습니다. 이 항이 과도 지수 감쇠의 원인이 된다고 가정합니다. has를 사용하여 exp가 있는 항이 있는지 확인함으로써 I1solQsol의 과도 상태 항과 정상 상태 항을 분리합니다.

I1transient = I1terms(has(I1terms,'exp'))
I1transient = 

16122e-81t40cosh(1761t40)-7425291761sinh(1761t40)141954218161

I1steadystate = I1terms(~has(I1terms,'exp'))
I1steadystate = 

(200cos(t)8161405sin(t)8161)

마찬가지로, Qsol을 과도 상태 항과 정상 상태 항으로 분리합니다. 이 결과는 기호 계산이 문제를 분석하는 데 어떻게 도움이 되는지 보여줍니다.

Qtransient = Qterms(has(Qterms,'exp'))
Qtransient = 

17377e-81t40cosh(1761t40)+11094251761sinh(1761t40)306008978161

Qsteadystate = Qterms(~has(Qterms,'exp'))
Qsteadystate = 

(-1055cos(t)8161924sin(t)8161)