지난 시간에는 이론에 대해 알아보았으니, 검증을 해볼 시간이다.
세 가지를 알아볼 것이다.
1. 피드포워드 게인을 변경함에 따라 나타나는 속도 지령의 분담률을 알아보자.
2. 피드포워드 게인을 변경함에 따라 나타나는 위치 편차를 알아보자.
3. 피드포워드 게인을 1.0(=100[%])보다 크게 하여 과보상한 경우의 결과를 알아보자.
속도 피드포워드 제어기의 게인을 1(=100%)으로 설정하면,
속도 피드포워드 제어기의 출력이 '속도 지령'이 된다고 설명했다.
아래의 수식을 다시 떠올려보자.
그림 1처럼 구성된 제어기를 파이썬 코드로 작성해서 결과를 알아볼 것이다.
아래의 그래프를 살펴보자.
목표 속도 3,000[RPM], 가속시간 0.5[초]의 조건으로 시뮬레이션한 결과이다.
이 때의 속도 피드포워드 게인은 1(=100[%])으로 설정했다.
좌측 위의 그래프는 '위치 지령'과 '현재 위치'를 나타낸다.
우측 위의 그래프는 '속도 지령', '현재 속도', '속도 피드포워드 제어기의 출력', '위치 제어기의 출력'을 나타낸다.
('속도 지령' = '속도 피드포워드 제어기의 출력' + '위치 제어기의 출력')
좌측 아래의 그래프는 위치 편차를 나타낸다.
우측 아래의 그래프는 우측 위의 그래프를 확대한 것이다.
우측 아래의 그래프를 보면, 현재속도(주황색)이 지령속도(파란색)를 거의 일치하게 추종하는 것을 알 수 있다.
즉, 상위 제어기에서 내보내는 위치지령을 거의 일치하게 추종하고 있다.
이 것이 바로 피드포워드 제어기의 효과이다.
이 것을 위해 피드포워드 제어기를 사용하는 것이다.
그런데, 어라? 지령속도(파란색)과 속도 피드포워드 제어기의 출력(초록색)이 일치하지 않는데?
이는 속도 피드포워드 제어기의 입력에 저역 통과 필터(=LPF)를 거치게 만들었기 때문이다.
아무래도 미분 값을 사용하기 때문에 부드러운 속도 지령 값을 만들어주기 위해 저역 통과 필터를 사용하게 되었고, 이로 인해 약간의 시간 지연이 발생했다.
그림 3처럼 저역 통과 필터를 추가하여 제어기를 구성했다.
약간의 시간 지연 요소를 제외한다면, 이론으로부터 얻은 결과와 동일한 결과를 얻을 수 있다.
자, 그렇다면 속도 피드포워드 게인 Gv를 0.5(=50[%])으로 하면 어떨까?
예상 결과를 먼저 생각해보자.
아래의 수식처럼 속도지령을 50:50을 분담하게 될 것이다.
자, 시뮬레이션으로 확인해보자.
우측 위의 그림를 보면, 속도지령(파란색)과 현재속도(주황색)에 가려져있다.
등속 구간(0.5초 이후)에서 속도 지령은 3,000[RPM}이다.
그리고 속도 피드포워드 제어기의 출력(초록색)과 위치 제어기의 출력(빨간색)이 각각 1,500[RPM]으로 유지되고 있다.
즉, 예상과 동일하게 결과를 얻을 수 있다.
먼저 피드포워드 게인을 0으로 두고 결과를 알아보자.
속도 피드포워드 제어기의 출력(초록색)은 0이 된다.
그리고 좌측 아래의 위치 편차는 가속 시간이 지나면 일정한 값으로 유지된다.
대략 130,660[pulse]이다.
이 위치 편차는 예상이 가능한 값이다.
Y사와 P사 서보 드라이버 매뉴얼에도 나와있으며, 수식을 표현하면 다음과 같다.
지령 속도 3000[RPM]을 엔코더 분해능 17비트로 환산해보자.
아래의 수식을 따르면 지령 속도는 65,536,000[pulse/s]이 된다.
이제 위치 편차를 계산할 차례이다.
시뮬레이션에서는 위치 루프 게인을 50[rad/s]으로 설정했다.
자, 그러면 위치편차는 지령 속도[pulse/s]를 위치 루프 게인[rad/s]으로 나눈 131,072[pulse]가 된다.
그림 5에서 얻어진 130,660[pulse]와는 조금 차이가 있다.
대략 0.31%의 오차율이다.
(시뮬레이션에서는 전류제어 루프도 있고, 이산화로 인한 양자 오차도 있기에 조금의 차이는 발생했다.)
거의 예상치대로 얻어졌다고 볼 수 있다.
속도 피드포워드 게인을 0.5(=50[%])으로 했을 때의 위치 편차는 얼마일까?
대략 65,126가 나오게 되는데, 계산 값인 65,536과 거의 비슷한 값을 보인다.
속도 피드포워드 게인을 1.5(=150[%])으로 해보자.
피드포워드 제어기의 과보상으로 인해 위치 제어기의 출력이 음수가 되어 이를 상쇄하고 있다.
다행히도 시스템이 불안정해지지 않고 속도 지령을 잘 추종하고 있다.
하지만, 위치 편차가 음수가 되었다.
속도 피드포워드 게인이 0.5(=50[%])일 때와 부호만 다른 값으로 출력되고 있다.
즉, 위치 지령보다 앞서 모터가 회전하고 있다는 것을 의미한다.
속도 지령은 잘 추종할지라도, 우리가 설계한 제어기는 어디까지나 '위치지령'을 받아서 동작하는 '위치제어기'이다.
따라서, 제어기를 설계할 때 피드포워드 게인이 100[%]가 넘지 않도록 하는 편이 좋다.
그리고 경험상, 피드포워드 게인이 100[%]가 되면, 현재 위치가 목표 위치에 도달할 때 약간의 오버슈트가 발생하기도 하고 어떤 시스템에선 불안정해지기도 했다.
(제어기를 어떻게 구성하냐에 따라 100[%]로 해도 안정되기도 한다.)
피드포워드 제어기 설계 (1) - 이론 설명 (2) | 2023.10.29 |
---|---|
외란 관측기 설계 (1) - 전차원 관측기 (0) | 2023.01.08 |
속도 제어기 설계 (3) - PI 게인 조정 (4) | 2023.01.08 |
속도 제어기 설계 (2) - 설계 이론 (2) | 2023.01.08 |
속도 제어기 설계 (1) - 모터 파라미터 (3) | 2023.01.08 |