Reduced flexible model results across different MATLAB Versions

26 visualizaciones (últimos 30 días)
younghwa park
younghwa park el 27 de Oct. de 2025 a las 12:48
Comentada: Umar el 29 de Oct. de 2025 a las 5:09
Hi,
The deflection of rod is different across different MATLAB version.
When I exert 1N to bar in Simulink, the response is diffrent across different MATLAB version.
The schematic is like this.
It must be an error for my modelling or model change os simscape. What is a cause for this difference?
BR,
  1 comentario
Umar
Umar el 29 de Oct. de 2025 a las 5:09

Hi @younghwa park, Have you made any progress or need further assistance, please let us know.

Iniciar sesión para comentar.

Respuestas (1)

Umar
Umar el 28 de Oct. de 2025 a las 4:27

Hi @younghwa park,

I looked at your code in the GitHub link provided by you and the deflection difference between versions. Your beam.m script creates a reduced-order model but doesn't include any damping - you're only generating mass and stiffness matrices with the reduce function. This means your Simulink model is using whatever default damping values are set in the Reduced Order Flexible Solid block parameters, and those defaults likely changed between R2024b and R2025a. So, open your beam.slx file in both versions, double-click the Reduced Order Flexible Solid block, and compare the Damping settings. You'll probably find different values for the damping ratio or the damping type itself has changed. That would explain the factor of two difference you're seeing. To test if this is really the issue, try adding explicit damping to your code right after the reduce line:

rom = reduce(femodel,'FrequencyRange',[0 20]*(2*pi));
rom.C = 0.01 * 2 * sqrt(rom.K .* rom.M);

This adds 1% damping to all modes. If both versions give you the same results after this change, you've confirmed it's a damping default issue. Also check that the reduced-order model itself is the same between versions by running this after your reduce command:

disp(size(rom.K,1));
[V,D] = eig(rom.K, rom.M);
disp(sort(sqrt(diag(D))/(2*pi)));

The number of DOFs and natural frequencies should match between versions. If they don't, the reduce function itself changed behavior.

References:

Categorías

Más información sobre Bodies en Help Center y File Exchange.

Etiquetas

Productos

Community Treasure Hunt

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

Start Hunting!

Translated by