混淆错误时选择合适的循环开放位置TuningGoal.Sensitivity ()

16个视图(30天)
当试图合成控制器矩阵K和M满足一些要求,以下错误出现在试图使用systune:
“错误使用 DynamicSystem / systune
敏感目标:标识符“z”不匹配任何循环打开位置。使用“getPoints”
有效循环的列表打开位置。”
然而,getPoints (sys)返回:
ans = 2×1细胞
' w '
“z”
显示“z”是一个有效的循环打开位置。请注意,有两个输入和两个输出的系统,这可能需要多信道的w和z。
为什么我得到错误尽管选择一个有效的循环打开位置吗?
R_f = 0.1;
L_f = 8 * 10 ^ 3;
R_li = 20;
L_li = 15 * 10 ^ 3;
R_lk = 40;
L_lk = 40 * 10 ^ 3;
G_f = 1/350;
C_f = 50 * 10 ^ 6;
v_DQ_set = 311;
omega_s = 2 *π* 50;
J = [0, 1;1、0];
R_V = 0.5;
X_V = 1;
Z = R_V *眼(2)J - X_V *;
R_line = 195 * 10 ^ 3;
L_line = 0.61 * 10 ^ 3;
A_tilde = [-R_f / L_f omega_s 1 / L_f, 0, 0, 0;
-omega_s -R_f / L_f 0 1 / L_f, 0, 0;
1 / C_f 0 -G_f / C_f omega_s, 0, 0;
0、1 / C_f -omega_s -G_f / C_f, 0, 0;
0,0,1,0,0,0;
0,0,0,1,0,0);
B_u_tilde = [1 / L_f, 0;
0,1 / L_f;
0,0;
0,0;
0,0;
0,0];
B_w_tilde = [0,0;
0,0;
1 / C_f, 0;
0,1 / C_f;
- z];
C_tilde = [0, 0, 1, 0, 0, 0;
0,0,0,1,0,0);
D_u_tilde = 0 (2, 2);
D_w_tilde = 0 (2, 2);
K_tune = realp (“K”,(117.3,1.1,6.3,0.4,40岁,-7.3;-2.6,117.2,-2.1,12.9,2.1,72.5);
K_tune。最大= 125;
K_tune。最小值= -125;
M_tune = realp (“米”,107.8,3.3;-1.2,104.7]);
M_tune。最大= 125;
M_tune。最小值= -125;
Ac = A_tilde - B_u_tilde * K_tune;
公元前= B_w_tilde - B_u_tilde * M_tune;
Cc = C_tilde - D_u_tilde * K_tune;
Dc = D_w_tilde - D_u_tilde * M_tune;
sys = ss (Ac,公元前,Cc特区);
input_AP = AnalysisPoint (' w ');
output_AP = AnalysisPoint (“z”);
sys = output_AP * sys * input_AP
广义连续时间与状态空间模型2输出,2输入,6个州,和以下模块:凯西:可调2 x6矩阵,2出现。M:可调2 x2矩阵,2出现。w:分析点,1通道,2出现。z:分析点,1通道,2出现。输入“党卫军(sys)”看到当前值和”系统。块”与街区。
getPoints(系统)
ans =2×1单元阵列
{' w '} {' z '}
CL0 =可调参数(“闭环串”系统,“全部”);
ρ= 0.4;
pole_req = TuningGoal.Poles(5 0正);
特遣部队(maxsens = 1.5 * 10 ^ 5, [1 10 ^ 5]);
freq_resp_req = TuningGoal.Sensitivity (“z”,maxsens);
pass_req = TuningGoal.Passivity (' w ',“z”,0,ρ);
[CL, fSoft, gHard] = systune (CL0, [pole_req, freq_resp_req pass_req]);
错误使用DynamicSystem / systune
敏感目标:标识符“z”不匹配任何循环打开位置。使用“getPoints”有效循环打开位置的列表。
3评论
沃尔特·罗伯森”class=
沃尔特·罗伯森 约7小时前
文档显示设置开放要做的一部分 getIOTransfer 结果,而不是直接在一个分析点。我不知道如果让一个区别。

登录置评。

答案(1)

