APP下载

机电系统控制基础课程实验中传递函数辨识方法及关键技术

2019-11-28董惠娟隋明扬彭高亮陈志刚

实验技术与管理 2019年11期
关键词:电枢传递函数幅值

董惠娟,隋明扬,王 奕,彭高亮,陈志刚

机电系统控制基础课程实验中传递函数辨识方法及关键技术

董惠娟,隋明扬,王 奕,彭高亮,陈志刚

(哈尔滨工业大学 机电工程学院,黑龙江 哈尔滨 150001)

机电系统控制基础课程最重要的实验是机电系统传递函数的参数辨识。该文采用作者自行研制的硬件可配置、软件可编程、内容可扩展、多参数可调的设备,描述了基于扫频法获得机电系统数学模型传递函数和Bode图的辨识方法,以及影响辨识精度的3个主要关键技术:电枢电压输入与转速的标定方法、输出信号存储方法和时钟精度获取方法。给出了C#编程的关键程序代码和注释。通过该实验,揭示Bode图和机电参数的内在关联。

机电系统控制基础;传递函数;Bode图;扫频法;辨识精度

本文基于自制的硬件可配置、软件可编程、参数可调节、内容可扩展的多参数可调实验装置,开展了系列实验,实验内容具有科学性、启发性、创新性和实用性,这些实验不但涵盖了古典控制理论的知识,而且体现了机械工程学科主要课程的多个关键知识点。由于参数可调,所有设备的参数和运动副形式都不相同,避免了学生的抄袭,有利于公正评价学生动手能力[1]。在这些系列实验中,机电系统数学模型传递函数的获取和参数辨识是最为基础的实验之一,也是控制理论模型中最为重要的。本文重点讲述基于扫频法获取机电系统传递函数和Bode图的具体方法,以及影响数学模型精度的各关键技术。

1 机电系统传递函数辨识方法

1.1 实验系统组成

自行研制的机电系统有3种运动形式:直线运动、旋转运动和二维平面运动。以角位置伺服系统为例,机械结构组成效果和控制系统示意图分别如图1和图2。文献[1]中详细给出了伺服控制系统的组成和工作原理,在此就不再赘述。

1-直流伺服电机;2-磁滞阻尼器;3-轴承和轴承座;4-可调负载;5-增量式旋转编码器;6-膜片联轴器;7-底座。

1.2 基于扫频法的系统Bode图获取方法

如图1所示系统,直流伺服电机作为驱动元件,输入信号本应该是电机转子的角位置正弦或角速度余弦,但是由于电机电枢电压和转子转速成正比,所以,输入信号设为电机电枢电压的余弦,输出是负载的角位置正弦。输入电机电枢电压和输出角位置信号的关系如图3所示。

从图3可以看出,当输入信号频率低于系统的截止频率时,输出信号的幅值大于输入信号幅值,反之亦然。

图2 角位置伺服系统控制系统组成框图

图3 余弦输入信号与角位置输出波形对比(wc为截止频率)

幅频特性曲线为

式中,()为幅值,为输入(出)信号角频率(rad/s);为输出轴角位置极值(°);0为系统余弦输入电压幅值(V)

由于在本实验系统中,计算机取代了模拟调节器,而计算机只识别数字信号[4-6],数字控制量输出,经过D/A转换和信号放大后,作为电机的电枢电压,公式(1)中的0是D/A转换后的余弦输入电压幅值,在本实验中为5 V。把该电压作为输入信号,即此机电系统的广义对象的传递函数包括了控制算法程序、D/A转换、信号放大、电机转子、负载及联轴器等所有环节。

相频特性曲线平滑连接即可。根据幅频特性和相频特性曲线可以直接写出系统的传递函数。

2 关键技术

2.1 电枢电压输入与转速的标定方法

本文的输入信号为电机电枢电压的余弦(图3(a))。由于本实验采用计算机数字控制器取代模拟调节器[1],所以需要对电机电枢电压的余弦信号进行离散。C# 程序中实现代码如下:

Uaa =a * Math.Cos((Math.PI) * 2 * fHz *

* 0.001); (3)

其中,a是输入信号幅值;fHz是输入信号频率;是采样节点。

如图4所示,由于电机本身的安装、电机驱动器的死区、摩擦等因素,正反转不仅斜率不同,而且存在死区[7-9]。为了将公式(3)的电枢电压输入对应成电机转速,需要将转速与电枢电压线性化,如图4中的点划线为线性化后的关系曲线。

图4 电机转速和电枢电压关系的标定

2.2 输出信号存储方法

