Question about running FAST 8 in Simulink

Dear Jason

Thank you for your kind reply! I have studied the source code in SetCoordSy() and found the following things.

The first picture shows how to obtain the coordinate system for tower local nodes t1,t2, t3 from the coordinate system a1, a2, a3 fixed on the tower base. The variable “ThetaFA” and “ThetaSS” are obtained first and then used to calculate the transfer matrix, which transfers coordinate system a1, a2, a3 to t1, t2, t3. “ThetaFA” and “ThetaSS” mean the tower fore-aft and side-side tilt deflection angle.

The second picture shows the way to calculate outputs “TwHt1RDyt” and “TwHt1RDxt”. I am wondering if “TwHt1RDyt” equals “ThetaFA” for the first analysis tower node? The reason why I ask is that I hope to use “TwHt1RDyt” and “TwHt1RDxt” to calculate the transfer matrix but not sure if it is reasonable?

Best

XING WEI

Dear Xing,

I would guess TwHtRDyt is close, but not exact to ThetaFA based on the corrections for orthogonality in SUBROUTINE SmllRotTrans(). Why don’t you simple use the the t1/t2/t3 coordinate system (or the associated Orientation matrix) to transform between local and global coordinates?

Best regards,

Dear Jason

Thank you for your kind reply! Well, the reason why I want to use “TwHtRDyt” is that I want to calculate the transfer matrix in Simulink so I guess I need to use some existing outputs. For the transfer matrix from global coordinates to the platform coordinate, I could utilize the platform surge, sway, heave, pitch, roll, yaw motions to calculate the transfer matrix in Simulink. So, do you have any suggestions on calculating the transfer matrix from global coordinate to the first local tower node coordinate in Simulink?

Best

XING WEI

Dear Xing,

Ah, I see. Yes, what you propose should work reasonably well. You could also ElastoDyn outputs TwHtRPxi and the like for yi and zi, which contain the rotational orientations of the tower directly relative to the inertial frame.

Best regards,

Dear Jason

Thank you for your kind reply! I have managed to do the coordinates transfer in Simulink and added two input ports for S-function. The two inputs added are the external forces to TTMD in x and y directions.

The propose of blocks in Simulink is to calculate some loads including the two external forces I mentioned above and apply them to the platform and TTMD, respectively. The following error occurred while I use the calculated values by Simulink blocks as two external forces. If I use zero or any other prescribed signals such as sine signal as two external forces, there is no error. I checked the calculated values by Simulink and found that its value was reasonable and not very large. I searched in the source code to find the place where the error message exists but could not find it. I am wondering what does the error mean?

Best

XING WEI

Dear Xing,

I’m not an expert on the MAP++ source code, but from my brief look, “INNER_MAX_ITS” is the maximum number of inner loop iterations. This is one of the solver options that can be set in the MAP++ input file, so, perhaps you can increase it (as documented in the online MAP++ documentation: map-plus-plus.readthedocs.io/en/ … index.html). But I’ve not run into this error before, and perhaps it is pointing to some sort of numerical convergence problem in MAP++ for your case.

Best regards,