SimScape source for angular postion
32 views (last 30 days)
Show older comments
I want to position the motor in incremental steps using an external mechanical source, so I am looking for a block that is a source of ideal position and will be used to position the rotor to a certain specified position and keep the rotor in that position.
0 Comments
Answers (2)
Andrea
on 24 Oct 2024 at 10:06
If you're using the Simscape Rotational domain, you can use the Ideal Rotational Motion Sensor block.
Connect the "R" port to rotor and the "C" to a Mechanical Rotational Reference. The block will give you the absolute position of the rotor.
Ideal Rotational Motion Sensor doc: https://it.mathworks.com/help/simscape/ref/idealrotationalmotionsensor.html
0 Comments
Divyajyoti Nayak
on 24 Oct 2024 at 10:07
Edited: Divyajyoti Nayak
on 24 Oct 2024 at 10:07
Hi Jack,
From what I understand, you want to provide angular position as an input source to your mechanical system. Although there is no direct Simscape “Angular Position Source” block, I did find a work around. The angular position input signal can be taken and differentiated to get the angular velocity which can then be fed into the “Ideal Angular Velocity Source” block. This will give the mechanical system the required angular velocity to follow the input position. Here’s the sample model I created along with its output:
As seen,the position of the rotor follows the given input position.
Hope this helps!
4 Comments
Yifeng Tang
on 28 Oct 2024 at 13:48
I also believe the velocity source would be the best option here, so @Divyajyoti Nayak's solution should work great.
Two suggestions, as personal preference:
- consider "pre-differentiate" in MATLAB and bring the resulting velocity signal into the Simscape model as input. You may be able to avoid the noisiness of du/dt or discrete differentiation blocks. You may also check the integral of the velocity while in MATLAB to make sure they are consistent with your intended signal.
- Use a translational motion sensor to monitor the position and make sure you are getting what you intended. In fact, this brings us to an alternative solution: you may be able to achieve this position input by setting up a feedback control. Sensing the position and drive with an velocity. I think a simple P control would be sufficient. This will guarantee the desired position but with a response time that depends on your controller gain.
Yifeng Tang
on 28 Oct 2024 at 13:52
One more thing. This is not relevant to your question right away, but something to look out for in future.
In R2024b, Simscape added a Position-Based Translation domain. Position as input to a source is possible in this domain. Of course, this is translational and what you wanted is rotational. The principle is the same though. Not sure if the same capability will be developed for the rotational domain as a shipping foundation domain, but the Simscape language & solver is ready for such implementation.
See Also
Categories
Find more on Simulation Setup in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!