place/ball_im.py
author Puneeth Chaganti <punchagan@fossee.in>
Fri, 27 May 2011 14:24:59 +0530
changeset 0 0efde00f9229
permissions -rw-r--r--
Initial commit.

#!/usr/bin/python 
# 9.9
import os, sys
sys.path += [os.getcwdu() + os.sep + ".." + os.sep + "python"]

import scipy as sp
from scipy import signal
from myc2d import myc2d
from pp_im import pp_im
from desired import desired

# Magnetically suspended ball problem
# Operating conditions

M = 0.05
L = 0.01
R = 1
K = 0.0001
g = 9.81

#Equilibrium conditions
hs = 0.01
i = sqrt(M*g*hs/K)


# State space matrices
a21 = K*i**2/M/hs**2
a23 = - 2*K*i/M/hs
a33 = - R/L
b3 = 1/L
a = sp.array([[0, 1, 0], [a21, 0, a23], [0, 0, a33]])
b = sp.array([[0], [0], [b3]])
c = sp.array([1, 0, 0])
d = 0

# Transfer functions
G = signal.lti(a, b, c, d)
Ts = 0.01
B, A, k = myc2d(G,Ts)

# Transient specifications
rise = 0.15
epsilon = 0.05
phi = desired(Ts, rise, epsilon)

# Controller design
Delta = sp.array([1, -1])
Rc, Sc, Tc, gamm = pp_im(B, A, k, phi)

# Setting up simulation parameters for basic
st = 0.0001 # desired change in h, in m.
t_init = 0  # simulation start time
t_final = 0.5 # simulation end time

# Setting up simulation parameters for c_ss_cl
N_var = 0
xInitial = [0 0 0]
N = 1
C = 0 
D = 1