日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

3 控制器设计

發布時間:2024/8/1 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 3 控制器设计 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

原文鏈接

控制器設計

基于roll, pitch, yaw的傳遞函數表達的系統的線性數學模型

使用Matlab仿真工具設計了一個閉環控制器。

首先,在Matlab腳本里面定義系統模型的常量。

%% Constants d = 0.45; % diameter quadrocopter l = sqrt(d^2/8); % distance between one rotor and center of mass m = 1.0024; % mass of quadrocopter g = 9.81; % gravitational acceleration kPWM = 7.8502; % proportional constant omega/PWMJxx = 0.01046412; % mass moment of inertia xb Jyy = 0.010746965; % mass moment of inertia yb Jzz = 0.020576095; % mass moment of inertia zbbT = 7.90261e-06; % proportional coefficient blade thrust/(omega^2) bH = 1.66057e-7; % proportional coefficient blade torque/(omega^2)% system gains k_phi = l*bT*kPWM*sqrt(m*g*bT)/Jxx; k_theta = l*bT*kPWM*sqrt(m*g*bT)/Jyy; k_psi = bH*kPWM*sqrt(m*g*bT)/Jzz;

Z變換

在設計控制器之前,考慮到要控制的系統是離散的,所以需要變換到z域。傳感器MPU-9150的測量頻率是50Hz,是整個系統中最慢的部分,所以由它來定義控制系統的采樣頻率。

%% Z-transform % sample time T_sample = 1/50;% LTI-System of quadcopters phi (roll) Gs_phi_s = tf(k_phi,[1 0 0]);% transfer function continuous to discrete Gs_phi_z = c2d(Gs_phi_s, T_sample);

PD極點配置

第一步,通過離散z域的極點配置,設計了控制器中四旋翼的roll變化部分。在復z平面實軸上的0.83處有3個穩定極點,用它們來設計閉環控制系統。在下面的Matlab腳本里面還做了關于控制器傳遞函數中的多項式的計算。

%% Pole-placement % desired poles d_phi = [0.83 0.83 0.83];[Gs_phi_z_num, Gs_phi_z_den] = tfdata(Gs_phi_z,'v'); Gs_phi_z_num = Gs_phi_z_num(2:end); [Gc_phi_z_num, Gc_phi_z_den] = placepole(Gs_phi_z_num, Gs_phi_z_den, d_phi);% controller Gc_phi_z = tf(Gc_phi_z_num,Gc_phi_z_den,T_sample);

閉環控制系統的復極點-零點映射圖(pole-zero map)表明,所有的極點的實部,都是指定的0.83。

這樣的閉環系統,用matlab仿真結果如下,是一個建立時間大約為1s的階梯響應。

設計的控制器

和一個一般傳函形式的離散PD控制器是等價的

上式可以寫成

為了能在飛行測試中常規調整控制器參數,控制器設計成PD參數形式。
比較上面幾個式子,可以找到轉換關系

這些參數可以輕易地在測試飛行器的過程中調整。

%% PID controller % Controller coefficients a_phi = fliplr(Gc_phi_z_den(2:end)); b_phi = fliplr(Gc_phi_z_num);% PD-Parameters P_phi = (b_phi(1)+b_phi(2))/(a_phi(1)+1); N_phi = (a_phi(1)+1)/T_sample; D_phi = (b_phi(2)-(b_phi(1)+b_phi(2))/(a_phi(1)+1))*T_sample/(a_phi(1)+1);

同樣的流程用于pitch和yaw。值得注意的是,對于yaw,要控制的是角速度,而不是角度。所以,在相應的極點配置下,最終模型就是一個簡單的P控制器。

控制器輸出

As the controller outputs for controlling the quadcopter’s attitude are summarized by

控制飛行器姿態的飛控輸出可以總結為以下形式

每個PWM信號代表一個電機,計算的時候,要考慮懸停所需要的PWM信號部分。

仿真

閉環控制系統在Matlab的仿真器里面仿真,仿真模型包括AttitudeControl描述控制器,以及MM代表四旋翼的非線性數學模型。考慮到控制系統的離散形式,零階極點元素也輸入了模型中。

子系統AttitudeControl包含3個PID控制器,利用輸出來精確計算輸入。

閉環控制系統中每個角度的階躍響應如下所示。第三個圖看起來不太一箱,是因為它控制的是角速度,而不是角度。

拓展成PID控制器

第一次飛行測試發現,由于飛機的質心和幾何中心不重合,導致飛機側翻。所以,控制器需要一個額外積分部分加以擴展。離散的PID控制器模型如下表示:

轉換分數形式,得到

這就得到了分子和分母的多項式形式。這些多項式以數組的形式,送給控制算法。

積分增益I通過實驗確定。

Implementation

數字控制器在Infineon XMC-4500上面實現了,在AttitudeController.c 和 AttitudeController.h兩個文件中。

控制器代碼的實現細節,可以在5. Software找到。

總結

以上是生活随笔為你收集整理的3 控制器设计的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。