Calcul de trappes réalisées avec du coaxial

Description

Ce petit applicatif, faisant parti de "electronique.exe" disponible sur mon site, permet de calculer deux égalités par itérations : Lw = 1 / Cw condition essentielle de la résonance d'un circuit bouchon à une fréquence donnée.
Ne maitrisant pas les bases de données, les différents coaxiaux utilisables sont traités par une série de "Case". Ce qui ne change rien au calcul lui même.

Pour le calcul de la pulsation (nombre de tr/s exprimés en rd/s), Pi est calculé par
Pi = 4*Atn(1).

En dehors des spécificités électroniques, il m'a semblé intéressant de vous soumettre la chose.

Source / Exemple :


Public Frequence As Double, WaveLenght As Double
Public CapaParFt As Double, DiamCoax As Double, DiamNoyau As Double
Public NbreTours As Double, Zcoax As Double, VF As Double

Public Sub Form_Load()
   '
   On Error Resume Next
   '
   Frm1.TxtFrequence.SetFocus
   '
   OptMetrique.Value = True
   '
End Sub

Private Sub OptMetrique_Click()
   '
   Label10 = "Diamètre coaxial en mm"
   Label11 = "Capacité en pf/m"
   Label12 = "Diamètre du mandrin en mm"
   '
   TxtDiamCoax = ""
   TxtDiamMandrin = ""
   TxtCapacitParMetre = ""
   '
End Sub

Private Sub OptImperial_Click()
   '
   Label10 = "Diamètre coaxial en inches"
   Label11 = "Capacité en pf/Ft"
   Label12 = "Diamètre du mandrin en inches"
   '
   TxtDiamCoax = ""
   TxtDiamMandrin = ""
   TxtCapacitParMetre = ""
   '
End Sub

Public Sub LstCoax_Click()
   '
   If LstCoax.ListIndex < LstCoax.ListCount - 1 Then
      '
      TxtCapacitParMetre.Locked = True
      TxtDiamCoax.Locked = True
      '
   Else
      '
      TxtCapacitParMetre.Locked = False
      TxtDiamCoax.Locked = False
      '
   End If
   '
   Select Case LstCoax.ListIndex
      Case 0
         ' RG 6
         Zcoax = 75
         VF = 0.75
         CapaParFt = 18.6
         DiamCoax = 0.266
         '
      Case 1
         ' RG 8X
         Zcoax = 52
         VF = 0.75
         CapaParFt = 26
         DiamCoax = 0.242
         '
      Case 2
         ' RG 8
         Zcoax = 52
         VF = 0.66
         CapaParFt = 29.5
         DiamCoax = 0.405
         '
      Case 3
         ' RG 8 foam
         Zcoax = 50
         VF = 0.8
         CapaParFt = 25.4
         DiamCoax = 0.405
         '
      Case 4
         ' RG 8A
         Zcoax = 52
         VF = 0.66
         CapaParFt = 29.5
         DiamCoax = 0.405
         '
      Case 5
         ' RG 9
         Zcoax = 51
         VF = 0.66
         CapaParFt = 30
         DiamCoax = 0.42
         '
      Case 6
         ' RG 9A
         Zcoax = 51
         VF = 0.66
         CapaParFt = 30
         DiamCoax = 0.42
         '
      Case 7
         ' RG 9B
         Zcoax = 50
         VF = 0.66
         CapaParFt = 30.8
         DiamCoax = 0.42
         '
      Case 8
         ' RG 11
         Zcoax = 75
         VF = 0.66
         CapaParFt = 20.6
         DiamCoax = 0.405
         '
      Case 9
         ' RG 11 foam
         Zcoax = 75
         VF = 0.8
         CapaParFt = 16.9
         DiamCoax = 0.405
         '
      Case 10
         ' RG 11A
         Zcoax = 75
         VF = 0.66
         CapaParFt = 20.6
         DiamCoax = 0.405
         '
      Case 11
         ' RG 12
         Zcoax = 75
         VF = 0.66
         CapaParFt = 20.6
         DiamCoax = 0.475
         '
      Case 12
         ' RG 12A
         Zcoax = 75
         VF = 0.66
         CapaParFt = 20.6
         DiamCoax = 0.475
         '
      Case 13
         ' RG 17
         Zcoax = 52
         VF = 0.66
         CapaParFt = 29.5
         DiamCoax = 0.87
         DiamNoyau = 0
         '
      Case 14
         ' RG 17A
         Zcoax = 52
         VF = 0.66
         CapaParFt = 29.5
         DiamCoax = 0.87
         '
      Case 15
         ' RG 55
         Zcoax = 53.5
         VF = 0.66
         CapaParFt = 29.5
         DiamCoax = 0.216
         '
      Case 16
         ' RG 55A
         Zcoax = 50
         VF = 0.66
         CapaParFt = 30.8
         DiamCoax = 0.216
         '
      Case 17
         ' RG 55B
         Zcoax = 53.5
         VF = 0.66
         CapaParFt = 29.5
         DiamCoax = 0.216
         '
      Case 18
         ' RG 58
         Zcoax = 53.5
         VF = 0.66
         CapaParFt = 28.5
         DiamCoax = 0.195
         '
      Case 19
         ' RG 58 foam
         Zcoax = 53.5
         VF = 0.79
         CapaParFt = 28.5
         DiamCoax = 0.195
         '
      Case 20
         ' RG 58A
         Zcoax = 53.5
         VF = 0.66
         CapaParFt = 28.5
         DiamCoax = 0.195
         '
      Case 21
         ' RG 58B
         Zcoax = 53.5
         VF = 0.66
         CapaParFt = 28.5
         DiamCoax = 0.195
         '
      Case 22
         ' RG 58C
         Zcoax = 50
         VF = 0.66
         CapaParFt = 30.8
         DiamCoax = 0.195
         '
      Case 23
         ' RG 59
         Zcoax = 73
         VF = 0.66
         CapaParFt = 21
         DiamCoax = 0.242
         '
      Case 24
         ' RG 59 foam
         Zcoax = 75
         VF = 0.79
         CapaParFt = 16.9
         DiamCoax = 0.242
         '
      Case 25
         ' RG 59A
         Zcoax = 73
         VF = 0.66
         CapaParFt = 21
         DiamCoax = 0.242
         '
      Case 26
         ' RG 62
         Zcoax = 93
         VF = 0.86
         CapaParFt = 13.5
         DiamCoax = 0.242
         '
      Case 27
         ' RG 62 foam
         Zcoax = 95
         VF = 0.79
         CapaParFt = 13.4
         DiamCoax = 0.242
         '
      Case 28
         ' RG 62A
         Zcoax = 93
         VF = 0.86
         CapaParFt = 13.5
         DiamCoax = 0.242
         '
      Case 29
         ' RG 62B
         Zcoax = 93
         VF = 0.86
         CapaParFt = 13.5
         DiamCoax = 0.242
         '
      Case 30
         ' RG 133A
         Zcoax = 95
         VF = 0.66
         CapaParFt = 16.2
         DiamCoax = 0.405
         '
      Case 31
         ' RG 141
         Zcoax = 50
         VF = 0.7
         CapaParFt = 29.4
         DiamCoax = 0.19
         '
      Case 32
         ' RG 141A
         Zcoax = 50
         VF = 0.7
         CapaParFt = 29.4
         DiamCoax = 0.19
         '
      Case 33
         ' RG 142
         Zcoax = 50
         VF = 0.7
         CapaParFt = 29.4
         DiamCoax = 0.206
         '
      Case 34
         ' RG 142A
         Zcoax = 50
         VF = 0.7
         CapaParFt = 29.4
         DiamCoax = 0.206
         '
      Case 35
         ' RG 142B
         Zcoax = 50
         VF = 0.7
         CapaParFt = 29.4
         DiamCoax = 0.195
         '
      Case 36
         ' RG 174
         Zcoax = 50
         VF = 0.66
         CapaParFt = 30.8
         DiamCoax = 0.1
         '
      Case 37
         ' RG 213
         Zcoax = 50
         VF = 0.66
         CapaParFt = 30.8
         DiamCoax = 0.405
         '
      Case 38
         ' RG 214
         Zcoax = 50
         VF = 0.66
         CapaParFt = 30.8
         DiamCoax = 0.425
         '
      Case 39
         ' RG 215
         Zcoax = 50
         VF = 0.66
         CapaParFt = 30.8
         DiamCoax = 0.475
         DiamNoyau = 0
         '
      Case 40
         ' RG 216
         Zcoax = 75
         VF = 0.66
         CapaParFt = 20.6
         DiamCoax = 0.425
         '
      Case 41
         ' RG 223
         Zcoax = 50
         VF = 0.66
         CapaParFt = 30.8
         DiamCoax = 0.212
         '
      Case 42
         ' 9913
         Zcoax = 50
         VF = 0.84
         CapaParFt = 24
         DiamCoax = 0.405
         '
      Case 43
         ' 9914
         Zcoax = 50
         VF = 0.78
         CapaParFt = 26
         DiamCoax = 0.405
         '
      Case LstCoax.ListCount - 1
         ' Coaxial personnel
         TxtDiamCoax = ""
         TxtDiamMandrin = ""
         TxtCapacitParMetre = ""
         '
   End Select
   '
   If OptMetrique.Value = True And _
      LstCoax.ListIndex < LstCoax.ListCount - 1 Then
      TxtDiamCoax = DiamCoax * 25.4
      TxtCapacitParMetre = CapaParFt / 0.3048
      TxtZ = Zcoax
      TxtVF = VF
   Else
      TxtDiamCoax = DiamCoax
      TxtCapacitParMetre = CapaParFt
   End If
   '
End Sub

Public Sub mnuQuitter_Click()
   End
End Sub

