• 締切済み

Matlab transfer fcn

Matlab simulinkの伝達関数(Transfer Fcnブロック)をソルバー:Eulerとして使用していましたが、matlabではなく、c#で置き換えることになってしまいました。 伝達関数(Transfer Fcnブロック)を詳しくは、わからず使用していたので、困ってしまいました。 参考になるサイト等があれば、教えてください。(できればサンプルプログラム等もあると助かります。)

みんなの回答

回答No.1

ODEを使ったアナログフィルタのシミュレーション環境を1から作るということですか? ハードルが高いと思います。 それより、インパルス不変法や双一次変換を使ってs関数をz関数に変換してデジタルフィルタで演算する方が楽です。

d4003057
質問者

お礼

回答たいへんありがとうございます。 シミュレーション環境を1から作るというこというわけではなく、Transfer Fcnブロックの部分のみを求められています。 単純にデータにフィルターをかける部分のみが必要で当初は、ディジタルフィルターのサイトを参考にしてバターワースフィルターを作成しましたが、Transfer Fcnブロックを通した結果と値が異なる(当然ですが)ため、MATLABのTransfer Fcnブロックと同様なものを作成しなければならなくなりました。 完全に同様というわけではありませんが、ブロック内では、ソルバーとしてオイラーのみ対応した部品ができればと思っています。

関連するQ&A

  • MATLABでサーボモータを制御する方法

    私は今現在、独学でMATLABを勉強しています。 参考書を見ながらいくつかのMファイルやsimulinkのモデルなどを今までつくってきました。 そこでシミュレーションだけではなく、実際に実機を動かしてみたくなり、たまたま持っていたサーボモータを動かしてみようと思い立ちました。しかし、思い立ったは良いものの、実際にMATLABからの制御入力をサーボモータに伝達する方法がわかりません。多分RS232Cを経由して送るとは思うんですが、実際にsimulink上でどのように構成すれば良いのか教えていただきたいです。D/A変換の仕方もちょっとよくわかりません。 マイコンはPICの16F648Aです。 とりあえず、細かい制御は考えないでただMATLABで動かしてみたいだけです。教えてくれる方がいましたらよろしくお願いします。

  • matlab、制御についてです。

    matlab、制御についてです。 matlabを使用して、制御の勉強しています。 式誤差モデルから伝達関数を求める方法はあるのですか? あるのであれば教えていただきたいです。 ちなみに、System Identification Toolboxは入っていません。 お願いします。

  • MATLABを用いたUDP通信のプログラム作成

    MATLABを用いたUDP通信のプログラム作成のことで教えてください。 Windows10のパソコンのキーボードから文字列を入力し、 UDP通信で文字列を渡し、この値をパソコンの画面上に表示させる MATLABプログラム(Simulinkは使 用しない)を書こうとしています。 ・どのように書けばよいか教えてください。 ・また、この場合、ホストアドレス(127.0.0.1 ?)やポート番号をどのように設定すればよいでしょうか? ・さらに、このMATLABプログラムをC言語に変換してテストしたいです(MATLAB Coderを使用) 通信分野については、ほとんど知りません。 宜しくお願い致します。

  • C言語→MATLABへの変換で、困っています。

    学生研究でMATLABを使用しています。 光学測定系で画像を取り込み、それを解析する実験を行っています。 MATLABはプログラム内の値の変更や処理の追加できることから 大変助かっています。 そこで、もともとはC言語でやっていた3種類の処理を 一つのMファイルで行いたいと思い。 只今、C→MATLAB変換するプログラムの書き直しを行っています。 そのうち2種のプログラムは行列の計算がメインだったため何とか Mファイルに書き直すことができたのですが、 最後のひとつが難しい関数らしきものが多く、 MATLABに書き直すことができるプログラムなのかもわからない状態です。 そこで、 ・C→MATLAB変換可能なプログラムか? ・書き直すにあたってどこを部分を直せばよいのか? をアドバイスいただけないでしょうか? ↓MATLAB化したいC言語ファイル http://karispace.web.fc2.com/cmat2.c 一枚のbmp画像から4枚のdatデータを出力するプログラムです。 C言語とMATLABの三ヶ月前に勉強して、使用しており、基礎がわかる程度です。 よろしくお願いします。

  • Matlabで作成したmファイルをC言語に自動変換することは可能ですか?

    大学の研究室で使っているmatlabの機能にC言語のソースを自動生成 する機能があると先生に伺ったのですが、 常識的に考えてそんな便利なことができるとは思えません。 実際に下記に示すtoolboxで自分が作ったmファイルからC言語のソースを、ある程度自動生成することは可能でしょうか? Matlab 2008 b windows-x64版 Matlab 7.7 Simulink 7.2 Image processing toolbox Signal processing toolbox Real time workshop SimulinkとReal time workshopを一度も使ったことが無いので 少し調べて良く判らない点がありました。 Realtimeworkshopでは、Simulinkで生成したブロック線図のみC言語で出 力できるものであり、mファイルからの変換はできないのでしょうか?

  • MATLAB error (mat2gray)

     私のパソコン(WindowsXP)には、MATLAB(Ver5.2)が入っています。しかし、今までMATLABを使ったことはほとんどなく、これから勉強していくつもりでいます。    あるインターネットサイトからあるバイナリデータをタウンロードしMATLABで読み込もうとしています。そのサイトには、読み込むためのサンプルプログラム(mファイル)も紹介されています。しかし、そのサンプルプロクラムで読もうとすると、  "Undefined function or variable 'mat2gray'." というエラー出ます。おそらくmat2grayという関数か変数が必要であるということだと思いますが、私はどうすればいいか全く分かりません。教えてください。

  • Matlabの実行エラーについて

    Matlab6.1を使っています。 他のPCに入っているMatlabで作成し、実行できたプログラムを今使っているPCで実行しようとしたところ、以下のようなエラーが出てしまいました。 エラー内容↓↓↓ >>エラー: File: C:\MATLAB6p1\work\(+関数のプログラム+).m Line: 1 Column: 13 "]"が見つかりません。"identifier"が見つかりました。 >>エラー: ==> C:\MATLAB6p1\work\(mainプログラム).m 行番号: 50 ==> 関数を呼び出すプログラム; プログラムの途中までは動いて、関数を呼び出す際にエラーが出てしまうようです。今までほかのPCでは実行できていたし、カッコや記号が不足している部分もないと思います。 なぜ実行できないのでしょうか・・・? 原因と解決方法を教えていただきたいです、よろしくお願いします。 ちなみに、他のプラグラムの中に今使っているPCで実行できたものもあります。

  • MATLABのmccについて

    MATLABからC/C++のスタンドアロンなアプリケーションを生成するmccについてなのですが、これを利用すればMATLABがインストールされていない状況のWindowsもしくはUnix環境でも実行できるのでしょうか? また使用できるメモリの関係からMATLABのプログラムをC/C++に書き直す必要があるのですが、これを利用すればMATLABから独立したC/C++アプリケーションとなり、わざわざC/C++に書き直す必要はなくなるのでしょうか?

  • MATLABでssを実行すると、未定義な関数としてエラーになる。

    MATLABでssを実行すると、ssが未定義な関数として認識されて エラーになっているようです。 どなたか、対処方法をご存じでしょうか? 宜しくお願いいたします。 ■実行環境 OS:WindowsXP SP2 MATLAB:2007a ■実行したM-ファイル %test l=0.2404; M=0.390; J=0.0712; c=0.695; g=9.81; A=[0 1; -M*l*g/J -c/J]; B=[0; 1/J]; C=[1 0]; D=0; sys = ss(A,B,C,D); ■実行結果 ??? 未定義の関数、またはメソッド 'ss' (タイプ'double' の入力引数)。 エラー ==> test at 13 sys = ss(A,B,C,D); ■調べた事項 >> ver ------------------------------------------------------------------------------------- MATLAB Version 7.4.0.287 (R2007a) MATLAB License Number: XXXXXX Operating System: Microsoft Windows XP Version 5.1 (Build 2600: Service Pack 2) Java VM Version: Java 1.5.0_07 with Sun Microsystems Inc. Java HotSpot(TM) Client VM mixed mode ------------------------------------------------------------------------------------- MATLAB Version 7.4 (R2007a) Simulink Version 6.6.1 (R2007a+) Communications Blockset Version 3.5 (R2007a) Communications Toolbox Version 3.5 (R2007a) Filter Design HDL Coder Version 2.0 (R2007a) Filter Design Toolbox Version 4.1 (R2007a) Fixed-Point Toolbox Version 2.0 (R2007a) Link for ModelSim Version 2.2 (R2007a) Signal Processing Blockset Version 6.5 (R2007a) Signal Processing Toolbox Version 6.7 (R2007a) Simulink Fixed Point Version 5.4.1 (R2007a+) Trademarks ------------------ MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, and xPC TargetBox are registered trademarks and SimBiology, SimEvents, and SimHydraulics are trademarks of The MathWorks, Inc. Other product or brand names are trademarks or registered trademarks of their respective holders. >> which ss -all C:\Program Files\MATLAB\R2007a\toolbox\signal\signal\@dfilt\ss.m % dfilt method >> matlabroot ans = C:\Program Files\MATLAB\R2007a >> path MATLABPATH C:\Program Files\MATLAB\R2007a\toolbox\matlab\general C:\Program Files\MATLAB\R2007a\toolbox\matlab\ops (中略) C:\Program Files\MATLAB\R2007a\toolbox\signal\signal (後略) >>

  • 制御系としての性能指標とは何なのでしょうか?

    モータ制御系の実験をしていたときに、制御系の性能指標(例えば,開ループ伝達関数の周波数応答や閉ループ伝達関数の周波数応答など)を求め評価しなさいと言われたのですが、普通どうやって求めるのでしょうか? ボード線図をMatlab/simulinkなので計算して解くのでしょうか?それとも実験から求めるのでしょうか? 判る方いらっしゃいましたらお教えください。