2024-ursi-nrsm-1265
Repository for code featured in "Machine Learning Assisted Optimization Methods for Automated Antenna Design"
Science Score: 67.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
✓DOI references
Found 4 DOI reference(s) in README -
✓Academic publication links
Links to: ieee.org -
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (9.8%) to scientific vocabulary
Repository
Repository for code featured in "Machine Learning Assisted Optimization Methods for Automated Antenna Design"
Basic Info
- Host: GitHub
- Owner: LC-Linkous
- License: gpl-2.0
- Language: Jupyter Notebook
- Default Branch: main
- Size: 1.52 MB
Statistics
- Stars: 4
- Watchers: 1
- Forks: 1
- Open Issues: 0
- Releases: 0
Metadata Files
README.md
2024-URSI-NRSM-1265
Repository for code featured in "Machine Learning Assisted Optimization Methods for Automated Antenna Design" presented at the 2024 United States National Committee of URSI National Radio Science Meeting (USNC-URSI NRSM), Boulder, CO, USA.
Table of contents
Requirements
This project is designed to run in Google Colab with Jupyter Notebook. You must have a Google account to run these tutorials as-is.
Library requirements for each tutorial may vary. Refer to a tutorial for the specific requirements.
How to Use
- To run, you will need to create a folder in your Google Drive, and add the dataset ('colabdatasetmicrostrip') and all tutorials into the same folder.
Dataset
There is one, cleaned dataset included in the repository. These data have been sampled from the larger AntennaCAT set for the purpose of demonstration of machine learning techniques. The set is unbalanced, with 2 classes having ~10k samples, and the third having ~7k.
Data in these sets are all simulated with copper ground planes, copper conductors, and with FR4 substrate (permitivity: 4.4). The first row in the csv file is the labels for each columns. Every row after that is data from one simulation.
In 'colabdatasetmicrostrip', there are 27026 simulation entries with 13 columns. The microstrip width is held constant at 3 mm for a 50 ohm impedence match. The gap between the strip and the patch is held constant at 1 mm.
The thirteen columns in the .cvs are: 1. "targetfreq": the target design frequency in Hz. There are 3 frequencies (classes): 1.5 GHz, 2.4 GHz, 5.8 GHz. 2. "$width": the width of the patch in mm. 3. "$length": the length of the patch in mm. 4. "$depth": the depth of the substrate in mm. 5. "$groundplane": the value in mm for the length and width of the ground plane square. 6. "$x0": the notch depth/feed point of the patch in mm. 7. "maxtotalgain": maximum total simulated gain in dB. 8. "maxtotaldirectivity": maximum total simulated directivity in dB. 9. "mins11f": the frequency for the lowest return loss value in dB (does not need to be the target frequency). This is not necessarily the target or local resonance. 10. "mins11dB": the lowest return loss value in dB for the frequency above. 11. "s11attarget": the value of the return loss at the target frequency in dB. 12. "localresonancef": the frequency of the closest resonance to the target resonance in Hz. 13. "localresonance_dB": the return loss of the local resonance in dB.
Tutorials
Tutorial 1: Google Colab and the Dataset
This tutorial covers using Google Colab, Jupyter Notebook, and the dataset in Google drive. If you have not used Jupyter Notebook with Google Colab, then this will show you how to mount your Google Drive and open .csv files for data processing. References for Colab and Jupyter Notebook are included.
Tutorial 2: Manipulating the Dataset and Filtering
Building off the first tutorial, this will discuss how to manipulate and filter the dataset. The data collected is from >26k simulations that used a parameter sweep for the CAD file dimensions. Not all parameter combinations results in valid antenna designs.
Tutorial 3: Support Vector Machines
Using data filtered for valid designs, Support Vector Machines (SVMs) are used to classify the data into different categories.
Tutorial 4: Neural Networks
Using data filtered for valid designs, Neural Networks (NNs) are used to classify the data into different categories.
Tutorial 5: Fuzzy Logic and Rule-Based Approaches
This tutorial does not use the full dataset because it requires a simulation loop in the current process. However, several examples for fuzzy classification and a rules-based approach are shown.
Resources
Resources used are cited in the individual notebooks. Other resources are for further reading or more information on a topic.
Tutorial 1: Google Colab and the Dataset
- https://jupyter.org/https://colab.research.google.com/?utm_source=scs-index
- https://jupyter.org/
- https://www.geeksforgeeks.org/how-to-use-gpu-in-google-colab/
- https://www.tutorialspoint.com/googlecolab/googlecolabusingfree_gpu.htm
- https://www.datacamp.com/tutorial/pandas-read-csv
- https://matplotlib.org/
- https://matplotlib.org/stable/plottypes/basic/scatterplot.html#sphx-glr-plot-types-basic-scatter-plot-py
Tutorial 2: Manipulating the Dataset
- https://www.geeksforgeeks.org/check-for-nan-in-pandas-dataframe/
- https://www.geeksforgeeks.org/split-pandas-dataframe-by-column-value/
Tutorial 3: Support Vector Machines
- https://www.geeksforgeeks.org/classifying-data-using-support-vector-machinessvms-in-python/
- https://towardsdatascience.com/support-vector-machines-explained-with-python-examples-cb65e8172c85
- https://www.kaggle.com/code/prashant111/svm-classifier-tutorial
- https://scikit-learn.org/stable/autoexamples/svm/plotiris_svc.html
- https://scikit-learn.org/stable/modules/svm.html
- https://scikit-learn.org/stable/modules/generated/sklearn.modelselection.traintest_split.html
Tutorial 4: Neural Networks
- https://en.wikipedia.org/wiki/Neuralnetwork(machine_learning)
- https://en.wikipedia.org/wiki/Multilayer_perceptron
- https://scikit-learn.org/stable/modules/generated/sklearn.neural_network.MLPClassifier.html
- https://www.geeksforgeeks.org/neural-networks-a-beginners-guide/
- https://realpython.com/python-ai-neural-network/
- https://towardsdatascience.com/first-neural-network-for-beginners-explained-with-code-4cfd37e06eaf
- https://machinelearningmastery.com/tutorial-first-neural-network-python-keras/ (not covered, but still cool)
Tutorial 5: Fuzzy Logic and Rule-Based Approaches
- https://en.wikipedia.org/wiki/Fuzzy_logic
- https://en.wikipedia.org/wiki/Fuzzycontrolsystem
- https://www.geeksforgeeks.org/common-operations-on-fuzzy-set-with-example-and-code/
- https://pythonhosted.org/scikit-fuzzy/autoexamples/plottippingproblemnewapi.html
Related Publications
L. Linkous and E. Topsakal, "Machine Learning Assisted Optimization Methods for Automated Antenna Design," 2024 United States National Committee of URSI National Radio Science Meeting (USNC-URSI NRSM), Boulder, CO, USA, 2024, pp. 377-378, doi: 10.23919/USNC-URSINRSM60317.2024.10464597.
L. Linkous, E. Karincic, J. Lundquist and E. Topsakal, "Automated Antenna Calculation, Design and Tuning Tool for HFSS," 2023 United States National Committee of URSI National Radio Science Meeting (USNC-URSI NRSM), Boulder, CO, USA, 2023, pp. 229-230, doi: 10.23919/USNC-URSINRSM57470.2023.10043119.
L. Linkous, J. Lundquist and E. Topsakal, "AntennaCAT: Automated Antenna Design and Tuning Tool," 2023 IEEE USNC-URSI Radio Science Meeting (Joint with AP-S Symposium), Portland, OR, USA, 2023, pp. 89-90, doi: 10.23919/USNC-URSI54200.2023.10289238.
How to Cite
Data and examples in this repository are from:
L. Linkous and E. Topsakal, "Machine Learning Assisted Optimization Methods for Automated Antenna Design," 2024 United States National Committee of URSI National Radio Science Meeting (USNC-URSI NRSM), Boulder, CO, USA, 2024, pp. 377-378, doi: 10.23919/USNC-URSINRSM60317.2024.10464597.
Owner
- Name: L. Linkous
- Login: LC-Linkous
- Kind: user
- Location: Richmond
- Company: VCU
- Repositories: 2
- Profile: https://github.com/LC-Linkous
Electrical Engineering Ph.D student
Citation (CITATION.cff)
cff-version: 1.2.0
authors:
- family-names: "Linkous"
given-names: "Lauren"
orcid: "https://orcid.org/0000-0001-9945-5125"
title: "2024-URSI-NRSM-1265"
version: 1.0
date-released: 2024-02-01
url: "https://github.com/LC-Linkous/2024-URSI-NRSM-1265"
preferred-citation:
type: conference-paper
authors:
- family-names: "Linkous"
given-names: "Lauren"
orcid: "https://orcid.org/0000-0001-9945-5125"
- family-names: "Topsakal"
given-names: "Erdem"
doi: "10.23919/USNC-URSINRSM60317.2024.10464597"
conference: "2024 United States National Committee of URSI National Radio Science Meeting (USNC-URSI NRSM)"
title: "Machine Learning Assisted Optimization Methods for Automated Antenna Design"
url: "https://ieeexplore.ieee.org/abstract/document/10464597"
year: 2024
GitHub Events
Total
- Watch event: 2
- Push event: 6
- Fork event: 1
Last Year
- Watch event: 2
- Push event: 6
- Fork event: 1