PI Regler - PT1

Mit PT\(_1\) Glieder können viele reale Systeme gut approximiert werden. Dazu zählen Anwendungen in Bereich der Temperatur, Elektrotechnik als auch Mechanische Streken.

PI Regler - Geschwindigkeitsstrecke

System

Ein mechanische Antrieb kann mit der Differentialgleichung

\[ J \dot{\omega}(t) + d \omega(t) = V M(t) \]

beschrieben werden, wobei \(\omega(t)\) eine Rotationsgeschwindigkeit ist. Mit dem Übergang in den Laplacebereich

\[ J s \omega(s) + d \omega(s) = V M(s) \]

gewinnen wir die Übertragungsfunktion

\[ G(s)= \frac{V}{J s \omega +d} = \frac{\omega(s)}{M(s)} \]

welche wir elegant in control verwenden können.

PI - Regler

Für einen Geschwindigkeitsregler wollen wir einen PI der Form

\[ G_r(s) = \frac{V_I(1+T_Is)}{s} \]

verwenden. Für die Einstellung des Reglers stehen nun die zwei Parameter \(V_I\) und \(T_I\) zur Verfügung.

Reglerentwurf in control

import control
import numpy as np
import matplotlib.pyplot as plt
plt.style.use('ggplot')
s = control.TransferFunction.s
# system
V = 10
J = 10
d = 1
Gp = V / (J*s + d)
Gp
\[\frac{10}{10 s + 1}\]
# controller
Vi = 1
Ti = 1
Gr = Vi*(1+Ti*s)/s
Gr
\[\frac{s + 1}{s}\]
# closed loop system
Tyr = Gp*Gr/(1+Gp*Gr)
Tyr
\[\frac{100 s^3 + 110 s^2 + 10 s}{100 s^4 + 120 s^3 + 111 s^2 + 10 s}\]
def sim(Vi = 1, Ti = 1, Tend=25):
    """simulate closed loop system"""
    Gr = Vi*(1+Ti*s)/s
    
    Tyr = Gp*Gr/(1+Gp*Gr)
    
    t = np.linspace(0,Tend,1000)

    plt.figure(figsize=(12,6))
    y,t = control.matlab.step(Tyr,t)
    plt.plot(t,y)

In einem aktiven Jupyter Notebook kann ein Regler elegant ausgelegt werden.

Warnung

ipywidgets funktionieren nur in einem Jupyter Notebook mit aktiven Python Kernel. Im Jupyter Book (Html) werden ipywidgets darum nicht angezeigt.

# does not work in html sites, you need a running Python kernel.
import ipywidgets as widgets
widgets.interact(sim,Vi = (0.0,5,0.01),Ti=(0.0,5,0.05));
sim(Vi=2,Ti=1)
../../_images/pi_pt1_13_0.png