Effacer les filtres
Effacer les filtres

Info

Cette question est clôturée. Rouvrir pour modifier ou répondre.

how to remove this ERROR: Inner matrix dimensions must agree

1 vue (au cours des 30 derniers jours)
Ahmad Sheikh
Ahmad Sheikh le 7 Juil 2015
Clôturé : MATLAB Answer Bot le 20 Août 2021
First i have done this example
function derivative_x = book_TS(t,x)
derivative_x = zeros(2,1);
z1=x(1).*(x(2).^2);
z2=(3+x(2)).*(x(1).^2);
a1=1;
a2=-1;
b1=4;
b2=0;
M1=(a1-z1)./(a1-a2)
M2=(z1-a2)./(a1-a2)
M3=(b1-z2)./(b1-b2)
M4=(z2-b2)./(b1-b2)
h1= M1.*M3
h2= M1.*M4
h3= M2.*M3
h4= M2.*M4
A1=[-1 1;4 -1];
A2=[-1 1;0 -1];
A3=[-1 -1;4 -1];
A4=[-1 -1;0 -1];
derivative_x = h1*A1*x + h2*A2*x + h3*A3*x + h4*A4*x;
and run this function in another file
Initial_Time=0;
Final_Time=10;
[x1,x2] = meshgrid(-2:0.1:2);
[t,x] = ode45(@book_TS, [Initial_Time Final_Time], [0.5 0.5]);
figure(1);
plot(t,x(:,1));
%axis([0 10 144 152]);
xlabel('time')
ylabel('state x1k')
plot(t,x(:,2));
xlabel('time')
ylabel('state x2k')
axis([0 5 -5 5]);
its not giving any error
but when i run this code
derivative_x = example_aircraft(t,x);
derivative_x = zeros(4,1);
VT = linspace(100,200);
alpha = linspace(-20,20);
q = linspace(-45,45);
g=9.8;
z1= -g.*sin(x(2)).*sin(x(4))-g.*cos(x(2)).*cos(x(4));
z2= -z1-1.1794.*sin(x(2))+116.5903;
z3= 0.0654.*cos(x(2)).*sin(x(4))-0.0654.*sin(x(2)).*sin(x(4))-0.0079.*cos(x(2))-1.7723;
z4= 0.065.*sin(x(2)).*cos(x(4))-0.065.*cos(x(2)).*sin(x(4));
a1 = max(z1)
a2 = min(z1)
b1 = max(z2)
b2 = min(z2)
c1 = max(z3)
c2 = min(z3)
d1 = max(z4)
d2 = min(z4)
a= a1-a2;
b= b1-b2;
c= c1-c2;
d= d1-d2;
M11= (a1-z1)./a;
M12= (z1-a2)./a;
M21=(b1-z2)./b;
M22=(z2-b2)./b;
M31=(c1-z3)./c;
M32=(z3-c2)./c;
M41= (d1-z4)./d;
M42= (z4-d2)./d;
h1= M11.*M21.*M31.*M41;
h2= M11.*M21.*M31.*M42;
h3= M11.*M21.*M32.*M41;
h4= M11.*M21.*M32.*M42;
h5= M11.*M22.*M31.*M41;
h6= M11.*M22.*M31.*M42;
h7= M11.*M22.*M32.*M41;
h8= M11.*M22.*M32.*M42;
h9= M12.*M21.*M31.*M41;
h10= M12.*M21.*M31.*M42;
h11= M12.*M21.*M32.*M41;
h12= M12.*M21.*M32.*M42;
h13= M12.*M22.*M31.*M41;
h14= M12.*M22.*M31.*M42;
h15= M12.*M22.*M32.*M41;
h16= M12.*M22.*M32.*M42;
A1 =[24.6375 126.0927 -2.0799 -11.0439;2.8964 -0.1925 0.7555 -0.2115;372.8234 206.8231 -32.1499 -18.8528;0 0 1.0000 0];
A2 =[42.0463 54.6393 -3.5089 -4.9256;4.9429 -8.5926 0.5875 0.6378;636.2595 -874.4336 -53.7727 73.7308;0 0 1.0000 0];
A3 =[25.3637 127.7778 -2.1400 -11.1881;2.9817 0.1899 0.7484 -0.2284;383.8125 232.3232 -33.0593 -21.0361;0 0 1.0000 0];
A4 =[2.5094 91.4323 -0.2504 -8.1316;0.2950 -4.0828 0.9706 0.2609;37.9736 -317.6703 -4.4639 25.2158;0 0 1.0000 0];
A5 =[55.1348 62.0700 -4.0440 -4.9149;6.4816 -9.5219 0.5246 0.5091;834.3190 -994.0568 -61.8713 73.8932;0 0 1.0000 0];
A6 =[3.4519 102.5201 -0.2999 -7.9175;0.4058 -4.7666 0.9647 0.2861;52.2359 -381.9531 -5.2136 28.4566;0 0 1.0000 0];
A7 = 1.0e+003 *[0.0553 0.0591 -0.0041 -0.0047;0.0065 -0.0097 0.0005 0.0005;0.8365 -1.0397 -0.0621 0.0775;0 0 0.0010 0];
A8 =[-5.5933 128.1978 0.2276 -9.7718;-0.6575 -1.5636 1.0268 0.0681;-84.6401 6.6110 2.7688 0.3964;0 0 1.0000 0];
A9 =[ -0.2058 105.6963 -0.0284 3.8585; -0.0242 -2.5903 0.9967 -0.0908; -3.1150 -101.8214 -1.1059 -3.3254; 0 0 1.0000 0];
A10 =[-0.5648 107.4579 0.0009 3.9265; -0.0664 -2.3832 1.0001 0.0472; -8.5462 -75.1656 -0.6616 -2.2961; 0 0 1.0000 0];
A11 =[ -0.1893 106.0870 -0.0299 3.8727; -0.0223 -2.3600 0.9965 -0.0892; -2.8646 -95.9095 -1.1273 -3.1102; 0 0 1.0000 0];
A12 =[ -1.0557 111.8179 0.0254 4.1036; -0.1241 -1.6863 1.0030 0.0680; -15.9758 -9.1883 -0.2904 0.3842; 0 0 1.0000 0];
A13 =[ -0.2635 121.1984 -0.0265 3.8911; -0.0310 -2.5708 0.9969 -0.0870; -3.9880 -99.3064 -1.0764 -2.8321; 0 0 1.0000 0];
A14 =[-0.6996 123.5013 0.0039 3.9708; -0.0822 -2.3000 1.0005 0.0524; -10.5860 -64.4576 -0.6163 -1.6263; 0 0 1.0000 0];
A15 =[ -0.2338 121.5219 -0.0287 3.9013; -0.0275 -2.3484 0.9966 -0.0858; -3.5376 -94.4112 -1.1094 -2.6768; 0 0 1.0000 0];
A16 =[-0.6592 123.1979 0.0018 3.9604; -0.0775 -2.1514 1.0002 0.0511; -9.9759 -69.0492 -0.6487 -1.7832; 0 0 1.0000 0];
==>> derivative_x = h1*A1*x + h2*A2*x + h3*A3*x + h4*A4*x + h5*A5*x + h6*A6*x + h7*A7*x + h8*A8*x + h9*A9*x + h10*A10*x + h11*A11*x + h12*A12*x +h13*A13*x + h14*A14*x + h15*A15*x + h15*A16*x;
Initial_Time=0;
Final_Time=10;
[x1,x2] = meshgrid(-2:0.1:2);
[t,x] = ode45(@example_aircraft, [Initial_Time Final_Time], [0 10 11 0 0 0]);
figure(1);
plot(t,x(:,1));
%axis([0 10 144 152]);
xlabel('time')
ylabel('state x1k')
plot(t,x(:,2));
xlabel('time')
ylabel('state x2k')
axis([0 5 -5 5]);
it's giving an error where i put arrow ''Inner matrix dimensions must agree'' i dont understand how to remove this...?

Réponses (0)

Cette question est clôturée.

Community Treasure Hunt

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

Start Hunting!

Translated by