คุณสามารถลองยกเลิกตัวกรองได้ สิ่งนี้สามารถขจัดความล่าช้า แต่ยังเพิ่มสัญญาณรบกวนความถี่สูง หลังจากทำสิ่งนี้แล้วคุณสามารถลองควบคุมหุ่นยนต์โดยยึดตามค่าประมาณส่วนหัวใหม่ ในการทำเช่นนี้คุณต้องทดลองเพื่อหาพารามิเตอร์ตัวกรองความถี่ต่ำ ตัวอย่างเช่นในเวลาที่ไม่ต่อเนื่องคุณอาจพบ:
θ (T)Tθที
θ^(t)=a0θ(t)+a1θ(t−1)+⋯+akθ(t−k)
โดยที่เป็นหัวเรื่องโดยประมาณ (เอาท์พุทเข็มทิศ) ที่ เวลา ,เป็นหัวข้อที่เกิดขึ้นจริง (พื้นดินความจริง) ในขณะทีθ^(t)tθt
คุณสามารถค้นหาพารามิเตอร์โดยทำการทดสอบที่คุณวัดความจริงพื้นฐานโดยใช้วิธีภายนอกอื่น เมื่อรับตัวอย่างคุณมีสมการนี้:
n + k + 1 [ θ ( k ) ⋮ θ ( k + n ) ] = [ θ ( k ) θ ( k - 1 ) ⋯ θ ( 0 ) ⋮ ⋮ain+k+1
⎡⎣⎢⎢⎢θ^(k)⋮θ^(k+n)⎤⎦⎥⎥⎥=⎡⎣⎢⎢θ(k)⋮θ(k+n)θ(k−1)⋮θ(k+n−1)⋯⋯θ(0)⋮θ(n)⎤⎦⎥⎥⎡⎣⎢⎢⎢⎢a0a1⋮ak⎤⎦⎥⎥⎥⎥
และคุณสามารถแก้ไขได้โดยการค้นหา:
ที่เป็นเมทริกซ์หลอกผกผันของMไม่มีวิธีที่ชัดเจนในการดังนั้นคุณอาจจะเดาได้ สำหรับคะแนนโบนัสสิ่งนี้จะถือว่าเสียงเป็นสีขาวและเป็นอิสระ แต่คุณสามารถทำให้ขาวขึ้นก่อนเพื่อลบอคติและปรับปรุงการประมาณค่าพารามิเตอร์ของคุณ
⎡⎣⎢⎢⎢⎢a0a1⋮ak⎤⎦⎥⎥⎥⎥=⎡⎣⎢⎢θ(k)⋮θ(k+n)θ(k−1)⋮θ(k+n−1)⋯⋯θ(0)⋮θ(n)⎤⎦⎥⎥+⎡⎣⎢⎢⎢θ^(k)⋮θ^(k+n)⎤⎦⎥⎥⎥
M+Mk
คุณสามารถแปลงเป็นฟังก์ชันถ่ายโอน (หรือที่เรียกว่า Z-transform ในโดเมนเวลาไม่ต่อเนื่อง):
Θ^(z)Θ(z)=a0+a1z−1+...+akz−k
หากต้องการยกเลิกสิ่งนี้เราสามารถใช้อินเวอร์ส (โดยที่เป็นค่าประมาณส่วนหัวใหม่ของเรา):θ¯(t)
Θ¯(z)Θ^(z)=1a0+a1z−1+⋯+akz−k
การแปลงกลับเป็นโดเมนเวลา:
a0θ¯(t)+a1θ¯(t−1)+⋯+akθ¯(t−k)=θ^(t)
θ¯(t)=θ^(t)−a1θ¯(t−1)−⋯−akθ¯(t−k)a0
จากนั้นเราสามารถใช้เพื่อควบคุมหุ่นยนต์θ¯
นี่จะมีเสียงดังมากดังนั้นคุณอาจต้องการที่จะใส่ผ่านตัวกรอง low-pass ก่อนการใช้งาน (แม้ว่าอาจจะมีความล่าช้าน้อยกว่า)θ¯
การแก้ปัญหาข้างต้นยังคงไม่ใช่วิธีที่ดีที่สุด การประมาณการที่มีเสียงดังอาจไม่มีประโยชน์มาก ถ้าเราใส่สิ่งนี้ลงในสมการของสเปซพื้นที่เราสามารถออกแบบตัวกรองคาลมานและตัวควบคุมผลป้อนกลับแบบเต็มรัฐโดยใช้ LQR (linear quadratic regulator) การรวมกันของตัวกรองคาลมานและตัวควบคุม LQR ยังเป็นที่รู้จักกันในนามของตัวควบคุม LQG (เกาส์เชิงเส้นกำลังสองเชิงเส้น) และใช้การกู้คืนแบบวนรอบเพื่อรับตัวควบคุมที่ดี
เมื่อต้องการทำสิ่งนี้ให้สร้างสมการสถานะพื้นที่ (ไม่ต่อเนื่อง):
x⃗ (t)=Ax⃗ (t−1)+Bu⃗ (t−1) ,y⃗ (t)=Cx⃗ (t)
หรือ:
x⃗ (t)=⎡⎣⎢⎢⎢⎢θ(t)θ(t−1)⋯θ(t−k)⎤⎦⎥⎥⎥⎥=⎡⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢A110⋮00A201⋮00⋯⋯⋯⋯⋯000⋮10000⋮01000⋮00⎤⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥x⃗ (t−1)+⎡⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢B0B10⋮00⎤⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥u⃗ (t−1)
y⃗ (t)=[θ^(t)]=⎡⎣⎢⎢⎢⎢a0a1⋮ak⎤⎦⎥⎥⎥⎥x⃗ (t)
โดยที่แสดงพลังในมอเตอร์เพื่อหมุนหุ่นยนต์และ , , ,คือจำนวนที่ส่งผลต่อส่วนหัวตามตำแหน่งและความเร็ว (คุณสามารถเลือกค่าที่ไม่เป็นศูนย์ได้ สำหรับองค์ประกอบอื่นของเมทริกซ์และแถวแรกของเมทริกซ์ด้วย)u⃗ (t−1)A0A1B0B1BA
จากนั้นคุณสามารถสร้างผู้สังเกตการณ์ของคุณ (ตัวกรองคาลมาน) โดยเลือกการประมาณค่าเสียงและสำหรับเสียงในกระบวนการและเสียงการวัด ตัวกรองคาลมานสามารถหาค่าประมาณที่เหมาะสมที่สุดของการกำหนดโดยให้สมมติฐานเกี่ยวกับเสียงรบกวน หลังจากเลือกการประมาณค่าเสียงแล้วการติดตั้งจะขึ้นอยู่กับการติดตั้งโค้ดสำหรับตัวกรองคาลมาน (สมการสามารถพบได้บนวิกิพีเดียดังนั้นฉันจะไม่ข้ามมันไปที่นี่QoRo
หลังจากนั้นคุณสามารถออกแบบตัวควบคุม LQR ได้ในเวลานี้เลือกและแสดงน้ำหนักที่กำหนดให้กับการควบคุมหัวเรื่องและพยายาม จำกัด การใช้ในกรณีนี้คุณอาจเลือกและขวา] สิ่งนี้ทำได้เนื่องจาก LQR ค้นหาคอนโทรลเลอร์ที่ดีที่สุดเพื่อลดฟังก์ชั่นลดต้นทุน:QcRcQc=⎡⎣⎢⎢⎢⎢10⋮000⋮000⋮0⋯⋯⋯00⋮0⎤⎦⎥⎥⎥⎥Rc=[1]J=∑(x⃗ TQx⃗ +u⃗ TRu⃗ )
จากนั้นคุณเพียงแค่ใส่มันผ่านสมการพีชคณิต Riccati ที่ไม่ต่อเนื่อง:
P=Q+AT(P−PB(R+BTPB)−1BTP)A
และแก้ปัญหาเป็นบวกแน่นอนเมทริกซ์PP
ดังนั้นกฎหมายควบคุมของคุณสามารถมอบให้โดย:
u⃗ (t)=−K(x⃗ (t)−x⃗ ref(t))
โดยที่K=(R+BTPB)−1(BTPA)
ในที่สุดการทำเช่นนี้จะไม่ได้ผลดีมากและมีแนวโน้มที่จะไม่เสถียรเนื่องจากเสียงดัง ที่จริงนั่นหมายถึงตัวเลือกที่ 1 อาจไม่ทำงานเว้นแต่คุณจะใส่ผ่านตัวกรอง low-pass (แม้ว่าจะไม่จำเป็นต้องใช้เวลาหน่วงเวลานานก็ตาม) นี่เป็นเพราะในขณะที่ LQR รับประกันความเสถียรทันทีที่คุณใช้ตัวกรอง Kalman การรับประกันจะหายไปθ¯
ในการแก้ไขปัญหานี้เราใช้เทคนิคการถ่ายโอนแบบวนรอบซึ่งคุณปรับตัวกรองคาลมานแล้วเลือกโดยที่เป็นเมทริกซ์ต้นฉบับของคุณปรับเพื่อให้ตัวกรองคาลมานเหมาะสมที่สุด . คือเมทริกซ์สมมาตรเชิงบวกที่แน่นอนใด ๆ ซึ่งคุณสามารถเลือกได้ว่าเป็นเมทริกซ์เอกลักษณ์ ( ) จากนั้นเพียงแค่เลือกเกลาQคอนโทรลเลอร์ที่เป็นผลลัพธ์ควรมีเสถียรภาพมากขึ้นเมื่อแม้ว่าเมทริกซ์จะไม่ถูกปรับซึ่งหมายความว่ามันจะเหมาะสมที่สุดน้อยกว่าQ 0 Q V V = I q q → ∞ Q oQo=Q0+q2BVBTQ0QVV=Iqq→∞Qo
ดังนั้นคุณเพียงเพิ่มจนกว่ามันจะเสถียร อีกวิธีหนึ่งที่คุณสามารถทำให้เสถียรคือเพิ่ม (หรือลด ) เพื่อทำให้คอนโทรลเลอร์ LQR ช้าลงR c Q cqRcQc