ImageVerifierCode 换一换
格式:DOCX , 页数:27 ,大小:500.27KB ,
资源ID:8152822      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/8152822.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(测控课程设计微机实时测控系统.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

测控课程设计微机实时测控系统.docx

1、测控课程设计微机实时测控系统xx邮电大学课程设计报告课程设计名称测控系统学 院自动化指导教师学生姓名班 级学 号课程设计内容 设计一套完整的微机实时测控系统,具体内容包括:1、了解测控系统设计相关知识和具体指标要求。2、多功能A/D采集板的编程使用和信号采集。3、信号的显示与处理。4、控制信号的输出。(选项)5、测控系统软件设计与联调。学生课程设计报告(附页)见附件课程设计成绩评定评语: 成绩:指导教师签名: 年 月 日一、设计任务测控系统的设计涉及许多技术,其应用领域众多,在现代国防、现代工业、科研教育、机械医疗等领域里有着广泛的应用。另一方面,它的理论性与实践性都很强,需要努力做到理论与实

2、践相结合,为此我们安排此课程设计实验,加深同学们对测试技术理论的理解,加强同学们对实践操作能力的培养。重点是了解测控系统设计的一般流程,掌握设计测控系统的一般方法,树立计算机测控系统的整体概念。在生产过程和科学研究中所接触到的被测量大多数是非电物理量,例如位移,力,转速,扭矩,温度,振动,流量,风速,等等。非电量种类繁多,特性千差万别,很多又是不便于直接测量的模拟信号。为了测量与处理方便,需要把非电量转换为电量,这一步通常是通过各式传感器来转换,常称为一次转换;为适应计算机的统计分析处理,又需要把模拟量转化为数字量,这一步是通过A/D转换来实现的,常称为二次转换。这两方面是测试系统的两个重要环

3、节(在测控领域里,有时还需要把处理好的数字量再转换成模拟量反馈回来控制工作进程,常称为三次转换)。它们的关系如下:本次课程设计实验是设计一套完整的微机实时测控系统,具体内容包括:1、了解测控系统设计相关知识和具体指标要求。2、多功能A/D采集板的编程使用和信号采集。3、信号的显示与处理。4、控制信号的输出。(选项)5、测控系统软件设计与联调。编写A/D板的初始化程序与采集程序,调试上述程序,绘制波形,可用信号发生器输出的信号调试。注意:图形曲线以及幅值刻度和时间刻度要与实际信号一直。调试程序可参考所给的参考程序。调试成功后可编辑其他相关功能,(如设置采样长度、采样间隔、形成数据文件、FFT分析

4、及波形、统计分析等)。自动检测系统在数据处理功能上除了可进行FFT分析外,还应给出检测信号的最大值、最小值、平均值。自动分析得出信号的频率和周期。所编程序包括菜单的实现及相关功能,如举例所示,其中功能必须包括数据的采集及保存,波形显示,数据显示、FFT变换、信号周期和频率的自动检测。通过DA输出相关波形,由示波器进行观测的内容作为选项,完成基本内容的同学可以设计实习。二、小组分工在这次的课程设计中,为了提高效率,我们小组安排了合理的分工,每人负责50%左右的工作。具体如下:小组成员魏峰负责测控软件中主界面的设计、程序校验和报告的撰写;小组成员刘汉生负责工作菜单的设计及相关程序的编写、主干程序的

5、编写以及程序的调试。三、设计内容1.设计思路接到老师下达的任务后,我们首先完成了主界面和菜单的设计,通过了期中验收。一个好的采集系统程序应有一个方便、实用、友好、快捷的工作界面,因此编制一个好的菜单很重要。而后我们根据界面及工作菜单编写程序。其中包括画频谱图、存取数据、fft变换、A/D板采集数据等等。2.流程图 16位转12位 并转换到相应电压 Y N N Y N Y 3.主要程序1)FFT变换: Public Function FFT0(AR() As Double, AI() As Double, n As Integer, ni As Integer) Dim i As Integer

6、, j As Integer, k As Integer, l As Integer, m As Integer Dim IP As Integer, LE As Integer Dim L1 As Integer, N1 As Integer, n2 As Integer Dim SN As Double, TR As Double, TI As Double, wr As Double, wi As Double Dim UR As Double, UI As Double, US As Double m = NTOM(n) n2 = n / 2 N1 = n - 1 SN = ni j

7、= 1 For i = 1 To N1 If i j Then TR = AR(j - 1) AR(j - 1) = AR(i - 1) AR(i - 1) = TR TI = AI(j - 1) AI(j - 1) = AI(i - 1) AI(i - 1) = TI End If k = n2 While (k j) j = j - k k = k / 2 Wend j = j + k Next i For l = 1 To m LE = 2 l L1 = LE / 2 UR = 1# UI = 0# wr = Cos(Pi / L1) wi = SN * Sin(Pi / L1) For

