Octave Engine
Giới thiệu
Công cụ Octave (công cụ/môi trường mã nguồn mở tương thích MatLab) trong Scripting Module cho phép người dùng thực hiện các phép tính phức tạp trong Requirements & Systems Portal, vốn không dễ thực hiện/tính toán trong System Design Module. Bạn có thể tham chiếu các Vali cần thiết cho phép tính làm Vali đầu vào và kết quả làm Vali đầu ra. Một số ví dụ phổ biến của kiểu tính toán này bao gồm giải phương trình phi tuyến, nhân ma trận hoặc các trường hợp có điều kiện.
Quy trình viết script cho công cụ Octave
Quy trình làm việc điển hình khi sử dụng Scripting Module được trình bày bên dưới. Mỗi bước được giải thích trong từng phần phụ.

1. Tạo một Octave Script mới
Để tạo một octave script mới trong dự án của bạn, hãy di chuột đến simulation module (1) và chọn “+ Script” (2). Khi nhấp vào, một cửa sổ bật lên sẽ mở ra; nhập tên và chọn “Octave engine (Matlab compatibilite)” (3), sau đó nhấp vào “Create”. Xem hình Creating Octave Script.
2. Đầu vào và đầu ra
Người dùng có thể thêm các Vali đầu vào và đầu ra. Ví dụ, khi người dùng tham chiếu Vali trong phần đầu vào hoặc đầu ra, người dùng có thể cung cấp một tên ngắn cho Vali, tên này sau đó sẽ được sử dụng trong mã tính toán octave của bạn.
Example:
Nếu bạn đang sử dụng một Vali có tên “PowerConsumption.CRUISE” từ component module của mình, bạn có thể chỉ cần gán một tên viết tắt cho biến, chẳng hạn như “cruise“ (1). Khi Vali được tham chiếu trong phần đầu vào, Requirements & Systems Portal sẽ tự động thêm các giá trị cùng với đơn vị (2).
Người dùng cũng có thể thay đổi đơn vị mô phỏng. Ví dụ: PowerConsumption được xác định cho cruise trong System Design Module là W nhưng trong mô phỏng lại sử dụng kW, được xác định trong cột “simulation unit” (3). Xem hình Setting up Valis.
Bạn có thể sử dụng bất kỳ Vali nào từ System Design Module làm đầu vào hoặc đầu ra, nhưng không thể đồng thời dùng làm cả hai.
3. Tính toán/Mã Octave
Như đã đề cập trước đó, simulation module của Requirements & Systems Portal sử dụng công cụ octave cho phép bạn dùng cú pháp Octave . Cú pháp này tương tự và có khả năng tương thích rất tốt với Matlab, vì vậy bạn sẽ không cần phải làm quen với một framework mới để tạo các phép tính phức tạp. Bạn có thể đọc Trang tài liệu GNU Octave nếu cần thêm thông tin.
Người dùng phải viết mã octave trong tệp “main.m”(1). Hướng dẫn được viết trong vùng soạn thảo mã về cách người dùng có thể xác định đầu vào và đầu ra (2). Xem Hình Octave Script để biết thêm thông tin.
Sau khi mã được thêm vào tệp main.m, người dùng có thể lưu script bằng cách nhấp vào “Save”(3).
4. Chạy mô phỏng/Kết quả
Sau khi hoàn tất script, bạn có thể nhấp vào nút phát, nằm ở góc dưới bên trái như được hiển thị trong Hình Running Script.
Sau khi mô phỏng hoàn tất, Requirements & Systems Portal sẽ tự động cập nhật các giá trị đầu ra. Do đó, các Vali đầu ra trong System Design Module cũng được cập nhật tự động. Nếu các Vali đầu ra đang được sử dụng làm hằng số trong các công thức để tính các Vali khác, Requirements & Systems Portal sẽ tự động tính lại mọi Vali liên quan đến Vali đầu ra.
5. Trường hợp sử dụng Scripting + Automation
Nếu bất kỳ giá trị đầu vào nào bị thay đổi trong System Design Module, người dùng phải chạy lại mô phỏng để tính lại các giá trị đầu ra.
Để tránh phải chạy mô phỏng sau mỗi lần thay đổi giá trị đầu vào, có thể tạo liên kết giữa Automations và Scripting Module. Cụ thể, có thể thiết lập các automation mới với trình kích hoạt hằng số để tự động chạy lại mọi mô phỏng bị ảnh hưởng bởi thay đổi của một Vali, như minh họa trong đoạn clip ngắn bên dưới.
Trong trường hợp cụ thể này, thời gian bay của Valicopter được điều chỉnh từ 15 phút xuống 10 phút, điều này tự động kích hoạt việc tính lại tổng dung lượng pin cần thiết. Vì khối lượng tổng của phân hệ nguồn được tính dựa trên dung lượng pin cần thiết (cần bao nhiêu pin), nên khi thời gian bay giảm và do đó dung lượng pin yêu cầu cũng giảm, khối lượng của phân hệ nguồn cũng được tính lại và giảm xuống.