From: <bli...@us...> - 2011-04-07 20:12:34
|
Revision: 154 http://python-control.svn.sourceforge.net/python-control/?rev=154&view=rev Author: blinkminster Date: 2011-04-07 20:12:28 +0000 (Thu, 07 Apr 2011) Log Message: ----------- added special case to pade to not crash when given zero time delay Modified Paths: -------------- trunk/src/delay.py Modified: trunk/src/delay.py =================================================================== --- trunk/src/delay.py 2011-04-07 20:09:44 UTC (rev 153) +++ trunk/src/delay.py 2011-04-07 20:12:28 UTC (rev 154) @@ -54,15 +54,19 @@ Based on an algorithm in Golub and van Loan, "Matrix Computation" 3rd. Ed. pp. 572-574. """ - num = [0. for i in range(n+1)] - num[-1] = 1. - den = [0. for i in range(n+1)] - den[-1] = 1. - c = 1. - for k in range(1, n+1): - c = T * c * (n - k + 1)/(2 * n - k + 1)/k - num[n - k] = c * (-1)**k - den[n - k] = c - num = [coeff/den[0] for coeff in num] - den = [coeff/den[0] for coeff in den] + if T == 0: + num = [1,] + den = [1,] + else: + num = [0. for i in range(n+1)] + num[-1] = 1. + den = [0. for i in range(n+1)] + den[-1] = 1. + c = 1. + for k in range(1, n+1): + c = T * c * (n - k + 1)/(2 * n - k + 1)/k + num[n - k] = c * (-1)**k + den[n - k] = c + num = [coeff/den[0] for coeff in num] + den = [coeff/den[0] for coeff in den] return num, den This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |