1557 1

[Weka及其他] MATLAB课程:代码示例之Control System Design and Analysis(二) [推广有奖]

企业贵宾

已卖:160份资源

巨擘

0%

还不是VIP/贵宾

-

威望
4
论坛币
624047 个
通用积分
180.4857
学术水平
918 点
热心指数
987 点
信用等级
841 点
经验
399143 点
帖子
9786
精华
48
在线时间
17322 小时
注册时间
2014-8-19
最后登录
2022-11-2

楼主
widen我的世界 学生认证  发表于 2016-3-15 15:32:21 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币

MATLAB课程:代码示例之Control System Design and Analysis(二)


Yaw Damper Design for a 747® Jet Aircraft


This example shows the design of a YAW DAMPER for a 747® aircraft using the classical control design features in Control System Toolbox™.



A simplified trim model of the aircraft during cruise flight



has four states:

   beta (sideslip angle), phi (bank angle), yaw rate, roll rate

and two inputs: the rudder and aileron deflections.

All angles and angular velocities are in radians and radians/sec.

Given the matrices A,B,C,D of the trim model, use the SS command to create the state-space model in MATLAB®:

A=[-.0558 -.9968 .0802 .0415;     .598 -.115 -.0318 0;    -3.05 .388 -.4650 0;        0 0.0805 1 0];B=[ .00729  0;   -0.475   0.00775;    0.153   0.143;     0      0];C=[0 1 0 0;   0 0 0 1];D=[0 0;   0 0];sys = ss(A,B,C,D);


and label the inputs, outputs, and states:

set(sys, 'inputname', {'rudder' 'aileron'},...         'outputname', {'yaw rate' 'bank angle'},...         'statename', {'beta' 'yaw' 'roll' 'phi'});


This model has a pair of lightly damped poles. They correspond to what is called the Dutch roll mode. To see these modes, type

axis(gca,'normal')h = pzplot(sys);setoptions(h,'FreqUnits','rad/s','Grid','off');


Right-click and select "Grid" to plot the damping and natural frequency values. You need to design a compensator that increases the damping of these two poles.

Start with some open loop analysis to determine possible control' strategies. The presence of lightly damped modes is confirmed by ' looking at the impulse response:'

impulseplot(sys)


To inspect the response over a smaller time frame of 20 seconds, you could also type

impulseplot(sys,20)


Look at the plot from aileron to bank angle phi. To show only this plot, right-click and choose "I/O Selector", then click on the (2,2) entry.

This plot shows the aircraft oscillating around a non-zero bank angle. Thus the aircraft turns in response to an aileron impulse. This behavior will be important later.

Typically yaw dampers are designed using yaw rate as the sensed output and rudder as the input. Inspect the frequency response for this I/O pair:

sys11 = sys('yaw','rudder');    % select I/O pairh = bodeplot(sys11);setoptions(h, 'FreqUnits','rad/s','MagUnits','dB','PhaseUnits','deg');


This plot shows that the rudder has a lot of authority around the lightly damped Dutch roll mode (1 rad/s).

A reasonable design objective is to provide a damping ratio zeta > 0.35, with natural frequency Wn < 1.0 rad/s. The simplest compensator is a gain. Use the root locus technique to select an adequate feedback gain value:

h = rlocusplot(sys11);setoptions(h,'FreqUnits','rad/s')


Oops, looks like we need positive feedback!

h = rlocusplot(-sys11);setoptions(h,'FreqUnits','rad/s')


This looks better. Click on the blue curve and move the black square to track the gain and damping values. The best achievable closed-loop damping is about 0.45 for a gain of K=2.85.

Now close this SISO feedback loop and look at the impulse response

k = 2.85;cl11 = feedback(sys11,-k);


Note: feedback assumes negative feedback by default

impulseplot(sys11,'b--',cl11,'r')legend('open loop','closed loop','Location','SouthEast')


The response looks pretty good.

Now close the loop around the full MIMO model and see how the response from the aileron looks. The feedback loop involves input 1 and output 1 of the plant:

cloop = feedback(sys,-k,1,1);impulseplot(sys,'b--',cloop,'r',20)           % MIMO impulse response


The yaw rate response is now well damped.

When moving the aileron, however, the system no longer continues to bank like a normal aircraft, as seen from

impulseplot(cloop('bank angle','aileron'),'r',18)


You have over-stabilized the spiral mode. The spiral mode is typically a very slow mode that allows the aircraft to bank and turn without constant aileron input. Pilots are used to this behavior and will not like a design that does not fly normally.

You need to make sure that the spiral mode doesn't move farther into the left-half plane when we close the loop. One way flight control designers have fixed this problem is by using a washout filter.

Washout Filter:


Using the SISO Design Tool (help sisotool), you can graphically tune the parameters k and a to find the best combination. In this example we choose a = 0.2 or a time constant of 5 seconds.

Form the washout filter for a=0.2 and k=1

H = zpk(0,-0.2,1);


connect the washout in series with your design model, and use the root locus to determine the filter gain k:

oloop = H * (-sys11);          % open loop'h = rlocusplot(oloop);setoptions(h, 'FreqUnits','rad/s')sgrid


The best damping is now about zeta = 0.305 for k=2.34. Close the loop with the MIMO model and check the impulse response:

k = 2.34;wof = -k * H;            % washout compensatorcloop = feedback(sys,wof,1,1);impulseplot(sys,'b--',cloop,'r',20)


The washout filter has also restored the normal bank-and-turn behavior as seen by looking at the impulse response from aileron to bank angle.

impulseplot(sys(2,2),'b--',cloop(2,2),'r',20)legend('open loop','closed loop','Location','SouthEast')


Although it doesn't quite meet the requirements, this design substantially increases the damping while allowing the pilot to fly the aircraft normally.



二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:MATLAB课程 Analysis control Analysi alysis MATLAB课程 代码示例 ControlSystemDesignandAnalysis


https://www.cda.cn/?seo-luntan
高薪就业·数据科学人才·16年教育品牌

沙发
跟着风儿走 在职认证  发表于 2016-3-15 15:33:08
MATLAB课程:代码示例,有用有用,学无止尽。。

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-20 12:52