怎樣在cst 中自定義個(gè)脈沖
' 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.
Static bFirst As Boolean
bFirst=True
Static timeval() As Double
Static Valval() As Double
Static Nt As Integer
Dim i As Integer
Dim TT As String,a As String
If dtime=0 Then
bFirst=False
'read file data
Open "E:\User\time.txt" For Input As 1 % 時(shí)間參數(shù)
Open "E:\User\amp.txt" For Input As 2 % 幅度參數(shù)
Input #1,TT
Nt=CInt(TT)
ReDim timeval(1 To Nt)
ReDim Valval(1 To Nt)
i=1
For i=1 To Nt
Input #1,TT
timeval(i)=CDbl(TT)
Input #2,a
Valval(i)=CDbl(a)
Next
Close #1
Close #2
End If
For i=1 To Nt
If Abs(dtime-timeval(i)*1e+9)<0.05 Then
ExcitationFunction=Valval(i)
Exit For
End If
Next
End Function
' -------------------------------------------------------------------------------------------------
' Main: This function serves as a main program for testing purposes. (runs and plots the function)
' You need to rename this function to "Main" for debugging the excitation function.
'
' Please adjust the time step width and the number of time steps accordingly.
'
' PLEASE NOTE that a userdefined excitation file (*.usf) must not contain a main program for
' proper execution by the framework. Therefore please ensure to rename this function
' to e.g. "Main2" before the Transient Solver is started
' -------------------------------------------------------------------------------------------------
Sub Main
Dim tmax As Double, ntstep As Long
' -------------- PLEASE ADJUST THE SETTINGS BELOW ----------------------
tmax = 50.0
ntstep = 502
' -------------- 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 Signals\Userdefined Functions\signal1_plot"
SelectTreeItem "Excitation Signals\Userdefined Functions\signal1_plot"
ResultTree.RefreshView
End Sub
但是就是運(yùn)行不起。 哪位 幫我看看這個(gè)程序,
不太清楚這些
:qqw :15bb :qqr :qqm :qqw :14bb :qqx
好復(fù)雜,從來(lái)沒(méi)有自定義過(guò)激勵(lì)函數(shù)。
2008版可以讀.txt文件, 第一欄是時(shí)間, 第二欄是幅度, 非常方便.
這個(gè)改進(jìn)不錯(cuò)~~~
Function ExcitationFunction(dtime As Double) As Double
……
End Function
以上部分是在定義激勵(lì)信號(hào)的函數(shù)
Sub Main
Dim tmax As Double, ntstep As Long
……
End Sub
這部分是主函數(shù),其定義了信號(hào)對(duì)應(yīng)圖形的步長(zhǎng)等,并在左邊的導(dǎo)航樹(shù)中顯示。
能具體的演示下不?