' schrieb:So hier ist das vi.
Der Code für den Regler ist noch nicht so ganz fertig durchdacht. bei den zykluszeiten macht das so auch noch keinen Sinn da weiter dran zu arbeiten.
Mfg Christian
Also bei mir ist die angezeigte Zykluszeit 0ms - also kleiner als 1ms. Allerdings habe ich eine normele PCI-Einsteckkarte der M-Serie und keine von diesen USB-Dingern.
Aber auf jeden Fall ist der Einzelwert-Input nicht optimal, da dann der ADC jedesmal erst gestartet wird und die Konvertierungzeit abgewertet werden muß, bis der Wert zur Verfügung steht. Unbedingt "Kontinuierliche Eingabe" enstellen, dann liegen die Daten in der Regel fertig im Buffer.
Windows ist kein Echtzeitsystem, es ist mit Stockungen infolge Interrupts zu rechnen. Die Folgen lassen sich allerdings abmilderen. Man holt bei jedem Schleifendurchlauf alle Daten aus dem Buffer und verwendet nur den neuesten Wert. Sollten mehr als 1 Wert im Buffer gelegen haben, also beispielsweise 2, dann hat so eine Stockung stattgefunden. Man solte das dann bei den Berechnungen berücksichtigen und im Integrator und Differentiator den Wert 2dt nehmen. Du verwendest übrigens gar kein Delta T in Deinem Integrator, und wenn Du es tätest, wären ganzzahlige Vielfache von 1 ms wohl auch zu ungenau. Auch das wäre ein Argument, die kontinuierliche Messwerterfassung zu verwenden, bei denen viele kleinere dt möglich sind.
Gruß Ludwig