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.
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
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
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.
24.9 KB Views: 107