Đơn vị và chuyển đổi đơn vị tự động

Chuyển đổi đơn vị cho phép bạn liên kết một đơn vị vật lý với một Vali. Với mỗi phép tính sử dụng Vali này, việc chuyển đổi cần thiết sẽ được tự động thực hiện ở phía back end. Thư viện Pint library được dùng làm nền tảng cho tính năng này. Hình Unit Conversion cho thấy 50 kg được tự động chuyển đổi thành 110.23 pound (lbs) vì trường Value+Unit chứa 50 kg nhưng Display Unit là “lbs”. Các tiền tố và hậu tố cũng được tự động áp dụng, như được minh họa khi chuyển Display Unit của Mass Vali từ “kg” sang “g” trong video. Lưu ý rằng các đơn vị phải tương thích; mọi sự không khớp sẽ được Requirements & Systems Portal biểu thị bằng một dấu chấm than trên tên Vali.

Chuyển đổi đơn vị - Các giá trị được Requirements & Systems Portal tự động chuyển đổi bằng cách áp dụng các đơn vị, tiền tố và hậu tố khác nhau

Ngoài ra, bạn có thể chỉ định một công thức $vali3 = $vali1 + $vali2 bằng cách sử dụng $vali1 = 10 meter và vali2 = 100 cm. Nếu bạn đặt Display Unit của vali3 thành yd (yard), bạn sẽ có kết quả này được tự động tính toán và chuyển đổi: 12.030 yd. Nếu bạn không chỉ định Display Unit cho vali3, một đơn vị sẽ được tự động tính toán (trong trường hợp này sẽ là mét hoặc centimét). Đơn vị của mỗi Vali là như nhau đối với tất cả người dùng đang xem Vali đó. Tất cả các đơn vị và hằng số được hỗ trợ đều được liệt kê trong Pint Library.

Thư viện Pint tự động xử lý các dạng số nhiều được tạo bằng cách thêm 's' vào dạng số ít, vì vậy, ví dụ, các đơn vị lblbs là tương đương.

Xử lý đơn vị trên Vali và công thức

Tạo một Vali

Khi tạo một Vali mới (giá trị số hoặc công thức), có hai trường thuộc tính quan trọng:

  • Formula and Unit và Unit (bắt buộc)

    • Đối với giá trị số (ví dụ: 50 kg), trường này phải chứa giá trị và đơn vị

    • Đối với công thức (ví dụ: $wheel1.mass+$wheel2.mass), đơn vị sẽ là kết quả từ phép tính.

  • Display Unit (tùy chọn - nếu để trống thì Display Unit sẽ được xác định dựa trên Units từ trường Formula and Unit)

Bảng dưới đây cho thấy tóm tắt hành vi mong đợi khi tạo Vali, tùy thuộc vào các tùy chọn tạo khác nhau:

Trường Formula and Unit

Trường Display Unit

Hành vi mong đợi

giá trị số và không có đơn vị

không có đơn vị

một giá trị không thứ nguyên sẽ được tạo

giá trị số và không có đơn vị

đơn vị

cảnh báo sai khác thứ nguyên đơn vị trên Vali

giá trị số và có đơn vị được chỉ định

không có đơn vị

một giá trị với đơn vị đã chỉ định sẽ được tạo và hiển thị theo đơn vị từ trường Formula and Unit

giá trị số và có đơn vị được chỉ định

đơn vị

một giá trị với đơn vị đã chỉ định sẽ được tạo và hiển thị theo đơn vị từ trường Display Unit (các đơn vị must khớp nhau)

một công thức (không cần đơn vị)

không có đơn vị

Display Unit sẽ được tự động tính từ công thức

một công thức (không cần đơn vị)

đơn vị

kết quả từ công thức sẽ được hiển thị theo Display Unit (các đơn vị must khớp nhau)

một công thức và một đơn vị tùy chỉnh

không có đơn vị

  • nếu đơn vị được tính từ công thức có chuyển đổi hợp lệ sang đơn vị do người dùng chỉ định, Vali sẽ được hiển thị theo đơn vị đã chỉ định

  • nếu không thể chuyển đổi, một Vali trống (với giá trị 0) sẽ được tạo với đơn vị do người dùng chỉ định

một công thức và một đơn vị tùy chỉnh

đơn vị

  • nếu đơn vị được tính từ công thức có chuyển đổi hợp lệ sang Display Unit, Vali sẽ được hiển thị theo Display Unit đã chỉ định

  • nếu không thể chuyển đổi, một Vali trống (với giá trị 0) sẽ được tạo với đơn vị do người dùng chỉ định

Vali có type

cố định

đơn vị sẽ được tự động lấy từ đơn vị của type (có thể thay đổi sau đó miễn là vẫn trong cùng một thứ nguyên)

Thay đổi đơn vị

Trường Display Unit

Luôn có thể thay đổi trường Display Unit miễn là Display Unit có chuyển đổi hợp lệ từ đơn vị đang dùng (hoặc được tính qua công thức) trong trường Formula and Unit. Nếu có sai khác về thứ nguyên, Requirements & Systems Portal sẽ biểu thị điều này bằng một dấu chấm than và một thông báo trên Vali.

Khi Display Unit được đổi sang một giá trị có chuyển đổi hợp lệ (ví dụ: s sang ms hoặc m/s sang km/s), Vali sẽ được tính toán lại và hiển thị theo đơn vị tương ứng sau khi chuyển đổi, ví dụ 100 s = 100 000 ms.

Trường Formula and Unit

Nếu một Vali chỉ là giá trị số (không phải công thức), bạn có thể thay đổi đơn vị, ví dụ từ m sang s. Vali khi đó sẽ đơn giản trở thành 100 s thay vì 100 m. Tuy nhiên, nếu sau khi thay đổi, Display Unit không khớp về mặt thứ nguyên với đơn vị mới thì Requirements & Systems Portal sẽ báo sai khác thứ nguyên và Display Unit cần được điều chỉnh.

Công thức

Nếu một Vali có công thức, công thức sẽ quyết định đơn vị mong đợi tùy theo các biến được sử dụng. Bạn có thể chọn hiển thị giá trị theo bất kỳ đơn vị nào (bằng cách dùng trường Display Unit) miễn là đó là chuyển đổi hợp lệ từ đơn vị của công thức. Việc thay đổi Display Unit từ m/s sang km/s sẽ hiển thị giá trị tương ứng. Cũng có thể thay đổi Display Unit từ m/s sang m nhưng Requirements & Systems Portal sẽ báo có vấn đề về thứ nguyên đơn vị.

Giá trị không thứ nguyên

Các giá trị không thứ nguyên có thể được dùng trong phép nhân và phép chia, nhưng không thể dùng trong phép cộng và phép trừ với các giá trị có đơn vị, vì các đơn vị sẽ không tương thích. Tất cả Vali có đơn vị nên được lưu dưới dạng các giá trị có đơn vị (trong trường Formula and Unit) và được dùng làm tham số trong công thức (nghĩa là không nên dùng các con số 'magic').

Các đơn vị không được nhận diện ('đơn vị không xác định') cũng được xem là không thứ nguyên.

Đơn vị không xác định

Có một cài đặt riêng để cho phép sử dụng các đơn vị không xác định. Nếu được bật (cài đặt mặc định), có thể thêm các đơn vị không được hỗ trợ nhưng sẽ tạo ra cảnh báo. Nếu bị tắt, sẽ không thể gán cho Vali một đơn vị không xác định.

Thay đổi đơn vị của Valitype

Đơn vị của một Valitype chỉ có thể được đổi sang một đơn vị khác có cùng thứ nguyên với đơn vị ban đầu. Thay đổi này sẽ không ảnh hưởng đến bất kỳ Vali hiện có nào của type đó, nhưng các Vali mới được tạo bằng Valitype này sẽ có đơn vị mới.

Requirements và worst cases

Requirements (giá trị min/max) và worst cases luôn được hiển thị theo cùng đơn vị với đơn vị của Vali. Nếu đơn vị được thay đổi, requirements và worst cases cũng sẽ được tính toán lại để tương ứng với đơn vị đã chọn.

Các đơn vị và hằng số được hỗ trợ

Requirements & Systems Portal hỗ trợ tất cả các đơn vị và phép chuyển đổi mặc định được định nghĩa trong thư viện Pint, cũng như các hằng số mặc định.

Vui lòng lưu ý khi làm việc với đơn vị trong Requirements & Systems Portal:

  • Đơn vị và tiền tố phân biệt chữ hoa chữ thường. Ví dụ, kilogram luôn phải là “kg“ và tuyệt đối không phải “Kg“ hoặc “KG“. Hãy lưu ý Pint Library khi làm việc với đơn vị nếu bạn không chắc về cách viết hoa.

  • Hour được viết tắt là 'h' hoặc 'hr'. 'h' không thể dùng để biểu diễn hằng số Planck; trong trường hợp đó nên dùng 'planck_constant'

  • Euro và dollar được hỗ trợ như các đơn vị, và phép chuyển đổi của chúng được cố định ở mức 1 EUR = 1.123 USD (có thể thay đổi phép chuyển đổi này trong Admin Panel để phù hợp với tình hình kinh tế hiện tại). Chúng lần lượt được viết tắt là 'EUR' hoặc 'euro', và 'USD' và 'dollar'

  • 'dB' không ánh xạ tới 'decibarn' như trong danh sách đơn vị mặc định, mà được ánh xạ tới đơn vị không thứ nguyên riêng của nó là 'decibel'. Các đơn vị logarit khác (ví dụ: dBW) được xem là đơn vị không xác định và vì vậy được xử lý giống như các đơn vị không thứ nguyên. Không có chuyển đổi tự động nào được dự kiến giữa thang tuyến tính và thang logarit (ví dụ: dBW sang W)

  • Đối với các đơn vị nhiệt độ, vui lòng dùng degC, degF và degK (hoặc ở đây cũng có thể chỉ dùng K)

Hãy chú ý khi dùng chuyển đổi tự động cho các giá trị nhiệt độ. Nhiệt độ là các đơn vị 'không nhân tính' và có một số hành vi đặc thù, được giải thích chi tiết hơn trong tài liệu Pint.

Có thể sử dụng các tiền tố sau:

Decimal prefixes

yocto- = 1e-24 = y-  
zepto- = 1e-21 = z-  
atto- =  1e-18 = a-  
femto- = 1e-15 = f-  
pico- =  1e-12 = p-  
nano- =  1e-9  = n-  
micro- = 1e-6  = u- = µ-  
milli- = 1e-3  = m-  
centi- = 1e-2  = c-  
deci- =  1e-1  = d-  
deca- =  1e+1  = da- = deka  
hecto- = 1e2   = h-  
kilo- =  1e3   = k-  
mega- =  1e6   = M-  
giga- =  1e9   = G-  
tera- =  1e12  = T-  
peta- =  1e15  = P-  
exa- =   1e18  = E-  
zetta- = 1e21  = Z-  
yotta- = 1e24  = Y-  

Binary prefixes

kibi- = 2^10 = Ki-  
mebi- = 2^20 = Mi-  
gibi- = 2^30 = Gi-  
tebi- = 2^40 = Ti-  
pebi- = 2^50 = Pi-  
exbi- = 2^60 = Ei-  
zebi- = 2^70 = Zi-  
yobi- = 2^80 = Yi-  

Có thể sử dụng bất kỳ tổ hợp nào giữa tiền tố và đơn vị, ví dụ: ks = kiloseconds, vì cả tiền tố và đơn vị đều đã được định nghĩa (1 kilosecond = 1000 seconds).

Các đơn vị không được hỗ trợ

Không hỗ trợ sử dụng toán tử làm đơn vị. Ví dụ: %, -, &, $, #, °. Các Valis này sẽ được xem là không thứ nguyên và một cảnh báo warning (với mã 2115) sẽ được tạo. Ví dụ, đơn vị % sẽ không được xem là phần trăm (50% = 0.5) mà là giá trị thô (50).

Đơn vị tùy chỉnh

Quản trị viên có thể định nghĩa các đơn vị tùy chỉnh trong trang Settings, chỉ hiển thị cho người dùng quản trị. Quản trị viên có thể tạo các đơn vị tùy chỉnh không được định nghĩa trong thư viện Pint. Để truy cập cài đặt Custom Units, hãy nhấp vào biểu tượng Settings(1) và điều hướng đến phần Custom Units(2) trong menu cài đặt.

image-20241030-070401.png


Quản trị viên có thể thêm các đơn vị tùy chỉnh mới bằng cách nhấp vào biểu tượng + hoặc “Add custom unit”(3) và định nghĩa các đơn vị đó bằng các đơn vị hiện có trong thư viện Pint.
 

 

AI-LocalizedAI-localized
If you find an issue, select the text/image and pressCtrl + Enterto send us your feedback.
Feature Availability

The features available to you depend on which Altium solution you have – Altium Develop, an edition of Altium Agile (Agile Teams or Agile Enterprise), or Altium Designer (on active term).

If you don’t see a discussed feature in your software, contact Altium Sales to find out more.

Nội dung