计算机控制系统核心模型详解:采样、Z变换与数字控制器设计
2026/9/20 19:20:43 网站建设 项目流程

简介:文档收录了《计算机控制系统》课程作业的参考答案,覆盖典型计算机控制系统结构、四种信号形式、采样定理、零阶保持器特性、Z变换与Z反变换、差分方程求解等核心知识点,并涉及数据处理与操作指导、直接数字控制、监督计算机控制及分布式控制等典型类型的对比分析,适合自动化、电气及计算机控制相关专业学生复习备考或教师出题参考。资源包内共1个doc文件,大小548KB,内容按作业一、作业二分章节整理,从基本概念到计算题均有逐步解答过程,作业二侧重差分方程与Z变换的应用,作业三补充了长除法与Z反变换的实际运算。目前已有350人浏览学习,说明该资料在同类作业答案中具有一定实用性。通过对照参考答案,读者可快速检验自身对计算机控制系统原理的理解,掌握采样信号频谱分析、Z变换求解等典型题型的规范步骤,提升课程作业与考试复习效率。

1. 这门课到底在教什么:先别急着翻答案

计算机控制系统这门课,几乎所有自动化、电气、测控专业的同学都会遇到。我当年学的时候,最大的感受就是:前几周还在用连续系统的思维做拉普拉斯变换,后几周突然跳进Z变换和差分方程,整个人是懵的。等到做作业的时候,对着“求脉冲传递函数”“判断系统稳定性”“设计数字PID”这些题目,常常不知道从哪里下手。

这也是为什么网上流传的各种“计算机控制系统作业参考答案.doc”会被反复下载。但我想先泼一盆冷水:这类文档最大的价值,不是让你抄,而是给你一个“对答案”的参照系。因为这门课的作业题往往套路固定,你真正需要掌握的,是题目背后反复出现的几个核心模型:采样与保持、Z变换、脉冲传递函数、离散系统稳定性判据、数字控制器设计。把这几个模型吃透,作业题基本就是套模板。

这篇内容,我按照自己当年复习和后来带项目时重新翻课本的经验,把这门课最常见的作业题型和解答思路拆开揉碎讲一遍。不管你现在是正在赶作业,还是准备期末考试,又或者工作后需要补一下离散控制的基础,这篇内容都能帮你省下大量翻书的时间。

2. 作业题的核心套路:先建立离散系统的“语言体系”

2.1 采样周期与信号重构:所有题目的起点

计算机控制系统和连续控制系统最大的区别,就是系统里多了一个“采样开关”。连续信号进入计算机之前,要先经过A/D转换变成离散序列;计算机算完之后,又要经过D/A和保持器还原成连续信号去驱动执行机构。

作业里最常见的第一个考点,就是给定一个连续信号,让你求采样后的离散序列,或者反过来,给定离散序列和采样周期,让你还原连续信号的大致形状。这类题考察的是对采样过程的理解,尤其是香农采样定理:采样频率必须大于等于信号最高频率的两倍,否则会发生混叠。

我见过很多同学在这里犯迷糊,其实可以这么理解:采样就像是给连续信号拍照片,每隔T秒拍一张。拍得够快,照片连起来还能看出原来的动作;拍得太慢,动作中间的过程就丢了,甚至会出现“车轮倒转”的错觉。这就是混叠。作业里经常给一个正弦信号,让你选合适的采样周期,本质就是在考你算不算得清最高频率分量。

2.2 Z变换与Z反变换:离散域的“拉普拉斯变换”

Z变换是这门课的 arithmetic 基础,就像连续系统里的拉普拉斯变换一样。几乎每份作业里都有这样一道题:给一个时间序列或者差分方程,让你求Z变换;或者给一个Z域表达式,让你做Z反变换求时间序列。

做题的关键是先记住几个最常用的变换对。单位阶跃信号的Z变换是 \(z/(z-1)\),指数衰减序列 \(a^k\) 的Z变换是 \(z/(z-a)\),单位斜坡信号对应 \(Tz/(z-1)^2\)。这些变换对就像乘法口诀,背不下来后面寸步难行。

Z反变换的三种方法——长除法、部分分式展开法、留数法——作业里最常用的是部分分式展开法。这里有一个特别容易踩的坑:连续系统部分分式展开后配的是 \(1/(s+a)\) 的形式,而离散系统部分分式展开后,为了对到变换对上,通常要配成 \(z/(z-a)\) 的形式,也就是说要先除以z,展开完再乘回z。

举个例子,已知 \(F(z) = z/((z-1)(z-0.5))\),直接查表不好查,你可以先令 \(F(z)/z = 1/((z-1)(z-0.5))\),展开成 \(A/(z-1) + B/(z-0.5)\),求出A和B,然后再乘回z,变成 \(Az/(z-1) + Bz/(z-0.5)\),这时候就能直接查表得到 \(f(kT)\)。这个“先除z再乘z”的小技巧,几乎每年作业都会考,务必记牢。

2.3 脉冲传递函数:系统的“离散身份证”

连续系统用传递函数 \(G(s)\) 描述输入输出关系,离散系统则用脉冲传递函数 \(G(z)\)。作业里最常见的题型是:已知连续对象的传递函数 \(G(s)\) 和采样周期T,前面串联一个零阶保持器,求整个系统的脉冲传递函数 \(G(z)\)。

这个题型的标准解法是查表。课本上有一张常用函数的Z变换表,里面列出了 \(1/s\)、\(1/s^2\)、\(1/(s+a)\) 等典型环节对应带零阶保持器后的Z变换结果。实际做题时,先把 \(G(s)\) 做部分分式分解,拆成表中可查的基本项之和,然后逐项查表,最后通分合并。

这里要特别提醒一个作业里高频出现的陷阱:很多人直接把 \(G(s)\) 换成 \(G(z)\),这是错的。因为零阶保持器的传递函数是 \((1-e^{-Ts})/s\),所以完整的关系是 \(G(z) = (1-z^{-1}) \cdot Z[G(s)/s]\)。必须先除以s,查表,再乘 \((1-z^{-1})\),顺序不能乱。作业中如果发现自己的结果和别人对不上,十有八九是这一步出了问题。

3. 稳定性分析与稳态误差:作业里的“硬骨头”

3.1 离散系统的稳定性判据

连续系统判断稳定性用劳斯判据,离散系统则不能直接在z域用,因为稳定区域从虚轴左侧变成了单位圆内部。作业里常用的方法是双线性变换,也叫 \(w\) 变换,令 \(z = (w+1)/(w-1)\),把z平面的单位圆内部映射到w平面的左半平面,然后就能沿用劳斯判据了。

这类题目的计算量不小,尤其是分母阶数较高的时候,展开 \((w+1)/(w-1)\) 的幂次特别容易出错。我的经验是先做一个变量代换:令 \(z = (1+w)/(1-w)\) 还是 \((w+1)/(w-1)\),不同课本写法不一样,但最终得到的稳定性结论一致。解题时选定一种记法后,把特征方程每一项都换掉,再两边同乘 \((w-1)^n\)(n是方程阶数)消去分母,得到关于w的多项式,然后列劳斯表。

踩坑提醒:双线性变换后的劳斯表,只要第一列符号不变,系统就稳定;一旦出现符号变化,变化次数就是右半w平面的根的个数,也就对应z平面单位圆外的极点数。作业中经常有人忘了两边同乘 \((w-1)^n\),导致后面全错,这个细节要特别留意。

除了双线性变换,朱利判据也偶尔出现在作业里。朱利判据直接在z域操作,构造一个表格,检查第一行和最后一行系数的关系。如果特征方程是三阶以内,朱利判据的表格还不算太复杂;四阶以上建议还是用双线性变换,计算量反而更可控。

3.2 稳态误差的两种求法

离散系统稳态误差的考点,通常关联“误差系数法”或者“终值定理法”。误差系数法类似连续系统里的静态位置误差系数 \(K_p\)、速度误差系数 \(K_v\)、加速度误差系数 \(K_a\),只不过公式里的 \((s \to 0)\) 换成了 \((z \to 1)\) 的极限。

作业里比较常考的是给定闭环脉冲传递函数,让你求单位阶跃输入下的稳态误差。这时候用终值定理最简单:\(e(\infty) = \lim_{z \to 1} (1-z^{-1}) E(z)\),其中 \(E(z)\) 是误差信号的Z变换。关键在于 \(E(z)\) 怎么求——要用 \(E(z) = R(z) - C(z) = R(z) / (1 + G(z)H(z))\) 的关系,不能直接用输出反推,否则容易搞混符号。

我见过不少作业错误出在系统型别判断上。离散系统的型别由开环脉冲传递函数中 \((1-z^{-1})\) 因子的个数决定,0型系统对阶跃输入有稳态误差,I型系统对斜坡输入有稳态误差。题目如果问“要想对斜坡输入无静差,系统应是什么型别”,本质上就是在考这个知识点。

4. 数字控制器设计:从PID到最少拍

4.1 数字PID的参数整定思路

计算机控制系统作业里,数字PID设计是分值最高、也最贴近工程应用的题型。与模拟PID不同的是,数字PID有采样周期T,控制律写成差分方程的形式:位置式PID和增量式PID。

位置式PID输出的是控制量的绝对值,需要对误差的历史全部累加,编程时容易积分饱和;增量式PID输出的是控制量的增量,只需要最近几次误差,实际工程中更常用。作业里经常让你把一个连续PID传递函数离散化成差分方程,思路是用后向差分近似:\(s \approx (1-z^{-1})/T\),把积分项和微分项分别替换,再整理成 \(u(kT)\) 关于 \(e(kT)\)、\(e(kT-T)\)、\(e(kT-2T)\) 的表达式。

参数整定方面,作业题一般不会让你真正调参,而是给定 \(K_p\)、\(K_i\)、\(K_d\) 和采样周期T,让你写出具体的控制算式。但如果你要自己仿真,我的经验是:先只加比例,找到系统临界振荡的增益,再引入积分消除稳态误差,最后加微分抑制超调。采样周期T越小,离散系统越接近连续系统,但T过小会导致计算量增大,也容易放大噪声,这个权衡在答题时可以写进讨论里,是加分项。

4.2 最少拍控制器的设计逻辑

最少拍控制是数字控制系统作业里比较有特色的一类题。它的目标是让系统在有限个采样周期内达到无稳态误差,而且“拍数”最少。设计思路是:给定输入类型(阶跃、斜坡、加速度),根据无稳态误差和物理可实现两个约束条件,确定闭环脉冲传递函数 \(\Phi(z)\) 和误差脉冲传递函数 \(\Phi_e(z)\) 的形式。

具体来说,对单位阶跃输入,最少拍系统要求 \(\Phi_e(z) = 1 - z^{-1}\),这样闭环传递函数 \(\Phi(z) = 1 - \Phi_e(z) = z^{-1}\),也就是说一拍之后输出就跟踪上输入。对单位斜坡输入,要求 \(\Phi_e(z) = (1-z^{-1})^2\),两拍完成跟踪。

作业里的标准流程是:先确定输入类型对应的 \(\Phi_e(z)\),再由 \(D(z) = \Phi(z) / (G(z)\Phi_e(z))\) 反解出数字控制器。这里最关键的坑是物理可实现约束:D(z)的分子阶次不能高于分母阶次,否则意味着控制器需要未来的信号,现实中做不到。如果发现反解出来的D(z)不可实现,就要把 \(\Phi_e(z)\) 的阶次提高,或者引入延迟因子 \(z^{-1}\) 调整结构。

我做作业时踩过的另一个坑是最少拍系统对输入类型敏感:按阶跃输入设计的最少拍系统,如果实际输入是斜坡信号,稳态误差会变成常数而非零;按斜坡输入设计的系统,输入阶跃时会有超调。所以答题时一定要看清题目假设的输入类型,别想当然地套模板。

4.3 模拟化设计方法简介

另一类作业题是“间接设计法”,也叫模拟化设计:先忽略采样和保持的影响,按连续系统设计出满意的控制器 \(D(s)\),再用某种离散化方法把它转成 \(D(z)\)。常用的离散化方法有前向差分、后向差分、双线性变换(Tustin变换)、零极点匹配法。

这类题的答题思路比较固定:给定 \(D(s)\) 和采样周期T,先用双线性变换替换 \(s = 2(z-1)/(T(z+1))\),再整理成关于z的有理分式。如果题目要求写成差分方程形式,就继续从 \(D(z) = U(z)/E(z)\) 反推 \(u(kT)\) 的递推表达式。

经验之谈:离散化方法中,双线性变换的精度最好,因为它把s平面的虚轴映射到z平面的单位圆,频率失真可以通过预修正补偿。前向差分可能把稳定系统离散成不稳定系统,所以作业里除非特别要求,一般不建议用前向差分。

5. 实操案例:一道典型综合题完整走一遍

为了让上面的方法落地,我拿一道当年作业里的综合题举例。题目大致是:已知被控对象 \(G(s) = 10/(s(s+1))\),采样周期 \(T = 1s\),前接零阶保持器。要求:(1) 求广义对象的脉冲传递函数 \(G(z)\);(2) 设计单位阶跃输入下的最少拍数字控制器 \(D(z)\);(3) 校验系统输出序列。

第一步,求 \(G(z)\)。根据零阶保持器与对象的串联关系:

\(G(z) = (1-z^{-1}) \cdot Z[G(s)/s] = (1-z^{-1}) \cdot Z[10/(s^2(s+1))]\)

先把 \(10/(s^2(s+1))\) 部分分式分解成 \(10/s^2 - 10/s + 10/(s+1)\)。查表并考虑T=1s,得到:

\(Z[10/s^2] = 10 \cdot z/(z-1)^2\),\(Z[10/s] = 10 \cdot z/(z-1)\),\(Z[10/(s+1)] = 10 \cdot z/(z-e^{-1})\)。

逐项组合,再乘 \((1-z^{-1})\),化简后得到:

\(G(z) = \frac{3.68z + 2.64}{(z-1)(z-0.368)}\)

这个结果我印象很深,因为 \(3.68\) 和 \(2.64\) 是由 \(e^{-1} \approx 0.368\) 组合出来的常数,很多版本作业里都能见到类似数字。算出 \(G(z)\) 后一定要检查:(z-1)因子来自积分环节,如果对象里没有积分环节,脉冲传递函数在z=1处就不会有这个极点。

第二步,设计最少拍控制器。单位阶跃输入下,取 \(\Phi_e(z) = 1-z^{-1}\),则 \(\Phi(z) = z^{-1}\)。控制器为:

\(D(z) = \frac{\Phi(z)}{G(z)\Phi_e(z)} = \frac{z^{-1}}{G(z)(1-z^{-1})}\)

代 \(G(z)\) 进去,通分化简。

第三步,求输出序列。闭环输出 \(C(z) = \Phi(z)R(z)\),单位阶跃的Z变换 \(R(z) = z/(z-1)\),所以 \(C(z) = z^{-1} \cdot z/(z-1) = 1/(z-1)\)。展开成幂级数,得到 \(c(kT) = 1\)(k≥1),也就是一拍之后输出就到1,这就是“最少拍”的直观意义。

这道题完整做完,整份作业的几条主线——零阶保持器建模、Z变换、脉冲传递函数、最少拍设计——就全部串起来了。作业里如果还有附加题让你画输出序列图,把数值标出来就行。

6. 常见错误与考场/作业自查清单

6.1 五个高频翻车点

我批改过几轮学弟学妹的作业,也帮老师整理过答案,最常见的错误集中在五个地方:

第一,零阶保持器环节漏乘 \((1-z^{-1})\)。这是最经典的低级错误,一错毁所有,后面控制器的D(z)全跟着错。

第二,部分分式展开时没有先除z。离散Z变换表的基准形式是 \(z/(z-a)\),不是 \(1/(z-a)\)。直接按连续系统的方式展开 \(F(z)\),查表时就对不上。

第三,双线性变换后忘乘 \((w-1)^n\) 去分母。结果劳斯表首列乱成一团,稳定性判断全错。

第四,最少拍设计里 \(\Phi_e(z)\) 选错。输入是斜坡却用阶跃的 \((1-z^{-1})\),稳态误差不为零,系统根本不能满足题目要求。

第五,物理可实现约束没检查。设计出的D(z)分子阶次高于分母,这在现实中无法实现,作业里属于概念性错误,比算错数字更严重。

6.2 自查清单

每次做完作业,按这个清单过一遍:

  • 广义对象 \(G(z)\) 里有没有代入零阶保持器?代入后整理出的特征多项式有没有漏项?
  • Z反变换用的部分分式是不是先除z再乘z?
  • 稳定性题目的劳斯表第一列符号是否逐一列出?有没有说明符号变化次数代表的含义?
  • 最少拍控制器 \(D(z)\) 是否满足分子阶次不高于分母阶次?输出序列前几拍是否与理论一致?
  • 如果题目要求讨论采样周期对系统的影响,有没有提到T过大可能导致系统失稳?

6.3 独家避坑技巧

最后分享几条我在反复做题和看别人代码仿真时总结的经验。

第一,做计算题别在中间步骤保留小数。 \(e^{-1}\) 该写成0.368就写0.368,但中间过程尽量用分数或保留四位有效数字,否则误差累积到最后特别难看。

第二,用MATLAB验算时,注意 c2d 函数的用法。 \(G(z) = c2d(Gs, T, 'zoh')\) 得到的就是带零阶保持器的广义对象。我当年用这行命令验算作业,十次有八次能查出自己手算哪里漏了项。

第三,最少拍设计完成后,一定要回到时域看输出序列。如果理论上两拍结束,但序列第二拍之后还在抖,说明 \(\Phi(z)\) 没化简干净或者z^{-1}的阶次配错了。

第四,平时积累一个“Z变换速查卡”。把 \(1/s\)、\(1/s^2\)、\(1/(s+a)\)、\(1/(s(s+a))\) 这几类常见拉普拉斯变换对应的Z变换抄在一张纸上,考试和做作业都省去翻书时间。我至今办公室里还贴着一张当年的手写版,做项目估算时偶尔也会瞄一眼。

计算机控制系统这门课,本质上就是把经典控制理论从连续世界搬到离散世界。作业题虽然看起来公式多、套路深,但只要你掌握了采样、Z变换、脉冲传递函数、稳定性判据、数字控制器设计这条主线,所有题目都只是主线上不同环节的组合。与其到处求一份参考答案,不如自己把这条主线走通一遍。真到了考试或者实际项目里,你能依赖的只有自己脑子里的这套框架。

本文还有配套的精品资源,点击获取

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询