ลิงค์บทช่วยสอนที่เกี่ยวข้อง
- ปฏิสัมพันธ์ Simulink / MATLAB
- กิจกรรมควบคุมอุณหภูมิ
- กิจกรรมการควบคุมมอเตอร์
ลิงค์ภายนอกที่เกี่ยวข้อง
เนื้อหา
- แบบจำลองพืชวงเปิด
- การใช้ตัวควบคุม PID ใน Simulink
- รันโมเดลวงปิด
- แยกโมเดลลงใน MATLAB
- การออกแบบคอนโทรลเลอร์ภายใน Simulink
แบบจำลองพืชวงเปิด
ในบทนำ: Simulink Modelingหน้าที่เราแสดงวิธีการใช้ Simulink เพื่อจำลองระบบทางกายภาพ โดยทั่วไปแล้ว Simulink ยังสามารถจำลองระบบควบคุมที่สมบูรณ์ รวมถึงอัลกอริธึมการควบคุมนอกเหนือจากโรงงานจริง ดังที่ได้กล่าวไว้ก่อนหน้านี้ Simulink มีประโยชน์อย่างยิ่งสำหรับการสร้างคำตอบโดยประมาณของแบบจำลองทางคณิตศาสตร์ที่อาจยากต่อการแก้ "ด้วยมือ" ตัวอย่างเช่น พิจารณาว่าคุณมีโรงงานที่ไม่เชิงเส้น วิธีการทั่วไปคือการสร้างการประมาณเชิงเส้นของโรงงาน จากนั้นใช้แบบจำลองเชิงเส้นเพื่อออกแบบตัวควบคุมโดยใช้เทคนิคการวิเคราะห์ คุณสามารถใช้ Simulink เพื่อจำลองประสิทธิภาพของคอนโทรลเลอร์ของคุณเมื่อนำไปใช้กับโมเดลไม่เชิงเส้นเต็มรูปแบบ สามารถใช้ Simulink สำหรับสร้างโมเดลเชิงเส้น และ MATLAB สามารถใช้สำหรับการออกแบบคอนโทรลเลอร์ตามที่อธิบายไว้ในหน้าบทนำอื่นๆ นอกจากนี้ยังสามารถเข้าถึงสิ่งอำนวยความสะดวกการออกแบบการควบคุมต่างๆ ของ MATLAB ได้โดยตรงจากภายใน Simulink เราจะสาธิตทั้งสองแนวทางในหน้านี้
ระลึกถึงแบบจำลอง Simulink ของระบบรถไฟของเล่นที่ได้มาจากบทนำ: Simulink Modelingหน้าและภาพด้านล่าง
คุณสามารถสร้างแบบจำลองนี้ด้วยตัวคุณเอง หรือคุณสามารถดาวน์โหลดแบบจำลองที่เสร็จสมบูรณ์แล้วได้ด้วยการคลิกขวาที่นี่แล้วเลือกบันทึกลิงค์เป็น .... สมมติว่ารถไฟเดินทางในมิติเดียว (ตามราง) เราต้องการใช้การควบคุมกับเครื่องยนต์ของรถไฟเพื่อให้สตาร์ทและหยุดได้อย่างราบรื่น และเพื่อให้สามารถติดตามคำสั่งความเร็วคงที่โดยมีข้อผิดพลาดน้อยที่สุดในสภาวะคงที่ .
การใช้ตัวควบคุม PID ใน Simulink
ขั้นแรก ให้เราสร้างโครงสร้างสำหรับการจำลองระบบรถไฟในการป้อนกลับแบบเอกภาพด้วยตัวควบคุม PID เพื่อให้เข้าใจโมเดล Simulink ของเรามากขึ้น ก่อนอื่นเราจะบันทึกโมเดลรถไฟลงในบล็อกระบบย่อยของมันเอง ในการดำเนินการนี้ ให้ลบบล็อกขอบเขตสามบล็อกและแทนที่แต่ละบล็อกด้วยบล็อก Out1 จากไลบรารี Sinks ติดป้ายกำกับแต่ละบล็อก Out1 ด้วยชื่อตัวแปรที่สอดคล้องกัน "x1_dot", "x1" และ "x2" จากนั้นลบบล็อก Signal Generator และแทนที่ด้วยบล็อก In1 จากไลบรารี Sources ระบุอินพุตนี้ "F" สำหรับแรงที่เกิดขึ้นระหว่างเครื่องยนต์ของรถไฟและรางรถไฟ แบบจำลองของคุณควรปรากฏดังนี้
จากนั้นเลือกบล็อกทั้งหมดในโมเดลของคุณ (Ctrl A) และเลือกสร้างระบบย่อยจากการเลือกหลังจากคลิกขวาที่หน้าต่างโมเดล ด้วยการจัดเรียงและติดฉลากใหม่เล็กน้อย โมเดลของคุณจะปรากฏดังที่แสดงด้านล่าง
ตอนนี้เราสามารถเพิ่มคอนโทรลเลอร์ให้กับระบบของเราได้แล้ว เราจะใช้ตัวควบคุม PID ซึ่งสามารถนำไปใช้ได้โดยใช้บล็อกตัวควบคุม PID จากไลบรารีต่อเนื่อง วางบล็อกนี้ในอนุกรมกับระบบย่อยของรถไฟ แบบจำลองของคุณจะปรากฏดังนี้ ต่อไปนี้ เราจะสร้างแบบจำลองตัวควบคุมที่สร้างแรง "F" โดยตรง สิ่งนี้ละเลยไดนามิกที่เครื่องยนต์ของรถไฟสร้างแรงบิดที่ส่งไปยังล้อ และต่อมาละเลยไดนามิกของวิธีสร้างแรงที่อินเทอร์เฟซของล้อ/แทร็ก วิธีการที่เรียบง่ายนี้ถูกนำมาใช้ ณ จุดนี้ เนื่องจากเราเพียงต้องการแนะนำฟังก์ชันพื้นฐานของ Simulink สำหรับการออกแบบและวิเคราะห์คอนโทรลเลอร์
ดับเบิลคลิกที่บล็อก PID Controller เราจะตั้งค่าเริ่มต้นอินทิกรัล (I)ได้ฟิลด์เท่ากับ 0 และจะปล่อยให้สัดส่วน (P)และอนุพันธ์ (D)ได้รับเป็นค่าเริ่มต้นที่ 1 และ 0 ตามลำดับ จากนั้นให้เพิ่ม Sum block จากไลบรารี Math Operations ดับเบิลคลิกที่บล็อกนี้และแก้ไขรายการสัญญาณฟิลด์เป็น "|+-" เนื่องจากเราต้องการควบคุมความเร็วของเครื่องยนต์รถไฟของเล่น เราจึงป้อนกลับความเร็วของเครื่องยนต์ สิ่งนี้ทำได้โดยการแตะที่เส้นนอกสัญญาณ "x1_dot" และเชื่อมต่อกับเครื่องหมายลบของ Sum block เอาต์พุตของบล็อก Sum จะเป็นข้อผิดพลาดความเร็วสำหรับเครื่องยนต์รถไฟ และควรเชื่อมต่อกับอินพุตของบล็อกตัวควบคุม PID เชื่อมต่อบล็อกตามที่อธิบายและเพิ่มป้ายกำกับ แบบจำลองของคุณควรปรากฏดังนี้
ถัดไปเพิ่มบล็อก Signal Builder จากไลบรารี Sources เพื่อแสดงความเร็วที่สั่งไปยังรถไฟ เนื่องจากเราต้องการออกแบบตัวควบคุมเพื่อให้รถไฟแล่นขึ้นอย่างราบรื่นด้วยความเร็วและหยุดพักอย่างราบรื่น เราจะทดสอบระบบด้วยคำสั่งความเร็วที่เพิ่มขั้นสูงสุด 1 m/s ตามด้วยลดระดับลงเป็น 0 m/s (จำ ว่าระบบของเราคือกของเล่นรถไฟ). หากต้องการสร้างสัญญาณคำสั่งประเภทนี้ ให้ดับเบิลคลิกที่บล็อกตัวสร้างสัญญาณ จากนั้นเลือกเปลี่ยนช่วงเวลาจากแกนเมนูที่ด้านบนของหน้าต่างโต้ตอบของบล็อก ตั้งเวลาสูงสุดฟิลด์เป็น "300" วินาที ถัดไป ตั้งค่าการก้าวขึ้นให้เกิดขึ้นที่ 10 วินาที และการก้าวลงให้เกิดขึ้นที่ 150 วินาที ทำได้โดยคลิกที่ส่วนที่เกี่ยวข้องกันของกราฟสัญญาณ (เส้นแนวตั้งซ้ายและขวา) แล้วลากเส้นไปยังตำแหน่งที่ต้องการ หรือป้อนเวลาที่ต้องการในตฟิลด์ที่ด้านล่างของหน้าต่าง เมื่อเสร็จแล้ว สัญญาณของคุณควรปรากฏดังนี้
เพิ่มบล็อก Scope จากไลบรารี Sinks และใช้เพื่อแทนที่บล็อก Out1 สำหรับความเร็วของรถไฟ ตั้งชื่อบล็อกใหม่ โมเดลของคุณจะปรากฏดังนี้
ตอนนี้เราพร้อมที่จะเรียกใช้การจำลองวงปิดแล้ว หากคุณต้องการข้ามขั้นตอนข้างต้น คุณสามารถดาวน์โหลดโมเดลที่สมบูรณ์พร้อมการควบคุมโดยการคลิกขวาที่นี่แล้วเลือกบันทึกลิงค์เป็น ....
รันโมเดลวงปิด
ก่อนรันโมเดล เราจำเป็นต้องกำหนดค่าตัวเลขให้กับตัวแปรแต่ละตัวที่ใช้ในโมเดล สำหรับระบบรถไฟ เราจะใช้ค่าต่อไปนี้
= 1 กก
= 0.5 กก
= 1 นิวตัน/วินาที
= 1 นิวตัน
= 0.02 วินาที/เมตร
= 9.8 ม./วินาที^2
สร้างใหม่m-ไฟล์และป้อนคำสั่งต่อไปนี้
M1 = 1;M2 = 0.5;k = 1;F = 1;mu = 0.02;g = 9.8;
เรียกใช้ไฟล์ m ของคุณในหน้าต่างคำสั่ง MATLAB เพื่อกำหนดค่าเหล่านี้ Simulink จะจดจำตัวแปร MATLAB เหล่านี้เพื่อใช้ในแบบจำลอง ต่อไป เราต้องตั้งเวลาที่การจำลองของเราจะทำงานให้ตรงกับช่วงเวลาของคำสั่งจากบล็อก Signal Builder สิ่งนี้ทำได้โดยการเลือกพารามิเตอร์การกำหนดค่าโมเดลจากการจำลองเมนูที่ด้านบนของหน้าต่างโมเดลและเปลี่ยนหยุดเวลาฟิลด์เป็น "300" ตอนนี้ เรียกใช้การจำลองและเปิดขอบเขต "x1_dot" เพื่อตรวจสอบเอาต์พุตความเร็ว ผลลัพธ์ที่แสดงด้านล่างแสดงให้เห็นว่าระบบลูปปิดมีความเสถียรสำหรับคอนโทรลเลอร์นี้
เนื่องจากประสิทธิภาพที่ทำได้ข้างต้นไม่เป็นที่น่าพอใจเนื่องจากข้อผิดพลาดในสถานะคงตัว เราจะแสดงวิธีการออกแบบคอนโทรลเลอร์ของเราใหม่ ก่อนอื่นเราจะสาธิตวิธีการดึงโมเดลจาก Simulink เข้าสู่ MATLAB เพื่อการวิเคราะห์และออกแบบ จากนั้นเราจะสาธิตวิธีการออกแบบการควบคุมจากภายใน Simulink โดยตรง
แยกโมเดลลงใน MATLAB
กล่องเครื่องมือ Simulink Control Design มีฟังก์ชันในการแยกโมเดลจาก Simulink ไปยังพื้นที่ทำงาน MATLAB สิ่งนี้มีประโยชน์อย่างยิ่งสำหรับแบบจำลองที่ซับซ้อนหรือไม่เชิงเส้น สิ่งนี้ยังมีประโยชน์สำหรับการสร้างแบบจำลองเวลาที่ไม่ต่อเนื่อง (สุ่มตัวอย่าง) สำหรับตัวอย่างนี้ ให้เราแยกแบบจำลองเวลาต่อเนื่องของระบบย่อยรถไฟของเรา ก่อนอื่นเราต้องระบุอินพุตและเอาต์พุตของโมเดลที่เราต้องการแยก ข้อมูลเข้าสู่ระบบรถไฟคือแรง. เราสามารถกำหนดข้อเท็จจริงนี้ได้โดยคลิกขวาที่สัญญาณแทน "F" (เอาต์พุตของบล็อก PID) แล้วเลือกจุดวิเคราะห์เชิงเส้น > อินพุตวงเปิดจากเมนูผลลัพธ์ ในทำนองเดียวกัน เราสามารถกำหนดเอาต์พุตของระบบรถไฟได้โดยคลิกขวาที่สัญญาณ "x1_dot" แล้วเลือกจุดวิเคราะห์เชิงเส้น > เอาท์พุตวงเปิดจากเมนูผลลัพธ์ อินพุตและเอาต์พุตเหล่านี้จะถูกระบุด้วยสัญลักษณ์ลูกศรขนาดเล็กดังแสดงในรูปต่อไปนี้ เนื่องจากเราต้องการแยกแบบจำลองของรถไฟด้วยตัวเองโดยไม่มีการควบคุม เราจำเป็นต้องลบสัญญาณป้อนกลับเพิ่มเติม มิฉะนั้น เราจะดึงแบบจำลองวงปิดจาก
ถึง
. แบบจำลองของคุณควรปรากฏดังนี้
ตอนนี้เราสามารถแยกโมเดลได้โดยการเปิดเครื่องมือวิเคราะห์เชิงเส้น. สิ่งนี้ทำได้โดยการเลือกการออกแบบการควบคุม > การวิเคราะห์เชิงเส้นจากใต้การวิเคราะห์เมนูที่ด้านบนของหน้าต่างโมเดล ทำตามขั้นตอนเหล่านี้จะเปิดหน้าต่างที่แสดงด้านล่าง
เครื่องมือนี้สร้างวัตถุ LTI จากแบบจำลอง Simulink (อาจไม่ใช่เชิงเส้น) และให้คุณระบุจุดที่จะทำการทำให้เป็นเส้นตรง เนื่องจากโมเดล Simulink ของเราเป็นแบบเชิงเส้นอยู่แล้ว การเลือกจุดปฏิบัติการของเราจะไม่มีผลใดๆ และเราสามารถปล่อยไว้เป็นค่าเริ่มต้นได้สภาพเริ่มต้นของรุ่น. หากต้องการสร้างโมเดลเชิงเส้น ให้เลือกขั้นตอนที่ปุ่มในรูปด้านบน ซึ่งระบุด้วยสามเหลี่ยมสีเขียวเล็กๆ เดอะเครื่องมือวิเคราะห์เชิงเส้นตอนนี้ควรปรากฏหน้าต่างดังที่แสดงด้านล่าง
จากการตรวจสอบข้างต้น การตอบสนองทีละขั้นตอนของแบบจำลองเชิงเส้นจะถูกสร้างขึ้นโดยอัตโนมัติ เปรียบเทียบการตอบสนองขั้นตอนนี้กับขั้นตอนที่สร้างขึ้นโดยการจำลองระบบรถไฟวงเปิดในบทนำ: Simulink Modelingหน้าคุณจะเห็นว่าการตอบสนองเหมือนกัน สิ่งนี้สมเหตุสมผลเนื่องจากแบบจำลองการจำลองเป็นแบบเส้นตรงอยู่แล้ว นอกจากนี้ กระบวนการทำให้เป็นเส้นตรงสร้างวัตถุลินซิส1แสดงในพื้นที่ทำงานการวิเคราะห์เชิงเส้นข้างบน. อ็อบเจ็กต์ LTI นี้สามารถส่งออกเพื่อใช้ภายใน MATLAB ได้โดยการลากออบเจ็กต์ไปที่พื้นที่ทำงาน MATLABส่วนของเครื่องมือวิเคราะห์เชิงเส้นหน้าต่าง.
หลังจากแยกโมเดลนี้แล้ว ตอนนี้เราสามารถใช้สิ่งอำนวยความสะดวกทั้งหมดที่ MATLAB มอบให้สำหรับการออกแบบคอนโทรลเลอร์ ตัวอย่างเช่น ขอให้เราใช้คำสั่งต่อไปนี้เพื่อสร้างและวิเคราะห์ระบบวงปิดที่สะท้อนถึงแบบจำลอง Simulink ที่สร้างขึ้นด้านบน
sys_cl = ข้อเสนอแนะ (linsys1,1); p = ขั้ว (sys_cl) z = ศูนย์ (sys_cl)
p = -0.9237 + 0.0000i 0.0000 + 0.0000i -0.2342 + 1.6574i -0.2342 - 1.6574i
z = -0.0980 + 1.4108i -0.0980 - 1.4108i 0.0000 + 0.0000i
การตรวจสอบข้างต้นแสดงให้เห็นว่ามีการยกเลิกขั้วเป็นศูนย์ที่จุดเริ่มต้น นอกจากนี้ ขั้วที่เหลือมีส่วนจริงเป็นลบ และขั้วที่ "ช้าที่สุด" สองขั้วนั้นซับซ้อน สิ่งนี้แสดงให้เห็นว่าระบบวงปิดในรูปแบบปัจจุบันมีความเสถียรและเสาหลักมีการลดการสั่นสะเทือน สิ่งนี้สอดคล้องกับผลการจำลองวงปิดของเราจากด้านบน จากนั้นเราสามารถใช้ MATLAB ในการออกแบบคอนโทรลเลอร์ใหม่เพื่อลดการสั่นสะเทือนในการตอบสนอง ตัวอย่างเช่น ในกรณีนี้ เราจะสาธิตวิธีการเข้าถึงฟังก์ชันบางอย่างของ MATLAB จากภายใน Simulink โดยตรง
การออกแบบคอนโทรลเลอร์ภายใน Simulink
เราสามารถเปิดตัวเครื่องมือโต้ตอบเพื่อปรับแต่งคอนโทรลเลอร์ของเราจากภายใน Simulink วิธีหนึ่งที่สามารถทำได้คือการดับเบิลคลิกที่ตัวควบคุม PID ในแบบจำลองและเลือกปรับแต่งปุ่มเพื่อเปิดใช้PID จูนเนอร์เครื่องมือ. แทนที่จะทำเช่นนี้ เราจะเปิดตัวทั่วไปมากขึ้นผู้ออกแบบระบบควบคุมเครื่องมือโดยการเลือกการออกแบบการควบคุม > ผู้ออกแบบระบบควบคุมจากใต้การวิเคราะห์เมนูที่อยู่ด้านบนของหน้าต่างโมเดล ทำตามขั้นตอนเหล่านี้จะเปิดหน้าต่างที่แสดงด้านล่าง
สิ่งแรกที่ต้องทำคือการระบุบล็อกตัวควบคุมที่จะปรับ สิ่งนี้ทำได้โดยการคลิกครั้งแรกที่เพิ่มบล็อกปุ่ม จากนั้นเลือกบล็อกตัวควบคุม PID จากหน้าต่างผลลัพธ์ที่แสดงด้านล่าง คลิกถัดไปตกลงปุ่ม. โปรดทราบว่าตัวควบคุมที่แสดงโดยบล็อกประเภทอื่นๆ (Transfer Function, State Space และอื่นๆ) ก็สามารถปรับแต่งได้เช่นกัน
ก่อนที่เราจะดำเนินการปรับแต่งคอนโทรลเลอร์ เราต้องระบุอินพุตและเอาต์พุตของระบบวงปิดที่เราต้องการวิเคราะห์ก่อน สิ่งนี้ทำในลักษณะเดียวกับที่เราแยกโมเดลเชิงเส้นลงใน MATLAB โดยเฉพาะ คลิกขวาที่สัญญาณคำสั่งความเร็ว (เอาต์พุตของบล็อกตัวสร้างสัญญาณ) แล้วเลือกจุดวิเคราะห์เชิงเส้น > การรบกวนการป้อนข้อมูลจากเมนูผลลัพธ์เพื่อระบุอินพุตของระบบวงปิดของเรา จากนั้น คลิกขวาที่สัญญาณความเร็วของเครื่องยนต์รถไฟ ("x1_dot") แล้วเลือกจุดวิเคราะห์เชิงเส้น > การวัดผลลัพธ์จากเมนูเพื่อเลือกผลลัพธ์ของระบบของเรา แบบจำลองของคุณควรปรากฏดังนี้ โดยที่สัญลักษณ์ลูกศรขนาดเล็กระบุอินพุตและเอาต์พุตของโมเดล
ตอนนี้เราได้ระบุบล็อกที่จะปรับแต่งและสัญญาณอินพุตและเอาต์พุตของเราแล้ว ตอนนี้เราสามารถเริ่มด้วยการปรับแต่งคอนโทรลเลอร์ เลือกตกลงปุ่มในแก้ไขสถาปัตยกรรมหน้าต่าง. ตอนนี้เราควรจะเห็นหน้าต่างที่แสดงด้านล่าง
การคลิกวิธีการปรับแต่งปุ่ม เราจะเลือกแผนการออกแบบที่เราต้องการใช้สำหรับการออกแบบคอนโทรลเลอร์ของเรา ในตัวอย่างนี้ เราจะใช้วิธีการออกแบบรูทโลคัส และด้วยเหตุนี้เราจะเลือกตัวแก้ไขรูตโลคัสภายใต้การปรับแต่งกราฟิกดังที่แสดงไว้ข้างต้น วิธีการรูตโลคัสในการออกแบบใช้พล็อตที่แสดงเสาวงปิดที่เป็นไปได้ทั้งหมดเป็นพารามิเตอร์ (อัตราขยายของลูป) แปรผันจากศูนย์ถึงไม่สิ้นสุด โดยเฉพาะอย่างยิ่ง เราทำการเลือกต่อไปนี้ในเลือกตอบกลับเพื่อแก้ไขหน้าต่างและเลือกพล็อต.
จากนั้นเราควรได้รับแผนผังรูทโลคัสที่แสดงด้านล่าง ซึ่งแสดงตำแหน่งเสาวงปิดที่เป็นไปได้ทั้งหมดของระบบรถไฟวงปิดภายใต้การควบคุมตามสัดส่วนอย่างง่าย จากการตรวจสอบโครงเรื่อง เราจะเห็นว่าค่าทั้งหมดของอัตราขยายของลูปจะวางเสาวงปิดในระนาบครึ่งซ้ายซึ่งแสดงถึงการตอบสนองที่เสถียร
หากเราลดอัตราขยายของลูปได้เพียงพอ เราสามารถย้ายเสาวงปิดเพิ่มเติมเข้าไปในระนาบครึ่งซ้าย และเราสามารถเปลี่ยนประสิทธิภาพของระบบของเราได้ สิ่งนี้สามารถทำได้ในเชิงกราฟิกโดย "จับ" กล่องสีชมพูที่ทำเครื่องหมายตำแหน่งเสาวงปิดและลากไปยังตำแหน่งเสาวงเปิด (ทำเครื่องหมายโดยx's). เราสามารถตรวจสอบการตอบสนองขั้นตอนวงปิดที่เกี่ยวข้องได้โดยคลิกที่พล็อตใหม่ภายใต้ระบบควบคุมแท็บและเลือกขั้นตอนใหม่. เมื่อหน้าต่างต่อไปนี้ปรากฏขึ้นให้เราเลือกใหม่ การตอบสนองการถ่ายโอนอินพุต-เอาต์พุตจากเลือกการตอบสนองต่อพล็อตเมนูแบบเลื่อนลงตามที่แสดง
จากนั้นเราจะระบุสัญญาณอินพุตและเอาต์พุตภายในขั้นตอนใหม่ในการวางแผนหน้าต่างที่แสดงด้านล่าง
จากนั้นคลิกที่พล็อตปุ่ม. จากผลลัพธ์ของการตอบสนองขั้นตอนวงปิด เราจะเห็นว่าการตอบสนองนั้นเสถียร แต่มีข้อผิดพลาดในสถานะคงตัว
โปรดจำไว้ว่าการเพิ่มการควบคุมแบบบูรณาการเป็นวิธีหนึ่งในการลดข้อผิดพลาดในสภาวะคงตัวของระบบวงปิด ในกรณีนี้ การเพิ่มตัวรวมผ่านตัวควบคุมจะทำให้ระบบเป็นประเภท 1 โดยที่ระบบประเภท 1 สามารถติดตามการอ้างอิงขั้นตอนโดยไม่มีข้อผิดพลาดในสถานะคงตัวเป็นศูนย์ เรียกคืนตัวควบคุม PI ในรูปแบบต่อไปนี้
(1)
การตรวจสอบสมการนี้แสดงให้เห็นว่าตัวควบคุม PI จะเพิ่มตัวรวมและศูนย์ในระบบวงเปิดของเรา สามารถเพิ่ม integrator เข้ากับระบบได้โดยการคลิกขวาในฟิลด์ของ root locus plot และเลือกเพิ่ม Pole/Zero > Integratorจากเมนูผลลัพธ์ ในทำนองเดียวกัน เลขศูนย์สามารถเพิ่มได้โดยการคลิกขวาที่รูทโลคัสพล็อตแล้วเลือกเพิ่ม Pole/Zero > Real Zeroจากเมนูผลลัพธ์ จากนั้นคลิกที่แกนจริงที่คุณต้องการวางศูนย์ คุณสามารถย้ายศูนย์ได้โดยคลิกที่ศูนย์แล้วลากไปยังตำแหน่งใหม่ นอกจากนี้ยังสามารถแก้ไขตัวชดเชยได้โดยพิมพ์ตำแหน่งโพลและศูนย์โดยตรง สามารถทำได้โดยการคลิกขวาที่รูทโลคัสพล็อตแล้วเลือกแก้ไขตัวชดเชยจากเมนูผลลัพธ์ หน้าต่างที่เปิดขึ้นแสดงอยู่ด้านล่าง เราจะวางอินทิเกรเตอร์ซึ่งเป็นศูนย์จริงที่ -0.15 และจะเลือกลูปที่ได้รับเท่ากับ 0.05
แผนการตอบสนองขั้นตอนวงปิดที่เป็นผลลัพธ์แสดงอยู่ด้านล่างซึ่งแสดงให้เห็นว่าเครื่องยนต์ของรถไฟถูกพักอย่างราบรื่นและไม่มีข้อผิดพลาดในสถานะคงที่เป็นศูนย์สำหรับคำสั่งความเร็วคงที่
อัตราขยายการควบคุมที่เลือกสามารถนำไปใช้กับโมเดล Simulink ได้โดยคลิกที่ปรับปรุงบล็อกปุ่มภายในระบบควบคุมแท็บที่แสดงด้านบน จากนั้นสามารถเรียกใช้การจำลองด้วยตัวควบคุมที่ปรับแต่งใหม่นี้ การคลิกที่บล็อกขอบเขตสำหรับความเร็วของเครื่องยนต์รถไฟจะสร้างโครงเรื่องดังที่แสดงด้านล่าง
โดยรวมแล้ว การตอบสนองนี้ดูเหมือนว่าจะบรรลุเป้าหมายของเราในการทำให้รถไฟแล่นด้วยความเร็วและกลับสู่สภาวะหยุดนิ่งได้อย่างราบรื่น โดยยังคงรักษาข้อผิดพลาดในสภาวะคงที่ให้น้อยที่สุด คำตอบนี้ตรงกับผลลัพธ์ที่สร้างขึ้นด้วยผู้ออกแบบระบบควบคุมข้างต้นเนื่องจากการวิเคราะห์นั้นและแบบจำลอง Simulink ใช้แบบจำลองเชิงเส้นเดียวกันทุกประการ
เผยแพร่ด้วย MATLAB® 9.2