第一范文网 - 专业文章范例文档资料分享平台

连续传递函数离散化的方法与原理

来源:用户分享 时间:2025/5/22 17:49:36 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

double sensor (void) // 读AD转换器,这里给出的是一个空函数 {

return ; }

/*============================================================================================*/ void actuator(double rDelta) // 向DA转换器输出,也是给出一个空函数 { }

/*============================================================================================*/ void main(void) // 主函数 {

PID sPID; double rOut;

// 变量定义,PID 数据结构 // 变量定义,PID 响应值 (输出)

// 这个返回值是虚设的

double rIn; // 变量定义,PID 反馈 (输入) PIDInit ( &sPID ); // 初始化PID 数据结构 = ; = ; = ;

= ; // 设定“设定点” for (;;) {

// 进行PID 处理 // 初始设计PID参数

//在这里写检查是否改变PID参数的语句和改变PID参数的语句 rIn = sensor (); // 读反馈值 rOut = PIDCalc ( &sPID,rIn ); actuator ( rOut ); } }

// PID 迭代

// 系统输出

第五章 保持器

第一节 零阶保持器

点 零阶保持器是一个连续环节,它对输入的脉冲在一个周期内按恒值外推后输出。

脉冲响应: 设在某一k=0时刻e(0?T)?k0,则零阶保持器单位脉冲输入的响应为

t)?k0[u(t)?u(t?T)],u(t)传递函数: 用延时函数将零保持器的脉冲响应函数表示为两个阶跃函数的代数和 h(式中,

t?T)是纯滞后为T的单位阶跃函数。 是单位阶跃函数,u(1?e?Ts h(t)的拉氏变换为H(s)?k0,这是零阶保持器的输出值传递函数。因为脉冲输入e0=e(t)?(kT),

sH(s)1?e?Tst)?k0,?并且,在时刻kT时e(所以脉冲输入的拉氏变换为E0(s)?k0,所以零阶保持器的传递函数Ha(s)?。

E0(s)s第二节 一阶保持器

特 点: 一阶保持器是一个连续环节,它对输入的脉冲在一个周期内按线性外推后输出,图中,采样周期的斜率是k0?00?k0,如图中虚线(-T,k0)所示,退出采样周期后的斜率是,如图中(k0,T)所示。 TT脉冲响应式: 设在某一k=0时刻e(0?T)?k0,则零阶保持器单位脉冲输入的响应为 传递函数: 为了求得一阶保持器的传递函数,将脉冲响应图形表达为6个波形的代数和:

t)?k0(u(t)? h(tt?Tt?2Tu(t)?2u(t?T)?2u(t?T)?u(t?2T)?u(t?2T))。 TTTt)是单位阶跃函数,u(t?T),u(t?2T)分别是纯滞后为T和2T的单位阶跃函数,此式的拉氏变 式中,u(112e?Ts2e?Tse?2Tse?2Ts换为 k0?(?????)。

sTs2ssTs2Ts2Ts?11?e?Ts2(),这是一阶保持器输出值的输出表达式,因为脉冲输入 将上式整理后得H(s)?k0TsH(s)Ts?11?e?Ts2e0=e(t)?(kT),而脉冲输入的拉氏变换为E0(s)=k0,所以一阶保持器的传递函数为Ha(s)??()。

E0(s)Ts --------------------------------------------------- 附录

两种一阶离散化方法的结果的比较

(在MATLAB 上运行)

%第一套\一阶离散化\方法用到的公式

1(1?e?Ts)s2Te?Ts?1(1?z?1)s2Tz?1

22Ts?1(1?e?Ts)1(1?z?1)?2%第二套\标准一阶离散化\方法用到的两部分

TTs2s%两种\一阶离散化\方法的对比 Clc %清除窗口 Clear %清除工作区

s0=tf(1,[1,1,1]); %原传递函数 t=;

%设定

z=tf('z',t);

s11=tf(1,[1,0,0]); %第一套\一阶离散化\方法的两部分 z11=tf([1,-2,1],[t,0],t); s12=tf([t,1],[1,0,0]);

%第二套\一阶离散化\方法的两部分

z12=tf([1,-2,1],[t,0,0],t); z0=c2d(s0,t,'foh');

%与第一套\一阶离散化\对应的MATLAB的\方法

%进行第一套\一阶离散化\%进行第二套\一阶离散化\

z1=(c2d(s0*s11,t,'imp'))*z11; z2=(c2d(s0*s12,t,'imp'))*z12; zpk0=zpk(z0); zpk1=zpk(z1); zpk2=zpk(z2);

%以下提取零极点和增益 z_x(1)=z1; z_x(2)=z2; for r=1:2

[zx,px,kx]=zpkdata(z_x(r),'v'); x=length(zx); y=length(px);

%观察分子分母上的公因子

%以下z约去分子和分母中的公因数 for i=x:-1:1 for j=y:-1:1

if abs(zx(i)-px(j))< %这一个数值不能太小 zx(i)=[]; px(j)=[]; y=y-1; break; end end end

%得到最简的零极点形式的传递函数 zpkn(r)=zpk(zx,px,kx,t); end

disp('************************************ zpk0') zpk(zpk0)

disp('************************************ zpkn(1)') zpk(z_x(1)) zpkn(1)

disp('************************************ zpkn(2)') zpk(z_x(2)) zpkn(2)

%以下绘图部分,仅供参考------------------------------- figure

figure figure figure(1) step(z0) figure(2) step(zpkn(1)) figure(3) step(zpkn(2)) ◆ 下面的包对象中包含,本文使用的,用autoCAD制作的图形:离散化图,信流图,比较图等。用“好压”压缩软件压缩。

搜索更多关于: 连续传递函数离散化的方法与原理 的文档
连续传递函数离散化的方法与原理.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c1re1m181kx02tjb2ixwe3xy6q955i0014s0_6.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top