Brugerdefineret Enhedsomregner
Brugerdefinerede Enheder: Modellering, Formler og Bedste Praksis
Definer dine egne måleenheder forankret til en 'Basis Enhed' eller en anden brugerdefineret enhed. Modeller lineære faktorer eller fulde udtryk, og organiser konsistente familier til dit projekt eller domæne.
Grundlæggende Koncepter
Reference-Baseret Modellering
Din reference er en anden brugerdefineret enhed eller 'Basis Enhed'.
Konverteringsudtrykket kortlægger inputværdier til referenceenhedens rum (systemet er bevidst enheds-agnostisk).
- DimensionssikkerhedVed at vælge en reference binder du implicit den brugerdefinerede enhed til den familie. Hold familier konsistente (f.eks. relaterede enheder, der refererer til den samme base).
- KomponerbarhedSkift referencen senere uden at omdøbe enheden—kun udtrykket skal justeres.
- ReviderbarhedHver enhed har en enkelt, klar definition: reference + udtryk.
Faktor vs Udtryk
Simple enheder bruger en konstant faktor (f.eks. 1 foo = 0.3048 × Basis).
Avancerede enheder kan bruge udtryk med funktioner (f.eks. 10 * log(x / 1e-3)).
- Konstante FaktorerBedst til faste lineære forhold (længdeskalaer, arealforhold osv.).
- UdtrykBrug matematiske funktioner til afledte eller ikke-lineære skalaer (forhold, logaritmer, potenser).
- KonstanterIndbyggede konstanter som PI, E, PHI, SQRT2, SQRT3, LN2, LN10, LOG2E, LOG10E, AVOGADRO, PLANCK, LIGHT_SPEED, GRAVITY, BOLTZMANN.
Navngivning, Symboler og Konsistens
Vælg korte, utvetydige symboler. Undgå kollisioner med eksisterende standarder.
Dokumenter hensigten i din organisation—hvad den måler, og hvorfor den eksisterer.
- KlarhedForetræk korte symboler (1–4 tegn anbefales; UI tillader op til 6).
- StabilitetBehandl symboler som stabile identifikatorer på tværs af datasæt og API'er.
- StilBrug SI-lignende store og små bogstaver, hvor det giver mening (f.eks. 'foo', 'kFoo', 'mFoo').
- En brugerdefineret enhed = referenceenhed + konverteringsudtryk.
- Referencen forankrer dimensionen; udtrykket definerer værdikortlægningen.
- Foretræk konstante faktorer for lineære skalaer; brug udtryk til særlige tilfælde.
Formelsprog
Udtryk understøtter tal, variablen x (inputværdi), aliasværdi, konstanter (PI, E, PHI, SQRT2, SQRT3, LN2, LN10, LOG2E, LOG10E, AVOGADRO, PLANCK, LIGHT_SPEED, GRAVITY, BOLTZMANN), aritmetiske operatorer og almindelige matematiske funktioner. Udtryk evalueres til en værdi i den valgte referenceenhed.
Operatorer
| Operator | Betydning | Eksempel |
|---|---|---|
| + | Addition | x + 2 |
| - | Subtraktion/Unær Negation | x - 5, -x |
| * | Multiplikation | 2 * x |
| / | Division | x / 3 |
| ** | Potens (brug **; ^ konverteres automatisk) | x ** 2 |
| () | Præcedens | (x + 1) * 2 |
Funktioner
| Funktion | Signatur | Eksempel |
|---|---|---|
| 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) |
Udtryksregler
- x er inputværdien; aliasværdi er også tilgængelig.
- Brug eksplicit multiplikation (f.eks. 2 * PI, ikke 2PI).
- Tilgængelige konstanter: PI, E, PHI, SQRT2, SQRT3, LN2, LN10, LOG2E, LOG10E, AVOGADRO, PLANCK, LIGHT_SPEED, GRAVITY, BOLTZMANN.
- Vinkler for trigonometriske funktioner er i radianer (brug hjælpefunktionerne degrees() og radians() til konvertering).
- Referer til andre brugerdefinerede enheder ved navn (snake_case) eller symbol; deres nuværende toBase-værdier injiceres som konstanter.
- Brug ** til potenser (motoren konverterer automatisk ^ til **).
- Smart input-normalisering: ×, ÷, π, ², ³ konverteres automatisk til *, /, PI, ^2, ^3.
- Hjælpefunktioner tilgængelige: degrees(), radians(), percent(), factorial(), gcd(), lcm(), clamp(), sign(), nthRoot().
- Forbedret fejlfinding forhindrer almindelige fejl (logaritme af negative tal, kvadratrod af negative tal, division med nul).
- Referencer til brugerdefinerede enheder: Brug andre enheder som variabler i udtryk (f.eks. 'x * A', hvor A er en anden brugerdefineret enhed).
- Mellemrum ignoreres; brug parenteser til at styre præcedens.
- Udtryk skal producere et endeligt numerisk resultat for gyldige input.
- Brug eksplicit multiplikation (f.eks. 2 * PI).
- Vinkler for trigonometriske funktioner er i radianer.
- log(x) er grundtal 10; ln(x) er den naturlige logaritme (grundtal e).
Dimensionsanalyse & Strategier
Dette brugerdefinerede system er enheds-agnostisk. Modeller familier ved at forankre relaterede enheder til den samme 'Basis Enhed' (eller en fælles reference). Hold betydningen konsistent på tværs af den familie, du designer.
Modelleringsstrategier
| Strategi | Hvornår skal den bruges | Noter |
|---|---|---|
| Direkte Faktor | Lineære forhold (f.eks. 1 foo = k × Basis). | Brug et konstant tal (ingen x). Stabil og præcis. |
| Potensskalering | Afledt af en basisskala (k^2, k^3). | Brug pow(k, n), hvor k er basisskalaen. |
| Forhold eller Normalisering | Enheder defineret i forhold til et referenceniveau (f.eks. x / ref). | Nyttigt for indekslignende målinger; hold ref eksplicit i udtrykket. |
| Logaritmisk Skala | Perceptuelle eller effektforholdsskalaer (f.eks. dB-stil 10 * log(x/ref)). | Sørg for, at domænet er positivt; dokumenter referenceværdien. |
| Affin Kortlægning | Sjældne tilfælde med forskydninger (a * x + b). | Forskydninger ændrer nulpunkter—anvend kun, når det er konceptuelt berettiget. |
Editor & Validering
Opret enheder med et navn, et symbol (op til 6 tegn), et farvemærke, en reference (Basis Enhed eller en anden brugerdefineret enhed) og en faktor/udtryk. Editoren validerer formler i realtid med forbedret fejlfinding og forhindrer cirkulære referencer.
- Referenceindstillinger inkluderer 'Basis Enhed' og eksisterende brugerdefinerede enheder. Usikre indstillinger, der ville skabe cykler, filtreres automatisk fra.
- Variabler: brug x (eller value) for inputværdien. Referer til andre brugerdefinerede enheder med snake_case navn eller symbol; deres nuværende toBase-værdier injiceres som konstanter.
- Understøttede konstanter: PI, E, PHI, SQRT2, SQRT3, LN2, LN10, LOG2E, LOG10E, AVOGADRO, PLANCK, LIGHT_SPEED, GRAVITY, BOLTZMANN.
- Kernefunktioner: sqrt, cbrt, pow, abs, min, max, round, trunc, floor, ceil, sin, cos, tan, asin, acos, atan, atan2, sinh, cosh, tanh, ln, log, log2, exp.
- Hjælpefunktioner: degrees(), radians(), percent(), factorial(), gcd(), lcm(), clamp(), sign(), nthRoot() for forbedret brugeroplevelse.
- Operatorer: +, -, *, /, ** for potens. Smart input-normalisering: ×, ÷, π, ², ³ konverteres automatisk.
- Realtidsvalidering med forhåndsvisning (f.eks. 10 x → resultat), kompleksitetsklassificering (simpel/moderat/kompleks) og kontekstbevidste forslag.
- Forbedret fejlfinding fanger almindelige fejl: logaritmer af ikke-positive tal, kvadratrødder af negative tal, division med nul.
- Avanceret cyklusdetektering forhindrer enheder i at afhænge af sig selv (direkte eller indirekte) med klare fejlmeddelelser.
- Interaktivt hjælpepanel med kategoriserede eksempler, klikbare formeluddrag og brugerdefinerede enhedsknapper for nem indsættelse.
Bedste Praksis
- Foretræk en konstant faktor, hvis det er muligt; udtryk kun, når det er nødvendigt.
- Vælg en referenceenhed, der er stabil, bredt forstået og usandsynlig at ændre sig.
- Undgå cirkulære kæder af referencer; hold grafer acykliske.
- Tilføj eksempelværdier og krydstjek med uafhængige regnemaskiner eller kendte identiteter.
- Hold symboler korte, unikke og dokumenterede for din organisation.
- Hvis du bruger logaritmer, skal du registrere referenceværdien, grundtallet og det tilsigtede domæne for x.
- Test med 3–5 repræsentative værdier og verificer rundturs-konverteringer.
- Undgå cirkulære referencer; vælg en stabil referenceenhed.
- Dokumenter antagelser (domæner, forskydninger, typiske intervaller).
Startskabeloner & Eksempler
Disse eksempler illustrerer almindelige modelleringsmønstre i dette brugerdefinerede system. Erstat konstanter og referencer med dine behov.
| Navn | Formel | Reference | Noter |
|---|---|---|---|
| Basis-skaleret Enhed (foo) | 0.3048 | Basis Enhed | Definerer 1 foo = 0.3048 × Basis (simpel lineær faktor). |
| Potens-skaleret (foo²) | pow(0.3048, 2) | Basis Enhed | Afledt af en basisskala (k^2). |
| Volumen-skaleret (foo³) | pow(0.3048, 3) | Basis Enhed | Afledt af en basisskala (k^3). |
| Indeks fra Reference | x / 42 | Basis Enhed | Normaliser med et fast niveau (domæne x > 0). |
| Effektforhold (dB-stil) | 10 * log(x / 0.001) | Basis Enhed | Logaritmisk mål i forhold til 1 mW (eksempel). Sørg for x > 0. |
| Geometrisk Faktor | 2 * PI * 0.5 | Basis Enhed | Eksempel på konstanter og multiplikation. |
| Referer til Anden Brugerdefineret Enhed | A * 2 | Brugerdefineret Enhed A | Brug en anden enheds symbol/navn som en konstant i udtryk. |
| Kompleks Enhedsrelation | sqrt(x^2 + base_length^2) | Basis Enhed | Pythagoræisk relation, der bruger den brugerdefinerede enhed 'base_length' som en konstant. |
| Skaleret Enhed med Forskydning | x * scale_factor + offset_unit | Basis Enhed | Lineær transformation ved hjælp af to andre brugerdefinerede enheder som konstanter. |
| Procentdel af Referenceenhed | percent(x, reference_value) | Basis Enhed | Udtryk input som en procentdel af en anden brugerdefineret enhed ved hjælp af hjælpefunktionen. |
| Afgrænset Enhedsinterval | clamp(x * multiplier, min_unit, max_unit) | Basis Enhed | Begræns værdier mellem to brugerdefinerede enhedskonstanter ved hjælp af clamp-hjælperen. |
| Enhedsforhold med GCD | x / gcd(x, common_divisor) | Basis Enhed | Matematisk relation ved hjælp af GCD-hjælperen med en brugerdefineret enhedskonstant. |
| Vinkelkonverteringskæde | degrees(x * PI / reference_angle) | Brugerdefineret Vinkelenhed | Konverter til grader ved hjælp af en brugerdefineret vinkelenhed og degrees() hjælpefunktionen. |
Styring & Samarbejde
- Vedligehold et katalog over godkendte brugerdefinerede enheder med ejere og revisionsdatoer.
- Brug versionering, når definitioner udvikler sig; undgå at bryde ændringer i symboler.
- Registrer herkomst for konstanter og referencer (standarder, litteratur, interne dokumenter).
- Automatiser valideringstests (intervalkontrol, eksempelkonverteringer, monotoni).
Ofte Stillede Spørgsmål
Skal jeg bruge en konstant faktor eller et udtryk?
Foretræk en konstant faktor, når forholdet er lineært og fast. Brug kun udtryk, når kortlægningen afhænger af x eller kræver funktioner (potenser, logaritmer, trigonometri).
Hvordan vælger jeg en referenceenhed?
Vælg en stabil, bredt forstået enhed, der fanger den dimension, du har til hensigt (f.eks. meter for længde, m² for areal). Referencen forankrer den dimensionelle betydning.
Er vinkler i grader eller radianer?
Radianer. Konverter grader ved at gange med PI/180, før du bruger trigonometriske funktioner.
Kan jeg kæde brugerdefinerede enheder sammen?
Ja, men undgå cykler. Hold grafen acyklisk og dokumenter kæden for at bevare klarheden.
Komplet Værktøjskatalog
Alle 71 værktøjer tilgængelige på UNITS