Data Acquisition from a force plate
16 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
This is the matlab code I have created to get force plate signals.
AI=analoginput('dtol',0);
set(AI,'InputType','SingleEnded');
chan=addchannel(AI,1:6);
set(chan,'InputRange',[-10 10]);
duration=10;
set(AI,'SampleRate',250);
actualrate=get(AI,'SampleRate');
set(AI,'SamplesPerTrigger',duration*actualrate);
set(AI,'TriggerChannel',chan(3));
set(AI,'TriggerType','software');
set(AI,'TriggerCondition','entering');
set(AI,'TriggerConditionValue',[10 10]);
start(AI)
wait(AI,duration+5);
data=getdata(AI);
plot(data)
xlabel('Time')
ylabel('signal(volts)')
But if I run, the following error shows up. Even if I put longer time into the wait funtion, the error shows up again and again.
??? WAIT reached its timeout before OBJ stopped running.
Error in ==> daqdevice.wait at 51
wait( uddobjs, waittime );
0 Kommentare
Akzeptierte Antwort
Chirag Gupta
am 27 Apr. 2011
The error is probably due to the fact that you have set TriggerConditions
set(AI,'TriggerChannel',chan(3));
set(AI,'TriggerType','software');
set(AI,'TriggerCondition','entering');
set(AI,'TriggerConditionValue',[10 10]);
I am not sure what the TriggerCondition entering stands for and what the Trigger Condition Value of [10 10] means. Could you further explain that? Should'nt TriggerConditionValue be a single number or a range?
So it is possible that your acquisition has not been triggered in the 15 seconds that you wait for it. A better check would be:
while(~AI.Logging)
disp('Waiting for trigger');
pause(1);
end
disp('Triggered');
wait(AI,duration*1.1);
...
But first ensure with your conditions, whether the acquisition is even getting triggered.
4 Kommentare
Chirag Gupta
am 27 Apr. 2011
In the code above, you can remove both sets to Trigger as they are not doing anything.
I am assuming that the actual rate is also 250. With this code, what exactly gets printed on the MATLAB command prompt?
(You can also remove the while loop).
With TriggerChannel set and TriggerType set to 'software'. Your TriggerCondition and TriggerConditionValue specification should be clear. I am not sure of the Data Translation values for the same, but I would assume that the TriggerConditionValue would be just 10. If the signal reaches 10, you trigger!
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Simultaneous and Synchronized Operations finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!