คำถามติดแท็ก algorithm

6
เหตุใดการแบ่งฮาร์ดแวร์จึงใช้เวลานานกว่าการคูณ
เหตุใดการแบ่งฮาร์ดแวร์จึงใช้เวลานานกว่าการคูณบนไมโครคอนโทรลเลอร์มาก? เช่นใน dsPIC การหารใช้เวลา 19 รอบในขณะที่การคูณจะใช้เวลาหนึ่งรอบนาฬิกา ฉันผ่านบทเรียนบางอย่างรวมถึงอัลกอริทึมการหารและอัลกอริทึมการคูณใน Wikipedia นี่คือเหตุผลของฉัน อัลกอริทึมการหารเช่นวิธีการหารช้าพร้อมการเรียกคืนบนวิกิพีเดียเป็นอัลกอริทึมแบบเรียกซ้ำ ซึ่งหมายความว่าผลลัพธ์ (ขั้นกลาง) จากขั้นตอนkจะใช้เป็นอินพุตไปยังขั้นตอนk+1ซึ่งหมายความว่าอัลกอริทึมเหล่านี้ไม่สามารถทำการขนานกันได้ ดังนั้นจึงใช้เวลาอย่างน้อยหนึ่งnรอบในการแบ่งให้เสร็จสมบูรณ์ในขณะที่nมีจำนวนบิตในเงินปันผล สำหรับการจ่ายเงินปันผลแบบ 16 บิตนี่จะเท่ากับอย่างน้อย 16 รอบ อัลกอริทึมการคูณไม่จำเป็นต้องเรียกซ้ำซึ่งหมายความว่ามันเป็นไปได้ที่จะทำให้มันขนานกัน อย่างไรก็ตามมีอัลกอริทึมการคูณที่แตกต่างกันมากมายและฉันไม่มีเงื่อนงำที่ไมโครคอนโทรลเลอร์อาจใช้ การคูณจะทำงานกับฮาร์ดแวร์ / ไมโครคอนโทรลเลอร์ได้อย่างไร ฉันได้พบอัลกอริทึมตัวคูณ Daddaซึ่งควรจะใช้เวลาหนึ่งรอบนาฬิกาเพื่อเสร็จสิ้น อย่างไรก็ตามสิ่งที่ฉันไม่ได้รับที่นี่คืออัลกอริทึมของ Dadda ดำเนินการในสามขั้นตอนในขณะที่ผลลัพธ์จากขั้นตอนที่ 1 ถูกนำมาใช้ในขั้นตอนที่ 2 เป็นต้นจากนี้สิ่งนี้จะใช้เวลาอย่างน้อยสามรอบนาฬิกา

5
FPGA สามารถทำงานกับพีซีแบบมัลติคอร์ได้หรือไม่?
ฉันไม่เข้าใจว่า FPGA สามารถใช้เร่งอัลกอริทึมได้อย่างไร ขณะนี้ฉันกำลังใช้อัลกอริทึมเรียลไทม์แบบเสียเวลาบนแล็ปท็อป quadcore เพื่อให้สามารถคำนวณสี่แบบพร้อมกันได้ ฉันได้รับแจ้งเมื่อเร็ว ๆ นี้ว่า FPGA อาจให้ประสิทธิภาพที่ดียิ่งขึ้น ฉันไม่เข้าใจวิธีการทำงาน มีใครช่วยอธิบายวิธีที่ FPGA เร่งอัลกอริทึมและถ้าฉันควรเปลี่ยนเป็นโซลูชัน Xilinx หรือ Altera FPGA หรือทำการคำนวณบนแล็ปท็อป quadcore ของฉันต่อไป รายละเอียดเพิ่มเติม: อัลกอริทึมทำงาน 20 เครือข่ายประสาทเทียมโดยใช้อินพุตที่ป้อนผ่านการแปลงแพ็คเก็ตเวฟเล็ต ขอบคุณทุกท่านสำหรับคำตอบที่ดี

