处理精度与积分
3视图(30天)
显示旧的评论
早上好!
我工作在一个状态空间矩阵的动态控制问题。
我已经生成一个脚本,我描述这些矩阵。尽管很明显他们是正确的,一些积分的结果是不正确的。
我害怕这是一个精密的问题因为这些矩阵,在自己奇异,没有逆。
具体来说,无效的结果Vc1(第76行),趋势(第77行)和Vc3(第78行)。
清晰的所有
关闭所有
clc
格式longEng
% %
%转换器的输入数据
VH = 200;
六世= 70;
Llk = 2 * 10 ^ 6;
n = 2/5;
焊= 500 * 10 ^ 3;
Ts = 1 / (2 * fsw);%半周期,因为DutiFi半周期的计算。
撅嘴= 1080;
Ilow =撅嘴/六世;
Ro =六世^ 2 /撅嘴;
Rl = 100 e - 3;
%计算要求的责任
DutyFi = (√VH * t * (VH * Ts - 16 * Llk * Ilow * n)) VH * Ts) / (4 * VH * Ts);
φ= DutyFi * Ts;
Ts = 2 * Ts;%取消我之前作出的修正
C1 = 47 * 10 ^ 6;
C2 = C1;
C3 = 47 * 10 ^ 6;
C4 = C3;
D1 = DutyFi;
D2 = 0.5 -dutyfi;
t1 = D2 * Ts;
t2 = D1 * Ts;
t3 = D2 * Ts;
t4 = D1 * Ts;
% %
%状态矩阵
% % %状态矩阵定义为:
% % % X = (Il, Vc1趋势,Vc3)
% % % V = (VH)
V = VH;
c =眼(4);
A1 = (rl / Llk 0 1 / (n * Llk) 1 / Llk;0 1 / (Ro * C1) 1 / (Ro * C1) 0;1 / (n * C2) 1 / (Ro * C2) 1 / (Ro * C2) 0;1 / (C4 + C3) 0 0 0);
B1 = [1 / Llk;0;0;0);
A2 = (rl / Llk 0 1 / (n * Llk) 1 / Llk;0 1 / (Ro * C1) 1 / (Ro * C1) 0;1 / (n * C2) 1 / (Ro * C2) 1 / (Ro * C2) 0;1 / (C3 + C4) 0 0 0];
B2 = [0;0;0;0);
A3 = (rl / Llk 1 / (n * Llk) 0 1 / Llk;1 / (n * C1) 1 / (Ro * C1) 1 / (Ro * C1) 0;0 1 / (Ro * C2) 1 / (Ro * C2) 0;1 / (C3 + C4) 0 0 0];
B3 = [0;0;0;0);
A4 = (rl / Llk 1 / (n * Llk) 0 1 / Llk;1 / (n * C1) 1 / (Ro * C1) 1 / (Ro * C1) 0;0 1 / (Ro * C2) 1 / (Ro * C2) 0;1 / (C3 + C4) 0 0 0];
B4 = [1 / Llk;0;0;0);
Xt4 = [0;0;0;0);% %从静止开始
形式=积分(@ (t) expm (A1 * t), 0, t1,“ArrayValued”1);
psi2 =积分(@ (t) expm (A2 * t), 0, t2,“ArrayValued”1);
psi3 =积分(@ (t) expm (A3 * t), 0, t3,“ArrayValued”1);
psi4 =积分(@ (t) expm (A4 * t), 0, t4,“ArrayValued”1);
为g = 1:20000%如果我们经历所有的州和重复的次数足够多,我们将达到静止状态。
处= expm (A1 * t1) * Xt4 + B1形式* * V;
此时= expm (A2 * t2) *处+ psi2 * B2 * V;
Xt3 = expm (A3 * t3) *此时+ psi3 * B3 * V;
Xt4 = expm (A4 * t4) * Xt3 + psi4 * B4 * V;
结束
%画出波形的每个状态变量来检查它是否正常工作。
IL = [Xt4(1)处(1),此时假定(1)Xt3 (1) Xt4 (1)];
输出电压= [Xt4 (3) + Xt4(2)处(3)+处(2),此时此时假定(2),(3)+ Xt3 (3) + Xt3 (2), Xt4 (3) + Xt4 (2)];
Vc1 = [Xt4(2)处(2),此时假定(2),Xt3 (2), Xt4 (2)];%应该给的结果~ 35
趋势= [Xt4(3),处(3),此时假定(3),Xt3 (3), Xt4 (3)];%应该给的结果~ 35
Vc3 = (2 * Xt4(4), 2 *处(4),2 *此时(4),2 * Xt3 (4), 2 * Xt4 (4)];% %应该给~ 100的结果
t0 = 0;
时间= (t0 t0 + t1 t0 + t1 + t2 t0 + t1 + t2 + t3 t0 + t1 + t2 + t3 + t4);
图(1)
次要情节(411)
情节(IL),“啊——”,“线宽”,2)
标题(电感电流的)
包含(的时间(秒))
ylabel (“安培(A)”)
网格在
网格小
次要情节(412)
情节(时间、Vc1“啊——”,“线宽”,2)
标题(“Vc1”)
包含(的时间(秒))
ylabel (“伏(V)”)
网格在
网格小
次要情节(413)
情节(时间、趋势“啊——”,“线宽”,2)
标题(“趋势”)
包含(的时间(秒))
ylabel (“伏(V)”)
网格在
网格小
次要情节(414)
情节(时间、Vc3“啊——”,“线宽”,2)
标题(“Vc3”)
包含(的时间(秒))
ylabel (“伏(V)”)
网格在
网格小
什么好主意吗?
非常感谢!
0评论
接受的答案
答案(1)
塞尔吉奥·托杜
2021年6月7日
1评论
沃尔特·罗伯森
2021年6月7日
你在做什么操作,让你对不可逆的消息吗?
如果你在谈论代码,你没有在,你假设试图找到稳态分析,但停止是因为A1, A2, A3 A4不可逆的,那么那些不可逆的原因是你建造他们的方式。
信谊Rl Llk n Ro C1 C2 C3 C4
A1 = (rl / Llk 0 1 / (n * Llk) 1 / Llk;0 1 / (Ro * C1) 1 / (Ro * C1) 0;1 / (n * C2) 1 / (Ro * C2) 1 / (Ro * C2) 0;1 / (C4 + C3) 0 0 0]
等级(A1)
注意,第二个和第三个条目的第二行是一样的第三行第二个和第三个条目,所以减去一行两行三个给结果除了第一列是零。但第四行也是零除了第一列。你的第四行是一个线性组合的第二行和第三行,所以A1奇异无论你怎样精确计算。