Main Content

Algebraic Constraint

限制输入信号

  • Algebraic Constraint block

库:
Simulink / Math Operations

描述

Algebraic Constraint 模块将输入信号 f(z) 限制为 z 或 0,并输出代数状态 z。模块输出一个值,使得输入处函数的结果为 0 或 z。输出必须通过直接反馈路径影响输入。换句话说,反馈路径只包含具有直接馈通的模块。例如,您可以为指数为 1 的微分代数方程组 (DAE) 指定代数方程。

示例

全部展开

使用 Algebraic Constraint 模块求解方程组

$$\begin{array}{c} z_1 + z_2 = 1\\ z_2 - z_1 = 1\end{array}$$

该模型将问题以向量化形式表示为

$$
 \left[\begin{array}{cc}
1 & 1\\
-1& 1
\end{array}\right]\left[\begin{array}{c}z_1\\z_2\end{array}\right]
=\left[\begin{array}{c}1\\1\end{array}\right]
$$

馈送到 Algebraic Constraint 模块 $f(z)$ 的信号是以下形式的 $2\times1$ 向量

$$\left[\begin{array}{c}z_1+z_2-1\\-z-1 +
z_2-1\end{array}\right] $$

该模块配置为将 $f(z)$ 约束为 0。因此求解 $f(z) = 0$ 得到解 $z_1 = 0,\, z_2 = 1$

端口

输入

全部展开

信号受制于约束 f(z) = 0f(z) = z 来求解代数环。

数据类型: double

输出

全部展开

当输入信号 f(z) 受制于约束 f(z) = 0f(z) = z 时代数环的解。

数据类型: double

参数

全部展开

要对其求解的约束的类型。您可以对 f(z) = 0f(z) = z 求解。

编程用法

模块参数Constraint
类型:字符向量
值:'f(z) = 0' | 'f(z) = z'
默认值:'f(z) = 0'

在信赖域 [1]、[2] 或线搜索 [3] 算法之间选择来求解代数环。默认情况下,此值设置为自动,即根据模型配置选择代数环求解器,并在仿真期间在信赖域和线搜索算法之间切换求解器

编程用法

模块参数Solver
类型:字符向量
值:'auto' | 'Trust region' | 'Line search'
默认值:'auto'

当您在求解器下拉菜单中显式指定要使用的求解器(信赖域或线搜索)时,此选项是可见的。指定较小的值可获得较高的精度,指定较大的值可实现较快的执行速度。默认设置为自动

编程用法

模块参数Tolerance
类型:字符向量
值:'auto' | 正标量
默认值:'auto'

接近于预期解值的代数状态 z 的初始估计值,用于提高代数环求解器的效率。默认情况下,此值设置为 0。

编程用法

模块参数InitialGuess
类型:字符向量
值:标量
默认值:'0'

模块特性

数据类型

double

直接馈通

多维信号

可变大小信号

过零检测

参考

[1] Garbow, B. S., K. E. Hillstrom, and J. J. Moré. User Guide for MINPACK-1. Argonne, IL: Argonne National Laboratory, 1980.

[2] Rabinowitz, P. H. Numerical Methods for Nonlinear Algebraic Equations. New York: Gordon and Breach, 1970.

[3] Kelley, C. T. Iterative Methods for Linear and Nonlinear Equations. Society for Industrial and Applied Mathematics, Philadelphia, PA: 1995.

扩展功能

版本历史记录

在 R2006a 之前推出

另请参阅