সুচিপত্র:

সহজ হারমোনিক গতির পরীক্ষামূলক অধ্যয়ন: 5 টি ধাপ
সহজ হারমোনিক গতির পরীক্ষামূলক অধ্যয়ন: 5 টি ধাপ

ভিডিও: সহজ হারমোনিক গতির পরীক্ষামূলক অধ্যয়ন: 5 টি ধাপ

ভিডিও: সহজ হারমোনিক গতির পরীক্ষামূলক অধ্যয়ন: 5 টি ধাপ
ভিডিও: ✨Soul Land 2: The Peerless Tang Clan EP 01 - 20 Full Version [MULTI SUB] 2024, জুলাই
Anonim

লেখক দ্বারা আরো অনুসরণ করুন:

হাঁটা স্ট্র্যান্ডবিস্ট, জাভা/পাইথন এবং অ্যাপ নিয়ন্ত্রিত
হাঁটা স্ট্র্যান্ডবিস্ট, জাভা/পাইথন এবং অ্যাপ নিয়ন্ত্রিত
হাঁটা স্ট্র্যান্ডবিস্ট, জাভা/পাইথন এবং অ্যাপ নিয়ন্ত্রিত
হাঁটা স্ট্র্যান্ডবিস্ট, জাভা/পাইথন এবং অ্যাপ নিয়ন্ত্রিত

ক্লাসরুমে, আমরা প্রায়ই দুল পরীক্ষা, বা সহজ সুরেলা আন্দোলন পরীক্ষা করার জন্য একটি স্টপওয়াচ ব্যবহার করি। এখানে একটি চ্যালেঞ্জ, আমরা কি তার চলাচলের একটি বাস্তব গ্রাফ তৈরি করতে পারি এবং তাৎক্ষণিক কৌণিক অবস্থান এবং বেগ কী তা দেখতে পারি, এটি অনেক বেশি তথ্য এবং মজাদার।

প্রথম প্রশ্ন, আমাদের সিদ্ধান্ত নিতে হবে পেন্ডুলাম বডি একটি ওজনহীন কর্ড বা অনমনীয় ইউনিফর্ম রড। কর্ড পদ্ধতি সহজ বলে মনে হচ্ছে। একটি নির্মাণের অভ্যাস থেকে, আমার নিম্নলিখিত ট্রেডঅফ বিবেচনাগুলি রয়েছে: একটি পেন্ডুলাম সিস্টেম ঝুলানোর সবচেয়ে সহজ উপায় হতে পারে এটি আপনার দরজার উপরের প্রান্তে ঝুলানো। যে কোন কাঠামোগত বিল্ডিং কাজ না করে আপনার m 2m দুল দৈর্ঘ্য দেয়। কিন্তু এর জন্য সুইং দরজার উপরিভাগ স্পর্শ করবে না, যা পুরো পরীক্ষাটি নষ্ট করে দেয়। সুতরাং যে প্লেনটি দুলছে তা আপনার দেয়াল/দরজার পৃষ্ঠের সাথে সঠিকভাবে সমান্তরাল হওয়া উচিত। একটি ওজনহীন কর্ড পাতলা হতে থাকে, এটি সহজেই ঘুরতে পারে এবং সুইং এঙ্গেলের পরিমাপকে জটিল করে তুলতে পারে। আমরা সুইং রাজ্যের প্রতিনিধিত্ব করতে একটি পরিমাপ ব্যবহার করতে চাই। পাতলা কর্ড, যেমন মাছের রেখা, স্থিতিস্থাপক এবং প্রসারিত হতে পারে, যা আমাদের দ্বারা পরিমাপ করা এবং সমীকরণে ব্যবহৃত আমাদের সবচেয়ে গুরুত্বপূর্ণ ধ্রুবকগুলির মধ্যে একটিকে প্রভাবিত করে, যা পেন্ডুলামের দৈর্ঘ্য। কিছু তাপমাত্রার দ্বারা প্রভাবিত হতে পারে। কর্ডের শেষে ঝুলে থাকা ওজন ভর যথেষ্ট ভারী হতে হবে যাতে কর্ডের ওজন নগণ্য হয়ে যায়। দয়া করে মন্তব্য করুন যদি আপনি তাদের সাথে একমত বা অসম্মত হন, অথবা আপনার অন্যান্য ডিজাইন ট্রেডঅফ আইডিয়া আছে। এই সমস্যাটি অধ্যয়ন করার জন্য, আমাদের এমন একটি যন্ত্র দরকার যা এত হালকা যে তার ওজন উপেক্ষা করা যায় এবং আমরা এখনও দুল ব্যবস্থাকে অনমনীয় ইউনিফর্ম রড হিসেবে বিবেচনা করি। আমি একটি COTS পরিধানযোগ্য ইলেকট্রনিক কন্ট্রোলার ব্যবহার করছি, যা ব্লুটুথ সংযোগের মাধ্যমে গাইরো, অ্যাকসিলরোমিটার এবং কোণ সংক্রান্ত তথ্য আমাদের কাছে পৌঁছে দেয়। এই পরিমাপগুলি একটি মোবাইল ফোন অ্যাপ ডেটা ফাইলে সংরক্ষণ করা হবে। এর পরে, আমরা আমাদের সহজ সুরেলা গতি পরীক্ষার জন্য ডেটা বিশ্লেষণ করব। সংখ্যাসূচক বিশ্লেষণ নিম্নলিখিত বিষয়গুলির উপর দৃষ্টি নিবদ্ধ করে: ১) দোলনের দোলনের সময়কালের পূর্বাভাস দিন ২) প্রোগ্রামারলি পেন্ডুলাম সহজ সুরেলা আন্দোলন পরীক্ষা তথ্য সংগ্রহ করুন দুল দোলন ফ্রিকোয়েন্সি

