GeezerVisonThe World Wide Web, restored to 800 pixels of glory. | |
| Home|About|Gaming cabinet|Archives|How it works|Starter sites | |
GeezerVison is showing github.com — Fix bug in matched transformation + address other issues in #950 by murrayrm · Pull Request #951 · python-control/python-control Conversation
Member
This PR fixes the calculation of the DC gain in the 'matched' transformation from continuous time to discrete time. It also fixes some other issues identified in #950. Also adds unit test for
Sorry, something went wrong. Uh oh!
There was an error while loading. Please reload this page. All reactions
|
There was an error while loading. Please reload this page.
|
coverage: 94.989% (-0.02%) from 95.009% |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
There was an error while loading. Please reload this page.
Co-authored-by: Sawyer Fuller <[email protected]>
TransferFunction.sample(Ts, method='matched') (and c2d) returned an all-NaN numerator for any system with a pole or zero at s = 0 - integrators, PI/PID controllers, differentiators and other type-1/2 systems. The DC-gain match divides the continuous DC gain (inf for an origin pole, 0 for an origin zero) by a zgain that carries the same vanishing 1 - z factor, so the gain is 0/0 or inf/inf. Match the gain from the non-origin factors only and restore the origin scaling analytically through the z - 1 ~ s*Ts limit, which recovers the textbook Ts/(z - 1) for 1/s, Ts**2/(z - 1)**2 for 1/s**2, and so on. Finite-DC systems are byte-for-byte unchanged. Completes the gain fix from python-control#950/python-control#951.
There was an error while loading. Please reload this page.
Successfully merging this pull request may close these issues.
gain offset using control.matlab.c2d using method='matched' ?
There was an error while loading. Please reload this page.