old_contents: import os
  import matplotlib.pyplot as plt
  from control.matlab import *
  
  # Input: Current (A)
  # Output: Torque (Nm)
  # Params: Kt (Nm/A)
  def motor(Kt):
      return tf(Kt, 1)
  
  # Mass-Spring-Damper
  # Input: Force
  # Output: Position
  # Params:   m (kg)
  #           b 
  #           k (N/m)
  def mass(m, b, k):
      A = [[0, 1.], [-k/m, -b/m]]
      B = [[0], [1/m]]
      C = [[1., 0]]
      return ss(A, B, C, 0)
  
  # Input: Torque (Nm)
  # Output: Force (N)
  # Params: r (m)
  def pulley(r):
      return tf(r, 1)
  
  sys = series(motor(2.5), pulley(0.015), mass(0.10, 0, 0))
  yout, T, xout = step(sys, return_x=True)
  print(yout)
  # plt.plot(T, yout)
  plt.plot(T, xout)
  plt.legend(['Displacement', 'Velocity'])
  plt.show()
new_contents: import os
  import matplotlib.pyplot as plt
  from control.matlab import *
  import numpy as np
  
  
  # Input: Current (A)
  # Output: Torque (Nm)
  # Params: Kt (Nm/A)
  def motor(Kt):
      return tf(Kt, 1)
  
  # Mass-Spring-Damper
  # Input: Force
  # Output: Position
  # Params:   m (kg)
  #           b 
  #           k (N/m)
  def mass(m, b, k):
      A = [[0, 1.], [-k/m, -b/m]]
      B = [[0], [1/m]]
      C = [[1., 0]]
      return ss(A, B, C, 0)
  
  # Input: Torque (Nm)
  # Output: Force (N)
  # Params: r (m)
  def pulley(r):
      return tf(r, 1)
  
  # Make s a transfer function s/1
  s = tf('s')
  print(s)
  
  # build a new transfer function using our variable s as a handy placeholder
  sys = 1 / (s*s + s + 1)
  print(sys)
  
  # Hit the system with a step command
  yout, T = step(sys)
  plt.plot(T, yout)
  
  # convert our continuous time model to discrete time via Tustin at 0.01s timestep
  sysd = c2d(tf(sys), 0.01, method='tustin')
  print(sysd)
  
  # Hit the discrete system with a step command, and sample it at 0.01 timestep from 0 to 14 seconds
  yout, T = step(sysd, np.arange(0, 14, 0.01))
  plt.plot(T, yout)
  plt.legend(['Continuous', 'Discrete'])
  
  # Build a system based on the series connection of the motor, pulley, and mass "blocks"
  sys = series(motor(2.5), pulley(0.015), mass(0.10, .1, .1))
  print(tf(sys))
  
  # Step our series system, returning y (outputs) and x (states)
  yout, T, xout = step(sys, return_x=True)
  plt.figure()
  plt.plot(T, yout)
  plt.plot(T, xout)
  plt.legend(['Displacement', r'$x$', r'$\dot{x}$'])
  plt.show()
subject: Add some example code for the python control module