Projet

Général

Profil

« Précédent | Suivant » 

Révision 365

Ajouté par maporte3 il y a plus de 6 ans

Amélioration de l'asservissement des roues et de la tourelle

Voir les différences:

branch/porte/Emb_App/SessionM32C_E8a_system.ini
[Target]
M32C E8a SYSTEM=Renesas Communications
[USER_DATA]
RESET=ff004a
RESET=ff003e
branch/porte/Emb_App/programme_principal_etud.c
//Variables pour l'asserivssement des roues, de la vitesse et du telemetre
unsigned int Angle_T=0, Consigne_T=500; //prend la valeur de l'angle au temps t-1 //Consigne de l'angle de la tourelle (consigne/10=>degr?s)
unsigned int valeur=0, Saut=0; //valeur transmise corrig?
unsigned int Somme_Erreur=0, Erreur=0, Delta_Erreur=0, Erreur_pre=0;
unsigned int ErreurRoues=0, ErreurRouesPre=0, Delta_ErreurRoues=0,Somme_ErreurRoues=0;
int Kpt=1, Kpr=2; //Param?tre des PID tourelle et roues
int Kit=4, Kir=40;
int Kdt=1.5, Kdr=1;
unsigned int Vitesse=35, vit=0, i=1, Distance;
unsigned int Somme_Erreur=0, Erreur=0;
unsigned int ErreurRoues=0,Somme_ErreurRoues=0;
int Kpt=1, Kpr=1; //Param?tre des PID tourelle et roues
int Kdt=0.1, Kdr=0.1;
unsigned int Vitesse=40, vit=0, i=1, Distance;
unsigned int Angle_R=0, distance_bord=660; //Angle des roues
//Variable de la fonction Capteur
unsigned int Info_capteur;
......
void Asserv_T_hc(){
Erreur_pre=Erreur;
Erreur=Consigne_T-Angle_T;
Delta_Erreur=Erreur-Erreur_pre;
Somme_Erreur+=Erreur;
if(Angle_T!=Consigne_T)
valeur=Kpt*Erreur+Kdt*Delta_Erreur+(1/Kit)*Somme_Erreur;//correction de l'angle par handler cyclique de la tourelle
valeur=Kpt*Erreur+Kdt*Somme_Erreur;//correction de l'angle par handler cyclique de la tourelle
}
void Asserv_R(){
......
void Asserv_R_hc(){
ErreurRouesPre=ErreurRoues;
ErreurRoues=distance_bord-Distance;
Delta_ErreurRoues=ErreurRoues-ErreurRouesPre;
Somme_ErreurRoues+=ErreurRoues;
if(Distance != distance_bord && Bord_defaut == 0)
Angle_R=-1*(Kpr*ErreurRoues/*+Kdr*Delta_Erreur+(1/Kir)*Somme_ErreurRoues*/);//correction de l'angle par handler cyclique des roues
Angle_R=-1*(Kpr*ErreurRoues+Kdr*Somme_ErreurRoues);//correction de l'angle par handler cyclique des roues
}

Formats disponibles : Unified diff