프로그래밍/매트랩

매트랩 시뮬링크 루프를 사용하는 방법

에이티에스 2023. 9. 2. 10:40
728x90

조건부 루프의 작동과 Simulink를 사용하여 조건부 루프를 구현하는 방법에 대해 설명합니다. 

 

 

대수 루프 소개

대수 루프는 특정 작업을 특정 횟수까지 반복적으로 수행하거나 특정 조건이 충족될 때까지 수행하는 것을 의미합니다. Simulink에는 루프를 구현하기 위한 적절한 블록이 없지만 모호성을 제거하기 위해 중간에 지연이 있는 출력이 입력에 공급되는 자체 루프를 설계할 수 있습니다. 루프 오류를 없애기 위해서는 루프를 계속할지 중지할지를 결정하는 조건을 제공해야 합니다.

 

 

Simulink를 사용한 업 카운터 설계

이제 simulink에서 루프 작업을 이해하는 데 도움이 되는 간단한 예제를 수행하겠습니다. MATLAB을 연 다음 Simulink를 엽니다. Simulink에서 라이브러리 브라우저 아이콘을 클릭하고 이전 튜토리얼에서 했던 것처럼 라이브러리 브라우저를 엽니다. 라이브러리 브라우저에서 이전 자습서에서 수행한 것처럼 일반적으로 사용되는 블록 섹션을 클릭한 다음 아래 그림과 같이 해당 섹션에서 상수 블록을 선택합니다.

그림 1: 상수 블록

 

  • 이 블록은 카운터의 스텝 크기로 사용됩니다. 즉, o를 2로 설정하면 카운터는 업 카운터의 모델이 완료되면 곧 보게 될 것처럼 2 단계로 값을 변경합니다. up 카운터를 구현하기 위한 대수 루프를 설계하려면 루프가 반복될 때마다 이전 값에 1을 추가하는 add 블록이 필요합니다. 라이브러리 브라우저에서 아래 그림과 같이 수학 연산 섹션을 선택합니다. 

그림 2: 수학 연산

 

  • 이 섹션에서 블록 추가가 필요하며 해당 블록의 목적도 설명합니다. 당분간은 아래 그림과 같이 라이브러리 브라우저의 수학 연산 섹션에서 블록 추가를 선택합니다. 

그림 3: 블록 추가

  • 이 add 블록은 카운터의 이전 값을 이전에 배치된 상수 블록에 더하여 한 번의 반복을 완료합니다. 이제 add 블록의 출력을 입력에 직접 연결하면 Simulink는 두 연산이 동일한 순간에 구현되기 때문에 이를 오류로 간주합니다. 따라서 이전 값을 추가할 때 지연을 추가하는 지연 블록이 필요합니다. 라이브러리 브라우저에서 일반적으로 사용되는 블록 섹션을 선택하고 해당 섹션에서 아래 그림과 같이 지연 블록을 선택합니다.

그림 4: 지연 블록

 

  • 지금까지 이 튜토리얼에서는 드래그 앤 드롭 방법을 사용하여 Simulink 모델에 구성요소를 배치했습니다. simulink 모델에 추가하거나 배치할 블록을 마우스 오른쪽 버튼으로 클릭한 다음 아래 그림과 같이 드롭다운 메뉴에서 모델에 블록 추가를 클릭합니다.

그림 5: 모델에 추가

 

  • 그러면 선택한 블록이 현재 모델에 추가됩니다. 이제 카운터의 출력을보기 위해서는 출력 디스플레이가 필요합니다. 그러나 이 표시 블록은 실행 후 가장 최근의 출력만 표시하므로 여기서는 적합하지 않습니다. Simulink의 범위 블록을 사용하여 루프의 모든 프로세스를 하나의 창에서 볼 수 있습니다. 따라서 일반적으로 사용되는 블록 섹션에서 아래 그림과 같이 범위 블록을 선택합니다. 

그림 6: 범위 블록

 

  • 블록을 선택한 후 적절한 방법 중 하나를 사용하여 현재 모델에 블록을 추가합니다. 업 카운터에 배치된 구성 요소는 아래 그림에 나와 있습니다.

그림 7: 배치된 구성 요소

 

  • add 블록의 출력에 지연을 추가하고 출력을 add 블록의 입력에 공급해야 하므로 먼저 뒤집어야 합니다. 플립 블록을 마우스 오른쪽 버튼으로 클릭한 다음 회전을 선택하고 아래 그림과 같이 플립을 선택한 후 플립을 선택합니다. 

그림 8: 뒤집기 블록

 

  • 블록을 선택하고 키보드에서 Ctrl+I를 눌러 이 작업을 수행할 수도 있습니다. 아래 그림과 같이 모든 구성 요소를 연결하고,

그림 9: 제품 구성도

 

 

  • Simulink 모델 상단에 있는 실행 아이콘에서 모델을 실행하고 컴파일이 완료될 때까지 기다립니다. 컴파일이 완료되면 스코프를 두 번 클릭하여 아래 그림과 같이 계단 케이스여야 하는 카운터의 출력을 확인합니다. 

그림 10: 출력

 

  • 카운터의 문제점은 이 카운터의 재설정 조건이 없다는 것입니다. 재설정 조건이 없는 카운터는 아무 소용이 없습니다. 이전 값을 무한대로 업데이트하기 시작합니다. 몇 가지 제한 값을 제공해야 하며, 그 후에 값을 0으로 재설정하고 다시 시작해야 합니다. 이를 위해서는 이전 튜토리얼에서 사용했던 조건문이 필요합니다. 라이브러리 브라우저에서 아래 그림과 같이 신호 라우팅 섹션을 선택합니다.

그림 11: 신호 라우팅

 

  • 그런 다음 아래 그림과 같이 이 섹션에서 스위치 블록을 선택합니다. 

그림 12: 스위치 블록

 

 

  • 카운터가 0에서 끝까지 이동할 특정 값까지 스위치 블록의 임계값을 선택하십시오. 이 경우 아래 그림과 같이 10의 값을 선택했습니다,

그림 13: 임계값

 

  • 카운터는 이 조건이 거짓인 한 하나를 추가하기 시작하므로 거짓 조건은 아래 그림과 같이 단순히 카운터의 출력이 됩니다.

그림 14: 거짓 조건

 

  • 그러나 true 조건은 카운터 값을 0으로 재설정합니다. 따라서 실제 조건에서는 아래 그림과 같이 값이 0인 상수 블록을 배치합니다.

그림 15: 실제 조건

 

  • 이번에 delay 블록에 대한 입력은 스위치 블록의 출력이 되며 전체 블록 다이어그램은 아래 그림에 나와 있습니다. 

그림 16: 조건부 위쪽 카운터

 

  • 블록 다이어그램을 실행하면 아래 그림과 같이 범위 블록을 두 번 클릭하여 카운터의 출력을 볼 수 있습니다. 

그림 17: 위쪽 카운터의 출력

 

이것은 0에서 시작하여 스위치 블록에서 제공한 값으로 끝나는 간단한 업 카운터입니다.

728x90
반응형
그리드형