查找动态系统的修剪点
[x,u,y,dx] =修剪('
SYS.
')
[x,u,y,dx] =修剪('SYS.
',x0,u0,y0)
[x,u,y,dx] =修剪('SYS.
',x0,u0,y0,ix,iu,iy)
[x,u,y,dx] =修剪('SYS.
',X0,U0,Y0,IX,IU,IY,DX0,IDX)
[x,u,y,dx,选项] =修剪('SYS.
',X0,U0,Y0,IX,IU,IY,DX0,IDX,选项)
[x,u,y,dx,选项] =修剪('SYS.
',x0,u0,y0,ix,iu,iy,dx0,Idx,选项,t)
调整点,也称为平衡点,是动态系统的参数空间中的点,在该位置系统处于稳定状态。例如,飞机的修剪点是其控制的设置,导致飞机直接和水平。在数学上,修剪点是系统的状态衍生物等于零的点。修剪
从初始点开始使用顺序二次编程算法,直到找到最近的修剪点。您必须隐式或明确提供初始点。如果修剪
找不到修剪点,它返回其搜索中遇到的重点,其中状态衍生物在最小的max中最接近零;也就是说,它返回最小化衍生物零的最大偏差的点。修剪
可以找到符合特定输入,输出或状态条件的修剪点,它可以在系统中以指定方式更改系统,即该系统状态衍生物等于特定的非零值的点。
[x,u,y,dx] =修剪('
找到模型的均衡点'SYS.
')SYS.
',最接近系统的初始状态,X0.
。具体来说,修剪
找到最小化最大绝对值的均衡点[x-x0,u,y]
。如果修剪
在系统的初始状态附近找不到均衡点,它返回系统最靠近均衡的点。具体来说,它返回最小化的点ABS(DX)
在哪里DX.
代表系统的衍生品。你可以获得X0.
使用此命令。
[大小,x0,xstr] = sys([],[],[],0)
[x,u,y,dx] =修剪('
找到最近的修剪点SYS.
',x0,u0,y0)X0.
那U0.
那y0.
,也就是说,最小化最大值的点
abs([x-x0; u-u0; y-y0])
[x,u,y,dx] =修剪('
找到最接近的修剪点SYS.
',x0,u0,y0,ix,iu,iy)X0.
那U0.
那y0.
这满足了一组指定的状态,输入和/或输出条件。整数向量IX.
那IU
, 和IY.
选择值X0.
那U0.
, 和y0.
必须满足。如果修剪
无法找到满足指定条件集的平衡点,返回满足条件的最近点,即,
abs([x(ix)-x0(ix); u(iu)-u0(iu); y(iy)-y0(iy)])
[x,u,y,dx] =修剪('
查找特定的非Quilibibium积分,即系统状态衍生物具有一些指定的非零值的点。这里,SYS.
',X0,U0,Y0,IX,IU,IY,DX0,IDX)DX0.
指定搜索起点和的状态衍生值idx.
选择值DX0.
搜索必须完全满足。
[x,u,y,dx,选项] =修剪('
指定优化参数的数组SYS.
',X0,U0,Y0,IX,IU,IY,DX0,IDX,选项)修剪
传递给它用于查找修剪点的优化功能。反过来,优化函数使用此阵列来控制优化过程并返回有关该过程的信息。修剪
返回选项
在搜索过程结束时数组。通过以这种方式暴露底层优化过程,修剪
允许您监控和微调搜索修剪点。
下表描述了每个元素如何影响搜索的修剪点。阵列元件1,2,3,4和10对于查找修剪点特别有用。
不。 | 默认 | 描述 |
---|---|---|
1 | 0. | 指定显示选项。0指定没有显示;1指定表格输出;-1禁止警告消息。 |
2 | 10.-4 | 精确度计算的修剪点必须达到终止搜索。 |
3. | 10.-4 | 精确度调整搜索目标函数必须达到终止搜索。 |
4. | 10.-6 | 精确度状态衍生物必须达到终止搜索。 |
5. | N / A. | 未使用。 |
6. | N / A. | 未使用。 |
7. | N / A. | 在内部使用。 |
8. | N / A. | 返回修剪搜索目标函数的值(目标达到λ)。 |
9. | N / A. | 未使用。 |
10. | N / A. | 返回用于查找修剪点的迭代次数。 |
11. | N / A. | 返回功能渐变评估的数量。 |
12. | 0. | 未使用。 |
13. | 0. | 平等约束的数量。 |
14. | 100 *(变量数量) | 用于查找修剪点的最大函数评估数。 |
15. | N / A. | 未使用。 |
16. | 10.-8 | 在内部使用。 |
17. | 0.1 | 在内部使用。 |
18. | N / A. | 返回步长。 |
[x,u,y,dx,选项] =修剪('
设置时间SYS.
',x0,u0,y0,ix,iu,iy,dx0,Idx,选项,t)T.
如果系统依赖于时间。
笔记
如果修复任何状态,输入或输出值,修剪
使用未指定的免费变量来派生满足这些约束的解决方案。
考虑使用状态空间块建模的线性状态空间系统
这一种那B.那C, 和D.要在命令行或块参数对话框中输入的矩阵是:
a = [-0.09 -0.01;1 0];b = [0 -7;0 -2];c = [0 2;1-5];d = [-3 0;1 0];
在这个型号中找到一个叫做的均衡点SYS.
, 用:
[x,u,y,dx,选项] =修剪('sys')x = 0 0 0 u = 0 0 y = 0 0 dx = 0 0
所采取的迭代人数是:
选项(10)ans = 7
找到附近的均衡点x = [1; 1],U = [1; 1]
, 进入
x0 = [1; 1];U0 = [1; 1];[x,u,y,dx,选项] =修剪('sys',x0,u0);X = 1.0E-13 * -0.5160 -0.5169 U = 0.3333 0.0000 y = -1.0000 0.3333 DX = 1.0E-12 * 0.1979 0.0035
所采取的迭代人数
选项(10)ans = 25
找到具有固定输出的均衡点1
, 用:
Y = [1; 1];IY = [1; 2];[x,u,y,dx] =修剪('sys',[],[],y,[],[],iy)x = 0.0009 -0.3075 u = -0.5383 0.0004 y = 1.0000 1.0000 dx = 1.0e-15 * -0.0170 0.1483
找到一个固定到1的输出的平衡点,并且衍生物设置为0和1,使用
Y = [1; 1];IY = [1; 2];dx = [0; 1];Idx = [1; 2];[x,u,y,dx,选项] =修剪('sys',[],[],y,[],[],iy,dx,idx)x = 0.9752 -0.0827 u = -0.3884 -0.0124 y= 1.0000 1.0000 DX = 0.0000 1.0000
所采取的迭代人数
选项(10)ans = 13
发现的修剪点修剪
从任何给定的初始点开始只是一个本地值。其他,可能存在更合适的修剪点。因此,如果要为特定应用找到最合适的修剪点,则重要的是尝试多个初始猜测X
那你
, 和y
。
修剪
使用顺序二次编程算法查找修剪点。看顺序二次编程(SQP)(优化工具箱)有关该算法的描述。