اطلاعیه

Collapse
No announcement yet.

kalman filter in matlab

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    kalman filter in matlab

    با سلام و خسته نباشید و خدا قوت خدمت دوستان
    میخواستم ببینم ایا کسی با نرم افزار متلب فیلتر کالمن را پیاده سازی کرده؟من یک سنسور mpu6050 دارم که به شدت نیاز به استفاده از فیلتر کالمن دارم یعنی اطلاعات را با پورت سریال به متلب بدم و با استفاده از فیلتر کالمن نویز گیری کنم و منحنی 3 محور را نمایش بدم...میشه راهنمایی کنید ؟با تشکر

    #2
    پاسخ : kalman filter in matlab

    سلام.
    در راهنمای متلب، اطلاعات نسبتاً کاملی از فیلتر کالمن و دستور و بلوکش وجود داره و چند دمو و مثال هم در کنار این اطلاعات هست. شما شروع کن اگه مشکلی بود مطرح کن، تا جایی که بتونیم کمک می کنیم.
    لطفاً برای انجام پروژه های دانشجویی پیام خصوصی نفرستید.
    لطفاً سؤالاتی که در انجمن قابل طرح شدن هستند پیام خصوصی نکنید.
    با تمام وجود گناه کرديم اما نه نعمتش را از ما گرفت نه گناهان ما را فاش کرد اطاعتش کنيم چه مي کند؟"دکتر شريعتي"
    اگر جايي که ايستاده ايد را نمي پسنديد، عوضش کنيد شما درخت نيستيد!! "پاسكال"
    يا به اندازه ي آرزوهايت تلاش کن يا به اندازه تلاشت آرزو کن. "شکسپير"

    دیدگاه


      #3
      پاسخ : kalman filter in matlab

      سلام بله مشاهده کردم ولی اولا اشنایی کاملی با متلب ندارم و در حال یادگیری هستم .دوما نمیدونم چطور باید اطلاعات سنسور را به فیلتر کالمن بدم! اگر ممکنه یک مثال باهاش بزنید ممنون میشم

      دیدگاه


        #4
        پاسخ : kalman filter in matlab

        اقا یکی نبود یه راهنمایی یا یک مثال ساده برای ما بزنه :eek: :sad:؟؟؟؟؟کمک

        دیدگاه


          #5
          پاسخ : kalman filter in matlab

          یه مثال ساده برای یک فیلتر نوعی میزنم:
          کد:
          y[n] = y[n-1] + 0.2 x[n] + 1.3 x[n-1] + 0.45 x[n-2]
          خب این معادله مشخصه یک سیستم گسسته ست که x ورودی و y خروجیه
          مثلا x میتونه خروجی سنسور باشه
          و y مقادیر خوانده شده توسط سنسور، بعد از عبور از فیلتر
          حالا کافیه شما مقادیر x رو داشته باشی.
          مثال زیر رو ببین:
          کد:
          x[1] = 1, x[2] = 1.5, x[3] = 3, x[4] = 2.7, x[5] = 1.8, ...
          x[0]=y[0]=x[-1]=x[-2]=0
          -->
          y[1] = 0.2
          y[2] = 0.2 + 0.2*1.5 + 1.3*1 + 0.45*0
          y[3] = ...
          1: اللهم صل علي محمد و آل محمد و عجل فرجهم و ...
          2: دانش بهتره يا ثروت؟ بدون شعور هيچکدوم!
          3: دلا معاش چنان کن که گر بلغزد پاي *** فرشته‌ات به دو دست دعا نگه دارد (حافظ)

          دیدگاه


            #6
            پاسخ : kalman filter in matlab

            جناب رستمیممنون از مثال.یعنی من با پورت سریال دیتا رو بدم به این تابع؟!

            دیدگاه


              #7
              پاسخ : kalman filter in matlab

              نوشته اصلی توسط hero.seller17
              جناب رستمی ممنون از مثال.یعنی من با پورت سریال دیتا رو بدم به این تابع؟!
              ببین لینک زیر کمکت میکنه:
              فیلتر کالمن در متلب
              ...
              :read:
              1: اللهم صل علي محمد و آل محمد و عجل فرجهم و ...
              2: دانش بهتره يا ثروت؟ بدون شعور هيچکدوم!
              3: دلا معاش چنان کن که گر بلغزد پاي *** فرشته‌ات به دو دست دعا نگه دارد (حافظ)

              دیدگاه


                #8
                پاسخ : kalman filter in matlab

                نوشته اصلی توسط hero.seller17
                جناب رستمیممنون از مثال.یعنی من با پورت سریال دیتا رو بدم به این تابع؟!
                شما داده ها رو به چه صورتی دارید؟
                انجمن پرسش و پاسخ مهندسی پزشکی
                http://biomedeng.ir/forum_per/
                +++++++++++++++++++++++++++++++++
                سایت مهندسی پزشکی
                http://biomedeng.ir/

                دیدگاه


                  #9
                  پاسخ : kalman filter in matlab

                  نوشته اصلی توسط bme653
                  شما داده ها رو به چه صورتی دارید؟
                  به صورت رشته و اونها رو با کاما از هم جدا کردم....میتونم هم پشت سر هم بفرستم و توی متلب با یک حلقه FOR اونها رو دریافت کنم....

                  دیدگاه


                    #10
                    پاسخ : kalman filter in matlab

                    نوشته اصلی توسط hero.seller17
                    به صورت رشته و اونها رو با کاما از هم جدا کردم....میتونم هم پشت سر هم بفرستم و توی متلب با یک حلقه FOR اونها رو دریافت کنم....
                    خب پس مشکلتون با مثال بالا چیه؟
                    انجمن پرسش و پاسخ مهندسی پزشکی
                    http://biomedeng.ir/forum_per/
                    +++++++++++++++++++++++++++++++++
                    سایت مهندسی پزشکی
                    http://biomedeng.ir/

                    دیدگاه


                      #11
                      پاسخ : kalman filter in matlab

                      درکش نمیکنم....ببینید من توی متلب یک سرچ کردم دیدم یه تابع هست به اسم کالمن که خودش 4 تا ورودی داره که دو تاش ضرایب هستم و دو تای دیگش مربوط میشه به ضرایب سیستم!که من هیچی از این مباحث نمیدونم......بعدشم من میخوام خروجی یک سنسور شتابسنج رو کالیبره کنم ....ویدیو های زیادی از همین فیلتر کالمن و کالیبره کردن شتابسنج وجود داره...ولی من میخوام بدونم چطور این کار رو انجام دادن؟

                      دیدگاه


                        #12
                        پاسخ : kalman filter in matlab

                        یک سوال! شما میدونید فیلتر کالمن چرا استفاده میشه! و روش کارش چطوریه! دوستای دیگه که راهنمایی میکنن فرض میکنن شما از این موضوع اطلاع دارید
                        اگر این مسئله براتون حل نشده بهتره ابتدا در مورد خروجی سنسورتون و اینکه چرا از کالمن استفاده میشه و نتیجه اش چیه مطالعه کنید -
                        در یه سری کاربرد های ساده و بدون درگیر شدن با ضرایب پیچیده از فیلتر کامپلمنتری استفاده میکنن که تقریبا تا حدودی میتونه جواب بده ولی نه به خوبی کالمن!
                        فیلتر کامپلمنرتی دو جمله داره که خروجی ژیرو و شتابتون هست و با یه ضریب ساده یکی تضعیف و اون یکی تشدید میشه!
                        سنسور 6050 با فیلتر کالمن هم هست تو فروشگاه فکر میکنم اگر اماده اش نیاز باشه!

                        دیدگاه


                          #13
                          پاسخ : kalman filter in matlab

                          نوشته اصلی توسط voyager2020
                          یک سوال! شما میدونید فیلتر کالمن چرا استفاده میشه! و روش کارش چطوریه! دوستای دیگه که راهنمایی میکنن فرض میکنن شما از این موضوع اطلاع دارید
                          اگر این مسئله براتون حل نشده بهتره ابتدا در مورد خروجی سنسورتون و اینکه چرا از کالمن استفاده میشه و نتیجه اش چیه مطالعه کنید -
                          در یه سری کاربرد های ساده و بدون درگیر شدن با ضرایب پیچیده از فیلتر کامپلمنتری استفاده میکنن که تقریبا تا حدودی میتونه جواب بده ولی نه به خوبی کالمن!
                          فیلتر کامپلمنرتی دو جمله داره که خروجی ژیرو و شتابتون هست و با یه ضریب ساده یکی تضعیف و اون یکی تشدید میشه!
                          سنسور 6050 با فیلتر کالمن هم هست تو فروشگاه فکر میکنم اگر اماده اش نیاز باشه!
                          سلام با اون سنسور کار کردم میخوام با متلب هم کار کنم تا اونجایی که میدونم فیلتر کالمن observer هست...ولی تا حالا من کار عملی باهاش نکردم که بدونم به چ شکله اگر شما توی متلب با این سنسور و این فیلتر کار کردید ممنون میشم قدم ب قدم اموزش بدید اگر وقت داشته باشید

                          دیدگاه


                            #14
                            پاسخ : kalman filter in matlab

                            من خیلی وقته با متلب کار نکردم ولی پیاده کردن این فیلتر به صورت گسسته روی متلب به سختی اون فرمولها نیست!
                            ولی روش کار مشابه هست ابتدا باید روابط ریاضی شتاب و جایرو و قطب نما رو نسبت به هم بدست بیارید! و از روی اونا ماتریس های حالت رو! میدونید که برای زاویه شتاب سنج نتیجه ی دقیق تری میده ولی خروجی نویزی داره و باید با فیلتر پایین گذر تا جای ممکن خروجی بدون نویزی از شتابسنج برای محاسبه ی زاویه گرفت - در واقع خروجی شتاب سنج در فاصله های زمانی اندازه گیری طولانی تر معتبر تره!! و بر عکس خروجی جایرو در زمانهای کوتاه تر اندازه گیری! چون برای محاسبه ی زاویه باید مجموع زوایای قبلی هم جمع بشه که همین خطا رو بیشتر میکنه و برای همین جایرو در بازه های زمانی کمتر نتیجه ی معتبر تری داره! یعنی در واقع باید از خروجی جایرو برای تصحیح شتاب سنج و بالعکس استفاده کرد که علت استفاده از فیلتر کالمن هست! در واقع فیلتر کالمن یه ضریب تصحیح هست که به جمله ی ارور ضرب میشه و با جمله ی قبلی جمع میشه! حالا بدست اوردن این صریب بر اساس همون روابط بین جایرو و شتاب و قطب نماست برای هر محور! که با حل این دستگاه ماتریس ضریب تصحیح بدست میاد!




                            اضافه شده در تاریخ :
                            نمیخوام قول بیخودی بدم ولی اگر کمی شانس بیارم و امکانش بشه شاید در اینده یه کلیپی چیزی اپلود کنم
                            شما دو تا رابطه برای هر محور باید بدست بیاری(اگر قطب نما رو هم در نظر بگیری سه تا) بر اساس زمان! حالا یعنی زاویه بر حسب زمان یا سرعت زاویه ای بر حسب زمان! بقیه اش رو میتونی با همون دستور فیلتر کالمن متلب انجام بدی

                            دیدگاه


                              #15
                              پاسخ : kalman filter in matlab

                              ممنون از شما...راستش توضیح خیلی مفید و ثقیلی بود من هنوز با خیلی از چیزها توی حیطه فیلتراسیون اشنا نیستم...ولی تقریبا یه چیزایی دستم اومد که باید چی کار کنم.خبرشو میدم اینجا.....شما هم دریغ نفرمایید با تشکر :job:

                              دیدگاه

                              لطفا صبر کنید...
                              X