6
อัลกอริทึม PID: วิธีการบัญชีสำหรับการเปลี่ยนแปลงค่าอินพุตอย่างรวดเร็วหลังจากล่าช้าเป็นเวลานาน
ฉันกำลังพยายามใช้อัลกอริทึม PID พื้นฐานใน Arduino Leonardo เพื่อผสมน้ำประปาร้อนและเย็นโดยใช้วาล์วควบคุมแบบเซอร์โว เป้าหมายคือรักษาอุณหภูมิให้อยู่ใกล้กับจุดที่กำหนดมากที่สุด สิ่งสำคัญอย่างยิ่งคือการป้องกันไม่ให้อุณหภูมิเอาต์พุตเกินขนาดที่กำหนดไว้เพื่อป้องกันผู้ใช้จากการเบิร์น สิ่งที่สำคัญอันดับสองคือทำให้อุณหภูมิใกล้กับจุดที่กำหนดโดยเร็วที่สุด สำหรับการเปลี่ยนแปลงอุณหภูมิเล็กน้อยการใช้งานมาตรฐานของอัลกอริทึม PIDดูเหมือนว่าจะใช้ได้ แต่ฉันไม่รู้ว่าจะอธิบายความล่าช้าที่อาจเกิดขึ้นได้เมื่อรอให้น้ำร้อนไปถึงวาล์วเนื่องจากความล่าช้าเหล่านี้นานกว่าความล่าช้ามาตรฐานมากหลังจากเปลี่ยนตำแหน่งวาล์ว เห็นได้ชัดว่าขึ้นอยู่กับความยาวของเส้นน้ำร้อนและเวลาตั้งแต่การใช้น้ำร้อนครั้งสุดท้ายมันอาจใช้เวลาหลายสิบวินาทีสำหรับน้ำร้อนที่จะไปถึงวาล์วดังนั้นในช่วงเวลานี้อุณหภูมิของน้ำยังคงค่อนข้างคงที่ที่อุณหภูมิต่ำ และวาล์วน้ำร้อนจะเปิดเร็ว ๆ นี้ 100% ส่วนประกอบหนึ่งเริ่มสะสมค่าความผิดพลาดขนาดใหญ่ เมื่อน้ำร้อนถึงวาล์วในที่สุดอุณหภูมิที่ตรวจพบจะเพิ่มขึ้นอย่างรวดเร็วจนถึงอุณหภูมิน้ำร้อนสูงสุด เนื่องจากข้อผิดพลาดที่สำคัญขนาดใหญ่วาล์วน้ำร้อนจะถูกเก็บไว้ที่ 100% เป็นเวลานานหลังจากที่อุณหภูมิเกินกว่าที่กำหนดไว้เนื่องจากการรอคอยค่าหนึ่งจะลดลงสู่ระดับปกติ ดังนั้นผลลัพธ์คือน้ำอุณหภูมิสูงสุดเป็นเวลาหลายสิบ (สิบ) วินาที ฉันไม่แน่ใจว่าจะคำนึงถึงความล่าช้าที่เป็นไปได้นี้นานแค่ไหน ในกรณีเช่นนี้จะเป็นการดีหรือไม่ที่จะกำหนดขอบเขตบน (และล่าง) บนค่าความผิดพลาดแบบอินทิกรัลเพื่อ จำกัด เวลาตอบสนองสูงสุด? นี้ดูเหมือนว่าจะพ่ายแพ้วัตถุประสงค์ของส่วนประกอบและยังจะยังคงกำหนดบางส่วนล่าช้าหลังจากถึง SetPoint หรือมีวิธีที่ดีกว่าในการจัดการกับการเปลี่ยนแปลงอินพุทที่รวดเร็วหลังจากล่าช้าเป็นเวลานานหรือไม่? ขอบคุณสำหรับคำแนะนำใด ๆ !

4
สวม leveling บน EEPROM ของไมโครคอนโทรลเลอร์
ตัวอย่างเช่น: แผ่นข้อมูลสำหรับ ATtiny2313 (เช่นเดียวกับเอกสารข้อมูล Atmel AVR ส่วนใหญ่) ระบุ: ความทนทาน EEPROM ที่ตั้งโปรแกรมได้ในระบบ 128 Bytes: 100,000 รอบการเขียน / ลบ ลองนึกภาพโปรแกรมที่ต้องการเพียงสองไบต์ในการจัดเก็บการกำหนดค่าบางส่วนอื่น ๆ 126 ไบต์เสียอย่างมีประสิทธิภาพ สิ่งที่เกี่ยวข้องกับฉันคือการอัพเดตปกติของสองไบต์การกำหนดค่าอาจทำให้ EEPROM ของอุปกรณ์เสื่อมสภาพและทำให้ใช้งานไม่ได้ อุปกรณ์ทั้งหมดจะไม่น่าเชื่อถือเพราะในช่วงเวลาหนึ่งคุณไม่สามารถติดตามได้ว่าไบต์ใดใน EEPROM ที่ไม่น่าเชื่อถือ มีวิธีที่ชาญฉลาดในการสวมระดับบน EEPROM ของไมโครคอนโทรลเลอร์เมื่อคุณใช้เพียงหนึ่งหรือสองไบต์จาก 128 ที่มีอยู่อย่างมีประสิทธิภาพหรือไม่

2
คำนวณความต้านทานของการเชื่อมต่อที่เป็นไปได้ทั้งหมดภายในกล่องดำ N-terminal ตามการวัดระหว่างขั้ว
แม้ว่ามันจะดูเหมือนว่านี่ไม่ใช่ SE ที่ถูกต้องสำหรับเธรดนี้เนื่องจากมันเกี่ยวกับการสร้างอัลกอริทึม แต่ปัญหาคือเกี่ยวกับการหาวิธีการที่เป็นระบบเพื่อทำให้การลดความซับซ้อนของวงจรต้านทานขนาดใหญ่ตามอำเภอใจของรูปแบบนั้น ๆ ที่ทำงานเรามีกางเกงขาสั้นหลายชิ้นภายในอุปกรณ์ แต่เราไม่รู้ว่าอยู่ที่ไหน อุปกรณ์เป็นกล่องดำที่ไม่สามารถเปิดได้ ฉันใช้มัลติมิเตอร์ของฉันและเติมเมทริกซ์ของความต้านทานในแต่ละชุดของเทอร์มินัลที่มีให้ สิ่งที่ต้องการ: อย่างที่คุณทราบการวัดเหล่านี้ไม่มีความหมายเพราะครอสคัปปลิ้งกับเทอร์มินัลอื่น ฉันต้องการรู้ว่าอวนเชื่อมต่อกันอย่างไร - กล่าวอีกนัยหนึ่งฉันต้องการคำนวณค่าของความต้านทานที่แสดงในวงจรสมมูลต่อไปนี้ (ตัวอย่างสำหรับ N = 4) จำลองวงจรนี้ - แผนผังที่สร้างโดยใช้CircuitLab มี: การวัดและ: ความต้านทานที่ไม่รู้จักดังนั้นจึงเป็นไปได้ เพื่อแก้ปัญหาวงจรทั้งหมดตามตารางที่แสดงด้านบนด้วยอัลกอริทึมต่อไปนี้:Σi = 1ยังไม่มีข้อความ- 1( i - 1 )∑i=1N−1(i−1)\sum_{i=1}^{N-1}(i-1)Σi = 1ยังไม่มีข้อความ- 1( i - 1 )∑i=1N−1(i−1)\sum_{i=1}^{N-1}(i-1) สำหรับการวัดแต่ละครั้งทำให้ Rij โดยที่ i และ j เป็น 0 ... N คำนวณสูตรของความต้านทานที่เท่ากันของวงจรระหว่างเทอร์มินัล …

1
อัลกอริทึม AHRS ภายใต้การเร่งความเร็วเชิงเส้นอย่างต่อเนื่อง
ฉันได้ลองอัลกอริธึมหลายอย่างเพื่อให้ได้พิตช์ม้วนและหันเหภายใต้การเร่งความเร็วเชิงเส้นและการสั่นสะเทือนอย่างต่อเนื่อง (เล็กกว่า 0.4g, ความถี่ต่ำกว่า 10HZ) ไม่มีใครให้ผลลัพธ์ที่ดีเพราะการอ่านอย่างใดอย่างหนึ่งลอยหรือได้รับผลกระทบมากเกินไปจากการเร่งเชิงเส้น สิ่งที่ฉันต้องการบรรลุคือเมื่อการเร่งความเร็วภายนอกมีขนาดเล็กกว่า + -0.4g ข้อผิดพลาดของระยะพิทซ์แอนด์โรลควรเล็กกว่า + -1deg ฉันได้ลองอัลกอริทึมเหล่านี้แล้ว: อัลกอริทึมของ Madgwick เมื่อการตั้งค่า Beta ได้สูงมากการลู่เข้าจะเร็ว แต่มุมจะไวต่อการเร่งความเร็วเชิงเส้นมากกว่า ฉันปรับมันลงและลดข้อผิดพลาดภายใต้การเร่งความเร็วเชิงเส้นลงไปที่ + -0.5deg อย่างไรก็ตามหากการสั่นสะเทือนเป็นแบบต่อเนื่องการอ่านจะดริฟท์และใช้เวลานานในการรวมกันเป็นค่าจริง มันสมเหตุสมผลเนื่องจากภายใต้การเร่งเชิงเส้นไจโรได้รับความเชื่อถือมากขึ้น ขั้นตอนวิธีของมาโฮนีย์ ในทางตรงกันข้ามกับของ Madgwick มันไม่ได้ลอยไปเลยไม่ว่าจะใช้ค่าใดสำหรับ Ki และ Kp อย่างไรก็ตามจะได้รับผลกระทบจากการเร่งความเร็วเชิงเส้นเสมอ (ข้อผิดพลาดใหญ่กว่า + -6deg) กรองคาลมานแบบดั้งเดิม ใช้เวลามากมายในการปรับเวกเตอร์ R และ Q ขนาดใหญ่เหล่านั้น จนถึงตอนนี้ก็มีการแสดงเช่นเดียวกับมาโฮนีย์ ฉันใช้มีดโกน IMU ฉันรู้ว่ามีเซนเซอร์ราคาถูกมันเป็นไปไม่ได้ที่จะบรรลุผลเช่นเดียวกับคนนี้ มีตัวเลือกเพิ่มเติมสองสามอย่างเช่น UKF แต่เป็นความเจ็บปวดที่จะเข้าใจหรือนำไปใช้ ยินดีรับข้อเสนอแนะใด ๆ
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.