Simulink and m-file usage (ကိုဂ်စ္တူး အတြက္ )

မေန႔က ကၽြန္ေတာ္႔ဆီကို ေမးလ္ တစ္ေစာင္ ေရာက္လာပါတယ္။ ကိုဂ်စ္တူးဆို သူက ေအာက္ပါအတိုင္း ေရးသားေမးျမန္းလာတာ ျဖစ္ပါတယ္။
Ko Aung Win Htut (ဘလူးဗီးနစ္)
Matlab, Simulinkနဲ႕ပတ္သတ္ျပီးေမးခ်င္လို႕ပါ...
1. Simulink block ထဲမွာ.m file ကို ဘယ္လို ေဆာက္ရ မလဲ.. Attach file ထဲက ဥပမာ မ်ိဳးေျပာတာပါ.. Simulink block ထဲမွာ plot result ဆိုျပီး .m file ေဆာက္ထားပါတယ္.. Simulink block ထဲမွာ .m file ကို ဘယ္လို ေဆာက္မွန္း မသိလို႕ပါ...ရိုးရိုး file (model name, initialize ေရးမွတ္ တာမ်ိဳးေလာက္ပဲ) လုပ္တတ္ပါတယ္..
2. Simulink block (.mdl) နဲ႕ main program (.m) file ႏွစ္ခုကို ဘယ္လို run ရပါသလဲ..
အခ်ိန္ရရင္ ကြ်န္ေတာ့္ ေမးခြန္းေလးေတြကို ျပန္ေျဖေပး ေစခ်င္ပါတယ္.. ကြ်န္ေတာ့္ အတြက္ ခက္ခဲေနလို႕ပါ...
ေက်းဇူးတင္ပါတယ္...

ေအာက္က ပံုက အီးေမးလ္ နဲ႔အတူ တြဲရက္ပါလာတဲ႔ attached file ျဖစ္ပါတယ္။
Matlab, Simulink ဟာ အင္မတန္ကို က်ယ္ျပန္႔ျပီး toolboxes ေတြ block ေတြ အမ်ားၾကီး နဲ႕ အားလံုးကို ကၽြမ္းက်င္ဖို႔ ဆိုတာ အေတာ္ေလးကို မလြယ္ပါဘူး။ ကၽြန္ေတာ္႔ အေနနဲ႕လဲ သိပ္အမ်ားၾကီး မသိေသးပါဘူး။ ကၽြန္ေတာ္ လုပ္ေနတာေလာက္ပဲ ကြက္ကြက္ေလး သိတာပါ။ အခ်ိန္ရတာနဲ႔ ဒါေတြ အကုန္လံုးကုိ ေသခ်ာ ေလ႔လာမယ္လို႔ ေတးထားတာပါ။ အခုေတာ႔ ဒီေမးခြန္းေလးကို ေျဖဖို႔ ကၽြန္ေတာ္လဲ နဲနဲ ျပန္ဖတ္ျဖစ္သြားပါတယ္။

အမွန္က ကၽြန္ေတာ္႔ အေနနဲ႕ GUIDE ကိုသံုးျပီး GUI ကေန အကုန္လံုးကို လင္႔ခ္ လုပ္ျပီး ေဒတာ ထည္႔တာေရာ model လုပ္တာေရာ လုပ္ပါတယ္။ အဲဒီအေၾကာင္းကို ေနာက္မွ ေသခ်ာ ေရးမယ္ ဆံုးျဖတ္ထားပါတယ္။ ေနာက္တစ္ခု m-file ေတြကို simulink model ထဲကေန run ဖို႕ နည္းလမ္းေတြ အမ်ားၾကီး ရွိပါတယ္။ C++, Visual FORTRAN စတာေတြနဲ႔ ခ်ိတ္ဆက္ အလုပ္လုပ္တာေတြ၊ ေနာက္ model ေတြကို code ေျပာင္းျပီး dll လုပ္ျပီး တျခား ပရိုဂရမ္းမင္းေတြမွာ ယူသံုးတာေတြကို ေလ႔လာဖူးပါတယ္။ အခုေတာ႔ အလြယ္ဆံုးတစ္ခုကို ပဲ ေျပာျပလိုက္ပါတယ္ခင္ဗ်ာ။

ဒီ tutorial မွာ ကၽြန္ေတာ္ အသံုးျပဳထားတာက Matlab version 7.6.0.324 (R2008a) Feb 10,2008 ျဖစ္ပါတယ္။ တကယ္လို႔ ဒီထက္ နိမ္႔တဲ႔ version ဆိုရင္ အနည္းငယ္ ကြဲလြဲမွာ ျဖစ္ပါတယ္ခင္ဗ်ာ။

အဆင္႔ ၁။ ပံုမွာ ျပထားတဲ႔ အတိုင္း Simulink library browser ထဲက Subsystem တစ္ခုကို ဆြဲယူပါမယ္။
အဆင္႔ ၂။ အဲဒီ Subsystem ကို double click နဲ႔ ဖြင္႔ျပီး အထဲက ပံု ေတြကို ဖ်က္ပစ္လိုက္ပါ။

အဆင္႔ ၃။ ေအာက္ပါအတိုင္း ပံုစံေျပာင္းသြားပါမယ္။
အဆင္႔ ၄။ အဲဒီ ပံုမွာ ကိုယ္ေရးခ်င္တဲ႔ စာသားေျပာင္းေရးဖို႔ ေအာက္ပါအတိုင္း right click လုပ္ျပီး mask subsystem ကို ေရြးခ်ယ္ပါ။
အဆင္႔ ၅။ ေပၚလာတဲ႔ Mask editor မွာ အနီနဲ႔ ကြင္းထားတဲ႔ အတိုင္း ေရးခ်င္တဲ႔ စာသားကို dist(' ') ၾကားမွာ ေရးပါ။
အဆင္႔ ၆။ matlab code ထည္႔ဖို႔ right click လုပ္ျပီး Block Properties ကို ေရြးခ်ယ္ပါ။
အဆင္႔ ၇။ Block Properties ထဲက Callbacks tab ကိုသြားပါ။ Callback functions list ထဲက OpenFcn ကို ေရြးခ်ယ္ပါ။ ျပီးရင္ အဲဒီ ညာဘက္က windows မွာ ကိုယ္ေရးခ်င္တဲ႔ ကုဒ္ေတြ စေရးလို႔ ရပါျပီ။ ျပီးရင္ OK ေပးပါ။
မွတ္ခ်က္။ ဒီအဆင္႔မွာ ဗားရွင္းအေဟာင္းနဲ႔ အသစ္မွာ ကြာျခားခ်က္ေလးကို ေျပာျပခ်င္ပါတယ္။ တကယ္လို႔ ေအာက္က ပံုအတိုင္း ေပၚလာတယ္ဆိုရင္ code ကို တိုက္ရိုက္၀င္ေရးလို႔ မရပါဘူး။ ကို္ယ္ေရးခ်င္တာကို ဥပမာ gains.m လို႔ ေရးထားျပီး Open function ဆိုတဲ႔ ကြက္လပ္မွာ ဖိုင္နာမည္ကို ျဖည္႔ေပးရပါမယ္။ OK ေပးပါ။
အဆင္႔ ၈။ အခုဆို double click လုပ္ျပီး data initialize လုပ္ၾကည္႔ေနတာျဖစ္ပါတယ္။
အဆင္႔ ၉။ ပံုထုတ္ဖို႔ အတြက္ ေနာက္ တစ္ခု ကို အရင္ က အတိုင္းလုပ္ပါမယ္။ နာမည္ကိုေတာ႔ ေျပာင္းေပးပါမယ္။ ကုဒ္မွာ plot(a) ဆိုျပီး a ကို ပံုဆြဲခိုင္းပါမယ္။ OK ေပးပါ။
အဆင္႔ ၁၀။ double click လုပ္ရင္ ေအာက္ပါအတိုင္း ပံုဆြဲေပးပါလိမ္႔မယ္။
ေနာက္တစ္ခုက တကယ္လို႕ m-file ထဲက ေခၚျပီး သံုးခ်င္ရင္ sim('simulinkmodel_name_here') ကိုသံုးျပီး ေခၚ run လို႔ရပါတယ္။ ေဒတာ ေတြကိုေတာ႔ ဖိုင္ေတြထဲမွာ သြား save ျပီး pass လုပ္တာကို ကၽြန္ေတာ္ recommend ေပးခ်င္ပါတယ္။
ဒီေလာက္ဆိုရင္ သေဘာ ေပါက္ေလာက္ျပီလို႔ ထင္ပါတယ္။ နားမလည္တာရွိေသးရင္ အားမနာတမ္း ေမးျမန္းနိုင္ပါတယ္။ အီးေမးလ္ နဲ႔ ျဖစ္ေစ ကြန္မန္႔ ထားလို႔ ျဖစ္ေစ ေမးနိုင္ပါေၾကာင္းခင္ဗ်ား။
ဥပမာ model ဖိုင္ေလးကို ေတာ႔ ဒီက ရယူ နိုင္ပါတယ္။

Please Share This Post

Share on Facebook Plus on Google+

2 ေယာက္က ဒီလိုေျပာတယ္

ဂ်စ္တူး delete July 12, 2008 at 10:50 PM

ေက်းဇူးတင္ပါတယ္ဗ်ာ... အဆင္ေျပသြားပါျပီ..

ေက်းဇူးျပဳျပီးေတာ့ MATLAB ပရိုဂရမ္နဲ႔
ပတ္သက္ျပီး ပို႔ မ်ားမ်ားတင္ေစခ်င္ပါတယ္
ကၽြန္ေတာ္က MATLAB ေမဂ်ာ ယူထားလို႔ပါ
အခုက သင္တာေတြက သိပ္နားမလည္ဘူးျဖစ္ေနတယ္..သူတို႔ဘာသာစကားနဲ႔သင္ေနတာဆိုေတာ့ လိုက္မမွီဘူးျဖစ္ေနတယ္ ေက်းဇူးျပဳျပီး အေသးစိတ္ျဖစ္ေစ အသံုးျပဳနည္းျဖစ္ေစ ရွင္းျပေစလိုပါတယ္