튜닝 제어 시스템에 측정 된 스텝 응답을 사용하는 방법


17

PID 또는 컨볼 루션 제어 체계를 튜닝하기 위해 측정 된 단계 응답을 어떻게 사용합니까?

이 답변 * 에서 영감을 받아 측정 된 단계 응답을 기반으로 제어 시스템을 구현하는 방법에 대한 자세한 설명이 필요합니다.

모든 효과를 추측하려고하지 않습니다. 아마도 명백하지 않은 일이있을 수 있으며 모든 매개 변수를 알 수는 없습니다.

단계 응답을 측정합니다. 볼이 튜브 내에서 측정 가능한 범위 내에 있도록하는 두 가지 펌프 설정을 찾으십시오. 그런 다음 컨트롤러가 갑자기 한 설정에서 다른 열린 루프로 전환하도록합니다. 한편 시간이 지남에 따라 공이하는 일을 측정하십시오. 이것이 단계 응답입니다. 그것의 파생물을 가져 와서 임펄스 응답을 얻을 수 있습니다. 임펄스 응답을 통해 선형 시스템 인 경우 펌프 설정 이력에 대한 볼의 움직임을 예측할 수 있습니다. 공을 정상 범위 내로 유지하기 위해 작은 범위의 설정에서 선형 일 수 있습니다.

이것을 시뮬레이션 기반으로 사용하여 구식 PID 제어를위한 파라미터를 찾을 수 있습니다. 또는 임펄스 응답을 직접 사용하여 회선 제어를 수행 할 수 있습니다. 펌프가 실제로 가역적이며 공을 다시 흡입 할 수 없다면 컨볼 루션 커널이 음이되지 않도록 제어 입력을 충분히 저역 통과 필터링해야합니다.

이것이 정확히 어떻게 작동합니까? PID 조정은 어렵습니다 . "컨볼 루션 제어"는 극점 또는 전달 함수를 사용한다고 가정하지만 매개 변수를 얻는 방법을 정확하게 보지 못합니다.

관련 : 제어 시스템 용 시스템 모델링
* 댐퍼로 튜브에서 탁구 공 부상의 모델링 전달 기능

답변:


23

소개

먼저, 시스템 의 임펄스 응답 (impulse response) 이라고하는 것이 무엇이며 그 의미 가 무엇인지 고려해야합니다 . 이것은 약간의 생각으로 시각화하는 추상적 개념입니다. 나는 엄격한 수학에 빠지지 않을 것입니다. 내 요점은이 일이 무엇인지 직관을 제공하려고 노력하는 것이며, 그것을 사용하는 방법으로 이어집니다.

제어 문제 예

온도 센서가 설치된 큰 뚱뚱한 전력 저항기가 있다고 상상해보십시오. 모든 것이 시작되고 주변 온도에서 시작됩니다. 전원을 켜면 센서의 온도가 올라가서 찌그러짐을 알지만 정확한 방정식을 예측하기는 매우 어렵습니다. 극점이 1 개인 시스템에서와 같이 온도가 기하 급수적으로 상승하지 않기 때문에 "시정 수"를 완전히 적용 할 수는 없지만 시스템에 약 1 분의 시간 상수가 있다고 가정 해 봅시다. . 온도를 정확하게 제어하고 새로운 수준으로 변경하고 적절한 전원 수준에서 전원을 켜고 기다린 경우보다 훨씬 더 빠르게 온도를 유지한다고 가정 해 봅시다.

기본적으로 제어 시스템 문제가 있습니다. 개방 루프 응답은 합리적으로 반복 가능하며 충분히 모델링하는 방정식이 있지만 문제는 해당 방정식을 도출하기에 너무 많은 알 수없는 문제가 있다는 것입니다.

PID 제어

이를 해결하는 고전적인 방법 중 하나는 PID 컨트롤러를 사용하는 것입니다. 아날로그 전자 장치에서이 작업을 수행해야했던 플레이 스토 센으로 돌아가서 사람들은 영리 해져서 아날로그 기능과 잘 어울리는 체계를 고안했습니다. 이 체계를 비례 , 적분미분의 경우 "PID"라고 합니다.

P 용어

오류 측정을 시작합니다. 이것은 측정 된 시스템 응답 (이 경우 센서가보고 한 온도)에서 제어 입력 (원하는 온도 설정)을 뺀 값입니다. 일반적으로 이들은 전압 신호로 사용 가능하도록 배열 될 수 있으므로 오차를 찾는 것이 아날로그 차이 일 뿐이므로 충분히 쉽습니다. 이것이 쉽다고 생각할 수도 있습니다. 오류가 높을수록 저항을 더 높은 전력으로 구동하기 만하면됩니다. 너무 춥거나 더워지면 더 뜨겁게 만들려고 자동으로 시도합니다. 작동합니다. 이 방식은 0이 아닌 제어 출력 (저항을 구동하는 전력)을 유발하기 위해 약간의 오류가 필요합니다. 실제로, 그것은 필요한 전력이 높을수록 에러가 커진다는 것을 의미합니다. 왜냐하면 그것이 높은 전력을 얻는 유일한 방법이기 때문입니다. 이제 당신은 당신이해야 할 모든 게인을 크랭크 업하여 높은 전원 출력에서도 오류를 허용 할 수 있습니다. 결국, 그것은 많은 회로에서 opamp가 어떻게 사용되는지에 대한 기초입니다. 당신은 옳습니다. 그러나 현실 세계는 일반적으로 당신이 그것을 멀리하지 못하게합니다. 이것은 일부 간단한 제어 시스템에서 작동 할 수 있지만 반응에 미묘한 주름이 있고 상당한 시간이 걸리면 게인이 너무 높을 때 진동하는 것으로 끝납니다. 다시 말하면 시스템이 불안정 해집니다. 그러나 반응에 모든 종류의 미묘한 주름이 있고 상당한 시간이 걸리면 이득이 너무 높을 때 진동하는 것으로 끝납니다. 다시 말하면 시스템이 불안정 해집니다. 그러나 반응에 모든 종류의 미묘한 주름이 있고 상당한 시간이 걸리면 이득이 너무 높을 때 진동하는 것으로 끝납니다. 다시 말하면 시스템이 불안정 해집니다.

위에서 설명한 것은 PID의 P (비례) 부분입니다. 출력을 오류 신호에 비례하게 만들 수있는 것처럼 시간 미분 및 오류의 적분에 비례하는 항을 추가 할 수도 있습니다. 이들 P, I 및 D 신호 각각은 제어 출력 신호를 생성하기 위해 합산되기 전에 별도의 게인을 갖습니다.

나는 용어

I 용어는 시간이 지남에 따라 오류가 무효화되도록합니다. 양수 오류가있는 한 I 항은 계속 누적되어 전체 오류가 사라지는 지점까지 제어 출력을 높입니다. 이 예에서 온도가 일정하게 낮 으면 출력 온도가 더 이상 낮아지지 않을 때까지 저항으로 전력을 지속적으로 증가시킵니다. 바라건대, 이것이 높은 P 항보다 더 빠르게 불안정해질 수 있음을 알 수 있습니다. AI 용어 자체는 오버 슈트를 쉽게 유발할 수 있으며, 이는 쉽게 진동이됩니다.

D 용어

D 용어는 때때로 생략됩니다. D 항의 기본 사용은 약간의 안정성을 추가하여 P 및 I 항이 더 공격적 일 수 있도록하는 것입니다. D 용어는 기본적으로 내가 이미 올바른 방향으로 가고 있다면 내가 지금 우리를 거기에 데려 가고있는 것처럼 보이기 때문에 약간의 가스를 뿌린다 .

튜닝 PID

PID 제어의 기본 사항은 매우 간단하지만 P, I 및 D 항을 올바르게 얻는 것은 아닙니다. 이것은 일반적으로 많은 실험과 조정으로 이루어집니다. 궁극적 인 목표는 출력이 최대한 빨리 응답하지만 과도한 오버 슈트 나 링잉없이 반응하는 전체 시스템을 확보하는 것입니다. 물론 자체적으로 진동하지 않아야합니다. PID 제어, 방정식에 작은 주름을 추가하는 방법, 특히 "조정"하는 방법에 대한 많은 책이 있습니다. 튜닝은 최적의 P, I 및 D 게인을 구분하는 것을 말합니다.

PID 제어 시스템은 작동하며, 잘 작동하기 위해서는 많은 지식과 트릭이 있습니다. 그러나 PID 제어는 제어 시스템에 대한 단일 정답이 아닙니다. 사람들은 왜 PID가 처음에 선택되었는지 잊어 버린 것 같습니다. 이것은 일종의 보편적 인 최적 제어 체계보다 아날로그 전자 장치의 제약과 더 관련이 있습니다. 불행히도 오늘날 너무 많은 엔지니어들은 "제어 시스템"을 PID와 동일시합니다. 그것은 오늘날 세상에서 PID 제어를 잘못하지는 않지만 제어 문제를 공격하는 많은 방법 중 하나입니다.

PID를 넘어

오늘날 온도 예제와 같은 폐쇄 루프 제어 시스템은 마이크로 컨트롤러에서 수행됩니다. 이것들은 오류 값의 미분과 적분을 취하는 것보다 더 많은 일을 할 수 있습니다. 프로세서에서 나누기, 제곱근을 수행하고 최근 값의 이력을 유지하는 등 다양한 작업을 수행 할 수 있습니다. PID 이외의 많은 제어 체계가 가능합니다.

임펄스 응답

따라서 아날로그 전자 장치의 한계를 잊고 물러서서 우리가 첫 번째 원칙으로 돌아가는 시스템을 어떻게 제어 할 수 있을지 생각해보십시오. 모든 작은 제어 출력에 대해 시스템이 무엇을하는지 알고 있다면 어떨까요? 연속 제어 출력은 많은 작은 조각들의 합일뿐입니다. 우리는 각 조각의 결과가 무엇인지 알기 때문에 이전의 제어 출력 기록의 결과가 무엇인지 알 수 있습니다. 이제 제어 출력의 "작은 부분"이 디지털 제어와 잘 맞습니다. 제어 출력이 무엇인지 계산하고 그 값으로 설정 한 다음 다시 입력을 측정하고 새로운 제어 출력을 계산하여 다시 설정합니다. 제어 알고리즘을 루프로 실행하고 있습니다. 입력을 측정하고 각 루프 반복마다 제어 출력을 설정합니다. 입력은 불연속 시간에 "샘플링"되며 출력도 고정 된 간격으로 새 값으로 설정됩니다. 이 작업을 충분히 빨리 수행 할 수있는 한 지속적인 프로세스에서 이러한 일이 발생한다고 생각할 수 있습니다. 일반적으로 정착하는 데 몇 분이 걸리는 저항 가열의 경우 확실히 초당 1 회 몇 배는 시스템이 본질적으로 4Hz에서 출력을 업데이트하는 것이 의미있는 방식으로 응답하는 것보다 훨씬 빠르므로 시스템에서 연속적으로 보일 것입니다. 이것은 실제로 40-50 kHz 범위에서 이산 단계로 출력 값을 변경하는 디지털 녹음 된 음악과 정확히 동일하며 귀가들을 수없고 원본처럼 연속적으로 소리가 너무 빠릅니다. 지속적인 프로세스에서 이런 일이 발생한다고 생각할 수 있습니다. 일반적으로 정착하는 데 몇 분이 걸리는 저항 가열의 경우 확실히 초당 1 회 몇 배는 시스템이 본질적으로 4Hz에서 출력을 업데이트하는 것이 의미있는 방식으로 응답하는 것보다 훨씬 빠르므로 시스템에서 연속적으로 보일 것입니다. 이것은 실제로 40-50 kHz 범위에서 이산 단계로 출력 값을 변경하는 디지털 녹음 된 음악과 정확히 동일하며 귀가들을 수없고 원본처럼 연속적으로 소리가 너무 빠릅니다. 지속적인 프로세스에서 이런 일이 발생한다고 생각할 수 있습니다. 일반적으로 정착하는 데 몇 분이 걸리는 저항 가열의 경우 확실히 초당 1 회 몇 배는 시스템이 본질적으로 4Hz에서 출력을 업데이트하는 것이 의미있는 방식으로 응답하는 것보다 훨씬 빠르므로 시스템에서 연속적으로 보일 것입니다. 이것은 실제로 40-50 kHz 범위에서 이산 단계로 출력 값을 변경하는 디지털 녹음 된 음악과 정확히 동일하며 귀가들을 수없고 원본처럼 연속적으로 소리가 너무 빠릅니다. 확실히 1 초에 몇 번은 시스템이 본질적으로 4Hz에서 출력을 업데이트하는 것이 시스템에 연속적으로 보일 수있는 의미있는 방식으로 응답하는 것보다 훨씬 빠릅니다. 이것은 실제로 40-50 kHz 범위에서 이산 단계로 출력 값을 변경하는 디지털 녹음 된 음악과 정확히 동일하며 귀가들을 수없고 원본처럼 연속적으로 소리가 너무 빠릅니다. 확실히 1 초에 몇 번은 시스템이 본질적으로 4Hz에서 출력을 업데이트하는 것이 시스템에 연속적으로 보일 수있는 의미있는 방식으로 응답하는 것보다 훨씬 빠릅니다. 이것은 실제로 40-50 kHz 범위에서 이산 단계로 출력 값을 변경하는 디지털 녹음 된 음악과 정확히 동일하며 귀가들을 수없고 원본처럼 연속적으로 소리가 너무 빠릅니다.

제어 출력 샘플 하나로 인해 시간이 지남에 따라 시스템이 어떤 역할을하는지 알 수있는 마법의 방법이 있다면 어떻게해야합니까? 실제 제어 응답은 샘플 시퀀스 일 뿐이므로 모든 샘플의 응답을 더하고 결과 시스템 응답이 무엇인지 알 수 있습니다. 즉, 임의의 제어 응답 파형에 대한 시스템 응답을 예측할 수 있습니다.

멋지지만 시스템 응답을 예측하는 것만으로는 문제가 해결되지 않습니다. 그러나 여기에 aha 순간이 있습니다. 이것을 뒤집고 원하는 시스템 응답을 얻는 데 필요한 제어 출력을 찾을 수 있습니다. 제어 문제를 정확하게 해결하고 있지만, 임의의 단일 제어 출력 샘플에 대한 시스템 응답을 어떻게 든 알 수있는 경우에만 가능합니다.

그래서 당신은 아마 생각하고 있습니다. 쉬워요, 단지 큰 맥박을주고 그것이 무엇을하는지보십시오. 그렇습니다. 이론 상으로는 효과가 있지만 실제로는 그렇지 않습니다. 이는 하나의 제어 샘플, 심지어 큰 제어 샘플도 전체 사물 체계에서 너무 작아 시스템이 측정 가능한 반응을 거의 나타내지 않기 때문입니다. 또한 각 제어 샘플 사물 구성표에서 크기가 작아서 제어 샘플 시퀀스가 ​​시스템에 대해 연속적으로 느껴지도록해야합니다. 따라서이 아이디어가 효과가있는 것은 아니지만 실제로 시스템 응답이 너무 작아 측정 노이즈에 묻혀있는 것입니다. 저항 예제에서 100ms 동안 100W로 저항을 치는 것으로 측정하기에 충분한 온도 변화가 발생하지 않습니다.

단계 응답

그러나 여전히 방법이 있습니다. 단일 대조군 시료를 시스템에 넣는 것은 개별 시료에 대한 반응을 직접적으로 보여 주었음에도 불구하고, 우리는 알려지고 제어 된 일련의 대조 반응을 시스템에 넣고 그에 대한 반응을 측정함으로써이를 추정 할 수 있습니다. 일반적으로 이것은 제어 단계를 수행하여 수행됩니다.우리가 정말로 원하는 것은 작은 실수에 대한 반응이지만, 한 단계에 대한 반응은 그것의 정수일뿐입니다. 저항 예제에서는 모든 것이 0W에서 정상 상태인지 확인한 다음 갑자기 전원을 켜고 10W를 저항에 넣습니다. 결과적으로 출력에서 ​​온도를 멋지게 측정 할 수 있습니다. 올바른 스케일링을 사용하여 파생 된 값은 직접 측정 할 수는 없지만 개별 컨트롤 샘플에 대한 응답을 알려줍니다.

