이전 글에서는 대충 미분 방정식이 무엇이고

종류와 각 미방이 어떤 현실의 현상을 표현하고 있는지 간단하게 정리했다.

 

이번에는 실제 미방을 풀어내는 과정을 다뤄보려고 한다.

1. 일정 비율(mu)로 증가하는 종의 개체수 구하기

2. 구름 물방울이 떨어지는 속도 구하기

* 블로그에 latex 인가 뭐 스크립트 넣으면 그리스어 변환되기는 한데 넣기 귀찬아서 mu라 대충 적음 

 

 

 

일정 비율(mu)로 증가하는 종의 개체수를 미방으로 풀어보기(변수분리법 사용하기)

- 대충 토끼의 경우 많으나 적으나 일정 비율로 증가한다고 가정하자

- 토끼가 적으면 적지만 (적은 개체수 x mu)만큼 증가하고 많은데로 (많은 개채수 x mu) 증가한다. 이를 미방을 표현하면 다음과 같다

* 여기서 말하는 일정 비율 mu는 현실의 데이터로 가장 적당한 값을 구해서 쓰면된다. 적당한게 없으니 그냥 변수로 놓자

- 이 미방으로부터 해 P 그러니까 P(t)를 구하기 위해 우선 우항의 P를 좌항으로 보내주자.

- 좌측 항에 dp와 dt가 붙어있다. 이 변수들을 이렇게 분리시켜보자(변수분리법)

- 여기서 부정적분을 한 후 계산하면 다음과 같이 정리된다.

- ln P = ut + C이므로 이를 P에 대한 식으로 고쳐주면, 미분방정식의 해 P(=P(t))가 나온다.

- 여기에 e^c를 대충 처음 인구수(초기조건) P0라 한다면 다음과 같이 정리된다

- mu가 0보다 크면 mu만큼 지수적으로 증가할것이고, mu가 0보다 작으면 인구는 줄어들것

 

mu비율 만큼 증가하는 개체수 모델의 문제

- 방금 모델링한 미방의 해를 보면 지수적으로 증가하나 실제 종은 지수적으로 증가하다가 한계에 도달하므로 현실을 완벽히 반영못함

 => 현실을 잘 반영하는 미방 모델을 설계해야한다.

 

 

미정 계수법

- 비동차 미분방정식의 해를 구하는 방법으로 미정-정해지지않은 계수를 구하는 방법

- 대충 비동차 미분방정식, 우항이 0이 아닌 미방을 푸는데 사용된다 정도만 이해하고 넘어가자

 

 

떨어지는 물체의 속도와 빗방울이 만나는 저항

- 중력을 몰랐을 시절 아리스토텔레스는 무거운 물체일수록 빠른 속도로 떨어진다고 생각하였으나, 진공을 가정 시(저항이 존재하지 않는다면) 모두 떨어지는 속도가 같음

- 빗방울 저항 : 하늘에서 떨어지는 빗방울에는 점성(끈끈이) 저항관성 저항(공기와 부딪혀 생김)이 반영

 * 적당한 그림 찾아보려 했는데 안보인다 ㅜㅜ

 

 

 

하늘에서 떨어지는 물체의 속도를 구하는 미분 방정식을 구해보자

- 속도는 아래 방향을 향하고, 물체에 작용하는 중력도 아래 <-> 저항력은 반대를 향한다. 그림으로 하면 다음과 같다.

 

- 위에서 속도 v = 중력 g - 저항 r 이라 적긴 했는데 대충 적은 것일 뿐이고 ma = F로 제대로 표현해야한다.

- 여기서 외력 F는 중력 - 저항이긴 한데 저항은 점성 저항, 관성 저항으로 나누어서 표현하면 다음과 같다.

 

- 물체의 크기 L은 지름 2r, 단면적 S는 구의 면적 pi r^2이라 한다면 공기 저항은 다음과 같이 정리할 수 있다.

- 빗방울에 작용하는 힘 F = 중력 - 저항이므로 다음과 같이 정리할 수 있음

 

- 이걸 그대로 계산하기는 너무 복잡하므로 다음 두 경우로 나누어서 생각해보자

 1) 구름 물방울 : 아주 작으므로 점성 저항만 작용된다

 2) 빗방울 : 무거워 빨리 떨어지므로 관성 저항만 작용된다.

* 작을수록 점성저항, 클수록 관성 저항의 영향이 크다.

 

 

 

 

 

 

(비동차 미방 풀기) 구름 물방울이 떨어지는 속도 구하기

 1) 우항이 0이일때의 해 일반해를 구한다

 2) 일반해와 초기조건을 이용하여 특수해를 구한다

- 구름 물방울은 빗방울에 작으므로 미방을 다음과 같이 정리하자

- 좌우항을 질량 m으로 나눈 후, 우항 v의 계수 6 * pi * r /m이 너무 복잡하므로 A로 놓으면 다음과 같이 정리됨.

- v가 붙어있지 않은 g를 제외하고 모두 우항으로 보내면 비동차 미분방정식임을 알수 있다.

- 비동차 미분방정식을 풀기위해 g를 0으로 놓고 일반해부터 구하자

(마지막 e^c는 그냥 c로 놓자)

- 기존 미방에 다시 돌아와 v(t) = c * e^(-At)에서 c = c(t)로 놓고, 일반해 v(t) = c(t) * e^(-At)를 대입해서 풀어보자

- 좌항을 두 함수 곱의 미분 정리로 풀면 아래와 같이 정리된다.

- 대입한 후 정리하면 c(t)에 대한 식이 만들어 진다.

- 구한 c(t)를 원래 일반해 v(t) = c(t) * e^(-At)에다 대입하면, 시간 흐름에 대한 속도 변화 v(t)가 나온다.

- 초기속도 v(0) = 0으로 하여 c'를 구한뒤 다시 v(t)를 정리하면 다음과 같음

- 결국에 v(t)는 어떤 그래프 모양이 될까? 아무것도 정해진게 없으니 구할수는 없지만 지수함수 e^x와 e^-x의 형태를 생각해보자

- 1-e^-x는 결국 0에서 시작해서 처음엔 빠르게 오르다 1에 가까워질 것이다

(e^-x 는 0에 수렴하므로)

- 여기서 시간이 무한히 흐를때 최종적으로 가까워지는 속도를 종단 속도라 한다.

- t = 무한대로 놓고, 계속 나두던 A도 정리해보자

 => 결국 종단 속도는 mg(=중량)에 따라 정해진다!

 

 

 

 

 

 

 

 

 

미분 방정식

- 단순 정의 : 함수와 함수의 도함수로 이루어진 방정식

- 독립변수 개수로 분류한다면

 1) 상미분 방정식 : 독립 변수가 하나인 미방

 2) 편미분 방정식 : 독립 변수가 여러개인 미방

- 용도 : 운동 방정식 F = ma에서 시작해 현실 일을 미분 방정식의 형태로 표현 -> 해를 구한다 -> 현상 시뮬레이션이 가능

 단순 예시) 비행기 시뮬레이션, 용수철 운동, 포물선 운동 등에서 시간 t에서 물체의 위치 같은것..?

 + 인구 변화, 광고 효과, 상품 매출 등을 미래에 어떻게 될지 예측 가능!

 

 

 

비행기 시뮬레이션 예제 - 비행기를 점으로 볼때, 등속 운동하는 비행기의 위치 구하기

- 실제 비행기에 구조와 작용하는 힘을 고려하기는 힘드니 점으로 볼때 위치를 구해보자

- 뉴턴의 운동 방정식 F = ma에서 시작

- 비행기가 등속운동하는 경우 외부의 힘이 존재하지 않음 ma = 0

- 가속도 a는 위치 x를 두번 미분한것이므로 다음과 같이 표현 가능

 => 다음 미방으로 부터 해인 x를 구하자, x는 시간 흐름에 따라 위치를 나타내는 함수(= x(t))

- 하지만 미방을 풀기전에, 거리 x = 시간 t X 속도 v 로 원래부터 이미 x(t)가 무엇인지 알고 있었다.

- x(t)에다가 초기 시작위치 x_0를 추가해주면 다음과 같이 정리됨

 

- 10m 지점에서 출발(x_0), 20m/s(v) 로 5s(t)간 이동하면 비행기의 위치는 다음과 같음

 

 

 

미분 방정식 분류

- 미분된 횟수(계)로 구분한다면 : 1계도함수, 2계 도함수...

 1) 1계 1차 미방 : x가 한번 미분됨

 2) 2계 1차 미방 : x가 2번 미분됨

- 선형/비선형으로 구분한다면 : 선형 미방, 비선형 미방

 1) 선형 미방 : x가 1차임(x^2같은게 없으므로)

 2) 비선형 미방 : x가 1차가 아님, 아래의 예시에서 sinx는 비선형 함수가 포함되있으므로 비선형 미방

- 계수가 변수인지, 정해진 수인지에 따라 : 변계수 미방, 정계수 미방

 1) 변계수 미방 : 계수가 변수로 된 경우, 아래 예시에서 m,v,k는 변수

 2) 정계수 미방 : 계수가 정해진 수인경우, 아래 예시에서는 1, 2, 3으로 정해짐

 

- 변수와 관계없는 계수(상수항)이 0인지 여부에 따라 : 비동차 미방, 동차 미방

 1) 비동차 미방 : 우측의 상수항이 0이 아님 

 2) 동차 미방 : 우측의 상수항(x가 없는)이 0임

 

 

미분 방정식을 통한 현실의 물리 운동 표현의 예시

계수 종류 무엇을 표현할까  
1계 동차 선형
시간(t)에 따른 인구수(P) 변화를 표현하는 미방  
비동차 선형
구름이 떨어지는 속도(v)를 나타내는 미방
(우항 mg - 6pi....는 중력과 점성 저항 표현)
 
2계 동차 선형
탄성과 저항(댐퍼?)를 고려한 진동 시스템 미방  
비동차 선형
위 진동 시스템에 외력(F_0 cos 블라블라)이 가해지는 경우 미방  

 

 

1. 인코딩 관련

 

문자열 인코딩과 문자 집합

- 프로세스와 메모리에서는 바이너리로 데이터를 읽고, 쓰므로 모든 것들이 2진수로 처리된다. 문자열 인코딩은 2진수 데이터를 어떤 식으로 읽어서 문자로 표현할지에 대한 방식을 의미한다.

- UTF-16으로 쓴 문자열을, UTF-8로 읽을 경우 문자가 깨지게 된다. 읽고자 하는 텍스트의 인코딩 방식으로 읽어야한다.

- 예시 : 아스키 코드, EUC-KR, UTF-8, UTF-16

- 문자 집합 chracter set : 문자들의 모음으로 ASCII는 영어와 여러 특수 문자의 모음, 유니코드는 전세계 문자들의 모음

- 문자 집합과 문자열 인코딩의 차이 : 문자집합인 유니코드를 인코딩 한 방식이 UTF-8, UTF-16 등이므로 문자 집합(바이너리=수와 문자의 관계 모음)과 인코딩 방식(바이너리를 어떻게 읽을지에 대한 규칙)이란 점에서 다름.


ASCII

유니코드 

 

문자열 인코딩 종류

1. 아스키 코드 : 1바이트로 128개의 문자 표현

2. EUC-KR

 - 옛날에 한글과 영어만을 표현하기 위한 한국만의 인코딩 방식, 2바이트

3. UTF-8

  - 여러 언어를 모은 유니코드의 인코딩 방식 중 하나로 1바이트로 인코딩. 문자에 다라 1 ~ 6바이트까지 사용

  - 가장 많이 쓰는 방식, 아스키 코드와 호환, 윈도우, 자바, 임베디드 외 대부분 환경에서의 표준(+Json)

4. UTF-16

 - 2바이트로 인코딩 -> 유니코드 값이 커 2바이트로 부족하면 4바이트 사용. 

 - 자바와 윈도우에서 주로 사용

 


UTF-8 규칙 
- 1바이트만으로 충분한 경우(영어) : 0xxxxxxx(0으로 시작)
 ex) 영어 A는 유니코드 0x0041 -> 0x41 한바이트로 표현
- 2바이트가 필요한 경우 : (1) 110x xxxx  (2) 10xx xxxx
 ex) 파이는 유니코드 0x3C = 0000 0011(3) 1100 0000(C)
-> 위 규칙으로 표현하면 110/0 1111(0xCF), 1000 0000(0x80)
- 3 바이트가 필요한 경우 한글 : (1) 1110 xxxx (2, 3) 10xx xxxxex) '한'은 유니코드 0xD55C = 1101 0101(D5) 0101 1100(5C)
-> 1100/ 1101(0xED), 10/01 0101(0x95), 10/01 1100(0x9C)


유니코드를 UTF-8로 인코딩 예시
- 좌측에 A, 파이, 한의 유니코드 값에 따라 UTF-8로 3바이트까지 사용해서 인코딩한 예시 내용 정리

 

 

2. 시간, 식별자, 해시

 

컴퓨터 시간 종류

- 타임 스탬프 :  1970년 1월 1일 0시 0분 0초부터 1초 단위(.밀리초)로 증가해서 정수 형태로 나타내는 시간

- 단조 시간 : OS 시작햇을때 기준으로 시간

- 실제 시간 : 시간 서버로 얻어 동기화 한 시간

타임 스탬프 변환 예시

 

범용고유 식별자 UUID Universial Unique IDentifier

- 같은 세션, 같은 사용자를 넘어서 가장 크게 구분하기 위한 식별자

- 형태 : 16진수 32개(8-4-4-4-12)  4 x 32 = 128비트 = 16바이트 크기 -> xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

 

 

해시 함수

1. 특징 : 어떤 종류든 간에 입력된 값을 고정 길이 해시 값으로 변환, 동일한 입력 = 동일한 해시, 해시로 입력 복원 불가

2. 용도 

 - 암호 검증 : 서버에서 암호 대신 해시 저장 -> 입력한 비번의 해시가 저장된 해시와 같으면 ok(비번 저장필요 x)

 - 데이터 변조여부 검증 : 데이터 변조시 해시 값이 변경됨.

  ex) 파일 전송 시 파일과 해시값을 같이 보냄. 해시 함수에 전송된 파일을 넣어 얻은 해시값과, 전달받은 해시값이 다르면 파일 전송 오류/변조

