매번 공지사항을 확인하기 때문에 가장 먼저 공지가 올라오면 바로 행동으로 옮기는 편입니다.
그런데 꼭 행동으로 옮긴 뒤에는 공지의 내용이 바뀌어 있군요.
빨리 처리를 해놓고 맘편히 다른걸 할 생각에 그러는데 어째서 매번 이따위인지 참...
재미있는건 그래놓고 왜 공지를 확인 안했냐고 뭐라 하네요 -_-
아 즐거운 병신들 진짜 ㅋㅋ
글이란건 올려놓고 수정하는게 아니라 올리기 전에 검토하고 수정해야된다는거 모르나 ㅋㅋ
조회수가 1이라도 있을 경우엔 그 글은 누군가 봤다는건데 그런 생각 자체를 안하는거냐 병신들아 ㅋㅋ
울학교 행정 하고있는 빠가사리들은 제발 생각좀 하고 살자
그래놓고 학생들이 확인을 안해서 문제가 되었느니 하는 이야기는 제발 더더욱 하지말고 :)
로봇을 연구하는 사람의 목적은 사람 마다 다르겠지만, 일반적으로 사람이 하는일을 로봇이 대신하게 해주자 라는 것입니다. 반복적인 조립이나 속칭 3D 작업 등이 대표적인 예가 될 수 있겠습니다.
가끔 상상하는 것인데,
그런데 만약에 말입니다 만약에... 이 모든것이 로봇으로 대체될 수 있다 라고 가정한다면,
과연 그 사회는 우리가 꿈꾸는 인간은 편하게 쉬고 놀고 먹기만 하는 그런 사회일 수 있을까요?
혹은
일반적인 상상과는 정 반대로 대량의 실업자가 양산되어 소수의 몇명만을 위한 그런 사회가 되지는 않을까요?
결국 이러한 로봇들을 구매하는 입장은 회사가 될 것인데, 인간을 모두 대체할 수 있는 로봇을 구매하는 그 회사에 원래 있던 사람들은 과연 어디로 가야하는 것일까요? 그렇게 점점 기계와 로봇에게 인간이 할 수 있는 일들을 빼앗겨 가는데... 어쩌면 이건 서로간의 밥그릇 싸움으로 번질 수도 있지 않을까? 라는 생각이 듭니다.
물론...
그런 걱정 따위 어차피 먼 미래의 일이라고 생각하고 있지만 말입니다... 하지만 그런 날이 다가 왔을 때, 과연 인간들은 어떻게 대처해야할 지 조금은 고민을 해봐야하지 않을까 싶네요.
기존의 아날로그이며 연속적으로 구성된 PID 컨트롤러를 디지털 시스템에서 사용하기 위해 이산적 시스템으로 변환한다. 이 때 변환되는 과정을 순서대로 정리한 문서임.
2. PID Controller
일반적인 연속적인 시간 도메인에서 PID 컨트롤러는 아래와 같음
여기서, Kp 는 비례제어상수, Ti, Td 는 각각 적분, 미분 제어 파라미터, u0 는 초기치 이다. 여기서 초기치 u0 에 의해 u(t) 값의 상, 하 위치가 변경될 수 있으므로, 이를 positional PID controller 라고 부른다.
3. Discrete PID Controller
여기서 u(t) 값을 이산적 값이라 가정할 경우, 수치해석적 관점에 의해 아래와 같이 근사화 시킬 수 있다.
위와 같은 근사값에 의해, 아래와 같이 이산화된 PID 제어 함수를 도출할 수 있다.
4. Velocity PID Controller
여기서 구하려고 하는 것은 Velocity PID Controller 의 제어 수식이며, 이는 속도의 개념에 의해 현재의 위치에서 바로 이전의 위치의 차 임을 알 수 있다. 즉, 다시 말해서, u(t) – u(t-1) 의 값을 구하여 계산하면, 우리가 원하는 Velocity PID Controller 를 얻을 수 있다.
이므로, u(t) – u(t-1) 은 아래와 같이 구할 수 있다.
그러므로 다시 정리하면,
이와 같이 구할 수 있으며, 이는 보통 아래와 같이 표기한다.
이것이 Positional PID Controller 와 차이를 보이는 것은 u0 term 의 유무인데, u0 term 의 유무로 인해 실제 적용에 있어서 Velocity PID Controller 를 적용하는 것이 간단하다.
P.S. 로봇 쪽에 응용할 일이 있어서, 제어기를 잠시 정리하다가 문서화시킨 건데, 잘못된 내용이 있을지도 몰라요 :)
2010년 3월 11일
- 외국에서 찾은 자료를 토대로 재정리해본 것인데 과정이나 결과가 좀 잘못되었습니다.
- 조만간 다시 정리해서 올려놓도록 해야겠습니다.
- t 도메인 -> z 도메인 -> t 도메인 의 3단계를 거쳐 정리하면 최종 결과치에 I 에 대한 값이 살아 있게 되는군요.
- Kp(et - et1) + Ki(et) + Kd(et - 2et1 - et2) 와 같은식으로 정리됩니다.
저는 원래 아버지 명의로 스카이라이프가 가입되어 있었는데, 명의 변경없이 지속적으로 쓰다가 해지하려고 할때 문제가 발생했습니다.
처음엔 원래는 HD 로 전환을 할까 생각을 했었습니다. 그래서 HD 전환을 문의 했더라죠. 그랬더니 한달에 24,000 원 정도 지불해야 한다고 합니다. 그래서 안한다고하고 해지하는 쪽으로 방향을 선회했죠.
그날 통화할때는 해지하는데 아무런 약정도 없으시기때문에, 바로 해지가 가능하고 서류 두개를 보내주신 후에 다시 연락을 주시면 됩니다라고 하는군요. 돌아가신 아버지 명의로 되어 있었기 때문에, 아버지 사망 진단서와 저의 신분증을 보내주면 된다고 합디다.
그리고 그 다음날 전화가 걸려 와서는 해지하시는데 3년 약정이 되어있기 때문에, 위약금 22만원을 지불해야 해지하실수 있다며, 차라리 19,000 원에 HD 로 전환해드릴테니 그걸 보시는게 어떻겠냐고 회유를 하더군요. 하루만에 갑자기 제가 3년 약정이 되어 있다면서 위약금을 지불하라뇨.
미친게 아니냐며 따지고, 스카이라이프 홈페이지를 가서 내용을 확인해보니 예전엔 안보였었는데, 3년 약정이라는게 되어 있는 겁니다. 참 즐거운 새끼들... - _-
==> 이 부분은 어쩌면 개인적으로 꼼꼼하지 못해서 확인 못했을 수도 있습니다.
바로 다른분들이 방통위에 민원제기하면 전화올거라그래서 위의 내용을 상세히 적어서 방통위에 민원을 제기 했습니다. 그랬더니 전화가 와서는 돌아가신 분과의 약정에 대해서는 무효가 된다면서 해지에 대한 어떠한 약정도 없으시다고 하더군요. 그러면서 사망 진단서와 본인 신분증만 양면으로 복사해서 보내달라고 하네요.
그런데 여기서 또 곰곰히 생각해보니 사망 진단서라는건 돌아가신 병원에나 가서 때야하는 서류인데, 비용이 3만원 가량 든다고 하거든요? 그래서 다시 또 물어 봤습니다. 반드시 사망 진단서만 가능하냐고. 그랬더니 그제서야 제적등본을 때오라고 이야기 합디다.
이런 아름다운새끼들 진짜 -_-... 결국 결론은 이렇습니다.
1. 돌아가신 분 명의로 가입되어 있는 경우, 그 이전까지의 가입 약정은 아무런 효력을 발휘하지 않습니다. 물론 그 이후에 명의 변경을 했거나, 계약서에 서명을 하셨다면 이야기가 달라지겠지만요.
2. 돌아가신 분에 대한 증명은 제적증명서로 충분하므로, 괜히 사망 진단서 때오라는 말에 바로 사망 진단서를 때시지 말길 바랍니다.
3. 자꾸 뭐라고 하면, 그냥 간단하게 방송통신위원회에 고충민원 제기 하십시요. 정확히 2시간만에 모든 처리가 끝났습니다.
혹시 저처럼 부모님 명의로 되어있었는데 돌아가셨거나 한 경우에는 이와같이 처리하시면 될 것 같습니다. 해지에 관련된 여러가지 정보가 있었지만, 조금 특이한 경우라 어떻게 해결할 지 고민했었는데 최후의 결론은 방통위 였지만요 -_-
처음 목표는 GA 의 연산과정중 Evaluation 만을 CUDA 로 수정하여 속도를 가속화시키는 것
그러나
이를 실제 코드로 구현하여 수행해 보았더니 생각보다 빠른 속도가 안나온다
그 이유인즉 CPU -> GPU 간 Memory Copy 연산 및 GPU 상의 Memory Allocation 때문인데, 다른 여러 논문에서 GPU 로 GA 를 수행할 때 속도가 증가되었다고 했던 것들을 검토해 보았더니 전부 GPU 상에서 모든 유전 연산을 수행하고 있었다.
분명 단일 연산만을 놓고 보았을 때는 GPU 상에서 Evaluation 을 한번 처리한 것이 가장 빠르지만, 유전 연산을 CPU 상에서 하게되면, 결국 Memory 할당과 복사를 반복하게 되어 속도가 느려지는 것이다. Evaluation 연산을 하기 위해서는 반드시 GPU 상의 메모리에 CPU 의 현재 상태를 복사해야 하니까 결국 이것때문에 반복적인 메모리 복사가 수행될 수 밖에 없는 것.
그렇다면 결론은 GPU 상에서 모든 연산을 처리하는 것인가?
뭐 중요한 요소중에 하나는 내 GPU 가 Geforce G105M 256M 이기 때문에 큰 메모리 할당도 어려울 뿐아니라, Stream Processor 수도 부족해서 제 속도 나오긴 어려울 수 밖에 없다는 건데...
동일한 실험 조건
static const int POPSIZE = 5000;
static const int MAXGENS = 100;
static const int ITERATION = 200;
static const int NVARS = 10;
GPU 상의 실험 결과(Geforce G105M 256MB)
Durations : 14118.000000 ms
CPU 상의 실험 결과(Intel Core2Duo P8600@2.4Ghz, 4 GB ram)
Durations : 10998 ms
다음엔 Geforce GTX270 876MB 에서 테스트 해볼 예정.
과연 어느정도 시점에서 Evaluation 작업만을 수행할 때 GPU 사용 작업이 속도가 대폭 상승할 수 있을 것인가?
나는 공대쪽 인간이기에 이분이 말씀하시는 것과 같은 형태의 레포트를 쓸일이 많이 있지는 않았지만, 단지 문제를 하나 풀어내기 위해서 작성하는 레포트를 쓸 때, 해당 문제가 있는 책 한권을 참고 하는 것만 가지고는 풀 수 없는 경우가 많이 있었다. 이럴 때 도서관에 찾아가서 회로면 회로, 통신이면 통신, 프로그래밍이면 프로그래밍에 대한 서적을 여러개를 빌려서 동시에 펼쳐놓고, 인터넷에 있는 여러가지 자료들과 함께 비교해가면서 한 문제를 풀어내는 대에도 8~9시간 이상 걸리곤 했다.
지금 생각해보면 그렇게 하지 않았다면 지금처럼 뭔가 전혀 다른 새로운 걸 배울 수 있는 기초를 닦을 수 있었을지 의문이 드는데, 내 주위의 대부분의 사람들은 어째서 그렇게까지 해야만 하느냐고 말했었다. 나야 뭐 특이한 인간인지 모르겠지만, 그것이 당연하다고 여겼기 때문에 그렇게 해 왔었던 것이고, 그렇게 해야만 자신의 것으로 만들 수 있다는 것을 어렸을때부터 많이 느껴왔기 때문에 그렇게 했었던 것 같다.
교수님들이 처음에 레포트 작성에 대한 기준이나 방법을 가르쳐 주지 않는다는 것도 하나의 문제가 아닐까 생각도 든다. 하지만 적어도 전자과 교수님들중 몇몇 분은 레포트를 제출 했을때, 해당 레포트에 대해 어떠한 내용을 어떤식으로 서술하면 좋을 것 같고, 어떻게 보강하는 것이 좋을 것 같다는 내용 정도는 언제나 첨삭을 해 주셨던 것으로 볼 때, 적어도 내가 속해있는 전자공학과 학생들은 자신이 어떻게든 자신의 의지로 손을 끄적였다면, 조금은 더 올바른 공부를 할 수 있지 않을까 싶다. 물론 내가 워낙 귀찮게 해서 그랬을 수도 있었을 것 같다.
어쩌면 이건 학교탓을 할 수도 있겠다. 내가 다니고 있는 서경대학교에 오는 대부분의 학생들 스스로가 자신에 대한 자격지심을 가지고 있던가, 그렇기 때문에 좋지도 않은 학교에서 어째서 그고생을 해야하느냐 라고 스스로 생각할 수도 있을 것이다. 제발 나의 후배를 비롯한, 다른 학생들은 그러지 않았으면 좋겠지만 말이다.
인터넷을 통해 그냥 긁어서 붙여넣는 식의 레포트, 자신의 생각이 1할도 들어가지 않은 복사지와 같은 레포트가 판을 친다는 사실은 어쩌면 조금은 서글프다. 그러한 레포트가 나타나는 데에는 그저 시키는대로만 해오던 과거의 습관을 계속 반복하기 때문은 아닐까? 강의 시간을 봐도 학생이 먼저 자신의 궁금증을 표현하거나 이것은 뭔가 이상하다고 의의를 제기하는 것을 보기 어려운 건, 해당 교수님들의 너무나 완벽한 강의를 하기 때문인것일까? 그렇지 않으면 앉아 있는 학생들이 아무런 생각도 없이 멍하니 듣는 것이 진리라고 생각하고 받아 들이기 때문인 것일까?
내 생각에는 결국 과거의 교육 습관이 현재에 까지 영향을 미치는 것이 아닐까 싶다. 인터넷에서 정보를 긁어오면 그것이 다 진리이고, 내가 원하는 해답이며, 거기에 대해선 어떠한 의문을 가질 필요도 없다. 마치 과거에 교과서가 모든 진실을 담고 있다고 배웠던 것 처럼...
오히려 그렇게 의문을 가지고 질문을 한다면, 그것이 세상을 복잡하게 사는 것이며, 다른 고민할 거리도 많은데 왜 그래야 하냐며 이상한 시선으로 바라보곤 한다. 점점 더 편한 것만을 추구하고, 빠르게만 처리하려고 할 때에 결국 그 깊이는 점점 사라져 가는 것 같다.
저분이 쓴 글을 보면서 나같은 사람들이 여전히 꽤 있는것 같고, 내가 헛짓을 한건 아니었구나 라는 생각을 다시 한번 하게 되었다.
-- 여기서부터는 사설 --
요새 학술 검색을 할 때, 구글쪽에 손이 많이 가는 것이 사실이다. 편리한 시스템인데다 무료로 제공된다는 것이 가장 큰 메리트랄까? 우리 학교에서 지원해주는 데이터 베이스가 워낙에 열악해서 정말 유명한 외국 데이터 베이스는 접근조차 할 수 없다.
결국 지금 하고 있다는 건 구글 학술검색을 통해 대표적인 유명한 논문을 검색한 후, 이 논문들이 참고하고 있는 논문을 나무의 가지치기와 같이 줄줄줄 검색하는 수 밖에 없다. 그리고 검색에 검색을 따라가다가도 어떤 데이터 베이스는 접근 자체가 어려우니 한계가 있는 것도 사실이다. 결국 이러한 정보를 찾아가는 것 조차도 돈이 문제가 되고, 환경이 문제가 되는 것인가 라는 생각도 들지만, 지금 나에게 주어진 것들을 충실하게 이용하는 수 밖에 없을 것 같다.
GP 의 해가 가지는 특성을 파악하기 위해 실험을 통해 대규모의 데이터를 수집하였다고 가정하자. 그리고 대부분의 해에서 나타나는 어떠한 특성이 발견 되었다면, 과연 여기서 대부분의 해는 반드시 그 어떤 특성을 갖게 되는 것일까?
GA, GP 의 조기수렴이 해의 다양성에 악영향을 끼치고, 좋은 결과로 수렴하는 것을 방해한다고 했을 때, 조기수렴을 막으면 반드시 해가 다양성을 폭넓게 가지면서, 좋은 결과로 수렴할 것인가?
어떠한 명제를 가정했을 때, 그 역이 반드시 참일것이라는 보장 같은 것은 없다. 결국 우리가 일반적으로 데이터를 수집하여 하는 일은 대부분이 그러한 특성을 보인다는 것에서 끝나는 것인데, 이것의 역을 증명해낼 좋은 방법은 없을것인가?
몇년째 계속 고민해보지만, GA, GP 쪽에서는 이를 어떤 수로 증명할 것인지 딱히 머리속에 떠오르는 것이 없다. 실험을 통해 명제 자체가 참임을 증명해낼 수는 있지만, 그 명제를 토대로 알고리즘을 구성하고 타당성을 갖기 위해서는 반드시 그 명제의 역이 참임을 증명해야 하는데 아직까지는 부족한게 많은지 딱히 좋은 방법이 떠오르지 않는다.
하지만 이 부분이 해결되지 않는 한, 결국 어떠한 알고리즘을 만든다 하더라도 이것이 타당성을 갖기는 어려울 것이 분명하기 때문에 앞으로도 계속 고민할 것 같다. 뭔가 좋은 방법은 없는 것일까?