Konwerter Jednostek Niestandardowych
Jednostki Niestandardowe: Modelowanie, Formuły i Najlepsze Praktyki
Zdefiniuj własne jednostki miary powiązane z 'Jednostką Bazową' lub inną jednostką niestandardową. Modeluj czynniki liniowe lub pełne wyrażenia i organizuj spójne rodziny dla swojego projektu lub domeny.
Podstawowe Pojęcia
Modelowanie Oparte na Odniesieniu
Twoim odniesieniem jest inna jednostka niestandardowa lub 'Jednostka Bazowa'.
Wyrażenie konwersji mapuje wartości wejściowe na przestrzeń jednostki odniesienia (system jest celowo agnostyczny wobec jednostek).
- Bezpieczeństwo WymiaroweWybierając odniesienie, niejawnie wiążesz jednostkę niestandardową z tą rodziną. Utrzymuj spójność rodzin (np. powiązane jednostki odnoszące się do tej samej bazy).
- KomponowalnośćZmień odniesienie później bez zmiany nazwy jednostki — wystarczy dostosować wyrażenie.
- AudytowalnośćKażda jednostka ma jedną, jasną definicję: odniesienie + wyrażenie.
Czynnik a Wyrażenie
Proste jednostki używają stałego czynnika (np. 1 foo = 0.3048 × Baza).
Zaawansowane jednostki mogą używać wyrażeń z funkcjami (np. 10 * log(x / 1e-3)).
- Stałe CzynnikiNajlepsze dla stałych relacji liniowych (skale długości, stosunki powierzchni itp.).
- WyrażeniaUżywaj funkcji matematycznych dla pochodnych lub nieliniowych skal (stosunki, logarytmy, potęgi).
- StałeWbudowane stałe takie jak PI, E, PHI, SQRT2, SQRT3, LN2, LN10, LOG2E, LOG10E, AVOGADRO, PLANCK, LIGHT_SPEED, GRAVITY, BOLTZMANN.
Nazewnictwo, Symbole i Spójność
Wybieraj krótkie, jednoznaczne symbole. Unikaj kolizji z istniejącymi standardami.
Dokumentuj cel w swojej organizacji — co mierzy i dlaczego istnieje.
- PrzejrzystośćPreferuj zwięzłe symbole (zalecane 1–4 znaki; interfejs użytkownika pozwala na maksymalnie 6).
- StabilnośćTraktuj symbole jako stabilne identyfikatory w zbiorach danych i API.
- StylUżywaj pisowni wielkimi i małymi literami w stylu SI tam, gdzie ma to sens (np. 'foo', 'kFoo', 'mFoo').
- Jednostka niestandardowa = jednostka odniesienia + wyrażenie konwersji.
- Odniesienie zakotwicza wymiar; wyrażenie definiuje mapowanie wartości.
- Preferuj stałe czynniki dla skal liniowych; używaj wyrażeń w szczególnych przypadkach.
Język Formuł
Wyrażenia obsługują liczby, zmienną x (wartość wejściowa), wartość aliasu, stałe (PI, E, PHI, SQRT2, SQRT3, LN2, LN10, LOG2E, LOG10E, AVOGADRO, PLANCK, LIGHT_SPEED, GRAVITY, BOLTZMANN), operatory arytmetyczne i popularne funkcje matematyczne. Wyrażenia są oceniane do wartości w wybranej jednostce odniesienia.
Operatory
| Operator | Znaczenie | Przykład |
|---|---|---|
| + | Dodawanie | x + 2 |
| - | Odejmowanie/Negacja Unarna | x - 5, -x |
| * | Mnożenie | 2 * x |
| / | Dzielenie | x / 3 |
| ** | Potęgowanie (użyj **; ^ jest automatycznie konwertowane) | x ** 2 |
| () | Pierwszeństwo | (x + 1) * 2 |
Funkcje
| Funkcja | Sygnatura | Przykład |
|---|---|---|
| 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) |
Zasady Wyrażeń
- x to wartość wejściowa; wartość aliasu jest również dostępna.
- Używaj jawnego mnożenia (np. 2 * PI, a nie 2PI).
- Dostępne stałe: PI, E, PHI, SQRT2, SQRT3, LN2, LN10, LOG2E, LOG10E, AVOGADRO, PLANCK, LIGHT_SPEED, GRAVITY, BOLTZMANN.
- Kąty dla funkcji trygonometrycznych podawane są w radianach (użyj funkcji pomocniczych degrees() i radians() do konwersji).
- Odwołuj się do innych jednostek niestandardowych po nazwie (snake_case) lub symbolu; ich aktualne wartości toBase są wstawiane jako stałe.
- Używaj ** do potęgowania (silnik automatycznie konwertuje ^ na **).
- Inteligentna normalizacja danych wejściowych: ×, ÷, π, ², ³ są automatycznie konwertowane na *, /, PI, ^2, ^3.
- Dostępne funkcje pomocnicze: degrees(), radians(), percent(), factorial(), gcd(), lcm(), clamp(), sign(), nthRoot().
- Ulepszone wykrywanie błędów zapobiega częstym błędom (logarytm liczb ujemnych, pierwiastek kwadratowy z liczb ujemnych, dzielenie przez zero).
- Odwoływanie się do jednostek niestandardowych: Używaj innych jednostek jako zmiennych w wyrażeniach (np. 'x * A', gdzie A to inna jednostka niestandardowa).
- Białe znaki są ignorowane; używaj nawiasów do kontrolowania pierwszeństwa.
- Wyrażenia muszą dawać skończony wynik liczbowy dla prawidłowych danych wejściowych.
- Używaj jawnego mnożenia (np. 2 * PI).
- Kąty dla funkcji trygonometrycznych podawane są w radianach.
- log(x) to podstawa 10; ln(x) to logarytm naturalny (podstawa e).
Analiza Wymiarowa i Strategie
Ten niestandardowy system jest agnostyczny wobec jednostek. Modeluj rodziny, zakotwiczając powiązane jednostki w tej samej 'Jednostce Bazowej' (lub wspólnym odniesieniu). Zachowaj spójność znaczenia w całej projektowanej rodzinie.
Strategie Modelowania
| Strategia | Kiedy używać | Uwagi |
|---|---|---|
| Bezpośredni Czynnik | Relacje liniowe (np. 1 foo = k × Baza). | Użyj stałej liczby (bez x). Stabilne i precyzyjne. |
| Skalowanie Potęgowe | Pochodne od skali bazowej (k^2, k^3). | Użyj pow(k, n), gdzie k to skala bazowa. |
| Stosunek lub Normalizacja | Jednostki zdefiniowane w odniesieniu do poziomu odniesienia (np. x / ref). | Przydatne dla miar typu wskaźnikowego; utrzymuj ref jawnie w wyrażeniu. |
| Skala Logarytmiczna | Skale percepcyjne lub stosunku mocy (np. w stylu dB 10 * log(x/ref)). | Upewnij się, że domena jest dodatnia; udokumentuj wartość odniesienia. |
| Mapowanie Afiniczne | Rzadkie przypadki z przesunięciami (a * x + b). | Przesunięcia zmieniają punkty zerowe—stosuj tylko wtedy, gdy jest to koncepcyjnie uzasadnione. |
Edytor i Walidacja
Twórz jednostki z nazwą, symbolem (do 6 znaków), etykietą kolorystyczną, odniesieniem (Jednostka Bazowa lub inna jednostka niestandardowa) oraz czynnikiem/wyrażeniem. Edytor waliduje formuły w czasie rzeczywistym z ulepszonym wykrywaniem błędów i zapobiega odwołaniom cyklicznym.
- Opcje odniesienia obejmują 'Jednostkę Bazową' i istniejące jednostki niestandardowe. Niebezpieczne opcje, które mogłyby tworzyć cykle, są automatycznie odfiltrowywane.
- Zmienne: użyj x (lub value) dla wartości wejściowej. Odwołuj się do innych jednostek niestandardowych po nazwie snake_case lub symbolu; ich aktualne wartości toBase są wstawiane jako stałe.
- Obsługiwane stałe: PI, E, PHI, SQRT2, SQRT3, LN2, LN10, LOG2E, LOG10E, AVOGADRO, PLANCK, LIGHT_SPEED, GRAVITY, BOLTZMANN.
- Podstawowe funkcje: sqrt, cbrt, pow, abs, min, max, round, trunc, floor, ceil, sin, cos, tan, asin, acos, atan, atan2, sinh, cosh, tanh, ln, log, log2, exp.
- Funkcje pomocnicze: degrees(), radians(), percent(), factorial(), gcd(), lcm(), clamp(), sign(), nthRoot() dla lepszego doświadczenia użytkownika.
- Operatory: +, -, *, /, ** do potęgowania. Inteligentna normalizacja danych wejściowych: ×, ÷, π, ², ³ są automatycznie konwertowane.
- Walidacja w czasie rzeczywistym z podglądem (np. 10 x → wynik), klasyfikacja złożoności (prosta/umiarkowana/złożona) i sugestie świadome kontekstu.
- Ulepszone wykrywanie błędów wychwytuje częste błędy: logarytmy liczb niedodatnich, pierwiastki kwadratowe z liczb ujemnych, dzielenie przez zero.
- Zaawansowane wykrywanie cykli zapobiega zależności jednostek od samych siebie (bezpośrednio lub pośrednio) z jasnymi komunikatami o błędach.
- Interaktywny panel pomocy z przykładami podzielonymi na kategorie, klikalnymi fragmentami formuł i przyciskami jednostek niestandardowych dla łatwego wstawiania.
Najlepsze Praktyki
- Jeśli to możliwe, preferuj stały czynnik; wyrażenia tylko wtedy, gdy jest to konieczne.
- Wybierz jednostkę odniesienia, która jest stabilna, powszechnie zrozumiała i mało prawdopodobne, że się zmieni.
- Unikaj cyklicznych łańcuchów odwołań; utrzymuj grafy acykliczne.
- Dodaj przykładowe wartości i sprawdź je z niezależnymi kalkulatorami lub znanymi tożsamościami.
- Utrzymuj symbole krótkie, unikalne i udokumentowane dla swojej organizacji.
- Jeśli używasz logarytmów, zapisz wartość odniesienia, podstawę i zamierzoną domenę x.
- Przetestuj na 3–5 reprezentatywnych wartościach i zweryfikuj konwersje w obie strony.
- Unikaj odwołań cyklicznych; wybierz stabilną jednostkę odniesienia.
- Dokumentuj założenia (domeny, przesunięcia, typowe zakresy).
Szablony Startowe i Przykłady
Te przykłady ilustrują popularne wzorce modelowania w tym systemie tylko dla jednostek niestandardowych. Zastąp stałe i odniesienia swoimi potrzebami.
| Nazwa | Formuła | Odniesienie | Uwagi |
|---|---|---|---|
| Jednostka Skalowana Bazowo (foo) | 0.3048 | Jednostka Bazowa | Definiuje 1 foo = 0.3048 × Baza (prosty czynnik liniowy). |
| Skalowana Potęgowo (foo²) | pow(0.3048, 2) | Jednostka Bazowa | Pochodna od skali bazowej (k^2). |
| Skalowana Objętościowo (foo³) | pow(0.3048, 3) | Jednostka Bazowa | Pochodna od skali bazowej (k^3). |
| Indeks z Odniesienia | x / 42 | Jednostka Bazowa | Normalizuj przez stały poziom (domena x > 0). |
| Stosunek Mocy (w stylu dB) | 10 * log(x / 0.001) | Jednostka Bazowa | Miara logarytmiczna w odniesieniu do 1 mW (przykład). Upewnij się, że x > 0. |
| Czynnik Geometryczny | 2 * PI * 0.5 | Jednostka Bazowa | Przykład stałych i mnożenia. |
| Odwołanie do Innej Jednostki Niestandardowej | A * 2 | Jednostka Niestandardowa A | Użyj symbolu/nazwy innej jednostki jako stałej w wyrażeniach. |
| Złożona Relacja Jednostek | sqrt(x^2 + base_length^2) | Jednostka Bazowa | Relacja pitagorejska z użyciem jednostki niestandardowej 'base_length' jako stałej. |
| Jednostka Skalowana z Przesunięciem | x * scale_factor + offset_unit | Jednostka Bazowa | Transformacja liniowa z użyciem dwóch innych jednostek niestandardowych jako stałych. |
| Procent Jednostki Odniesienia | percent(x, reference_value) | Jednostka Bazowa | Wyraź dane wejściowe jako procent innej jednostki niestandardowej za pomocą funkcji pomocniczej. |
| Ograniczony Zakres Jednostek | clamp(x * multiplier, min_unit, max_unit) | Jednostka Bazowa | Ogranicz wartości między dwiema stałymi jednostek niestandardowych za pomocą pomocnika clamp. |
| Stosunek Jednostek z GCD | x / gcd(x, common_divisor) | Jednostka Bazowa | Relacja matematyczna z użyciem pomocnika GCD ze stałą jednostki niestandardowej. |
| Łańcuch Konwersji Kątowej | degrees(x * PI / reference_angle) | Niestandardowa Jednostka Kątowa | Konwertuj na stopnie używając niestandardowej jednostki kątowej i funkcji pomocniczej degrees(). |
Zarządzanie i Współpraca
- Prowadź katalog zatwierdzonych jednostek niestandardowych z właścicielami i datami przeglądów.
- Używaj wersjonowania, gdy definicje ewoluują; unikaj przełomowych zmian w symbolach.
- Rejestruj pochodzenie stałych i odniesień (standardy, literatura, dokumenty wewnętrzne).
- Automatyzuj testy walidacyjne (sprawdzanie zakresu, przykładowe konwersje, monotoniczność).
Często Zadawane Pytania
Czy powinienem używać stałego czynnika czy wyrażenia?
Preferuj stały czynnik, gdy relacja jest liniowa i stała. Używaj wyrażeń tylko wtedy, gdy mapowanie zależy od x lub wymaga funkcji (potęgi, logarytmy, trygonometria).
Jak wybrać jednostkę odniesienia?
Wybierz stabilną, powszechnie zrozumiałą jednostkę, która oddaje zamierzony wymiar (np. metr dla długości, m² dla powierzchni). Odniesienie zakotwicza znaczenie wymiarowe.
Czy kąty są w stopniach czy radianach?
W radianach. Przelicz stopnie, mnożąc przez PI/180 przed użyciem funkcji trygonometrycznych.
Czy mogę łączyć jednostki niestandardowe w łańcuchy?
Tak, ale unikaj cykli. Utrzymuj graf acykliczny i dokumentuj łańcuch, aby zachować przejrzystość.
Pełny Katalog Narzędzi
Wszystkie 71 narzędzia dostępne w UNITS