IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MATLAB Discussion :

[syms] Code avec erreur


Sujet :

MATLAB

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Août 2016
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Distribution

    Informations forums :
    Inscription : Août 2016
    Messages : 8
    Points : 1
    Points
    1
    Par défaut [syms] Code avec erreur
    Bonjour à tous ,

    J'utilise un code que d'une thèse de master pour choisir les bons servomoteurs pour mon projet . J'indique bien que le code n'est pas à moi . Or lorsque je met le code sur matlab il m'indique cette erreur
    Error using syms (line 89)
    Not a valid variable name
    .

    Voici la ligne 89 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    eror(message('symbolic:sym:errmsg1'));
    Il me dis que syms n'est pas une variable ???

    Celles-ci

    Pouvez vous m'aider à corriger ces erreurs car c'est très urgent car je dois réaliser les achats des moteurs , le plus tot possible .
    Voici le code en intégralité

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    241
    242
    243
    244
    245
    246
    247
    248
    249
    250
    251
    252
    253
    254
    255
    256
    257
    258
    259
    260
    261
    262
    263
    264
    265
    266
    267
    268
    269
    270
    271
    272
    273
    274
    275
    276
    277
    278
    279
    280
    281
    282
    283
    284
    285
    286
    287
    288
    289
    290
    291
    292
     
    clear all; clc; close all; digits(25);
    %-------------------------------%
    % Initialisation des parametres
    %-------------------------------%
    % Force de contact au pattes
    syms NAvGx NAvGy NAvGz real ’d’;
    NAvG = [NAvGx; NAvGy; NAvGz];
    syms NCeDx NCeDy NCeDz real ’d’;
    NCeD = [NCeDx; NCeDy; NCeDz];
    syms NArGx NArGy NArGz real ’d’;
    NArG = [NArGx; NArGy; NArGz];
    %-------------------------------%
    %-------------------------------%
    % Reaction corps-coxa
    syms RBCAvGx RBCAvGy RBCAvGz real;
    RBCAvG = [RBCAvGx; RBCAvGy; RBCAvGz];
    syms RBCCeDx RBCCeDy RBCCeDz real;
    RBCCeD = [RBCCeDx; RBCCeDy; RBCCeDz];
    syms RBCArGx RBCArGy RBCArGz real;
    RBCArG = [RBCArGx; RBCArGy; RBCArGz];
    syms MBCAvGx MBCAvGy MBCAvGz real;
    MBCAvG = [MBCAvGx; MBCAvGy; MBCAvGz];
    syms MBCCeDx MBCCeDy MBCCeDz real;
    MBCCeD = [MBCCeDx; MBCCeDy; MBCCeDz];
    syms MBCArGx MBCArGy MBCArGz real;
    MBCArG = [MBCArGx; MBCArGy; MBCArGz];
    %-------------------------------%
    % Reaction femur-tibia
    syms RFTAvGx RFTAvGy RFTAvGz real;
    RFTAvG = [RFTAvGx; RFTAvGy; RFTAvGz];
    syms RFTCeDx RFTCeDy RFTCeDz real;
    RFTCeD = [RFTCeDx; RFTCeDy; RFTCeDz];
    syms RFTArGx RFTArGy RFTArGz real;
    RFTArG = [RFTArGx; RFTArGy; RFTArGz];
    syms MFTAvGx MFTAvGy MFTAvGz real;
     
    MFTAvG = [MFTAvGx; MFTAvGy; MFTAvGz];
    syms MFTCeDx MFTCeDy MFTCeDz real;
    MFTCeD = [MFTCeDx; MFTCeDy; MFTCeDz];
    syms MFTArGx MFTArGy MFTArGz real;
    MFTArG = [MFTArGx; MFTArGy; MFTArGz];
    %-------------------------------%
    % Reaction coxa-femur
    syms RCFAvGx RCFAvGy RCFAvGz real ’d’;
    RCFAvG = [RCFAvGx; RCFAvGy; RCFAvGz];
    syms RCFCeDx RCFCeDy RCFCeDz real;
    RCFCeD = [RCFCeDx; RCFCeDy; RCFCeDz];
    syms RCFArGx RCFArGy RCFArGz real;
    RCFArG = [RCFArGx; RCFArGy; RCFArGz];
    syms MCFAvGx MCFAvGy MCFAvGz real;
    MCFAvG = [MCFAvGx; MCFAvGy; MCFAvGz];
    syms MCFCeDx MCFCeDy MCFCeDz real;
    MCFCeD = [MCFCeDx; MCFCeDy; MCFCeDz];
    syms MCFArGx MCFArGy MCFArGz real;
    MCFArG = [MCFArGx; MCFArGy; MCFArGz];
    %-------------------------------%
    % PGI
    %-------------------------------%
    g = 9.806E-3;
    prec = [eps;eps;eps].*rand(3,1);
    % Bras de levier en module des longueurs
    a = [0,80,100];
    b = [0,0,0];
    alpha = [pi/2,0,0];
    for o = 1:3
    HD(:,:,o) = [a;b;alpha];
    end
     
    % Position des centre de masse dans les repere des membrures
    oCDMcorps = [0;0;0];
    %oCDMtibia = [23;0;0];
    oCDMtibia = [50;0;0];
    oCDMfemur = [40;0;0];
    oCDMcoxa = [0;0;0];
    dRtibia(:,:) = [a(3);b(3);0];
    dRfemur = [a(2);b(2);0];
    dRcoxa = [a(1);b(1);0];
    dRcorps = [106,0,-106;45,-118,45;0,0,0];
    %-------------------------------%
    % PGI_hexapode
    %-------------------------------%
    % Position des extremite des pattes
    cas =1;
    if cas == 1 % Orthogonal
    pos = [106,0,-106;125,-198,125;-100,-100,-100];
     
    elseif cas == 2 % extreme ortho
    pos = dRcorps + [0,0,0;150.71,-150.71,150.71;-70.711,-70.711,-70.711];
    elseif cas == 3 % extreme total
    pos = dRcorps + [106,0,-106;106.57,-150.71,106.57;-70.711,-70.711,-70.711];
    end
     
    %-------------------------------%
    Qcorps = eye(3); % Orientation du corps
    [art,Qhex,Phex] = PGI_hexapode(pos,HD,dRcorps,Qcorps);
    mTibia = 47;
    mFemur = 62;
    mCoxa = 75;
    mCorps = 580 + 413;
    mtot = 6*(mTibia+mFemur+mCoxa)+mCorps
    Wcoxa = Qcorps*[0;0;-mCoxa*g];
    Wfemur = Qcorps*[0;0;-mFemur*g];
    Wtibia = Qcorps*[0;0;-mTibia*g];
    Wcorps = Qcorps*[0;0;-mCorps*g];
    Wtot = Wcorps + 6*(Wcoxa+Wfemur+Wtibia);
    %-------------------------------%
    % Position des centre de masse dans le repere global
    LBcdmCAvG = Qcorps*dRcorps(:,1);
    LBcdmCCeD = Qcorps*dRcorps(:,2);
    LBcdmCArG = Qcorps*dRcorps(:,3);
    % Femur
    LCFcdmAvG = Phex(:,:,2,1)*oCDMfemur;
    LCFcdmCeD = Phex(:,:,2,2)*oCDMfemur;
    LCFcdmArG = Phex(:,:,2,3)*oCDMfemur;
    LFcdmTAvG = Phex(:,:,2,1)*(dRfemur-oCDMfemur);
    LFcdmTCeD = Phex(:,:,2,2)*(dRfemur-oCDMfemur);
    LFcdmTArG = Phex(:,:,2,3)*(dRfemur-oCDMfemur);
    LFAvG = Phex(:,:,2,1)*dRfemur;
    LFCeD = Phex(:,:,2,2)*dRfemur;
    LFArG = Phex(:,:,2,3)*dRfemur;
    % Tibia
     
    LFTcdmAvG = Phex(:,:,3,1)*oCDMtibia;
    LFTcdmCeD = Phex(:,:,3,2)*oCDMtibia;
    LFTcdmArG = Phex(:,:,3,3)*oCDMtibia;
    LTcdmNAvG = Phex(:,:,3,1)*(dRtibia-oCDMtibia);
    LTcdmNCeD = Phex(:,:,3,2)*(dRtibia-oCDMtibia);
    LTcdmNArG = Phex(:,:,3,3)*(dRtibia-oCDMtibia);
    LTAvG = Phex(:,:,3,1)*(dRtibia);
    LTCeD = Phex(:,:,3,2)*(dRtibia);
    LTArG = Phex(:,:,3,3)*(dRtibia);
    %-------------------------------%
    % Systeme d’equation
    %-------------------------------%
    % Globale
    %-------------------------------%
    % Force sur dirrection Z seulement
    NAvG(1:2) = [0;0];
    NCeD(1:2) = [0;0];
    NArG(1:2) = [0;0];
    RBCAvG(1:2) = [0;0];
    RBCCeD(1:2) = [0;0];
    RBCArG(1:2) = [0;0];
    RCFAvG(1:2) = [0;0];
    RCFCeD(1:2) = [0;0];
    RCFArG(1:2) = [0;0];
    RFTAvG(1:2) = [0;0];
    RFTCeD(1:2) = [0;0];
    RFTArG(1:2) = [0;0];
    % Moment en X et Y seulement
    MBCAvG(3) = 0;
     
    MBCCeD(3) = 0;
    MBCArG(3) = 0;
    MCFAvG(3) = 0;
    MCFCeD(3) = 0;
    MCFArG(3) = 0;
    MFTAvG(3) = 0;
    MFTCeD(3) = 0;
    MFTArG(3) = 0;
    % Contraintes globales
    SFGLOB = (Wcorps + 6*(Wcoxa + Wfemur + Wtibia) + NAvG + NCeD + NArG);
    SMGLOB = (cross(LBcdmCAvG+LFAvG+LTAvG,NAvG) + cross(LBcdmCCeD+LFCeD+LTCeD,NCeD) + cross(LBcdmCArG+LFArG+LTArG,NArG) + cross(LBcdmCAvG,Wcoxa) + cross(LBcdmCCeD,Wcoxa) + cross(LBcdmCArG,Wcoxa) + cross(LBcdmCAvG+LCFcdmAvG,Wfemur) + cross(LBcdmCCeD+LCFcdmCeD,Wfemur) + cross(LBcdmCArG+LCFcdmArG,Wfemur) + cross(LBcdmCAvG+LFAvG+LFTcdmAvG,Wtibia) + cross(LBcdmCCeD+LFCeD+LFTcdmCeD,Wtibia) + cross(LBcdmCArG+LFArG+LFTcdmArG,Wtibia));
    % Resolution pour force de contact en Z
    n = solve(SFGLOB(3),SMGLOB(1),SMGLOB(2));
    NAvGz = eval(n.NAvGz);
    NCeDz = eval(n.NCeDz);
    NArGz = eval(n.NArGz);
    check = NAvGz+NCeDz+NArGz;
    %-------------------------------------------------------------------%
    % Autres equations de contrainte interne
    % Corps B
    %-------------------------------%
    % Somme force
    SFB = RBCAvG + RBCCeD + RBCArG + Wcorps + 3*(Wcoxa + Wfemur + Wtibia) + prec;
    % Somme moment (bras de levier au cdm)
    SMB = (cross(LBcdmCAvG,RBCAvG) + cross(LBcdmCCeD,RBCCeD) + cross(LBcdmCArG,RBCArG) + MBCAvG + MBCCeD + MBCArG) + prec;
    %-------------------------------%
    % Patte
    %-------------------------------%
    % Coxa C
    % Somme force
    SFCAvG = (-RBCAvG + RCFAvG + Wcoxa) + prec;
    SFCCeD = (-RBCCeD + RCFCeD + Wcoxa) + prec;
    SFCArG = (-RBCArG + RCFArG + Wcoxa) + prec;
    % Somme moment (bras de levier au cdm)
    SMCAvG = (-MBCAvG + MCFAvG) + prec;
    SMCCeD = (-MBCCeD + MCFCeD) + prec;
    SMCArG = (-MBCArG + MCFArG) + prec;
    %-------------------------------%
    % Femur F
    % Somme force
    SFFAvG = (-RCFAvG + RFTAvG + Wfemur) + prec;
    SFFCeD = (-RCFCeD + RFTCeD + Wfemur) + prec;
    SFFArG = (-RCFArG + RFTArG + Wfemur) + prec;
    % Somme moment (bras de levier au cdm)
    SMFAvG = (cross(-LCFcdmAvG,-RCFAvG) + cross(LFcdmTAvG,RFTAvG) - MCFAvG + MFTAvG) + prec;
    SMFCeD = (cross(-LCFcdmCeD,-RCFCeD) + cross(LFcdmTCeD,RFTCeD) - MCFCeD + MFTCeD) + prec;
    SMFArG = (cross(-LCFcdmArG,-RCFArG) + cross(LFcdmTArG,RFTArG) - MCFArG + MFTArG) + prec;
    %-------------------------------%
    % Tibia T
    % Somme force
    SFTAvG = (-RFTAvG + NAvG + Wtibia) + prec;
    SFTCeD = (-RFTCeD + NCeD + Wtibia) + prec;
    SFTArG = (-RFTArG + NArG + Wtibia) + prec;
    % Somme moments (bras de levier au cdm)
    SMTAvG = (cross(-LFTcdmAvG,-RFTAvG) - MFTAvG + cross(LTcdmNAvG,NAvG))+ prec;
    SMTCeD = (cross(-LFTcdmCeD,-RFTCeD) - MFTCeD + cross(LTcdmNCeD,NCeD))+ prec;
    SMTArG = (cross(-LFTcdmArG,-RFTArG) - MFTArG + cross(LTcdmNArG,NArG))+ prec;
    %-------------------------------%
    % Resolution
    %-------------------------------%
    sol = solve(SFB(3),SMB(1),SMB(2),SFCAvG(3),SMCAvG(1),SMCAvG(2),SFFAvG(3),SMFAvG(1),SMFAvG(2),SFTAvG(3),SMTAvG(1),SMTAvG(2),SFCCeD(3),SMCCeD(1),SMCCeD(2),SFFCeD(3),SMFCeD(1),SMFCeD(2),SFTCeD(3),SMTCeD(1),SMTCeD(2),SFCArG(3),SMCArG(1),SMCArG(2),SFFArG(3),SMFArG(1),SMFArG(2),SFTArG(3),SMTArG(1),SMTArG(2));
    NAvGz = eval(sol.NAvGz);
    NCeDz = eval(sol.NCeDz);
    NArGz = eval(sol.NArGz);
    check = NAvGz+NCeDz+NArGz;
    MBCAvGx = eval(sol.MBCArGx);
    MBCCeDx = eval(sol.MBCCeDx);
    MBCArGx = eval(sol.MBCAvGx);
    MBCArGy = eval(sol.MBCArGy);
    MBCCeDy = eval(sol.MBCCeDy);
    MBCArGy = eval(sol.MBCAvGy);
    MCFAvGx = eval(sol.MCFArGx);
    MCFCeDx = eval(sol.MCFCeDx);
    MCFArGx = eval(sol.MCFAvGx);
    MCFAvGy = eval(sol.MCFArGy);
    MCFCeDy = eval(sol.MCFCeDy);
    MCFArGy = eval(sol.MCFAvGy);
    MFTAvGx = eval(sol.MFTArGx);
    MFTCeDx = eval(sol.MFTCeDx);
    MFTArGx = eval(sol.MFTAvGx);
    MFTAvGy = eval(sol.MFTAvGy);
    MFTCeDy = eval(sol.MFTCeDy);
    MFTArGy = eval(sol.MFTArGy);
    RBCArGz = eval(sol.RBCArGz);
    RBCCeDz = eval(sol.RBCCeDz);
    RBCAvGz = eval(sol.RBCAvGz);
    RCFAvGz = eval(sol.RCFAvGz);
    RCFCeDz = eval(sol.RCFCeDz);
    RCFArGz = eval(sol.RCFArGz);
    RFTAvGz = eval(sol.RFTAvGz);
    RFTCeDz = eval(sol.RFTCeDz);
    RFTArGz = eval(sol.RFTArGz);
    MCFAvG_patte = Phex(:,:,2,1)’*MCFAvG;
    subs(MCFAvG_patte)
    MCFCeD_patte = Phex(:,:,2,2)’*MCFCeD;
    subs(MCFCeD_patte)
    MCFArG_patte = Phex(:,:,2,3)’*MCFArG;
    subs(MCFArG_patte)
    %-------------------------------%
    affichage = 1;
    if affichage == 1
    figure;
    hold on;
    plot3([LBcdmCAvG(1),LBcdmCCeD(1),LBcdmCArG(1),LBcdmCAvG(1)],[LBcdmCAvG(2),LBcdmCCeD(2),LBcdmCArG(2),LBcdmCAvG(2)],[LBcdmCAvG(3),LBcdmCCeD(3),LBcdmCArG(3),LBcdmCAvG(3)],’k-’);
    plot3([0, LBcdmCAvG(1), LBcdmCAvG(1)+LFAvG(1), LBcdmCAvG(1)+LFAvG(1)+LTAvG(1)],[0, LBcdmCAvG(2), LBcdmCAvG(2)+LFAvG(2), LBcdmCAvG(2)+LFAvG(2)+LTAvG(2)],[0, LBcdmCAvG(3), LBcdmCAvG(3)+LFAvG(3), LBcdmCAvG(3)+LFAvG(3)+LTAvG(3)],’o-b’);
    plot3([0, LBcdmCCeD(1), LBcdmCCeD(1)+LFCeD(1), LBcdmCCeD(1)+LFCeD(1)+LTCeD(1)],[0, LBcdmCCeD(2), LBcdmCCeD(2)+LFCeD(2), LBcdmCCeD(2)+LFCeD(2)+LTCeD(2)],[0, LBcdmCCeD(3), LBcdmCCeD(3)+LFCeD(3), LBcdmCCeD(3)+LFCeD(3)+LTCeD(3)],’o-r’);
    plot3([0, LBcdmCArG(1), LBcdmCArG(1)+LFArG(1), LBcdmCArG(1)+LFArG(1)+LTArG(1)],[0, LBcdmCArG(2), LBcdmCArG(2)+LFArG(2), LBcdmCArG(2)+LFArG(2)+LTArG(2)],[0, LBcdmCArG(3), LBcdmCArG(3)+LFArG(3), LBcdmCArG(3)+LFArG(3)+LTArG(3)],’o-g’);
    % Femur
    plot3(LBcdmCAvG(1)+LCFcdmAvG(1), LBcdmCAvG(2)+LCFcdmAvG(2),LBcdmCAvG(3)+LCFcdmAvG(3),’xk’);
    plot3(LBcdmCCeD(1)+LCFcdmCeD(1), LBcdmCCeD(2)+LCFcdmCeD(2),LBcdmCCeD(3)+LCFcdmCeD(3),’xk’);
    plot3(LBcdmCArG(1)+LCFcdmArG(1), LBcdmCArG(2)+LCFcdmArG(2),LBcdmCArG(3)+LCFcdmArG(3),’xk’);
    % Tibia
    plot3(LBcdmCAvG(1)+LFAvG(1)+LFTcdmAvG(1),LBcdmCAvG(2)+LFAvG(2)+LFTcdmAvG(2), LBcdmCAvG(3)+LFAvG(3)+LFTcdmAvG(3),’xk’);
    plot3(LBcdmCCeD(1)+LFCeD(1)+LFTcdmCeD(1),LBcdmCCeD(2)+LFCeD(2)+LFTcdmCeD(2),LBcdmCCeD(3)+LFCeD(3)+LFTcdmCeD(3),’xk’);
    plot3(LBcdmCArG(1)+LFArG(1)+LFTcdmArG(1),LBcdmCArG(2)+LFArG(2)+LFTcdmArG(2),LBcdmCArG(3)+LFArG(3)+LFTcdmArG(3),’xk’);
    xlabel(’X’); ylabel(’Y’); zlabel(’Z’);
    axis equal;
    % view(3)
    view([0,0,180]);
    % Affichage du cercle de contact
    [cC,r] = cercle3pts(pos(1:2,:));
    t = 0:0.01:2*pi+0.01;
    for o = 1:size(t,2)
    x(o) = cC(1) + r*cos(t(o));
    y(o) = cC(2) + r*sin(t(o));
    end
    plot3(x,y,ones(1,size(x,2))*pos(3,1),’c-’);
    plot3(cC(1),cC(2),pos(3,1),’c+’);
    % Affichage du cercle d’ancrage
    [cA,r] = cercle3pts(dRcorps(1:2,:));
    t = 0:0.01:2*pi+0.01;
    for o = 1:size(t,2)
    x(o) = cA(1) + r*cos(t(o));
    y(o) = cA(2) + r*sin(t(o));
    end
    plot3(x,y,ones(1,size(x,2))*pos(3,1),’m-’);
    plot3(cA(1),cA(2),pos(3,1),’m+’);
    distCentre = norm(cA-cC)
    end

  2. #2
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 302
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 302
    Points : 53 163
    Points
    53 163
    Par défaut
    Il nous faudrait le message d'erreur complet

    Possèdes-tu la Symbolic Math Toolbox ?
    Voir la FAQ : Comment connaitre la liste des Toolbox installées sur un ordinateur ?
    Ingénieur indépendant en mécatronique - Conseil, conception et formation
    • Conception mécanique (Autodesk Fusion 360)
    • Impression 3D (Ultimaker)
    • Développement informatique (Python, MATLAB, C)
    • Programmation de microcontrôleur (Microchip PIC, ESP32, Raspberry Pi, Arduino…)

    « J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" » (Saint Huck)

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Août 2016
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Distribution

    Informations forums :
    Inscription : Août 2016
    Messages : 8
    Points : 1
    Points
    1
    Par défaut
    Merci pour votre réactivité .

    Je vais essayé de voir si j'ai se que tu me dis et je reviendrais vers toi.
    Est ce que cette erreure n'est pas due à une version de Matlab trop récente ?(j'utilise le 2016) or j'utilise un code Matlab de 2006 !!

  4. #4
    Nouveau Candidat au Club
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Août 2016
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Distribution

    Informations forums :
    Inscription : Août 2016
    Messages : 8
    Points : 1
    Points
    1
    Par défaut
    Voici la liste

    ----------------------------------------------------------------------------------------------------
    MATLAB Version: 9.0.0.341360 (R2016a)
    MATLAB License Number: DEMO
    Operating System: Microsoft Windows 8.1 Version 6.3 (Build 9600)
    Java Version: Java 1.7.0_60-b19 with Oracle Corporation Java HotSpot(TM) 64-Bit Server VM mixed mode
    ----------------------------------------------------------------------------------------------------
    MATLAB                                                Version 9.0         (R2016a)
    Curve Fitting Toolbox                                 Version 3.5.3       (R2016a)
    Database Toolbox                                      Version 6.1         (R2016a)
    Global Optimization Toolbox                           Version 3.4         (R2016a)
    Neural Network Toolbox                                Version 9.0         (R2016a)
    Optimization Toolbox                                  Version 7.4         (R2016a)
    Parallel Computing Toolbox                            Version 6.8         (R2016a)
    Statistics and Machine Learning Toolbox               Version 10.2        (R2016a)
    Symbolic Math Toolbox                                 Version 7.0         (R2016a)
    

  5. #5
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 302
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 302
    Points : 53 163
    Points
    53 163
    Par défaut
    L'erreur ne se trouve pas dans la fonction syms mais dans le code que tu utilises.

    Fais un copier/coller de l'ensemble du message d'erreur (toutes les lignes en rouge)

    Il me semble voir des caractères bizarres dans le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    syms NAvGx NAvGy NAvGz real d;
    Remplace déjà tous ces caractères par des guillemets simples ' dans toutes les lignes de code concernées.
    Ingénieur indépendant en mécatronique - Conseil, conception et formation
    • Conception mécanique (Autodesk Fusion 360)
    • Impression 3D (Ultimaker)
    • Développement informatique (Python, MATLAB, C)
    • Programmation de microcontrôleur (Microchip PIC, ESP32, Raspberry Pi, Arduino…)

    « J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" » (Saint Huck)

  6. #6
    Nouveau Candidat au Club
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Août 2016
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Distribution

    Informations forums :
    Inscription : Août 2016
    Messages : 8
    Points : 1
    Points
    1
    Par défaut
    j'ai midifier pour les guillemets
    voici le code modifié

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    241
    242
    243
    244
    245
    246
    247
    248
    249
    250
    251
    252
    253
    254
    255
    256
    257
    258
    259
    260
    261
    262
    263
    264
    265
    266
    267
    268
    269
    270
    271
    272
    273
    274
    275
    276
    277
    278
    279
    280
    281
    282
    283
    284
    285
    286
    287
    288
    289
    290
    291
    Trial>> clear all; clc; close all; digits(25);
    %-------------------------------%
    % Initialisation des parametres
    %-------------------------------%
    % Force de contact au pattes
    syms NAvGx NAvGy NAvGz real 'd';
    NAvG = [NAvGx; NAvGy; NAvGz];
    syms NCeDx NCeDy NCeDz real 'd';
    NCeD = [NCeDx; NCeDy; NCeDz];
    syms NArGx NArGy NArGz real 'd';
    NArG = [NArGx; NArGy; NArGz];
    %-------------------------------%
    %-------------------------------%
    % Reaction corps-coxa
    syms RBCAvGx RBCAvGy RBCAvGz real;
    RBCAvG = [RBCAvGx; RBCAvGy; RBCAvGz];
    syms RBCCeDx RBCCeDy RBCCeDz real;
    RBCCeD = [RBCCeDx; RBCCeDy; RBCCeDz];
    syms RBCArGx RBCArGy RBCArGz real;
    RBCArG = [RBCArGx; RBCArGy; RBCArGz];
    syms MBCAvGx MBCAvGy MBCAvGz real;
    MBCAvG = [MBCAvGx; MBCAvGy; MBCAvGz];
    syms MBCCeDx MBCCeDy MBCCeDz real;
    MBCCeD = [MBCCeDx; MBCCeDy; MBCCeDz];
    syms MBCArGx MBCArGy MBCArGz real;
    MBCArG = [MBCArGx; MBCArGy; MBCArGz];
    %-------------------------------%
    % Reaction femur-tibia
    syms RFTAvGx RFTAvGy RFTAvGz real;
    RFTAvG = [RFTAvGx; RFTAvGy; RFTAvGz];
    syms RFTCeDx RFTCeDy RFTCeDz real;
    RFTCeD = [RFTCeDx; RFTCeDy; RFTCeDz];
    syms RFTArGx RFTArGy RFTArGz real;
    RFTArG = [RFTArGx; RFTArGy; RFTArGz];
    syms MFTAvGx MFTAvGy MFTAvGz real;
     
    MFTAvG = [MFTAvGx; MFTAvGy; MFTAvGz];
    syms MFTCeDx MFTCeDy MFTCeDz real;
    MFTCeD = [MFTCeDx; MFTCeDy; MFTCeDz];
    syms MFTArGx MFTArGy MFTArGz real;
    MFTArG = [MFTArGx; MFTArGy; MFTArGz];
    %-------------------------------%
    % Reaction coxa-femur
    syms RCFAvGx RCFAvGy RCFAvGz real 'd';
    RCFAvG = [RCFAvGx; RCFAvGy; RCFAvGz];
    syms RCFCeDx RCFCeDy RCFCeDz real;
    RCFCeD = [RCFCeDx; RCFCeDy; RCFCeDz];
    syms RCFArGx RCFArGy RCFArGz real;
    RCFArG = [RCFArGx; RCFArGy; RCFArGz];
    syms MCFAvGx MCFAvGy MCFAvGz real;
    MCFAvG = [MCFAvGx; MCFAvGy; MCFAvGz];
    syms MCFCeDx MCFCeDy MCFCeDz real;
    MCFCeD = [MCFCeDx; MCFCeDy; MCFCeDz];
    syms MCFArGx MCFArGy MCFArGz real;
    MCFArG = [MCFArGx; MCFArGy; MCFArGz];
    %-------------------------------%
    % PGI
    %-------------------------------%
    g = 9.806E-3;
    prec = [eps;eps;eps].*rand(3,1);
    % Bras de levier en module des longueurs
    a = [0,80,100];
    b = [0,0,0];
    alpha = [pi/2,0,0];
    for o = 1:3
    HD(:,:,o) = [a;b;alpha];
    end
     
    % Position des centre de masse dans les repere des membrures
    oCDMcorps = [0;0;0];
    %oCDMtibia = [23;0;0];
    oCDMtibia = [50;0;0];
    oCDMfemur = [40;0;0];
    oCDMcoxa = [0;0;0];
    dRtibia(:,:) = [a(3);b(3);0];
    dRfemur = [a(2);b(2);0];
    dRcoxa = [a(1);b(1);0];
    dRcorps = [106,0,-106;45,-118,45;0,0,0];
    %-------------------------------%
    % PGI_hexapode
    %-------------------------------%
    % Position des extremite des pattes
    cas =1;
    if cas == 1 % Orthogonal
    pos = [106,0,-106;125,-198,125;-100,-100,-100];
     
    elseif cas == 2 % extreme ortho
    pos = dRcorps + [0,0,0;150.71,-150.71,150.71;-70.711,-70.711,-70.711];
    elseif cas == 3 % extreme total
    pos = dRcorps + [106,0,-106;106.57,-150.71,106.57;-70.711,-70.711,-70.711];
    end
     
    %-------------------------------%
    Qcorps = eye(3); % Orientation du corps
    [art,Qhex,Phex] = PGI_hexapode(pos,HD,dRcorps,Qcorps);
    mTibia = 47;
    mFemur = 62;
    mCoxa = 75;
    mCorps = 580 + 413;
    mtot = 6*(mTibia+mFemur+mCoxa)+mCorps
    Wcoxa = Qcorps*[0;0;-mCoxa*g];
    Wfemur = Qcorps*[0;0;-mFemur*g];
    Wtibia = Qcorps*[0;0;-mTibia*g];
    Wcorps = Qcorps*[0;0;-mCorps*g];
    Wtot = Wcorps + 6*(Wcoxa+Wfemur+Wtibia);
    %-------------------------------%
    % Position des centre de masse dans le repere global
    LBcdmCAvG = Qcorps*dRcorps(:,1);
    LBcdmCCeD = Qcorps*dRcorps(:,2);
    LBcdmCArG = Qcorps*dRcorps(:,3);
    % Femur
    LCFcdmAvG = Phex(:,:,2,1)*oCDMfemur;
    LCFcdmCeD = Phex(:,:,2,2)*oCDMfemur;
    LCFcdmArG = Phex(:,:,2,3)*oCDMfemur;
    LFcdmTAvG = Phex(:,:,2,1)*(dRfemur-oCDMfemur);
    LFcdmTCeD = Phex(:,:,2,2)*(dRfemur-oCDMfemur);
    LFcdmTArG = Phex(:,:,2,3)*(dRfemur-oCDMfemur);
    LFAvG = Phex(:,:,2,1)*dRfemur;
    LFCeD = Phex(:,:,2,2)*dRfemur;
    LFArG = Phex(:,:,2,3)*dRfemur;
    % Tibia
     
    LFTcdmAvG = Phex(:,:,3,1)*oCDMtibia;
    LFTcdmCeD = Phex(:,:,3,2)*oCDMtibia;
    LFTcdmArG = Phex(:,:,3,3)*oCDMtibia;
    LTcdmNAvG = Phex(:,:,3,1)*(dRtibia-oCDMtibia);
    LTcdmNCeD = Phex(:,:,3,2)*(dRtibia-oCDMtibia);
    LTcdmNArG = Phex(:,:,3,3)*(dRtibia-oCDMtibia);
    LTAvG = Phex(:,:,3,1)*(dRtibia);
    LTCeD = Phex(:,:,3,2)*(dRtibia);
    LTArG = Phex(:,:,3,3)*(dRtibia);
    %-------------------------------%
    % Systeme d’equation
    %-------------------------------%
    % Globale
    %-------------------------------%
    % Force sur dirrection Z seulement
    NAvG(1:2) = [0;0];
    NCeD(1:2) = [0;0];
    NArG(1:2) = [0;0];
    RBCAvG(1:2) = [0;0];
    RBCCeD(1:2) = [0;0];
    RBCArG(1:2) = [0;0];
    RCFAvG(1:2) = [0;0];
    RCFCeD(1:2) = [0;0];
    RCFArG(1:2) = [0;0];
    RFTAvG(1:2) = [0;0];
    RFTCeD(1:2) = [0;0];
    RFTArG(1:2) = [0;0];
    % Moment en X et Y seulement
    MBCAvG(3) = 0;
     
    MBCCeD(3) = 0;
    MBCArG(3) = 0;
    MCFAvG(3) = 0;
    MCFCeD(3) = 0;
    MCFArG(3) = 0;
    MFTAvG(3) = 0;
    MFTCeD(3) = 0;
    MFTArG(3) = 0;
    % Contraintes globales
    SFGLOB = (Wcorps + 6*(Wcoxa + Wfemur + Wtibia) + NAvG + NCeD + NArG);
    SMGLOB = (cross(LBcdmCAvG+LFAvG+LTAvG,NAvG) + cross(LBcdmCCeD+LFCeD+LTCeD,NCeD) + cross(LBcdmCArG+LFArG+LTArG,NArG) + cross(LBcdmCAvG,Wcoxa) + cross(LBcdmCCeD,Wcoxa) + cross(LBcdmCArG,Wcoxa) + cross(LBcdmCAvG+LCFcdmAvG,Wfemur) + cross(LBcdmCCeD+LCFcdmCeD,Wfemur) + cross(LBcdmCArG+LCFcdmArG,Wfemur) + cross(LBcdmCAvG+LFAvG+LFTcdmAvG,Wtibia) + cross(LBcdmCCeD+LFCeD+LFTcdmCeD,Wtibia) + cross(LBcdmCArG+LFArG+LFTcdmArG,Wtibia));
    % Resolution pour force de contact en Z
    n = solve(SFGLOB(3),SMGLOB(1),SMGLOB(2));
    NAvGz = eval(n.NAvGz);
    NCeDz = eval(n.NCeDz);
    NArGz = eval(n.NArGz);
    check = NAvGz+NCeDz+NArGz;
    %-------------------------------------------------------------------%
    % Autres equations de contrainte interne
    % Corps B
    %-------------------------------%
    % Somme force
    SFB = RBCAvG + RBCCeD + RBCArG + Wcorps + 3*(Wcoxa + Wfemur + Wtibia) + prec;
    % Somme moment (bras de levier au cdm)
    SMB = (cross(LBcdmCAvG,RBCAvG) + cross(LBcdmCCeD,RBCCeD) + cross(LBcdmCArG,RBCArG) + MBCAvG + MBCCeD + MBCArG) + prec;
    %-------------------------------%
    % Patte
    %-------------------------------%
    % Coxa C
    % Somme force
    SFCAvG = (-RBCAvG + RCFAvG + Wcoxa) + prec;
    SFCCeD = (-RBCCeD + RCFCeD + Wcoxa) + prec;
    SFCArG = (-RBCArG + RCFArG + Wcoxa) + prec;
    % Somme moment (bras de levier au cdm)
    SMCAvG = (-MBCAvG + MCFAvG) + prec;
    SMCCeD = (-MBCCeD + MCFCeD) + prec;
    SMCArG = (-MBCArG + MCFArG) + prec;
    %-------------------------------%
    % Femur F
    % Somme force
    SFFAvG = (-RCFAvG + RFTAvG + Wfemur) + prec;
    SFFCeD = (-RCFCeD + RFTCeD + Wfemur) + prec;
    SFFArG = (-RCFArG + RFTArG + Wfemur) + prec;
    % Somme moment (bras de levier au cdm)
    SMFAvG = (cross(-LCFcdmAvG,-RCFAvG) + cross(LFcdmTAvG,RFTAvG) - MCFAvG + MFTAvG) + prec;
    SMFCeD = (cross(-LCFcdmCeD,-RCFCeD) + cross(LFcdmTCeD,RFTCeD) - MCFCeD + MFTCeD) + prec;
    SMFArG = (cross(-LCFcdmArG,-RCFArG) + cross(LFcdmTArG,RFTArG) - MCFArG + MFTArG) + prec;
    %-------------------------------%
    % Tibia T
    % Somme force
    SFTAvG = (-RFTAvG + NAvG + Wtibia) + prec;
    SFTCeD = (-RFTCeD + NCeD + Wtibia) + prec;
    SFTArG = (-RFTArG + NArG + Wtibia) + prec;
    % Somme moments (bras de levier au cdm)
    SMTAvG = (cross(-LFTcdmAvG,-RFTAvG) - MFTAvG + cross(LTcdmNAvG,NAvG))+ prec;
    SMTCeD = (cross(-LFTcdmCeD,-RFTCeD) - MFTCeD + cross(LTcdmNCeD,NCeD))+ prec;
    SMTArG = (cross(-LFTcdmArG,-RFTArG) - MFTArG + cross(LTcdmNArG,NArG))+ prec;
    %-------------------------------%
    % Resolution
    %-------------------------------%
    sol = solve(SFB(3),SMB(1),SMB(2),SFCAvG(3),SMCAvG(1),SMCAvG(2),SFFAvG(3),SMFAvG(1),SMFAvG(2),SFTAvG(3),SMTAvG(1),SMTAvG(2),SFCCeD(3),SMCCeD(1),SMCCeD(2),SFFCeD(3),SMFCeD(1),SMFCeD(2),SFTCeD(3),SMTCeD(1),SMTCeD(2),SFCArG(3),SMCArG(1),SMCArG(2),SFFArG(3),SMFArG(1),SMFArG(2),SFTArG(3),SMTArG(1),SMTArG(2));
    NAvGz = eval(sol.NAvGz);
    NCeDz = eval(sol.NCeDz);
    NArGz = eval(sol.NArGz);
    check = NAvGz+NCeDz+NArGz;
    MBCAvGx = eval(sol.MBCArGx);
    MBCCeDx = eval(sol.MBCCeDx);
    MBCArGx = eval(sol.MBCAvGx);
    MBCArGy = eval(sol.MBCArGy);
    MBCCeDy = eval(sol.MBCCeDy);
    MBCArGy = eval(sol.MBCAvGy);
    MCFAvGx = eval(sol.MCFArGx);
    MCFCeDx = eval(sol.MCFCeDx);
    MCFArGx = eval(sol.MCFAvGx);
    MCFAvGy = eval(sol.MCFArGy);
    MCFCeDy = eval(sol.MCFCeDy);
    MCFArGy = eval(sol.MCFAvGy);
    MFTAvGx = eval(sol.MFTArGx);
    MFTCeDx = eval(sol.MFTCeDx);
    MFTArGx = eval(sol.MFTAvGx);
    MFTAvGy = eval(sol.MFTAvGy);
    MFTCeDy = eval(sol.MFTCeDy);
    MFTArGy = eval(sol.MFTArGy);
    RBCArGz = eval(sol.RBCArGz);
    RBCCeDz = eval(sol.RBCCeDz);
    RBCAvGz = eval(sol.RBCAvGz);
    RCFAvGz = eval(sol.RCFAvGz);
    RCFCeDz = eval(sol.RCFCeDz);
    RCFArGz = eval(sol.RCFArGz);
    RFTAvGz = eval(sol.RFTAvGz);
    RFTCeDz = eval(sol.RFTCeDz);
    RFTArGz = eval(sol.RFTArGz);
    MCFAvG_patte = Phex(:,:,2,1)'*MCFAvG;
    subs(MCFAvG_patte)
    MCFCeD_patte = Phex(:,:,2,2)'*MCFCeD;
    subs(MCFCeD_patte)
    MCFArG_patte = Phex(:,:,2,3)'*MCFArG;
    subs(MCFArG_patte)
    %-------------------------------%
    affichage = 1;
    if affichage == 1
    figure;
    hold on;
    plot3([LBcdmCAvG(1),LBcdmCCeD(1),LBcdmCArG(1),LBcdmCAvG(1)],[LBcdmCAvG(2),LBcdmCCeD(2),LBcdmCArG(2),LBcdmCAvG(2)],[LBcdmCAvG(3),LBcdmCCeD(3),LBcdmCArG(3),LBcdmCAvG(3)],'k-');
    plot3([0, LBcdmCAvG(1), LBcdmCAvG(1)+LFAvG(1), LBcdmCAvG(1)+LFAvG(1)+LTAvG(1)],[0, LBcdmCAvG(2), LBcdmCAvG(2)+LFAvG(2), LBcdmCAvG(2)+LFAvG(2)+LTAvG(2)],[0, LBcdmCAvG(3), LBcdmCAvG(3)+LFAvG(3), LBcdmCAvG(3)+LFAvG(3)+LTAvG(3)],'o-b');
    plot3([0, LBcdmCCeD(1), LBcdmCCeD(1)+LFCeD(1), LBcdmCCeD(1)+LFCeD(1)+LTCeD(1)],[0, LBcdmCCeD(2), LBcdmCCeD(2)+LFCeD(2), LBcdmCCeD(2)+LFCeD(2)+LTCeD(2)],[0, LBcdmCCeD(3), LBcdmCCeD(3)+LFCeD(3), LBcdmCCeD(3)+LFCeD(3)+LTCeD(3)],'o-r');
    plot3([0, LBcdmCArG(1), LBcdmCArG(1)+LFArG(1), LBcdmCArG(1)+LFArG(1)+LTArG(1)],[0, LBcdmCArG(2), LBcdmCArG(2)+LFArG(2), LBcdmCArG(2)+LFArG(2)+LTArG(2)],[0, LBcdmCArG(3), LBcdmCArG(3)+LFArG(3), LBcdmCArG(3)+LFArG(3)+LTArG(3)],'o-g');
    % Femur
    plot3(LBcdmCAvG(1)+LCFcdmAvG(1), LBcdmCAvG(2)+LCFcdmAvG(2),LBcdmCAvG(3)+LCFcdmAvG(3),'xk');
    plot3(LBcdmCCeD(1)+LCFcdmCeD(1), LBcdmCCeD(2)+LCFcdmCeD(2),LBcdmCCeD(3)+LCFcdmCeD(3),'xk');
    plot3(LBcdmCArG(1)+LCFcdmArG(1), LBcdmCArG(2)+LCFcdmArG(2),LBcdmCArG(3)+LCFcdmArG(3),'xk');
    % Tibia
    plot3(LBcdmCAvG(1)+LFAvG(1)+LFTcdmAvG(1),LBcdmCAvG(2)+LFAvG(2)+LFTcdmAvG(2), LBcdmCAvG(3)+LFAvG(3)+LFTcdmAvG(3),'xk');
    plot3(LBcdmCCeD(1)+LFCeD(1)+LFTcdmCeD(1),LBcdmCCeD(2)+LFCeD(2)+LFTcdmCeD(2),LBcdmCCeD(3)+LFCeD(3)+LFTcdmCeD(3),'xk');
    plot3(LBcdmCArG(1)+LFArG(1)+LFTcdmArG(1),LBcdmCArG(2)+LFArG(2)+LFTcdmArG(2),LBcdmCArG(3)+LFArG(3)+LFTcdmArG(3),'xk');
    xlabel('X'); ylabel('Y'); zlabel('Z');
    axis equal;
    % view(3)
    view([0,0,180]);
    % Affichage du cercle de contact
    [cC,r] = cercle3pts(pos(1:2,:)');
    t = 0:0.01:2*pi+0.01;
    for o = 1:size(t,2)
    x(o) = cC(1) + r*cos(t(o));
    y(o) = cC(2) + r*sin(t(o));
    end
    plot3(x,y,ones(1,size(x,2))*pos(3,1),'c-');
    plot3(cC(1),cC(2),pos(3,1),'c+');
    % Affichage du cercle d’ancrage
    [cA,r] = cercle3pts(dRcorps(1:2,:)');
    t = 0:0.01:2*pi+0.01;
    for o = 1:size(t,2)
    x(o) = cA(1) + r*cos(t(o));
    y(o) = cA(2) + r*sin(t(o));
    end
    plot3(x,y,ones(1,size(x,2))*pos(3,1),'m-');
    plot3(cA(1),cA(2),pos(3,1),'m+');
    distCentre = norm(cA-cC)
    end
    Le seul méssage d'ereur que j'obtien c'est ca
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Error using syms (line 89)
    Not a valid variable name.
    Je n'ai pas l'habitude d'utiliser matlab

  7. #7
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 302
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 302
    Points : 53 163
    Points
    53 163
    Par défaut
    Je ne connais pas bien cette toolbox mais essaie en supprimant les 'd' à la fin des premières lignes de code commençant par syms
    Ingénieur indépendant en mécatronique - Conseil, conception et formation
    • Conception mécanique (Autodesk Fusion 360)
    • Impression 3D (Ultimaker)
    • Développement informatique (Python, MATLAB, C)
    • Programmation de microcontrôleur (Microchip PIC, ESP32, Raspberry Pi, Arduino…)

    « J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" » (Saint Huck)

  8. #8
    Nouveau Candidat au Club
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Août 2016
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Distribution

    Informations forums :
    Inscription : Août 2016
    Messages : 8
    Points : 1
    Points
    1
    Par défaut
    j'ai enlever ce que tu ma dis et c'est beaucoup mieux , toutes les variables apparaissent .
    Mais j'ai encore une erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Undefined function or variable 'PGI_hexapode'.
    voici le code modifié
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    241
    242
    243
    244
    245
    246
    247
    248
    249
    250
    251
    252
    253
    254
    255
    256
    257
    258
    259
    260
    261
    262
    263
    264
    265
    266
    267
    268
    269
    270
    271
    272
    273
    274
    275
    276
    277
    278
    279
    280
    281
    282
    283
    284
    285
    286
    287
    288
    289
    290
    291
    clear all; clc; close all; digits(25);
    %-------------------------------%
    % Initialisation des parametres
    %-------------------------------%
    % Force de contact au pattes
    syms NAvGx NAvGy NAvGz real ;
    NAvG = [NAvGx; NAvGy; NAvGz];
    syms NCeDx NCeDy NCeDz real ;
    NCeD = [NCeDx; NCeDy; NCeDz];
    syms NArGx NArGy NArGz real ;
    NArG = [NArGx; NArGy; NArGz];
    %-------------------------------%
    %-------------------------------%
    % Reaction corps-coxa
    syms RBCAvGx RBCAvGy RBCAvGz real;
    RBCAvG = [RBCAvGx; RBCAvGy; RBCAvGz];
    syms RBCCeDx RBCCeDy RBCCeDz real;
    RBCCeD = [RBCCeDx; RBCCeDy; RBCCeDz];
    syms RBCArGx RBCArGy RBCArGz real;
    RBCArG = [RBCArGx; RBCArGy; RBCArGz];
    syms MBCAvGx MBCAvGy MBCAvGz real;
    MBCAvG = [MBCAvGx; MBCAvGy; MBCAvGz];
    syms MBCCeDx MBCCeDy MBCCeDz real;
    MBCCeD = [MBCCeDx; MBCCeDy; MBCCeDz];
    syms MBCArGx MBCArGy MBCArGz real;
    MBCArG = [MBCArGx; MBCArGy; MBCArGz];
    %-------------------------------%
    % Reaction femur-tibia
    syms RFTAvGx RFTAvGy RFTAvGz real;
    RFTAvG = [RFTAvGx; RFTAvGy; RFTAvGz];
    syms RFTCeDx RFTCeDy RFTCeDz real;
    RFTCeD = [RFTCeDx; RFTCeDy; RFTCeDz];
    syms RFTArGx RFTArGy RFTArGz real;
    RFTArG = [RFTArGx; RFTArGy; RFTArGz];
    syms MFTAvGx MFTAvGy MFTAvGz real;
     
    MFTAvG = [MFTAvGx; MFTAvGy; MFTAvGz];
    syms MFTCeDx MFTCeDy MFTCeDz real;
    MFTCeD = [MFTCeDx; MFTCeDy; MFTCeDz];
    syms MFTArGx MFTArGy MFTArGz real;
    MFTArG = [MFTArGx; MFTArGy; MFTArGz];
    %-------------------------------%
    % Reaction coxa-femur
    syms RCFAvGx RCFAvGy RCFAvGz real ;
    RCFAvG = [RCFAvGx; RCFAvGy; RCFAvGz];
    syms RCFCeDx RCFCeDy RCFCeDz real;
    RCFCeD = [RCFCeDx; RCFCeDy; RCFCeDz];
    syms RCFArGx RCFArGy RCFArGz real;
    RCFArG = [RCFArGx; RCFArGy; RCFArGz];
    syms MCFAvGx MCFAvGy MCFAvGz real;
    MCFAvG = [MCFAvGx; MCFAvGy; MCFAvGz];
    syms MCFCeDx MCFCeDy MCFCeDz real;
    MCFCeD = [MCFCeDx; MCFCeDy; MCFCeDz];
    syms MCFArGx MCFArGy MCFArGz real;
    MCFArG = [MCFArGx; MCFArGy; MCFArGz];
    %-------------------------------%
    % PGI
    %-------------------------------%
    g = 9.806E-3;
    prec = [eps;eps;eps].*rand(3,1);
    % Bras de levier en module des longueurs
    a = [0,80,100];
    b = [0,0,0];
    alpha = [pi/2,0,0];
    for o = 1:3
    HD(:,:,o) = [a;b;alpha];
    end
     
    % Position des centre de masse dans les repere des membrures
    oCDMcorps = [0;0;0];
    %oCDMtibia = [23;0;0];
    oCDMtibia = [50;0;0];
    oCDMfemur = [40;0;0];
    oCDMcoxa = [0;0;0];
    dRtibia(:,:) = [a(3);b(3);0];
    dRfemur = [a(2);b(2);0];
    dRcoxa = [a(1);b(1);0];
    dRcorps = [106,0,-106;45,-118,45;0,0,0];
    %-------------------------------%
    % PGI_hexapode
    %-------------------------------%
    % Position des extremite des pattes
    cas =1;
    if cas == 1 % Orthogonal
    pos = [106,0,-106;125,-198,125;-100,-100,-100];
     
    elseif cas == 2 % extreme ortho
    pos = dRcorps + [0,0,0;150.71,-150.71,150.71;-70.711,-70.711,-70.711];
    elseif cas == 3 % extreme total
    pos = dRcorps + [106,0,-106;106.57,-150.71,106.57;-70.711,-70.711,-70.711];
    end
     
    %-------------------------------%
    Qcorps = eye(3); % Orientation du corps
    [art,Qhex,Phex] = PGI_hexapode(pos,HD,dRcorps,Qcorps);
    mTibia = 47;
    mFemur = 62;
    mCoxa = 75;
    mCorps = 580 + 413;
    mtot = 6*(mTibia+mFemur+mCoxa)+mCorps
    Wcoxa = Qcorps*[0;0;-mCoxa*g];
    Wfemur = Qcorps*[0;0;-mFemur*g];
    Wtibia = Qcorps*[0;0;-mTibia*g];
    Wcorps = Qcorps*[0;0;-mCorps*g];
    Wtot = Wcorps + 6*(Wcoxa+Wfemur+Wtibia);
    %-------------------------------%
    % Position des centre de masse dans le repere global
    LBcdmCAvG = Qcorps*dRcorps(:,1);
    LBcdmCCeD = Qcorps*dRcorps(:,2);
    LBcdmCArG = Qcorps*dRcorps(:,3);
    % Femur
    LCFcdmAvG = Phex(:,:,2,1)*oCDMfemur;
    LCFcdmCeD = Phex(:,:,2,2)*oCDMfemur;
    LCFcdmArG = Phex(:,:,2,3)*oCDMfemur;
    LFcdmTAvG = Phex(:,:,2,1)*(dRfemur-oCDMfemur);
    LFcdmTCeD = Phex(:,:,2,2)*(dRfemur-oCDMfemur);
    LFcdmTArG = Phex(:,:,2,3)*(dRfemur-oCDMfemur);
    LFAvG = Phex(:,:,2,1)*dRfemur;
    LFCeD = Phex(:,:,2,2)*dRfemur;
    LFArG = Phex(:,:,2,3)*dRfemur;
    % Tibia
     
    LFTcdmAvG = Phex(:,:,3,1)*oCDMtibia;
    LFTcdmCeD = Phex(:,:,3,2)*oCDMtibia;
    LFTcdmArG = Phex(:,:,3,3)*oCDMtibia;
    LTcdmNAvG = Phex(:,:,3,1)*(dRtibia-oCDMtibia);
    LTcdmNCeD = Phex(:,:,3,2)*(dRtibia-oCDMtibia);
    LTcdmNArG = Phex(:,:,3,3)*(dRtibia-oCDMtibia);
    LTAvG = Phex(:,:,3,1)*(dRtibia);
    LTCeD = Phex(:,:,3,2)*(dRtibia);
    LTArG = Phex(:,:,3,3)*(dRtibia);
    %-------------------------------%
    % Systeme d’equation
    %-------------------------------%
    % Globale
    %-------------------------------%
    % Force sur dirrection Z seulement
    NAvG(1:2) = [0;0];
    NCeD(1:2) = [0;0];
    NArG(1:2) = [0;0];
    RBCAvG(1:2) = [0;0];
    RBCCeD(1:2) = [0;0];
    RBCArG(1:2) = [0;0];
    RCFAvG(1:2) = [0;0];
    RCFCeD(1:2) = [0;0];
    RCFArG(1:2) = [0;0];
    RFTAvG(1:2) = [0;0];
    RFTCeD(1:2) = [0;0];
    RFTArG(1:2) = [0;0];
    % Moment en X et Y seulement
    MBCAvG(3) = 0;
     
    MBCCeD(3) = 0;
    MBCArG(3) = 0;
    MCFAvG(3) = 0;
    MCFCeD(3) = 0;
    MCFArG(3) = 0;
    MFTAvG(3) = 0;
    MFTCeD(3) = 0;
    MFTArG(3) = 0;
    % Contraintes globales
    SFGLOB = (Wcorps + 6*(Wcoxa + Wfemur + Wtibia) + NAvG + NCeD + NArG);
    SMGLOB = (cross(LBcdmCAvG+LFAvG+LTAvG,NAvG) + cross(LBcdmCCeD+LFCeD+LTCeD,NCeD) + cross(LBcdmCArG+LFArG+LTArG,NArG) + cross(LBcdmCAvG,Wcoxa) + cross(LBcdmCCeD,Wcoxa) + cross(LBcdmCArG,Wcoxa) + cross(LBcdmCAvG+LCFcdmAvG,Wfemur) + cross(LBcdmCCeD+LCFcdmCeD,Wfemur) + cross(LBcdmCArG+LCFcdmArG,Wfemur) + cross(LBcdmCAvG+LFAvG+LFTcdmAvG,Wtibia) + cross(LBcdmCCeD+LFCeD+LFTcdmCeD,Wtibia) + cross(LBcdmCArG+LFArG+LFTcdmArG,Wtibia));
    % Resolution pour force de contact en Z
    n = solve(SFGLOB(3),SMGLOB(1),SMGLOB(2));
    NAvGz = eval(n.NAvGz);
    NCeDz = eval(n.NCeDz);
    NArGz = eval(n.NArGz);
    check = NAvGz+NCeDz+NArGz;
    %-------------------------------------------------------------------%
    % Autres equations de contrainte interne
    % Corps B
    %-------------------------------%
    % Somme force
    SFB = RBCAvG + RBCCeD + RBCArG + Wcorps + 3*(Wcoxa + Wfemur + Wtibia) + prec;
    % Somme moment (bras de levier au cdm)
    SMB = (cross(LBcdmCAvG,RBCAvG) + cross(LBcdmCCeD,RBCCeD) + cross(LBcdmCArG,RBCArG) + MBCAvG + MBCCeD + MBCArG) + prec;
    %-------------------------------%
    % Patte
    %-------------------------------%
    % Coxa C
    % Somme force
    SFCAvG = (-RBCAvG + RCFAvG + Wcoxa) + prec;
    SFCCeD = (-RBCCeD + RCFCeD + Wcoxa) + prec;
    SFCArG = (-RBCArG + RCFArG + Wcoxa) + prec;
    % Somme moment (bras de levier au cdm)
    SMCAvG = (-MBCAvG + MCFAvG) + prec;
    SMCCeD = (-MBCCeD + MCFCeD) + prec;
    SMCArG = (-MBCArG + MCFArG) + prec;
    %-------------------------------%
    % Femur F
    % Somme force
    SFFAvG = (-RCFAvG + RFTAvG + Wfemur) + prec;
    SFFCeD = (-RCFCeD + RFTCeD + Wfemur) + prec;
    SFFArG = (-RCFArG + RFTArG + Wfemur) + prec;
    % Somme moment (bras de levier au cdm)
    SMFAvG = (cross(-LCFcdmAvG,-RCFAvG) + cross(LFcdmTAvG,RFTAvG) - MCFAvG + MFTAvG) + prec;
    SMFCeD = (cross(-LCFcdmCeD,-RCFCeD) + cross(LFcdmTCeD,RFTCeD) - MCFCeD + MFTCeD) + prec;
    SMFArG = (cross(-LCFcdmArG,-RCFArG) + cross(LFcdmTArG,RFTArG) - MCFArG + MFTArG) + prec;
    %-------------------------------%
    % Tibia T
    % Somme force
    SFTAvG = (-RFTAvG + NAvG + Wtibia) + prec;
    SFTCeD = (-RFTCeD + NCeD + Wtibia) + prec;
    SFTArG = (-RFTArG + NArG + Wtibia) + prec;
    % Somme moments (bras de levier au cdm)
    SMTAvG = (cross(-LFTcdmAvG,-RFTAvG) - MFTAvG + cross(LTcdmNAvG,NAvG))+ prec;
    SMTCeD = (cross(-LFTcdmCeD,-RFTCeD) - MFTCeD + cross(LTcdmNCeD,NCeD))+ prec;
    SMTArG = (cross(-LFTcdmArG,-RFTArG) - MFTArG + cross(LTcdmNArG,NArG))+ prec;
    %-------------------------------%
    % Resolution
    %-------------------------------%
    sol = solve(SFB(3),SMB(1),SMB(2),SFCAvG(3),SMCAvG(1),SMCAvG(2),SFFAvG(3),SMFAvG(1),SMFAvG(2),SFTAvG(3),SMTAvG(1),SMTAvG(2),SFCCeD(3),SMCCeD(1),SMCCeD(2),SFFCeD(3),SMFCeD(1),SMFCeD(2),SFTCeD(3),SMTCeD(1),SMTCeD(2),SFCArG(3),SMCArG(1),SMCArG(2),SFFArG(3),SMFArG(1),SMFArG(2),SFTArG(3),SMTArG(1),SMTArG(2));
    NAvGz = eval(sol.NAvGz);
    NCeDz = eval(sol.NCeDz);
    NArGz = eval(sol.NArGz);
    check = NAvGz+NCeDz+NArGz;
    MBCAvGx = eval(sol.MBCArGx);
    MBCCeDx = eval(sol.MBCCeDx);
    MBCArGx = eval(sol.MBCAvGx);
    MBCArGy = eval(sol.MBCArGy);
    MBCCeDy = eval(sol.MBCCeDy);
    MBCArGy = eval(sol.MBCAvGy);
    MCFAvGx = eval(sol.MCFArGx);
    MCFCeDx = eval(sol.MCFCeDx);
    MCFArGx = eval(sol.MCFAvGx);
    MCFAvGy = eval(sol.MCFArGy);
    MCFCeDy = eval(sol.MCFCeDy);
    MCFArGy = eval(sol.MCFAvGy);
    MFTAvGx = eval(sol.MFTArGx);
    MFTCeDx = eval(sol.MFTCeDx);
    MFTArGx = eval(sol.MFTAvGx);
    MFTAvGy = eval(sol.MFTAvGy);
    MFTCeDy = eval(sol.MFTCeDy);
    MFTArGy = eval(sol.MFTArGy);
    RBCArGz = eval(sol.RBCArGz);
    RBCCeDz = eval(sol.RBCCeDz);
    RBCAvGz = eval(sol.RBCAvGz);
    RCFAvGz = eval(sol.RCFAvGz);
    RCFCeDz = eval(sol.RCFCeDz);
    RCFArGz = eval(sol.RCFArGz);
    RFTAvGz = eval(sol.RFTAvGz);
    RFTCeDz = eval(sol.RFTCeDz);
    RFTArGz = eval(sol.RFTArGz);
    MCFAvG_patte = Phex(:,:,2,1)'*MCFAvG;
    subs(MCFAvG_patte)
    MCFCeD_patte = Phex(:,:,2,2)'*MCFCeD;
    subs(MCFCeD_patte)
    MCFArG_patte = Phex(:,:,2,3)'*MCFArG;
    subs(MCFArG_patte)
    %-------------------------------%
    affichage = 1;
    if affichage == 1
    figure;
    hold on;
    plot3([LBcdmCAvG(1),LBcdmCCeD(1),LBcdmCArG(1),LBcdmCAvG(1)],[LBcdmCAvG(2),LBcdmCCeD(2),LBcdmCArG(2),LBcdmCAvG(2)],[LBcdmCAvG(3),LBcdmCCeD(3),LBcdmCArG(3),LBcdmCAvG(3)],'k-');
    plot3([0, LBcdmCAvG(1), LBcdmCAvG(1)+LFAvG(1), LBcdmCAvG(1)+LFAvG(1)+LTAvG(1)],[0, LBcdmCAvG(2), LBcdmCAvG(2)+LFAvG(2), LBcdmCAvG(2)+LFAvG(2)+LTAvG(2)],[0, LBcdmCAvG(3), LBcdmCAvG(3)+LFAvG(3), LBcdmCAvG(3)+LFAvG(3)+LTAvG(3)],'o-b');
    plot3([0, LBcdmCCeD(1), LBcdmCCeD(1)+LFCeD(1), LBcdmCCeD(1)+LFCeD(1)+LTCeD(1)],[0, LBcdmCCeD(2), LBcdmCCeD(2)+LFCeD(2), LBcdmCCeD(2)+LFCeD(2)+LTCeD(2)],[0, LBcdmCCeD(3), LBcdmCCeD(3)+LFCeD(3), LBcdmCCeD(3)+LFCeD(3)+LTCeD(3)],'o-r');
    plot3([0, LBcdmCArG(1), LBcdmCArG(1)+LFArG(1), LBcdmCArG(1)+LFArG(1)+LTArG(1)],[0, LBcdmCArG(2), LBcdmCArG(2)+LFArG(2), LBcdmCArG(2)+LFArG(2)+LTArG(2)],[0, LBcdmCArG(3), LBcdmCArG(3)+LFArG(3), LBcdmCArG(3)+LFArG(3)+LTArG(3)],'o-g');
    % Femur
    plot3(LBcdmCAvG(1)+LCFcdmAvG(1), LBcdmCAvG(2)+LCFcdmAvG(2),LBcdmCAvG(3)+LCFcdmAvG(3),'xk');
    plot3(LBcdmCCeD(1)+LCFcdmCeD(1), LBcdmCCeD(2)+LCFcdmCeD(2),LBcdmCCeD(3)+LCFcdmCeD(3),'xk');
    plot3(LBcdmCArG(1)+LCFcdmArG(1), LBcdmCArG(2)+LCFcdmArG(2),LBcdmCArG(3)+LCFcdmArG(3),'xk');
    % Tibia
    plot3(LBcdmCAvG(1)+LFAvG(1)+LFTcdmAvG(1),LBcdmCAvG(2)+LFAvG(2)+LFTcdmAvG(2), LBcdmCAvG(3)+LFAvG(3)+LFTcdmAvG(3),'xk');
    plot3(LBcdmCCeD(1)+LFCeD(1)+LFTcdmCeD(1),LBcdmCCeD(2)+LFCeD(2)+LFTcdmCeD(2),LBcdmCCeD(3)+LFCeD(3)+LFTcdmCeD(3),'xk');
    plot3(LBcdmCArG(1)+LFArG(1)+LFTcdmArG(1),LBcdmCArG(2)+LFArG(2)+LFTcdmArG(2),LBcdmCArG(3)+LFArG(3)+LFTcdmArG(3),'xk');
    xlabel('X'); ylabel('Y'); zlabel('Z');
    axis equal;
    % view(3)
    view([0,0,180]);
    % Affichage du cercle de contact
    [cC,r] = cercle3pts(pos(1:2,:)');
    t = 0:0.01:2*pi+0.01;
    for o = 1:size(t,2)
    x(o) = cC(1) + r*cos(t(o));
    y(o) = cC(2) + r*sin(t(o));
    end
    plot3(x,y,ones(1,size(x,2))*pos(3,1),'c-');
    plot3(cC(1),cC(2),pos(3,1),'c+');
    % Affichage du cercle d’ancrage
    [cA,r] = cercle3pts(dRcorps(1:2,:)');
    t = 0:0.01:2*pi+0.01;
    for o = 1:size(t,2)
    x(o) = cA(1) + r*cos(t(o));
    y(o) = cA(2) + r*sin(t(o));
    end
    plot3(x,y,ones(1,size(x,2))*pos(3,1),'m-');
    plot3(cA(1),cA(2),pos(3,1),'m+');
    distCentre = norm(cA-cC)
    end

  9. #9
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 302
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 302
    Points : 53 163
    Points
    53 163
    Par défaut
    En effet, le code de cette fonction n'est pas mentionné dans le mémoire

    La seule solution est de contacter l'auteur pour le lui demander…
    Ingénieur indépendant en mécatronique - Conseil, conception et formation
    • Conception mécanique (Autodesk Fusion 360)
    • Impression 3D (Ultimaker)
    • Développement informatique (Python, MATLAB, C)
    • Programmation de microcontrôleur (Microchip PIC, ESP32, Raspberry Pi, Arduino…)

    « J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" » (Saint Huck)

  10. #10
    Nouveau Candidat au Club
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Août 2016
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Distribution

    Informations forums :
    Inscription : Août 2016
    Messages : 8
    Points : 1
    Points
    1
    Par défaut
    Je ne peux pas contacter la personne car le document date de 2006

    Voici la seule ligne ou il y a l'utilisation de cette variable PGI_hexapode
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [art,Qhex,Phex] = PGI_hexapode(pos,HD,dRcorps,Qcorps);
    Donc je ne sais pas si c'est une variable vectorielle ....

    Est-ce que tu aurais une idée pour définir cette variable ??

  11. #11
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 302
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 302
    Points : 53 163
    Points
    53 163
    Par défaut
    Citation Envoyé par BusMagique Voir le message
    Je ne peux pas contacter la personne car le document date de 2006
    Et alors ? Je t'ai donné un lien pour le contacter. Pourquoi ne pas essayer ?

    Citation Envoyé par BusMagique Voir le message
    Est-ce que tu aurais une idée pour définir cette variable ??
    Ce n'est pas une variable mais une fonction => FAQ : Quelle est la différence entre un script et une fonction ?

    Donc pour résumer, si tu ne le contacte pas, tu ne pourras pas exploiter ce code.
    Ingénieur indépendant en mécatronique - Conseil, conception et formation
    • Conception mécanique (Autodesk Fusion 360)
    • Impression 3D (Ultimaker)
    • Développement informatique (Python, MATLAB, C)
    • Programmation de microcontrôleur (Microchip PIC, ESP32, Raspberry Pi, Arduino…)

    « J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" » (Saint Huck)

  12. #12
    Nouveau Candidat au Club
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Août 2016
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Distribution

    Informations forums :
    Inscription : Août 2016
    Messages : 8
    Points : 1
    Points
    1
    Par défaut
    Merci de vos réponses

    J'ai essayé de le joindre il y a ici un mois mais je n'ai pas eu de réponses . Auriez vous une idée , je test et je vous dis comment sa réagit car la fonction PGI-hexapode n'est que sur une ligne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [art,Qhex,Phex] = PGI_hexapode(pos,HD,dRcorps,Qcorps);
    merci d'avance

  13. #13
    Nouveau Candidat au Club
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Août 2016
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Distribution

    Informations forums :
    Inscription : Août 2016
    Messages : 8
    Points : 1
    Points
    1
    Par défaut
    Merci pour votre réponse ,

    je comprends à peut près l'intégralité du code car en réalité ci je ne l'ai pas montré , j'ai les équations qui composent la base du code .Ce code me permettra de savoir qu'elle est le couple nécessaire pour des servomoteurs !

    J'aimerais savoir Phex est une matrice de combien de ligne et colonne sachant que j'ai ça dans le code
    Phex(:,:,2,1) Phex(:,:,2,2) Phex(:,:,2,3) Phex(:,:,2,3) Phex(:,:,3,1) Phex(:,:,3,2) Phex(:,:,3,3)

    Phex(:,:,2,1) est l'extrait de la matrice composé de la ligne 2 et de la colonne 1 de Phex ?? soit juste un nombre (une constante ) ??



    si j'ai Position du centre de masse =Phex(:,:,2,2)*Centre de masse c'est koi Phex(:,:,2,2) ??

Discussions similaires

  1. [OpenOffice][Texte] Copier coller d'un code Matlab avec les couleurs
    Par abel413 dans le forum OpenOffice & LibreOffice
    Réponses: 3
    Dernier message: 01/08/2013, 12h48
  2. Problem avec ADPLL code Matlab
    Par julienn017 dans le forum MATLAB
    Réponses: 0
    Dernier message: 02/11/2010, 10h26
  3. [Toutes versions] code alerte avec marge d'erreur d'un nombre
    Par croky23 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 26/04/2009, 09h36
  4. Réponses: 1
    Dernier message: 23/07/2007, 13h45

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo