สารบัญ:

Grid Tie Inverter: 10 ขั้นตอน (พร้อมรูปภาพ)
Grid Tie Inverter: 10 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: Grid Tie Inverter: 10 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: Grid Tie Inverter: 10 ขั้นตอน (พร้อมรูปภาพ)
วีดีโอ: ติดตั้งโซล่าเซลล์ไม่ใช้แบตเตอรี่(ข้อมูลครบ ละเอียดทุกขั้นตอน) / My First On-Grid Solar System 2024, กรกฎาคม
Anonim
Image
Image
กริดไทล์อินเวอร์เตอร์
กริดไทล์อินเวอร์เตอร์
กริดไทล์อินเวอร์เตอร์
กริดไทล์อินเวอร์เตอร์

นี่เป็นโครงการที่มีเนื้อมากดังนั้นจงรัดเข็มขัด!

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

แนวคิดทั้งหมดสามารถปรับขนาดได้ แต่การตั้งค่านี้มีเอาต์พุตสูงสุด 40 วัตต์ ก่อนที่ตัวเหนี่ยวนำตัวกรองจะเริ่มอิ่มตัว กระแสไฟขาออกเป็นแบบไซน์ที่มี THD < 5%

ดูซอฟต์แวร์บน GitHub. ของฉัน

เสบียง

  • ฉันใช้บอร์ดพัฒนา STM32F407 มันทำงานที่ 168MHz และมี ADC ในตัว 3 ตัวที่มีความละเอียด 12 บิตที่มากกว่า 2.4MSPS (ล้านตัวอย่างต่อวินาที) แต่ละตัว บ้าไปแล้ว!
  • ฉันใช้บอร์ดพัฒนา DRV8301 มีสะพาน H-Bridge 60v พร้อมกับตัวขับเกทที่จำเป็น ตัวแยกกระแส และแอมพลิฟายเออร์ shunt ในปัจจุบัน ดีมาก!
  • ฉันใช้หม้อแปลง Toroidal 230-25v พร้อมก๊อกเอาต์พุต 2 ตัว ซึ่งหมายความว่าฉันไม่ต้องผลิตแรงดันไฟหลักโดยตรง แต่สามารถทำงานกับแรงดันไฟฟ้าสูงสุดที่ 40 โวลต์แทนได้ ปลอดภัยกว่ามาก!
  • ฉันเชื่อมต่อโหลดของตัวเหนี่ยวนำและตัวเก็บประจุเข้าด้วยกันเพื่อรับค่า L และ C ที่ฉันต้องการสำหรับตัวกรอง
  • ออสซิลโลสโคปและโพรบดิฟเฟอเรนเชียลเป็นกุญแจสำคัญสำหรับโครงการเช่นนี้ ฉันมีพิโคสโคป

ขั้นตอนที่ 1: แหล่งจ่ายไฟหลักคืออะไร?

แหล่งจ่ายไฟหลักคืออะไร?
แหล่งจ่ายไฟหลักคืออะไร?
แหล่งจ่ายไฟหลักคืออะไร?
แหล่งจ่ายไฟหลักคืออะไร?

สิ่งที่คุณได้รับจากปลั๊กไฟ (ในสหราชอาณาจักร) คือสัญญาณไซน์ 50Hz 230v RMS ที่มีอิมพีแดนซ์ต่ำมาก บางสิ่งที่จะพูดเกี่ยวกับสิ่งนั้น:

50Hz - ความถี่ของแหล่งจ่ายไฟหลักจะคงที่มากที่ 50Hz มันแตกต่างกันเล็กน้อย แต่ 90% ของเวลาอยู่ระหว่าง 49.9-50.1Hz ดูที่นี่ คุณสามารถจินตนาการถึงเครื่องกำเนิดไฟฟ้าขนาดมหึมาทั้งหมดในโรงไฟฟ้าขึ้นและลงในประเทศที่หมุนไปพร้อม ๆ กัน พวกมันหมุนพร้อมกันโดยให้สัญญาณไซน์ 50Hz แก่เรา ความเฉื่อยในการหมุนมวลมหาศาลรวมกันต้องใช้เวลาในการทำให้ช้าลงหรือเร็วขึ้น

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

