import numpy as np
import matplotlib.pyplot as plt
#회로 파라미터
R = 0 #저항값
C = 1e-6 #커패시턴스 값(F)
L = 0.1 #인덕턴스 값(H)
#시뮬레이션 파라미터
dt = 1e-6 #시간 간격(s)
duration = 0.01 #시뮬레이션 기간 (s)
#시간 범위 생성
t = np.arange(0, duration, dt)
#입력 신호 생성 (에시로 단위 step 입력 사용)
input_signal = np.ones_like(t)
input_signal[t < duration/2] = 0
#초기 조건 설정
i_L = 0 #인덕턴스 전류 초기값
v_C = 0 #커패시턴스 전압 초기값
#시뮬레이션 결과 저장할 리스트
current = []
voltage = []
#시뮬레이션 시작
for i in range(len(t)):
#다음 시간 단계에서의 전류 및 전압 계산
i_L += (input_signal[i] - v_C) * dt / L
v_C += i_L * dt / C
#결과 저장
current.append(i_L)
voltage.append(v_C)
#그래프 그리기
plt.figure(figsize=(8,6))
plt.plot(t, current, label='Current')
plt.plot(t, voltage, label='Voltage')
plt.xlabel('Time (s)')
#왼쪽 여백 조정 및 y라벨 위치 조정(시작)
plt.subplots_adjust(left=0.28)
plt.gca().yaxis.set_label_coords(-0.25,0)
#왼쪽 여백 조정 및 y라벨 위치 조정(끝)
plt.ylabel('Current (A) / Voltage (V)', rotation=0)
plt.title('RLC Circuit Response (R=0)')
plt.legend()
plt.grid(True)
plt.show()
'matplolib > 함수그래프' 카테고리의 다른 글
yfinance를 이용하여 애플주식에 대한 차트를 그려보자! (1) | 2023.09.08 |
---|---|
리사주도형 그래프를 그려보자! (3) | 2023.03.20 |
댓글