واحد 4 / 9

Fusion سنسور و ادغام داده های اینترنت اشیا

سود:

  • قابلیت ساخت منطق فیوژن (انتگرالگر/فیلتر کالمن) که داده های IMU، رمزگذار و سنسور فاصله را با هوش مصنوعی ترکیب می کند.
  • امکان پیکربندی و تفسیر جریان های داده اینترنت اشیا و تله متری مبتنی بر MQTT با کمک هوش مصنوعی
  • توانایی تشخیص و تصحیح نویز حسگر، کالیبراسیون و مشکلات هماهنگ سازی زمان در خروجی هوش مصنوعی

هیچ سنسوری کامل نیست ژیروسکوپ در کوتاه مدت بسیار دقیق است، اما به مرور زمان جابجا می شود. شتاب سنج در درازمدت پایدار است اما نویز ناشی از ارتعاش را دریافت می کند. رمزگذار موقعیت را دقیقا اندازه گیری می کند، اما در صورت لغزش اشتباه است. GPS در یک منطقه وسیع کار می کند اما فرکانس پایین و نویز دارد. مهندس مکاترونیک باید یک حقیقت واحد و قابل اعتماد را از این حسگرهای ناقص تولید کند. این همجوشی سنسور است. علاوه بر این، در سیستم‌های مدرن، این داده‌ها نه تنها محلی باقی می‌مانند، بلکه از طریق شبکه‌های IoT به مراکز ابر و کنترل جریان می‌یابند. هوش مصنوعی کمکی قدرتمند در راه‌اندازی الگوریتم‌های همجوشی و پیکربندی و تفسیر تله‌متری اینترنت اشیا است. در این بخش، فیلتر مکمل، منطق فیلتر کالمن و نحوه راه‌اندازی جریان اینترنت اشیاء مبتنی بر MQTT با هوش مصنوعی و تله‌های نویز و همگام‌سازی را پوشش می‌دهیم.

چرا فیوژن سنسور؟

هر سنسور دارای یک "منطقه فرکانس خوب" است. هدف از همجوشی استفاده از هر سنسور در ناحیه ای که قوی است و پشتیبانی آن با دیگری در ناحیه ای که ضعیف است می باشد.

سنسور

نقطه قوت

ضعف

ژیروسکوپ

سرعت زاویه ای کوتاه مدت، پاسخ سریع

رانش در طول زمان

شتاب سنج

مرجع شیب بلند مدت (گرانش)

لرزش / سر و صدا در هنگام حرکت

رمزگذار

موقعیت مکانی با وضوح بالا

خطای لغزش/لغزش

جی پی اس

موقعیت مطلق

فرکانس پایین، نویز، بدون فضای داخلی

تکیه بر یک سنسور، ضعف آن سنسور را وارد سیستم می کند. به عنوان مثال، فیوژن زاویه سریع اما در حال حرکت ژیروسکوپ را با مرجع کند اما ثابت شتاب سنج ترکیب می کند و زاویه ای را ایجاد می کند که هم سریع و هم بدون رانش است.

فیلتر مکمل

ساده ترین و رایج ترین فیوژن فیلتر مکمل است. این ایده بصری است: به ژیروسکوپ در فرکانس بالا (تغییر سریع)، شتاب سنج در فرکانس پایین (آهسته، پایدار) اعتماد کنید. خلاصه یک خطی:

# فیلتر مکمل: تخمین درد (پیچ) # آلفا ~ 0.98 : بیشتر به ژیروسکوپ، کمتر به شتاب سنج (درجه/ثانیه) شتاب_عج: زاویه محاسبه شده از شتاب سنج (درجه) dt : دوره نمونه برداری (ثانیه) """ alpha * gyro_pace + (1 - alpha) * acceleration_angle# منطق تأیید: ژیروسکوپ خالص (دریفت) اگر آلفا = 1، # اگر آلفا = 0 شتاب سنج خالص (نویزدار) این دو را متعادل می کند.

ضریب آلفا در اینجا تعادل را تعیین می کند: اگر نزدیک به 1 باشد، به ژیروسکوپ متکی است (خطر رانش افزایش می یابد)، اگر نزدیک به 0 باشد، به شتاب سنج متکی است (نویز افزایش می یابد). مقدار معمولی 0.95-0.98 است. هوش مصنوعی ممکن است این مقدار را پیشنهاد کند، اما آلفای صحیح به نرخ نمونه و کاراکتر نویز سیستم شما بستگی دارد. به صورت آزمایشی تنظیم شده است.

نکته: هنگام چاپ فیلتر انتگرال روی هوش مصنوعی، حتماً بپرسید dt چگونه اندازه گیری می شود. اکثر خطاها از فرض ثابت بودن dt ناشی می شوند اما در واقعیت زمان چرخه متفاوت است. dt واقعی را با millis()/timestamp اندازه گیری کنید، ثابت ها را ننویسید.

منطق فیلتر کالمن

فیلتر مکمل ساده است اما آمار نویز را مدل نمی کند. فیلتر کالمن با مدل‌سازی احتمالی نویز حسگر و عدم قطعیت فرآیند، یک برآورد بهینه (تحت فرضیات خاص) تولید می‌کند. در دو مرحله کار می کند:

  1. پیش بینی: وضعیت بعدی و عدم قطعیت آن را با مدل سیستم پیش بینی کنید.
  2. به روز رسانی: اندازه گیری جدید را در برابر قابلیت اطمینان اندازه گیری (بهره کالمن) وزن کنید و برآورد را تصحیح کنید.

Kalman gain K به طور خودکار در هر مرحله به این سوال پاسخ می دهد که "آیا به اندازه گیری بیشتر اعتماد کنم یا مدل". اگر نویز اندازه گیری زیاد باشد، K کوچکتر می شود (اطمینان در مدل)، اگر عدم قطعیت فرآیند زیاد باشد، K بزرگتر می شود (اطمینان در اندازه گیری). هوش مصنوعی به راحتی یک فیلتر کالمن یک بعدی می نویسد. اما وظیفه شما این است که کوواریانس های نویز (`Q`,`R`) را به درستی انتخاب کنید و آنها از نویز واقعی سیستم می آیند.

توجه: مقادیر Q (نویز فرآیند) و R (نویز اندازه‌گیری) داده‌شده توسط هوش مصنوعی نمونه/جایگزین هستند. اگر این موارد را از روی نویز اندازه‌گیری واقعی سیستم (مثلاً واریانس اندازه‌گیری شده زمانی که سنسور ثابت است) تعیین نکنید، فیلتر یا خیلی کند یا بیش از حد نویز خواهد بود. به کوواریانس های ارائه شده توسط هوش مصنوعی به عنوان "ارزش واقعی" اعتماد نکنید.

جریان داده اینترنت اشیا: MQTT و تله متری

داده های تمیزی که با فیوژن تولید می کنید معمولاً از طریق شبکه اینترنت اشیا به مرکز منتقل می شوند. رایج ترین پروتکل در صنعت MQTT است: مدل سبک، انتشار-اشتراک، مناسب برای پهنای باند کم. هوش مصنوعی به سرعت کد ناشر/مشترک MQTT و طرح تله متری JSON را ایجاد می کند.

