Investigate the overwrite for the software limit switch for the rotator.
The configuration file of rotator controller can overwrite the software limits: default.yaml. This only happens when using the CSC to put the rotator to the Disabled state: https://github.com/lsst-ts/ts_rotator_controller/blob/develop/src/commanding.c#L461-L472
The block of limit check bias calc will compare the rotator's position with the upper/lower limits to decide the flag of positionFeedbackFault. If there is fault, it will trigger the ControlledStopping state to stop the rotator's movement. This has the potential to overshoot the rotator's position to be out of range of limits.
Investigate the Simulink model as requested.
Thanks, Te-Wei! This is very valuable information.