সরবরাহ

ব্লুটুথ পরিমাপ যন্ত্র

অ্যান্ড্রয়েড ফোন অ্যাপ: গুগল প্লেস্টোরে যান, M2ROBOTS সার্চ করুন এবং কন্ট্রোল অ্যাপ ইনস্টল করুন। যদি গুগল প্লেস্টোর অ্যাক্সেস করা কঠিন হয়, বিকল্প অ্যাপ ডাউনলোড পদ্ধতির জন্য আমার ব্যক্তিগত হোমপেজে যান

কাঠের রড

কয়েকটি 3D মুদ্রিত অংশ

ব্লেড বা অনুরূপ ধাতব উপাদান দেখেছি

ধাপ 1: দুল কি? কিভাবে এটি মডেল?

আপনার পাঠ্যক্রমের পদার্থবিজ্ঞান বই সহ দুল সমীকরণ ডেরিভেশন প্রবর্তনকারী অনেক নিবন্ধ এবং বই রয়েছে। এই ধরনের বিষয়বস্তু আবার এখানে পুনরাবৃত্তি না করা ভাল। "সাধারণ সুরেলা গতি" বিষয় সম্পর্কে শুধুমাত্র চূড়ান্ত উপসংহার এখানে তালিকাভুক্ত করা হয়েছে। পেন্ডুলামের সময়কাল জানার জন্য, আমাদের যা জানা দরকার তা হল পেন্ডুলামের দৈর্ঘ্য, যা "l" হিসাবে চিহ্নিত, মিটারে।

যদি আমরা যুক্তিসঙ্গতভাবে নিশ্চিত হয়ে থাকি যে ওজনটি একটি পিভটে ঝুলে থাকা একটি ওজনহীন কর্ডের শেষে প্রায় সম্পূর্ণভাবে অবস্থিত, এবং দুলটি ছোট কোণে দুলছে θ, 15 less এর কম বলুন, এই ধরনের দোলকের সময় T1 দেওয়া হল:

T1 = 2*pi*(l/g)^0.5

g = মাধ্যাকর্ষণ ত্বরণ, প্রায় 9.8 m/s^2

যদি ওজনহীন কর্ডটি একটি কঠোর ইউনিফর্ম রড দ্বারা প্রতিস্থাপিত হয়, আবার দৈর্ঘ্য l, তার সহজ সুরেলা গতি সময় T2 টি 1 = 2*পাই*(2l/3g)^0.5 দ্বারা দেওয়া হয়

কার্যকরীভাবে এটি একটি ওজনহীন কর্ড দুল হিসাবে একই সময়কাল অনমনীয় রড দৈর্ঘ্যের দুই তৃতীয়াংশ।

এটি পটভূমি, এবং আমরা আমাদের পরীক্ষার প্রস্তুতি শুরু করতে পারি।

পদক্ষেপ 2: হার্ডওয়্যার নির্মাণের জন্য যন্ত্রাংশ প্রস্তুত করুন

হার্ডওয়্যার নির্মাণের জন্য যন্ত্রাংশ প্রস্তুত করুন
হার্ডওয়্যার নির্মাণের জন্য যন্ত্রাংশ প্রস্তুত করুন
হার্ডওয়্যার নির্মাণের জন্য যন্ত্রাংশ প্রস্তুত করুন
হার্ডওয়্যার নির্মাণের জন্য যন্ত্রাংশ প্রস্তুত করুন
হার্ডওয়্যার নির্মাণের জন্য যন্ত্রাংশ প্রস্তুত করুন
হার্ডওয়্যার নির্মাণের জন্য যন্ত্রাংশ প্রস্তুত করুন

দুল কাঠামো নির্মাণের জন্য, আমরা কিছু অংশ 3D মুদ্রণ করি, এবং আমাদের কাছে ইতিমধ্যেই কিছু পুনর্ব্যবহার করি। সামগ্রিক দুল কাঠামো চিত্র 1 এ দেখানো হয়েছে। এটি থ্রিডি প্রিন্ট পার্টসের মিশ্রণ এবং কিছু হাতের তৈরি অংশ এবং লোভের কাঠের রডের একটি লম্বা টুকরো।

Fig.2 এ 3D মুদ্রিত অংশটি একটি দরজার উপরের প্রান্তে ঝুলানো আছে, কারণ আমাদের দরজাটি আমাদের জন্য কিছু ঝুলানোর জন্য একটি সহজ সমতল পৃষ্ঠ। STL ফাইল ডাউনলোড লিঙ্ক:

xiapeiqing.github.io/doc/kits/pendulum/pen…

ডুমুর 3 এর সবুজ অংশটি কাঠের রডটিকে একটি ব্লেডের সাথে সংযুক্ত করে এবং ব্লেডটি পূর্বের 3D মুদ্রিত দরজার হ্যাঙ্গারে লাগানো রেলের দুটি টুকরোর উপরে বসে। STL ফাইল ডাউনলোড লিঙ্ক:

