I am doing API matlab-etabs and i want to know how can i get the displacements in a point for all de modal cases
25 views (last 30 days)
Show older comments
I am working in some API interaction with matlab and ETABS and i want to extract a modal matrix, and i have two problems. First, i have been using the function ModeShape for extracting the modal displacements of my interest points, but aparently i can only have the displacement for the first modal form and no for every modal form that etabs can show.
Here i put the part of the code where i extract the modal displacements for one point (i have to do it for multiple)
AnalysisResultsSetup.DeselectAllCasesAndCombosForOutput;
AnalysisResultsSetup.SetCaseSelectedForOutput('Modal');
formas = zeros(9,3);
PointName= 'C1-4';
ObjectElem = ETABSv1.eItemTypeElm.ObjectElm;
Obj = {''};
Elm = {''};
StepType = {''};
LoadCase = {''};
StepNum = 0;
NumberResults = 0;
U1 = 0;
U2 = 0;
U3 = 0;
R1 = 0;
R2 = 0;
R3 = 0;
[~,~,NumberResults,~,~,~,~,U1,U2,U3,~,~,~] = Results.ModeShape(PointName, ObjectElem, NumberResults,...
Obj, Elm, LoadCase, StepType,StepNum, U1, U2, U3, R1, R2, R3);
0 Comments
Answers (1)
Dolon Mandal
on 12 Sep 2023
To extract the modal displacements for all modal forms, you need to iterate through each mode and retrieve the displacements individually. Here's an example of how you can modify your code to extract the modal displacements for all modes.
AnalysisResultsSetup.DeselectAllCasesAndCombosForOutput;
AnalysisResultsSetup.SetCaseSelectedForOutput('Modal');
PointName = 'C1-4';
ObjectElem = ETABSv1.eItemTypeElm.ObjectElm;
Obj = {''};
Elm = {''};
StepType = {''};
LoadCase = {''};
StepNum = 0;
NumberResults = 0;
U1 = 0;
U2 = 0;
U3 = 0;
R1 = 0;
R2 = 0;
R3 = 0;
% Get the number of modes
numModes = Results.ModeCount;
% Initialize the modal displacements matrix
modalDisplacements = zeros(9, 3, numModes);
% Iterate through each mode
for modeIndex = 1:numModes
[~, ~, NumberResults, ~, ~, ~, ~, U1, U2, U3, ~, ~, ~] = Results.ModeShape(PointName, ObjectElem, NumberResults, ...
Obj, Elm, LoadCase, StepType, StepNum, U1, U2, U3, R1, R2, R3);
% Store the modal displacements for the current mode
modalDisplacements(:, :, modeIndex) = [U1, U2, U3];
end
0 Comments
See Also
Categories
Find more on Cardiology 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!