我正在 Simulink 中开发一个游艇速度预测程序 (VPP)(显然,我是该论坛的新用户,因此无法上传图像)。
解决这个问题需要我知道表观风速和角度(分别为 VA 和 beta),以便获得风帆产生的力,从而获得净力、加速度和最终的船速。但是,VA 取决于船速 (VS)。我尝试通过将加速度转换为速度的积分器块输入后者的初始值,但我在“视风”m函数中不断收到以下错误:“索引表达式超出范围。尝试访问元素 3。有效范围是 1-1。”。请注意,如果我重新排列模型并为函数提供一个常数值,例如,它将起作用(尽管最终的船速在物理上不会是正确的)。m函数列表如下所示。
简化框图:
[VT,gamma] -> 视风 -> 空气动力学 -> 力/质量 -> 加速度 -> 1/s -> VS
function [VA, beta] = fcn(inputs)
% 1 - gamma % true wind heading [deg]
% 2 - VT % true wind speed [kts]
% 3 - VS
%#codegen
% apparent wind angle [deg]
beta=atan(sin(inputs(1)*pi/180)/(cos(inputs(1)*pi/180)+inputs(3)/inputs(2)))/pi*180;
% apparent wind speed [kts]
VA=sin(inputs(1)*pi/180)/sin(beta*pi/180)*inputs(2);
end
编辑:现在我可以上传一个模型的附加流程图。