Fachartikel and Newsletter

Steuerung eines Motors mithillife von Arduino: Eine fallstuddie für datengestützte Modellierung und Entwurf von Steuerungen

Von Pravallika Vinnakota, MathWorks


Die Abstimmung einer Steuerung auf einen physikalischen原型oder eine Anlagenhardware kann unsichere Betriebsbedingungen und eine Beschädigung der Hardware zur Folge haben。Ein zuverlässigerer Ansatz best darin, Ein Anlagenmodell zu erstenen und dessen Verhalten zu simulieren, um die Steuerung unterverschienen Betriebsmodi prüfen zu können。Damit lassen sich um, Was-wäre-wenn ' Szenarien risikofrei durchspielen。

温希·达斯·安拉根模型夜生命理论家格伦拉根bzw。德国德国信息系统lässt,德国德国信息系统模型替代基础/Ausgabe-Größen德国德国信息系统。Für den Entwurf einfachen Steuerung kann ein lineares模型niedrig Ordnung berits ausreichend sein。Die detaillierte分析下Entwurf einer Steuerung mit höheren Anforderungen hinggen erfordert ein detailgetreueres und möglicherweise nichtlineares模型。

Anhand einer einfachen Steuerung für einen Gleichstrommotor zeigt diesel Artikel, wie ein anlagenmodel aus ein -/ ausgae - daten identifiziert wid, wie dieses model für den Entwurf einer Steuerung eingesetzt wid und wie die Steuerung schließlich implementiert werden kann。Der Workflow enthält die folgenden Schritte: Erfassen Der Daten, Identifizieren von linearen und nicht linearen Anlagenmodellen, Entwerfen und Simulieren von Feedbacksteuerungen und Implementieren dieser Steuerungen auf Embedded Mikroprozessoren für Echtzeittests。

模型和剧本都是一样的下载verfugbar。

Der Gleichstrommotor: Ziele beim Entwurf Der Steuerung

Das physikalische System ist in Gleichstrommotor, der mithilife eines Motortreibers (Abbildung 1)一个eine Arduino®非铂金angeschlossen。Es soll eine Feedbacksteuerung entworfen werden, damit diesel Motor eine Referenzposition nachverfolgen kann。参考基准für电机定位信号。

北安勒根柴油机Spannung an den Motor erzeugt dieser das Drehmoment, das die Drehung der Motorwelle bewirkt。Mittels eines电位器wider der Drehwinkel der Motorwelle gemessen mit der Steuerung rückgekoppelt。

Abbildung 1。Arduino-Platine一个einen Gleichstrommotor angeschlossen。
Abbildung 1。Arduino-Platine一个einen Gleichstrommotor angeschlossen。

Der Motortreiber auf dem IC steigert die Stromstärke und kann den Motor in beide Richtungen antreiben。andhand der位置daten des Motors, die über einen analogen Eingang auf der Arduino-Platine erfast werden, erfolgt die Fehlerberechnung zwischen den referenund istdaten (der Steuerungseingabe)。Das Spannungssignal (die Steuerungsausgabe) wd als pmm - signal über zwei analog Ausgänge auf der Platine an den Treiber-IC weitergeleitet, der den Motor mit den entsprechenden Antriebsströmen versorgt。

稳定和冻结系统的变化和调整für参考和调整的变化和调整的最小变化和调整Überschwingens。

Erfassen和Verarbeiten der Daten

Für Verbindung des Host-PCs mit der Arduino-Platine wid mit S金宝appimulink®eine ex - datei generiert, die auf der Hardware ausgeführt wid。Abbildung 2 zeigt die 金宝appSimulink-Bibliothek für die Arduino-Hardware。

SystemID_Figure2_w.jpg的副本
Abbildung 2。金宝appSimulink-Blockbibliothek: Hardware- target zur Verwendung mit Arduino硬件。

Zur Datenerfassung sendet die Arduino-Platine Spannungssignale an den Motor und mistst die resultierenden Motorwinkel, die in ein金宝app simulink - model eingespeist werden。in zweites s金宝appimulink - model stellt die Kommunikation zwischen主机和Arduino-Platine her, um Spannungssignale zu senden bzw。Winkeldaten zu empfangen。

在dem模型,das auf der Arduino Uno-Platine (Abbildung 3) ausgeführt怪异,最原始的MATLAB®-Funktionsblock“电压命令到引脚”信号vom serialanschluss aus und leitet die Spannungssignale and die entpreschenden analogen Ausgänge weiter。Für die Kommunikation zwischen主机计算机和Arduino-Platine串口Kommunikation protokoll verwendet。达斯CreateMessage-Subsystemerstellt ein serielles Signal ausden Motorpositionsdaten, die über die analogen Eingänge auf der Platine erfast werden。

SystemID_Figure3_w.jpg的副本
Abbildung 3。金宝appsimulink - model, das auf dem Arduino-Board ausgeführt wid。
Die Echtzeitanwendung winfach mit der Befehlsfolge工具>在目标硬件上运行>运行ausdem通用模型。Damit lassen sich nun die Eingabe-/Ausgabedaten mit dem模型,das auf dem主机-计算机(Abbildung 4) ausgeführt怪异,erfassen。
[de-de] SystemID_Figure4_w.jpg
Abbildung 4。模型,das auf dem主机计算机ausgeführt奇怪。

mitverschiedenen Spannungsprofilen widdann das系统愤怒和werden die resultierenden位置daten dokumentiert。amendder仿真generiert die信号测井函数在Simulink ein对象,das alle原kollierten金宝app信号Zeitreihenobjekte enthält。

Anschließend werden die erfassten Daten für die Schätzung und Validierung aufbereitet。Mit den folgenden Befehlen konvertieren wir die Daten iniddata-对象,在das系统识别工具下系统识别工具箱™zu importieren。

> > logsoutlogsout = 金宝appSimulink. simulationdata . dataset包:Simulink. logsout = Simulink. simulationdata . datasetSimulationData特征:名称:'logsout'总元素:2元素:1:'Voltage' 2: 'Angle' -使用getElement按索引或名称访问元素。-使用addElement或setElement添加或修改元素。方法,父类>> u = logout . getelement (1).Values.Data;>> y = logout . getelement (2).Values.Data;> > bounds1 = iddata (y, u, 0.01,“InputName”、“电压”、“OutputName”的角度 ',... ...' InputUnit”、“V”、“OutputUnit”、“度”)时域数据集,有1001个样本。采样时间:0.01秒输出单位(如指定)角度度输入单位(如指定)电压V

Für模范的生命之殇zwolf Datensatzeausgewählt, um eine adäquate安瑞隆des系统zu gewährleisten und eine ausreichende Datenmenge zur Verfügung zu stellen。

Entwickeln von Anlagenmodellen andhand experimenteller Daten

as Entwickeln von Anlagenmodellen mithilife von Methoden zur系统识别erfordert einen komproms zwischen Modellzuverlässigkeit und Modellierungsaufwand。我在地球上的伟大典范,höher在地球上的美好和死亡。他的理论,他的理论模型,他的系统动力学,他的理论。

Der typische Workflow für die systemidentification siht wir folgt aus: Zunächst wid ein einfaches lineares System abgeschätzt;anschließend wid ein detaillierteres, nicht lineares model bestimmt, das den Motor genauer abbildet和das nichtlineare Verhalten erfast。Während模型线für系统运行系统和系统运行系统的仿真模型线ermöglicht系统运行系统和系统运行系统的仿真模型线。

线性Systemidentifikation

Mithilfe deriddata-物体连接zunächst ein lineares dynamisches model der Anlage als zeitkontinuierliche Transferfunktion geschätzt。Für diese Schätzung鸟死安扎尔和Polen和Nullstellen安吉格本。系统识别工具箱bestimmt anschließend automatisch deren Positionen, um die Übereinstimmung mit den ausgewählten Datensätzen zu maximieren。

用Befehl启动das系统识别工具:

> >鉴别

法国进口德国werden die Arbeitsdaten ausgewählt,德国进口德国Schätzung des verwendet werden solen,德国进口德国Validierungsdaten,德国进口德国geschätzte德国模型werden soll。Anfänglich lassen siich hierzu dieselben Datensätze verwenden。Weitere Datensätze werden schließlich zur Bestätigung der Ergebnisse herangezogen。Abbildung 5 zeigt das系统识别工具是重要的数据。Der Datensatz für die Schätzung beruht auf einem实验,mit dem das Anregen von Nichtlinearitäten im系统vermieden werden sollte。

SystemID_Figure5_w.jpg的副本
Abbildung 5。系统识别工具重要资料。

Die geschätzte Transferfunktion für diese Daten ist im Beispiel eine zeitkontinuierliche Transferfunktion mit zwei Polen und onhne Nullstellen (Abbildung 6)。

SystemID_Figure6_w.jpg的副本
Abbildung 6。Benutzeroberfläche“Kontinuierliche Transferfunktion”。

Mittels,模型输出的im系统识别工具wid模具Simulationsantwort des geschätzten模型mit den gemessenen Daten verglichen。死亡Übereinstimmung zwischen der Reaktion des geschätzten linearen models und dem Datensatz für死亡Schätzung beträgt 93, 62% (Abbildung 7)。

SystemID_Figure7_w.jpg的副本
Abbildung 7。图mit Vergleich zwischen geschätzter modelreaktion und Schätzdaten。

嗯,sicherzustellen, dass die geschätzte Transferfunktion die Motordynamik wirklich abbildet, muss sie mit einem weiteren Datensatz validiert werden。传动装置unabhängigen Datensatzes,传动装置线性verhält,传动装置Übereinstimmung mit ausreichender Genauigkeit (Abbildung 8)。

SystemID_Figure8_w.jpg的副本
Abbildung 8。图mit Vergleich zwischen geschätzter模型反应和有效性数据。

Die Übereinstimmung ist zwar nicht perfect, Die identifiierte Transferfunktion erfast Die Systemdynamik jedoch auf angemessene Weise。德国德国德国德国德国德国德国德国für德国德国德国德国。

Darüber hinaus lässt sich der影响温度模型分析人。模型,die mithilife der System Identification Toolbox generiert wurden, enthalten nicht nur Informationen über Nennparameterwerte, sondern auch über Parameterunsicherheiten, die in einer Parameter-Kovarianzmatrix gekapselt sind。Als mas für die Zuverlässigkeit des模型hängt die berechnete Unsicherheit folgenden Faktoren ab: external Störungen, die auf das System einwirken;nicht modellierte Dynamik des System;und Menge der gesammelten Daten。Die Unsicherheit lässt sich visualisieren, indem Die entsprechenden Auswirkungen zusammen mit der模型草在einem diagram dargestellt werden - z. B. mit einemBode-Diagrammder geschätzten Transferfunktion mit Konfidenzintervall der Standardabweichung (Abbildung 9)。

SystemID_Figure9_w.jpg的副本
Abbildung 9。博德图des geschätzten模型mit模型。

系统识别

线性动力学模型,动态基础,数据基础,线性,可测性,可测性,可测性,可测性,可测性,可测性,可测性。Mit solch einem anlagenmodel kann das nichtline Verhalten des Motors jedoch niht er快速werden。

Weitere Datensätze zeigen beispielsweise, dass die Reaktion des Motors bei einem Winkel von ca. 100°in die Sättigung läuft, oder dass der Motor nicht auf kleine Befehlsspannungen reagert,是möglicherweise an der Trockenreibung liegt。

在folgenden Schritt wild ein模型des Gleichstrommotors mit höherer Genauigkeit bestimmt - In nichtlineares模型。Eine nähere Betrachtung der Daten ergibt, dass die Änderung der Reaktion des Motors in Bezug auf die Spannungsänderung nicht linear verläuft。diesel Trend weist auf ein neht lineares, Hysterese-ähnliches Verhalten hin。Nichtlineare ARX (NLARX)-模型bieten ausreichend Flexibilität und ermöglichen es, ein derartiges Verhalten unter Verwendung vielfältiger nichtlinearer Funktionen, z. B.小波和Sigmoid-Netzwerken, zu erfassen。Weiterhin können solche模型Effekte berücksichtigen, die mittels benutzerdefinierten Regressoren zu Nichtlinearitäten des系统ermittelt wurden。

Für die NLARX-Modellierung sind Daten mit einer ausreichenden Informationstiefe hinsichtlich der Nichtlinearitäten erforderlich。Im Beispiel werden drei Datensätze kombiniert, die zur Modellschätzung verwendet werden sollen。Weitere fünf Datensätze werden kombiniert, um einen umfangreicheren, für mehere Experimente geeigneten Validierungsdatensatz zu erhalten。

>> mergedD = merge(z7,z3,z6)包含3个实验的时域数据集。实验样品样本时间Exp1 5480 0.01 Exp2 980 0.01 Exp3 980 0.01输出单位(如有指定)角度输入单位(如有指定)电压V>> mergedV = merge(z1,z2,z4,z5,z8);

作为nichtline是模型帽,verschiedene和passbare Komponenten。Für dieses Beispiel wurden modelellordnungen, Verzögerungen, Typ der nichtlinearen Funktion und die Anzahl der Einheiten in der nichtlinearen Funktion angep助理。Weiterhin wurden Regressoren hinzugefügt, die die Sättigung and das Totzonenverhalten darstellen。Nach mehren迭代wurde eine模型struktur ausgewählt, die in Sigmoid-Netzwerk mit并行线性器函数函数和einen Satz von Regressoren als Eingaben verwendete。模具参数diesells erreichen nach Abschätzung Die bestmöglichen Simulationsergebnisse (Abbildung 10)。

SystemID_Figure10_w.jpg的副本
Abbildung 10。Benutzeroberfläche für die nicht lineare ARX (NLARX)-Modellschätzung。

Das resultierende model hat eine hervorragenda Übereinstimmung von > 90%;dies gilt sowohl für die Schätzdaten als auch für die Validierungsdaten。柴油机模型kann sowohl für die Steuerungsentwicklung als auch für die分析和预测verwendet werden。

Entwerfen der Steuerung

修女lässt sich eine id - steuerung für das genauere nichtlineare model entwerfen。Hierzu wid das geschätzte, nichtlineare modelell a einem relevanten Betriebspunkt linearisiert und anschließend die Steuerung für dieses linearisierte modelell entworfen。

Die PID-Steuerung wabgestimmt und deren参数ausgewählt (Abbildung 11)。

SystemID_Figure11_w.jpg的副本
Abbildung 11。Benutzeroberfläche“PID调谐器”。

Die Leistungsfähigkeit diesel Steuerung weird auch anhand des nichtlinearen model geprüft。12 zeigt das simulink -金宝app model,利用arx - modelermittelt wd进行模拟。

SystemID_Figure12_w.jpg的副本
Abbildung 12。金宝appsimulink - model zum Testen der Steuerung mit dem geschätzten nichtlinearen model。

Anschließend werden die闭环- sprungantworten des linearen und nichtlinearen模型bezüglich einer gewünschten Referenzposition von 60°ermittelt (Abbildung 13)。

SystemID_Figure13_w.jpg的副本
Abbildung 13。图mit Sprungantworten,在模具模拟中,基于nichtlineare和linearisite模型。

硬件测试

Die Steuerung wid schließlich über ein S金宝appimulink- model und under integrerten Hardwareunterstützung in Simulink auf dem Arduino Uno Board implementiert (Abbildung 14)。

SystemID_Figure14_w.jpg的副本
Abbildung 14。模型der Steuerung,实现auf dem Arduino板。Das子系统“得到角度”(Winkel abrufen) empfängt Das参考信号über die seriellen Port und konvertiert dies in den gewünschten Winkel für den Motor。Das gleichstrommotor -子系统konfiguriert Schnittstelle zwischen Arduino板和dem physikalischen电机。

Die Steuerung beruht auf dem geschätzten nichtlinearen arx - model, das bezüglich eines ausgewählten Betriebspunktes linearisiert ist。Die Ergebnisse für diese Steuerung zeigen, dass Die Hardwareantwort eine hohe Übereinstimmung mit den Simulationsergebnissen aufweist (Abbildung 15)。

SystemID_Figure15_w.jpg的副本
Abbildung 15。图-模拟和硬件-加载信号für eine Steuerung,线性模型。

茵维特尔试验,茵维特尔试验茵茵zufälligen全民公决。

Auch in diesem Fall stimmt das Verhalten der Hardware in einem hohen Maß mit den Werten ausder Simulation überein (Abbildung 16)。

SystemID_Figure16_w.jpg的副本
Abbildung 16。图zum Vergleich der nachverfolgsleistung bei仿真和auf der硬件für Steuerungen, die mit einem geschätzten nicht linearen模型entwickelt wurden。

diesel Beispiel ist zwar einfach angelegt, enthält jedoch die wichtigsten Schritte für eine datengestützte Steuerung。系统识别工具箱和系统识别模型。Anschließend wurden basierend auf diesen Modellen Steuerung entwickelt und deren Leistungsfähigkeit auf der tatsächlichen硬件验证。

Veröffentlicht 2013 - 92109v00

Artikel für ähnliche Einsatzgebiete anzeigen

Artikel für verwandte Branchen anzeigen