ዝርዝር ሁኔታ:
- አቅርቦቶች
- ደረጃ 1 ፔንዱለም ምንድን ነው? እሱን እንዴት ሞዴል ማድረግ?
- ደረጃ 2 ለሃርድዌር ግንባታ ክፍሎችን ያዘጋጁ
- ደረጃ 3 የሙከራ ውሂብ መሰብሰብ
- ደረጃ 4 የውሂብ ትንተና
- ደረጃ 5 የወደፊት የሥራ ምክሮች
ቪዲዮ: የቀላል ሃርሞኒክ እንቅስቃሴ የሙከራ ጥናት -5 ደረጃዎች
2024 ደራሲ ደራሲ: John Day | [email protected]. ለመጨረሻ ጊዜ የተሻሻለው: 2024-01-30 07:31
በቀስት መሰል ተጨማሪ በደራሲው ይከተሉ
በክፍል ውስጥ ፣ ብዙውን ጊዜ የፔንዱለም ሙከራን ፣ ወይም ቀላል የሃርሞኒክ እንቅስቃሴ ሙከራን ለማካሄድ የሩጫ ሰዓት እንጠቀማለን። እዚህ ፈታኝ ነው ፣ የእንቅስቃሴውን እውነተኛ ግራፍ ማምረት እና ፈጣን የማዕዘን አቀማመጥ እና ፍጥነት ምን እንደሆነ ማየት እንችላለን ፣ ያ በጣም ብዙ መረጃ እና አስደሳች ነው።
የመጀመሪያው ጥያቄ ፣ የፔንዱለም አካል ክብደት የሌለው ገመድ ወይም ጠንካራ ወጥ የሆነ ዘንግ መሆኑን መወሰን አለብን። የገመድ አቀራረብ ቀላል ይመስላል። አንድን ከመገንባት ልምምድ ፣ የሚከተለው የመለያያ ሀሳቦች አሉኝ - የፔንዱለም ስርዓትን ለመስቀል ቀላሉ መንገድ በበርዎ የላይኛው ጠርዝ ላይ ሊሰቅለው ይችላል። ያ ምንም የመዋቅር ግንባታ ሥራ ሳይሠራ የእርስዎን ~ 2 ሜትር ፔንዱለም ርዝመት ይሰጥዎታል። ግን ማወዛወዙ የበርን ወለል አይነካውም ፣ ይህም በቀላሉ አጠቃላይ ሙከራውን ያበላሸዋል። ስለዚህ የሚውለው አውሮፕላን ከግድግዳዎ/በርዎ ወለል ጋር በትክክል ትይዩ መሆን አለበት። ክብደት የሌለው ገመድ ቀጭን የመሆን አዝማሚያ አለው ፣ በቀላሉ ሊሽከረከር ይችላል ፣ እና የመወዛወዝ አንግል ልኬትን ያወሳስበዋል። የመወዛወዝ ሁኔታን ለመወከል አንድ መለኪያ መጠቀም እንፈልጋለን። እንደ ዓሳ መስመር ያለ ቀጭን ገመድ ፣ በእኛ የሚለካ እና በእኩልነት ውስጥ ጥቅም ላይ የሚውለውን የፔንዱለም ርዝመት የሆነውን በጣም አስፈላጊ ከሆኑት ቋሚዎቻችንን የሚጎዳ ሊለጠጥ እና ሊለጠጥ ይችላል። አንዳንዶቹ በሙቀት መጠኑም ሊጎዱ ይችላሉ። በገመድ መጨረሻ ላይ የሚንጠለጠለው የክብደት ክብደት ከባድ መሆን አለበት ስለዚህ የገመድ ክብደት ቸልተኛ ይሆናል። ከእነሱ ከተስማሙ ወይም ካልተስማሙ እባክዎን አስተያየት ይስጡ ፣ ወይም ሌላ የንድፍ ልውውጥ ሀሳቦች ካሉዎት። ይህንን ችግር ለማጥናት ክብደቱ ችላ ሊባል የሚችል በጣም ቀላል የሆነ መሣሪያ እንፈልጋለን እና አሁንም የፔንዱለም ስርዓቱን እንደ ጠንካራ ወጥ በትር እንይዛለን። እኔ በብሉቱዝ ግንኙነት በኩል ጋይሮውን ፣ የፍጥነት መለኪያ እና የማዕዘን መረጃን ለእኛ የሚያቀርበውን COTS የሚለበስ የኤሌክትሮኒክ መቆጣጠሪያን እየተጠቀምኩ ነው። እነዚህ መለኪያዎች በተንቀሳቃሽ ስልክ መተግበሪያ ውሂብ ፋይል ውስጥ ይቀመጣሉ። ከዚያ በኋላ ፣ ለቀላል የሃርሞኒክ እንቅስቃሴ ሙከራ ውሂቡን እንመረምራለን። የቁጥር ትንተናው በሚከተሉት ርዕሶች ላይ ያተኩራል 1) የፔንዱለም ማወዛወዝ ጊዜን መተንበይ 2) የፔንዱለም ቀለል ያለ የአሞኒክ እንቅስቃሴ ሙከራ ውሂብን በፕሮግራም መሰብሰብ 3) በመተንተን ሂደት ውስጥ መረጃን በቡድን ለመሰብሰብ እና ውጫዊዎችን ለማስወገድ kmean ን ይጠቀሙ 4) ለመገመት የአጭር ጊዜ FFT ን ይጠቀሙ የፔንዱለም ማወዛወዝ ድግግሞሽ
አቅርቦቶች
የብሉቱዝ መለኪያ መሣሪያ
የ Android ስልክ መተግበሪያ - ወደ Google playstore ይሂዱ ፣ M2ROBOTS ን ይፈልጉ እና የመቆጣጠሪያ መተግበሪያውን ይጫኑ። የጉግል playstore ን ለመድረስ አስቸጋሪ ከሆነ ለአማራጭ የመተግበሪያ ማውረድ ዘዴ የግል መነሻ ገageን ይጎብኙ
የእንጨት ዘንግ
ጥቂት 3 ዲ የታተሙ ክፍሎች
የታጠቁ ቢላዎች ወይም ተመሳሳይ የብረት ቁሳቁስ
ደረጃ 1 ፔንዱለም ምንድን ነው? እሱን እንዴት ሞዴል ማድረግ?
የሥርዓተ ትምህርት ፊዚክስ መጽሐፍዎን ጨምሮ የፔንዱለም እኩልታ አመጣጥን የሚያስተዋውቁ ብዙ ጽሑፎች እና መጻሕፍት አሉ። እንደዚህ ያለ ይዘት እዚህ እንደገና ካልተደገመ የተሻለ ሊሆን ይችላል። የ “ቀላል የአርሜኒክ እንቅስቃሴ” ርዕስን በተመለከተ እዚህ ላይ የመጨረሻው መደምደሚያ ብቻ ተዘርዝሯል። የፔንዱለም ጊዜን ለማወቅ ፣ ማወቅ ያለብን በ “l” ተብሎ የተሰየመው የፔንዱለም ርዝመት ነው።
ክብደቱ በምሰሶ ውስጥ በተንጠለጠለበት ክብደት በሌለው ገመድ መጨረሻ ላይ ሙሉ በሙሉ እንደሚገኝ እርግጠኛ ከሆንን እና ፔንዱለም በትንሽ ማዕዘኖች ሲወዛወዝ than ፣ ከ 15 ° በታች ይበሉ ፣ የዚህ ዓይነቱ ፔንዱለም ጊዜ T1 የተሰጠው በ:
T1 = 2*pi*(l/g)^0.5
g = የስበት ማፋጠን ፣ በግምት 9.8 ሜ/ሰ^2
ክብደት የሌለው ገመድ በጠንካራ ዩኒፎርም በትር ከተተካ ፣ እንደገና ርዝመቱ l ፣ ቀለል ያለ የአጻጻፍ እንቅስቃሴ ጊዜ T2 በ T1 = 2*pi*(2l/3g)^0.5 ተሰጥቷል
በውጤታማነት ልክ እንደ ክብደት የሌለው ገመድ ፔንዱለም ከጠንካራ የደንብ ዘንግ ርዝመት ሁለት ሦስተኛ ሆኖ ተመሳሳይ ጊዜ አለው።
ይህ ዳራ ነው ፣ እና የእኛን ሙከራ ማዘጋጀት መጀመር እንችላለን።
ደረጃ 2 ለሃርድዌር ግንባታ ክፍሎችን ያዘጋጁ
የፔንዱለም መዋቅርን ለመገንባት ፣ እኛ አንዳንድ ክፍሎችን 3 -ል (3D) እናተምታለን ፣ እና ያለንን ነገር እንደገና ጥቅም ላይ እናውለዋለን። አጠቃላይ የፔንዱለም መዋቅር በምስል 1 ውስጥ ይታያል። ከአንዳንድ በእጅ የተሰሩ ክፍሎች እና ከሎው ረጅም የእንጨት ዘንግ ጋር የ 3 ዲ የህትመት ክፍሎች ድብልቅ ነው።
በምስል 2 ውስጥ ያለው 3 ዲ የታተመው ክፍል በበሩ የላይኛው ጠርዝ ላይ ተንጠልጥሏል ፣ ምክንያቱም በራችን የሆነ ነገር ለመስቀል ቀላል ጠፍጣፋ መሬት ነው። የ STL ፋይል ማውረድ አገናኝ
xiapeiqing.github.io/doc/kits/pendulum/pen…
በምስል 3 ውስጥ ያለው አረንጓዴ ክፍል ከእንጨት የተሠራውን ዘንግ ከአንድ ምላጭ ጋር ያገናኛል ፣ እና ቅጠሉ በቀድሞው 3 ዲ የታተመ የበር መስቀያ ላይ በተጫነው በሁለት የባቡር ሐዲዶች ላይ ይቀመጣል። STL ፋይል ማውረድ አገናኝ
ሁለቱ የባቡር ሐዲዶች የሚሠሩት የድሮውን የመጋዝ ምላጭ በግማሽ በመስበር ነው ፣ ምስል 4 ን ይመልከቱ። በሥዕል 2 ውስጥ ያለው ክፍል ትክክለኛውን የመጠን መጠን አዘጋጅቶላቸዋል። በሐሳብ ደረጃ ፋይልን በመጠቀም በእነዚያ በሁለቱ የማሳያ ምላጭዎች ውስጥ የ “V” ቅርፅ ያለው ደረጃን መስራት እንችላለን። እንደ አንድ የጠርዝ ምላጭ ምላጭ ፣ ወይም ማንኛውም በእጅ የተሠራ የብረት ቁራጭ ፣ ምክንያታዊ የሆነ የጠርዝ ብረት በ “V” ቅርፅ ማሳያዎች ውስጥ መቀመጥ ይችላል። አነስ ያለ የግንኙነት ቦታ የምንፈልግበት ምክንያት በሚወዛወዝበት ጊዜ የጠፋውን የኪነታዊ ኃይል መቀነስ ነው።
በምስል 5 ውስጥ የመጨረሻው 3 ዲ የታተመ ክፍል የኤሌክትሮኒክ የመለኪያ መሣሪያውን ለመያዝ ትንሽ ትሪ ነው።
የማውረጃ አገናኙ
የብሉቱዝ የመለኪያ መሣሪያ የማዕዘን ግምት ፣ የጂሮ መለኪያ እና የፍጥነት መለኪያ መለኪያ ያመነጫል። እነዚህ ሁሉ መረጃዎች በብሉቱዝ ገመድ አልባ አገናኝ በኩል ለእኛ ይገኛሉ።
ይህንን መሣሪያ በተለያዩ የፔንዱለም ክንድ ቦታ ላይ በማሰማራት እና ልዩነቶችን በማየት ብዙ ሙከራዎችን እናካሂዳለን።
ደረጃ 3 የሙከራ ውሂብ መሰብሰብ
የተገኘውን የውሂብ ስብስብ ከመተንተን በፊት ለሙከራ መረጃ አሰባሰብ ሁለት ሊደረጉ የሚችሉ ዘዴዎች አሉ-
1) በስልኩ ኤስዲ ካርድ ውስጥ ወደተከማቸ የውሂብ ፋይል በመሣሪያው የተመረተውን ሁሉንም ልኬት በመመዘኛዎች ክፍል ውስጥ የተገለጸውን የ Android ስልክ መተግበሪያውን ይጠቀሙ። እኛ ፋይሉን ገልብጠን መረጃውን መለጠፍ እንችላለን።
2) በብሉቱዝ የነቃ ኮምፒተርን ፣ ፒሲን ፣ ላፕቶፕን ወይም RaspberryPi mini-computer ን ከመሣሪያው ጋር የብሉቱዝ ግንኙነት ለመመስረት እና ለትክክለኛ ወይም ከመስመር ውጭ ትንታኔ መረጃውን ያንብቡ።
ለእያንዳንዱ ዘዴ ሁለቱም ጥቅሞች እና ጉዳቶች አሉ ፣ እኛ ሁለቱንም እንሞክራለን እና በዚህ ትምህርት ሰጪው ውስጥ ያለውን ልዩነት እንናገራለን።
የ android መተግበሪያን ለመጠቀም ለ ዘዴ (1) አንዴ እኛ በ android የመተግበሪያ መቆጣጠሪያ በይነገጽ ውስጥ ከሆንን ፣ ከብሉቱዝ የመለኪያ መሣሪያ ወደ android ስልክ የተላከው የቴሌሜትሪ ውሂብ m2flightDatayyyymmdd_hhmmss.txt በሚባል የመረጃ መዝገብ ፋይል ውስጥ ይመዘገባል። በእርስዎ የ android ስልክ ማውረድ/m2LogFiles አቃፊ ውስጥ ሊገኝ ይችላል። አቃፊው “አውርድ” በስልክዎ የ android ስርዓተ ክወና ውስጥ ቀድሞ የነበረ አቃፊ ሲሆን “m2LogFiles” መተግበሪያው የተፈጠረበት አቃፊ ነው። የፋይሉ ስም ይዘት yyyymmdd_hhmmss በፋይል ስም የሙከራ ጊዜን (ዓመት ፣ ወር ፣ ቀን ፣ ሰዓት ፣ ደቂቃ እና ሰከንድ) ሙከራውን የሚገልጽበት መንገድ ነው።
በምዝግብ ማስታወሻው ፋይል ውስጥ ያለው እያንዳንዱ መስመር አንድ መዝገብ ነው። እሱ የሚጀምረው በክስተቱ የጊዜ ማህተም ፣ ቅድመ -መግቢያ ሕብረቁምፊ “ኢም:” ፣ በመቀጠልም 4 ባለሶስት እጥፍ ውሂብ ፣ እነሱም -
በጥሬ ዳሳሽ ሃርድዌር መመዝገቢያ መልሶ የማገገሚያ እሴቶች ውስጥ የፍጥነት መለኪያ XYZ ዘንግ ንባብ
በጥሬ ዳሳሽ ሃርድዌር መመዝገቢያ መልሶ የማገገሚያ እሴቶች ውስጥ ጋይሮስኮፕ XYZ ዘንግ ንባብ
በጥሬ አነፍናፊ ሃርድዌር መመዝገቢያ ንባቦች እሴቶች ውስጥ ማግኔቶሜትር XYZ ዘንግ ንባብ
በመርከብ ላይ የተገመተው ሮል/ፒች/ጥሬ በጥራት
በመረጃ ትንተና ደረጃ የምንጠቀመው ፕሮግራም በእኛ የፓይዘን መርሃ ግብር ወይም በ android መተግበሪያችን እየተመረተ ካለው የመረጃ ምንጭ ጋር እንዳይረብሽ የኮምፒተር ፓይዘን ፕሮግራም በመጠቀም የተፈጠረው የውሂብ ፋይል ተመሳሳይ የውሂብ ፋይል ቅርጸት ይጠቀማል።
ዘዴ (2) በመጠቀም ኮድ ማድረግ እንጀምር።
ከብሉቱዝ የመለኪያ መሣሪያ ጋር መስተጋብር ለመፍጠር ፣ ሁለት የኤስዲኬ ጣዕሞች ቀርበዋል
1) በ “pip3 install m2controller” ሊጫን የሚችል Python SDK ፣ Python3 ጥቅም ላይ የዋለው ቋንቋ ነው። የተጠቃሚ ትግበራ ኮድ ምሳሌዎች በ https://github.com/xiapeiqing/m2robots/tree/maste… ውስጥ ተከማችተዋል ለዚህ ሙከራ እኛ የፓይዘን ስክሪፕት pendulum1.py ን እንጠቀማለን
2) ጃቫ ኤስዲኬ ፣ በዚህ አስተማሪ ውስጥ ጥቅም ላይ ያልዋለ ፣ ምክንያቱም እኛ በጃቫ ውስጥ ለፕሮግራሙ ትንሽ ተጨማሪ ጥረት ሊወስድብን ስለሚችል የተገኘውን የፔንዱለም ውሂብን ከጊዜ በኋላ ማየት እና መተንተን ስለምንፈልግ።
የ Python3 የመረጃ አሰባሰብ ፕሮግራም ምንጭ ኮድ ለኮድ ተግባራዊነት ዝርዝሮች ብዙ አስተያየቶችን ይ containsል። የምንጭ ኮዱ ቅጽበታዊ እይታ እዚህ ተሰጥቷል።
-!
requestExit = ሐሰት
################################################################
#የውሂብ ትንተና ሞዱል ፣ pendulum2.py ፣ የምዝግብ ማስታወሻ ፋይልን እንዴት እንደምናገኝ አግኖስቲክስ እንዲሆን ተመሳሳይ የምዝግብ ማስታወሻ ስም ስምምነትን መጠቀም እንፈልጋለን ################## ################################################# logfilename = " m2flightData%s.txt "%(datetime.datetime.fromtimestamp (time.time ()). strftime ('%Y%m%d_%H%M%S')) dataLogfile = open (logfilename ፣" w ")
def signal_handler (ሲግ ፣ ፍሬም) ፦
ዓለም አቀፋዊ ጥያቄ የሕትመት ህትመት ('ተጠቃሚው Ctrl-C ከፕሮግራሙ አፈፃፀም ለመውጣት') ጥያቄExit = እውነተኛ ሲግናል (ሲግናል።
################################################################
#በእያንዳንዱ የመለኪያ ውሂብ በ 20Hz ተመን ላይ የሚገኝ ከሆነ ፣ ይህ “መልሶ ጥሪ” ተግባር #################################### ################################## def callbackfunc (telemetry): strTimeStamp = datetime.datetime.fromtimestamp (time.time) ())። የእንቅስቃሴ ጊዜ ('%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 ፣ telemetry ['m_fAccelHwUnit'] [0] ፣ ቴሌሜትሪ ['m_fAccelHwUnit'] [1] ፣ ቴሌሜትሪ ['m_fAccelHwUnit'] [2] ፣ ቴሌሜትሪ ['m_fGyroHwUnit'] [0] ፣ telemetry ['m_fGyroHwUnit'] [1] ፣ telemetry ['m_fGyroHwUnit'] [2] ፣ telemetry ['m_f » 'm_fMagHwUnit'] [1] ፣ ቴሌሜትሪ ['m_fMagHwUnit'] [2] ፣ ቴሌሜትሪ ['m_fRPYdeg'] [0] ፣ ቴሌሜትሪ ['m_fRPYdeg'] [1] ፣ ቴሌሜትሪ ['m_fRPYdeg'] [2]) #2)) #2)) ##################################################### ##############የውሂብ ሕብረቁምፊውን በማያ ገጹ ላይ እናተም እና በመዝገብ ፋይል ውስጥ እናስቀምጣቸዋለን #################### ############################################ ህትመት (dataStr) ውሂብLogfile.writelines (dataStr)
################################################################
#መቆጣጠሪያውን ያስጀምሩት ፣ መስኩን BleMACaddress የመሣሪያዎ MAC አድራሻ እንዲሆን ማድረጉን ያስታውሱ ##################################### #################################TODO: BleMACaddress ን በተጠቃሚ ካልተዋቀረ እናስጀምር። መቆጣጠሪያ = m2 መቆጣጠሪያ #######################################ከፔንዱለም ልኬት የተፈጠረ እና የተላከ የመለኪያ ውሂብ ይጠብቁ። apparatus ###################################################### ############### መቆጣጠሪያ.m_CommsTunnel.waitForNotifications (1.0) ከተጠየቀ ይውጡ: ############################ ##########################################የመረጃ አያያዝን ስንጨርስ የቤት አያያዝ እዚህ ይሠራል። ##################################################### ############### መቆጣጠሪያ.stop () dataLogfile.close () እረፍት
################################################################
#የውሂብ ማሰባሰብ ተጠናቅቋል ፣ አሁን የምዝግብ ማስታወሻውን እንመርምር ########################################## ########################## pendulum2.parseDataLogFile (logfilename)
ለረጅም ጊዜ ዝመና ፣ እባክዎን ይመልከቱ
አሁን የአሠራር ዘዴውን እናብራራ። ይህ የፓይዘን ፕሮግራም m2controller ተብሎ በሚጠራው በፓይፕ ሊጫነው በማይችል ጥቅል ላይ ተፃፈ። እያንዳንዱ የተቀበለው የመለኪያ ዝመና እኛ የጻፍነውን የመልሶ ማግኛ ተግባር እንዲነቃቃ እና ውሂቡን ወደ አካባቢያዊ የምዝግብ ማስታወሻ ፋይል እንዲያስቀምጥ የታችኛው ደረጃ ጥቅል የመልስ ዘዴን ይሰጣል። በ Python ፕሮግራም ወይም በአሪዮድ ተጓዳኝ መተግበሪያ የተፈጠረው የውሂብ ምዝግብ ማስታወሻ ፋይል በ android ተጓዳኝ መተግበሪያ ከሚመረተው ጋር ተመሳሳይ ነው።
በስርዓተ ክወናው የተያዘው ተጠቃሚ ctrl-C ምልክት ፣ ወደ ፕሮግራሙ ተላልፎ ፣ እና የመለኪያ ውሂቡን አዲስ መምጣት በመጠባበቅ ላይ ያለውን ማለቂያ የሌለውን ዑደት ያቆማል።
እስካሁን ድረስ የምዝግብ ማስታወሻ ፋይል በተሳካ ሁኔታ ተፈጥሯል ፣ እና ይህ ፕሮግራም የሙከራ ውጤታችንን ለማጥናት የትንተና ፕሮግራሙን ይጠራል።
እዚህ ሁለት ሙከራዎች አሉ ፣ እና ንፅፅሩ በተለያዩ ቦታዎች ላይ የ 7 ግራም መሣሪያን በማያያዝ በጣም የታወቀውን ልዩነት ያሳያል።
በምስል 2 ውስጥ የዚህን የብሉቱዝ የመለኪያ መሣሪያ ትክክለኛ ክብደት ለመወሰን እንጠቀማለን።
ምስል 3 የ 7 ግራም መሣሪያ ከፔንዱለም የታችኛው ጫፍ ጋር የተያያዘበትን የፔንዱለም ቅንብር ያሳያል። በምስል 4 ውስጥ የማዋቀር ውቅር 7 ግራም ግራም ከሚወዛወዘው ምሰሶ ጋር በጣም ቅርብ ነው።
ምስል 5 የፔንዱለም መዋቅር ቅርብ እይታ ነው።
ደረጃ 4 የውሂብ ትንተና
የብሉቱዝ የመለኪያ መሣሪያው ~ 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 (ሰከንድ) ይሰጣል።
ከሙከራዎቻችን ጋር የሚስማማ መሆኑን እንመልከት።
በ 1 ኛ ሙከራ ፣ የፔንዱለም ቅንብር ከፔንዱለም የታችኛው ጫፍ ጋር የተያያዘው 7 ግራም መሣሪያ አለው። የእኔ የምዝግብ ማስታወሻ ፋይል በሚከተለው ውስጥ ሊወርድ ይችላል-
xiapeiqing.github.io/doc/kits/pendulum/pen…
እንደገና ወደ “PendulumTestData.txt” እንደገና ይሰይሙት እና በተመሳሳይ የፓይዘን ትንተና ፕሮግራም አቃፊ ውስጥ ያድርጉት። የምንጭ ኮዱ ቅጽበታዊ እይታ እዚህ ተሰጥቷል።
-! timedelta ማስመጣት seaborn እንደ sns ከ sklearn.cluster ማስመጣት KMeans ከስብስቦች ማስመጫ ቆጣሪ ##################################### ################################ይህ ተግባር የውሂብ ፋይል ትንተና ሥራን ያካሂዳል ############## ##################################################### ## def parseDataLogFile (datafilename): ################################################## ########################በኮማ በተለየ የውሂብ ምዝግብ ማስታወሻ ፋይል (CSV) ውስጥ መረጃን ማውጣት እና በእያንዳንዱ አምድ ውስጥ ያለውን ይዘት ወደ አንድ ተንሳፋፊ ዓይነት ተለዋዋጭ ## ##################################################### ############# በክፍት (የውሂብ ፋይል ስም) እንደ csvfile: readCSV = csv.reader (csvfile, delimiter = ',') timestampS = fAccelHwUnit_x = fAccelHwUnit_y = fAccelHwUnit_z fGyroHwUnit_x = fGyroHwUnit_y = fGyroHwUnit_z = fMagHwUnit_x = fMagHwUnit_y = fMagHwUni t_z = fRPYdeg_r = fRPYdeg_p = fRPYdeg_y = ለ ረድፍ በ readCSV ውስጥ: ይሞክሩ: x = datetime.strptime (ረድፍ [0].split (',') [0], '%H:%M:%S.%f ') timestampS.append (timedelta (ሰዓታት = x.hour, ደቂቃዎች = x.minute, ሰከንዶች = x.second, microseconds = x.microsecond).total_seconds ()) fAccelHwUnit_x.append (ተንሳፋፊ (ረድፍ) [1] [4:])) fAccelHwUnit_y.append (ተንሳፋፊ (ረድፍ [2])) fAccelHwUnit_z.append (ተንሳፋፊ (ረድፍ [3])) fGyroHwUnit_x.append (ተንሳፋፊ (ረድፍ [4])) fGyroHwUnit_y.append (ተንሳፋፊ) (ረድፍ [5])) fGyroHwUnit_z.append (ተንሳፋፊ (ረድፍ [6])) fMagHwUnit_x.append (ተንሳፋፊ (ረድፍ [7])) fMagHwUnit_y.append (ተንሳፋፊ (ረድፍ [8])) fMagHwUnit_z.append (ተንሳፋፊ (ረድፍ) [9])) fRPYdeg_r.append (ተንሳፋፊ (ረድፍ [10])) fRPYdeg_p.append (ተንሳፋፊ (ረድፍ [11])) fRPYdeg_y.append (ተንሳፋፊ (ረድፍ [12])) ካልሆነ በስተቀር 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)
################################################################
#ለትክክለኛው የማወዛወዝ ጊዜ ግምት የናሙና ድግግሞሽ ትክክለኛ ግምት እንፈልጋለን ################################# ############################# FsHz = getSamplingIntervalS (timestampS) ################### #####################################################ይጠቀሙ ለፔንዱለም ክፍለ ጊዜ ትንተና በአመለካከት ርዕስ ማጣቀሻ ስርዓት ውፅዓት ውስጥ የፒች ክፍል ############################## ########################### analy_timeSequence (timestampS ፣ fRPYdeg_p ፣ FsHz ፣ ‘pitch’) ############ ##################################################### ####ለፔንዱለም ክፍለ ጊዜ ትንተና የፍጥነት መለኪያ ጥሬ ልኬትን ይጠቀሙ ################################# ########################### ትንታኔ_timeSequence (timestampS ፣ fAccelHwUnit_x ፣ FsHz ፣ 'accel') ############# ##################################################### ####ለፔንዱለም ክፍለ ጊዜ ትንተና የጂሮ ጥሬ የመለኪያ ውፅዓት ይጠቀሙ ######################################### ############################ analy_timeSequence (timestampS ፣ fGyroHwUnit_y ፣ FsHz ፣ ') gyro ') ህትመት (' ተከናውኗል ፣ እንኳን ደስ አለዎት:-) ') plt.show () ################################## ###################################በብሉቱዝ የግንኙነት ሂደት ውስጥ ፣ የውሂብ ኮም ፓኬት ሊያገኝ የሚችልበት ዕድል አለ። ጠፍቷል#እኛ በተዘረጋው ፓኬት#ወደ “ምልክት እና ስርዓት ለበለጠ ዝርዝር” በመጥለቅ የ 20Hz የመመዝገቢያ መረጃን ከውጭ አካላት ለመለየት K-mean ን እንጠቀማለን ################# ################################################### def getSamplingIntervalS (timestampS): plt.figure () sampleIntervalS = np.diff (timestampS) sns.distplot (sampleIntervalS) plt.ylabel ('histogram') plt.xlabel ('የመለኪያ ክፍተት (ዎች)') ክላስተርCnt = 5 km = KMeans (n_clusters = clusterCnt) km.fit (sampleIntervalS.reshape (-1, 1)) centroids = km.cluster_centers_ elemCnt = Counter (km.labels_) ክስተትCnt = ለ ii በክልል (ክላስተርCnt): ክስተትCnt.append (elemCnt [ii]) FsHz = 1/ሴንትሮይድስ [መከሰትCnt.index (ከፍተኛ (ክስተትCnt))] FsHz ን ይመልሱ
################################################################
#ተደጋጋሚ መለኪያውን ፣ ማለትም ፣ ተደጋጋሚውን ክፍል ለማግኘት የአጭር ጊዜ ኤፍኤፍቲ ይጠቀሙ ፣ ፒን ቢን የፔንዱለም ማወዛወዙ የእኛ ምርጥ ግምት ############# ####################################### def analy_timeSequence (timestampS ፣ timeSeqData ፣ FsHz ፣ strComment) በለስ ፣ (መጥረቢያ 1 ፣ መጥረቢያ 2) = plt.subplots (nrows = 2) ax1.plot (timestampS ፣ timeSeqData ፣ marker = 'o' ፣ markerfacecolor = 'blue' ፣ markersize = 2 ፣ color = 'skyblue' ፣ linewidth = 1) ax1. 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: የፔሮዶግራሙ # - ፍሪኮች - ድግግሞሽ ቬክተር # - ቢንሶች - የጊዜ መያዣዎች ማዕከላት # - im: matplotlib.image. AxesImage ምሳሌ በሴራው pkresult = np.where (Pxx == np.amax (Pxx)) oscFreqHz = freqs [pkresult [0] [0] ህትመት ('pendulum oscillation Freq (Hz) =%f, Period (Sec) =%f, ግምታዊ የመረጃ ምንጭ%s'%(oscFreqHz, 1/oscFreqHz ፣ strComment)) 1/oscFreqHz ይመለሱ
################################################################
#ይህንን ፕሮግራም ለብቻው የምናከናውን ከሆነ ፣ ማለትም በፔንዱለም1.py ካልተጠራን ፣#ለመተንተን ነባሪ የምዝግብ ማስታወሻ ፋይል ስም እንገልፃለን ###################### ############################################ _name_ == "_main_ ከሆነ ": defaultFilename = './PendulumTestData.txt' os.path.isfile ከሆነ (defaultFilename): parseDataLogFile (defaultFilename) ሌላ: ማተም (" ነባሪ የምዝግብ ማስታወሻ %s የለም " %defaultFilename)
ለረጅም ጊዜ ዝመና ፣ እባክዎን ይመልከቱ
የምንጭ ኮዱ ዝርዝር አስተያየቶችን ይ containsል ፣ እዚህ የሂሳብ ግምት ከፍተኛ ደረጃ ማጠቃለያ እንስጥ።
1) መጀመሪያ የ CSV ፋይል ይዘትን በኮምፒተር ውስጥ እናነባለን ፣ “csv” የተባለ የፓይዘን ጥቅል ተጠቅመን። ወቅታዊ መለኪያ አለን።
21: 34: 26.362 ፣ ኢም 0 ፣ -128 ፣ 14464 ፣ -8 ፣ 144 ፣ -96 ፣ 2112 ፣ -1280 ፣ 1664 ፣ -0.5 ፣ -5.5 ፣ 40.5
21: 34: 26.373 ፣ ኢም 128 ፣ 0 ፣ 14272 ፣ -8 ፣ 136 ፣ 40 ፣ 2112 ፣ -1280 ፣ 1664 ፣ -0.5 ፣ -6.5 ፣ 40.0
21: 34: 26.412 ፣ ኢም 448 ፣ -64 ፣ 14208 ፣ -8 ፣ 136 ፣ 24 ፣ 2176 ፣ -1280 ፣ 1664 ፣ -0.5 ፣ -7.5 ፣ 40.5
21: 34: 26.462 ፣ ኢም 448 ፣ -128 ፣ 14272 ፣ -8 ፣ 120 ፣ 16 ፣ 2176 ፣ -1280 ፣ 1664 ፣ -0.5 ፣ -8.0 ፣ 40.5
2) የመለኪያ መጠኑ በጣም ወሳኝ ስለሆነ እና የፔንዱለም ክፍለ ጊዜ ግምት ስህተትን በቀጥታ የሚያስተዋውቅ በመሆኑ እነሱን ለመገመት እንፈልጋለን። የእኛ የስም የመለኪያ ጊዜ 50ms ፣ ማለትም ፣ 20Hz ነው። በሁሉም ልኬቶች ላይ አማካይ ጥሩ ይመስላል ፣ ግን እኛ አልፎ አልፎ የውሂብ ማስተላለፊያ ፓኬት እናጣለን ፣ የዝማኔው ጊዜ 100ms ወይም 150ms ይሆናል ፣…
የእነዚህ መረጃዎች መከሰት ካሰብን ፣ ምስል 1 ን ይመልከቱ ፣ እንደ ሰው ፣ በቀላሉ የዓይን ብሌን እሴት 0.05 ሰከንዶች ሊኖረን ይችላል። ሆኖም ፣ እኛ ከዚህ የተሻለ ማድረግ እንችላለን?
ስሌትን ለመገመት ጥሩዎቹን ብቻ ለመምረጥ የምደባ ዘዴን መጠቀም አለብን። ፓይዘን በክላስተር እኛን ለመርዳት ወይም ምደባን ለመናገር KMeans የሚባል የመሳሪያ ሳጥን አለው። እነዚህ ጽንሰ -ሐሳቦች በብዙ ትላልቅ መረጃዎች እና በአይአይ አካባቢዎች ውስጥ ያገለግላሉ።
3) ምስል 2 ሁለት ምስሎችን ይ containsል። የላይኛው ሴራ በዲግ ውስጥ የእኛ የማወዛወዝ አንግል መለኪያ የጊዜ-ጎራ ቅደም ተከተል ነው። በሁለተኛው ውስጥ ወደ ኤክስ-ዘንግ የጊዜ ማህተም በማመልከት ፣ በግምት 22.5 ዑደቶችን በ 50 ሰከንድ ማንበብ እንችላለን ፣ ይህም ወደ 2.22 ሰከንድ ፔንዱለም ጊዜ ይተረጎማል። ይህን ሂደት በራስ -ሰር ለማድረግ እና የበለጠ ትክክለኛ ግምት የሚኖርበት መንገድ አለ? አዎ ፣ እኛ ትንሽ የመለኪያ መረጃን የሚጠቀም እና ድግግሞሹን የሚነግረን spectrogram የተባለ የሂሳብ መሣሪያን መጠቀም እንችላለን ፣ ከዚህ በታች ያለውን ስእል ይመልከቱ። ለጨለማው መስመር የ y- ዘንግ ንባብ የፔንዱለም ማወዛወዝ ድግግሞሽ ነው። አግድም መስመር መሆን በሙከራው ውስጥ የፔንዱለም ማወዛወዝ በጭራሽ እንዳልተለወጠ ያረጋግጣል። የማወዛወዝ ድግግሞሽ የተገላቢጦሽ እሴት የፔንዱለም ማወዛወዝ ጊዜ ነው።
በፕሮግራሙ የተደረገው የመጨረሻው ሪፖርት የጽሑፍ ማጠቃለያ ነው-
የፔንዱለም ማወዛወዝ Freq (Hz) = 0.449224 ፣ ክፍለ ጊዜ (ሰከንድ) = 2.226059 ፣ የግምታዊ መረጃ ምንጭ
2.22 ሰከንድ የቀደመውን የዓይን ኳስ የእጅ ስሌታችን ውጤታችንን ከፕሮግራሙ ከተሰላው እሴት ጋር በትክክል የሚስማማ ነው።
ከ 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 ፣ ግምታዊ የመረጃ ምንጭ - ጋይሮ
በዚህ ደረጃ የመጨረሻው ሀሳብ ፣ የግቤት ውጤቶች የተለያዩ የግብዓት መረጃ ምንጭን በመጠቀም እንዴት በትክክል ሊመሳሰሉ ይችላሉ? ይህ ፀረ-አእምሮ ነው። ይህንን ጥያቄ ለአንባቢያን እተወዋለሁ። እዚህ አንድ ፍንጭ አለ-የአወዛጋቢውን ድግግሞሽ ለመገመት የአጭር ጊዜ ኤፍኤፍቲ እየተጠቀምን መሆኑን ያስታውሱ? በዲጂታል ጎራ ውስጥ ፣ ከተንሳፋፊ የቁጥር ግምት ይልቅ የድግግሞሽ ግምቱ በተለዩ ድግግሞሽ ማጠራቀሚያዎች ውስጥ ይሰጣል።
ደረጃ 5 የወደፊት የሥራ ምክሮች
የወደፊቱ የሥራ ምክሮች ጥቂት ምድቦች አሉ።
በቀደመው ደረጃ ፣ የሙከራ ስህተታችንን ከ ~ 5% ወደ 1% ያነሰ መቀነስ ችለናል ፣ ከዚያ የተሻለ ማድረግ እንችላለን? የማወዛወዝ መጠኑን በከፍተኛ ሁኔታ እየቀነሰ መምጣቱን ፣ አንድ አስተዋፅኦ ያለው ነገር ፔንዱለም በሚወዛወዝበት ጊዜ የሚከሰት የአየር መጎተት ሊሆን ይችላል። የአየር መጎተቻ መጎተቻውን ለመቀነስ የፔንዱለም መስቀለኛ ክፍል የተስተካከለ ቅርፅ እንዲሆን መለወጥ ሊያስፈልገው ይችላል።
የማያቋርጥ ከፍተኛ-ደረጃ ምልክት ለማውጣት አስማሚ የማጣሪያ ቴክኒኮችን በመጠቀም የተገኘውን የጊዜ-ተለዋዋጭ ትርፍ ተግባራዊ ማድረግ እንችላለን? ይህ በእንዲህ እንዳለ ፣ የመጠን መጠኑን መቀነስ ከውጭ ኃይሎች ጋር ይዛመዳል።
ከ “ቀላል የሃርሞኒክ እንቅስቃሴ” የበለጠ ቀለል ያለ ነገር ማግኘት አንችልም። በጣም የተወሳሰበ ነገርን ፣ የስፖርት እንቅስቃሴን ፣ የውሃ ሮኬት ማስነሻ ቅደም ተከተል ፣ ወዘተ ለመተንተን ፔንዱለም የምንተነትንባቸውን መገልገያዎችን መጠቀም እንችላለን?
መልካም ጠለፋ
የሚመከር:
የማስመሰል ጥናት: 9 ደረጃዎች
የማስመሰል ጥናት - በዚህ አስተማሪው ውስጥ የ Autodesk ን ውህደት 360 ን ተጠቀምኩ። ይህ አስተማሪው የማስመሰል ጥናት ነው። በዚህ ውስጥ የራስ -ሰር ዴስክ ውህደት ሞዴልን እና የማስመሰል የስራ ቦታን ተጠቅሜያለሁ።
በቤት ውስጥ የሚቲዎሮሎጂ ጥናት ይፍጠሩ - 3 ደረጃዎች
የቤት ውስጥ የሚቲዎሮሎጂ ዳሰሳ ይፍጠሩ - ለዚህ ርካሽ የቤት ውስጥ የንፋስ ዳሰሳ ጥናት ፣ አንዳንድ ርካሽ የፒንግ ፓንግ ኳሶችን ፣ የፒ.ቪ.ፒ. ቱቦን ፣ እጅግ በጣም ሙጫውን ፣ የሙቀት ምንጭን እና የድሮውን የኤችዲ ሞተርን እንፈልጋለን።
በ VHDL ውስጥ የቀላል መሸጎጫ መቆጣጠሪያ ንድፍ -4 ደረጃዎች
በ VHDL ውስጥ የቀላል መሸጎጫ መቆጣጠሪያ ንድፍ - እኔ ይህንን አስተማሪ እጽፋለሁ ፣ ምክንያቱም አንዳንድ የማጣቀሻ VHDL ኮድ ለማግኘት እና የመሸጎጫ መቆጣጠሪያን መንደፍ ለመጀመር ትንሽ አስቸጋሪ ሆኖብኛል። ስለዚህ እኔ የመሸጎጫ መቆጣጠሪያን ከባዶ ነድፌ በ FPGA ላይ በተሳካ ሁኔታ ሞከርኩት። ገጽ አለኝ
የአርዱዲኖ አቧራ ጥናት 8 ደረጃዎች
የአርዱዲኖ አቧራ ጥናት - በማርስ ላይ መኖር ምን ይመስላል? አየር መተንፈስ ይችላል? ደህና ነው? ምን ያህል አቧራ አለ? አውሎ ነፋሶች ምን ያህል ተደጋጋሚ ናቸው? ለእነዚህ ጥያቄዎች ለማንኛውም መልስ አስበው ያውቃሉ?
በዘመናዊ ዴስክ መብራት የተሻለ ጥናት - IDC2018IOT: 10 ደረጃዎች (ከስዕሎች ጋር)
በዘመናዊ ዴስክ መብራት የተሻለ ጥናት - IDC2018IOT: በምዕራቡ ዓለም ያሉ ሰዎች በመቀመጥ ብዙ ጊዜ ያሳልፋሉ። ጠረጴዛው ላይ ፣ ዙሪያውን መንዳት ፣ ቴሌቪዥን ማየት እና ሌሎችም። አንዳንድ ጊዜ ከመጠን በላይ መቀመጥ ሰውነትዎን ሊጎዳ እና የማተኮር ችሎታዎን ሊጎዳ ይችላል። ከተወሰነ ጊዜ በኋላ መራመድ እና መነሳት ለእያንዳንዱ