Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

Thread Subject:
Help de-bugging

Subject: Help de-bugging

From: John Smith

Date: 9 Aug, 2011 20:27:26

Message: 1 of 2

The output of the program I'm working on is confusing me. It is supposed to create a table of solutions, and as it finds solutions, it adds to the table, and when no more solutions are found, it displays the table. However, it seems that the code is somehow adding a vector to the table that's not supposed to be there, so that my solutions are "lost" in a sea of numbers. I cannot figure out how it is happening. Here is my code, and my apologies for the length: (I edited out a few things).

starter1 = input('Enter vector of starting guesses in the same format as upper bounds: ');
starter2 = starter1;

options = optimset('MaxFunEvals', 5000, 'MaxIter', 5000, 'Display', 'notify');

number_of_thrusters = input('Enter number of thrusters: ');

if number_of_thrusters == 6
    
    
n = 0;
for angle = 0:10:180
    disp('Angle:')
    disp(angle)
    n = n+1;
    warning('off','all');

counter = 0;
Coefficients = [Cxwi(n) Cywi(n) Cxywi(n) Cxcur(n) Cycur(n) Cxycur(n) Cxwav(n) Cywav(n) Cxywav(n)];
f = @(x)start_over1(x,Coefficients, x1,x2,x3,x4,x5,x6,y1,y2,y3,y4,y5,y6);
for lb1 = [0 (T1bc+(T1bz/2))]
    for lb2 = [0 (T2bc+(T2bz/2))]
        for lb3 = [0 (T3bc+(T3bz/2))]
            for lb4 = [0 (T4bc+(T3bz/2))]
                for ub1 = [(T1bc-(T1bz/2)) 940]
                    for ub2 = [(T2bc-(T2bz/2)) 940]
                        for ub3 = [(T3bc-(T3bz/2)) 940]
                            for ub4 = [(T4bc-(T4bz/2)) 940]
   
l = [0 0 0 0 0 0 lb1 lb2 lb3 lb4 0 0 0];
u = [940 940 940 940 940 940 ub1 ub2 ub3 ub4 2*pi 2*pi 200];
 LB1 = [0 (T1bc+(T1bz/2))];
 LB2 = [0 (T2bc+(T2bz/2))];
 LB3 = [0 (T3bc+(T3bz/2))];
 LB4 = [0 (T4bc+(T3bz/2))];
 UB1 = [(T1bc-(T1bz/2)) 2*pi];
 UB2 = [(T2bc-(T2bz/2)) 2*pi];
 UB3 = [(T3bc-(T3bz/2)) 2*pi];
 UB4 = [(T4bc-(T4bz/2)) 2*pi];

sn1 = fmincon(@myfun1,starter1,[],[],[],[],l,u,f, options);
if (sn1(7)>=LB1(1) && (sn1(7)<= UB1(1) || sn1(7)>=LB1(2)) && sn1(7)<=UB1(2))...
&& (sn1(8)>=LB2(1) && (sn1(8)<= UB2(1) || sn1(8)>=LB2(2)) && sn1(8)

   counter = counter + 1;
   solutions_table(counter,:) = sn1;
end



sn2 = fmincon(@myfun1,starter2,[],[],[],[],l,u,f, options);
if (sn2(7)>=LB1(1) && (sn2(7)<=UB1(1) || sn2(7)>=LB1(2)) && sn2(7)<=UB1(2))...
&& (sn2(8)>=LB2(1) && (sn2(8)<=UB2(1) || sn2(8)>=LB2(2)) && sn2(8)

counter = counter + 1;
solutions_table(counter,:) = sn2;
end
    
end
                            end
                        end
                    end
                end
            end
        end
end
    disp(solutions_table)
    end


Now, what seems to be happening is that my "starter1" is somehow becoming a part of solutions_table. If anyone can point out what's going on it would be MUCH appreciated!!

Subject: Help de-bugging

From: John Smith

Date: 9 Aug, 2011 20:36:15

Message: 2 of 2

"John Smith" <johnps@gmail.com> wrote in message <j1s57e$eo8$1@newscl01ah.mathworks.com>...
> The output of the program I'm working on is confusing me. It is supposed to create a table of solutions, and as it finds solutions, it adds to the table, and when no more solutions are found, it displays the table. However, it seems that the code is somehow adding a vector to the table that's not supposed to be there, so that my solutions are "lost" in a sea of numbers. I cannot figure out how it is happening. Here is my code, and my apologies for the length: (I edited out a few things).
>
> starter1 = input('Enter vector of starting guesses in the same format as upper bounds: ');
> starter2 = starter1;
>
> options = optimset('MaxFunEvals', 5000, 'MaxIter', 5000, 'Display', 'notify');
>
> number_of_thrusters = input('Enter number of thrusters: ');
>
> if number_of_thrusters == 6
>
>
> n = 0;
> for angle = 0:10:180
> disp('Angle:')
> disp(angle)
> n = n+1;
> warning('off','all');
>
> counter = 0;
> Coefficients = [Cxwi(n) Cywi(n) Cxywi(n) Cxcur(n) Cycur(n) Cxycur(n) Cxwav(n) Cywav(n) Cxywav(n)];
> f = @(x)start_over1(x,Coefficients, x1,x2,x3,x4,x5,x6,y1,y2,y3,y4,y5,y6);
> for lb1 = [0 (T1bc+(T1bz/2))]
> for lb2 = [0 (T2bc+(T2bz/2))]
> for lb3 = [0 (T3bc+(T3bz/2))]
> for lb4 = [0 (T4bc+(T3bz/2))]
> for ub1 = [(T1bc-(T1bz/2)) 940]
> for ub2 = [(T2bc-(T2bz/2)) 940]
> for ub3 = [(T3bc-(T3bz/2)) 940]
> for ub4 = [(T4bc-(T4bz/2)) 940]
>
> l = [0 0 0 0 0 0 lb1 lb2 lb3 lb4 0 0 0];
> u = [940 940 940 940 940 940 ub1 ub2 ub3 ub4 2*pi 2*pi 200];
> LB1 = [0 (T1bc+(T1bz/2))];
> LB2 = [0 (T2bc+(T2bz/2))];
> LB3 = [0 (T3bc+(T3bz/2))];
> LB4 = [0 (T4bc+(T3bz/2))];
> UB1 = [(T1bc-(T1bz/2)) 2*pi];
> UB2 = [(T2bc-(T2bz/2)) 2*pi];
> UB3 = [(T3bc-(T3bz/2)) 2*pi];
> UB4 = [(T4bc-(T4bz/2)) 2*pi];
>
> sn1 = fmincon(@myfun1,starter1,[],[],[],[],l,u,f, options);
> if (sn1(7)>=LB1(1) && (sn1(7)<= UB1(1) || sn1(7)>=LB1(2)) && sn1(7)<=UB1(2))...
> && (sn1(8)>=LB2(1) && (sn1(8)<= UB2(1) || sn1(8)>=LB2(2)) && sn1(8)
>
> counter = counter + 1;
> solutions_table(counter,:) = sn1;
> end
>
>
>
> sn2 = fmincon(@myfun1,starter2,[],[],[],[],l,u,f, options);
> if (sn2(7)>=LB1(1) && (sn2(7)<=UB1(1) || sn2(7)>=LB1(2)) && sn2(7)<=UB1(2))...
> && (sn2(8)>=LB2(1) && (sn2(8)<=UB2(1) || sn2(8)>=LB2(2)) && sn2(8)
>
> counter = counter + 1;
> solutions_table(counter,:) = sn2;
> end
>
> end
> end
> end
> end
> end
> end
> end
> end
> disp(solutions_table)
> end
>
>
> Now, what seems to be happening is that my "starter1" is somehow becoming a part of solutions_table. If anyone can point out what's going on it would be MUCH appreciated!!


I meant to add a sample of the output. Here is a sample of columns 9-13. As one can see, the solutions are interspersed with the initial guess for some reason.


.2832 6.2832 6.2832 6.2832 200.0000
    6.2832 6.2832 6.2832 6.2832 200.0000
    6.2832 6.2832 6.2832 6.2832 200.0000
    6.2832 6.2832 6.2832 6.2832 200.0000
    6.2832 6.2832 6.2832 6.2832 200.0000
    0.2314 4.3650 6.2832 6.2832 111.5148
    0.2314 4.3650 6.2832 6.2832 111.5148
    0.0000 6.2832 6.2832 6.2832 123.3065
    0.0000 6.2832 6.2832 6.2832 123.3065
    6.2832 6.2832 6.2832 6.2832 200.0000
    6.2832 6.2832 6.2832 6.2832 200.0000
    6.2832 6.2832 6.2832 6.2832 200.0000
    6.2832 6.2832 6.2832 6.2832 200.0000
    6.2832 6.2832 6.2832 6.2832 200.0000

Tags for this Thread

No tags are associated with this thread.

What are tags?

A tag is like a keyword or category label associated with each thread. Tags make it easier for you to find threads of interest.

Anyone can tag a thread. Tags are public and visible to everyone.

Contact us