Public Sub TxtDiamCoax_Change()
   If TxtDiamCoax.Locked = False Then
      If OptMetrique.Value = True Then
         DiamCoax = Val(TxtDiamCoax.Text) / 25.4
      Else
         DiamCoax = Val(TxtDiamCoax.Text)
      End If
   End If
End Sub

Public Sub TxtCapacitParMetre_Change()
   If TxtCapacitParMetre.Locked = False Then
      If OptMetrique.Value = True Then
         CapaParFt = Val(TxtCapacitParMetre.Text) * 0.3048
      Else
         CapaParFt = Val(TxtCapacitParMetre.Text)
      End If
   End If
End Sub

Public Sub TxtDiamMandrin_Change()
   If TxtDiamMandrin.Locked = False Then
      If OptMetrique.Value = True Then
         DiamNoyau = Val(TxtDiamMandrin.Text) / 25.4
      Else
         DiamNoyau = Val(TxtDiamMandrin.Text)
      End If
   End If
End Sub

Public Sub TxtFrequence_Change()
   '
   Frequence = Val(TxtFrequence.Text)
   '
End Sub

Public Sub BtnCalculer_Click()
   Call Calculer
End Sub

Static Function Log10(X)
   Log10 = Log(X) / Log(10#)
End Function

Public Sub Calculer()
   '
   Dim L As Double, A As Double, B As Double, N As Double
   Dim C As Double, e As Double, Pi As Double
   Dim TalonC As Double, D As Double, Puls As Double
   Dim XL As Double, Xc As Double, k As Double, P As Double
   Dim N3 As Double, w As Double, CL As Double, EffL As Double
   Dim Boucles As Double, MsgStr As String
   '
   Pi = 4 * Atn(1)
   '
    If TxtFrequence.Text <> "" And _
      TxtDiamCoax.Text <> "" And _
      TxtCapacitParMetre.Text <> "" And _
      TxtDiamMandrin.Text <> "" Then
      '
      e = CapaParFt / 12 ' passage de pF/Ft en pF/in
      '
      Puls = 2 * Pi * Frequence
      '
      A = DiamNoyau + DiamCoax ' Diametre moyen de la self
      '
      '
      TalonC = 1 ' Deux extremites de 25 mm
      ' Approximation de N
      N = Fix((570 / Frequence) * Sqr(DiamCoax / (A ^ 3 * e))) + 0.5
      '
      XL = 0
      Xc = 0
      L = 0
      C = 0
      '
      Boucles = 0
      '
      Do Until Abs(Xc - XL) < 0.00000001 And L <> 0 And C <> 0
         '
         DoEvents
         '
         Boucles = Boucles + 1
         ' Limitation des itérations
         If Boucles > 1000 Then
            MsgStr = "Diamètre de mandrin minimum : " & Str(Fix(((DiamCoax * 7) * 25.4) * 100) / 100)
            MsgBox MsgStr
            Exit Sub
         End If
         '
         B = DiamCoax * N ' Longueur de l'enroulement
         '
         L = (A ^ 2 * N ^ 2 / (18 * A + 40 * B)) ' (1)
         '
         ' = LongueurCoax * Cap/m
         C = (TalonC + A * Pi * N) * e ' (2)
         '
         XL = L * Puls
         '
         Xc = 1000000 / (C * Puls)
         '
         P = Xc - XL
         ' Actualisation de l'incrément k
         If (Xc - XL) > 0 Then
            k = (Xc - XL) / 1000
         Else
            k = (XL - Xc) / 1000
         End If
         '
         N = N + (k * Sgn(P))
         '
         TxtReactanceInductive = XL
         TxtReactanceCapacitive = Xc
         '
      Loop
      '
      N = N - k
      '
      L = (A ^ 2 * N ^ 2 / (18 * A + 40 * B))
      XL = L * Puls
      '
      C = (TalonC + A * Pi * N) * e
      Xc = 1000000 / (C * Puls)
      '
      
      '
      If L < 1 Then
         k = 1000
      Else
         k = 100
      End If
      TxtInductance = Fix(L * k + 0.5) / k
      If C >= 10 Then
         k = 10
      Else
         k = 100
      End If
      TxtCapacitance = Fix(C * k + 0.5) / k
      '
      TxtNombreTours = Fix(N * 100) / 100
      TxtLongueurBobinage = Fix((DiamCoax * N / 100) * 100) / 100
      TxtLongueurCoaxial = Fix(((A * Pi * N + TalonC) / e) * 100) / 100
      '
      w = N * DiamCoax
      TxtLongueurBobinage = (Fix(w * 100) / 100) * 25.4
      CL = A * Pi * N + TalonC
      TxtLongueurCoaxial = Fix(CL * 25.4 * 100) / 100
      EffL = Fix(CL * 8.8 + 0.5) / 10
      TxtLongueurEffective = Fix(EffL * 25.4 * 100) / 100
   End If
End Sub

Conclusion :


Le logiciel "Electronique.exe" est régulièrement mis à jour sur http://f5prp.free.fr
Sur les 6 "beta testeurs", aucun n'a signalé de problème sur cet applicatif.

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.