处理精度与积分

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)”)
网格
网格
什么好主意吗?
非常感谢!

接受的答案

沃尔特·罗伯森
沃尔特·罗伯森 2021年6月7日
我修改你的代码使用符号计算。我使用的默认32位程序计算,我相对和绝对宽容1 e-20用于集成,所以4或多或数字更精确的比你期望从积分()
趋势,结果Vc1 Vc3,同你的数值结果,12位小数。
你没有一个精确的问题。

答案(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)
ans = 3
注意,第二个和第三个条目的第二行是一样的第三行第二个和第三个条目,所以减去一行两行三个给结果除了第一列是零。但第四行也是零除了第一列。你的第四行是一个线性组合的第二行和第三行,所以A1奇异无论你怎样精确计算。

登录置评。

类别

找到更多的在中华民国,AUC帮助中心文件交换

社区寻宝

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

开始狩猎!

翻译的