맥스웰 방정식으로 부터 전자기파의 유도 과정

맥스웰 방정식의 4개의 연립 미분 방정식을 통해 전자기파를 예언 하였던 유도 과정을 알아 보자.

멕스웰 방정식

  • 전기장에 대한 가우스법칙(전기장 발산) $$ \boldsymbol{\nabla} \boldsymbol{\cdot} \mathbf{E} = \frac{\rho}{\varepsilon_0} \tag{1} $$

  • 자기장에 대한 가우스 법칙(자기장 발산) $$ \boldsymbol{\nabla} \boldsymbol{\cdot} \mathbf{B} = 0 \tag{2} $$

  • 페러데이 전자 유도(전기장의 회전) $$ \boldsymbol{\nabla} \boldsymbol{\times} \mathbf{E} = -\frac{\partial \mathbf{B}}{\partial t} \tag{3} $$

  • 앙페르-맥스웰법칙(자기장의 회전) $$ \boldsymbol{\nabla} \boldsymbol{\times} \mathbf{B} = \mu_0\mathbf{J} + \varepsilon_0\mu_0 \frac{\partial\mathbf{E}}{\partial t} \tag{4} $$

전자기파 유도

자유 공간에서 전하 밀도 $\rho$ 와 전도 전류 밀도 $\mathbf{J}$ 가 $0$ 이므로 멕스웰의 방정식 $(1)$ 과 $(4)$는 다음과 같이 쓸 수 있다.

오픈 소스 구현을 이용한 NETCONF Hands-On

오픈 소스 구현을 이용한 NETCONF Hands-On

오픈소스를 이용하여 NETCONF 의 간단한 동작을 확인 해보자.

사용할 오픈소스 구현은 다음과 같다.

  • libyang: YANG 데이터 모델링 언어의 파서와 툴킷을 제공한다. sysrepo, libnetconf2, netopeer2에서 사용된다.
  • sysrepo: YANG 으로 모델링된 데이터의 데이터 스토어를 제공한다.
  • libnetconf2: NETCONF 서버와 클라이언트에서 사용되는 라이브리를 제공한다.
  • netopeer2: NETCONF 서버와 테스트용 클라이언트를 제공한다.

설치 하기

설치에 시간이 걸리기 때문에 빠른 테스트를 위해 도커 이미지를 만들어 놓았다.

시스템에 도커가 설치되어 있다면 별도의 설치 없이 테스트가 가능하다.

YANG - Data Modeling Language

YANG: Data Modeling Language

개요

IETF NETCONF Working Group 에서 네트워크 관리 프로토콜인 NECONF의 데이터 모델링을 위해 개발한 데이터 모델링 언어다. NETCONF 프로토콜(RFC 6241은 표준에서 정의한 4 계층 중 Operation, Message, Transport 계층에 대해 정의 하였지만 최상위 계층인 Content 계층의 내용에 대해서는 정의하지 않았다.

SNMP에서 MIB를 정의 하기 위해 SMI를 정의 하였듯이 NETCONF에서 관리 데이터를 정의 하기 위해 데이터 모델링을 위한 언어인 YANG을 정의 하였다.

YANG은 매우 확장성 있는 데이터 모델링 언어로 당초 목적인 네트워크의 설정 데이터와 운용 데이터의 모델링 뿐 아니라 다른 분야 에서도 사용되고 있다.

NETCONF - Network Configuration Protocol

개요

IETF NETCONF Working Group에서 발표한 네트워크 관리 프로토콜이다.

기존에 사용되던 SNMP를 대체 하기 위해 개발 되었으며 네트워크 오퍼레이터의 요구 사항을 반영하여 개발되었다. 최신 개정판은 RFC 6241 이다.

출연 배경

이전에 정의된 SNMP가 있었다. SNMP는 버전 3 까지 정의 되었다. SNMPv1 은 SNMP의 첫 번째 표준이다. 사실 IETF에서는 체계적인 관리 체계를 개발 하기 원했고 SNMPv1 은 더 나은 관리 프로토콜을 개발할기 까지 과도적으로 사용되는 임시 프로토콜로서 개발 되었다. 하지만 SNMPv1은 구현의 간편함으로 인해 널리 사용되었고 IETF에서는 새로운 프로토콜을 구현하는 대신 대신 SNMP를 발전 시키려고 하였다. 버전 1 에서 문제가 되었던 인증 관련 기능등의 추가 기능이 정의된 SNMPv2를 발표 하였으나 SNMPv1이 널리 사용되게 되었던 원인인 구현의 간편함이 없어졌기 때문에 사용자의 외면을 받았다. 이에 IETF에서는 SNMPv2에서 문제가 되었던 복잡한 인증 관련 기능을 제거한 SNMPV2c 를 발표 하였다. 이후 구현된 SNMPv3에서는 이전 버전에서 문제가 되었던 보안성이 강화되어 데이터의 기밀성, 무결성, 인증관련 기능들이 추가 되었다.

구글 도메인에서 DDNS 사용하기

Google Domains

Google Domains에의 도메인 등록 과 고객 정보를 Squarespace, Inc. 로 이전 하기로 하였다. 자세한 내용은 여기를 참고 하자. 아직 구글 도메인즈를 통해 도메인에 대한 관리는 가능하지만 이전에 완료 되는 대로 Google Domains 서비는 종료 할 것으로 보인다. 즉, 이전에 완료된 후에는 Squarespace에서 도메인을 관리 해야 한다.

시간을 내어 관리 하고 있는 도메인의 네임서버를 Cloudflare로 이전하는 작업을 하였다.

DDNS with Google Domains

잠시 짬을 내어 창고에서 잠자고 있던 구형 PC로 개발 서버로 쓰기 위해 리눅스도 설치 하고 몇가지 개발 환경을 구축 했다. 유동 IP를 쓰다 보니 할당받은 IP가 변경 되었을 때 외부에서 접속할 방법이 마땅치 않아 내가 사용하는 도메인 네임 서비스인 구글 도메인즈에 을 통해 DDNS 설정을 하기로 하였다.

2 전력계법 - 3상 전력을 측정하는 방법

2 전력계법

이전 글에서 단상부하의 경우 유효전력을 측정하기 위한 3 전압계법3 전류계법에 대하여 알아보았다. 이번에는 평형 삼상회로 부하에서 2개의 유효전력계를 이용하여 3상 유효 전력을 측정하는 방법에 대해 알아본다.

유효전력계는 전압계, 전류계, 역률계로 구성되어 있으므로 전압계, 전류계, 역률계가 각각 2개씩 있으면 유효전력을 측정할 수 있다.

세상의 전압과 전류의 크기가 같고 그 위상이 서로 $120^\circ$ 차이날 때 평형삼상 이라고 한다. 평형 삼상회로에서 3상의 전압과 전류의 합은 $0$이다.

유효전력

3상에서 유효전력을 구하기 위해서는 선간전압과 선전류의 곱에$\sqrt{3}$배를 해주고 역률을 곱해 주어야 한다.

3 전류계법 - 단상 전력을 측정하는 방법

개요

이전 글인 3전압계법을 다룬 글에서 이미 설명 했듯이 교류(AC) 회로에서 부하전압과 부하전류간 위상차가 존재하기 때문에 전원측에서 공급하는 전력과 실제 부하에서 소비되는 전력과 크기가 다르다. 교류 회로에서는 전원측에서 공급되는 전력을 피상전력($P_a$)이라고 하고 실제 부하에서 소비되는 전력을 유효전력($P$)이라고 한다. 피상전력으로부터 유효전력을 계산하기위해 역률($\cos{\theta}$)을 곱해주어야 한다. 자세한 내용은 3전압계법 의 개요를 참고하자.

본문에서는 전류계 3개를 이용하여 유효전력을 측정하는 방법을 알아본다.

들어가기 앞서

3전류계법을 시작하기 앞서 결론을 먼저 설명 하자면 역률을 유도하는 과정이 전압 $V$를 전류 $I$ 로 치환하면 될 정도로 3 전압계법과 거의 같다.

3 전압계법 - 단상 전력을 측정하는 방법

개요

직류(DC) 회로에서 전력을 구하려면 부하전압(부하에 인가되는 전압)과 부하전류(부하에 흐르는 전류)의 곱으로 계산할 수 있지만 교류(AC) 회로에서 부하전압과 부하전류간 위상차가 존재하기 때문에 전원측에서 공급하는 전력과 실제 부하에서 소비되는 전력과 크기가 다르다. 교류 회로에서는 전원측에서 공급되는 전력을 피상전력($P_a$)이라고 하고 실제 부하에서 소비되는 전력을 유효전력($P$)이라고 한다. 피상전력으로부터 유효전력을 계산하기위해 역률($\cos{\theta}$)을 곱해주어야 한다.

$$ P = VI\cos{\theta} $$

역률은 부하전압과 부하전류의 위상차를 코사인 값으로 나타낸 것이다. 역률은 피상전력에 대한 유효전력의 비로 나타낼 수 있다.

GDM 모니터 설정 변경하기

사용자 모니터 설정은 ~/.config/monitors.xml에 저장된다. GNOME에서 사용하는 모니터 설정을 GDM에도 적용하자.

sudo cp ~/.config/monitors.xml ~gdm/.config/monitors.xml
sudo chmod gdm:gdm  ~gdm/.config/monitors.xml

monitors.xml를 복사해도 설정이 적용 안되는 경우 아래와 같이 GDM과 GNOME에서 사용하는 디스플레이 서버가 같은지 확인해 보자. 다음과 같은 경우일 수 있다.

  • GDM은 Wayland를 사용하고 GNOME은 Xorg를 사용하는 경우
  • GDM은 Xorg를 사용하고 GNOME은 Wayland를 사용하는 경우

이동평균에 대하여 (feat. Python)

이전에 평균에 대한 글을 쓴 적이 있다. 그 다음 편으로 예정 되어 있던 이동 평균에 대한 알아보자.

이동평균

통계에서 이동평균은 전체 데이터 집합의 여러 하위 집합에 대한 일련의 평균을 만들어 데이터 요소를 분석하는데 사용되는 계산이다. 금융에서 이동평균은 분석에 일반적으로 사용되는 주식 차트 이다.

  • 이동평균은 기술분석에서 일반적으로 사용되는 주식 지표이다.
  • 주식의 이동 평균을 계산하는 이유는 지속적으로 업데이트되는 평균가적을 생성하여 지정된 기간동안의 가격 데이터를 평활화 하기 위해서이다.
  • 단순 이동평균은 과거의 특정 일수 동안 주저진 가격 세트의 산술 평균이다. 예를들어 15, 30, 100일 또는 200일이 될 수 있다.
  • 결과값이 지연되어 나타나는 경향이 있다.
  • 이동평균의 기간이 길어질 수록 지연이 커진다.
  • 최근값에 더 많은 가중치를 두려면 가중이동 평균이나 지수이동평균을 사용해야한다.

지난번 알아 보았던 평균과 평균 필터는 전체 값중 중간 값을 알수 있기 때문에 유용하지만 전체 샘플의 수가 많으면 최근 값이 평균값에 미치는 영향이 작아 지기때문에 누적 데이터가 많아 질수록 현재의 변화 상태를 반영하지 문하는 문제가 있다.

이 포스트에서 사용된 Raw 데이터는 Bitcoin data at 1-min intervals from select exchanges, Jan 2012 to March 2021에서 다운 받은 데이터 중 최근 365일 데이터를 사용하였다.