Added: 2 years ago
From: sjh7132
Views: 9,944
Sort by time | Sort by thread (beta)

Link to this comment:

Share to:

All Comments (87)

Sign In or Sign Up now to post a comment!
  • I see that you have done some experimental testing, have you actually tested this design?

  • @huntmatuk No, if you read the description, I had to admit that I ran the whole experiment with the wrong viscosity setting for air. So the results are bogus. At least for air on earth. Maybe on some other planet with a different atmosphere it would work. But I thought the technique was interesting enough that I left the video up.

  • @sjh7132 Apologies, I didn't read the description. Is there someway of repeating the run with the right value of viscosity? I have had little experience with viscour flows as I only deal with things like shock waves and electrohdydrodynamics which has ignored viscosity.

    It was a brilliant piece of work though.

  • I think you could improve results if you were not only relying on an initial population but also introduce mutation to the "children".

  • Awesome!!!

  • So, i'm not a programer, but what would happen if you could reverse your program to be able to put the Lenz2 design in and allow it to give you, based on probability, a set of most likely parents? You could use several generations of these sets to then work back forward and try to evolve the Lenz design further.

  • @sjh7134 I really like this, but just one thing:

    You're encouraging a lot of in-breeding with your algorithm by making the winner breed with the most-like object in the randomly selected set. Do you think your reasons for doing this are truly superior to just letting it breed with the 2nd/3rd best and letting 'nature' take its course?

  • gold!!!

  • This is a very interesting experiment. I wonder what would happen if you took some of the best VAWT designs, such as the Lenz and Benesh, and bred them like we do race horses. Look at the variety of dogs we have with selective breeding starting with a single species of Siberian wolf 20,000 years ago. Selective breeding is a lot faster than natural evolution and we breed for whatever characteristics we desire. You've selected for the desired characteristic. Now why not start with thoroughbreds?

  • There is an issue with the spines all coming out of one point in space. There is no way that you could ever, using that way of representing the surface, that you could ever come out with a lens2 surface for example. So, you have an issue with concave surfaces that curve back on themselves.

    Love the concept though - good practical GA example.

  • I think your mutation rate is a bit too high. In nature, mutations are usually neutral, or small. Your variation is extremely wild and nearly unbounded between generations. Lower mutations require more generations to get results, but the small changes will be much more guided towards incremental efficiency changes. Try narrowing dow the mutation rate (affecting a smaller number of spines) and the mutational variation (lower amount of change in a given length.

  • This is brilliant, I thought the exact same idea, but don't have to skills to implement it. Are you going to be repeating this with corrected viscosity settings? Would you share your code so I could run tests here as well? Thanks

  • THIS IS A MAZING!!!!! I LOVE IT!

  • great video. Thanks

  • 1. I see that someone already suggested using splines. I think that is a great idea. It should allow for a much better optimization. Doing optimization with discrete variables is much more difficult then with continuous variables. This would also allow for other types of optimization like steepest gradient given a starting shape.

    2. For computer performance, I would suggest looking NVIDIA's new Tesla products. It enables much more parallel computing and is GREAT for CFD. Thanks, -Jason

  • Doesn't the negative power output mean that the turbine will just spin in the opposite direction? I mean the worst the turbine can do is stay still, not drawing power to spin? Am I right?

  • @petrcechchelsea

    No the way this test worked is the turbine is spun (by an imaginary motor) and the torque the wind puts on it is measured. If the torque is pushing forward for more speed, then positive power is made. If the torque is pushing backwards, then it's taking power to hold that speed. It's possible it would spin backwards but all we can say for sure is it wants to slow down.

    My later sims actually have the wind drive the turbine

  • The most fascinating thing about GA's is that because they emulate nature's design, they make things that resemble lifeforms. There's been a space antenna that looks like a piece of coral. A vibration-damping truss boom for the space station that looks like a leg bone. a solar mirror array that looked like a chrome flower.

    Jellyfish, eh? Nneat. I kinda thought they might come out looking like bird feathers.

  • @cinndave

    I think my shape 'language' was too crude to let it turn out like a feather.

  • Really awesome work!

    I have anyway a remark ...and a suggestion too.

    Remark: the way U use to model the section of the blade can represent only convex shapes therefore U will never get "individuals" who look anything like the Lenz blade.

    Suggestion: did U try starting with a NACA shape among the initial population? I think it could be very interesting...

  • @Zypkin ...forgot... I can send U my NACA shapes if U want to give it a try :)

    dl.dropbox.com/u/7521750/10062­9_NACA0015.wmf

  • This was very interesting to watch, thanks for doing this.

  • Effectively you are finding local optima in a 90 dimensional space- If you keep the number of new random individuals in each population high and keep a relatively asmall amount of elite chromosones in each generation I think you'd be able to escape those local optima conditions and find the overall best configuration more consitently.

  • Has any engineer contactced you yet? It'd be interesting to see this tested on the field. It would also be cool to see this on 3d. Great job.

    Why does it take so long to test each shape? Couldn't you simplify the simulation to make it take less?

  • @Shalek

    Unfortunately I evolved these blades using the wrong viscosity for air, so while it's a neat demo, the results aren't meaningful for use in our atmosphere. (The simulation is for a much thicker gas.) I need to correct that and try again when I get time.

    3d sims take a very long time.

  • Hallo! My question is: how did you measure the efficiency of lenz2 with openfoam? Wich parameter did you assume to evaluate the efficiency as compared to other blades? Did you use the maximum rounds per minute (RPM) at a given speed? Thank you.

  • I meant at a given wind speed...

  • @chrach

    Openfoam can calculate the torque on the turbine. I can convert torque into power by using the equation 2*PI*RPM*60*torque = watts. Efficiency is turbine power / wind power. Wind power is 1/2 * 1.2 * area * windspeed ^ 3.

  • Just thinking. Evolution kinda is dependent in the environment it lives in. So the final evolve of the wind turbine blade is based on the 1 set of wind speed? so its really good at the set winds speed it was evolving in. Will the result when changing the environment ( wind speed ) make it worse? Just want to know ;)

  • @anariaq

    Yes, you are correct. It might be better for the test to spin the turbine at various speeds. But then that would take even longer to do.

  • @sjh7132 Yes thats the problem. What about testing the final winner only?

  • @anariaq

    I did that. The viscosity messed up the performance.

  • @sjh7132 sad. Could be cool to see what the result could be. Keep us updated with future projects :)

  • Still, I think its a fabulous idea. If I owned a super computer to lend to you, I would.

  • What you ended up with was ONE of many possible wining designs for the world you created. That world had your rules not its own rules. How did you decide on those mutations (20% etc etc <1cm etc etc)? Nature is much more slight. Mutations are often tiny sometimes with big effect, not the big jumps you are making. Plus, mutations are a result of circumstances not just forced upon an organism, and occur in populations of billions plus plus.

  • Your evolution is too simple. You have too few in the population and too many changes in the population. An offspring with a great feature let down by one aspect, it is luck whether this feature appears again without the aspect that let it down. That jelly fish design too is highly sensitive, I saw many jelly fish that had a rating of -999 pretty much indistinguishable from other jelly fish of rating 20+. That in itself should be saying: small changes matter.

  • @johnjejo

    Yes, what you say is correct, but as it was it took my 64 bit 4 core computer 2 weeks to do this. Finer changes and larger populations could easily make that months or years to complete.

    -999 is not a real power measurement, that number means something happened to the simulation. (Sometimes they get out control and the numbers blow up.) Since I didn't have time to look at each one individually, I had the program just assign a very low power number to get it out of the population.

  • @johnjejo Was there really a change that small that made that much of a difference? I wonder what is going on... is the air being compressed just at the right rate or something to cause that?

  • I don't normally say things like this, but, I LOVE IT!

    Well done. What a great idea. Thing to do is to throw into the population other industrial designs of turbine blade and see if they survive or dominate.

  • I don't normally say things like this, but, I LOVE IT!

    Well done. What a great idea. Thing to do is to throw into the population other industrial designs of turbine blade and see if they survive or dominate.

  • I don't normally say things like this, but, I LOVE IT!

    Well done. What a great idea. Thing to do is to throw into the population other industrial designs of turbine blade and see if they survive or dominat.

    Thought, don't you notice how the Lenz2 in your simulation hits into lots of turbulence. It made me think a two bladed design would be better for Lenz2, not three. Did you try that?

  • (post 3 again) ... it assigns them according to a equal spacing order. My advice would be to combine these two though. This way, you aren't trying completely random numbers and will more easily find those left out spots... and you still will cut a lot of time by pruning it based on a "previously solved species database" (another name i just made up - self explanatory) I'd assume that many initiations, even if spread, will result in the same species. Lemme know if I explained that right...

  • (Post 2.. again) ...do this because the memory it would require to make sure that you aren't retrying a previous random shape. However! (excitement) I'm guessing you might be able to recognize a shape that you already solved for before it takes up too much computational time! I suppose I'd name this "anti-redundant pruning" if I was allowed give it a name. Just an idea... either try that, or try placing your program in a bigger program which instead of assigning completely random values... (-->)

  • I agree with your response to my (post 2), but not the first one. Competition in this case is not dependent on different species relationships! Therefore no grid... multiple interacting species stuff. Yes, I'm not too educated, but I think you understand what you called the "mountain climber" idea was. What you said the second time about running the simulation many times would basically work except for the fact that the possibilities will overlap... It would be hard to... (continued)

  • (Post 3) So why wouldn't these other solutions spawn off the one you were working on? Well, that's probably because there are multiple optimum solutions that are not optimum in between. (like a shark is a great animal and so is a pelican, but to mix their genes would not likely have positive results) Basically, my theory - or opinion - or thought on this is that the solutions are like points or lines on hills in topology, and they must be widely tested or you could miss one.

  • @TimJSwan89

    Okay I agree with what you are saying, this is definitely the mountain climber problem where we never know if we are on the highest peak. In nature you get multiple species by having them use different resources or space, so they don't compete against each other. Right now in the simulation everything competes against everything else in the long run. If I added some spatial dependence (where they are located in the grid) to determine which ones had to compete.

  • @TimJSwan89

    (post 2) Or I could just run the simulation many times as it is. Each random set of starting points seems to bring out a new species. Then compare those later.

  • (Post 2) of how many optimizations there actually are by making sure you randomly generate shapes and ensure they cover broad possibilities. What if in your algorithm you cut off the evolution of something that could have been better in the long run, but didn't happen to prove itself early on because it still had too many flaws? No matter what, you can assume that based off parameters you give it, there are only so many solutions. You found one solution (or species) try another?

  • I don't think you understood what I meant. I was saying that by using evolution... you are already using the "pruning" technique. I'm pointing out the possibility of many species being optimum (or at least better than close combinations) Like a topology graph, many points can be "hilltops." But there's probably one that is the highest. By your technique, you solve for one. However, I suggest with more processing power, you can estimate the scope....

  • It would be interesting to see what would evolve if the blades were made to turn on their center relative to the turbine rotation at half the turbine rpm. Some vertical axis turbines use this kind of motion to simulate optimum sail positions for sailing in circles.

  • @Wesnex1 That's actually a really good idea Wesnex1, but realize that if he did that, then the conditions for the turbine would change and would involve more mechanics than the Lenz2 to make. Perhaps he could also try designing a turbine that each individual cylinder can spin freely just on air friction... although simpler to design, I'm not sure if my idea would work.

  • Have you tried to fit a spline to those tips? and change your GA such that it works with smooth surfaces instead

  • I noticed something that I think is important! Your variable basis allows only for polygons with a required center area. You can't even make a Lenz2 with your algorithm! You need to either make random polygons with arbitrary coordinates (perhaps limiting it with a boundary circle with the same radius as the one you have already). Or even make an algorithm where it is only surface area (curved lines with [no area] from above view) Something tells me there can be alot more than just the jellyfish!

  • You are correct. My method of describing turbine shapes doesn't allow a lenz2 to be developed. I will eventually try an enhanced version of this, but right now my problem is that I built a real turbine and it doesn't match simulation. My sims are laminar flow and I need to add a turbulence model. Until the sims match real life, evolving shapes won't be much good.

  • Keep with it because I think this methodology will eventually bear fruit.

  • Wonderful simulation... loved it.

  • I got a suggestion that might work... Consider what you said about two similar breeds mating is better than two different breeds, even if they are better. If this is true, then try to somehow encourage a tree like branching technique where you separate different "species" from each other. Perhaps this is how you can come up with multiple optimized results and THEN compare them when they are in full bloom rather than their half-evolved ancestors compared.

  • Remember, evolution replaces the ideal, but usually impossible way to optimize these things: trying every possible combination possible. If you think of evolution as a short-coming to that, then it's more like a tree pruning algorithm. Have you studied alpha-beta pruning for the mini-max theory? Let me know if you ever choose to try making multiple species, I'm already interested in your project.

  • Yes, I have used alpha-beta pruning in AI (game) programs. I'd have to think about how to apply it to a case where there isn't a player and an opponent.

  • I had considered something along that lines. If I ran a really big population, and selected 20 contestants at a time, then the dominate mater could choose someone more like himself. The problem is that the larger the population is, the longer it takes to get anywhere. I need a bunch of computers. :-)

  • Don't use large population:

    (Can't put links in) Look up Punctuated equilibrium

    The smaller population the faster it evolves.

    Have a small population and select about half out of them.

    Great work, please don't stop.

  • There is a balance. If the population is too small, there isn't enough variety and the population can go down a bad path with no way out.

  • I think you're already using this:

    w w w . dgp . toronto . edu / people / stam / reality / Research / pdf / GDC03 . pdf

    Also for a bunch of computers you could use worldcommunitygrid

    You're the first that I've seen to apply GA on VAWT; this has to happen if not you someone else will

  • I could help you with a distributive system for multiple computers

  • Absolutely awesome.

    The future to optimization.

    I suggest trying to optimize you mutation and inheritance methods. I assume you guessed on those.

  • Yes, I did guess at those. I think next time I try a run I'll introduce the 'copy pointer error', where a section of 'dna' could accidentally get relocated or duplicated. Right now the mutations are pretty minor and they can't always get you off of one small hill to the next bigger hill.

  • Absolutely awesome.

    The future to optimization.

  • The largest weakness I have noticed about genetic algorithms is that they tend to settle or get stuck at local optima. Once they discover a pretty steep peak in the solution-space, they tend to stay there, and it seems to be difficult to improve this behavior beyond a certain point.

    Is there any possibility of getting a 3D rapid prototype of your evolved blade? Also, you might try adding selection against excessive area. You might be able to find interesting solutions that are more economic.

  • I agree with you, I have run several populations now and more often than not they get stuck on a local max. I suppose a way around the problem is to start with a very large population and seed it with samples from all around the solution space.

  • You could also consider some method for "punishing" a bland gene pool. Perhaps a dynamic mutation rate that automatically increases when gene pool becomes too uniform. Of course to do this you would require a way to measure the similarity of different samples, which I imagine might not be simple.

  • WOW, very cool idea!

    Thank you for sharing your work.

    Coordinates for an IRL test?

    - Can we help?

    Idea Like this:

    Help with speeding up the many wild "genetics" tests with networking our many computers / in a live, "cloud" population?

    If results is visual in some way it can be fun.

    Hmm.."Odd- species-Network-SpeedDating-"m­ating" services.

    Is this possible... in some "easy" way?

    I am no programmer, just build small wind power units, this result was very cool to watch, thank you!

  • I had considered some community project, but the problem it setting up OpenFOAM is very difficult, and I don't think the average person could do it. Plus it requires Linux which most people aren't running. (yet).

  • Great series of videos. Thanks.

    Have you noticed that your mushrooms are roughly a mirror of the lenz? Also turbulence surfaces (cf golf ball), plus solid foils can materially improve aerodynamics. Evolution doesn't start from random but from a baseline. Have you considered genetic algos on lenz variants around the basic pressed sheet form but allowing shape and texture deformation; flipping and radial spread, folding to create solid infill areas ... ?

  • I've been following VAWTs for a little while now and have a 1meter unit prototype in my garage. I have started a blog where ideas can be shared. Let me know if you want to contribute.

  • Brilliant! Thanks for sharing.

    Have you thought of having the spines come off a line (thin rectangle) rather than a central point. You could vary the length of the line as a parameter in your genetic program. The line could be deemed to be tangent to the circle the vawt is spinning in which *may* solve orientation issues.

    What happens if you start with a pop of lenz and jellyfish? (Or are they too prejudiced to mate?)

    Anyway, I'd be interested to see what you come up with next.

  • I've thought about lots of things, but at 2 weeks a run it takes a while to try them. :-). Using the polar coordinates, I can't actually make the exact lenz shape. Things I've considered: totally free form shapes, points can move anywhere, distance from a line, restricting it to a cut from a PVC pipe, etc.

  • WHAT soft ware are you using?

  • The simulation is OpenFoam1.5-dev. The evolution is Perl code that I wrote. The display code is Java. The meshing is done with gmsh. The code to tally up the power is custom Perl code.

  • i bet there is a ton of other stuff you could use that for. maybe even in material sciences to come up with new compounds.

    ever hear of the "invention machine" basic a big computer that does something along the lines of this.

  • this is already applied in engineering.

  • Outstanding research and an interesting premise that even non-organic objects can have an 'organic' evolution. You should write a paper on it!

  • thanks bud...for this vid info.

  • Great idea :)

Loading...
Alert icon
0 / 00Unsaved Playlist Return to active list
    1. Your queue is empty. Add videos to your queue using this button:
      or sign in to load a different list.
    Loading...Loading...Saving...
    • Clear all videos from this list
    • Learn more