import json, timeimport paho.mqtt.client as mqttclient = mqtt.Client()client.connect("broker.local", 1883, keepalive=60)def telemetry_broadcast( دما، دما، ارتعاش_rms): message = { "ts": time.time condition(), # همگام سازی_زمان() 2)، "temperature_c": گرد(دما، 1)، "vibration_rms": round(temperature_rms، 3)، "واحد": {"pain": "deg"، "temperature": "C"، "vibration": "mm/s"} } client.publish("machine/line.1/sensor), qos=1: حداقل یک بار تحویل داده شود. استفاده از qos=0 (ممکن است از بین برود) در داده های حیاتی.

دو تصمیم مهندسی در اینجا مهم است: (1) مهر زمانی (ts) هر پیام - سنسورهای مختلف در زمان‌های مختلف نمونه‌برداری می‌شوند، همگام‌سازی تنها با مهر زمانی امکان‌پذیر است. (2) سطح QoS- داده های حیاتی حداقل از qos=1 استفاده می کند (حداقل یک بار تحویل داده می شود)، qos=0 اجازه از دست دادن پیام را می دهد.

نویز، کالیبراسیون و همگام سازی

مهم نیست که چقدر همجوشی خوب باشد، سه مشکل در ورودی نتیجه را مخدوش می کند:

  • نویز: اگر داده‌های خام حسگر بدون فیلتر شدن وارد فیوژن شوند، خروجی فیوژن نیز نویزدار خواهد بود. ممکن است نیاز به پیش فیلتر (میانگین، پایین گذر) باشد.
  • کالیبراسیون: خطاهای آفست و مقیاس (مثلاً نقطه صفر شتاب سنج جابجا می شود) به طور سیستماتیک همجوشی را گمراه می کند. سنسورها باید قبل از استفاده کالیبره شوند.
  • همگام سازی زمان: برای تراز کردن سنسورهای نمونه برداری شده با نرخ های مختلف (مثلاً GPS 10 هرتز با IMU 1 کیلوهرتز) به مهر زمانی و درون یابی نیاز است.

هوش مصنوعی می تواند این مراحل را به کد اضافه کند، اما اینکه آیا هر کدام مورد نیاز است و پارامترهای آن مختص سیستم شما هستند یا خیر. در خروجی هوش مصنوعی "کالیبراسیون کجاست؟" و "آیا مُهرهای زمانی تراز هستند؟" حتما سوال بپرسید.

اعلان ضعیف / اعلان قوی

ضعیف:"محاسبه زاویه از داده های IMU."(کدام فیلتر؟ دریفت انجام می شود؟ dt چگونه است؟ نامشخص است.)STRONG:"داده های شتاب سنج و ژیروسکوپ از MPU6050 را با فیلتر انتگرال ترکیب کنید و زاویه گام را تخمین بزنید. dt را از مهر زمانی واقعی محاسبه کنید، ثابت فرض نکنید. 8. alphameter alpha را با پارامتر accul0 تنظیم کنید. tane2 به عنوان یک کلاس رایت کنید، زاویه قبلی را حفظ کنید، پیش فیلتر میانه اختیاری را برای نویز اضافه کنید.

کیف کوچک

مهندس رباتیک سلین یک فیلتر مکمل از هوش مصنوعی برای تخمین زاویه روی یک ربات متعادل کننده دو چرخ می خواهد. هوش مصنوعی یک کد تمیز می دهد، اما ربات به آرامی به یک طرف خم می شود. Selin dt را بررسی می کند: کد فرض می کند dt ثابت 0.01 ثانیه است، در حالی که زمان چرخه به دلیل تله متری بلوتوث متفاوت است. هنگامی که dt از روی مهر زمانی واقعی محاسبه می شود، دریفت کاهش می یابد اما به طور کامل ناپدید نمی شود. سپس به کالیبراسیون شتاب سنج نگاه می کند. حتی زمانی که سنسور ثابت است، یک افست 2 درجه وجود دارد. وقتی افست کالیبراسیون را حذف می‌کنم، ربات عمودی می‌ایستد. در نهایت، متوجه می شود که از qos=0 هنگام پخش تله متری از طریق MQTT استفاده می کند و آن را به qos=1 برای داده های زاویه بحرانی افزایش می دهد. هوش مصنوعی اسکلت همجوشی را در چند دقیقه تحویل داد. اما راستی‌آزمایی مهندس سه مشکل خاص سیستم را نشان داد: متغیر dt، کالیبراسیون افست و QoS.

اشتباهات رایج

  • با فرض ثابت بودن dt، در حالی که زمان چرخه متغیر است (دریفت فیوژن).
  • ادغام سنسورها بدون کالیبره کردن آنها (تغییر سیستماتیک).
  • تلاش برای تراز کردن سنسورهای با سرعت‌های مختلف بدون تعیین زمان.
  • خروج از مقدار نمونه هوش مصنوعی بدون اندازه‌گیری کوواریانس‌های Q/R Kalman از نویز واقعی.
  • امکان از دست دادن پیام با استفاده از qos=0 در داده های حیاتی اینترنت اشیا.
  • دادن داده‌های پر سر و صدا خام به فیوژن بدون پیش فیلتر کردن.

به طور خلاصه

  • فیوژن از هر سنسور در ناحیه فرکانس که قوی است استفاده می کند و ضعف آن را جبران می کند.
  • فیلتر مکمل ساده است. تعادل ژیروسکوپ-شتاب سنج را با آلفا برقرار می کند.
  • فیلتر کالمن نویز را به صورت احتمالی مدل می کند. Q/R از سیستم واقعی می آید.
  • در تله متری MQTT، مهر زمانی و QoS مناسب تصمیمات مهندسی حیاتی هستند.
  • نویز، کالیبراسیون و هماهنگ سازی زمان، کیفیت همجوشی را تعیین می کند.
  • dt از زمان واقعی اندازه گیری می شود. کالیبراسیون و QoS بدون واگذاری آن به هوش مصنوعی تأیید می شود.

وظیفه کاربردی

برای IMU (داده های ژیروسکوپ + شتاب سنج واقعی یا شبیه سازی شده) از هوش مصنوعی فیلتر انتگرال را تولید کنید و مطمئن شوید که dt از روی مهر زمانی واقعی محاسبه شده است. سپس: (1) آلفا را برای 0.90، 0.98 و 1.0 امتحان کنید و تعادل دریفت و نویز را مشاهده کنید، (2) یک افست ثابت عمدی (خطای کالیبراسیون) را به سنسور اضافه کنید و ببینید که چگونه خروجی فیوژن دریفت می شود، (3) داده ها را به طرح MQTT JSON تبدیل کنید و فیلدهای مهر زمانی و واحد را اضافه کنید. توجه داشته باشید که کدام مقدار آلفا متعادل‌ترین نتیجه را برای داده‌های شما می‌دهد و میزان آفست کالیبراسیون چقدر خروجی را مخدوش می‌کند.