首页 > 产品 > 微控制器 (MCU) 和处理器 > 空间控制系列视频 >

C2000

最新课程

热门课程

状态反馈控制

翻到教程第 35 页,我们 从这里开始介绍状态空间控制 内容。 就像我在午间 休息之前提到的, 在下午的课程中, 将会应用今天上午的理论, 第一次真正实施控制。 这是在状态空间 控制研讨会上, 我们第一次 实际实施控制。 时间这么久, 进度有点慢了。 首先,我们将研究 状态反馈的概念。 状态反馈即, 在负反馈循环中使用 状态向量的反馈控制, 而不是使用输出。 您可能需要这样做, 因为有一些非常令人信服的理由。 比如,为了实现想要的 性能,设计人员 使用状态反馈 与输出反馈控制相比, 他们所拥有的 灵活性程度要大得多。 这里有几种实现 状态反馈控制的 方法, 几种设计状态反馈 控制系统的方法。 如果您的系统有一个输入, 那么有几种 相对简单的方法, 可以将极点放置在 复平面的所需区域中。 但是,如果 系统有多个输入, 那么您很快就会发现 自己需要做出选择, 原因就在于 状态反馈环中使用的 反馈矩阵, 实际上您可以找到 会给出正确特征值的 多个不同反馈矩阵。 因此,您需要 就使用哪些反馈增益 做出选择。 而且,它们并不一样。 其中一些反馈增益 会比其他选项带来略好的 性能。 这是因为, 虽然特征值正确, 但特征向量的 总和将会不同。 因此,在多输入情况下, 我将用于反馈 控制设计的方法 称为特征结构配置。 乍一看,这是一个 相对复杂的过程。 但是,当您弄清楚之后, 就会非常简单, 因为您只需要遵循 一组步骤。 不会有很多地方会出错, 但您的确需要 在此过程中做出选择。 这就是特征 结构配置方法 需要我们花时间的地方。 之后,我们会 进行本练习的 第一部分,这部分是为 瞬态响应设计的。 因为我们已经 将极点与闭环 放置在所需的位置。 然后,我们需要 重点关注稳态性能。 这是通常的做法。 您需要设计 反馈增益矩阵, 获得良好的瞬态性能, 然后重点关注 输入矩阵以获得 所需的稳态性能。 昨天,我们讨论了系统的 不同型号。 我们将型号 与输入激励的形式 进行了比较。 我们说过, 对于阶跃输入, 环路周围必须 至少有一个积分器。 我们证实了 积分控制可实现 零稳态误差。 对于状态空间 控制来说也是如此。 您可以采用积分 控制来消除稳态误差。 问题是,这样做 会增加闭环系统的阶数, 原因是每个积分器 都会向状态向量添加另一个 状态。 因此,设计方法 需要考虑这一点。 此外,还有一个相当 重要的流程需要遵循, 以便确保这些状态 及其贡献的特征值 是您想要的。 它在一般概念上 与输出反馈控制相似, 但细节差异很大, 并且要复杂得多。 因此,这就是您在 设计状态反馈控制 系统时最终要做的 事情。 我们今天上午介绍了 由 A、B、C、D 四个矩阵定义的 状态空间系统, 以及输入向量 U 和 输出向量 Y, 还有内部状态向量 X。 状态反馈环路 会经过一个矩阵 K,我将使用这个符号。 它最常用, 由一个固定增益数组 构成,至少 在本例中是这样。 它贡献了一个 R x 1 的输出向量。 这里有一个 N x 1 的向量进入, 这是状态向量。 得出一个 R x 1 向量,它与另一个 R x 1 向量相加, 生成 R x 1 输入, 即对系统的控制。 状态反馈增益矩阵是 会固定系统 瞬态响应的矩阵。 我们通常先设计该矩阵。 有了该矩阵后, 我们就可以将注意力 转向一个输入 矩阵,我将其称为 N。 输入矩阵可以让我们 调整系统的 稳态属性,或者至少 有一个可以控制稳态 输出的输入。 现在有了两个 单独的矩阵 K 和 N。 它们分别 控制瞬态性能和 稳态性能。 为什么要使用 状态反馈呢? 与输出反馈相比, 它能够实现卓越的性能。 [听不清] 系统中的所有动态 信息都在 x(t) 中捕获, 然而, 如果只使用 输出进行控制, 可能会有 一些输出中不存在, 但状态向量中存在的 信息。 因此,这样可以 获得更好的性能。 当然,使用状态 向量的问题是, 您会使用系统 描述内部的一组元素。 这意味着它们可能 出现或不出现在输出中。 通常不会出现。 而且,您可能选择了 无法直接测量的东西。 因此,我们需要 设法获取状态向量, 然后才能应用 状态反馈控制。 这是本设计 第 2 部分要做的, 位于第 8 章, 设计名为估计器或 观测器的算法。 这两个词含义相同。 都会在给定输入 u(t) 时提供状态向量。 有多种方法可以做到, 但我们将使用 线性空间估计器, 其中包含被控对象模型。 这就是我们要做的。 我们将首先重点 关注反馈增益矩阵 K 的 设计。 如果有类似的输入, 如果处理单输入 系统 u(t),这是一个标量, 根本不是向量, 我们可以通过 几种不同的方法, 放置闭环极点。 我们能够手动操作。 有一种简单的代数方法 可以做到, 我将会告诉您, 我会演示一下。 还有一个名为 阿克曼公式的公式, 它会自动执行这部分操作。 这在处理 高阶系统时很有用, 手动过程有点乏味。 通常,这些方法 称为极点放置方法。 就像我说的, 在多输入情况下, 我们会使用特征配置 方法。 设计 K 矩阵之后, 我们将重点关注 输入矩阵 N 的设计, 满足稳态设计规格。 这就是存在 输入矩阵 N 的状态 反馈控制系统的结构。 这里的绿框构成了 被控对象的模型。 被控对象的 ABCD 模型。 与第 5 章开头的 图表相比,没有 任何变化。 我们添加的 两个额外矩阵是, R x N 矩阵 K, 其中包含反馈增益, 以及 R x P 矩阵 N, 其中包含输入增益。 因此, 系统的新输入 V, 具有维度 P。 P 是确定系统 输入数量的 整数,它可能与 R 相同, 也可能不同。 通常情况下不同。 就像您昨天 在离散时间案例中 看到的, 所谓的系统控制器是 会生成控制量 u(t) 的 公式。 您可以通过检查 看到控制器是什么。 它是 N 乘以 V 减去 K 乘以 X。 屏幕下方的 这个公式就是控制器。 系统和输出方程 与以前没有变化。 是同一个系统。 现在我们有三个方程, 它们定义了状态 反馈控制系统的运行。 我们可以在 前两个方程中插入 第三个方程, 然后得到闭环方程。 就在这里, 状态反馈方程。 这里是 插入控制器的状态 方程。 此时可以 看到两个涉及 x 的项。 A 减去 B 乘以 K。 顺序很重要。 A 减去 BK 是 m x n 矩阵。 现在的输入矩阵 是 B 乘以 N。 这就是整体状态方程。 在上一张幻灯片中, 如果将这一整体简单视为 一个黑盒,从这里 到整体,那么原始 被控对象模型加 K 和 N 现在就是系统的一部分。 这是闭环状态 方程,其中包括 K 和 N。 如果将控制器 插入输出方程, 就会得出 Cx 加 D 乘以 (Nv - Kx)。 因此,输出矩阵 会发生类似的变化, 结果变成 C 减 DK。 仍然是 m x n 矩阵。 抱歉,是 n x m 矩阵。 是 m x n。 可以得出 D 乘以 N 乘以 V。 现在,重要的是, 当您查看新的 状态和输出矩阵时, 等效系统矩阵、 输入矩阵、输出和 传输矩阵是不同的。 请记住,当我们定义 可控制性和可观测性的 属性时,它们 依赖于矩阵 A、B 和 C。 A 和 B 表示 可控制性属性。 它们都发生了变化。 A 和 C 表示 可观测性属性, 也发生了变化。 因此,单凭 被控对象可控制且 可观测这一事实, 并不意味着 在应用状态反馈时, 整体将可以 控制和可以观察。 如果您后期 将其作为一个更大 系统中的子系统, 那么这可能很重要。 例如,当我们 检查可控制性时, 这是具有 A 矩阵和 B 矩阵的 基本被控对象的 可控制性矩阵 P。 当我们替换成 A 减 BK, 作为新的系统矩阵, BN 作为新的输入矩阵时, 只需要将它们插入 可控制性 矩阵的相同公式, 然后求解。 在状态反馈下, 此矩阵很可能会降秩。 因此,您可能 会失去可控制性。 但通常不会。 实际上,如果 输入矩阵 N 的秩 等于 R, 则它具有满秩。 换句话说,不会降秩。 结果就是这样。 但是如果需要, 这就是计算方法。 同样, 对于可观测性, [听不清] C 矩阵和 A 矩阵现在不同, 它们会代替 C 和 A 应用到前一个公式中。 您可能会失去 可观测性,因为如果 C 等于 V 乘以 K, 则新的 C 矩阵、新的输出矩阵为 0。 因此,最终可能 会失去可观测性, 很明显。 这是因为 如果输出矩阵为 0, 则什么都不会 一直传递到输出。 因此是可能的。 接下来是离散时间。 除了常用符号差异, 以及用延迟 元件替换积分器之外, 没有其他任何不同。 其他一切都相同, 控制器的应用完全相同。 现在,我要转到 我在第 6 章末尾 描述的双质体系统。 对于给定的 K 值,即给定的反馈增益 元素选择,可以显示出 状态反馈对 系统性能的影响。 请记住,至少 可以说,这种双质体系统是 振荡的系统。 我认为,应用状态反馈 所造成的差异 之大,可能会让您感到 惊讶。 下面我们继续, 在 MATLAB 中创建此模型。 我将使用的 状态反馈增益是这一个。 这是状态反馈矩阵。 它是 1 x 4 矩阵, 因为系统是四阶的。 输入是应用到 质体 m1 的力。 因此,它是四阶 系统的一个输入。 我们在这里 所做的是,首先, 为了进行比较, 我们将重复在教程 6.4 中 完成的初始条件测试。 对我们来说,这确认了 响应的确有明显的振荡。 然后,下一步是 将它离散化, 因为教程称我们要寻找 离散时间控制器, 用 0.2 采样周期 将被控对象离散化。 然后,我们要做的是 必须使用离散时间反馈。 下面我们将被控对象离散化。 好了。 这样我们 得到了离散时间矩阵。 现在,我要对此进行仿真。 为了进行仿真, 我要在 MATLAB 中进行, 抱歉,是 Simulink。 已经为此准备了一个 Simulink 模型,它的结构 与我之前展示的 相同。 它是双质体 系统的 ABCD 模型。 然后,反馈 增益矩阵来自 x, 进入 u。 在此示例中,我假设 输入矩阵没有必要调整。 我还没有关注稳态。 不管稳态。 我们先来看瞬态属性。 当我运行它, 在所有矩阵全部初始化 之后,您可以看到向量 显示为粗线。 在工作区内,会显示 输出和状态之类的内容。 我们可以在 MATLAB 脚本中使用它们。 在下面,我们将在 状态反馈控制下方构建 系统的输出。 我不知道您怎么看, 但我认为这非常震撼, 但愿我能 去除这些滑动要素, 从这个变为了这个。 非常好。 这是一个 不受控制的系统。 我的意思是, 它完全取决于自己的器件。 它的振荡会持续数百秒。 这里有一个控制器, 我们假设 它的稳态已得到处理。 现在这不重要。 但是,它会在几秒 之内收敛于稳态,比如 10 秒左右。 响应很好地呈现指数性。 您或许猜到, 我们为它选择了 实数特征值。 实际上的确如此。 有四个实数特征值。 但是,状态反馈 控制大不相同。 我认为 相当让人惊讶。 我们还可以绘制此状态, 但是我认为在 此阶段并没有什么帮助, 只是这里的红线,即 x3, 是第二个质体的 位置,我们只是通过移动 第一个质体影响了它。 二者之间的 所有相互耦合, 所有这些振荡效应, 都通过应用 反馈控制而被消除。 现在,在我们继续 进行任何设计之前, 我想用几分钟 时间回顾一下 昨天第 3 章的内容, 当时我解释了 复极点和瞬态响应 之间的关系。 记得对于二阶情况来说, 特征方程包含两个变量: ζ 和 ωn。 极点将用这些变量 表示。 对于复共轭的情况, 极点的位置在, -σ 加减 jωd, σ 等于 ζ 和 ωn 的乘积。 这可以得出极点的实部。 虚部由 ωd 得出, 即 ωn 乘以 1 减 ζ 平方后的 平方根。 记得它们按照 以下方式出现在阶跃 响应方程中。 σ 决定响应的衰减率, σd 决定振荡频率。 您可能遇到的 其他术语是 ωn 和 ζ, 它们是原始方程中的 基本参数。 ωn 固定了向量的半径, 即向量从原点 到极点的长度。 而 ζ 通过反余弦固定了 该向量 与负实轴形成的角度。 提醒一下,尽管这可能 在昨天给人的印象 更加深刻, 但这里的图表 显示了在复平面中 移动极点或复极点的 效果。 一般来说, 极点越往左移动, 衰减率就越快, 这是因为 σ 的负值 变得更大。 向上移动极点时, 得出的虚部更大, 而振荡频率变得更大, 这是因为 ωd 变得更大。 这两者都可以 在复平面中看到。 对于离散 时间系统,情况几乎相同, 只是衰减率 与极点和单位圆 原点的邻近度有关。 振荡频率与 绕单位圆的角度有关。 因此,随着我们 绕单位圆越来越远, 振荡频率随之增加。 那么,总的来说, 我们在期望什么呢? 如果我们想要更快的 衰减速度,可以将极点向左移。 如果我们想要 更大或更小的振荡, 可以在虚轴上 上下移动极点, 或者,给予它们一个 更多或更大的虚部。 如果想要更快的衰减, 则在 z 平面中相应地 将它们移向原点, 如果想要更高或更低的振荡, 则将它们绕单位圆 移动。 在轨迹设计中, 我们会使用这些信息, 在复平面中选择 希望能给出 满意响应的极点。 如果我们有二阶系统, 就可以非常 准确地做出选择, 因为只有两个极点。 因此,我们准确地 知道将会得到什么。 但一般来说, 系统有不止两个极点。 可能会有 5、 10 或 100 个极点。 那么该怎么做? 因为所得到的 实际瞬态响应是它们的 组合,所以全部极点 都会对整体 响应做出贡献。 您在根轨迹方面 能做的事情不多, 因为无论做什么, 都是沿着昨天 所用方法中的根轨迹 移动极点。 但是使用反馈控制, 可以将极点 放置在复平面中的任意位置。 因此可以多一些自由, 使它们分开,将主极点 放在您想要的 位置,对于您可能 不感兴趣的极点, 则将它们移动得 更远。 一种非常 可靠的设计方法是, 自己选择一对 主二阶极点,使用它们模拟 具有所需属性的 二阶系统的响应。 例如,如果您的目标是 具有所谓过冲和 稳定时间的瞬态响应, 则应基于二阶系统, 确定您希望极点 在复平面位于什么 区域。 将这些极点 放在该区域,然后力求将其他 闭环极点设计 在更靠左的位置, 以便它们不会显著影响 瞬态响应。 可以说,它建立 在二阶响应的基础上。 在继续往下之前, 基本系统 ABCD 具有 一组极点。 一组将会出现在 复平面中某个位置的 特征值。 我们现在要做的事情, 将会允许我们使用 反馈重新定位这些极点, 以便它们位于 我们想要的位置。 这些极点移动得越远, 反馈增益矩阵 K 中的增益就会越大。 反馈增益矩阵 K 中的增益越大。 这意味, 离散时间系统也是一样。 因此我们借用一下。 如果有一组 基本极点,由 ABCD 矩阵 定义的基本 特征值,或者由离散时间 系统中的 ΦΓCD 矩阵定义, 我想要将这些 极点移远一些, 最终就会 在 K 中得到大增益元素。 因此,将会有 大量的项通过 U 进来。 这很好理解,对吗? 如果要显著 改变系统的性能, 就需要做大量的工作。 u(k) 很可能超过 某些允许的限值。 没错,您能够 想做什么就做什么, 但仍然要 付出一定的代价。 代价就是, 可能会引入大增益元素, 它们会引入大增益。 因此,会有大信号出来。 还有可能会放大 物理系统中的噪声。 理论上这是可能的, 但也有一些实际的 注意事项需要考虑。 准则就是, 将极点放置在 s 平面中 左侧远处位置, 因为这会使它们更快。 但是要注意, 因为通过它感应的 宽带宽也可能最终会 放大系统中的噪声。 增加带宽可能会导致 干扰和噪声增加。 还要记住,正如 我说过的,通过使用 状态反馈将特征值 移动显著的距离后, 会在反馈增益 矩阵中造成大元素, 从长期的 u 向量大小角度说, 这本身可能会带来困难, 这可能意味着 控制幅度更大。 因此,您可能 需要更大的执行器。 这些代价 可能会导致很多再饱和。 会有各种 各样的东西可能出错。 这个时候, 模态分析就可以给予帮助, 因为系统在弱模式、 弱可控模式下需要更加 努力地工作。 尤其是, 当一个或多个 [听不清] 转置向量包含小元素时。 这意味着, 无论您要对该模式做什么, 都很难做到。 您需要付出很多努力。 而您从模态 分解中可以得到的是, 查看 [听不清] 向量 转置元素的范围。 如果在一些 [听不清] 向量中 看到一些很大的数字, 而其他一些向量中的 数字又很小,这可能表示 您需要为一些模式付出 更大的努力。 这就是第一种设计方法。 它称为极点放置。 原则上,它非常简单。 它仅适用于单输入系统。 在本例中, 我们有 K 矩阵, 它是行矩阵, 因为它的输出是 标量。 这是一条细线, 直接进入这里的 B 矩阵。 因此,B 矩阵 将会是 n x 1 矩阵。 然后是剩下的系统。 假设我们 通过传递函数表示 得出了这一可视化。 在这种情况下, D 矩阵为 0,因此在本例中 只有 ABC。 闭环控制下的 系统特征值。 请记住,前面有 λi 减 A。 控制律现在意味着 A 矩阵从 A 变为 A 减 BK。 因此,闭环特征值 位于 λi 减 A 加 BK。 解出它的行列式。 这将告诉我们 闭环特征值的位置。 实际上,这是一个 寻找什么 K 值能够给出 正确特征值的练习。 这就是我们要 设法解决的问题。 这将让我们 将特征值放在正确的 位置。 现在有一种简单的 手动方法就可以做到,只需要使用 代数。 如果我有白板和时间, 就可以做出来, 因为有相应的教程。 或者,有一种自动方法, 该方法包括 使用称为阿克曼公式的 公式, 可以省去繁重的工作。 或者,MATLAB 中 有一个称为 Place 的脚本。 猜猜我们会使用哪一个? 这里是特征值放置定理。 请记住,它适用于 单值、单输入系统。 它有时称为 极点移动定理或谱配置。 首先,您需要确定 自己想要的一组 特征值。 显然,将会有 n 个。 您可以通过 恒定反馈增益矩阵 得到想要的任何特征值。 方法如下。 选择一组特征值。 因此,您已经 立即得出特征 方程。 您已经得出 这个特征方程, 可以展开它的因式。 这样可以 显示这些系数,C0 到 Cₙ₋₁。 Cₙ 始终为 1, 因为实际上 [听不清] 假设不存在其他增益。 因此这是非多项式。 Aₙ 为 1。 在某个位置存在 真实的增益矩阵, 将会得出该结果。 存在 K,它的存在 使得 Δd(λ) 成为该方程的 特征多项式。 这个特征值... 没错,这是另一回事。 还记得昨天我谈到 差分方程,然后谈到 传递函数的时候吗? 我说在微分方程中, 所有系数必须为实数。 这样的结果是, 当您得出多项式的根、 特征方程的根、 系统极点时,它们总是 实共轭或复共轭。 现在,我们采用另一种方法。 这意味着,您最终 想要得到只有实数的 增益矩阵。 您不希望其中有复数。 否则,如何实现它们? 换句话说,您需要选择 一组极点或特征值, 它们要么是实共轭, 要么是复共轭。 这样一来,便可以保证 K 的元素是实数。 如果不同时 有共轭特征值, 等效共轭特征值, 便无法选择复特征值。 这将确保 所有这些 λ 是真实的。 因此, 这些系数也是实数。 手动方法 依赖于将系统转换为 可控规范型。 它的工作 原理非常简洁, 因为只要做到这一点, 其他一切就会变得非常 简单。 请记住, 每个转换函数表示 都有一个 等效可控规范型。 还要记住, 系统矩阵的结构, 除上对角线外, 全部都是 0。 定义特征值的所有分母 系数都出现在底行。 这表示 能够使用它。 因此,在形成 λi - A + BK 矩阵并 求解它的行列式时, 这就是您要求解的。 现在,看一下这一结构, λi 是一个 乘以 λ 的单位矩阵。 因此,对角线上的 所有元素都是 λ。 这些元素现在 出现在下面这里, 位于该矩阵的对角线上。 -A + BK。 您知道 A 是什么。 -A 是将这些 -1 放在这里。 然后是 B × K,B 很简单, 因为只有最后 一个元素中有一个 1。 因此,将它乘以 K 时, 结果它的底行 将会包含 K 矩阵中的 所有项, 其他项全部为 0。 那么,设想一下。 B 将是 n × 1 矩阵,而 K 是 1 × n 矩阵。 因此,n × 1 乘以 1 × n。 您会从中 得到 n × n 矩阵。 但是,除了 K 元素 出现的这最后一行, 其他全部都是 0。 我们感兴趣的 所有信息都出现在 该矩阵的底行。 这是因为我们 一开始就使用了 可控规范型。 这里是此矩阵的 实际特征值的位置。 您会在底部 计算出这个多项式, 并为 λ 求解它的值。 它们是实际特征值。 懂了吗? 在上一张幻灯片中, 我展示的是您为了获得 此多项式而想要的特征值。 实际得到的特征值是 其中反馈矩阵的增益, 是该多项式的解。 现在,您要做的 只是使系数相等。 这相对简单。 这就是 您得到的和想要的。 例如,您可以看到 cₙ₋₁ 与 kₙ + aₙ₋₁ 相等。 就是这样。 因为您知道 a、 知道 c。唯一不知道的 就是 kₙ。 然后,实际上 就是要逐项进行。 公式为 c 等于 即cᵢ = kᵢ₊₁ + aᵢ。 大家关注的是 kᵢ₊₁, 因此,我们只取 kᵢ, 并把其他项移到另一边, 即为 cᵢ₋₁ 与 aᵢ₋₁ 的 差值。 对于这两个 多项式中的每个系数, 都要这样做。 最终,您可以解出... 只需要将 i 进行 因式分解,解出...抱歉, 不需要因式分解。 有一些立即 获得的反馈增益 矩阵的增益。 看起来有些琐碎,对吗? 这有相应的教程, 但很遗憾, 需要使用白板, 所以我将跳过, 然后转到阿克曼公式。 如果您带着书的话, 书中写了这一教程, 其实做起来并不很难。 我所作的 只是强化我认为 不证自明的概念。 所以,我将跳过教程 7.2, 转到相应的自动方法, 该方法称为阿克曼公式。 阿克曼公式依赖于几点。 靠近底部的就是阿克曼公式。 它可以直接生成 K 矩阵。 它等于这样。 有一个行矩阵, 长度有 n 个元素,并且以 1 结尾。 因此,它就像 一个转置的 B 矩阵。 然后,取可控制性矩阵, 然后对其进行求逆, 并乘以 Δd(A)。 我来解释一下 这些项有什么含义。 您已经知道 可控制性矩阵。 就是我在 第 6 节中说过的矩阵。 您也知道 Δd 多项式, 因为展开后的期望 多项式集。 下面回到上一张幻灯片, 给您展示它在哪里。 是这一页。 您的期望 多项式方程就是这一个。 阿克曼公式 包含这一期望的多项式 方程。 但不同的是, 它不以 λ 为参数, 而是以 a 为参数。 因此,只需 将 λ 替换为 a。 这是阿克曼 公式中的第三项。 在本例中,结果 产生了一个 1 x n 矩阵, 其中包含 反馈增益矩阵的所有元素。 这是直接 得出的增益矩阵。 因此,我将快速 在 7.3 中对它做出说明。 现在,我们可以将它 应用于双质体系统, 因为该系统 是单输入系统。 我将会应用它, 然后在采用 我在教程 6.4 中展示的 相同初始条件, 评估它的响应。 我忘了我的教程了。 7.3. 好的,第一个 单元格中没有什么新东西。 我们只是要 创建一个系统模型。 这里是具体工作。 第二个单元格中 已经完成所有工作。 我们要指定 一组期望的特征值。 这是我们努力追求的 离散时间实现。 因此,我们选择了 小于 1 且为正的实数 特征值。 它们位于正实轴上。 可以预计, 它们各自都会贡献一个 指数项,因为 0 和 1 之间的 正实轴上的 极点就是会这样。 然后,我们使用 此命令:place。 Place 命令将会 为我们实施阿克曼公式。 您需要为它给出 C、γ 和一个数组,其中包含 您期望的特征值。 它将会带来 反馈增益矩阵 K。 这会为我们做所有工作。 我们来操作一下。 你们当中记得 教程 6.4 的人可能 还会记得,这些数字 就是我们当时使用的 反馈增益矩阵中的那些数字。 您看到了 它们对瞬态响应 造成的变化。 这就是它们的来源。 这就是阿克曼公式。 现在,我们将会 构建闭环系统, 这是一个状态空间系统。 您现在知道 系统矩阵是 Φ-ΓK, 或者是 A-B×K。 现在,我们 不改变 γ, 原因是没有输入矩阵。 我们来完成 闭环状态方程。 现在我们要做的是, 确认特征值的确位于我们 所需的位置。 我们将形成 Φ-ΓK, 然后检查特征值 所在的位置。 希望它们 位于 0.3、0.4、0.6、0.9。 因此,好像 这种方法有效。 现在,我们将绘制 初始条件开环响应, 这是一种振荡响应, 但时间间隔非常有限, 介于 0 到 15 秒之间。 请记住, 该振荡持续数百秒, 我将只查看 初始条件响应中的 前几个振荡周期。 然后,我们将会 在它上面叠加 纠正后的响应, 可以看到差异 巨大。 这就是反馈 控制所带来的惊人 变化。 控制量就像这样。 请看,控制量 真的只是在 前几秒内发挥作用。 但想象一下, 将它们分开或压缩在一起, 然后放开它们,让它们 各自发挥作用。 这很好。 但是,为了阻止 这些振荡发生, 您需要采取的 控制措施是,向右侧... 向质体 m1 的 左侧施加一个力, 这其实只存在于 第一个周期中。 所以要阻止 其他周期累积。 您可以看到, 这就是所发生的事情。 这就是右侧的控制量。 超过三秒左右, 您不需要 做任何事,因为所有工作 到该阶段都已经完成了。 现在,其中一些 增益元素相当大。 实际上,它们并不太糟糕。 最小的一个是 6 和 1/2。 最大的是 19、20。 不算太糟。 如果您的确 有大增益元素, 那么应该 完成的练习之一是, 检查控制量的幅度, 确保它在 某些方面没有过度。 好的, 到目前为止一切顺利。 我们现在知道 如何为单输入系统设计 反馈增益矩阵。 现在,将会 变得更加复杂。 当有多个输入, 或者当您无法 将系统变成可控规范型时, 无论手动极点放置 方法还是阿克曼方法, 都无法使用。 您需要稍微 复杂一点的东西。 接下来, 我将向您演示一种称为 特征结构配置的方法。 在此过程中, 将会要求您 做出一些选择,因为 正如我所说,反馈 增益问题现在有不止一种解决 方案。 谨慎选择 所使用的增益, 会对性能 产生非常大的影响, 而这实际上归结为 谨慎选择特征结构, 稍后我会 定义它们是什么。 为了说明这一点, 我将设计一个具有 一组特征结构的系统, 即好选择, 然后运行它的性能。 然后,对糟选择 执行同样的操作。 性能差异 之大会让您感到 非常惊讶。 接下来,我们将会 使用特征结构配置。 特征结构配置 案例背后的理论如下。 情形。 闭环特征值是 λi - A + BK 这一行列式的解。 如果为真, 您必须至少有一个 向量落入它的 零空间。 还记得我们以前 是如何定义特征向量和特征值的 首先定义 特征值,即 λi - A。 如果有特征值, 则也会有一个特征向量。 所以,您做了 λi - A, 并寻求它的非平凡解。 在本例中, 您必须有一个 与此特征值 关联的特征向量。 您可以这样写, 或者,您可以 将这些项分离出来, 这样就会得到, λi - A 乘以 该向量 φᵢ, 加 BK 乘以 φᵢ,等于 0。 这是一回事。 随后,您可以 用分块矩阵形式来写, 就像这样。 这与它是相同的, 这三个是相同的。 我们都同意这一点,对吗? 右侧这个向量, 因为它是一个向量, 称为特征结构。 其中包含 φᵢ。 它的解类似于 上分块闭环方程中的 特征向量,以及 K 乘以下分块中的向量。 它是特征结构。 我不知道 有多少列或行, 我不知道 有多少行, 列数取决于有多少输入。 对于每个向量, 都有 r 个独立解 向量。 这是 ξ, 读音是 xi,就像 taxi。 这是表示 C 的希腊字母,是这些 特征结构中的一个。 经过书写和转置, 结果看起来就像这样。 对于每个输入, 对于每个 λi, 有多少输入, 就会得到多少这些 特征结构。 因此, 可能会相当多。 您要做的是, 将它们全部集合在 一个巨大的矩阵中, 然后为它们选择向量。 我来演示一下过程。 第一步是确定所有 这些特征结构向量。 对于每个 λi, 将会得到其中 r 个向量。 r 是输入的数量。 因此,您可能 已经得到了很多 这些向量。 然后,您需要 为每个 λi 将它们全部 集合在一起, 集合在一个这样的巨大矩阵中。 比如,若一个 系统有 10 个输入, 则每个 λi 会给出一个包含 n 个分块的矩阵。 每一个 λi 都是。 于是,您得到了 n 个 λi。 这是一个特征值选择, 将会为您提供 r 个特征结构。 它们全部集合在一起, 位于右侧 这里的矩阵中。 请记住,您还有另一个... 无论其中多少个。 您有其中的 n 个。 您要做的是,将所有 λ 的 所有特征结构集合起来, 然后将它们放置在 一个更大的分块矩阵中, U(λ1)、U(λ2),一直到 U(λn)。 此时,这是一个 巨大的矩阵。 但看一看它的结构。 结构类似这样。 这里有这些上部行, 其中 n 行 包含这些向量 ξ, 来自这里所有 这些 ξi 向量的集合。 然后,下分块 向量相同, 但是 K 中有一个将会 分解的公共项。 因此,我们所做的是, 利用上分块和 下分块之间的这一关系, 得出该系统的 K。 因为您可以 这样重写低分块, K 会分解出来。 您是这样做的。 查看下分块, 并且将 K 分解出来。 然后要做的是, 对于左侧每个特征值, 选择一个列。 从这里的 矩阵中,其中包含 r 个单独的 特征结构, 从中选择一个。 一个列。 然后转到右侧, 查看第一个分块, 选择同一列。 从那一个选择一列, 从那一个选择一列。 但是,它们是同一列。 如果是这里 左侧中的第三列, 那么在那一个中, 也必须是左侧第三列。 您需要对 该矩阵中的每个分块 都这样做。 该矩阵中的 每个分块都是如此。 我将这些 矩阵称为 G 和 F。 它们的维数是 n x n 和 r x n。 K 在这一点上是 未知的,只是您知道它的大小。 它是一个 r x n 矩阵。 但我们想知道它是什么。 所以我们的做法是, 对它进行求逆,然后在两边与它进行 后乘。 现在,K 就是 F 乘 G 的负一次方。 如果您做得很好, 从其中每个矩阵 选择了列以构建 尽可能正交的 G, 那么就 有可能对它求逆。 它将具有良好的 正交性和可逆性。 此外,设计 也会尽可能得好。 所以,您要做的选择是 其中每个分块的列。 您需要尽量让它们正交。 这就是 特征结构配置方法。 这将会给出 K。 现在,我意识到 其中有很多细节, 尽管只有五步。 它之所以看起来复杂, 是因为这是 您第一次看见它。 当您看它 3 次之后, 它就会失去很多神秘感。 而当您看它 10 次之后, 就会觉得 它没有什么大不了。 在这一点上, 我想要演示一下。 因此,我想要快速 过一下特征结构配置。 选择要尽可能正交的列。 这样做有很多原因。 但基本而言, 您可以从中获得更好的 性能。 现在,为了求解出 这些列中哪些是 正交的,您首先 需要将它们归一化。 因为只有这样 才能评估它们。 您需要将每个 特征结构的元素 都除以它们的 两个范数,以便将它们 归一化为长度 1。 然后,您要做的是 对它们进行点积。 即所谓的向量内积。 通过所有选择, 您会构成所有列的内积, 在此过程中, 您要尽量将点积和 最小化。 当您选择最小 [听不清] 时,很快就会 看到它。 由于只有一个输入, 所以我无法将它应用于 双质体系统。 特征结构配置方法 适用于多输入系统。 因此,我想要使用 一个复杂的好系统。 还有什么比飞机更好呢? 这不是世界上 最迷人的飞机,但它至少 可以说明飞行 动力学模型是如何 构建的。 它们本质上是八阶, 但方程通常 分为两个独立的 四阶集。 其中一个 决定着纵向运动, 另一个会 为我们提供横向动力学。 飞行器运动的 横向动力学是 它的侧滑、 滚转率和偏航率。 这些是从一边到 另一边会发生的。 总结一下,现在有这些 u 轴、v 轴和 w 轴,分别是上下、 前后和左右坐标。 不过还有 旋转轴 v、w 和 u, 其中 v 是侧滑、 w 是上升速率, 而 u 是前进速率。 这些都是速率。 现在,我们将集中精力, 使用数字控制器为这类 系统设计一个 横向动力学反馈 控制系统。 我们需要知道 v、p、r, 还需要知道一点, 即滚转角。 滚转率是 滚动角的导数。 模型就是这样构建的。 系统的输入... 差点忘记了。 有两样东西: 舵角和副翼角。 您可以看到 这两者将如何影响 机器的左右飞行路径。 因此,输入是 舵角和副翼角。 状态是 p、r 和 v,以及 φ, 即 p 的积分。 因此,由于有 两个输入和四个状态, 您已经知道 反馈矩阵的维数, 即 2 × 4。 我用来描述 此问题的飞行器最初是在 20 世纪 60 年代研发的。 它是第一架 超音速喷气式战斗机。 它被称为 “十字军战士”飞机。 制造商是一家 名为 Vought 的公司。 我之所以选择它, 是因为 NASA 在 1972 年 得到了一台,然后 他们安装了我在 昨天的研讨会上 描述的自动增益控制计算机。 就是控制阿波罗 11 号任务的那一个。 它用螺栓 固定在上面,用做了 飞行器上第一个 电传操纵系统的试验台。 电传操纵 意味着取消了 机械联动装置, 比如电线、操纵杆之类。 类似情况。 唯一的联动装置 存在于飞行员与 飞行 [听不清] 之间,是一种电子装置。 这里有一个数字控制器。 现在,飞机的这一部件... 这架飞机绝对是 有史以来飞行过的最危险的 飞机之一。 它存在 非常明显的低速偏航 不稳定性,这意味着 在降落到 航空母舰之类上时, 它的机头会习惯性地 指向与进入时 不同的方向。 您只能碰运气, 希望在您接触甲板 那一刻,它恰好指向 正确的方向。 另一方面,它极其强悍。 它是一架战斗机, 本来就是要以高于音速的 速度飞行。 因此,它的功率 重量比让人难以置信。 它是为在航空 母舰上降落而打造的。 有时,您会看到它们的 机翼像那样折起来。 类似情况。 因此,可以在 小型航空母舰甲板上, 甚至大型航空母舰 甲板上尽可能承载更多。 有几项记录的案例, 称有人在起飞前忘了 将机翼放下来。 不过,这家伙非常强大, 它可以起飞, 飞一圈之后仍然 可以相对 安全地着陆,然后 飞行员爬出 座舱抱怨说, 他的飞机 今天有点迟钝。 它有足够的实力做到这一点。 还有很多其他故事。 死亡率差不多 是每架飞机一人。 这并不是说 它们经常撞机。 而是当他们在 航空母舰 甲板上转动它时, 进气口恰好位于座舱的 正下方。 它会将把人吸入前部。 他们过去称它为“鳄鱼”。 它们过去 称它为“短吻鳄”。 它以前真的是很差劲的飞机。 它会飞。 它的确充当了 第一个电传操纵飞机系统的 试验台。 我将向您展示 它是如何进行设计, 从而控制这架 F8-C 的横向飞行动力学的。 C 是为完成所有 这些工作而给予 NASA 的那一架。 这些是飞行动力学。 现在它的非线性很强。 您需要取一个操作点, 一组特定的 飞行条件,并对其进行线性化。 这就是横向 飞行动态矩阵的 样子。 A 矩阵和 B 矩阵就像是这样。 这是状态向量。 这里是 输入控制,副翼和 舵角。 请说。 [听不清] 我会建议, 这其中有大量实证 工作要做。 我不认为人们坐着 就完成了这架飞机的建模。 我想他们 做了很多测量工作。 我不十分清楚这些 数字是如何得出的。 我只是将数据拿来使用。 但是说这不是 纯理论,那么我表示怀疑。 [听不清] 是的。 [听不清] 这是控制工程师们 经常说的,不是吗? 给他们一个问题, 他们会说,给我模型。 实际上,大多数时候, 拥有模型就是一半 问题。 总之,我们有了 可供使用的模型, 因为这是控制研讨会, 我也有教程, 我们得到了模型。 下面我们来执行教程。 我们开始吧。 不止一本 教科书中存在 关于此问题的实际描述。 其中之一是 Brogan。 这是 Brogan 教科书中的一个问题。 我将在结束时推荐 Brogan。 我将展示 在哪里可以得到它。 但是,我并没有发明它。 它是一组真实的数据, 首先会为这些矩阵 建模。 在为任何系统设计 任何控制器之前, 我们应该做的第一步是, 检查实际是否可能控制 该系统。 这一步不是非做不可, 但如果不可能控制, 后面就会浪费时间。 从现在开始,我们将 运行一个可控制性检查标准, 以便检查该系统的大小。 在本例中, 这是一个四阶问题。 检查可控制性 矩阵是否有 n 秩。 在本例中, 它的秩为 4。 很高兴,它是可控的, 因此我们可以继续。 它是一个 我们想要实现的 离散时间控制器。 它位于 5Hz 的问题声明中。 非常快的采样率。 首先,我们要做的是, 将系统矩阵离散化。 就是这样。 我们已经为 5Hz 采样率完成了这项工作。 现在,我们需要 指定一些特征值。 问题中已经给出它们, 它们是连续时间特征值。 我们需要将它们 转换为该等效离散时间。 因此,我们使用 e^f 乘以 t。 t 是 0.2。 它是 e 的 λt 次方。 这就是我们最终 会得到的离散时间。 用特征值表示的离散时间。 您同意吗? e 的 ft 次方,只需要 在每个选择的 s 中插入 t。 这会给出等效特征值。 -2、-5、-8、-10 是指连续时间 系统特征值选择。 在这些情况下, 我们想要闭环 特征值,它们是 正实数,但小于 1。 它们是正实数特征值。 现在,我们要做的是 找到特征结构,然后 建立那些长分块矩阵。 首先,我们要做的是 找到这个... 我将转到这张幻灯片, 然后,您就会 了解它们与实际解的 关联。 好的, 这就是我要的幻灯片。 首先,我将在 这里构建该矩阵。 λi - A 是第一个分块, 而 B 是第二个分块。 然后,我将会 得出它的特征结构。 这就是下一段 教程中将会介绍的内容。 λi - A, λi - A,现在是 B, 因为它是一个 离散时间系统。 B。这是该部分 其余部分的矩阵。 我要寻找与之对应的 特征向量。 这些特征 向量属于该矩阵的 零空间。 因此,我将使用 null 命令获取它们。 有其中四个。 我们来将它们构建出来。 在此期间, 您会发现其中每一个 都有两列。 我有两列。 这是一个 特征结构,那是一个 特征结构,以此类推。 有多少输入, 就有多少列。 它是一个双输入系统。 现在,我们要做的是 将它们全部组合到一个 名为 U 的大分块中。 再次回到演示 文稿。 现阶段, 我们已经全部得出它们, 然后我们将它们 全部放入这个大型 U 矩阵中。 这是本教程的下一步。 我们不会 改变其中任何矩阵。 我们要做的是, 将它们装入一个巨大的矩阵中, 其中包含 8 列, 因为有四个状态。 有四个状态和两个输入。 所以有 第一个特征结构矩阵。 第二个、第三个。 然后是下面第四个。 现在我们有 U 矩阵。 现在我们要 利用这些矩阵的列 之间的结构关系。 因此,接下来 就是要做这一切。 您将会利用结构关系。 您知道该矩阵,因为它是 上面的分块集。 您知道该矩阵,因为它是 下面的分块集。 现在我们需要选择列。 我将向您展示如何操作。 首先,我将分离出 上四行和下两行。 因为上四行是 ξ 矩阵,而下面的行是 [听不清] 矩阵。 它们将会是 我们要选择的 [听不清] 列。 然后,我们要做的是 为它们 选择相应的列。 但是在此之前, 我们需要找到其中 最正交的列。 这并不容易。 我会演示将会如何做。 我们已经有八列。 它们排列成四对。 每个对都 来自不同的特征值。 从每个对中, 我们都要选择一列。 因此,第一对中 一列,第二对中一列, 以此类推。 但是每次 选择一个列时, 我都要确保 它与所有其他列 尽可能正交。 这并不容易, 因为当我从第一个对中 选择一列, 从第二个对中选择一列时, 它们是正交的。 然后我从 第三个对中选择一列, 我必须确保 它也与其他两个列 正交。 看到了吗? 不止是要与其他 [听不清] 之一正交。 是的。 您需要将 它们全部解出来。 因此,我们 首先要做的是, 将所有选择全部归一化。 我已经给出这些 列编号:v11、v12、v21、v22。 每个对代表一列。 现在我要将 这些向量归一化。 这就是这里所做的一切。 好了。 我已经全部完成归一化。 这些就是全部 归一化后的向量。 现在,我要做的是...看, 也许有一种数学方法 能够以最优的方式完成, 我不知道是什么。 我刚才费大力气 完成了该过程, 尝试了所有可能的组合, 在本例中选择了 v11、v21。 对于第一对中的第一列, 以及第二对中的 第一列这一选择, 这二者的点积是什么? 将它加到 v21、v31 的点积中。 将它加到 v31、v41 的点积中。 您会得到一个数字。 这意味着对于该选择, 我得出了一个数字。 该数字越小, 这一特定的四向量 选择就越正交。 我已经为所有 可能的排列完成这一操作 [听不清]。 在底部,我将根据最小的 点积和,挑选出 最正交的一个。 索引 10。 这是点积和。 对于任何对, 点积的最大值可以是 1。 如果有两个 归一化后的向量相互 重叠,您会得到 1。 如果它们 彼此正交,最小的值 则为 0。 因此,1 是 最小的 4 点积选择。 它们可能都是 0.24。 它们可能很大, 而其余的则非常小, 无论是什么。 但它是第十个, 即 1、2、3、4、5、6、7、8、9、10。 我想我可以读到。 它是 10。 它是第一对的第二列, 第二对的第一列, 第三对的 第一列,无论是什么。 我要读出来, 是 2、3、5 和 8。 我选择了该对。 我要从这些 矩阵中的每一个选择这些列, 然后形成 G 矩阵和 F 矩阵。 这就是操作过程。 现在 MATLAB 中有了 F 矩阵和 G 矩阵。 我需要做的是... 因为 G 是 4 × 4 矩阵, 而且它的列尽可能正交。 希望它完美可逆, 不会遇到 任何数字问题。 我可以对其求逆, 对其进行后乘, 然后得出 K。 下面我们最后一步就这样做。 我们有 K 矩阵, 希望它会生成 令人满意的飞行动力学。 [听不清] 有两行, 因为是双输入系统。 它有四列, 因为它是四阶系统。 下面我们继续使用它。 我们刚才已经验证, 这一增益选择的确 会产生正确的特征值。 请记住,系统 矩阵是 Φ-ΓK。 我们要解出特征值。 在这里,我只是 重复已经选择的 特征值。 它们没有什么独特之处。 您不知道它们是什么。 这是闭环系统的特征值。 我们来运行一下。 我们应该得出... 尽管顺序可能不同, 但期望的 特征值确实会出现在 该 K 选择的特征值 列表中,这很好。 该 K 选择 并不是唯一会给出 正确答案的 反馈增益矩阵。 还有其他许多这样的工具。 但是,当我们 关注 [听不清] 性能时, 这一增益选择将会 提供最好的性能。 原因是什么? 原因在于这些特征值 最正交。 闭环特征值是最正交的。 因为特征值 将会告诉您 瞬态响应和 [听不清]。 它们会告诉您稳定性。 但是对响应形状 做出贡献的正是这些 特征值。 因此,K 选择不同, 对应的闭环 特征值也不同。 在这一点上, 我们 [听不清] 计算练习 是否基于输入矩阵? 输入矩阵和系统矩阵。 [听不清] 是的。 [听不清] 计算排列 [听不清] 我最终得到了 最好的情况...首先, 它不仅依赖于 B, 而是依赖于 A 和 B, 依赖于 γ 和 φ。 我们之所以最终得到了 最佳排列, 是因为我们选择了 最正交的特征结构集, 因为我们 检查了每个选择的 正交性。 每个选择。 是的。 是的,这是关键步骤。 [听不清] 说实话, 它是看起来复杂, 但只是遵循一组步骤。 就是这样。 它是一个过程。 实际上并不很难。 它 只是第一次看到它时, 看起来很难, 因为像是有很多 东西在里面。 现在我要 继续下去,通过 实际运行仿真进行检查。 我将会 比较补偿响应和 未补偿响应。 记住,这是一架飞机。 飞机是复杂的东西。 现在还没有输入。 我所做的就是 计算它的初始条件 响应。 我将把滚转率 绘制为输出与时间的曲线。 我将会为补偿及 未补偿的 [听不清] 响应执行 此操作。 因此,我直接运行 这个脚本,然后解出 [听不清]。 现在,您可以猜出 哪一个是未补偿的,对吗? 这一个是未补偿的。 这是初始条件, 您不能查看稳态, 然后从中 得出任何结论。 但是您可以 查看瞬态响应, 可以看到并不是很好。 但这一个 可以满足您对于 包含四个 实数特征值的 特征值选择的期望。 这是又好又快的响应。 它肯定是 比那一个更好的 瞬态响应。 这里是第二个教程。 我认为这更能说明问题, 因为我这里所做的 完全遵循我前面演示的 相同过程。 所以,我不会重复细节。 我们创建了模型。 我们将它离散化。 我们选择了一些 特征值并将其离散化。 然后,我们经过 这一漫长的过程, 确定了特征值是什么, 包括做出这种正交选择。 记得吗,我用大锤方法 找到了最正交的选择。 我以前选择了最小值。 现在,我将演示 选择最小正交时 会发生什么。 不对。 我要演示的是 除 1 外的最小正交。 原因是, 如果选择最小正交集, 便无法再对它们求逆。 它在数值上不够 稳定,无法进行求逆。 我必须回退一个, 因此选择略小... 略大的正交。 本来我想要选择 列 1、3、5、7。 但这不能求逆,因此 不得不选择 1、4、6、8。 因此,这里是 最佳增益,而这里是 最糟增益。 请记住,它们将会 提供相同的特征值, 但性能仍会有所不同。 下面我们 运行一下,看看底部 会弹出什么。 它仍然稳定,因为 特征值仍然位于它们 应该处于的位置。 但是蓝色的是响应, 是最佳特征值、最好 特征结构选择的 初始条件响应。 绿色的表示最糟特征结构 配置。 这就是确保 特征结构选择 尽可能正交的 动机。 我很快就会 回到这个问题上来, 因为我方便地 选择了一个所有 目标特征值 都是实数的 案例。 如果它们不是实数, 如果您出于某种原因, 恰好想要一个 复共轭特征值对, 那么在做出选择时需要 谨慎一些。 因为您最终 可能会得到一些 传播到 K 中的复值, 并且无法实现这些增益。 因此,如果您想要复共轭, 那么您需要做的是 确保在选择中表示 实部和虚部。 因此,当您开始选择列时, 您应该从 一个中选择实部, 然后从下一个 分块的同一列中选择 虚部。 您可以选择 这里的第一列。 必须是这里的第一列。 您的选择不像 之前那样灵活, 因为您要在复共轭对中 进行操作。 我想用“十字军战士” 战斗机项目的 形式快速演示一下。 这与之前是相同的。 唯一差异在于, 现在我要选择 一个复共轭特征值对, -3 ± j3。 下面我们快速浏览一下, 您将会明白我的意思。 有一些我所寻求的特征值。 我们只需要 再次完成这一过程。 但是在此期间, 我需要从 F 和 G 的 对应列中 选择实部和虚部。 下面我就这样做。 好了。 现在,G 矩阵完全是实数。 我将会取实部或虚部。 它将会反转。 检查一下特征值, 它们正位于需要它们处于的位置。 它们没有在 需要处于的位置,不是吗? 有 -3 ± j3, 但是 它没有完全 解出来,不是吗? 4.5. 看一看这里。 [听不清] 不,我认为 [听不清]。 这里出差错了。 很抱歉。 我会弄清楚, 然后给您发送教程。 您也可以通过 电子邮件索要教程。 我真的很抱歉。 我不大清楚出了什么错。 不,我认为不是这个原因。 [听不清] 我认为不是... 那样一来顺序将会不同。 但是,特征值仍然 不在它们应该处于的位置上。 应该是 -3 ± 3, 等一下。 说得对。 说得对。 非常抱歉。 说得对。 您完全是对的。 [听不清] 我在想什么? 是的。 所以,原始特征值 位于 [听不清]。 您完全正确。 谢谢。 是的。 这是当您 将它们转换为 离散 [听不清] 后的期望特征值。 抱歉。 我不大清楚 为什么漏掉了它。 这些是实际特征值, 是相同的。 只是顺序不同。 谢谢。 谢谢您的回答。 是的,没错。 是的。 [听不清] 这与您采用 根轨迹法, 即复共轭对时,可能的选择 相同。 您可能想要 更短的上升时间。 为了实现它, 您可能准备 忍受一些振荡, 但过冲或下冲不是太差。 我将要做的是, 快速重新 做一遍我前面在选择它时 所做的事情。 在本例中, 由于存在复共轭 特征值, 因此现在有一点下冲。 与之前的结果相比, 它的收敛速度更快。 但存在这些振荡, 或者有一点我们可能认为 可以容忍的下冲。 这就是基本原因, 即尽可能快速地给它 响应。 为什么您会 为了其他原因而去做呢? 随便什么都可以。 这问题很好。 好的, 让我们回到教程。 抱歉,回到演示文稿。 现在,在设计了 反馈矩阵之后, 我们有一些 方法将会考虑 单输入情况 或多输入情况。 接下来要 将我们的注意力 转向输入矩阵 M 的设计, 这也是我们 能够向系统引入基准 输入的方式。 同时实施 系统的稳态属性。 尽管脚本中包含, 但在继续往下操作 之前,我想要提醒一下, 连续时间系统和 离散时间 系统的稳态是不同的。 在连续时间情况下, 稳态下 x 点 = 0。 而在离散时间情况下, x(k + 1) = x(k)。 这将很快回到 后面的内容。 现在看它的 设计方式,请看, 左侧是 我们要实现的 实际控制器的图表。 我们已经设计了 反馈矩阵,控制器是 Nv - Kx。 因此,我们现在需要设计 N。 但在设计 N 时, 如果我们能够像这样 将 N 分离到两个 分块中,将会更加方便。 现在,要让自己确信 这个等同于这个。 右侧的图等同于 左侧的图,因为 U = NuV + K[NxV - X]。 就是这样。 现在,有两个项涉及 V。 因此,您会得到 [Nu + KNx]v - Kx。将它与刚才 写下的方程做比较, 二者相同, 只是 N 被 Nu + KNx 所取代。 我们已经知道 K。 所以我们所做的一切 只是稍微重新绘制一下。 这两个图表是等效的。 但事实证明将会容易很多。 这些方法 涉及用这种形式 重写输入矩阵, 然后进行设计。 我们要做的是, 选择这两个分块, 比如这里的稳态 Nx 分块 强制使这儿 与状态向量的稳态 相同。 当从一个减去另一个时, 就会通过反馈 增益矩阵得到 0。 这个 0 是 Nx 的工作。 然后,Nu 的工作是, 不论您在这里需要 什么控制输入, 都强制该输入 保证 Yss 在稳态下与 Vss 相同。 现在,您可以用方程 形式将它写下来。 就是这里。 对于连续时间相同, 左侧将会得到 0, 因为在稳态下 x 点 = 0。 稍后我将会 回到离散情况。 因此,0 = AXss + BUss。 Yss = CXss + DUSss。 由于我刚才所说的 关于这两个 分块矩阵 Nu 和 Nx 的内容, 您希望选择的 Nx 与 Xss 相同。 很好。 Nx × Xss = Xss。 在这种情况下,这是 Xss。 那是 Xss。 您会得出 0 经过 K。 这就是 Nx 所需要的。 Nv 呢? 要这样选择 Nv, 以便 U 使 5 等于 V。 因此,您会得到 Nu × V = Uss。 您还需要知道 另外两件事,其中之一我已经 说过是状态向量的 稳态要求, 即您需要使 Yss 在稳态下等于 Zss。 这样做的主要原因是, 您希望当瞬态消失后, 输入和输出相同。 我们可以这样做, 以便插入这四项, 其实将三项 插入系统方程对中。 我们将把 Xss 替换为它、Uss 替换为它、 Yss 替换为它。 您将会看到, 现在一切都用 Vss 来表示,即输入。 这就是我们得到的结果。 很高兴的是,Vss 现在 会从所有地方抵消, 我们只会 以方程形式得到该结果。 因此,将它抵消之后, 我们会得到 0 和 i。 A、B、C、D。 您可以得到 ANx + BNu。 ANx + BNu。 还有 CNx + BNu。 CNx + BNu。 这就是 我们以方程形式得到的。 看出其中的逻辑了吗? 您选择了 Nx 和 Nu 来做这些事情。 我在前一张 幻灯片中告诉过您。 当时只采用了替换方法。 一切都用 Vss 来表示。 最终会得到这个方程。 我已经在这里 用矩阵形式写下它。 现在,我们离 答案很近了。 因为我想知道 Nx 和 Nu 是什么。 如果我知道, 就能够立即工作, 因为我知道 它们与 N 的关系。 我已经得到 K。 因此,只要知道 Nx 和 Nu 是什么, 几乎就会实现目标。 如何才能得到呢? 我需要对这个 矩阵求逆,并且两边都与它进行 前乘。 求逆后的 ABCD 矩阵 将为我提供 Nx 和 Nu。 我知道它们的维数, 因此,我可以提取分块, 然后直接在这个 公式中用来获取 N。 就是这样。 非常简单。 因为您知道 A、B、C、D 是什么。 您知道它们的维数, 因此知道 0 和 1、0 和 i。 然后,只需将这些 Nx 和 Nu 的结果 插入公式中, 就可以给出 N。这就是具体做法。 现在,离散时间 略有不同,但这只是 因为您可以在 稳态下去除状态 方程的左侧。 即 Xss(k + 1) = Xss(k)。 您最终得到的结果是, 左侧这里的 Xss 乘以 Nx。 然后,您可以将它 带到右侧,以便使其为 0。 一切都用 Vss 表示,全部以相同 方式抵消。 逻辑完全相同。 唯一的区别 源于这个单位矩阵, 这里有一个单位矩阵。 这是唯一的区别。 这是连续时间和 离散时间 [听不清] 的 少数差别之一。 [听不清] 这个问题非常好。 恐怕我没法回答。 我从来没 遇到过它不是的情况。 但是,或许有一个 检验它是否可逆的测试。 也许有一些可逆的情况, 但恐怕我 不知道是什么情况。 是的,说得好。 很抱歉。 好的,下面我们 在教程 7.5 中 看一下它的实际运行。 我们将返回 双质体控制系统。 我们将要做的是, 在设计了反馈增益矩阵的 情况下,设计 前馈矩阵以实现 0 稳态误差。 这听起来并不难,对吗? [听不清] 好的。 我们再次开始。 看上去像是 我们要为已经 得出的增益矩阵 构建系统模型, 然后在我们 一直做到现在的 初始条件下进行测试, 即轻微压缩。 我们在这里 要做的是,检查 N = 1 时 系统的阶跃响应。 因此,在这里 我们要形成闭环方程, 但我们假设不用费心 在稳态矩阵中进行设计。 我直接在这里放一个。 当然,它的稳态 将会有一点差错。 因此,这是 未补偿的阶跃响应。 直接生成阶跃输出, 这将为我们 给出 y2 在阶跃 y1 上的 位置。 这就是会得到的结果。 因此,它处于反馈 控制之下,但未进行补偿。 稳态出错。 您可以看到, 它有正确的特征值, 这是因为 我们设计得很好, 20 秒内平稳响应。 它会在 20 秒内 稳定下来,但稳态错误。 我们现在 要做的是计算 我说过的矩阵, 即 Φ 减去右上 分块 γ、φ、D 中的 i。 该矩阵就是幻灯片 底部这里的这个矩阵。 下面我们形成该矩阵。 就是这个。 现在,我们将会使用它。 Ibar 将会是 我们将会得到的 0 I 矩阵。 我们将对 M 矩阵 求逆,然后与它相乘。 这会给我们 包含 Nx 和 Nu 分块的 矩阵。 就是这个, Nbar。 它们现在 看起来更方便,是 0 和 1。 然后,我们 只需要提取分块, 因为我们 知道它的前四行 将会包含 Nx。 底部这一个 将会包含来自 分块的 Nu。 我们将它们 直接插入公式中, 然后得出 N 是多少。 N 结果为 11.75。 下面我们构建闭环系统, 并检查它的 DC 增益,即 1。 顺便说一下,DC 增益 可以告诉您系统增益是多少。 这是一个 很好用、很方便的公式。 您也可以 将其用于传递函数。 这一个将会 告诉您状态空间 描述的增益为 1。 当我们绘制 它的阶跃响应时, 稳态误差已经消失, 而且它具有 相同的动力学属性 [听不清]。 好的, 这就是 输入矩阵的设计方式。 现在,在离散时间和 连续时间两种情况下, 您都会注意到, 我们需要涉及 ΦΓCD 或 ABCD 的 矩阵。 换句话说,我们需要 事先准确 知道这些矩阵是什么, 以便计算 N。 您是否经常 知道这些信息? 答案是从不。 显然,这些矩阵中 将会存在一些误差。 即使不存在, 谁能说随着 温度或时间的推移,矩阵不会 变化? 因此,在稳态 方面存在鲁棒性问题。 此外,您可以在 系统周围使用积分控制 来解决这些问题, 以便自动消除稳态误差。 这与传递函数 方法相同。 当然,这里有一个要求, 截至目前,我们 一直对系统上的 输入和输出数量 非常随意。 我们不能 这样随意下去了, 因为如果要应用间隔控制, 输入数和 输出数之间最好具有 相关性。 否则, 这样检查稳态误差 没有意义。 因此,我们不仅 要求输入数量与输出 数量相同。 R(T) 与 Y(T) 相同。 我们还要求它们 之间相关。 第一个输入 必须影响第一个输出,以此类推。 也有技术 原因,为什么 U(T) 必须与 R(T) 的维数相同, 但此时此刻我 不想讨论这个问题。 如果是这种 令人满意的情况,积分控制 就会通过在 [听不清] 前 添加一个积分器来发挥作用, 积分器的输入是 输出 Y(T) 和输入 R(T) 之间的区域, 将会是连续时间情况。 因此,在本例中, 将会有 M 个... 我认为 应该是 P 个,不对,的确是 M 个, 因为有 M 个输出。 因此,根据定义 P 将与 M 相同。 所以这里有 M 个积分器。 现在,如果之前有 该系统的状态 空间模型, 并且为 N 阶,N 此时整体 系统的阶会增加 N。 因此,整体系统 具有 N + M 个状态。 我增加了系统, 也增加了状态 向量的大小。 设计时需要考虑这一点。 您可以这样做。 这只是 其中的控制器部分。 现在,既有来自 状态向量的反馈, 又有来自输出的反馈。 输出会与基准进行比较, 然后经过积分器。 下面是方程。 我们以前使用过 该控制器,即 [听不清]。 U 涉及 V。因此 V 现在 需要满足这个一阶 微分方程, 其中 R - Y...而 Y 是 CX [听不清]。 抱歉,R - Y。 因此是 R 减 Cx 减 V 乘 U。 现在就得出了 这个微分方程。 您可以这样使用它。 记下这些内容。 您已经 将控制器 U 的方程 插入状态 方程和输出方程中。 还插入了输出方程中。 就是底部这一个。 这是 V 点的方程。 在上一个图表中, V 点等于 r 减 Cx 减 Du。 这是 U。 所以我们将 U 插入进去。 得到了什么? R 减 Vx 减 DMV 减 DK 乘...抱歉,是加 DKX 是的,加 DKX。 是这样。 加 DKX 减 Cx 减 Vn 乘 V 加 R。 您需要这样做。 您卡在了 一个额外 N 状态上。 您要做的是 增大状态向量。 这一过程称为向量增强, 其中需要定义一个新的 状态向量,就是刚才堆叠的向量。 您需要在 V 之上堆叠 X。 因此,新状态向量 就像左侧的 X 点 V 点,以及这里的 XV。 这是新状态向量。 您只需使用 这样的矩阵写下 这三个方程。 因此这里就像 得到了应用积分控制的 一组新系统方程。 这对仿真来说很好。 我们将用它来进行仿真。 但它不适合用于设计。 对于设计,我需要 用略微不同的形式 写下这些方程, 其中需要将 U 与这一切分开。 因为我需要 为控制器而设计。 您可以这样做。 您只需要将它们分开。 系统方程。 以 U 为独立 项的积分方程。 U 在这里。 这是动画, 不起作用 [听不清]。 您可以这样书写。 将 U 作为独立项 写出的该方程对就是 这样。 要确信它们是相同的。 它们是一样的。 现在,您得到了 一个方程对,鉴于它的形式, 您可以应用 刚才所用的任何方法, 比如极点放置 方面的特征结构, 从而确定 K 拔。 这就是我们要 寻找的值,因为 K 拔 对应于一个矩阵, 其中有这些分块 K 和 N。 然后, 找出这个值之后, 只需将其插入 新的系统方程 即可。 继续使用 以前的方法进行设计。 这是系统方程。 这是输出方程。 e 是输入方程。 e 是 0、1 乘 R。 还有一点。 这是连续时间情况。 离散时间情况 同样有点不同。 因为积分器 在积分中就是 这样进行的。 因此,v(k + 1) = r(k) - y(k) + v(k), 因为这里是在累积。 除了它,其他一切 看起来非常相似。 您最终会在 右下分块中得到 一个单位矩阵。 只有这一个差别。 这源于 积分器的作用方式。 现在,让我们为 双质体系统设计 一个积分控制器, 我认为它就在 这里的教程 7.6 中。 我们将会 应用积分控制。 然后,我要做的是 检查被控对象模型 误差的影响。 我要做的是, 故意在被控对象 模型中诱发 一个误差,然后看一下 到底是否会改变控制。 首先,7.6。 我们完全以 相同的方式进行。 首先, 在构建模型之后, 我将会从 前一个教程中选取 反馈增益和输入矩阵。 我知道它们会在 积分控制下发生变化, 但我仍然 使用它们,因为我 想要比较 积分控制和非积分 控制的影响。 我们已经构建了矩阵。 然后,我们要做的是 设计积分控制器。 即上一张幻灯片的 phibar、gammabar。 我们来详细看一下。 我现在要设计的是 这里的一组矩阵, phi 0、-C、B 和 D。 我要在 MATLAB 中 构建这些矩阵,就是这些。 请看,phi zero,-C,1。 Gammabar 是 gamma,-D, 我要构建这些矩阵。 然后,选择一些特征值。 您要小心,因为您需要 比以前更多的特征值。 因为现在 引入了一个积分器, 它增强了状态向量。 因此,如果之前 闭环控制需要 四个特征值, 现在将需要五个。 因为它是单输出 系统,单输入系统。 还有一个 特征值需要考虑。 我将它添加到了 0.2 这里。 它更接近原点。 因此它应该不会对 动力学造成太大的影响。 但您需要再添加一个。 在这里,我们 使用的是阿克曼方法, 使用 phibar 和 gammabar 找出新 K 矩阵 是什么。 有新的 K 矩阵。 这是您需要 注意的情况, 因为 K 矩阵中的一个元素 是 8。 还有一个 9 又 1/2。 但这里有几个接近 100。 还有一个为 35。 这种情况可能需要 引起警惕, 因为元素...控制量 可能会很大。 因此,要注意 这种情况的发生。 现在,我们要做的是, 从这个新分块 Kbar 中 提取新的 K 和 N。 就是这样。 我们将使用 积分控制来计算解。 现在的情况是, 我们知道 K 和 N 是多少。 我现在要做的是, 使用这些矩阵对模型进行 仿真。 好的,这就是具有积分 控制状态方程的闭环, 已经重新设计了 K 和 N, 需要在其中放置控制。 这些就是在这个阶段的操作。 现在,我们 需要检查这些... 这是正确的特征值。 它们看起来非常 [听不清]。 这就是积分控制器的 期望特征值集, 包括一个为 0.2 的值。 最终我们 得出了实际特征值, [听不清] phibar 减 ΓK 就是它。 到目前为止, 似乎一切正常。 现在,我们要做的是, 绘制仅具有输入矩阵控制的 阶跃响应。 因此,不会有积分控制, 只与 N 和 K 矩阵。 这是我们之前做的 积分控制,仅供参考。 就是这个。 0 稳态误差。 这很好。 因为我们是这样 设计的,事先知道这些矩阵 是什么。 现在,我们要 对积分控制器的结果进行 重叠。 现在,绿色 部分是积分控制器。 蓝色部分是原有的。 您会注意到, 这两者之间存在分隔。 为什么? 两者之间为什么存在差异? 稳态是相同的。 显然,我们完全未影响它们。 [听不清] 为什么? 为什么? 并不多。 这样也 会有同样的差异。 [听不清] 不,这里不适用。 我们不会做向量选择。 这适用于多输入的情况。 但在这里,我们 使用的是阿克曼公式 转换器。 [听不清] 否。 不是这个原因。 原因是 其中有另一个特征值。 我们需要 选择另一个特征值。 我们把它放在 靠近原点的 0.2 位置。 不会对它有影响。 但这是 要为此负责的特征值。 [听不清] 通过积分器。 这是特征值。 如果使用 [听不清] 连续时间控制器, 您会发现有同样的分隔。 这就是具体做法。 但是之后,您可能会 看着这些曲线想, 何必这么麻烦? 因为它们都会 带来相同的 0 稳态误差。 我将自问自答, 向您演示 为什么您会想要这样做。 在这里,我已经 重建了一个新系统 矩阵。 它与上一个 矩阵的唯一差别是, 我对其中一个 元素做出了非常小的 更改,只有 0.2。 因此,当我使用 完全相同的矩阵 运行系统, 而不重新设计 K 和 N 时, 可以预计 将会有一些误差。 但当我使用 完全相同的积分 控制器设计时, 我希望能说服您 相信这不会有很大的不同。 我们将重建这些矩阵。 然后,我们要做的是 全力完成这一工作, 并对两者进行比较。 在非积分控制器 情况下,我们得到的是 非常不同的稳态误差。 而在积分控制器情况下, 其中有一个积分器, 并且它是阶跃输入, 基于这样的事实, 结果自动为我们消除了 稳态错误, 因此,稳态性能得以保留。 这源于输入 矩阵中非常小的差异。 例如,如果我向您展示 φ 是什么,就是这个。 如果我向您展示 φ 误差是什么, 这两个矩阵的 唯一区别就在 这里。 左下角 从 0.1783 变成了 0.1983。 所有其他元素 都是完全相同的。 我做的这一 改变非常小。 然而,稳态性能差异 却相当大。 因此,积分控制的 优势是可以摆脱这种 情况。 我们差不多 到第 7 部分了,非常好, 因为已经两点半了, 这个时候我都要 喝杯咖啡休息一下。 下面我们快速测验一下。 为什么状态 反馈控制胜过 输出反馈控制呢? [听不清] 是的。 是的。 您可以完全自由地 将极点放置在复平面中 任何想要的地方。 之所以如此, 是因为状态向量包含 关于系统内部 动力学的所有信息, 而输出向量则不一定 包含。 在状态反馈增益 矩阵中包含大元素 有什么风险? [听不清] 是的。 [听不清] 对。 [听不清] 对。 这些算是 控制量方面的考量。 因为控制 向量 U 为 Nv -Kx。 它是 -Kx。 因此,状态向量 会乘以所有这些元素。 如果它们较大, 可以预计 U 中的值也会很大。 这可能会造成 执行器饱和风险。 但它也可能会 放大噪声和放大干扰。 因此,您要小心这种事情。 最终,当您将开环极点 长距离移动到 闭环极点时,将会得到 大元素。 K 中的大元素 就是这样来的。 状态反馈对 稳定性有何影响? 我想这个问题的 答案有点开放式,对吗? 因为可能影响, 也可能不影响。 会影响吗? [听不清] 可能会,不是吗? 如果您想, 就可以使系统不稳定。 我想我应该 修改一下问题 3。 是的,会影响。 我想我寻求的答案 可能是, 开环系统具有稳定性, 这是由 λi - A 的特征值定义的。 然而,反馈控制是 λi - A + B + BK。

翻到教程第 35 页,我们 从这里开始介绍状态空间控制

内容。

就像我在午间 休息之前提到的,

在下午的课程中, 将会应用今天上午的理论,

第一次真正实施控制。

这是在状态空间 控制研讨会上,

我们第一次 实际实施控制。

时间这么久, 进度有点慢了。

首先,我们将研究

状态反馈的概念。

状态反馈即, 在负反馈循环中使用

状态向量的反馈控制,

而不是使用输出。

您可能需要这样做,

因为有一些非常令人信服的理由。

比如,为了实现想要的

性能,设计人员 使用状态反馈

与输出反馈控制相比,

他们所拥有的 灵活性程度要大得多。

这里有几种实现 状态反馈控制的

方法,

几种设计状态反馈 控制系统的方法。

如果您的系统有一个输入,

那么有几种 相对简单的方法,

可以将极点放置在

复平面的所需区域中。

但是,如果 系统有多个输入,

那么您很快就会发现

自己需要做出选择,

原因就在于 状态反馈环中使用的

反馈矩阵, 实际上您可以找到

会给出正确特征值的 多个不同反馈矩阵。

因此,您需要 就使用哪些反馈增益

做出选择。

而且,它们并不一样。

其中一些反馈增益 会比其他选项带来略好的

性能。

这是因为, 虽然特征值正确,

但特征向量的 总和将会不同。

因此,在多输入情况下,

我将用于反馈 控制设计的方法

称为特征结构配置。

乍一看,这是一个 相对复杂的过程。

但是,当您弄清楚之后,

就会非常简单, 因为您只需要遵循

一组步骤。

不会有很多地方会出错,

但您的确需要 在此过程中做出选择。

这就是特征 结构配置方法

需要我们花时间的地方。

之后,我们会 进行本练习的

第一部分,这部分是为

瞬态响应设计的。

因为我们已经 将极点与闭环

放置在所需的位置。

然后,我们需要 重点关注稳态性能。

这是通常的做法。

您需要设计 反馈增益矩阵,

获得良好的瞬态性能,

然后重点关注 输入矩阵以获得

所需的稳态性能。

昨天,我们讨论了系统的

不同型号。

我们将型号 与输入激励的形式

进行了比较。

我们说过, 对于阶跃输入,

环路周围必须 至少有一个积分器。

我们证实了 积分控制可实现

零稳态误差。

对于状态空间 控制来说也是如此。

您可以采用积分 控制来消除稳态误差。

问题是,这样做

会增加闭环系统的阶数,

原因是每个积分器 都会向状态向量添加另一个

状态。

因此,设计方法 需要考虑这一点。

此外,还有一个相当

重要的流程需要遵循,

以便确保这些状态 及其贡献的特征值

是您想要的。

它在一般概念上

与输出反馈控制相似,

但细节差异很大, 并且要复杂得多。

因此,这就是您在

设计状态反馈控制 系统时最终要做的

事情。

我们今天上午介绍了 由 A、B、C、D 四个矩阵定义的

状态空间系统, 以及输入向量 U 和

输出向量 Y, 还有内部状态向量 X。

状态反馈环路 会经过一个矩阵

K,我将使用这个符号。

它最常用, 由一个固定增益数组

构成,至少 在本例中是这样。

它贡献了一个 R x 1 的输出向量。

这里有一个 N x 1 的向量进入,

这是状态向量。

得出一个 R x 1 向量,它与另一个

R x 1 向量相加, 生成 R x 1 输入,

即对系统的控制。

状态反馈增益矩阵是

会固定系统 瞬态响应的矩阵。

我们通常先设计该矩阵。

有了该矩阵后, 我们就可以将注意力

转向一个输入 矩阵,我将其称为 N。

输入矩阵可以让我们

调整系统的 稳态属性,或者至少

有一个可以控制稳态

输出的输入。

现在有了两个 单独的矩阵 K 和 N。

它们分别 控制瞬态性能和

稳态性能。

为什么要使用 状态反馈呢?

与输出反馈相比, 它能够实现卓越的性能。

[听不清] 系统中的所有动态

信息都在 x(t) 中捕获, 然而,

如果只使用 输出进行控制,

可能会有 一些输出中不存在,

但状态向量中存在的

信息。

因此,这样可以 获得更好的性能。

当然,使用状态 向量的问题是,

您会使用系统

描述内部的一组元素。

这意味着它们可能 出现或不出现在输出中。

通常不会出现。

而且,您可能选择了

无法直接测量的东西。

因此,我们需要 设法获取状态向量,

然后才能应用 状态反馈控制。

这是本设计 第 2 部分要做的,

位于第 8 章, 设计名为估计器或

观测器的算法。

这两个词含义相同。

都会在给定输入 u(t) 时提供状态向量。

有多种方法可以做到,

但我们将使用 线性空间估计器,

其中包含被控对象模型。

这就是我们要做的。

我们将首先重点 关注反馈增益矩阵 K 的

设计。

如果有类似的输入,

如果处理单输入 系统 u(t),这是一个标量,

根本不是向量,

我们可以通过 几种不同的方法,

放置闭环极点。

我们能够手动操作。

有一种简单的代数方法

可以做到, 我将会告诉您,

我会演示一下。

还有一个名为 阿克曼公式的公式,

它会自动执行这部分操作。

这在处理 高阶系统时很有用,

手动过程有点乏味。

通常,这些方法 称为极点放置方法。

就像我说的, 在多输入情况下,

我们会使用特征配置

方法。

设计 K 矩阵之后,

我们将重点关注 输入矩阵 N 的设计,

满足稳态设计规格。

这就是存在 输入矩阵 N 的状态

反馈控制系统的结构。

这里的绿框构成了

被控对象的模型。

被控对象的 ABCD 模型。

与第 5 章开头的 图表相比,没有

任何变化。

我们添加的 两个额外矩阵是,

R x N 矩阵 K, 其中包含反馈增益,

以及 R x P 矩阵 N, 其中包含输入增益。

因此, 系统的新输入 V,

具有维度 P。 P 是确定系统

输入数量的 整数,它可能与 R 相同,

也可能不同。 通常情况下不同。

就像您昨天 在离散时间案例中

看到的, 所谓的系统控制器是

会生成控制量 u(t) 的

公式。

您可以通过检查 看到控制器是什么。

它是 N 乘以 V 减去 K 乘以 X。

屏幕下方的 这个公式就是控制器。

系统和输出方程

与以前没有变化。

是同一个系统。

现在我们有三个方程,

它们定义了状态 反馈控制系统的运行。

我们可以在 前两个方程中插入

第三个方程, 然后得到闭环方程。

就在这里, 状态反馈方程。

这里是 插入控制器的状态

方程。

此时可以 看到两个涉及 x 的项。

A 减去 B 乘以 K。

顺序很重要。

A 减去 BK 是 m x n 矩阵。

现在的输入矩阵 是 B 乘以 N。

这就是整体状态方程。

在上一张幻灯片中, 如果将这一整体简单视为

一个黑盒,从这里

到整体,那么原始 被控对象模型加 K 和 N

现在就是系统的一部分。

这是闭环状态 方程,其中包括 K 和 N。

如果将控制器 插入输出方程,

就会得出 Cx 加 D 乘以 (Nv - Kx)。

因此,输出矩阵 会发生类似的变化,

结果变成 C 减 DK。

仍然是 m x n 矩阵。

抱歉,是 n x m 矩阵。

是 m x n。

可以得出 D 乘以 N 乘以 V。

现在,重要的是,

当您查看新的 状态和输出矩阵时,

等效系统矩阵、

输入矩阵、输出和 传输矩阵是不同的。

请记住,当我们定义 可控制性和可观测性的

属性时,它们 依赖于矩阵 A、B 和 C。

A 和 B 表示 可控制性属性。

它们都发生了变化。

A 和 C 表示 可观测性属性,

也发生了变化。

因此,单凭 被控对象可控制且

可观测这一事实,

并不意味着 在应用状态反馈时,

整体将可以 控制和可以观察。

如果您后期 将其作为一个更大

系统中的子系统, 那么这可能很重要。

例如,当我们 检查可控制性时,

这是具有 A 矩阵和 B 矩阵的

基本被控对象的 可控制性矩阵 P。

当我们替换成 A 减 BK, 作为新的系统矩阵,

BN 作为新的输入矩阵时,

只需要将它们插入

可控制性 矩阵的相同公式,

然后求解。

在状态反馈下,

此矩阵很可能会降秩。

因此,您可能 会失去可控制性。

但通常不会。

实际上,如果 输入矩阵 N 的秩

等于 R, 则它具有满秩。

换句话说,不会降秩。

结果就是这样。

但是如果需要, 这就是计算方法。

同样, 对于可观测性,

[听不清] C 矩阵和 A 矩阵现在不同,

它们会代替 C 和 A

应用到前一个公式中。

您可能会失去 可观测性,因为如果 C

等于 V 乘以 K, 则新的 C 矩阵、新的输出矩阵为 0。

因此,最终可能 会失去可观测性,

很明显。

这是因为 如果输出矩阵为 0,

则什么都不会 一直传递到输出。

因此是可能的。

接下来是离散时间。

除了常用符号差异,

以及用延迟 元件替换积分器之外,

没有其他任何不同。

其他一切都相同,

控制器的应用完全相同。

现在,我要转到

我在第 6 章末尾

描述的双质体系统。

对于给定的 K 值,即给定的反馈增益

元素选择,可以显示出

状态反馈对 系统性能的影响。

请记住,至少 可以说,这种双质体系统是

振荡的系统。

我认为,应用状态反馈

所造成的差异 之大,可能会让您感到

惊讶。

下面我们继续, 在 MATLAB 中创建此模型。

我将使用的 状态反馈增益是这一个。

这是状态反馈矩阵。

它是 1 x 4 矩阵, 因为系统是四阶的。

输入是应用到

质体 m1 的力。

因此,它是四阶 系统的一个输入。

我们在这里 所做的是,首先,

为了进行比较, 我们将重复在教程 6.4 中

完成的初始条件测试。

对我们来说,这确认了

响应的确有明显的振荡。

然后,下一步是

将它离散化, 因为教程称我们要寻找

离散时间控制器,

用 0.2 采样周期 将被控对象离散化。

然后,我们要做的是

必须使用离散时间反馈。

下面我们将被控对象离散化。

好了。

这样我们 得到了离散时间矩阵。

现在,我要对此进行仿真。

为了进行仿真, 我要在 MATLAB 中进行,

抱歉,是 Simulink。

已经为此准备了一个 Simulink

模型,它的结构 与我之前展示的

相同。

它是双质体 系统的 ABCD 模型。

然后,反馈 增益矩阵来自 x,

进入 u。

在此示例中,我假设

输入矩阵没有必要调整。

我还没有关注稳态。

不管稳态。

我们先来看瞬态属性。

当我运行它, 在所有矩阵全部初始化

之后,您可以看到向量

显示为粗线。

在工作区内,会显示

输出和状态之类的内容。

我们可以在 MATLAB 脚本中使用它们。

在下面,我们将在 状态反馈控制下方构建

系统的输出。

我不知道您怎么看,

但我认为这非常震撼,

但愿我能 去除这些滑动要素,

从这个变为了这个。

非常好。

这是一个 不受控制的系统。

我的意思是, 它完全取决于自己的器件。

它的振荡会持续数百秒。

这里有一个控制器,

我们假设 它的稳态已得到处理。

现在这不重要。

但是,它会在几秒 之内收敛于稳态,比如

10 秒左右。

响应很好地呈现指数性。

您或许猜到, 我们为它选择了

实数特征值。

实际上的确如此。

有四个实数特征值。

但是,状态反馈 控制大不相同。

我认为 相当让人惊讶。

我们还可以绘制此状态,

但是我认为在 此阶段并没有什么帮助,

只是这里的红线,即 x3,

是第二个质体的 位置,我们只是通过移动

第一个质体影响了它。

二者之间的 所有相互耦合,

所有这些振荡效应,

都通过应用 反馈控制而被消除。

现在,在我们继续 进行任何设计之前,

我想用几分钟 时间回顾一下

昨天第 3 章的内容,

当时我解释了 复极点和瞬态响应

之间的关系。

记得对于二阶情况来说,

特征方程包含两个变量:

ζ 和 ωn。

极点将用这些变量

表示。

对于复共轭的情况,

极点的位置在, -σ 加减 jωd,

σ 等于 ζ 和 ωn 的乘积。

这可以得出极点的实部。

虚部由 ωd 得出,

即 ωn 乘以 1 减 ζ 平方后的

平方根。

记得它们按照 以下方式出现在阶跃

响应方程中。

σ 决定响应的衰减率,

σd 决定振荡频率。

您可能遇到的 其他术语是 ωn 和 ζ,

它们是原始方程中的

基本参数。

ωn 固定了向量的半径,

即向量从原点 到极点的长度。

而 ζ 通过反余弦固定了

该向量 与负实轴形成的角度。

提醒一下,尽管这可能 在昨天给人的印象

更加深刻, 但这里的图表

显示了在复平面中 移动极点或复极点的

效果。

一般来说, 极点越往左移动,

衰减率就越快, 这是因为 σ 的负值

变得更大。

向上移动极点时,

得出的虚部更大,

而振荡频率变得更大,

这是因为 ωd 变得更大。

这两者都可以 在复平面中看到。

对于离散 时间系统,情况几乎相同,

只是衰减率

与极点和单位圆

原点的邻近度有关。

振荡频率与

绕单位圆的角度有关。

因此,随着我们 绕单位圆越来越远,

振荡频率随之增加。

那么,总的来说, 我们在期望什么呢?

如果我们想要更快的 衰减速度,可以将极点向左移。

如果我们想要 更大或更小的振荡,

可以在虚轴上 上下移动极点,

或者,给予它们一个 更多或更大的虚部。

如果想要更快的衰减,

则在 z 平面中相应地

将它们移向原点, 如果想要更高或更低的振荡,

则将它们绕单位圆

移动。

在轨迹设计中, 我们会使用这些信息,

在复平面中选择

希望能给出 满意响应的极点。

如果我们有二阶系统,

就可以非常 准确地做出选择,

因为只有两个极点。

因此,我们准确地 知道将会得到什么。

但一般来说, 系统有不止两个极点。

可能会有 5、 10 或 100 个极点。

那么该怎么做?

因为所得到的 实际瞬态响应是它们的

组合,所以全部极点

都会对整体 响应做出贡献。

您在根轨迹方面 能做的事情不多,

因为无论做什么,

都是沿着昨天 所用方法中的根轨迹

移动极点。

但是使用反馈控制,

可以将极点 放置在复平面中的任意位置。

因此可以多一些自由, 使它们分开,将主极点

放在您想要的 位置,对于您可能

不感兴趣的极点, 则将它们移动得

更远。

一种非常 可靠的设计方法是,

自己选择一对 主二阶极点,使用它们模拟

具有所需属性的

二阶系统的响应。

例如,如果您的目标是

具有所谓过冲和 稳定时间的瞬态响应,

则应基于二阶系统,

确定您希望极点 在复平面位于什么

区域。

将这些极点 放在该区域,然后力求将其他

闭环极点设计 在更靠左的位置,

以便它们不会显著影响

瞬态响应。

可以说,它建立 在二阶响应的基础上。

在继续往下之前, 基本系统 ABCD 具有

一组极点。

一组将会出现在 复平面中某个位置的

特征值。

我们现在要做的事情,

将会允许我们使用 反馈重新定位这些极点,

以便它们位于 我们想要的位置。

这些极点移动得越远,

反馈增益矩阵 K 中的增益就会越大。

反馈增益矩阵 K 中的增益越大。

这意味, 离散时间系统也是一样。

因此我们借用一下。

如果有一组 基本极点,由 ABCD 矩阵

定义的基本 特征值,或者由离散时间

系统中的 ΦΓCD 矩阵定义,

我想要将这些 极点移远一些,

最终就会 在 K 中得到大增益元素。

因此,将会有 大量的项通过 U

进来。 这很好理解,对吗?

如果要显著 改变系统的性能,

就需要做大量的工作。

u(k) 很可能超过

某些允许的限值。

没错,您能够 想做什么就做什么,

但仍然要 付出一定的代价。

代价就是, 可能会引入大增益元素,

它们会引入大增益。

因此,会有大信号出来。

还有可能会放大

物理系统中的噪声。

理论上这是可能的,

但也有一些实际的 注意事项需要考虑。

准则就是, 将极点放置在 s 平面中

左侧远处位置, 因为这会使它们更快。

但是要注意, 因为通过它感应的

宽带宽也可能最终会

放大系统中的噪声。

增加带宽可能会导致

干扰和噪声增加。

还要记住,正如 我说过的,通过使用

状态反馈将特征值 移动显著的距离后,

会在反馈增益 矩阵中造成大元素,

从长期的 u 向量大小角度说,

这本身可能会带来困难,

这可能意味着 控制幅度更大。

因此,您可能 需要更大的执行器。

这些代价 可能会导致很多再饱和。

会有各种 各样的东西可能出错。

这个时候, 模态分析就可以给予帮助,

因为系统在弱模式、 弱可控模式下需要更加

努力地工作。

尤其是, 当一个或多个 [听不清]

转置向量包含小元素时。

这意味着, 无论您要对该模式做什么,

都很难做到。

您需要付出很多努力。

而您从模态 分解中可以得到的是,

查看 [听不清] 向量

转置元素的范围。

如果在一些

[听不清] 向量中 看到一些很大的数字,

而其他一些向量中的 数字又很小,这可能表示

您需要为一些模式付出

更大的努力。

这就是第一种设计方法。

它称为极点放置。

原则上,它非常简单。

它仅适用于单输入系统。

在本例中, 我们有 K 矩阵,

它是行矩阵, 因为它的输出是

标量。

这是一条细线, 直接进入这里的

B 矩阵。

因此,B 矩阵 将会是 n x 1 矩阵。

然后是剩下的系统。

假设我们 通过传递函数表示

得出了这一可视化。

在这种情况下, D 矩阵为 0,因此在本例中

只有 ABC。

闭环控制下的 系统特征值。

请记住,前面有 λi 减 A。

控制律现在意味着

A 矩阵从 A 变为 A 减 BK。

因此,闭环特征值 位于 λi 减 A

加 BK。

解出它的行列式。

这将告诉我们 闭环特征值的位置。

实际上,这是一个 寻找什么 K 值能够给出

正确特征值的练习。

这就是我们要 设法解决的问题。

这将让我们 将特征值放在正确的

位置。

现在有一种简单的 手动方法就可以做到,只需要使用

代数。

如果我有白板和时间,

就可以做出来, 因为有相应的教程。

或者,有一种自动方法,

该方法包括 使用称为阿克曼公式的

公式, 可以省去繁重的工作。

或者,MATLAB 中 有一个称为 Place 的脚本。

猜猜我们会使用哪一个?

这里是特征值放置定理。

请记住,它适用于 单值、单输入系统。

它有时称为

极点移动定理或谱配置。

首先,您需要确定

自己想要的一组

特征值。

显然,将会有 n 个。

您可以通过 恒定反馈增益矩阵

得到想要的任何特征值。

方法如下。

选择一组特征值。

因此,您已经 立即得出特征

方程。

您已经得出 这个特征方程,

可以展开它的因式。

这样可以 显示这些系数,C0 到

Cₙ₋₁。

Cₙ 始终为 1,

因为实际上 [听不清]

假设不存在其他增益。

因此这是非多项式。

Aₙ 为 1。

在某个位置存在 真实的增益矩阵,

将会得出该结果。

存在 K,它的存在 使得 Δd(λ)

成为该方程的 特征多项式。

这个特征值... 没错,这是另一回事。

还记得昨天我谈到 差分方程,然后谈到

传递函数的时候吗?

我说在微分方程中,

所有系数必须为实数。

这样的结果是,

当您得出多项式的根、

特征方程的根、 系统极点时,它们总是

实共轭或复共轭。

现在,我们采用另一种方法。

这意味着,您最终 想要得到只有实数的

增益矩阵。

您不希望其中有复数。

否则,如何实现它们?

换句话说,您需要选择

一组极点或特征值, 它们要么是实共轭,

要么是复共轭。

这样一来,便可以保证

K 的元素是实数。

如果不同时 有共轭特征值,

等效共轭特征值,

便无法选择复特征值。

这将确保 所有这些 λ 是真实的。

因此, 这些系数也是实数。

手动方法 依赖于将系统转换为

可控规范型。

它的工作 原理非常简洁,

因为只要做到这一点, 其他一切就会变得非常

简单。

请记住, 每个转换函数表示

都有一个 等效可控规范型。

还要记住, 系统矩阵的结构,

除上对角线外, 全部都是 0。

定义特征值的所有分母

系数都出现在底行。

这表示 能够使用它。

因此,在形成 λi - A + BK 矩阵并

求解它的行列式时,

这就是您要求解的。

现在,看一下这一结构,

λi 是一个 乘以 λ 的单位矩阵。

因此,对角线上的 所有元素都是 λ。

这些元素现在 出现在下面这里,

位于该矩阵的对角线上。

-A + BK。

您知道 A 是什么。

-A 是将这些 -1 放在这里。

然后是 B × K,B 很简单,

因为只有最后 一个元素中有一个 1。

因此,将它乘以 K 时,

结果它的底行 将会包含 K 矩阵中的

所有项, 其他项全部为 0。

那么,设想一下。

B 将是 n × 1 矩阵,而 K 是

1 × n 矩阵。

因此,n × 1 乘以 1 × n。

您会从中 得到 n × n 矩阵。

但是,除了 K 元素 出现的这最后一行,

其他全部都是 0。

我们感兴趣的 所有信息都出现在

该矩阵的底行。

这是因为我们 一开始就使用了

可控规范型。

这里是此矩阵的 实际特征值的位置。

您会在底部 计算出这个多项式,

并为 λ 求解它的值。

它们是实际特征值。

懂了吗?

在上一张幻灯片中, 我展示的是您为了获得

此多项式而想要的特征值。

实际得到的特征值是

其中反馈矩阵的增益,

是该多项式的解。

现在,您要做的 只是使系数相等。

这相对简单。

这就是 您得到的和想要的。

例如,您可以看到 cₙ₋₁

与 kₙ + aₙ₋₁

相等。

就是这样。

因为您知道 a、 知道 c。唯一不知道的

就是 kₙ。

然后,实际上 就是要逐项进行。

公式为 c 等于

即cᵢ = kᵢ₊₁ + aᵢ。

大家关注的是 kᵢ₊₁,

因此,我们只取 kᵢ, 并把其他项移到另一边,

即为 cᵢ₋₁ 与 aᵢ₋₁ 的

差值。

对于这两个 多项式中的每个系数,

都要这样做。

最终,您可以解出...

只需要将 i 进行 因式分解,解出...抱歉,

不需要因式分解。

有一些立即 获得的反馈增益

矩阵的增益。

看起来有些琐碎,对吗?

这有相应的教程,

但很遗憾, 需要使用白板,

所以我将跳过,

然后转到阿克曼公式。

如果您带着书的话, 书中写了这一教程,

其实做起来并不很难。

我所作的 只是强化我认为

不证自明的概念。

所以,我将跳过教程 7.2,

转到相应的自动方法,

该方法称为阿克曼公式。

阿克曼公式依赖于几点。

靠近底部的就是阿克曼公式。

它可以直接生成 K 矩阵。

它等于这样。

有一个行矩阵, 长度有 n 个元素,并且以 1

结尾。

因此,它就像 一个转置的 B 矩阵。

然后,取可控制性矩阵,

然后对其进行求逆, 并乘以 Δd(A)。

我来解释一下 这些项有什么含义。

您已经知道 可控制性矩阵。

就是我在 第 6 节中说过的矩阵。

您也知道 Δd 多项式,

因为展开后的期望

多项式集。

下面回到上一张幻灯片,

给您展示它在哪里。

是这一页。

您的期望 多项式方程就是这一个。

阿克曼公式 包含这一期望的多项式

方程。

但不同的是, 它不以 λ 为参数,

而是以 a 为参数。

因此,只需 将 λ 替换为 a。

这是阿克曼 公式中的第三项。

在本例中,结果 产生了一个 1 x n 矩阵,

其中包含 反馈增益矩阵的所有元素。

这是直接 得出的增益矩阵。

因此,我将快速 在 7.3 中对它做出说明。

现在,我们可以将它 应用于双质体系统,

因为该系统 是单输入系统。

我将会应用它,

然后在采用 我在教程 6.4 中展示的

相同初始条件, 评估它的响应。

我忘了我的教程了。

7.3.

好的,第一个 单元格中没有什么新东西。

我们只是要 创建一个系统模型。

这里是具体工作。

第二个单元格中 已经完成所有工作。

我们要指定 一组期望的特征值。

这是我们努力追求的

离散时间实现。

因此,我们选择了 小于 1 且为正的实数

特征值。

它们位于正实轴上。

可以预计, 它们各自都会贡献一个

指数项,因为 0 和 1 之间的

正实轴上的 极点就是会这样。

然后,我们使用 此命令:place。

Place 命令将会 为我们实施阿克曼公式。

您需要为它给出 C、γ 和一个数组,其中包含

您期望的特征值。

它将会带来 反馈增益矩阵 K。

这会为我们做所有工作。

我们来操作一下。

你们当中记得 教程 6.4 的人可能

还会记得,这些数字

就是我们当时使用的 反馈增益矩阵中的那些数字。

您看到了 它们对瞬态响应

造成的变化。

这就是它们的来源。

这就是阿克曼公式。

现在,我们将会 构建闭环系统,

这是一个状态空间系统。

您现在知道 系统矩阵是 Φ-ΓK,

或者是 A-B×K。 现在,我们

不改变 γ, 原因是没有输入矩阵。

我们来完成 闭环状态方程。

现在我们要做的是, 确认特征值的确位于我们

所需的位置。

我们将形成 Φ-ΓK, 然后检查特征值

所在的位置。

希望它们 位于 0.3、0.4、0.6、0.9。

因此,好像 这种方法有效。

现在,我们将绘制 初始条件开环响应,

这是一种振荡响应, 但时间间隔非常有限,

介于 0 到 15 秒之间。

请记住, 该振荡持续数百秒,

我将只查看 初始条件响应中的

前几个振荡周期。

然后,我们将会 在它上面叠加

纠正后的响应, 可以看到差异

巨大。

这就是反馈 控制所带来的惊人

变化。

控制量就像这样。

请看,控制量 真的只是在

前几秒内发挥作用。

但想象一下, 将它们分开或压缩在一起,

然后放开它们,让它们

各自发挥作用。

这很好。

但是,为了阻止 这些振荡发生,

您需要采取的 控制措施是,向右侧...

向质体 m1 的 左侧施加一个力,

这其实只存在于 第一个周期中。

所以要阻止 其他周期累积。

您可以看到, 这就是所发生的事情。

这就是右侧的控制量。

超过三秒左右,

您不需要 做任何事,因为所有工作

到该阶段都已经完成了。

现在,其中一些 增益元素相当大。

实际上,它们并不太糟糕。

最小的一个是 6 和 1/2。

最大的是 19、20。

不算太糟。

如果您的确 有大增益元素,

那么应该 完成的练习之一是,

检查控制量的幅度,

确保它在 某些方面没有过度。

好的,

到目前为止一切顺利。

我们现在知道 如何为单输入系统设计

反馈增益矩阵。

现在,将会 变得更加复杂。

当有多个输入,

或者当您无法 将系统变成可控规范型时,

无论手动极点放置 方法还是阿克曼方法,

都无法使用。

您需要稍微 复杂一点的东西。

接下来, 我将向您演示一种称为

特征结构配置的方法。

在此过程中,

将会要求您 做出一些选择,因为

正如我所说,反馈 增益问题现在有不止一种解决

方案。

谨慎选择 所使用的增益,

会对性能 产生非常大的影响,

而这实际上归结为

谨慎选择特征结构,

稍后我会 定义它们是什么。

为了说明这一点, 我将设计一个具有

一组特征结构的系统,

即好选择, 然后运行它的性能。

然后,对糟选择 执行同样的操作。

性能差异 之大会让您感到

非常惊讶。

接下来,我们将会 使用特征结构配置。

特征结构配置 案例背后的理论如下。

情形。

闭环特征值是

λi - A + BK 这一行列式的解。

如果为真, 您必须至少有一个

向量落入它的

零空间。

还记得我们以前 是如何定义特征向量和特征值的

首先定义 特征值,即 λi - A。

如果有特征值, 则也会有一个特征向量。

所以,您做了 λi - A,

并寻求它的非平凡解。

在本例中, 您必须有一个

与此特征值 关联的特征向量。

您可以这样写,

或者,您可以 将这些项分离出来,

这样就会得到, λi - A 乘以

该向量 φᵢ, 加 BK 乘以 φᵢ,等于 0。

这是一回事。

随后,您可以 用分块矩阵形式来写,

就像这样。

这与它是相同的,

这三个是相同的。

我们都同意这一点,对吗?

右侧这个向量, 因为它是一个向量,

称为特征结构。

其中包含 φᵢ。

它的解类似于 上分块闭环方程中的

特征向量,以及 K

乘以下分块中的向量。

它是特征结构。

我不知道 有多少列或行,

我不知道 有多少行,

列数取决于有多少输入。

对于每个向量, 都有 r 个独立解

向量。

这是 ξ,

读音是 xi,就像 taxi。

这是表示 C 的希腊字母,是这些

特征结构中的一个。

经过书写和转置, 结果看起来就像这样。

对于每个输入, 对于每个 λi,

有多少输入, 就会得到多少这些

特征结构。

因此, 可能会相当多。

您要做的是, 将它们全部集合在

一个巨大的矩阵中, 然后为它们选择向量。

我来演示一下过程。

第一步是确定所有

这些特征结构向量。

对于每个 λi, 将会得到其中 r 个向量。

r 是输入的数量。

因此,您可能 已经得到了很多

这些向量。

然后,您需要 为每个 λi 将它们全部

集合在一起, 集合在一个这样的巨大矩阵中。

比如,若一个 系统有 10 个输入,

则每个 λi 会给出一个包含

n 个分块的矩阵。

每一个 λi 都是。

于是,您得到了 n 个 λi。

这是一个特征值选择,

将会为您提供 r 个特征结构。

它们全部集合在一起,

位于右侧 这里的矩阵中。

请记住,您还有另一个... 无论其中多少个。

您有其中的 n 个。

您要做的是,将所有 λ 的 所有特征结构集合起来,

然后将它们放置在 一个更大的分块矩阵中,

U(λ1)、U(λ2),一直到 U(λn)。

此时,这是一个 巨大的矩阵。

但看一看它的结构。

结构类似这样。

这里有这些上部行,

其中 n 行 包含这些向量 ξ,

来自这里所有 这些 ξi 向量的集合。

然后,下分块

向量相同, 但是 K 中有一个将会

分解的公共项。

因此,我们所做的是,

利用上分块和 下分块之间的这一关系,

得出该系统的 K。

因为您可以 这样重写低分块,

K 会分解出来。

您是这样做的。

查看下分块, 并且将 K 分解出来。

然后要做的是, 对于左侧每个特征值,

选择一个列。

从这里的 矩阵中,其中包含

r 个单独的 特征结构,

从中选择一个。

一个列。

然后转到右侧, 查看第一个分块,

选择同一列。

从那一个选择一列, 从那一个选择一列。

但是,它们是同一列。

如果是这里 左侧中的第三列,

那么在那一个中, 也必须是左侧第三列。

您需要对 该矩阵中的每个分块

都这样做。

该矩阵中的 每个分块都是如此。

我将这些 矩阵称为 G 和 F。

它们的维数是 n x n 和 r x n。

K 在这一点上是 未知的,只是您知道它的大小。

它是一个 r x n 矩阵。

但我们想知道它是什么。

所以我们的做法是, 对它进行求逆,然后在两边与它进行

后乘。

现在,K 就是 F 乘 G 的负一次方。

如果您做得很好,

从其中每个矩阵 选择了列以构建

尽可能正交的 G,

那么就 有可能对它求逆。

它将具有良好的 正交性和可逆性。

此外,设计 也会尽可能得好。

所以,您要做的选择是

其中每个分块的列。

您需要尽量让它们正交。

这就是 特征结构配置方法。

这将会给出 K。

现在,我意识到 其中有很多细节,

尽管只有五步。

它之所以看起来复杂,

是因为这是 您第一次看见它。

当您看它 3 次之后,

它就会失去很多神秘感。

而当您看它 10 次之后,

就会觉得 它没有什么大不了。

在这一点上, 我想要演示一下。

因此,我想要快速 过一下特征结构配置。

选择要尽可能正交的列。

这样做有很多原因。

但基本而言, 您可以从中获得更好的

性能。

现在,为了求解出 这些列中哪些是

正交的,您首先 需要将它们归一化。

因为只有这样 才能评估它们。

您需要将每个 特征结构的元素

都除以它们的 两个范数,以便将它们

归一化为长度 1。

然后,您要做的是

对它们进行点积。

即所谓的向量内积。

通过所有选择, 您会构成所有列的内积,

在此过程中, 您要尽量将点积和

最小化。

当您选择最小 [听不清] 时,很快就会

看到它。

由于只有一个输入, 所以我无法将它应用于

双质体系统。

特征结构配置方法

适用于多输入系统。

因此,我想要使用 一个复杂的好系统。

还有什么比飞机更好呢?

这不是世界上 最迷人的飞机,但它至少

可以说明飞行 动力学模型是如何

构建的。

它们本质上是八阶,

但方程通常 分为两个独立的

四阶集。

其中一个 决定着纵向运动,

另一个会 为我们提供横向动力学。

飞行器运动的 横向动力学是

它的侧滑、 滚转率和偏航率。

这些是从一边到 另一边会发生的。

总结一下,现在有这些

u 轴、v 轴和 w 轴,分别是上下、

前后和左右坐标。

不过还有 旋转轴 v、w 和 u,

其中 v 是侧滑、 w 是上升速率,

而 u 是前进速率。

这些都是速率。

现在,我们将集中精力, 使用数字控制器为这类

系统设计一个 横向动力学反馈

控制系统。

我们需要知道 v、p、r, 还需要知道一点,

即滚转角。

滚转率是 滚动角的导数。

模型就是这样构建的。

系统的输入... 差点忘记了。

有两样东西: 舵角和副翼角。

您可以看到 这两者将如何影响

机器的左右飞行路径。

因此,输入是 舵角和副翼角。

状态是 p、r 和 v,以及 φ,

即 p 的积分。

因此,由于有 两个输入和四个状态,

您已经知道 反馈矩阵的维数,

即 2 × 4。

我用来描述 此问题的飞行器最初是在

20 世纪 60 年代研发的。

它是第一架 超音速喷气式战斗机。

它被称为 “十字军战士”飞机。

制造商是一家 名为 Vought 的公司。

我之所以选择它,

是因为 NASA 在 1972 年

得到了一台,然后 他们安装了我在

昨天的研讨会上 描述的自动增益控制计算机。

就是控制阿波罗 11 号任务的那一个。

它用螺栓 固定在上面,用做了

飞行器上第一个 电传操纵系统的试验台。

电传操纵 意味着取消了

机械联动装置, 比如电线、操纵杆之类。

类似情况。

唯一的联动装置 存在于飞行员与

飞行 [听不清] 之间,是一种电子装置。

这里有一个数字控制器。

现在,飞机的这一部件...

这架飞机绝对是 有史以来飞行过的最危险的

飞机之一。

它存在 非常明显的低速偏航

不稳定性,这意味着

在降落到 航空母舰之类上时,

它的机头会习惯性地

指向与进入时 不同的方向。

您只能碰运气, 希望在您接触甲板

那一刻,它恰好指向

正确的方向。

另一方面,它极其强悍。

它是一架战斗机, 本来就是要以高于音速的

速度飞行。

因此,它的功率 重量比让人难以置信。

它是为在航空 母舰上降落而打造的。

有时,您会看到它们的 机翼像那样折起来。

类似情况。

因此,可以在 小型航空母舰甲板上,

甚至大型航空母舰 甲板上尽可能承载更多。

有几项记录的案例,

称有人在起飞前忘了

将机翼放下来。

不过,这家伙非常强大,

它可以起飞, 飞一圈之后仍然

可以相对 安全地着陆,然后

飞行员爬出 座舱抱怨说,

他的飞机 今天有点迟钝。

它有足够的实力做到这一点。

还有很多其他故事。

死亡率差不多 是每架飞机一人。

这并不是说 它们经常撞机。

而是当他们在

航空母舰 甲板上转动它时,

进气口恰好位于座舱的

正下方。

它会将把人吸入前部。

他们过去称它为“鳄鱼”。

它们过去 称它为“短吻鳄”。

它以前真的是很差劲的飞机。

它会飞。

它的确充当了 第一个电传操纵飞机系统的

试验台。

我将向您展示 它是如何进行设计,

从而控制这架 F8-C 的横向飞行动力学的。

C 是为完成所有 这些工作而给予 NASA 的那一架。

这些是飞行动力学。

现在它的非线性很强。

您需要取一个操作点,

一组特定的 飞行条件,并对其进行线性化。

这就是横向 飞行动态矩阵的

样子。

A 矩阵和 B 矩阵就像是这样。

这是状态向量。

这里是 输入控制,副翼和

舵角。

请说。

[听不清]

我会建议, 这其中有大量实证

工作要做。

我不认为人们坐着 就完成了这架飞机的建模。

我想他们 做了很多测量工作。

我不十分清楚这些 数字是如何得出的。

我只是将数据拿来使用。

但是说这不是 纯理论,那么我表示怀疑。

[听不清]

是的。

[听不清]

这是控制工程师们 经常说的,不是吗?

给他们一个问题, 他们会说,给我模型。

实际上,大多数时候, 拥有模型就是一半

问题。

总之,我们有了 可供使用的模型,

因为这是控制研讨会,

我也有教程, 我们得到了模型。

下面我们来执行教程。

我们开始吧。

不止一本 教科书中存在

关于此问题的实际描述。

其中之一是 Brogan。

这是 Brogan 教科书中的一个问题。

我将在结束时推荐 Brogan。

我将展示 在哪里可以得到它。

但是,我并没有发明它。

它是一组真实的数据, 首先会为这些矩阵

建模。

在为任何系统设计

任何控制器之前, 我们应该做的第一步是,

检查实际是否可能控制

该系统。

这一步不是非做不可, 但如果不可能控制,

后面就会浪费时间。

从现在开始,我们将 运行一个可控制性检查标准,

以便检查该系统的大小。

在本例中, 这是一个四阶问题。

检查可控制性 矩阵是否有 n 秩。

在本例中, 它的秩为 4。

很高兴,它是可控的, 因此我们可以继续。

它是一个 我们想要实现的

离散时间控制器。

它位于 5Hz 的问题声明中。

非常快的采样率。

首先,我们要做的是,

将系统矩阵离散化。

就是这样。

我们已经为 5Hz 采样率完成了这项工作。

现在,我们需要 指定一些特征值。

问题中已经给出它们,

它们是连续时间特征值。

我们需要将它们 转换为该等效离散时间。

因此,我们使用 e^f 乘以 t。

t 是 0.2。

它是 e 的 λt 次方。

这就是我们最终 会得到的离散时间。

用特征值表示的离散时间。

您同意吗?

e 的 ft 次方,只需要 在每个选择的 s 中插入 t。

这会给出等效特征值。

-2、-5、-8、-10

是指连续时间 系统特征值选择。

在这些情况下, 我们想要闭环

特征值,它们是 正实数,但小于 1。

它们是正实数特征值。

现在,我们要做的是 找到特征结构,然后

建立那些长分块矩阵。

首先,我们要做的是

找到这个... 我将转到这张幻灯片,

然后,您就会 了解它们与实际解的

关联。

好的,

这就是我要的幻灯片。

首先,我将在 这里构建该矩阵。

λi - A 是第一个分块,

而 B 是第二个分块。

然后,我将会 得出它的特征结构。

这就是下一段 教程中将会介绍的内容。

λi - A, λi - A,现在是 B,

因为它是一个 离散时间系统。

B。这是该部分 其余部分的矩阵。

我要寻找与之对应的

特征向量。

这些特征 向量属于该矩阵的

零空间。

因此,我将使用 null 命令获取它们。

有其中四个。

我们来将它们构建出来。

在此期间, 您会发现其中每一个

都有两列。

我有两列。

这是一个 特征结构,那是一个

特征结构,以此类推。

有多少输入, 就有多少列。

它是一个双输入系统。

现在,我们要做的是 将它们全部组合到一个

名为 U 的大分块中。 再次回到演示

文稿。

现阶段, 我们已经全部得出它们,

然后我们将它们 全部放入这个大型 U 矩阵中。

这是本教程的下一步。

我们不会 改变其中任何矩阵。

我们要做的是, 将它们装入一个巨大的矩阵中,

其中包含 8 列,

因为有四个状态。

有四个状态和两个输入。

所以有 第一个特征结构矩阵。

第二个、第三个。

然后是下面第四个。

现在我们有 U 矩阵。

现在我们要

利用这些矩阵的列

之间的结构关系。

因此,接下来 就是要做这一切。

您将会利用结构关系。

您知道该矩阵,因为它是

上面的分块集。

您知道该矩阵,因为它是

下面的分块集。

现在我们需要选择列。

我将向您展示如何操作。

首先,我将分离出

上四行和下两行。

因为上四行是 ξ 矩阵,而下面的行是

[听不清] 矩阵。

它们将会是 我们要选择的

[听不清] 列。

然后,我们要做的是

为它们 选择相应的列。

但是在此之前, 我们需要找到其中

最正交的列。

这并不容易。

我会演示将会如何做。

我们已经有八列。

它们排列成四对。

每个对都 来自不同的特征值。

从每个对中, 我们都要选择一列。

因此,第一对中 一列,第二对中一列,

以此类推。

但是每次 选择一个列时,

我都要确保 它与所有其他列

尽可能正交。

这并不容易, 因为当我从第一个对中

选择一列, 从第二个对中选择一列时,

它们是正交的。

然后我从 第三个对中选择一列,

我必须确保 它也与其他两个列

正交。

看到了吗?

不止是要与其他

[听不清] 之一正交。

是的。

您需要将 它们全部解出来。

因此,我们 首先要做的是,

将所有选择全部归一化。

我已经给出这些 列编号:v11、v12、v21、v22。

每个对代表一列。

现在我要将 这些向量归一化。

这就是这里所做的一切。

好了。

我已经全部完成归一化。

这些就是全部 归一化后的向量。

现在,我要做的是...看,

也许有一种数学方法 能够以最优的方式完成,

我不知道是什么。

我刚才费大力气 完成了该过程,

尝试了所有可能的组合,

在本例中选择了 v11、v21。

对于第一对中的第一列,

以及第二对中的 第一列这一选择,

这二者的点积是什么?

将它加到 v21、v31 的点积中。

将它加到 v31、v41 的点积中。

您会得到一个数字。

这意味着对于该选择, 我得出了一个数字。

该数字越小, 这一特定的四向量

选择就越正交。

我已经为所有 可能的排列完成这一操作

[听不清]。

在底部,我将根据最小的

点积和,挑选出 最正交的一个。

索引 10。

这是点积和。

对于任何对, 点积的最大值可以是

1。

如果有两个 归一化后的向量相互

重叠,您会得到 1。

如果它们 彼此正交,最小的值

则为 0。

因此,1 是 最小的 4 点积选择。

它们可能都是 0.24。

它们可能很大, 而其余的则非常小,

无论是什么。

但它是第十个, 即 1、2、3、4、5、6、7、8、9、10。

我想我可以读到。

它是 10。

它是第一对的第二列,

第二对的第一列,

第三对的 第一列,无论是什么。

我要读出来,

是 2、3、5 和 8。

我选择了该对。

我要从这些 矩阵中的每一个选择这些列,

然后形成 G 矩阵和 F 矩阵。

这就是操作过程。

现在 MATLAB 中有了 F 矩阵和 G 矩阵。

我需要做的是... 因为 G 是 4 × 4 矩阵,

而且它的列尽可能正交。

希望它完美可逆,

不会遇到 任何数字问题。

我可以对其求逆, 对其进行后乘,

然后得出 K。 下面我们最后一步就这样做。

我们有 K 矩阵, 希望它会生成

令人满意的飞行动力学。

[听不清] 有两行, 因为是双输入系统。

它有四列, 因为它是四阶系统。

下面我们继续使用它。

我们刚才已经验证, 这一增益选择的确

会产生正确的特征值。

请记住,系统 矩阵是 Φ-ΓK。

我们要解出特征值。

在这里,我只是 重复已经选择的

特征值。

它们没有什么独特之处。

您不知道它们是什么。

这是闭环系统的特征值。

我们来运行一下。

我们应该得出...

尽管顺序可能不同,

但期望的 特征值确实会出现在

该 K 选择的特征值

列表中,这很好。

该 K 选择 并不是唯一会给出

正确答案的 反馈增益矩阵。

还有其他许多这样的工具。

但是,当我们 关注 [听不清] 性能时,

这一增益选择将会

提供最好的性能。

原因是什么?

原因在于这些特征值

最正交。

闭环特征值是最正交的。

因为特征值 将会告诉您

瞬态响应和 [听不清]。

它们会告诉您稳定性。

但是对响应形状 做出贡献的正是这些

特征值。

因此,K 选择不同,

对应的闭环 特征值也不同。

在这一点上, 我们 [听不清]

计算练习 是否基于输入矩阵?

输入矩阵和系统矩阵。

[听不清]

是的。

[听不清]

计算排列 [听不清]

我最终得到了 最好的情况...首先,

它不仅依赖于 B, 而是依赖于 A 和 B,

依赖于 γ 和 φ。

我们之所以最终得到了

最佳排列, 是因为我们选择了

最正交的特征结构集,

因为我们 检查了每个选择的

正交性。

每个选择。

是的。

是的,这是关键步骤。

[听不清]

说实话, 它是看起来复杂,

但只是遵循一组步骤。

就是这样。

它是一个过程。

实际上并不很难。 它

只是第一次看到它时,

看起来很难, 因为像是有很多

东西在里面。

现在我要 继续下去,通过

实际运行仿真进行检查。

我将会 比较补偿响应和

未补偿响应。

记住,这是一架飞机。

飞机是复杂的东西。

现在还没有输入。

我所做的就是 计算它的初始条件

响应。

我将把滚转率 绘制为输出与时间的曲线。

我将会为补偿及 未补偿的 [听不清] 响应执行

此操作。

因此,我直接运行 这个脚本,然后解出 [听不清]。

现在,您可以猜出 哪一个是未补偿的,对吗?

这一个是未补偿的。

这是初始条件, 您不能查看稳态,

然后从中 得出任何结论。

但是您可以 查看瞬态响应,

可以看到并不是很好。

但这一个 可以满足您对于

包含四个 实数特征值的

特征值选择的期望。

这是又好又快的响应。

它肯定是 比那一个更好的

瞬态响应。

这里是第二个教程。

我认为这更能说明问题,

因为我这里所做的

完全遵循我前面演示的

相同过程。

所以,我不会重复细节。

我们创建了模型。

我们将它离散化。

我们选择了一些 特征值并将其离散化。

然后,我们经过 这一漫长的过程,

确定了特征值是什么,

包括做出这种正交选择。

记得吗,我用大锤方法

找到了最正交的选择。

我以前选择了最小值。

现在,我将演示 选择最小正交时

会发生什么。

不对。

我要演示的是 除 1 外的最小正交。

原因是, 如果选择最小正交集,

便无法再对它们求逆。

它在数值上不够 稳定,无法进行求逆。

我必须回退一个, 因此选择略小...

略大的正交。

本来我想要选择

列 1、3、5、7。

但这不能求逆,因此

不得不选择 1、4、6、8。

因此,这里是 最佳增益,而这里是

最糟增益。

请记住,它们将会 提供相同的特征值,

但性能仍会有所不同。

下面我们 运行一下,看看底部

会弹出什么。

它仍然稳定,因为 特征值仍然位于它们

应该处于的位置。

但是蓝色的是响应,

是最佳特征值、最好

特征结构选择的

初始条件响应。

绿色的表示最糟特征结构

配置。

这就是确保 特征结构选择

尽可能正交的

动机。

我很快就会 回到这个问题上来,

因为我方便地 选择了一个所有

目标特征值 都是实数的

案例。

如果它们不是实数, 如果您出于某种原因,

恰好想要一个 复共轭特征值对,

那么在做出选择时需要

谨慎一些。

因为您最终 可能会得到一些

传播到 K 中的复值, 并且无法实现这些增益。

因此,如果您想要复共轭,

那么您需要做的是

确保在选择中表示

实部和虚部。

因此,当您开始选择列时,

您应该从 一个中选择实部,

然后从下一个 分块的同一列中选择

虚部。

您可以选择 这里的第一列。

必须是这里的第一列。

您的选择不像

之前那样灵活, 因为您要在复共轭对中

进行操作。

我想用“十字军战士”

战斗机项目的 形式快速演示一下。

这与之前是相同的。

唯一差异在于,

现在我要选择 一个复共轭特征值对,

-3 ± j3。

下面我们快速浏览一下,

您将会明白我的意思。

有一些我所寻求的特征值。

我们只需要 再次完成这一过程。

但是在此期间, 我需要从 F 和 G 的

对应列中 选择实部和虚部。

下面我就这样做。

好了。

现在,G 矩阵完全是实数。

我将会取实部或虚部。

它将会反转。

检查一下特征值,

它们正位于需要它们处于的位置。

它们没有在 需要处于的位置,不是吗?

有 -3 ± j3, 但是

它没有完全 解出来,不是吗?

4.5.

看一看这里。

[听不清]

不,我认为 [听不清]。

这里出差错了。

很抱歉。

我会弄清楚, 然后给您发送教程。

您也可以通过 电子邮件索要教程。

我真的很抱歉。

我不大清楚出了什么错。

不,我认为不是这个原因。

[听不清]

我认为不是... 那样一来顺序将会不同。

但是,特征值仍然 不在它们应该处于的位置上。

应该是 -3 ± 3,

等一下。

说得对。

说得对。

非常抱歉。

说得对。

您完全是对的。

[听不清]

我在想什么?

是的。

所以,原始特征值 位于 [听不清]。

您完全正确。

谢谢。

是的。

这是当您 将它们转换为

离散 [听不清] 后的期望特征值。

抱歉。

我不大清楚 为什么漏掉了它。

这些是实际特征值,

是相同的。

只是顺序不同。

谢谢。

谢谢您的回答。

是的,没错。

是的。

[听不清]

这与您采用

根轨迹法, 即复共轭对时,可能的选择

相同。

您可能想要 更短的上升时间。

为了实现它, 您可能准备

忍受一些振荡,

但过冲或下冲不是太差。

我将要做的是,

快速重新 做一遍我前面在选择它时

所做的事情。

在本例中, 由于存在复共轭

特征值, 因此现在有一点下冲。

与之前的结果相比,

它的收敛速度更快。

但存在这些振荡, 或者有一点我们可能认为

可以容忍的下冲。

这就是基本原因, 即尽可能快速地给它

响应。

为什么您会 为了其他原因而去做呢?

随便什么都可以。

这问题很好。

好的,

让我们回到教程。

抱歉,回到演示文稿。

现在,在设计了 反馈矩阵之后,

我们有一些 方法将会考虑

单输入情况 或多输入情况。

接下来要 将我们的注意力

转向输入矩阵 M 的设计,

这也是我们 能够向系统引入基准

输入的方式。

同时实施 系统的稳态属性。

尽管脚本中包含, 但在继续往下操作

之前,我想要提醒一下,

连续时间系统和

离散时间 系统的稳态是不同的。

在连续时间情况下, 稳态下 x 点 = 0。

而在离散时间情况下,

x(k + 1) = x(k)。 这将很快回到

后面的内容。

现在看它的 设计方式,请看,

左侧是 我们要实现的

实际控制器的图表。

我们已经设计了 反馈矩阵,控制器是

Nv - Kx。 因此,我们现在需要设计 N。

但在设计 N 时, 如果我们能够像这样

将 N 分离到两个 分块中,将会更加方便。

现在,要让自己确信 这个等同于这个。

右侧的图等同于

左侧的图,因为 U = NuV + K[NxV - X]。

就是这样。

现在,有两个项涉及 V。

因此,您会得到 [Nu + KNx]v - Kx。将它与刚才

写下的方程做比较,

二者相同, 只是 N 被 Nu + KNx 所取代。

我们已经知道 K。 所以我们所做的一切

只是稍微重新绘制一下。

这两个图表是等效的。

但事实证明将会容易很多。

这些方法 涉及用这种形式

重写输入矩阵, 然后进行设计。

我们要做的是, 选择这两个分块,

比如这里的稳态 Nx 分块

强制使这儿 与状态向量的稳态

相同。

当从一个减去另一个时,

就会通过反馈 增益矩阵得到 0。

这个 0 是 Nx 的工作。

然后,Nu 的工作是, 不论您在这里需要

什么控制输入, 都强制该输入

保证 Yss 在稳态下与 Vss 相同。

现在,您可以用方程 形式将它写下来。

就是这里。

对于连续时间相同,

左侧将会得到 0,

因为在稳态下 x 点 = 0。

稍后我将会 回到离散情况。

因此,0 = AXss + BUss。

Yss = CXss + DUSss。

由于我刚才所说的

关于这两个

分块矩阵 Nu 和 Nx 的内容,

您希望选择的 Nx 与 Xss 相同。

很好。

Nx × Xss = Xss。

在这种情况下,这是 Xss。

那是 Xss。

您会得出 0 经过 K。 这就是 Nx 所需要的。

Nv 呢?

要这样选择 Nv, 以便 U 使 5 等于 V。

因此,您会得到 Nu × V = Uss。

您还需要知道 另外两件事,其中之一我已经

说过是状态向量的

稳态要求, 即您需要使 Yss

在稳态下等于 Zss。

这样做的主要原因是,

您希望当瞬态消失后,

输入和输出相同。

我们可以这样做, 以便插入这四项,

其实将三项 插入系统方程对中。

我们将把 Xss 替换为它、Uss 替换为它、

Yss 替换为它。

您将会看到, 现在一切都用

Vss 来表示,即输入。

这就是我们得到的结果。

很高兴的是,Vss 现在 会从所有地方抵消,

我们只会 以方程形式得到该结果。

因此,将它抵消之后, 我们会得到 0 和 i。

A、B、C、D。 您可以得到 ANx + BNu。

ANx + BNu。

还有 CNx + BNu。

CNx + BNu。

这就是 我们以方程形式得到的。

看出其中的逻辑了吗?

您选择了 Nx 和 Nu 来做这些事情。

我在前一张 幻灯片中告诉过您。

当时只采用了替换方法。

一切都用 Vss 来表示。

最终会得到这个方程。

我已经在这里 用矩阵形式写下它。

现在,我们离 答案很近了。

因为我想知道 Nx 和 Nu 是什么。

如果我知道, 就能够立即工作,

因为我知道 它们与 N 的关系。

我已经得到 K。 因此,只要知道 Nx 和 Nu 是什么,

几乎就会实现目标。

如何才能得到呢?

我需要对这个 矩阵求逆,并且两边都与它进行

前乘。

求逆后的 ABCD 矩阵 将为我提供 Nx 和 Nu。

我知道它们的维数,

因此,我可以提取分块,

然后直接在这个 公式中用来获取 N。

就是这样。

非常简单。

因为您知道 A、B、C、D 是什么。

您知道它们的维数, 因此知道 0 和 1、0 和 i。

然后,只需将这些 Nx 和 Nu 的结果

插入公式中, 就可以给出 N。这就是具体做法。

现在,离散时间 略有不同,但这只是

因为您可以在 稳态下去除状态

方程的左侧。

即 Xss(k + 1) = Xss(k)。 您最终得到的结果是,

左侧这里的 Xss 乘以 Nx。

然后,您可以将它 带到右侧,以便使其为 0。

一切都用 Vss 表示,全部以相同

方式抵消。

逻辑完全相同。

唯一的区别 源于这个单位矩阵,

这里有一个单位矩阵。

这是唯一的区别。

这是连续时间和

离散时间 [听不清] 的

少数差别之一。

[听不清]

这个问题非常好。

恐怕我没法回答。

我从来没 遇到过它不是的情况。

但是,或许有一个 检验它是否可逆的测试。

也许有一些可逆的情况,

但恐怕我 不知道是什么情况。

是的,说得好。

很抱歉。

好的,下面我们 在教程 7.5 中

看一下它的实际运行。

我们将返回 双质体控制系统。

我们将要做的是, 在设计了反馈增益矩阵的

情况下,设计 前馈矩阵以实现

0 稳态误差。

这听起来并不难,对吗?

[听不清]

好的。

我们再次开始。

看上去像是 我们要为已经

得出的增益矩阵

构建系统模型,

然后在我们 一直做到现在的

初始条件下进行测试,

即轻微压缩。

我们在这里 要做的是,检查 N = 1 时

系统的阶跃响应。

因此,在这里 我们要形成闭环方程,

但我们假设不用费心

在稳态矩阵中进行设计。

我直接在这里放一个。

当然,它的稳态

将会有一点差错。

因此,这是 未补偿的阶跃响应。

直接生成阶跃输出,

这将为我们 给出 y2 在阶跃 y1 上的

位置。

这就是会得到的结果。

因此,它处于反馈 控制之下,但未进行补偿。

稳态出错。

您可以看到, 它有正确的特征值,

这是因为 我们设计得很好,

20 秒内平稳响应。

它会在 20 秒内 稳定下来,但稳态错误。

我们现在 要做的是计算

我说过的矩阵,

即 Φ 减去右上 分块 γ、φ、D 中的 i。

该矩阵就是幻灯片 底部这里的这个矩阵。

下面我们形成该矩阵。

就是这个。

现在,我们将会使用它。

Ibar 将会是

我们将会得到的 0 I 矩阵。

我们将对 M 矩阵 求逆,然后与它相乘。

这会给我们 包含 Nx 和 Nu 分块的

矩阵。

就是这个,

Nbar。

它们现在 看起来更方便,是 0 和 1。

然后,我们 只需要提取分块,

因为我们 知道它的前四行

将会包含 Nx。

底部这一个 将会包含来自

分块的 Nu。

我们将它们 直接插入公式中,

然后得出 N 是多少。

N 结果为 11.75。

下面我们构建闭环系统,

并检查它的 DC 增益,即 1。

顺便说一下,DC 增益 可以告诉您系统增益是多少。

这是一个 很好用、很方便的公式。

您也可以 将其用于传递函数。

这一个将会 告诉您状态空间

描述的增益为 1。

当我们绘制 它的阶跃响应时,

稳态误差已经消失,

而且它具有 相同的动力学属性 [听不清]。

好的,

这就是 输入矩阵的设计方式。

现在,在离散时间和 连续时间两种情况下,

您都会注意到,

我们需要涉及 ΦΓCD 或 ABCD 的

矩阵。 换句话说,我们需要

事先准确 知道这些矩阵是什么,

以便计算 N。

您是否经常 知道这些信息?

答案是从不。

显然,这些矩阵中

将会存在一些误差。

即使不存在,

谁能说随着 温度或时间的推移,矩阵不会

变化?

因此,在稳态 方面存在鲁棒性问题。

此外,您可以在 系统周围使用积分控制

来解决这些问题,

以便自动消除稳态误差。

这与传递函数

方法相同。

当然,这里有一个要求,

截至目前,我们

一直对系统上的 输入和输出数量

非常随意。

我们不能 这样随意下去了,

因为如果要应用间隔控制,

输入数和 输出数之间最好具有

相关性。

否则, 这样检查稳态误差

没有意义。

因此,我们不仅 要求输入数量与输出

数量相同。

R(T) 与 Y(T) 相同。 我们还要求它们

之间相关。

第一个输入 必须影响第一个输出,以此类推。

也有技术 原因,为什么 U(T)

必须与 R(T) 的维数相同,

但此时此刻我 不想讨论这个问题。

如果是这种 令人满意的情况,积分控制

就会通过在 [听不清] 前 添加一个积分器来发挥作用,

积分器的输入是

输出 Y(T) 和输入 R(T) 之间的区域,

将会是连续时间情况。

因此,在本例中, 将会有 M 个...

我认为 应该是 P 个,不对,的确是

M 个, 因为有 M 个输出。

因此,根据定义 P 将与 M 相同。

所以这里有 M 个积分器。

现在,如果之前有 该系统的状态

空间模型, 并且为 N 阶,N

此时整体 系统的阶会增加 N。

因此,整体系统 具有 N + M 个状态。

我增加了系统, 也增加了状态

向量的大小。

设计时需要考虑这一点。

您可以这样做。

这只是 其中的控制器部分。

现在,既有来自 状态向量的反馈,

又有来自输出的反馈。

输出会与基准进行比较,

然后经过积分器。

下面是方程。

我们以前使用过 该控制器,即 [听不清]。

U 涉及 V。因此 V 现在 需要满足这个一阶

微分方程, 其中 R - Y...而 Y 是

CX [听不清]。

抱歉,R - Y。 因此是 R 减 Cx 减 V 乘 U。

现在就得出了 这个微分方程。

您可以这样使用它。

记下这些内容。

您已经 将控制器 U 的方程

插入状态 方程和输出方程中。

还插入了输出方程中。

就是底部这一个。

这是 V 点的方程。

在上一个图表中,

V 点等于 r 减 Cx 减 Du。

这是 U。 所以我们将 U 插入进去。

得到了什么?

R 减 Vx 减 DMV 减 DK 乘...抱歉,是加 DKX

是的,加 DKX。

是这样。

加 DKX 减 Cx 减 Vn 乘 V 加 R。

您需要这样做。

您卡在了 一个额外 N 状态上。

您要做的是 增大状态向量。

这一过程称为向量增强,

其中需要定义一个新的 状态向量,就是刚才堆叠的向量。

您需要在 V 之上堆叠 X。 因此,新状态向量

就像左侧的 X 点 V 点,以及这里的 XV。

这是新状态向量。

您只需使用 这样的矩阵写下

这三个方程。

因此这里就像 得到了应用积分控制的

一组新系统方程。

这对仿真来说很好。

我们将用它来进行仿真。

但它不适合用于设计。

对于设计,我需要 用略微不同的形式

写下这些方程, 其中需要将 U

与这一切分开。

因为我需要 为控制器而设计。

您可以这样做。

您只需要将它们分开。

系统方程。

以 U 为独立 项的积分方程。

U 在这里。

这是动画, 不起作用 [听不清]。

您可以这样书写。

将 U 作为独立项 写出的该方程对就是

这样。

要确信它们是相同的。

它们是一样的。

现在,您得到了 一个方程对,鉴于它的形式,

您可以应用 刚才所用的任何方法,

比如极点放置 方面的特征结构,

从而确定 K 拔。

这就是我们要 寻找的值,因为 K 拔

对应于一个矩阵, 其中有这些分块

K 和 N。

然后, 找出这个值之后,

只需将其插入 新的系统方程

即可。

继续使用 以前的方法进行设计。

这是系统方程。

这是输出方程。

e 是输入方程。

e 是 0、1 乘 R。

还有一点。

这是连续时间情况。

离散时间情况 同样有点不同。

因为积分器 在积分中就是

这样进行的。

因此,v(k + 1) = r(k) - y(k) + v(k),

因为这里是在累积。

除了它,其他一切 看起来非常相似。

您最终会在 右下分块中得到

一个单位矩阵。

只有这一个差别。

这源于 积分器的作用方式。

现在,让我们为 双质体系统设计

一个积分控制器,

我认为它就在 这里的教程 7.6 中。

我们将会 应用积分控制。

然后,我要做的是 检查被控对象模型

误差的影响。

我要做的是, 故意在被控对象

模型中诱发 一个误差,然后看一下

到底是否会改变控制。

首先,7.6。

我们完全以 相同的方式进行。

首先, 在构建模型之后,

我将会从 前一个教程中选取

反馈增益和输入矩阵。

我知道它们会在 积分控制下发生变化,

但我仍然 使用它们,因为我

想要比较 积分控制和非积分

控制的影响。

我们已经构建了矩阵。

然后,我们要做的是

设计积分控制器。

即上一张幻灯片的 phibar、gammabar。

我们来详细看一下。

我现在要设计的是 这里的一组矩阵,

phi 0、-C、B 和 D。

我要在 MATLAB 中 构建这些矩阵,就是这些。

请看,phi zero,-C,1。

Gammabar 是 gamma,-D, 我要构建这些矩阵。

然后,选择一些特征值。

您要小心,因为您需要

比以前更多的特征值。

因为现在 引入了一个积分器,

它增强了状态向量。

因此,如果之前 闭环控制需要

四个特征值, 现在将需要五个。

因为它是单输出 系统,单输入系统。

还有一个 特征值需要考虑。

我将它添加到了 0.2 这里。

它更接近原点。

因此它应该不会对 动力学造成太大的影响。

但您需要再添加一个。

在这里,我们 使用的是阿克曼方法,

使用 phibar 和 gammabar 找出新 K 矩阵

是什么。

有新的 K 矩阵。

这是您需要

注意的情况, 因为 K 矩阵中的一个元素

是 8。

还有一个 9 又 1/2。

但这里有几个接近 100。

还有一个为 35。

这种情况可能需要

引起警惕, 因为元素...控制量

可能会很大。

因此,要注意 这种情况的发生。

现在,我们要做的是, 从这个新分块 Kbar 中

提取新的 K 和 N。

就是这样。

我们将使用 积分控制来计算解。

现在的情况是, 我们知道 K 和 N 是多少。

我现在要做的是, 使用这些矩阵对模型进行

仿真。

好的,这就是具有积分 控制状态方程的闭环,

已经重新设计了 K 和 N,

需要在其中放置控制。

这些就是在这个阶段的操作。

现在,我们 需要检查这些...

这是正确的特征值。

它们看起来非常 [听不清]。

这就是积分控制器的

期望特征值集, 包括一个为 0.2 的值。

最终我们 得出了实际特征值,

[听不清] phibar 减 ΓK 就是它。

到目前为止, 似乎一切正常。

现在,我们要做的是, 绘制仅具有输入矩阵控制的

阶跃响应。

因此,不会有积分控制,

只与 N 和 K 矩阵。

这是我们之前做的 积分控制,仅供参考。

就是这个。

0 稳态误差。

这很好。

因为我们是这样 设计的,事先知道这些矩阵

是什么。

现在,我们要 对积分控制器的结果进行

重叠。

现在,绿色 部分是积分控制器。

蓝色部分是原有的。

您会注意到, 这两者之间存在分隔。

为什么?

两者之间为什么存在差异?

稳态是相同的。

显然,我们完全未影响它们。

[听不清] 为什么?

为什么?

并不多。

这样也 会有同样的差异。

[听不清]

不,这里不适用。

我们不会做向量选择。

这适用于多输入的情况。

但在这里,我们 使用的是阿克曼公式

转换器。

[听不清]

否。

不是这个原因。

原因是 其中有另一个特征值。

我们需要 选择另一个特征值。

我们把它放在 靠近原点的 0.2 位置。

不会对它有影响。

但这是 要为此负责的特征值。

[听不清] 通过积分器。

这是特征值。

如果使用 [听不清]

连续时间控制器, 您会发现有同样的分隔。

这就是具体做法。

但是之后,您可能会 看着这些曲线想,

何必这么麻烦?

因为它们都会 带来相同的 0 稳态误差。

我将自问自答,

向您演示 为什么您会想要这样做。

在这里,我已经 重建了一个新系统

矩阵。

它与上一个 矩阵的唯一差别是,

我对其中一个 元素做出了非常小的

更改,只有 0.2。

因此,当我使用 完全相同的矩阵

运行系统, 而不重新设计 K 和 N 时,

可以预计 将会有一些误差。

但当我使用 完全相同的积分

控制器设计时,

我希望能说服您 相信这不会有很大的不同。

我们将重建这些矩阵。

然后,我们要做的是 全力完成这一工作,

并对两者进行比较。

在非积分控制器 情况下,我们得到的是

非常不同的稳态误差。

而在积分控制器情况下,

其中有一个积分器, 并且它是阶跃输入,

基于这样的事实, 结果自动为我们消除了

稳态错误,

因此,稳态性能得以保留。

这源于输入 矩阵中非常小的差异。

例如,如果我向您展示 φ 是什么,就是这个。

如果我向您展示 φ 误差是什么,

这两个矩阵的 唯一区别就在

这里。

左下角 从 0.1783 变成了 0.1983。

所有其他元素 都是完全相同的。

我做的这一 改变非常小。

然而,稳态性能差异

却相当大。

因此,积分控制的 优势是可以摆脱这种

情况。

我们差不多 到第 7 部分了,非常好,

因为已经两点半了,

这个时候我都要 喝杯咖啡休息一下。

下面我们快速测验一下。

为什么状态 反馈控制胜过

输出反馈控制呢?

[听不清]

是的。

是的。

您可以完全自由地 将极点放置在复平面中

任何想要的地方。

之所以如此, 是因为状态向量包含

关于系统内部 动力学的所有信息,

而输出向量则不一定

包含。

在状态反馈增益 矩阵中包含大元素

有什么风险?

[听不清]

是的。

[听不清]

对。

[听不清]

对。

这些算是 控制量方面的考量。

因为控制 向量 U 为 Nv -Kx。

它是 -Kx。 因此,状态向量

会乘以所有这些元素。

如果它们较大, 可以预计 U 中的值也会很大。

这可能会造成 执行器饱和风险。

但它也可能会 放大噪声和放大干扰。

因此,您要小心这种事情。

最终,当您将开环极点

长距离移动到 闭环极点时,将会得到

大元素。

K 中的大元素 就是这样来的。

状态反馈对 稳定性有何影响?

我想这个问题的

答案有点开放式,对吗?

因为可能影响, 也可能不影响。

会影响吗?

[听不清]

可能会,不是吗?

如果您想, 就可以使系统不稳定。

我想我应该 修改一下问题 3。

是的,会影响。

我想我寻求的答案

可能是, 开环系统具有稳定性,

这是由 λi - A 的特征值定义的。

然而,反馈控制是

λi - A + B + BK。

视频报错
手机看
扫码用手机观看
收藏本课程

视频简介

状态反馈控制

所属课程:空间控制系列视频 发布时间:2022.08.02 视频集数:4 本节视频时长:01:32:57

该部分主要讲述了状态反馈、极点放置、特征结构分配、积分控制。

TI培训小程序