Hi,
I keep getting an error when I change a parameter at a certain time in my simulation of an aircraft braking. I am using an s-block which performs my integration and outputs the velocity and displacment of the aircraft as a real vector with two outputs.
However when I change the friction co-eff. ur from 0.026 to 0.528 i get this error:
State derivatives returned by S-function 'spoilers' in 'scott/Deceleration' during flag=1 call must be a real vector of length 2.
My program is as follows:
%Rolling friction (to change when brakes are applied) ur=0.026; if t>0.3 ur=0.528; end
%Drag co-efficient (possibly read from table) cd=0.0641; cl=0.749; if t>0.7 cd=0.0978; cl=0.536; end
%GI selected, one engine in operation: a=85; b=7.241; c=1.367; d=0.0078;
%Aerodynamic and friction loading e=(0.5*p*S*(cd-(cl*ur))); f=-(ur*W);
% Equations to be integrated xdot (1)=((a+f)+(b*x(1))+((-c-e)*(x(1)^2))+(d*(x(1)^3)))/m; xdot (2)=x(1);
% Perform integration. vdot=xdot (1); sdot=xdot (2);
sys = [vdot; sdot;];
Does changing from 0.026 to 0.528 drastically affect the equation xdot (1) to the point where it cannot return a real vector?
Any help is welcome.

1 commentaire

Jan
Jan le 8 Mar 2011
Please format the code to increase the readability.

Connectez-vous pour commenter.

 Réponse acceptée

Jan
Jan le 8 Mar 2011

1 vote

Is "sys" the output of you function? Then simply display the values of "sys" before the function is left to find out, why Matlab thinks, it is not a vector of 2 real elements.

Plus de réponses (1)

Gustavo Mattos
Gustavo Mattos le 22 Juin 2015

0 votes

It happened to me when I was dealing with an unstable system (sys -> Inf).

Catégories

En savoir plus sur Programming dans Centre d'aide et File Exchange

Produits

Community Treasure Hunt

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

Start Hunting!

Translated by