หน่วย 7 / 9

การออกแบบและการจำลองตามแบบจำลอง

กำไร:

  • ความสามารถในการสร้างแบบจำลองสมการเชิงอนุพันธ์ของระบบด้วย AI และจำลองใน Python
  • ความสามารถในการตีความผลการจำลอง (การตอบสนองของขั้นตอน ความเสถียร) ด้วยความช่วยเหลือของ AI
  • ความสามารถในการใช้ระเบียบวินัยในการตรวจสอบขีดจำกัดของสมมติฐานแบบจำลองและความเข้ากันได้กับระบบจริง

ก่อนที่จะสร้างระบบเมคคาทรอนิกส์ทางกายภาพ คุณสามารถทำความเข้าใจ ออกแบบ และทดสอบกับแบบจำลองได้ การออกแบบตามแบบจำลอง เป็นแนวทางในการนำเสนอพฤติกรรมของระบบด้วยสมการเชิงอนุพันธ์หรือบล็อกไดอะแกรม รันในการจำลอง ออกแบบ และตรวจสอบตัวควบคุม สิ่งนี้มีคุณค่าอย่างยิ่ง: คุณสามารถลองใช้สถานการณ์ได้หลายร้อยสถานการณ์ คาดการณ์ความเสถียร ปรับผลกำไรของคอนโทรลเลอร์ได้อย่างปลอดภัยโดยไม่ต้องเสี่ยงกับฮาร์ดแวร์ ปัญญาประดิษฐ์เป็นตัวช่วยที่ทรงพลังในกระบวนการนี้ โดยจะสร้างสมการของระบบ เขียนการจำลองใน Python และตีความผลลัพธ์ แต่แบบจำลองนั้นเป็นแผนที่ ไม่ใช่ภูมิประเทศ เป็นความรับผิดชอบของวิศวกรในการพิจารณาว่าแบบจำลองนั้นแสดงถึงความเป็นจริงได้ดีเพียงใด (การตรวจสอบความถูกต้อง) ในหน่วยนี้ เราครอบคลุมถึงการสร้างแบบจำลอง การจำลอง และตรวจสอบขีดจำกัดของโมเดลด้วย AI

โมเดลคืออะไรและละเลยอะไร?

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

มันอยู่ในรุ่น

มักถูกละเลย

มวล ความเฉื่อย ความต้านทาน ความเหนี่ยวนำ

แรงเสียดทานแบบไม่เชิงเส้น ฟันเฟือง

สมการไดนามิกพื้นฐาน

ความอิ่มตัวโซนตาย

เซ็นเซอร์/แอคชูเอเตอร์ในอุดมคติ

สัญญาณรบกวนการวัด, ความล่าช้า

พารามิเตอร์คงที่

พารามิเตอร์ที่เปลี่ยนแปลงตามอุณหภูมิ

หลักการสำคัญ: "ผิดทุกรุ่นมีประโยชน์บางรุ่น" ไม่ว่าโมเดลจะใช้งานได้หรือไม่นั้นขึ้นอยู่กับว่าสิ่งที่โมเดลละเว้นนั้นมีความสำคัญในช่วงการทำงานของคุณหรือไม่

การสร้างและจำลองโมเดลมอเตอร์กระแสตรง

แบบจำลองพื้นที่สถานะอย่างง่ายของมอเตอร์กระแสตรงถูกเขียนด้วยความเร็วเชิงมุมของสถานะ ω และกระแส i AI สามารถตั้งค่าสมการเหล่านี้และจำลองสมการเหล่านี้ใน Python ด้วย scipy:

import numpy เป็น npfrom scipy.integrate import solve_ivpimport matplotlib.pyplot as plt# พารามิเตอร์มอเตอร์กระแสตรง (ค่าตัวอย่าง -- ควรนำมาจากเอกสารข้อมูลจริง)J = 0.01 # ความเฉื่อย (kg*m^2)b = 0.1 # แรงเสียดทานที่มีความหนืด (N*m*s)K = 0.01 # ค่าคงที่ของมอเตอร์ (Nm/A และ V*s/rad)R = 1.0 # ความต้านทาน (โอห์ม)L = 0.5 # ตัวเหนี่ยวนำ (H)def motor_dynamigi(t, x, V): """x = [omega, i]. V = แรงดันไฟฟ้าที่ใช้""" omega, i = x Domega = (K * i - b * omega) / J # สมการทางกล di = (V - R * i - K * omega) / L # สมการไฟฟ้าส่งคืน [domega, di]# 12 การจำลองด้วยอินพุตขั้นตอน V (การตรวจสอบ):omega_ss_theoretical = K * V / (R * b + K**2)print(f"การจำลองความเร็วสุดท้าย: {omega[-1]:.2f} rad/s")print(f"สถานะคงตัวทางทฤษฎี: {omega_ss_theoretical:.2f} rad/s")

เส้นตรวจสอบความถูกต้องเป็นสิ่งสำคัญ: เราเปรียบเทียบความเร็วในสภาวะคงตัวที่ได้จากการจำลองกับสูตรทางทฤษฎีที่ได้มาด้วยมือ (K·V/(R·b+K²)) หากทั้งสองตรงกัน ความมั่นใจของเราในการจำลองจะเพิ่มขึ้น หากไม่ตรงกันจะเกิดข้อผิดพลาดทั้งในสมการหรือในโค้ด ค้นหาจุดแฮชอิสระสำหรับแต่ละการจำลองที่ AI สร้างขึ้น

เคล็ดลับ: เมื่อคุณมีระบบจำลอง AI ให้พูดว่า “ให้จุดตรวจสอบทางทฤษฎี/การวิเคราะห์ให้ฉันด้วยซึ่งฉันจะสามารถตรวจสอบผลลัพธ์ได้” การตรวจสอบโดยหน่วยงานอิสระ เช่น ค่าสถานะคงตัว กฎหมายอนุรักษ์ สมดุลพลังงาน ฯลฯ เป็นวิธีที่เร็วที่สุดในการตรวจจับข้อผิดพลาดของโค้ด

การตอบสนองก้าวและความเสถียร

พฤติกรรมพื้นฐานที่คุณจะอ่านได้จากการจำลอง:

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

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

นำเข้า numpy เป็น np# ตัวอย่าง: ค่าสัมประสิทธิ์พหุนามลักษณะเฉพาะ [1, a2, a1, a0]coefficients = [1, 3, 3, 1]roots = np.roots(coefficients)print("Poles:", root)stable = np.all(np.real(roots) < 0)print("Is the system stable?", stable) # all ส่วนจริงเป็นลบหรือไม่?

การยืนยันแบบจำลอง (การตรวจสอบความถูกต้อง)

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

  1. ให้การวิเคราะห์: เปรียบเทียบกับการควบคุมที่เป็นอิสระ เช่น สภาวะคงตัว กฎหมายการอนุรักษ์
  2. แหล่งที่มาของพารามิเตอร์: พารามิเตอร์โมเดล (J, K, R...) มีการตรวจวัด/เอกสารข้อมูลหรือการประมาณการจริงหรือไม่
  3. การเปรียบเทียบเชิงทดลอง: หากเป็นไปได้ ให้วัดการตอบสนองขั้นตอนของระบบจริงแล้วซ้อนทับกับการตอบสนองของแบบจำลอง
  4. ความไว: ผลลัพธ์จะเปลี่ยนแปลงไปมากน้อยเพียงใดเมื่อเปลี่ยนพารามิเตอร์เป็น ±20% (โมเดลมีความไวเพียงใด)
  5. ช่วงความถูกต้อง: โมเดลนี้ใช้ได้ในช่วงความเร็ว/โหลด/อุณหภูมิเท่าใด และจะพังที่ใด
ข้อควรระวัง: พารามิเตอร์โมเดล (ความเฉื่อย แรงเสียดทาน ค่าคงที่ของมอเตอร์) ที่กำหนดโดย AI จะเป็นค่าตัวอย่าง/ตัวยึดตำแหน่งเกือบทุกครั้ง อย่านำผลการจำลอง "มาสู่ความเป็นจริง" โดยไม่แทนที่ด้วยเอกสารข้อมูลหรือการวัดผลของระบบจริงของคุณ สะพานเชื่อมระหว่าง "งานในการจำลอง" และ "งานในภาคสนาม" คือความแม่นยำและการตรวจสอบความถูกต้องของพารามิเตอร์

พรอมต์ที่อ่อนแอ / พรอมต์ที่แข็งแกร่ง

อ่อนแอ:"เขียนการจำลองมอเตอร์"(รุ่นใด พารามิเตอร์ การตรวจสอบความถูกต้อง กราฟิกที่ไม่มีความหมายปรากฏขึ้น) แข็งแกร่ง:"สร้างแบบจำลองพื้นที่สถานะ (สถานะ: ความเร็วเชิงมุมและกระแส) ของมอเตอร์กระแสตรง จำลองการตอบสนองสเต็ป 12 V ด้วย vescipy solve_ivp กำหนดพารามิเตอร์เป็นตัวแปรที่จุดเริ่มต้น (J, b, K, R, L) เพื่อให้ฉันสามารถใส่ค่าจริงของฉันได้ เขียนสูตรทางทฤษฎีสำหรับความเร็วในสภาวะคงตัว "ด้วย ตรวจสอบการจำลอง คำนวณเวลาที่เพิ่มขึ้น โอเวอร์ชูต และเวลาตกตะกอนจากการตอบสนองของขั้นตอน"

มินิเคส

วิศวกรฝ่าย R&D Nil จำลองระบบก่อนออกแบบตัวควบคุมสำหรับแกนกำหนดตำแหน่งใหม่ เขามี AI สร้างโมเดลมอเตอร์กระแสตรงและเพิ่มตัวควบคุม PID การจำลองให้การตอบสนองที่ดีและไม่โอเวอร์ชูต แต่เมื่อ Nil เปรียบเทียบความเร็วในสภาวะคงที่กับสูตรทางทฤษฎี เขาพบความแตกต่าง 15%: ค่าคงที่ของเครื่องยนต์ตัวอย่าง K ที่ AI ใช้นั้นแตกต่างจากค่าคงที่ของเครื่องยนต์จริง เมื่อคุณใส่ค่าแผ่นข้อมูล การจำลองจะสอดคล้องกับทฤษฎี จากนั้นจะวัดการตอบสนองของสเต็ปของเครื่องยนต์จริงและซ้อนทับกับเอาท์พุตของโมเดล แบบจำลองนี้เข้ากันได้ดีในพื้นที่ที่รวดเร็ว แต่จะเบี่ยงเบนที่ความเร็วต่ำ เนื่องจากแบบจำลองละเลยแรงเสียดทานสถิต ไม่มีบันทึกข้อจำกัดนี้: โมเดลดังกล่าวเชื่อถือได้ที่ความเร็วสูง ไม่ใช่ที่ความเร็วต่ำมาก มันออกแบบคอนโทรลเลอร์ให้เหมาะสม สร้างโมเดลและการจำลอง AI อย่างรวดเร็ว แต่การตรวจสอบความถูกต้องของพารามิเตอร์และการเปรียบเทียบการทดลองเผยให้เห็นแก่วิศวกรถึงขีดจำกัดที่แท้จริงของความถูกต้องของแบบจำลอง

ข้อผิดพลาดทั่วไป

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

โดยสรุป

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

งานสมัคร

เลือกระบบไดนามิกแบบง่าย (มอเตอร์กระแสตรง แมสสปริงแดมเปอร์ วงจร RC) ให้ AI ​​สร้างโมเดลสมการสถานะ-อวกาศหรือสมการเชิงอนุพันธ์ และจำลองการตอบสนองขั้นตอนใน Python และอย่าลืมขอจุดแฮชพอยต์สถานะคงตัวทางทฤษฎี/เชิงวิเคราะห์ จากนั้น: (1) เปรียบเทียบผลลัพธ์การจำลองกับค่าทางทฤษฎีเพื่อดูว่าเห็นด้วยหรือไม่ (2) เปลี่ยนพารามิเตอร์ ±20% และดูว่าผลลัพธ์เปลี่ยนแปลงไปมากน้อยเพียงใด (ความไว) (3) เขียนผลกระทบทางกายภาพอย่างน้อยสองประการที่แบบจำลองละเลย และผลกระทบเหล่านั้นจะมีความสำคัญในพื้นที่ปฏิบัติการใด อธิบายช่วงความถูกต้องของแบบจำลองของคุณในหนึ่งประโยค