diff -r 000000000000 -r 0efde00f9229 python/pp_im.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/python/pp_im.py Fri May 27 14:24:59 2011 +0530 @@ -0,0 +1,52 @@ +#!/usr/bin/python +# 9.8 +import os, sys +sys.path += [os.getcwdu() + os.sep + ".." + os.sep + "python"] + +import scipy as sp +from polyfuncs import polmul +from polyfuncs import polsplit3 +from zpowk import zpowk +from xdync import xdync + +def pp_im(B, A, k, phi, Delta): + Delta = sp.atleast_1d(Delta) + # Setting up and solving Aryabhatta identity + Ag, Ab = polsplit3(A) + dAb = len(Ab) - 1 + Bg, Bb = polsplit3(B) + dBb = len(Bb) - 1 + + zk, dzk = zpowk(k) + + N, dN = polmul(Bb, dBb, zk, dzk) + dDelta = len(Delta)-1 + D, dD = polmul(Ab, dAb, Delta, dDelta) + dphi = len(phi)-1 + + S1, dS1, R1, dR1 = xdync(N, dN, D, dD, phi, dphi)[:4] + + # Determination of control law + R1 = sp.squeeze(R1) + S1 = sp.squeeze(S1) + Rc = sp.convolve(Bg, sp.convolve(R1, Delta)) + Sc = sp.convolve(Ag, S1) + Tc = Ag + gamm = phi.sum()/Bb.sum() + return Rc, Sc, Tc, gamm + +if __name__ == "__main__": + Ts = 1 + B = 0.63 + A = sp.array([1, -0.37]) + k = int(raw_input('Enter the delay as an integer: ')) + + if k<=0: + k = 1 + + zk, dzk = zpowk(k) + + phi = sp.array([1, -0.5]) + delta = 1 + + print pp_im(B, A, k, phi, delta)