您现在的位置:  
 首 页 > CST > CST百科问答 > 怎样在cst中自定义个脉冲

怎样在cst中自定义个脉冲

文章来源: 互联网    录入: mweda.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

但是就是运行不起。 哪位  帮我看看这个程序,

微波EDA (www.mweda.com) 网友回复:

  • 网友回复

    不太清楚这些
  • 网友回复

  • 网友回复

    好复杂,从来没有自定义过激励函数。

申明:网友回复良莠不齐,仅供参考。如需专业解答,推荐学习李明洋老师的CST培训视频,或咨询本站专家

  • CST微波工作室教学培训视频教程

    CST中文视频教程,资深专家讲解,视频操作演示,从基础讲起,循序渐进,并结合最新工程案例,帮您快速学习掌握CST的设计应用...【详细介绍

推荐课程

射频工程师学习培训教程