본문 바로가기

Theory/ControlTheory

(49)
Python class로 만드는 1차 저역통과필터 Low Pass Filter 디지털 필터에 대해서는 예전에 많이 다루었는데요. 당시에 다룰때는 간단히 Python의 함수(def)를 사용해서 많이 다루었습니다. 이번에는 class를 이용해서 조금 사용성을 높인 코드를 보여드리는 것이 어떨까하고 글을 작성합니다. 일단 1차 저역통과필터는 예전에 소개한 글에서 수식을 가져오겠습니다. 저 식을 코드로 단순 변환 시켜보면 out = (tau * pre_out + ts * data) / (tau + ts) 입니다. 수식에서 분모가 같으니 tau + ts는 빼서 보면 저렇게 되죠. 문제는 pre_out입니다. 현재 출력값 out, 수식에서는 yn의 이전 값이거든요. 그래서 저 코드가 실행된 직후 현재 출력을 별도로 저장해야 합니다. 만약 class를 사용하지 않는다면, 1차 저역통과필터가 필..
[필터연재] 2차 디지털 Band Pass, Band Stop 필터 요즘 필터 연재를 진행중이네요. 이제 이 글이 발행되고 나면 남은 글은 두 개?^^ 오늘은 2차 디지털 Band Pass Filter와 Notch 필터로 알려진 Band Stop Filter인데요. 근데 연재를 처음 시작하기 전에 Python에서 Filter를 어떻게 다룰것인가라는 생각에 정리했던 글이 이미 있답니다. Band Pass Filter[바로가기], Band Stop Filter[바로가기]. 그 글에서 이미 다루었던 내용을 하나로 합치고, 연재의 전체 흐름에 맞게 살짝꿍 조절만하는 것이 이번 글이 되겠네요^^ Filter [필터연재] 1차 디지털 저역/고역 통과필터 Filter [필터연재] 2차 디지털 저역/고역 통과필터 Filter [필터연재] 2차 디지털 Band Pass, Band Sto..
[필터연재] 2차 디지털 저역/고역 통과필터 1차 저역/고역 통과필터를 디지털로 구현하는 것에 대해 지난번[바로가기]에 이야기를 했었습니다. 저는 거의 대부분의 잡음 제거용 필터는 1차만 사용을 하게 되더군요. 그런데 지금은 연재~^^이니 또 다음으로 Band Pass와 Band Stop 필터도 다룰거라~ 의미상 2차 저역/고역 통과필터도 다룰려고 합니다.^^ Filter [필터연재] 1차 디지털 저역/고역 통과필터 Filter [필터연재] 2차 디지털 저역/고역 통과필터 Filter [필터연재] 2차 디지털 Band Pass, Band Stop 필터 일단...Cut-off 차단 주파수를 결정했다고 하면~각 주파수를 계산하게 되죠^^2차는 공진(resonant point)점이 있기 때문에 그 부분을 조절하는 Quality Factor라는 것을 사용..
[필터연재] 1차 디지털 저역/고역 통과필터 전 아주 예전부터 제 블로그에 필터에 관한 글을 올리고 있었습니다. 물론 단편적인 글들이었지만요. 그 중에는 실제 자이로센서와 가속도센서를 융합하는 상보필터[바로가기]를 다루기 시작했고, 그 후 MATLAB이나 Python으로 구현하는 1차 혹은 2차 필터들에 대한 글들을 올렸습니다. 물론 이전에 올린 글들이 많지만, 문득 필터들에 대한 이야기를 1차 저역/고역 통과필터, 2차 필터, Band Pass, Band Stop 필터등등에 대해 한 번 쫘~악 정리하고 싶어지더라구요. 그래서 이런 것들을 정리할 겸 필터를 대상으로 연재를 시작할까 합니다.^^ Filter [필터연재] 1차 디지털 저역/고역 통과필터 Filter [필터연재] 2차 디지털 저역/고역 통과필터 Filter [필터연재] 2차 디지털 Ba..
2차계 시스템의 응답 특성 간편히 확인해 보기 이제 더위도 지나가려는 것 같습니다.(이 글을 쓰고 있는 시점에서는 비도오고 선선하네요^^) 저는 최근 예전에 배웠던 것들을 다시 확인하고 있는데요. 의외로 아주 재미있습니다.^^. 오늘은 2차계 시스템의 응답특성의 원리와 개념 등등 말고^^ 그냥 결과만 간략하게 정리를 해볼까 합니다. 뭐 전 그게 좋아용^^궤환 시스템 중에서 2차 궤환시스템의 블럭 선도입니다. 심플하죠^^입력과 출력을 s-domain에서 표현하면 위 수식처럼 될 것입니다.2차계의 표준형으로 표현될 수도 있습니다.^^여기에 입력을 단위계단을 넣으면 시스템의 단위계단 응답 특성을 알 수 있습니다.R(s)에 대입해서 정리하면 위와 같이 되겠죠...그걸 라플라스 역변환을 하면 위와 같이 됩니다. 저 식을 MATLAB이나 Python으로 그려보..
Bode Plot의 기초 중에서도 기초이야기 시스템의 주파수 영역을 해석하고자 할 때 아마 가장 많이 보는 것 중 하나가 보드(Bode) 선도일 겁니다. 제어관련 학과에서 2학년쯤에 거의 초중반에 학습하는 개념이기도 하구요. 저역시 그랬죠^^. 그러나 저는 어쩌다가 실무과정에서느 이 보드선도를 볼 일이 별로 없었습니다. 학부로부터 몇 십년(^^)이 지난 지금 다시 보드 선도를 볼 필요를 느끼게 되어 기초를 정리할 필요가 생겼더라구요. 학부때 배우던 Dorf의 Modern Control이라는 책도 오랜만에 펼쳤답니다. 이 중 특정 인쇄판(edition)은 저의 지도교수님께서 번역하시기도 했답니다.^^ 아무튼 그래서 이리저리 자료를 찾고 공부하던중 언제나 그렇지만 정말 잘 정리되고 간결한 자료를 또 만났습니다. 아이비리그에 속해 있는 명문 대학인 다트..
역 Z-변환된 차분 방정식을 C 코드로 계산하기 요즘 다시 아~주 오래전 기억들을 더듬고 있는데요. ㅎ... 잘 기억나질 않네요.. 머리가 돌이 되었는지.ㅠ..ㅠ. 아무튼 저는 예전에 이산시스템과 Z-변환[바로가기]이라는 글을 적은 적이 있습니다. 거기서 Z 변환과 역 Z 변환을 다루었었는데요... 기억도 가물거리고 그 때 교재들도 다 없어서 최근 책하나를 구매했지요. 개인적으로 살짝~ 얼굴만 알고 있는 고경철 교수님의 C언어로 구현하는 디지털 제어 기술 및 실습[바로가기]이라는 책입니다. 아주 흥미로운 책입니다. 예전 기억을 떠올리기에 좋더라구요^^. 아무튼 이 책의 역 Z-변환된 차분 방정식을 C 코드로 계산하는 예제가 있어서 소개해 드릴까 합니다.^^Z-domain에서 표현된 함수가 주어졌구요... 이를 간편히 역변환해보면이런 수식을 얻게 되네요..
Craig의 Robotics 5장. Jacobian 자코비안 최근 저는 pinkwink라는 제 블로그에 오랜 고민(하는 척 한 후 실제로는 즉흥적으로) 후에 Robotics라는 카테고리를 추가했습니다. 그리고 로보틱스적인 뭔가 글을 올리고 싶다는 생각이었는데요. 다른 여타의 로보틱스 고수님들과 달리... 바쁜 직장 생활 중에... 알고보니 전 뭐 딱히 올릴 수 있는 글의 주제가 현실적으로 제한적이더라구요.ㅠㅠ. 때마침 Python으로 시뮬레이션한 결과를 가지고 리뷰라도 해볼까 하는 생각이 최근 Craig의 책 4장까지는 어떻게 글을 올렸네요. 그런데 오늘 글은 뭔가 좀 애매하네요... 그래도 어떤 글을 작성할 때 제가 쓴 글을 reference로 거는걸 좋아하는 제 습관상 자코비안의 정의를 빼놓고 갈 수는 없으니.. 오늘도 글 자체로는 큰 의미가 없는 Craig의..