欢迎来到冰豆网! | 帮助中心 分享价值,成长自我!
冰豆网
全部分类
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • 党团工作>
  • ImageVerifierCode 换一换
    首页 冰豆网 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    无线通信实验.docx

    • 资源ID:10972867       资源大小:427.88KB        全文页数:21页
    • 资源格式: DOCX        下载积分:3金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    无线通信实验.docx

    1、无线通信实验目 录一 无线通信网络简介 1二 无线通信平台的VB控制系统实验 21 实验目的 22 实验仪器 33 实验内容 34实验电路 35 实验步骤 3三 基于无线通信平台的VB温度PID控制系统硬件设计 51系统硬件设计 52系统界面设计 53 数据采集与显示程序设计 6 4 系统控制方法设计 9四 系统运行结果与分析 191 系统运行结果 192 分析改进措施 20五 参考文献 20一 无线通信网络简介Visual Basic(VB)是一种由微软公司开发的包含协助开发环境的事件驱动编程语言。从任何标准来说,VB都是世界上使用人数最多的语言不仅是盛赞VB的开发者还是抱怨VB的开发者的数

    2、量。它源自于BASIC编程语言。VB拥有图形用户界面(GUI)和快速应用程序开发(RAD)系统,可以轻易的使用DAO、RDO、ADO连接数据库,或者轻松的创建ActiveX控件。程序员可以轻松的使用VB提供的组件快速建立一个应用程序。无线通信(Wireless Communication)是利用电磁波信号可以在自由空间中传播的特性进行信息交换的一种通信方式,近些年信息通信领域中,发展最快、应用最广的就是无线通信技术。无线通信网络,由于其特有的非接线通信方式的优点,广泛地应用于特定的地理位置(如山区、油田和水利设施等)的现场遥测遥控领域。尤其在分布距离较远且数据传输量不大时,无线通信控制网络的优

    3、势更为明显。典型无线通信网络分布式控制系统见图1所示 232232 图1.无线通信控制网络图1中,采用台湾威达(ICP)无线通信模块SST900EXT,通信距离1km;波特率最大19200;232/485通信接口。二 无线通信平台的VB控制系统实验1 实验目的 1)掌握电热炉温度控制的原理及方法。 2)掌握基于无线通信平台VB电热炉温度控制系统PID控制算法。2 实验仪器 微机、自动控制实验箱、无线通信网络(泓格i7000系列)或以太网通信平台3 实验内容 (1) 利用Visual Basic6.0软件和无线通信控制网络来设计模拟加热炉温度控制实验。(2) 通过Visual Basic6.0界

    4、面,调节PID实现对模拟加热炉温度的实时控制。4实验电路 图2温度自动控制实验连接图5 实验步骤(1)按照实验指导书上的电路图连线连接实验箱。 (2)在电脑上打开7000 Utility界面 双击7000 Utility图标,进入“7000 Utility” 界面,程序自动搜索模块。再点击7012模块,点击setting。 (3)在电脑上打开串口监视精灵双击串口监视精灵软件,进程ID选择2584 7000util.exe,串口号选择所有COM口,点击启动。(4)串口监视精灵界面通过观察监视结果的数据得知指令为 #02 “回车” 打开串口调试助手,

    5、在串口调试助手的界面下方中:加入指令,#02回车,打开串口,手动发送,则在界面上就会显示实时的温度数据。(5)打开 Visual BASIC的对象窗体界面 双击Visual BASIC,在对象窗体的工具栏处双击,选择部件选项,勾选Microsoft Comm Control 6.0。(6)部件界面添加按钮控件、文本控件,及com控件。(7)Visual BASIC的代码窗体界面 根据各个空件的功能,进行编程。(8)将Pt100放入电烤箱能观察主界面温度曲线的变化,并且做记录。三 基于无线通信平台的VB温度PID控制系统硬件设计1系统硬件设计图3 硬件电路设计2系统界面设计图4系统界面设计3 数

    6、据采集与显示程序设计 7000 Utility界面 双击7000 Utility图标,进入“7000 Utility” 界面,程序自动搜索模块。再点击7012模块,点击setting。结果如图5所示图5 7000 Utility界面 “7000 Utility” 界面6串口监视精灵双击串口监视精灵软件,进程ID选择2584 7000util.exe,串口号选择所有COM口,点击启动,界面如图6所示:图6串口监视精灵串口监视精灵界面通过观察监视结果的数据得知指令为 #02 “回车”; 串口调试助手在串口调试助手的界面下方中:加

    7、入指令,#02回车,打开串口,手动发送,则在界面上就会显示实时的温度数据,串口调试助手的界面如图所示: 图7串口调试助手界面Visual BASIC的对象窗体界面 双击Visual BASIC,在对象窗体的工具栏处双击,选择部件选项,勾选Microsoft Comm Control 6.0,结果如图8所示 图8 Visual BASIC界面图9 Visual BASIC主界面Visual BASIC的代码窗体界面 根据各个空件的功能,进行编程,程序代码如图10所示图10程序代码界面4 系统控制方法设计 控制系统主要由控制器和控制对象两部分组成,通过一定的控制方法使系统达到所要求的控制性能。控制

    8、模式有开环控制、闭环控制和复合控制三种。所谓的开环控制是控制器与控制对象之间只有正向作用,没有反向联系,是一种单向的控制过程。如果控制器与控制对象之间既有正向作用又有反向联系,这种控制方式称为闭环控制或反馈控制。在某种情况下,为了达到较好的控制效果,往往将开环控制和闭环控制结合起来,这种控制方式称为复合控制。过程控制的基本算法很多,本实验主要采用 PID 控制算法。PID 控制是最早发展起来的控制策略之一,由于算法简单、鲁棒性好和可靠性高,被广泛应用于过程控制和运动控制中,尤其适用于可建立精确数学模型的确定性控制系统。随着计算机进入控制领域,不仅可以用软件实现 PID 控制,而且可以利用计算机

    9、的逻辑功能,使 PID 控制更加灵活。常规的 PID 控制系统原理框图如下图所示,系统由 PID 控制器和被控对象组成。PID 控 图11 PID控制系统框图制器是一种线性控制器,它根据给定值 r(t)与实际输出值 c(t ) 构成控制偏差:e(t)=r(t)-c(t)将偏差的比例(P)、积分(I)和微分(D)通过线性组合构成控制量,对被控对象进行控制,故称 PID 控制器。PID 控制器各校正环节的作用如下:1. 比例环节: 比例调节的方程为y=.e(t)其中y为比例调节器的输出,为比例系数,e(t)为调节器的输入或偏差值,而e(t)= -。这里为设定的目标值,为tt时刻的采样值。比例调节器

    10、的输出变化与输入偏差成比例。比例调节作用的大小除了与偏差e(t)有关外,主要取决于比例系数的大小。越大,比例调节作用越强,反之则越弱。但对于大多数来说,太大时,会引起系统自激振荡。2. 积分环节: 积分调节的方程为:其中,Ti为积分时间。积分调节的主要特点是调节器的输出不仅取决于偏差信号的大小,而且还主要与偏差存在时间有关。只要有偏差存在,输出就会随时间不断增长,直到偏差消除后,调节器的输出才不会变化。因此,积分作用能消除静差,这是它的主要优点。但是它的主要缺点是动作缓慢。而且在偏差刚一出现时,积分作用很弱,不能及时克服扰动的影响,使被调参数的动偏差增大,调节过程变长。3. 微分环节: 微分调

    11、节的方程如下:,其中,dT为微分时间。微分调节的主要特点是输出可以反映偏差的变化速度。因此,对于一个固定不变的偏差,不管其数值有多大,也不会有微分作用输出。所以微分作用不能消除静差,而只能在偏差发生变化时,产生调节作用。4.系统设计程序代码Dim Din, OutPid, OutV As Single 输入输出电压Dim LimTemp As Single 阈值Dim fCountAllOutv, fCountAllDin As Single Dim iCounterOutv, iCounterDin As IntegerDim m_i_test As IntegerDim dVolt As

    12、SingleDim dTemp As SingleDim m_i_TargTemp As SingleDim Time As LongDim m_start_time As DateDim CtlTime As LongDim m_v_Din As Single-输出电压曲线Private Sub CmdCurOutV_MouseEnter()End Sub WarmCurve1.YMaxValue = 10 WarmCurve1.YAxisDiv = 10 WarmCurve1.XAxisDiv = 10 TimerCurOutV.Enabled = True Call TimerCurOu

    13、tV_TimerEnd SubPrivate Sub CmdStart_Click()Dim X As LongDim Ret As VariantIf Text1.Text = Or Text2.Text = Or Text3.Text = Or Text4.Text = Then Ret = MsgBox(请设定好各参数, vbDefaultButton1 + vbOKOnly, 警告) Exit Sub End If-设置PID参数 T = Val(Text1.Text) * 1000 Kp = Val(Text2.Text) Td = Val(Text3.Text) Ti = Val(

    14、Text4.Text) TimerOutV.Interval = T Td = kp * Td / Val(Text1.Text) Ti = Kp * Val(Text1.Text)/ Ti TargTemp = Val(Text6.Text) TargTemp = TargTemp * 1 / 20 m_i_TargTemp = TargTemp * 1 / 10 -设置模块参数 NAP7000X1.PortOpen = True NAP7000X1.BaudRate = Val(Combo2.Text) NAP7000X1.CheckSum = True NAP7000X1.COMPort

    15、 = Val(Combo1.Text) NAP7000X1.ModuleAddress = Val(&H + Combo3.Text) NAP7000X1.ChannelNo = Val(Text7.Text) NAP7000X1.ModuleID = CLng(&H + Combo4.Text)-开始工作Text8.Text = Str(20 * Din) + + Str(u) WarmCurve1.iCurCuve = 2 For X = WarmCurve1.Left To WarmCurve1.Left + WarmCurve1.Width Step 7WarmCurve1.AddLi

    16、neDot (TargTemp * 20) WarmCurve1.AddLineDot (m_i_TargTemp * 10) Next X TimerDin.Enabled = TrueTimerOutV.Enabled = True m_start_time = TimePrivate Sub CmdExit_Click() TimerDin.Enabled = False TimerOutV.Enabled = False-使PID输出 0 NAP7000X1.ModuleAddress = Val(&H + 01) NAP7000X1.ModuleID = CLng(&H + 7021

    17、) NAP7000X1.AnalogOut (0) Text5.Text = 0.00End SubPrivate Sub Form_Unload(Cancel As Integer) TimerDin.Enabled = False TimerCurOutV.Enabled = False-使PID输出 0 TimerOutV.Enabled = False NAP7000X1.ModuleAddress = Val(&H + 01) NAP7000X1.ModuleID = CLng(&H + 7021) NAP7000X1.AnalogOut (0) OpenIcon FrmFace.h

    18、WndEnd SubPrivate Sub Text8_Change()phoenix addition m_v_Din = (20 / 2) * Din Text8.Text = Format(m_v_Din, #.0) 每0.1秒显示一次温度phoenix additionEnd SubPrivate Sub TimerDin_Timer() -输入温度 NAP7000X1.ModuleAddress = Val(&H + Combo3.Text) NAP7000X1.ModuleID = CLng(&H + Combo4.Text) Din = NAP7000X1.AnalogInIf

    19、Din 9) Then Din = fCountAllDin / 10 Text8.Text = Format(20 * Din, #.0) 每0.1秒显示一次温度 iCounterDin = 0 fCountAllDin = 0 End IfEnd SubPrivate Sub TimerOutV_Timer()For i = 0 To 9 NAP7000X1.ModuleAddress = Val(&H + Combo3.Text) NAP7000X1.ModuleID = CLng(&H + Combo4.Text) Din = NAP7000X1.AnalogIn fCountAllD

    20、in = Din + fCountAllDin iCounterDin = iCounterDin + 1 If (iCounterDin = 9) Then Din = fCountAllDin / 10 Text8.Text = Format(20 * Din, #.0) 每 显示一次温度 iCounterDin = 0 fCountAllDin = 0 End If Next -平均处理 fCountAllDin = Din + fCountAllDin iCounterDin = iCounterDin + 1 If (iCounterDin 9) Then Din = fCountA

    21、llDin / 10 iCounterDin = 0 fCountAllDin = 0Text8.Text = Format(10 * Din, #.0) 每 0.6 显示一次温度-计算偏差及PID输出值 CurTemp = Dinphoenix addition CurTemp = m_v_Dinphoenix addition ETemp(3) = ETemp(2) ETemp(2) = ETemp(1) ETemp(1) = TargTemp - CurTemp ETemp(1) = m_i_TargTemp - CurTemp phoenix addition CurTemp = m_

    22、v_Din ETemp(1) = TargTemp - CurTempphoenix addition& If TargTemp - CurTemp LimTemp Then OutV = 5 Else End If OutPid = Ti * ETemp(1) + Kp * (ETemp(1) - ETemp(2) + Td * (ETemp(1) - 2 * ETemp(2) + ETemp(3) OutV = OutV / 2 OutPid = OutPid / 2 OutV = OutV + OutPid OutV = OutV / 2 + OutPid / 2 If OutV 4.9

    23、5 Then OutV = 5 ElseIf OutV 1 Then OutV = 1End IfIf OutV 0 Then OutV = 0End IfOutV = OutV * 5&m_i_test = OutV NAP7000X1.ModuleAddress = Val(&H + 01) NAP7000X1.ModuleID = CLng(&H + 7021) NAP7000X1.AnalogOut (OutV) Text5.Text = Format(OutV, #0.00) End If End Sub-Picture2初始设置FrmPID.Picture2.AutoRedraw

    24、= TrueFrmPID.Picture2.ScaleWidth = 1000FrmPID.Picture2.ScaleHeight = 10FrmPID.Picture2.ScaleTop = -5FrmPID.Picture2.ScaleLeft = 0FrmPID.Picture2.Line (0, 0)-(FrmPID.Picture2.ScaleLeft + FrmPID.Picture2.ScaleWidth, 0), RGB(192, 192, 0)FrmPID.Picture2.PSet (0, 0)Me.AutoRedraw = True-纵坐标Line5.Y1 = (War

    25、mCurve1.Top + WarmCurve1.Height / 2)Line5.Y2 = Line5.Y1Line6.Y1 = (WarmCurve1.Top + WarmCurve1.Height)Line6.Y2 = Line6.Y1Yd = (WarmCurve1.Height) / 10For i = 0 To 10 FrmPID.Line (WarmCurve1.Left - 150, WarmCurve1.Top + i * Yd)-(WarmCurve1.Left, WarmCurve1.Top + i * Yd), RGB(0, 0, 255)NextFor i = 0 T

    26、o 19 FrmPID.Line (WarmCurve1.Left - 150 / 2, WarmCurve1.Top + (i + 1) / 2) * Yd)-(WarmCurve1.Left, WarmCurve1.Top + (i + 1) / 2) * Yd), RGB(0, 0, 255)Next-横坐标Line8.X1 = WarmCurve1.Left + WarmCurve1.Width / 2Line8.X2 = Line8.X1Line9.X1 = WarmCurve1.Left + WarmCurve1.WidthLine9.X2 = Line9.X1Xd = (Warm

    27、Curve1.Width / 10)For i = 0 To 10 FrmPID.Line (WarmCurve1.Left + i * Xd, WarmCurve1.Top + WarmCurve1.Height)-(WarmCurve1.Left + i * Xd, WarmCurve1.Top + WarmCurve1.Height + 150), RGB(0, 0, 255)NextFor i = 0 To 19 FrmPID.Line (WarmCurve1.Left + (i + 1) / 2) * Xd, WarmCurve1.Top + WarmCurve1.Height)-(

    28、WarmCurve1.Left + (i + 1) / 2) * Xd, WarmCurve1.Top + WarmCurve1.Height + 150 / 2), RGB(0, 0, 255)NextEnd SubPrivate Sub Combo5_Click()Dim i As IntegerCtlTime = Val(Combo5.Text)For i = 0 To 9 Label15(i).Caption = (i + 1) * Val(Combo5.Text) / 10Next TimerCurReTemp.Interval = Val(Combo5.Text) * 60End SubPrivate Sub WarmCurve1_MouseMoveGetData(Button As Integer, Shift As Integer, X As Single, Y As Single) StatusBar1.Panels(1).Text = 当前坐标为: + Str(X) + , + Str(


    注意事项

    本文(无线通信实验.docx)为本站会员主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2022 冰点文档网站版权所有

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

    收起
    展开