요약하면, 단계 제어 입력을 알 수없는 시스템에 넣고 결과 출력을 측정 할 수 있습니다. 이것을 단계 응답 이라고합니다 . 그런 다음 우리는 그것의 시간 미분을 취합니다 . 이를 임펄스 응답 이라고합니다 . 하나의 제어 입력 샘플에서 발생하는 시스템 출력은 단순히 해당 제어 샘플의 강도에 맞게 적절한 임펄스 응답입니다. 제어 샘플의 전체 이력에 대한 시스템 응답은 각 제어 입력에 대해 시간이 지남에 따라 추가, 스케일 및 기울어 진 임펄스 응답의 전체 묶음입니다. 마지막 작전이 많이 나오고 특별한 이름의 컨볼 루션이 있습니다.

컨벌루션 컨트롤

이제 원하는 시스템 출력 세트에 대해 제어 입력 시퀀스를 만들어 해당 출력을 생성 할 수 있다고 상상할 수 있습니다. 그러나 문제가 있습니다. 시스템에서 원하는 것에 너무 공격적이라면,이를 달성하기위한 제어 입력은 달성 할 수없는 높은 값과 낮은 값을 요구합니다. 기본적으로 시스템의 응답 속도가 빨라질수록 양방향으로 제어 값이 커져야합니다. 저항 예제에서는 수학적으로 온도가 즉시 새로운 온도로 가고 싶다고 말하지만 무한한 제어 신호가 필요합니다. 온도가 새로운 값으로 느리게 변할수록 저항에 덤프 할 수있는 최대 전력이 낮아집니다. 또 다른 주름은 저항기의 전원이 때때로 내려 가야한다는 것입니다. 넌 할 수있어

이를 처리하는 한 가지 방법은 제어 시스템이 사용자 제어 입력을 내부적으로 사용하기 전에 저역 통과 필터로 필터링하는 것입니다. 그림 사용자는 사용자가 원하는 것을합니다. 그들이 입력을 빨리 내리게하십시오. 내부적으로 저역 통과 필터를 사용하면 저항을 매끄럽게하고 저항에 넣을 수있는 최대 및 최소 전력을 감안할 때 가장 빨리 알 수 있습니다.

실제 예

실제 데이터를 사용한 부분 예입니다. 이것은 실제 제품에 내장 된 시스템으로부터 수십 개의 히터를 제어하여 특정 온도에서 다양한 화학 물질 저장소를 유지해야합니다. 이 경우 고객은 PID 제어 (편안한 느낌)를 선택했지만 시스템 자체는 여전히 존재하며 측정 할 수 있습니다. 다음은 스텝 입력으로 히터 중 하나를 구동하여 얻은 원시 데이터입니다. 루프 반복 시간은 500ms 였는데, 이는 시스템이 2 시간 후에도이 스케일 그래프에서 여전히 눈에 띄게 정착한다는 점을 고려하면 매우 짧은 시간입니다.

이 경우 히터가 약 .35 단계 ( "Out"값)로 구동되었음을 알 수 있습니다. 1.0 단계 전체를 오랫동안 사용하면 온도가 너무 높아질 수 있습니다. 초기 오프셋을 제거하고 단위 단계 응답을 유추하기 위해 작은 입력 단계를 설명하도록 결과를 스케일링 할 수 있습니다.

이것으로부터 당신은 임펄스 응답을 얻기 위해 연속적인 단계 응답 값을 빼는 것이라고 생각할 것입니다. 이론적으로는 맞지만 실제로는 시스템이 500ms 이내에 거의 변경되지 않기 때문에 측정 및 양자화 노이즈가 대부분 발생합니다.

또한 작은 값의 값에 유의하십시오. 임펄스 응답은 10 6으로 표시 됩니다.

개별 또는 심지어 몇 개의 판독 값 사이의 명백한 변화는 단지 노이즈 일 뿐이므로, 저역 통과 필터링을 통해 고주파수 (임의 노이즈)를 제거 할 수 있으므로 기본 응답 속도가 느려질 수 있습니다. 한 가지 시도는 다음과 같습니다.

그것은 더 좋으며 실제로 의미있는 데이터가 있지만 여전히 너무 많은 노이즈가 있음을 보여줍니다. 다음은 원시 임펄스 데이터의 저역 통과 필터링을 통해 얻은 유용한 결과입니다.

이제 이것은 우리가 실제로 작업 할 수있는 것입니다. 나머지 노이즈는 전체 신호에 비해 작으므로 방해가되지 않아야합니다. 신호는 여전히 거의 그대로있는 것 같습니다. 이를 확인하는 한 가지 방법은 240의 피크가 빠른 시각적 확인과 이전 플롯을 눈으로 필터링하는 것입니다.

이제이 임펄스 응답이 실제로 무엇을 의미하는지 멈추고 생각하십시오. 첫째, 1M 시간으로 표시되므로 피크는 실제로 전체 스케일의 0.000240입니다. 이는 이론적으로 500ms 타임 슬롯 중 하나에 대해서만 단일 풀 스케일 펄스로 시스템을 구동 한 경우 시스템에 대한 온도가 단독으로 유지되었음을 의미합니다. 500ms 기간의 기여는 직관적으로 이해하기에 매우 작습니다. 풀 스케일의 0.000240 (4000에서 약 1 파트)이 노이즈 레벨보다 낮기 때문에 임펄스 응답을 직접 측정 할 수없는 이유이기도합니다.

이제 모든 제어 입력 신호에 대한 시스템 응답을 쉽게 계산할 수 있습니다. 각 500ms 제어 출력 샘플에 대해 해당 제어 샘플의 크기에 따라 조정 된 임펄스 응답 중 하나를 추가하십시오. 최종 시스템 출력 신호에 대한 임펄스 응답 기여의 0 시간은 제어 샘플의 시간입니다. 따라서 시스템 출력 신호는 이러한 임펄스 응답이 서로 500ms 오프셋 된 연속이며, 그 때 각각 제어 샘플 레벨로 조정됩니다.

시스템 응답은이 임펄스 응답을 사용한 제어 입력의 컨벌루션으로,이 예제에서는 500ms마다 모든 제어 샘플을 계산합니다. 이로부터 제어 시스템을 만들려면 원하는 시스템 출력을 초래하는 제어 입력을 결정하기 위해 거꾸로 작동합니다.

이 임펄스 응답은 클래식 PID 컨트롤러를 사용하려는 경우에도 여전히 유용합니다. PID 컨트롤러를 튜닝하려면 많은 실험이 필요합니다. 실제 시스템에서 각 반복은 한두 시간이 걸리므로 반복 튜닝이 매우 느려집니다. 임펄스 응답을 사용하면 컴퓨터에서 시스템 응답을 순식간에 시뮬레이션 할 수 있습니다. 새로운 PID 값을 변경할 수있는 한 빨리 시도 할 수 있으며 실제 시스템이 응답을 표시 할 때까지 1-2 시간을 기다리지 않아도됩니다. 최종 값은 물론 실제 시스템에서 항상 확인해야하지만 대부분의 작업은 시뮬레이션을 사용하여 짧은 시간 내에 수행 할 수 있습니다. 이것은 당신이 당신의 질문에 인용 한 구절에서 "이것을 시뮬레이션 기반으로 사용하여 구식 PID 제어를위한 파라미터를 찾을 수 있습니다" 라는 의미 입니다.


4
아니. 너무. 초라한.
NickHalden

4
일부 섹션 제목이 여기에서 실제로 가치가 있다고 생각합니다. 그러나 굉장히 적용됩니다.
Kortuk

