2012-09-12 26 views
1

我想要建模的是一個週期性時間變量實型變量,下面的代碼不能被模擬。有人有建議嗎?在OpenModelica中爲一個週期性時間變量實型變量建模

class try 
discrete Real x(start = 1); 
algorithm 
when sample(0,4) then 
    x := 1; // reinit(x, 1) also does not work 
end when; 
equation 
     der(x) = 1; 
end try; 

所有錯誤信息如下:
翻譯十八時32分29秒0:0-0:0內部錯誤轉換模塊失敗!
翻譯18:32:29 0:0-0:0內部錯誤BackendDAETransform.reduceIndexDummyDer失敗!
翻譯18:32:29 0:0-0:0內部錯誤BackendDAETransform.selectDummyState:無狀態可供選擇
符號18:32:29 10:3-10:13模型在結構上是奇異的,找到排序方程時發生錯誤0.0 = 1.0; 變量

回答

2

的問題是,如果你想要的變量x要繼續之間的採樣時間istants你必須刪除離散關鍵字,這將很好地工作:

class try 
Real x(start = 1); 
algorithm 
when sample(0,4) then 
    reinit(x, 1); 
end when; 
equation 
     der(x) = 1; 
end try; 

的Ciao, Marco

+0

但結果仍然不是我想要的。 x每4秒不會重新初始化爲1。它表現爲'der(x)= 1',沒有任何事件中斷。 – user1216408

+0

奇怪的是,我試過了Marco的Wolfram的SystemModeler版本(據我所知,它使用OpenModelica),它工作正常。據我所知,Marco的版本看起來很好。 –

+0

真奇怪,我試過用Open Modelica,我覺得我們發現了一個bug,因爲我之前寫的版本表現爲算法部分不存在,但是如果你移動方程部分下的when語句,它工作正常:

 model try Real x(start = 1); equation when sample(0, 4) then reinit(x, 1); end when; der(x) = 1; end try; 

相關問題