مبدل واحدهای سفارشی
واحدهای سفارشی: مدلسازی، فرمولها و بهترین شیوهها
واحدهای اندازهگیری خود را که به یک 'واحد پایه' یا واحد سفارشی دیگری متصل شدهاند، تعریف کنید. عوامل خطی یا عبارات کامل را مدلسازی کنید و خانوادههای منسجمی برای پروژه یا دامنه خود سازماندهی کنید.
مفاهیم بنیادی
مدلسازی مبتنی بر مرجع
مرجع شما یک واحد سفارشی دیگر یا 'واحد پایه' است.
عبارت تبدیل مقادیر ورودی را به فضای واحد مرجع نگاشت میدهد (سیستم عمداً نسبت به واحدها بیتفاوت است).
- ایمنی ابعادیبا انتخاب یک مرجع، شما به طور ضمنی واحد سفارشی را به آن خانواده مرتبط میکنید. خانوادهها را منسجم نگه دارید (مثلاً واحدهای مرتبط که به یک پایه مشترک ارجاع میدهند).
- قابلیت ترکیبپذیریمرجع را بعداً بدون تغییر نام واحد تغییر دهید—فقط عبارت نیاز به تنظیم دارد.
- قابلیت حسابرسیهر واحد یک تعریف واحد و واضح دارد: مرجع + عبارت.
عامل در مقابل عبارت
واحدهای ساده از یک عامل ثابت استفاده میکنند (مثلاً 1 foo = 0.3048 × پایه).
واحدهای پیشرفته میتوانند از عبارات با توابع استفاده کنند (مثلاً 10 * log(x / 1e-3)).
- عوامل ثابتبهترین برای روابط خطی ثابت (مقیاسهای طول، نسبتهای مساحت و غیره).
- عباراتاز توابع ریاضی برای مقیاسهای مشتق شده یا غیرخطی استفاده کنید (نسبتها، لگاریتمها، توانها).
- ثابتهاثابتهای داخلی مانند PI, E, PHI, SQRT2, SQRT3, LN2, LN10, LOG2E, LOG10E, AVOGADRO, PLANCK, LIGHT_SPEED, GRAVITY, BOLTZMANN.
نامگذاری، نمادها و انسجام
نمادهای کوتاه و بدون ابهام انتخاب کنید. از تداخل با استانداردهای موجود خودداری کنید.
قصد را در سازمان خود مستند کنید—چه چیزی را اندازهگیری میکند و چرا وجود دارد.
- وضوحنمادهای مختصر را ترجیح دهید (1-4 کاراکتر توصیه میشود؛ رابط کاربری تا 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 foo = 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 مقدار نماینده آزمایش کنید و تبدیلهای رفت و برگشتی را تأیید کنید.
- از ارجاعات دایرهای خودداری کنید؛ یک واحد مرجع پایدار انتخاب کنید.
- فرضیات را مستند کنید (دامنهها، انحرافات، محدودههای معمول).
قالبهای اولیه و مثالها
این مثالها الگوهای مدلسازی رایج را در این سیستم فقط-سفارشی نشان میدهند. ثابتها و مراجع را با نیازهای خود جایگزین کنید.
| نام | فرمول | مرجع | یادداشتها |
|---|---|---|---|
| واحد مقیاسبندی شده با پایه (foo) | 0.3048 | واحد پایه | 1 foo = 0.3048 × پایه را تعریف میکند (عامل خطی ساده). |
| مقیاسبندی شده با توان (foo²) | pow(0.3048, 2) | واحد پایه | مشتق شده از یک مقیاس پایه (k^2). |
| مقیاسبندی شده با حجم (foo³) | pow(0.3048, 3) | واحد پایه | مشتق شده از یک مقیاس پایه (k^3). |
| شاخص از مرجع | x / 42 | واحد پایه | نرمالسازی با یک سطح ثابت (دامنه x > 0). |
| نسبت توان (سبک dB) | 10 * log(x / 0.001) | واحد پایه | اندازهگیری لگاریتمی نسبت به 1 میلیوات (مثال). اطمینان حاصل کنید که 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 محدود کنید. |
| نسبت واحد با ب.م.م | x / gcd(x, common_divisor) | واحد پایه | رابطه ریاضی با استفاده از تابع کمکی GCD با یک ثابت واحد سفارشی. |
| زنجیره تبدیل زاویهای | degrees(x * PI / reference_angle) | واحد زاویهای سفارشی | با استفاده از یک واحد زاویهای سفارشی و تابع کمکی degrees() به درجه تبدیل کنید. |
حاکمیت و همکاری
- یک کاتالوگ از واحدهای سفارشی تأیید شده با مالکان و تاریخهای بازبینی نگهداری کنید.
- هنگامی که تعاریف تکامل مییابند از نسخهبندی استفاده کنید؛ از تغییرات شکننده در نمادها خودداری کنید.
- منشأ ثابتها و مراجع را ثبت کنید (استانداردها، ادبیات، اسناد داخلی).
- آزمونهای اعتبارسنجی را خودکار کنید (بررسی محدوده، تبدیلهای نمونه، یکنواختی).
سوالات متداول
آیا باید از یک عامل ثابت یا یک عبارت استفاده کنم؟
هر زمان که رابطه خطی و ثابت است، یک عامل ثابت را ترجیح دهید. فقط زمانی از عبارات استفاده کنید که نگاشت به x بستگی داشته باشد یا به توابع (توان، لگاریتم، مثلثات) نیاز داشته باشد.
چگونه یک واحد مرجع انتخاب کنم؟
یک واحد پایدار و به طور گسترده قابل درک را انتخاب کنید که بعد مورد نظر شما را نشان دهد (مثلاً متر برای طول، متر مربع برای مساحت). مرجع معنای ابعادی را لنگر میاندازد.
آیا زوایا بر حسب درجه هستند یا رادیان؟
رادیان. قبل از استفاده از توابع مثلثاتی، درجهها را با ضرب در PI/180 تبدیل کنید.
آیا میتوانم واحدهای سفارشی را زنجیرهای کنم؟
بله، اما از چرخهها خودداری کنید. نمودار را غیرچرخهای نگه دارید و زنجیره را برای حفظ وضوح مستند کنید.
فهرست کامل ابزارها
همه 71 ابزار موجود در UNITS