Search This Blog

Wednesday, December 19, 2012

Current Driver for Laser Diode

Laser Diode ကို မောင်းဖို့ current driver ဆားကစ် တစ်ခုကို လုပ်ကြည့်ထား ပါတယ်။ ပုံမှန်အားဖြင့် အောက်က ပုံမှာ ပြထားတဲ့ အတိုင်း CE with RE ပုံစံ ကို LED အတွက် current source အနေနဲ့ သုံးရတာကို ကြိုက်ပါတယ်။ ဒီဆားကစ်မှာ Laser Components ကထုတ်တဲ့ laser diode ADL-65055TL ကိုသုံးထားပါတယ်။ သူ့ရဲ့ ပုံမှန် အလုပ်လုပ် တဲ့ operating current က 25mA၊ အမြင့်ဆုံး maximum current က 35mA နဲ့ ပုံမှန် အလုပ်လုပ်တဲ့ operating voltage က 2.2V ပါ။
12V ပါဝါ ဆပ်ပလိုင်း အတွက် ထရန်စစ်စတာရဲ့ VCE(saturation) ကို သုညလို့ အနီးစပ်ဆုံး ယူဆပြီး RE ရဲ့ တန်ဖိုးကို အောက်က အတိုင်း တွက်လို့ရပါတယ်။ $$R_E=\frac{Vcc-V_L}{I_{max}}=\frac{12-2.2}{35m}=280 \Omega $$ အဲဒီ CE configuration အတွက် ချဲ့ဆ အများကြီး မလိုတာနဲ့ bypass capacitor ကို မသုံးခဲ့ ပါဘူး။ ဒီ class A amplifier ရဲ့ အထွက် လျှပ်စီးcurrent ကို 23mA နဲ့ 29 mA ကြားမှာ ပြောင်းနေစေချင် တာနဲ့ ထရန်စစ်စတာ ၂ ရဲ့ ပုံမှန် quiescent emitter current ကို IE2=26mA (operating current ပတ်ဝန်းကျင်လောက်မှာ) လို့ သတ်မှတ်လိုက်ပါတယ်။ အဲဒါဆိုရင် emitter voltage က VE2=RE x Iop= 280 x 26m = 7.28V လို့ ရပါတယ်။ input impedance မြင့်ဖို့အတွက် CC amplifier ကိုရှေ့ကနေ တဆင့် ထပ်ခံလိုက်တဲ့ အခါ အောက်မှာ ပြထားတဲ့ ပုံအတိုင်း ဖြစ်သွားပါတယ်။
base-emitter junction voltage, VBE ကို 0.7V လို့ ယူလိုက်ရင် ထရန်စစ်စတာ ၁ ရဲ့ ပုံမှန် တည်ငြိမ် base voltage က VB1= 7.28+0.7+0.7=8.68V ဖြစ်သွားပါတယ်။ သေးငယ်လွန်းတဲ့ ဘေ့စ် လျှပ်စီးကို ထည့်မစဉ်းစား ပဲ R1 နဲ့ R2 ကို တွက်လိုက်ရင် $$ V_{B1}=Vcc \times \frac{R_2}{R_1+ R_2}$$ $$ \frac{R_1}{R_2}+ 1=\frac{12}{8.68V}$$ R2=2.6 R1 လို့ ထွက်လာပါတယ်။ R1 တန်ဖိုးကို 22k လို့ ကြုံရာ ယူလိုက်မယ်ဆိုရင် R2 က 57k လို့ရပါတယ်။ အဝင် ac input voltage ကတော့ (29-23)m x 280= 1.68V peak to peak လောက်ပေးရမှာ ဖြစ်ပါတယ်။ lab ထဲမှာ ရှိတဲ့ ဟာလေးတွေနဲ့ လုပ်ကြည့်ပြီး ရလာတဲ့ prototype လေးကို အောက်မှာ ပြထားပါတယ်။

Thursday, July 19, 2012

Myanmar (Burmese) Language with XeTeX and LuaTeX

LaTeX မှာ မြန်မာစာ ကို မှန်မှန်ကန်ကန် ပေါ်ဖို့ အတွက် ဆိုရင် ယူနီကုတ် ကို သုံးလို့ရတဲ့ ဇီးတက်ခ် (XeTeX) နဲ့ လူဝါတက်ခ် (LuaTeX) တို့ကို သုံးဖို့လိုပါတယ်။ မြန်မာစာ ပေါ်ဖို့ TeX Live တို့၊ MiKTeX တို့နဲ့ တစ်ခါတည်း ပါလာတဲ့ XeTeX နဲ့ LaTeX တွေဟာ နောက်ဆုံးပေါ် ဗားရှင်းတွေ ဖြစ်ဖို့ လိုကောင်း လိုပါလိမ့်မယ်။ အယ်ဒီတာ ဆော့ဖ်ဝဲ တွေဖြစ်တဲ့ TeXmaker တို့၊ TeXstudio တို့ မှာ TeX ဖိုင်တွေကို အလွယ်တကူ သုံးရလွယ်အောင် user command တွေ သတ်မှတ် လို့ရပါတယ်။ TeXstudio မှာ ဆိုရင် အဲဒီလို သတ်မှတ်ဖို့ အတွက် Options menu ကို သွားပြီး Configure TeXstudio... ကို နှိပ်ပါ။ နောက် Commands ကို နှိပ်ပြီး PdfLaTeX အတွက် သုံးထားတဲ့ command ကို ကော်ပီ ကူးယူပါ။
အဲဒီနောက် User menu ကိုပြန်သွားပြီး User Commands -> Edit User Commands ကို နှိပ်ပြီး အစိမ်းရောင် အပေါင်း လက္ခဏာ သင်္ကေတ ကို နှိပ်ပါ။ ပြီးရင် ခုနက ကော်ပီကူးထားတဲ့ command ကို Paste လုပ်ပြီး XeTeX ကို သုံးဖို့ pdflatex ဆိုတဲ့ နေရာမှာ xelatex နဲ့ အစားထိုးပါ။ LuaTeX ကိုသုံးဖို့ အတွက်လည်း ခုနက နည်းအတိုင်း ထပ်လုပ်ပြီး lualatex နဲ့ အစားထိုးပါ။
အောက်က နမူနာ (Z1.tex) က xelatex နဲ့ရော lualatex နဲ့ပါ အလုပ်လုပ် ပါတယ်။
\documentclass{article}
\usepackage{fontspec}
\setmainfont{Zawgyi-One}
\begin{document}
ျမန္မာစာ
\end{document}
နောက်ထပ် lua script တွေ သုံးထားတဲ့ lualatex နမူနာ က luaZ1.tex ပါ။ LuaTeX ကို Zawgyi-One ၊ Padauk ၊ Myanmar3 ၊ Myanmar MN အစရှိတဲ့ ဖောင့်တွေနဲ့ စမ်းကြည့်တဲ့ အခါ Zawgyi-One တစ်ခုပဲ လက်ရှိ ဗားရှင်း (LuaTeX, Version beta-0.70.1-2011082320) မှာ လုပ်တာကို တွေ့ပါတယ်။
XeTeX ကတော့ Zawgyi-One နဲ့ Padauk ကို ပလက်ဖောင်း အားလုံးမှာ ပေါ်အောင် လုပ်နိုင်ပြီး၊ Myanmar MN ကိုလည်း Mac OS X မှာ ပေါ်အောင် လုပ်နိုင်ပါတယ်။ ဇော်ဂျီ အတွက် ဘာမှ ပြဿနာ မရှိပေမယ့် Unicode ဖောင့်တွေဖြစ်တဲ့ Padauk အစရှိတဲ့ ဖောင့်တွေမှာတော့ renderer ကို သတ်မှတ် ပေးဖို့လိုပါတယ်။ အောက်က နမူနာမှာတော့ Renderer=Graphite ဆိုပြီး Graphite ကို renderer အနေနဲ့ သတ်မှတ်ပေးလိုက် ပါတယ်။ Myanmar MN ဖောင့် အတွက် ဆိုရင်တော့ Renderer=AAT လို့ သုံးနိုင်ပါတယ်။ နမူနာ အနေနဲ့ အောက်မှာ ပြထားတဲ့ XeFontspec.tex ကို ကြည့်နိုင်ပါတယ်။
\fontspec[Renderer=Graphite]{Padauk} အစား renderer ကို သတ်မှတ်နိုင်တဲ့ တခြားနည်း ကတော့ \font\1="Padauk/GR" \1 ပါ။ အဲဒီမှာ /GR က Graphite font renderer အတွက် ဖြစ်ပြီး၊ /AAT က ATSUI renderer (Mac OS X အတွက်သာ) အတွက် နဲ့၊ /ICU ကို သုံးရင် ICU OpenType renderer အတွက် ဖြစ်ပါတယ်။ ဒါပေမယ့် အဲဒီလို renderer သတ်မှတ်တာ က ကျွန်တော့် Windows XP နဲ့ Ubuntu Linux မှာ ရှိတဲ့ xelatex ဗားရှင်းတွေ အတွက် အလုပ် မလုပ်ဘူး ဖြစ်နေ ပါတယ်။ ကံကောင်းချင်တော့ Calmhill ရဲ့ ဘလော့ဂ် မှာ Padauk ကို ပေါ်အောင် \fontspec[Script=Myanmar]{Padauk} ကို သုံးထားတဲ့ နည်းကို တွေ့ပါတယ်။ နမူနာက XePadauk.tex ပါ။
Myanmar MN အတွက် နမူနာက XeMyanmarMN.tex ပါ။ Myanmar3 ကိုစမ်းကြည့်တာတော့ လောလောဆယ် ပလက်ဖောင်း အားလုံးမှာ မရသေး ပါဘူး။

Updated post: မြန်မာဘာသာ အတွက် LaTeX Report ပုံစံ

Friday, June 8, 2012

LaTeX Bibliography with TeXstudio

TeXstudio (အရင်နာမည် TexMakerX ၊ http://texstudio.sourceforge.net/) က LaTeX နဲ့စာရေးဖို့အတွက် ဆော့ဖ်ဝဲ အယ်ဒီတာ တစ်ခုပါ။ ပုံမှန်အားဖြင့် တော့ ပေပါ တစ်စောင် ယူလိုက်ပြီဆို သူ့အတွက် citation ကိုလဲ အဲဒီမှာပဲ BibTeX style နဲ့ အလွယ်တစ်ကူ ယူလို့ရပါတယ်။ ပြီးရင် အဲဒီရလာတဲ့ BibTeX entry ကို BibTeX database ဖိုင်တစ်ခု ဖန်တီးပြီး သိမ်းထားလို့ရပါတယ်။ BibTeX database ဖိုင်ရဲ့ extension က .bib ပါ။ TeXstudio မှာ ကိုယ့်ဟာကို BibTeX entry တစ်ခုဖန်တီးမယ် ဆိုရင်လဲ လွယ်ပါတယ်။ ဥပမာ Ref1.bib ဆိုပြီး BibTeX database ဖိုင်တစ်ခုကို ဖန်တီးပြီး menu က bibliography ကို ကလစ်နှိပ်ပါ။ နောက် ကိုယ့် ပေပါရဲ့ အမျိုးအစားကို နှိပ်လိုက်ရင် required fields တွေရော၊ optional fields တွေရော အကုန်ထည့်ပေးသွားမှာပါ။ အကယ်၍ optional fields တွေကို ဖယ်ချင်ရင်တော့ clean command ကိုနှိပ်ပြီး ရှင်းလို့ရပါတယ်။ အဲဒီထက်ပို လွယ်တာက တော့ BibTeX insert dialog ... ကို နှိပ်ပြီး ထည့််တာပါ။



New BibTeX entry ဆိုတဲ့ dialog လေးပေါ်လာရင် ကိုယ်လိုတာကို ရွေးထည့်ပြီး OK နှိပ်လိုက်ရုံပါပဲ။ စာရေးသူတွေ ရဲ့ နာမည် ကို ဖြည့်တဲ့ အခါ နာမည် တွေကြားမှာ and ဆိုတဲ့ စာလုံးနဲ့ ခြားပေးရပါမယ်။ အဲဒီ database ဖိုင်ကို ဖန်တီးပြီးရင် သူ့ကို ယူသုံးမယ့် TeX ဖိုင် တစ်ခုကို ဖန်တီးပါမယ်။ ဥပမာ TestBibTex.tex ဆိုပါတော့။ အဲဒီမှာ Ref1.bib ကို \bibliography{Ref1} ဆိုပြီး အောက်ကပုံအတိုင်း သုံးလို့ရပါတယ်။ ဒီနမူနာမှာတော့ အသုံးများတဲ့ ieeetr ဆိုတဲ့ စတိုင်ကို သုံးထားတဲ့ အတွက် အကိုးအကားတွေဟာ သူတို့ကို ကိုးကားထားတဲ့ အစဉ်အတိုင်း နံပါတ်တပ်၊ အစဉ်အတိုင်း ပေါ်လာမှာပါ။





ပုံမှန်အားဖြင့်တော့ မှန်ကန်တဲ့ output ဖိုင်တစ်ဖိုင် ထွက်လာအောင် LaTeX ကို အကြိမ်ကြိမ် run ပေးရပါတယ်။ (LaTeX ကို run ဖို့ MiKTeX ဒါမှမဟုတ် TeX Live ဆော့ဖ်ဝဲ တစ်ခုခုကို ကွန်ပျူတာထဲမှာ ထည့်ပြီးသား ရှိရပါမယ်။) ဥပမာ pdflatex ကိုသုံးပြီး run မယ်ဆိုရင်
အဆင့် ၁။ pdflatex
အဆင့် ၂။ bibtex
အဆင့် ၃။ pdflatex
အဆင့် ၄။ pdflatex
ဆိုပြီး လေးခါ run မှ ရပါတယ်။ TeXstudio မှာတော့ အဆင်ပြေတာ တစ်ခုက Quick Build လုပ်ဖို့ 'F1' တစ်ခါနှိပ် လိုက်ရုံနဲ့ နောက်ဆုံး မှန်ကန်တဲ့ output ဖိုင် ထွက်လာတဲ့ အထိ သူ့ဟာသူ လုပ်သွားတာပါ။ အကယ်၍ စာရေးသူ-ခုနှစ် ဆိုတဲ့ ပုံစံ အကိုးအကား ကို လိုချင်ရင်တော့ \usepackage{natbib} ကို အောက်မှာ ပြထားတဲ့ အတိုင်း အလွယ်တစ်ကူ သုံးနိုင်ပါတယ်။



နမူနာ ပြထားတဲ့ ဖိုင်တွေကို အောက်က လင့်ခ် တွေမှာ ဒေါင်းလုပ် လုပ်ယူနိုင်ပါတယ်။
TestBibTex.tex
TestNatbib.tex
Ref1.bib
အကိုးအကား တွေကို စီမံဖို့ တော့ ဆော့ဖ်ဝဲသုံးတာ ပိုအဆင်ပြေပြီး JabRef Reference Manager ကို သဘောကျပါတယ်။
အကိုးအကား။ http://en.wikibooks.org/wiki/LaTeX/Bibliography_Management

Wednesday, March 7, 2012

Skeleton of Image Region

ပုံရိပ် တစ်ခုရဲ့ တည်ဆောက်ပုံ ပုံသဏ္ဌာန် ကို မျဉ်းကြောင်းများနဲ့ တုတ်ချောင်းပုံ လုပ်ပြီး ကိုယ်စားပြု ဖော်ပြနိုင်ပါတယ်။ အဲဒီလို ဖော်ပြဖို့အတွက် ပုံသဏ္ဌာန် တစ်ခုကို တဖြည်းဖြည်း ပိန်ပါးသွားအောင် လုပ်နည်း တစ်ခုခု ကို သုံးလို့ရပါတယ်။ ရလာတဲ့ မျဉ်းကြောင်းများနဲ့ တုတ်ချောင်းပုံ ကို အဲဒီ ပုံရဲ့ အရိုး (skeleton) လို့ ခေါ်ပါမယ်။ ဒီနည်းဟာ စာလုံးများကို စက်က သိရှိနားလည် မှတ်မိ အောင် လုပ်တဲ့ နေရာ (optical character recognition) တွေမှာ ပဏာမ အဆင့် အနေနဲ့ အသုံးကျကောင်း ကျနိုင်ပါတယ်။ အောက်ကပုံတွေမှာ နမူနာ မူရင်းပုံနဲ့ သူ့ရဲ့ အရိုးကို ဖော်ပြထားပါတယ်.
ပုံရိပ်တစ်ခု ရဲ့ အရိုးကို နည်းအမျိုးမျိုးနဲ့ ရယူနိုင်ပြီး အဲဒီ နည်းတွေထဲက လူသိများတဲ့ နည်းနှစ်နည်းက အလယ်ဝင်ရိုးပြောင်းနည်း Medial Axis Transformation (MAT) နဲ့ နှစ်ဆင့်ပါးနည်း Two Step Thinning တို့ပါ။ MAT မှာ ပုံသဏ္ဌာန် ထဲမှာ ရှိတဲ့ အစက် တစ်စက် ချင်းစီ အတွက် သူတို့ ရဲ့ အနီးဆုံး အနားသတ် ကို လိုက်ရှာပါတယ်။ အဲဒီလို အကွာအဝေးတူ အနီးဆုံး အနားသတ် တစ်ခုမက ရှိတဲ့ အစက်ကို အရိုး လို့သတ်မှတ်ပါတယ်။ MAT ကနားလည်ဖို့ လွယ်ပေမယ့် သူ့ကိုရဖို့ တွက်ချက်မှုတွေ အများကြီး လိုပါတယ်။ သူ့ကို တွက်ဖို့ အကွာအဝေးပုံစံ ပြောင်းခြင်း (distance transform) ကို အရင် လုပ်ပါတယ်။ အကွာအဝေးပုံစံ ပြောင်းတယ်ဆိုတာ ပုံသဏ္ဌာန် ထဲမှာ ရှိတဲ့ အစက် တစ်စက် ချင်းစီ ကို အနီးဆုံး အနားသတ်အထိ အကွာအဝေးနဲ့ အစားထိုးတာပါ။ ရလာတဲ့ ပုံမှာ အနားသတ်နဲ့ နီးတဲ့ အစက်က အကွာအဝေး တန်ဖိုးနည်းတော့ အလင်းအားပျော့ ပြီး၊ အနားသတ်နဲ့ ဝေးတဲ့ အစက်က အကွာအဝေးတန်ဖိုးကြီးတော့ ပိုလင်းပါမယ်။ နောက် အစက်တစ်စက် ခြင်းစီကို ဘေးတိုက် ဒါမှမဟုတ် ဒေါင်လိုက် ကပ်ရပ် အစက်တွေနဲ့ ယှဉ်ကြည့်ပြီး အလယ်မှာ အမြင့်ဆုံး ဖြစ်နေတဲ့ အစက်တွေကို အရိုးလို့ သတ်မှတ်ပါမယ်။ နမူနာ MATLAB ကုဒ် ကို ဒီမှာ (MATeg.m) ကြည့်နိုင်ပါတယ်။ မူရင်း ပုံသဏ္ဌာန်ရယ်၊ အကွာအဝေးပုံစံ ရယ်၊ ရလာတဲ့ အရိုးရယ် ကို အောက်က ပုံတွေမှာ ကြည့်နိုင်ပါတယ်။


နှစ်ဆင့်ပါးနည်း ကတော့ MAT နဲ့ယှဉ်ရင် ပိုမြန်၊ ပိုထိရောက်ပါတယ်။ နှစ်ဆင့်ပါးနည်း က ပုံသဏ္ဌာန် တစ်ခုရဲ့ အနားတွေကို ထပ်တလဲလဲ ဖျက်သွားတာပါ။ အဲဒီလို ဖျက်တဲ့ အခါမှာ အဆုံးမှတ်တွေကို မဖျက်ပါဘူး။ တနေရာနဲ့ တနေရာ ဆက်စပ်နေတဲ့ အမှတ်တွေကို မဖျက်ပါဘူး။ ပုံသဏ္ဌာန် ထဲမှာ ရှိတဲ့ အစက် တွေကို တန်ဖိုး တစ်ရှိတယ်လို့ မှတ်ယူ မှာ ဖြစ်ပြီး နောက်ခံ အစက်တွေကို တော့ တန်ဖိုး သုည ရှိတယ် လို့ မှတ်ယူပါမယ်။ ဒီနည်းမှာ အဆင့် နှစ်ဆင့် ကို ပုံပေါ်မှာ အထပ်ထပ် အဖန်ဖန် နောက်ဆုံး မပြောင်းလဲတဲ့ အရိုး ရတဲ့အထိ သုံးသွားမှာပါ။
အပေါ်ပုံမှာ အလယ် အစက်ရဲ့ ကပ်ရပ် အစက်တွေကို အခေါ်အဝေါ်သတ်မှတ်ပုံကို ပြထားပါတယ်။ ပထမ အဆင့်မှာ အစက် p1 ကို အောက်က အချက်လေးချက်နဲ့ ကိုက်ညီရင် ဖျက်ပစ် ပါမယ်။ (a) 2 ≤ N(p1) ≤ 6 (b) T(p1) = 1 (c) p2.p4.p6 = 0 (d) p4.p6.p8 = 0 အဲဒီမှာ N(p1) ဆိုတာက p1 နဲ့ ကပ်ရပ် အစက်တွေထဲက သုညမဟုတ်တဲ့ အစက် အရေအတွက်ဖြစ်ပြီး၊ T(p1) ဆိုတာက p2, p3, ... , p8, p9, p2 ဆိုတဲ့ အစီအစဉ်အတိုင်း ကြည့်သွားရင် ၀ ကနေ ၁ ကို ပြောင်းသွားတဲ့ အရေ အတွက်ပါ။ ဒုတိယ အဆင့်မှာ (a) နဲ့ (b) ကအတူတူပါပဲ။ ဒါပေမယ့် (c) နဲ့ (d) ကတော့ အောက်မှာ ပြထားတဲ့ အတိုင်း ပြောင်းသွားပါတယ်။ (c') p2.p4.p8= 0 (d') p2.p6.p8= 0 ပထမ အဆင့် ကို ပုံသဏ္ဌာန်တစ်ခုရဲ့ အနားသတ်ပေါ်မှာရှိတဲ့ အစက်တိုင်းအတွက် စဉ်းစားပါမယ်။ အချက် (a) ကနေ (d) ထဲက တစ်ချက်ချက် မကိုက်တာနဲ့ အဲဒီ အစက်ကို မဖျက်တော့ ပါဘူး။ အချက်အားလုံး ကိုက်ညီရင် တော့ ဖျက်ဖို့ အတွက် မှတ်ထားလိုက် ပါမယ်။ ဒါပေမယ့် အဲဒီ အစက် ကို အနားသတ် ပေါ်မှာရှိတဲ့ အစက် အားလုံးကို စဉ်းစားလို့ မပြီးမချင်း တကယ် မဖျက်သေးပါဘူး။ အဲဒီလို နောက်ကျမှ ဖျက်တဲ့ အတွက် တစ်ခြား အစက် တွေကို စဉ်းစား နေတဲ့ အချိန်မှာ ပုံသဏ္ဌာန် ပြောင်းသွားတာကို ကာကွယ်နိုင်ပါတယ်။ ပထမ အဆင့် ကို အနားသတ်ပေါ်မှာရှိတဲ့ အစက် အားလုံးကို စဉ်းစာပြီးပြီဆိုတာနဲ့ ဖျက်ဖို့မှတ်ထားတဲ့ အစက် အားလုံးကို ဖျက်လိုက်ပါမယ်။ (အစက်ရဲ့ တန်ဖိုးကို သုည ပြောင်းလိုက်တာပါ။) ရလာတဲ့ ရလဒ် ပေါ်မှာ ဒုတိယ အဆင့် ကိုလဲ ပထမအဆင့် အတိုင်း ထပ်သုံးပါမယ်။ ဒီ အဆင့်နှစ်ဆင့်ကို အကြိမ်ကြိမ် အဖန်ဖန် ပြန်သုံးမှာ ဖြစ်ပြီး အကြိမ်တစ်ကြိမ်တိုင်းမှာ အောက်က လုပ်ငန်းလေးခုကို လုပ်ပါတယ်။ (၁) ပထမ အဆင့်ကို သုံးပြီး ဖျက်ရမယ့် အစက်တွေကို မှတ်ပါတယ်။ (၂) မှတ်ထားတဲ့ အစက်တွေကို ဖျက်ပါတယ်။ (၃) ဒုတိယ အဆင့်ကို သုံးပြီး ဖျက်ရမယ့် အစက်တွေကို မှတ်ပါတယ်။ (၄) မှတ်ထားတဲ့ အစက်တွေကို ဖျက်ပါတယ်။ ဒီအဆင့်တွေကို သုံးပြီး ပါးပါးသွားရင်း နောက်ဆုံး ဖျက်စရာ အစက် မကျန်တော့ဘူးဆိုရင် ရပ်လိုက်ပါမယ်။ ရလာတဲ့ ပုံက အရိုးဖြစ်ပါတယ်။ အချက် (c) p2.p4.p6 = 0 နဲ့ (d) p4.p6.p8 = 0 ကို တစ်ခါထဲ ပေါင်းပြီး (p4 = 0 or p6= 0) or (p2=0 and p8=0) လို့ တန်းစစ်လို့လဲရပါတယ်။ အဲဒီလိုပဲ (c') နဲ့ (d') ကိုလဲ (p2=0 or p8=0) or (p4=0 and p6=0) လို့ ပေါင်းစစ်လို့ ရပါတယ်။ Two Step Thinning အတွက်နမူနာ MATLAB ကုဒ်ကို ဒီမှာ (TSTeg.m) တွေ့နိုင်ပါတယ်။
ရှေ့မှာ ဖော်ပြခဲ့တဲ့ ကုဒ်တွေက နည်းတွေကိုနားလည်ဖို့ ရယ်၊ တစ်ခြား ပရိုဂရမ် ဘာသာတွေနဲ့ ပြန်ရေးဖို့ရယ် အတွက်တော့ အထောက် အကူ ဖြစ်မယ်ထင်ပါတယ်။ တကယ်တော့ MATLAB မှာ bwmorph ဆိုတဲ့ ဖန်ရှင်ကို သုံးလိုက်တာနဲ့ အရိုးကို တန်းရနိုင်ပါတယ်။ sk=bwmorph(bwImg,'skel',Inf); အဲဒီလိုခိုင်းလိုက်ရင် ထွက်လာတဲ့ ရလဒ် ကို အောက်မှာ ပြထားပါတယ်။
Reference: Rafael C. Gonzalez, Richard E. Woods, Steven L. Eddins, "Digital Image Processing Using MATLAB", Second Edition, Mc Graw Hill (Asia), 2011.

Friday, December 30, 2011

Testing fsolve and anonymous function

တစ်ခါက coefficient တွေ ပြောင်းလဲ နေတဲ့ equation တွေကို ဖြေရှင်းဖို့ လို လာပါတယ်။ ဒါနဲ့ MatLab ဖန်ရှင်တစ်ခု ဖြစ်တဲ့ fsolve ရယ်၊ function handle နဲ့ anonymous function တွေကို သုံးပြီး စမ်းကြည့်ထားတာပါ။
s=[3 7 11];
d=[1 3 5];
%ans= (2,1), (5,2), (8,3)
for i=1:3
x0 = [-5; -5]; % Make a starting guess at the solution
myfun =@(x) [x(1) + x(2) - s(i);
x(1) - x(2) - d(i)];
[x,fval] = fsolve(myfun,x0)  % Call 
end

Friday, December 16, 2011

Hand, Foot and Mouth Disease (HFMD)

အရင် တပါတ် လောက်က သမီးရဲ့ လက် နဲ့ ခြေ မှာ မိတ်လို အဖု နဲ့ အနီပြင် တွေ တွေ့လို့ ဆရာဝန် သွားပြတော့ HFMD ဒါမှမဟုတ် တုပ်ကွေး ကြောင့် ဖြစ်နိုင်တယ်လို့ ပြောပါတယ်။ နောက်တော့ သမီး ဖြစ်တာ တုပ်ကွေးပါ။ HFMD ကိုတော့ မကြားဘူးလို့ KK hospital က လက်ကမ်းစာရွက် မှာ တွေ့တာလေးကို ဖတ် ပြီး ဒီမှာ ပြန်ရေးထားပါတယ်။

မေး။ Hand, Foot and Mouth Diease (HFMD) ဆိုတာ ဘာလဲ?
ဖြေ။ အန်တရိုဗိုင်းရပ်စ် (Enterovirus) လို့ခေါ်တဲ့ ဗိုင်းရပ်စ် ပိုးတွေကြောင့် ဖြစ်တဲ့ ကူးစက်ရောဂါတစ်မျိုးပါ။ အသက် အရွယ် မရွေး ဖြစ်နိုင်ပြီး အထူးသဖြင့် မူကြို အရွယ် ကလေးတွေမှာ ဖြစ်တတ်ပါတယ်။ ဒီ ရောဂါဟာ ရှားပါးတဲ့ ရောဂါ အသစ် မဟုတ် ပါဘူး။ ရှေးကတည်းက ရှိခဲ့ပြီး စင်ကာပူ မှာ တွေ့ရတတ်တဲ့ ရောဂါတစ်မျိုးပါ။

မေး။ HFMD ဖြစ် မဖြစ် ဘယ်လို သိနိုင် မလဲ?
ဖြေ။ HFMD ဖြစ် တဲ့ ကလေးမှာ မိတ်လို၊ အရေကြည်ဖုလို၊ အနီကွက်တွေ လက်၊ခြေ နဲ့ တင်ပါး မှာ ထလာပါမယ်။ ပါးစပ်ထဲမှာ အနာပေါက် မယ်။ ဖျားပါ မယ်။ ဒါ့အပြင် လည်ချောင်းနာတာ၊ နှာရည်ယိုတာ၊ အန်တာ၊ ဝမ်းလျှောတာ နဲ့ မောပန်းတာတွေ လည်း ဖြစ်နိုင်ပါတယ်။ ကလေးကို ဆေးခန်း၊ မိသားစု ဆရာဝန် တို့နဲ့ ပြနိုင်ပါတယ်။ ဆေးရုံ အရေးပေါ် ဌာန ကို သွားဖို့ မလိုအပ်ပါ။

မေး။ ကလေးကို HFMD ဘယ်လို ကူးတာလဲ?
ဖြေ။ နှာရည်၊ တံတွေး၊ ဝမ်း၊ အရည်ကြည်ဖုက အရည် များကို တိုက်ရိုက် ထိခြင်းအား ဖြင့် အလွယ်တကူ ကူးနိုင်ပါတယ်။

မေး။ ဒီရောဂါက ပြင်းထန်လား?
ဖြေ။ ရောဂါဟာ သာမန်အားဖြင့် မပြင်းထန်ပါဘူး။ ကလေး အများစုဟာ တစ်ပါတ် လောက်ကြာရင် သက်သာ သွားပါတယ်။ ရှားရှားပါးပါး မှသာ တွေ့ရခဲတဲ့ ဗိုင်းရပ် ဗီဇကွဲတွေမှာ ပဲ ဦးနှောက် နဲ့ နှလုံး ရောင်တာ အစရှိတဲ့ နောက်ဆက်တွဲ ရောဂါ တွေ ဖြစ်တတ် ပါတယ်။

မေး။ HFMD က ပြုစုကုသ နိုင် ပါသလား?
ဖြေ။ တိကျတဲ့ ပြုစုကုသ မှု သတ်သတ်မှတ်မှတ် မရှိပါဘူး။ ရောဂါ လက္ခဏာ က များသော အားဖြင့် မပြင်းထန်ပဲ ကလေးရဲ့ ကိုယ်ခံအားစနစ်က ဗိုင်းရပ်စ် တွေကို တိုက်ထုတ် တဲ့အခါ များသောအားဖြင့် ပြန်ကောင်း သွားကြပါတယ်။ ဆရာဝန်က အဖျား မကြီးအောင် ဆေး ပေးပါ မယ်။ ကလေးကို တတ်နိုင် သမျှ အရည် များများ တိုက် သင့် ပါတယ်။ အစားအစာ ကို မျိုချရတာ နာကျင် နိုင်တာကြောင့် ကလေးဟာ အစာ စားချင်စိတ် နည်းနေနိုင်ပါတယ်။ ဒါပေမယ့် ရေဓာတ်ခန်းခြောက် ခြင်း မဖြစ်အောင် ကလေးက လုံလောက်တဲ့ အရည် သောက်ဖို့ သေချာအောင် ဂရုစိုက်ပေးပါ။ ကလေးကို သစ်သီးရေ၊ ထမင်းရည်၊ ဘာလီရည် အစရှိတဲ့ အရည်တစ်မျိုးမျိုး ကို နည်းနည်းချင်း (၁၀ ကနေ ၃၀ မီလီလီတာ လောက်) ကို နာရီဝက်ခြား တစ်ခါလောက် တစ်နေ့လုံး တိုက်ကျွေး ပေးပါ။ ဒါက ဗိုင်းရပ်စ် ကြောင့် ဖြစ်ပြီး ဘက်တီးရီးယား ကြောင့် ဖြစ်တာ မဟုတ်တဲ့ အတွက် အန်တီဗိုင်အိုတစ် (Antibiotics) တွေက ထိရောက်ထက်မြက်မှု မရှိပါဘူး။

မေး။ အန်တရိုဗိုင်းရပ်စ် (Enterovirus) တစ်ခါဖြစ်ဘူးရင် ဒီရောဂါကိုပြီးတဲ့ ခံနိုင်ရည်ရှိသွားပြီလား?
ဖြေ။ အဲဒီဖြစ်တဲ့ ဗိုင်းရပ်စ် အတွက်တော့ သီးသန့် ခံနိုင်ရည် ရှိသွားပါတယ်။ ဒါပေမယ့် အဲဒီ အန်တရိုဗိုင်းရပ်စ် (Enterovirus) အုပ်စု ထဲက ပဲ မတူတဲ့ ဗိုင်းရပ် ဗီဇကွဲ တွေကနေ ထပ်ဖြစ်ကောင်း ဖြစ်နိုင် ပါတယ်။

မေး။ ဒီရောဂါ မပြန့် ပွားအောင် ဘာလုပ်လို့ရလဲ?
ဖြေ။ ရောဂါဖြစ်နေတဲ့ ကလေးဟာ မပျောက်မချင်း ကလေးထိန်းကျောင်း၊ ကျောင်း၊ လူထူထပ်တဲ့ နေရာတွေကို မသွား ရပါဘူး။ တကိုယ်ရည် သန့်ရှင်းမှု ကို ဂရုစိုက်သင့်ပါတယ်။ ရောဂါရှိတဲ့ ကလေးကို ထိပြီးတဲ့အခါ၊ ကလေး ခါးတောင်းကျိုက်ကို လဲပေး ပြီးတဲ့အခါ၊ နဲ့ အစားအစာ များကို မကိုင်ခင်မှာ လက်ဆေးပါ။ ရောဂါဖြစ်နေတဲ့ ကလေး ကိုင်ထားတဲ့ ကစား စရာတွေ၊ စာအုပ်တွေ၊ ပန်းကန်ခွက်ယောက်တွေ၊ ပဝါ၊ အဝတ်အစားနဲ့ အခြား အသုံးအဆောင်များကို အခြား ကလေးများ မထိစေရပါဘူး။

မေး။ HFMD ဖြစ်နေတဲ့ ကလေးကို ဘယ်လို အချိန်မျိုးမှာ ဆေးရုံ အရေးပေါ် ဌာန ကို ခေါ်သွားသင့် သလဲ?
ဖြေ။ HFMD ဖြစ် တဲ့ ကလေး အများစု က အဖျားရှိပေမယ့် နေကောင်း တက်ကြွ ကြပါတယ်။ အများစုဟာ ဆေးခန်း၊ မိသားစု ဆရာဝန် တို့နဲ့တင် လုံလောက် အဆင်ပြေပါတယ်။ ဒါပေမယ့် အောက်ပါ ပြဿနာ များ ဖြစ်ပေါ်လာရင်တော့ ဆေးရုံ အရေးပေါ် ဌာန ကို ခေါ်သွားသင့် ပါတယ်။
၁။ ကလေးက အရည် သောက်တာ အရမ်းနည်းနေမယ်၊ မျိုမချ နိုင်ဘူး၊ တောက်လျှောက် အန်နေမယ် ဆိုရင်။
၂။ ကလေးက လျှာက ခြောက်နေမယ်၊ ဆီးသွားတာ နည်းနေတယ် (ရေဓာတ်ခန်းခြောက်ခြင်း) ဆိုရင်။
၃။ ကလေးက နုံးနေမယ်၊ ငိုက်နေမယ်၊ စိတ်တို စိတ်ဆိုးနေမယ်၊ မနားတမ်း ငိုနေမယ်၊ စိတ်ရှုပ်ထွေး စိတ်လွတ် နေမယ် ဆိုရင်။
၄။ တက် မယ်ဆိုရင်။
၅။ အသက်ရှုရ ခက်ခဲနေတယ် ဆိုရင်။
၆။ ကလေးက ဖြူဖပ်ဖြူရော်၊ ဖျော့တော့၊ ပြာနှမ်း လာတယ်ဆိုရင်။
၇။ ကလေးက ခေါင်းကိုက်တာ၊ ခေါင်းမူးတာ၊ အုန်းလွဲတာ တွေ ရှိတယ်ဆိုရင်။

Geometric Template Matching in LabVIEW

NI ရဲ့ IMAQ Vision Concepts Manual ထဲမှာ geometric template matching ကို အောက်ပါ အတိုင်း ဖော်ပြထားပါတယ်။ Geometric matching က ကင်မရာ က ဖမ်းယူ ရရှိတဲ့ ပုံမှာ ကိုယ်ရှာ ဖို့ သတ်မှတ်ထားတဲ့ အရာ ဘယ်နားမှာ ရှိနေလဲ ဆိုတာ ရှာပေး ပေး ပါတယ်။ Geometric matching က ဘယ်လို ပုံသဏ္ဍာန် ဆိုတာ သတ်မှတ်ထားတဲ့ အချက်အလက် ပေါ် မူတည်ပြီး ပုံစံပြား ကို ရှာပါတယ်။ Geometric matching ကို သုံးဖို့ အတွက် ရှာလိုတဲ့ ပစ္စည်း ကို ကိုယ်စား ပြုတဲ့ ပုံစံပြား တစ်ခုကို ဖန်တီးရ ပါတယ်။ စက်ရဲ့ အမြင်အနေနဲ့ အသုံးချ တဲ့ အခါ ပုံရိပ် တစ်ခု ချင်းစီမှာ ပုံစံပြား နဲ့ ကိုက်ညီမှု ရှိ တဲ့ နေရာတွေမှာ ဘယ်လောက်ထိ ကိုက်ညီမှု ရှိလဲ ဆိုတာ အမှတ်တွေ ပေးပါတယ်။ Geometric matching က အလင်းအမှောင် ပြောင်းလဲခြင်း၊ ပုံဝါးနေခြင်း၊ ပုံရိပ် မကြည်လင်ခြင်း၊ တဝက်တပြက် ဖုံးကွယ်နေခြင်း၊ အနေအထား နဲ့ အရွယ်အစား မတူခြင်း တွေ ရှိနေရင် တောင် ရှာ လိုတဲ့ ပုံစံပြား ရှိတဲ့ နေရာတွေ ကို ရှာပေးနိုင်ပါတယ်။ LabVIEW ထဲက IMAQ Find CoordSys (Pattern) 2 အစရှိတဲ့ VI တွေက ပုံစံပြား ကို ရှာဖို့ သုံးနိုင်ပါတယ်။ ပုံစံပြား ကို အောက်မှာ ဖော်ပြထားတဲ့ အဆင့်တွေ အတိုင်း ဖန်တီး နိုင်ပါတယ်။
Template Editor ကို Start -> All Programs -> National Instruments -> Vision -> Template Editor မှာဖွင့်ပါ။ File menu->New Template... ကိုနှိပ်ပါ။ Geometric Matching Template (Edge Based) ကိုရွေးပြီး ဖန်တီးမယ့် ပုံစံပြား ပါတဲ့ ပုံရိပ် ကို သတ်မှတ်ပေးပါ။ Select Template Region ဆိုတဲ့ tab မှာ ပုံစံပြား ဖန်တီးမယ့် နေရာကို သတ်မှတ်ပါ။ ဥပမာ အားဖြင့် (200,300) ကနေ (232,332) ထိ mouse ကို ဖိဆွဲ ပြီး သတ်မှတ်နိုင်ပါတယ်။ ပြီးနောက် မှတ်ထားတဲ့ နေရာကို ကိုယ်လိုချင်တဲ့ နေရာ ရောက်အောင် ပြန်ရွေ့နိုင်ပါတယ်။ Define curves ဆိုတဲ့ tab မှာ ပုံစံပြား ရဲ့ အနားသတ် ပုံစံနဲ့ ပတ်သက် တဲ့ အချက်တွေ ကို သတ်မှတ်ပါ။ ဥပမာ အားဖြင့် Extraction mode ကို normal၊ Edge Threshold ကို 32၊ Edge Filter size ကို Fine၊ Minimum Length ကို 5၊ Row Search Step Size ကို 1 နဲ့ Column Search Step size ကို 1 အစရှိသဖြင့် သတ်မှတ် နိုင်ပါတယ်။ Customize Scoring နဲ့ Specify Match Options tab တွေကိုတော့ နဂို အတိုင်း ထားနိုင်ပါတယ်။ File -> Save Template... ကိုနှိပ်ပြီး ပုံစံပြား ကို သိမ်းပါ။
နမူနာ အနေနဲ့ ဖန်တီးထားတဲ့ VI တွေကို

Geometric Template Matching on GitHub

မှာ ကြည့်နိုင်ပါတယ်။ VI အဝင် တွေ အတွက် သတ်မှတ်ခြင်း တွေကို အောက်မှာ ပြထားပါတယ်။

Saturday, August 13, 2011

Troubleshooting Daikin Aircon

Daikin(3MKD58DVM) inverter multi-split (R-22) aircon ကိုသုံးနေတာ တစ်နှစ် နှစ်နှစ် လောက်တော့ ရှိပြီ။ ပြီးခဲ့တဲ့ လကမှ indoor unit (FTKD25DVM) တစ်ခုက အလုပ် မလုပ် တော့ပဲ ဖွင့်လိုက်ရင် စက္ကန့်ပိုင်း လေးပဲ ထလုပ်ပြီး ပြန်ပြန် ပိတ်ပိတ် သွားတယ်။ နောက်တော့ LED indicator က မှိတ်တုပ် မှိတ်တုပ် ပဲ ပြနေတယ်။ အင်တာနက် ပေါ် ရှာဖတ် ကြည့်မှ ARC433B47 ရီမု ကွန်ထရိုး ကိုသုံးပြီး စစ်ကြည့်ဖို့ နည်းလမ်းတွေ တွေ့ တာနဲ့ ပြန်ပြီး ထုတ်နုတ် ထားလိုက်ပါတယ်။

Check Method 1

၁။ Timer cancel ခလုတ်ကို ၅ စက္ကန့် လောက် ဖိထား မယ်ဆိုရင် အပူချိန် ပြတဲ့နေရာ မှာ ၀၀ လို့ ပေါ်လာပါလိမ့်မယ်။


၂။ Timer cancel ခလုတ်ကို နှိပ်ရင် အသံတို တစ်ချက် ဒါမှမဟုတ် အသံတို နှစ်ချက် ကြားရပါလိမ့်မယ်။ အသံရှည် မြည်သံ ကြားရတဲ့ထိ ထပ်ခါ တလဲလဲနှိပ်ပါ။ ပြထားတဲ့ နံပါတ် တွေက ၀၀ ကစပြီး အောက်ပါ အစီအစဉ် အတိုင်း ပြောင်းသွား ပါလိမ့်မယ်။


၃။ အသံရှည် မြည်သံ ကြားရတဲ့ အခါ ပြနေတဲ့ နံပါတ် ကerror code ဖြစ်ပြီး ဖြစ်နိုင်တဲ့ ပြဿနာ အကြောင်းကို ဖော်ပြထားတဲ့ ဇယားကို အောက်မှာ တွေ့နိုင်ပါတယ်။

၄။ စစ်ဆေး ပြီးတဲ့ အခါ ပုံမှန် အခြေအနေ normal mode ကိုပြန်ရောက်အောင် timer cancel ခလုတ် ကို ၅ စက္ကန့် လောက် ဖိထားနိုင်ပါတယ်။ ဘာမှ မလုပ်ပဲထားရင်လဲ စက္ကန့် ၆၀ လောက် ကြာတဲ့ အခါ ရီမု ကွန်ထရိုးကသူ့ဟာသူ ပုံမှန် အတိုင်း ပြန်ဖြစ်သွားမှာပါ။

Check Method 2

၁။ TEMP ခလုတ် ရဲ့ အလယ်နဲ့၊ MODE ခလုတ်ကို ပြိုင်တူဖိလိုက်ပါ။ ပြနေတဲ့ နံပါတ် ရဲ့ ဘယ်ဘက် ဂဏန်း က မှိတ်တုပ် မှိတ်တုပ် ဖြစ်သွား ပါလိမ့်မယ်။


၂။ TEMP ခလုတ်ရဲ့ အပေါ် ဒါမှမဟုတ် အောက်ကို နှိပ်မယ် ဆိုရင် ဂဏန်း က ပြောင်းသွားပြီး အသံမြည်တာ ကြားရမှာပါ။

၃။ အသံကို အောက်က အတိုင်းစစ်နိုင်ပါတယ်။
အသံတို တစ်ချက်။ ။ ဘယ်ဘက် ဂဏန်းက error code မဟုတ်သေးပါဘူး။
အသံတို နှစ်ချက်။ ။ ဘယ်ဘက် ဂဏန်းက တော့ ဟုတ်သွားပြီ။ ဒါပေမယ့် ညာဖက် ဂဏန်းက error code မဟုတ်သေးပါဘူး။
အသံရှည် တစ်ချက်။ ။ ဂဏန်းနှစ်ခုလုံး ဟုတ်သွားပြီ။ ပြနေတဲ့ နံပါတ်က error code ဖြစ်ပါတယ်။


၄။ ဘယ်ဘက် ဂဏန်း ရပြီးတဲ့ အခါ MODE ခလုတ်ကို နှိပ်ပါ။ ညာဖက် ဂဏန်းက မှိတ်တုပ် မှိတ်တုပ် ဖြစ်သွား ပါလိမ့်မယ်။

၅။ TEMP ခလုတ်ရဲ့ အပေါ် ဒါမှမဟုတ် အောက်ကို နှိပ်မယ် ဆိုရင် ဂဏန်း က ပြောင်းသွားပြီး အသံမြည်တာ ကြားရမှာပါ။

၆။ အသံကို အောက်က အတိုင်းစစ်နိုင်ပါတယ်။
အသံတို တစ်ချက်။ ။ ဘယ်ဘက် ဂဏန်းက error code မဟုတ်သေးပါဘူး။
အသံတို နှစ်ချက်။ ။ ဘယ်ဘက် ဂဏန်းက ဟုတ်တယ်။ ဒါပေမယ့် ညာဖက် ဂဏန်းက error code မဟုတ်သေးပါဘူး။
အသံရှည် တစ်ချက်။ ။ ဂဏန်းနှစ်ခုလုံး ဟုတ်သွားပြီ။ ပြနေတဲ့ နံပါတ်က error code ဖြစ်ပါတယ်။


ရ။ အသံရှည် မြည်သံ ကြားရတဲ့ အခါ ပြနေတဲ့ နံပါတ် က error code ဖြစ်ပြီး၊ ဖြစ်နိုင်တဲ့ ပြဿနာ အကြောင်းကို ဖော်ပြထားတဲ့ ဇယားကို အောက်မှာ တွေ့နိုင်ပါတယ်။

၈။ စစ်ဆေး ပြီးတဲ့ အခါ diagnosis mode ကနေ ထွက်ဖို့ MODE ခလုတ် ကို နှိပ်ပါ။

၉။ ပုံမှန် အခြေအနေ normal mode ကိုပြန်ရောက်အောင် ON/OFF ခလုတ် ကို နှစ်ခါ နှိပ်ပါ။ ဘာမှ မလုပ်ပဲထားရင်လဲ စက္ကန့် ၆၀ လောက် ကြာတဲ့ အခါ ရီမု ကွန်ထရိုးကသူ့ဟာသူ ပုံမှန် အတိုင်း ပြန်ဖြစ်သွားမှာပါ။

Error Codes and Description of Fault

System

  • 00 ပုံမှန်
  • U0 refrigerant ဂတ်စ် အရည် နည်းနေပြီ
  • U2 ဗို့အား မမှန်။ မီးအား နည်း/များ နေပြီ
  • U4 အပြင်ယူနစ် နဲ့ အတွင်း ယူနစ် ကြား ဆက်သွယ်တဲ့ Signal ကြိုး ပြဿနာ
  • U7 အပြင်ယူနစ် ဆားကစ်ပြား ဆက်သွယ်ရေး Signal ပြဿနာ
  • UA အပြင်ယူနစ် နဲ့ အတွင်း ယူနစ် ကြား ဗို့အား မမှန်။
  • UH အခြား အခန်းက ရေ မခဲ အောင် လုပ်တဲ့ လုပ်ငန်း (Anti-icing function)


Indoor Unit

  • A1 အတွင်း ယူနစ် ဆားကစ်ပြား ပြဿနာ
  • A5 ခဲခြင်း၊ အပူလွန် ခြင်းမှ ကာကွယ်ခြင်း
  • A6 ပန်ကာ မော်တာနှင့် ဆက်စပ်သော ပြဿနာ
  • C4 အတွင်း အပူ ထိန်း (heat exchanger) ကိရိယာ၊ အပူချိန်တိုင်း ကိရိယာ တို့နှင့် ဆက်စပ်သော ပြဿနာ
  • C9 အခန်း အပူချိန်တိုင်း ကိရိယာ နှင့် ဆက်စပ်သော ပြဿနာ


Outdoor Unit

  • A5 ရေမခဲ အောင် လုပ်တဲ့ လုပ်ငန်း (Anti-icing function) ပြဿနာ
  • E1 အပြင် ယူနစ် ဆားကစ်ပြား ပြဿနာ
  • E5 ကွန်ပရက်စာ မနိုင်ဝန် ထမ်းခြင်း
  • E6 ကွန်ပရက်စာ ပိတ်သွားခြင်း (lock)
  • E7 DC ပန်ကာ ပိတ်သွားခြင်း (lock)
  • E8 အဝင် လျှပ်စစ် စီးဆင်းမှု လွန်ကဲခြင်း
  • EA လေးလမ်းသွား အဆို့ရှင် ပြဿနာ
  • F3 စွန့်ထုတ် ပိုက် အပူချိန်ထိန်း ပြဿနာ
  • F6 အအေးခံ ရာတွင် ဖိအား မြင့် အထိန်း ပြဿနာ
  • H0 ကွန်ပရက်စာ အာရုံခံ sensor စနစ် ပြဿနာ
  • H6 နေရာ အာရုံခံ စနစ် sensor ပြဿနာ
  • H8 CT နှင့် ဆက်စပ်သော ပြဿနာ
  • H9 အပြင် အပူချိန်တိုင်း ကိရိယာ နှင့် ဆက်စပ်သော ပြဿနာ
  • J3 စွန့်ထုတ် ပိုက် အပူချိန်တိုင်း ကိရိယာ နှင့် ဆက်စပ်သော ပြဿနာ
  • J6 အပြင် အပူ ထိန်း (heat exchanger) အပူချိန်တိုင်း ကိရိယာ နှင့် ဆက်စပ်သော ပြဿနာ
  • J8 အရည် ပိုက် အပူချိန်တိုင်း ကိရိယာ နှင့် ဆက်စပ်သော ပြဿနာ
  • J9 အငွေ့ ပိုက် အပူချိန်တိုင်း ကိရိယာ နှင့် ဆက်စပ်သော ပြဿနာ
  • L3 လျှပ်စစ် အိမ် အပူချိန် မြင့်တက်ခြင်း
  • L4 အပူဖြာ ဆူးတောင် အပူချိန် မြင့်တက်ခြင်း
  • L5 အထွက် လျှပ်စစ် စီးဆင်းမှု လွန်ကဲခြင်း
  • P4 အပူဖြာ ဆူးတောင်အပူချိန်တိုင်း ကိရိယာ နှင့် ဆက်စပ်သော ပြဿနာ


ကျွန်တော် တို့ရဲ့ ရီမု နဲ့ စစ်ကြည့်တော့ U4 လို့ ပြနေပါတယ်။ အပြင်ယူနစ် နဲ့ အတွင်း ယူနစ် ကြား ဆက်သွယ်မှု Signal ပြဿနာ ပေါ့။ အပြင်ယူနစ် ကပို့တာကို ကောင်းကောင်း မရတာ၊ ဒါမှမဟုတ် အပြင်ယူနစ် က ကောင်းကောင်း မပို့နိုင်တာပါ။ အဲဒီ လက်ကိုင်စာအုပ် မှာ ပြောထားတဲ့ ဖြစ်နိုင်တဲ့ ပြဿနာတွေက
၁။ အပြင် ယူနစ် ဆားကစ်ပြား ပြဿနာ
၂။ အတွင်း ယူနစ် ဆားကစ်ပြား ပြဿနာ
၃။ ဝါယာကြိုး ပြဿနာ
၄။ ပါဝါ ဆပ်ပလိုင်း မကောင်းတာ
၅။ အတွင်း ယူနစ် နဲ့ အပြင် ယူနစ် ဆက်ထားတဲ့ ဝါယာ နံပါတ် ၃ ပြတ်နေတာ တွေ ပါ။


အဲယားကွန်း ပြင်တဲ့သူတွေ အိမ်ကို ရောက်လာပြီး စစ်လိုက်တော့ အတွင်း ယူနစ် နဲ့ အပြင် ယူနစ် ဆက်ထားတဲ့ ဝါယာ နံပါတ် ၃ ပြတ်နေတာ ပါ။ ပြတ်တာက အပြင် ယူနစ် မှာ ဆက်ထားတဲ့ အဆက် နေရာမှာ ရေလေ တိုက်စားပြီးပြတ်တာပါ။ သူ့တို့ လှုပ်ပြလိုက်မှ နောက်ထပ် တစ်ခြား အတွင်း ယူနစ် တွေကို ဆက်ထားတဲ့ ဝါယာ နံပါတ် ၃ တွေပါ ပြတ်သွား သေးတယ်။ သူ့တို့က ဆက်ထားတဲ့ အိမ်ထဲ၊ အိမ်ပြင်က ဝါယာအားလုံး ဖြုတ်လဲရမယ်လို့ ပြောပါတယ်။ မလိုဘူး ထင်ပါတယ်။ ဝါယာ ထိပ်နားကို အခွံလေး နွာပြီး ပြန်ဆက် လိုက်တော့ OK သွားပါတယ်။ စိတ်ဝင်စားစရာ ကတော့ အတွင်း ယူနစ် တွေကို ဆက်ထားတဲ့ ဝါယာ အားလုံးမှာ နံပါတ် ၃ တွေပဲ တိုက်စား ခံရတာပါ။ ကြည့်ရတာတော့ အဲဒီ ဝါယာက DC ဗို့ကို သုံးပြီး electrode လို ဖြစ်သွားတယ် ထင်ပါတယ်။ နောက်ထပ် ပြန်ဖြစ် ဦးမယ့် ပုံပါပဲ။

၂၀၁၃ ဇွန် ၁၀ ဖြည့်စွက်ချက်

အဲကွန်းက အဲဒီကတည်းက ကောင်းသွားတာ အခုထက်ထိ ဘာပြဿနာမှ ပြန်မပေါ်သေးဘူး။ electrode ပြဿနာလည်း မဟုတ်လောက်ပြန်ဘူး။ အချို့သူတွေ ကွန်မန့်ပေးထားတာ ဒီစီ ဗို့မသုံးဘူးတဲ့။ ကွန်ထရက်တာ က အရည်အသွေးညံ့တဲ့ ဝါယာတွေ သုံးသွားလို့လည်း ဖြစ်နိုင်ပါတယ်။ ဒါကြောင့်နေမှာ သူတို့က ဝါယာအားလုံး ပြန်လဲဖို့ လိုတယ်လို့ ပြောပြီး ပြန်လဲသွားတာ။

၂၀၁၄ ဖေဖော်ဝါရီ ၁၀ ဖြည့်စွက်ချက်

ဒီပြဿနာပဲ နောက် အတွင်းယူနစ် တစ်ခု မှာ ထပ်ဖြစ်ပါတယ်။ ဒီတစ်ခါတော့ အပြင်ယူနစ်ထဲက ဆားကစ်ဘုတ် ပျက်တယ်လို့ ဆိုပါတယ်။ ပြန်လဲချင်ရင် ဒေါ်လာ ၈၀၀ လောက်ကုန်မယ် လို့ပြောပါတယ်။

Reference:
Malfunction code chart
Service Manual

Friday, June 3, 2011

Curve Fitting in Matlab

မိတ်ဆွေ တစ်ယောက်က data sample တွေက နေ curve equation ထုတ်ဖို့ လိုနေ ပါတယ်။ Excel မှာ polynomial ကို order 6 အထိပဲ ရလို့ higher order ရအောင် Matlab program ကူရေးပေး ဖို့ ဆိုလာ ပါတယ်။ ဂရပ် ပုံကို ပါ ဆွဲပေး ဖို့ program ရယ်၊ နမူနာ ဒေတာ ဖိုင်ရယ် ကို အောက်မှာ ရေးကြည့်ထား ပါတယ်။ ကျွန်တော် ကိုယ်တိုင်လဲ မကြာခဏ data fit လုပ်ဖို့ လိုတာ ကြောင့် ကျွန်တော့် အတွက်လဲ ဒါဟာ အသုံးဝင်ပါတယ်။ See d.txt and cf.m.
%--------------------------------------
%Curve fitting
%2011-Jun-03
%Programmer: Yan Naing Aye
%--------------------------------------
clc;
close all;
clear all;
%--------------------------------------
%get data from file that can be edited
load('d.txt');
X=d(:,1);
Y=d(:,2);
%--------------------------------------
%define order
N=2;
%--------------------------------------
%curve fitting
p=polyfit(X,Y,N);
%generate curve fitted data
[nr nc]=size(X);
YA=zeros(nr,1);
for i=0:N
    YA=YA+p(i+1)*X.^(N-i);
end
%--------------------------------------
%Plot Y vs X
figure;
plot(X,Y,' rd','LineWidth',2,...
                'MarkerEdgeColor','k',...
                'MarkerFaceColor','g',...
                'MarkerSize',6)
hold on;
plot(X,YA,'b','LineWidth',2,...
                'MarkerEdgeColor','k',...
                'MarkerFaceColor','g',...
                'MarkerSize',6)
hold off;            
grid on;
Title('Y vs X')
xlabel('X');
ylabel('Y');
legend('Sampled data','Fitted curve',...
       'Location','NW')
%--------------------------------------

Monte Carlo integration

Particle Filter အကြောင်း ဖတ်ကြည့်ရင်း uniform distribution နဲ့ Monte Carlo integration လုပ်တဲ့ Matlab program လေး တစ်ပုဒ် ကို အပျော် ရေးကြည့် ထားပါတယ်။ အဲဒီ equation ရယ်၊ program ရယ် ကို အောက်မှာ ကြည့်နိုင်ပါတယ်။
clc;
close all;
clear all;
%--------------------------------------
%Monte Carlo Integration
%--------------------------------------
%--------------------------------------
%limits
LowerLimit=1;
UpperLimit=3;
%--------------------------------------
%generate uniformly distributed random 
%numbers within the range
n=10000;
x=LowerLimit+(UpperLimit-LowerLimit)*rand(n,1);
%--------------------------------------
%Probability distribution function for 
%uniformly distributed random numbers
q=1/(UpperLimit-LowerLimit);
%--------------------------------------
%function to integrate
f=3.*x.*x;
i=mean(f./q)
%--------------------------------------