2.4.1. 전기자 전압에 대한 속도 응답 특성

* 식 (2-8) 해석

1. 기본 전기자 회로 방정식

 

2. 라플라스 변환 적용

 

 

* 식 (2-9) 해석

 

*그림 2.13 해석

1. Ia 해석

앞서 구한 전기자 회로 방정식을 Ia(S)로 다시 표현하면,

따라서 Ia 블록도가 만들어진다.

 

2. Wm 해석

앞서 구한 기계 회로 방정식을 Wm으로 다시 정리하면 블록도가 만들어 진다.

 

직류 전동기의 전달 함수

앞서 만든 블록도를 통해, 부하를 포함한 DC 모터의 전달 함수를 구해 보면, DC모터의 고유 특성을 알 수 있다.

이때 DC모터 고유의 특성을 알기 위해 외부 부하(TL)은 0으로 본다.

책의 식 2-10의 유도 과정은 다음과 같다.

 

직류 전동기의 전달 함수를 다시 2차 시스템의 전달함수 형태로 변환 하면, 해석이 더 쉽다.

1. 2차 시스템의 전달 함수

 

 

개인적인 생각으로, 직류 전동기의 기본 구성 및 기본 동작 원리는 다음 두개의 유튜브가 가장 쉽고 자세히 나와 있다고 생각 된다.

 

 

https://www.youtube.com/watch?v=kt6t-GPWBt8&list=PLUAD9cI6mzHiWBaXZpt7pzEJz3dTl6MU8

 

 

https://www.youtube.com/watch?v=CWulQ1ZSE3c&list=PLUAD9cI6mzHiWBaXZpt7pzEJz3dTl6MU8&index=5

 

김상훈 교수님 저서인 모터제어를 공부하며, 내용을 정리하도록 한다.

 

 

 

책 구매 링크 : 

https://search.shopping.naver.com/book/catalog/52818494127?cat_id=50005678&frm=PBOKPRO&query=%EB%AA%A8%ED%84%B0%EC%A0%9C%EC%96%B4+%EA%B9%80%EC%83%81%ED%9B%88&NaPm=ct%3Dmb36pxm8%7Cci%3Deeb9b143f952c970e0c28faa8a1926a3dc0bd6d6%7Ctr%3Dboknx%7Csn%3D95694%7Chk%3Dbe9e3aa83c90d17c1506c23393fa44ea129cf2ad

 

모터 제어 : 네이버 도서

네이버 도서 상세정보를 제공합니다.

search.shopping.naver.com

 

 

정상상태란,

  • 모터가 충분히 시간이 지나서, 전류, 속도, 토크 등의 출력 물리량의 평균값이 거의 일정한 상태를 말함.
  • 따라서, 전류 미분값(di/dt)도 0, 속도 미분값(dWm/dt)도 0인 상태가 된다.
  • 이때 만약 Bwm이 아주 작아서, TL에 포함이 가능하다고 하면, 기계 회로 식은 다음과 같이 간단해 질 수 있다.
기계 회로 원식 정상 상태의 기계 회로 식

 

이러한 정상 상태에서 책의 식 2-5 유도 과정은 다음과 같다.

* 여기서 알수 있는 내용은? 모터의 속도( ωm )는

  • 전압(Va)가 커질수록 속도가 커지고
  • 부하 토크(TL)이 커질수록 속도가 줄고
  • 계자자속이 약해지면 속도가 커짐
  • 이 내용이 그림 2.9

 

 

2.3.1 전기자 전압 제어(Armature Voltage Control)

1. 전기자 전압 제어의 개념

전기자 전압 제어는 계자 자속(Φf)은 일정하게 고정해 두고, 전기자 전압 Va를 조절하여 모터의 속도를 제어하는 방식.

계자 자속은 바뀌지 않기 때문에, 속도는 주로 전기자 전압에 의해 결정 됨.

 

2. 기본식 (식 2-6)

정상상태에서의 속도 ωm는 아래 식으로 표현

  • Ke = Kt로 설정
  • 첫 항은 전기자 전압에 비례하는 속도 성분(무부하 속도)
  • 두 번째 항은 부하 토크가 증가하면 속도가 줄어 드는 성분
  • 즉, 전기자 전압이 높아질수록 속도가 증가하고, 부하 토크가 증가할 수록 속도는 감소됨.

 

3. 그림 2.10 해석

  • 동일 TL 기준으로 인가전압(정격전압) 변경시, 속도가 변경 됨.
  • 동일 인가 전압 기준으로, TL이 변경시 속도가 변경됨.
  • 토크가 무한대로 커질수 없고, 토크의 한계점(전부하토크)가 존재함.
  • 전압을 무한대로 올릴수 없고, 따라서 속도의 증가에 한계점이 존재함.

 

2.3.2 계자 자속 제어(Field Control)

식을 살펴보면, 계자 자속은 분모항이기 때문에, 계자 자속이 작을수록 모터속도(ωm)은 커지는 것을 알 수 있음.

보통은 전압으로 속도를 더이상 올리지 못할때, 계자 자속을 낮추어 속도를 더 올리는, 악계자 제어로만 사용함.

 

하지만, 계자 자속을 낮추어 속도를 올리는 경우, 토크는 낮아진다.

왜냐 하면, 토크는 다음과 같은 식에 의해 생성 되기 때문에.

 

이때, 토크를 다시 올려주기 위해 전류를 크게 해주면? 권선의 동손이 증가하여 효율이 나빠짐. 열도 발생

 

결과적으로, 모터 속도를 높이기 위해 계자 자속을 줄이면, 다음과 같은 부작용이 발생 가능

  • 토크 감소
  • 과전류 위험
  • 모터는 큰 인덕턴스 성분을 가지고 있기 때문에, 계자 자속 변화가 느림 --> 속도 응답이 느려짐.
  • 전자기 반작용이 증가해 자속 제어 어려워짐.

따라서, 보통 계자 자속에 의한 속도 제어는 주로 정격 속도의 3배 이하의 범위에서만 사용 된다.

 

지금까지의 내용을 정리하여 다시 서술하면,

  • 모터가 일정 속도(ωbase)에 올 때 까지는 전압을 증가 시켜 모터 속도를 증가하며
    • 이 구간을 Constant Torque Region이라고 부름
    • 정격 전압값 까지만 올릴수 있음
  • 정격 전압값 이후 구간에서는 계자 자속을 낮추어 모터 속도를 증가 시킨다.
    • 이 구간에서는 토크가 감소한다.
    • 이 구간을 Constant Power Region이라고 부름

 

에제1.

 

예제1-1) 정격 토크와 정격 전기자 전류

 

 

* 회전 속도 단위 변환 공식

 

예제1-2) 전기자 전압만 10% 감소시킨 경우의 전부하 시 속도

가정)

  • 계자 자속(Φ)은 일정.
  • 부하 토크는 정격과 동일하게 유지 → 전류도 정격 상태와 동일하게 유지됨

 

풀이과정)

 

 

2.2.1 직류 전동기의 수학적 모델

직류 전동기는 다음과 같은 순서로 동작 함.

  • 외부에서 Va 전압을 인가시, 전동기 등가식에 의해 전류(Ia)를 구할수 있음.
  • 전류 Ia에 자속이 추가 되면, 전동기를 돌리는 힘(Te)가 발생
  • 전동기를 돌리는 힘은 외부의 부하를 돌리게 됨. 

 

1. 전기자 회로

전기자 회로란, DC모터의 전기적인 해석을 뜻한다.(외부에서 Va 입력시, 발생하는 Ia를 구하기 위함)

DC모터를 수학적으로 해석하면, 저항, 인덕턴스, 유기 기전력으로 모델링이 된다.

이를 표현하면 다음과 같다.(책 그림 2.6 참고)

 

이 식은 전기자 권선에 걸리는 전압 va가 아래 3가지 요소로 나뉜다는 걸 보여준다.

 

 

2. 유기 기전력(Back EMF)

  • 모터가 돌면, 도체가 자기장을 가로질러 움직이면서 전기를 발생 시킴(발전기의 원리).
  • 이로 인해 생성되는 전압.
  • (모터에서 사용되는) 유기 기전력 공식

 

  • 유기 기전력은 플레밍의 오른속 법칙으로도 이해 가능함.
    • 엄지 : 모터가 엄지 방향으로 운동하는 경우 
    • 검지 : 자기장 방향(N --> S 방향)이 검지 방향이면
    • 중지 : 전류 (유기 기전력)는 중지 방향으로 발생 하고, 이로 인해 기전력 전압이 발생

 

* 유기 기전력의 단순화

실제 유기 기전력 단순화된 유기 기전력

일반적으로 계자 자속은 모터 마다 일정 하다. 따라서, 이걸 상수로 포함시켜 단순화 시킬수 있게 된다.

 

3. 회전력

* 간단히 이야기 하면, 전기자 회로에서 구해진 전류(Ia)로 인해 어느 정도의 Tq가 발생하는지를 알아 보는 부분임.

 

외부 자성이 있는 환경에서, 코일을 감은 도체에 전류Ia를 발생 시키면, 도체가 자석 성분으로 변한다.(전자석)

이때 외부 자성이 있고, 도체도 자석으로 변했기 때문에, 서로 밀거나 당기는 힘이 발생한다.

이로 인해 도체(모터)가 움직이는 것이고, 이때 미는 힘(회전력)은 다음과 같다.

 

 

 

4. 기계적 부하 시스템의 운동 방정식

앞서 3에서 계산한 모터의 토크(Tm)이 어떻게 소비 되는지를 나타낸다.

모터 토크는 모터 자체를 움직이기 위해 필요한 힘과 외부 부하에 필요한 힘으로 소비가 된다.

 

이 식에서 나타내는 바를 쉽게 풀어 쓰면,

모터에서 만들어진 토크(Tm)는

  • 모터가 초기에 안움직이려는 힘(관성)을 이겨내서 초기 움직이는데 사용되고, (관성 모멘트)
  • 모터에 있는 브러쉬, 정류자등의 마찰에 의한 손실에 쓰이며, (점성 마찰 계수)
  • 마지막으로 실제 부하를 움직이는데 사용 된다. (부하 토크)

 

* DC Motor 시스템의 방정식 정리

여기서 나오는 방정식은 이후 DC 모터를 해석하는데 매우 자주 사용된다.

이후 계속 다루기 때문에, 지금은 알아만 두면 된다.

모터를 전기 신호로 분석한 방정식(전류 변수 존재) 모터에서 생성된 토크가 사용되는 방정식(전류 변수 존재)

 
 
 

* 양측에 동시에 존재하는 전류 변수를 기반으로 해석이 가능함.

Code::Blocks는 무료 Open Socurce Project로, Visual Studio Solution과 비슷한, C 혹은 C++ Build가 가능하다.

 

IDE 뿐만 아니라, gcc를 통해 compiler도 무료로 사용 가능 하기 때문에, 간단한 Program 작성 및 Debugging에 유용하게 사용 가능하다.

 

Code Blocks 설치

1. 구글에서 Code Blocks를 검색하여 홈페이지에 접속.

 

2. 우측 왼편의 Downloads를 클릭

 

3. Download the binary release 선택

 

 

4. 자신에 맞는 version download 및 설치

자신에 맞는 버전을 설치하면 되며, MinGW를 이용한 Compiler 및GDB가 포함되어 있는 버전을 설치하면 편리하다.

 

 

CodeBlocks 로 C 코드 빌드 하기

1. CodeBlocks 실행

 

 

2. Project 생성

 

3. Console application 선택

 

4. C언어 선택

 

5. Project title 기입(ex. test2)

 

6. Project 생성 완료

 

7. 생성된 main.c를 build & run

Autosar에서 정리되어 있는 BSW 영역의 Nm 관련 Stack은 다음과 같다.

AUTOSAR_SWS_NetworkManagementInterface(4.2.2)

 

여기서 알 수 있듯, CanNm위에 Nm이 존재하고, 또한 Nm 위에는 ComM이 존재 한다.

따라서 사용자는 CanNm의 API를 직접 호출하는 방법 보다는, ComM을 통해 Nm을 제어 하고, Nm이 CanNm을 제어하는 것이 알맞는 접근 방법이다.

그럼 이제 앞서 배운 Nm State Machine을 제어 하기 위해 필요한 CanNm API를 직접 호출하지 않고, ComM을 통해 호출하는 방법과 그 이유에 대해 알아 보도록 하자.

 

 

1. NetworkRequest

Local Wakeup Event(IGN On등)가 감지된 경우 동작 

ComM의 Sequence Diagram

 

해당 Sequence Diagram을 살펴 보면 다음과 같이 동작 한다.

  1. User가 Rte를 통해 ComM에게 ComM_RequestComMode(COMM_FULL_COMMUNICATION)을 요청
  2. ComM이 Nm에게 Nm_NetworkRequest()를 요청

 

2. Passive Startup

Remote Wakeup Event(Nm Message 수신 등)가 감지된 경우의 동작

ComM의 Sequence Diagram

 

해당 Sequence Diagram을 살펴 보면 다음과 같이 동작 한다.

  1. Remote Wakeup 인지 한 경우, Nm이 ComM에게 ComM_Nm_NetworkStartIndication()을 호출
  2. 이로 인해, ComM이 Nm에게 Nm_PassiveStartup()를 호출

다만, 이전 장에서 언급 하였듯, Power Off상태에서 깨어나, Bus Sleep이 된 경우에는 사용자가 직접 호출 해야 한다.

따라서, Bus Sleep에서는 사용자가 ComM_Nm_NetworkStartIndication() 호출이 필요하다.

 

3. Network Release

System이 Normal Operation에서 동작 하다가, 스스로 꺼질 시점이라고 판단 되면, Network Release를 해야 한다.

Figure 15: Network shutdown (CAN)

해당 Sequence Diagram을 살펴 보면 다음과 같이 동작 한다.

  1. 사용자가 Rte를 통해, ComM_RequestComMode(COMM_NO_COMMUNICATION)을 호출
  2. 이로 인해, ComM이 Nm에게 Nm_NetworkRelease()를 호출

 

4. ComM API 정리

  ComM API 의도한 Nm State Machine 동작
  ComM_RequestComMode( COMM_FULL_COMMUNICATION ) Network Request
  ComM_Nm_NetworkStartIndication() Passive Startup
  ComM_RequestComMode( COMM_NO_COMMUNICATION ) Network Release

 

'Com Stack in ClassicAUTOSAR > NetworkManagement' 카테고리의 다른 글

2. NM State Machine - Overall  (0) 2024.09.18
1. Introduce of Network Management  (0) 2024.06.09

1. NM State Machine - Overall

NM State Machine은 NM을 이해하는 가장 중요하고 기본적인 부분이다.

CanNm에서 다음과 같이 State Machine이 정의 되어 있다.

 

이중, 사용자가 고려하여할 구현 Point는 다음과 같다.

Condition Description
Power On Power On시, MCU 전원 인가 및 Software가 처음 시작 하게 되며,
이 시점에 CanNm_Init() 을 호출 해야 함.

CanNm_Init()을 호출하면, CanNm은 Bus Sleep Mode에 있게 됨.
이때 사용자는 Wakeup Event의 종류(Locak Wakeup 혹은 Remote Wakeup)를 감지하여,
Repeat Mode State로 천이를 해야 한다.
Network Mode로 진입 1
- CanNm_PassiveStartup()
만약 Remote Wakeup(CAN Wakeup Pattern, Frame 등)에 의해 깨어난 경우,
사용자는 CanNm_PassiveStartup()을 호출 해야 한다.
이 호출을 통해 Nm State Machine은 Repeat Message State로 천이 해야 한다.
이 경우, Network 상태는 "Network Released" 가 유지 된다.
Network Mode로 진입 2
- CanNm_NetworkRequest()
만약 Local Wakeup(Ignition On 등)에 의해 깨어난 경우,
사용자는 CanNm_NetworkRequest()을 호출 해야 한다.
이 호출을 통해 Nm State는 Repeat Message State로 천이 해야 한다.

이 경우, Network 상태는 "Network Request" 로 변경 된다.
CanNm_NetworkRelease() "Network Request"상태로 Normal Operation State에서 동작하다가,
Network Release 및 System 종료가 필요한 경우, 
사용자가 CanNm_NetworkRelease()를 호출 하게 된다.
이 호출을 통해 Nm State Machine은 Ready Sleep State로 천이 하며,
Network 상태는 "Network Released" 상태로 변경 된다.

 

2. Power On to Bus Sleep Mode

Power On 시점에 대한 동작은 추가적인 정보가 필요 하기 때문에, 이번 장에서 좀더 알아보도록 한다.

 

NM 사양을 적용하는 System의 경우에는 보통 특정 CAN Pattern에 의해 Wakeup이 가능한 Trcv를 사용 한다.

Wakeup 회로 Diagram

 

이 경우, Regulator는 아래 두가지에 의해 Enable된다.

  • Trcv가 특정 Wakeup Patten(혹은 Frame)을 인지하는 경우, INH을 High로 설정하여 Regulator를 Enable
  • IGN에 의해 Regulator를 Enable

Regulator가 MCU의 전원을 인가 하게 되면, Software가 동작을 시작하고, Software는 초기 다음 동작을 수행한다.

  1. Software가 처음 시작시, CanNm_Init()를 호출
  2. 이로 인해(초기 시작으로 인해), Nm State가 Bus Sleep으로 천이 된 경우, 다음 동작 수행
    1. INH에 의해 Wakeup된 경우에는 CanNm_PassiveStartup() 함수를 호출
    2. IGN에 의해 Wakeup된 경우에는 CanNm_NetworkRequest() 할수를 호출

 

이번 장에서는 NM State Machine의 Overall Concept과 필요한 API 함수에 대해 알아 보았다.

다만 이번 장에서 기술한 NM API는 Autosar Layered Architecture상 사용자가 직접 호출하는 것이 권장 되지 않으며,

ComM의 API를 통해서 간접적으로 호출 되어야 안정적으로 동작이 가능 하다.

 

이후의 장에서는 다음 내용에 대해 기술할 예정 이다.

  •  Nm API를 호출하기 위해 필요한 ComM API와 그 이유(Autosar 문서 기반)
  • 나머지 Nm State Machine에 대한 자세한 서술

 

+ Recent posts