Đơ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 chức năng này.
Ví dụ bên dưới cho thấy cách 50 kg được tự động chuyển đổi thành 110.23 pound (lbs) vì trường Formula and unit chứa 50kg nhưng Display unit là lbs.
Các tiền tố và hậu tố cũng được áp dụng tự động, như được minh họa khi chuyển đổi Display unit của Mass Vali từ kg sang g trong ví dụ bên dưới.
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, sẽ có một đơn vị được tự động tính ra (trong trường hợp này, đó sẽ là mét hoặc xen-ti-mét).
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 (bắt buộc)
-
Đối với các 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, đơn vị hiển thị sẽ dựa trên các đơn vị từ trường Formula and unit).
Bảng dưới đây cho thấy phần tóm tắt về 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 Công thức và Đơn vị | Trường Đơn vị Hiển thị | 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 được tạo ra. |
| 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ị được chỉ định sẽ được tạo ra 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ị được chỉ định sẽ được tạo ra 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ị trong 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ị |
|
| một công thức và một đơn vị tùy chỉnh | đơn vị |
|
| Vali có một kiểu | cố định | Đơn vị sẽ được tự động lấy từ đơn vị của kiểu đó (có thể thay đổi sau đó miễn là vẫn trong cùng một thứ nguyên). |
Thay đổi Đơn vị
Trường Đơn vị Hiển thị
Luôn có thể thay đổi trường Display unit miễn là đơn vị hiển thị khớp với một chuyển đổi hợp lệ từ đơn vị được 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 Portal sẽ biểu thị điều này bằng dấu chấm than và một thông báo trên Vali.
Khi đơn vị hiển thị được thay đổi thành một đơn vị có thể chuyển đổi hợp lệ (ví dụ: s sang ms hoặc m/s sang km/s), Vali sẽ được tính 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 Công thức và Đơn vị
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 sẽ trở thành 100 s thay vì 100 m. Tuy nhiên, nếu sau khi thay đổi, đơn vị hiển thị không khớp về thứ nguyên, Requirements Portal sẽ báo sai khác thứ nguyên, và đơn vị hiển thị 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 sử dụng trường Display unit) miễn là đó là một chuyển đổi hợp lệ từ đơn vị của công thức. Việc thay đổi đơn vị hiển thị từ m/s sang km/s sẽ hiển thị giá trị tương ứng. Có thể thay đổi đơn vị hiển thị từ m/s sang m, nhưng Requirements 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 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ố 'ma thuật').
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ị Valitype
Đơn vị của một Valitype chỉ có thể được thay đổ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 kiểu đó, nhưng các Vali mới được tạo với Valitype này sẽ có đơn vị mới.
Yêu cầu và Trường hợp xấu nhất
Các yêu cầu (giá trị min/max) và các trường hợp xấu nhất 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, các yêu cầu và trường hợp xấu nhất cũng sẽ được tính lại để tương ứng với đơn vị đã chọn.
Đơn vị và Hằng số Được hỗ trợ
Requirements Portal hỗ trợ tất cả các đơn vị và 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.
Khi làm việc với các đơn vị trong Requirements Portal, hãy lưu ý những điều sau:
-
Đơn vị và tiền tố phân biệt chữ hoa chữ thường. Ví dụ, kilogram phải luôn là
kgvà không bao giờ làKghoặcKG. Vui lòng lưu ý đến 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à
hhoặchr.hkhông thể được dùng để biểu thị hằng số Planck, cần dùngplanck_constantcho mục đích đó. -
Euro và dollar được hỗ trợ như các đơn vị, và tỷ lệ chuyển đổi của chúng được cố định ở mức 1 EUR = 1.123 USD (có thể thay đổi tỷ lệ 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à
EURhoặceurovàUSDvàdollar. -
dBkhô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 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 giữa thang đo tuyến tính và logarit (ví dụ: dBW sang W). -
Đối với các đơn vị nhiệt độ, hãy dùng
degC,degF, vàdegK(hoặc trong trường hợp này chỉ cầnK).
Có thể sử dụng các tiền tố sau:
-
Tiền tố thập phân:
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-
-
Tiền tố nhị phân:
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).
Đơn vị không được hỗ trợ
Không hỗ trợ việc sử dụng toán tử làm đơn vị. Ví dụ: %, -, &, $, #, °. Các giá trị này sẽ được xem là không thứ nguyên. 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 (những đơn vị không được định nghĩa trong thư viện Pint) trên trang Settings – Custom Units (truy cập bằng cách nhấp vào biểu tượng
ở góc dưới bên trái, chọn Settings từ menu xuất hiện, rồi chọn Custom Units từ danh sách ở khung bên trái). Để tạo một đơn vị tùy chỉnh mới, hãy nhấp vào nút
ở góc trên bên phải và định nghĩa đơn vị đó dựa trên các đơn vị hiện có trong thư viện Pint.