บทแนะนำการควบคุมสำหรับ MATLAB และ Simulink (2023)

ลิงค์บทช่วยสอนที่เกี่ยวข้อง

  • ปฏิสัมพันธ์ Simulink / MATLAB
  • กิจกรรมควบคุมอุณหภูมิ
  • กิจกรรมการควบคุมมอเตอร์

ลิงค์ภายนอกที่เกี่ยวข้อง

เนื้อหา

  • แบบจำลองพืชวงเปิด
  • การใช้ตัวควบคุม PID ใน Simulink
  • รันโมเดลวงปิด
  • แยกโมเดลลงใน MATLAB
  • การออกแบบคอนโทรลเลอร์ภายใน Simulink

แบบจำลองพืชวงเปิด

ในบทนำ: Simulink Modelingหน้าที่เราแสดงวิธีการใช้ Simulink เพื่อจำลองระบบทางกายภาพ โดยทั่วไปแล้ว Simulink ยังสามารถจำลองระบบควบคุมที่สมบูรณ์ รวมถึงอัลกอริธึมการควบคุมนอกเหนือจากโรงงานจริง ดังที่ได้กล่าวไว้ก่อนหน้านี้ Simulink มีประโยชน์อย่างยิ่งสำหรับการสร้างคำตอบโดยประมาณของแบบจำลองทางคณิตศาสตร์ที่อาจยากต่อการแก้ "ด้วยมือ" ตัวอย่างเช่น พิจารณาว่าคุณมีโรงงานที่ไม่เชิงเส้น วิธีการทั่วไปคือการสร้างการประมาณเชิงเส้นของโรงงาน จากนั้นใช้แบบจำลองเชิงเส้นเพื่อออกแบบตัวควบคุมโดยใช้เทคนิคการวิเคราะห์ คุณสามารถใช้ Simulink เพื่อจำลองประสิทธิภาพของคอนโทรลเลอร์ของคุณเมื่อนำไปใช้กับโมเดลไม่เชิงเส้นเต็มรูปแบบ สามารถใช้ Simulink สำหรับสร้างโมเดลเชิงเส้น และ MATLAB สามารถใช้สำหรับการออกแบบคอนโทรลเลอร์ตามที่อธิบายไว้ในหน้าบทนำอื่นๆ นอกจากนี้ยังสามารถเข้าถึงสิ่งอำนวยความสะดวกการออกแบบการควบคุมต่างๆ ของ MATLAB ได้โดยตรงจากภายใน Simulink เราจะสาธิตทั้งสองแนวทางในหน้านี้

ระลึกถึงแบบจำลอง Simulink ของระบบรถไฟของเล่นที่ได้มาจากบทนำ: Simulink Modelingหน้าและภาพด้านล่าง

บทแนะนำการควบคุมสำหรับ MATLAB และ Simulink (1)

คุณสามารถสร้างแบบจำลองนี้ด้วยตัวคุณเอง หรือคุณสามารถดาวน์โหลดแบบจำลองที่เสร็จสมบูรณ์แล้วได้ด้วยการคลิกขวาที่นี่แล้วเลือกบันทึกลิงค์เป็น .... สมมติว่ารถไฟเดินทางในมิติเดียว (ตามราง) เราต้องการใช้การควบคุมกับเครื่องยนต์ของรถไฟเพื่อให้สตาร์ทและหยุดได้อย่างราบรื่น และเพื่อให้สามารถติดตามคำสั่งความเร็วคงที่โดยมีข้อผิดพลาดน้อยที่สุดในสภาวะคงที่ .

การใช้ตัวควบคุม PID ใน Simulink

ขั้นแรก ให้เราสร้างโครงสร้างสำหรับการจำลองระบบรถไฟในการป้อนกลับแบบเอกภาพด้วยตัวควบคุม PID เพื่อให้เข้าใจโมเดล Simulink ของเรามากขึ้น ก่อนอื่นเราจะบันทึกโมเดลรถไฟลงในบล็อกระบบย่อยของมันเอง ในการดำเนินการนี้ ให้ลบบล็อกขอบเขตสามบล็อกและแทนที่แต่ละบล็อกด้วยบล็อก Out1 จากไลบรารี Sinks ติดป้ายกำกับแต่ละบล็อก Out1 ด้วยชื่อตัวแปรที่สอดคล้องกัน "x1_dot", "x1" และ "x2" จากนั้นลบบล็อก Signal Generator และแทนที่ด้วยบล็อก In1 จากไลบรารี Sources ระบุอินพุตนี้ "F" สำหรับแรงที่เกิดขึ้นระหว่างเครื่องยนต์ของรถไฟและรางรถไฟ แบบจำลองของคุณควรปรากฏดังนี้

