离散化方法研究Word文件下载.docx
《离散化方法研究Word文件下载.docx》由会员分享,可在线阅读,更多相关《离散化方法研究Word文件下载.docx(12页珍藏版)》请在冰点文库上搜索。
![离散化方法研究Word文件下载.docx](https://file1.bingdoc.com/fileroot1/2023-5/11/34796b37-bf1f-4930-bf63-0bb581fbc2dc/34796b37-bf1f-4930-bf63-0bb581fbc2dc1.gif)
2012年3月26日
评定成绩:
审阅教师:
一、实验目的
1.学习并掌握数字控制器的设计方法(按模拟系统设计方法与按离散设计方法);
2.熟悉将模拟控制器D(S)离散为数字控制器的原理与方法(按模拟系统设计方法);
3.通过数模混合实验,对D(S)的多种离散化方法作比较研究,并对D(S)离散化前后闭环系统的性能进行比较,以加深对计算机控制系统的理解。
二、实验设备
1.THBDC-1型控制理论·
计算机控制技术实验平台
2.PCI-1711数据采集卡一块
3.PC机1台(安装软件“VC++”及“THJK_Server”)
三、实验原理
由于计算机的发展,计算机及其相应的信号变换装置(A/D和D/A)取代了常规的模拟控制。
在对原有的连续控制系统进行改造时,最方便的办法是将原来的模拟控制器离散化。
在介绍设计方法之前,首先应该分析计算机控制系统的特点。
图3-1为计算机控制系统的原理框图。
数字
计算机
D/A
A/D
模拟
控制对象
R
Y
I
II
图3-1计算机控制系统原理框图
由图3-1可见,从虚线I向左看,数字计算机的作用是一个数字控制器,其输入量和输出量都是离散的数字量,所以,这一系统具有离散系统的特性,分析的工具是z变换。
由虚线II向右看,被控对象的输入和输出都是模拟量,所以该系统是连续变化的模拟系统,可以用拉氏变换进行分析。
通过上面的分析可知,计算机控制系统实际上是一个混合系统,既可以在一定条件下近似地把它看成模拟系统,用连续变化的模拟系统的分析工具进行动态分析和设计,再将设计结果转变成数字计算机的控制算法。
也可以把计算机控制系统经过适当变换,变成纯粹的离散系统,用z变化等工具进行分析设计,直接设计出控制算法。
按模拟系统设计方法进行设计的基本思想是,当采样系统的采样频率足够高时,采样系统的特性接近于连续变化的模拟系统,此时忽略采样开关和保持器,将整个系统看成是连续变化的模拟系统,用s域的方法设计校正装置D(s),再用s域到z域的离散化方法求得离散传递函数D(z)。
为了校验计算结果是否满足系统要求,求得D(z)后可把整个系统闭合而成离散的闭环系统。
用z域分析法对系统的动态特性进行最终的检验,离散后的D(z)对D(s)的逼真度既取决于采样频率,也取决于所用的离散化方法。
离散化方法虽然有许多,但各种离散化方法有一共同的特点:
采样速率低,D(z)的精度和逼真度越低,系统的动态特性与预定的要求相差就越大。
由于在离散化的过程中动态特性总要变坏,人们将先设计D(s)再进行离散化的方法称为“近似方法”。
按离散设计方法设计的基本思想是,直接在z域中用z域频率响应法、z域根轨迹法等方法直接设计数字控制器D(z)。
由于离散设计方法直接在z域设计,不存在离散化的问题,所以只要设计时系统是稳定的,即使采样频率再低,闭环系统仍然是稳定的。
这种设计方法被称为“精确方法”。
本次实验使用按模拟系统设计方法进行设计。
下面以一个具体的二阶系统来说明D(S)控制器的离散化方法。
1、二阶系统的原理框图如图3-2所示。
图3-2二阶对象控制系统方框图
图3-3二阶对象的模拟电路图
2、系统性能指标要求
系统的速度误差系数,超调量,系统的调整时间s
令校正后的开环传递函数为
根据公式,为满足,取可以满足要求。
根据公式,取,为满足s,取。
则校正后的开环传递函数为,已知二阶对象传递函数为,可用零极点抵消的方法来设计校正网络D(s),
所以校正网络。
此时,满足速度误差系数的条件。
利用Simulink对校正前后系统进行仿真,并记录阶跃响应曲线。
3、的离散化算法
图3-4数—模混合控制的方框图
图3-4中的离散化可通过数据采集卡的采样开关来实现。
下面介绍几种按模拟系统设计的几种设计方法。
1)后向矩形规则法
后向矩形规则S与Z之间关系为
,代入D(S)表达式中得
于是得
2)双线性变换法
此时的转换关系为,代入D(s)得
即
3)冲激不变转换法
如果用零阶保持器,则
根据前面已知
则
即
4)零极点匹配法
已知
极点,零点,
对应到Z域,极点,零点,
由于零点数等于极点数,故可省略匹配零点与极点相等这一步骤。
则在离散域传递函数变为
由
得,求得,则
即
四、实验步骤
1、仔细阅读“PCI-1711数据采集卡驱动函数说明.doc”和“THJK-Server软件使用说明.doc”文档,掌握PCI-1711数据采集卡的数据输入输出方法和THJK-Server软件(及相关函数)的使用方法。
2、模拟电路接线图如图3-5所示:
图3-5模拟电路接线图
下面解释硬件电平匹配电路存在的原因,由于PCI-1711卡的DA输出只能为0~10V的正电压,而实验中则需要输出-10~10V的电压,故先将-10~10V的输出电压进行软件电压匹配,将其转换为0~10V的正电压由DA1通道输出,转换关系为,如表3-1所示:
U。
-10V
-7.5V
-5.0V
-2.5V
0V
2.5V
5V
7.5V
10V
DA1
1.25V
3.75V
5.0V
6.25V
8.75V
表3-1(范围为-10V~10V)与(范围为0~10V)的对应关系
这样就把-10~10V电压转换为0~10V电压通过DA1通道输出了,然后再将此电压通过图3-5中的硬件电平匹配电路,还原为-10~10V的电压,不难看出,此硬件电平匹配电路的转换关系为,为在通过硬件匹配电路后的输出电压。
此电平匹配方法实际作用是克服了PCI-1711卡只能输出0~10V单极性电压的不足。
3、用导线将系统的输入端连接到PCI-1711数据采集卡的“DA1”输出端,系统的输出端与数据采集卡的“AD1”输入端相连;
4、用导线将阶跃信号发生器输出端连接到PCI-1711数据采集卡的“AD2”输入端,作为阶跃触发使用,阶跃幅度由软件设定。
初始时,+5V电源开关处于“关”状态;
5、根据给定的性能指标要求,根据不同的方法设计离散化数字控制器(此步可在预习过程中做完)。
6、打开离散化实验文件夹下.dsw工程文件,源程序中缺少数字控制器算法程序。
请同学用设计好的数字控制器算法编写程序。
7、源程序编译通过后,先启动“THJK_Server”图形显示软件,再执行程序代码,在显示界面出现的曲线并稳定后(初始化后),把+5V电源打到“开”状态,观测并记录系统的阶跃响应曲线。
在实验结束后,在键盘上先按下“e”,再按下“Enter(回车键)”键,程序退出。
8、采用不同的离散化方法,重复步骤6、7,比较采用各种离散化方法后的阶跃响应曲线。
9、利用Simulink对校正前后的系统进行仿真,并记录阶跃响应曲线,将校正前后曲线进行比较,并把校正后曲线与前面步骤7、8中采用数字控制器的实验曲线相比较;
五、实验结果
1、编写按各种离散化方法设计的数字控制器的C++程序。
答:
// /*********控制器的编程
eix=ei;
ei=sv-fVoltage;
//后项矩形规则
//output=0.167/(Ts+0.167)*output+0.6*(Ts+0.5)/(Ts+0.167)*ei-0.3/(Ts+0.167)*eix;
//双线性变换
output=(0.334-Ts)*output/(0.334+Ts)+0.6*(1+Ts)*ei/(0.334+Ts)-0.6*(1-Ts)*eix/(0.334+Ts);
//冲激响应不变法
//output=exp(-5.88*Ts)*output+0.6*(2.94*ei-(1.94+exp(-5.88*Ts))*eix);
//控制器的编程*********/
2、绘出二阶被控对象在采用不同离散化方法设计的数字控制器后的响应曲线,将它们相比较分析,并分析采样周期Ts的减小或增大对系统阶跃响应的影响。
后向矩形规则法T=1s
后向矩形规则法T=0.5s
后向矩形规则法T=0.1s
后向矩形规则法T=0.01s
双线性变换法T=1s
双线性变换法T=0.5s
双线性变换法T=0.1s
双线性变换法T=0.01s
冲击响应不变法T=1s
冲击响应不变法T=0.5s
冲击响应不变法T=0.1s
冲击响应不变法T=0.01s
3、绘出实验中二阶被控对象在加入模拟控制器前后的阶跃响应曲线(Simulink仿真),并与采用数字控制器的实验曲线相比较分析。
模拟控制器前阶跃响应曲线(Simulink仿真)
模拟控制器后阶跃响应曲线(Simulink仿真)
六、实验分析总结
1.采样周期的大小会影响系统响应,采样周期变大,会使系统动态响应特性变差,,甚至会使系统震荡或不稳定。
总之,扫描周期越小,系统响应越快,超调量越小,稳定性增强。
所以在离散系统中,我们应选取合适的采样周期。
2.分析可知,再加入模拟控制器后,系统的动态响应特性变好,系统响应变快,超调量变小,稳定性增强。
改用数字控制器后,比较图形可以看出,在采样周期较小的情况下,两种控制器控制效果差不多,但在采样周期较大的情况下,数字控制系统会震荡或变得不稳定,控制效果变差。
3.讨论AD2的作用:
ADinput
(1);
//AD2
temp=fVoltage;
if(temp<
4.9) //若开始信号未送出,即AD1的输入电压没达到5V,则不给阶跃信号输入,初始给定值为0V
{
ADinput(0);
//AD1
sv=0;
}
else //若开始信号送出,则给定0V到4V的阶跃信号
sv=4;
由以上代码可以看出,AD2提供一个触发信号,决定输入信号(即阶跃信号)输入时刻,当AD2输入达到5V时计算机会产生一个阶跃信号作为系统的输入。
12