91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

全面介紹主調(diào)模塊,以及GUI模塊的編寫

iIeQ_mwrfnet ? 來源:老貓電磁館 ? 作者:況澤靈 ? 2021-06-30 15:23 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

摘要:本節(jié)主要介紹主調(diào)模塊,以及GUI模塊的編寫。

主調(diào)模塊

終于到了主調(diào)模塊了,之前的章節(jié)主要介紹了參數(shù)計算,波導(dǎo)查值,以及HFSS封裝和調(diào)用等,所有準(zhǔn)備工作已就緒,只差一個“主體”將這些模塊調(diào)用起來,實現(xiàn)這個功能的便是主調(diào)模塊main.py。

這一步的編寫相對比較簡單,按我個人習(xí)慣,還是采用了面向?qū)ο蟮?a href="http://m.makelele.cn/v/tag/1315/" target="_blank">編程思路,寫一個叫Horn的對象,首先通過對象的初始化功能將輸入?yún)?shù)導(dǎo)入進(jìn)來,然后調(diào)用“波導(dǎo)查值”模塊確定波導(dǎo)尺寸、“參數(shù)計算”模塊計算喇叭尺寸,再調(diào)用“HFSS調(diào)用模塊”,通過規(guī)定一系列建模動作(如第三節(jié)所述),完成HFSS建模和運算。

示意代碼如下,如果對于建模的動作有不太明白了,請看上一篇文章的講解。

import paraCalc

import wg

import sim

class Horn:

def __init__(self, freq, HPE, HPH, wg_name=None):

self.freq = freq

self.HPE = HPE

self.HPH = HPH

self.wg_name = wg_name

self.wg_a, self.wg_b, self.horn_a, self.horn_b, self.horn_l = None, None, None, None, None

def wg_size(self):

if self.wg_name is None:

self.wg_a, self.wg_b = wg.check_by_freq(self.freq)

else:

self.wg_a, self.wg_b = wg.check_by_name(self.wg_name)

return self.wg_a, self.wg_b

def para(self):

self.wg_size()

if (self.wg_a or self.wg_b) is None:

print(‘Input error!’)

else:

self.horn_a, self.horn_b, self.horn_l = paraCalc.calc(self.freq, self.HPE, self.HPH, self.wg_a, self.wg_b)

def realize_in_hfss(self):

h = sim.HFSS()

# 設(shè)置變量

h.set_variable(‘wg_a’, self.wg_a)

h.set_variable(‘wg_b’, self.wg_b)

h.set_variable(‘wg_l’, self.wg_a*1.5)

h.set_variable(‘horn_a’, self.horn_a)

h.set_variable(‘horn_b’, self.horn_b)

h.set_variable(‘horn_l’, self.horn_l)

h.set_variable(‘wg_t’, 0.5)

h.set_variable(‘a(chǎn)b’, 75/self.freq)

# 波導(dǎo)內(nèi)腔

h.create_centered_rectangle(‘wg_a’, ‘wg_b’, 0, ‘wg_in’)

h.create_centered_rectangle(‘wg_a’, ‘wg_b’, ‘wg_l’, ‘wg_in_’)

h.connect(‘wg_in’, ‘wg_in_’)

# 喇叭內(nèi)腔

h.create_centered_rectangle(‘wg_a’, ‘wg_b’, ‘wg_l’, ‘horn_in’)

h.create_centered_rectangle(‘horn_a’, ‘horn_b’, ‘wg_l+horn_l’, ‘horn_in_’)

h.connect(‘horn_in’, ‘horn_in_’)

# 波導(dǎo)外形

h.create_centered_rectangle(‘(wg_a+wg_t*2)’, ‘(wg_b+wg_t*2)’, ‘-wg_t’, ‘wg’)

h.create_centered_rectangle(‘(wg_a+wg_t*2)’, ‘(wg_b+wg_t*2)’, ‘wg_l’, ‘wg_’)

h.connect(‘wg’, ‘wg_’)

# 喇叭外形

h.create_centered_rectangle(‘(wg_a+wg_t*2)’, ‘(wg_b+wg_t*2)’, ‘wg_l’, ‘horn’)

h.create_centered_rectangle(‘(horn_a+wg_t*2)’, ‘(horn_b+wg_t*2)’, ‘horn_l+wg_l’, ‘horn_’)

h.connect(‘horn’, ‘horn_’)

# 布爾運算生成喇叭,然后設(shè)為PEC

h.unite(‘horn’, ‘wg’)

h.unite(‘horn_in’, ‘wg_in’)

h.subtract(‘horn’, ‘horn_in’)

h.set_material(‘horn’)

# 生成區(qū)域并賦予輻射邊界

h.create_region(‘a(chǎn)b’)

h.assign_radiation_region()

h.insert_radiation_setup()

# 設(shè)置端口

h.create_centered_rectangle(‘wg_a’, ‘wg_b’, 0, ‘port’)

h.assign_port(‘port’)

h.insert_analysis_setup(self.freq)

# 創(chuàng)建報告

h.create_reports()

# 保存工程并運行

h.save_prj()

h.run()

if __name__ == ‘__main__’:

f, E, H = 10, 30, 20

a_horn = Horn(f, E, H)

a_horn.realize_in_hfss()

以上代碼可能沒有太多需要解釋的,可以看到的是,定義好HFSS接口后,調(diào)用過程就很輕松愉快了。

圖形交互界面模塊

開篇提到過,Python實現(xiàn)圖形界面的方法有很多,除了Tkinter屬于自帶包外,其他著名的包如PyQt、wxPython等都需要額外安裝,考慮到我們的小程序功能單一,界面也不需要太花哨,采用Python自帶的Tkinter是一種較為經(jīng)濟快捷的選擇。

由于第一次寫界面,代碼質(zhì)量可能有點差,實現(xiàn)效果也不怎么樣,好在我們要做的東西功能簡單,不會影響使用。(自我安慰。。。)

不廢話,直接上代碼。

from tkinter import Tk, Label, StringVar, Entry, Button, Frame, TOP

import main

root = Tk()

root.title(‘最佳喇叭計算 by kuangzl’)

root.geometry(‘420x280’)

root.resizable(width=False, height=False)

tip = Label(root, text=‘由波束寬度計算喇叭尺寸,

使得該尺寸下增益最大化’, height=3,

font=(‘Microsoft YaHei UI’, 12, ‘italic’))

tip.pack(side=TOP)

frm = Frame(root)

frm.pack()

Label(frm, text=‘中頻(GHz):’).grid(row=0, column=0)

Label(frm, text=‘E面(deg):’).grid(row=1, column=0)

Label(frm, text=‘H面(deg):’).grid(row=2, column=0)

Label(frm, text=‘波導(dǎo)寬(mm):’).grid(row=0, column=2)

Label(frm, text=‘波導(dǎo)窄(mm):’).grid(row=1, column=2)

Label(frm, text=‘喇叭寬(mm):’).grid(row=2, column=2)

Label(frm, text=‘喇叭窄(mm):’).grid(row=3, column=2)

Label(frm, text=‘喇叭長(mm):’).grid(row=4, column=2)

def calc():

f = float(v1.get())

E = float(v2.get())

H = float(v3.get())

horn = main.Horn(f, E, H)

horn.para()

v4.set(horn.wg_a)

v5.set(horn.wg_b)

v6.set(horn.horn_a)

v7.set(horn.horn_b)

v8.set(horn.horn_l)

def hfss():

f = float(v1.get())

E = float(v2.get())

H = float(v3.get())

horn = main.Horn(f, E, H)

horn.para()

horn.realize_in_hfss()

v1 = StringVar()

Entry(frm, textvariable=v1, width=8).grid(row=0, column=1, padx=10, pady=5)

v2 = StringVar()

Entry(frm, textvariable=v2, width=8).grid(row=1, column=1, padx=10, pady=5)

v3 = StringVar()

Entry(frm, textvariable=v3, width=8).grid(row=2, column=1, padx=10, pady=5)

v4 = StringVar()

Label(frm, textvariable=v4, width=10).grid(row=0, column=3)

v5 = StringVar()

Label(frm, textvariable=v5, width=10).grid(row=1, column=3)

v6 = StringVar()

Label(frm, textvariable=v6, width=10).grid(row=2, column=3)

v7 = StringVar()

Label(frm, textvariable=v7, width=10).grid(row=3, column=3)

v8 = StringVar()

Label(frm, textvariable=v8, width=10).grid(row=4, column=3)

Button(frm, text=‘calc’, command=calc).grid(row=4, column=0)

Button(frm, text=‘hfss’, command=hfss).grid(row=4, column=1)

root.mainloop()

這段代碼實現(xiàn)的效果是這樣的:

小結(jié)

至此,該小程序已經(jīng)完成了九成以上,作為自用已經(jīng)毫無問題了!但如果還想將程序分享出來,則須打包成可執(zhí)行文件(如exe),這一步貌似很簡單,卻有不少的坑,我將在下一節(jié)詳細(xì)介紹。

本篇即到此為止,下一篇將會是終篇,謝謝各位觀看(*^_^*)!

編輯:jq

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 封裝
    +關(guān)注

    關(guān)注

    128

    文章

    9258

    瀏覽量

    148691
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4968

    瀏覽量

    74009
  • hfss
    +關(guān)注

    關(guān)注

    32

    文章

    168

    瀏覽量

    51754
  • GUI
    GUI
    +關(guān)注

    關(guān)注

    3

    文章

    697

    瀏覽量

    43486

原文標(biāo)題:用Python實現(xiàn)喇叭天線設(shè)計小工具(四)

文章出處:【微信號:mwrfnet,微信公眾號:微波射頻網(wǎng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    SiC MOSFET模塊與專用驅(qū)動方案全面替代傳統(tǒng)IGBT模塊的系統(tǒng)性分析

    工業(yè)功率半導(dǎo)體技術(shù)變革研究報告:SiC MOSFET模塊與專用驅(qū)動方案全面替代傳統(tǒng)IGBT模塊的系統(tǒng)性分析 全球能源互聯(lián)網(wǎng)核心節(jié)點賦能者-BASiC Semiconductor基本半導(dǎo)體之一
    的頭像 發(fā)表于 02-16 06:56 ?243次閱讀
    SiC MOSFET<b class='flag-5'>模塊</b>與專用驅(qū)動方案<b class='flag-5'>全面</b>替代傳統(tǒng)IGBT<b class='flag-5'>模塊</b>的系統(tǒng)性分析

    工業(yè)級 LIN 收發(fā)器、LIN 模塊優(yōu)選:德國 Lipowsky LIN 線產(chǎn)品介紹

    本文將全面解析 Lipowsky 的 LIN 線產(chǎn)品,深入介紹虹科 Baby-LIN 系列 LIN 收發(fā)器與 LIN 模塊的技術(shù)特點、型號選型及行業(yè)應(yīng)用,為汽車電子研發(fā)、測試人員提供專業(yè)的參考依據(jù)。
    的頭像 發(fā)表于 02-10 17:09 ?120次閱讀
    工業(yè)級 LIN 收發(fā)器、LIN <b class='flag-5'>模塊</b>優(yōu)選:德國 Lipowsky LIN 線產(chǎn)品<b class='flag-5'>介紹</b>

    WIFI6 SOC模塊介紹解析

    在物聯(lián)網(wǎng)和智能終端設(shè)備中, WiFi 模塊 承擔(dān)著設(shè)備聯(lián)網(wǎng)通信的重要功能。隨著終端產(chǎn)品形態(tài)不斷演進(jìn),系統(tǒng)對集成度、穩(wěn)定性以及開發(fā)效率提出了更高要求,傳統(tǒng)“主控芯片 + WiFi 模塊”的方案逐漸向
    的頭像 發(fā)表于 01-29 16:49 ?248次閱讀
    WIFI6 SOC<b class='flag-5'>模塊</b><b class='flag-5'>介紹</b>解析

    DA14695MOD:高效藍(lán)牙5.2模塊全面解析

    DA14695MOD:高效藍(lán)牙5.2模塊全面解析 在當(dāng)今的物聯(lián)網(wǎng)和無線通信領(lǐng)域,藍(lán)牙技術(shù)無疑扮演著至關(guān)重要的角色。Renesas推出的DA14695MOD SmartBond Bluetooth
    的頭像 發(fā)表于 12-29 13:55 ?374次閱讀

    探索Type 2GT LoRa模塊:設(shè)計與應(yīng)用的全面指南

    探索Type 2GT LoRa模塊:設(shè)計與應(yīng)用的全面指南 在物聯(lián)網(wǎng)(IoT)蓬勃發(fā)展的今天,低功耗廣域網(wǎng)(LPWAN)技術(shù)成為了連接設(shè)備的關(guān)鍵。LoRa作為LPWAN技術(shù)的代表之一,以其遠(yuǎn)距離
    的頭像 發(fā)表于 12-16 16:30 ?396次閱讀

    PCB嵌入式功率模塊介紹

    電子發(fā)燒友網(wǎng)站提供《PCB嵌入式功率模塊介紹.docx》資料免費下載
    發(fā)表于 09-09 16:19 ?3次下載

    傾佳電子推動SiC模塊全面替代IGBT模塊的技術(shù)動因

    、電力電子設(shè)備和新能源汽車產(chǎn)業(yè)鏈。傾佳電子聚焦于新能源、交通電動化和數(shù)字化轉(zhuǎn)型三大方向,并提供包括IGBT、SiC MOSFET、GaN等功率半導(dǎo)體器件以及新能源汽車連接器。? 傾佳電子楊茜致力于推動國產(chǎn)SiC碳化硅模塊在電力電子應(yīng)用中
    的頭像 發(fā)表于 09-07 14:57 ?2321次閱讀
    傾佳電子推動SiC<b class='flag-5'>模塊</b><b class='flag-5'>全面</b>替代IGBT<b class='flag-5'>模塊</b>的技術(shù)動因

    傾佳電子SiC碳化硅MOSFET功率模塊在電力電子應(yīng)用中對IGBT模塊全面替代

    、電力電子設(shè)備和新能源汽車產(chǎn)業(yè)鏈。傾佳電子聚焦于新能源、交通電動化和數(shù)字化轉(zhuǎn)型三大方向,并提供包括IGBT、SiC MOSFET、GaN等功率半導(dǎo)體器件以及新能源汽車連接器。? 傾佳電子楊茜致力于推動國產(chǎn)SiC碳化硅模塊在電力電子應(yīng)用中
    的頭像 發(fā)表于 09-05 08:36 ?2408次閱讀
    傾佳電子SiC碳化硅MOSFET功率<b class='flag-5'>模塊</b>在電力電子應(yīng)用中對IGBT<b class='flag-5'>模塊</b>的<b class='flag-5'>全面</b>替代

    BASiC_SiC MOSFET工業(yè)模塊產(chǎn)品介紹

    BASiC_SiC MOSFET工業(yè)模塊產(chǎn)品介紹
    發(fā)表于 09-01 16:02 ?0次下載

    BASiC_34mm SiC MOSFET模塊產(chǎn)品介紹

    BASiC_34mm SiC MOSFET模塊產(chǎn)品介紹
    發(fā)表于 09-01 15:24 ?0次下載

    國產(chǎn)電源模塊測試軟件功能應(yīng)用全面解析

    應(yīng)用方面進(jìn)行全面解析。 電源測試系統(tǒng) 核心功能解析: 多類型電源全面測試支持? 納米軟件電源測試系統(tǒng)能夠?qū)Χ喾N類型的電源進(jìn)行測試,包括DC-DC電源、AC-DC電源、開關(guān)電源、電源適配器等。針對不同類型的電源模塊,納米軟件
    的頭像 發(fā)表于 08-01 11:51 ?972次閱讀
    國產(chǎn)電源<b class='flag-5'>模塊</b>測試軟件功能應(yīng)用<b class='flag-5'>全面</b>解析

    無線充電發(fā)射模塊廠家

    本文主要介紹了無線充電發(fā)射模塊的技術(shù)特點和供應(yīng)商,包括功率轉(zhuǎn)換電路、控制芯片、線圈系統(tǒng)以及通信解調(diào)模塊。其中,無線充電發(fā)射模塊的核心構(gòu)成包括
    的頭像 發(fā)表于 07-03 08:38 ?811次閱讀
    無線充電發(fā)射<b class='flag-5'>模塊</b>廠家

    24PIN芯片 收發(fā)一體1×9光模塊介紹

    模塊介紹: 光模塊其實就是一個能將電信號轉(zhuǎn)化為光信號,由此加快數(shù)據(jù)傳輸效率的設(shè)備.他主要由:電芯片,光芯片以及光組件構(gòu)成的.總結(jié)來說,光模塊
    的頭像 發(fā)表于 06-12 17:10 ?1026次閱讀

    藍(lán)牙低功耗模塊的原理和應(yīng)用介紹

    隨著物聯(lián)網(wǎng)技術(shù)的快速發(fā)展,藍(lán)牙低功耗模塊在連接各種設(shè)備和傳輸數(shù)據(jù)方面發(fā)揮著重要作用。今天將為您介紹藍(lán)牙低功耗模塊的工作原理以及其廣泛的應(yīng)用領(lǐng)域。 藍(lán)牙低功耗
    的頭像 發(fā)表于 05-21 15:56 ?1225次閱讀

    國產(chǎn)SiC碳化硅功率模塊全面取代進(jìn)口IGBT模塊的必然性

    國產(chǎn)SiC模塊全面取代進(jìn)口IGBT模塊的必然性 ——傾佳電子楊茜 BASiC基本半導(dǎo)體一級代理傾佳電子(Changer Tech)-專業(yè)汽車連接器及功率半導(dǎo)體(SiC碳化硅MOSFET單管,SiC
    的頭像 發(fā)表于 05-18 14:52 ?1529次閱讀
    國產(chǎn)SiC碳化硅功率<b class='flag-5'>模塊</b><b class='flag-5'>全面</b>取代進(jìn)口IGBT<b class='flag-5'>模塊</b>的必然性