Borrar filtros
Borrar filtros

I have an error: Error in 'nonlinear​_LQR/S-Fun​ction' while executing MATLAB S-function 'fcn_sfcn', flag = 1 (derivatives), at time 0.0." Can someone help me? This is the code:

2 visualizaciones (últimos 30 días)
function [sys,x0,str,ts]=...
fnc_sfcn(t,x,u,flag,xinit)
switch flag
case 0
str=[]
ts=[0 0]
s=simsizes
s.NumContStates=6;
s.NumDiscStates=0;
s.NumOutputs=6;
s.NumInputs=3;
s.DirFeedthrough=0;
s.NumSampleTimes=1;
sys=simsizes(s);
x0=[xinit];
case 1
tau=u;
sys=fnc(t,x,tau)
case 3
sys=x;
case {2 4 9}
sys=[];
otherwise
error(['unhandked flag=',num2str(flag)]);
end
Function File:
function xdot= fnc(t,x,tau)
l1=1;l2=1;l3=1;m1=1;m2=1;m3=1;g=10;
xdot = zeros(6,1);
xdot(1)=x(4);
xdot(2)=x(5);
xdot(3)=x(6);
xdot(4)= 1/(l1^2*(m1+m2+m3))*[-( l1*l2*(m2+m3))*xdot(5) - (m3*l1*l3)*xdot(6) + (m1+m2+m3)*g*l1*sin(x(1)) + tau(1) - tau(2)];
xdot(5) = 1/(l2^2*(m2+m3))* [-(l1*l2*(m2+m3))*xdot(4) -( m2*l2*l3)*xdot(6) + (m2+m3)*g*l2*sin(x(2)) + tau(2) - tau(3)];
xdot(6)= 1/(m3*l3^2)*[-(m3*l1*l3)*xdot(4)- (m3*l3*l2)*xdot(5)+(m3*g*l3)*sin(x(3))+tau(3)];
end
  1 comentario
Walter Roberson
Walter Roberson el 12 de Ag. de 2013
You do not construct x0 or str or ts for any case other than 0. That might be a problem.
Have you considered invoking the debugger?

Iniciar sesión para comentar.

Respuestas (0)

Categorías

Más información sobre Simulink Functions en Help Center y File Exchange.

Etiquetas

Productos

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by