Thanks to all of you for your responses; I hope to get more comments. I haven't exactly planned out the "tooling" yet, but if I do this, I will write GPL software and use cross-platform interfaces like
wxWidgets. The comment on Java is valid; I'm familiar with Java and C++, and both have their ups and downs. Debating on languages is a bit like debating religions, however, so I'll see what my professors recommend on that point.
I'm amused by RatOmeter's comment on the term "codes"; in the aerospace department I am in, the word "codes" tends to get kicked around still, even though software has come a long way from the days of Boeing's wave drag code in the 1950s and the first versions of XFoil (which is still written in FORTRAN, by the way). So I was typing my post, and that word came out; I figured somebody would give me rub about it :-) Well-done, RatOmeter.
So based on what's been requested so far, it looks like the core usees of such an application should be:
- Direct design method: specify rotor diameter and blade geometry (taper and twist distribution), plus inertial properties
- Inverse design method: specify rotor diameter, design TSR, design RPM, and design wind speed, plus inertial properties
- Tweak rotor geometry
- Generate plots: RPM vs. wind speed, shaft power vs. wind speed, efficiency vs. wind speed, with exportable data
- Predict stall regime
- Specify rotor shaft load in terms of torque vs. RPM
Complications: aerodynamics and airfoilsMost likely, the first versions will use the flat plate linear assumption from thin airfoil theory (cl = 2*pi*alpha). The reason is because if I used airfoil data, I'd have to generate a database of polars (lift and drag coefficients vs. angle of attack) from profile data. Note that I want to do exactly this, and I was already thinking about modding XFoil to go through websites like the
UIUC Airfoil Coordinates Database and generate polars for a range of angles of attack and Reynolds numbers. I better start that early, since it could take weeks or even months to generate all 1550 polars from the site
Once that's done, I could release the whole database of polars as a package. However, there is another problem: transitioning of geometry and Reynolds numbers. It makes perfect sense to (for example) specify a root airfoil and a tip airfoil and just interpolate the geometry in between, like wdyasq said, but I'm not sure the airfoil polar data can be interpolated in the same fashion. I'll ask my professors on that, and hopefully I will like their answers. Stall prediction is also tough, because the flow on any stalled surface is highly three-dimensional (and moving in the radial direction in the case of a prop or rotor). So in a way, my "stall prediction" feature mightdouble as a "skeptical data beyond this point" feature. It's important to remember that numerical tools like this are for estimation purposes; they tell you where to start, and then you go out and see if the tool was right
There are many aerodynamic models out there, and I'd like to eventually have a number of them in the program along with the option to choose between them or even get recommendations on which one to use.
Complications: alternators
I have no knowledge of alternators or their modeling; I can only imagine that simulating an alternator would be incredibly difficult, as I'm not sure if there are any assumptions of linearity one can make (can someone clue me in on this?). Furthermore, an alternator's behavior depends on the whole circuit it's wired to, as we all know. What I'd do, most likely, is tell the user to specify the alternator's torque vs. RPM curve to figure out the loading. To get the electrical power generated, the user would have to specify an electrical power vs. RPM curve. It's what would have to be done unless a way to simulate alternator behavior can be figured out. So long as this data exists, wooferhound, the program should be able to do what you request. I'll have to figure out more on the blade count aspect, though.
Anyway, I don't know who is still reading this post, but thanks for your comments. I'd like to keep the discussion fairly nontechnical at this point because I really don't know all the technical details of the software yet (that comes later), but I wanted to bring up a few concerns I had. I'll be graduating this semester, and I may or may not go to graduate school right away, so I'll be quite busy. If things progress, though, I'll tell all of you.
- Chris