อีกสิ่งหนึ่งที่จะพูดเกี่ยวกับสัญญาณ 50Hz แม้ว่ามันจะแตกต่างกันเล็กน้อยประมาณ 50Hz แต่คนที่อยู่ด้านบนต้องแน่ใจว่าความถี่เฉลี่ยในแต่ละวันคือ 50Hz อย่างแน่นอน ดังนั้นหากกริดอยู่ที่ 49.95Hz เป็นเวลา 10 นาที พวกเขาจะตรวจสอบให้แน่ใจว่ากริดทำงานที่ 50.05Hz ในภายหลังเพื่อให้จำนวนรอบที่แน่นอนเป็น 50Hz x 60 วินาที x 60 นาที x 24 ชั่วโมง = 4, 320, 000/วัน พวกเขาทำสิ่งนี้อย่างแม่นยำโดยใช้เวลาปรมาณูสากล เครื่องใช้ไฟฟ้าในครัวเรือน สำนักงาน และอุตสาหกรรมสามารถใช้ความถี่กริดเพื่อรักษาเวลาได้ โดยทั่วไปแล้วจะใช้ตัวจับเวลาซ็อกเก็ตแบบกลไก เป็นต้น

230v - นี่คือแรงดัน RMS (Root Mean Square) ของสัญญาณ 50Hz สัญญาณจริงจะแกว่งไปที่จุดสูงสุด 325v สิ่งสำคัญคือต้องรู้ เพราะหากคุณกำลังสร้างอินเวอร์เตอร์ คุณจะต้องสร้างแรงดันไฟฟ้าให้สูงเช่นนี้ หากคุณต้องการให้กระแสไฟฟ้าไหลเข้าสู่ปลั๊ก

ในความเป็นจริง แรงดันไฟฟ้าที่เห็นที่ปลั๊กในบ้านของคุณค่อนข้างแปรปรวน นั่นเป็นเพราะแรงดันตกคร่อมความต้านทานในสายไฟ คอนเนคเตอร์ ฟิวส์ หม้อแปลง ฯลฯ มีความต้านทานอยู่ทุกที่ หากคุณเปิดฝักบัวไฟฟ้าแรง 11 กิโลวัตต์ (ประมาณ 50 แอมป์) ความต้านทาน 0.2 โอห์มก็จะลดลง 10 โวลต์ คุณอาจเห็นสิ่งนี้ในขณะที่ไฟหรี่ลงเล็กน้อย มอเตอร์ขนาดใหญ่ เช่น มอเตอร์ที่อยู่ในฮูเวอร์จะดึงกระแสน้ำขนาดใหญ่ในขณะที่มอเตอร์เร่งความเร็ว คุณจึงมักจะเห็นไฟกะพริบเล็กน้อยเมื่อเปิดเครื่อง

ประเด็นของฉันคือแรงดันไฟหลักมีความแปรปรวนมากกว่ามาก ที่นี่ในสหราชอาณาจักรควรจะเป็น 230v โดยมีความอดทน +10%/-6% คุณสามารถคาดหวังได้ว่าจะเห็นการเปลี่ยนแปลงและความผันผวนอย่างกะทันหันเนื่องจากมีการเปิด/ปิดการโหลดจำนวนมากในบริเวณใกล้เคียง นึกถึงเครื่องอบผ้า กาต้มน้ำ เตาอบ เครื่องดูดควัน ฯลฯ

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

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

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

ขั้นตอนที่ 2: วิธีผลักพลังงานเข้าสู่กริด

วิธีผลักพลังงานเข้าสู่กริด
วิธีผลักพลังงานเข้าสู่กริด

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

เนื่องจากกริดมีความต้านทานต่ำ จึงเป็นเรื่องยากที่จะทราบได้อย่างแน่ชัดว่าจะสร้างแรงดันไฟฟ้าให้สูงขึ้นเท่าใด และในขณะที่แรงดันไฟฟ้า RMS ผันผวน เราต้องแน่ใจว่าเราผันผวนด้วย เพียงแค่สร้างสัญญาณแรงดันไฟฟ้าคงที่ 50Hz ที่สูงกว่าแรงดันไฟหลักเล็กน้อยจะไม่ทำงาน!

