Page 1 sur 2

Appel aux matheux : programmation IAS non linéaire

MessagePosté: Dim 28 Fév 2010 15:55
de Colibri
Bonjour tout le monde,

J'avance dans mon tableau de bord, j'en suis à L'IAS, avec le problème suivant : je me suis basé sur un modèle réel dont l'échelle est non linéaire. Mes capacités en math sont ce qu'elles sont ...
Comment on fait pour programmer çà ?
A titre indicatif, pour vous aider à m'aider gratgrat , voici quelques équivalences :
0 knots = 1023 sur le servo
50 kts = 922
80 kts = 785
110 kts = 618
140 kts = 451
170 kts = 299
200 kts (maximum) = 142

Merci d'avance !

Re: Appel aux matheux : programmation IAS non linéaire

MessagePosté: Dim 28 Fév 2010 17:24
de JeeHell
Le plus simple dans ton cas c'est de faire une approximation linéaire entre les valeurs que tu nous donne (par exemple, à toi de vérifier quelles valeurs sont les plus intéressantes), ce qui revient à assembler des segments de droites.

Rappel de maths:
équation d'une droite : y = a*x+b
avec:
a= (Y1-Y2)/(X1-X2)
b=Y1-a*X1

donc par exemple, si IAS est comprise entre 50 et 80kts, tu prends comme valeurs:
X1=50 Y1=922
X2=80 Y2=785

tu trouves a=-4.567 et b=1150.334

donc ta position du servo sera : (toujours pour IAS entre 50 et 80kts).
servo=IAS*(-4.567)+1150.334

bonne chance cligneoeil

Re: Appel aux matheux : programmation IAS non linéaire

MessagePosté: Dim 28 Fév 2010 17:30
de algue14
Salut

Ben pourtant c'est linéaire entre 50 et 200 ( trace la courbe avec en X les vitesses et en Y les valeurs servos )
tu verra que c'est quasiment droit sur la portion 50KTS-200KTS par contre ça colle pas pour 0
Sinon jehell a tout dit rigolus

Re: Appel aux matheux : programmation IAS non linéaire

MessagePosté: Dim 28 Fév 2010 17:59
de Colibri
Merci à vous deux. Tu as raison Algue, j'aurais dû tracer la droite.
Donc, en synthèse de vos infos à tous les deux :
- je portionne la zone non linéaire et j'y applique l'équation de JeeHell
- je laisse en linéaire pour le reste
J'ai bon ?

Re: Appel aux matheux : programmation IAS non linéaire

MessagePosté: Dim 28 Fév 2010 18:52
de algue14
Colibri a écrit:J'ai bon ?


Je dirais bien oui ,mais j'avoue que ,pour l'instant, je suis plus à l'aise avec les maths qu'avec SIOC ecroulerire
Jehell t'apportera peut-être un avis plus éclairé.

A+
Alain

edit
L'équation de jehell est simplement celle d'une fonction linéaire de type y= Ax+B adaptée a tes valeurs.
Elle est valable pour chaque tronçon linéaire.

Re: Appel aux matheux : programmation IAS non linéaire

MessagePosté: Dim 28 Fév 2010 19:07
de Colibri
t'as de la chance, moi c'est les maths ET SIOC qui me posent problème.
Je suis en train de me dire que si c'est uniquement la portion en dessous de 50 kts qui pose problème, je vais plutôt me simplifier la vie en redessinant une échelle linéaire. Je fais une reproduction réaliste et "inspirée de" mais je ne suis pas à cheval sur ce genre de détail au point de me compliquer la programmation...

Re: Appel aux matheux : programmation IAS non linéaire

MessagePosté: Dim 28 Fév 2010 19:32
de JeeHell
Niveau SIOC c'est pas beaucoup plus difficile, un petit exemple avec deux portions:

Code: Tout sélectionner

Var 0001, name Servo, Value 1023

Var 0002, name IAS, Link FSUIPC_INOUT, Offset $02BC, Length 4, Value 0
{
  L0 = &IAS / 128
  IF L0 < 50
  {
//rappel y=a*x+b
    &Servo = L0 * 2.02  // ici 2.02 correspond à -a
    &Servo = 1023 - &Servo  //ici 1023 correspond à b et on fait donc y =b - (-a*x)= a*x+b
  }
  ELSE
  {
    &Servo = L0 * 5.19
    &Servo = 1181.5 - &Servo
  }
}




Et avec quelques IF de plus tu peux rajouter autant d'intervalles linéarisés.
Bonne chance cligneoeil

Re: Appel aux matheux : programmation IAS non linéaire

MessagePosté: Dim 28 Fév 2010 19:53
de airmontblanc
Hein ? je commence à avoir mal au crane moi ....

dire que je vais bientôt recevoir une carte usb servos motors, j'ai déjà peur par avance cligneoeil

mais bon ... le forum est la grandsoleil , vous êtes trop forts,

je vais relire tout ça tranquillement ...



Amicalement
Rémy

Re: Appel aux matheux : programmation IAS non linéaire

MessagePosté: Dim 28 Fév 2010 20:12
de Colibri
Ok, JeeHell, merci pour l'exemple.
Il est instructif non seulement pour le calcul en question, mais également pour la syntaxe.
Petit question : dans ta variable 2, pourquoi tu mets le link FSUIPC en in/out ? IN devrait suffire dans le cas présent ? ou je me trompe ?

(qui se porte volontaire pour écrire un tuto exhaustif et un manuel pédagogique sur SIOC, hein ??? Qui, qui ??? yeuxhaut )

Re: Appel aux matheux : programmation IAS non linéaire

MessagePosté: Dim 28 Fév 2010 20:29
de Colibri
JeeHell, çà marche nickel !
Je pense que dorénavant et grâce à toi, je devrais passer moins d'une journée par programmation de servo etonneyeux peurefrayé
Surtout que j'ai préparé la petite feuille de calcul qui va bien ...
merci affiche