大林控制算法与其软件实现
- 格式:docx
- 大小:57.91 KB
- 文档页数:15
实验4 大林算法工业设计和调试实验目的:1.认识和理解大林控制算法控制大时延系统的机理和效果。
2掌握实际控制系统的大林控制算法的设计、实现和调试方法及技术。
实验内容:1.测试系统开环阶跃响应求得被控对象的近似传递函数。
2.对被控对象近似传递函数进行等效离散化。
3.基于被控对象等效离散化模型设计大林控制算法,编写出实现程序,将其嵌入到实验软件中。
4.将设计的大林算法投入运行,并经过调试获得预期控制性能。
5.记下大林控制算法的控制效果。
实验原理及说明:大林算法是针对工业生产过程中含有纯滞后的被控对象所研究的控制算法,即在调节时间允许的情况下,要求系统没有超调量或只有在允许范围中的很小的超调量。
大林算法的设计目标是设计一个数字调节器,使整个闭环系统所期望的传递函数相当于一个延迟环节和一个惯性环节的串联,并期望整个闭环系统的纯滞后时间和被控对象的滞后时间相同,并且,纯滞后时间与采样周期是整数倍关系。
实验中采样周期为1秒,k=0.15,t=22秒,t1=55秒。
.大林算法中涉及的被调对象的参数:对象是一阶惯性滞后环节,<1>对象的放大倍数Kp:Kp=△PV/△OP 阶跃比,这是开环的静态参数,与PID的放大倍数K不是一回事;<2>对象的时间常数T:干扰阶跃引起PV变化,从变化起到稳定值约2/3处的时间值,不包括滞后时间;<3>滞后时间T2:干扰阶跃开始到PV开始变化这一段滞后时间,包括:纯滞后时间及容量过渡滞后时间;2. 整个系统的闭环传递函数相当于是一阶惯性环节, 这是大林算法的期望环节:<1> 输入R(t)是回路的设定值SP;输出Y(t)是回路的PV值;<2> 此一阶惯性环节的放大倍数为1,即稳定时PV=SP; 最终偏差接近零;<3>此期望环节的纯滞后时间应等于被调节对象的纯滞后时间;<4>此期望环节的闭环时间常数:这是待定的期望参数,为不引起回路的小幅振荡,这个时间值应选用大于等于被调对象的时间常数,3. 这些参数如果不精确,将引起大林算法的不稳定性,导致调节质量变坏;。
《计算机控制》课程设计报告题目: Dahlin算法控制设计姓名: 学号:姓名: 学号:姓名: 学号:2010年7月10日《计算机控制》课程设计任务书专业电气工程及其自动化班级学生指导教师题目 Dahlin算法控制设计设计时间2010年7 月5 日至 2010年7 月 11 日共 1 周设计要求设计任务:设单位反馈线性定常离散系统的连续部分和零阶保持器的传递函数分别为)1(10)(+=sssGp,被控对象为sesssG1.0)101)(1(5)(-++=,采用Dahlin算法设计消除振铃的数字控制器。
方案设计:1.采用Matlab完成控制系统的建立、分析、设计和模拟仿真;2.选择元器件,完成电路设计,控制器采用MCS-51系列单片机(传感器、功率接口以及人机接口等可以暂不涉及),使用Protel绘制原理图;3.控制算法采用单片机汇编语言编程实现(应通过编译,无语法错误)。
报告内容:1.控制系统仿真和设计步骤,应包含Matlab仿真的性能曲线、采样周期T的选择、数字控制器脉冲传递函数和差分方程形式;2.元器件选型过程,电路设计过程,绘制的Protel原理图;3.算法流程图,含有详细注释的汇编源程序;4.设计工作总结及心得体会;5.列出所查阅的参考资料。
指导教师签字:系(教研室)主任签字:2010年7 月10 日一.实验目的采用Dahlin 算法设计消除振铃的数字控制器 二.提供的实验条件(1)软件:Matlab, Protues ,KEIL (2)仪器和设备:计算机、单片机 三.设计要求被控对象为s e s s s G 1.0)101)(1(5)(-++=,采用Dahlin 算法设计消除振铃的数字控制器。
达林算法主要是一种针对纯滞后对象的控制算法,其主要指标是系统无超调,或超调量较小。
并允许系统有较长的调整时间。
四.工作原理基于达林算法的采样控制系统结构框图如图1所示。
图1 采样控制系统原理图D(z)系统的设计核心,它实际上是由计算机实现,它的输入输出均是时间上离散的数字信号信号。
一、实验目的1. 理解大林控制算法的基本原理及其设计过程。
2. 掌握大林控制算法在计算机控制系统中的应用。
3. 通过实验验证大林控制算法在解决纯滞后系统控制问题上的有效性。
二、实验原理大林控制算法(Dahlin Control Algorithm)是一种针对具有纯滞后特性的控制对象而设计的新型控制算法。
该算法的核心思想是将期望的闭环响应设计成一阶惯性加纯延迟形式,然后通过反向设计得到满足这种闭环响应的控制器。
对于具有纯滞后特性的被控对象,其传递函数可以表示为:\[ G(s) = \frac{K}{T_s s + 1} \cdot e^{-\frac{s}{T}} \]其中,\( K \) 为系统增益,\( T_s \) 为采样周期,\( T \) 为纯滞后时间。
大林控制算法要求选择闭环传递函数 \( W(s) \) 时,采用相当于连续一阶惯性环节的 \( W(s) \) 来代替最少拍多项式。
如果对象有纯滞后,则 \( W(s) \) 应包含有同样的纯滞后环节。
带有纯滞后的控制系统闭环传递函数为:\[ W(s) = \frac{K}{T_s s + 1} \cdot e^{-\frac{s}{T}} \]根据大林控制算法,可以设计出满足期望闭环响应的数字控制器 \( D(z) \):\[ D(z) = \frac{K_1 e^{-\frac{1}{T}}}{(1 - e^{-\frac{1}{T_1}}) (1 - e^{-\frac{1}{T_2}})} \cdot \frac{1}{[1 - e^{-\frac{1}{T_1}} (1 - e^{-\frac{1}{T_2}})] (1 - e^{-\frac{1}{T} z^{-1}})} \]其中,\( K_1 \)、\( T_1 \) 和 \( T_2 \) 为大林算法的参数。
三、实验仪器1. MATLAB 6.5软件一套2. 个人PC机一台四、实验步骤1. 启动MATLAB软件,创建一个新的脚本文件。
一、实验目的1. 理解大林算法的基本原理和设计过程。
2. 掌握大林算法在计算机控制系统中的应用。
3. 分析大林算法对控制系统性能的影响。
二、实验仪器1. PC计算机一台2. MATLAB 6.5软件一套3. EL-AT-III型计算机控制系统实验箱一台三、实验原理大林算法是一种针对具有纯滞后特性的控制系统而设计的控制算法。
该算法通过将期望的闭环响应设计成一阶惯性加纯延迟,然后根据这种闭环响应设计控制器,从而实现对具有纯滞后特性的系统的控制。
四、实验内容1. 实验被控对象的构成:(1)惯性环节的仿真电路及传递函数。
(2)纯延时环节的构成与传递函数。
(3)被控对象的开环传递函数。
2. 大林算法的闭环传递函数:闭环传递函数为:\[ G(s) = \frac{K}{T_{s}^{N} \left( \frac{s}{T} + 1 \right)} \]其中,\( K \)为增益,\( T \)为时间常数,\( N \)为纯滞后时间。
3. 大林算法的数字控制器:数字控制器为:\[ D(z) = \frac{(1 - e^{-\frac{1}{T}})(1 - e^{-\frac{1}{T_{1}}z^{-1}})}{K \left(1 - e^{-\frac{1}{T_{1}}}z^{-1}\right) \left[1 - e^{-\frac{1}{T}}z^{-1} - (1 - e^{-\frac{1}{T}})z^{-N}\right]} \]其中,\( K \)为增益,\( T \)为时间常数,\( T_{1} \)为时间常数,\( N \)为纯滞后时间。
五、实验步骤1. 启动计算机,打开MATLAB软件。
2. 编写程序,搭建被控对象模型。
3. 根据被控对象模型,设计大林算法控制器。
4. 对大林算法控制器进行仿真,观察控制效果。
5. 分析大林算法对控制系统性能的影响。
六、实验结果与分析1. 仿真结果:(1)大林算法控制器的阶跃响应。
计控实验五-达林算法仿真实验报告||实验名称大林算法仿真实验课程名称计算机控制技术与系统|实验五 达林算法仿真实验1、实验目的:在离散系统直接数字控制算法学习基础上,通过Matlabl 软件仿真实验,加深掌握达林算法设计离散控制器的基本思想和方法,进一步理解最少拍与非最少有限拍控制器设计中存在的局限性。
2、实验内容及要求:已知对象模型为1.460()1 3.34Se G s s -=+设期望的闭环响应M(z)为时间常数τ=2s 的一阶惯性环节,并带有l=1个采样周期的纯滞后,即1211(1)0.3935()110.6065lz z M z z z z σσ------==--要求:1) 经采样(T=1S )保持后,求出其广义对象z 传递函数;2) 基于达林算法给定的M(z),设计控制器D(z),对单位阶跃输入绘制U(k)和系统输出y(k)响应曲线;3) 设计消除振铃后的等效控制算法D(z),对单位阶跃输入绘制U(k)和系统输出y(k)响应曲线;4) 分析比较上述两种情况下,对应U(k)和y(k)的响应特性有哪些变化。
3、实验过程3.1求取广义对象的z 传递函数利用matlab 求取广义对象的z 传函并将其转化成零极点的形式,用到的程序如下 T1=3.34; tao=1.46;G0=tf([1],[T1 1],'inputdelay',tao) sysd=c2d(G0,T,'zoh'); zsysd=zpk(sysd)得到的广义对象的z 传递函数为20.14928(z 0.7332)(z 0.7413)z+-3.2基于大林算法设计D(z)期望的闭环响应函数为M(z),广义对象的传递函数为G(z),则根据大林算法设计的控制器D(z)表达式为21(z) 2.636(z 0.7413)(z)(z)1(z)(z 1)(z 0.7332)(z 0.3935)M z D G M -==--++在simulink 中仿真改系统,建立的框图为得到的控制量的曲线为可见出现了控制量的输出出现振铃现象。
实验一:大林算法控制器设计与仿真一、实验目的1、学会安装MATLAB 及基本使用方法。
1、掌握大林控制算法的基本概念和实现方法;2、掌握在MA TLAB 下大林算法控制器的调试方法;3、观察大林控制算法控制器的控制效果;4、比较大林控制算法和常规PID 的控制效果。
5、选做:比较大林算法与SMITH 预估补偿控制器的控制效果。
二、实验属性设计、验证性实验三、 实验内容1、对象为一阶惯性加纯滞后系统,其开环传递函数为:14.0)(76.0+=-S e S G S采样时间为0.5S ,大林算法的期望闭环响应设计为1)(76.0+=Φ-S e S Sα。
α为控制系数,大林控制算法的MATLAB 程序如后所附。
四、实验要求1、实验中:在MATLAB 下输入程序,设置控制系数α=0.5,检验控制效果,调整系数α的值(0.1至1之间),比较控制效果,找出并记录最佳控制时的α值及控制结果;2、完成实验报告。
附录 大林控制算法的MATLAB 程序% Delay Control with Dalin Algorithmclear all;close all;ts=0.5;%Plantsys1=tf([1],[0.4,1],'inputdelay',0.76);dsys1=c2d(sys1,ts,'zoh');[num1,den1]=tfdata(dsys1,'v');% Ideal closed loopsys2=tf([1],[0.15,1],'inputdelay',0.76);dsys2=c2d(sys2,ts,'zoh');% Design Dalin controllerdsys=1/dsys1*dsys2/(1-dsys2);[num,den]=tfdata(dsys,'v');u_1=0.0;u_2=0.0;u_3=0.0;u_4=0.0;u_5=0.0;y_1=0.0;error_1=0.0;error_2=0.0;error_3=0.0;ei=0;for k=1:1:50time(k)=k*ts;rin(k)=1.0; %Tracing Step Signalyout(k)=-den1(2)*y_1+num1(2)*u_2+num1(3)*u_3;error(k)=rin(k)-yout(k);M=1;if M==1 %Using Dalin Methodu(k)=(num(1)*error(k)+num(2)*error_1+num(3)*error_2+num(4)*error_3...-den(3)*u_1-den(4)*u_2-den(5)*u_3-den(6)*u_4-den(7)*u_5)/den(2); elseif M==2 %Using PID Methodei=ei+error(k)*ts;u(k)=1.0*error(k)+0.10*(error(k)-error_1)/ts+0.50*ei;end%----------Return of dalin parameters------------u_5=u_4;u_4=u_3;u_3=u_2;u_2=u_1;u_1=u(k);y_1=yout(k);error_3=error_2;error_2=error_1;error_1=error(k);endplot(time,rin,'b',time,yout,'r');xlabel('time(s)');ylabel('rin,yout');。
微机控制/大林算法的MATLAB语言描述早在1968 年,美国IBM 公司的大林(Dahlin)就提出了一种不同于常规控制规律的新型算法,即大林算法。
该算法的最大特点是将期望的闭环响应设计成一阶惯性加纯延迟,然后反过来得到能满足这种闭环响应的控制器。
设被控对象为采样时间为0.5s,用大林算法设计闭环响应,并用MATLAB 进行仿真,同时作出采用普通PID 控制算法的图形,与采用大林算法的图形比较,得出结论。
参考程序:%Delay Control with Dalin Algorithmclear all;close all;ts=0.5;%Plantsys1=tf([1],[0.4,1],inputdelay,0.76);dsys1=c2d(sys1,ts,zoh);[num1,den1]=tfda ta(dsys1,v);%Ideal closed loopsys2=tf([1],[0.15,1],inputdelay,0.76);dsys2=c2d(sys2,ts,zoh); %Design Dalin controllerdsys=1/dsys1*dsys2/(1-dsys2);[num,den]=tfdata(dsys,v); u_1=0.0;u_2=0.0;u_3=0.0;u_4=0.0;u_5=0.0;y_1=0.0;error_1=0.0;error_2=0.0;error_3=0.0;ei=0;for k=1:1:50time(k)=k*ts;rin(k)=1.0; %Tracing Step Signalyout(k)=-den1(2)*y_1+num1(2)*u_2+num1(3)*u_3;error(k)=rin(k)-yout(k);M=1;if M==1 %Using Dalin Methodu(k)=(num(1)*error(k)+num(2)*error_1+num(3)*error_2+num(4)*error_3...- den(3)*u_1-den(4)*u_2-den(5)*u_3-den(6)*u_4-den(7)*u_5)/den(2);elseif M==2 %Using PID Methodei=ei+error(k)*ts;u(k)=1.0*error(k)+0.10*(error(k)- error_1)/ts+0.50*ei;end%----------Return of dalin parameters------------。
3.4 大林(Dahlin)算法前面介绍的最少拍无纹波系统的数字控制器的设计方法只适合于某些随动系统,对系统输出的超调量有严格限制的控制系统它并不理想。
在一些实际工程中,经常遇到纯滞后调节系统,它们的滞后时间比较长。
对于这样的系统,往往允许系统存在适当的超调量,以尽可能地缩短调节时间。
人们更感兴趣的是要求系统没有超调量或只有很小超调量,而调节时间则允许在较多的采样周期内结束。
也就是说,超调是主要设计指标。
对于这样的系统,用一般的随动系统设计方法是不行的,用PID算法效果也欠佳。
针对这一要求,IBM公司的大林(Dahlin)在1968年提出了一种针对工业生产过程中含有纯滞后对象的控制算法。
其目标就是使整个闭环系统的传递函数相当于一个带有纯滞后的一阶惯性环节。
该算法具有良好的控制效果。
3.4.1 大林算法中D(z)的基本形式设被控对象为带有纯滞后的一阶惯性环节或二阶惯性环节,其传递函数分别为:(3-4-1)(3-4-2)其中为被控对象的时间常数,为被控对象的纯延迟时间,为了简化,设其为采样周期的整数倍,即N为正整数。
由于大林算法的设计目标是使整个闭环系统的传递函数相当于一个带有纯滞后的一阶惯性环节,即,其中由于一般控制对象均与一个零阶保持器相串联,所以相应的整个闭环系统的脉冲传递函数是(3-4-3)于是数字控制器的脉冲传递函数为(3-4-4)D(z)可由计算机程序实现。
由上式可知,它与被控对象有关。
下面分别对一阶或二阶纯滞后环节进行讨论。
3.4.2 一阶惯性环节的大林算法的D(z)基本形式当被控对象是带有纯滞后的一阶惯性环节时,由式(3-4-1)的传递函数可知,其脉冲传递函数为将此式代入(3-4-4),可得(3-4-5)式中:T——采样周期:———被控对象的时间常数;———闭环系统的时间常数。
3.4.3 二阶惯性环节大林算法的D(z)基本形式当被控对象为带有纯滞后的二阶惯性环节时,由式(3-4-1)的传递函数可知,其脉冲传递函数为其中,将式G(z)代入式(3-4-3)即可求出数字控制器的模型:(3-4-6)3.4.4 振铃现象及其消除方法振铃现象是指数字控制器的输出以接近1/2采样频率的频率,大幅度衰减振荡。
它对系统的输出几乎无影响,但会使执行机构因磨损而造成损坏。
衡量振铃现象的强烈程度的量是振铃幅度RA (Ringing Amplitude)。
它的定义是:控制器在单位阶跃输入作用下,第零次输出幅度与第一次输出幅度之差值。
已知数字控制器脉冲传递函数的一般形式可写为(3-4-7)其中(3-4-8)控制器输出幅度的变化取决于Q(z),当不考虑(它只是输出序列延时)时,则Q(z)在阶跃脉冲作用下的输出为故可求出振铃幅度(3-4-9)振铃现象产生的根源在于Q(z)中z = -1附近有极点。
极点在z=-1时最严重,离z= -1越远,振铃现象就越弱。
在单位圆内右半平面有零点时,会加剧振铃现象;而在左半平面有极点时,则会减轻振铃现象。
大林提出一种消除振铃现象的方法,即先找出造成振铃现象的极点因子,令其中z =1,这样便消除了这个极点。
根据中值定理,这样的处理不会影响输出的稳态值。
下面来分析一阶(或二阶)惯性环节的数字控制器D(z)的振铃现象及其消除方法。
1. 被控对象为一阶惯性环节被控对象为纯滞后的一阶惯性环节时,将表示其数字控制器的D(z)的(3-4-5)式化成一般形式如下:由此可求出振铃幅值为(3-4-10)如果选τ≥τ1,则RA≤0,无振铃现象。
如果选择τ<τ1,则有振铃现象。
由此可见,当系统的时间常数τ大于或等于被控对象的时间常数τ1时,即可消除振铃现象。
将式D(z)的分母进行分解,可得(3-4-11)在(3-4-25)中,z=1处的极点并不引起振铃现象。
可能引起振铃现象的因子为当N=0时,此因子消失,无振铃可能。
当N=1时,有一个极点在。
当时,,即时,将产生严重振铃现象。
当N=2时,极点为当时,则有,将有严重的振铃现象。
以N=2,且为例,消除振铃现象后,D(z)修改为(3-4-12)2. 被控对象为二阶惯性环节被控对象为具有纯滞后的二阶惯性环节时,D(z)为(3-4-20)式,与一阶惯性环节类似, D(z)中有一个极点是,在时,,即在z= -1处有极点,系统将出现强烈的振铃现象,振铃幅度为当T→0时,,按前述方法消除这个极点,则(3-4-13)下面通过一个实例来说明消除振铃的方法。
例 3-4-1 已知某控制系统被控对象的传递函数为。
试用大林算法设计数字控制器D(z)。
设采样周期为T=0.5s,并讨论该系统是否会发生振铃现象。
如果振铃现象出现,如何消除。
解:由题可知,,当被控对象与零阶保持器相连时,系统的广义对象的传递函数为于是,可求出广义对象的数字脉冲传递函数为大林算法的设计目标是使整个闭环系统的脉冲传递函数相当于一个带有纯滞后的一阶惯性环节。
据此可设,则由(3-4-19)式可得由上式可知,D(z)有三个极点:,根据前边的讨论z=1处的极点不会引起振铃现象,引起振铃现象的极点为依据前述讨论,要想消除振铃现象,应去掉分母中的因子,即令(即),代入上式即可消除振铃现象。
这样,无振铃时,数字控制器的脉冲传递函数D(z)为3.5 D(z)算法的软件实现在上几节中,我们讨论了各种数字控制器D(z)的设计方法,本节讨论实现D(z)的算法。
D(z)可以采用硬件电路实现,但目前更多的是采用计算机软件实现,因为软件可以方便地实现十分复杂的D(z)算式,也使控制系统十分灵活。
3.5.1 直接程序设计法D(z)通常可表示为(3-5-1)式中,P(z)和E(z)分别为数字控制器输出序列和输入序列的Z变换。
从式(3-5-1)中可以求出(3-5-2) 为了实现方便,对(3-5-29)式进行Z反变换,写成差分方程的形式:利用(3-5-3)式可直接进行计算机编程,去实现D(z)算法,因此,可称之为直接程序设计法。
由式(3-5-3)可画出实现D(z)算法的原理框图,如图 3-4所示。
图 3-4 直接程序设计法原理图由式(3-5-3)及图3-3可以看出,每计算一次p(k),要进行m+n次加法,m+n+1次乘法和m+n次数据传递。
本次采样周期输出的值p(k),在下一个采样周期就变成了p(k-1)。
同样,e(k)将变成e(k-1),其余的e(k-j)和p(k-j)也都要递推一次,变成e(k-j-1)和p(k-j-1),以便于下一个采样周期使用。
例3-5-1 已知数字控制器的脉冲传递函数,试用直接程序设计法写出实现D(z)的表达式。
解:对D(z)的分子、分母都乘以z-n,其中n为分母最高次幂,便可以得到以z-n,z-n-1,…,z -1为变量的D(z)的有理式表示式。
本例中n=2,即对D(z)进行交叉相乘、移项整理可得再进行Z反变换,可得数字控制器的差分方程。
3.5.2 串行程序设计法串行程序设计法也叫迭代程序设计法。
如果D(z)中的零点、极点均已知,则D(z)可以写成如下形式:(3-5-4)根据迭代原理,若令(3-5-5)则 (3-5-6)因此,D(z)可以看成是由共n个子脉冲传递函数串联而成,如图 3-5所示。
图 3-5 串行程序设计法原理图为了计算D(z)的p(k),可分别先求出各个子脉冲传递函数的p1(k),p2(k),p3(k),…,最后算出p(k)。
先计算p1(k)。
由进行Z反变换得整理可得(3-5-7)依次类推,可得n个迭代表达式或D(z)差分方程组为用式(3-5-8)编制程序可以迭代计算出P(k)。
程序每算出一次P(k)需进行(m+n)次加减法,(m+n+1) 次乘法和n次数据传送。
例3-5-2 设数字控制器,试用串行程序设计法写出D(z)的迭代表达式。
解:首先对分子分母分解因式,子脉冲传递函数为将D1(z)、D2(z)分别进行交叉相乘及Z反变换即得3.5.3 并行程序设计法若D(z)可以写成部分分式的形式,即(3-5-9)把(3-5-9)的右边各分式看作是D(z)的子脉冲传递函数D1(z),D2(z),D3(z),…,D n(z),即:因此有 (3-5-11)由此可见,D(z)是由各个子脉冲传递函数D1(z),D2(z),D3(z),…,D n(z)并联而成,如图 3-6所示。
图 3-6 并行程序设计法原理图将各个子脉冲传递函数D1(z),D2(z),D3(z),…,D n(z)进行交叉相乘及Z反变换可得相应的差分方程组:按式(3-5-12)分别求出P1(k),P2(k),P3(k),…,P n(k)之后,便可计算出数字控制器的P(k)值,即(3-5-13)按式(3-5-12)和式(3-5-13)编写计算机程序计算P(k)的值,叫并行程序设计法。
这种方法每计算一次P(k),就要进行(2n-1)次加减法,2n次乘法和(n+1) 次数据传送。
例3-5-3 设数字控制器,试用并行程序设计法写出实现D(z)的差分方程组。
解:对D(z)进行因式分解,以部分分式表示,即可得各个子脉冲传递函数为将D1(z)、D2(z)和D3(z)分别进行交叉相乘及Z反变换得于是,得以上三种求数字控制器D(z)输出差分方程的方法各有所长。
就计算效率而言,串行程序设计为最佳。
直接程序设计法的优点是,式(3-5-30)中除j=0时涉及e(k)外,其余各项都可以在采集e(k)之前全部计算出来,因而可大大减少计算机延时,提高系统的动态性能。
另一方面,串行法和并行法在设计高阶数字控制器时,可以简化程序,因为只要设计出一阶或二阶的D(z)子程序,经过反复调用子程序就可实现D(z),使程序占用内存少,容易阅读,且调试方便。
应当指出,在串行和并行法程序设计中,需要将高阶函数分解成一阶或二阶的环节。
这种分解不是在任何情况下都可以进行的。
只有当零点和极点已知时,分解才很容易进行。
否则分解要花费大量时间,甚至根本不可能。
在这种情况下不如采用直接程序设计法。
3.5.4 数字控制器设计方法现在我们把数字控制器的设计方法综合归纳如下:(1) 首先根据被控对象的传递函数,求出系统(包括零阶保持器在内)的广义对象的传递函数(2) 求出与G(s)对应的广义对象的脉冲传递函数G(z)(3) 根据控制系统的性能指标及输入条件,确定整个闭环系统的脉冲传递函数ф(z);(4) 根据(3-2-2)确定数字控制器的脉冲传递函数D(z),即(5) 对于最少拍无纹波系统,验证是否有纹波存在;对于带有纯滞后惯性环节的系统,还要看是否出现振铃现象;(6) 写出D(z)的差分方程表达式,若采用直接程序设计法,用式(3-5-3);若采用串行程序设计法,用式(3-5-8);若采用串行程序设计法,用式(3-5-12)和式(3-5-13)。
(7) 根据系统的采样周期、时间常数及其它条件求出相应的系数,并将其转换成计算机能够接受的数据形式;(8) 由差分方程编写程序,可以采用汇编语言,也可采用高级语言中的C语言、C51、C98或VC++等。