8、 j = 1 To L1 For i = j To n Step LE IP = i + L1 TR = AR(IP - 1) * UR - AI(IP - 1) * UI TI = AI(IP - 1) * UR + AR(IP - 1) * UI AR(IP - 1) = AR(i - 1) - TR AI(IP - 1) = AI(i - 1) - TI AR(i - 1) = AR(i - 1) + TR AI(i - 1) = AI(i - 1) + TI Next i US = UR UR = US * wr - UI * wi UI = UI * wr + US * wi Nex

9、t j Next l If SN -1 Then For i = 1 To n AR(i - 1) = AR(i - 1) / n AI(i - 1) = AI(i - 1) / n Next i End IfEnd FunctionPublic Function FFT1(AR() As Double, AI() As Double, n As Integer, ni As Integer) Dim i As Integer, j As Integer, k As Integer, l As Integer, m As Integer Dim IP As Integer, LE As Int

10、eger Dim L1 As Integer, N1 As Integer, n2 As Integer Dim SN As Double, TR As Double, TI As Double, wr As Double, wi As Double Dim UR As Double, UI As Double, US As Double m = NTOM(n) n2 = n / 2 N1 = n - 1 SN = ni j = 1 For i = 1 To N1 If i j Then TR = AR(j) AR(j) = AR(i) AR(i) = TR TI = AI(j) AI(j)

11、= AI(i) AI(i) = TI End If k = n2 While (k j) j = j - k k = k / 2 Wend j = j + k Next i For l = 1 To m LE = 2 l L1 = LE / 2 UR = 1# UI = 0# wr = Cos(Pi / L1) wi = SN * Sin(Pi / L1) For j = 1 To L1 For i = j To n Step LE IP = i + L1 TR = AR(IP) * UR - AI(IP) * UI TI = AI(IP) * UR + AR(IP) * UI AR(IP)

12、= AR(i) - TR AI(IP) = AI(i) - TI AR(i) = AR(i) + TR AI(i) = AI(i) + TI Next i US = UR UR = US * wr - UI * wi UI = UI * wr + US * wi Next j Next l If SN -1 Then For i = 1 To n AR(i) = AR(i) / n AI(i) = AI(i) / n Next i End IfEnd Function 2)数据保存和读取:Public Sub load() 数据保存Dim tempDim i, j As Integer If

13、Count 0 Then res = MsgBox(当前数据数否保存?, vbYesNo) If res = 6 Then Call store End If End IfCD.ShowOpeni = 0If CD.FileName ThenOpen CD.FileName For Input As #1Do While Not EOF(1)Input #1, tempdata(i) = tempi = i + 1LoopClose 1Text4 = maxdata()Text5 = mindata()Text6 = avdata()Text7.Text = sample_lengthText

14、8.Text = sample_freMsgBox (数据读取完成!)End IfEnd SubPublic Sub store() 数据读取Dim str As Stringj = 0g = sample_length If sample_length 0 Then str = Format(Now, yyyymmddhhmmss) & .txt Open str For Append As #1 Do While j g Print #1, data(j) j = j + 1 Loop Close 1 MsgBox (完成数据储存!) Else MsgBox (无数据,无法储存!) End

15、 IfEnd Sub 3)AD数据采集模块temp = AC_6111_AD(NTportio, cardid(0), 4000 / sample_fre, sample_path, sample_path, 3, 0, 0, 0, 0, 0, 0, Data1(0), sample_length) For i = 0 To sample_length 转换数据,16位转化为12位data(i) = (Data1(i) And &HFFF0&) / 16 - 2048) / 2048# * 10# 设置为显示到-10V到10VNext i4)数据的时域曲线显示和频率周期的计算 Public S

16、ub shi()Text10.Visible = FalsePicture2.Visible = True Picture2.BackColor = RGB(255, 255, 255)Picture2.Scale (0, 10)-(512, -10)Picture2.Line (0, 0)-(512, 0)Picture2.Line (0, 10)-(0, -10)绘制与x轴平行的直线,并标记y轴For i = 0 To 10 Picture2.Line (0, 10 - 2 * i)-(512, 10 - 2 * i) Picture2.CurrentX = 5 Picture2.Curr

17、entY = 10 - 2 * i Picture2.Print (10 - 2 * i) & V Next i绘制与y轴平行的直线,并标记x轴 Dim j As Single For j = 0 To 512 Step 30 一个格含50个数 Picture2.Line (j, -10)-(j, 10), vbBlue Picture2.CurrentY = 0 Picture2.CurrentX = j If Abs(j / sample_fre) 1 Then Picture2.Print Format(j / sample_fre, #0.#) Else Picture2.Print

18、Format(j / sample_fre, #.#) End IfNext j绘制波形Dim t1, t2, t3 As IntegerDim period As Doubleperiod = 1 / sample_freFor i = 1 To sample_length - 1 If data(i) * data(i + 1) = 0 And data(i) 0 And t1 = 0 Then 采样值发生正跳变 t2 = i t1 = t1 + 1 End If If data(i) * data(i + 1) 0 And t1 = 1 Then 采样值发生负跳变 t3 = i t1 =

19、 t1 + 1 End IfNext iinterv = 2 * Abs(t3 - t2) * period 周期If interv 0 Then frequency = 1 / interv 频率Text4 = maxdata() & V Text5 = mindata() & V Text6 = avdata() & V Text7.Text = sample_lengthText8.Text = sample_freFor i = 1 To sample_length Step 1data(i) = data(i) * zyNext iFor i = 1 To sample_length

20、 Step 1Picture2.Line (i - 1, data(i - 1)-(i, data(i), vbRedNext iText9.Text = intervText11.Text = frequencyCL.Add (data(j) / 10 * s1)DRW.DrawNext jEnd Sub5)FFT曲线显示Public Sub fft() Const fftIn = 2048 Dim i As Integer Dim xr(2048) As Double Dim xi(2048) As Double赋值,IaIn(i)是采得的数据。 For i = 0 To 2048 xr(

21、i) = 100 * data(i) xi(i) = 0 Next Call FFT0(xr(), xi(), 2048, 1)绘图 PicI_FFT.Scale (0, 100)-(fftIn - 1, -10) PicI_FFT.DrawWidth = 2 For i = 0 To fftIn - 1 PicI_FFT.Line (i, Abs(xr(i)-(i + 1, Abs(xr(i + 1), vbBlue Next iEnd Sub6)导出图形Private Sub Command4_Click()CommonDialog3.ShowSave 显示另存为对话框CommonDial

22、og3.Filter = (*.bmp)|*.bmp FileName = CommonDialog3.FileNameSavePicture Picture2.Image, filename.BMP End Sub7)截图Private Sub Command1_Click() DoEvents BitBlt Form2.hDC, 0, 0, Screen.Width, Screen.Height, GetDC(GetDesktopWindow), 0, 0, &HCC0020 SetWindowPos Form2.hWnd, HWND_TOPMOST, 0, 0, Screen.Width

23、 Screen.TwipsPerPixelX, Screen.Height Screen.TwipsPerPixelY, SWP_SHOWWINDOWEnd Sub调用模块如下Option ExplicitOption Base 0Public Declare Function SetWindowPos Lib USER32 (ByVal hWnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags A

24、s Long) As LongPublic Const HWND_TOPMOST = -1Public Const SWP_SHOWWINDOW = &H40Public Type PALETTEENTRY peRed As Byte peGreen As Byte peBlue As Byte peFlags As ByteEnd TypePublic Type LOGPALETTE palVersion As Integer palNumEntries As Integer palPalEntry(255) As PALETTEENTRY Enough for 256 colors.End

25、 TypePublic Type GUID Data1 As Long Data2 As Integer Data3 As Integer Data4(7) As ByteEnd TypePublic Const RASTERCAPS As Long = 38Public Const RC_PALETTE As Long = &H100Public Const SIZEPALETTE As Long = 104Public Declare Function CreateCompatibleDC Lib GDI32 (ByVal hDC As Long) As LongPublic Declar

26、e Function CreateCompatibleBitmap Lib GDI32 (ByVal hDC As Long, ByVal nWidth As Long, ByVal nHeight As Long) As LongPublic Declare Function GetDeviceCaps Lib GDI32 (ByVal hDC As Long, ByVal iCapabilitiy As Long) As LongPublic Declare Function GetSystemPaletteEntries Lib GDI32 (ByVal hDC As Long, ByV

27、al wStartIndex As Long, ByVal wNumEntries As Long, lpPaletteEntries As PALETTEENTRY) As LongPublic Declare Function CreatePalette Lib GDI32 (lpLogPalette As LOGPALETTE) As LongPublic Declare Function SelectObject Lib GDI32 (ByVal hDC As Long, ByVal hObject As Long) As LongPublic Declare Function Bit

28、Blt Lib GDI32 (ByVal hDCDest As Long, ByVal XDest As Long, ByVal YDest As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hDCSrc As Long, ByVal XSrc As Long, ByVal YSrc As Long, ByVal dwRop As Long) As LongPublic Declare Function DeleteDC Lib GDI32 (ByVal hDC As Long) As LongPublic Declare

29、Function SelectPalette Lib GDI32 (ByVal hDC As Long, ByVal hPalette As Long, ByVal bForceBackground As Long) As LongPublic Declare Function RealizePalette Lib GDI32 (ByVal hDC As Long) As LongPublic Declare Function GetWindowDC Lib USER32 (ByVal hWnd As Long) As LongPublic Declare Function GetDC Lib USER32 (ByVal hWnd As Long) As LongPublic Declare Function ReleaseDC Lib USER32 (ByVal hWnd As Long, ByVal hDC As Long) As LongPublic Declare Function GetDesktopWindow Lib USER32 () As LongPublic Type PicBmp Size As LongType As Long hBmp As Long

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1