สารบัญ:

วิธีวัดตัวประกอบกำลังไฟฟ้ากระแสสลับโดยใช้ Arduino: 4 ขั้นตอน
วิธีวัดตัวประกอบกำลังไฟฟ้ากระแสสลับโดยใช้ Arduino: 4 ขั้นตอน

วีดีโอ: วิธีวัดตัวประกอบกำลังไฟฟ้ากระแสสลับโดยใช้ Arduino: 4 ขั้นตอน

วีดีโอ: วิธีวัดตัวประกอบกำลังไฟฟ้ากระแสสลับโดยใช้ Arduino: 4 ขั้นตอน
วีดีโอ: หากำลังไฟฟ้าในวงจรกระแสสลับ (AC Power) 2024, กรกฎาคม
Anonim
วิธีการวัดตัวประกอบกำลังไฟฟ้ากระแสสลับโดยใช้ Arduino
วิธีการวัดตัวประกอบกำลังไฟฟ้ากระแสสลับโดยใช้ Arduino
วิธีการวัดตัวประกอบกำลังไฟฟ้ากระแสสลับโดยใช้ Arduino
วิธีการวัดตัวประกอบกำลังไฟฟ้ากระแสสลับโดยใช้ Arduino

สวัสดีทุกคน! นี่เป็นคำแนะนำที่สามของฉันหวังว่าคุณจะพบว่ามีข้อมูล:-) นี่จะเป็นคำแนะนำเกี่ยวกับวิธีการวัดค่าตัวประกอบกำลังพื้นฐานโดยใช้ Arduino ก่อนที่เราจะเริ่ม มีบางสิ่งที่ต้องจำไว้:

  1. สิ่งนี้จะใช้ได้กับโหลดเชิงเส้นเท่านั้น (เช่น มอเตอร์เหนี่ยวนำ หม้อแปลง โซลินอยด์)
  2. สิ่งนี้จะไม่ทำงานกับ NON-LINEAR (เช่น CFL Bulbs, อุปกรณ์จ่ายไฟโหมดสวิตช์, LED)
  3. ฉันเป็นวิศวกรไฟฟ้าและมีความสามารถในการทำงานกับศักย์ไฟฟ้าหลัก (เช่น 230V)

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

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

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

ขั้นตอนที่ 1: การออกแบบวงจร

การออกแบบวงจร
การออกแบบวงจร
การออกแบบวงจร
การออกแบบวงจร
การออกแบบวงจร
การออกแบบวงจร
การออกแบบวงจร
การออกแบบวงจร

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

ฉันออกแบบวงจรต่อไปนี้ใน Multisim สมมติว่ากระแสและแรงดันของโหลดเป็นรูปคลื่นไซน์บริสุทธิ์ ตัวประกอบกำลังสามารถวัดได้ รูปคลื่นแต่ละรูปจะถูกป้อนเข้าไปในเครื่องตรวจจับการข้ามศูนย์ (บางครั้งเรียกว่าตัวแปลงคลื่นไซน์เป็นคลื่นสี่เหลี่ยม) ซึ่งเป็นเพียง 741 op-amp ในโหมดเปรียบเทียบโดยที่แรงดันเปรียบเทียบคือ 0V เมื่อคลื่นไซน์อยู่ในวัฏจักรลบ จะมีการสร้างพัลส์ DC เชิงลบ และเมื่อคลื่นไซน์เป็นค่าบวก จะสร้างพัลส์ DC เชิงบวก จากนั้นเปรียบเทียบคลื่นสี่เหลี่ยมสองคลื่นโดยใช้ลอจิกเกท OR (XOR) แบบเอกสิทธิ์เฉพาะบุคคล ซึ่งจะส่งสัญญาณพัลส์ DC สูงเป็นบวกเฉพาะเมื่อคลื่นสี่เหลี่ยมไม่ทับซ้อนกัน และ 0V เมื่อซ้อนทับกัน เอาต์พุตของเกต XOR จึงเป็นความแตกต่างของเวลา (เดลต้า t) ระหว่างคลื่นทั้งสองจากจุดที่พวกมันข้ามจุดศูนย์ ไมโครคอนโทรลเลอร์สามารถจับเวลาสัญญาณความแตกต่างนี้และแปลงเป็นตัวประกอบกำลังโดยใช้การคำนวณต่อไปนี้ (ตรวจสอบให้แน่ใจว่าเครื่องคิดเลขทางวิทยาศาสตร์ของคุณอยู่ในหน่วยองศาไม่ใช่เรเดียน):

cos(phi) = f * dt * 360

ที่ไหน:

cos(phi) - ตัวประกอบกำลัง

f - ความถี่ของการจ่ายที่วัดได้

dt - เดลต้า t หรือความแตกต่างของเวลาระหว่างคลื่น

360 - ค่าคงที่ที่ใช้ตอบเป็นองศา

ในภาพ คุณจะเห็นร่องรอยของออสซิลโลสโคปจำลองสามแบบสำหรับวงจร สัญญาณอินพุตสองตัวแสดงถึงกระแสและแรงดันของโหลด ฉันได้ให้สัญญาณที่สองกับเฟสที่ต่างกันที่ 18 องศา เพื่อสาธิตทฤษฎีนี้ ให้ค่า PF ประมาณ 0.95

ขั้นตอนที่ 2: การสร้างต้นแบบและการทดสอบ

การสร้างต้นแบบและการทดสอบ
การสร้างต้นแบบและการทดสอบ
การสร้างต้นแบบและการทดสอบ
การสร้างต้นแบบและการทดสอบ
การสร้างต้นแบบและการทดสอบ
การสร้างต้นแบบและการทดสอบ

สำหรับงานสร้างต้นแบบของฉัน ฉันวางการออกแบบวงจรไว้บนเขียงหั่นขนมแบบไม่มีบัดกรี จากแผ่นข้อมูล UA741CN และแผ่นข้อมูล CD4070CN ทั้งสอง IC ใช้แหล่งจ่ายไฟ 12-15 Vdc ดังนั้นฉันจึงขับเคลื่อนโดยใช้แบตเตอรี่สองก้อนเพื่อสร้างแหล่งจ่ายไฟแบบรางคู่ +12V, 0V, -12V โวลต์

จำลองโหลด

คุณสามารถจำลองการโหลดโดยใช้เครื่องกำเนิดสัญญาณสองช่องสัญญาณหรือเครื่องกำเนิดฟังก์ชัน ฉันใช้กล่องจีนราคาถูกและร่าเริงนี้เพื่อสร้างคลื่นไซน์ 50 Hz สองคลื่นห่างกัน 18 องศา และป้อนสัญญาณเข้าในวงจร คุณสามารถเห็นรูปคลื่นผลลัพธ์บนออสซิลโลสโคป ในภาพด้านบน คุณจะเห็นคลื่นสี่เหลี่ยมที่ทับซ้อนกันสองคลื่น (เอาต์พุตจาก op-amp แต่ละอัน) และอีกสามภาพแสดงผลลัพธ์ของเกต XOR สังเกตว่าความกว้างของพัลส์เอาต์พุตสั้นลงเมื่อมุมเฟสลดลง ตัวอย่างข้างต้นแสดง 90, 40, 0 องศา

ขั้นตอนที่ 3: รหัส Arduino

ดังที่กล่าวไว้ข้างต้น เอาต์พุตจากวงจรการวัดคือความแตกต่างของเวลาระหว่างสัญญาณอินพุตทั้งสอง (เช่น สัญญาณกระแสและแรงดันไฟ) รหัส Arduino ใช้ "pulseIn" เพื่อวัดความยาวของพัลส์เอาต์พุตจากวงจรการวัดในหน่วยนาโนวินาทีและใช้ในสูตร PF ที่กล่าวถึงข้างต้น

โค้ดเริ่มต้นด้วยการกำหนดค่าคงที่ ส่วนใหญ่เพื่อทำให้โค้ดมีระเบียบและอ่านง่ายขึ้น สิ่งสำคัญที่สุดคือ รหัส C (รหัส Arduino) ทำงานในหน่วยเรเดียน ไม่ใช่องศา ดังนั้นจึงจำเป็นต้องแปลงจากเรเดียนเป็นองศาเพื่อคำนวณมุมและค่า PF ในภายหลัง หนึ่งเรเดียนมีค่าประมาณ 57.29577951 องศา จำนวน 360 นั้นยังถูกเก็บไว้และตัวคูณการคูณ 1x10^-6 สำหรับการแปลงนาโนวินาทีเป็นวินาทีธรรมดา ความถี่ถูกกำหนดไว้ที่จุดเริ่มต้น หากคุณใช้อย่างอื่นที่ไม่ใช่ 50Hz ตรวจสอบให้แน่ใจว่าความถี่นี้ได้รับการอัปเดตเมื่อเริ่มต้นโค้ด

