Répondre à la discussion
Affichage des résultats 1 à 9 sur 9

pid controler, matlab



  1. #1
    mansour23

    Thumbs up pid controler, matlab


    ------

    Bonjour a tous, je veux contrôler un système en utilisant PID contrôler, mais le système restes toujours instable. voici mon programme matlab :
    Code:
    A =[
    
             0      1.0000    0            0            0         0
             0         0     -0.0061   -0.0064      0         0
             0         0         0            0            0        1.0000
             0         0         0            0      -3.8235   -2.8937
             0         0    0.0000         0            0         0
             0         0         0       0.0000         0         0]
    
    B=[0;0;0;0;0.3717;0];
    C=[1 0 0 0 0 0];
    D=0;
    sys=ss(A,B,C,D);
    sys1=tf(sys);
    co=ctrb (A,B);
    ob=obsv (A,C);
    Controllability=rank(co);
    Observability=rank(ob);
    de=0.3;
    kp=2;
    ki=-0.3;
    kd=0.4;
    c=pid(kp,ki,kd);
    feed=feedback(c*(sys1),1);
    step(feed)
    j'ai varié plusieurs fois les paramètre du PID mais le système restes toujours instable. aidez moi svp. merci beaucoup.

    -----
    Dernière modification par gienas ; 28/09/2017 à 11h16. Motif: Ajouté les balises code obligatoires pour tout ce qui est programme

  2. Publicité
  3. #2
    mag1

    Re : pid controler, matlab

    Bonjour,

    Je ne rentre pas dans le détail de ton système, mais l'instabilité est généralement produite par des gains trop élevés.

    Le plus sensible est le gain différentiel, à réduire à 0 pour commencer

    Ensuite le gain proportionnel, à diminuer si encore instable

    Le gain intégrale réduit l'erreur dans le temps, moins sensible.

    MM
    Si il y a des erreurs ci dessus, c'est que je n'ai pas eu le temps de les corriger...

  4. #3
    mansour23

    Re : pid controler, matlab

    Merci beaucoup pour votre réponse, j'ai fais ce que vous m'avez dis mais aucun résultat, il est toujours instable

  5. #4
    stefjm

    Re : pid controler, matlab

    Vous avez le modèle de ce que vous asservissez?
    Parce que régler un PID au doigt mouillé est impossible sans autres informations.
    Moi ignare et moi pas comprendre langage avec «hasard», «réalité» et «existe».

  6. #5
    micka_ch

    Re : pid controler, matlab

    Bonjour,

    Sauf erreur le système à réguler est défini par les matrices d'état ABCD :

    Code:
    A =[
    
             0      1.0000    0            0            0         0
             0         0     -0.0061   -0.0064      0         0
             0         0         0            0            0        1.0000
             0         0         0            0      -3.8235   -2.8937
             0         0    0.0000         0            0         0
             0         0         0       0.0000         0         0]
    
    B=[0;0;0;0;0.3717;0];
    C=[1 0 0 0 0 0];
    D=0;
    Cela donne G(s) = 0.009096/s^4

    Salutations

  7. A voir en vidéo sur Futura
  8. #6
    micka_ch

    Re : pid controler, matlab

    Pas sur que ce modèle ai une réalité physiques, vous avez déterminé les matrices d'état à partir d'un système d'équa diff ?

  9. Publicité
  10. #7
    mizambal

    Re : pid controler, matlab

    hello. J'ai de vielle notes de cours dont celle-ci : un système décrit par son équation d’état est stable ssi les valeurs propres de la matrice A sont a partie réelle négative. Je te conseille de vérifier ce point.
    Dernière modification par mizambal ; 29/09/2017 à 15h50.

  11. #8
    micka_ch

    Re : pid controler, matlab

    Bonjour,

    Comme le système à régler semble être 4 intégrateurs en cascade j'ai testé un régulateur composé d'un filtre passe-haut d'ordre 3 :

    Code:
    G=tf(0.01,[1 0 0 0 0]);
    wc = 1.5;
    Kd = 125;
    [b,a]=butter(3,wc,'high','s');
    C = Kd*tf(b,a);
    GBO = C*G;
    figure(1);
    margin(GBO);
    grid on
    GBF=feedback(GBO,1);
    pole(GBF)
    figure(2);
    t = 0:0.1:100;
    step(GBF,t)
    grid on
    Il est possible d'ajusté la marge de phase en réglant Kd et wc.

    Step_Bode.png

    A prendre avec des pincettes, je ne suis de loin pas un expert en régulation.

    Salutations

  12. #9
    mansour23

    Re : pid controler, matlab

    Bonjour, merci beaucoup pour votre réponse ça été très utile. J'ai une autre question c'est que j'ai un vecteur d'erreur de dimension (16*1) et je veux appliquer pid contrôleur à la septième variable comment je fais s'il vous plait merci d'avance.

Sur le même thème :

Discussions similaires

  1. [Programmation] MATLAB.SIMULINK,[Embedded Matlab function]
    Par soumati23 dans le forum Électronique
    Réponses: 0
    Dernier message: 08/05/2016, 14h11
  2. [matlab] programmation : peut-on générer un arbre des fonctions d'un code Matlab ?
    Par bratisla dans le forum Logiciel - Software - Open Source
    Réponses: 3
    Dernier message: 09/07/2015, 11h12
  3. [Matlab]Problème d'optimisation Abaqus/Matlab
    Par Saroute dans le forum Programmation et langages, Algorithmique
    Réponses: 3
    Dernier message: 08/04/2015, 18h54
  4. MATLAB: acquisition de donnée via une interface graphique matlab
    Par imorfal dans le forum Programmation et langages, Algorithmique
    Réponses: 0
    Dernier message: 08/05/2011, 17h54
  5. [MatLab] Sb2Sl => Matlab classique = pb intégration.
    Par Zangdar dans le forum Logiciel - Software - Open Source
    Réponses: 0
    Dernier message: 03/08/2005, 22h02
Découvrez nos comparatifs produits sur l'informatique et les technologies.