自动控制系统原理课程设计资料报告材料-北京科技大学
北京科技大学过程控制实验报告
实验报告课程名称:过程控制系统实验项目名称:被控对象特性测试实验日期与时间: 2022.07 指导教师:班级:姓名:学号:成绩:一、实验目的要求1.了解控制对象特性的基本形式。
2.掌握实验测试对象特性的方法,并求取对象特性参数二、实验内容本节实验内容主要完成测试对象特性,包含以下两部分内容:1.被控对象特性的实验测定本实验采用飞升曲线法(阶跃向应曲线法)测取对象的动特性。
飞升曲线是指输入为阶跃信号时的输出量变化的曲线。
实验时,系统处于开环状态,被控对象在某一状态下稳定一段时间后,输入一阶跃信号,使被控对象达到另一个稳定状态,得到被控对象的飞升曲线。
在实验时应注意以下的一些问题:1)测试前系统应处于正常工作状态,也就是说系统应该是平衡的。
采取一切措施防止其他干扰的发生,否则将影响实验结果。
2)在测试工作中要特别注意工作点与阶跃幅度的选取。
作为测试对象特性的工作点,应该选择正常工作状态,也就是在额定负荷及正常的其他干扰下,因为整个控制过程将在此工作点附近进行。
阶跃作用的取值范围为其额定值的 5-10%。
如果取值太小,由于测量误差及其它干扰的影响,会使实验结果不够准确。
如果取值过大,则非线性影响将扭曲实验结果。
不能获得应有的反应曲线,同时还将使生产长期处于不正常的工作状态,特别是有进入危险区域的可能性,这是生产所不能允许的。
3)实验时,必须特别注意的是,应准确地记录加入阶跃作用的计时起点,注意被调量离开起始点时的情况,以便计算对象滞后的大小,这对以后整定控制器参数具有重要的意义。
4)每次实验应在相同的条件下进行两次以上,如果能够重合才算合格。
为了校验线性,宜作正负两种阶跃进行比较。
也可作不同阶跃量的实验。
2.飞升曲线数据处理在飞升曲线测得以后,可以用多种方法来计算出所测对象的微分方程式,数据处理方法有面积法、图解法、近似法等。
面积法较复杂,计算工作量较大。
近似法误差较大,图解法较方便,误差比近似法小。
自动控制原理课程设计报告材料
自动控制原理课程设计报告材料一、引言自动控制原理是现代工程领域中一门重要的学科,它涉及到控制系统的设计、分析和优化。
本课程设计报告旨在介绍我所完成的自动控制原理课程设计,并详细阐述设计过程、实验结果及分析。
二、设计目标本次课程设计的目标是设计一个能够实现温度控制的自动控制系统。
通过该系统,能够实时监测温度变化并根据设定的温度范围自动调节加热器的工作状态,以保持温度在设定范围内稳定。
三、设计原理1. 系统框架设计的自动控制系统由传感器、控制器和执行器组成。
传感器负责实时监测温度变化,控制器根据传感器的反馈信号进行判断和控制决策,执行器则根据控制器的指令调节加热器的工作状态。
2. 控制算法本次设计采用了经典的比例-积分-微分(PID)控制算法。
PID控制器通过计算误差的比例、积分和微分部分的权重,来调节执行器的输出信号,以实现对温度的精确控制。
3. 系统建模为了进行系统控制算法的设计和分析,我们需要对系统进行建模。
本次设计中,我们采用了一阶惯性环节模型来描述加热器和温度传感器之间的关系。
四、实验步骤1. 硬件搭建首先,我们搭建了一个实验平台,包括加热器、温度传感器、控制器和执行器等硬件设备。
确保各个设备之间的连接正确并稳定。
2. 参数调节接下来,我们通过对PID控制器的参数进行调节,使得系统能够快速响应、稳定控制。
通过试验和调整,我们得到了最优的PID参数。
3. 实验数据采集在实验过程中,我们采集了一系列的温度数据,包括初始温度、设定温度和实际温度等。
同时,记录了控制器的输出信号和执行器的工作状态。
4. 数据分析与结果验证通过对实验数据的分析,我们验证了设计的自动控制系统的性能。
分析结果表明,该系统能够准确地控制温度在设定范围内波动,并具有良好的稳定性和鲁棒性。
五、实验结果与讨论1. 温度控制精度经过多次实验,我们得到了控制系统的温度控制精度。
结果表明,系统能够将温度控制在设定范围内,误差较小。
2. 响应时间实验结果显示,系统对温度变化的响应时间较短,能够快速调节加热器的工作状态以保持温度稳定。
北京科技大学《自动控制原理》复习
ci
s ir1 pi
ci
lim (s
s pi
pi )G(s)
i r 1,, n
c1i
1
d i1
(i
1)!
lim
s p1
dt
i1
(s
p1)r G(s)
i 1, , r.
p1
•
x
1
0
1 p1
0
p r 1
0
x
1
u
1
pn 1
y c11 c1r cr1 cn x
电位器
G(s) K
测速电机 G(s) Ks
电加热炉 单容水槽 双容水槽
G(s) K Ts 1
G(s) K Ts 1
G(s) K e s (有纯延迟)
Ts 1
(也可有延迟,略) K
G(s) T1T2s2 (T1 T2 )s 1
• 比例环节
• 一阶惯性环节 • 积分环节 • 微分环节、一阶微分环节 • 二阶振荡环节 • 二阶微分环节 • 延迟/时滞环节
5、高阶系统的时域分析
主导极点:在高阶系统中某一极点或一对共轭复数极点距虚轴的距 离是其它极点距虚轴距离的1/5或更小,并且附近没有闭环零点,称 该极点(对)为该高阶系统的主导极点。
①用主导极点来估计高阶系统的性能指标 ②导出高阶系统单位阶跃响应的近似表达式
偶极子: 指相距很近的一对零、极点。
6、线性系统状态方程的解 状态转移矩阵性质:
sa
(s a)2 2
控制系统的数学描述
定义: 单输入单输出线性定常动态对象的传递函数G(S)是零初值下
该对象的输出量的拉普拉斯变换Y(S)与输入量的拉普拉斯变换U(S)
北京科技大学软件课程设计报告-自动化专业
北京科技大教之阳早格格创做课程安排(硬件安排)报告班级:姓名:教号:共组共教:指挥西席:曾慧日期: 2014 年 11 月 13 日目录1安排真质通过本质支配进一步相识OPC的百般观念,掌握OPC客户端的编写要领.并对于微硬的DCOM有一定的相识,央供通过符合的DCOM摆设,使客户端不妨读与搜集上服务器中的数据.1)利用VB谈话编写出一个简朴的OPC客户端步调,央供那个客户端不妨读与服务器中的数据,并隐现出去.2)摆设DCOM,使客户端不妨能过DCOM读与另一台服务器上的数据.2应用步调总体分解与安排应用步调与OPC服务器举止连交并读与服务器端的数据,共时把读与到的数据通过棒柱战文本框隐现,并不妨保存数据便于查找,共时应用了Picture控件对于真时数据变更趋势分解.修坐一个Visual Basic工程1)开用Visual Basic,新修一个Visual Basic工程.采用[Standard EXE]动做新修工程的典型.图 Visual Basic 工程的修坐2.2 OPC修坐对于OPC包拆DLL举止备案:从Visual Basic菜单里采用[Project]-[References].正在[Available References]表示中,采用 [OPC Automation 2.0].图2.2 引用的树坐正在Visual Basic里,是以对于象的单位对于OPC服务器举止考察.OPC自动化交心是由以下四种对于象所定义.OPC服务器OPC组(OPC组集中)OPC标签(OPC标签集中)OPC欣赏器1)变量声明图2.3 OPC对于象变量的声明其中,部分变量声明意思睹表所示.变量名证明objServer OPCServer对于象,用于连交OPC服务器.objGroups OPCGroups对于象,用于增加OPC组的OPC组集中objTestGrp OPCGroup对于象,演示用的OPC组.objItems OPCItems对于象,用于增加OPC标签的OPC标签集中. lServerHandles() 少整型的数组,用于保存OPC标签的服务器句柄.3应用步调各功能模块分解与安排窗体中所使用的控件种类如表3.1所示.控件称呼窗体(Form) FmMain 下令按钮(CommandButton) BtnConnect下令按钮(CommandButton) BtnAddItem下令按钮(CommandButton) BtnQuit下令按钮(CommandButton) BtnSave下令按钮(CommandButton) BtnStop下令按钮(CommandButton) Btndraw定时器(Timer) tmUpdate定时器(Timer) dataUpdate 对于话框(CommonDialog) CommonDialog1图像(PictureBox) picBar(动做数组使用,从左开初1~2) 标签(Label) lbBar(动做数组使用.从左开如1~2) 文本框(TextBox) dataInfo图像(Picture) Picture1那里用“NEW”闭键词汇死成OPC服务器的对于象,而后调用OPC服务器对于象的“Connect”要领,战OPC服务器连交.Connect子步调如下:'连交OPC服务器战修坐OPC组Sub Connect(strProgID As String, Optional strNode As String)If objServer Is Nothing Then' 修坐一个OPC服务器对于象Set objServer = New OPCServerEnd IfIf objServer.ServerState = OPCDisconnected Then' 连交OPC服务器objServer.Connect strProgID, strNodeEnd IfIf objGroups Is Nothing Then' 修坐一个OPC组集中End IfIf objTestGrp Is Nothing Then' 增加一个OPC组Set objTestGrp = objGroups.Add("TestGrp")End IfEnd Sub增加OPC标签对于OPC服务器举止考察前,必须先正在OPC组里增加要考察的OPC标签.AddItem子步调如下:‘增加OPC标签Sub AddItem()Dim strItemIDs(8) As StringDim lClientHandles(2) As LongDim lErrors() As LongDim I As IntegerIf objTestGrp Is Nothing ThenExit SubEnd IfIf Not objItems Is Nothing ThenIf objItems.Count > 0 ThenExit SubEnd IfEnd If' 树坐组活动状态objTestGrp.IsActive = True' 与消组非共期报告objTestGrp.IsSubscribed = False' 修坐OPC项集中' 死成标签的项标记符For I = 1 To 2strItemIDs(I) = "TAG"lClientHandles(I) = INext' 增加OPC项Call objItems.AddItems(8, strItemIDs, _lClientHandles, lServerHandles, lErrors)End Sub断开服务器连交着OPC服务器的OPC应用步调,正在退出前必须断开战OPC服务器的连交.果为OPC服务器本去不知讲OPC应用步调的退出,如果不先断开连交,那么OPC服务器使用的估计机资材便不被释搁.如果那样的问题反复爆收,暂而暂之,连绝运止的自动统造系统大概会使估计机资材徐徐枯竭进而爆收宽沉问题.Disconnect子步调如下:'断开OPC服务器Sub Disconnect()Dim lErrors() As LongIf Not objItems Is Nothing ThenIf objItems.Count > 0 Then' 扫除OPC项objItems.Remove 2, lServerHandles, lErrorsEnd IfSet objItems = NothingEnd IfIf Not objTestGrp Is Nothing Then' 扫除OPC组objGroups.Remove "TestGrp"Set objTestGrp = NothingEnd IfIf Not objGroups Is Nothing ThenSet objGroups = NothingEnd IfIf Not objServer Is Nothing ThenIf objServer.ServerState <> OPCDisconnected Then' 断开OPC服务器.End IfSet objServer = NothingEnd IfEnd Sub客户端使用2个定时器TmUpdate战dataUpdate,定时为1S.正在TmUpdate事变中调用共步读与数据函数SyncRead,每隔1S读与服务器端的数据,共时对于棒柱的隐现举止刷新.正在定时器dataUpdate事变中读与系统时间本去不竭刷新TextBox的真质,隐现目前的时间战数据.为了是隐现越收人情化,对于分歧范畴的数值隐现采与了分歧的颜色.当数值过矮大概者过下时分别隐现深蓝色战白色以示告诫.中间值隐现绿色战橙黄色.步调代码如下所示:SyncRead OPCCache, vtItemValues, lErrors' 棒图的表示For I = 1 To 2' 数据的要领化strBuf = Format(vtItemValues(I), "###.000")' 表示数据字符串lbBar(I).Caption = strBufdataTemp(I) = strBuf' 估计棒的宽战下nWidth = picBar(I).ScaleWidthnHeight = picBar(I).ScaleHeightsglScale = vtItemValues(I) / 100nDrawHeight = CInt(nHeight * sglScale)' 扫除现棒图picBar(I).Cls' 画造棒图If vtItemValues(I) < tHoldValue1 ThenpicBar(I).Line (0, nHeight - nDrawHeight)-(nWidth, nHeight), RGB(0, 0, 255), BFElseIf vtItemValues(I) < tHoldValue2 ThenpicBar(I).Line (0, nHeight - tHoldValue1 / 100 * nHeight)-(nWidth, nHeight), RGB(0, 225, 0), BFpicBar(I).Line (0, nHeight - nDrawHeight)-(nWidth, (1 - tHoldValue1 / 100) * nHeight), RGB(225, 225, 0), BFElsepicBar(I).Line (0, nHeight - tHoldValue1 / 100 * nHeight)-(nWidth, nHeight), RGB(0, 225, 0), BFpicBar(I).Line (0, nHeight - tHoldValue2 / 100 * nHeight)-(nWidth, (1 - tHoldValue1 / 100) * nHeight), RGB(225, 225, 0), BFpicBar(I).Line (0, nHeight - nDrawHeight)-(nWidth, (1 - tHoldValue2 / 100) * nHeight), RGB(255, 0, 0), BFEnd IfEnd IfIf I = 1 Theny(num1) = vtItemValues(I)num1 = num1 + 1Elsez(num2) = vtItemValues(I)num2 = num2 + 1End IfNextEnd Sub步调代码如下:Private Sub dataUpdate_Timer()If SaveFlag Then '保存数据中断后扫除本去的数据dataInfo.Text = Year(Now()) & Month(Now()) & Day(Now()) & " " & Hour(Now()) & ":" & Minute(Now()) & ":" & Second(Now()) & " " & "反应罐温度:" & dataTemp(1) & " " & "反应罐液位:" & dataTemp(2) & Chr(13) & Chr(10)SaveFlag = FalseElsedataInfo.Text = dataInfo.Text & Year(Now()) & Month(Now()) & Day(Now()) & " " & Hour(Now()) & ":" & Minute(Now()) & ":" & Second(Now()) & " " & "反应罐温度:" & dataTemp(1) & " " & "反应罐液位:" & dataTemp(2) & Chr(13) & Chr(10)End IfEnd Sub此处定义bool型的SaveFlag为保存标记,正在保存时停止对于新的数据的交支.主要用到CommonDialog控件.该控件可用于创修“文献挨开”、“文献保存”、“文献挨印”、“颜色树坐”、“字体树坐”、“助闲”6种对于话框.步调代码如下所示:Private Sub BtnSave_Click()TmUpdate.Enabled = FalsedataUpdate.Enabled = FalseCommonDialog1.DialogTitle = "另存为"CommonDialog1.DefaultExt = "txt"If Len(CommonDialog1.FileName) > 0 ThenOpen CommonDialog1.FileName For Output As #1Close #1SaveFlag = TrueEnd IfEnd SubPicture是功能强盛坐标图画造硬件,本次安排中采与VB中Picture控件举止真时直线画造.正在安排时增加2个系列直线,代表二个通讲,即温度战液位与时间的闭系.并正在图中画出二条警戒线,能更直瞅天比对于数据的变更.部分步调代码如下所示:If Check1.Value = 0 ThenIf col < 201 ThenFor u = 1 To 2For j = col To colX = jY = vtItemValues(u)px(j, u) = Xpy(j, u) = YNext jNext ucol = col + 1pl = pl + 1ElseFor s = 1 To 2For t = 1 To 199px(t, s) = tpy(t, s) = py(t + 1, s)Next tpy(200, s) = vtItemValues(s)Next sEnd IfElsecol = colEnd IfIf pl >= 2 ThenFor w = 1 To 2Picture1.PSet (px(1, w), py(1, w))For j = 2 To colPicture1.Line -(px(j - 1, w), py(j - 1, w)), QBColor(w * 2)Next jNext wEnd If'画二条警戒线Picture1.DrawWidth = 2Picture1.Line (0, 150)-(200, 150), vbRedPicture1.Line (0, 600)-(200, 600), vbBlue' 指示警戒值,警戒值以上改变隐现颜色If lbBar(1).Caption > 150 Or lbBar(2).Caption > 600 ThenLabel7.Caption = "出现非常十分!"ElseLabel7.Caption = "正正在瞅测!"End IfIf lbBar(1).Caption > 150 ThenText2.Text = "温度过下!"picBar(1).Line (0, nHeight - nDrawHeight)-(nWidth, nHeight), _RGB(255, 0, 0), BFEnd IfIf lbBar(1).Caption < 150 ThenText2.Text = "温度稳固!"picBar(1).Line (0, nHeight - nDrawHeight)-(nWidth, nHeight), _RGB(0, 255, 0), BFEnd IfIf lbBar(2).Caption > 600 ThenText1.Text = "液里过下!"picBar(2).Line (0, nHeight - nDrawHeight)-(nWidth, nHeight), _RGB(255, 0, 0), BF4步调尝试运止步调后,先单打“连交”按钮,包管客户端连交上组态王数据库.而后单打“加载”按钮,瞅察数据时间仄常隐现,棒柱的数据战颜色是可仄常,文本框内的时间战数据是可仄常以及瞅是可能真时隐现直线.单打“保存数据”按钮,弹出对于话框,采用路径,挖写文献名后保存数据.末尾单打“退出”按钮,瞅成可仄常退出步调.运止步调,注意将bin文献夹搁到工程下.从尝试截止上瞅,所有步调不bug,各个功能仄常.从画图的截止不妨瞅出从服务器传去的数据是按正弦顺序变更的.图4.2步调尝试图二5步调文档(1)运止步调,连交乐成后,开用,此时棒状图以及文本框内便会隐现反应罐温度战反应罐液位的值.(2)当数据聚集到一定程度之后,面打“画图”按钮,应罐温度战反应罐液位数值变更直线便会隐现出去,每面打一次,便会刷新一次.进而真止了数据的真时隐现.步调中数据刷新为1s,果此正在面打“画图”按钮时频次最佳不要超出1s.(3)保存数据.面打“保存”按钮,会弹出对于话框,输进赞同的文献名保存即可.保存数据后,所有履历数据会被浑空.浑单Option Base 1Option ExplicitDim WithEvents objServer As OPCServerDim objGroups As OPCGroupsDim objTestGrp As OPCGroupDim objItems As OPCItemsDim lServerHandles() As LongDim px(200, 2) As Single, py(200, 2) As SingleDim col As IntegerDim pl As IntegerDim dataTemp(2) As StringDim DrawFlag As BooleanDim SaveFlag As BooleanSub Connect(strProgID As String, Optional strNode As String)If objServer Is Nothing Then' 修坐一个OPC服务器对于象Set objServer = New OPCServerEnd IfIf objServer.ServerState = OPCDisconnected Then' 连交OPC服务器objServer.Connect strProgID, strNodeEnd IfIf objGroups Is Nothing Then' 修坐一个OPC组集中End IfIf objTestGrp Is Nothing Then' 增加一个OPC组Set objTestGrp = objGroups.Add("TestGrp")End IfEnd SubSub AddItem()Dim strItemIDs(2) As StringDim lClientHandles(2) As LongDim lErrors() As LongDim I As IntegerIf objTestGrp Is Nothing ThenExit SubIf Not objItems Is Nothing ThenIf objItems.Count > 0 ThenExit SubEnd IfEnd If' 树坐组活动状态objTestGrp.IsActive = True' 与消组非共期报告objTestGrp.IsSubscribed = False' 修坐OPC项集中' 死成标签的项标记符strItemIDs(1) = "反应罐温度.Value"strItemIDs(2) = "反应罐液位.Value"lClientHandles(1) = 1lClientHandles(2) = 2' 增加OPC项Call objItems.AddItems(2, strItemIDs, _lClientHandles, lServerHandles, lErrors)End SubSub Disconnect()Dim lErrors() As LongIf Not objItems Is Nothing ThenIf objItems.Count > 0 Then' 扫除OPC项objItems.Remove 2, lServerHandles, lErrorsEnd IfSet objItems = NothingEnd IfIf Not objTestGrp Is Nothing Then' 扫除OPC组objGroups.Remove "TestGrp"Set objTestGrp = NothingEnd IfIf Not objGroups Is Nothing ThenSet objGroups = NothingEnd IfIf Not objServer Is Nothing ThenIf objServer.ServerState <> OPCDisconnected Then ' 断开OPC服务器.End IfSet objServer = NothingEnd IfEnd SubPrivate Sub btnConnect_Click()' 调用Connect子步调Call Connect("kingview.view.1")Label7.Caption = "与服务器连交乐成!"End SubPrivate Sub btnAddItem_Click()' 调用AddItem子步调Call AddItemIf Not objTestGrp Is Nothing ThenIf objTestGrp.OPCItems.Count > 0 Then' 开用定时器tmUpdate.Enabled = TruedataUpdate.Enabled = TrueElseEnd IfEnd IfPrivate Sub btnQuit_Click()' 卸载窗体Unload fmMainEnd SubPrivate Sub Form_Unload(Cancel As Integer)' 调用Disconnect子步调Call DisconnectEnd SubPrivate Sub tmUpdate_Timer()Dim vtItemValues() As VariantDim lErrors() As LongDim strBuf As StringDim nWidth As IntegerDim nHeight As IntegerDim nDrawHeight As IntegerDim sglScale As SingleDim I As Integer, u As Integer, j As Integer, s As Integer, t As Integer, w As Integer Dim X As Single, Y As Single' 共期读与SyncRead OPCCache, vtItemValues, lErrors' 棒图的表示For I = 1 To 2' 数据的要领化strBuf = Format(vtItemValues(I), "###.000")' 表示数据字符串lbBar(I).Caption = strBufdataTemp(I) = strBuf' 估计棒的宽战下nWidth = picBar(I).ScaleWidthnHeight = picBar(I).ScaleHeightsglScale = vtItemValues(I) / 700nDrawHeight = CInt(nHeight * sglScale)' 扫除现棒图picBar(I).Cls' 画造棒图picBar(I).Line (0, nHeight - nDrawHeight)-(nWidth, nHeight), _RGB(255, 0, 0), BFNext'直线画造If Check1.Value = 0 ThenIf col < 201 ThenFor u = 1 To 2For j = col To colX = jY = vtItemValues(u)px(j, u) = Xpy(j, u) = YNext jNext ucol = col + 1pl = pl + 1ElseFor s = 1 To 2For t = 1 To 199px(t, s) = tpy(t, s) = py(t + 1, s)Next tpy(200, s) = vtItemValues(s)Next sEnd Ifcol = colEnd IfIf pl >= 2 ThenFor w = 1 To 2Picture1.PSet (px(1, w), py(1, w))For j = 2 To colPicture1.Line -(px(j - 1, w), py(j - 1, w)), QBColor(w * 2)Next jNext wEnd If'画二条警戒线Picture1.DrawWidth = 2Picture1.Line (0, 150)-(200, 150), vbRedPicture1.Line (0, 600)-(200, 600), vbBlue' 指示警戒值,警戒值以上改变隐现颜色If lbBar(1).Caption > 150 Or lbBar(2).Caption > 600 ThenLabel7.Caption = "出现非常十分!"ElseLabel7.Caption = "正正在瞅测!"End IfIf lbBar(1).Caption > 150 ThenText2.Text = "温度过下!"picBar(1).Line (0, nHeight - nDrawHeight)-(nWidth, nHeight), _RGB(255, 0, 0), BFEnd IfIf lbBar(1).Caption < 150 ThenText2.Text = "温度稳固!"picBar(1).Line (0, nHeight - nDrawHeight)-(nWidth, nHeight), _RGB(0, 255, 0), BFEnd IfIf lbBar(2).Caption > 600 ThenText1.Text = "液里过下!"picBar(2).Line (0, nHeight - nDrawHeight)-(nWidth, nHeight), _RGB(255, 0, 0), BFEnd IfIf lbBar(2).Caption < 600 ThenText1.Text = "液里稳固!"picBar(2).Line (0, nHeight - nDrawHeight)-(nWidth, nHeight), _RGB(0, 255, 0), BFEnd IfEnd SubSub SyncRead(nSource As Integer, ByRef vtItemValues() As Variant, _ ByRef lErrors() As Long)Dim lServerHandlesTemp(2) As LongDim j As IntegerIf objTestGrp Is Nothing ThenExit SubEnd IfIf objTestGrp.OPCItems.Count > 0 Then' 共期读与objTestGrp.SyncRead nSource, 2, lServerHandles, _vtItemValues, lErrorsEnd IfEnd SubPrivate Sub Form_Load()tmUpdate.Enabled = FalsetmUpdate.Interval = 100dataUpdate.Enabled = FalsedataUpdate.Interval = 1000'初初化时间变量col = 1' 调用时间函数,隐现时间Call date1'初初化坐标范畴Picture1.Scale (0, 750)-(200, 0)End Sub'调用系统时间子函数Sub date1()Label3.Caption = Trim(Str(Year(Date))) + "年" + Trim(Str(Month(Date))) + "月" + Trim(Str(Day(Date))) + "日"Label4.Caption = "目前时间:" + Trim(Str(Hour(Time))) + "时" + Trim(Str(Minute(Time))) + "分" + Trim(Str(Second(Time))) + "秒"End Sub'保存数据事变处理Private Sub BtnSave_Click()tmUpdate.Enabled = False。
北京科技大学控制实验报告材料4
实验四 线性系统的频域分析一. 实验目的(1)熟练掌握运用MA TLAB 命令绘制控制系统伯德图的方法;(2)了解系统伯德图的一般规律及其频域指标的获取方法;(3)熟练掌握运用伯德图分析控制系统稳定性的方法;(4)设计超前校正环节并绘制Bode 图;(5)设计滞后校正环节并绘制Bode 图。
二. 实验原理及容1、频率特性函数)(ωj G 。
设线性系统传递函数为:nn n n m m m m a s a s a s a b s b s b s b s G ++⋅⋅⋅++++⋅⋅⋅++=---1101110)( 则频率特性函数为:nn n n m m m m a j a j a j a b j b j b j b jw G ++⋅⋅⋅++++⋅⋅⋅++=---)()()()()()()(1101110ωωωωωω 由下面的MATLAB 语句可直接求出G(jw)。
i=sqrt(-1) % 求取-1的平方根GW=polyval(num ,i*w)./polyval(den ,i*w)其中(num ,den )为系统的传递函数模型。
而w 为频率点构成的向量,点右除(./)运算符表示操作元素点对点的运算。
从数值运算的角度来看,上述算法在系统的极点附近精度不会很理想,甚至出现无穷大值,运算结果是一系列复数返回到变量GW 中。
2、用MA TLAB 作伯德图控制系统工具箱里提供的bode()函数可以直接求取、绘制给定线性系统的伯德图。
当命令不包含左端返回变量时,函数运行后会在屏幕上直接画出伯德图。
如果命令表达式的左端含有返回变量,bode()函数计算出的幅值和相角将返回到相应的矩阵中,这时屏幕上不显示频率响应图。
命令的调用格式为:[mag,phase,w]=bode(num,den)[mag,phase,w]=bode(num,den,w)或[mag,phase,w]=bode(G)[mag,phase,w]=bode(G,w)矩阵mag 、phase 包含系统频率响应的幅值和相角,这些幅值和相角是在用户指定的频率点上计算得到的。
自动化控制原理课程设计报告(一)
自动化控制原理课程设计报告(一)自动化控制原理课程设计报告引言•简要介绍自动化控制原理的重要性和应用场景。
•阐述课程设计报告的目的和意义。
课程设计目标•描述本次课程设计的具体目标和要求。
•解释该目标的意义和对学习者的影响。
设计思路•分析课程设计要求,确定设计思路的基本框架。
•阐述设计思路的合理性和可行性。
•介绍所采用的主要方法和技术。
实施步骤1.项目准备阶段–研究相关资料和文献,了解当前的研究进展和应用场景。
–调研市场上已有的自动化控制系统,分析其特点和优缺点。
2.系统设计阶段–定义系统的功能和性能指标。
–利用系统理论和数学模型设计控制策略。
–根据系统需求和参数设计硬件电路和软件程序。
3.系统实施与调试阶段–制作自动化控制系统的原型。
–进行系统实施和集成测试。
–进行系统调试和优化。
4.系统性能评估阶段–测试和评估系统在不同情况下的性能和稳定性。
–分析评估结果,并对系统进行改进和优化。
5.报告撰写和展示阶段–撰写课程设计报告,并整理相关实验数据和图表。
–准备课程设计的展示材料和演示文稿。
–展示和演示课程设计成果,并回答相关问题。
实施结果与分析•分析所设计的自动化控制系统在实际应用中的性能和稳定性。
•对系统的优点和局限性进行分析和总结。
•提出改进和优化的方向和建议。
结论•简要总结整个课程设计的过程和成果。
•强调该课程设计对学习者的价值和意义。
参考文献•列出参考文献的主要信息。
以上是一篇关于自动化控制原理课程设计报告的相关文章,通过标题和副标题的形式来呈现内容。
文章采用markdown格式,按照列点的方式生成,遵守了不出现html字符、网址、图片和电话号码等内容的规则。
希望对您有所帮助!。
自动控制的基本原理
6
闭环控制系统的基本组成和要求
(6)比较环节 它是将给定量与检测量进行比较的一种装置。在框图上它实际上是信号的相加 点,用一个圆圈内划╳表示,两个以上的信号(同一量纲)可以在一个相加点上相加或相减,如
(7)调节器 调节器是对偏差信号进行比例P、积分I、微分D以及它们的组合PI、PD或PID的运 算处理,实际当中常把给定电位器、比较器、调节器组合在一块,统称为输入调节器。调节器可 以是模拟电路构成,也可以是计算机计算后的数字输出,都有一些模拟电路。影响工作稳定持久 的主要因素是器件飘移。
2020/7/10
5
闭环控制系统的基本组成和要求
(1)被控对象 指的是生产设备或生产过程,如电动机转动、轧钢机轧制、各种容器或管线 温度、流量控制。不同控制对象具有不同特性,基本不能人为改变。但可以改变不同的调节控 制,从而改进响应。
(2)被控量 它是被控对象中要求维持等于或接近于给定值的物理量,通称为被控量(或 被控制量)。例如当以轧机为被控对象时,要求控制其轧件厚度、或压下位置、或轧制速度、或 张力等,那么轧件厚度、压下位置、轧制速度、张力等就是该控制系统的被控量,或称为输出 量。
为适应这种复杂性,产生了智能控制策略。
2020/7/10
25
智能控制策略的发展
20世纪70年代后期,控制理论与人工智能相结 合,产生了智能控制。
随着智能控制理论研究的深入和应用范围的扩大, 出现了三元结构、四元结构和多元结构(自动控 制—人工智能—运筹学—信息论—计算机—生物 学)理论。
瑞典学者K.J.Åström的“模糊逻辑控制” 、神 经网络和专家系统是三种典型的智能控制方法。
2020/7/10
14
2.1.2 Smith控制
北科大自动化课程设计
北科大自动化课程设计一、课程目标知识目标:1. 让学生掌握自动化基本概念,理解自动化系统的组成及其工作原理。
2. 使学生了解自动控制理论的基本知识,如传递函数、稳定性分析等。
3. 引导学生掌握一种自动化编程语言,如PLC编程,并能够运用到实际项目中。
技能目标:1. 培养学生运用自动控制理论分析问题和解决问题的能力。
2. 提高学生动手实践能力,能够独立完成简单的自动化系统设计与调试。
3. 培养学生团队协作能力,能够与他人共同完成复杂的自动化项目。
情感态度价值观目标:1. 激发学生对自动化技术的兴趣,培养其探索精神和创新意识。
2. 培养学生具备良好的工程素养,关注自动化技术在工程领域的应用。
3. 引导学生认识到自动化技术对社会发展的积极作用,增强社会责任感。
本课程针对北科大自动化专业学生,结合学科特点,注重理论知识与实践操作的相结合。
在教学过程中,充分考虑学生的认知水平、学习兴趣和实际需求,设定明确的课程目标。
通过课程学习,使学生能够达到以上所述的知识、技能和情感态度价值观目标,为今后从事自动化领域的工作打下坚实基础。
二、教学内容本章节教学内容主要包括以下几部分:1. 自动化基本概念:介绍自动化的定义、分类及其在工业生产中的应用。
参考教材章节:第一章 自动化概述2. 自动化系统组成:分析自动化系统的基本构成,包括传感器、执行器、控制器等。
参考教材章节:第二章 自动化系统组成3. 自动控制理论:讲解传递函数、稳定性分析、闭环控制等基本理论。
参考教材章节:第三章 自动控制理论4. PLC编程与应用:学习PLC编程语言,掌握基本指令和程序设计方法,了解其在自动化系统中的应用。
参考教材章节:第四章 PLC编程与应用5. 自动化系统设计与实践:结合实际案例,讲解自动化系统的设计步骤、调试方法及注意事项。
参考教材章节:第五章 自动化系统设计与实践6. 自动化技术发展趋势:介绍当前自动化技术的发展趋势,如工业4.0、智能制造等。
自动控制原理课程设计报告-北京科技大学
北京科技大学自动控制原理课程设计学院:班级:学号:指导教师:姓名:目录一.引言 (3)二.系统模型的建立 (3)三.系统控制的优化 (7)3.1 PID调节参数的优化 (7)3.2 积分分离PID的应用 (10)四,结语 (12)双轮自平衡智能车行走伺服控制算法摘要:全国第八届“飞思卡尔”智能汽车大赛已经结束。
光电组使用大赛提供的D车模,双轮站立前进,相对于以前的四轮车,双轮车的控制复杂度大大增加。
行走过程中会遇到各种干扰,经过多次的实验,已经找到了一套能够控制双轮车的方法。
双轮机器人已经广泛用于城市作战,排爆,反恐,消防以及空间消防等领域。
实验使用单片机控制双电机的转速,达到了预期的效果。
关键词:自平衡;智能;控制算法Motion Servo Control Algorithm for Dual Wheel Intelligent CarAbstract: The 8th freescale cup national Intelligent Car competition of has been end.The led team must used D car which has only 2tires.It is more difficult to control prefer to control A car which has4tires.There is much interference on the track.A two-wheeled robots have been widely used in urban warfare, eod, counter-terrorism, fire control and space fire control and other fields。
We has searched a good ways to control it.We used MCU to control the speed of motors and get our gates.Key Words: balance by self; intelligent; control algorithm一.引言双轮自平衡车是智能汽车中一个重要的组成部分。
北京科技大学控制实验报告2
实验二用 MATLAB 建立传递函数模型一、实验目的(1)熟悉 MA TLAB 实验环境,掌握 MA TLAB 命令窗口的基本操作;(2)掌握 MA TLAB 建立控制系统数学模型的命令及模型相互转换的方法;(3)掌握使用 MA TLAB 命令化简模型基本连接的方法;(4)学会使用 Simulink 模型结构图化简复杂控制系统模型的方法。
二、实验原理及内容控制系统常用的数学模型有四种:传递函数模型(tf 对象)、零极点增益模型(zpk 对象)、结构框图模型和状态空间模型( ss 对象)。
经典控制理论中数学模型一般使用前三种模型,状态空间模型属于现代控制理论范畴。
1、有理函数模型线性连续系统的传递函数模型可一般地表示为:G(s)b1 s m b2 s m 1b m s b m 1n m(1)s n a1s n 1a n 1 s a n将系统的分子和分母多项式的系数按降幂的方式以向量的形式输入给两个变量num和den ,就可以轻易地将传递函数模型输入到MATLAB环境中。
命令格式为:num[b1 ,b2 ,,b m ,b m 1 ] ;den[1,a1 , a2 ,,an 1, an];用函数 tf ( )来建立控制系统的传递函数模型,该函数的调用格式为:G= tf(num , den);例 1一个简单的传递函数模型:G (s)s 542s33s24s 5s可以由下面的命令输入到 MATLAB工作空间中去。
>> num=[1 , 2];den=[1 , 2, 3, 4,5];G=tf(num , den)运行结果:Transfer function:s + 2-----------------------------s^4 + 2 s^3 + 3 s^2 + 4 s + 5我的实验:>>num=[1,2];den=[1,2.3,4,5];G=tf(num,den) (2)(3)(4)Transfer function:s + 2-----------------------s^3 + 2.3 s^2 + 4 s + 5这时对象 G 可以用来描述给定的传递函数模型,作为其它函数调用的变量。
北京科技大学《自动控制原理》课件-系统校正
Gc (s)
从输入方向引入的补偿通道。
R(s)
G1(s)
C(s) G2 (s)
5、校正类型比较:
H (s)
串联校正: 分析简单,应用范围广,易于理解和接受.
反馈校正: 最常见的就是比例反馈和微分反馈,微分反馈又
叫速度反馈,结构简单。
顺馈校正:以消除或减小系统误差为目的。
前馈校正:以消除或减小干扰对系统影响。
满足要求
进一步可以比较校正后系统的谐振峰值 Mr 和带宽b。并
进行讨论.
需要指出的是,能够满足性能指标的校正方案不是唯一的。 校正装置的参数不是统一的,可能各人做出的结果不一样.同 时,校正是一个反复试探的过程。
80
L 60 db
- 40 20
20
-20
Magnitude (dB)
00
-20
1 c
α不能取得太大(为了保证较高的信噪比), α一般不超过20。这 种超前校正网络的最大相位超前角一般不大于65°,如果需要大 于65°,则要两个超前网络相串联来实现,并在所串联的两个网 络之间加一隔离放大器,以消除它们之间的负载效应。
在ωm处幅值为:20 lg | GC ( jm ) | 20 lg
1 2
7.2 超前校正及其参数的确定
Magnitude (dB)
① 绘制未校正系统的开环对数频率特性;
Bode Diagram 100
50
0
-50
-100
-150 -90
-135
Phase (deg)
-180
-225
-270
-1
0
1
2
3
4
5
10
10
北科自控课程设计
北科自控课程设计一、课程目标知识目标:1. 理解自动控制的基本概念、原理及分类;2. 掌握自动控制系统的数学模型及其建立方法;3. 学会分析自动控制系统的性能指标及其影响因素;4. 了解典型自动控制系统的结构、原理及在实际应用中的优缺点。
技能目标:1. 能够运用数学模型描述自动控制系统的动态特性;2. 掌握利用传递函数、状态空间方法分析自动控制系统的稳定性和性能;3. 能够设计简单的自动控制系统,并对其进行仿真和实验验证;4. 培养运用所学知识解决实际工程问题的能力。
情感态度价值观目标:1. 培养学生对自动控制技术的兴趣,激发学生主动学习的热情;2. 增强学生的团队协作意识,培养沟通、交流、合作能力;3. 培养学生严谨的科学态度和良好的工程素养,注重实际操作与理论知识的结合;4. 引导学生关注我国自动控制技术的发展,树立民族自信心和自豪感。
本课程旨在帮助学生掌握自动控制的基础知识,培养实际操作和分析自动控制系统的能力,同时注重培养学生的团队合作精神和科学素养。
针对北科自控课程特点,结合学生年级和认知水平,本课程目标具体、可衡量,为教学设计和评估提供明确依据。
二、教学内容1. 自动控制基本概念:控制系统定义、开环与闭环控制、控制系统的分类;2. 控制系统数学模型:微分方程、传递函数、状态空间模型;3. 控制系统稳定性分析:稳定性定义、劳斯-赫尔维茨准则、奈奎斯特准则;4. 控制系统性能分析:稳态误差、动态性能指标、频率响应法;5. 控制系统设计:PID控制、状态反馈、观测器设计;6. 典型控制系统:液位控制系统、电机控制系统、温度控制系统;7. 自动控制系统仿真与实验:MATLAB/Simulink仿真、实验设备操作。
教学内容根据课程目标,结合教材章节,以系统性和科学性为原则进行组织。
教学大纲明确以下安排和进度:第一周:自动控制基本概念;第二周:控制系统数学模型;第三周:控制系统稳定性分析;第四周:控制系统性能分析;第五周:控制系统设计;第六周:典型控制系统;第七周:自动控制系统仿真与实验。
北京科技大学控制实验报告1
北京科技大学控制实验报告1实验一典型系统的时域响应和稳定性分析一、实验目的1.研究二阶系统的特征参量 (ζ、ωn) 对过渡过程的影响。
2.研究二阶对象的三种阻尼比下的响应曲线及系统的稳定性。
3.熟悉Routh判据,用Routh判据对三阶系统进行稳定性分析。
二、实验设备PC机一台,TD-ACC+教学实验系统一套。
三、实验原理及内容1.典型的二阶系统稳定性分析(1) 结构框图:如图1-1所示。
R(S)+_E(S)1T0 SK1T S+11C(S)图1-1(2) 对应的模拟电路图:如图1-2所示。
1uF20K200K2uFRr(t) 20K_500K__输入20K-C(t)输出10K10K_C (t)输出测量端图1-2(3) 理论分析系统开环传递函数为:G(s)= K1/[(T0S)(T1S+1)] 开环增益: K=K1/T0(4) 实验内容先算出临界阻尼、欠阻尼、过阻尼时电阻R的理论值,再将理论值应用于模拟电路中,观察二阶系统的动态性能及稳定性,应与理论分析基本吻合。
在此实验中由图1-2,可以确定图1-1中的参数。
T0??, T1??,K1?? ?K??T0 = 1s, T1 = 0.2s, K1 = 200/R, K=200/R系统闭环传递函数为:W(s)?? W(s) = K/(S2+5S+K) 其中自然振荡角频率:?n??√(K/T1)=10√(10/R) ;阻尼比:???。
√(10R)/40 2.典型的三阶系统稳定性分析 (1) 结构框图:如图1-3所示。
R(S)+_E(S)1T0 SK1T 1 S+1K2T 2 S+1C(S)图1-3(2) 模拟电路图:如图1-4所示。
100K1uF500K20K2uF1uFRr(t) 20K_500K_100K__输入10K20K10K_C(t)输出测量端图1-4(3) 理论分析系统的开环传函为:G(s)H(s)?? G(s)H(s) = (500/R)/[s(0.1s+1)(0.5s+1)]系统的特征方程为:1?G(s)H(s)?0。
北京科技大学自动控制理论
北京科技大学自动控制理论(总2页)-CAL-FENGHAI.-(YICAI)-Company One1-CAL-本页仅作为文档封面,使用请直接删除自动控制理论课程题 目:simulink 使用及应用班 级: 机自1207_____学 号: _____姓 名: 赵 回_______实验目的及要求:本部分的目的在于学习matlab 中有关simulink 的正确使用及其应用,包括:simulink 的基本使用、模型的建立、模型的复制剪切粘贴、命名等、线的基本使用、子系统的建立、属性的设置、参数的设置与应用、simulink 仿真运行参数的设置等。
通过该实验,要求能够做到不查参考书,能熟练编写基本的simulink 应用。
实验内容:1、 建立如图一所示系统结构的Simulink 模型,并用示波器(Scope)观测其单位阶跃和斜坡响应曲线。
图一实验结果:2、 建立如图二所示PID 控制系统的Simulink 模型,对系统进行单位阶跃响应仿真,用plot函数绘制出响应曲线。
其中p k =10,i k =3,d k =2。
要求PID 部分用subsystem 实现,参数p k 、i k 、d k 通过subsystem 参数输入来实现。
图二实验结果:3、 建立如图三所示控制系统的Simulink 模型,并用示波器(Scope)观测其单位阶跃响应曲线。
图三实验结果:4、图四所示为弹簧—质量—阻尼器机械位移系统。
请建立此动态系统的Simulink仿真模型,然后分析系统在外力F(t)作用下的系统响应(即质量块的位移y(t))。
其中质量块质量m=5kg,阻尼器的阻尼系数f=0.5,弹簧的弹性系数K=5;并且质量块的初始位移与初始速度均为0。
说明:外力F(t)由用户自己定义,目的是使用户对系统在不同作用下的性能有更多的了解。
图四弹簧-质量-阻尼器机械位移系统示意图提示:(1)首先根据牛顿运动定律建立系统的动态方程,如下式所示:y t未知,故在建立系统模型时.使用积分模块Integrator对位移的 (2)由于质量块的位移()y t,且积分器初估值均为0。
自动控制原理课程设计报告模板---精品管理资料
课程设计报告正文第一章直流电动机转速自动控制系统的组成原理1。
1广义对象组成1。
1。
1直流电机闭环调速系统工作原理直流电机闭环调速系统工作原理框图如图所示:1.1.2被控对象工作原理和被控制量被控对象:电动机被控量:电动机的转速直流电动机的工作原理基于电磁感应定律,即:运动导体切割磁力线,在导体中产生切割电势;或者说匝线链线圈的磁通发生变化,在线全中产生感应电势。
N极下到导体中的电流流出纸面,用Θ表示;S极下到导体中的电流流出纸面,用⊗表示;载流导体在磁场中受到电磁力的作用。
如果导体在磁场中的长度为L,其中流过的电流为I,导体所在的磁通密度为B,那么导体受到的磁力的值为F=BI,式中:F的单位为牛顿(N);B的单位为韦伯/米2(Wb/m2);L的单位为米(m);I 的单位为安(A);力F的方向用左手定则来确定。
1.1.3驱动电路及工作原理驱动电路如图所示:功放的作用是通过对控制信号的功率放大以产生足够的功率来驱动执行机构。
功率放大器的工作原理就是利用三极管的电流控制作用或场效应管的电压控制作用将电源的功率将电源转换为按照输入信号变化的电流.因为声音是不同振幅和不同频率的波,即流信号电流,三极管的集电极电流永远是基极电流的β倍,β是三极管的交流放大倍数.应用这一点,若将小信号注入基极,则集电极流过的电流会等于基极电流的β倍,然后将这个信号用隔直电容隔离出来,就得到了电流(或电压)是原来的β倍的大信号,这种现象成了功率放大。
而场效应管则是栅极变化一毫伏,原极电流变化一安,就成称跨导为1,功率放大器就是利用这些作用来实现小信号来控制大信号,从而使多级放大器实现了大功率输出,并非真的将功率放大了。
1。
1.4测速装置组成及工作原理测速光栅盘如下图所示:因为电刷两端的感应电势与电机的转速成正比,即电势值能表征转速的大小,因此直流测速发电机可以把转速信号转换成电视信号,从而用来测速。
测速装置是由市场上购买的光栅盘,配合着槽型光耦产生脉冲,再通过主控芯片计脉冲数来实现测速的测速装置示意图如下图所示1.2广义对象数学模型的建立1。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
科技大学自动控制原理课程设计学院:班级:学号:指导教师::目录一.引言 (3)二.系统模型的建立 (3)三.系统控制的优化 (6)3.1 PID调节参数的优化 (7)3.2 积分分离PID的应用 (10)四,结语 (13)双轮自平衡智能车行走伺服控制算法摘要:全国第八届“飞思卡尔”智能汽车大赛已经结束。
光电组使用大赛提供的D车模,双轮站立前进,相对于以前的四轮车,双轮车的控制复杂度大大增加。
行走过程中会遇到各种干扰,经过多次的实验,已经找到了一套能够控制双轮车的方法。
双轮机器人已经广泛用于城市作战,排爆,反恐,消防以及空间消防等领域。
实验使用单片机控制双电机的转速,达到了预期的效果。
关键词:自平衡;智能;控制算法Motion Servo Control Algorithm for DualWheel Intelligent CarAbstract: The 8th freescale cup national Intelligent Car competition of has been end.The led team must used D car which has only 2tires.It is more difficult to control prefer to control A car which has4tires.There is much interference on the track. A two-wheeled robots have been widely used in urban warfare, eod, counter-terrorism, fire control and space fire control and other fields。
We has searched a good ways to control it.We used MCU to control the speed of motors and get our gates.Key Words: balance by self; intelligent; control algorithm一.引言双轮自平衡车是智能汽车中一个重要的组成部分。
由于其是两轮站立,在很多场合有比四轮车更灵活,更方便控制的特点。
基于双轮车的机器人已经用于在城市作战,排爆,反恐,消防,空间探测等领域。
双轮自平衡车的控制过程与倒立摆相似。
本次研究主要是对双轮车直立的研究。
由于车在前进过程中还可能遇到弯道和路障,所以本文还对整个系统的稳定性做了比较深入的研究。
在理论证明正确的前提下,再次进行仿真验证,仿真验证的结果与实验结果相符合。
二.系统模型的建立智能汽车竞赛使用的是D车模。
D 车模是双电机,双轮的车模。
单电机控制双轮时可以满足车身保持平衡和前进的要求,而之所以使用双电机是为了前进过程中转弯的需要。
本文只讨论跟直立和干扰有关的容,鉴于此,本文余下容默认是单电机控制的车模。
自平衡车在没有电机控制的情况下属于不稳定系统,在极小的干扰下,就会偏离平衡位置而失去平衡。
因此,控制系统必须使用反馈控制。
图1是站立在赛道上的双轮车模。
图1 站立在赛道上的自平衡双轮车自平衡双轮车在只研究直立的情况下与倒立摆相似,因此这里将借助倒立摆的研究方式研究双轮车的平衡控制。
控制车模平衡的主观经验。
一般的人通过简单练习就可以让一个直木棒在手指尖上保持直立。
这需要两个条件:一个是托着木棒的手可以移动;另一个是眼睛可以观察到木棒的倾斜角度和倾斜趋势(角速度)。
通过手掌移动抵消木棒的倾斜角和趋势,从而保持直立。
这两个条件缺一不可,实际上就是控制中的负反馈控制,见图2。
图2 在手上不倒的木棍世界上没有一个天才杂技演员可以蒙着双眼使得木棒在自己指尖上直立,因为没了双眼就没了负反馈的环节。
经过简单的分析可以得到图3所示的控制结构图。
图3 不倒的木棍的控制结构图同样,双轮直立车的控制也是通过负反馈来实现的,与上面保持木棍直立则比较简单。
因为车模有2个轮子着地,车体只会在轮子滚动的防线上发生倾斜。
控制轮子转动,抵消在一个维度上倾斜的趋势便可以保持车体的平衡了。
如图4,5, 6所示。
图4 车体平衡,车轮静止图5 车体后倾,车轮向后加速图6 车体前倾,车体向前加速将双轮车简化成高度为L,质量为m的简单倒立摆,它可以放置在左右移动的车轮上。
与空气中的单摆类似,车身偏离平衡位置后要想能迅速的回到平衡位置,车身应该受到与位移方向相反的的回复力。
在平衡点附近,角度θ很小,即有sinθ≈θ。
假设车身偏离平衡角度后,将受到电机产生的与角度成比例的力:f = mk1θ(1)由于重力原因,车身偏离平衡位置后受到的回复力为:F = mgθ–mk1θ(2)从上式中可以看出回复力要想与位移相反,必须有k1 > g。
假设外力干扰引起车模产生角速度x(t)。
沿着垂直于车模底盘的方向进行受力分析,可以得到车模倾角与车轮加速度a(t)以及外力干扰加速度x(t)之间的的运动方程。
受力分析如图7所示。
图7 车模受力分析L d2θdt2=gθ(t)−a(t)+Lx(t)−k1θ(4)车模静止不向前运动时,a(t) = 0,即:L d2θdt2=gθ(t)+ Lx(t)−k1θ(t)(5)对应车模静止时,系统输入输出的传递函数为:H(s)=θ(s)X(s)=1s2+k1L− gL(6)此时系统具有2个极s p =±√−g+k1L。
一个极点位于s平面的右半平面,车模不稳定。
在此处假设L=0.1,k1 = 20用matlab仿真此系统:Matlab代码如下:%程序目的:在没有微分量的情况下仿%真系统的阶跃响应%author:程顺均%时间:2013.8.28sys = tf([1], [1 0 100]);t = 0:0.01:3;figure(1)step(sys,t);grid on仿真截图如图8所示:图8 比例控制系统的阶跃响应从图来看,与分析结果一样,系统的阶跃响应为等幅振荡,不稳定。
原因是在阶跃响应中没有阻尼,也就是说实际中的车不会倒向一边,而是在平衡位置附近来回震荡。
这显然不是我们需要得到的效果。
因此在系统中我们加入为微分量,也就是阻尼。
在实际中变现为阻碍车模转动的力,类似于摩擦阻力,大小方向与车身角速度有关。
即阻力F f=k2dθdt(7)经过拉式变换,得到带阻尼的系统的控制结构图,如图9所示:图9 加入比例微分反馈控制的系统系统传递函数为:H(s)=θ(s)X(s)=1s2+k2Ls+k1−gL(8)此时系统的极点为:s p=−k2±√k2 2−4L(k1−g)2L(9)根据自动控制原理稳定性分析知识知道,只有系统的2个极点都在s平面的左半平面时系统才是稳定的。
因此系统必须满足k1>g,k2>0。
假设k2 = 0.5,k1 = 20。
利用matlab 仿真。
仿真代码如下:%程序目的:在比例微分控制的情况下仿%真系统的阶跃响应%author:程顺均%时间:2013.8.28sys = tf([1],[1,5,100]);t = 0:0.01:3;figure(1)step(sys,t);grid on;title('比例微分控制时的阶跃响应');阶跃响应曲线如下:图10 比例微分控制的阶跃响应曲线从响应的曲线来看比例—微分控制曲线能够比较收敛下来。
在宏观看来,就是车身能够很快到我们需要的角度,而不是一直在设定角度的前后震荡。
研究到此也智能算是解决了直立控制的问题。
在实际中往往有很多干扰因素,例如飞思卡尔竞赛中赛道上就设有比赛道高的路障。
如果稳定性较差的直立车在通过路障的时候,会直接倒下。
假设干扰信号为D(s),D(s)与θ(s)的关系为:θ(s)=(Ls2−gLs2+k2s+k1−g)D(s)(10)这里我们把路障一类的干扰看成是脉冲干扰,D(s) = 1。
仿真参数不变,对干扰进行一次仿真。
仿真代码如下:%程序目的:仅在干扰下的输出响应%author:程顺均Time (sec)AmplitudeTime (sec)Amplitude%时间:2013.8.28sys = tf([0.1 0 -10],[0.1 0.2 10]); t = 0:0.2:10; figure(1); impulse(sys,t); gird on;仿真截图如图11所示:图11 系统对脉冲干扰的响应从仿真的图来看,脉冲干扰会让本来已经稳定的系统来回的震荡,在多次震荡后才回到比较稳定的状态。
因此比例-微分控制的方式能够满足我们的要求。
对于一个系统来讲,能够稳定下来并不是我们追求的最终目标。
接下来将详细研究系统的优化和稳定性。
三.系统控制的优化飞思卡尔智能汽车竞赛中评比成绩是以在赛道上跑一圈的时间为唯一依据的。
这要求车在保持稳定的前提下以最大的速度前进。
系统的响应时间,抗干扰能力都是需要反复调整的。
快的调整时间,小的超调量,高的稳定性都是我们期望的结果。
3.1 PID 调节参数的优化一般的系统我们都需要短的调节时间,小的超调量。
往往我们是不能两方面做到极限,但是通过PID 参数的调节,我们可以得到一个满意的调节过程。
为了研究每个参数的意义,先进行单参数的研究。
P 一般是作为比例项,决定了系统的部分响应速度。
在这里我们使用一个仿真代码完成这个仿真。
仿真代码见附件1:Kp 的研究通过改变系统的Kp ,可以得到一系列的仿真图。
这里选取4组做研究。
分别为100,400,1000,2000。
仿真图如图12,13,14,15所示。
图12 Kp = 100时的阶跃响应图13 Kp = 400时的阶跃响应Time (sec)A m p l i t u d e图14 Kp = 1000时的阶跃响应图15 Kp = 2000时的阶跃响应为了方便对比出他们的不同,这里将他们的响应特征列表出来,如表1所示。
表1 Kp对系统性能的影响从表的的数据和调整图像来看,Kp的值很小的时候,系统的第一次上升达不到我们需要的值,需要积分项才能弥补。
这不是我们需要的结果。
而当Kp值很大的时候,上升时间缩短,超调量也会增大。
因此Kp值得选择主要影响了系统的响应能力。
Ki的研究PID中的I是积分项,主要是消除稳态误差。
下面通过4组不同的参数的测试研究其作用。
Ki的值为100,400,1000,2000的时候的值仿真图如图15,16,17,18所示。
图16 Ki=100的稳态误差图17 Ki=400的稳态误差图18 Ki=1000的稳态误差图19 Ki=2000的稳态误差 从图像可以看出来,其上升速度和超调量并无太大的差异。
他们的差异主要体现在稳态误差上了。