이 블로그에서는 전달 함수를 설정하고 측정하는 방법을 보여드리겠습니다. Moku PID 컨트롤러 를 사용하여 모쿠 파이썬 API. 먼저 독립형 PID 컨트롤러 계측기를 소개하고 이를 구성하는 데 필요한 Python 명령을 살펴본 다음 다음을 사용하여 전달 함수를 측정합니다. Moku 주파수 응답 분석기.
PID 컨트롤러 블록 다이어그램 이해
전자 응용 분야에서 PID 및 제어 루프 자동화된 테스트 설정의 필수적인 부분인 경우가 많습니다. 명확성을 위해 그림 1에서 볼 수 있듯이 Moku UI를 사용하여 PID 컨트롤러 블록 다이어그램을 검토하는 것이 좋습니다. 계측기의 블록 다이어그램은 제어 행렬에 공급된 두 개의 입력을 보여주며, 이를 통해 신호를 더하고, 빼고, 곱할 수 있습니다. 그런 다음 신호는 각각 자체 출력과 DC 오프셋, 리미터 및 스위치가 있는 두 개의 독립적인 PID 컨트롤러 중 하나로 전달됩니다. 또한 측정 체인 내의 다양한 단계에서 신호를 볼 수 있는 프로브 포인트가 제공됩니다.

그림 1. Moku PID 컨트롤러 블록 다이어그램.
Moku UI에서 PID 블록을 선택하면 사용자는 주파수 공간에서 현재 전달 함수를 볼 수 있습니다. 비례 이득 및 포화 수준은 dB 단위로 정의되고 교차점은 Hz로 지정됩니다. 사용자는 클릭하고 드래그하여 이러한 매개변수와 상호 작용하고 값을 동적으로 조정하고 전달 함수 업데이트를 볼 수 있습니다.
파이썬에서 전달 함수 정의하기
전달 함수의 구성 및 측정을 자동화하기 위해 다음을 사용합니다. 주피터 노트, 우리의에서 접근 가능합니다 깃허브. Python 기반 Moku 제어를 처음 사용하는 분들을 위해 Python API 설정에 대한 자세한 서면 및 비디오 튜토리얼을 제공합니다. 이 블로그에서. Moku에 연결하고 설정하는 프로세스 다중 장비 모드 이 튜토리얼에서는 PID 기능을 정의하는 데 필요한 필수 명령만 다룹니다.
전달 함수를 설정할 때 사용할 수 있는 세 가지 주요 명령이 있으며, 주요 차이점은 사용자가 PID 매개변수를 이득 또는 교차 주파수로 정의하는 것을 선호한다는 것입니다. 우리는 이러한 구성 중 하나를 수용하기 위해 두 가지 명령을 만들었습니다.
첫 번째는 명령입니다 주파수로 설정. 이 명령은 총 이득, 적분기 포화 및 차등 포화 매개변수를 dB로 정의하는 반면, 적분기, 미분기 및 이중 적분기 매개변수는 크로스오버 주파수에 따라 정의됩니다. 아래 코드 조각에서 볼 수 있듯이, 이 명령은 최대 7개의 키워드 입력을 허용하며, 그 중 첫 번째는 대상 채널을 지정합니다. 사용자는 나머지 6개의 키워드 인수를 추가하여 매개변수를 적절히 구성할 수 있습니다. 기본값은 없습니다. 키워드를 정의하지 않으면 해당 매개변수가 비활성화됩니다.
사용자가 이득 값을 사용하여 PID 매개변수를 설정할 수 있도록 하는 대체 명령은 다음과 같습니다. 이득으로 설정. 이 방법을 사용할 때 비례(P), 적분(I), 미분(D) 값은 dB로 지정되고 포화 값은 Hz로 표현됩니다. 이러한 설정은 Moku UI를 통해서도 액세스할 수 있으며 PID 컨트롤러의 "고급 모드" 메뉴에서 찾을 수 있습니다.
세 번째 명령은 개요, 모든 현재 PID 값을 포함하여 계측기 설정의 포괄적인 목록을 검색합니다. 이는 모든 Moku 계측기에 보편적이지만 UI의 시각적 피드백을 사용할 수 없는 PID 컨트롤러에 특히 유용합니다.
그림 2에서는 키워드 인수를 사용한 이 세 가지 명령의 예를 볼 수 있습니다.

그림 2. PID 컨트롤러를 위한 Python 코드의 예로, 전달 함수를 구성하는 다양한 방법을 보여줍니다.
전달 함수 측정
우리는 Moku를 사용합니다 진동수 응답 분석기 PID 컨트롤러와 함께 배포하여 전달 함수를 측정합니다. 다중 장비 모드. 이 설정에서 주파수 응답 분석기의 출력은 PID 컨트롤러로 공급됩니다. 그런 다음 신호는 입력 측으로 다시 루프백되어 FRA가 입력 및 출력 신호의 차이를 측정할 수 있습니다. Moku 구성의 개략도는 그림 3에 나와 있습니다.

그림 3. 다중 계측기 모드에 배치된 Moku PID 컨트롤러와 주파수 응답 분석기.
앞서 소개한 스크립트에서 계속해서 두 가지 필수적인 Python 명령에 초점을 맞춥니다. 첫 번째, 출력 설정, Frequency Response Analyzer의 출력 매개변수를 정의합니다. 출력이 두 개이므로 명령은 각 채널에 대해 한 번씩 두 번 호출됩니다. 첫 번째 인수는 활성화할 채널을 지정하고 두 번째 인수는 진폭을 볼트로 설정합니다.
이 명령 세트 스윕 주파수 응답 분석기의 스윕에 대한 주요 매개변수를 구성하고 많은 키워드 인수를 포함합니다. 이러한 키워드에는 스윕의 주파수 범위, 측정할 주파수 지점 수, 계측기가 데이터 수집을 시작하기 전에 기다리는 시간, 각 지점에 대한 데이터가 평균화되는 기간이 포함됩니다. 이러한 최소 정착 및 평균화 시간은 사이클 수 또는 시간 길이에 따라 정의할 수 있습니다. 예를 들어, 정착 시간이 1us이고 정착 주기가 1이면 계측기가 각 스윕 지점에서 1마이크로초 또는 1주기를 기다리는 것을 의미합니다.
The 시작_스윕 명령은 주파수 스윕을 시작하고 측정 기간의 추정치를 제공합니다. 다음 명령은 데이터를 얻으세요, 측정된 데이터를 검색합니다. 설정 대기 완료 키워드 참된 스윕이 완료된 후에만 데이터 전송이 이루어지도록 합니다. 필요한 경우, 타임아웃 값을 조정하여 요청이 타임아웃되는 것을 방지할 수 있습니다.
키워드 인수를 포함한 전체 명령 세트의 예는 그림 4에 나와 있습니다.

그림 4. 주파수 응답 분석기에 대한 Python 코드의 예.
데이터 보기 및 플로팅
데이터는 'Ch1'과 'Ch2' 키를 사용하여 사전 형식으로 반환됩니다. 이는 두 세트로 나눌 수 있으며, 이는 사전이기도 하며, 그림 3에 표시된 것처럼 크기와 위상 대 주파수를 표시하도록 플롯됩니다. 이 플롯을 PID 컨트롤러 UI에 표시된 전달 함수와 비교함으로써 사용자는 전달 함수가 입력 신호에 의도한 응답을 제공하는지 확인할 수 있습니다. PID 컨트롤러 설정을 조정하면 전달 함수가 변경되고 플롯된 데이터에 해당 변경 사항이 생성됩니다.


그림 5. 주파수 응답 분석기에서 복구된 크기 및 위상 응답 데이터.
이 튜토리얼은 Moku Python API를 통해 Moku PID 컨트롤러와 주파수 응답 분석기를 사용하여 전달 함수를 정의하고 측정하는 방법을 보여주었습니다. 이러한 단계를 따르고 제공된 명령을 활용하면 사용자는 계측기를 정확하게 구성하고 전달 함수를 검증할 수 있습니다.