Chương trình mô phỏng mảng ăng-ten “3D Antenna Array”

Ghi chú: có một lỗi trong phần tính Directivity của mảng ăng-ten trong phần mềm 3D Antenna Array. Mặc dù hình dạng của đồ thị bức xạ thì đúng nhưng giá trị cực đại của D không chính xác. Phần mềm đang được cập nhật để sửa lại lỗi này.

Mảng ăng-ten (antenna array) có lẽ là một đề tài không xa lạ gì với sinh viên ngành điện tử – viễn thông. Ăng-ten là một thiết bị sóng điện từ và việc phân tích hoạt động của một ăng-ten đòi hỏi một lượng kiến thức kha khá về trường điện từ. Có lẽ điều này cũng làm cho chúng ta hơi nhụt chí khi bắt đầu tìm hiểu về mảng ăng-ten. Nói gì thì nói chứ phân tích một cái ăng-ten đã đủ làm ta mướt mồ hôi rồi, bây giờ còn đem ra 20 cái ăng-ten xếp thành 5 cột với 4 hàng rồi bảo phân tích đi thì ai mà chẳng ngán.

Thực tế là việc phân tích hoạt động của một mảng ăng-ten đơn giản hơn ta tưởng nhiều (tất nhiên là khi chúng ta chấp nhận một số giả thiết như tuyến tính và far-field). Có lẽ ta cũng chẳng cần đến lý thuyết trường điện từ nữa mà chủ yếu ta sẽ dựa vào tính tuyến tính của trường điện từ: trường điện từ tạo ra bởi một mảng ăng-ten bằng tổng của các trường điện từ tạo ra bởi từng ăng-ten thành phần trong mảng.

Lý thuyết về mảng ăng-ten được trình bày trong các tài liệu về ăng-ten thường bắt đầu từ mảng ăng-ten một chiều – nghĩa là các ăng-ten trong mảng được xếp cách đều nhau trên một đường thẳng – vì đây là cấu hình đơn giản nhất. Sau đó độ phức tạp của mảng ăng-ten được từ từ tăng dần lên trong mảng 2 chiều, rồi mảng với các ăng-ten kết hợp với độ lệch pha (phased array), vân vân và vân vân. Trong mỗi trường hợp ta sẽ xây dựng một công thức toán học để tính ra hệ số mảng AF (Array Factor) của mảng ăng-ten theo một hướng bất kỳ được xác định bởi góc phương vị “phi” (azimuth angle, 𝛷) và góc độ cao “theta” (elevation angle, 𝜃) (xem Hình 1). Kết hợp AF của mảng ăng-ten với độ định hướng D (Directivity) của các ăng-ten thành phần ta có thể tính được độ định hướng của cả mảng ăng-ten.

em_coordinate_spherical

Hình 1: Hệ toạ độ cầu (r,𝛷, 𝜃) dùng trong phân tích hoạt động của ăng-ten và mảng ăng-ten.

Một khi tìm được công thức AF(𝜃, 𝛷) thì bài toán xem như đã được giải xong. Việc còn lại chỉ là vẽ các đường cong biểu thị hệ số mảng và độ định hướng theo 𝜃 và 𝛷, hay còn gọi là đồ thị bức xạ (radiation pattern), để ta có thể thấy được các hướng chính (main lobe), hướng phụ (side lobe) và các hướng khác như back lobe, grating lobe. Đây là lúc mà các chương trình máy tính trở nên hữu dụng để tạo ra những đồ thị đẹp và chính xác bởi vì các công thức cần vẽ thường khá phức tạp. Ta có thể dùng MATLAB hay, đơn giản hơn, dùng một phần mềm vẽ hàm số nào đó.

Các chương trình tính và vẽ AF của mảng ăng-ten cũng khá phổ biến. Trên trang chia sẻ của MATLAB chắc có không dưới một tá chương trình như vậy. Giáo sư Balanis (tác giả cuốn Antenna Theory mà hầu như ai học về ăng-ten cũng biết) cũng có các chương trình mô phỏng mảng ăng-ten dưới dạng MATLAB cũng như Java applet. Nhìn chung, những chương trình này cho phép ta mô phỏng các mảng ăng-ten trong điều kiện lý tưởng: các tín hiệu vào ăng-ten có cường độ bằng nhau và pha tăng một cách tuyến tính (xem Hình 2).

antenna_array_regular


Hình 2: Ví dụ về một mảng ăng-ten 2 chiều thoả mãn các điều kiện để có thể tính được AF bằng cách nhân AF của 2 mảng một chiều: 1) Các ăng-ten phải cách đều nhau trên hai hướng x và y. 2) Các tín hiệu vào ăng-ten phải có cường độ bằng nhau và pha tăng tuyến tính trên mỗi hướng. Trong ví dụ này cường độ tín hiệu bằng a, pha tăng theo hướng x bằng 𝛼, và pha tăng theo hướng y bằng 𝛽.

Trong thực tế khi xây dựng các mảng ăng-ten, nhất là các “phased array”, các tín hiệu vào/ra mỗi ăng-ten sẽ được xử lý (khuyếch đại và điều chỉnh pha hay độ trễ) bởi các mạch điện khác nhau. Kết quả là các tín hiệu này sẽ có cường độ và pha không lý tưởng nữa – cường độ không còn bằng nhau và pha không còn tăng tuyến tính – do các mạch điện có đáp ứng khác nhau ở các tần số và pha khác nhau. Trong điều kiện không lý tưởng như vậy, mảng ăng-ten sẽ thay đổi như thế nào? Để tìm hiểu điều này ta cần một chương trình có khả năng mô phỏng mảng ăng-ten với các tín hiệu không lý tưởng.

Chương trình mô phỏng 3D Antenna Array

Ngoài tính năng tính và vẽ AF của một mảng ăng-ten, chương trình 3D Antenna Array còn có thêm các tính năng sau:

  • Tính và vẽ đồ thị bức xạ của một phased-array khi biết độ phân giải của mạch tạo độ lệch pha (phase shifter).
  • Mô phỏng ảnh hưởng của các sai số về cường độ và pha của các tín hiệu vào/ra các ăng-ten lên đồ thị bức xạ của mảng ăng-ten.
  • Tính và vẽ đồ thị bức xạ của mảng ăng-ten với các ăng-ten thành phần là đẳng hướng (isotropic), Hertzian dipole, hay half-wave dipole.

Chương trình 3D Antenna Array được viết bằng Java nên ta cần phải cài đặt Java Runtime Environment (JRE) trước khi chạy chương trình. Có thể download chương trình đã được biên dịch (AntennaArray.zip) về máy tính có cài JRE, xả nén và double-click lên file AntennaArray.jar để khởi động ứng dụng. Tập tin JAR đã được chạy thử thành công trên WinXP 32-bit và MacOS X. Trong trường hợp tập tin JAR không chạy được do không tương thích với hệ điều hành thì có thể download mã nguồn (NetBean project) tại đây và biên dịch lại.

Thiết lập các thông số của mảng ăng-ten

Chương trình có tên “3D Antenna Array” là vì nó có khả năng mô phỏng mảng ăng-ten sắp xếp trong không gian 3 chiều (nghĩa là các ăng-ten có thể được sắp xếp trên cả 3 hướng x, y, z) chứ không phải vì một trong những tính năng của chương trình là vẽ đồ thị bức xạ trong phối cảnh 3D. Chẳng hạn ta có thể mô phỏng một mảng ăng-ten 3x4x5 bao gồm 5 lớp (xếp chồng lên nhau theo chiều thẳng đứng, chiều z), mỗi lớp là một mảng hai chiều có 4 hàng (chiều y) và 3 cột (chiều x). Tính năng 3D này đặc biệt hữu dụng vì nó cho phép ta mô phỏng các mảng 2 chiều trên các mặt phẳng khác nhau. Ví dụ mảng 3x4x1 là mảng nằm trên mặt xy, mảng 3x1x5 là mảng nằm trên mặt xz, và mảng 1x4x5 là mảng nằm trên mặt yz.

antenna_array_program_config

Hình 3: Thiết lập cấu hình của mảng ăng-ten.

Các thông số về mảng ăng-ten được thiết lập trong phần “Array configuration” như ví dụ trong Hình 3:

  • Số lượng ăng-ten trên mỗi hướng được xác định trong cột “# antennae”. Trong Hình 3, ta thiết lập một mảng ăng-ten 3 chiều có kích thước 3x4x5.
  • Khoảng cách giữa các ăng-ten được thiết lập trong cột “d/𝜆” và được tính bằng đơn vị bước sóng (lambda, 𝜆). Ví dụ như trong Hình 3, trên phương x ta có d/𝜆 = 0.5 nghĩa là các ăng-ten cách nhau một khoảng d = 0.5𝜆 = nửa bước sóng.
  • Pha của các tín hiệu vào/ra các ăng-ten kế tiếp nhau trên mỗi phương sẽ lệch nhau một lượng bằng 𝛥𝜑. Trong Hình 3, các ăng-ten kế tiếp nhau trên phương x sẽ có tín hiệu lệch pha nhau 10 độ. Cường độ của các tín hiệu của các ăng-ten được mặc định là bằng nhau.

Chương trình hiển thị đồ thị bức xạ của mảng ăng-ten trên ba đồ thị: polar, XY, và 3D (xem Hình 4). Các đồ thị này được tự động cập nhật khi các thông số của mảng ăng-ten thay đổi cho phép người dùng theo dõi ảnh hưởng của các thông số lên đồ thị bức xạ của mảng ăng-ten một cách trực quan.

antenna_array_program

Hình 4: Giao diện chương trình 3D Antenna Array với 3 đồ thị (polar, 3D, và XY) trình bày độ định hướng (Directivity) của mảng ăng-ten.

Mô phỏng phased array

Phased array là mảng ăng-ten mà hướng chính (main lobe) của nó có thể được điều khiển bằng cách thay đổi pha của tín hiệu tại các ăng-ten. Thông thường pha của các tín hiệu được điều khiển bởi các bộ dịch pha (phase shifter: mạch điều khiển pha của tín hiệu vào/ra các ăng-ten). Độ phân giải pha của bộ dịch pha sẽ quyết định khả năng điều chỉnh hướng chính và độ bao phủ (coverage) của mảng ăng-ten.

Ví dụ trong Hình 5 (a, b, và c) dưới đây minh họa tính năng mô phỏng phased array của chương trình 3D Antenna Array. Sau khi nhập các thông số về kích thước của mảng ăng-ten vào phần “Array configuration” ta sẽ thiết lập các thông số của phased array trong phần “Phase scanning”:

  • Chọn một hướng để thay đổi pha của tín hiệu vào các ăng-ten, có thể là x, y, hoặc z. Trong trường hợp này vì mảng ăng-ten là một chiều trên trục x nên ta chọn hướng thay đổi pha là x.
  • Chọn độ phân giải của các bộ dịch pha bằng cách chọn số pha mà mỗi bộ dịch pha có thể tạo ra trong một chu kỳ 360 độ. Chẳng hạn như trong ví dụ này, bộ dịch pha có thể tạo ra 8 pha cách đều nhau nên độ phân giải sẽ là 360/8 = 45 độ. Điều này cũng có nghĩa là mảng ăng-ten sẽ có thể tạo ra 8 đồ thị bức xạ khác nhau.
  • Khi nhấn nút “Scan”, chương trình sẽ vẽ đồ thị bức xạ của mảng ăng-ten cho tất cả các độ lệch pha có thể tạo ra được từ bộ dịch pha. Sau đó, nếu các thông số về mảng ăng-ten hay thông số về pha của tín hiệu được thay đổi thì các đồ thị bức xạ sẽ được tự động cập nhật. Chương trình sẽ quay trở lại chế độ mô phỏng mảng ăng-ten thông thường khi nhấn nút “Clear”.
antenna_array_scan_config

Hình 5a: Mảng ăng-ten được phân tích là mảng một chiều với 8 ăng-ten nằm trên trục x. Khoảng cách giữa hai ăng-ten kề nhau là nửa bước sóng (d/𝜆 = 0.5). Các bộ dịch pha có khả năng tạo ra 8 độ lệch pha khác nhau (độ phân giải là 45 độ).

antenna_array_scan_polar

Hình 5b: Đồ thị polar cho thấy hướng chính của mảng ăng-ten (khi các ăng-ten là đẳng hướng) có thể được quét (scan) để thu/phát tín hiệu từ các hướng khác nhau tuỳ theo độ lệch pha giữa các ăng-ten.

Hình 5c: Đồ thị XY cho thấy khi kết hợp 3-dB beamwidth của tất cả các hướng chính lại với nhau thì 3-dB beamwidth của cả mảng ăng-ten là 360 độ. Nói cách khác, với độ phân giải pha của các bộ dịch pha bằng 45 độ thì mảng ăng-ten này có thể bao quát mọi hướng thu/phát nếu các ăng-ten là đẳng hướng. Tỷ lệ front-to-back của mảng ăng-ten vào khoảng 12.5dB.

Mô phỏng Monte-Carlo

Chức năng mô phỏng Monte-Carlo cho phép ta xem xét ảnh hưởng của các sai số về cường độ và pha của các bộ dịch pha. Các hình dưới đây trình bày một ví dụ về tính năng này.

antenna_array_mc_config

Hình 6a: Mảng ăng-ten được xem xét là mảng một chiều với 9 ăng-ten nằm trên trục x. Khoảng cách giữa hai ăng-ten kề nhau là 1/4 bước sóng (d/𝜆 = 0.25). Độ lệch pha (lý tưởng) giữa các tín hiệu tại các ăng-ten là 0 độ.

antenna_array_mc

Hình 6b: Tín hiệu vào các ăng-ten có công suất (cường độ) sai lệch nhau trong khoảng -3 dB đến +3dB và sai số pha trong khoảng -10 độ đến +10 độ. Số lượng mô phỏng Monte-Carlo là 100 lần.

antenna_array_mc_polar

Hình 6c: Đồ thị bức xạ của mảng ăng-ten trong mô phỏng Monte-Carlo (những đường màu hồng) so với đồ thị bức xạ của cùng mảng ăng-ten nhưng có các tín hiệu vào lý tưởng (đường màu xanh).

antenna_array_mc_xy

Hình 6d: Đồ thị bức xạ của mảng ăng-ten trong mô phỏng Monte-Carlo.

Mô phỏng đồ thị bức xạ của mảng ăng-ten khi các ăng-ten thành phần không phải là đẳng hướng

Một trong những sơ sót thường thấy khi phân tích hoạt động mảng ăng-ten là việc không đánh giá đúng độ ảnh hưởng của đồ thị bức xạ của từng ăng-ten thành phần lên đồ thị bức xạ của mảng ăng-ten. Điều này xảy ra là vì ta thường tập trung vào hệ số mảng của mảng ăng-ten mà bỏ qua độ định hướng của từng ăng-ten thành phần, nói cách khác ta xem như các ăng-ten thành phần là đẳng hướng. Trong thực tế thì ta không có ăng-ten đẳng hướng và điều này làm cho đồ thị bức xạ của mảng ăng-ten rất khác với hệ số mảng của mảng ăng-ten, nhất là ở những góc “null” của ăng-ten (là góc mà ăng-ten không thu/phát được).

Để giảm thiểu sơ sót này, chương trình 3D Antenna Array tích hợp khả năng mô phỏng mảng ăng-ten với đồ thị bức xạ của một số ăng-ten tiêu biểu. Trong phần “Antenna element” ta có thể chọn loại ăng-ten thành phần cho mảng ăng-ten đang xem xét (xem Hình 7a). Khi ô “Enable” được chọn thì đồ thị bức xạ của mảng ăng-ten sẽ bao gồm cả đồ thị bức xạ của ăng-ten thành phần được chọn. Còn khi ô “Enable” không được chọn thì đồ thị bức xạ của ăng-ten thành phần sẽ không được tính đến (tương đương với việc chọn ăng-ten thành phần là đẳng hướng). Khi đó đồ thị được vẽ sẽ là hệ số mảng AF của mảng ăng-ten.

antenna_array_element_selection

Hình 7a: Chọn loại ăng-ten để xây dựng mảng ăng-ten.

Ta có thể lấy lại ví dụ về phased array đã trình bày trong Hình 5 để minh hoạ cho ảnh hưởng của đồ thị bức xạ của các ăng-ten thành phần lên đồ thị bức xạ của cả mảng ăng-ten.

Trước tiên ta thiết lập mảng ăng-ten một chiều với 8 ăng-ten nằm cách nhau một nửa bước sóng trên trục x và các bộ dịch pha có độ phân giải 45 độ. Sau đó ta chọn loại ăng-ten là “Hertzian dipole in x-direction” (xem Hình 7b) và nhấn nút “Scan” để vẽ các đồ thị bức xạ của phased array.

antenna_array_scan_config_enable_radiation_pattern

Hình 7b – Cấu hình phased array với các ăng-ten thành phần là các Hertzian dipole nằm theo trục x.

Nếu ta bỏ dấu chọn khỏi ô “Enable” thì ta sẽ được đồ thị bức xạ giống hệt như trong Hình 5b và 5c. Đó chính là hệ số mảng của mảng ăng-ten. Nếu ô “Enable” được chọn thì ta sẽ có các đồ thị bức xạ như trong Hình 7c và 7d. Ta có thể thấy với các ăng-ten thành phần là Hertzian dipole nằm theo trục x thì phased array mà ta đang xem xét sẽ không thể thu phát ở góc 𝜃 = ±90 độ. Điều này là do các ăng-ten thành phần không thể thu phát được ở góc này. Ta có thể vẽ đồ thị bức xạ của một Hertzian dipole theo trục x, bằng cách tạo một mảng ăng-ten chỉ có 1 thành phần, để thấy ăng-ten này có các null ở góc 𝜃 = ±90 độ (Hình 7e).

antenna_array_scan_polar_with_element

Hình 7c – Đồ thị bức xạ của phased array khi có tính đến đồ thị bức xạ của các ăng-ten thành phần. Không có hướng chính nào được tạo ra ở các góc 90 độ và 270 độ (hay -90 độ).

antenna_array_scan_xy_with_element

Hình 7d – Đồ thị bức xạ của phased array khi có tính đến đồ thị bức xạ của các ăng-ten thành phần. 3-dB beamwidth của phased array chỉ bao phủ các hướng trong khoảng [-180,-145], [-35, 35], và [145,180].

antenna_array_hertzian_x

Hình 7e – Đồ hị bức xạ của một Hertzian dipole trên trục x cho thấy ăng-ten này không thu/phát trên hướng 𝜃 = ±90 độ. Do đó bất kỳ mảng ăng-ten nào xây dựng từ ăng-ten này cũng không thể thu/phát trên hướng 𝜃 = ±90 độ. Ngoài ra độ định hướng của ăng-ten này cũng làm giảm 3-dB beamwidth của mảng ăng-ten.

Công thức tính
Chương trình 3D Antenna Array sử dụng công thức tính AF trình bày trong cuốn Electromagnetic Waves and Antennas của Sophocles J. Orfanidis (xem Chương 19).

antenna_array_af

Công thức này cho phép tính AF của một mảng ăng-ten với các ăng-ten có thể được đặt ở vị trí bất kỳ trong không gian 3 chiều (không nhất thiết phải cách đều nhau hay trên cùng một mặt phẳng) và tín hiệu vào các ăng-ten có thể có cường độ và pha bất kỳ. Vị trí của các ăng-ten được xác định bởi các vec-tơ di. Cường độ và pha của tín hiệu được xác định bởi các số phức ai.


  • Biên tập: Nguyễn Ngọc Mai Khanh
Advertisement

18 comments

  1. tung

    xin link download phần mềm này

  2. Tạ Minh Chiến

    Link ở trong bài đó bạn.

    • Mình down về giải nén toàn file .jar,không biết cài đặt thế nào hả bạn?

      • Tạ Minh Chiến

        Bạn double-click lên file .jar để chạy. Mình đã chạy thử trên WinXP, Win7, MacOS X. Nếu vẫn không chạy được thì bạn xem thử máy tính có cài Java Runtime Environment (JRE) chưa và cài đặt nếu cần thiết. Link cài đặt JRE có trong bài hoặc từ java.com.

  3. Có ai cần đo ăng ten (trường gần và mô hình bức xạ trường xa) không ah, bên em cung cấp giải pháp khá hay của EMscan, đã được rất nhiều hãng điện tử nổi tiếng xử dụng cho phòng lab của họ
    http://www.emscan.com/rfxpert/index.cfm

  4. có video mô phỏng anten pifa ko ạ, ko biết phải cài đặt các tham số như thế nào cả

  5. em chào anh a
    anh có thể cho em công thức tính cánh sóng ,mà anh sử dụng trong phần mêm dược ko ạ? em cảm ơn anh a beloza@mail.ru

    • Tạ Minh Chiến

      Công thức tính anh ghi ở cuối bài viết nhưng do công thức này rất tổng quát (áp dụng được cho mọi cấu hình mảng ăng-ten) nên nó chỉ phù hợp để tính toán bằng phần mềm thôi.

  6. Ẩn danh

    neu anh ten dang 3d thi ap dung the nao anh!!!

    • Tạ Minh Chiến

      Phần mềm này anh viết để tính AF cho mảng ăng-ten. Công thức tính AF thì không liên quan gì đến loại ăng-ten nên nó có thể áp dụng cho tất cả các loại ăng-ten.

  7. em đang mô phỏng trên matlab và gặp một chút vấn đề khi thay đổi một tham số thì đồ thị không thay đôi ngay. nếu có thể anh giúp em được ko ạ?

    • Tạ Minh Chiến

      Chà. Anh không có MATLAB nhưng nếu em gửi code thì anh có thể đọc thử xem có tìm ra vấn đề gì không.

      • Anh ơi, Cho em hỏi ạ, giờ em dùng win 10 chạy chường trình của anh kiểu gì vậy ạ, em không tìm thấy file chạy chương trình ạ.

      • Tạ Minh Chiến

        Cách chạy chương trình có trong bài viết rồi em. Khi chạy trên Windows 10 có lẽ em sẽ cần cài đặt bản JRE 32-bit. Tuy nhiên anh chưa chạy thử trên Windows 10 bao giờ nên anh cũng không chắc lắm.

  8. HÌnh như win 10 ko chạy được anh ạ. Anh có code mathlab không ạ. Em đang muốn mô phỏng 3D anten 2 phần tử mà không biết cách làm như thế nào ạ. Anh chỉ em với được không ạ.Em cảm ơn ạ.

    • Tạ Minh Chiến

      Anh không rõ em muốn làm gì khi em nói “mô phỏng 3D anten 2 phần tử”. Nếu em muốn mô phỏng radiation pattern của một anten dựa trên cấu trúc 3D của nó thì em có thể dùng các phần mềm mô phỏng điện từ trường (như HFSS chẳng hạn). Chương trình của anh chỉ tính hệ số mảng chứ không làm được EM simulation.

Trả lời

Điền thông tin vào ô dưới đây hoặc nhấn vào một biểu tượng để đăng nhập:

WordPress.com Logo

Bạn đang bình luận bằng tài khoản WordPress.com Đăng xuất /  Thay đổi )

Facebook photo

Bạn đang bình luận bằng tài khoản Facebook Đăng xuất /  Thay đổi )

Connecting to %s

%d người thích bài này: