Forum Liberty Basic France

Annonces » Avec du Fer et du Cuivre Exercice sur les transformateurs
Le 09/04/2012 à 15h21

Administrateur

Groupe: Administrateur

Inscrit le: 04/03/2012
Messages: 2471
Claude, ton idée de farcir une fenetre de textbox était vraiment originale,
et m'a permis de faire un petit exercice du style de celui que tu m'a proposé,
Si j'étais parti de rien, je crois que je ne serais pas arrivé à grand chose.
(j'ai réussi à régler le problème de "raz" par la méthode "non bourrinesque", je me congratule de ce succés.
j'ai fait la table de vérité pour gérer toutes les combinaisons d'entrées de paramètres
mais 4 "!", ça mène déjà loin, et mon code "spagheti" commençait à sortir de la casserole,
pendant que le fond accrochait.
j'ai préféré en rester là pour l'instant..... Salut générique.....

Code JB :
 
 
 
 
NOMAINWIN
dim tabd(3, 7)
b=12:coeff1=0.00001:coeff2=4.4:f=50 'b=12*1000
pi=3.1416
[ini]
TEXTBOX #w.vp, 20 , 180, 50, 25
TEXTBOX #w.f1, 80 , 205, 20, 20
TEXTBOX #w.ip, 20 , 270, 50, 25
TEXTBOX #w.np, 20 , 340, 50, 25
TEXTBOX #w.dp, 20 , 410, 50, 25
TEXTBOX #w.lp, 20 , 480, 50, 25
TEXTBOX #w.vcp, 20 , 550, 50, 25
TEXTBOX #w.mvcp, 100 , 550, 260, 25
 
TEXTBOX #w.ws, 300, 180, 50, 25
'TEXTBOX #w.wm, 300, 200, 50, 25
TEXTBOX #w.se, 300, 270, 50, 25
TEXTBOX #w.si, 300, 340, 50, 25
TEXTBOX #w.sli, 300, 410, 50, 25
TEXTBOX #w.h, 300, 480, 50, 25
'TEXTBOX #w.705, 300, 550, 50, 25
 
TEXTBOX #w.vs, 550, 180, 50, 25
TEXTBOX #w.iss, 550, 270, 50, 25
'TEXTBOX #w.isi, 550, 270, 50, 25
TEXTBOX #w.ns, 550, 340, 50, 25
TEXTBOX #w.ds, 550, 410, 50, 25
TEXTBOX #w.ls, 550, 480, 50, 25
'TEXTBOX #w.vcs, 550, 550, 50, 25
 
TEXTBOX #w.mess, 50, 110, 500, 40
 
TEXTBOX #w.vv, 770, 180, 50, 25
 
'BUTTON #w.Load, "Charger", [CHARGER], UL, 100, 650, 80, 30
BUTTON #w.EXIT, "EXIT", [EXIT], UL, 770, 550
BUTTON #w.NEW, "NEW", [RAZ], UL, 400, 550, 80, 30
BUTTON #w.calc, "calcul", [calc], UL, 500, 550, 100, 30
 
WindowWidth = 900
WindowHeight = 700
 
UpperLeftX = INT(DisplayWidth - WindowWidth) /2 'centrage
UpperLeftY = INT(DisplayHeight - WindowHeight) /2
 
OPEN "Exercice De Détermination Des Petits Transformateurs  P <= 500W" FOR GRAPHICS_nsb AS #w
PRINT #w, "TrapClose [EXIT]"
 
'textes
#w "place 20 15":#w "\Entrer: U/Primaire--U/Secondaire--I/Secondaire (ordre indifférent)"
  #w "place 1 220":#w "\U Fixée../n>"
#w "place 20 35":#w "\La Section Noyau Peut etre imposée avant calculs."
#w "place 20 55":#w "\Si la Hauteur cage est donnée; La Tension Intercouche est retournée"
#w "place 20 75":#w "\Les actions illégales ne sont pas gérées (le patient est présumé: de bonne foi !)"
#w "place 20 95":#w "\Le programme est succeptible de planter sans préavis, mais les calculs sont justes: à un cheval prés."
#w "place 20 170":#w "\U/Primaire"
  #w "place 80 195":#w "\Volts"
'#w "place 20 190":#w "\I souhaitée/Prim"
#w "place 20 260":#w "\I result/Primaire"
  #w "place 80 285":#w "\Amperes"
#w "place 20 330":#w "\N spires/Primaire"
#w "place 20 400":#w "\Diametre fil Primaire"
  #w "place 80 425":#w "\mm"
#w "place 20 470":#w "\Longueur fil Primaire"
  #w "place 80 495":#w "\metres"
#w "place 20 540":#w "\Volts/couche/Primaire"
#w "place 20 600":#w "\Les chiffres donnés par le programme sont des aproximations,"
#w "place 20 620":#w "\Il est conseillé de prévoir: 5/6 Spires de plus au secondaire,"
#w "place 20 640":#w "\Et d'ajuster la tension 'en charge' par abblation des spires en trop."
#w "place 20 660":#w "\Les sections de fils sont majorées pour éviter l'emploi de l'extincteur."
 
#w "place 550 170":#w "\U/Secondaire"
  #w "place 610 195":#w "\Volts"
#w "place 550 260":#w "\I souhaitée/Secondaire"
  #w "place 610 285":#w "\Amperes"
'#w "place 550 260":#w "\I result/Secondaire"
#w "place 550 330":#w "\N spires/Secondaire"
#w "place 550 400":#w "\Diametre fil Secondaire"
  #w "place 610 425":#w "\mm"
#w "place 550 470":#w "\Longueur fil Secondaire"
  #w "place 610 495":#w "\metres"
 
 
#w "place 300 170":#w "\Puissance"
  #w "place 360 195":#w "\Volts x Amperes"
'#w "place 300 190":#w "\Puissance Imposée"
#w "place 300 260":#w "\Section noyau"
  #w "place 360 285":#w "\Cm carrés"
#w "place 300 330":#w "\Section noyau Imposée"
  #w "place 360 355":#w "\Cm carrés"
#w "place 300 400":#w "\Surface libre minimum"
  #w "place 360 425":#w "\Cm carrés"
#w "place 300 470":#w "\Hauteur Cage libre"
  #w "place 360 495":#w "\mm"
 
#w "place 770 170":#w "\U/à Vide"
  #w "place 830 195":#w "\Volts"
 
wait
[calc]
      PRINT #w.mvcp, ""  'efface messages du bas
      PRINT #w.vv, ""  'efface messages u à vide
      PRINT #w.mess, ""  'efface messages du haut
      flag1=0:flag2=0:flag3=0:flag3a=0:flag4=0
 
  'saisie des données
   print #w.vp, "!contents? var$"
   vp = val(var$)
   if vp=0 then gosub [mess1] 'pas de vprim > message
     print #w.ip, "!contents? var$"
   ip = val(var$)
   'print #w.ws, "!contents? var$"
   'ws = val(var$)
   'print #w.wm, "!contents? var$"
   'wm = val(var$)
   print #w.se, "!contents? var$"
   se = val(var$)
   print #w.si, "!contents? var$"
   si = val(var$)
      if si<>0 then
         wm=(si/1.2)*(si/1.2): flag1=1'section imposée
      end if
   print #w.vs, "!contents? var$"
   vs = val(var$)
   print #w.iss, "!contents? var$"
   iss = val(var$)
  ' print #w.isi, "!contents? var$"
  ' isi = val(var$)
   print #w.h, "!contents? var$"
   h = val(var$)
 
   'controles
   if iss=0 and vs=0  then gosub [mess2]
   if iss=0 or vs=0  then gosub [mess3]
   if ws=0 and vs=0 and iss  then gosub [mess2]
 ' if wm<>0 and flag1=0 then flag3=1'puissance limitée
 
   'calculs
   ws= vs*iss
   ip=ws/vp
   if ws>wm and flag1=1 then PRINT #w.mess, "SECTION NOYAU INSUFFISANTE"
   se= 1.2*sqr(ws) 'section
   np=vp/(coeff1*coeff2*f*se*b)'spires primaire
   ns=vs/(coeff1*coeff2*f*se*b)'spires secondaire
   'pertes
   if ws>1 and ws<6 then vv=vs+(vs*20/100)
   if ws>5 and ws<26 then vv=vs+(vs*15/100)
   if ws>25 and ws<75 then vv=vs+(vs*10/100)
   if ws>74 and ws<150 then vv=vs+(vs*8/100)
   if ws>149 and ws<300 then vv=vs+(vs*7/100)
   if ws>299 and ws<501 then vv=vs+(vs*6/100)
  'diametre primaire d'aprés abaque (majoré)
   if ws>1 and ws<51 then
      dp=2*sqr(ip/4/pi)
   end if
   if ws>50 and ws<101 then
      dp=2*sqr(ip/3.5/pi)
   end if
   if ws>100 and ws<200 then
      dp=2*sqr(ip/3/pi)
   end if
   if ws>199 and ws<501 then
      dp=2*sqr(ip/2.5/pi)
   end if
  'diametre secondaire (majoré)
   if ws>1 and ws<51 then
      ds=2*sqr(iss/4/pi)
   end if
   if ws>50 and ws<101 then
      ds=2*sqr(iss/3.5/pi)
   end if
   if ws>100 and ws<200 then
      ds=2*sqr(iss/3/pi)
   end if
   if ws>199 and ws<501 then
      ds=2*sqr(iss/2.5/pi)
   end if
 'surface libre minimum
   sli=((dp/2*dp/2*pi*np)+(ds/2*ds/2*pi*ns))/15'majoration bobinage manuel
 'longueurs
   lp=sqr(se)*4*np/100
   ls=(sqr(se)*4*ns/100)+(sqr(se)*4*ns/100)*40/100'aproximation
 'volts par couche
   vcp=vp/np*h/dp
   if vcp>20 then flag4=1
 
   'renvoi résultats dans cellules
   if flag1=1 then
      PRINT #w.mess, "SECTION NOYAU INSUFFISANTE"
   end if
   'if flag3a=1 then
   '   PRINT #w.mess, "Puissance Supérieure à Puissance Imposée"
   'end if
   if flag4=1 then
      PRINT #w.mvcp, "Prévoir isolemement entre couches"
   end if
   if ws>500 then
         PRINT #w.mess, "LA PUISSANCE EST LIMITEE A 500 VA"
   end if
   PRINT #w.se, str$(se)' section noyau
   PRINT #w.ws, str$(ws)' puissance
   PRINT #w.ip, str$(ip)' intensité primaire
 ' PRINT #w.isi, str$(isi)' intensité résultante secondaire
   PRINT #w.np, str$(np)' N spires primaire
   PRINT #w.ns, str$(ns)' N spires secondaire
   PRINT #w.vv, str$(vv)' U à Vide
   PRINT #w.dp, str$(dp)'diametre fil primaire
   PRINT #w.ds, str$(ds)'diametre fil secondaire
   PRINT #w.sli, str$(sli)'surface libre minimum
   PRINT #w.lp, str$(lp)'longueur fil primaire
   PRINT #w.ls, str$(ls)'longueur fil secondaire
   if h=0 then PRINT #w.vcp,"x"
   PRINT #w.vcp, str$(vcp)'volts par couche
  'PRINT #w.iss, STR$(tabd(1,2))
wait
  'messages
 [mess1]
   PRINT #w.mess, "SANS TENSION PRIMAIRE, PAS DE CALCULS POSSIBLES"
   wait
 return
  [mess2]
     print #w.ip, "!contents? var$"
   if var$<>"" then gosub [mess4]
   PRINT #w.mess, "DEUX PARAMETRES MANQUANTS"
   wait
 return
   [mess3]
   print #w.ip, "!contents? var$"
   if var$<>"" then gosub [mess4]
   PRINT #w.mess, "UN PARAMETRE MANQUANT"
   wait
 return
    [mess4]
    PRINT #w.mess, "LA DERNIERE ACTION ETAIT ILLEGALE >>> NEW"
   wait
 return
 [RAZ]
 fen$="ip np dp ws se si mess vs iss ns ds vv dp ds sli lp ls h vcp"
  for k=1 to 19
 mot$="#w."+word$(fen$,k)
 print #mot$, ""
 next k
 
    print #w.f1, "!contents? var$"
    if var$="n" then PRINT #w.vp, ""
 
    h=0:si=0
    ' PRINT #w.isi, "":PRINT #w.wm, "":
WAIT
 
[EXIT]
 
CLOSE #w
END
 
 






____________________
Roro

   
Visiteur
Le 10/04/2012 à 15h41

Libertynaute Inactif

Groupe: Visiteur



Salut Roland,

J'ai mis quelques (vraies) valeurs dans ton programme, les résultats sont bons, à un gros poney près, c'est très raisonnable dans ce genre de calcul.

J'arriverais même à me contenter d'un nombre entier de spires, de dixièmes de mm pour les diamètres, et de mètres entiers de fil.

Ah, jeunesse !

Mais ça fonctionne extra.

Claude



Edité par Visiteur Le 10/04/2012 à 15h41
____________________
Omnium populorum gallicorum bravissimi sunt Belgae.

Web    
Visiteur
Le 10/04/2012 à 16h54

Libertynaute Inactif

Groupe: Visiteur



PS:

Je viens de scruter ton [RAZ]
Ce n'est pas mal du tout !

On peut aussi utiliser les variables #var$ pour représenter le handle, mais pas en JB je crois.

Bye

Claude

____________________
Omnium populorum gallicorum bravissimi sunt Belgae.

Web    
Le 10/04/2012 à 17h34

Administrateur

Groupe: Administrateur

Inscrit le: 04/03/2012
Messages: 2471
Oui, je suis un peu brouillon. Mais c'était plus pour m'amuser qu'autre chose.
J'ai majoré à outrance, des fois que quelqu'un se serve du prog. Les dixhuitièmes de tours pour les spires et la troisième décimale pour les longueurs, c'est pour la précision... Important la précision. :lol

Connais tu le site "alycesrestaurant.com" ? Je l'ai downloadé, j'ai passé une journée à déziper les sous, sous dossiers, ils sont fous ces anglais, il y en a une centaine de Mo, et des trucs interréssants. De quoi ronger un moment.
J'ai peut etre tort de parler de ça, les trois visiteurs qu'on a ici vont tous traverser la manche.
Déjà qu'il y en un (dont je ne citerai plus le nom) qui est passé à l'ennemi.
Il va falloir mettre les bouchées doubles par crainte que les maitres du donjon ne jettent l'éponge.
Hélas, je doute qu'un prog de calcul d'un étage moyenne fréquence interresse grand monde.
J 'arriverai bien un jour à dompter les sprites...Si ils n'ont pas ma peau avant.....Cordial salut....
____________________
Roro

   
Le 10/04/2012 à 20h04

Libertynaute Expert

Groupe: Membre

Inscrit le: 19/02/2011
Messages: 767
J'étais déjà à "l'ennemi" comme tu dis, bien avant de trouver ce forum... faut bien commencer quelque part ;)

Le site dont tu parles est très très riche... mais "ennemi" ;) ;)
____________________
Devise Shadocks : "Mieux vaut mobiliser son intelligence pour des conneries, que mobiliser sa connerie pour des choses intelligentes"
Coluche disait : "C'est parce que la vitesse de la lumière est plus rapide que celle du son que certains peuvent paraîtrent brillants jusqu'à ce qu'ils ouvrent la bouche."

Web    
Le 10/04/2012 à 23h38

Administrateur

Groupe: Administrateur

Inscrit le: 04/03/2012
Messages: 2471
Ma parole, je croyais que tu était parti aux iles ensoleillées. 8-)
Trés riche AlyceResto ? nooon... y'a juste 2 ou 3 milles fichiers.à trier, je vais ranger l'aspirateur un moment. :d
J'ai bien failli maquillé ton prog pour aller poser les questions chez "l'ennemi", mais tu est trop malin, tu m'aurais vite repéré.
Donc je partage mon temps en deux partie, l'une à me casser la tete pour intégrer mes conneries à ton prog, et l'autre , à trouver une combine pour m'infiltrer discretement outre manche.
Ceci dit, si tu laisse crever le site français, tu aura sa mort sur la conscience....Pense y Cassiope...c'est grave.
..Graaaaave.... :miam



Edité par Roland Le 10/04/2012 à 23h43
____________________
Roro

   
Visiteur
Le 11/04/2012 à 12h21

Libertynaute Inactif

Groupe: Visiteur



Vois plutôt dans la Liberty Basic Encyclopedia, c'est renseigné sur le site LB.
Excellentes synthèses didactiques.
Notamment sur les sprites, par Alyce Watson.

Il y a aussi les archives de LB, avec un répertoire du contenu, mais c'est énorme.

A+

Claude



Edité par Visiteur Le 11/04/2012 à 12h23
____________________
Omnium populorum gallicorum bravissimi sunt Belgae.

Web    
Le 11/04/2012 à 22h20

Administrateur

Groupe: Administrateur

Inscrit le: 04/03/2012
Messages: 2471
Je ne l'avais pas vu c'est ecrit en tout petit tout en haut. J'ai tous les fichiers mais ils sont en vrac, ça va bien m'aider pour trier....Merci pour le tuyau....à+
____________________
Roro

   
Le 12/04/2012 à 07h51

Libertynaute Expert

Groupe: Membre

Inscrit le: 19/02/2011
Messages: 767
Roland:
J'ai bien failli maquillé ton prog pour aller poser les questions chez "l'ennemi", mais tu est trop malin, tu m'aurais vite repéré.

Mais fait donc ça ! je ne vois pas ce qui t'en empèche ! je ne comprends même pas ton histoire de maquillage !
Je te l'ai déjà dit : si je ne voulais pas que quelqu'un utilise mes codes comme bon lui semble, je ne les aurais pas postés sur un forum !!!!



Edité par cassiope01 Le 12/04/2012 à 07h51
____________________
Devise Shadocks : "Mieux vaut mobiliser son intelligence pour des conneries, que mobiliser sa connerie pour des choses intelligentes"
Coluche disait : "C'est parce que la vitesse de la lumière est plus rapide que celle du son que certains peuvent paraîtrent brillants jusqu'à ce qu'ils ouvrent la bouche."

Web    
Le 12/04/2012 à 09h03

Administrateur

Groupe: Administrateur

Inscrit le: 04/03/2012
Messages: 2471
En fait, je ne sais plus trop quoi faire pour te piquer au vif, et te faire bosser sur ce que tu sais.
Je ne vais pas chez les anglais, car personne ne peut m'aider, mes questions sont trop tordues,
et ce n'est pas en ajoutant des "ght's", et des "wh's', au patois toulousain que je vais me faire comprendre.
De ce que je fréquente le site, j'ai pu constater que les anglais étaient des gens sérieux, que la programation était une chose sérieuse, et le sérieux, j'ai eu ma dose.(abuser nuit à la santé.)
Si tu connais le moyen de faire avancer un ane(métaphore) qui n'aime pas les carottes ni ne crains le baton,je suis prenneur.....Good luck men.....
____________________
Roro

   
Annonces » Avec du Fer et du Cuivre Exercice sur les transformateurs  

 |  |

1 Utilisateur en ligne : 0 Administrateur, 0 Modérateur, 0 Membre et 1 Visiteur
Utilisateur en ligne : Aucun membre connecté
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie