接下来描述一下我的逻辑和我遇到的问题。从valve_PID1输出的tracking_w_need作为气体实际流量同时输入到燃料电池PEMFCyan_zheng1模块f_outZC端口和feedback模块w_actul端口。valve_PID1输出的tracking_w_need作为目标气体流量输入到feedback模块的f_in1端口,通过里面的公式循环。燃料电池输出的功率p反馈到feedback模块p端口。feedback模块输出的信号为w_neednew,到valve_PID1模块的setpoint端口。这就是大概的流程。我解释一下valve_PID1里面的公式setpoint=tracking_w_need;,目的是让setpoint数值不变,直接赋值给tracking_w_need,以w_in1的形式进入feedback模块。通过这几个公式更新迭代数值“algorithm
if error1 / w_in1 <= 0.01 then
w_neednew := w_in1 + a * (p0 - p);
else
w_neednew := w_in1;
end if;
if w_neednew <= 0 then
w_neednew := 0.001;
end if;
equation
test = a * (p0 - p);
error1 = abs(w_in1 - w_actul);
test3 = w_neednew - w_in1;”现在的问题是,我想让上一次的输出的tracking_w_need作为第二次的w_in1输入。但是,feedback输出的w_neednew恒等于setpoint=tracking_w_need,这就导致,通过tracking_w_need=w_in1递推得到,w_neednew = w_in1 ,这与公式w_neednew := w_in1 + a * (p0 - p);相矛盾,显然,前一步的数据未封存更新。你听懂我的问题了吗?想办法帮我修改一下。
