Why does MATLAB hang when I attempt to use the impedance function?

3 views (last 30 days)
After creating a patchMicrostrip object, I am attempting to determine the input impedance of the antenna across a range of frequencies using the impedance function:
myPM = patchMicrostrip( ... );
impedance( myPM, linspace( 2e9, 6e9, 11) );
However, after executing this code, a progress bar appears saying "Calculating solution for 11 frequency points" , but it does not seem to make any progress (even after a long period of time). Why is this?

Accepted Answer

MathWorks Support Team
MathWorks Support Team on 7 May 2021
Edited: MathWorks Support Team on 7 May 2021
The lack of progress for the frequency sweep is due to the large mesh. The structure is discretized into triangles (for the surfaces) and tetrahedra (for the volume) before being solved. Given the range of frequencies provided for the analysis, the mesher picks the highest frequency to discretize, in this case 6 GHz. If the mesh becomes very large, this will impact both the amount of memory (RAM) needed as well as time to compute the solution. To work around this, here are a couple of suggestions:
a) Prior to running any analysis, use the memoryEstimate function to get an estimate on the RAM needed for solving at a particular frequency. Use help to learn more about this function:
 
>> help memoryEstimate
b) Manual meshing is also an option. Please refer to the following documentation page for more information:
 

More Answers (0)

Categories

Find more on Installed Antenna and Large Structures in Help Center and File Exchange

Products


Release

R2019b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!