Z 변환 파생 PID 구현의 장점은 무엇입니까?


29

this 와 같은 많은 PID 기사를 보았으므로 일반적인 PID 방정식의 Z 변환을 사용하여 소프트웨어 (또는이 경우 FPGA)에서 구현할 수있는 미친 차이 방정식을 도출했습니다. 내 질문은, PhD가없는 기존의 훨씬 직관적 인 PID 와 같은 구현의 이점은 무엇입니까?타입 구현? 두 번째는 이해하고 구현하기가 더 쉬운 것 같습니다. P 항은 직선 곱셈이고 적분은 누계를 사용하며 미분은 현재 샘플에서 이전 샘플을 빼서 추정됩니다. Integral Windup protection과 같은 기능을 추가해야하는 경우 곧바로 대수입니다. 위의 링크와 같이 차등 유형 알고리즘에 Integral Windup 보호 또는 기타 기능을 추가하려고하면 훨씬 더 복잡해 보입니다. "저는 Z 변환을 재미있게하기를 좋아하는 나쁜 엉덩이입니다"유형의 자랑 할 권리 외에 다른 구현을 사용해야 할 이유가 있습니까?

편집 : 내가 링크 한 PHD 기사가없는 PID는 적분 항에 대해 누계를 사용하고 미분 항에 대한 연속 샘플 간의 차이를 사용하는 간단한 구현의 예입니다. 결정적 방식으로 고정 소수점 연산으로 구현할 수 있으며 원하는 경우 실시간 상수 정보를 계산에 포함 할 수 있습니다. 나는 기본적으로 Z 변환 방법에 대한 실질적인 이점을 찾고 있습니다. 나는 그것이 더 빠를 수있는 방법을 보지 못하거나 적은 자원을 사용합니다. 적분의 누계를 유지하는 대신 Z 방법은 이전 출력을 사용하고 이전 P 및 D 성분을 빼서 ​​계산에 의해 적분 합계에 도달하는 것으로 보입니다. 따라서 누군가 내가 누락 된 것을 지적 할 수 없다면, 나는 본질적으로 동일하다는 AngryEE의 의견을 받아 들일 것입니다.

최종 편집 : 답변 주셔서 감사합니다. 나는 각각에 대해 조금 배웠지 만 결국 화가는 그것이 단지 선호의 문제라는 점에서 맞다고 생각합니다. 두 가지 형태 :

E(K-2)=E(K-1),

