Anpassad Enhetsomvandlare

Anpassade Enheter: Modellering, Formler och Bästa Praxis

Definiera dina egna mätenheter förankrade till en 'Basenhet' eller en annan anpassad enhet. Modellera linjära faktorer eller fullständiga uttryck, och organisera konsekventa familjer för ditt projekt eller domän.

Grundläggande Koncept

Vad är en Anpassad Enhet?
I denna omvandlare är en anpassad enhet användardefinierad och förankrad till en annan anpassad enhet (eller till Basenheten). Du väljer ett namn, en symbol, en referens och en faktor eller ett uttryck som omvandlar värden till den valda referensen.

Referensbaserad Modellering

Din referens är en annan anpassad enhet eller 'Basenhet'.

Omvandlingsuttrycket mappar inmatade värden till referensenhetens rymd (systemet är avsiktligt enhetsagnostiskt).

  • Dimensionssäkerhet
    Genom att välja en referens binder du implicit den anpassade enheten till den familjen. Håll familjer konsekventa (t.ex. relaterade enheter som refererar till samma bas).
  • Komponerbarhet
    Ändra referensen senare utan att döpa om enheten – endast uttrycket behöver justeras.
  • Granskningsbarhet
    Varje enhet har en enda, tydlig definition: referens + uttryck.

Faktor vs Uttryck

Enkla enheter använder en konstant faktor (t.ex. 1 foo = 0.3048 × Bas).

Avancerade enheter kan använda uttryck med funktioner (t.ex. 10 * log(x / 1e-3)).

  • Konstanta Faktorer
    Bäst för fasta linjära förhållanden (längdskalor, areaförhållanden, etc.).
  • Uttryck
    Använd matematiska funktioner för härledda eller icke-linjära skalor (förhållanden, logaritmer, potenser).
  • Konstanter
    Inbyggda konstanter som PI, E, PHI, SQRT2, SQRT3, LN2, LN10, LOG2E, LOG10E, AVOGADRO, PLANCK, LIGHT_SPEED, GRAVITY, BOLTZMANN.

Namngivning, Symboler och Konsekvens

Välj korta, entydiga symboler. Undvik kollisioner med befintliga standarder.

Dokumentera avsikten i din organisation – vad den mäter och varför den existerar.

  • Tydlighet
    Föredra koncisa symboler (1–4 tecken rekommenderas; UI tillåter upp till 6).
  • Stabilitet
    Behandla symboler som stabila identifierare över datamängder och API:er.
  • Stil
    Använd SI-liknande skiftlägesanvändning där det är meningsfullt (t.ex. 'foo', 'kFoo', 'mFoo').
Viktiga Punkter
  • En anpassad enhet = referensenhet + omvandlingsuttryck.
  • Referensen förankrar dimensionen; uttrycket definierar värdemappningen.
  • Föredra konstanta faktorer för linjära skalor; använd uttryck för specialfall.

Formelspråk

Uttryck stöder tal, variabeln x (inmatningsvärde), aliasvärde, konstanter (PI, E, PHI, SQRT2, SQRT3, LN2, LN10, LOG2E, LOG10E, AVOGADRO, PLANCK, LIGHT_SPEED, GRAVITY, BOLTZMANN), aritmetiska operatorer och vanliga matematiska funktioner. Uttryck utvärderas till ett värde i den valda referensenheten.

Operatorer

OperatorBetydelseExempel
+Additionx + 2
-Subtraktion/Unär Negationx - 5, -x
*Multiplikation2 * x
/Divisionx / 3
**Potens (använd **; ^ konverteras automatiskt)x ** 2
()Prioritet(x + 1) * 2

Funktioner

FunktionSignaturExempel
sqrtsqrt(x)sqrt(x^2 + 1)
cbrtcbrt(x)cbrt(x)
powpow(a, b)pow(0.3048, 2)
absabs(x)abs(x)
minmin(a, b)min(x, 100)
maxmax(a, b)max(x, 0)
roundround(x)round(x * 1000) / 1000
trunctrunc(x)trunc(x)
floorfloor(x)floor(x)
ceilceil(x)ceil(x)
sinsin(x)sin(PI/6)
coscos(x)cos(PI/3)
tantan(x)tan(PI/8)
asinasin(x)asin(0.5)
acosacos(x)acos(0.5)
atanatan(x)atan(1)
atan2atan2(y, x)atan2(1, x)
sinhsinh(x)sinh(1)
coshcosh(x)cosh(1)
tanhtanh(x)tanh(1)
lnln(x)ln(x)
loglog(x)log(100)
log2log2(x)log2(8)
expexp(x)exp(1)
degreesdegrees(x)degrees(PI/2)
radiansradians(x)radians(180)
percentpercent(value, total)percent(25, 100)
factorialfactorial(n)factorial(5)
gcdgcd(a, b)gcd(12, 8)
lcmlcm(a, b)lcm(12, 8)
clampclamp(value, min, max)clamp(x, 0, 100)
signsign(x)sign(-5)
nthRootnthRoot(value, n)nthRoot(8, 3)

Uttrycksregler

  • x är inmatningsvärdet; aliasvärde är också tillgängligt.
  • Använd explicit multiplikation (t.ex. 2 * PI, inte 2PI).
  • Tillgängliga konstanter: PI, E, PHI, SQRT2, SQRT3, LN2, LN10, LOG2E, LOG10E, AVOGADRO, PLANCK, LIGHT_SPEED, GRAVITY, BOLTZMANN.
  • Vinklar för trigonometriska funktioner är i radianer (använd hjälpfunktionerna degrees() och radians() för omvandling).
  • Referera till andra anpassade enheter med namn (snake_case) eller symbol; deras nuvarande toBase-värden injiceras som konstanter.
  • Använd ** för potenser (motorn konverterar automatiskt ^ till **).
  • Smart inmatningsnormalisering: ×, ÷, π, ², ³ konverteras automatiskt till *, /, PI, ^2, ^3.
  • Tillgängliga hjälpfunktioner: degrees(), radians(), percent(), factorial(), gcd(), lcm(), clamp(), sign(), nthRoot().
  • Förbättrad feldetektering förhindrar vanliga misstag (logaritmen av negativa tal, kvadratroten av negativa tal, division med noll).
  • Referens till anpassad enhet: Använd andra enheter som variabler i uttryck (t.ex. 'x * A' där A är en annan anpassad enhet).
  • Blanksteg ignoreras; använd parenteser för att styra prioritet.
  • Uttryck måste producera ett ändligt numeriskt resultat för giltiga indata.
Grunderna i Formler
  • Använd explicit multiplikation (t.ex. 2 * PI).
  • Vinklar för trigonometriska funktioner är i radianer.
  • log(x) är bas 10; ln(x) är naturlig logaritm (bas e).

Dimensionsanalys & Strategier

Detta anpassade system är enhetsagnostiskt. Modellera familjer genom att förankra relaterade enheter till samma 'Basenhet' (eller en delad referens). Håll betydelsen konsekvent över den familj du designar.

Modelleringsstrategier

StrategiNär den ska användasAnteckningar
Direkt FaktorLinjära förhållanden (t.ex. 1 foo = k × Bas).Använd ett konstant tal (inget x). Stabilt och exakt.
PotensskalningHärledd från en basskala (k^2, k^3).Använd pow(k, n) där k är basskalan.
Förhållande eller NormaliseringEnheter definierade i förhållande till en referensnivå (t.ex. x / ref).Användbart för indexliknande mått; håll ref explicit i uttrycket.
Logaritmisk SkalaPerceptuella eller effektförhållandesskalor (t.ex. dB-stil 10 * log(x/ref)).Se till att domänen är positiv; dokumentera referensvärdet.
Affin AvbildningSällsynta fall med förskjutningar (a * x + b).Förskjutningar ändrar nollpunkter – tillämpa endast när det är konceptuellt motiverat.

Redigerare & Validering

Skapa enheter med ett namn, symbol (upp till 6 tecken), färgtagg, en referens (Basenhet eller en annan anpassad enhet) och en faktor/uttryck. Redigeraren validerar formler i realtid med förbättrad feldetektering och förhindrar cirkulära referenser.

  • Referensalternativ inkluderar 'Basenhet' och befintliga anpassade enheter. Osäkra alternativ som skulle skapa cykler filtreras bort automatiskt.
  • Variabler: använd x (eller value) för inmatningsvärdet. Referera till andra anpassade enheter med snake_case-namn eller med symbol; deras nuvarande toBase-värden injiceras som konstanter.
  • Stödda konstanter: PI, E, PHI, SQRT2, SQRT3, LN2, LN10, LOG2E, LOG10E, AVOGADRO, PLANCK, LIGHT_SPEED, GRAVITY, BOLTZMANN.
  • Kärnfunktioner: 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älpfunktioner: degrees(), radians(), percent(), factorial(), gcd(), lcm(), clamp(), sign(), nthRoot() för förbättrad användarupplevelse.
  • Operatorer: +, -, *, /, ** för potens. Smart inmatningsnormalisering: ×, ÷, π, ², ³ konverteras automatiskt.
  • Realtidsvalidering med förhandsgranskning (t.ex. 10 x → resultat), klassificering av komplexitet (enkel/måttlig/komplex) och kontextmedvetna förslag.
  • Förbättrad feldetektering fångar vanliga misstag: logaritmer av icke-positiva tal, kvadratrötter av negativa tal, division med noll.
  • Avancerad cykeldetektering förhindrar att enheter är beroende av sig själva (direkt eller indirekt) med tydliga felmeddelanden.
  • Interaktiv hjälppanel med kategoriserade exempel, klickbara formelfragment och knappar för anpassade enheter för enkel infogning.

Bästa Praxis

  • Föredra en konstant faktor om möjligt; uttryck endast när det är nödvändigt.
  • Välj en referensenhet som är stabil, allmänt förstådd och osannolik att ändras.
  • Undvik cirkulära kedjor av referenser; håll grafer acykliska.
  • Lägg till exempelvärden och korskolla med oberoende kalkylatorer eller kända identiteter.
  • Håll symboler korta, unika och dokumenterade för din organisation.
  • Om du använder logaritmer, registrera referensvärdet, basen och den avsedda domänen för x.
Kvalitetschecklista
  • Testa med 3–5 representativa värden och verifiera omvandlingar fram och tillbaka.
  • Undvik cirkulära referenser; välj en stabil referensenhet.
  • Dokumentera antaganden (domäner, förskjutningar, typiska intervall).

Startmallar & Exempel

Dessa exempel illustrerar vanliga modelleringsmönster i detta system som endast är för anpassade enheter. Ersätt konstanter och referenser med dina behov.

NamnFormelReferensAnteckningar
Basskalad Enhet (foo)0.3048BasenhetDefinierar 1 foo = 0.3048 × Bas (enkel linjär faktor).
Potensskalad (foo²)pow(0.3048, 2)BasenhetHärledd från en basskala (k^2).
Volymskalad (foo³)pow(0.3048, 3)BasenhetHärledd från en basskala (k^3).
Index från Referensx / 42BasenhetNormalisera med en fast nivå (domän x > 0).
Effektförhållande (dB-stil)10 * log(x / 0.001)BasenhetLogaritmiskt mått relativt 1 mW (exempel). Se till att x > 0.
Geometrisk Faktor2 * PI * 0.5BasenhetExempel på konstanter och multiplikation.
Referera till Annan Anpassad EnhetA * 2Anpassad Enhet AAnvänd en annan enhets symbol/namn som en konstant i uttryck.
Komplex Enhetsrelationsqrt(x^2 + base_length^2)BasenhetPythagoreisk relation som använder den anpassade enheten 'base_length' som en konstant.
Skalad Enhet med Förskjutningx * scale_factor + offset_unitBasenhetLinjär transformation som använder två andra anpassade enheter som konstanter.
Procent av Referensenhetpercent(x, reference_value)BasenhetUttryck indata som procent av en annan anpassad enhet med hjälp av hjälpfunktion.
Begränsat Enhetsintervallclamp(x * multiplier, min_unit, max_unit)BasenhetBegränsa värden mellan två anpassade enhetskonstanter med hjälp av clamp-hjälpfunktionen.
Enhetsförhållande med GCDx / gcd(x, common_divisor)BasenhetMatematisk relation som använder GCD-hjälpfunktionen med en anpassad enhetskonstant.
Kedja för Vinkelomvandlingdegrees(x * PI / reference_angle)Anpassad VinkelenhetKonvertera till grader med en anpassad vinkelenhet och hjälpfunktionen degrees().

Styrning & Samarbete

  • Upprätthåll en katalog över godkända anpassade enheter med ägare och granskningsdatum.
  • Använd versionshantering när definitioner utvecklas; undvik brytande ändringar av symboler.
  • Registrera härkomst för konstanter och referenser (standarder, litteratur, interna dokument).
  • Automatisera valideringstester (intervallkontroller, exempelomvandlingar, monotonicitet).

Vanliga Frågor

Ska jag använda en konstant faktor eller ett uttryck?

Föredra en konstant faktor när förhållandet är linjärt och fast. Använd uttryck endast när mappningen beror på x eller kräver funktioner (potenser, logaritmer, trigonometri).

Hur väljer jag en referensenhet?

Välj en stabil, allmänt förstådd enhet som fångar den dimension du avser (t.ex. meter för längd, m² för area). Referensen förankrar den dimensionella betydelsen.

Är vinklar i grader eller radianer?

Radianer. Konvertera grader genom att multiplicera med PI/180 innan du använder trigonometriska funktioner.

Kan jag kedja anpassade enheter?

Ja, men undvik cykler. Håll grafen acyklisk och dokumentera kedjan för att bevara tydligheten.

Komplett Verktygskatalog

Alla 71 verktyg tillgängliga på UNITS

Filtrera efter:
Kategorier:

Extra