PI การควบคุมกระแสไฟขาออก

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

ลูปควบคุม PI นั้นยอดเยี่ยมมาก! มี 3 ส่วนสำหรับพวกเขา:

  • ค่าที่วัดได้ - กระแสที่เราใส่เข้าไปในแหล่งจ่ายไฟหลัก
  • ค่าที่ตั้งไว้ - กระแสที่เราอยากจะผลักเข้าสู่กระแสหลัก
  • เอาท์พุท - แรงดันสัญญาณที่จะสร้าง

ทุกครั้งที่เราเรียกใช้อัลกอริธึม PID เราจะผ่านการวัดล่าสุดและการตั้งค่าที่เราต้องการ มันจะส่งคืนตัวเลขโดยพลการ (สัดส่วนกับแรงดันเอาต์พุตที่จะสร้าง)

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

อัลกอริทึม PID ถูกเรียกทุกๆ 100us (เท่ากับ 200 ครั้งต่อรอบ 50Hz) ทุกครั้งที่มีการเรียก จะสามารถปรับแรงดันไฟขาออกได้โดยตรงและด้วยเหตุนี้จึงปรับกระแสไฟขาออกทางอ้อม เป็นผลให้เราสร้างเอาต์พุตกระแสแบบสเต็ปคล้ายกับที่แสดงในภาพโดยแต่ละขั้นตอนเกิดขึ้นทุก ๆ 100us ที่ให้ความละเอียดเพียงพอ

การควบคุมฟีดฟอร์เวิร์ด

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

ด้วยตัวมันเอง ตัวควบคุม feedforward จะจับคู่แรงดันเอาต์พุตของอินเวอร์เตอร์กับแรงดันไฟฟ้าของกริด กระแสไม่ควรไหลถ้าเราเข้ากันได้ดีพอ ดังนั้นการควบคุม feedforward จึงทำ 99% ของการควบคุมเอาต์พุต

เนื่องจากกริดมีความต้านทานต่ำ ความแตกต่างใดๆ ในแรงดันเอาต์พุต FF และแรงดันกริดจะส่งผลให้มีกระแสไฟฟ้าขนาดใหญ่ ดังนั้นฉันจึงเพิ่มความต้านทานบัฟเฟอร์ 1ohm ระหว่างอินเวอร์เตอร์และกริด สิ่งนี้ทำให้เกิดการสูญเสีย แต่ก็ค่อนข้างเล็กในโครงการใหญ่

ขั้นตอนที่ 3: การสร้างแรงดันเอาต์พุตโดยใช้ PWM

การสร้างแรงดันเอาต์พุตโดยใช้ PWM
การสร้างแรงดันเอาต์พุตโดยใช้ PWM
การสร้างแรงดันเอาต์พุตโดยใช้ PWM
การสร้างแรงดันเอาต์พุตโดยใช้ PWM
การสร้างแรงดันเอาต์พุตโดยใช้ PWM
การสร้างแรงดันเอาต์พุตโดยใช้ PWM

แม้ว่าเราจะควบคุมกระแสไฟขาออกทางอ้อม แต่ก็เป็นแรงดันเอาต์พุตที่เรากำลังสร้างขึ้นในช่วงเวลาใดก็ตาม เราใช้ PWM (Pulse Width Modulation) เพื่อสร้างแรงดันเอาต์พุตของเรา ไมโครคอนโทรลเลอร์สามารถผลิตสัญญาณ PWM ได้อย่างง่ายดาย และสามารถขยายสัญญาณได้โดยใช้ H-Bridge เป็นรูปคลื่นอย่างง่ายที่มีพารามิเตอร์ 2 ตัว ได้แก่ ความถี่ F และรอบการทำงาน D

รูปคลื่น PWM จะสลับระหว่าง 2 แรงดันไฟฟ้า ในกรณีของเราคือ 0v และ Vsupply

  • ด้วย D = 1.0 รูปคลื่น PWM เป็นเพียง DC ที่ Vsupply
  • ด้วย D = 0.5 เราจะได้คลื่นสี่เหลี่ยมที่มีแรงดันเฉลี่ย 0.5 x Vsupply (เช่น D x Vsupply)
  • ด้วย D = 0.1 เราจะได้รูปคลื่นพัลซิ่งที่มีค่าเฉลี่ยคาบที่ 0.1 x Vsupply
  • ด้วย D = 0.0 เอาต์พุตจะเป็นแฟลตไลน์ (DC ที่ 0v)

แรงดันไฟเฉลี่ยคือสิ่งสำคัญ ด้วยตัวกรองความถี่ต่ำผ่าน เราสามารถลบทุกอย่างได้ ยกเว้นองค์ประกอบเฉลี่ย DC ดังนั้นด้วยการเปลี่ยนรอบการทำงานของ PWM D เราจึงสามารถสร้างแรงดัน DC ที่ต้องการได้ หวาน!

การใช้สะพาน H

H-Bridge ประกอบด้วยองค์ประกอบสวิตช์ 4 ตัว สิ่งเหล่านี้อาจเป็น BJT, MOSFET หรือ IGBT ในการสร้างคลื่นไซน์ครึ่งแรก (0 - 180 องศา) เราตั้งค่าเฟส B ให้ต่ำโดยปิด Q3 และเปิด Q4 (เช่น ใช้ PWM กับ D = 0) จากนั้นเราทำ PWMing ของเราในเฟส A สำหรับครึ่งหลัง โดยที่ VAB เป็นลบ เราตั้งค่า Phase A ให้ต่ำ และใช้ PWM ของเรากับเฟส B ซึ่งเรียกว่าการสลับไบโพลาร์

MOSFETs ใน H-bridge จะต้องถูกขับเคลื่อนโดยตัวขับเกท นี่เป็นหัวข้อของตัวเอง แต่ชิปธรรมดาสามารถดูแลได้ บอร์ดสำหรับนักพัฒนา DRV8301 เป็นที่เก็บ H-Bridge, ตัวขับเกท และตัวแยกกระแสสำหรับเรา ทำให้โปรเจ็กต์นี้ง่ายขึ้นมาก

ขั้นตอนที่ 4: การวัดกระแส

การวัดกระแส
การวัดกระแส
การวัดกระแส
การวัดกระแส
การวัดกระแส
การวัดกระแส

ขาแต่ละข้างของ H-Bridge มีตัวต้านทาน shunt และแอมพลิฟายเออร์ดิฟเฟอเรนเชียล การแบ่งของเราคือ 0.01 โอห์มและแอมพลิฟายเออร์ของเราตั้งค่าไว้ที่เกน 40 ดังนั้น 1 แอมป์จะพัฒนา 10mV ข้ามการแบ่งซึ่งจะถูกขยายในภายหลังเป็น 400mV

เอาต์พุตจากแอมพลิฟายเออร์ shunt จะอ่านโดย ADC 12 บิตบน STM32F407 ที่ทำงานในโหมดการแปลงแบบต่อเนื่อง ADC ถูกตั้งค่าให้สุ่มตัวอย่างแต่ละ shunt ที่ 110KSPS และตัวควบคุม DMA จะเขียนการแปลงเป็นบัฟเฟอร์วงกลม 11 คำใน RAM โดยอัตโนมัติ เมื่อต้องการวัดค่าปัจจุบัน เราจะเรียกฟังก์ชันที่คืนค่ามัธยฐานของบัฟเฟอร์ 11 คำนี้

เนื่องจากเราขอการวัดปัจจุบันทุก ๆ การทำซ้ำ PID (ที่ 10KHz) แต่เติมบัฟเฟอร์ ADC 11 คำของเราที่อัตรา 110KHz เราจึงควรได้รับข้อมูลที่สดใหม่โดยสมบูรณ์ในการทำซ้ำ PID แต่ละครั้ง เหตุผลของการใช้ตัวกรองค่ามัธยฐาน เป็นเพราะการสลับ PWM สามารถแนะนำ spikes ลงในตัวกรองแบบผสมและค่ามัธยฐานกำจัดตัวอย่าง ADC ปลอมได้อย่างมีประสิทธิภาพมาก

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

เพื่อช่วยดีบักการอ่านปัจจุบันของเรา ฉันตั้งค่าตัวแปลงดิจิตอลเป็นอนาล็อกบน STM32F407 ฉันเขียนการอ่านปัจจุบันที่ฉันได้รับและกำหนดขอบเขตผลลัพธ์ คุณสามารถเห็นสิ่งนี้ได้ในภาพสุดท้าย สีน้ำเงินคือแรงดันไฟฟ้าข้ามตัวต้านทานบัฟเฟอร์เอาต์พุต (เช่น กระแสเอาต์พุต/1.1ohms) และสัญญาณสีแดงคือเอาต์พุต DAC ของเรา

ขั้นตอนที่ 5: การกรองผลลัพธ์

การกรองผลลัพธ์
การกรองผลลัพธ์
การกรองผลลัพธ์
การกรองผลลัพธ์

ตัวกรองเอาต์พุตเป็นส่วนสำคัญในการออกแบบ เราต้องการคุณสมบัติเหล่านี้จากมัน:

  1. บล็อกการสลับความถี่สูงทั้งหมด แต่ส่งผ่านสัญญาณ 50Hz
  2. ขาดทุนน้อย
  3. ไม่ให้ดัง!
  4. เพื่อรับมือกับกระแสและแรงดันที่เกี่ยวข้อง

การแปลงฟูริเยร์ของสัญญาณ PWM ของความถี่ F, Duty cycle D, ระหว่าง 0 - Vsupply โวลต์คือ: (D x Vsupply) + คลื่นไซน์ที่ความถี่พื้นฐาน F และฮาร์โมนิกหลังจากนั้น

นี่มันเจ๋ง! หมายความว่าถ้าเราใส่สัญญาณ PWM ของเราผ่านตัวกรองความถี่ต่ำซึ่งบล็อก PWM พื้นฐานและทุกอย่างข้างต้น เราเหลือเพียงเทอมแรงดันไฟฟ้ากระแสตรง ด้วยการเปลี่ยนรอบการทำงาน เราสามารถผลิตแรงดันไฟฟ้าใดๆ ที่เราต้องการได้อย่างง่ายดายระหว่าง 0 - Vsupply ตามที่อธิบาย

ตามลักษณะที่ต้องการที่กล่าวถึงข้างต้น เราสามารถออกแบบตัวกรองเอาต์พุตได้ เราต้องการตัวกรองความถี่ต่ำที่มีความต้านทานน้อยที่สุดเพื่อหลีกเลี่ยงการสูญเสีย ดังนั้นเราจึงใช้ตัวเหนี่ยวนำและตัวเก็บประจุ หากเราเลือกความถี่เรโซแนนซ์ระหว่าง 1 - 2KHz เราจะหลีกเลี่ยงการสะท้อนเนื่องจากเราไม่ได้ฉีดสัญญาณใดๆ ใกล้ความถี่นั้น นี่คือการออกแบบตัวกรองของเรา เราใช้เอาต์พุตของเราเป็นแรงดันไฟฟ้าข้าม C1

โดยการเลือก L1 = L2 = 440uH, C1 = 8.4uF เราจะคำนวณความถี่เรโซแนนซ์ที่ 1.85KHz สิ่งเหล่านี้เป็นค่าองค์ประกอบที่เหมือนจริงเช่นกัน

สิ่งสำคัญคือต้องแน่ใจว่าตัวเหนี่ยวนำของเราไม่เริ่มอิ่มตัวตามกระแสที่เราคาดหวัง ตัวเหนี่ยวนำที่ฉันใช้มีกระแสอิ่มตัว 3A นี่จะเป็นปัจจัยจำกัดกำลังขับของวงจรของเรา การให้คะแนนแรงดันไฟฟ้าของตัวเก็บประจุก็เป็นสิ่งสำคัญเช่นกัน ฉันใช้เซรามิก 450v ซึ่งเกินความสามารถในกรณีนี้!