保罗”class=
保罗 约4小时前
嗨Dhilen,
错误消息显示因为CL0并不包括那些分析点
R_f = 0.1;
L_f = 8 * 10 ^ 3;
R_li = 20;
L_li = 15 * 10 ^ 3;
R_lk = 40;
L_lk = 40 * 10 ^ 3;
G_f = 1/350;
C_f = 50 * 10 ^ 6;
v_DQ_set = 311;
omega_s = 2 *π* 50;
J = [0, 1;1、0];
R_V = 0.5;
X_V = 1;
Z = R_V *眼(2)J - X_V *;
R_line = 195 * 10 ^ 3;
L_line = 0.61 * 10 ^ 3;
A_tilde = [-R_f / L_f omega_s 1 / L_f, 0, 0, 0;
-omega_s -R_f / L_f 0 1 / L_f, 0, 0;
1 / C_f 0 -G_f / C_f omega_s, 0, 0;
0、1 / C_f -omega_s -G_f / C_f, 0, 0;
0,0,1,0,0,0;
0,0,0,1,0,0);
B_u_tilde = [1 / L_f, 0;
0,1 / L_f;
0,0;
0,0;
0,0;
0,0];
B_w_tilde = [0,0;
0,0;
1 / C_f, 0;
0,1 / C_f;
- z];
C_tilde = [0, 0, 1, 0, 0, 0;
0,0,0,1,0,0);
D_u_tilde = 0 (2, 2);
D_w_tilde = 0 (2, 2);
K_tune = realp (“K”,(117.3,1.1,6.3,0.4,40岁,-7.3;-2.6,117.2,-2.1,12.9,2.1,72.5);
K_tune。最大= 125;
K_tune。最小值= -125;
M_tune = realp (“米”,107.8,3.3;-1.2,104.7]);
M_tune。最大= 125;
M_tune。最小值= -125;
Ac = A_tilde - B_u_tilde * K_tune;
公元前= B_w_tilde - B_u_tilde * M_tune;
Cc = C_tilde - D_u_tilde * K_tune;
Dc = D_w_tilde - D_u_tilde * M_tune;
sys = ss (Ac,公元前,Cc特区);
input_AP = AnalysisPoint (' w ');
output_AP = AnalysisPoint (“z”);
sys = output_AP * sys * input_AP
广义连续时间与状态空间模型2输出,2输入,6个州,和以下模块:凯西:可调2 x6矩阵,2出现。M:可调2 x2矩阵,2出现。w:分析点,1通道,2出现。z:分析点,1通道,2出现。输入“党卫军(sys)”看到当前值和”系统。块”与街区。
getPoints(系统)
ans =2×1单元阵列
{' w '} {' z '}
CL0 =可调参数(“闭环串”系统,“全部”)
可调的连续时间“闭环串”状态空间模型。这个模型有两个输出,2输入6,和64可调参数。输入“党卫军(CL0)”的当前值。
一个可调参数对象可以包含分析点?我不知道,但getPoints (CL0)导致一个错误。
即使分析点进行从sys CL0 anlaysis点都在循环,所以可能不是有趣的从设计的角度来看。
分析点是“翻一番”,因为系统有两个输入和两个输出。这可能会导致其他问题。
CL0是一个可调参数对象
CL0
类属性名称大小字节CL0 2 x2 1343可调参数
但是文档页面 systune 表示输入系统应该是一族对象。
ρ= 0.4;
pole_req = TuningGoal.Poles(5 0正);
特遣部队(maxsens = 1.5 * 10 ^ 5, [1 10 ^ 5]);
freq_resp_req = TuningGoal.Sensitivity (“z”,maxsens);
pass_req = TuningGoal.Passivity (' w ',“z”,0,ρ);
[CL, fSoft, gHard] = systune (CL0, [pole_req, freq_resp_req pass_req]);
错误使用DynamicSystem / systune
敏感目标:标识符“z”不匹配任何循环打开位置。使用“getPoints”有效循环打开位置的列表。
创建CL0作为一个可调参数的目的是什么?我认为可调对象是用于systune输入系统的建立,这将产生一个一族对象。
医生页面: 模型与可调系数

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!