রেল দুটি টুকরা একটি পুরানো করাত ব্লেড অর্ধেক ভেঙে তৈরি করা হয়, চিত্র 4 দেখুন। আদর্শভাবে আমরা একটি ফাইল ব্যবহার করে সেই দুটি করাত ব্লেডে একটি "V" আকৃতির খাঁজ তৈরি করতে পারি। যুক্তিসঙ্গত ধারালো ধার ধাতু, যেমন একটি একক প্রান্ত রেজার ব্লেড, বা হাত দিয়ে তৈরি ধাতব টুকরা, "V" আকৃতির খাঁজের ভিতরে বসতে পারে। আমাদের একটি ছোট যোগাযোগের এলাকা প্রয়োজন কারণ হল দোলানোর সময় হারিয়ে যাওয়া গতিশক্তি হ্রাস করা।

চিত্র 5 এ শেষ 3 ডি মুদ্রিত অংশটি ইলেকট্রনিক পরিমাপ যন্ত্র রাখার জন্য একটি ছোট ট্রে।

ডাউনলোড লিঙ্ক:

ব্লুটুথ পরিমাপ যন্ত্র কোণ অনুমান, গাইরো পরিমাপ এবং অ্যাকসিলরোমিটার পরিমাপ তৈরি করে। এই সমস্ত ডেটা ব্লুটুথ ওয়্যারলেস লিঙ্কের মাধ্যমে আমাদের কাছে উপলব্ধ।

আমরা পেন্ডুলাম বাহুর বিভিন্ন অবস্থানে এই যন্ত্রটি স্থাপন করে একাধিক পরীক্ষা -নিরীক্ষা করতে যাচ্ছি এবং পার্থক্যগুলি দেখতে পাচ্ছি।

ধাপ 3: পরীক্ষা -নিরীক্ষা ডেটা সংগ্রহ

পরীক্ষা তথ্য সংগ্রহ
পরীক্ষা তথ্য সংগ্রহ
পরীক্ষা তথ্য সংগ্রহ
পরীক্ষা তথ্য সংগ্রহ
পরীক্ষা তথ্য সংগ্রহ
পরীক্ষা তথ্য সংগ্রহ

আমরা অর্জিত ডেটাসেট বিশ্লেষণ করার আগে পরীক্ষামূলক তথ্য সংগ্রহের জন্য দুটি কার্যকর পদ্ধতি রয়েছে:

1) যন্ত্রের দ্বারা উত্পাদিত সমস্ত পরিমাপ আপনার ফোনের এসডি কার্ডে সংরক্ষিত একটি ডেটা ফাইলে লগ ইন করার জন্য প্রয়োজনীয়তা বিভাগে উল্লেখিত অ্যান্ড্রয়েড ফোন অ্যাপ ব্যবহার করুন। আমরা ফাইলটি অনুলিপি করতে পারি এবং তথ্য প্রক্রিয়া করতে পারি।

2) একটি ব্লুটুথ সক্ষম কম্পিউটার, একটি পিসি, একটি ল্যাপটপ বা একটি রাস্পবেরিপি-মিনি কম্পিউটার ব্যবহার করে যন্ত্রের সাথে ব্লুটুথ সংযোগ স্থাপন করুন এবং রিয়েলটাইম বা অফলাইন বিশ্লেষণের জন্য ডেটা পড়ুন।

প্রতিটি পদ্ধতির জন্য পেশাদার এবং অসুবিধা উভয়ই বিদ্যমান, আমরা উভয়ই চেষ্টা করতে যাচ্ছি এবং এই নির্দেশের মধ্যে পার্থক্য বলব।

অ্যান্ড্রয়েড অ্যাপ ব্যবহার করার পদ্ধতি (1) এর জন্য, একবার আমরা অ্যান্ড্রয়েড অ্যাপ কন্ট্রোল ইন্টারফেসে থাকলে, ব্লুটুথ পরিমাপ যন্ত্র থেকে অ্যান্ড্রয়েড ফোনে পাঠানো টেলিমেট্রি ডেটা m2flightDatayyyymmdd_hhmmss.txt নামে একটি ডেটালগ ফাইলে রেকর্ড করা হবে। এটি আপনার অ্যান্ড্রয়েড ফোনের ডাউনলোড/m2LogFiles ফোল্ডারে পাওয়া যাবে। "ডাউনলোড" ফোল্ডারটি আপনার ফোনের অ্যান্ড্রয়েড ওএস-এ একটি বিদ্যমান ফোল্ডার এবং "m2LogFiles" অ্যাপ তৈরি করা একটি ফোল্ডার। ফাইলের নাম বিষয়বস্তু yyyymmdd_hhmmss হল ফাইলের নামে পরীক্ষা শুরুর সময় (বছর, মাস, দিন, ঘন্টা, মিনিট এবং সেকেন্ড) এনকোড করার উপায়।

লগ ফাইলের প্রতিটি লাইন একটি রেকর্ড। এটি ইভেন্ট টাইমস্ট্যাম্প, প্রস্তাবনা স্ট্রিং "eam:" দিয়ে শুরু হয়, তারপরে 4 টি ট্রিপলেট ডেটা থাকে, যা হল:

কাঁচা সেন্সর হার্ডওয়্যারে এক্সিলরোমিটার এক্সওয়াইজেড অক্ষ পড়া রিডব্যাক মান

কাঁচা সেন্সর হার্ডওয়্যারে গাইরোস্কোপ এক্সওয়াইজেড অক্ষ পড়া রিডব্যাক মান

কাঁচা সেন্সর হার্ডওয়্যারে ম্যাগনেটোমিটার এক্সওয়াইজেড অক্ষ পড়া রিডব্যাক মান

জাহাজে আনুমানিক রোল/পিচ/কাঁচা ডিগ্রী

কম্পিউটার পাইথন প্রোগ্রাম ব্যবহার করে তৈরি করা ডেটা ফাইল অভিন্ন ডেটা ফাইল ফরম্যাট ব্যবহার করবে, যাতে আমরা ডেটা বিশ্লেষণ ধাপে যে প্রোগ্রামটি ব্যবহার করি তা আমাদের পাইথন প্রোগ্রাম বা অ্যান্ড্রয়েড অ্যাপ দ্বারা উত্পাদিত ডেটা সোর্স নিয়ে বিরক্ত হবে না।

পদ্ধতি (2) ব্যবহার করে কোডিং শুরু করা যাক।

ব্লুটুথ পরিমাপ যন্ত্রের সাথে যোগাযোগ করার জন্য, এসডিকে দুটি স্বাদ প্রদান করা হয়:

1) Python SDK, যা "pip3 install m2controller" দ্বারা ইনস্টল করা যায়, python3 হল ব্যবহৃত ভাষা। ব্যবহারকারীর অ্যাপ্লিকেশন কোডের উদাহরণ https://github.com/xiapeiqing/m2robots/tree/maste… এ সংরক্ষিত আছে এই পরীক্ষার জন্য, আমরা পাইথন স্ক্রিপ্ট pendulum1.py ব্যবহার করব

2) জাভা এসডিকে, যা এই নির্দেশে ব্যবহার করা হয় না কারণ আমরা পরবর্তীতে অর্জিত পেন্ডুলাম ডেটার ভিজ্যুয়ালাইজেশন এবং বিশ্লেষণ চাই, যা আমাদের জাভাতে প্রোগ্রাম করার জন্য একটু বেশি প্রচেষ্টা নিতে পারে।

পাইথন 3 ডেটা সংগ্রহ প্রোগ্রাম সোর্স কোডটিতে কোড কার্যকারিতার বিশদ বিবরণের জন্য অনেক মন্তব্য রয়েছে। সোর্স কোডের একটি স্ন্যাপশট এখানে দেওয়া হয়েছে।

#!

requestExit = মিথ্যা

################################################################

#আমরা একই লগ ফাইলের নামকরণ কনভেনশন ব্যবহার করতে চাই যাতে ডেটা বিশ্লেষণ মডিউল, pendulum2.py, কিভাবে আমরা লগ ডেটা ফাইল ################ পেতে অজ্ঞেয় হতে পারি ######################################## m2flightData%s.txt "%(datetime.datetime.fromtimestamp (time.time ())। strftime ('%Y%m%d_%H%M%S')) dataLogfile = open (logfilename," w ")

def signal_handler (সিগ, ফ্রেম):

গ্লোবাল রিকোয়েস্ট এক্সিট প্রিন্ট ('প্রোগ্রাম এক্সিকিউশন থেকে বেরিয়ে যাওয়ার জন্য ব্যবহারকারী Ctrl-C') requestExit = True signal.signal (signal. SIGINT, signal_handler)

################################################################

#প্রতিটি পরিমাপের তথ্য 20Hz হারে উপলব্ধ হওয়ার পরে, এই "কলব্যাক" ফাংশনটি ডাকা হবে ##################### ################################ ())। strftime ('%H:%M:%S.%f') [:-3] dataStr = "%s, eam:%d,%d,%d,%d,%d,%d, %d, %d, %d, %2.1f, %2.1f, %2.1f / n " %(strTimeStamp, টেলিমেট্রি ['m_fAccelHwUnit'] [0], টেলিমেট্রি ['m_fAccelHwUnit'] [1], টেলিমেট্রি ['m_fAccelHwUnit'] [2], টেলিমেট্রি ['m_fGyroHwUnit'] [0], টেলিমেট্রি ['m_fGyroHwUnit'] [1], টেলিমেট্রি ['m_fGyroHwUnit'] [2], টেলিমেট্রি ['m_fMag0w [m_fMag0w] 'm_fMagHwUnit'] [1], টেলিমেট্রি ['m_fMagHwUnit'] [2], টেলিমেট্রি ['m_fRPYdeg'] [0], টেলিমেট্রি ['m_fRPYdeg'] [1], টেলিমেট্রি ['m_fRPYdeg'] [2] #2 ## ############################################ ##############আমরা স্ক্রিনে ডাটা স্ট্রিং প্রিন্ট করি এবং সেগুলিকে লগ ফাইলে সংরক্ষণ করি ##################### ########################################### dataStr)

################################################################

#নিয়ামক আরম্ভ করুন, আপনার ডিভাইসের MAC ঠিকানা হতে BleMACaddress ক্ষেত্র সেট করতে মনে রাখবেন ######################## ################################# controller = m2controller. BleCtrller (m2Const.etDebian, callbackfunc, usrCfg. BleMACaddress) controller.connect () যখন সত্য: ################ ######################################## যন্ত্র ########################### ############### controller.m_CommsTunnel.waitForNotifications (1.0) if requestExit: ###################################################### ############################################ ############### controller.stop () dataLogfile.close () বিরতি

################################################################

#তথ্য সংগ্রহ সম্পন্ন, এখন লগ ডেটা বিশ্লেষণ করা যাক ################ ###########################

দীর্ঘমেয়াদী আপডেটের জন্য, দয়া করে চেকআউট করুন

এখন এর অপারেশন পদ্ধতি ব্যাখ্যা করা যাক। এই পাইথন প্রোগ্রামটি একটি পিপ ইনস্টলযোগ্য প্যাকেজের উপরে লেখা আছে, যার নাম m2controller। নিম্ন স্তরের প্যাকেজ কলব্যাক প্রক্রিয়া প্রদান করে, যাতে প্রতিটি প্রাপ্ত পরিমাপ আপডেট আমাদের লেখা কলব্যাক ফাংশনকে ট্রিগার করবে এবং স্থানীয় লগ ফাইলে ডেটা সংরক্ষণ করবে। লগ ফাইল ডেটা বিষয়বস্তুর বিন্যাস অ্যান্ড্রয়েড সঙ্গী অ্যাপ্লিকেশন দ্বারা উত্পাদিত অনুরূপ, যাতে পাইথন প্রোগ্রাম বা অ্যান্ড্রিওড সহচর অ্যাপ্লিকেশন দ্বারা তৈরি ডেটা লগ ফাইল বিনিময়যোগ্য হয়।

ব্যবহারকারী ctrl-C সংকেত, অপারেটিং সিস্টেম দ্বারা ধরা, প্রোগ্রামে প্রেরণ করা হয়, এবং পরিমাপ তথ্য নতুন আগমনের অপেক্ষায় অসীম লুপ বন্ধ।

এখন পর্যন্ত, লগ ফাইল সফলভাবে তৈরি করা হয়েছে, এবং এই প্রোগ্রামটি আমাদের পরীক্ষার ফলাফল অধ্যয়ন করার জন্য বিশ্লেষণ প্রোগ্রামকে কল করবে।

এখানে দুটি পরীক্ষা করা হয়েছে, এবং তুলনাটি বিভিন্ন স্থানে 7 গ্রাম ডিভাইস সংযুক্ত করে খুব উল্লেখযোগ্য পার্থক্য দেখায়।

চিত্র 2 এ, আমরা এই ব্লুটুথ পরিমাপ যন্ত্রের প্রকৃত ওজন নির্ধারণ করতে একটি স্কেল ব্যবহার করি।

Fig.3 পেন্ডুলাম সেটআপটি দেখায় যেখানে 7 গ্রাম ডিভাইসটি পেন্ডুলামের নীচের প্রান্তে সংযুক্ত থাকে। চিত্র 4 এ সেটআপ কনফিগারেশন 7 গ্রাম ভর সুইং পিভট এর খুব কাছাকাছি অবস্থিত।

Fig.5 হল দুল কাঠামোর একটি ক্লোজআপ ভিউ।

ধাপ 4: তথ্য বিশ্লেষণ

তথ্য বিশ্লেষণ
তথ্য বিশ্লেষণ
তথ্য বিশ্লেষণ
তথ্য বিশ্লেষণ
তথ্য বিশ্লেষণ
তথ্য বিশ্লেষণ

ব্লুটুথ পরিমাপ যন্ত্রের ওজন gram 7 গ্রাম, যার ওজন ~ 1.6 মিটার লম্বা কাঠের কাঠির চেয়ে অনেক কম। "অনমনীয় ইউনিফর্ম রড" এর অনুমান ব্যবহার করুন, এবং আমাদের এই পেন্ডুলাম সময়ের সমীকরণ আছে, T1 = 2*pi*(2l/3g)^0.5

মাধ্যাকর্ষণ ধ্রুবক পেতে, আমরা 9.8m/s^2 ব্যবহার করতে পারি। কিন্তু যেকোনো ভূতাত্ত্বিক অবস্থানে আরও সঠিক মাধ্যাকর্ষণ ধ্রুবক এই ওয়েব পরিষেবা থেকে পুনরুদ্ধার করা যেতে পারে:

www.wolframalpha.com/widgets/view.jsp?id=e…

সান ফ্রান্সিসকো জন্য, এটি 9.81278m/s^2

দুল দৈর্ঘ্য মাপা হয় 64.5"

2*pi*sqrt (2*64.5*0.0254/(3*9.81278)) 2.0962 (সেকেন্ড) এর প্রত্যাশিত দুল সময় দেয়।

দেখা যাক এটি আমাদের পরীক্ষার সাথে একমত কিনা।

প্রথম পরীক্ষায়, দুল সেটআপের 7 গ্রাম ডিভাইসটি পেন্ডুলামের নিচের প্রান্তে সংযুক্ত থাকে। আমার লগ ফাইলটি ডাউনলোড করা যেতে পারে:

xiapeiqing.github.io/doc/kits/pendulum/pen…

এর নাম পরিবর্তন করে "PendulumTestData.txt" করুন এবং পাইথন বিশ্লেষণ প্রোগ্রামের একই ফোল্ডারে রাখুন। সোর্স কোডের একটি স্ন্যাপশট এখানে দেওয়া হয়েছে।

#! টাইমডেল্টা আমদানি সমুদ্রবর্ণ sklearn.cluster থেকে sns হিসাবে আমদানি KMeans সংগ্রহ থেকে আমদানি কাউন্টার ############################### ###############################এই ফাংশনটি ডাটা ফাইল বিশ্লেষণ কাজ চালায় ######### ############################################ ## def parseDataLogFile (datafilename): ######################### ####################### ############################################ ############# খোলা (datafilename) সহ csvfile: readCSV = csv.reader (csvfile, delimiter = ',') timestampS = fAccelHwUnit_x = fAccelHwUnit_y = fAccelHwUnit_y fGyroHwUnit_x = fGyroHwUnit_y = fGyroHwUnit_z = fMagHwUnit_x = fMagHwUnit_y = fMagHwUni t_z = fRPYdeg_r = fRPYdeg_p = fRPYdeg_y = readCSV এর সারির জন্য: try: x = datetime.strptime (সারি [0].split (',') [0], '%H:%M:%S.%f ') timestampS.append (timedelta (hours = x.hour, minutes = x.minute, seconds = x.second, microseconds = x.microsecond).total_seconds)) [1] [4:])) fAccelHwUnit_y.append (float (সারি [2])) fAccelHwUnit_z.append (float (row [3])) fGyroHwUnit_x.append (float (row [4])) fGyroHwUent.yat_y. (সারি [5])) fGyroHwUnit_z.append (float (row [6])) fMagHwUnit_x.append (float (row [7])) fMagHwUnit_y.append (float (row [8])) fMagHwUnit_z.append (float (float (row [8])) [9])) fRPYdeg_r.append (float (row [10])) fRPYdeg_p.append (float (row [11])) fRPYdeg_y.append (float (row [12])) বাদে: pass timestampS = np.asarray (টাইমস্ট্যাম্প) টাইমস্ট্যাম্প = টাইমস্ট্যাম্প - টাইমস্ট্যাম্প [0] fAccelHwUnit_x = np.asarray (fAccelHwUnit_x) fAccelHwUnit_y = np.asarray (fAccelHwUnit_y) fAccelHwUnit_z = np.asarray (fAccelHwUnit_z) fGyroHwUnit_x = np.asarray (fGyroHwUnit_x) fGyroHwUnit_y = np.asarray (fGyroHwUnit_y) fGyroH wUnit_z = np.asarray (fGyroHwUnit_z) fMagHwUnit_x = np.asarray (fMagHwUnit_x) fMagHwUnit_y = np.asarray (fMagHwUnit_y) fMagHwUnit_z = np.asarray (fMagHwUnit_z) fRPYdeg_r = np.asarray (fRPYdeg_r) fRPYdeg_p = np.asarray (fRPYdeg_p) fRPYdeg_p = fRPYdeg_p - np.mean (fRPYdeg_p) fRPYdeg_y = np.asarray (fRPYdeg_y)

################################################################

#আমাদের সুনির্দিষ্ট দোলনা সময়ের অনুমানের জন্য নমুনা ফ্রিকোয়েন্সিটির সঠিক অনুমান প্রয়োজন ################# ############################### ###################################################### পেন্ডুলাম পিরিয়ড বিশ্লেষণের জন্য মনোভাব শিরোনাম রেফারেন্স সিস্টেম আউটপুটে পিচ উপাদান ####################### ############################################ ############################################ ####পেন্ডুলাম পিরিয়ড বিশ্লেষণের জন্য এক্সিলরোমটার কাঁচা পরিমাপ আউটপুট ব্যবহার করুন ####################### ############################################ ############################################ ####দুল সময়কাল বিশ্লেষণের জন্য গাইরো কাঁচা পরিমাপ আউটপুট ব্যবহার করুন ####################### ############################# gyro ') মুদ্রণ (' সম্পন্ন, অভিনন্দন:-) ') plt.show () ########################## ####################################ব্লুটুথ যোগাযোগ প্রক্রিয়ায়, ডেটা কম প্যাকেট হতে পারে এমন একটি বিরল সুযোগ রয়েছে হারিয়ে যাওয়া#আমরা K-mean ব্যবহার করে 20Hz পরিমাপের ডেটা বহিরাগতদের থেকে বিচ্ছিন্ন করে ফেলি, যা প্যাকেট#ডাইভের কারণে "আরো বিস্তারিত জানার জন্য" সিগন্যাল এবং সিস্টেমে "################ ###################################### (টাইমস্ট্যাম্পএস): plt.figure () sampleIntervalS = np.diff (timestampS) sns.distplot (sampleIntervalS) plt.ylabel ('হিস্টোগ্রাম') plt.xlabel ('পরিমাপ ব্যবধান (গুলি)') ক্লাস্টারসেন্ট = 5 কিমি = KMeans (n_clusters = clusterCnt) km.fit (sampleIntervalS.reshape (-1, 1)) centroids = km.cluster_centers_ elemCnt = কাউন্টার (km.labels_) সংঘটন Cnt = ii রেঞ্জের জন্য (clusterCnt): occidenceCnt.append (elemCnt [ii]) FsHz = 1/সেন্ট্রয়েড [ঘটনার সিএনটি।

################################################################

#স্পেকট্রোমিটার ব্যবহার করুন, অর্থাৎ ফ্রিকোয়েন্সি কম্পোনেন্ট পেতে স্বল্প সময়ের এফএফটি, পিক বিন হল পেন্ডুলাম দোলনের আমাদের সেরা অনুমান ######################### ####################################### ডুমুর, (ax1, ax2) = plt.subplots (nrows = 2) ax1.plot (timestampS, timeSeqData, marker = 'o', markerfacecolor = 'blue', markersize = 2, color = 'skyblue', linewidth = 1) ax1.set_title ("দুল সময় ডোমেইন পরিমাপ - %s" %strComment) ax1.set_xlabel ("নমুনা সময় (দ্বিতীয়)") ax1.set_ylabel (strComment); NFFT = 2048 # উইন্ডোং সেগমেন্টের দৈর্ঘ্য

Pxx, freqs, bins, im = ax2.specgram (timeSeqData, NFFT = NFFT, Fs = FsHz, noverlap = NFFT/2)

ax2.set_title ("Spectrogram") ax2.set_xlabel ("নমুনা") ax2.set_ylabel ("ফ্রিকোয়েন্সি (Hz)");

# `Specgram` পদ্ধতি 4 টি বস্তু প্রদান করে। তারা হল:

