좋은건 아니지만, 그래도 이정도는 나올 수 있다. (0.2 레이어, 순정상태)


이것저것 손을 댄후 현재의 출력물 상태(0.2 레이어)

최근에 중국 Anet A8 프린터의 직구가격이 엄청 싸게 풀리면서 많이 들어왔다. 참고로 필자는 2016 11월경 155달러에(;;) 구매하여 8개월간 굴리고 있으며, 전반적으로 가격만큼의 가치는 이미 뽑아먹었다 생각한다… 이에, 경험상 필요했던 부분들을 나열식으로 정리하고, 생각나는 내용들을 계속 붙여갈 예정이다. 궁금한 사항이 있거나 틀린 내용을 지적해 주시면 생각나는대로 반영할 예정이다. 

되게 난삽하고 뒤죽박죽일 수 있으므로 시간이 많은 분은 처음부터 읽어보시고 아닌분은 Ctrl+F를 이용하시길 바란다. 


Original Prusa i3 MK2S


Anet A8



현재 필자의 프린터

 

푸르사(멘델) 타입의 시작 :처음에 자신을 복제하는 기계에 대한 아이디어로 Reprap 프로젝트가 시작되었고, 최초의 Reprap 프로젝트인 Darwin 이후 Mendel타입의 프린터가 만들어졌다. 이 Mendel 타입의 프린터가 베드가 앞뒤(Y축)로 움직이며 프린팅헤드가 위(Z)로 올라가는, 우리가 알고있는 '푸르사'타입의 프린터의 시초이다. 


이후, Joseph Prusa(푸르사)라는 인물이 Prusa Mendel iterative 2(i2)이라는 타입의 개선판을 2011년에 제시하였고, 다음해 새로이 개선한 Prusa iterative 3(i3)를 발표한다. 여기에서 어물쩍 Mendel이란 말이 빠지면서, 베드가 앞뒤로 움직이고 Z축으로 올라가며 적층하는 구조의 프린터를 Prusa i3 type이 대표하게 되었다.


Mendel에서 출발하여 개선을 거듭해 만들어진게 Prusa i3이고, 여기에서 계속 개선을 해 온 것이 Prusa i3 MK2이다. 이 멘델구조를 본따 저렴하게 만들면서 최소한의 품질은 보장한 키트가 바로 당신이 구매하려 하는 Anet A8이다. 하지만 실제 Prusa i3 시리즈와는 기구적인 안정성과 부품 하나 하나의 스펙이 다르다. (꽤나 딸린다) 그래서 안전과 직결되어 있는 부분 위주로 많은 개조가 추천된다. (위의 사진은 이미 뭐가 많이 덕지덕지 붙었다가 떨어진 이후이다)

 



참고사이트

1. reprap A8 wiki (https://3dprint.wiki/reprap/anet/a8)

2. facebook Anet A8 포럼(영어)

3. 오픈크리에이터즈, 내써팝 (네이버 카페)

도면 : thingiverse.com에도 Anet A8 관한 포럼이 있다.

 

Anet A8 구입 : 해외직구 했었는데 요즘엔 국내 오픈마켓 직구가 싸다. 알아서.. 난 155달러 주고 기어베스트(Gearbest) 직구를 했었다.

 

부품 수급처 : 국내 시장들이 빠르고 조금 저렴한거는 외국 알리익스프레스에서 구매한다. 네이버 쇼핑만 검색해도 많이 나온다.

 

소모품(필라멘트) : 다뤄도 나오는 eSUN PLA+ 추천하고 싶다. 중국산인데 잘 나온다. 국산 필라멘트들도 나온다. Top3d, 레인보우, 아이노바 등등.. TT 필라멘트 실크계열도 색상이 특이하더라. 특히 Top3d는 비싼거는 비싼 값을 한다고 한다. 

참고로 가정에서 출력하려면 PLA재질이 좋을 것 같다. 재질 자체가 석유화합물이 아니며 인쇄시 Lactic acid 성분 외에는 다른 유기화합물이 발생하지 않는것으로 알고 있다. 반면 ABS등은 유해한 유기화합물이 발생하여 방에 날아다닐 우려가 있다. 프린팅 온도도 낮아서 비교적 안전하고 쉽다.

 



조립 : Youtube 동영상을 찾아보고 한다. 7시간정도 걸린다. David Dan이라는 Anet 회사측 채널이 있다. 동영상을 보고 따라하면 된다. 

https://www.youtube.com/channel/UC8XvjHMPloavOhyGAy359qQ

 

조립시 주요 나오는 질문 


  1. 스크류 결합시, 커플러와 모터가 5mm 물리고, 커플러와 Z스크류가 5mm 정도 물린다. 그래서 스크류 가운데가 비어야 하며 이정도로 맞추면 상단 구멍이 Z 스크류가 입구정도에 걸치게 된다. 정상이다. 완전 관통하고 있으면 안된다.
  2. 컴퓨터와의 연결 : Anet A8 아두이노 '짝퉁'보드에 모터드라이버들을 합쳐놓은 단일보드이다. 컴퓨터와의 통신을 , 아두이노를 기반으로 하지만 라이선스 비용상의 문제로 정식 아두이노와는 다른 드라이버를 사용한다. 'CH341' 검색해서 적용하자.
  3. X, Y 벨트 텐션 높게 유지해야 한다. 조여서 프레임이 변형되기 직전의 텐션을 이용하면 경험적으로 좋은 같은데, 오래 쓰다보면 벨트가 거지같아서 늘어지고 끊어지고 한다. GT2 6mm폭의 단단한 벨트를 사서 교체하면 된다. 추천 모딩에서 출력물을 이용한 벨트 텐션 모딩을 이용하자.
  4. 베드 레벨링 : 생각보다 쉽다. 1. 베드를 다 내리고 2. 노즐을 베드에서 2mm 위로 띄운뒤, 3. 종이한장 스치며 지나가도록 베드를 올려 맞춘다. 
    처음에는 양쪽 z축의 높이가 평행한지(정확히는, Z모터로부터 X축 연마봉까지의 길이가 같은지 확인) 확인한다. 베드 높이조절 스크류 (나비너트)를 거의 최대한 밑으로 내려놓고, Auto Home을 하면 Z축도 endstop 스위치가 눌린 뒤 올라와서 원점으로 돌아갈 것이다. 이 때 Z endstop의 위치를 조절하여 원점을 맞추었을 때 노즐끝이 베드 위쪽 2~3mm 정도에 오도록 한다. 스크류를 돌리면서 베드를 노즐까지 올려주는데, 이때 한쪽부터 다 올리지 말고, 네(4) 꼭지점을 돌아가며 같은 각도만큼 나사를 회전시켜준다는 생각으로 조금씩 균일하게 올린다. 이러면 베드가 휘는 현상이 적다. 이후 베드 높이 조절 스크류를 조금씩 돌려가면서 양 네 모서리와 베드 한 가운데, 다섯점이 A4한장이 간신히 들어갔다가 긁히면서 나오도록 맞춘다. 베드가 원래 휘어있으면 안맞는다. 이때는 유리를 깔아야 한다... 유리를 베드에 붙일 때는 종이집게로 집으면 그냥 된다. 
  5. 이거 프레임에 종이 다 떼야돼요? : 안떼도 문제는 없는데 찝찝할꺼다

 



인쇄 : 

1. slicer 프로그램에 원하는 *.stl 파일을 올리고, 원하는 설정대로 슬라이싱 한뒤, gcode로 저장하여 sd카드에 담는다. 

-사실 이건 이 과정만 한사발이고 선택지도 많다. 인쇄 팁에서 이거저거 말하겠다.


2. 프린터를 예열한다. (Preheat pla 등 원하는 Hotend 온도에 맞춰서 : pla는 200도면 된다. )

3. 필라멘트를 끼워서 압출이 되는지 손으로 밀어 확인한다.

4. 베드 레벨을 확인한다. 

5. 인쇄시작을 누른다. 


인쇄를 하면서 많은 삽질을 해야 할 텐데, 추천하는 방법은 20mm cube를 내부채움을 적게 해서 계속 인쇄해 보는 것이다. 좋은 품질의 외벽과 정확한 크기를 얻을 때 까지. 

당장 피카츄가 뽑고 싶어도 저게 잘나오기 전까진 우선 참아야 한다. 





인쇄 팁 : 


Anet A8은 다 구색은 갖추고 있는 프린터이지만 구조적으로 단단하진 않다. 출력물의 속도를 높이면 퀄리티가 떨어질 수 밖에 없고, 특히 가속도값을 낮춰주는게 좋다. 출력의 원리상 FDM은 어쩔 수 없이 느리다. 나같은 경우는 Slic3r prusa edition을 사용하는데 여기에서 Prusa i3 MK2용 프로파일을 가져다가 조금 더 느리게 하고 설정을 손봐서 사용한다. 속도를 조금만 타협해주면 보통 인쇄 퀄리티가 깜짝 놀랄 정도로 잘 나온다.  


슬라이서 프로그램은 Cura 15, cura 2.4, Slic3r prusa edition, Simplify3D, Craftware, mattercontrol 등이 있다. 검색이 필요하고 사실 여기에서 많~은 삽질이 필요하다. 국내에서 많은 도움을 받을 수 있는 프로그램은 Cura이다. 기능이 단순해서 초보자가 하기에 쉽고 한글 번역본도 있었던 것 같아서 간혹 구버전을 추천해주시긴 하는데 그냥 최신버전 쓰는게 멋지다.(2.X가 최신이고 14.X나 15.X가 옛날버전이다.) 내가 개인적으로 추천하는건 slic3r prusa edition이다. 프로그램 자체가 Prusa type의 프린터에 맞춰서 설정되어있다. 그런데 사실 한국에서는 인기가 없는 것 같다..... Craftware나 mattercontrol도 완성도가 높고 특히 Craftware는 인터페이스가 예쁜데, 내가 사용을 많이 안해봐서 잘 모르겠다. 

그리고 보통 전문적인 분들은 궁극적으로는 Simplify 3D를 사용한다. 유료이고 150달러정도라서 Anet A8 한 대 가격이다. 결론적으로 돈의 값어치를 하는 프로그램이지만 라이트 유저로서 프린터가 150달러짜리인데 이걸 또 사서 쓰는건 배보다 배꼽이 큰 꼴 같아, 필자는 사용하지 않는다. (권장하진 않지만 크랙버전이 존재한다) 참고로 simplify 3d가 유명해진 가장 큰 이유는 서포터를 내가 원하는 곳에 수동으로 생성 가능하다는 사실 덕분인데, 이게 써보니 매우 강력하다. 그런데 이 기능이 Craftware에서도 된다. 


PLA는 첫 레이어를 제외하고 2~3번째 레이어부터 출력물쪽의 쿨링을 세게 해 주는 것이 거의 황금법칙이다. 출력된 출력물을 빨리 식혀주면 노즐에서 밀려나온 플라스틱이원하는 모양 그대로 굳기 때문에 Bridge구조 Overhang은 물론이고 인쇄 벽면의 품질도 월등히 좋아진다. 


베드 안착은 PLA 재질은 Painter's tape 한국말로는 마스킹 테이프 위에 하면 쉽다. 너비가 두꺼운 마스킹 테잎도 잘 찾아보면 판매한다. 알루미늄 베드나 유리베드 위에 붙여서 그 위로 출력하면 된다. 하지만 출력물을 다시 뗄 때 결국 테이프가 찢어지기 쉽기 때문에 유명한 Elmer's glue 혹은 그냥 문방구에서 파는 목공용 풀 등을 유리베드 위에 펴바르고 그 위에 프린팅 하는게 좋다. 

아니면 그냥 유리 위에 잘 뽑으면, 작은건 잘 붙기도 한다. 하나 참고할 점은 베드 안착이 잘 되면 온도를 높게 할 필요가 없다. 심지어는 베드 온도를 아예 안올리고 해도 된다. 

하지만 필라멘트의 종류에 따라 온도를 너무 안 올리면 출력물이 위로 휠 수도 있다. 이를 못잡아서 출력물이 통째로 다 떨어질 수도 있다. 그렇기에 온도를 약 40도 정도는 주고 작업하는 편이다.


베드에 붙어있는 출력물을 뗄 때는, 우선 식히는게 잘 떨어진다. 그담에 그냥 손으로 떼면 된다. 잘 안떨어 질 때는 껌떼는 칼 같이 생긴 몇천원짜리 금속 헤라를 사용하면 된다. 스크래퍼 라고 해도 찾을 수 있을 것 같다. 참고로 전용 스크래퍼가 있는데 인체공학적인 고려가 되어있고 끝이 보통의 스크래퍼보다 얇게 처리되어있다. (그리고 비싸다.) 그래서 필자는 기존의 스크래퍼의 끝을 약간 연마하여 얇게 하였다. 이를 출력물의 바닥에 대고 툭툭 치면 잘 떨어진다. 출력물의 베드 안착면이 완전 수직이거나 오히려 90도 이상이면 헤라가 잘 안들어간다. 이를 예방하기 위해서는 출력물이 바닥에 붙은 면 중에서 적어도 한 구석은 45도 각도의 챔퍼처리를 한 면이 있는게 떼기 편하다. 풀이 너무 단단하게 붙었으면 물을 바른다. 






개조파트 


전기적 개선이 필요한 부분 : 중국산이라서(?) 불나고 녹아내린다. 한국에서 파는 가전제품이면 필요한 KC인증따위 없다. 직구니까.. 알아서 주의하자. 장기간 작업등을 하려면 추천하는 작업을 하자(우선순위를 매겨서 적었다.)


  1. 설명서와 메인보드의 파워 극성이 반대로 표시되어 있을 때가 있다. 보드에 적혀있는 (+, -) 보고 연결한다. + 붉은색이고 - 검은색이다. 신형보드가 설명서와 반대로 되어있었던 것 같다. 
  2. 히팅베드의 터미널(전선과 보드의 연결부품, 플라스틱 안에 금속핀) 잘라버리고 직접 납땜하는게 좋다. 6개의 핀이 있는데 가운데 두개는 써미스터이고, 양쪽 두개는 각각 히팅베드이다. 양쪽두개씩은 각각 같은 단자가 나뉘어 있는 것이므로 한데 뭉쳐서 납땜하면 된다. 핀을 순서를 매긴다면, (1,2) :히팅베드 한쪽 (3)써미스터 한쪽(4)써미스터 다른쪽 (5,6) 히팅베드 다른쪽  (히팅베드랑 써미스터는 극성이 없다) 이런 순서대로 직결 납땜을 한다.
  3. 메인보드의 히팅베드와 핫엔드로 가는 커넥터도 부실하다. 초록색 커넥터들이 6개가 모두 똑같이 생겼으면 구형이므로 떼버리고 직결 납땜하고, 가운데(핫엔드) 다르면 그나마 교체형이라 안전하다. 그래도 안심할 없으니 고전류 터미널로 교체하는게 좋다. (XT60등) 위의 사진은 신형 보드를 받아서, MOSFET 릴레이 장착 및 전선 클램핑 작업 후, 그냥 베짱으로(..)굴리고 있는 모습이다. 
  4. SMPS입력단에 퓨즈설치 스위치 설치(내써팝에 있다)
  5. SMPS 12V 350W 급에 어느정도 인증 받은것으로 교체(내써팝에 있다)
  6. 만약에 히팅베드를 많이 사용한다면, MOSFET 릴레이를 장착하는게 좋다. 고전류를 메인보드에 가지 않도록 우회시키고 오직 스위칭 신호로만 작동하도록 함으로서 메인보드 커넥터의 안정성을 높일 수 있다. 위키에 보면 자세한 도면이 나와있다.

 


 

개선 모딩 추천 : 우선 어찌어찌 출력만 되게 조립을 했으면, 끝이 보이지 않는 개조작업에 들어갈 수도 있다. 출력물을 통해서 자기자신을 보강한다… thingiverse.com 에서 제시하는 키워드를 검색해보자

 

  1. 'Anet A8 blowfan duct' : PLA재질의 출력시에는 쿨링을 언제나 만땅으로 틀어주어야 한다. 그런데 출력되는 바람의 방향이 노즐의 끝을 쳐다봐야 하는데, 이게 효과적이려면 새로운 덕트를 설치하는게 좋다. 추천하는건 Circular duct Spriya등이다. 효과가 크다. 참고로 PLA 출력하면 핫엔드 근처에서 열때문에 휘어서 밑으로 쳐진다. ABS 출력하거나 PLA 출력후 보강이 필요하다. 무튼 쿨링이 되면 Bridge overhang 출력이 드라마틱하게 좋아진다

 

  1. 'Anet A8 Belt tension'으로 검색한다. 손으로 일정 이상의 텐션을 유지하기 힘들다. 이를 도와주는 모딩이다. 이것도 효과가 크다. 벨트 텐션이 적으면 출력물 모서리에서 물결무늬가 크게 나타난다.
  2. 아크릴 프레임이라서 흔들거린다. 'Anet A8 Frame stabilizer' 검색해서 옆으로 기울어지지 않도록 해주는 프레임, Y축이 찌그러지지 않는 프레임 등을 적용한다.
  3. Z endstop 위치를 고정시키지 않고, 나사로 돌려서 미세하게 조절하는 모드가 필수이다. 'Anet A8 Z endstop'으로 검색한다.

 



밑으로는 필요없을 수도 있는 과정이다.

 

Z wobble : 이걸 개선하기 위한 방법들에 논란이 있는거 같은데, 내 개인적인 결론은 다음과 같다.
전산스크류가 완전히 반듯할 위쪽을 고정하면 도움이 있지만, 전산스크류가 조금이라도 휘었다면 위를 고정하는게 오히려 독이 된다. 내가 사용하던 방법은 Z축 이송용 황동스크류를 빼서 밑으로 보내고, 이걸로 밀어올리는 방식(X, Y방향 변이는 전달이 안되도록)이었다. 근데 요즘은 빼버렸다. 빼도 나오는거같아서.. 결국, 문제가 없으면 건들지 않는게 좋다.

 

뻑뻑한 X,Y축 : 벨트 텐션을 걸어놓지 않은 상태에서도 X Y축이 뻑뻑하면 당연히 부드러운 프린팅이 힘들고, 시끄럽고, 어딘가는 계속 마모된다. 뻑뻑한 이유로는 연마봉이 휘어있을 수도 있고, 리니어베어링이 후졌을 수도 있다. 이 경우는 뭐 교체를 하건 알아서 해결해야 한다. 

그런데 베어링이랑 연마봉이 다 멀쩡해도 뻑뻑한 경우가 있다. 이 때는 연마봉과 베어링의 방향이 제대로 정렬되지 않았을 수 있다.

베드를 떼어서 양쪽의 연마봉을 각각 움직여 보자. 혹 더 뻑뻑한 쪽이 있는지.. 원래는 그냥 흐느적흐느적 잘 흘러야 한다. Y축은 이미 아크릴 프레임에 고정된 위치로 구멍이 나 있고, 베드 받침대도 철제에 구멍이 나 있어서 자유도가 적다. 그나마 시도할 수 있는 방법은 4개의 리니어베어링+홀더를 서로 바꿔가면서 잘 움직이는 조합을 찾는것이다. 그리고 베드에 베어링나사를 완전히 조이기 전에 연마봉을 모두 집어넣고, 잘 움직이는걸 확인하면서 나사를 마지막으로 조여준다.

X축도 X carriage는 리니어베어링이 붙어있고 금속판에 나사탭이 나 있어서 자유도가 높지 않다. 리니어베어링을 서로 바꿔가면서 잘 움직이는 조합을 찾는다. 

하지만 나의 경우는 연마봉 하나씩은 잘 움직이는데, 양쪽을 고정하고 나면 뻑뻑해졌다. X idler(긴 리니어 베어링이 들어가있는, Z축으로 움직이는 부분이자 X 축 모터와 연마봉 양쪽을 고정하는 부분)의 연마봉 사이 간격과,  X cariage에서의 연마봉 사이 간격이 약 0.8mm정도 유격이 있었다. X carriage는 금속이었으니 답이 없어서, X idler를 0.8mm간격을 더하도록 새로 고친뒤 인쇄해서 교체하였다. 


참고로 플라스틱(Igus, 이구스) 베어링은 조용한데, 유격에 훨씬 민감한 듯 하다. 나의 경우에 축이 정렬되어 있지 않면 slip-stick을 일으키면서 연마봉에 쩍 달라붙었다




하우징 제작 : Anet A8 조용한 프린터이긴 하지만 스텝드라이버가 TMC2100 아니므로, 모터에서 계속 소리가 나고, 진동도 난다. (밑집에서 올라온다.) 

진동은, ~꺼운 EVA 매트(요가매트나 아동매트 ) 깔아주고 올려야 바닥이 울리지 않는다

소음은, 챔버를 제작해주는게 도움이 된다. 나는 IKEA 이케아의 LACK 소탁자를 두개 사서(개당 만원이다) 조립하였다. (이게 외국에서 유행했었다.) 챔버는 소음뿐만이 아니라 ABS 재질의 출력시 온도 유지에도 도움이 된다. 하지만 AnetA8 위에서 이야기한 개선점등을 적용하지 않고 ABS 뽑는건 조금 위험하다. 특히 사람이 집에 없을때는 하지 말자. 참고로, 소음이 상관없이 그냥 작게 챔버가 필요하면 PC 0.5T짜리를 사다가 가위로 오리고, 가열하고 접고 해서 베드가 움직이는 공간만큼만 감싸면 된다.

 



Pronterface 접속 : 인쇄는 보통 SD카드를 이용하는게 좋다. 컴퓨터가 자유로울 있으니까. 하지만 PID 재설정등의 작업을 하려면 usb 인터페이스 상에서 프린터를 직접 컴퓨터로 제어하는게 편하다. Pronterface 검색하고 인스톨한다.



 

펌웨어 업데이트 : Marlin 계열 펌웨어를 사용하긴 하지만, 일부 g-code 제대로 안돌아간다. 이를 해결하고 추후 핵심 부품등을 교체하기 위해서는 펌웨어를 바꾸는게 편하다. 'Skynet Anet A8' 검색하면 간편하게 페이스북 클럽에서 2.3.2 버전용으로 아두이노 IDE까지 통합된 버전을 받을 있다. Configuration.h 자신의 상황(LCD 버튼수, z endstop 종류 ) 맞는 버전으로 골라서 집어넣고 컴파일 한뒤 업로드 하면 끝이다.

 


Extruder 보우덴(Bowden) 타입으로 교체 : Bowden 자전거 브레이크선 안에 강선이 돌아다니듯이, 모터를 따로 빼고 멀리에서 필라멘트를 노즐로 밀어넣어 주는 방식이다. 여기서부턴 취향이다. 보우덴 타입을 하면 모터가 따로 빠져있기에 헤드가 가벼워서 출력물의 속도를 올릴 있는데 어차피 히팅베드가 움직이는 프루사는 어느 속도 이상 올라갈 없다. 그래도 개선은 된다. 보우덴이 아닌 기존의 방식(핫엔드 위에서 바로 밀어주는 방식) 직결식, Direct-drive라고 한다. 참고로 필자는 e3d Titan Extruder 가품을 가벼운 스테퍼모터에 연결하여서 직결식으로 사용하고 있다. (Triangle Lab, 알리익스프레스) 이후 보우덴 방식으로 교체도 해 볼 생각이다. 

 


핫엔드의 교체 : E3dv6으로 교체해도 되고 안해도 된다.  E3dv6 정품은 노즐이랑 이런거 가격이 이미 Anet A8 달기엔 배보다 배꼽이 크다. 그래도 해보고 싶은 마음이 있을 있다. 보통 e3dv6 가품은 품질이 안좋아서 70%이상은 안좋은 제품을 받으시는 것 같다. 나는 e3dv6 가품을 달았는데, 운좋게 괜찮은 제품을 구했다. (Triangle Lab, 알리익스프레스)

 

익스트루더 교체후 칼리브레이션 : 익스트루더를 교체하였으면 익스트루더의 스텝간격도 바꿔야 한다. Extruder calibration

 

  1. Pronterface 접속
  1. Hotend 가열(보통사용하는 온도 : pla : 200~210, abs:240)
  2. 필라멘트, 익스트루더 위쪽 120mm 지점에 네임팬으로 표시
  3. 가열이 끝난 후, G1E100F30 (익스트루더 100mm 30mm/sec의 속도로 압출)
  4. 압출이 끝난 , 익스트루더 위쪽에서 남은 길이를 잰다.
  5. 남은 필라멘트 길이 - 20 = 실제 압출된 길이 된다.
  6. 웨어적으로 보정하려면, configuration.h 현재의 스텝값에 보정값을 곱한뒤 업로드하면 된다.
    1. (firmware 상의 현재 스텝값)*(100/실제압출길이) = 실제 스텝값
    2. 예를 들어, 98mm가 압출되었다면 (100/98)=1.020배 스텝값이 늘어야 한다. 이를 보정값이라고 하자.
    3. 예를들어, 현재 435.0이 스텝값이었다면 보정된 스텝값은 보정값을 곱한 443.7이 된다.
  7. 펌웨어를 만지기 싫다면, 슬라이서에서 압출값 multiplier 집어넣어 보정하는 방법도 있다. (비추)



Hotend PID 칼리브레이션 : 핫엔드의 온도가 출렁출렁거리면 PID 튠을 다시 해 주어야 한다. PLA를 뽑기위해서는 쿨링을 거의 언제나 100%로 돌리기 때문에, 이에 맞춰서 PID 튠을 해주어야 한다. 참고 : https://www.thingiverse.com/thing:2133328

  1. 프린터와 컴퓨터 연결
  2. pronterface 접속
  3. M106 S255 전송 쿨링팬을 100퍼센트 가동한다.
  4. M303 E0 S200 C8 전송 : PID 오토튠을 시작한다. 핫엔드는 0번이고, 온도는 200도이다. 8번 시행한다. 
  5. pronterface에서 echo로 돌아온 Kp Ki Kd 3가지 값을 복사한다. 
    예시 :

  6. Classic PID
    Kp: 22.62
    Ki: 2.21
    Kd: 57.96
    Info:PID Autotune finished ! Place the Kp, Ki and Kd constants in the Configuration.h or EEPROM
  7. 얻은 값을 펌웨어의 configuration.h 에서 이전 PID 상수값에 덮어쓰고, 펌웨어를 재 업로드 한다.



저작자 표시 비영리
신고
Posted by koog 미련퉁이

보통 노트북에서는 Nvidia Radeon 그래픽 전용 칩셋을 cpu 내장그래픽 칩을 구별할 때 '외장 그래픽'이라고 표현한다. 데스크탑에서 외장 그래픽카드를 쓰던 관성이 있어서 외장 그래픽 카드라고 부르게 되는데, 사실 노트북에서는   접근하기 힘든건 마찬가지라서, '외장그래픽'이라고 부르는게 맞는건지 의문스러워졌다. 평소에는 의심없던 사실이 오늘 갑자기 헷갈리는 이유는, 진정한 '외장그래픽'-(노트북 밖에!)달린 그래픽 시스템이 가능하다는 이야기를 들었기 때문이다. (오늘은 직접 테스트  본건 아니지만)


중국은 11.11일부터 광군제 기간이라서 엄청난 세일 폭풍이 몰아치고 있다. Gearbest에서 150불에 Prusa i3타입 3d프린터를 주문한 , 다른것들은 없나 찾아보다가 이런 제품을 발견하였다.

  

EXP GDC Beast Laptop External Independent Video Card Dock


  




https://youtu.be/NdnafIWvuU4

 


 노트북 내부 mini PCI-e나 express card interface(이건 요즘엔 거의 안달려나오지만) 소켓과 실제 pci-e 단자(우리가 그래픽카드를 꽂는 단자)를 연결하여 사용할 수 있도록 하는 제품이다.  

 즉 노트북 내부 PCI-E 미니단자를 외부 PCI-E 단자로 만들어 주는 제품이다! 정말 직관적인 원리이다.(이런게 또 중국 제품들의 장점이기도 하다) 선이 난잡하게 나오게 되나, 어쨌건 원리를 생각하면 정말 필요한 것만 있는 심플한 구조이다. 단점은, 노트북 내부 PCI-e단자가 보드의 성능에 따라서 실제 pci-e 단자보다는 속도가 떨어 진다고 한다.





 사실 그래픽회사들 중심으로 이런 시스템을 적용한다는 이야기는 몇년 전 부터 있었고실제 몇몇 실험적인 작품은 도킹 시스템 등을 이용하여 외장그래픽을 단 시스템을 출시하였다그런데 그런 작품들의 가격을 보면,  (특히 Alienware)거진 데스크탑 + 노트북의 가격을 갖게 된다. 스피커를 붙이고 덩치도 너무 커지면서 그냥 장난감 같아 보였다. (사실 그냥 내가 원한건 적당한 노트북에  그래픽카드 가격의 투자비용만큼 성능을 올리고 싶은것인데)


Nvidia 1000번대 라인업을 발표하면서, 저전력화의 결과로 모바일이나 데스크탑이나 성능차이가 거의 없다는 발표를 하였다. 이런 그래픽카드를 달고 있는 최신 노트북이라면 그저 쿨링만 해주면 좋겠다. 하지만 오래되고 무거운 노트북을 집에서 거치하여 사용하고 있는 사람들이라면, 집에 돌아다니는 아무 그래픽카드나 잡아서 어차피 버릴놈(?) 저런식으로 수명을 늘려보는 것도 손해보는 시도는 아닐 같다



저작자 표시 비영리
신고
Posted by koog 미련퉁이

HBS-800의 후속작이며 스펙상으로는 HBS-900을 앞서는,
스펙상으로는 최강급인 블루투스 이어셋인 LG HBS-810을 구매하였다.
JBL 인증에 쿼드비트 드라이버인데... 소리가 나쁠 것 같진 않았다. 
카톡이랑 문자 읽어주는것도 편하고 패션과 눈총만 포기하면 모든걸 가질 것 만 같았다.

그런데 저음이 하나도 안들리고  고음은 치찰음으로 들렸다. 사운드가 정말 엉망이었다.
팁이 안맞아서 그런가 싶어 가장 작은 팁으로 바꿨다.
하지만 비슷했다.
이것도 뽑기운이 있는건지, 다른사람은 어떤지 찾아봤는데 가끔 베이스가 없다는 리뷰들이 외국에서 보였다. 
난 망한 듯 했다.

그러던 어느날 XX가 내 귓구멍을 보고는 "넌 귓구멍도 쪼끄맣네"라고 했다.; 그렇다, 내 귀가 작은거였다.
HBS-810은 특이한 젤 폼이 차있는 이어팁을 제공하는데, 이게 실리콘 팁에서 빈 공간에 마쉬멜로우같이 생긴 폼을 채워놓은 모양이다.
이게 압축성이 있긴 있지만 스펀지처럼 바로 회복된다. 이 젤팁을 사이즈별로 제공해 주는데, 가장 작은 젤팁조차도 귀에 들어가지 않았던 것이다. 보통의 얇은 실리콘 커널 팁이면 그냥 밀어넣으면 귀에 들어가고, 컴플라이 팁이면 압축되었다가 팽창되면서 귀에 꽉 맞게 끼워졌을 것이다. 

(LG의 젤 팁이 나쁜 시도는 아닌 것 같다. 귀에 들어가기만 하면 폼팁과 비슷하게 외이도에 맞춰지면서도, 젤의 내구도가 실리콘에 의해 보호되니까. 컴플라이 폼 팁은 내구도가 매우 안좋다.. 하지만 이 젤 팁은 내 귀에는 맞지 않았다.)
그래서 T-400 폼팁을 구매하였다. 구매하는 것은 여러 방법이 있고 주로 18500원 정도 하는 것 같다. 나는 앱스토리 몰에서 배송비포함 15000원에 샀다. 지금도 파는진 모르겠다. T-400의 적용가능 내경은 약 5mm인데, HBS-810의 외경이 거의 5mm이다. 바로 밀어넣으면 잘 안들어가고 팁 내경 PVC재질에 따뜻한 바람등을 불어줘서 좀 유연하게 한 뒤에, 그 뒤에 밀어넣으면 빡빡하게 들어가진다. 참고로 T-400과 T-500은 적용가능 내경이 T-500이 조금 더 크다고 한다. 하지만 비슷비슷한듯 하다. 

T-400중에서도 사이즈가 여러종류 있는데 수입사들이 미들 사이즈 혹은 혼합사이즈 제품만 판다. 그런데 미들사이즈를 사도 폼팁은 압축성이 좋아서 웬만해선 귀에 다 맞는 것 같다.
사용결과, 외이도가 작은 나의 기준으로는 외부 차음성이 매우 올라가며 집나갔었던 저음부가 모두 돌아왔다. 원래음질이 뭐 딱히 좋을만한 회사는 아니지만, 이제 쿼드비트정도의 소리는 난다.


설날즈음하여 올리게 되니 문득 생각나는데, 가격면에서 이런 블루투스 이어폰이 선물용으로 딱 좋을 듯 하다
특히 친절히 음성안내가 다 한글로 되며 페어링이 쉬우므로 좋을 것 같다. 

만족스럽다.



저작자 표시 비영리
신고
Posted by koog 미련퉁이



레퍼런스 폰 (nexus 5x)의 출시 경험 덕분으로 LG가 재빠르게 마시멜로 업데이트를 내놓았다.  (역시 홍보는 이루어지지 않고 있다. 사실 한꺼번에 몰리면 좋을게없으니 천천히 온 더 에어로 순차적 업데이트를 하는게 회사 입장에서는 버그의 발생 등 리스크관리에 유리할 듯 하다)

간단한 후기:

0. 앱을 실행할 때에 권한을 물어본다. 마치 윈도우즈 7부터 생겼었던 사용자권한 획득 같다. 이건 좋다.

1. 반나절 사용해보니 오히려 킷캣보다 안정성이 떨어진다는 인상이 강하다. 올레마켓 등의 앱이 백그라운드에서 죽는 경험을 하였다. 업데이트 이후 이미지 캐시파일이 꼬여서 그런가 싶어 공장초기화를 하였으나 별로 달라지지 않았다.

2. 기본폰트가 바뀌었는데 전체적으로 획이 얇아졌다. 가독성은 괜찮다.

3. 롤리팝부터 해서 지속적으로 상태표시줄 및 그 안의 아이콘의 크기가 줄고 있다. 덕분에 해상도가 좀 더 높아보이는 효과가 있다. (그래봤자 vr기기 쓸 게 아닌이상 아직도 FHD 초과의 해상도는 쓸모가 없는 것 같다.)

4. 낮은 ap에 qhd를 얹어놔서 게임등을 할 때 정말 거지같은 발열을 보여주고 있는게 바로 g3인데 해상도를 낮추는 옵션이 추가되었다. 근데 정작 옵션에는 '화질'이라고 나와있어서 해상도를 말하는것인지 화질을 말하는 것인지 모르겠다.

5. 어처구니없게도 동일 게임을 할 때에 롤리팝 보다 마시멜로에서 프레임이 더 떨어졌다. 게임에서 버벅거린다고 걱정하는 경고창이 떴다. (플레이 한 게임: Hitman:sniper) 4번이 제대로 작동하지 않는 듯 하다.

6. 키보드 높이를 조절하는 옵션이 원래 있다. 가로모드의 키보드를 가운데로 모아주는 옵션이 새로 생긴건 좋다. 하지만 가로모드 키보드의 높이가 조절이 안된다. 빼먹은게 분명하다.


6. 기타 기본 구글 프로그램들의 인터페이스 및 아이콘들이 개선되었는데 이들은 만족스럽다.

현재까지의 감상으로는 눈으로 보는것 및 보안적으로는 나아졌지만 퍼포먼스에서는 아직 미진한 듯 하다.


저작자 표시 비영리
신고
Posted by koog 미련퉁이
번잡한 충전기들에 지쳐서 멀티 USB 충전기를 찾고 있었다.
조만간 이사를 가면 이제 집에 충전기를 한개만 두고 아내와 같이 사용할 예정이다. 
지난 2015년 11월 11일에 Aliexpress에서 대규모(?)할인을 하는 것을 확인하고, 
아래와 같은 Quick Charge 지원 5포트 USB 충전기를 19.5달러에 무료배송으로 구매하였다.
싼게 비지떡이라지만 그래도 가격이 2 port 충전기 1개 가격이니까 리스크를 감수할 만 하다고 생각했다.
11월 11일이 지난 이후 지금도 22.5 달러 정도이니 아직도 가격은 괜찮다고 생각한다.


근데 배송이 진짜 오래걸렸다. 
11월 11일 즈음에 주문한 상품이, 12월 14일 에서야 국내 배송이 조회되기 시작하였다.
아마 12월 15일 정도 수령할 수 있을 것 같다. 
알리 익스프레스는 구매자 보호 프로그램이 있어서 정말로 배송이 오지 않으면 취소할 수 있다.
처음부터 판매자의 평가가 높은 사람에게 사는것이 제일 중요한 이유가, 이 구매자 보호 프로그램의 기간도 요청하면 판매자 재량으로 연장이 된다. 
그렇기에 시켜놓고 보통 2주나 한달까지는 잊어먹고 사는게 속 편하다.


총 54W의 출력에 1번 Port는 Qualcomm Quick Charge 지원,
나머지 2,3,4,5 포트는 VoltIQ라는 회사 고유의 기술인데 결국 각각의 포트가 5V/2.4Amp까지 지원해준다는 이야기이며, 
2,3,4,5 포트를 한꺼번에 사용할 경우에는 전류의 총합이 7.2A라고 한다. 하지만 본인은 5개까지 한꺼번에 꽂을 일은 없어서, 별 제약은 없게 생각된다.
너무 출력전류가 높으면 때에 따라서 고전류를 고려하지 않고 설계된 장치는 망가질 수도 있다는 이야기를 들었었어서, 조심스럽게 우선 만만한 핸드폰(?) 부터 충전시켜 보았다.

실제 제품을 받아보면 20불정도의 제품 치고는 그래도 신경써서 챙겨준 느낌이다.
본체와 한국배송이라고 220v 용 플러그로 알아서 챙겨주었고, 전원선에 벨크로가 원래 부착되어 있음에도 불구하고
선 정리용 벨크로를 하나 더 주는데, 이게 생각보다 고급스럽다.
또한 같이 주는 micro USB 선이 매우 굵직해서 높은 허용전류를 잘 견디게 생겼다. 

a5100카메라, G3 핸드폰, HBS-500등 이것저것을 동시에 충전해 보았는데 스위칭 노이즈 등도 거의 없고, 발열도 크지 않다.
매우 괜찮은 제품인 것 같다.



저작자 표시 비영리
신고
Posted by koog 미련퉁이


매트랩에서는 이미지를 2차원 행렬로 간주한다. 
이미지를 불러들여온 뒤, 원하는 조작을 한다면, 아마도 그 결과를 저장해야 할 것이다. 
이때 그 형식을 *.mat 파일이나 *.fig 등으로 저장을 할 수도 있지만, 그닥 결과의 데이터가 중요하지 않고 한번 보고하고 끝날 것 같다면,
바로 그림파일 형식으로 저장하는 경우도 많다. 이 때 찾게 되는 명령어가 imsave 일 것이다. 

Matlab의 Image processing toolbox를 사용한다면 imsave 키워드를 이용할 수 있다. 문법도 단순하다.
우리가 다룬 데이터가 A라는 변수로 저장되어 있다고 하자.
이 때 이를 현재폴더 내에 aaa.png라는 파일로 저장하고 싶다면,
imsave(A, 'aaa.png');
이면 끝이다. 특정한 경로에 저장하고 싶다면 파일명의 자리에 경로를 모두 포함하여 넣어주면 된다.


하지만 이 명령어를 이용해 저장하면, 이미지가 하얗게, 혹은 거의 하얗게 저장되어 어리둥절할 때가 있다. 

이 때의 문제는 보통 변수 A의 자료형에 있다. 
이미지를 처음에 불러올 때 실수범위의 연산을 위하여 double이나 single로 데이터를 불러오기 마련이다. 
이 데이터를 다시 저장을 한다면, 당연히 그 결과물(A 변수)도 자료형이 double이나 single이다. 
하지만 컴퓨터의 비트맵형식 이미지는 그 형식이 double이나 single일 수 없다. 비트맵은 정수밖에 모른다.
매트랩의 자료형을 기준으로, 우리가 일반적인 모니터에서 보는 그림들은 uint8 형식의 8비트 (0-255)정수 데이터 범위를 갖게 된다. 
물론 12비트나 16비트, 심지어는 32비트의 그림형식도 있지만 특수한 경우가 아니고선 보통 8비트를 이용할 것이다.
(특수한 경우에 해당될 때는 그냥 Raw 파일로 저장하거나 uint16등으로 16비트로 저장하자)

그럼 이 문제를 어떻게 해결해야 하는가? 저장하기 전에 해당파일의 형식을 uint8로 바꿔주면 된다. 
새 변수 B를 만드는데 같은 픽셀 크기이지만 데이터가 8blt이도록 선언한다.
B=uint8(zeros(size(A));
B=A;

그 뒤에 A를 꾸겨넣어주면,8bit로 형변환 된다.


그럼 double이나 single타입은 아예 저장을 할 수가 없는것인가? 그것은 아니다.

매트랩에서는 이미지를 저장할 때에 변수의 타입이 double이나 single 타입이면, [0~1]범위안에 Normalized된 실수라고 판단한다.
즉 8bit로 치면, 값이 0이면 0, 0.5면 128, 1이면 255가 된다.
그런데 우리가 갖고있는 데이터는 Normalize가 안되어 있므로 모두 하얗게 saturated되는 것이다. 
이것을 해결하기 위해서는 2차원 이미지 기준으로
A= A/max(max(A));
등의 연산을 통해서 이미지 자체를 0에서 1 사이로 Normalize 해 줄 수 있다. 이렇게 해준다면 imsave를 이용하여 저장할 수 있다.



저작자 표시 비영리
신고
Posted by koog 미련퉁이
학부생 시절 수강신청때부터 하여 현재 연구실에서까지 유용히 이용하고 있다.

프로그램으로 굳이 스크립트를 짜서 만들긴 귀찮고, 직접 손으로 하기엔 시간이 아까운 그런 일들을 나대신 도맡아 해주던 프로그램이다. 2002년에 만든 프로그램이 아직도 문제없이 쓰인다는 점만 보더라도, 이미 해당 목적에 한해서는 거의 완벽하다.


실제 사용방법에 대해서는 이미 자료가 매우 많으므로 생략한다. 그럼에도 이 포스팅을 작성하는 이유는.. 

일순간 G-macro 홈페이지가 접속이 안되었었던 적이 있었기 때문이다. 


호스팅 문제가 있었는지 순간 저 홈페이지가 접속이 안되었었다. 


때마침 필요한 상황에서 접속이 안되니 갑자기 까마득 하였었다. 다행히 다른 블로그에 백업(?)으로 올려놓은 것들이 많았기에

사용은 할 수 있었으나,  만약 저 유용한 프로그램이 없으면 난 앞으로 이 험난한 반복노가다 세상을 어떻게 살아가야 하는가 

걱정이 될 정도였다. 


새로이 받은김에, Windows 10 상황에서도 작동 테스트를 해 보았다. 

잘 된다. 플랫스타일의 박스가 오히려 더 잘 어울린다. 


참고로, 중앙하단의 반복 체크박스를 체크하지 않으면 매크로가 한번밖에 돌지 않는다. 은근히 이걸 자꾸 까먹는다. 또한 키보드/마우스 설정을 확인 안하면, 마우스 캡춰 버튼과 매크로 작동/정지 버튼이 같이 설정되어서 (F7등의 기능키로 보통 맵핑해놓는다)

만들어놓은 매크로가 망가진다. 미리 설정을 확인하자. 


요즈음에 이 프로그램이 어떻게 이용되나 살펴보니 우리 어린친구들이 블루스택등으로 안드로이드 앱을 실행 한 다음에, G macro를 이용하여 자동화작업을 해서 일종의 모바일 게임 오토를 돌리는 것 같다. 나 또한 연구실 컴퓨터로 일종의 '실험노가다 오토'를 돌려놓고 주말에 집에 이렇게 앉아서 실험결과만 받아볼 수 있으니, 참 좋은 세상이다.



저작자 표시 비영리
신고
Posted by koog 미련퉁이
(캡처, 캡춰, 캡쳐 등 여러가지 표기가 있지만 윈도우즈에서 사용하는 '캡처'라는 표기를 사용한다.)

화면 캡처를 할 일은 참 많다. 그림판으로 끄적끄적 그림을 그리려 하던 때에도 그랬었고, 요즈음에는 날림 파워포인트 보고서를 작성할 때에도 빼놓을 수 없는 기능이다. 
가장 전통적인 ? 방법은 키보드의 'Print Screen' 키를 눌러서 클립보드에 저장된 화면을 그림판(mspaint)으로 불러넣는 것이다.
하지만 손이 너무 많이 가고 반복적인 작업에 적용할 수 없으며, 영역도 일일이 편집하여야 한다. 

이 화면 캡처를 좀 더 유용하게 할 수 있는 방법과 프로그램은 많은데, 필자의 개인적인 경험상 가장 좋은 두가지 방법을 소개한다. 

가장 기본적으로는, 윈도우즈에 내장되어있는 '캡처 도구' 툴을 사용하는 것이다. 



이 프로그램을 실행하면 간단한 인터페이스가 나오는데, 캡처하는 화면의 크기와 종류도 설정할 수 있어 매우 유용하다.

특히나, 이 프로그램의 특징은 프로그램을 시작하면 어떠한 조작 없이 바로 캡처를 한다는 점이다. 이를 이용하면 원샷에 캡춰를 할 수 있다.

이렇게 캡처 도구의 속성에서 바로가기 키를 지정해 놓으면, 해당 단축기를 눌렀을 때 바로 프로그램이 실행되어 캡처가 진행된다. 캡처된 화면은 클립보드에 자동으로 저장되며, 따로 그림으로 저장할 수 있는  GUI 도 팝업된다.

이 툴만 있어도 대부분의 캡처 작업이 가능하다. 하지만 웹페이지의 스크롤 캡처등 특수한 기능은 없는것이 아무래도 아쉽다. 
이를 해결하기 위해 별도의 프로그램을 찾아보았다. 필자는 실제 지금까지 반디카메라를 매우 애용하고 있었지만, 우연히 새로운 프로그램을 알게 되었고, 이 프로그램이 사실 이 포스팅을 작성하는 동기가 되었다.


Picpick


이 프로그램을 특별하다고 생각하는 이유는, 소름돋을 정도로 평소에 아쉽던 기능이 한군데에 모여있으면서, 인터페이스도 깔끔하였기 때문이다. 평소에 급하면 그림판, 여유있으면 포토샵을 이용하는데 그 중간정도의 작업이나 혹 벡터편집을 빠르게 하고 싶을 때에는 사실 파워포인트를 이용해 그림을 만들어왔다. 그림판과 파워포인트를 같이 사용하면 어떤것이든지 의미전달은 가능한 그림을 만들 수 있었다. 그런데 이 프로그램은, 캡처기능과 그림판과 파워포인트의 일부기능을 한 군데에 모아놓은 느낌이다. 


무엇보다 좋은 점은

1. 다중작업을 지원한다는 점이며, 
2. 저장이나 클립보드로 결과를 복사하기 전까지는 객체들이 하나의 배경으로 합병되지도 않는다. 즉 파워포인트나 포토샵처럼 객체의 후 조정이 가능하다.  
3. 각 객체들의 대비나 밝기, 심지어는 간단한 필터들도 따로따로 적용할 수 있다. 
4. 웹 디자이너분들이 유용하게 사용할 만한 화면내 제도 및 측정용 도구들도 준비되어 있다. 
5. 마지막으로, 캡처 자체의 기능이 풍부하며 막강하다.

또한 편리한 기능으로, 작업중인 그림을 바로 오피스 프로그램으로 포워딩 하는 기능이 있다. 은근히 유용하다. 

당연히 프로그램 내부적으로 단축키 기능을 지원하므로, 원샷에 원하는 부위의 캡처가 가능하다. 

이외에도 성실히 업데이트가 되고 피드백 되는 프로그램 답게 탄탄하고 미려한 GUI가 큰 장점이다.
또한, 개인 이용자에게는 무료로 공개되어 있다.




저작자 표시 비영리
신고
Posted by koog 미련퉁이


인쇄용 그림은 우선 Vector 그래픽으로 그리는게 좋다. 사실 예전에 이를 위해 Illustrator를 사용했었는데, 호미로 막을걸 가래로 막는 느낌이라 사용하지 않게되었다.

현재 난 PowerPoint의 점편집으로 대부분의 것을 해결한다(....) 점 속성을 꼭지점/부드러운점 만 잘 설정해서  점 핸들을 당기고, 구부리고, 점을 생성하고, 지우고, 끌어주면 원하는 선 / 면 모양은 다 만들 수 있다. 다만 결과물을 채색하기가 쉽지 않다. gradient를 남발하다가는 2000년도 초 flash 애니메이션 스러운 그림 느낌이 나기 쉬워서 조심할 필요가 있다. 그림 자체를 머릿속에서 어느정도 posterization 하고 접근하면, 상상과 비슷한 결과를 얼추 만들 수 있다. 이런식으로.



이렇게 그린 그림을 사용하려면 직접 그림파일로 저장해야 하는데, ppt는 기본 설정상 DPI가 90정도로 설정되어있다. 이를 바꾸기 위해 Registry까지 손댔는데 이상하게 150dpi 이상은 출력이 안되어서 때려쳤다.
대신 원본이 점편집으로 그린 벡터 그래픽이므로, 아래와 같은 방법을 사용할 수 있다.

1. PowerPoint 에서 해당 그림이 있는 슬라이드를 pdf로 저장한다. (파일-내보내기-pdf/xpf 만들기)

만들어진 pdf 파일은 vector graphic을 지원하므로, (점편집으로 만든 그림은) 아무리 확대하고 축소하여도 그림이 열화되지 않는다. 

2. 내보낸 pdf 파일을 PDF-XChange viewer(http://www.tracker-software.com/product/pdf-xchange-viewer)로 연 뒤에, 해당 그림 부위를 카메라 툴로 긁는다. 
(다른 pdf viewer도 비슷한 기능이 있을 것이라 생각한다. 하지만 무료인 상태에서 밑줄이나 메모등의 Annotation 기능이 지원되고 Viewer 본분도 괜찮아서 난 Pdf-XChange를 계속 사용중이다.난 3년째 이거만 쓴다....)


3. file- Export- to image를 선택하면, 아래와 같은 화면이 나온다. 나는 화면에 적힌대로 tiff타입을 선택하고, Options에서 압축은 LZW를 선택하였다. 맨 밑 부분에 DPI을 300이상으로 찍어서 export 하면 잘 나온다. 


결과물의 속성을 보면 DPI가 원하는대로 나온 것을 확인할 수 있다.




저작자 표시 비영리
신고
Posted by koog 미련퉁이

Matlab은 방대한 함수와 그 레퍼런스가 최대 장점이다. 하지만 너무 많고, 결정적으로 영어이다보니 가끔씩은 찾거나 Help 파일을 쳐다보다가 지치는 경우도 많다. 이럴때에 아래와 같은 간략한 인덱스를 참고하면 의외의 도움을 받을 수 있을 것 같다. 물론, 함수에 관하여 가장 설명이 잘 나온 곳은 Help 임을 잊지 않아야한다..

이 자료는 인터넷에서 검색을 하던 중 가져온 것이다. 


출처 : http://blog.naver.com/PostView.nhn?blogId=youls2000&logNo=110092130971&redirect=Dlog&widgetTypeCall=true


MATLAB의 일반적인 명령어

 

-도움말/정보 취득 함수

help 온라인 도움말

  look for 중심어(keyword) 탐색

  what 디렉토리에 대한 파일의 목록

  which 파일의 디렉토리 위치

 info MATLAB MathWorks사에 대한 정보

  type M-파일의 내용 출력

  version MATLAB 버전

 

-MATLAB의 작업장 관리함수

  save 작업장 변수를 파일로 저장

 load 파일에서 작업장으로 변수를 복원

  who 작업장변수의 목록

  whos 작업장변수의 목록(변수 크기 및 종류 포함)

  clear 메모리에서 변수와 함수를 제거

  inmem 메모리에 탑재된 함수의 목록

  pack  조각난 메모리를복원

 quit MATLAB 종료

  exit MATLAB 종료

 

-MATLAB의 파일 및 운영체제 관리 함수

  cd 현재 디렉토리의 변경/출력

  pwd 현재 디렉토리의 출력

  delete 파일의삭제

  dir 디렉토리에 대한 파일의 목록

  diary MATLAB의 작업내용을 텍스트 파일로 저장

  dos 운영체제의 명령어 실행

  !(느낌표) 운영체제의 명령어 실행(Shell escape)

 

-MATLAB의 명령창 관리함수

  clc MATLAB 명령창의 청소

  home MATLAB 명령창의 커서를 왼쪽 위로 이동

  format 데이터 출력의 형식지정

  echo M-파일에서 명령어를 반복

  more 출력메시지를 명령창의 크기로 제약

 

 

 

 

 

 

 

MATLAB의 연산자와 기호

 

-행렬함수 (연산자)

  -요소함수(연산자)

   plus(+) 덧셈

   minus(-) 뺄셈

   mtime(*) 곱셈

   mrdivide(/) 오른쪽 나눗셈

   mldivide(\) 왼쪽 나눗셈

   mpower(^) 승수

   uplus(+) 양의 부호

   uminus(-) 음의 부호

   plus(.+) 덧셈

   minus(.-) 뺄셈

   mtime(.*) 곱셈

   rdivide(./) 오른쪽 나눗셈

   ldivide(.\) 왼쪽 나눗셈

   power(.^) 승수

   uplus(+) 양의 부호

   uminus(-) 음의 부호

 

 

 

-관계함수(연산자)

  -논리함수(연산자)

  lt(<) 보다 작다

   le(<=) 작거나 같다

   gt(>) 보다 크다

   ge(>=) 크거나 같다

   eq (==) 똑같다

   ne(~=) 같지 않다

   and(&) 논리곱

   or(|) 논리합

   not(~) 부정

   xor 독점합(exculsive)

 

 

-MATLAB의 특수문자

   () 우선순위/인수포함자

   {} 이종결합 연산자/세포체

   [] 동종결합연산자

   : 범위지정자

   ; 출력억제/(row)구분자

   % 주석기호

   . 소수점/구조체필드 참조자

   ! 운영체제의 명령어 호출자

   전치/문자열 연산자

   , 첨자분리/(column)구분자

   = 할당기호

   ··· 앞줄과 이어쓰기 표시자

 

 

-M-파일의 디버깅

  debug 디버깅 명령어의 목록

  dbstop 실행대기점 지정

  dbstep 실행 재개

  dbcont 질행 재개

  dbclear 실행 대기점 해제

  dbstatus 실행 대기점 목록

  dbstack 함수호출스택 목록

  dbdown 작업장의 이동

  dbup 작업장의 이동

  dbtype M-파일의 내용

dbquit  디버깅 마치기

 

 

MATLAB의 프로그래밍 관련함수

 

-M-파일의 생성 및 정보취득 함수

   function 세로운 함수를 생성

   global 전역변수로 지정

   mfrlename 현재 실행되는 M-파일의 이름 취득

   isglobal 전역변수 확인  함수

   exist 식별자의 존재형태 확인 함수

 

-M-파일의 인수 취득 함수

   nargchk 인수의 개수 검사함수

   nargin 입력인수의 개수 반환함수

   nargout 출력인수의 개수 반환함수

   varargin 가변 입력인수

   varargout 가변 출력인수

   inputname 실인수의 이름 반환함수

 

- M-파일에서의 메시지 출력 함수

   warning 경고메세지 출력

   error 에러메시지 출력및 실행중단

   lasterr 가장최근의 에러메세지 반환

   disp 메시지/데이터 출력

   sprintf 형식있는 데이터를 메시지로 변환

   fprintf 형식있는 메시지 출력

 

-M-파일의 작성언어

   if/else/elseif  if조건문

   for  for반복문(반복횟수 기결정)

   while while 반복문(반복횟수 미결정)

   end 조건문 및 반복문의 끝마침

   switch  switch조건문

   case switch case

   otherwise switch의 디폴트 case

   break 루프의 탈출

   return 호출함수로의 복귀

 

-M-파일에서의 문자열 평가함수

   eval MATLAB 표현식을 갖는 문자열의 평가

   feval 문자열로 표현된 함수의 평가

   evalin 문자열을 호출작업장에서 평가

   assignin 문자열을 호출작업장에 할당

 

-M-파일의 대화식 작성함수

   input 사용자 입력용 프롬프트

   keyboard M-파일의 키보드 모드로의 실행

   puase 사용자의 입력 대기함수

-M-파일 함수

disp(ans)  변수이름을 확인하지 않고 결과를 출력

echo      스크립트 파일 명령들을 명령창에 출력할 것인지를 제어

input      입력을 위한 프롬프트

keyboard 일시적으로 키보드로 제어 (빠져나가려면 return을 입력)

pause     어떤 키보드를 누를 때까지 대기

pause(n)   n초 동안 대기

waitforbuttonpress  키보드나 마우스를 누를 때까지 대기

 

 

 

MATLAB 행렬(데이터)의 기본적인 조작함수

 

-MATLAB 행렬(데이터)의 생성함수

   ones 요소가 모두 1인 행렬

   zeros 요소가 모두 0인 행렬

   eye 단위행렬

   diag 대각행렬

   cat 행렬의 연결함수

   repmat 행렬의 복제함수

   rand 0에서 1사이의 난수행렬

   randn 평균이 0이고 분산이 1인 정규분포행렬

   magic ,행 및대각선의 합이 모두 같은 행렬

   meshgrid 3차원 그래프를 위한 영역 변환함수

   linspace 선형간격으로 데이터 생성

   logspace 로그간격으로 데이터 생성

 

-MATLAB행렬(데이터)의 정보취득 함수

   size  행렬의 크기반환

   length 행렬의 크기에서 가장 큰 값을 반환

   ndims  행렬의 차원수를 반환

   isempty 공행렬 검사

   isfinite 행렬의 유한요소 검사

   isnan 행렬의 NaN 검사

   isinf 행렬의 inf 검사

   isequal 행렬의 등가 검사

   any 행렬의 모든 요소가 0일 때에만 거짓(0)을 반환

   all 행렬의 모든 요소가 1일 때에만 참(1)을 반환

 

 

MATLAB 행렬(데이터)의 조작함수

find   입력조건에 맞는 첨자의 변환

end    마지막 첨자

reshape행렬의 크기 변경함수

diag   행렬의 대각선 요소 추출함수

rot90  행렬의 90° 회전

fliplr   행렬의 행을 위쪽에서 오른쪽으로 자리바꿈

flipud  행렬의 열을 위쪽에서 아래쪽으로 자리바꿈

 

-MATLAB의 내정(built-in)변수 및 상수

ans    명령창에 최근에 출력된 답을 저장

eps    부동소숫점의 상대정확도

flops  부동소숫점에서의 계산 횟수

realmax부동소숫점에서 가장 큰 값

realmin 부동소숫점에서 가장 작은 값

pi      원주율(3.1415926535897)

i, j    복소수의 허수단위(imag(log(-1)))

inf     무한대

NaN   부정 혹은 불능 값

clock  현재의 날짜와 시간

date   현재의 날짜

tic, toc 스톱시계(stop watch)의 시작과 끝

 

 

MATLAB의 기본적인 수학함수

 

-MATLAB의 기본적인 수학 변환함수

fix     소숫점이하 무시

ceil    소숫점이하 올림

floor   소숫점이하 내림

round 반올림

rem   나머지

abs    절대값

sqrt   제곱근

exp    지수   

log    자연로그       

log 10 상용로그

 

 

 

-삼각 및 쌍곡선 함수

sin    사인

cos    코사인

tan    탄젠트

sec    사인의 역수

csc    코사인의 역수

cot    탄젠트의 역수

sinh   사인쌍곡선

cosh   코사인쌍곡선

tanh   탄젠트쌍곡선

sech   사인쌍곡선역수

csch   코사인쌍곡선역수

coth   탄젠트쌍곡선역수

 

-역삼각 및 역 쌍곡선 함수

asin   역사인

acos   역코사인

atan, atan역탄젠트

asex   역사인의 역수

acsc   역코사인의 역수

acot   역탄젠트의 역수

asinh  역사인쌍곡선

acosh 역코사인 쌍곡선

atanh  역탄젠트 쌍곡선

asech 역사인쌍곡선 역수

acsch  역코사인쌍곡선 역수

acoth  역탄젠트쌍곡선 역수

        

-MATLAB의 복소수 관련함수

abs    복소수의 크기 

angle  복소수의 위상

conj   공액복소수

real   복소수의 실수부

imag   복소수의 허수부

'       복소공액전치연산자

 

 

 

 

-숫자데이터 처리 기본함수

max   데이터의 최대값

min    데이터의 최소값

sum   데이터의 합

prod   데이터의 곱

sort   데이터의 정렬

cumsum연속 합벡터

cumprod연속 곱벡터

mean  데이터의 평균값

median 데이터의 중간값

std    데이터의 표준편차

-숫자데이터 처리 고급함수

diff    데이터의 근사미분

trapz  데이터의 근사적분

conv   콘볼류션(곱셈)

deconv 역콘볼류션(나눗셈)

gradient방향장의 구배

filter  디지털필터

fft     퓨리어 변환

ifft    역퓨리어 변환

MATLAB의 그래프 관련함수

-MATLAB 2차원 그래프 함수

plot    선형그래프

semilogxx축 로그그래프

semilogyy축 로그그래프

loglog 로그 그래프

polar  극좌표그래프

subplot 축위치나누기

axis   축의 범위 지정하기

xlabel x축 라벨

ylabel y축 라벨

title   그래프 제목

legend 그래프 범례

text, gtext    그래프에 텍스트 삽입

grid   격자선 삽입

hold   현재 그래프를 고정

 

 

-MATLAB 3차원 그래프 및 식별자 취급함수

plot3  3차원 선그래프

mesh  3차원 면그래프

surf   3차원 면그래프

view   관찰자의 위치 설정

zlabel z축 라벨

sphere () 데이터 생성

cylinder실린더 데이터 생성

figure 그림객체 생성

axes   축의 객체 생성

set    식별자 지정함수       

get    식별자 취득 함수

gcf    현재그림의 식별자

clf     현재그림을 삭제

gca    현재축의 식별자

 

 

MATLAB에서 유용한 내장 그래프

 

-MATLAB에서 유용한 내장그래프

bar    평면 막대그래프

bar3   공간 막대그래프

hist    히스토그램

pie    평면 파이그래프

pie3   공간 파이그래프

stairs  계단 그래프

 

MATLAB의 문자데이터 기본함수

-문자데이터의 기본함수

eval   문자열 평가함수

ischar 문자열 확인함수

isletter 문자 확인함수

isspace 공백문자 확인함수

blanks 공백문자 삽입함수

deblank공백문자 제거함수

upper 대문자로변환함수

lower  소문자로 변환함수

 

 

-문자데이터의 조작함수

strcat 문자열의 수평 연결함수

strvcat 문자열의 수작 연결함수

strcmp 문자열의 비교함수

findstr 문자열에서 다른 문자열을 찾는 함수

strrep 문자열에서 다른 문자열을 교체하는 함수

 

 

-문자데이터의 변환함수

char   숫자를 문자로

cellstr 문자열을 세포체로

num2str실수를 문자열로

str2num문자열을 실수로

int2str 정수를 문자열로

mat2str행렬을 문자열로       

sprintf 데이터를 문자열로

sscanf 문자열의 읽기함수

 

 

 

 

 

MATLAB의 입/출력 함수

 

-이진(binary)파일의 읽기/쓰기 및 파일위치자 관련함수

fopen  파일 열기

fclose 파일 닫기

fread  파일에서 읽기

fwrite 파일로 쓰기

fseek  파일위치자 지정

ftell   파일위치자 취득

frewind 파일위치자를 처음으로 

feof   파일의 끝을 확인

ferror 최근 파일에러를 확인

 

 

-형식이 있는 텍스트파일의 읽기/쓰기 함수

fget   파일에서 1줄 읽기

fgetl   파일에서 1줄 읽기

fscanf  파일에서 데이터 읽기

fprintf 파일로 데이터 쓰기

 

 

 

MATLAB의 데이터형(클래스)

-MATLAB의 기본적인 클래스

double 숫자 데이터

char   문자 데이터

cell    세포체 데이터

struct 구조체 데이터

inline  즉석 함수

 

-MATLAB의 세포체 관련 함수

cell    세포체 생성함수

iscell  세포체 확인함수

celldisp세포체 출력함수

cellplot 세포체 작도함수

cell2struct    세포체에서 구조체로

struct2cell    구조체에서 세포체로

num2cell      숫자에서 세포체로

deal   /출력 배분함수

 

-MATLAB의 구조체 관련 함수

struct 구조체 생성함수

isstruct 구조체 확인함수

isfield 구조체 필드 확인

fieldnames구조체 필드 반환

rmfield 구조체 필드 삭제

getfield 필드내용 반환

setfield 필드내용 지정

 

 

MATLAB의 객체지향 프로그래밍 관련함수 및 기본 파일

class  클래스 태그(꼬리표) 및 계승(inheritance)지정

isa     클래스의 부류 확인 함수

isobject사용자 클래스 확인함수

methods클래스의 전용함수 확인함수

builtin 이중등록된 함수에 앞서 MATLAB 내장함수 호출

superiorto클래스의 평가 우선순위 지정(상위)

inferiorto클래스의 평가 우선순위 지정(하위)

@     클래스 디렉토리 표시문자

생성자(constructor)   클래스의 생성함수(M-파일)

표시자(diplayer)       클래스의 명령창 출력함수(M-파일)

변환자(converter)     클래스 데이터의 변환함수(M-파일)

 

 

 

 

-관리 파일시스템 함수들

 

addpath dir1  matlabpath의 시작에 dir1디렉토리를 추가

cd          현제 작업하는 디렉토리나 폴더를 출력

p=cd        변수 p에 현재 작업 디렉토리를 반환

cd path     디렉토리나 폴더를 path 로 변경

delete test.m  M-파일 test.m을 지움

dir          현재 디렉토리나 폴더의 모든 파일을 반환

edit test     test.m 파일의 편집 GUI matlabpath의 편집

exist('cow','file')  matlabpath에서 파일 cow.m의 존재를 검사

exist('d','dir')     matlabpath에서 디렉토리 d의 존재를 검사

filesep     파일 분리자, Win95 NI에서 '|',매킨토시에서 ':'

fullfile      경로를 포함한 파일 이름을 만듦

inmem      메모리에 불러온 함수의 리스트

ls           dir과 같음

matlabrc.m  startup.m전에 실행되는 MATLAB 시작 스크립트 M-파일

matlabroot MATLAB실행 프로그램의 디렉토리 경로를 반환

path        MATLAB탐색 경로

pathdef.m   matlabpath에 있는 함수

pathsep     matlabpath를 위한 경로 분리자

pwd         cd와 같음

rmpath dir1 matlabpath에서 디렉토리 dir1을 제거

startup.m   MATLAB시작시 수행되는 스크립트 파일

tempdir     임시 디렉토리의 이름

tempname   임시 파일의 이름

type test    명령창에 test.m 파일을 출력

what       현재 디렉토리나 폴더에 M-파일과 MAT-파일의 목록을 반환

which test   test.m 파일에 디렉토리 경로를 출력

 

-검사 함수

isa(X,'name)  X 'name'의 목적 클래스를 가지면 참

iscell(X)      인수가 셀 배열이면 참

iscellstr(S)   인수가 문자열의 셀 배열이면 참

ischar(S)     인수가 문자열이면 참

isempty(X)   인수가 비어있으면 참

isequal(A,B)  A B가 같으면 참

isfield(S,'name')  'name'이 구조체 S의 영역이면 참

isfinite(X)    원소들이 유한하면 참

isglobal(X)   인수가 광역변수이면 참

ishandle(h)   인수가 유효한 목적 핸들 이면 참

ishold        현재 그림이 ON상태를 유지하면 참

isieee        컴퓨터가 IEEE계산을 수행하면 참

isinf(X)       원소들이 무한하면 참

isletter(S)    원소들이 알파벳의 문자이면 참

islogical(X)   인수가 논리 배열이면 참

ismember(A,B)  A의 원소들의 B에 있으면 참

isnan(X)      원소들이NaN이면 참

ismumeric(X)  인수가 수의 배열이면 참

isppc         파워PC 프로세서를 가진 맥이면 참

isprime(X)    원소들이 소수이면 참

isprime(X)    인수들이 무리수를 가지지 않으면 참

isspace(S)   원소들이 공백 문자를 가지면 참

issparse(A)   인수가 희소 행렬이면 참

isstruct(S)    인수가 구조체이면 참

isstudent     MATLAB이 학생판이면 참

isunix        컴퓨터가 UNIX이면 참

isvms        컴퓨터가 vms면 참

 

 

다차원 배열의 함수

s=size(A)   n차원 A에 대하여 i^th원소가 A i^th차원의 크기인 n개 원소의 행벡               s를 반환

ndims(A)  A의 차원을 수, ,length(size(A))

purmute(A,order)   -전치 조작의 n차원 동적

ipermute(A,order)  permute(A,order)의 역

shiftdim(A,n) A의 차원을 정수 n만큼 이동

squeeze(A) singleton 차원을 제거, ,단위 길이를 가진 3보다 큰 차원을 제거

 

 

칼라맵 함수

hsv          hue-saturation-value(hsv)

hot          흑색-적색-황색-백색

gray         선형 회색

bone         청색을 띤 회색

copper       선형 구리색

pink        파스텔 톤의 분홍색

white        백색 칼라맵

flag         교차된 흑색-적색-황색-백색

jet           hsv의 변화

prism        프리즘 칼라맵

cool         청록색과 자홍색의 음영

lines         선의 색을 도시하는 칼라맵

colorcube    개선도니 칼라 육면체 칼라맵

summer      녹색과 황색의 음영

autumn       적색과 황색의 음영

winter       청색과 녹색의 음영

spring        자홍색과 황색의 음영

 

 

제어 시스템 도구 상자의 함수 목록

ltl            모델의 생성

ss           상태-공간 모델을 만든다

zpk          영점-극점-이득 모델을 만든다

tf            전달함수 모델을 만든다

dss          기술자 상태-공간 모델을 상술한다

filt          디지털 필터를 상술한다

set          ltl모델의 성질을 설정/수정한다

ltiprops      사용 가능한 ltl성질에 대한 자세한 도움말

 

자료 추출

ssdata       상태-공간 행렬을 추출한다

zpkdata      영점-극점-이득 자료를 추출한다

tfdata        분자들 및 분모들를 추출한다

dssdata      ssdata의 기술자판

get          ltl모델의 성질들의 값에 접극한다

 

모델 특성

class       모델형태('ss','zpk'또는 'tf')

size         입력/출력 차원

isempty     lti모델에 대해서는 참

isct         연속 모델에 대해서는 참

isdt         불연속 모델에 대해서는 참

isproper    고유한 lti모델에 대해서는 참

issiso      단일입력/단일출력 시스템에 대해서는 참

isa          lti모델이 주어진 형태인가를 검사함

 

전환

ss         상태-공간으로 전환

zpk         영점-극점-이득으로 전화

tf           전달함수로 전환

c2d         불연속으로 전환

d2c        연속으로 전환

d2d         불연속 시스템을 재표본추출 또는 입력 지연을 첨가

 

과부하 계산 작업

+and-       lti시스템의 덧셈과 뺄셈(병렬 연결)

*            lti시스템의 곱셈(직렬 연결 )

|           좌측 나눔:sys1|sys2 inv(sys1)*sys2를 의미

/           우측 나눔:sys1/sys2 sys1*inv(sys2)를 의미

'            개별전치

.'          입력/출력 사상의 전치

[...]         lti시스템의 수평/수직 연결

inv          ti시스템의 역

 

데모

ctrldemo     제어 시스템 도구 상자에 대한 소개

jetdemo      제트 수송 편주 감쇄기의 고전적인 디자인

diskdemo    하드 디스크 드라이브 제어기의 디지털 디자인

milldemo     철강 회전 제분기 의 siso mimo log 디자인

kalmdemo    kalman 필터 설계 및 모사

 

모델 동력학

pole,eig      시스템의 극점

tzero        시스템 전달 영점

pzmap      극점-영점 지도

dcgain       d.c.(저주파) 이득

norm        lti 시스템의 놈

covar       백색 잡음에 대한 응답의 공분산

damp      자연주파 및 시스템 극점의 감쇄

esort       연속 극점값을 실수기준으로 정렬

dsort       불연속 극점값을 크기순으로 정렬

pade       시간 지연의 pade 근사

 

상태공간 모델

rss,drss    무작위 안정 상태-공간 모델

ss2ss      상태 좌표 변환

canon      상태-공간 표준형

ctrb, obsv  제어가능 및 관측 가능 행렬

gram       제어가능 및 관측 가능 gramians

ssbal       상태-공간 구현의 대각선 균형

balreal      gramian-기반 입/출력 균형

modred     모델의 상태 축약

minreal    최소 구현 및 극점/영점 상쇄

augstate  상태를 추가하여 출력을 증대함

 

시간 응답

step       계단 응답

impulse    임펄스 응답

initial      초기상태가 주어진 상태- 공간 시스템의 응답

lsim       임의의 입력에 대한 응답

ltiview    응답 분석 gui

gensig    lsim에서 입력 신호를 생성

stepfun   단위-계단 입력의 생성

 

주파수 응답

bode      주파수 응답의  bode 선도

sigma     특이값 주파수 선도

nyquist   nyquist 선도

nichols    nichols 도표

ltiview    응답 분석 gui

evalfr     주어진 주파수의 응답값 계산

freqresp   주파수 눈금에 걸친 주파수 응답

margin    이득 및 위상 마진

 

시스템 상호 연결

append    입력 및 출력을 추가하여 ltl시스템을 분류

parallel   일반화된 병렬 연결(과부화 참고)

series     일반화된 직렬 연결(과부화 참고)

feedback  두 시스템의 되먹임 연결

star       rddheffer star product(lft 상호연결)

connect   블록선도로부터 상태-공간 모델을 유도함

 

고전적인 설계 도구들

rlocus     evans 근 궤적

rlocfind  상호 작용 근 궤적 이득 결정

acker     단일 입력 단일 출력 극점 배치

place     다중 입력 다중 출력 극점 배치

estim     주어진 추정 이득값을 사용한 추정기 형성

reg       주어진 상퇴-되먹임 및 추정 이득값을 사용하여 조절기 형성

 

lqg설계 도구들

lqr,dlqr    선형-2(lg)상태-되먹임 조절기

lqry       출력 무게인자를 갖는 lq조절기

lqrd       연속 공정에 대한 불연속 lq조절기

kalman    kalman 추정기

kalmd     연속 공정에 대한 불연속 kalman 추정기

lqgreg     lq이득과 kalman 추정기를 갖는 lqg조절기 형성

 

 

행렬함수

balance(A)  고유값 정밀도를 향상시키도록 비율조정

cdf2rdf(A)   복소수 대각형태를 실수 블록 대각형태로

chol(A)      Cholesky 분해

cholinc(A, droptol) 불완전한 Cholesky 분해

cond(A)     행렬 조건수

condest(A)  1-놈 행렬 조건수 추정

condeig(A) 고유값과 관련된 조건

det(A)      행렬식

eigs(A)     몇 개의 고유값들과 고유값 벡터들

expm(A)    지수 행렬

expm1(A)   expm M파일 실행

expm2(A)  Taylor 전개를 이용한 지수 행렬

expm3(A)   고유값과 고유값 벡터를 이용한 지수행렬

funm(A,'fun') 일반 행렬함수의 계산

hess(A)      Hessenberg 형식

inv(A)       역행렬

logm(A)    로그 행렬

lscov(A,b,V) 알려진 공분산을 이요한 최소자승법

lu(A)        Gause 소거법 인자들

luinc(A, dropto1) 불완전한 LU 분해

nnls(A,b)    음수가 아닌 최소자승해

norm(A)     행렬과 벡터 놈

norm(A,1)   1-

norm(A,2)   2-(유클리디안)

norm(A,inf)  무한대

null(A)      널공간

orth(A)     직교화

pinv(A)     가상역행렬

planerot(A) 주어진 평면 회전

poly(A)      특성방정식

polyeig(A1,A2,...) 다항 특성방정식 풀이

polyvalm(A)  다항 행렬 계산

qr(A)         직각 삼각 분해

qrdelete(Q,R,j)  OR분해로부터 열 제거

qrinsert(Q,R,j,x) OR 분해에 열 삽입

qz(A,B)         일반화된 고유값

rank(A)         독립적인 행이나 열의 개수

rcond(A)        역조건 추산자

rref(A)          축약행 사다리꼴

rsf2csf(U,T)     실수 Schur 형태를 복소수 Schur 형태로 변환

schur(A)         Schur 형태를 뵤소수 Schur 형태로 변환

sqrtm(A)        행렬 제곱근

subspace(A,B)   두 개의 부동간 사이의 각

svd(A)          특이값 분해

svds(A,K)      몇 개의 특이값

trace(A)       대각 원소들의 합

 

문자열 함수

blanks(n)        n 개의 공백이나 빈칸의 문자열을 반환한다

deblank(s)      문자열로부터 뒤의 공백을 제거한다.

eval(string)      매트랩 명령으로서 문자열을 평가한다.

eval(try,catch)   문자열을 계산하고 에러를 잡는다.

feval(f,x,y,...)    문자열에 의해 주어진 함수를 계산한다.

findstr(s1,s2)    다른 문자열에서 하나의 문자열을 찾는다.

ischar(s)        만약 입력이 문자열이면 참

isletter(s)       알파벳 문자가 있으면 참

isspace(s)       공백 문자가 있으면 참

lasterr           마지막 매트랩 에러의 문자열

lower(s)         문자열을 소문자로

strcat(s1,s2,...)   가로 문자열의 연결

strcmp(s1,s2)    문자열들이 동일하면 참

strjust(s)         문자배열을 오른쪽으로 당긴다.

strmatch(s1,s2)   문자열에서 가능한 짝을 찾는다.

strncmp(s1,s2,n)  n개의 문자가 동일하면 참

strep(s1,s2)      하나의 문자열을 다른 것으로 대체한다.

strtok(s)         문자열에서 첫 번째 신호를 찾는다.

strvcat(s1,s2,...) 수직 문자열의 연결

upper(s)         문자열을 대문자로

 

행렬 방정식 풀기

lyap       연속 lyapunov방정식 풀기

dlyap     불연속 lyapunov방정식 풀기

care       연속 대수 riccati방정식 풀기

dare       불연속 대수 riccati방정식 풀기

 

데이터 분석함수

corrcoef(x)      계수들을 서로 관계짓는다.

cov(x)           공분산 행렬

cplxpair(x)      벡터를 복소 켤레쌍으로 정렬한다.

cross(x,y)       벡터의 외적

cumprod(x)     열의 누적곱

cumprod(x,n)    n차를 따라서 누적곱

cumsum(x)      열의 누적합

cumsum(x,n)     n 차를 따라서 누적합

cumtrapz(x,y,n)   n차를 따라서 사다리꼴 누적 적분

del2(A)           5 점의 불연록 Laplacian

diff(x)            5 점의 불연록 Laplacian

diff(x,m)         원소간의 누적차

diff(x,m,n)        원소간와 m번째 차

dot(x,y)          벡터의 내적

histogram(x)     막대 그래프나 막대 차트

max(x),max(x,y)  최대 원소

max(x,n)         n차원에서의 최대

mean(x)         열의 평균값

mean(x,n)      n차원에서의 평균값

median(x)       열의 중간값

median(x,n)    n차원에서의 중간값

min(x),min(x,y)  최소원소

min(x,n)        n차원에서의 최소값

prod(x)         열의 원소들의 곱

prod(x,n)       n차를 따라서 곱

rand(x)         정규분포난수

randn(x)        표준정규분포 난수

sort(x)          오름차순으로 열을 정렬

sort(x,n)        n차를 따르는 정렬

sortrows(A)     오름차순으로 행을 정열

std(x),std(0)     N-1로 표준화한 열의 표준편차

std(x,l)          두 부공간사이의 각

std(x,flag,n)     각 열의 원소들의 합

subspace(A,B)   두 부공간사이의 각

sum(x)          각 열의 원소들의 합

sum(x,y)        n차원에서의 합

trapz(x,y)      y=f(x) 사다리꼴 적분

trapz(x,y,z)     n차를 따라서 사다리꼴 적분

 

<출처>

쉽게 배우는 matlab 입문과 활용 (여영구)

임종수의 matlab(임종수)

matlab 입문과 활용(김용수)

MATLAB 한글판 (Amos Gilat)

 

 

 

저작자 표시 비영리
신고
Posted by koog 미련퉁이


티스토리 툴바