【제어공학】PID 제어와 스텝 응답의 가시화·분석
1 소개
전회 기사( htps : // 이 m/사토 235/있어 ms/5에006엣 bf2949cf59463 ) 속에서, 제어기를 넣은 회로에서, 스텝 입력과 스텝 응답의 가시화를 추천되었으므로, 이번 기사를 작성했다.
유쿠유쿠는 로봇의 제어계 설계에 도움이 되고 싶다.
2 참고 문헌
2.1 서적
[1] 미나미 유키의 저, 옴사, 「Python에 의한 제어 공학 입문」
2.2 웹 페이지
[a] 제어 블록 다이어그램 : htps : // 타지마로보치 cs. 코 m / 피 d b ぉ ck ぢ 아 g 라 m t ran s fu r fu c chion /
[b] [제어 엔지니어링] Python에 의한 전달 함수 그래프 : htps : // 이 m/사토 235/있어 ms/5에006엣 bf2949cf59463
[c] [제어 엔지니어링] 파이썬으로 전달 함수 및 상태 공간 모델 계산 : htps : // 이 m/사토 235/있어 ms/f991411074c578d1640c
3 실시 내용
3.1 PID 제어의 블록 다이어그램
출처: [a]
상기 "C"는 제어기에 대응한다.
전술 한 피드백 제어 회로는 전달 함수로 설정되어 스텝 입력 및 응답을 시각화한다.
3.2 전달 함수
초기값K=1
Kd=1
Wn=1
Ki=1
ita=1
Kp=1
전달 함수 만들기
C=matlab.tf([Kd, Kp, Ki],[1,0])
G=matlab.tf([K*Wn**2],[1,2*ita*Wn, Wn**2])
H=1
print("H")
print(H)
print("------------")
print("C")
print(C)
print("------------")
print("G")
print(G)
print("------------")
CG=matlab.series(C,G)
print("C*G")
print(CG)
print("------------")
CGH= matlab.feedback(CG,H,-1)
print("C*G/(1+C*G*H)")
print(CGH)
print("------------")
출력은 다음과 같다.
H
1
------------
C
s^2 + s + 1
-----------
s
------------
G
1
-------------
s^2 + 2 s + 1
------------
C*G
s^2 + s + 1
---------------
s^3 + 2 s^2 + s
------------
C*G/(1+C*G*H)
s^2 + s + 1
---------------------
s^3 + 3 s^2 + 2 s + 1
------------
3.3 스텝 입력·응답
위에서 만든 전달 함수를 사용하여 단계 입력과 응답을 시각화합니다.
t = np.linspace(0, 3, 1000)
yout, T = matlab.step(P, t)
fig = plt.figure()
ax = fig.add_subplot(1,1,1)
ax.plot(T,yout, label="step response")
ax.plot(T,[1]*1000, linestyle="--", label="step input")
ax.set_xlabel("time[s]")
plt.legend(bbox_to_anchor=(1, 0.25), loc='upper right', borderaxespad=0, fontsize=11)
그림에 정리하면 다음과 같다.
4 요약
・제어기를 넣은 피드백 회로에서의 스텝 응답까지 가시화할 수 있었다.
·다음은 안정성의 고찰이나 C, G, H의 함수의 계수를 바꾼 경우의 거동의 비교 등을 실시하고 싶다.
Reference
이 문제에 관하여(【제어공학】PID 제어와 스텝 응답의 가시화·분석), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/sato235/items/8fb1d264932f4e5efe73
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
2.1 서적
[1] 미나미 유키의 저, 옴사, 「Python에 의한 제어 공학 입문」
2.2 웹 페이지
[a] 제어 블록 다이어그램 : htps : // 타지마로보치 cs. 코 m / 피 d b ぉ ck ぢ 아 g 라 m t ran s fu r fu c chion /
[b] [제어 엔지니어링] Python에 의한 전달 함수 그래프 : htps : // 이 m/사토 235/있어 ms/5에006엣 bf2949cf59463
[c] [제어 엔지니어링] 파이썬으로 전달 함수 및 상태 공간 모델 계산 : htps : // 이 m/사토 235/있어 ms/f991411074c578d1640c
3 실시 내용
3.1 PID 제어의 블록 다이어그램
출처: [a]
상기 "C"는 제어기에 대응한다.
전술 한 피드백 제어 회로는 전달 함수로 설정되어 스텝 입력 및 응답을 시각화한다.
3.2 전달 함수
초기값K=1
Kd=1
Wn=1
Ki=1
ita=1
Kp=1
전달 함수 만들기
C=matlab.tf([Kd, Kp, Ki],[1,0])
G=matlab.tf([K*Wn**2],[1,2*ita*Wn, Wn**2])
H=1
print("H")
print(H)
print("------------")
print("C")
print(C)
print("------------")
print("G")
print(G)
print("------------")
CG=matlab.series(C,G)
print("C*G")
print(CG)
print("------------")
CGH= matlab.feedback(CG,H,-1)
print("C*G/(1+C*G*H)")
print(CGH)
print("------------")
출력은 다음과 같다.
H
1
------------
C
s^2 + s + 1
-----------
s
------------
G
1
-------------
s^2 + 2 s + 1
------------
C*G
s^2 + s + 1
---------------
s^3 + 2 s^2 + s
------------
C*G/(1+C*G*H)
s^2 + s + 1
---------------------
s^3 + 3 s^2 + 2 s + 1
------------
3.3 스텝 입력·응답
위에서 만든 전달 함수를 사용하여 단계 입력과 응답을 시각화합니다.
t = np.linspace(0, 3, 1000)
yout, T = matlab.step(P, t)
fig = plt.figure()
ax = fig.add_subplot(1,1,1)
ax.plot(T,yout, label="step response")
ax.plot(T,[1]*1000, linestyle="--", label="step input")
ax.set_xlabel("time[s]")
plt.legend(bbox_to_anchor=(1, 0.25), loc='upper right', borderaxespad=0, fontsize=11)
그림에 정리하면 다음과 같다.
4 요약
・제어기를 넣은 피드백 회로에서의 스텝 응답까지 가시화할 수 있었다.
·다음은 안정성의 고찰이나 C, G, H의 함수의 계수를 바꾼 경우의 거동의 비교 등을 실시하고 싶다.
Reference
이 문제에 관하여(【제어공학】PID 제어와 스텝 응답의 가시화·분석), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/sato235/items/8fb1d264932f4e5efe73
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
K=1
Kd=1
Wn=1
Ki=1
ita=1
Kp=1
C=matlab.tf([Kd, Kp, Ki],[1,0])
G=matlab.tf([K*Wn**2],[1,2*ita*Wn, Wn**2])
H=1
print("H")
print(H)
print("------------")
print("C")
print(C)
print("------------")
print("G")
print(G)
print("------------")
CG=matlab.series(C,G)
print("C*G")
print(CG)
print("------------")
CGH= matlab.feedback(CG,H,-1)
print("C*G/(1+C*G*H)")
print(CGH)
print("------------")
H
1
------------
C
s^2 + s + 1
-----------
s
------------
G
1
-------------
s^2 + 2 s + 1
------------
C*G
s^2 + s + 1
---------------
s^3 + 2 s^2 + s
------------
C*G/(1+C*G*H)
s^2 + s + 1
---------------------
s^3 + 3 s^2 + 2 s + 1
------------
t = np.linspace(0, 3, 1000)
yout, T = matlab.step(P, t)
fig = plt.figure()
ax = fig.add_subplot(1,1,1)
ax.plot(T,yout, label="step response")
ax.plot(T,[1]*1000, linestyle="--", label="step input")
ax.set_xlabel("time[s]")
plt.legend(bbox_to_anchor=(1, 0.25), loc='upper right', borderaxespad=0, fontsize=11)
・제어기를 넣은 피드백 회로에서의 스텝 응답까지 가시화할 수 있었다.
·다음은 안정성의 고찰이나 C, G, H의 함수의 계수를 바꾼 경우의 거동의 비교 등을 실시하고 싶다.
Reference
이 문제에 관하여(【제어공학】PID 제어와 스텝 응답의 가시화·분석), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/sato235/items/8fb1d264932f4e5efe73텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)