How can I get Simulink Model Linearizer to ignore a state in my model?

5 ビュー (過去 30 日間)
Alejandro
Alejandro 2024 年 12 月 17 日
回答済み: MULI 2025 年 2 月 19 日
Hey guys, I'm making a reaction-wheel-rod balancer system and made the model in Simscape and it's working fine. Thing is, I wanna make an LQR to compare with a PID, and trying to use Model Linearizer.
I marked the wheel torque as my perturbation, and the three states on the left there as my open loop measurements. What's annoying me is that Model Linearizer is coming up with a 3x1 state-space that includes the angle of the wheel, which obviously doesn't actually matter... and I didn't even mark it as an open-loop measurement.
When I generate my actuation gain matrix K, it has a tiny bit of contribution in the theta-wheel state, but I want to work with a 3x3 system that doesn't care about that angle. I don't understand why this is happening.When I manually trimmed the system I got from the linearizer from a 4x4 system into a 3x3 system without that angle, it gave me what I want, but that's super annoying and I don't wanna always do that.
Would really appreciate some more insight

回答 (1 件)

MULI
MULI 2025 年 2 月 19 日
Instead of letting model linearizer automatically select states, manually select only the relevant states (q_base, w_base, w_wheel) by:
  • Opening Model Linearizer.
  • Going to "Linear Analysis Points".
  • Ensuring only the necessary states are marked.
If the issue persists you can use the "xelim" function, to remove the unwanted state from the linearized model.
sys_reduced = xelim(sys, 3, "Truncate"); % Removes theta-wheel (3rd state)
For more details,you can refer to the below MATLAB documentation on "xelim" function:

カテゴリ

Help Center および File ExchangeTrimming and Linearization についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by