在参数辨识实验中,为了提高参数辨识精度,输入信号的离散时间间隔和采样周期都较短,存储数据量较大,如何将时间、输入信号、输出信号保存是参数辨识精度的关键技术之一。

VS 开发环境下,数据存储具有多种方式,本实验采用文件流FileStream,以流的形式读写文件内容。编写了类WriteToTxtClass,其源代码WriteToTxtClass. cs如下:

public WriteToTxtClass(string str) //在创建类的同时,执行初始化操作

{

myStream = new FileStream(str, FileMode. OpenOrCreate, FileAccess.Write);

//创建类FileStream的实例,使用指定的路径str、创建模式OpenOrCreate、写权限初始化该实例

myStream.SetLength(0); //设置缓冲区长度,为0

myStreamWriter = new StreamWriter(myStream); //创建类StreamWriter的实例

myStreamWriter.Flush(); //写入并清空缓存区

myStreamWriter.BaseStream.Seek(0, SeekOrigin.Begin); //设置当前流的位置指向文件开头

}

设计窗体界面时,使用一个文件保存对话框控件saveFileDialog1。在主程序中,限定文件类型,在对话框中输入文件名,创建文件路经:

WriteToTxtClass writer = null; //声明类WriteToTextClass实例

……;

saveFileDialog1.FileName = ""; //输入文件名

saveFileDialog1.Filter = "txt files(*.txt)|*.txt"; //限定文件名类型为*.txt

saveFileDialog1.ShowDialog(); //创建文件保存对话框

fileName = saveFileDialog1.FileName;

writer = new WriteToTxtClass(fileName); //创建类WriteToTextClass实例,执行初始化操作

……

每次采样时,使用类WriteToTxtClass中的数据记录函数存储数据:

writer.RecordResult(i.ToString() + ' ' + Uaa.ToStr­ing() + ' ' + pvSave.ToString());

生成*.txt文件格式如图5。

使用Matlab或其他数据处理软件,可以很方便地处理生成的*.txt格式文件,计算输出信号的幅值及相位差[10]。根据各频率下的幅值、相角关系,绘制系统的Bode图,并且对系统的数学模型参数进行辨识。

图5 生成*.txt格式文件

2.3 时钟精度获取方法

机电系统数学模型的参数辨识精度取决于输入信号精度,以及输出角位置的检测精度。在本实验系统中,输入信号是D/A输出的电枢电压的控制量,由程序以离散形式提供[11-13],为了提高精度,不仅要减小输入信号的离散周期,还需提高程序的时钟精度。

本实验比较了两种定时器,一个是VS软件开发环境下的计时器Timer1。另一个是自行编写的计时器WindowsTimer1。

由于Timer1. Internal低于10 ms计时器失效,本实验设置Timer1. Internal=10 ms,输入余弦电枢电压和输出角位置,利用C#自动记录,见图6,图6(a)和图6(b)分别为2 Hz和5 Hz信号,黑色曲线为输入信号,红色曲线为输出信号。

从图6可以看出,输出幅值波动较大,因此影响数学模型辨识的精度。

图6 使用Timer时输入/输出信号

为了提高时钟精度,本实验利用Windows的winmm.dll动态链接库,调用API函数,自行编写了计时器类WindowsTimer1:

class WindowsTimer1

{

……;

[DllImport("winmm.dll")]

public static extern uint timeEndPeriod(uint uMilliseconds);

[DllImport("winmm.dll")]

public static extern uint timeBeginPeriod(uint uMilliseconds); //设置时间1ms

[DllImport("winmm.dll")]

static extern uint timeGetTime(); //获取windows逝去的时间

……;

public void start()

{

start_Value=timeGetTime(); //记录windows初始时间

}

public long get_time() //计算当前时间与初始时间的时间间隔

{

stop_Value = timeGetTime(); //获取windows终止时间

n = stop_Value - start_Value; //返回时间间隔

return n;

}

}

在扫频程序中,建立类class WindowsTimer1的实例Timer1,

WindowsTimer1 Timer1= new WindowsTimer1();

利用自行编写的类和函数,实现每1ms的输入信号的离散和采样。在本文中,无论输入信号频率多少,均离散化5 s信号,即5000个输入信号和采样:

WindowsTimer1 Timer1= new WindowsTimer1();

for (timer1.start(); i < 5000; i = timer1.get_time())

{ ……; }

同理,使用自行编制的计时器WindowsTimer1,时间间隔为1 ms,输入余弦电枢电压和输出角位置,利用C# 自动记录。图7中(a)和(b)分别为2 Hz和5 Hz信号,黑色曲线为输入信号,红色曲线为输出信号。

从图7可以看出,输出幅值波动较小。

图7 使用WindowsTimer时输入/输出信号

3 结语

“机电系统控制基础”课程的实验建设过程中,基于扫频法辨识机电系统传递函数和Bode图的实验最为关键。本实验中,保证辨识精度的3个主要关键技术为电枢电压输入/转速的标定方法、输出信号存储方法和时钟精度获取方法。

[1] 董惠娟,李灏宇,石胜君.用于机电系统控制基础课程的多参数可调实验[J].实验技术与管理,2019, 36(9): 36–40, 91.

[2] 李东,陈强,孙振国,等.倒立摆教学实验系统的设计与应用[J].实验技术与管理,2006, 23(9): 100–102, 106.

[3] 沈伟,兰山.伺服系统频率特性测试方法研究[J].实验技术与管理,2011, 28(11): 268–271.

[4] 林遂芳,郭会军,李强,等.基于LabVIEW的气动比例伺服系统模型辨识研究[J].实验技术与管理,2009, 26(6): 76–79.

[5] 何德峰,俞立,徐建明.基于MATLAB的现代控制理论实验教学实践[J].实验技术与管理,2016, 33(3): 123–126.

[6] 赵霞,王祝萍,贾海航.连续系统离散化方法的比较与解析初探[J].工业和信息化教育,2015(10): 71–76, 82.

[7] KARA T, EKER İ. Nonlinear modeling and identification of a DC motor for bidirectional operation with real time experiments[J]. Energy Conversion and Management, 2003, 45(7): 1087–1106.

[8] BHUSHAN B, SINGH M. Adaptive control of DC motor using bacterial foraging algorithm[J]. Applied Soft Computing Journal, 2011, 11(8): 4913–4920.

[9] 黑沫,张连超,廖洪波,等.机电联合建模在直驱伺服系统设计中的应用[J].光学精密工程,2014, 22(9): 2416–2422.

[10] 王艳颖,王珍,郭丽环.直流电动机传递函数测定的实验研究[J].实验技术与管理,2008, 25(8): 38–40.

[11] 赵霞,李蓉艳.采样定理与确定系统采样周期的教学方法研究[J].工业和信息化教育,2014(5): 24–29.

[12] 杨鹏.一种PID控制仿真的实现[J].计算技术与自动化,2013, 32(1): 25–27.

[13] 闫明明,杨平,熊静琪.基于“计算机控制技术”的机器人行走控制实验设计[J].实验技术与管理,2014, 31(3): 173–175.

Identification method of transfer function and key technologies in Control Foundation of Electromechanical System course

DONG Huijuan, SUI Mingyang, WANG Yi, PENG Gaoliang, CHEN Zhigang

(School of Mechatronics Engineering, Harbin Institute of Technology, Harbin 150001, China)

The undergraduates majored in mechanical engineering are quite good at analyzing an engineering system from the sides of space, mechanism and motion. However, the main course, Basic Control of Mechanical and Electrical Systems, focuses on its model. The essential experiment of this course, the identification of transfer function, offers solution. In this work, the authors describe the identification method of both transfer function and Bode diagram using sweep frequency method. All experiments were carried out using a self-developed experiment device which is hardware configurable, software programmable, content expandable and multi-parameter adjustable. It is noted that there are three key technologies that affect the identification accuracy, being the calibration of voltage input and speed, the signal storage and clock accuracy acquisition. In addition, C# programmed key codes and annotations are provided by the authors. Through this experiment, the internal relationship between Bode diagram and electromechanical parameters is revealed in this work.

Basic Control of Mechanical and Electrical Systems, sweep frequency method, transfer function, Bode diagram, identification accuracy

TH-39;TP273

A

1002-4956(2019)11-0036-04

10.16791/j.cnki.sjg.2019.11.010

2019-04-02

黑龙江省教育厅2017年度高等教育教学改革研究一般研究项目(SJGY20170676)

董惠娟(1968—),女,河北武邑,教授,博士生导师,主要研究领域为功率超声波应用技术、光纤传感技术和机电一体化装备。E-mail: dhj@hit.edu.cn

猜你喜欢

电枢传递函数幅值
多尺度土壤入渗特性的变异特征和传递函数构建
基于电接触特性的电枢臂形状优化设计
四轨电磁发射器电枢-轨道初始接触特性研究*
长江上游低山丘陵区土壤水分特征曲线传递函数研究
多尺度串联非线性能量阱的减振效能及阻尼连接方式研究
PSS2A模型在水泥余热机组励磁中的实现与应用
基于频响函数识别结构非线性模态参数的方法
双层电枢结构设计及其电磁力和电流密度分布*
《液压与气动》常用单位的规范
电枢装配后接触压力不均匀特性研究*