Matlab Problem

  • Thread starter RollDozer
  • Start date
  • #1
1
0

Homework Statement


I need to create a function that will supply me with a vector that lists the heights at which markers should be placed on a tank to display the volume at that level. The tank is a cylinder on its side with 2 boxes on either end to make it free standing (image attached).

I've got my code to give me an answer for the first V input, but it does not provide answers for the other V's.


Homework Equations


This is the equation for the volumes that I am using:

Vend = (2/5)*R*h*L
Vcyl = (R^2*L*acos((R-h)/R) - L*sqrt(2*R*h-h^2)*(R-h))

Vtotal = Vend + Vcyl - V_Scales, where V_Scales is the volume levels at which heights are desired.


The Attempt at a Solution


Code:
syms h
x = length(V_Scales);
%vmax=pi*(R^2)*L+(4/5)*(R^2)*L;

Vcyl = (R^2*L*acos((R-h)/R) - L*sqrt(2*R*h-h^2)*(R-h));
Vend = (2/5)*R*h*L;

h_found = zeros(x,1);

for i=1:length(x)
    Vtotal = Vend + Vcyl - V_Scales(i);
    h_found(i) = solve(Vtotal);
end

yScales = double(h_found);

end
I'm just looking for a hint or tip to help get this function to spit out the number of values that I ask for.

Thanks!


EDIT: I little bit of double checking my code would have saved me a load of time. The beginning of the for loop should read: for i = 1:x, since I already defined the length of the input vector as x and when I was redoing code I just left it the same as I started.
 

Attachments

Last edited:

Answers and Replies

Related Threads on Matlab Problem

  • Last Post
Replies
1
Views
659
  • Last Post
Replies
1
Views
1K
  • Last Post
Replies
0
Views
749
  • Last Post
Replies
5
Views
2K
  • Last Post
Replies
0
Views
2K
  • Last Post
Replies
3
Views
4K
  • Last Post
Replies
1
Views
1K
  • Last Post
Replies
3
Views
2K
  • Last Post
Replies
5
Views
539
  • Last Post
Replies
1
Views
4K
Top