Found an issue with the book? Report it on Github.

기어 어셈블리(Gear Assembly)

기어 어셈블리(Gear Assembly)

이 섹션에서는 간단한 기어를 모델링하는 방법을 자세히 살펴보겠습니다. 각 기어 요소의 관성, 톱니 사이에 존재하는 백래시, 물론 두 회전 샤프트 사이의 운동학적 관계와 같은 것들을 고려할 것입니다.먼저 이러한 어셈블리의 "플랫" 모델이 어떻게 생성되는지 예를 보여준 다음 이 플랫 모델을 광범위한 응용 프로그램에서 사용할 수 있는 재사용 가능한 하위 시스템 모델로 리팩터링하는 방법을 살펴보겠습니다.

지금까지 여러 번 예: 관성, 컴플라이언스, 저항, 대류 등*과 같은 하나의 물리적 효과만 모델링하는 구성 요소 모델을 만드는 것이 일반적으로 좋은 아이디어라고 언급했습니다.이것은 구성 요소 수준에서 모델링할 때 사실입니다. 그러나 많은 실제 하위 시스템은 이러한 모든 효과가 혼합되어 있습니다.모델리카에서 이 문제를 해결하는 방법은 재사용 가능한 하위 시스템 모델을 구축하는 것입니다. 물론 이러한 모든 효과에 대한 방정식을 하위 시스템 모델에 추가하여 "바퀴를 재발명"하지 않습니다.대신 이미 개발한 구성 요소 모델을 재사용합니다. 결국 하위 시스템 모델은 특정 구성으로 배열된 기존 구성 요소 모델의 어셈블리에 불과합니다. 또한 구성요소를 설명하는 데 사용하는 파라미터를 하위 시스템의 파라미터에 "연결"하는 방법을 보여줍니다.

수평적 버전(Flat Version)

모델리카에서 재사용 가능한 하위 시스템 모델을 생성하는 기능에 익숙하지 않은 경우 다음과 같은 모델리카 모델을 빌드하는 것으로 시작할 수 있습니다.

Flat system model including backlash

이 모델에는 두 가지 필수 구성 요소가 포함되어 있습니다.파선 안에 있는 모델의 일부는 기어 자체가 모델링되는 방식을 나타냅니다.여기에는 각 기어 요소의 관성, 기어 톱니 사이의 백래시 및 두 샤프트 사이의 운동학적 관계가 포함됩니다.이들 각각은 개별 구성 요소 모델로 표현됩니다.파선 바깥에 있는 모델의 다른 부분은 수행하고 있는 특정 시나리오/실험을 나타냅니다.여기에는 기어에 적용할 토크 프로파일과 기어에 의해 구동되는 다운스트림 부하가 포함됩니다.

이 시스템을 시뮬레이션하면 다음과 같은 응답을 얻습니다.

/static/_images/FSWB_comp.svg

이 시스템에 대해 이해해야 할 중요한 점은 파선 내부의 구성 요소의 특정 어셈블리가 기어 관련 응용 프로그램에서 반복될 가능성이 있다는 것입니다.실제로 자동차 변속기와 같은 모델에서 여러 번 반복될 수 있습니다.

계층적 버젼(Hierarchical Version)

따라서 중복을 방지하기 위해(이유는 이미 논의된 바 있음) 파선 내 구성 요소의 재사용 가능한 하위 시스템 모델을 생성해야 합니다. 이러한 경우 회로도는 다음과 같이 표시됩니다.

System model including gear subsystem

이 경우 기어를 나타내는 데 사용하는 구성 요소 모음이 다이어그램 레이어의 단일 인스턴스로 대체합니다.이는 기어 모델을 구성하는 모든 구성 요소 모델이 다음 하위 시스템 모델로 어셈블리되었기 때문에 가능합니다.

within ModelicaByExample.Subsystems.GearSubsystemModel.Components;
model GearWithBacklash "A subsystem model for a gear with backlash"
  extends Modelica.Mechanics.Rotational.Icons.Gear;
  import Modelica.Mechanics.Rotational.Components.*;

  parameter Boolean useSupport(start=true);
  parameter Modelica.SIunits.Inertia J_a
    "Moment of inertia for element connected to flange 'a'";
  parameter Modelica.SIunits.Inertia J_b
    "Moment of inertia for element connected to flange 'b'";
  parameter Modelica.SIunits.RotationalSpringConstant c
    "Backlash spring constant (c > 0 required)";
  parameter Modelica.SIunits.RotationalDampingConstant d
    "Backlash damping constant";
  parameter Modelica.SIunits.Angle b=0
    "Total backlash as measured from flange_a side";
  parameter Real ratio
    "Transmission ratio (flange_a.phi/flange_b.phi, once backlash is cleared)";
