Nichtinvertierender Verstärker – VB.Net Beispiel

Dieses Programm simuliert eine Schaltung mit einem nichtinvertierenden Operations-Verstärker.

Die eigentliche Berechnung im Programm ist ganz einfach und bestimmt die Verstärkung und die Ausgangsspannung aus dem Verhältnis von Widerständen (vgl. ELEXS).

      Rv = R2 / (R1 + R2)
 
        V = (R1 + R2) / R2
        Uv = Ui * V

Die Rechnung kann theoretisch auch Ausgangspannungen außerhalb des Bereichs der Betriebsspannung ergeben. Deshalb wird hier in einem zweiten Schritt die tatsächliche Spannung nach oben und unten bis auf 0,5 V an der Betriebsspannung begrenzt. Wenn dieser Übersteuerungsfall eintritt weicht die Spannung am invertierenden Eingang des OPV von der am nichtinvertierenden ab und muss eigens aus dem Spannungsteilungsverhältnis berechnet werden.

        If Uv > 9.5 Then
            Uo = 9.5
            Uminus = Uo * Rv
        ElseIf Uv < -9.5 Then
            Uo = -9.5
            Uminus = Uo * Rv
        Else
            Uo = Uv
            Uminus = Ui
        End If

Quelltext

Public Class frmNIV
    Dim Ui, R1, R2
    Dim V, Uo
    Dim Uv, Uminus, Rv
 
    Private Sub sRx_Scroll(ByVal sender As System.Object, ByVal e As System.Windows.Forms.ScrollEventArgs)Handles sRx.Scroll
        berechnen()
    End Sub
 
    Private Sub berechnen()
        Ui = -1 * (sRx.Value / 10)
        R1 = 20 – sR2.Value
        R2 = 20 – sR1.Value
 
        lR1.Text = „R1 = “ + Str(R1) + “ k“
        lR2.Text = „R2 = “ + Str(R2) + “ k“
        lUplus.Text = „U+ = “ + Str(Ui) + “ V“
 
        Rv = R2 / (R1 + R2)
 
        V = (R1 + R2) / R2
        Uv = Ui * V
        If Uv > 9.5 Then
            Uo = 9.5
            Uminus = Uo * Rv
        ElseIf Uv < -9.5 Then
            Uo = -9.5
            Uminus = Uo * Rv
        Else
            Uo = Uv
            Uminus = Ui
        End If
        Uminus = Math.Round(Uminus, 2)
        lUo.Text = „Uo = “ + Str(Uo) + “ V“
        lUminus.Text = „U- = “ + Str(Uminus) + “ V“
    End Sub
 
    Private Sub frmNIV_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        berechnen()
    End Sub
 
    Private Sub sR2_Scroll(ByVal sender As System.Object, ByVal e As System.Windows.Forms.ScrollEventArgs)Handles sR2.Scroll
        berechnen()
    End Sub
 
    Private Sub sR1_Scroll(ByVal sender As System.Object, ByVal e As System.Windows.Forms.ScrollEventArgs)Handles sR1.Scroll
        berechnen()
    End Sub
End Class

[Einklappen]

Download Projektdatei

Wenn Sie nur an der Exe-Datei interessiert sind, befindet sich diese in dem Unterordner \bin\Debug.