나는 파티에 늦었지만 여전히 : 인상적인 대답, Olin! :)
bitsmack

7

Jon이 언급 한 것처럼 FIR 및 IIR 필터는 이름에서 알 수 있듯이 (Finite \ Infinite Impulse Response) 임펄스 응답의 컨볼 루션을 직접 구현하는 디지털 필터입니다.

임펄스 응답을 신호 (시간 영역에서)로 변환시키는 것은 전달 함수에 신호의 변환 (주파수 영역에서)을 곱하는 것과 정확히 동일합니다. 그리고 기본적으로 필터의 임펄스 응답에 신호의 트래버스 된 버전을 곱하는 것으로 구성됩니다 (필터 응답이 시간에 고정되어 있고 신호의 시간이 계속 변한다는 사실에 대해 생각하십시오).

디지털 필터에서 임펄스 응답은 특정 지점에서 신호를 곱하는 고정 된 수의 계수로 감소합니다. 포인트는 지연에 의해 분리되어, 0 은 신호의 순간 값을 곱하고, kk 개의 지연 유닛 이후에 동일한 신호를 곱한다는 것을 얻는다.

여기에 이미지 설명을 입력하십시오

그림은 13 탭 (지연 수) FIR 필터에 대한 계수가 얻어지는 일반 필터 (이 경우 저역 통과)의 임펄스 응답을 보여줍니다.

일부 전달 함수를 얻으려면 FIR 필터에 무한한 수의 계수가 필요합니다.이 경우 피드백을 사용하여 IIR (무한 임펄스 응답) 필터를 얻습니다. 이 필터를 사용하면 더 나은 전달 기능 을 얻을 수 있지만 (예 : 필터에서 통과 대역과 억제 된 대역 간 좁은 변환) FIR 필터는 구성에 따라 안정적입니다.

이러한 종류의 필터는 아날로그 회로로 설계 할 수 있지만 계수에 맞게 조정 된 정확한 증폭기와 정확한 지연 회로가 필요하며 탭 수를 늘릴 때 하드웨어가 크게 증가합니다. 이러한 필터는 DSP에서 구현되는 경우가 많으며 디지털 신호에 대한 작업이 훨씬 쉬운 방식으로 실행됩니다.

따라서, 귀하의 질문직접 대답하기 위해 : 디지털 필터의 튜닝은 계수를 불연속 임펄스 응답으로 설정하기 만하면됩니다.

최신 정보

OP는 단계 및 임펄스 응답에 대해 물었습니다. Olin과 Jon이 말했듯이 임펄스 응답은 스텝 응답의 파생물이며 분명히 스텝 응답은 임펄스 응답의 필수 요소입니다.

단계 응답은 제어 시스템에서 가장 중요한 사항을 보여주기 때문에 제어 시스템에서 널리 사용됩니다. 입력의 빠른 변화에 신속하게 대응하는 방법과 시간이 지남에 따라 오류를 최소화 할 수있는 안정적인 방법입니다.

그러나 임펄스 응답은 특정 순간에 입력 신호가 출력에서 ​​발생하는 원인을 계산하는 데 사용될 수 있기 때문에 매우 중요합니다. 따라서 임펄스 응답의 결과를 입력 신호에 곱한 누적 출력 신호를 얻을 수 있습니다. 컨볼 루션이며 마법이 일어나는 곳입니다. 그렇습니다. 임펄스 응답은 레귤레이터 전달 함수의 푸리에 변형 방지에 불과하기 때문입니다.

이것이 바로 디지털 필터의 힘입니다. 임펄스 응답을 직접 구현하고, 스텝 응답 (제어 시스템의 경우) 또는 전달 기능 (필터의 경우)을 재현 하려는지 여부는 임펄스 응답을 도출하고 FIR에 대한 계수를 추출합니다.


좋은 답변입니다! 이를 완료하기 위해 단계에서 임펄스 응답을 얻는 방법을 포함시킬 수 있습니까? (@JonWatte의 답변에서 볼 수 있습니다.)
tyblu

4

컨볼 루션은 일반적으로 FIR 필터이며 기존의 재귀 필터에서 극점과 0을 사용하는 것과 같은 IIR이 아닙니다. 이제 단계 응답이있는 경우이를 반전시키고 응답 신호를 사전 변환 할 수 있습니다. 결과적으로 전체 시스템이 정확히 단계 응답을 나타냅니다. 그러나 일반적인 경우 역 응답을 "사전로드"해야하므로 그룹 지연이 발생합니다. 제어 시스템에서 이는 바람직하지 않은 대기 시간으로 이어질 수 있습니다.


예를 들어 @JohWatte?
Kortuk

1
또는 내가 한 것은 제어 신호에 저역 통과 필터를 적용하는 것입니다. 이상적으로는 한 단계 씩 단계적으로 제거하지만 출력이 무한대로 진행되어야하기 때문에 실제로는 불가능합니다. 단계 입력이 실현할 수있는 것으로 바뀌도록 제어 입력을 필터링하여 컨볼 루션 값이 출력 드라이브가 생산할 수있는 값을 절대 초과하지 않음을 의미합니다. 특히 음수 값은 종종 불가능합니다. 예를 들어, 저항성 히터로 온도를 조절하는 경우 음의 열을 만들 수 없습니다 (Peltier를 사용하면 값이 음수가 될 수 있음).
Olin Lathrop

단계 응답을 어떻게 반전합니까? "응답 신호"가 원하는 출력입니까?
tyblu 2016 년

간단히 말하면, 정확하게 기억한다면 : 단계 응답을 임펄스 응답으로 변환합니다. 그런 다음 출력 신호에서 입력 신호와 함께 임펄스 응답 (임펄스를 제거한 상태)을 뺍니다. 그룹 지연 (대기 시간)을 추가하는 것이이 컨볼 루션입니다. 오디오 DSP의 마이크 및 룸 모델링과 관련하여 수십 년 전에 좋은 참조를 보았던 것을 기억합니다.
Jon Watte

2

이 문제를 해결하고 시스템의 단계 응답을 측정 할 수있는 경우 많은 이론을 단축하고 제어 매개 변수를 최적화 할 수 있습니다. 개방 루프 응답을 측정하고 이상적인 제어 매개 변수를 계산하는 대신 (최적화를위한 좋은 시작점을 찾는 데 도움이되지만) 폐쇄 루프 응답을 측정하여 시스템을 조정할 수 있습니다.

주된 아이디어는 제어 시스템이 언더 댐핑, 오버 댐핑 또는 임계 댐핑 (이상적인 경우) 인 경우 단계 응답을 측정하면 거의 볼 수 있다는 것입니다.

단계 응답을 측정 한 후 벨 소리가 나면 댐핑 상태임을 알 수 있습니다. 단계 응답을 측정 할 때 출력이 최종 값으로 천천히 만 오면 댐핑 된 것입니다. 스텝 응답을 반복적으로 측정하면서 컨트롤러를 튜닝 할 수 있다면, 울리지 않고 가장 빠른 응답을 얻도록 컨트롤러를 조정하고 최상의 응답에 가깝다는 것을 알 수 있습니다.

P 항만 사용하여 시작할 수 있습니다. 결과가 만족스럽지 않으면 I 및 D 항을 추가하십시오. 의 I 기간은 출력이 결코 긴 응답의 꼬리, 또는 경우 제거하는 데 도움이 매우 원하는 값에 도달하지 않습니다. D 용어는 입력이 다음에 어디로 갈지 "예측"하여 응답 속도를 높이는 데 도움이됩니다. (제 생각에는 제어 전문가는 아니지만 P 용어는 절대적인 용어로 최적화 될 수 있지만 I 및 D 용어의 최선의 선택은 제어중인 시스템의 응답뿐만 아니라 제어하는 ​​시스템에 따라 달라집니다 주파수 신호 및 진폭과 같은 입력 신호의 특징)

울리지 않고 얻을 수있는 가장 빠른 응답을 얻은 후에는 온도가 변경되거나 시스템이 진동으로 조정되지 않는 모든 것이 약간 오버 댐핑되도록 조정하십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.