-
Notifications
You must be signed in to change notification settings - Fork 13
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
RotorModel fails to calculate relevant features if position and axis vector are collinear #171
Comments
Hi Pascal, Thanks for reporting the issue. Yes you are right that this would result in the feature being zero which could lead to problems depending on how the optimizer initializes the optimization coefficients. I agree that it makes sense to safeguard against this behavior. I would propose to add a general test as a function for this in the optimizer base template. Hereby we could test each row of the feature matrix X for having non descriptive features and setting all corresponding coefficients to zero. Would you like to add a PR this in a new PR? |
Sorry for responding so late (busy week). After analyzing the problem I have the following proposition:
In my opinion there should be two changes to address this issue:
|
To your problem analysis: I do not think that the model automatically ill posed when there is no leaver moment for a certain rotor. If we think about a fw aircraft with only a single rotor it is actually desirable to not have a moment contribution of this rotor (Or at least be very close to zero contribution. To your proposed changes:
How would you suggest to determine whether a feature is ill posed? |
I agree. I think it is very important to differentiate between the case of the feature is zero due to geometry or due to actuator inactivity during the logging and should be handled differently. If dropping the feature causes issues later on in the pipeline I would consider setting the parameter to zero if the cause is a geometrical problem. A solution would be that the model could set a flag or prematurely set the result of the parameter to zero before the optimizer does it's work. And if the optimizer detects zero columns in the feature matrix it can check if the parameter is already defined and in this case proceed with optimization or abort and report that the problem is ill-posed. |
#174 Implements a brute force check to look for invalid features given to the optimizer. The handling of invalid feature due to geometry still has to be implemented |
data-driven-dynamics/Tools/parametric_model/src/models/rotor_models/rotor_model.py
Lines 164 to 165 in 0dca4d3
If the two parameters rotor_position and rotor_axis are collinear the resulting features are all zero. This can cause issues in the regression since the features are all non descriptive.
The text was updated successfully, but these errors were encountered: