How to extract Displacements or Acceleration responses for particular frequency bands for FRF analysis in Hyperstudy.

venkatesh_20979
venkatesh_20979 Altair Community Member
edited September 2022 in Community Q&A

Hi,

In Hyper study i am extracting responses (Displacements and Accelerations) for full frequency range in Frequency response analysis.

My requirement is to extract responses only for particular frequency bands like 20-35 Hz, 50-70Hz, 110-135Hz instead of full range.

So which control card need to define in FE deck or is there any other procedure in Hyper study.

Thanks.

Answers

  • Adriano_Koga
    Adriano_Koga
    Altair Employee
    edited August 2022

    You can control your output in OptiStruct by controlling the FREQi card.

    For example, FREQ1 you can choose the frequency range, indicating the starting frequency and number of deltaFreq points that you want.

    i.e:  starting from 10Hz, in steps of 5Hz, with total number of steps 10.

     

    Now in HyperStudy you can control the points evaluated by each response, by controlling the indices into a particular data source.

    Let's say your total frequency curve is named 'ds_1', taking all the accelerations over your total frequency range, and assuming that your frequency inteval DF is set to 1.0Hz.

    Let's say 10Hz to 99Hz, by 1Hz.

    so, your 'ds_1' vector will have 90 points in total.

    ds_1[0] gives you the first value, for 10Hz

    ds_1[1] gives you the second value, for 11Hz.

    ..

    ds_1[89] gives you the last value.

     

    If you need to extract a subset of your points (20 to 35Hz), you can create a new data source 'ds_2', with the following expression:

    ds_1[10:25] >> results of acceleration from the 10th index to the 25th index of your vector. (just need to remember that first index is 0)

    image

     

    BUT, it is important to notice that in the end, for Responses, HyperStudy can't work with a vector, and needs a single value only.

    So, you need to extract from your vector some unique value, such as maximum, average, minimum, first item, last item, etc.

    So, in the end you will need to work with some sort of functions, such as 'max(ds_2)' or ds_2[0], or ds_2[numpts(ds_2)-1].

     

  • venkatesh_20979
    venkatesh_20979 Altair Community Member
    edited September 2022

    Hi Adriano A. Koga,

    Thanks for your suggestion,

    Its very helpful for my requirement.

    Thanks.