Конвертер Пользовательских Единиц
Пользовательские Единицы: Моделирование, Формулы и Лучшие Практики
Определите свои собственные единицы измерения, привязанные к 'Базовой Единице' или другой пользовательской единице. Моделируйте линейные коэффициенты или полные выражения и организуйте согласованные семейства для вашего проекта или области.
Основные Понятия
Моделирование на Основе Ссылок
Ваша ссылка — это другая пользовательская единица или 'Базовая Единица'.
Выражение для преобразования сопоставляет входные значения с пространством ссылочной единицы (система намеренно не зависит от единиц).
- Безопасность РазмерностиВыбирая ссылку, вы неявно связываете пользовательскую единицу с этим семейством. Поддерживайте согласованность семейств (например, связанные единицы, ссылающиеся на одну и ту же базу).
- КомпонуемостьИзмените ссылку позже, не переименовывая единицу — нужно только скорректировать выражение.
- АудируемостьКаждая единица имеет одно, четкое определение: ссылка + выражение.
Коэффициент против Выражения
Простые единицы используют постоянный коэффициент (например, 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 символа; интерфейс позволяет до 6).
- СтабильностьРассматривайте символы как стабильные идентификаторы в наборах данных и API.
- СтильИспользуйте регистр, подобный СИ, где это имеет смысл (например, '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 явным в выражении. |
| Логарифмическая Шкала | Перцептивные шкалы или шкалы соотношения мощности (например, в стиле дБ 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). |
| Соотношение Мощности (стиль дБ) | 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. |
| Соотношение Единиц с GCD | x / gcd(x, common_divisor) | Базовая Единица | Математическая связь с использованием вспомогательной функции GCD с константой пользовательской единицы. |
| Цепочка Угловых Преобразований | degrees(x * PI / reference_angle) | Пользовательская Угловая Единица | Преобразование в градусы с использованием пользовательской угловой единицы и вспомогательной функции degrees(). |
Управление и Сотрудничество
- Ведите каталог утвержденных пользовательских единиц с владельцами и датами пересмотра.
- Используйте версионирование при развитии определений; избегайте ломающих изменений в символах.
- Записывайте происхождение констант и ссылок (стандарты, литература, внутренние документы).
- Автоматизируйте тесты проверки (проверки диапазона, образцы преобразований, монотонность).
Часто Задаваемые Вопросы
Следует ли мне использовать постоянный коэффициент или выражение?
Предпочитайте постоянный коэффициент, когда зависимость является линейной и фиксированной. Используйте выражения только тогда, когда сопоставление зависит от x или требует функций (степени, логарифмы, тригонометрические).
Как мне выбрать ссылочную единицу?
Выбирайте стабильную, широко понятную единицу, которая отражает предполагаемую размерность (например, метр для длины, м² для площади). Ссылка закрепляет размерное значение.
Углы указываются в градусах или радианах?
В радианах. Преобразуйте градусы, умножая на PI/180 перед использованием тригонометрических функций.
Могу ли я связывать пользовательские единицы в цепочку?
Да, но избегайте циклов. Держите граф ациклическим и документируйте цепочку для сохранения ясности.
Полный Справочник Инструментов
Все 71 инструментов, доступных на UNITS