u(k)=u(k1)+Kp(e(k)e(k1)+KiTie(k)+KdTi(e(k)2e(k1)+e(k2))
u ( k - 1 ) = u ( k )
e(k2)=e(k1),e(k1)=e(k)
u(k1)=u(k)

또는

sum=sum+e(k)
u(k)=Kpe(k)+KiTisum+KdTi(e(k)e(k1))
e(k1)=e(k)

본질적으로 동일한 것으로 평가됩니다. 일부는 DSP 또는 FPGA에서 첫 번째를 더 빠르게 구현할 수 있지만 언급하지는 않습니다. 벡터화 할 수 있습니다. 첫 번째 작업에는 두 개의 사후 작업이 필요하고 두 번째 작업에는 하나의 사전 작업과 하나의 사후 작업이 필요하므로 고르지 않은 것처럼 보입니다. 첫 번째는 실제 계산에서 1 곱셈이 더 필요합니다.


"미분 방정식"을 의미 했습니까?
케빈 베르메르

적어도 내가 한이 피드백을 바탕으로 귀하의 의견을 이해하지 못했을 것입니다. 내 의견을 제거하겠습니다!
Kortuk

1
dsp.stackexchange.com으로 이동하십시오
Jason S

답변:


7

Z- 변환의 모든 기발함에 사로 잡히고 있습니다. 두 가지 접근 방식은 기본적으로 동일합니다. PHD 접근 방식이없는 PID는 첨자가 적습니다. 그들은 동일한 기본 기능을 수행하고 동일한 기본 수학을 사용합니다.

내가 볼 수있는 두 가지 유일한 차이점은 PHD가없는 PID는 샘플링 시간을 고려하지 않는다는 것입니다. 불안정한 것을하기 위해서는 샘플링 시간이 매우 중요합니다. 이 경우 Z- 변환 방식의 이점은 샘플링 시간을 고려하지 않고 사용할 수 없다는 것입니다. 작업을 표시하고보다 안정적인 시스템을 설계하는 데 도움이됩니다.

또한 Z- 변환 방식을 구현하는 것이 매우 결정 론적으로 설계된 사례 연구처럼 보입니다. FPGA 사용에 대해 설명합니다. 계산에는 항상 같은 시간이 걸립니다. PHD 구현이없는 PID는 결정적이지 않습니다. 고정 소수점 구현 대신 변수로 double을 사용하면 부동 소수점 장치가없는 모든 마이크로 컨트롤러 (및 아마도 FPU가있는 uC)에서도 결정적이지 않은 동작이 발생합니다. 사례 연구는 PID없는 PHD 접근 방식과 비교하여 완전히 다른 수준의 복잡성을 연구하고 있습니다.

따라서 기본적으로 수학 및 제어 방식은 동일하지만 사례 연구 / Z 변환 방식은보다 엄격하고 이론적으로 근거가 있습니다. PID없는 PHD 접근 방식은 비교적 안정적인 시간이 중요하지 않은 매우 간단한 시스템에서만 작동합니다.


PHD 아티클이없는 PID는 더 간단한 구현의 예일 뿐이며 적분에 대한 누계와 미분에 대한 연속 샘플의 차이를 사용합니다. 이 기사에서는 샘플 시간이 일정해야한다고 명시하고 있습니다. 샘플링 시간은 I 및 D 계산에 쉽게 추가 할 수 있지만 대부분의 경우 실제 계산에서는 수행되지 않습니다. 컨트롤러의 GUI (또는 다른 인터페이스)는 루프 시간을 기준으로 초 및 초 단위로 사용자에게 I 및 D 용어를 제공합니다.
bt2

@ bt2 PhD / PID PhD가 가장 좋은 접근법 인 매우 구체적인 사례가있는 것처럼 들립니다. 대부분의 시스템에는 어떤 식 으로든 I 및 D 용어가 표시되지 않습니다. PID 컨트롤러의 결과로 시스템 전체에 약간의 변화가 생겨 루프백됩니다. 사용자에게 방금 표시하는 경우 안정성에 대해 걱정할 이유가 없습니다.
Kellenjb

"PHD없는 PID 방식은 매우 단순하게 작동합니다."-나는 동의하지 않습니다. Z- 변환 분석을 사용하여 디지털 제어 시스템을 확실히 최적화 할 수 있지만, 단점은 시스템을 정확하게 모델링하여 나무의 숲을 놓칠 수 있다는 것입니다.
Jason S

10

PID 컨트롤러를 설계하는 Z- 변환 방법은 결국 훨씬 더 효율적인 구현을 제공 할 것입니다. 애플리케이션을 위해 가장 작은 FPGA / DSP / 마이크로 컨트롤러를 설계 할 경우에 중요합니다.

언급 된 "PHD없는 PID"는 아마도 소프트웨어에서 PID 제어를 구현하는 가장 쉬운 방법이지만 더 높은 샘플링 속도에서는 번거 롭습니다.

또한 Z- 변환은 개별 (디지털) 도메인에서 설계하는 데 더 적합합니다. 전통적인 (라플라스 변환) 설계 방법은 연속 시간에 더 적합합니다. 두 가지 (Zero-Order Hold, Linear Interpolation, Pole Placement, Bilinear / Tustin) 사이에는 여러 가지 변환 방법이 있으며 각각 시스템의 안정성과 응답 측면에서 장점과 단점이 있습니다. 개별 영역에서 전체 설계를 수행하는 것이 일반적으로 더 쉽습니다.

간단히 말해, 상대적으로 "느린"시스템을 사용하는 경우 (모든 주요 동작이 100kHz 정도에서 크게 발생 함) 첫 번째 디자인은 아마도 괜찮을 것입니다. 마이크로 컨트롤러 또는 PC에서이를 구현하고 수행 할 수 있습니다. 시스템 속도가 빨라질수록 필요한 속도를 얻기 위해 Z- 변환 방법을 사용해야 할 수도 있습니다 (이 기사는 9.5MHz를 언급하며 A / D 및 DAC를 유지할 수 있다고 가정).


1
같은 수의 수학 연산, 다른 숫자 표현. 복식은 사례 연구에 사용 된 고정 소수점 방법보다 훨씬 복잡한 숫자 표현입니다. 덜 복잡한 것은 실리콘에서 더 적은 작업을 의미합니다.
AngryEE

2
@ bt2, DSP 칩이 SIMD (Single Instruction, Multiple Data) 명령 세트에 대해 설정되었다는 점에서 더 효율적이라고 말할 것입니다. 수학 연산의 개수는 동일하지만 Z 변환을 사용하면 한 번의 명령주기에서 모든 곱셈을 수행 한 다음 결과 벡터의 모든 요소를 ​​한 번의주기 (플랫폼에 따라 다름)로 합칠 수 있습니다. 따라서 수학은 동일하지만 시간 복잡성이 크게 낮아져서 속도가 향상됩니다.
mjcarroll 2018 년

1
@ bt2 z-form은 차분 방정식으로 구현되는데, 이는 어느 시점에서 오버플로 (또는 언더 플로)가 될 누계를 필요로하지 않고 과거 출력과 전류 입력에만 의존합니다. DSP는 차이 방정식 접근법을 통해 디지털 필터를 효율적으로 구현할 수 있도록 설계되었습니다. en.wikipedia.org/wiki/Digital_filter esp를 참조하십시오 . 직접 양식-이것이 DSP에 최적화 된 것입니다.
freespace

1
뭔가 빠진 것 같아요 정상적인 상황에서는 누계가 넘치지 않습니다. IIR 필터가 항상 포화되는 것은 아니며 PID 제어의 경우에는 일반적으로 그렇지 않습니다. 하나의 알고리즘으로하지만 다른 알고리즘으로는 그렇지 않다고 말하는 것은 거짓입니다. 누계도 마찬가지로 이전 출력을 기반으로합니다. 오버플로가 발생하면 둘 다 발생합니다. 이런 식으로 생각하면 두 번째 이식은 첫 번째이며 일부 수학은 제외됩니다 ... u (k-1)-kp (e (k-1)-kd / Ti (e (k-1)-e ( k-2) == (실행 합계)
bt2

1
-1 : Z- 변환은 더 효율적인 구현을 제공하지 않습니다. 실제로 "순진한"디지털 방법을 사용하는 1 극 저역 통과 필터를 이중 선형 변환을 사용하는 1 극 저역 통과 필터와 비교하면이 방법을 사용하면 구현 효율이 약간 떨어집니다. 필터 도출과 상관없이, 동일한 # 상태 변수 = 거의 동일한 구현 효율. 대체로 이것은 필터 설계 방식과 독립적 인 수량입니다.
Jason S

5

내 경험에 따른 거래는 다음과 같습니다.

  • Z 변환은 일부 분석에 도움이됩니다. 이산 시간 샘플링 시스템의 이론은 Z 변환을 통해 가장 잘 모델링됩니다.
  • PID 제어기 또는 저역 통과 필터의 설계는 파생 분석 / 통합을 연속 시간에서 이산 시간으로 변환하는 데 사용되는 몇 가지 근사치 중 하나를 사용하여 Z 분석 및 고전 분석을 통해 수행 할 수 있습니다. 극점과 영점이 샘플링 속도에 비해 낮은 주파수에있는 경우 문제가되지 않습니다. 가장 자신감있는 방법을 고수하십시오.
  • 필터 및 컨트롤러의 Z 변환 파생은 종종 해당 필터 및 컨트롤러의 매개 변수의 물리적 의미를 모호하게합니다. 적분 게인, 비례 게인 및 차동 게인을 가진 PID 루프가 있다면 각 매개 변수가 직접 수행하는 작업을 알고 있습니다. Z- 변환을 사용하면 어떻게 든 파생되어야하는 숫자 일뿐입니다.
  • 필터 및 컨트롤러의 구현 은 해당 필터 및 컨트롤러의 매개 변수의 물리적 의미를 모호하게 하거나 숨길 수 없습니다 . 이 품질은 대부분 이전 시점과는 무관합니다. Z- 변환 기반 디자인을 사용하는 경우이를 고전적인 구현으로 변환하거나 그 반대로 변환 할 수 있습니다. FINAL EDIT 아래의 예제는 좋은 예입니다. 두 번째 구현은 적분기 ( " sum")를 자체 상태 변수로 분리하기 때문입니다. 그 상태 변수는 의미가 있습니다. 첫 번째 구현은 상태 변수를 과거 오류 기록으로 유지합니다. 그것은 의미가 있지만 내 의견으로는 통찰력이 떨어집니다.

마지막으로 비선형 성 또는 분석과 관련된 다른 문제가 종종 있습니다. 종종 다른 구현에 비해 하나의 구현을 선택하게됩니다 (제게는 컨트롤러, FIR 필터의 경우 Z 변환, 1 극 또는 2 극 IIR 필터의 경우 항상 고전적인 접근법입니다). 고전적인 접근 방식) :

  • 컨트롤러의 경우, 과거 오류 샘플보다는 항상 적분기를 상태 변수로 유지합니다. 그 이유는 실제 시스템에는 적분이 너무 양이나 음이되지 않도록 고정해야하는 와인드업 방지가 필요하기 때문입니다. (그리고 고정 소수점으로 구현하는 경우 오버플로를 칠 때 랩 어라운드 조건이 제어 루프의 동작에 나쁜 영향을 미치기 때문에 어쨌든이 작업을 수행해야합니다)

  • 같은 이유로, 나는 또한 항상 예 : 출력-언급 방식으로 통합 계산 sum += Ki*error; out = stuff + sum보다는를 sum += error; out = stuff + Ki*sum. 두 번째 접근 방식을 사용하면 게인 Ki를 변경하면 출력에 대한 적분기의 영향을 스케일 업하고 스케일을 낮 춥니 다.이 값은 원하는 것이 아닐 수 있으며 게인에 따라 한계가 변경됩니다. 적분하기 전에 Ki에 오차를 곱하면 적분기의 단위는 제어 루프 출력의 단위와 동일하며보다 명확한 물리적 의미를 갖습니다.

(업데이트 : 이 주제대한 블로그 항목을 보다 자세하게 작성했습니다.)


4

편집 :

Z- 변환을 사용하면 분석을 위해 LTI 시스템을 더 쉽게 결합하고 단순화 할 수 있습니다. 예를 들어, 전달 함수 H1, H2, ..., Hk를 갖는 직렬 연결된 k 개의 LTI 시스템은 간단한 제품으로 결합됩니다 H = H1*H2*...*Hk. 또한, 네거티브 피드백 루프의 전달 함수는입니다 T = G/(1 + G*H). 여기서 H는 피드백 경로에 있습니다. 전체 전송 기능이 있으면 추가 필터 및 피드백을 추가하여 설계를 최적화하기 위해 안정성 (극 위치) 및 성능 (과도, 정상 상태 오류)을 분석 할 수 있습니다.

고차 하위 시스템의 경우 시스템 기능을 분할하고 일련의 계단식 바이 쿼드 (예 : 복소수 복소수 또는 반복 된 근과 같은 0과 극 쌍)로 구현하여 양자화로 인한 불안정성을 줄일 수 있습니다. 정식 형태의 쿼드 :

바이 쿼드 섹션


당신의 대답은 인상적으로 들리지만, 나는 당신이 무슨 말을했는지 전혀 모른다. 예를 들어, 양자화 안정성은 무엇이며, 한 형태의 방정식에서 다른 형태보다 어떻게 우수합니까?
bt2

1
전달 함수 H (z)는 합리적인 함수 B (z) / A (z)입니다. z의 각 다항식은 N 차 시스템의 N 제로 인수입니다. 분모에있는 A (z)의 0을 극점이라고합니다 (피드백 경로입니다). 일정한 스케일링 계수로 선형 시간 불변 (LTI) 시스템은 0과 극점으로 설명됩니다.
Eryk Sun

1
이산 시간 LTI 시스템은 모든 극이 z 평면의 단위 원 안에 있으면 안정적입니다. 그러나 유한 한 디지털 정밀도로 양자화하면 잡음이 발생하여 시스템이 약간 안정적이거나 불안정하거나 시간이 지남에 따라 불안정하게됩니다. H (z)를 곱하기 이차 (biquadratics)로 분해하면 이런 종류의 오류가 최소화됩니다.
Eryk Sun

2
실수는 실제 계수를 갖는 다항식의 0이 실수 또는 복소수 복소수의 쌍이므로이 분수가 선호되는 최소 분할입니다. 이분 B (z) / A (z)는 (b0 + b1z ^ -1 + b2z ^ -2) / (a0 + a1z ^ -1 + a2z ^ -2)입니다.
Eryk Sun

캐스케이드 이차를 직접 4 차 폴리와 비교하는 양자화 노이즈에 대한 예제를 추가하고 제거했습니다. 그러나 너무 많았습니다. 잠 좀 자야 겠어 미안해, 티 블루
Eryk Sun

3

PID 컨트롤러의 어려운 부분은 코드 자체가 아닙니다. 실제로 컨트롤러를 최적화하려고 할 때 문제가 발생합니다. 물론 시행 착오를 수행하고 꽤 괜찮은 컨트롤러를 얻을 수 있지만 일부 시스템은 시행 착오 방법을 수행하기에 너무 복잡합니다. 이러한 동일한 시스템은 적절한 시스템 대신 우수한 컨트롤러가 필요한 시스템입니다. 이 경우 Z 변환은 분석하기가 훨씬 쉽습니다.

고려해야 할 또 다른 사항은 시스템의 안정성입니다. 불안정 해지기 어려운 시스템을 다루거나 아무 것도 해치지 않는 시스템을 다룰 수 있습니다. 그러나 컨트롤러로 인해 시스템이 불안정 해지면 치명적인 결과를 초래할 수있는 많은 시스템이 있습니다. Z- 변환은 문제가 있는지 확인하기가 훨씬 쉬운 또 다른 장소입니다.

그리고 마지막 메모 1 개. 시스템 전체를 분석 할 때는 시스템의 모든 구성 요소에 대한 방정식을 얻어야합니다. 물론 PID가없는 PID에서 가져올 수는 있지만 Z 변환 방법으로 이미 작업하고 있다면 수행해야 할 작업이 훨씬 적습니다.

이제 개인 취향으로 항상 PID w / oa PhD 방법을 사용합니다. 컨트롤러에 크게 의존하지 않는 시스템에서 마이크로 컨트롤러를 사용하고 있기 때문입니다.


2

Z- 변환 형식의 유용성이 더 높은 이유는 여러 가지가 있습니다.

시간 기반 / 간단한 / sans-PHD 접근 방식을 홍보하는 사람에게 Kd 용어가 무엇인지 물어보십시오. 그들은 '제로'라고 대답 할 가능성이 높으며 D가 불안정하다고 말할 수 있습니다 (저역 통과 필터 없음). 이 모든 것이 어떻게 조합되는지 배우기 전에 그런 말을했을 것입니다.

시간 영역에서 Kd 조정이 어렵다. 전달 기능 (PID 서브 시스템의 Z- 변형)을 볼 때 그것이 얼마나 안정적인지 쉽게 알 수 있습니다. 또한 D 용어가 다른 파라미터와 관련하여 컨트롤러에 어떤 영향을 미치는지 쉽게 알 수 있습니다. Kd 매개 변수가 z- 다항식 계수에 0.00001을 기여하지만 Ki 항이 10.5 인 경우 D 항이 너무 작아 시스템에 실제로 영향을 미치지 않습니다. Kp와 Ki 용어 사이의 균형을 볼 수도 있습니다.

DSP는 유한 차분 방정식 (FDE)을 계산하도록 설계되었습니다. 여기에는 계수를 곱하고 누산기와 합산하며 한 명령 사이클에서 버퍼의 값을 이동시키는 op 코드가 있습니다. 이것은 FDE의 병렬 특성을 이용합니다. 기계에이 op 코드가 없으면 DSP가 아닙니다. MPC (Embedded PowerPC)에는 FDE 계산 전용 주변 장치가 있습니다 (데시 메이션 단위라고 함). DSP는 전달 함수를 FDE로 변환하는 것이 쉽지 않기 때문에 FDE를 계산하도록 설계되었습니다. 16 비트는 계수를 쉽게 양자화하기에 충분한 동적 범위가 아닙니다. 많은 초기 DSP에는 실제로 이러한 이유로 24 비트 단어가있었습니다 (현재 32 비트 단어가 일반적이라고 생각합니다).

소위 쌍 선형 변환 인 IIRC는 전달 함수 (시간 도메인 컨트롤러의 z- 변환)를 사용하여 FDE로 변환합니다. 그것이 어렵다는 것을 증명하고, 결과를 얻기 위해 그것을 사용하는 것은 사소한 것입니다-당신은 확장 된 형태가 필요하고 (모든 것을 곱셈하십시오) 다항식 계수는 FDE 계수입니다.

PI 컨트롤러는 훌륭한 접근 방식이 아닙니다. 더 나은 접근 방식은 시스템의 동작 방식 모델을 구축하고 오류 수정에 PID를 사용하는 것입니다. 모델은 단순해야하며 수행중인 작업의 기본 물리를 기반으로해야합니다. 제어 블록으로 피드 포워드됩니다. 그런 다음 PID 블록은 제어중인 시스템의 피드백을 사용하여 오류를 수정합니다.

설정 점 (참조), 피드백 및 피드 포워드에 대해 정규화 된 값 [-1 .. 1] 또는 [0 ... 1]을 사용하는 경우 다음과 같은 최적화 된 DSP 어셈블리를 사용하면 PID 및 가장 기본적인 저역 통과 (또는 고역 통과) 필터가 포함 된 2 차 필터를 구현할 수 있습니다. 이것이 DSP에 정규화 된 값을 추정하는 op 코드가있는 이유입니다 (예 : 범위 (0..1)에 대한 역 제곱근의 추정값을 출력하는 것) 예를 들어, 4 탭 저역 통과 버터 워스 필터를 구현하기 위해 2p2z DSP 코드를 활용해야합니다.

대부분의 시간 영역 구현은 dt 용어를 PID 매개 변수 (Kp / Ki / Kd)로 구 웠습니다. 대부분의 z 도메인 구현은 그렇지 않습니다. dt는 Kp, Ki, & Kd를 취하는 방정식에 들어가고 그것들을 a [] & b [] 계수로 바꾸어 PID 제어기의 교정 (튜닝)이 이제 제어 속도와 무관합니다. 10 배 빠르게 실행하고 a [] & b [] 수학을 크랭크 할 수 있으며 PID 컨트롤러는 일관된 성능을 갖습니다.

FDE를 사용한 자연스러운 결과는 알고리즘이 암시 적으로 "글리치리스"라는 것입니다. 실행하는 동안 즉석에서 게인 (Kp / Ki / Kd)을 변경할 수 있으며 시간 도메인 구현에 따라 제대로 작동하지 않을 수 있습니다.

통합 와인드업을 방지하기 위해 일반적으로 시간 영역 PID 컨트롤러에 많은 노력을 기울입니다. PID가 훌륭하게 작동하도록하는 FDE 형식의 간단한 트릭이 있습니다. 히스토리 버퍼에서 값을 고정 할 수 있습니다. 필터가 Kp / Ki / Kd 매개 변수와 관련하여 필터의 동작에 어떤 영향을 미치는지 알아보기 위해 수학을 수행하지는 않았지만 실험 결과는 '부드럽습니다'. 이것은 FDE 형태의 '글리치리스'특성을 활용하고 있습니다. 피드 포워드 모델은 통합 와인드업을 방지하고 D 항을 사용하면 I 항의 균형을 잡는 데 도움이됩니다. PID는 실제로 D 게인으로 의도 한대로 작동하지 않습니다. (회전 설정 점은 과도한 와인드업을 방지하는 또 다른 주요 기능입니다.)

마지막으로 Z- 변환은 "Ph.D"가 아닌 저급 주제입니다. 당신은 복잡한 분석에서 그들에 관한 모든 것을 배웠어야합니다. 이것은 당신이가는 대학, 강사, 그리고 수학을 배우고 도구를 사용하는 방법을 배우는 노력이 산업에서 수행하는 능력에 큰 차이를 만들 수있는 곳입니다. (내 복잡한 분석 수업은 끔찍했습니다.)

사실상의 산업 도구는 Simulink입니다 (CAS는 컴퓨터 대수 시스템이 없기 때문에 일반 방정식을 계산하기 위해 다른 도구가 필요합니다). MathCAD 또는 wxMaxima는 PC에서 사용할 수있는 기호 솔버이며 TI-92 계산기를 사용하여 수행하는 방법을 배웠습니다. TI-89에도 CAS 시스템이 있다고 생각합니다.

PID 및 저역 통과 필터를 위해 Wikipedia에서 z- 도메인 또는 라플라스-도메인 방정식을 찾을 수 있습니다. 여기에 내가 말하지 않은 단계가 있습니다. PID 컨트롤러의 이산 시간 도메인 형식이 필요하다고 생각한 다음 z 변환을 수행해야합니다. 라플라스 변환은 z- 변환과 매우 유사해야하며 PID {s} = Kp + Ki / s + Kd.s로 주어집니다. 다음 식에서 z- 변환이 Dt를 더 잘 설명 할 것이라고 생각합니다. Dt는 델타 -t [ime]이며,이 상수를 파생 'dt'와 혼동하지 않기 위해 Dt를 사용합니다.

b[0] = Kp + (Ki*Dt/2) + (Kd/Dt)
b[1] = (Ki*Dt/2) - Kp - (2*Kd/Dt)
b[2] = Kd/Dt

a[1] = -1
a[2] = 0

그리고 이것은 2p2z FDE입니다.

y[n] = b[0]·x[n] + b[1]·x[n-1] + b[2]·x[n-2] - a[1]·y[n-1] - a[2]·y[n-2]

DSP는 일반적으로 곱하기 & 덧셈 (곱하기 & 빼기) 만 있었으므로 부정이 a [] 계수로 롤링되는 것을 볼 수 있습니다. 더 많은 극을 위해 더 많은 b를 더하고 더 많은 제로를 위해 더 많은 a를 더하십시오.


1

이를 수행하면 동등한 아날로그 시스템의 정확한 동작이 유지되므로 일반적으로 Z 변환 방법을 사용하는 것이 좋습니다. Ziegler-Nichols와 같이 잘 알려진 튜닝 방법이 있는데, 게시 된 그대로 아날로그 영역에서 작동합니다. Z 변환 방법을 사용하는 경우 결과 컨트롤러가 동일한 이득, P 및 I 이득의 동일한 값에 대해 동일한 동작을 수행하고 해당 이득이 주어지면 아날로그 영역에서 수행 될 것이라는 수학적으로 엄격한 기대치를 갖게됩니다. 또한 시스템에 대한 개별 루트 위치를 그리고 주어진 이득 세트에 대한 안정성을 예측할 수 있습니다. 코드에서 직접 애드혹 컨트롤러를 생성하는 경우에는 불가능합니다.

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