The open source platform for numerical computation

Similar documents
Microsoft Word - ClassicalControl_Matlab.doc

Microsoft Word - ModernControl_Scilab.doc

Microsoft PowerPoint - ce07-13b.ppt

Microsoft PowerPoint - chap8.ppt

Microsoft PowerPoint - H22制御工学I-10回.ppt

Microsoft Word - ModernControl_Matlab.doc

Microsoft PowerPoint - 6.PID制御.pptx

Microsoft PowerPoint - ce07-09b.ppt

Microsoft PowerPoint - H22制御工学I-2回.ppt

Scilab 勉強会 ( 第 3 回 ) 高橋一馬, 十文字俊裕, 柏倉守 平成 17 年 11 月 15 日 関数 ファイルはエディタを用いて作成する.Scilab にはエディタ SciPad が附属している.SciPad では なく他のエディタを利用してもよい. 作成した関数は Scilab に

Microsoft Word - 第9章 PID制御.doc

航空機の運動方程式

第 11 回 R, C, L で構成される回路その 3 + SPICE 演習 目標 : SPICE シミュレーションを使ってみる LR 回路の特性 C と L の両方を含む回路 共振回路 今回は講義中に SPICE シミュレーションの演習を併せて行う これまでの RC,CR 回路に加え,L と R

Microsoft Word - 実験テキスト2005.doc

<4D F736F F D208D5C91A297CD8A7793FC96E591E631318FCD2E646F63>

Microsoft Word - Matlab使用法

例 e 指数関数的に減衰する信号を h( a < + a a すると, それらのラプラス変換は, H ( ) { e } e インパルス応答が h( a < ( ただし a >, U( ) { } となるシステムにステップ信号 ( y( のラプラス変換 Y () は, Y ( ) H ( ) X (

Microsoft PowerPoint - H21生物計算化学2.ppt

システム工学実験 パラメータ推定手順

今日の話のメインターゲット R を ( 入れてみたが ) 使い方が分からない人 そもそも使ったことが無い人 R の存在を知らなかった人 2

Microsoft PowerPoint - 【最終提出版】 MATLAB_EXPO2014講演資料_ルネサス菅原.pptx

GSLetterNeo vol 年 7 月 形式手法コトハジメ TLA + Toolbox を使って (2)- 熊澤努 sra.co.jp はじめに GSLetterNeo Vol.130 で TLA + Toolbox を紹介しました 今回からより詳しく T

板バネの元は固定にします x[0] は常に0です : > x[0]:=t->0; (1.2) 初期値の設定をします 以降 for 文処理のため 空集合を生成しておきます : > init:={}: 30 番目 ( 端 ) 以外については 初期高さおよび初速は全て 0 にします 初期高さを x[j]

Si 知識情報処理

初めてのプログラミング

PowerPoint Presentation

マニュアルの表記 呼称について本マニュアルでは以下の呼称を使用しています DataNature Smart 管理ツール :DN 管理ツール DataNature Smart クライアント :DN クライアント 画面に表示されるコマンド名などの文字コマンド名やダイアログボックス名など 画面上の固有の文

スライド 1

理工学図書館後期 LS 講習会 きれいなグラフを作ろう! gnuplot 入門

アナログ回路 I 参考資料 版 LTspice を用いたアナログ回路 I の再現 第 2 回目の内容 電通大 先進理工 坂本克好 [ 目的と内容について ] この文章の目的は 電気通信大学 先進理工学科におけるアナログ回路 I の第二回目の実験内容について LTspice を用

PowerPoint プレゼンテーション

Introduction to System Identification

プログラミング基礎

Microsoft PowerPoint - Borland C++ Compilerの使用方法(v1.1).ppt [互換モード]

3.Cygwin で日本語を使いたい Cygwin で以下のコマンドを実行すると それ以降 メッセージが日本語になります export LANG=ja_JP.UTF-8 これは 文字コードを日本語の UTF-8 に設定することを意味しています UTF-8 は Cygwin で標準の文字コードで, 多

(Microsoft Word - PLL\203f\203\202\216\221\227\277-2-\203T\203\223\203v\203\213.doc)

数量的アプローチ 年 6 月 11 日 イントロダクション データ分析をマスターする 12 のレッスン ウェブサポートページ ( 有斐閣 ) 水落研究室 R http:

<4D F736F F D208AC888D B836A F C91808DEC837D836A B81698AC7979D8ED A E646F6

PowerPoint プレゼンテーション

工程’S 9 ヘルプ Excelバーチャート

Microsoft Word - 第2章 ブロック線図.doc

Microsoft Word - 知能機械実験・実習プリント_ docx

Java言語環境Java2SEついて

RLC 共振回路 概要 RLC 回路は, ラジオや通信工学, 発信器などに広く使われる. この回路の目的は, 特定の周波数のときに大きな電流を得ることである. 使い方には, 周波数を設定し外へ発する, 外部からの周波数に合わせて同調する, がある. このように, 周波数を扱うことから, 交流を考える

C#の基本

基本的な利用法

0.0 Excelファイルの読み取り専用での立ち上げ手順 1) 開示 Excelファイルの知的所有権について開示する数値解析の説明用の Excel ファイルには 改変ができないようにパスワードが設定してあります しかし 読者の方には読み取り用のパスワードを開示しますので Excel ファイルを読み取

再起動した状態になり パスワードを入力すると 図 2 のように DEXCS2011 のアイコ ンがデスクトップ上に表示される 2 端末を準備する メニューバーにある端末の形を左クリック 図 2 デスクトップ メニューバーに端末の形がない場合 図 3 メニューバー アプリケーション アクセサリー 端末

POWER EGG V2.01 ユーザーズマニュアル 汎用申請編

Microsoft Edge の場合 (1) Mizdori 無料体験版ダウンロード画面の [ 体験版ダウンロード ] ボタンをクリックします (2) Edge の下部に mizdori_taiken_setup.zip について行う操作を選んでください と表示され ますので [ 開く ] をクリッ

インテル(R) Visual Fortran コンパイラ 10.0

Officeインストールマニュアル

正誤表(FPT1004)

医用工学概論  Medical Engineering (ME)   3年前期の医用工学概論実習と 合わせ、 医療の現場で使用されている 医用機器を正しく安全に使用するために必要な医用工学(ME)の 基礎知識を習得する。

PowerPoint Presentation

MATLAB説明

PowerPoint プレゼンテーション

周波数特性解析

Microsoft PowerPoint - EXPO2012_AKASAKA_rev.2.pptx

データ解析

DBMSリポジトリへの移行マニュアル

Microsoft Word - ラベルマイティStep1.doc

Microsoft Word - 操作マニュアル(PowerPoint2013)

目次 第 1 章はじめに 取扱いについて 記載内容について... 6 第 2 章基本操作 Excel Online を開く ファイル ( ブック ) を作成する ファイル ( ブック ) を開く..

航空機の運動方程式

PowerPoint プレゼンテーション

Microsoft Word - 操作マニュアル(PowerPoint2010).doc

工程’S 9 ヘルプ Excelバーチャート(Sカーブ)

Microsoft Word - NumericalComputation.docx

DVIOUT

フィードバック ~ 様々な電子回路の性質 ~ 実験 (1) 目的実験 (1) では 非反転増幅器の増幅率や位相差が 回路を構成する抵抗値や入力信号の周波数によってどのように変わるのかを調べる 実験方法 図 1 のような自由振動回路を組み オペアンプの + 入力端子を接地したときの出力電圧 が 0 と

Microsoft PowerPoint - spe1_handout11.ppt

補足資料

すると メインメニューと呼ばれる DC さくらのメインウィンドウ部が表示されます ( 下の画面がスクリーンシ ョットです ) メインメニューは ウィンドウ右上の ボタンを押すと閉じます リスト内のアイテムは ダウンロードのタスクを表します ダウンロード状況を把握できます メニュー項目やボタンの説明は

Transcription:

Scilab による古典制御の学習目次 1. はじめに.Scilab の導入 3. ステップ応答, インパルス応答, 一般の応答 4. ボード線図とナイキスト軌跡 5. 時間応答と周波数応答 6. 根軌跡 7. 設計例 8. 積分器と定常偏差 9. 付録古典制御で用いる Scilab 関数の例 014 年 4 月 7 日,5 月 8 日 018 年 4 月 日 1. はじめに 制御性能の解析や制御系設計では, 時間応答のシミュレーションや周波数応答などを計算し, それをグラフに表示することが必要となる. そのような目的に適した数値計算ツールに MATLAB/SIMULIK( 有料 ) や類似機能の Scilab( 無料 ) がある.MATLAB は広く世界の大学で用いられており, 企業の開発にも用いられている. ここでは,Scilab を利用した古典制御の解析設計について入門的な内容を説明する. 章では Scilab を導入する.3 章から5 章では, 古典制御の解析に必要なステップ応答の計算や周波数応答の表示であるボード線図, ベクトル軌跡, 根軌跡の描画例を具体的に示し説明する.6 章ではこれらを用いて古典制御による制御系設計例を示す.7 章では積分器と定常偏差の関係について 次系を例に説明する. 参考文献 : 感度関数と相補感度関数によるフィードバック制御系の特性解析法は,[1] の 11 章と1 章に記している. 続編の現代制御による解析設計を [] に掲載している. [1] 佐伯正美, 制御工学 ( 古典制御からロバスト制御へ ), 朝倉書店,013 [] http://home.hiroshima-u.ac.jp/saeki/index_ja.html [3] 上坂吉則,MATLAB+Scilab プログラミング事典, ソフトバンククリエイティブ株式会社 [4] 佐伯正美 Scilab ボード線図関数プログラム bode.sci [] のホームページに掲載 広島大学佐伯正美 1

.Scilab の導入数値計算のためのオープンソースプラットホーム Scilab 行列計算などの各種の数値計算やグラフ表示ができ, レポート作成に有用である. コマンド入力による電卓風の使い方と一連のコマンドをファイル ( すなわちプログラム ) に入力し一度に実行する使い方がある. 制御系で用いる基本的な関数は用意されており, たとえば, 制御系の時間応答シミュレーション, 周波数特性の表示, 制御系設計などが行える. このような基本的な関数を用いて自分の目的に合ったプログラムも作れる..1 パソコンにインストールする手順 Scilab 6.0.1 の日本語版をダウンロードしインストールする. 以下の図は Scilab5.4.1 の場合のものであるが,Scilab 6.0.1 も同様である.. 電卓風な使い方 ( ひとつのコマンドを画面で入力し実行し結果を表示 ) 1)Scilab をクリックして起動すると図 1のコンソールが表示される. 図 1 Scilab Console ) 図 1の--> にコマンドを入力する. --> help help コマンドにより使える命令と説明 Window ヘルプブラウザ が開かれる ( 図 ). コマンドの意味を知るには, --> help コマンド名 とする. 図 ヘルプブラウザ

図 の Window 内の左に, カテゴリー別に関数が整理されている. 関数の使い方の説明が記されている. たとえば, Elementary functions には, 基本的な計算たとえば ( 平方の計算 sqrt, 線形システムの定義 syslin など ) Linear Algebra には, 行列計算たとえば ( 行列式 det, 固有値 spec など ) CACSD には, 制御系の解析, 設計たとえば ( 時間応答シミュレーション csim, 周波数応答計算 freq など ) 3) 実行例 ( 直接に以下のコマンドを打ち込んでみよう.) 行列 A, ベクトル B を入力し,C=A*B,B の転置, 行列 A の行列式, および, 固有値と固有ベクトルを計算する. 1 4 1 A, B 3 出力例 -->A=[1 4;3 ] 行列 A の入力, コロン ; は改行 A = 1. 4. 3.. -->B=[1;-] 列ベクトル B の入力 B = 1. -. -->C=A*B A と B の積を C へ代入 C = - 7. - 1. -->B' ベクトル B の転置はダッシュ を使う ans = 1. -. -->det(a) 行列式の計算 ans = - 10. -->[T,D]=spec(A) 行列 A の固有値と固有ベクトルを計算し,D と T へ代入する D = 5. 0 3

0 -. T = 0.7071068-0.8 0.7071068 0.6.3 プログラムの作成と実行による使い方上記の実行例では, 以下の作業を逐次行った. これをファイルに入力し, そのファイル ( すなわちプログラム ) を実行することで, 一度に実行できる. その方法を述べる. プログラム A=[1 4;3 ] B=[1;-] C=A*B B' det(a) [T,D]=spec(A) 1)Scilab をクリックして起動すると図 1が表示される. ) 以下で作成するプログラム test.sce を保存するディレクトリは, 図 1のコンソールにおいて, ファイル 現在のディレクトリを変更 で指定できる. 自作プログラムを保存したい場合に前もって変更しておくと便利である. 3) 図 1のコンソールにおいて, メニューの下の左から 1 番目のメモ用紙をイメージしたボタンをクリックする.SciNotes が画面に表示され ( 図 3), そこに上記のプログラムを入力する. 図 3 テキストエディタ SciNotes 4) 入力が終了後に, ファイルを保存する (SciNotes の ファイル 保存 を選択し, ファイル名をたとえば, test.sce として保存する ). 4

5) 実行する. すなわち, コンソールのメニューから ファイル 実行 で,. で 作成し保存したファイル名 ( 上記の例では test.sce ) を指定する. これでプログラム が実行され, 結果が表示される. 出力結果 A = 1. 4. 3.. B = 途中表示は省略 T = 0.7071068-0.8 0.7071068 0.6 実行は完了しました. 5) 作成したファイル test.sce を再度開いて修正したい場合には, 図 1のコンソールにおいて, ファイル ファイルを開く で test.sce を指定すればよい. 3. ステップ応答, インパルス応答, 一般の応答 s1 y P( s) u, P( s) 3 s s 3s1 のステップ応答を計算し,(t, y(t)) を図示せよ. ただし, 時間 t は [0,0] 秒とする. プログラム s=poly(0,'s'); P=syslin('c',(s+1)/(s^3+*s^+3*s+1)) t=0:0.01:0; y=csim('step',t,p); plot(t,y) xtitle('step response','time[s]','y') poly,syslin,csim などのコマンドの意味を知るには, コンソールにおいて,help コマンドを用いる. すなわち, help poly, help syslin, help csim などを入力する. プログラムの説明 ( 各コマンドの意味をコメント文 (// を先頭に書く ) で補足説明している. コメントは不要であれば書かなくても良い.) // Scilab によるステップ応答の数値計算と表示 // システムの伝達関数 P(s) を与える 5

s=poly(0,'s');// sを多項式の変数の表記に用いる P=syslin('c',(s+1)/(s^3+*s^+3*s+1)) // 伝達関数を具体的に与える // 時間を 0.0 から 0.01 の増分で 0 秒まで // 最後のセミコロンを省くと t の値を画面に表示する t=0:0.01:0; //P(s) のステップ応答を時間 t について数値計算し,y に結果が得られる y=csim('step',t,p); // 横軸 t, 縦軸 y として, 結果をプロットする plot(t,y) // 図のタイトルを 'step response', 横軸の説明を 'time[s]', 縦軸の説明を 'y' と書く xtitle('step response','time[s]','y') 節で述べた方法でプログラムを作成し, ファイル名を stepresponse1.sce として保存する. そして, このファイルを実行する. 以下に復習も兼ねて手順を示す. 1) Scilab.exe をクリックして起動する. ) Scilab エディタを用いてプログラムを入力し保存する. 図 4 プログラムの入力 3) 実行する. コンソールのメニューから ファイル 実行 で, stepresponse1.sce を指定する. これでプログラムが実行され, 結果が表示される. 実行結果 P = 1 + s --------------- 3 1 + 3s + s + s 6

図 5 ステップ応答 補足 1) 関数 csim でインパルス応答を計算するには,y=csim('impulse',t,P); とする. 補足 ) 一般の入力 u(t) に対して y(t) を求めるには, 時間ベクトル t に対応した入力ベクトル u(t) を与える. s=poly(0,'s'); P=syslin('c',(s+1)/(s^3+*s^+3*s+1)) t=0:0.01:0; u=sin(t); // 入力信号 u(t)=sin t を与える. y=csim(u,t,p); // シミュレーションする. plot(t,y) xtitle('transient response','time[s]','y') 4. ボード線図とナイキスト軌跡 4.1 ボード線図の描画 P(s) のボード線図を [0.01,10][rad/s] の周波数区間で描け Scilab の制御系設計ツール CACSD で用意されているボード線図を描くプログラムは, bode である. Scilab では周波数の単位に基本的に Hz を採用しており, このため bode も横軸が Hz であり横軸を rad/s で描くことができない. ここでは, ボード線図を rad/s で描く自作の関数 bode.sci を用いる. 同様にゲイン特性は Hz で描く gainplot の代わりに rad/s で描く関数 gainplot.sci を用いる. これらのプログラムは文献 [4] に記している. なお, 関数のプログラムにはファイル名の拡張子に sci を用い, 通常のプログラムには sce を用いることになっている. プログラム bodetest.sce exec('bode.sci',-1)// 関数を使うのに必要 exec('gainplot.sci',-1)// 関数を使うのに必要 7

s=poly(0,'s'); P=syslin('c',(s+1)/(s^3+*s^+3*s+1)) omega=logspace(-,1,100); scf(1); bode(p,omega) scf(); gainplot(p,omega) scf(3); bode(p,omega/(*%pi)) scf(4); gainplot(p,omega/(*%pi)) bodetest.sce の bode と bode の実行結果 図 6a ボード線図 ( 横軸 rad/s)bode.sci 8

図 6b ボード線図 ( 横軸 Hz)bode 9

4. ナイキスト軌跡の描画ボード線図をウインドウ1に表示し, ベクトル軌跡 ( ナイキスト軌跡 ) をウインドウに表示せよ. ナイキスト線図中に示されている周波数の単位は Hz である.rad/s でないので注意が必要である. プログラム nyquistpolt.sce exec('bode.sci',-1) K=1 s=poly(0,'s'); P=syslin('c',(s+1)/(s^3+*s^+K*s+1)) scf(1); omega=logspace(-,1,100); bode(p,omega) scf(); nyquist(p) 図 7-1 ボード線図 ( ゲイン特性と位相特性 ) 図 7- ベクトル軌跡 ( ナイキスト軌跡 ) 10

5. 時間応答と周波数応答 P0( s) s 1 0.4s 1 1 P( s) P0( s) 1 0.05s 1 0.5s 1.045s 1 0.101s 3 0.005s 4 これらつの伝達関数の係数を見ても特性の類似度が分からない. 周波数応答や時間応答で類似度が良く分かることを確認する. プログラム plant_analysis.sce //plant analysis p0 と p1 の比較 exec('bode.sci',-1) //つのプラント s=poly(0,'s'); P0=syslin('c',1/(s^+0.4*s+1)) D=1/(0.05*s+1)^ P=P0*D // ステップ応答の比較 t=0:0.01:0; y0=csim('step',t,p0); y=csim('step',t,p); scf(1); xtitle('step response','time[s]','y') plot(t,y0,t,y) // ボード線図の比較 // 周波数区間 [0.01 10] scf(); omega=logspace(-,1,100); bode(p0,omega) bode(p,omega) // ベクトル軌跡の比較 // 周波数区間 [0.01 10] scf(3); nyquist([p0;p],0.01,10) 11

図 8-1 ステップ応答の比較 図 8- ボード線図の比較 図 8-3 ベクトル軌跡の比較 1

6. 根軌跡 根軌跡の計算 例題 P s 1, H 4s 5 1 で一巡ループ伝達関数が s 5 L PH のときに根軌跡を描 け. Scilab 関数 evans(l,kmax) を用いる. ゲイン K は 0 から Kmax まで描く. プログラム root_locus.sce s=poly(0,'s'); P=syslin('c',1/(s^+4*s+5)); H=syslin('c',1/(s+5)); L=P*H evans(l,300) 図 9 根軌跡と漸近線 13

7. 設計例 設計例 つぎのプラントに対して, ステップ目標値に対して定常偏差がゼロで位相余裕が 60 度と なるように Ks () を設計せよ. 1 P ( s) ( s 1) 1) 定常偏差がゼロとなるには L PK が1 型であることが必要. そこで, 最も簡単な積分 補償とする. K( s) ) 位相余裕が 60 度になるように, ゲイン調整し a を決める. -1) 一巡ループ伝達関数 L PK 図 10 より, 位相余裕が 30 度で a s ( ただし,a=1) のボード線図を描く. 1 ( s 1) L 0.1* s c [rad/s] である. 図 10 P(s) と L(s)=P(s)*(1/s) のボード線図 14

図 11 に閉ループ系のステップ応答を示す. 定常偏差がゼロであるが振動的である. 図 11 T=L/(1+L) のステップ応答 ( 位相余裕 30 度なので振動的, 定常偏差 =0) -) 位相余裕を 60 度とするには,L のゲインを 11[dB] 下に移動するとよい. す なわち, a 11[ db] 0. 8 である. このとき, c 0.04* [rad/s] である. 図 1 K=0.8/s の補償により, 位相余裕が 60 度となる. 15

図 13 ステップ応答の比較 ( ゲイン余裕が 30 度と 60 度 ) 図 13 では応答は振動的でない点で良いが, 応答を 倍ほど速くするように K(s) を設計せよ. ただし, 位相余裕が 60 度で定常偏差がゼロとする. 1)K(s) は積分補償に位相進み補償器を追加する. 位相進み補償器は 0.333, T.5となり, となる. よって, 制御器は 0.1* max 1.5s H( s) 3.5s 1.5s K( s) 3.5s [rad/s] で 30 度進めるものを求めると であり, この PK による位相余裕が 60 度になるようにゲイン調整すると a=1.4 が得 られた. よって, 1.5s 1.4 K( s) 3.5s s このときのボード線図を図 14に示す. 0.09* [rad/s] となるので, 応答が 倍 にできたはずである. 実際にステップ応答 ( 図 15) より速応性が確認できる. c a s 16

図 14 位相進み補償を追加した場合 ( 位相進み補償の追加前後 0.1[Hz] で 30 度進めた ) 図 15 ステップ応答の速応性の改善 ( c 0.09* とc 0.04*, 共に位相余裕は60 度 ) 17

プ ロ グ ラ ム control_design.sce // 制御系設計 exec('bode.sci',-1) // プラント s=poly(0,'s'); t=0:0.01:30; y=csim('step',t,w); scf(); xtitle('step response','time[s]','y') P=syslin('c',1/(s+1)^) plot(t,y) // 制御器 K=syslin('c',1/s) L=P*K // L=PK のボード線図 (a=1) // 周波数区間 [0.01 10] scf(1); omega=logspace(-,1,100); bode(l,omega) // ステップ応答 W=L/(1+L) Wa=La/(1+La) ya=csim('step',t,wa); scf(4); xtitle('step response','time[s]','y') plot(t,ya,t,y) // La=PKa のボード線図 (a=0.8) // 周波数区間 [0.01 10] a=0.8 La=L*a; scf(3); bode(l,omega) bode(la,omega) // ステップ応答の比較 t=0:0.01:30; // 周波数区間 [0.01 10] Lb=P*Kb*1.4 scf(6); bode(la,omega) bode(lb,omega) // Lb=PHa/s ボード線図 // 周波数区間 [0.01 10] Kb=syslin('c',(1+.5*s)/(s*(3+.5*s))) Lb=P*Kb scf(5); bode(la,omega) bode(lb,omega) // ステップ応答の比較 t=0:0.01:30; Wb=Lb/(1+Lb) yb=csim('step',t,wb); scf(7); xtitle('step response','time[s]','y') plot(t,yb,t,ya) // Lb=PHa/s ボード線図 18

8. 積分器と定常偏差 システムの型と周波数応答およびステップ応答の関係を調べる. 図 16 のフィードバック系について考える. 外乱 d=0 とする. d r + e u y K P - 図 16 フィードバック制御系 目的 : システムの型として0 型,1 型, 型があり, 時間応答, 周波数応答の特徴を理解する. PK 方法 : 特性方程式 1 0 が s n s n 0 であり, かつ, 一巡伝達関数 PK が 0 型,1 型, 型となる以下の場合を検討する. 0 型 PK s n 1 型 PK s( s ) s 型 PK s ap0, ここに a n, p0 1 s a p 1 n n n n これらに対して 1) PK のボード線図とベクトル軌跡 PK ) T のステップ応答とランプ応答 1 PK 1 3) 相穂感度関数 T と感度関数 S のゲイン特性 (T=1-S の関係あり ) 1 PK を計算し図示せよ. 0 19

計算結果 0 型の場合 図 17-4 T のランプ応答 0 型 p0=3 図 17-1 PK のボード線図 0 型 p0=3 図 17-5 T のボード線図 0 型 p0=3 図 17- p0=3 PK のベクトル軌跡 0 型 図 17-3T のステップ応答 0 型 p0=3 図 17-6 感度関数 S のゲイン特性 0 型 0

1 型の場合 図 18-1 PK のボード線図 1 型 図 18-4T のランプ応答 1 型 図 18- PK のベクトル軌跡 1 型 図 18-5 相補感度 T のゲイン特性 1 型 図 18-3T のステップ応答 1 型 図 18-6 感度関数 S のゲイン特性 1 型 1

型の場合 図 19-1 PK のボード線図 型 図 19-4T のランプ応答 型 図 19- PK のベクトル軌跡 型 図 19-5 相補感度 T のゲイン線図 型 図 19-3 T のステップ応答 型 図 19-6 感度関数 S のゲイン線図 型

プログラム名 contol_design_ji.sce // 制御系設計 exec("bode.sci",-1) exec("gainplot.sci",-1) // PK の積分器の数 =0,1,の指定 typeselect= // PK のボード線図 // 周波数区間 [wmin wmax] scf(1); omega=logspace(log10(wmin),log10(wmax)); bode([pk],omega) // プラントデータ 次系 wn=1 zeta=0.7 // ナイキスト軌跡 scf(); nyquist([pk],wmin,wmax) // 計算区間 wmin=0.01; wmax=100; tmax=30; dt=0.01; ////////////////////////////// s=poly(0,'s'); if typeselect==0 ////////////////////////////// // 0 型プラント p0=3 a=wn*wn/(p0+1); PK=syslin('c',(p0*a)/(s^+*zeta*wn*s+a)) elseif typeselect==1 ///////////////////////////////////// // 1 型プラント PK=syslin('c',wn^/(s*(s+*zeta*wn))) elseif typeselect== // 型プラント PK=syslin('c',(*zeta*wn*s+wn^)/s^) end // ステップ応答 S=1/(1+PK) T=1-S t=0:dt:tmax; y=csim('step',t,t); scf(3); xtitle('step response','time[s]','y') plot(t,y) // ランプ応答 integral=syslin('c',1/s) T=T*integral t=0:dt:tmax/3; y=csim('step',t,t); scf(4); xtitle('ramp response','time[s]','y') plot(t,y,t,t) // S,T のゲイン線図 // 周波数区間 [wmin wmax] scf(5); gainplot(t,omega) scf(6); gainplot(s,omega) 3

9. 付録古典制御で用いる Scilab 関数の例モデル P の作成 P1 と P の並列結合 P1 と P の直列結合時間 t の指定ステップ応答の計算インパルス応答の計算入力 u に対する応答の計算グラフ表示描画の winndow No. 3 を開く P(s) のボード線図の描画 ( 横軸 Hz) P(s) のゲイン線図の描画 ( 横軸 Hz) P(s) のナイキスト線図の描画 (Hz) 一巡関数が L(s) のフィードバック系の根軌跡自作関数 bode.sci ( 横軸 rad/s) を使う場合自作関数 gainplot.sci ( 横軸 rad/s) を使う場合 s=poly(0, s ) P=syslin( c,(s+1)/(s^+s+3)) P3=P1+P P3=P1*P t=0:0.01:0 y=csim( step,t,p) y=csim( impulse,t,p) y=csim(u,t,p) plot(t,y) xset( window,3) bode(p,wmin,wmax) gainplot(p,wmin,wmax) Nyquist(P) Evans(L,Kmax) exec( bode.sci,-1); w=logspace(-1,,00); bode(p,w) exec( gainplot.sci,-1); gainplot(p,w) 4