3. 종류

 - MD 5 : 초기 해시 알고리즘, 적은 연산량, 충돌/동일한 해시값이 나오기 쉬움

 - SHA-1 Secured Hash Algorithm-1 : 200TB까지 입력 가능, 20바이트 해시 생성, md5보다 많은 연산량+적은 충돌가능성

 - SHA-2 : SHA-224/256/512 등 통틀어서 부르는 명칭. SHA-1보다 연산량 많으나 안전

 

 

 

 

 

 

3. 데이터 규격

 

JSON

- {}와 키, 값으로 구성된 데이터 구조, UTF-8 문자열 인코딩 사용, 주석 지원 x

- 장점 : 읽기 쉽다.

- 단점 : 텍스트로 이뤄저 크다, JSON 파일의 형태(버전)이 바뀐경우 전체(서버, 클라이언트 등) 바꿔줘야함. 

 

YAML Yet Another Markup Language

- json과 비슷 + UTF-8/16 + 앵커, 별칭 이용

 

XML eXtensible Markup Language

- 여러 목적의 마크업 언어를 만들기 위한 마크업 언어 = 다양한 형태의 데이터 구조를 만드는 마크업 언어

- 일찍만들어짐, 많이 씀,  MS 워드 파일 등은 XML 파일 형태, 다양한 인코딩 지원, 읽기 쉬우나 많은 데이터 필요


xml

json

yaml

 

 

프로토콜 버퍼 Protoco Buffer = Protobuf)

- 구조화된 데이터(구조를 가진 텍스트)를 데이터 직렬화(바이너리)하는 구글이만든 오프소스

- 장단점 : 크기가 줄어 통신, 저장 시 사용 <-> 알아보기 힘듬 = 유지보수 힘들다

- 프로토콜 버퍼 사용법

 1. 스키마 파일(데이터 규격) 정의(.proto) : 직렬화(바이너리) 형태 정의
 2. 컴파일러(protoc)로 컴파일 : 인터페이스 코드 생성
 3. 인터페이스 코드 임포트
 4. 인코더 - 디코드

 


protobuf 사용법


protobuf 스키마 파일, 데이터 예시

 

base64

- 바이너리를 아스키 문자열로 대치한 인코딩

- 방식 : 바이너리를 24비트(3바이트)로 나눔(바이트가 남을때 패딩 '='(=0) 추가)-> 6비트로나눔 -> 0 ~63개(64개)문자 표현

- 장단점 : 바이너리를 문자열로 취급(=이미지, 음성 등 바이너리를 문자로 표현) <-> 데이터가 길어진다


base64 인코딩 테이블

text를 base64인코딩

 

 

 

 

4. 프로세서 관련

 

가상 메모리

- 2차 메모리(HDD, SSD)를 이용하여 각 프로세서가 4GB의 가상의 메모리 공간(주소)을 가지고 프로그램 실행.

- 각 가상메모리는 코드, 데이터(전역 변수), 힙(동적 할당), 스택(함수 호출, 지역 변수) 영역을 가짐.

- 장점  ; 모든 프로세스는 4GB나 되는 공간을 갖는다, 프로세스 간에 침범 방지

- 원리

 1. 가상 주소가 크므로 주소를 4kb의 고정 크기 덩어리 페이지로 분할

 2. 메모리 관리 장치 MMU 혹은 페이지 테이블로 가상 주소를 물리 주소로 변환

  => MMU나 페이지 테이블이 알아서 가상 주소를 물리 주소려 변환해주니 신경 쓸필요 없음

 

명령어 파이프라인

- 비 파이프라인 : 명령어 사이클(읽기, 해석, 실행, 기록)이 다 끝나면 다음 명령 처리

- 명령어 파이프라인 : 작업이 넘어가면 새로운 명령어를 받아 수행하는 방식. 아래 그림의 경우 최대 4명령이 동시 실행

- 슈퍼스칼라 파이프라인 구조 : 파이프라인을 여러개 두어 여러 명령어를 동시에 처리

- 비순차 프로세서 파이프라인 :  파이프라인에서 순차적으로 처리하면 대기해야하는 경우 발생, 스케줄링을 추가하여 비순차적으로 처리하여 고속화. 명령어 인출 -> 해독 -> 리네임(가짜 의존성 제거를 위한 레지스터 이름 변경) -> 이슈(할당) -> 스케쥴링 -> 실행                              

비파이프라인 A와 파이프라인 B

비파이프라인 A, 파이프라인 B

슈퍼스칼라 파이프라인

비순차 프로세서 파이프라인

                                                                                                                                                                                                                             

하이퍼 스레딩

- 하나의 HW가 두개의 컨텍스트 유지(프로세서가 2개처럼 보인다)

 

 

병렬 컴퓨터

- 프로세서를 모아, 협력해서 계산

- 구조

 1. SISD(single instruction single data) : 하나의 명령어가 하나의 데이터만 갖고 계산, 스칼라/슈퍼스칼라 프로세서

 2. SIMD(single instruction multiple data) : 하나의 명령어가 여러 데이터갖고 계산(벡터 연산), MMX, SSE

 3. MISD(multiple instruction single data) : 데이터 하나 명령어 여러개

 4. MIMD(multiple instruction multiple data) ; 여러 명령어로 여러 데이터 처리, 일반적인 멀티 프로세서 -공유/분산 메모리


병렬 컴퓨터 구조 비교

병렬 컴퓨터 구조 형태

- GPU : 병렬 프로세서, 비순차 처리가 많지만 ALU가 적은 CPU와 달리 훨씬 많은 ALU와 큰 메모리 대역폭 가짐

 

 

데이터 교환 방식

- 패킷 교환 방식 : 전송하고자 하는 데이터를 패킷로 분할하여 디지털 신호를 목적지로 전달하는 방식

- 회선 교환 방식 : 아날로그 신호(전화같은거)를 중간에 교환기에서 회선을 선택함으로써 원하는 목적지로 보내는 방식

 

 

패킷 교환 방식
회선 교환 방식

 

 

계층 모델

- 네트워크 내 장비와 프로그램의 역활을 계층 별로 분류한 모델

- OSI 7계층 참조 모델 :  복잡해서 잘 안쓰고 네트워크 구조 설명하는데 이용

- TCP/IP 모델 : 네트워크를 간략하게 4단계로 나타낸 모델로 대표적인 프로토콜이 TCP, IP이다보니 이런 이름 가짐.

 

 

프로토콜

- 어떻게 동작할지 서로 다른 장치/소프트웨어 간에 혼선을 방지하도록 정한 약속

 

TCP/IP 모델

- 어플리 케이션 계층 : 사용자와 만남, HTTP, SMTP, POP 등

- 트랜스 포트 계층 : 데이터 전송 방식과 포트(전달할 프로세스) 결정, TCP - 송신 후 잘 송신되었는지 확인하는 방식으로 조금 늦어지더라도 확실한 전송이 필요한 경우 (파일 전송), UDP - 잘 도착했는지 확인 없이 송신하며 패킷이 다소 손실되어도 괜찬은 경우 사용(전화) 

- 인터넷 계층 : 경로, 통신 제어 역활, IP - 송수신지 정의, ICMP 

- 네트워크 인터페이스 계층 : 데이터를 어떻게 보낼지 무선인지 유선인지 광케이블인지 같은것들을 결정, MAC, ARP, Ehternet(유선), IEEE 802.11(무선)

 

 

어플리케이션 계층

- 사용자에게 서비스를 제공하는 계층

- 대표적으로 HTTP, SMTP, POP, FTP 등

HTTP 프로토콜

트랜스포트 계층

- 어플리케이션 계층으로 전달받은 데이터를 세그먼트로 만들어 인터넷 계층으로, 인터넷 계층에서 전달받은 패킷을 풀어서 어플리케이션 계층으로 전달.  

- TCP 인지 UDP 인지에 따라 전송 방식을 결정하며, 포트 번호로 어느 어플리케이션에 전달할지 판단.

- 데이터에 TCP 헤더가 붙으면 세그먼트, UDP 헤더가 붙으면 UDP 메시지가 된다.

- TCP는 연결을 하기 위해 3방향 핸드셰이크 과정을 진행하며, 최대 세그먼트 크기에 맞춰 송수신

- 한번에 받을 수 있는 데이터 크기(버퍼 크기)에 따라서 빠른 전송을 위해 한번에 보내나 버퍼가 비워지지 않으면 전송멈춤

 

 

 

 

 

 

인터넷 계층

- IP 주소에 따라서 데이터를 전송할 목적지를 정하고, 경로를 설정하며(라우팅) 제어하는 계층

- IP : 송 수신지가 인터넷 서비스 제공자로부터 받은 주소, 생존시간인 TTL을 가짐, IP 해더가 붙은것을 패킷이라 하며 패킷은 다른 패킷들과  섞인채 전달되나 IP 패킷 헤더의 같은 데이터인지를 판단하는 식별자, 원래 데이터에서 위치를 나타내는 프래그먼트 오프셋 등을 이용해서 수신지에서 복원된다.

 

- 라우팅 : 네트워크를 구분하는 라우터들을 거쳐 목적지까지의 최적의 경로를 찾는 과정으로 라우팅 테이블 이용. 정적 라우팅(직접 라우팅 테이블 작성), 동적 라우팅(라우팅 프로콜로 동적으로 라우팅 테이블 작성)

 

- ICMP internet control message protocol : 데이터 전송 중 문제 발생 시 상황 안내를 위한 프로토콜

- NAT network address port translation : 사설 IP를 할당 받은 단말을 공인 IP로 외부와 통신할수 있게 해줌

- DNS domain name service : 도메인 네임 서버에서 도메인 네임을 받으면 해당 도메인의 IP 주소 전달

- DHCP dynamic host configuration protocol : dhcp 서버에서 자동적으로 새 호스트가 연결되면 ip를 할당

 

 

네트워크 인터페이스 계층

- OSI 7계층 참조 모델의 데이터 링크 계층(소프트웨어 관련 프로토콜)과 물리 계층(하드웨어 관련 프로토콜)로 구성 된 계층으로 이더넷 혹은 무선 LAN에 따라 송 수신지 등의 MAC 어드레스를 추가한 이더넷/무선 LAN 프레임을 전송

이더넷 프레임
무선랜 프레임

- 하드웨어 관련 프로토콜 : 전화 회선을 이용한 통신 PPP, 동축 케이블을 이용하는 EDP, 무선 LAN IEEE 802.11

- 소프트웨어 관련 프로토콜 : ip -> mac addr을 구하는 ARP, 1대 1로 연결하는 PPP 등

- 이더넷 : 케이블로 호스트 연결시 따르는 규격, 통신 속도/접속 방식에 따라구분

- 허브 : 네트워크의 중심이란 의미로 수신지에 전달하는 리피터, 통신 충돌을 방지하기 위해 각 호스트 mac addr을 저장했다가 목적지에만 전달하는 L2 스위치(데이터 링크 계층 역활도 수행), LAN을 가상의 VLAN으로 분할 가능한 L3 스위치(인터넷 계층 기능 수행) 등이 있다.



무선랜

l2 스위치

l3 스위치

 

키를 이용한 암호화

- 키를 이용해서 데이터를 암호화하여 통신하는 방식

- 공유 키 암호화 : 공유하는 키로 암 복호화 하는 방식, 공유키가 유출 시 위험

- 공개 키 암호화 : 공개키, 개인키 두 개를 이용. 공개 키로 암호화, 개인키를 가진 사람만 복호화 하여 사용

 

 

공개키 방식 문제점과 보완 방법

- 공격자가 속이고 공개키를 전달할 수 있음. -> 전자 인증서, 전자 서명, 공개키 개인키를 이용한 공개 키 기반구조 이용

- 전자 인증서 : 전달 받은 공개키가 공격자의 것이 아닌 것을 인증함(신분 사칭 방지).

- 전자 서명 : 전달 받은 데이터가 위변조 되었는지 확인하기 위한 방식. 개인 키로 전달 데이터 해시 값을 암호화 하여 데이터와 같이 전달 해, 전달 받은 데이터의 해시값과 공개 키로 복호화 한 해시값이 일치하는지 여부로 판단.

* 공개 키로 암호화 한것은 개인 키로 복호화, 개인 키로 암호화 한 것은 공개 키로 복호화 가능

 

공개 키 기반 구조

 

 

 

SSL

- 인증 기관에서 받은 서버 인증서로 올바른 서버임을 인증, 통신 암호화하는 방식으로 HTTP에 적용한 것이 HTTPS

 

1. 로봇 분류

- 매니퓰레이터 : 엔드 이펙터(로봇의 맨 끝 손가락 같은 부분)로 물체를 집거나 작업하는 로봇

- 이동 로봇 : 고정된 위치에 있는 매니퓰레이터와 달리 바퀴나 다리 등으로 이동하는 로봇

-> 구성요소, 좌표, 기구학, 동력학, 제어 시스템 등 전반에 대한 이해 필요

분류 로봇 종류 특징
구동법 전기식 간단, 저렴, 저출력 -> 과부하 x  , 깨끗, 정확, 편한 관리     - 회전 모터, 리니어 모터
유압식 복잡, 고가, 고출력 -> 과부하 ok, 오염, 고속, 관리 불편     - 큰힘이 필요할 때 사용
공기압식 복잡, 고가, 고출력 -> 과부하 ok, 깨끗, 부정확, 편한 관리  - 화재 위험 시 사용, 부정확 but 저렴
작업 공간 직교좌표형 쉬운 제어
원통형 직교좌표에 비해 기구학 설계 간단
원형 구조 간단
SCARA형 저렴, 빠름, 조립 작업에 이용
다관절형 최소 공간에서 최대 작업 
제어방법 서보제어 피드백을 통해 추종(servo). - 서보 제어 ex) 프린터, DVD, 카메라 등
비서보제어 피드백없이 입력 한대로 동작하는 경우 - 비서보 제어 ex) 선풍기, 믹서기, 환풍기
자유도 매니퓰레이터 6 DOF : x, y, z, roll, pitch, yaw
이동로봇 3 DOF x, y, theta

* 작업 공간에 따른 로봇 형태들

Scara형

* 이동 형태에 따른 분류

 

 

 

 

2. 로봇 구성 요소

- 매니퓰레이터, 엔드 이펙터, 구동기, 센서, 제어기 등

기구부 기계/기구 프레임, 바퀴(+바퀴 축), 베어링, 기어, 벨트, 엔드이펙터
HW부 전기/전자 SBC, 제어기, 전원부, 구동기, 센서
SW부 프로그램 펌웨어(모터/센서 제어), OS, 응용 SW

https://kingjjin.tistory.com/21

구성요소  
매니퓰레이터 구성 : 관절(조인트), 링크(관절 연결), 엔드 이펙트
동력 : 전기, 유압, 기압
조인트 : 직선 운동(primistic 조인트), 회전 운동(revolute 조인트)의 힘을 전달
엔드 이펙터
(말단 조작기)
매니퓰레이터 끝단에 설치된 작업 장치
ex) 그리퍼(열고 닫혀 손가락처럼 집음)
구동기 전기/유압/기압 등으로 로봇에 동작을 주는 모터/실린더 등의 장치
ex) 리니어 엑추에이터, 회전식 엑추에이터(대표적으로 모터)
* 하단에 모터 추가 정리
센서 물리량을 전기적인 신호(아날로그/디지털)로 변환하는 소자/회로 ex)광, 이미지, 초음파, 위치 센서 등
제어기 지정한 작업을 하도록 센서 측정 값으로 구동기를 적절하게 제어하는 장치

* 엔드 이펙터의 종류

http://www.aistudy.co.kr/robot/end_effector.htm

2.1 모터의 종류

- 로봇의 구동 장치로 사용

- 전원에 따른 모터 분류

전원 구분
DC 모터 소형, 고속, 큰 토크 부하에 따라 큰 속도 차, 어려운 속도 가변, 짧은 수명(브러시)
AC 모터 큰 토크, 저가,  쉬운 속도 가변 느린 회전

- 전원 및 구조에 따른 분류

1차 분류 2차 분류 3차 분류 특징
DC 모터 브러시 권선 큰 기동 토크, 토크 ∝ 전류 ∝ 1 / 회전속도(직권 : T ∝I^2 ∝ 1/n^2)
<-> 브러시에 의한 노이즈, 수명 저하 등 손실
타여자, 직권(무부하 운전시 위험, 속도-토크 큰변화:전차), 분권(정출력, 무여자 운전 시 위험), 복권(가동 복권 , 차동 복권 : 수하 특성)
속도 제어 : 계자제어(정출력 제어), 전압(광범위), 저항 (효율x)
* 전압 속도 제어 : 워드레오너드(전압제어), 일그너(플라이휠, 큰부하)
영구자석
브러시리스
(BLDC)
트랜지스터 - 브러시, 정류자 x -> 긴 수명(마모 x)
- 반도체 소자로 통전/정류하며 노이즈 발생 x
- 브러시 모터와 특성은 같으나 효율은 약간 저하
싸이리스터

AC 모터
유도 모터 공통 - 고정자로 생성한 회전 유도 자계로 회전자를 회전
- 간단, 저렴, 튼튼, 경부하에선 효율이 낮음
단상 유도 - 단상이라 회전 자계 x -> 기동 토크 x -> 혼자 회전 x
  => 외력(보조 권선, 기동 권선으로 기동) -> 토크 발생 -> 회전
- 반발기동(DCM와 비슷한 권선과 정류자, 가장 큰 기동토크), 반발 유도(회전자 권선 2개, 큰 기동토크/속도변화), 콘덴서 기동(콘덴서를 삽입해 주권선과 보조권선 사이 회전자계 발생, 중간 기동토크), 분상기동(위상 다른 두 전류로 기동, 적은 T), 셰이딩 코일(가장 작은 기동T)
3상 유도 - 단상 유도M보다 간단,소형, 보통공장용, 소용량 농형/대용량 권선형
농형(다람쥐바퀴) : 회전자튼튼,좋은운전성능,큰기동전류 
권선형 :  슬립링통해 2차저항으로 기동제어, 회전자권선으로복잡, 큰기동토크, 대용량
동기 모터 단상 동기 회전자(영구자석), 동기 속도, 역률 1, 큰힘, 속도변화어려움 
3상 동기
유니버셜 모터 직/교류 모두 사용, 큰 기동 토크, 쉬운 고속 회전 <-> 큰 노이즈, 짧은 수명
서보 모터 회전형 DC 서보 DC모터와 유사하나 엔코더를 통한 피드백을 통해 정교, 자동제어
AC 서보
스태핑 입력 펄스 신호 수로 회전 각도, 주파수로 회전속도 제어
리니어 모터 모터 회전 -> 선형

 

* 직류 전동기 부하 전류와 속도/토크 특성곡선

https://m.blog.naver.com/cwi1125/221160052987

* 모터 종류



DC 모터

BLDC 모터 - 브러시 대신 다이오드/TR이용


단상 유도 전동기 - 스스로 기동 못해 보조 권선 이용

