Is it suitable to change a feature by itself to generate an another feature? Hi all I would love to hear your answers on this. Lets say I have two variables, voltage and current, in my data set. I could add another feature by squaring current (so as to calculate power). 

Is this an example of feature engineering?

Recently I tried to predict on a diameter prediction on asteroids and I took the natural log of some features which worked well. 

Can someone provide some insight as to why this may have improved the model's performance?
Sure, that's feature engineering.

If you're fitting a linear model, then you are looking for features that have a linear relationship with the predicted value. If you're predicting, say, the cost per hour of a device consuming current I, then clearly that's directly related to power not current, so $I^2$ is more likely to be useful.

What you want to be careful about is trying a bunch of transformations of the input blindly; it's possible for a small data set that one odd function of an input happens to be predictive in that sample, but doesn't generalize.