- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
怎样在cst 中自定义个脉冲
录入:edatop.com 点击:
' 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 % 时间参数
Open "E:\User\amp.txt" For Input As 2 % 幅度参数
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
但是就是运行不起。 哪位 帮我看看这个程序,
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 % 时间参数
Open "E:\User\amp.txt" For Input As 2 % 幅度参数
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
但是就是运行不起。 哪位 帮我看看这个程序,
不太清楚这些
:qqw :15bb :qqr :qqm :qqw :14bb :qqx
好复杂,从来没有自定义过激励函数。
2008版可以读.txt文件, 第一栏是时间, 第二栏是幅度, 非常方便.
这个改进不错~~~
Function ExcitationFunction(dtime As Double) As Double
……
End Function
以上部分是在定义激励信号的函数
Sub Main
Dim tmax As Double, ntstep As Long
……
End Sub
这部分是主函数,其定义了信号对应图形的步长等,并在左边的导航树中显示。
能具体的演示下不?
申明:网友回复良莠不齐,仅供参考。如需专业解答,请学习易迪拓培训专家讲授的CST视频培训教程。
上一篇:《CST微波工作室2006-基础入门》好书
下一篇:关于CST端口设置