บทแนะนำการควบคุมสำหรับ MATLAB และ Simulink (2)

จากนั้นเลือกบล็อกทั้งหมดในโมเดลของคุณ (Ctrl A) และเลือกสร้างระบบย่อยจากการเลือกหลังจากคลิกขวาที่หน้าต่างโมเดล ด้วยการจัดเรียงและติดฉลากใหม่เล็กน้อย โมเดลของคุณจะปรากฏดังที่แสดงด้านล่าง

บทแนะนำการควบคุมสำหรับ MATLAB และ Simulink (3)

ตอนนี้เราสามารถเพิ่มคอนโทรลเลอร์ให้กับระบบของเราได้แล้ว เราจะใช้ตัวควบคุม PID ซึ่งสามารถนำไปใช้ได้โดยใช้บล็อกตัวควบคุม PID จากไลบรารีต่อเนื่อง วางบล็อกนี้ในอนุกรมกับระบบย่อยของรถไฟ แบบจำลองของคุณจะปรากฏดังนี้ ต่อไปนี้ เราจะสร้างแบบจำลองตัวควบคุมที่สร้างแรง "F" โดยตรง สิ่งนี้ละเลยไดนามิกที่เครื่องยนต์ของรถไฟสร้างแรงบิดที่ส่งไปยังล้อ และต่อมาละเลยไดนามิกของวิธีสร้างแรงที่อินเทอร์เฟซของล้อ/แทร็ก วิธีการที่เรียบง่ายนี้ถูกนำมาใช้ ณ จุดนี้ เนื่องจากเราเพียงต้องการแนะนำฟังก์ชันพื้นฐานของ Simulink สำหรับการออกแบบและวิเคราะห์คอนโทรลเลอร์

(Video) วิธีใช้พื้นฐาน matlab simulink

บทแนะนำการควบคุมสำหรับ MATLAB และ Simulink (4)

ดับเบิลคลิกที่บล็อก PID Controller เราจะตั้งค่าเริ่มต้นอินทิกรัล (I)ได้ฟิลด์เท่ากับ 0 และจะปล่อยให้สัดส่วน (P)และอนุพันธ์ (D)ได้รับเป็นค่าเริ่มต้นที่ 1 และ 0 ตามลำดับ จากนั้นให้เพิ่ม Sum block จากไลบรารี Math Operations ดับเบิลคลิกที่บล็อกนี้และแก้ไขรายการสัญญาณฟิลด์เป็น "|+-" เนื่องจากเราต้องการควบคุมความเร็วของเครื่องยนต์รถไฟของเล่น เราจึงป้อนกลับความเร็วของเครื่องยนต์ สิ่งนี้ทำได้โดยการแตะที่เส้นนอกสัญญาณ "x1_dot" และเชื่อมต่อกับเครื่องหมายลบของ Sum block เอาต์พุตของบล็อก Sum จะเป็นข้อผิดพลาดความเร็วสำหรับเครื่องยนต์รถไฟ และควรเชื่อมต่อกับอินพุตของบล็อกตัวควบคุม PID เชื่อมต่อบล็อกตามที่อธิบายและเพิ่มป้ายกำกับ แบบจำลองของคุณควรปรากฏดังนี้

บทแนะนำการควบคุมสำหรับ MATLAB และ Simulink (5)

ถัดไปเพิ่มบล็อก Signal Builder จากไลบรารี Sources เพื่อแสดงความเร็วที่สั่งไปยังรถไฟ เนื่องจากเราต้องการออกแบบตัวควบคุมเพื่อให้รถไฟแล่นขึ้นอย่างราบรื่นด้วยความเร็วและหยุดพักอย่างราบรื่น เราจะทดสอบระบบด้วยคำสั่งความเร็วที่เพิ่มขั้นสูงสุด 1 m/s ตามด้วยลดระดับลงเป็น 0 m/s (จำ ว่าระบบของเราคือกของเล่นรถไฟ). หากต้องการสร้างสัญญาณคำสั่งประเภทนี้ ให้ดับเบิลคลิกที่บล็อกตัวสร้างสัญญาณ จากนั้นเลือกเปลี่ยนช่วงเวลาจากแกนเมนูที่ด้านบนของหน้าต่างโต้ตอบของบล็อก ตั้งเวลาสูงสุดฟิลด์เป็น "300" วินาที ถัดไป ตั้งค่าการก้าวขึ้นให้เกิดขึ้นที่ 10 วินาที และการก้าวลงให้เกิดขึ้นที่ 150 วินาที ทำได้โดยคลิกที่ส่วนที่เกี่ยวข้องกันของกราฟสัญญาณ (เส้นแนวตั้งซ้ายและขวา) แล้วลากเส้นไปยังตำแหน่งที่ต้องการ หรือป้อนเวลาที่ต้องการในฟิลด์ที่ด้านล่างของหน้าต่าง เมื่อเสร็จแล้ว สัญญาณของคุณควรปรากฏดังนี้

บทแนะนำการควบคุมสำหรับ MATLAB และ Simulink (6)

เพิ่มบล็อก Scope จากไลบรารี Sinks และใช้เพื่อแทนที่บล็อก Out1 สำหรับความเร็วของรถไฟ ตั้งชื่อบล็อกใหม่ โมเดลของคุณจะปรากฏดังนี้

บทแนะนำการควบคุมสำหรับ MATLAB และ Simulink (7)

ตอนนี้เราพร้อมที่จะเรียกใช้การจำลองวงปิดแล้ว หากคุณต้องการข้ามขั้นตอนข้างต้น คุณสามารถดาวน์โหลดโมเดลที่สมบูรณ์พร้อมการควบคุมโดยการคลิกขวาที่นี่แล้วเลือกบันทึกลิงค์เป็น ....

รันโมเดลวงปิด

ก่อนรันโมเดล เราจำเป็นต้องกำหนดค่าตัวเลขให้กับตัวแปรแต่ละตัวที่ใช้ในโมเดล สำหรับระบบรถไฟ เราจะใช้ค่าต่อไปนี้

  • บทแนะนำการควบคุมสำหรับ MATLAB และ Simulink (8)= 1 กก
  • บทแนะนำการควบคุมสำหรับ MATLAB และ Simulink (9)= 0.5 กก
  • บทแนะนำการควบคุมสำหรับ MATLAB และ Simulink (10)= 1 นิวตัน/วินาที
  • บทแนะนำการควบคุมสำหรับ MATLAB และ Simulink (11)= 1 นิวตัน
  • บทแนะนำการควบคุมสำหรับ MATLAB และ Simulink (12)= 0.02 วินาที/เมตร
  • บทแนะนำการควบคุมสำหรับ MATLAB และ Simulink (13)= 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" เพื่อตรวจสอบเอาต์พุตความเร็ว ผลลัพธ์ที่แสดงด้านล่างแสดงให้เห็นว่าระบบลูปปิดมีความเสถียรสำหรับคอนโทรลเลอร์นี้

บทแนะนำการควบคุมสำหรับ MATLAB และ Simulink (14)

(Video) MATLAB & Simulink ระบบอันดับหนึ่ง (First Order)

เนื่องจากประสิทธิภาพที่ทำได้ข้างต้นไม่เป็นที่น่าพอใจเนื่องจากข้อผิดพลาดในสถานะคงตัว เราจะแสดงวิธีการออกแบบคอนโทรลเลอร์ของเราใหม่ ก่อนอื่นเราจะสาธิตวิธีการดึงโมเดลจาก Simulink เข้าสู่ MATLAB เพื่อการวิเคราะห์และออกแบบ จากนั้นเราจะสาธิตวิธีการออกแบบการควบคุมจากภายใน Simulink โดยตรง

แยกโมเดลลงใน MATLAB

กล่องเครื่องมือ Simulink Control Design มีฟังก์ชันในการแยกโมเดลจาก Simulink ไปยังพื้นที่ทำงาน MATLAB สิ่งนี้มีประโยชน์อย่างยิ่งสำหรับแบบจำลองที่ซับซ้อนหรือไม่เชิงเส้น สิ่งนี้ยังมีประโยชน์สำหรับการสร้างแบบจำลองเวลาที่ไม่ต่อเนื่อง (สุ่มตัวอย่าง) สำหรับตัวอย่างนี้ ให้เราแยกแบบจำลองเวลาต่อเนื่องของระบบย่อยรถไฟของเรา ก่อนอื่นเราต้องระบุอินพุตและเอาต์พุตของโมเดลที่เราต้องการแยก ข้อมูลเข้าสู่ระบบรถไฟคือแรงบทแนะนำการควบคุมสำหรับ MATLAB และ Simulink (15). เราสามารถกำหนดข้อเท็จจริงนี้ได้โดยคลิกขวาที่สัญญาณแทน "F" (เอาต์พุตของบล็อก PID) แล้วเลือกจุดวิเคราะห์เชิงเส้น > อินพุตวงเปิดจากเมนูผลลัพธ์ ในทำนองเดียวกัน เราสามารถกำหนดเอาต์พุตของระบบรถไฟได้โดยคลิกขวาที่สัญญาณ "x1_dot" แล้วเลือกจุดวิเคราะห์เชิงเส้น > เอาท์พุตวงเปิดจากเมนูผลลัพธ์ อินพุตและเอาต์พุตเหล่านี้จะถูกระบุด้วยสัญลักษณ์ลูกศรขนาดเล็กดังแสดงในรูปต่อไปนี้ เนื่องจากเราต้องการแยกแบบจำลองของรถไฟด้วยตัวเองโดยไม่มีการควบคุม เราจำเป็นต้องลบสัญญาณป้อนกลับเพิ่มเติม มิฉะนั้น เราจะดึงแบบจำลองวงปิดจากบทแนะนำการควบคุมสำหรับ MATLAB และ Simulink (16)ถึงบทแนะนำการควบคุมสำหรับ MATLAB และ Simulink (17). แบบจำลองของคุณควรปรากฏดังนี้

บทแนะนำการควบคุมสำหรับ MATLAB และ Simulink (18)

ตอนนี้เราสามารถแยกโมเดลได้โดยการเปิดเครื่องมือวิเคราะห์เชิงเส้น. สิ่งนี้ทำได้โดยการเลือกการออกแบบการควบคุม > การวิเคราะห์เชิงเส้นจากใต้การวิเคราะห์เมนูที่ด้านบนของหน้าต่างโมเดล ทำตามขั้นตอนเหล่านี้จะเปิดหน้าต่างที่แสดงด้านล่าง

บทแนะนำการควบคุมสำหรับ MATLAB และ Simulink (19)

เครื่องมือนี้สร้างวัตถุ LTI จากแบบจำลอง Simulink (อาจไม่ใช่เชิงเส้น) และให้คุณระบุจุดที่จะทำการทำให้เป็นเส้นตรง เนื่องจากโมเดล Simulink ของเราเป็นแบบเชิงเส้นอยู่แล้ว การเลือกจุดปฏิบัติการของเราจะไม่มีผลใดๆ และเราสามารถปล่อยไว้เป็นค่าเริ่มต้นได้สภาพเริ่มต้นของรุ่น. หากต้องการสร้างโมเดลเชิงเส้น ให้เลือกขั้นตอนที่ปุ่มในรูปด้านบน ซึ่งระบุด้วยสามเหลี่ยมสีเขียวเล็กๆ เดอะเครื่องมือวิเคราะห์เชิงเส้นตอนนี้ควรปรากฏหน้าต่างดังที่แสดงด้านล่าง

บทแนะนำการควบคุมสำหรับ MATLAB และ Simulink (20)

จากการตรวจสอบข้างต้น การตอบสนองทีละขั้นตอนของแบบจำลองเชิงเส้นจะถูกสร้างขึ้นโดยอัตโนมัติ เปรียบเทียบการตอบสนองขั้นตอนนี้กับขั้นตอนที่สร้างขึ้นโดยการจำลองระบบรถไฟวงเปิดในบทนำ: 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 จูนเนอร์เครื่องมือ. แทนที่จะทำเช่นนี้ เราจะเปิดตัวทั่วไปมากขึ้นผู้ออกแบบระบบควบคุมเครื่องมือโดยการเลือกการออกแบบการควบคุม > ผู้ออกแบบระบบควบคุมจากใต้การวิเคราะห์เมนูที่อยู่ด้านบนของหน้าต่างโมเดล ทำตามขั้นตอนเหล่านี้จะเปิดหน้าต่างที่แสดงด้านล่าง

บทแนะนำการควบคุมสำหรับ MATLAB และ Simulink (21)

สิ่งแรกที่ต้องทำคือการระบุบล็อกตัวควบคุมที่จะปรับ สิ่งนี้ทำได้โดยการคลิกครั้งแรกที่เพิ่มบล็อกปุ่ม จากนั้นเลือกบล็อกตัวควบคุม PID จากหน้าต่างผลลัพธ์ที่แสดงด้านล่าง คลิกถัดไปตกลงปุ่ม. โปรดทราบว่าตัวควบคุมที่แสดงโดยบล็อกประเภทอื่นๆ (Transfer Function, State Space และอื่นๆ) ก็สามารถปรับแต่งได้เช่นกัน

(Video) Simulink Control Systems and PID, Matlab R2020b

บทแนะนำการควบคุมสำหรับ MATLAB และ Simulink (22)

ก่อนที่เราจะดำเนินการปรับแต่งคอนโทรลเลอร์ เราต้องระบุอินพุตและเอาต์พุตของระบบวงปิดที่เราต้องการวิเคราะห์ก่อน สิ่งนี้ทำในลักษณะเดียวกับที่เราแยกโมเดลเชิงเส้นลงใน MATLAB โดยเฉพาะ คลิกขวาที่สัญญาณคำสั่งความเร็ว (เอาต์พุตของบล็อกตัวสร้างสัญญาณ) แล้วเลือกจุดวิเคราะห์เชิงเส้น > การรบกวนการป้อนข้อมูลจากเมนูผลลัพธ์เพื่อระบุอินพุตของระบบวงปิดของเรา จากนั้น คลิกขวาที่สัญญาณความเร็วของเครื่องยนต์รถไฟ ("x1_dot") แล้วเลือกจุดวิเคราะห์เชิงเส้น > การวัดผลลัพธ์จากเมนูเพื่อเลือกผลลัพธ์ของระบบของเรา แบบจำลองของคุณควรปรากฏดังนี้ โดยที่สัญลักษณ์ลูกศรขนาดเล็กระบุอินพุตและเอาต์พุตของโมเดล

บทแนะนำการควบคุมสำหรับ MATLAB และ Simulink (23)

ตอนนี้เราได้ระบุบล็อกที่จะปรับแต่งและสัญญาณอินพุตและเอาต์พุตของเราแล้ว ตอนนี้เราสามารถเริ่มด้วยการปรับแต่งคอนโทรลเลอร์ เลือกตกลงปุ่มในแก้ไขสถาปัตยกรรมหน้าต่าง. ตอนนี้เราควรจะเห็นหน้าต่างที่แสดงด้านล่าง

บทแนะนำการควบคุมสำหรับ MATLAB และ Simulink (24)

การคลิกวิธีการปรับแต่งปุ่ม เราจะเลือกแผนการออกแบบที่เราต้องการใช้สำหรับการออกแบบคอนโทรลเลอร์ของเรา ในตัวอย่างนี้ เราจะใช้วิธีการออกแบบรูทโลคัส และด้วยเหตุนี้เราจะเลือกตัวแก้ไขรูตโลคัสภายใต้การปรับแต่งกราฟิกดังที่แสดงไว้ข้างต้น วิธีการรูตโลคัสในการออกแบบใช้พล็อตที่แสดงเสาวงปิดที่เป็นไปได้ทั้งหมดเป็นพารามิเตอร์ (อัตราขยายของลูป) แปรผันจากศูนย์ถึงไม่สิ้นสุด โดยเฉพาะอย่างยิ่ง เราทำการเลือกต่อไปนี้ในเลือกตอบกลับเพื่อแก้ไขหน้าต่างและเลือกพล็อต.

บทแนะนำการควบคุมสำหรับ MATLAB และ Simulink (25)

จากนั้นเราควรได้รับแผนผังรูทโลคัสที่แสดงด้านล่าง ซึ่งแสดงตำแหน่งเสาวงปิดที่เป็นไปได้ทั้งหมดของระบบรถไฟวงปิดภายใต้การควบคุมตามสัดส่วนอย่างง่าย จากการตรวจสอบโครงเรื่อง เราจะเห็นว่าค่าทั้งหมดของอัตราขยายของลูปจะวางเสาวงปิดในระนาบครึ่งซ้ายซึ่งแสดงถึงการตอบสนองที่เสถียร

บทแนะนำการควบคุมสำหรับ MATLAB และ Simulink (26)

หากเราลดอัตราขยายของลูปได้เพียงพอ เราสามารถย้ายเสาวงปิดเพิ่มเติมเข้าไปในระนาบครึ่งซ้าย และเราสามารถเปลี่ยนประสิทธิภาพของระบบของเราได้ สิ่งนี้สามารถทำได้ในเชิงกราฟิกโดย "จับ" กล่องสีชมพูที่ทำเครื่องหมายตำแหน่งเสาวงปิดและลากไปยังตำแหน่งเสาวงเปิด (ทำเครื่องหมายโดยx's). เราสามารถตรวจสอบการตอบสนองขั้นตอนวงปิดที่เกี่ยวข้องได้โดยคลิกที่พล็อตใหม่ภายใต้ระบบควบคุมแท็บและเลือกขั้นตอนใหม่. เมื่อหน้าต่างต่อไปนี้ปรากฏขึ้นให้เราเลือกใหม่ การตอบสนองการถ่ายโอนอินพุต-เอาต์พุตจากเลือกการตอบสนองต่อพล็อตเมนูแบบเลื่อนลงตามที่แสดง

บทแนะนำการควบคุมสำหรับ MATLAB และ Simulink (27)

จากนั้นเราจะระบุสัญญาณอินพุตและเอาต์พุตภายในขั้นตอนใหม่ในการวางแผนหน้าต่างที่แสดงด้านล่าง

บทแนะนำการควบคุมสำหรับ MATLAB และ Simulink (28)

(Video) พื้นฐานโปรแกรม Simulink : บล็อกที่ใช้บ่อยใน Simulink

จากนั้นคลิกที่พล็อตปุ่ม. จากผลลัพธ์ของการตอบสนองขั้นตอนวงปิด เราจะเห็นว่าการตอบสนองนั้นเสถียร แต่มีข้อผิดพลาดในสถานะคงตัว

บทแนะนำการควบคุมสำหรับ MATLAB และ Simulink (29)

โปรดจำไว้ว่าการเพิ่มการควบคุมแบบบูรณาการเป็นวิธีหนึ่งในการลดข้อผิดพลาดในสภาวะคงตัวของระบบวงปิด ในกรณีนี้ การเพิ่มตัวรวมผ่านตัวควบคุมจะทำให้ระบบเป็นประเภท 1 โดยที่ระบบประเภท 1 สามารถติดตามการอ้างอิงขั้นตอนโดยไม่มีข้อผิดพลาดในสถานะคงตัวเป็นศูนย์ เรียกคืนตัวควบคุม PI ในรูปแบบต่อไปนี้

(1)บทแนะนำการควบคุมสำหรับ MATLAB และ Simulink (30)

การตรวจสอบสมการนี้แสดงให้เห็นว่าตัวควบคุม PI จะเพิ่มตัวรวมและศูนย์ในระบบวงเปิดของเรา สามารถเพิ่ม integrator เข้ากับระบบได้โดยการคลิกขวาในฟิลด์ของ root locus plot และเลือกเพิ่ม Pole/Zero > Integratorจากเมนูผลลัพธ์ ในทำนองเดียวกัน เลขศูนย์สามารถเพิ่มได้โดยการคลิกขวาที่รูทโลคัสพล็อตแล้วเลือกเพิ่ม Pole/Zero > Real Zeroจากเมนูผลลัพธ์ จากนั้นคลิกที่แกนจริงที่คุณต้องการวางศูนย์ คุณสามารถย้ายศูนย์ได้โดยคลิกที่ศูนย์แล้วลากไปยังตำแหน่งใหม่ นอกจากนี้ยังสามารถแก้ไขตัวชดเชยได้โดยพิมพ์ตำแหน่งโพลและศูนย์โดยตรง สามารถทำได้โดยการคลิกขวาที่รูทโลคัสพล็อตแล้วเลือกแก้ไขตัวชดเชยจากเมนูผลลัพธ์ หน้าต่างที่เปิดขึ้นแสดงอยู่ด้านล่าง เราจะวางอินทิเกรเตอร์ซึ่งเป็นศูนย์จริงที่ -0.15 และจะเลือกลูปที่ได้รับเท่ากับ 0.05

บทแนะนำการควบคุมสำหรับ MATLAB และ Simulink (31)

แผนการตอบสนองขั้นตอนวงปิดที่เป็นผลลัพธ์แสดงอยู่ด้านล่างซึ่งแสดงให้เห็นว่าเครื่องยนต์ของรถไฟถูกพักอย่างราบรื่นและไม่มีข้อผิดพลาดในสถานะคงที่เป็นศูนย์สำหรับคำสั่งความเร็วคงที่

บทแนะนำการควบคุมสำหรับ MATLAB และ Simulink (32)

อัตราขยายการควบคุมที่เลือกสามารถนำไปใช้กับโมเดล Simulink ได้โดยคลิกที่ปรับปรุงบล็อกปุ่มภายในระบบควบคุมแท็บที่แสดงด้านบน จากนั้นสามารถเรียกใช้การจำลองด้วยตัวควบคุมที่ปรับแต่งใหม่นี้ การคลิกที่บล็อกขอบเขตสำหรับความเร็วของเครื่องยนต์รถไฟจะสร้างโครงเรื่องดังที่แสดงด้านล่าง

บทแนะนำการควบคุมสำหรับ MATLAB และ Simulink (33)

โดยรวมแล้ว การตอบสนองนี้ดูเหมือนว่าจะบรรลุเป้าหมายของเราในการทำให้รถไฟแล่นด้วยความเร็วและกลับสู่สภาวะหยุดนิ่งได้อย่างราบรื่น โดยยังคงรักษาข้อผิดพลาดในสภาวะคงที่ให้น้อยที่สุด คำตอบนี้ตรงกับผลลัพธ์ที่สร้างขึ้นด้วยผู้ออกแบบระบบควบคุมข้างต้นเนื่องจากการวิเคราะห์นั้นและแบบจำลอง Simulink ใช้แบบจำลองเชิงเส้นเดียวกันทุกประการ


เผยแพร่ด้วย MATLAB® 9.2

Videos

1. How to Read and Use Joysticks in MATLAB and Simulink - Step-by-step detailed example!
(VDEngineering)
2. MATLAB for Chemical Engineers - Lesson 10: Simulink for Process Control
(The Process Engineer)
3. Steering Control Design for a Self Driving Car - MATLAB / Simulink Tutorial
(VDEngineering)
4. MATLAB code link to simulink to find eigen value
(Sri Vidhya D)
5. Matlab Simulink Program to Arduino EP3
(NAKARIN SRIPANYA)
6. Ball screw position control by potentiometer using MATLAB/Simulink and Waijung 2 for ESP32
(Aimagin Co.,Ltd.)
Top Articles
Latest Posts
Article information

Author: Aracelis Kilback

Last Updated: 02/06/2023

Views: 5273

Rating: 4.3 / 5 (64 voted)

Reviews: 87% of readers found this page helpful

Author information

Name: Aracelis Kilback

Birthday: 1994-11-22

Address: Apt. 895 30151 Green Plain, Lake Mariela, RI 98141

Phone: +5992291857476

Job: Legal Officer

Hobby: LARPing, role-playing games, Slacklining, Reading, Inline skating, Brazilian jiu-jitsu, Dance

Introduction: My name is Aracelis Kilback, I am a nice, gentle, agreeable, joyous, attractive, combative, gifted person who loves writing and wants to share my knowledge and understanding with you.