ภายใน "void loop()" ฉันได้บอกให้ Arduino คำนวณมุมตามสูตร PF ที่กล่าวถึงก่อนหน้านี้ ในการวนซ้ำรหัสนี้ครั้งแรกของฉัน โค้ดจะคืนค่ามุมที่ถูกต้องและตัวประกอบกำลัง อย่างไรก็ตาม ระหว่างผลลัพธ์ที่ถูกต้องแต่ละรายการ ค่าต่ำที่ผิดพลาดบางค่าก็จะถูกส่งกลับในคอนโซลอนุกรมด้วยเช่นกัน ฉันสังเกตเห็นว่านี่คือการอ่านอื่น ๆ หรือทุก ๆ การวัดสี่ครั้ง ฉันวางคำสั่ง "if" ไว้ในลูป "for" เพื่อเก็บค่าสูงสุดของการอ่านต่อเนื่องกันทุกๆ สี่ครั้ง ทำได้โดยเปรียบเทียบการคำนวณกับ "angle_max" ซึ่งเริ่มแรกเป็นศูนย์ และถ้าใหญ่กว่าจะเก็บค่าใหม่ไว้ใน "angle_max" ทำซ้ำสำหรับการวัดค่า PF การทำเช่นนี้ในลูป "for" หมายถึงมุมที่ถูกต้องและ pf จะถูกส่งกลับเสมอ แต่ถ้ามุมที่วัดได้เปลี่ยนแปลง (สูงหรือต่ำกว่า) เมื่อ "for" สิ้นสุด "angle_max" จะรีเซ็ตเป็นศูนย์สำหรับการทดสอบครั้งต่อไปเมื่อ " วนเป็นโมฆะ ()" ซ้ำ มีตัวอย่างที่ดีเกี่ยวกับวิธีการทำงานบนเว็บไซต์ Arduino (https://www.arduino.cc/en/Tutorial/Calibration) สูตร "if" ที่สองจะป้องกันค่าใดๆ ที่สูงกว่า 360 ที่ถูกส่งกลับในกรณีที่มีการวัดค่าสูงที่ผิดพลาดเมื่อปิดอุปกรณ์ที่ทดสอบ

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

การทดสอบกรด!
การทดสอบกรด!
การทดสอบกรด!
การทดสอบกรด!
การทดสอบกรด!
การทดสอบกรด!

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

ตามคำร้องขอของผู้ติดตาม ฉันได้จัดทำโครงร่างเขียงหั่นขนมบน Fritzing เพื่อให้แนวคิดที่ดีขึ้นเกี่ยวกับวงจรและวงจรสุ่มตัวอย่าง/การตรวจจับ (ฉันได้แนบไฟล์.fzz และไดอะแกรม.png) มอเตอร์ที่อยู่ด้านบนแสดงถึงพัดลมตั้งโต๊ะที่ฉันใช้ และขดลวดเหนี่ยวนำแสดงถึงหม้อแปลงกระแสที่ฉันพันรอบตัวนำไฟฟ้าที่มีกระแสไฟฟ้า ฉันจ่ายไฟให้กับไอซี 741 โดยใช้แบตเตอรี่ 12V สองก้อนที่จัดเรียงเพื่อให้ +12 VDC, 0 VDC (กราวด์) และ -12 VDC CD4070 ยังสามารถขับเคลื่อนโดยตรงจากรางไฟ 5V ของ Arduino

เพื่อพิสูจน์ว่าแนวคิดใช้งานได้จริง วงจรถูกสร้างขึ้นโดยใช้เขียงหั่นขนมแบบบัดกรี จากภาพจะเห็นการจัดเรียงวงจร ฉันใช้พัดลมตั้งโต๊ะเป็นโหลดอุปนัยเพื่อทดสอบแนวคิด ระหว่างแหล่งจ่ายไฟหลัก 230V กับโหลดคืออุปกรณ์ตรวจจับของฉัน ฉันมีหม้อแปลงแบบสเต็ปดาวน์ซึ่งแปลง 230V โดยตรงเป็น 5V เพื่อให้สุ่มตัวอย่างรูปคลื่นของแรงดันไฟฟ้า หม้อแปลงกระแสแบบไม่รุกรานที่ยึดรอบตัวนำที่มีกระแสไฟฟ้าถูกใช้เพื่อสุ่มตัวอย่างรูปคลื่นปัจจุบัน (ด้านขวาของตัวต้านทานหุ้มอะลูมิเนียม) โปรดทราบว่าคุณไม่จำเป็นต้องรู้แอมพลิจูดของกระแสหรือแรงดันไฟ เพียงแต่รูปคลื่นสำหรับ op-amp เพื่อระบุการข้ามเป็นศูนย์ รูปภาพด้านบนแสดงรูปคลื่นกระแสและแรงดันจริงจากพัดลม และคอนโซลอนุกรมของ Arduino ซึ่งรายงาน PF ที่ 0.41 และมุม 65 องศา

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

แนะนำ: