Làm thế nào tôi có thể tự động hóa quá trình tối ưu hóa thiết kế của một đối tượng vật lý?


9

Tôi đang cố gắng tối ưu hóa bộ phân phối dòng chảy trong bể sao cho phân phối vận tốc và nhiệt độ trên bất kỳ mặt cắt nào tương đối đồng đều. Có nhiều thông số tôi có thể điều chỉnh theo độ đồng đều mặt cắt tối đa, chẳng hạn như số lượng ống đầu vào, vị trí, hướng và hướng của chúng. Tôi biết rằng tôi có thể tạo một số hình học khác nhau và kiểm tra từng cái riêng lẻ, nhưng điều này rất tốn thời gian. Tôi muốn có thể viết một chương trình có thể kiểm tra lặp lại nhiều trường hợp cùng một lúc (song song) và chọn một cách thích nghi một bộ hình học mới để kiểm tra dựa trên các kết quả trước đó. Làm thế nào tốt nhất tôi có thể làm điều này?


1
Phần tìm kiếm tham số, với tôi, là phần dễ dàng. Phần không cần thiết là tham số hóa hình học.
Geoff Oxberry

Câu trả lời:


4

Những gì bạn muốn làm là tối ưu hóa hình dạng bằng cách sử dụng các phương pháp dựa trên độ dốc. Về cơ bản, điều đó có nghĩa là bạn cần tính toán độ dốc của hàm mục tiêu wrt cho các tham số mô hình của bạn.

Đối với một số lượng nhỏ các tham số, bạn có thể sử dụng FD nhưng đối với số lượng lớn các tham số bạn cần xem xét các phương thức điều chỉnh. Nếu bạn đang sử dụng mã thương mại hoặc mã của người khác không thể giải các phương trình liên kết thì FD là lựa chọn duy nhất của bạn.

Nhìn vào sách tối ưu hóa hình dạng cơ bản cơ bản.

Chỉnh sửa: Đối với các vấn đề về cấu trúc FE, bạn có thể xem cuốn sách của Choi và Kim I và II


Một số tham số chỉ là số nguyên ... Cách tiếp cận dựa trên độ dốc vẫn có thể áp dụng?
Paul

Bạn có đề nghị bất kỳ hướng dẫn / sách tốt về tối ưu hóa hình dạng?
Paul

Đối với một cái gì đó ngắn / đơn giản, bạn có thể đọc này: acdl.mit.edu/mdo/mdo_06/EulerAdjoint.pdf . Như tôi đã nói với FD tầm thường của nó khi bạn chỉ cần tính toán độ dốc (nghĩa là chạy mã CFD của bạn rất nhiều lần, tùy thuộc vào số lượng tham số) và sau đó sử dụng độ dốc để thực hiện tối ưu hóa. Thông thường phải mất một vài lần lặp trước khi các ước tính tham số hội tụ. Đối với các tham số lớn, điều này trở nên đắt đỏ và bạn sẽ phải sử dụng các phương thức để điều chỉnh độ dốc.
stali

Cảm ơn bạn, stali. Đó là một giới thiệu rất tốt cho các phương pháp điều chỉnh.
Paul

5

Nếu bạn tham số hóa phần xây dựng hình học của mình một cách thích hợp, đây là vấn đề tối ưu hóa hộp đen với các tham số rời rạc và liên tục.

DAKOTA http://dakota.sandia.gov/ và NOMAD http://www.gerad.ca/NOMAD/Project/Home.html là hai gói hữu ích cho phép bạn chọn tự động lựa chọn tham số tốt nhất. (DAKOTA có hỗ trợ ứng dụng tốt hơn, nhưng NOMAD có thể có các trình tối ưu hóa tốt hơn.)

Để thay đổi hình dạng, hãy giới thiệu một tham số rời rạc hoặc liên tục cho mỗi điều khiển mà bạn muốn tác động đến hình học và tự động hóa việc xây dựng hình học từ bộ sưu tập các điều khiển. Lưu ý rằng các phương pháp không có đạo hàm khá chậm trong các kích thước cao, vì vậy hãy giữ số lượng tham số nhỏ một cách hợp lý.

Sau khi kết thúc việc khám phá không gian với một trong các gói trên, bạn có thể tinh chỉnh phân tích bằng cách tối ưu hóa chính xác hơn trong đó tất cả các tham số rời rạc và tất cả các tham số liên tục được cố định mà bạn không thể lấy đạo hàm phân tích. Nhưng bạn có thể tăng số lượng tham số hình dạng liên tục mà bạn có thể tính toán các dẫn xuất phân tích, như một trình tối ưu hóa dựa trên độ dốc (như IPOPT https://projects.coin-or.org/Ipopt ) có thể xử lý hiệu quả các vấn đề lớn hơn nhiều .

Nếu bạn không biết cách lấy đạo hàm nhưng sự phụ thuộc trơn tru, bạn có thể cân nhắc sử dụng chương trình phân biệt tự động hoặc mã hóa vấn đề liên tục của bạn trong AMPL, trong trường hợp đó, giao diện của bộ giải sẽ xử lý các đạo hàm.

Đối với những điều cơ bản về tối ưu hóa hình dạng, hãy xem, ví dụ, Haftka, RT và Grandhi, RV, tối ưu hóa hình dạng hình thang - Một khảo sát, Phương pháp máy tính trong Cơ học ứng dụng và Kỹ thuật 57 (1986), 91-106. (Tin tưởng vào mô tả về mô hình hóa, nhưng không sử dụng các bộ giải mà họ đề xuất, vì công nghệ tối ưu hóa đã được cải thiện rất nhiều kể từ thời điểm đó.)


Những cách tiếp cận nào tôi có thể thực hiện để tham số hóa hình học?
Paul

Xem phần bổ sung cho câu trả lời của tôi.
Arnold Neumaier

@Paul: Tôi vừa sửa một lỗi ngớ ngẩn trong bài viết của mình - tất nhiên các tham số hình học có thể rời rạc hoặc liên tục!
Arnold Neumaier


3

Ngoài ra còn có tối ưu hóa không gian điều chỉnh, dường như nhanh hơn rất nhiều so với tối ưu hóa tham số tiêu chuẩn trong CFD. Gần đây, nó đã có sự gia tăng lớn về mức độ phổ biến trong cộng đồng CFD nói chung và đặc biệt là trong OpenFOAM. Chúng tôi hiện đang tổ chức một hội thảo về OpenFOAM và chúng tôi đã nhận được rất nhiều bài nộp trừu tượng về phương pháp này. Nếu bạn quan tâm, hãy kiểm tra điều này , để biết thông tin khác, chỉ cần google "điều chỉnh tối ưu hóa hình dạng không gian trong CFD".

Thông tin bổ sung:

Nếu bạn có thể sử dụng OpenFOAM, có một thư viện dựa trên Python được sử dụng cho việc đó, để thao tác số lượng lớn các trường hợp và thay đổi các tham số của chúng được gọi là PyFoam . Đối với một hình học đơn giản, bạn có thể định nghĩa một lưới là một blockMesh đơn giản và lặp lại bất cứ thứ gì bạn thích. Đối với một trường hợp đơn giản, đây là một câu hỏi về việc viết một vài vòng lặp trong Python. Đây là kịch bản trông như thế nào nếu bạn thay đổi vận tốc điều kiện biên "đầu vào". Thay đổi hình học lưới đơn giản sẽ là một vài dòng mã ...


2

Bạn sẽ cần:

  1. một trình tối ưu hóa và
  2. một công cụ CFD có khả năng (linh hoạt) đủ để xử lý các thiết kế khác nhau trong một khái niệm cụ thể hoặc thậm chí thuộc về các khái niệm khác nhau.

Các tính năng sau rất quan trọng đối với công cụ CFD:

  • Hiệu quả tính toán cao (tốc độ) để xử lý số lượng lớn các thiết kế riêng biệt trong một khung thời gian hợp lý.
  • Tính linh hoạt và tính linh hoạt cao của các kỹ thuật số để loại trừ can thiệp thủ công vào quá trình tìm kiếm / phân tích.
  • Thao tác hình học lập trình.

Vì vậy, tôi có thể đề nghị phần mềm sau đây:

  1. Bộ công cụ Insight cung cấp một số lượng tối ưu hóa tốt có thể được ghép nối với
  2. Thư viện mô phỏng nâng cao cung cấp

    • Hiệu suất cao:

      • Thư viện được tăng tốc phần cứng, tức là có khả năng sử dụng phần cứng GPU hoặc GPU (nếu có), có nghĩa là tăng tốc 10-100 so với chương trình dựa trên CPU. Ngoài ra trên CPU thông thường, nó sử dụng các tính năng nâng cao như SIMD.
      • Nó dựa trên phương pháp biên dịch động, điều đó có nghĩa là không cần phải hy sinh hiệu năng để linh hoạt. Điều này dẫn đến tốc độ tăng tốc lên gấp 10 lần so với kỹ thuật biên dịch tiêu chuẩn.
      • ASL có thể được sử dụng trong cơ sở hạ tầng cụm và trong các máy tính đa GPU.
    • Tính linh hoạt và tính linh hoạt cao:

      • Các lưới miễn phí kỹ thuật số dựa trên lưới hình chữ nhật và cách tiếp cận ranh giới đắm. Các tính năng này cho phép tối ưu hóa thiết kế tự động , vì không yêu cầu tạo lưới.
      • Thư viện dựa trên phương pháp biên dịch động, điều đó có nghĩa là không cần phải hy sinh hiệu năng để linh hoạt. Điều này cho phép xây dựng thuật toán chung và hiệu quả cho các thiết kế / khái niệm khác nhau.
    • Tạo và thao tác các nguyên thủy hình học .

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.