Egendefinert Enhetsomregner
Egendefinerte Enheter: Modellering, Formler og Beste Praksis
Definer dine egne måleenheter forankret til en 'Grunnenhet' eller en annen egendefinert enhet. Modeller lineære faktorer eller fulle uttrykk, og organiser konsistente familier for ditt prosjekt eller domene.
Grunnleggende Konsepter
Referansebasert Modellering
Referansen din er en annen egendefinert enhet eller 'Grunnenhet'.
Konverteringsuttrykket kartlegger inndataverdier til referanseenhetens rom (systemet er bevisst enhetsagnostisk).
- DimensjonssikkerhetVed å velge en referanse, knytter du implisitt den egendefinerte enheten til den familien. Hold familier konsistente (f.eks. relaterte enheter som refererer til samme base).
- KomponerbarhetEndre referansen senere uten å gi enheten nytt navn – bare uttrykket må justeres.
- ReviderbarhetHver enhet har en enkelt, klar definisjon: referanse + uttrykk.
Faktor vs. Uttrykk
Enkle enheter bruker en konstant faktor (f.eks. 1 foo = 0.3048 × Base).
Avanserte enheter kan bruke uttrykk med funksjoner (f.eks. 10 * log(x / 1e-3)).
- Konstante FaktorerBest for faste lineære forhold (lengdeskalaer, arealforhold, osv.).
- UttrykkBruk matematiske funksjoner for avledede eller ikke-lineære skalaer (forhold, logaritmer, potenser).
- KonstanterInnebygde konstanter som PI, E, PHI, SQRT2, SQRT3, LN2, LN10, LOG2E, LOG10E, AVOGADRO, PLANCK, LIGHT_SPEED, GRAVITY, BOLTZMANN.
Navngivning, Symboler og Konsistens
Velg korte, utvetydige symboler. Unngå kollisjoner med eksisterende standarder.
Dokumenter hensikten i organisasjonen din – hva den måler og hvorfor den eksisterer.
- KlarhetForetrekk konsise symboler (1–4 tegn anbefales; brukergrensesnittet tillater opptil 6).
- StabilitetBehandle symboler som stabile identifikatorer på tvers av datasett og API-er.
- StilBruk SI-lignende store/små bokstaver der det er fornuftig (f.eks. 'foo', 'kFoo', 'mFoo').
- En egendefinert enhet = referanseenhet + konverteringsuttrykk.
- Referansen forankrer dimensjonen; uttrykket definerer verdikartleggingen.
- Foretrekk konstante faktorer for lineære skalaer; bruk uttrykk for spesielle tilfeller.
Formelspråk
Uttrykk støtter tall, variabelen x (inndataverdi), aliasverdi, konstanter (PI, E, PHI, SQRT2, SQRT3, LN2, LN10, LOG2E, LOG10E, AVOGADRO, PLANCK, LIGHT_SPEED, GRAVITY, BOLTZMANN), aritmetiske operatorer og vanlige matematiske funksjoner. Uttrykk evalueres til en verdi i den valgte referanseenheten.
Operatorer
| Operator | Betydning | Eksempel |
|---|---|---|
| + | Addisjon | x + 2 |
| - | Subtraksjon/Unær Negasjon | x - 5, -x |
| * | Multiplikasjon | 2 * x |
| / | Divisjon | x / 3 |
| ** | Potens (bruk **; ^ blir automatisk konvertert) | x ** 2 |
| () | Presedens | (x + 1) * 2 |
Funksjoner
| Funksjon | 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) |
Uttrykksregler
- x er inndataverdien; aliasverdi er også tilgjengelig.
- Bruk eksplisitt multiplikasjon (f.eks. 2 * PI, ikke 2PI).
- Tilgjengelige konstanter: PI, E, PHI, SQRT2, SQRT3, LN2, LN10, LOG2E, LOG10E, AVOGADRO, PLANCK, LIGHT_SPEED, GRAVITY, BOLTZMANN.
- Vinkler for trigonometriske funksjoner er i radianer (bruk hjelpefunksjonene degrees() og radians() for konvertering).
- Referer til andre egendefinerte enheter ved navn (snake_case) eller symbol; deres nåværende toBase-verdier blir injisert som konstanter.
- Bruk ** for potenser (motoren konverterer automatisk ^ til **).
- Smart inndatanormalisering: ×, ÷, π, ², ³ blir automatisk konvertert til *, /, PI, ^2, ^3.
- Tilgjengelige hjelpefunksjoner: degrees(), radians(), percent(), factorial(), gcd(), lcm(), clamp(), sign(), nthRoot().
- Forbedret feildeteksjon forhindrer vanlige feil (logaritme av negative tall, kvadratrot av negative tall, divisjon med null).
- Referering til egendefinert enhet: Bruk andre enheter som variabler i uttrykk (f.eks. 'x * A' der A er en annen egendefinert enhet).
- Mellomrom ignoreres; bruk parenteser for å kontrollere presedens.
- Uttrykk må produsere et endelig numerisk resultat for gyldige inndata.
- Bruk eksplisitt multiplikasjon (f.eks. 2 * PI).
- Vinkler for trigonometriske funksjoner er i radianer.
- log(x) er base 10; ln(x) er naturlig logaritme (base e).
Dimensjonsanalyse og strategier
Dette egendefinerte systemet er enhetsagnostisk. Modeller familier ved å forankre relaterte enheter til den samme 'Grunnenheten' (eller en felles referanse). Hold betydningen konsistent på tvers av familien du designer.
Modelleringsstrategier
| Strategi | Når skal den brukes | Notater |
|---|---|---|
| Direkte Faktor | Lineære forhold (f.eks. 1 foo = k × Base). | Bruk et konstant tall (ingen x). Stabilt og presist. |
| Potensskalering | Avledet fra en baseskala (k^2, k^3). | Bruk pow(k, n) der k er baseskalaen. |
| Forhold eller Normalisering | Enheter definert i forhold til et referansenivå (f.eks. x / ref). | Nyttig for indekslignende mål; hold ref eksplisitt i uttrykket. |
| Logaritmisk Skala | Perseptuelle eller effektforholdsskalaer (f.eks. dB-stil 10 * log(x/ref)). | Sørg for at domenet er positivt; dokumenter referanseverdien. |
| Affin Avbildning | Sjeldne tilfeller med forskyvninger (a * x + b). | Forskyvninger endrer nullpunkter – bruk kun når det er konseptuelt berettiget. |
Redaktør og Validering
Opprett enheter med et navn, symbol (opptil 6 tegn), fargemerke, en referanse (Grunnenhet eller en annen egendefinert enhet), og en faktor/uttrykk. Redaktøren validerer formler i sanntid med forbedret feildeteksjon og forhindrer sirkulære referanser.
- Referansealternativer inkluderer 'Grunnenhet' og eksisterende egendefinerte enheter. Usikre alternativer som ville skapt sykluser, filtreres automatisk ut.
- Variabler: bruk x (eller value) for inndataverdien. Referer til andre egendefinerte enheter med snake_case-navn eller symbol; deres nåværende toBase-verdier blir injisert som konstanter.
- Støttede konstanter: PI, E, PHI, SQRT2, SQRT3, LN2, LN10, LOG2E, LOG10E, AVOGADRO, PLANCK, LIGHT_SPEED, GRAVITY, BOLTZMANN.
- Kjernefunksjoner: sqrt, cbrt, pow, abs, min, max, round, trunc, floor, ceil, sin, cos, tan, asin, acos, atan, atan2, sinh, cosh, tanh, ln, log, log2, exp.
- Hjelpefunksjoner: degrees(), radians(), percent(), factorial(), gcd(), lcm(), clamp(), sign(), nthRoot() for forbedret brukeropplevelse.
- Operatorer: +, -, *, /, ** for potens. Smart inndatanormalisering: ×, ÷, π, ², ³ blir automatisk konvertert.
- Sanntidsvalidering med forhåndsvisning (f.eks. 10 x → resultat), kompleksitetsklassifisering (enkel/moderat/kompleks) og kontekstbevisste forslag.
- Forbedret feildeteksjon fanger vanlige feil: logaritmer av ikke-positive tall, kvadratrøtter av negative tall, divisjon med null.
- Avansert syklusdeteksjon forhindrer at enheter avhenger av seg selv (direkte eller indirekte) med klare feilmeldinger.
- Interaktivt hjelpepanel med kategoriserte eksempler, klikkbare formelutdrag og egendefinerte enhetsknapper for enkel innsetting.
Beste Praksis
- Foretrekk en konstant faktor hvis mulig; uttrykk bare når det er nødvendig.
- Velg en referanseenhet som er stabil, allment forstått og usannsynlig å endre seg.
- Unngå sirkulære kjeder av referanser; hold grafer asykliske.
- Legg til prøveverdier og kryssjekk med uavhengige kalkulatorer eller kjente identiteter.
- Hold symboler korte, unike og dokumentert for organisasjonen din.
- Hvis du bruker logaritmer, noter referanseverdien, basen og det tiltenkte domenet for x.
- Test med 3–5 representative verdier og verifiser rundturkonverteringer.
- Unngå sirkulære referanser; velg en stabil referanseenhet.
- Dokumenter antakelser (domener, forskyvninger, typiske områder).
Startmaler og eksempler
Disse eksemplene illustrerer vanlige modelleringsmønstre i dette systemet som kun er for egendefinerte enheter. Erstatt konstanter og referanser med dine behov.
| Navn | Formel | Referanse | Notater |
|---|---|---|---|
| Baseskalert Enhet (foo) | 0.3048 | Grunnenhet | Definerer 1 foo = 0.3048 × Base (enkel lineær faktor). |
| Potensskalert (foo²) | pow(0.3048, 2) | Grunnenhet | Avledet fra en baseskala (k^2). |
| Volumskalert (foo³) | pow(0.3048, 3) | Grunnenhet | Avledet fra en baseskala (k^3). |
| Indeks fra Referanse | x / 42 | Grunnenhet | Normaliser med et fast nivå (domene x > 0). |
| Effektforhold (dB-stil) | 10 * log(x / 0.001) | Grunnenhet | Logaritmisk mål i forhold til 1 mW (eksempel). Sørg for at x > 0. |
| Geometrisk Faktor | 2 * PI * 0.5 | Grunnenhet | Eksempel på konstanter og multiplikasjon. |
| Referer til Annen Egendefinert Enhet | A * 2 | Egendefinert Enhet A | Bruk en annen enhets symbol/navn som en konstant i uttrykk. |
| Kompleks Enhetsrelasjon | sqrt(x^2 + base_length^2) | Grunnenhet | Pythagoreisk relasjon som bruker den egendefinerte enheten 'base_length' som en konstant. |
| Skalert Enhet med Forskyvning | x * scale_factor + offset_unit | Grunnenhet | Lineær transformasjon som bruker to andre egendefinerte enheter som konstanter. |
| Prosent av Referanseenhet | percent(x, reference_value) | Grunnenhet | Uttrykk inndata som prosent av en annen egendefinert enhet ved hjelp av hjelpefunksjon. |
| Begrenset Enhetsområde | clamp(x * multiplier, min_unit, max_unit) | Grunnenhet | Begrens verdier mellom to egendefinerte enhetskonstanter ved hjelp av clamp-hjelperen. |
| Enhetsforhold med GCD | x / gcd(x, common_divisor) | Grunnenhet | Matematisk relasjon som bruker GCD-hjelperen med en egendefinert enhetskonstant. |
| Kjede for Vinkelkonvertering | degrees(x * PI / reference_angle) | Egendefinert Vinkelenhet | Konverter til grader ved hjelp av egendefinert vinkelenhet og hjelpefunksjonen degrees(). |
Styring og Samarbeid
- Oppretthold en katalog over godkjente egendefinerte enheter med eiere og revisjonsdatoer.
- Bruk versjonskontroll når definisjoner utvikler seg; unngå ødeleggende endringer i symboler.
- Registrer opprinnelsen til konstanter og referanser (standarder, litteratur, interne dokumenter).
- Automatiser valideringstester (områdekontroller, prøvekonverteringer, monotonisitet).
Ofte Stilte Spørsmål
Bør jeg bruke en konstant faktor eller et uttrykk?
Foretrekk en konstant faktor når forholdet er lineært og fast. Bruk uttrykk bare når kartleggingen avhenger av x eller krever funksjoner (potenser, logaritmer, trigonometri).
Hvordan velger jeg en referanseenhet?
Velg en stabil, allment forstått enhet som fanger den dimensjonen du har til hensikt (f.eks. meter for lengde, m² for areal). Referansen forankrer den dimensjonale betydningen.
Er vinkler i grader eller radianer?
Radianer. Konverter grader ved å multiplisere med PI/180 før du bruker trigonometriske funksjoner.
Kan jeg kjede sammen egendefinerte enheter?
Ja, men unngå sykluser. Hold grafen asyklisk og dokumenter kjeden for å bevare klarheten.
Komplett Verktøykatalog
Alle 71 verktøy tilgjengelig på UNITS