-
-
Notifications
You must be signed in to change notification settings - Fork 264
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
New example: Defining SOLT calibration standards. #663
Conversation
Great introduction and tutorial, thanks !
Interesting. Some have told me the opposite, that is, Open, Short, Load should be connected to the cables directly, not to the Thru. |
doc/source/examples/metrology/Creating Network Definitions for SOLT Calibration Standards.ipynb
Outdated
Show resolved
Hide resolved
doc/source/examples/metrology/Creating Network Definitions for SOLT Calibration Standards.ipynb
Outdated
Show resolved
Hide resolved
Thanks for pointing it out. I was confused by the "precision port adapter" mentioned in the Keysight 85033E manuals and thought it was the Thru standard and since it's always used I thought it's a flush Thru. On second thought, it was unrelated. The Thru is defined to be zero-length because there's no Thru standard in this cal kit to begin with. |
I just force-pushed a new commit. The transmission line attenuation section has been rewritten, the loops and polynomials are also removed is favor of numpy's broadcasting and Again, it's still a draft, all the code is still untested and the text has not been proofread. I'll keep working on it tomorrow. I just found Maury Microwave provides standard definitions in both Keysight and R&S format. |
BTW, why does a force push cause the action bot to remove the existing tag Calibration? Is it a bug in the build bot script? |
Still working on it. The calculation so far is still incorrect due to some typos in the code. But the progress so far looks promising. For verification, I'm now comparing my result with the Quite unexpectedly, I believe I have now found a bug in |
Found the reason - its documentation is wrong. The unit is actually in ohm/s but documented as Gohm/s (I've submitted a patch to that project). After correcting the order of magnitude, the loss calculated by Another mistake in the current version is the definition of loss. Apparently in the R&S, the loss is two-way loss, not one-way... |
I found the reason for the disagreement between the lumped "attenuation + time delay" model and the offset transmission line equations - you can't just model the phase shift as a pure time delay, they're not equivalent. The phase constant βl is not just I'll rewrite the guide and push a fixed version soon. |
Hello @biergaizi , |
Alternatively with |
@mhuser And then using that as the
My understanding is that the Keysight approach is explicitly made to avoid any specific assumption of any particular line length, dielectric constant or velocity factor. They're implicitly included as part of the definition in offset delay and offset loss. Then, γl and lossy Z are directly calculated. I'm now following the derivation in Application Note 1287-11, see equation 2B.5. |
This sounds good ! From the equations it seems the proper relative permittivity is already embedded into the coefficient. |
Almost done. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks quite good. It would be nice to also have some plots of the generated standards. For example phase of open and short or Smith chart whichever looks nicest.
doc/source/examples/metrology/Creating Network Definitions for SOLT Calibration Standards.ipynb
Outdated
Show resolved
Hide resolved
doc/source/examples/metrology/Creating Network Definitions for SOLT Calibration Standards.ipynb
Outdated
Show resolved
Hide resolved
doc/source/examples/metrology/Creating Network Definitions for SOLT Calibration Standards.ipynb
Outdated
Show resolved
Hide resolved
doc/source/examples/metrology/Creating Network Definitions for SOLT Calibration Standards.ipynb
Outdated
Show resolved
Hide resolved
doc/source/examples/metrology/Creating Network Definitions for SOLT Calibration Standards.ipynb
Outdated
Show resolved
Hide resolved
Good idea. I'll add some plots soon. |
Plots added. |
Tests performed:
However, when an extremely large (and impractical) offset delay or loss is specified, e.g. 100 Gohm/s, the difference can be as high as 0.02. I believe this is due to the difference of the physical model used. Thus, I think this guide is thoroughly checked and it's suitable for merging in its current state. |
The guide is ready for merging. Please give it a final review. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks very good, only few minor comments.
doc/source/examples/metrology/Creating Network Definitions for SOLT Calibration Standards.ipynb
Outdated
Show resolved
Hide resolved
doc/source/examples/metrology/Creating Network Definitions for SOLT Calibration Standards.ipynb
Outdated
Show resolved
Hide resolved
doc/source/examples/metrology/Creating Network Definitions for SOLT Calibration Standards.ipynb
Outdated
Show resolved
Hide resolved
Updated. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
That's a nice guide. Great job!
I'm also looking forward to the implementation of your code snippets as a proper CalKit class (#610 (comment))
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Very nice tutorial. I appreciate the call for making additional documentation contributions ;) It also assumes that readers are not Python/Numpy experts, which is a good thing in my opinion (that we sometimes forgot).
A minor thing: I suggest shortening the title of the notebook, which is a little long as this is the title which will be used to generate the Table of Content on the left panel of the documentation:
SOLT Calibration Standards
should directly appear after SOLT
, but Coaxial SOLT Calibration Standards
or Creating SOLT Calibration Standards
are nice too. Up to you.
The "confusing" part on the creation of the transmission line length may change in the future (see discussion in #654 and other)
"A series medium.capacitor() terminated by a medium.short() "
I would have used this solution first, and eventually say a word about shunt_capa terminated with open, to make it similar to the inductor case.
doc/source/examples/metrology/Creating Network Definitions for SOLT Calibration Standards.ipynb
Outdated
Show resolved
Hide resolved
doc/source/examples/metrology/Creating Network Definitions for SOLT Calibration Standards.ipynb
Outdated
Show resolved
Hide resolved
Guide has been updated with your suggested text changes. I changed the title to "SOLT Calibration Standards Creation", so it shows up next to SOLT. |
This example shows the method for modeling SOLT calibration standards in scikit-rf using their calibration coefficients, including offset loss, offset delay, and distributed capacitance and inductance defined by a third-degree polynomial function. Both the HP-Agilent-Keysight format and the Rohde & Schwarz / Anritsu format are included. This example implements the request for documentation by issue #610. Signed-off-by: Yifeng Li <tomli@tomli.me>
Is OK to be merged? |
Yes, I consider it finished. |
The generated documentation is here: https://scikit-rf.readthedocs.io/en/latest/examples/metrology/SOLT%20Calibration%20Standards%20Creation.html Thank you @biergaizi |
This example shows the method for modeling SOLT calibration standards in scikit-rf using their calibration coefficients, including offset loss, offset delay, and distributed capacitance and inductance defined by a third-degree polynomial function. Both the HP-Agilent-Keysight format and the Rohde & Schwarz / Anritsu format are included.
This example implements the request for documentation by issue #610.
This is the first draft, all the code and examples in the document are untested.Please review my calculations before merging it.