小型公司网站建设,深圳网络营销策划有限公司,番禺手机网站建设,怎么创立自己的网站又到新的一年啦#xff0c;2025新年快乐~。前几个月都没更新#xff0c;主要还是因为不能把项目上的私密工作写进去#xff0c;所以暂时没啥可写的。最近在山里实习#xff0c;突然想起年前遗留了个问题一直没解决#xff0c;没想到这两天在deepseek的加持下很快解决了2025新年快乐~。前几个月都没更新主要还是因为不能把项目上的私密工作写进去所以暂时没啥可写的。最近在山里实习突然想起年前遗留了个问题一直没解决没想到这两天在deepseek的加持下很快解决了只能说AI还是猛能提供很好的建议。 0. 问题描述 作为一个控制人最常见的模型表达式莫过于状态空间方程和二阶的非线性方程了 对于绝大多数情况下上述状态空间方程中的前馈矩阵D一般为0即输入一般不直接影响输出但是最近遇到个问题其辨识出来的模型中矩阵D不为0然后让你去控制它这种情况我还真第一次遇到当我尝试使用最简单的滑模控制来设计控制器时却遇到了问题并且翻阅各大检索网站都没有这方面的解决办法。 问题总结对于前馈矩阵D≠0的情况如何设计状态反馈或滑模控制器
1. 状态反馈控制 状态反馈控制通过反馈状态变量来设计控制器即使 D≠0状态反馈控制律仍可以设计为 u − K x u-Kx u−Kx 的形式。matlab提供了place函数可直接针对矩阵A、B设计反馈增益矩阵K。 若状态变量不可测时可使用输出反馈控制输出反馈控制律为 u − K y u-Ky u−Ky其中 y C x D u yCxDu yCxDu。 注place函数适用于多输入多输出系统而acker函数仅用于单输入系统。
仿真验证 以倒立摆系统为例验证状态反馈控制可以看出即使对于D≠0的情况状态反馈控制仍然具有良好的控制效果。
2. 滑模控制 为了考虑D≠0的影响最开始是想设计滑模面 s S x K y sSxKy sSxKy 的形式并采用等效控制和切换控制的方式 u u e q u s w uu_{eq}u_{sw} uuequsw 设计控制律不过后续发现无论如何调整设计矩阵S和K的参数均不能完成控制。期间学到了在对y求导时控制输入u的导数du可以适当忽略原因如下
控制输入的动态特性在实际系统中执行器的动态特性通常比系统的动态特性快得多即执行器的响应时间远小于系统的时间常数。因此 u ˙ \dot{u} u˙ 的影响可以忽略不计。滑模控制的鲁棒性滑模控制的核心思想是通过高频切换控制律如符号函数 sign(s(x))来驱动系统状态到达滑模面并保持在滑模面上。这种高频切换本身就具有很强的鲁棒性能够克服系统中的不确定性和扰动。即使 u ˙ \dot{u} u˙ 存在其影响也会被滑模控制的鲁棒性所抑制。简化设计过程忽略 u ˙ \dot{u} u˙ 可以大大简化控制律的设计过程。如果考虑 u ˙ \dot{u} u˙控制律的设计会变得非常复杂尤其是在多输入多输出MIMO系统中。通过忽略 u ˙ \dot{u} u˙可以将问题简化为一个静态反馈控制问题从而更容易设计控制器。实际系统的验证在实际系统中忽略 u ˙ \dot{u} u˙ 的假设通常可以通过仿真和实验验证。如果仿真和实验结果表明系统的性能满足要求那么这一假设就是合理的。 特殊情况下的处理如果 u ˙ \dot{u} u˙ 的影响确实不可忽略例如执行器的动态特性较慢可以通过以下方法处理① 引入动态扩张将 u 视为一个新的状态变量设计扩张状态空间方程。② 高阶滑模控制设计高阶滑模控制器直接考虑 u ˙ \dot{u} u˙ 的影响。 由于联合设计矩阵S和K没有成功因此这里将滑模面仅设计为与状态变量有关的形式 s S x sSx sSx 并采用极点配置的方式求解设计矩阵S。首先令 s ˙ 0 \dot{s}0 s˙0 求出 u e q u_{eq} ueq取 u s w − η ∗ s i g n ( s ( x ) ) u_{sw} -\eta *sign(s(x)) usw−η∗sign(s(x))可得控制律 u u e q u s w uu_{eq}u_{sw} uuequsw回代入 x A x B u xAxBu xAxBu 可得闭环系统的 A c A_{c} Ac此时采用极点配置将闭环极点配置在左半平面可得到设计矩阵S的参数。det(S*I-Ac) (s-lambda1) * (s-lambda2) * ... 如果不采用极点配置的方式则需要根据系统稳定性条件确定矩阵S的参数。
仿真验证 同样的以倒立摆系统为例验证滑模控制可以看出即使对于D≠0的情况滑模控制依然具有较好的控制效果。
3. C≠单位阵时的线性变换 上述解决了矩阵D≠0的情况此外当D0时还存在一种情况即C不等于单位矩阵此时需要采用线性变换进行处理即 { A ′ T − 1 A T B ′ T − 1 B C ′ C T \begin{cases} A^{\prime}T^{-1}AT\\ B^{\prime}T^{-1}B\\ C^{\prime}CT\\ \end{cases} ⎩ ⎨ ⎧A′T−1ATB′T−1BC′CT其中 C ′ C^{\prime} C′ 为变换后的单位阵并可解出满足条件的任一变换矩阵 T T T随后得到变换后的 A 、 B A、B A、B 矩阵。
4. 总结 基于以上结论总结如下
对于D≠0时的状态反馈控制以及滑模控制大多数情况下可以不考虑D的影响仍然采用状态变量反馈控制即可少数情况下需要考虑输出D的影响对于控制输入u的导数影响可以适当忽略实在不能忽略的话可设计高阶滑模控制器或扩张状态空间方程来考虑u善用AI工具用批判的眼光看待它给出的答案deepseek还是好用。