- MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad         
Seite 38 von 49 ErsteErste ... 28363738394048 ... LetzteLetzte
Ergebnis 371 bis 380 von 484

Thema: IMADEIT-V2:..:Entwickling beendet (s. letzte Seite)

  1. #371
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    17.08.2005
    Alter
    40
    Beiträge
    685
    Anzeige

    Powerstation Test
    Wieviel Bodenfreiheit hast du jetzt?

  2. #372
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    29.12.2005
    Ort
    Nähe Mainz
    Alter
    33
    Beiträge
    3.467
    Hallo,
    ich habe die Motoren mal 1 1/2 Akkus ohne Räder einfahren lassen, jetzt habe ich nur keine Akkus mehr, um zu testen, ob der Bot jetzt geradeaus fährt. werde ich also morgen testen müssen.
    die Bodenfreiheit beträgt ganze 49mm. Also recht viel.

    @Mark,
    hast du mal eine genauere Beschreibung eines PID-Reglers? Ich habe mir zwar das aus Wikipedia und der Wiki durchgelesen, habe auch google angestrengt, aber aus den Infos werde ich nicht schlau, wie ich das aufbauen muss.
    Vor allem verwirrt mich diese Bild etwas:
    Bild hier  

    jon
    Nice to be back after two years
    www.roboterfreak.de

  3. #373
    Benutzer Stammmitglied
    Registriert seit
    14.08.2005
    Ort
    Waldems
    Beiträge
    69
    Der PID wirde am Besten funktionieren, wenn du an jeden Motor direkt an die Welle kämst, um dort die Drehzahl ablesen zu können. PID-Regler lieben hohe Eingangswerte für eine schnelle Regelung. Einen Bascom-Schnipsel hätte ich für Dich. Aber unbedingt ein Studium der Reglergleichung machen
    Gruß

    Micha
    _________________________________
    Mein Roboter ist in der Pubertät [-o<

  4. #374
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    29.12.2005
    Ort
    Nähe Mainz
    Alter
    33
    Beiträge
    3.467
    Zitat Zitat von Opus
    wenn du an jeden Motor direkt an die Welle kämst,
    Wie soll ich das verstehen? Was ist kämen?

    Zitat Zitat von Opus
    Einen Bascom-Schnipsel hätte ich für Dich.
    Auf jeden Fall mal her damit!

    jon
    Nice to be back after two years
    www.roboterfreak.de

  5. #375
    Benutzer Stammmitglied
    Registriert seit
    14.08.2005
    Ort
    Waldems
    Beiträge
    69
    kämst = kommen würdest...

    Code:
    'DIMs for PID
       Dim Cc As Integer
       Dim C_old As Integer
       Dim Drive As Bit                                         ' Regulator on ?
       Dim Manual_value As Single                               ' Output if not regulating
       Dim Pulse As Word
       Dim Pakt As Word
       Dim Sp As Single                                         ' Setpoint
       Dim Pv As Single                                         ' Process Value
       Dim Cv As Single                                         ' PID output
       Dim First_execution As Byte                              ' First start recognition
       Dim Initial_error As Single                              ' Startup difference
       Dim Last_pv As Single                                    ' Last PV
       Dim Last_sp As Single                                    ' Last SP
       Dim Sum_error As Single                                  ' Summed error value
       Dim D_pv As Single                                       ' Derrivated delta PV
       Dim Error As Single                                      ' Difference between SP and PV
       Dim Pterm As Single                                      ' Proportional calculated part
       Dim Iterm As Single                                      ' Integrated calculated part
       Dim Dterm As Single
    
    '-----------------------
    do
    alles mögliche und...
            
    Drive = 1
            Pulsein Pulse , Pind , 3 , 0                        ' time slices
            If Pulse = Pakt Then Goto Aa                        ' nur rechnen bei neuem Wert
            Pakt = Pulse
            Incr Etappe
            If Pakt = 0 Then Pakt = 38000
            Pv = Pakt / 111                                     'Fahrt start
            Gosub Regulator
            If C_old = Cc Then Goto Aa                          'Servo nur bei neuem Wert stellen
            Call Servo(4 , Cc)
            C_old = Cc
    while
    '----------------------------------------------
    Regulator:
       ' -----[ Start of PID Regulator]---------------------------------------------
    
       Const Kp = 0.29                                          ' Proportional factor Eingang x P
       Const Ki = .25                                           ' Integration factor  diff + diff x zeit
       Const Kd = .65                                           ' Derivation factor   abweichung x zeit
       Sp = Speed
                                          ' Derivated calculated part
       ' -----[ Code ]--------------------------------------------------------------
      If Drive = 1 Then
          ' -------- Regulating modus
          Error = Sp - Pv
          Sum_error = Sum_error + Error
          Iterm = Ki * Sum_error                                ' Integrated CV part
    
          ' -------- First time startup
          If First_execution < 2 Then
             If First_execution = 0 Then
                Sum_error = Manual_value / Ki
                First_execution = 1
                Initial_error = Error
             End If
             Pterm = 0
             Dterm = 0
             If Initial_error > 0 And Error < 0 Then
                First_execution = 2
                Last_pv = Pv
             End If
             If Initial_error < 0 And Error > 0 Then
                First_execution = 2
                Last_pv = Pv
             End If
             Last_sp = Sp
    
          ' -------- Normal calculation loop
          Else
             D_pv = Last_pv - Pv
             Last_pv = Pv
             Dterm = Kd * D_pv                                  ' Derivated CV part
             If Sp = Last_sp Then
                ' -------- Normal loop when setpoint not changed
                Pterm = Kp * Error                              ' Proportional CV part
                ' -------- Loop when setpoint changed
                Else
                Pterm = 0
                Dterm = 0
                If Sp > Last_sp And Pv > Sp Then
                   Last_sp = Sp
                   Last_pv = Pv
                End If
                If Sp < Last_sp And Pv < Sp Then
                   Last_sp = Sp
                   Last_pv = Pv
                End If
             End If                                             ' Enf of SP change seperation                                   '
          End If                                                ' Enf of first time running seperation                                  '
    
          Cv = Pterm + Iterm                                    ' Summing of the tree
          Cv = Cv + Dterm                                       ' calculated terms
    
       ' -------- Forced modus
       Else                                                     ' When running in non regulationg modus
          Cv = Manual_value                                     ' Set output to predefined value
          First_execution = 0                                   ' restart bumpless
       End If
    
          If Cv < -5000 Then Cv = -5000
          If 5000 < Cv Then Cv = 5000
          Cc = Cv / 100
          Cc = Cc * 2
          If Backwards = 0 Then
             Cc = 128 + Cc
             If Cc < 80 Then Cc = 80
             If 128 < Cc Then Cc = 128
          Else
             Cc = 120 - Cc                                      'bei Rückwärtsfahrt
             If Cc < 128 Then Cc = 128
             If 170 < Cc Then Cc = 170
    
          End If
    
          'Print "P_akt:" ; Pakt ; " Cv:" ; Cv ; " CC: " ; Cc ; "Car_bearing" ; Car_bearing
    Return
    Der Code ist angepasst an einen Modellbauregler. Ich habe nur wenige Eingangsimpulse (10 pro Radumdrehung) und nehme daher die Timerzeit zwischen den abfallenden Flanken bei Pulsein Pulse...
    Ich hoffe, alle DIMs mitgegeben zu haben. Übrigens stammt der Code auch aus diesem Forum. Ich finde nur die Stelle nicht mehr.
    Gruß

    Micha
    _________________________________
    Mein Roboter ist in der Pubertät [-o<

  6. #376
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    29.12.2005
    Ort
    Nähe Mainz
    Alter
    33
    Beiträge
    3.467
    Warum muss das eigentlich so kompliziert sein?
    Reicht es nicht, wenn ich auf beiden Seiten die Umdrehungen messe und dann die Seite langsamer stelle, die zu schnell dreht? (natürlich nur beim vor und rückwärts fahren)

    jon
    Nice to be back after two years
    www.roboterfreak.de

  7. #377
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    17.08.2005
    Alter
    40
    Beiträge
    685
    Kannst du nicht alle paar Sekunden den Bot nach dem Kompass ausrichten Also Wert speicher, fahren, vergleichen, ausrichten, fahren usw., kann ja alles während der Fahrt gemacht werden (Räder nicht gegensinnig drehen, halt nur die eine Seite verstärkt).

  8. #378
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    29.12.2005
    Ort
    Nähe Mainz
    Alter
    33
    Beiträge
    3.467
    Theoretisch schon, bei IMADEIT-V1 hat es nur nie geklappt. War aber auch ein ganz anderer Roboter.
    Ich denke, ich werde erstmal das Geradeausfahren so zustande bringen, dass ich mit dem PWM-Werten experimentiere, und wenn ich dann einen Kompass angeschlossen habe, erstmal über den. Eigentlich sollte es auf Strecken von bis zu 100m locker funktionieren, mehr als 1km sollte aber schwierig werden, da sich dann der Winkel zum Magnetfeld zu stark ändert, und damit die Ausrichtung nach Norden. Sollte das mit dem Kompass wider Erwarten nicht gehen, werde ich es mit dem Wegstreckensensor machen müssen.
    Aber bis dahin wird viel Zeit vergehen.
    Ich werde morgen mal versuchen das Layout fertig zu machen, dann weiß ich nämlich, was für Teile ich bei Reichelt bestellen muss, danach werde ich Motorregler kaufen, wenn der Bot dann erstmal durch den µC ohne Sensoren gesteuert wird (Blind fahrt), werde ich mich um die US und IR Sensoren kümmern. Den Kompass werde ich von IMADEIT-V2 nehmen.

    Noch eine schöne Nacht und bis morgen!

    jon
    Nice to be back after two years
    www.roboterfreak.de

  9. #379
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    04.02.2005
    Ort
    Hannover
    Beiträge
    174
    Hi Jon,
    zum Test ob es nicht auch an deinem Fahrgestell liegt, kannst du die Motoren einmal komplett auf die andere Seite setzen. Wenn es an den Motoren liegt müsste er dann nach links drehen.
    Und wenn es an den Motoren liegt, kannst du auch nur einen pro Seite tauschen. Dadurch hättest du auf jeder Seite einen langsamen und einen schnellen Motor.

    Jörn

  10. #380
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    29.12.2005
    Ort
    Nähe Mainz
    Alter
    33
    Beiträge
    3.467
    Ich habe überlegt, wie ich die Motoren mal tauschen könnte, bin aber nicht auf die Idee gekommen, nur die Motoren mit den Rädern zu tauschen, und nicht die Motoren ohne dir Räder zu tauschen
    Deswegen; Danke für deinen Hinweis!

    jon
    Nice to be back after two years
    www.roboterfreak.de

Seite 38 von 49 ErsteErste ... 28363738394048 ... LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

12V Akku bauen