protected
  Inertia inertia_a(final J=J_a) "Inertia for the element 'a'"
    annotation ...
  Inertia inertia_b(final J=J_b)
    annotation ...
  ElastoBacklash backlash(final c=c, final d=d, final b=b) "Backlash as measured from flange_a"
    annotation ...
  IdealGear idealGear(final useSupport=useSupport, final ratio=ratio)
    annotation ...
public
  Modelica.Mechanics.Rotational.Interfaces.Flange_a flange_a
    annotation ...
  Modelica.Mechanics.Rotational.Interfaces.Flange_b flange_b
    annotation ...
  Modelica.Mechanics.Rotational.Interfaces.Support support if useSupport
    annotation ...
equation
  connect(flange_a, inertia_a.flange_a)
    annotation ...
  connect(inertia_b.flange_b, flange_b)
    annotation ...
  connect(idealGear.support, support)
    annotation ...
  connect(idealGear.flange_b, inertia_b.flange_a)
    annotation ...
  connect(backlash.flange_a, inertia_a.flange_b)
    annotation ...
  connect(backlash.flange_b, idealGear.flange_a)
    annotation ...
end GearWithBacklash;

렌더링될 때 GearWithBacklash 모델에 대한 다이어그램은 다음과 같습니다

Gear with backlash subsystem model

이 모델에는 꽤 많은 부분이 있습니다. 먼저 useSupport 파라미터가 있는지 확인해야 합니다. 이전 장에서 논의한 접지 커넥터 옵션(Optional Ground Connector) 를 포함할지 여부를 결정하는 데 사용합니다.

또한 모든 하위 구성요소(inertia_a, inertia_b, backlashidealGear)는 protected 됩니다.커넥터(flange_a, flange_bsupport) 및 파라미터(J_a, J_b, c, d, b, ratio)는 public 입니다. 여기서 아이디어는 사용자가 알아야 하는(또는 액세스할 수 있어야 하는) 유일한 것은 커넥터와 파라미터라는 것입니다.다른 모든 것은 구현에 대한 세부 사항입니다. 모델의 protected 요소는 외부에서 참조할 수 없습니다.이렇게 하면 내부 세부 정보(사용자가 알 필요가 없음)가 변경되는 경우 모델이 손상되는 것을 방지할 수 있습니다.

또한 얼마나 많은 파라미터 (예: * c)가 하위 시스템 수준에서 지정된 다음 계층 구조의 하위 파라미터에 할당되는지 확인합니다(종종 final 한정자와 함께). 이러한 방식으로 구성 요소의 파라미터를 하위 시스템 수준에서 수집할 수 있으므로 이 모델의 사용자는 모든 관련 파라미터를 한 곳(하위 시스템 수준)에서 볼 수 있습니다. 이것을 전파(Propagation) 이라고 하며 이 장의 뒷부분에서 더 자세히 논의할 것입니다.

다음 선도에서 볼 수 있듯이 이전에 제시된 "수평" 버전과 비교할 때 결과는 동일합니다.

/static/_images/SWB.svg

결론(Conclusion)

구성 요소 모델을 사용하여 방정식을 재사용 가능한 구성 요소로 전환하는 방법을 이미 살펴보았습니다. 이렇게 하면 수식을 수동으로 반복해서 입력하는 지루하고 시간 소모적이며 오류가 발생하기 쉬운 프로세스를 피할 수 있습니다.동일한 구성 요소 모델 어셈블리를 유사한 어셈블리로 지속적으로 구축하는 경우에도 동일한 원칙이 적용됩니다.이 하위 시스템 모델 접근 방식을 사용하여 구성 요소의 재사용 가능한 어셈블리를 생성하고 필요한 변경 사항만 파라메트릭인 경우 어셈블리를 반복해서 사용할 수 있도록 파라미터화할 수 있습니다.