I first got interested in models and modeling when I was at University. I learned to build them mathematically, to do them by hand, and I learned to build them using a computer. I did a lot of modeling for departments as a way to support myself while at school. Since leaving school, I’ve built systems models, propagation models, antenna models, and many more. What always disturbs me is how little people seem to understand about models and modeling.
Consider a propagation model built into a tool like VOACAP or any other tool that can be used to predict or analyze propagation conditions. Too many people seem to handle them as if they could be expected to make good predictions without thinking critically about the nature of models in general or the specific model in particular. At best, this is unwise, at worst, it can lead to serious consequences.
Models, ANY model, always has a number of assumptions in its construction. In most programs I’ve worked with, the assumptions aren’t stated anywhere. Even when you have access to the source code, you may not be able to piece together all of the assumptions made in building the model. For one thing, models are often constructed without any real regard for internal documentation about algorithms. For another, some people seem to be addicted to tricky programming or complicated ways of doing things.
Some years back as a grad student, I was handed such a model which had been built by other grad students and asked to get it running. I found that it had NEVER run successfully. It filled a whole card box and was written in FORTRAN. What a mess. It took me a while, but I finally got it rewritten and running.
My major point here is that I’ve recently had a conversation which I’ve had over and over again with someone who acted as if a computer model had to give them good answers and that they could simply accept what the computer was providing them without question. That’s never the case.
Whenever you’re working with a computer model, whether it’s to predict radio propagation, antenna patterns, telephone call center performance, or whatever, you have to use the model critically and understand as much as you can about it:
- Do you know what assumptions were made in building the model? ()
- What algorithms are used to do the critical computations? (Is this a solid algorithm for what you want to do? There are often more than one way to accomplish any given calculation)
- What units were used to build the model? (Remember the error in landing the spacecraft on Mars?)
This is just a starting point. You need to ask questions and critically think about the model you’re working with to determine whether the answers you’re getting are sensible. Even if you’re getting sensible answers, that might not prove that the program will continue to provide sensible answers under different conditions.