본문 바로가기
Autonomous Vehicle/Additional studies

모델리카를 이용한 모델링 및 시뮬레이션 3 [모델리카 기초 : 차량 동역학 모델 생성]

by kim.jeff 2020. 11. 19.

 

모델리카는 다양한 시뮬레이션을 해볼 수 있는 툴입니다. 공식을 알고 있고 변수의 수만큼 식을 가지고 있다면 편리하게 시뮬레이션 결과를 얻어 내고 있기 때문에 다양한 해석을 위한 솔루션으로 이용되고 있습니다. 본 포스팅에서는 태양열 전기자동차를 설계함에 있어 필요한 공식과 관련 공식들을 이용한 해석 방법 및 결과 도출에 관한 내용을 다루도록 하겠습니다.


 

모델리카를 이용한 모델링 및 시뮬레이션 3

[모델리카 기초 : 차량 동역학 모델 생성]

 

Modeling and Simulating using Modelica 3

[Modelica Basic : Model creation of Dynamics of Vehicle ]

 

 

 


1. 동역학적 차량 에너지관리 주요 공학 이론

기계공학 항력, 구름저항
전기공학 솔라셀 효율, 배터리 효율, 모터 효율

 

1. 적절한 운전범위 내에서 운전을 해야만 항력(공기역학적 저항력)을 최소화하여 최대의 효율을 이용할 수 있다. 

2. 기계부품 및 바퀴 등에서 일어나는 저항인 구름저항에 의하여 차량 에너지 손실이 생겨 효율이 떨어진다.

3. 배터리의 충전 방전시의 손실을 계산하고 효율을 계산할 필요가 있다. 잘못된 방향으로 사용하면 화재의 원인이 되기도 한다.

4. 모터의 토크와 회전속도가 일정 영역 내에서 좋은 효율을 보인다. 

 

2. 에너지 관리 주요 공학 공식

1) 항력 

  정의 단위
Da Aerodynamic Drag Force F
rho Density of air W
V Speed of the vehicle m/s
A Characteristic area for the body of the vehicle m^2
Cd Drag coefficient -
Pa Aerodynamic Power (Da * V = P) W
h height m

2) 구름저항

  정의 단위
Dr Drag Force (Friction Force, 마찰 저항력) N
Crr Rolling resistance coefficient -
V Velocity km/hr
Pr Rolling resistance W
W Weight N

3) 솔라셀 효율

  정의 단위
Pmax Power of Solar array produced at high noon W
     

3. 오픈 모델리카 프로그래밍 코드

model jeff_test1

  parameter Real 
    rho (quantity="density", unit="kg/m3")=1.17, 
    A (quantity="cross area", unit="m2")=1,
    Cd (quantity="drag coefficient", unit="-")=0.08,
    Crr (quantity="rolling resistance", unit="-")=0.0056,
    mass (quantity="mass", unit="kg")=300,
    F_motor(quantity="thrust", unit="N")=60,
    road_angle (quantity="road_angle", unit="rad")=0.01;
     
  Real 
    Da (quantity="air draft", unit="N"),
    V (quantity="velocity", unit="m/s"),
    Dr (quantity="friction force", unit="N"),
    Dg (quantity="gravity force", unit="N"),
    S (quantity="distance", unit="m");
    
equation

  Da=0.5*rho*V^2*A*Cd;
  Dr=Crr*(1+3.6*V/161)*mass*9.81;
  Dg=sin(road_angle)*mass*9.81;
  F_motor-Da-Dr=mass*der(V);
  der(S)=V;
  
end jeff_test1;

4. 오픈 모델리카 컴파일 및 시뮬레이션 결과

코드를 작성한다. 주의할 것은 공식의 개수와 구하려고 하는 변수의 개수와 일치하여야 한다는 점이다.

컴파일이 가능한지 오른쪽 상단의 체크 아이콘을 눌러 문법형식의 유효성을 확인한다.

시뮬레이션 조건을 설정한다. 0초부터 1000초까지 시뮬레이션을 실행한다.

Plot을 통해 Da 와 Dg에 따른 저항력이 시간에 따라 어떻게 변화하는지를 보여준다. 초기엔 Da로 인한 저항이 컸지만 시간이 증가하고 속도가 증가함에 따라 Dg에 따른 저항이 커짐을 확인할 수 있었다.

속도는 26 m/s 로 수렴함을 알 수 있다.

 


모델리카를 통해서 편하게 공식 위주의 프로그래밍을 통한 시뮬레이션을 진행해보았다. 다양한 라이브러리를 활용하여 제어 시뮬레이션이나 분석 연구 등이 가능할 것으로 보인다. 다음엔 열전달적인 요소를 모델리카에 적용시켜 보겠다.