bonjour
je ne sais pas pour quoi j'ai toujours des problèmes avec ODE45
pourriez vous m'expliquez que veux dire ces erreurs et comment les corriger
la fonction est??? Error using ==> c:/matlab6p5/toolbox/matlab/funfun/private/odearguments
RSPRIME must return a column vector.
Error in ==> C:\MATLAB6p5\toolbox\matlab\funfun\ode23.m
On line 154 ==> [neq, tspan, ntspan, next, t0, tfinal, tdir, y0, f0, args, ...
Error in ==> C:\MATLAB6p5\work\Untitled2.m
On line 8 ==> [t tetaf]=ode23('rsprime', tspan, tetaf0);
pour appeler cette fonction
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 function dtetaf=rsprime(t,tetaf) tetaf0=[-8*ones(1,5) ;-4*ones(1,5) ;0*ones(1,5); 4*ones(1,5); 8*ones(1,5)]'; ym= 0; ymp=1; ympp=0; x(:,1)=[-pi*10/60;0]; e(1,1)=ym-x(1); e(2,1)=ymp-x(2); P=[15 5;5 5]; A=[0 1;-1 -2]; b=[0;1]; gm1=50; % définition des dégrés d'appartenance de la position mu(1,1)=exp([-((x(1)+(pi/6))/(pi/24))^2]); mu(1,2)=exp([-((x(1)+(pi/12))/(pi/24))^2]); mu(1,3)=exp([-(x(1)/(pi/24))^2]); mu(1,4)=exp([-((x(1)-(pi/12))/(pi/24))^2]); mu(1,5)=exp([-((x(1)-(pi/6))/(pi/24))^2]); % définition des dégrés d'appartenance de la position mu(2,1)=exp([-((x(2)+(pi/6))/(pi/24))^2]); mu(2,2)=exp([-((x(2)+(pi/12))/(pi/24))^2]); mu(2,3)=exp([-(x(2)/(pi/24))^2]); mu(2,4)=exp([-((x(2)-(pi/12))/(pi/24))^2]); mu(2,5)=exp([-((x(2)-(pi/6))/(pi/24))^2]); % définition des numérateurs mum=mu(1, : )'*mu(2, : ); % définition des numérateurs denum1=sum(mum); denum=sum(denum1); ksi=mum/denum; dtetaf=-gm1*e'*P*b*ksi; %dtetaf=dtetaf'; return
merci d'avance pour vos reponses et bonne journée
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 close all; clear all; t0=0;tf=10; tspan=[t0 tf]; ang=[-20 -10 -7 4 8 12 16 30]; ang=ang*pi/180;axis([0 tf -45 45]); tetaf0=[0*ones(1,5) 0*ones(1,5) 0*ones(1,5) 0*ones(1,5) 0*ones(1,5)]'; [t tetaf]=ode23('rsprime', tspan, tetaf0); hold on;
Partager