3상 유도 전동기 - 고정자의 회전 자계로 회전

유도모터, 동기모터 비교 - 동기 모터는 자석의 토크로 회전

유니버셜(만능) 모터 - 교류원을 정류 후 사용

스태핑모터, 서보모터 비교 - 서보모터는 엔코더 위치 정보를 폐루프로 받음

스테핑 모터 - 펄스 신호 형태에 따라 제어

리니어모터 - 회전 운동을 직선 운동으로 변환

 

 

 

 

2.2 센서 종류

- 사람과 센서 시스템 비교(신호 전달 방향 ->)

사람 외부 환경 오감 신경 동작
센서시스템 외부 환경 센서(변환기) 전송로 처리기 엑츄에이터

 

- 센서 종류와 특징

검출대상 - 광센서 : 가시광선, 적외선, 자외선 등의 빛을 처리 가능한 양으로 변환하는 센서 -포토 다이오드(광 기전력 효과), Cds 셸(광도전 효과 : 반도체에 빛이 닿을 때 전자와 정공 증가 -> 전류 증가), 광전관, PSD 등
- 이미지 센서 :  CCD(전하결합소자), CMOS(상보 금속산화막 반도체를 이용한 액티브 픽셀센서)

- 온도(적외선) 센서 : 접촉형 - 작은 물체/원거리/고속 이동물체 측정 힘듬, 짧은 수명, 2000도까지,
                            저항 변화, 열전 현상이용 -> ex) 저항온도센서, 써미스터, 열전대, 바이메탈
                           비접촉형 : 작은 물체/원거리/고속 이동물체 측정 가능, 긴수명, 고온측정가능,
                            측정 대상의 적외선 측정 ->작은 크기, 높은 정확도, 디지털 출력
                           ex) 적외선 온도센서, 광 온도계 
 * 적외선 센서 : 적외선으로 온도, 압력, 방사선 등 물리량 측정

- 자기센서 : 자기 효과를 이용해 전기 신호를 만들거나, 바꾸기 위한 변환역활
 * 홀 효과(브러시리스 모터 회전 제어, 자계/전류 측정), 자기저항효과(포텐셜 미터), 자기저항효과(MR효과- 자기 인코더)

- 압력센서 : 스트레인게이지, 압전소자, 코일스프링 (기계식, 전자식, 반도체식, 실리콘 등)
- 근접 센서 : 자기, 광학, 초음파, 유도성, 용량성, 와전류 등을 이용
- 위치 센서 : 포텐셔미터(가변저항-직선/회전형), 엔코더(회전/선형 증감형, 절대위치형), 리졸버, 시간변위센서 등
- 진동(음파) 센서 : 세라믹스, 마이크로폰, 초음파 센서 등
* 초음파 센서 : 20kHz이상주파수이며 강한 지향성을 가진 초음파로 거리,두께, 움직임 검출 -> 거리/두께 측정, 비파괴 검사, 의료진단, 신호 처리 등(공중/수중/고체/특수환경용)
- 바이오 센서 : 생체 화학/미생물 반응 등으로 측정하는 센서 - 미생물/효소/나노바이오센서
- 그 외 : 가스 센서, 습도 센서 등
재료 반도체 센서, 세라믹 센서, 금속 센서, 미생물 센서
작동형태 능동 센서, 수동 센서
출력형태 아날로그 센서, 디지털 센서 등

* 센서 정리


cds 센서 -빛에 의해전류량 변화(광도전)

포토다이오드-빛이셀때역(광)전류증가

CCD - 필터가 해당 색상만 통과시켜 세기 측정, 모자익이미지 취득 ->처리후 사진

써미스터 - 온도에 따른 저항변화

홀 효과 - 전류가 흐를때 전도체에 수직으로 자장이 걸릴때, 전류와 자장에
수직하게 홀전압이 걸리는 현상 

홀 효과를 이용한 회전속도 측정
- 두 자석이 회전 시 홀 효과 센서에 전압이 걸릴때 측정


스트레인 게이지
- 압력을 전기 출력으로 변환하는 로드셀을 이용한 압력 센서

초음파 센서 - 발진기 -> 변조 -> 트리거 -> 수신 -> 측정 -> 출력

회전/선형 증감 엔코더-빛카운팅


절대 엔코더-그레이코드에 따라 각표시

 

2.3 제어기

- 지시된 작업을 할 수 있도록 구동기를 제어하는 장치 ex) 시퀀서, MCU

 

 

 

원래 욕심같아서는 좌표계, 기구학, 동역학 같은 내용들도 하고는 싶었지만 너무 양이 많기도 하고

대학으로 따지면 몇과목을 들어야 하는 로봇공학, 전기기기, 제어기, 센서 등의 내용을

한번에 볼수 있게 10페이지도 안되게 간단하게 나마 정리한거에 만족해야지.

+ Recent posts