Import data to app during simulation
显示 更早的评论
Hi,
I'm currently trying to control an robot using a matlab app controlling my simulink simulation.
For implementing the inverse kinematics I want to get the current rotation of the joints into my app. But when I try to use toWorkspace I can't access it via "evalin" or searching for it using "who".
So far I tried tons of approaches but nothing works and it starts making no sense to me.
Does anybody here have any experince in exporting live data from simulink into an app?
Here's the problematic part of my simulation/ code.
Thanks in advance! :)
function GOButtonLPushed(app, event)
% Get the values directly from the edit fields
lGoalX = app.rArmGoalXEditField.Value;
lGoalY = app.rArmGoalYEditField.Value;
lGoalZ = app.rArmGoalZEditField.Value;
lGoalXD = 0;
lGoalYD = 0;
lGoalZD = 0;
% Set the values in Simulink
set_param("base_kin/lArm/lGoalX", "value", num2str(lGoalX));
set_param("base_kin/lArm/lGoalY", "value", num2str(lGoalY));
set_param("base_kin/lArm/lGoalZ", "value", num2str(lGoalZ));
set_param("base_kin/lArm/lGoalXD", "value", num2str(lGoalXD));
set_param("base_kin/lArm/lGoalYD", "value", num2str(lGoalYD));
set_param("base_kin/lArm/lGoalZD", "value", num2str(lGoalZD));
%l
for i = 1:7
value = evalin('base', ['out.olJ', num2str(i)]);
disp(value)
lastValue = value.Data(end);
set_param(['base_kin/lArm/lJ', num2str(i)], 'value', num2str(lastValue));
end
%r
for i = 1:7
logsout = evalin('base', 'rJ'+num2str(i));
signalData = logsout.get(['rJ', num2str(i)]);
lastValue = signalData.Data(end); % Last value in the data array
set_param(['base_kin/rArm/rJ', num2str(i)], 'value', num2str(lastValue));
end
end


2 个评论
Walter Roberson
2024-12-21
Could you confirm that you are invoking sim() in a loop, each time advancing the StopTime parameter? "Logged data is written to the workspace when the simulation pauses or stops."
Julian
2024-12-22
采纳的回答
更多回答(0 个)
类别
在 帮助中心 和 File Exchange 中查找有关 Simulation 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!