ตัวแปลงหน่วยที่กำหนดเอง
หน่วยที่กำหนดเอง: การสร้างแบบจำลอง, สูตร และแนวทางปฏิบัติที่ดีที่สุด
กำหนดหน่วยวัดของคุณเองโดยยึดกับ 'หน่วยพื้นฐาน' หรือหน่วยที่กำหนดเองอื่น สร้างแบบจำลองปัจจัยเชิงเส้นหรือนิพจน์ทั้งหมด และจัดระเบียบกลุ่มที่สอดคล้องกันสำหรับโครงการหรือโดเมนของคุณ
แนวคิดพื้นฐาน
การสร้างแบบจำลองตามการอ้างอิง
การอ้างอิงของคุณคือหน่วยที่กำหนดเองอื่นหรือ 'หน่วยพื้นฐาน'
นิพจน์การแปลงจะจับคู่ค่าอินพุตกับพื้นที่ของหน่วยอ้างอิง (ระบบนี้จงใจไม่ขึ้นกับหน่วย)
- ความปลอดภัยของมิติโดยการเลือกการอ้างอิง คุณได้ผูกหน่วยที่กำหนดเองเข้ากับกลุ่มนั้นโดยปริยาย รักษาความสอดคล้องของกลุ่ม (เช่น หน่วยที่เกี่ยวข้องกันอ้างอิงฐานเดียวกัน)
- ความสามารถในการประกอบเปลี่ยนการอ้างอิงในภายหลังโดยไม่ต้องเปลี่ยนชื่อหน่วย—มีเพียงนิพจน์ที่ต้องปรับ
- ความสามารถในการตรวจสอบทุกหน่วยมีคำจำกัดความที่ชัดเจนเพียงหนึ่งเดียว: การอ้างอิง + นิพจน์
ปัจจัยเทียบกับนิพจน์
หน่วยอย่างง่ายใช้ปัจจัยคงที่ (เช่น 1 ฟู = 0.3048 × ฐาน)
หน่วยขั้นสูงสามารถใช้นิพจน์ที่มีฟังก์ชัน (เช่น 10 * log(x / 1e-3))
- ปัจจัยคงที่เหมาะที่สุดสำหรับความสัมพันธ์เชิงเส้นคงที่ (มาตราส่วนความยาว อัตราส่วนพื้นที่ ฯลฯ)
- นิพจน์ใช้ฟังก์ชันทางคณิตศาสตร์สำหรับมาตราส่วนที่ได้มาหรือมาตราส่วนที่ไม่ใช่เชิงเส้น (อัตราส่วน ลอการิทึม กำลัง)
- ค่าคงที่ค่าคงที่ในตัวเช่น PI, E, PHI, SQRT2, SQRT3, LN2, LN10, LOG2E, LOG10E, AVOGADRO, PLANCK, LIGHT_SPEED, GRAVITY, BOLTZMANN
การตั้งชื่อ, สัญลักษณ์ และความสอดคล้อง
เลือกสัญลักษณ์ที่สั้นและไม่กำกวม หลีกเลี่ยงการชนกับมาตรฐานที่มีอยู่
จัดทำเอกสารเกี่ยวกับเจตนาในองค์กรของคุณ—ว่ามันวัดอะไรและมีอยู่เพื่ออะไร
- ความชัดเจนควรใช้สัญลักษณ์ที่กระชับ (แนะนำ 1–4 ตัวอักษร; UI อนุญาตสูงสุด 6 ตัว)
- ความเสถียรถือว่าสัญลักษณ์เป็นตัวระบุที่เสถียรในชุดข้อมูลและ API ต่างๆ
- รูปแบบใช้การเขียนตัวพิมพ์ใหญ่-เล็กคล้าย SI ในกรณีที่สมเหตุสมผล (เช่น 'foo', 'kFoo', 'mFoo')
- หน่วยที่กำหนดเอง = หน่วยอ้างอิง + นิพจน์การแปลง
- การอ้างอิงยึดมิติ; นิพจน์กำหนดการจับคู่ค่า
- ควรใช้ปัจจัยคงที่สำหรับมาตราส่วนเชิงเส้น; ใช้นิพจน์สำหรับกรณีพิเศษ
ภาษาสูตร
นิพจน์รองรับตัวเลข, ตัวแปร x (ค่าอินพุต), ค่าแฝง, ค่าคงที่ (PI, E, PHI, SQRT2, SQRT3, LN2, LN10, LOG2E, LOG10E, AVOGADRO, PLANCK, LIGHT_SPEED, GRAVITY, BOLTZMANN), ตัวดำเนินการทางคณิตศาสตร์ และฟังก์ชันทางคณิตศาสตร์ทั่วไป นิพจน์จะประเมินผลเป็นค่าในหน่วยอ้างอิงที่เลือก
ตัวดำเนินการ
| ตัวดำเนินการ | ความหมาย | ตัวอย่าง |
|---|---|---|
| + | การบวก | x + 2 |
| - | การลบ/การปฏิเสธแบบยูแนรี | x - 5, -x |
| * | การคูณ | 2 * x |
| / | การหาร | x / 3 |
| ** | ยกกำลัง (ใช้ **; ^ จะถูกแปลงโดยอัตโนมัติ) | x ** 2 |
| () | ลำดับความสำคัญ | (x + 1) * 2 |
ฟังก์ชัน
| ฟังก์ชัน | ลายเซ็น | ตัวอย่าง |
|---|---|---|
| sqrt | sqrt(x) | sqrt(x^2 + 1) |
| cbrt | cbrt(x) | cbrt(x) |
| pow | pow(a, b) | pow(0.3048, 2) |
| abs | abs(x) | abs(x) |
| min | min(a, b) | min(x, 100) |
| max | max(a, b) | max(x, 0) |
| round | round(x) | round(x * 1000) / 1000 |
| trunc | trunc(x) | trunc(x) |
| floor | floor(x) | floor(x) |
| ceil | ceil(x) | ceil(x) |
| sin | sin(x) | sin(PI/6) |
| cos | cos(x) | cos(PI/3) |
| tan | tan(x) | tan(PI/8) |
| asin | asin(x) | asin(0.5) |
| acos | acos(x) | acos(0.5) |
| atan | atan(x) | atan(1) |
| atan2 | atan2(y, x) | atan2(1, x) |
| sinh | sinh(x) | sinh(1) |
| cosh | cosh(x) | cosh(1) |
| tanh | tanh(x) | tanh(1) |
| ln | ln(x) | ln(x) |
| log | log(x) | log(100) |
| log2 | log2(x) | log2(8) |
| exp | exp(x) | exp(1) |
| degrees | degrees(x) | degrees(PI/2) |
| radians | radians(x) | radians(180) |
| percent | percent(value, total) | percent(25, 100) |
| factorial | factorial(n) | factorial(5) |
| gcd | gcd(a, b) | gcd(12, 8) |
| lcm | lcm(a, b) | lcm(12, 8) |
| clamp | clamp(value, min, max) | clamp(x, 0, 100) |
| sign | sign(x) | sign(-5) |
| nthRoot | nthRoot(value, n) | nthRoot(8, 3) |
กฎของนิพจน์
- x คือค่าอินพุต; ค่าแฝงก็มีให้ใช้เช่นกัน
- ใช้การคูณที่ชัดเจน (เช่น 2 * PI, ไม่ใช่ 2PI)
- ค่าคงที่ที่มีให้ใช้: PI, E, PHI, SQRT2, SQRT3, LN2, LN10, LOG2E, LOG10E, AVOGADRO, PLANCK, LIGHT_SPEED, GRAVITY, BOLTZMANN
- มุมสำหรับฟังก์ชันตรีโกณมิติเป็นเรเดียน (ใช้ฟังก์ชันช่วยเหลือ degrees() และ radians() สำหรับการแปลง)
- อ้างอิงหน่วยที่กำหนดเองอื่นตามชื่อ (snake_case) หรือสัญลักษณ์; ค่า toBase ปัจจุบันของมันจะถูกแทรกเป็นค่าคงที่
- ใช้ ** สำหรับยกกำลัง (เอนจิ้นจะแปลง ^ เป็น ** โดยอัตโนมัติ)
- การทำให้เป็นมาตรฐานของอินพุตอัจฉริยะ: ×, ÷, π, ², ³ จะถูกแปลงเป็น *, /, PI, ^2, ^3 โดยอัตโนมัติ
- ฟังก์ชันช่วยเหลือที่มีให้ใช้: degrees(), radians(), percent(), factorial(), gcd(), lcm(), clamp(), sign(), nthRoot()
- การตรวจจับข้อผิดพลาดที่ปรับปรุงแล้วป้องกันความผิดพลาดทั่วไป (ลอการิทึมของจำนวนลบ, รากที่สองของจำนวนลบ, การหารด้วยศูนย์)
- การอ้างอิงหน่วยที่กำหนดเอง: ใช้หน่วยอื่นเป็นตัวแปรในนิพจน์ (เช่น 'x * A' โดยที่ A คือหน่วยที่กำหนดเองอื่น)
- ช่องว่างจะถูกละเว้น; ใช้วงเล็บเพื่อควบคุมลำดับความสำคัญ
- นิพจน์ต้องให้ผลลัพธ์ที่เป็นตัวเลขจำกัดสำหรับอินพุตที่ถูกต้อง
- ใช้การคูณที่ชัดเจน (เช่น 2 * PI)
- มุมสำหรับฟังก์ชันตรีโกณมิติเป็นเรเดียน
- log(x) คือฐาน 10; ln(x) คือลอการิทึมธรรมชาติ (ฐาน e)
การวิเคราะห์มิติและกลยุทธ์
ระบบที่กำหนดเองนี้ไม่ขึ้นกับหน่วย สร้างแบบจำลองกลุ่มโดยยึดหน่วยที่เกี่ยวข้องกันกับ 'หน่วยพื้นฐาน' เดียวกัน (หรือการอ้างอิงร่วมกัน) รักษาความหมายให้สอดคล้องกันทั่วทั้งกลุ่มที่คุณออกแบบ
กลยุทธ์การสร้างแบบจำลอง
| กลยุทธ์ | เมื่อใดที่ควรใช้ | หมายเหตุ |
|---|---|---|
| ปัจจัยโดยตรง | ความสัมพันธ์เชิงเส้น (เช่น 1 ฟู = k × ฐาน) | ใช้ตัวเลขคงที่ (ไม่มี x) เสถียรและแม่นยำ |
| การปรับขนาดแบบยกกำลัง | ได้มาจากมาตราส่วนพื้นฐาน (k^2, k^3) | ใช้ pow(k, n) โดยที่ k คือมาตราส่วนพื้นฐาน |
| อัตราส่วนหรือการทำให้เป็นมาตรฐาน | หน่วยที่กำหนดเทียบกับระดับอ้างอิง (เช่น x / ref) | มีประโยชน์สำหรับมาตรการคล้ายดัชนี; ให้ ref ชัดเจนในนิพจน์ |
| มาตราส่วนลอการิทึม | มาตราส่วนการรับรู้หรืออัตราส่วนกำลัง (เช่น สไตล์ dB 10 * log(x/ref)) | ตรวจสอบให้แน่ใจว่าโดเมนเป็นบวก; จัดทำเอกสารค่าอ้างอิง |
| การจับคู่แบบสัมพรรค | กรณีที่หายากซึ่งมีออฟเซ็ต (a * x + b) | ออฟเซ็ตเปลี่ยนจุดศูนย์—ใช้เฉพาะเมื่อมีเหตุผลทางแนวคิด |
ตัวแก้ไขและการตรวจสอบความถูกต้อง
สร้างหน่วยด้วยชื่อ, สัญลักษณ์ (สูงสุด 6 ตัวอักษร), แท็กสี, การอ้างอิง (หน่วยพื้นฐานหรือหน่วยที่กำหนดเองอื่น) และปัจจัย/นิพจน์ ตัวแก้ไขจะตรวจสอบสูตรแบบเรียลไทม์ด้วยการตรวจจับข้อผิดพลาดที่ปรับปรุงแล้วและป้องกันการอ้างอิงแบบวงกลม
- ตัวเลือกการอ้างอิงรวมถึง 'หน่วยพื้นฐาน' และหน่วยที่กำหนดเองที่มีอยู่ ตัวเลือกที่ไม่ปลอดภัยซึ่งจะสร้างวงจรจะถูกกรองออกโดยอัตโนมัติ
- ตัวแปร: ใช้ x (หรือ value) สำหรับค่าอินพุต อ้างอิงหน่วยที่กำหนดเองอื่นตามชื่อ snake_case หรือตามสัญลักษณ์; ค่า toBase ปัจจุบันของมันจะถูกแทรกเป็นค่าคงที่
- ค่าคงที่ที่รองรับ: PI, E, PHI, SQRT2, SQRT3, LN2, LN10, LOG2E, LOG10E, AVOGADRO, PLANCK, LIGHT_SPEED, GRAVITY, BOLTZMANN
- ฟังก์ชันหลัก: sqrt, cbrt, pow, abs, min, max, round, trunc, floor, ceil, sin, cos, tan, asin, acos, atan, atan2, sinh, cosh, tanh, ln, log, log2, exp
- ฟังก์ชันช่วยเหลือ: degrees(), radians(), percent(), factorial(), gcd(), lcm(), clamp(), sign(), nthRoot() เพื่อประสบการณ์ผู้ใช้ที่ดีขึ้น
- ตัวดำเนินการ: +, -, *, /, ** สำหรับยกกำลัง การทำให้เป็นมาตรฐานของอินพุตอัจฉริยะ: ×, ÷, π, ², ³ จะถูกแปลงโดยอัตโนมัติ
- การตรวจสอบความถูกต้องแบบเรียลไทม์พร้อมการแสดงตัวอย่าง (เช่น 10 x → ผลลัพธ์), การจำแนกความซับซ้อน (ง่าย/ปานกลาง/ซับซ้อน) และคำแนะนำที่รับรู้บริบท
- การตรวจจับข้อผิดพลาดที่ปรับปรุงแล้วจับความผิดพลาดทั่วไป: ลอการิทึมของจำนวนที่ไม่ใช่บวก, รากที่สองของจำนวนลบ, การหารด้วยศูนย์
- การตรวจจับวงจรขั้นสูงป้องกันไม่ให้หน่วยต้องพึ่งพาตัวเอง (โดยตรงหรือโดยอ้อม) พร้อมข้อความแสดงข้อผิดพลาดที่ชัดเจน
- แผงช่วยเหลือแบบโต้ตอบพร้อมตัวอย่างที่จัดหมวดหมู่, ส่วนย่อยของสูตรที่คลิกได้ และปุ่มหน่วยที่กำหนดเองเพื่อการแทรกที่ง่าย
แนวทางปฏิบัติที่ดีที่สุด
- ควรใช้ปัจจัยคงที่ถ้าเป็นไปได้; ใช้นิพจน์เฉพาะเมื่อจำเป็น
- เลือกหน่วยอ้างอิงที่เสถียร, เป็นที่เข้าใจกันอย่างกว้างขวาง และไม่น่าจะเปลี่ยนแปลง
- หลีกเลี่ยงโซ่ของการอ้างอิงแบบวงกลม; ให้กราฟไม่มีวงจร
- เพิ่มค่าตัวอย่างและตรวจสอบข้ามกับเครื่องคิดเลขอิสระหรือเอกลักษณ์ที่รู้จักกันดี
- ให้สัญลักษณ์สั้น, ไม่ซ้ำใคร และจัดทำเอกสารสำหรับองค์กรของคุณ
- หากใช้ลอการิทึม, บันทึกค่าอ้างอิง, ฐาน และโดเมนที่ตั้งใจไว้ของ x
- ทดสอบด้วยค่าตัวแทน 3–5 ค่าและตรวจสอบการแปลงไป-กลับ
- หลีกเลี่ยงการอ้างอิงแบบวงกลม; เลือกหน่วยอ้างอิงที่เสถียร
- จัดทำเอกสารเกี่ยวกับสมมติฐาน (โดเมน, ออฟเซ็ต, ช่วงค่าทั่วไป)
เทมเพลตเริ่มต้นและตัวอย่าง
ตัวอย่างเหล่านี้แสดงรูปแบบการสร้างแบบจำลองทั่วไปในระบบที่กำหนดเองเท่านั้น แทนที่ค่าคงที่และการอ้างอิงตามความต้องการของคุณ
| ชื่อ | สูตร | การอ้างอิง | หมายเหตุ |
|---|---|---|---|
| หน่วยที่ปรับขนาดตามฐาน (ฟู) | 0.3048 | หน่วยพื้นฐาน | กำหนด 1 ฟู = 0.3048 × ฐาน (ปัจจัยเชิงเส้นอย่างง่าย) |
| ปรับขนาดแบบยกกำลัง (ฟู²) | pow(0.3048, 2) | หน่วยพื้นฐาน | ได้มาจากมาตราส่วนพื้นฐาน (k^2) |
| ปรับขนาดตามปริมาตร (ฟู³) | pow(0.3048, 3) | หน่วยพื้นฐาน | ได้มาจากมาตราส่วนพื้นฐาน (k^3) |
| ดัชนีจากการอ้างอิง | x / 42 | หน่วยพื้นฐาน | ทำให้เป็นมาตรฐานโดยระดับคงที่ (โดเมน x > 0) |
| อัตราส่วนกำลัง (สไตล์ dB) | 10 * log(x / 0.001) | หน่วยพื้นฐาน | มาตรการลอการิทึมเทียบกับ 1 mW (ตัวอย่าง) ตรวจสอบให้แน่ใจว่า x > 0 |
| ปัจจัยทางเรขาคณิต | 2 * PI * 0.5 | หน่วยพื้นฐาน | ตัวอย่างของค่าคงที่และการคูณ |
| อ้างอิงหน่วยที่กำหนดเองอื่น | A * 2 | หน่วยที่กำหนดเอง A | ใช้สัญลักษณ์/ชื่อของหน่วยอื่นเป็นค่าคงที่ในนิพจน์ |
| ความสัมพันธ์ของหน่วยที่ซับซ้อน | sqrt(x^2 + base_length^2) | หน่วยพื้นฐาน | ความสัมพันธ์แบบพีทาโกรัสโดยใช้หน่วยที่กำหนดเอง 'base_length' เป็นค่าคงที่ |
| หน่วยที่ปรับขนาดพร้อมออฟเซ็ต | x * scale_factor + offset_unit | หน่วยพื้นฐาน | การแปลงเชิงเส้นโดยใช้หน่วยที่กำหนดเองอีกสองหน่วยเป็นค่าคงที่ |
| เปอร์เซ็นต์ของหน่วยอ้างอิง | percent(x, reference_value) | หน่วยพื้นฐาน | แสดงอินพุตเป็นเปอร์เซ็นต์ของหน่วยที่กำหนดเองอื่นโดยใช้ฟังก์ชันช่วยเหลือ |
| ช่วงหน่วยที่ถูกจำกัด | clamp(x * multiplier, min_unit, max_unit) | หน่วยพื้นฐาน | จำกัดค่าระหว่างค่าคงที่ของหน่วยที่กำหนดเองสองหน่วยโดยใช้ตัวช่วย clamp |
| อัตราส่วนหน่วยกับ GCD | x / gcd(x, common_divisor) | หน่วยพื้นฐาน | ความสัมพันธ์ทางคณิตศาสตร์โดยใช้ตัวช่วย GCD กับค่าคงที่ของหน่วยที่กำหนดเอง |
| โซ่การแปลงเชิงมุม | degrees(x * PI / reference_angle) | หน่วยเชิงมุมที่กำหนดเอง | แปลงเป็นองศาโดยใช้หน่วยมุมที่กำหนดเองและฟังก์ชันช่วยเหลือ degrees() |
การกำกับดูแลและการทำงานร่วมกัน
- ดูแลรักษารายการหน่วยที่กำหนดเองที่ได้รับอนุมัติพร้อมเจ้าของและวันที่ตรวจสอบ
- ใช้การกำหนดเวอร์ชันเมื่อคำจำกัดความมีการพัฒนา; หลีกเลี่ยงการเปลี่ยนแปลงที่ทำลายสัญลักษณ์
- บันทึกแหล่งที่มาสำหรับค่าคงที่และการอ้างอิง (มาตรฐาน, วรรณกรรม, เอกสารภายใน)
- ทำการทดสอบการตรวจสอบความถูกต้องโดยอัตโนมัติ (การตรวจสอบช่วง, การแปลงตัวอย่าง, ความซ้ำซาก)
คำถามที่พบบ่อย
ฉันควรใช้ปัจจัยคงที่หรือนิพจน์?
ควรใช้ปัจจัยคงที่เมื่อความสัมพันธ์เป็นเชิงเส้นและคงที่ ใช้นิพจน์เฉพาะเมื่อการจับคู่ขึ้นอยู่กับ x หรือต้องการฟังก์ชัน (กำลัง, ลอการิทึม, ตรีโกณมิติ)
ฉันจะเลือกหน่วยอ้างอิงได้อย่างไร?
เลือกหน่วยที่เสถียร, เป็นที่เข้าใจกันอย่างกว้างขวาง และจับมิติที่คุณตั้งใจไว้ (เช่น เมตรสำหรับความยาว, ตร.ม. สำหรับพื้นที่) การอ้างอิงยึดความหมายของมิติ
มุมเป็นองศาหรือเรเดียน?
เรเดียน แปลงองศาโดยคูณด้วย PI/180 ก่อนใช้ฟังก์ชันตรีโกณมิติ
ฉันสามารถเชื่อมโยงหน่วยที่กำหนดเองได้หรือไม่?
ได้, แต่หลีกเลี่ยงวงจร ให้กราฟไม่มีวงจรและจัดทำเอกสารโซ่เพื่อรักษาความชัดเจน
ไดเรกทอรีเครื่องมือฉบับสมบูรณ์
เครื่องมือทั้งหมด 71 รายการที่มีอยู่ใน UNITS