พล็อตลางบอกเหตุ (สำหรับค่า L/C ที่แตกต่างกันเล็กน้อย) ได้ถูกสร้างขึ้นโดยใช้ LTspice มันแสดงให้เราเห็นการลดทอนที่เกิดขึ้นกับความถี่อินพุตที่ต่างกัน เราสามารถมองเห็นความถี่เรโซแนนซ์ได้ชัดเจนที่ 1.8KHz มันแสดงให้เห็นว่าสัญญาณ 50Hz นั้นไม่มีสิ่งเจือปนเกือบทั้งหมดในขณะที่ฉันสามารถบอกคุณได้ว่าสัญญาณ 45 KHz นั้นลดทอนลง 54dB!

ลองเลือกความถี่พาหะ PWM ของเราเป็น ~ 45KHz ด้วยการเลือกความถี่พาหะของ PWM ที่สูงขึ้น ความถี่ของตัวกรองก็จะเพิ่มขึ้นได้ เป็นสิ่งที่ดีเพราะทำให้ค่า L และ C น้อยลง นั่นหมายถึงส่วนประกอบที่เล็กกว่าและถูกกว่า ข้อเสียคือความถี่สวิตชิ่ง PWM ที่สูงขึ้นทำให้เกิดการสูญเสียที่มากขึ้นในสวิตช์ทรานซิสเตอร์

ขั้นตอนที่ 6: การซิงโครไนซ์เฟสและความถี่

การซิงโครไนซ์เฟสและความถี่
การซิงโครไนซ์เฟสและความถี่
การซิงโครไนซ์เฟสและความถี่
การซิงโครไนซ์เฟสและความถี่
การซิงโครไนซ์เฟสและความถี่
การซิงโครไนซ์เฟสและความถี่

การซิงโครไนซ์กับเฟสหลักและความถี่เป็นสิ่งที่ทำให้อินเวอร์เตอร์แบบกริดไทค์ เราใช้ PLL (Phase Locked Loop) แบบดิจิทัลเพื่อให้การติดตามเฟสของสัญญาณไฟมีความแม่นยำ เราทำสิ่งนี้โดย:

  1. สุ่มตัวอย่างแรงดันไฟหลัก
  2. การสร้างสัญญาณไซน์ 50Hz ในพื้นที่ของเราเอง
  3. การเปรียบเทียบเฟสระหว่างสัญญาณในพื้นที่ของเรากับสัญญาณไฟหลัก
  4. การปรับความถี่ของสัญญาณในพื้นที่จนกว่าเฟสจะต่างกันระหว่าง 2 สัญญาณเป็นศูนย์

1) สุ่มตัวอย่างแรงดันไฟหลัก

เรากำหนดค่าช่อง ADC ที่ 3 เพื่ออ่านแรงดันไฟฟ้าของสาย เราได้รับโดยการแบ่งแรงดันไฟฟ้าของแทปหม้อแปลงตามที่แสดง สิ่งนี้ให้แรงดันไฟฟ้าที่ปรับขนาดได้ประมาณ 1.65v ซึ่งแสดงถึงแรงดันไฟฟ้ากริด

2) การสร้างสัญญาณไซน์ 50Hz ในพื้นที่การผลิตคลื่นไซน์ 50Hz ในพื้นที่ของเราเองนั้นง่ายมาก เราเก็บตารางค้นหาค่าไซน์ 256 ค่า ค่าไซน์จำลองของเราหาได้ง่ายโดยใช้ดัชนีการค้นหาที่หมุนทีละส่วนในตาราง

เราต้องเพิ่มดัชนีของเราในอัตราที่ถูกต้องเพื่อรับสัญญาณ 50Hz คือ 256 x 50Hz = 12, 800/s เราทำสิ่งนี้โดยใช้ timer9 โอเวอร์คล็อกที่ 168MHz โดยการรอ 168MHz/12800 = 13125 นาฬิกาติ๊ก เราจะปรับดัชนีของเราในอัตราที่เหมาะสม

3) การเปรียบเทียบเฟสระหว่างสัญญาณในพื้นที่ของเรากับสัญญาณไฟหลัก นี่เป็นส่วนที่เจ๋งที่สุด! หากคุณรวมผลคูณของ cos(wt) x sin(wt) ในช่วง 1 ช่วงเวลา ผลลัพธ์จะเป็นศูนย์ หากความแตกต่างของเฟสเป็นอย่างอื่นที่ไม่ใช่ 90 องศา คุณจะได้จำนวนที่ไม่ใช่ศูนย์ ทางคณิตศาสตร์:

ปริพันธ์[Asin(t) x Bsin(t + φ)] = Ccos(φ)

นี้ดีมาก! ช่วยให้เราสามารถเปรียบเทียบสัญญาณไฟหลัก, บาป(ωt) กับสัญญาณภายในเครื่อง, บาป(⍵t + φ) และรับค่า

อย่างไรก็ตาม มีปัญหาที่ต้องแก้ไข: หากเราต้องการให้สัญญาณของเราอยู่ในเฟส เราต้องปรับความถี่ในพื้นที่เพื่อให้ Ccos(φ) อยู่ในระยะสูงสุด วิธีนี้ใช้ไม่ได้ผลและเราจะได้รับการติดตามเฟสที่ไม่ดี นี่เป็นเพราะ d/dφ ของ ɑcos(φ) เป็น 0 ที่ φ = 0 ซึ่งหมายความว่าระยะ Ccos (φ) จะไม่แตกต่างกันมากนักเมื่อมีการเปลี่ยนแปลงเฟส มันสมเหตุสมผลหรือไม่?

จะดีกว่ามากถ้าจะเปลี่ยนเฟสสัญญาณไฟหลักที่สุ่มตัวอย่างไว้ 90 องศาเพื่อให้กลายเป็น cos(ωt + φ) จากนั้นเราก็มีสิ่งนี้:

ปริพันธ์[Asin(t) Bcos(t + φ)] = Csin(φ)

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

ตอนนี้เราทวีคูณสัญญาณไฟหลักที่เปลี่ยนเฟส 90 องศาด้วยสัญญาณในพื้นที่ของเราและให้อินทิกรัลทำงานของผลิตภัณฑ์ตลอดช่วงสุดท้าย (เช่น มากกว่า 256 ค่าล่าสุด)

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

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

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

และนั่นแหล่ะ เราได้ล็อกออสซิลเลเตอร์คลื่นไซน์ในพื้นที่ของเรา (ซึ่งตั้งค่าจุดตั้งค่ากระแสไฟขาออก) ให้อยู่ในเฟสที่มีแรงดันไฟหลัก เราได้นำอัลกอริธึม PLL มาใช้และมันทำงานได้เหมือนฝัน!

การเพิ่มความถี่ของออสซิลเลเตอร์ในพื้นที่ของเรายังช่วยลดการเปลี่ยนเฟสของสัญญาณไฟหลัก เนื่องจากเราจำกัดการปรับความถี่ไว้ที่ +/-131 ขีด (+/- ~1%) เราจะส่งผลต่อการเปลี่ยนเฟสอย่างมากที่สุด +/- 1° สิ่งนี้จะไม่สำคัญเลยในขณะที่เฟสซิงโครไนซ์

ในทางทฤษฎีถ้าความถี่ไฟหลักเบี่ยงเบนไปมากกว่า 0.5Hz เราจะสูญเสียเฟสล็อคของเรา นี่เป็นเพราะข้อจำกัดข้างต้นของเราว่าเราสามารถปรับความถี่ออสซิลเลเตอร์ในพื้นที่ของเราได้มากน้อยเพียงใด อย่างไรก็ตาม สิ่งนั้นจะไม่เกิดขึ้นเว้นแต่ว่ากริดกำลังจะล้มเหลว การป้องกันการเกาะของเราจะเริ่มขึ้น ณ จุดนี้อยู่ดี

เราทำการตรวจจับข้ามศูนย์เมื่อเริ่มต้นเพื่อพยายามอย่างเต็มที่ในการเริ่มสัญญาณอินเฟสจากออฟเซ็ต

ขั้นตอนที่ 7: ต่อต้านเกาะ

ต่อต้านเกาะ
ต่อต้านเกาะ

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

ตามที่อธิบายได้ดีขึ้นในบทความวิกิพีเดีย เราใช้ข้อควรระวังด้านความปลอดภัยสองสามข้อที่ร่วมกันให้การป้องกันที่เพียงพอ (ในความคิดของฉัน):

  1. แรงดันไฟต่ำ/เกิน
  2. ความถี่ต่ำ/สูง

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

แนะนำ: