自己定义了一个激励源。vba如下:
' userdefined excitation function
Option Explicit
Function ExcitationFunction(dtime As Double) As Double
'Assign the excitation signal value for the given time to the function name.
ExcitationFunction =-3.131*Cos(2*3.14*600*dtime)-2.085*Sin(2*3.14*600*dtime)+0.9779*Cos(4*3.14*600*dtime)-1.684*Sin(4*3.14*600*dtime)+0.6571*Cos(6*3.14*600*dtime)+0.6599*Sin(6*3.14*600*dtime)-0.2716*Cos(8*3.14*600*dtime)+0.3825*Sin(8*3.14*600*dtime)
End Function
Sub Main
Dim tmax As Double, ntstep As Long
' -------------- PLEASE ADJUST THE SETTINGS BELOW ----------------------
tmax = 0.2
ntstep = 100
' -------------- PLEASE ADJUST THE SETTINGS ABOVE ----------------------
Dim signal As Object, n As Long, tstep As Double
Set signal = Result1D("")
signal.Initialize ntstep
tstep = tmax / ntstep
For n=0 To ntstep-1
signal.SetXY(n, n * tstep, ExcitationFunction(n * tstep))
Next n
signal.Save GetProjectBaseName() + GetProjectBaseNameSeparator() + "excitation function.sig"
signal.AddToTree "Excitation SignalsUserdefined Functionsdefault_plot"
SelectTreeItem"Excitation SignalsUserdefined Functionsdefault_plot"
Resulttree.RefreshView
End Sub
红色部分为改动部分,运行图形如下:
但当保存后,默认的激励信号竟然如下图所示:
明显这个图形不是我想要的,不知道原因是什么
另外EXCitation signals设置如下图:
求高手解答
难道与Min.Simples有关吗?
可能有单位换算的问题,VBA、Imported和User Defined信号都是以秒为单位的,default显示的信号是以模型内定义的时间单位为准的。
具体有什么影响我也不太清楚,没自定义过。
CST MWS帮助文件《Excitation Functions》和《Excitation Signal》。
我的default信号下面表的单位也是秒,vba的单位我不太清楚,那两个帮助文件我看了,没找到啊
在vba文档里有这么一句话:
Please note that the total time of a user defined signal is always interpreted in the unit seconds.
这是什么意思
用户自定义信号的时间单位固定使用“秒”。
hefang不仅负责解答技术问题还兼职英译汉了
直观的看幅值没有出入,就是频率提高5~6倍,不知道是不是设置问题?
可以设置的地方只有最后一幅图,MIn.simples和total time,不知道这两个有什么设置问题
我还以为,这句话是:无论用户定义的total time 是多少,cst都默认为是单位时间,即1s
声明:网友回复良莠不齐,仅供参考。如需更专业系统地学习CST,可以购买资深专家讲授的CST最新视频培训课程。