[MATLAB] Besoin d'aide - langage de programmation
Répondre à la discussion
Affichage des résultats 1 à 7 sur 7

[MATLAB] Besoin d'aide - langage de programmation



  1. #1
    invite145565e3

    Question [MATLAB] Besoin d'aide - langage de programmation


    ------

    Bonjour,

    Alors voilà, je travaille sur un projet utilisant une centrale inertielle (petite carte composée de 6 ou 9 capteurs et permettant d'indiquer la position, la vitesse et l'accélération d'un objet sur lequel est monté la petite carte).

    MAIS le problème est que comme toute centrale inertielle, un défaut est présent et je dois corriger ce défaut à l'aide d'un filtre de Kalman.

    Pour comprendre comment celui-ci fonctionne je me suis rendu sur des tutoriels et j'ai réussi à récupérer le programme (fait sous MATLAB et donc utilisant un langage de programmation que je ne connais pas du tout) que vous trouverez à ce lien :
    http://ferdinandpiette.com/ressource...ineaire_simu.m

    Ce programme simule un filtre de Kalman sur une centrale inertielle mais j'aimerai pouvoir retranscrire ce programme MATLAB en langage python et/ou en langage C++, avez-vous des solutions pour ce genre manipulation ou suis-je obligé de d'abord apprendre le langage de programmation utilisé par MATLAB puis de comprendre ce programme et enfin réussir à faire un équivalent en Python / C++ () ?

    Merci d'avance pour vos réponses, en vous souhaitant une agréable journée !

    Vincent

    -----

  2. #2
    Paraboloide_Hyperbolique

    Re : [MATLAB] Besoin d'aide - langage de programmation

    Bonjour,

    La bibliothèque C++ 'Eigen' (http://eigen.tuxfamily.org/index.php?title=Main_Page) propose des classes de matrices et vecteurs dont la syntaxe d'utilisation est proche (mais loin d'être identique) de celle de Matlab. Je m'en suis servi il y a quelque temps pour retranscrire un programme Matlab en un code C++.

    Reste à voir si cela répond à vos besoins.

  3. #3
    invite6c250b59

    Re : [MATLAB] Besoin d'aide - langage de programmation

    Il y a plusieurs lignes qui sont evidentes. Pourrais-tu indiquer quelles sont les lignes que tu ne comprends pas?

  4. #4
    invite145565e3

    Re : [MATLAB] Besoin d'aide - langage de programmation

    Citation Envoyé par Paraboloide_Hyperbolique
    La bibliothèque C++ 'Eigen' (http://eigen.tuxfamily.org/index.php?title=Main_Page) propose des classes de matrices et vecteurs dont la syntaxe d'utilisation est proche (mais loin d'être identique) de celle de Matlab. Je m'en suis servi il y a quelque temps pour retranscrire un programme Matlab en un code C++.
    Merci pour le tuyaux, ça à l'air en effet utile et pourra peut-être répondre à mes besoins.

    Citation Envoyé par JIAV
    Pourrais-tu indiquer quelles sont les lignes que tu ne comprends pas?
    C'est un peu le programme en général que je ne comprends pas, si par exemple je lis :
    "mesure = zeros(temps*fe, 2); %[va; a]
    mesure(:, 1) = vecteur_etat(:, 1)+vecteur_etat(:, 3) + randn(temps*fe, 1)*bruit_capteur(1);
    mesure(:, 2) = vecteur_etat(:, 2) + randn(temps*fe, 1)*bruit_capteur(2);"
    Je peux peut-être comprendre pourquoi il utilise par exemple randn(temps*fe, 1) etc... Mais par exemple pourquoi 'mesure' peut ne prendre aucun paramètre comme sur la première ligne et sur la ligne suivante en prendre 2 comme celle d'après ("mesure(:, 1)"), serai-ce un constructeur ??

    "xlabel('temps');ylabel('angle ');
    set(figure_handle,'name',' Mesures générées');"
    Ces deux lignes permettent de mettre dans un graphe les valeurs correspondant au temps par rapport à l'angle mais comment programmer ceci en c++ ou en python puisque s'il n'utilise pas la forme pour utiliser les graphes par exemple, cela risque de me poser des problèmes de compilation, comme quoi il manque des variables ou des paramètres dans mes fonctions, non ?

    C'est pour ça qu'avant de me taper tout le boulot qui consiste à retranscrire tout mon programme MATLAB en python ou C++, j'aimerais savoir s'il existe des outils plus judicieux et qui me ferait gagner du temps sur le projet de mon stage qui ne dure que 2 mois...

  5. A voir en vidéo sur Futura
  6. #5
    Paraboloide_Hyperbolique

    Re : [MATLAB] Besoin d'aide - langage de programmation

    Pour vous aider:

    Code:
    mesure = zeros(temps*fe, 2);
    Déclare et initialise un matrice nommée 'mesure' de taille ('temps*fe' x 2) en la remplissant de zéros.

    Code:
    mesure(:, 1)
    Prend la première colonne de la matrice 'mesure'.

    Code:
    randn(temps*fe, 1)
    Crée une matrice colonne de taille ('temps*fe' x 1) dont les entrées sont initialisées par des nombres aléatoires distribués suivant la loi normale.

    Code:
    "xlabel('temps');ylabel('angle');
    set(figure_handle,'name',' Mesures générées');"
    Je ne connais pas de bibliothèque C++ ou python permettant de directement traduire ce code.

    C'est pour ça qu'avant de me taper tout le boulot qui consiste à retranscrire tout mon programme MATLAB en python ou C++, j'aimerais savoir s'il existe des outils plus judicieux et qui me ferait gagner du temps sur le projet de mon stage qui ne dure que 2 mois...
    Peut-être apprendre les bases de Matlab ? http://homen.vsb.cz/~lud0016/NM/matlab_guide.pdf

  7. #6
    invite6c250b59

    Re : [MATLAB] Besoin d'aide - langage de programmation

    (en complément de PH)

    Citation Envoyé par Eroos Voir le message
    serai-ce un constructeur ??
    C'est du typage canard. A la première ligne il n'existe pas encore d'objet mesure, donc c'est interprété comme: fabrique une matrice nommée 'mesure' de taille (temps*fe,2) et met des zéros dedans. Dans les lignes suivantes le côté droit produit un vecteur (temps*fe,1), donc matlab ne peut pas le mettre dans 'mesure' sans qu'on lui précise le numéro de colonne. A noter que la ligne construisant les zéros n'est pas obligatoire (il est possible que cela améliore les performances de la fonction mais si oui c'est assez spécifique à l'environnement matlab) donc à ignorer si tu programmes en plus bas niveau.

    Citation Envoyé par Eroos Voir le message
    "xlabel('temps');ylabel('angle ');
    set(figure_handle,'name',' Mesures générées');"
    Comme tu l'as deviné ce sont des paramètres gérant l'affichage. Ma suggestions serait d'ignorer toute la partie après % Affichage et afficher ce que tu veux de la façon dont tu le souhaites.

  8. #7
    invite145565e3

    Re : [MATLAB] Besoin d'aide - langage de programmation

    Citation Envoyé par Paraboloide_Hyperbolique
    Pour vous aider:
    Citation Envoyé par Jiav
    (en complément de PH)
    Merci beaucoup pour votre aide, je vais tenter de faire un programme équivalent avec vos aides et avec ce que je peux trouver en plus sur internet et pourquoi pas en apprendre un peu plus sur le langage MATLAB en effet puisque j'ai déjà travaillé dessus lors de mon cursus !

    Encore une fois merci, je posterai sur cette discussion le résultat final de mon programme mais cela risque d'attendre un peu puisque je n'ai pas encore reçu les composants et que j'aurai du test et du montage à faire avant !

Discussions similaires

  1. Aide pour choisir un langage de programmation.
    Par invite8c9f75e4 dans le forum Programmation et langages, Algorithmique
    Réponses: 36
    Dernier message: 14/02/2017, 17h17
  2. Aide pour programmation automate en langage lader ?
    Par inviteb3ce1330 dans le forum Électronique
    Réponses: 9
    Dernier message: 14/12/2014, 06h01
  3. Besoin d'aide en programmation langage c svp ?
    Par inviteeec8d4de dans le forum Programmation et langages, Algorithmique
    Réponses: 22
    Dernier message: 25/08/2013, 18h46
  4. Programmation en Matlab besoin d'aide svp
    Par invitea0734ad6 dans le forum Programmation et langages, Algorithmique
    Réponses: 2
    Dernier message: 07/03/2012, 10h22
  5. Besoin d'aide sur le choix d'un langage de programmation
    Par inviteff538fb5 dans le forum Programmation et langages, Algorithmique
    Réponses: 23
    Dernier message: 05/09/2011, 18h15