Collecting control
Downloading control-0.10.0-py3-none-any.whl (513 kB)
[2K [90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━[0m [32m513.9/513.9 kB[0m [31m5.4 MB/s[0m eta [36m0:00:00[0m
[?25hRequirement already satisfied: numpy>=1.23 in /usr/local/lib/python3.10/dist-packages (from control) (1.25.2)
Requirement already satisfied: scipy>=1.8 in /usr/local/lib/python3.10/dist-packages (from control) (1.11.4)
Requirement already satisfied: matplotlib>=3.6 in /usr/local/lib/python3.10/dist-packages (from control) (3.7.1)
Requirement already satisfied: contourpy>=1.0.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib>=3.6->control) (1.2.0)
Requirement already satisfied: cycler>=0.10 in /usr/local/lib/python3.10/dist-packages (from matplotlib>=3.6->control) (0.12.1)
Requirement already satisfied: fonttools>=4.22.0 in /usr/local/lib/python3.10/dist-packages (from matplotlib>=3.6->control) (4.50.0)
Requirement already satisfied: kiwisolver>=1.0.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib>=3.6->control) (1.4.5)
Requirement already satisfied: packaging>=20.0 in /usr/local/lib/python3.10/dist-packages (from matplotlib>=3.6->control) (24.0)
Requirement already satisfied: pillow>=6.2.0 in /usr/local/lib/python3.10/dist-packages (from matplotlib>=3.6->control) (9.4.0)
Requirement already satisfied: pyparsing>=2.3.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib>=3.6->control) (3.1.2)
Requirement already satisfied: python-dateutil>=2.7 in /usr/local/lib/python3.10/dist-packages (from matplotlib>=3.6->control) (2.8.2)
Requirement already satisfied: six>=1.5 in /usr/local/lib/python3.10/dist-packages (from python-dateutil>=2.7->matplotlib>=3.6->control) (1.16.0)
Installing collected packages: control
Successfully installed control-0.10.0
import numpy as np
import control as ctl
import matplotlib.pyplot as plt
Cruise Model
m = 1000
b = 50
A = -b/m
B = 1/m
C = 1
D = 0
G = ctl.ss(A, B, C, D)
input = 500
t,y = ctl.step_response(500*G)
plt.plot(t,y)
plt.xlabel('Time')
plt.title('Response of a Cruise System')
Text(0.5, 1.0, 'Response of a Cruise System')
<Figure size 640x480 with 1 Axes>
Motor Model
J = 0.01
b = 0.1
K = 0.01
R = 1
L = 0.5
s = ctl.tf([1,0],[1])
G = K/((J*s+b)*(L*s+R)+K**2)
t,y = ctl.step_response(G)
plt.plot(t,y)
plt.xlabel('Time')
plt.title('Response of a Motor')