# - Pxx: পিরিয়ডোগ্রাম # - freqs: ফ্রিকোয়েন্সি ভেক্টর # - বিনস: সময় বিন্দুর কেন্দ্র # - im: matplotlib.image।.amax (Pxx)) oscFreqHz = freqs [pkresult [0] [0] প্রিন্ট ('দুল দোলন Freq (Hz) =%f, পিরিয়ড (সেকেন্ড) =%f, অনুমান তথ্য উৎস:%s'%(oscFreqHz, 1/oscFreqHz, strComment)) 1/oscFreqHz ফেরত দিন

################################################################

#আমাদের কি এই প্রোগ্রামটি স্বাধীনভাবে চালানো উচিত, অর্থাৎ pendulum1.py দ্বারা ডাকা হচ্ছে না,#আমরা বিশ্লেষণ করার জন্য একটি ডিফল্ট লগ ডেটা ফাইলের নাম সংজ্ঞায়িত করি #################### ############################################## ": defaultFilename = './PendulumTestData.txt' os.path আমদানি করলে os.path.isfile (defaultFilename): parseDataLogFile (defaultFilename) অন্য: প্রিন্ট (" ডিফল্ট লগ ফাইল %s বিদ্যমান নেই " %defaultFilename)

দীর্ঘমেয়াদী আপডেটের জন্য, দয়া করে চেকআউট করুন

সোর্স কোডে বিস্তারিত মন্তব্য রয়েছে, আসুন এখানে গাণিতিক অনুমানের একটি উচ্চ স্তরের সারাংশ দেওয়া যাক।

1) আমরা প্রথমে CSV ফাইলের বিষয়বস্তু কম্পিউটারে পড়ি, "csv" নামে একটি পাইথন প্যাকেজ ব্যবহার করে। আমাদের পর্যায়ক্রমিক পরিমাপ আছে।

21: 34: 26.362, eam: 0, -128, 14464, -8, 144, -96, 2112, -1280, 1664, -0.5, -5.5, 40.5

21: 34: 26.373, eam: 128, 0, 14272, -8, 136, 40, 2112, -1280, 1664, -0.5, -6.5, 40.0

21: 34: 26.412, eam: 448, -64, 14208, -8, 136, 24, 2176, -1280, 1664, -0.5, -7.5, 40.5

21: 34: 26.462, eam: 448, -128, 14272, -8, 120, 16, 2176, -1280, 1664, -0.5, -8.0, 40.5

2) যেহেতু পরিমাপের হারটি অত্যন্ত সমালোচনামূলক এবং সরাসরি দোলক সময়কালের অনুমান ত্রুটি প্রবর্তন করে, আমরা সেগুলি অনুমান করতে চাই। আমাদের নামমাত্র পরিমাপ ব্যবধান 50ms, অর্থাত্ 20Hz। সমস্ত পরিমাপের উপর গড় ঠিক মনে হয়, কিন্তু আমরা মাঝে মাঝে ডেটা ট্রান্সমিশন প্যাকেট হারিয়ে ফেলি, আপডেটের ব্যবধান 100ms বা 150ms হয়ে যায়,…

যদি আমরা এই তথ্যগুলির ঘটনার চক্রান্ত করি, চিত্র 1 দেখুন, একজন মানুষ হিসাবে, আমরা সহজেই 0.05sec এর চোখের পলকে মূল্য পেতে পারি। যাইহোক, আমরা কি এর চেয়ে ভাল করতে পারি?

আমাদের গণনার গড়ের জন্য শুধুমাত্র ভাল পদ্ধতি নির্বাচন করার জন্য শ্রেণীবিভাগ পদ্ধতি ব্যবহার করতে হবে। পাইথনের KMeans নামে একটি টুলবক্স আছে যা আমাদের ক্লাস্টারিংয়ে সাহায্য করতে বা শ্রেণীবিভাগ বলতে সাহায্য করে। এই ধারণাগুলি অনেক বড় ডেটা এবং এআই ক্ষেত্রে ব্যবহৃত হয়।

3) Fig.2 দুটি ছবি রয়েছে। শীর্ষ প্লট হল ডিগিতে আমাদের সুইংিং এঙ্গেল পরিমাপের একটি সময়-ডোমেন ক্রম। সেকেন্ডে এক্স-অক্ষ টাইমস্ট্যাম্পের উল্লেখ করে, আমরা 50 সেকেন্ডে প্রায় 22.5 চক্র পড়তে পারি, যা 2.22 সেকেন্ড পেন্ডুলাম পিরিয়ডে অনুবাদ করে। এই প্রক্রিয়াটি স্বয়ংক্রিয় করার একটি উপায় আছে এবং আরো সঠিক অনুমান আছে? হ্যাঁ, আমরা স্পেকট্রোগ্রাম নামক গাণিতিক টুল ব্যবহার করতে পারি, যা পরিমাপের তথ্যগুলির একটি ছোট অংশ ব্যবহার করে এবং এর ফ্রিকোয়েন্সি আমাদের জানান, নিচের চিত্রটি দেখুন। সবচেয়ে অন্ধকার রেখার জন্য y- অক্ষ পড়া হল দুল দোলন ফ্রিকোয়েন্সি। একটি অনুভূমিক রেখা হওয়া নিশ্চিত করে যে দোলনের দোলন পরীক্ষা চলাকালীন মোটেও বদলায়নি। দোলন ফ্রিকোয়েন্সি এর বিপরীত মান হল দুল দোলনের সময়কাল।

প্রোগ্রাম দ্বারা তৈরি চূড়ান্ত প্রতিবেদন একটি পাঠ্য সারাংশ:

দুল দোলন Freq (Hz) = 0.449224, সময়কাল (সেকেন্ড) = 2.226059, অনুমান তথ্য উৎস: পিচ

আমরা আমাদের আগের চোখের চোখের হিসাবের ফলাফল খুঁজে পেতে পারি, ২.২২ সেক, প্রোগ্রাম গণিত মানের সাথে মোটামুটি সামঞ্জস্যপূর্ণ।

2.0962 (সেকেন্ড) তাত্ত্বিকভাবে গণনা করা মানের তুলনায়, আমাদের ~ 5% অবশিষ্ট ত্রুটি রয়েছে। কিভাবে তাদের পরিত্রাণ পেতে? মনে রাখবেন অনুমানটি "অনমনীয় ইউনিফর্ম রড"? এমনকি একটি 7 গ্রাম অতিরিক্ত ওজন তুচ্ছ মনে হয়, এটি বাকি ত্রুটির সবচেয়ে বড় কারণ।

আমরা এখন পিভট এর কাছাকাছি, ডিভাইসটি সরাই। ক্লোজ-আপ ছবির জন্য আগের ধাপ দেখুন। আমার তৈরি লগ ফাইলটি এখানে ডাউনলোড করা যাবে:

xiapeiqing.github.io/doc/kits/pendulum/pen…

একই বিশ্লেষণ ধাপগুলি চালান, এবং আমরা 2.089867 (সেকেন্ড) এর সময় পাই, চিত্র 3 দেখুন, যা তাত্ত্বিক পূর্বাভাসের প্রায় অভিন্ন। দারুণ!

যেহেতু আমরা কেবল দোলনা কোণ পরিমাপই করি না, একই সাথে একই পরিমাপে জাইরোস্কোপিক পরিমাপ এবং অ্যাকসিলরোমিটার পরিমাপও করি। অন্য দুটি পরিমাপের জন্য একই বিশ্লেষণ চালান, আমরা চিত্র 4 এবং 5 এ ফলাফল পাই, তিনটি পরিমাপ উৎস থেকে অনুমান একমত, যা আমাদের পরীক্ষার সফলতার উপর আমাদের আরো আত্মবিশ্বাসী করে তোলে।

এখানে পাইথন প্রোগ্রামের চূড়ান্ত আউটপুট হিসাবে ফলাফল চলছে:

দুল দোলন Freq (Hz) = 0.478499, সময়কাল (সেকেন্ড) = 2.089867, অনুমান তথ্য উৎস: পিচ

দুল দোলন Freq (Hz) = 0.478499, পিরিয়ড (সেকেন্ড) = 2.089867, অনুমান তথ্য উৎস: অ্যাকসেল

পেন্ডুলাম দোলন Freq (Hz) = 0.478499, সময়কাল (সেকেন্ড) = 2.089867, অনুমান তথ্য উৎস: gyro

এই ধাপে সর্বশেষ চিন্তা, বিভিন্ন ইনপুট ডেটা উত্স ব্যবহার করে অনুমানের ফলাফলগুলি ঠিক একই রকম হতে পারে? এটি পাল্টা অন্তর্দৃষ্টি। আমি এই প্রশ্ন পাঠকদের উপর ছেড়ে দেব। এখানে একটি ইঙ্গিত: মনে রাখবেন আমরা দোলন ফ্রিকোয়েন্সি অনুমান করার জন্য স্বল্প সময়ের FFT ব্যবহার করছি? ডিজিটাল ডোমেইনে, ভাসমান সংখ্যার অনুমানের পরিবর্তে ফ্রিকোয়েন্সি অনুমান আলাদা ফ্রিকোয়েন্সি বিনগুলিতে দেওয়া হয়।

পদক্ষেপ 5: ভবিষ্যতের কাজের সুপারিশ

ভবিষ্যতের কাজের সুপারিশগুলির কয়েকটি বিভাগ রয়েছে।

আগের ধাপে, আমরা আমাদের পরীক্ষার ত্রুটি ~ 5% থেকে কমিয়ে 1% এর কম করতে পরিচালিত করি, আমরা কি এর চেয়ে ভাল করতে পারি? দোলনের মাত্রা লক্ষ্য করলে তা দ্রুত হ্রাস পায়, দোলক দোলানোর সময় একটি অবদানকারী কারণ হতে পারে এয়ার ড্র্যাগ। পেনডুলামের ক্রস সেকশনকে স্ট্রিমলাইন আকৃতিতে পরিবর্তন করার প্রয়োজন হতে পারে যাতে এরোডাইনামিক ড্র্যাগ কমাতে পারে।

আমরা কি ধ্রুব শিখর-মাত্রা সংকেত আউটপুট করার জন্য অভিযোজিত ফিল্টার কৌশল ব্যবহার করে শেখা একটি সময়-পরিবর্তিত লাভ প্রয়োগ করতে পারি? ইতিমধ্যে, বাহ্যিক শক্তির তীব্রতা হ্রাসের সাথে সম্পর্কযুক্ত।

আমরা "সহজ সুরেলা আন্দোলন" এর চেয়ে সহজ কিছু খুঁজে পাই না। আমরা কি দুল বিশ্লেষণের সুবিধাগুলি ব্যবহার করতে পারি আরো জটিল কিছু বিশ্লেষণ করতে, একটি খেলাধুলা কার্যকলাপ, একটি জল রকেট উৎক্ষেপণ ক্রম ইত্যাদি?

শুভ হ্যাকিং

প্রস্তাবিত: